Help
RSS
API
Feed
Maltego
Contact
Domain > cornea.is
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2019-12-07
104.18.39.219
(
ClassC
)
2026-02-19
172.67.196.250
(
ClassC
)
Port 443
HTTP/1.1 200 OKDate: Thu, 19 Feb 2026 19:20:08 GMTContent-Type: text/html; charsetUTF-8Transfer-Encoding: chunkedConnection: keep-aliveServer: cloudflarevary: Accept-Encodingvary: Accept-Encodingvary: Accept-Encodinglink: https://cornea.is/wp-json/>; relhttps://api.w.org/link: https://cornea.is/wp-json/wp/v2/pages/6>; relalternate; titleJSON; typeapplication/jsonlink: https://cornea.is/>; relshortlinkx-powered-by: WP EngineReport-To: {group:cf-nel,max_age:604800,endpoints:{url:https://a.nel.cloudflare.com/report/v4?sd8ANJLOU0Yb1UU4lya85kq0hU1zaupbibewYCjNgE%2BWt9cEwvcLmUHoGcsnhS%2FJsYcMPBh9xNDPFtiljzNULVbOZXbrQSQo%3D}}x-pass-why: custom-pathcf-cache-status: DYNAMICNel: {report_to:cf-nel,success_fraction:0.0,max_age:604800}Speculation-Rules: /cdn-cgi/speculationCF-RAY: 9d081ea89821148b-PDXalt-svc: h3:443; ma86400 !DOCTYPE html>html langen-US classno-js> head> meta charsetUTF-8> meta nameviewport contentwidthdevice-width,initial-scale1.0,maximum-scale1 /> link relprofile hrefhttps://gmpg.org/xfn/11> meta namerobots contentindex, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1 /> style>img:is(sizesauto i, sizes^auto, i) { contain-intrinsic-size: 3000px 1500px }/style> !-- This site is optimized with the Yoast SEO plugin v24.1 - https://yoast.com/wordpress/plugins/seo/ --> title>Cornea | Wildfire Risk & Land Management Technology Solutions/title> meta namedescription contentCornea provides sophisticated predictive analytics tools for wildfire planning, ecological management, and risk mitigation at scale to empower wildfire fighters, foresters and land managers in the public and private sectors. /> link relcanonical hrefhttps://cornea.is/ /> meta propertyog:locale contenten_US /> meta propertyog:type contentwebsite /> meta propertyog:title contentCornea /> meta propertyog:description contentCornea provides sophisticated predictive analytics tools for wildfire planning, ecological management, and risk mitigation at scale to empower wildfire fighters, foresters and land managers in the public and private sectors. /> meta propertyog:url contenthttps://cornea.is/ /> meta propertyog:site_name contentCornea /> meta propertyarticle:publisher contenthttps://www.facebook.com/corneatech /> meta propertyarticle:modified_time content2024-12-03T18:14:27+00:00 /> meta propertyog:image contenthttps://cornea.is/wp-content/uploads/2024/11/cornea.jpg /> meta propertyog:image:width content200 /> meta propertyog:image:height content86 /> meta propertyog:image:type contentimage/jpeg /> meta nametwitter:card contentsummary_large_image /> meta nametwitter:title contentCornea /> meta nametwitter:description contentCornea is a data service for disaster planning, response, & recovery. /> meta nametwitter:site content@corneatech /> script typeapplication/ld+json classyoast-schema-graph>{@context:https://schema.org,@graph:{@type:WebPage,@id:https://cornea.is/,url:https://cornea.is/,name:Cornea | Wildfire Risk & Land Management Technology Solutions,isPartOf:{@id:https://cornea.is/#website},about:{@id:https://cornea.is/#organization},primaryImageOfPage:{@id:https://cornea.is/#primaryimage},image:{@id:https://cornea.is/#primaryimage},thumbnailUrl:https://cornea.is/wp-content/uploads/2024/10/Frame-2.png,datePublished:2019-08-05T05:32:50+00:00,dateModified:2024-12-03T18:14:27+00:00,description:Cornea provides sophisticated predictive analytics tools for wildfire planning, ecological management, and risk mitigation at scale to empower wildfire fighters, foresters and land managers in the public and private sectors.,breadcrumb:{@id:https://cornea.is/#breadcrumb},inLanguage:en-US,potentialAction:{@type:ReadAction,target:https://cornea.is/}},{@type:ImageObject,inLanguage:en-US,@id:https://cornea.is/#primaryimage,url:https://cornea.is/wp-content/uploads/2024/10/Frame-2.png,contentUrl:https://cornea.is/wp-content/uploads/2024/10/Frame-2.png,width:208,height:208},{@type:BreadcrumbList,@id:https://cornea.is/#breadcrumb,itemListElement:{@type:ListItem,position:1,name:Home}},{@type:WebSite,@id:https://cornea.is/#website,url:https://cornea.is/,name:Cornea,description:Data science for emergency response,publisher:{@id:https://cornea.is/#organization},potentialAction:{@type:SearchAction,target:{@type:EntryPoint,urlTemplate:https://cornea.is/?s{search_term_string}},query-input:{@type:PropertyValueSpecification,valueRequired:true,valueName:search_term_string}},inLanguage:en-US},{@type:Organization,@id:https://cornea.is/#organization,name:Cornea,url:https://cornea.is/,logo:{@type:ImageObject,inLanguage:en-US,@id:https://cornea.is/#/schema/logo/image/,url:https://cornea.is/wp-content/uploads/2019/09/cornea.png,contentUrl:https://cornea.is/wp-content/uploads/2019/09/cornea.png,width:350,height:76,caption:Cornea},image:{@id:https://cornea.is/#/schema/logo/image/},sameAs:https://www.facebook.com/corneatech,https://x.com/corneatech,https://www.instagram.com/cornea.is/,https://www.linkedin.com/company/corneatech/}}/script> !-- / Yoast SEO plugin. -->link reldns-prefetch href//fonts.googleapis.com />link relalternate typeapplication/rss+xml titleCornea » Feed hrefhttps://cornea.is/feed/ />link relalternate typeapplication/rss+xml titleCornea » Comments Feed hrefhttps://cornea.is/comments/feed/ />script type2149538ebfc05c59ae30118a-text/javascript>/* !CDATA */window._wpemojiSettings {baseUrl:https:\/\/s.w.org\/images\/core\/emoji\/16.0.1\/72x72\/,ext:.png,svgUrl:https:\/\/s.w.org\/images\/core\/emoji\/16.0.1\/svg\/,svgExt:.svg,source:{concatemoji:https:\/\/cornea.is\/wp-includes\/js\/wp-emoji-release.min.js?ver6.8.3}};/*! This file is auto-generated */!function(s,n){var o,i,e;function c(e){try{var t{supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var tnew Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),a(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return eat})}function u(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);for(var ne.getImageData(16,16,1,1),a0;an.data.length;a++)if(0!n.dataa)return!1;return!0}function f(e,t,n,a){switch(t){caseflag:return n(e,\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f,\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f)?!1:!n(e,\ud83c\udde8\ud83c\uddf6,\ud83c\udde8\u200b\ud83c\uddf6)&&!n(e,\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f,\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f);caseemoji:return!a(e,\ud83e\udedf)}return!1}function g(e,t,n,a){var rundefined!typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):s.createElement(canvas),or.getContext(2d,{willReadFrequently:!0}),i(o.textBaselinetop,o.font600 32px Arial,{});return e.forEach(function(e){iet(o,e,n,a)}),i}function t(e){var ts.createElement(script);t.srce,t.defer!0,s.head.appendChild(t)}undefined!typeof Promise&&(owpEmojiSettingsSupports,iflag,emoji,n.supports{everything:!0,everythingExceptFlag:!0},enew Promise(function(e){s.addEventListener(DOMContentLoaded,e,{once:!0})}),new Promise(function(t){var nfunction(){try{var eJSON.parse(sessionStorage.getItem(o));if(objecttypeof e&&numbertypeof e.timestamp&&(new Date).valueOf()e.timestamp+604800&&objecttypeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if(undefined!typeof Worker&&undefined!typeof OffscreenCanvas&&undefined!typeof URL&&URL.createObjectURL&&undefined!typeof Blob)try{var epostMessage(+g.toString()+(+JSON.stringify(i),f.toString(),p.toString(),u.toString().join(,)+));,anew Blob(e,{type:text/javascript}),rnew Worker(URL.createObjectURL(a),{name:wpTestEmojiSupports});return void(r.onmessagefunction(e){c(ne.data),r.terminate(),t(n)})}catch(e){}c(ng(i,f,p,u))}t(n)}).then(function(e){for(var t in e)n.supportstet,n.supports.everythingn.supports.everything&&n.supportst,flag!t&&(n.supports.everythingExceptFlagn.supports.everythingExceptFlag&&n.supportst);n.supports.everythingExceptFlagn.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady!1,n.readyCallbackfunction(){n.DOMReady!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(en.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings);/* > *//script>style idwp-emoji-styles-inline-css typetext/css> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 0.07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; }/style>link relstylesheet idmediaelement-css hrefhttps://cornea.is/wp-includes/js/mediaelement/mediaelementplayer-legacy.min.css?ver4.2.17 typetext/css mediaall />link relstylesheet idwp-mediaelement-css hrefhttps://cornea.is/wp-includes/js/mediaelement/wp-mediaelement.min.css?ver6.8.3 typetext/css mediaall />link relstylesheet idview_editor_gutenberg_frontend_assets-css hrefhttps://cornea.is/wp-content/plugins/wp-views/public/css/views-frontend.css?ver3.6.18 typetext/css mediaall />style idview_editor_gutenberg_frontend_assets-inline-css typetext/css>.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-default > span.wpv-sort-list,.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-default .wpv-sort-list-item {border-color: #cdcdcd;}.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-default .wpv-sort-list-item a {color: #444;background-color: #fff;}.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-default a:hover,.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-default a:focus {color: #000;background-color: #eee;}.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-default .wpv-sort-list-item.wpv-sort-list-current a {color: #000;background-color: #eee;}.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-default > span.wpv-sort-list,.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-default .wpv-sort-list-item {border-color: #cdcdcd;}.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-default .wpv-sort-list-item a {color: #444;background-color: #fff;}.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-default a:hover,.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-default a:focus {color: #000;background-color: #eee;}.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-default .wpv-sort-list-item.wpv-sort-list-current a {color: #000;background-color: #eee;}.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-grey > span.wpv-sort-list,.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-grey .wpv-sort-list-item {border-color: #cdcdcd;}.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-grey .wpv-sort-list-item a {color: #444;background-color: #eeeeee;}.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-grey a:hover,.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-grey a:focus {color: #000;background-color: #e5e5e5;}.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-grey .wpv-sort-list-item.wpv-sort-list-current a {color: #000;background-color: #e5e5e5;}.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-default > span.wpv-sort-list,.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-default .wpv-sort-list-item {border-color: #cdcdcd;}.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-default .wpv-sort-list-item a {color: #444;background-color: #fff;}.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-default a:hover,.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-default a:focus {color: #000;background-color: #eee;}.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-default .wpv-sort-list-item.wpv-sort-list-current a {color: #000;background-color: #eee;}.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-grey > span.wpv-sort-list,.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-grey .wpv-sort-list-item {border-color: #cdcdcd;}.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-grey .wpv-sort-list-item a {color: #444;background-color: #eeeeee;}.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-grey a:hover,.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-grey a:focus {color: #000;background-color: #e5e5e5;}.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-grey .wpv-sort-list-item.wpv-sort-list-current a {color: #000;background-color: #e5e5e5;}.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-blue > span.wpv-sort-list,.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-blue .wpv-sort-list-item {border-color: #0099cc;}.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-blue .wpv-sort-list-item a {color: #444;background-color: #cbddeb;}.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-blue a:hover,.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-blue a:focus {color: #000;background-color: #95bedd;}.wpv-sort-list-dropdown.wpv-sort-list-dropdown-style-blue .wpv-sort-list-item.wpv-sort-list-current a {color: #000;background-color: #95bedd;}/style>link relstylesheet idcontact-form-7-css hrefhttps://cornea.is/wp-content/plugins/contact-form-7/includes/css/styles.css?ver6.0.2 typetext/css mediaall />style idcontact-form-7-inline-css typetext/css>.wpcf7 .wpcf7-recaptcha iframe {margin-bottom: 0;}.wpcf7 .wpcf7-recaptchadata-aligncenter > div {margin: 0 auto;}.wpcf7 .wpcf7-recaptchadata-alignright > div {margin: 0 0 0 auto;}/style>link relstylesheet idhcode-animate-style-css hrefhttps://cornea.is/wp-content/themes/h-code/assets/css/animate.css?ver3.6.2 typetext/css mediaall />link relstylesheet idhcode-bootstrap-css hrefhttps://cornea.is/wp-content/themes/h-code/assets/css/bootstrap.css?ver3.2.0 typetext/css mediaall />link relstylesheet idhcode-et-line-icons-style-css hrefhttps://cornea.is/wp-content/themes/h-code/assets/css/et-line-icons.css?ver2.2 typetext/css mediaall />link relstylesheet idhcode-font-awesome-style-css hrefhttps://cornea.is/wp-content/themes/h-code/assets/css/font-awesome.min.css?ver5.15.3 typetext/css mediaall />link relstylesheet idhcode-magnific-popup-style-css hrefhttps://cornea.is/wp-content/themes/h-code/assets/css/magnific-popup.css?ver2.2 typetext/css mediaall />link relstylesheet idhcode-owl-carousel-style-css hrefhttps://cornea.is/wp-content/themes/h-code/assets/css/owl.carousel.css?ver2.3.4 typetext/css mediaall />link relstylesheet idhcode-owl-transitions-style-css hrefhttps://cornea.is/wp-content/themes/h-code/assets/css/owl.transitions.css?ver2.3.4 typetext/css mediaall />link relstylesheet idhcode-text-effect-style-css hrefhttps://cornea.is/wp-content/themes/h-code/assets/css/text-effect.css?ver2.2 typetext/css mediaall />link relstylesheet idhcode-menu-hamburger-style-css hrefhttps://cornea.is/wp-content/themes/h-code/assets/css/menu-hamburger.css?ver2.2 typetext/css mediaall />link relstylesheet idhcode-mCustomScrollbar-style-css hrefhttps://cornea.is/wp-content/themes/h-code/assets/css/jquery.mCustomScrollbar.css?ver2.2 typetext/css mediaall />link relstylesheet idhcode-parent-style-css hrefhttps://cornea.is/wp-content/themes/h-code/style.css?ver1.0 typetext/css mediaall />link relstylesheet idhcode-fonts-css href//fonts.googleapis.com/css?familyOpen+Sans%3A100%2C300%2C400%2C500%2C600%2C700%2C800%2C900%7COswald%3A100%2C300%2C400%2C500%2C600%2C700%2C800%2C900&subsetcyrillic%2Ccyrillic-ext%2Cgreek%2Cgreek-ext%2Clatin-ext%2Cvietnamese&displayswap typetext/css mediaall />link relstylesheet idtoolset_bootstrap_styles-css hrefhttps://cornea.is/wp-content/plugins/wp-views/vendor/toolset/toolset-common/res/lib/bootstrap3/css/bootstrap.css?ver4.4.8 typetext/css mediascreen />link relstylesheet idtablepress-default-css hrefhttps://cornea.is/wp-content/plugins/tablepress/css/build/default.css?ver3.0.2 typetext/css mediaall />link relstylesheet idjs_composer_front-css hrefhttps://cornea.is/wp-content/plugins/js_composer/assets/css/js_composer.min.css?ver6.7.0 typetext/css mediaall />link relstylesheet idhcode-style-css hrefhttps://cornea.is/wp-content/themes/h-code-child/style.css?ver2.2 typetext/css mediaall />link relstylesheet idhcode-responsive-style-css hrefhttps://cornea.is/wp-content/themes/h-code/assets/css/responsive.css?ver2.2 typetext/css mediaall />link relstylesheet idhcode-extralayers-style-css hrefhttps://cornea.is/wp-content/themes/h-code/assets/css/extralayers.css?ver2.2 typetext/css mediaall />!--if IE>link relstylesheet idhcode-ie-css hrefhttps://cornea.is/wp-content/themes/h-code/assets/css/style-ie.css?ver1.0 typetext/css mediaall />!endif-->script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/plugins/wp-views/vendor/toolset/common-es/public/toolset-common-es-frontend.js?ver174000 idtoolset-common-es-frontend-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-includes/js/jquery/jquery.min.js?ver3.7.1 idjquery-core-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-includes/js/jquery/jquery-migrate.min.js?ver3.4.1 idjquery-migrate-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/themes/h-code-child/js/jquery.min.js idmy-nifty-custom1-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/themes/h-code-child/js/ScrollMagic.js idmy-nifty-custom2-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/themes/h-code-child/js/TweenMax.min.js idmy-nifty-custom3-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/themes/h-code-child/js/animation.gsap.js idmy-nifty-custom4-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/themes/h-code-child/js/jquery.paroller.min.js idmy-nifty-custom6-js>/script>!--if lt IE 9>script typetext/javascript srchttps://cornea.is/wp-content/themes/h-code/assets/js/html5shiv.js?ver3.7.3 idhcode-html5-js>/script>!endif-->link relhttps://api.w.org/ hrefhttps://cornea.is/wp-json/ />link relalternate titleJSON typeapplication/json hrefhttps://cornea.is/wp-json/wp/v2/pages/6 />link relEditURI typeapplication/rsd+xml titleRSD hrefhttps://cornea.is/xmlrpc.php?rsd />link relshortlink hrefhttps://cornea.is/ />link relalternate titleoEmbed (JSON) typeapplication/json+oembed hrefhttps://cornea.is/wp-json/oembed/1.0/embed?urlhttps%3A%2F%2Fcornea.is%2F />link relalternate titleoEmbed (XML) typetext/xml+oembed hrefhttps://cornea.is/wp-json/oembed/1.0/embed?urlhttps%3A%2F%2Fcornea.is%2F&formatxml />!-- start Simple Custom CSS and JS -->script type2149538ebfc05c59ae30118a-text/javascript>/* Default comment here */ jQuery(document).ready(function( $ ){ for(var i 2; i 41; i++){ console.log(tr.row- + i + .column-2); var thisSize $(tr.row- + i + .column-2).text(); console.log(This rows acreage is + (thisSize)) $(tr.row- + i + .column-2).append(div classbar-back>/div>); var noCommas thisSize.replace(,, ); var finalWidth noCommas * 0.0001; $(tr.row- + i + .column-2).append(div classbar-fill stylewidth: + finalWidth + px>/div>); } });/script>!-- end Simple Custom CSS and JS -->!-- start Simple Custom CSS and JS -->script type2149538ebfc05c59ae30118a-text/javascript>/* Default comment here */ jQuery(document).ready(function( $ ){ var vidHeight $( #myimg2 ).height(); var navHeight $( nav ).height(); var newtop2 240 + (vidHeight/2) - (navHeight/2); var trigOffset 120 + (vidHeight/2) - (navHeight/2); $( #trigger-flowchart ).css(top, newtop2 + px); $( #trig1 ).css(margin-top, (trigOffset + 57) + px); $( #trig2 ).css(margin-top, (trigOffset + 900) + px); $( #trig3 ).css(margin-top, (trigOffset + 1800) + px); $( #trig4 ).css(margin-top, (trigOffset + 2700) + px); $( #trig5 ).css(margin-top, (trigOffset + 3600) + px); $( #trig6 ).css(margin-top, (trigOffset + 4500) + px); });$( window ).resize(function() { var vidHeight $( #myimg2 ).height(); var navHeight $( nav ).height(); var newtop2 240 + (vidHeight/2) - (navHeight/2); $( #trigger-flowchart ).css(top, newtop2 + px); });/script>!-- end Simple Custom CSS and JS -->!-- start Simple Custom CSS and JS -->style typetext/css>/* Add your CSS code here.For example:.example { color: red;}For brushing up on your CSS knowledge, check out http://www.w3schools.com/css/css_syntax.aspEnd of comment */ .postid-5998 img.attachment-full.size-full.wp-post-image { display: none;}.single .vc-column-innner-wrapper p { color: #1f1b1d; max-width: calc(100% - 100px); margin-left: 50px; margin-bottom: 15px !important;}g texttext-anchorend { fill: white !important; opacity: .6;}g g g texty377.05 { fill: #ffffff !important;}texttext-anchormiddle { fill: #ffffff8a;}.bar-back, .bar-fill { transform-origin: 0% 0% !important; transform: scaleX(0.6) !important; margin: -21px 67px !important;}.single .vc-column-innner-wrapper ul { padding-bottom: 40px !important;}.single ul h4, .single ul p { margin-left: 32px !important;}.single ul h4 { margin-top: -27px; margin-bottom: 0px; font-size: 18px ! IMPORTANT;}div#comments { display: block !important;}rectheight1 { opacity: .2;}g text { color: white !important;}div#wpDataChart_2 { background-color: #3b1c29; padding-bottom: 42px;}.single p b { font-family: UniNeueHeavy; font-weight: 400 !important;}.single div h3 { margin-top: 39px; max-width: calc(100% - 100px) !important; margin-left: 50px; color: black !important; margin-bottom: 20px; display: block; position: relative; padding-left: 35px; max-width: 550px !important; font-size: 23px !important;}.single .vc-column-innner-wrapper h2 { margin-left: 46px !important; max-width: 526px !important; margin-top: 43px !important; font-size: 36px !important; line-height: 130%;}h2.blog-details-headline.text-black.entry-title { line-height: 108% !important; font-size: 42.2px !important; max-width: 800px !important;}img.aligncenter.size-full.wp-image-6116 { max-width: calc(100% - 47px); float: left; margin-left: 0px;}.blog-details-text.entry-content { max-width: 800px; margin: auto;}.iholder { position: relative; overflow: hidden; height: 410px; display:block !important;}td.column-1 { font-weight: 800; padding-left: 14px;}.row-3 .bar-back { background-color: #f5c06b !important;}#ind-graph .container { padding-left: 0px; padding-right: 0px; width: 100% !important;}#ind-graph .orbedcont { background-color: green; width: 100%;}.single li a { margin-left: 20px; font-style: italic;}iframe { border: 0; width: 100%; height: 740px; background-color: #313534;}.single li { color: #000000; font-family: Roboto; margin-left: 52px; margin-top: 18px;}canvas { position: unset !Important; /* top: 0; */ /* left: 0; */ /* z-index: -1; */}.single h6 { color: grey !important; margin-left: 49px; margin-top: 4px; max-width: 80%;}.single p { line-height: 155% !important;}th { background-color: #ffebe4 !important;}table#tablepress-1-no-2 { font-family: Roboto;}img.aligncenter.size-full.wp-image-6036 { border-radius: 30px;}.single h4 { margin-left: 49px; font-family: UniNeueHeavy; font-weight: 400 !important; font-style: normal !important; max-width: 80%;}.single h4 b { font-style: normal !important; font-weight: 400 !important;}.single div h3 { margin-top: 39px; max-width: calc(100% - 100px) !important; margin-left: 50px; color: black !important; margin-bottom: 20px; display: block; position: relative; padding-left: 35px; max-width: 630px !important;}.single h3:before { content: ; width: 13px; position: absolute; height: 100%; background-color: #eb7750 !important; display: block; border-radius: 0px 30px 30px 0px; margin: 0px -33px;}.single h3 span { color: #eb754f !important;}.single h3:before { content: ;}.single h2 { color: #eb7650 !important;}.alignleft.wp-caption { border-radius: 38px; margin-left: 44px !important;}.post-5998 .excerpt { display: none;}.bar-back { height: 17px; position: absolute; background-color: #0000000f !important; width: 100px; transform: translate(70px, -21px); border-radius: 3px;}.bar-fill { position: absolute; background-color: #f5c06b; height: 17px; transform: translate(70px, -21px); border-radius: 3px;}.wp-caption.alignleft img { border-radius: 31px;}.wp-caption-text { width: 100% !important; max-width: 100% !important; font-size: 12px; line-height: 135% !important; padding-top: 10px !important; font-weight: 600; opacity: .9; margin-bottom: -1px !important;}.single h3 { margin-top: 39px; max-width: calc(100% - 100px) !important; margin-left: 50px; color: black !important; margin-bottom: 20px;}.postid-5314 .excerpt { display: none;}@media only screen and (max-width: 600px) { .column-3, .column-4, .column-5, .column-6 { display: none; } h6 img { max-width: 300px !important;} h2.blog-details-headline.text-black.entry-title { line-height: 108% !important; font-size: 30.2px !important; max-width: 800px !important; margin-top: -40px !important;} }/style>!-- end Simple Custom CSS and JS -->style typetext/css>.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}/style> script type2149538ebfc05c59ae30118a-text/javascript> window.addEventListener(load,function(){ var c{script:false,link:false}; function ls(s) { if(!script,link.includes(s)||cs){return;}cstrue; var ddocument,fd.getElementsByTagName(s)0,jd.createElement(s); if(sscript){j.asynctrue;j.srchttps://cornea.is/wp-content/plugins/wp-views/vendor/toolset/blocks/public/js/frontend.js?v1.6.14;}else{ j.relstylesheet;j.hrefhttps://cornea.is/wp-content/plugins/wp-views/vendor/toolset/blocks/public/css/style.css?v1.6.14;} f.parentNode.insertBefore(j, f); }; function ex(){ls(script);ls(link)} window.addEventListener(scroll, ex, {once: true}); if ((IntersectionObserver in window) && (IntersectionObserverEntry in window) && (intersectionRatio in window.IntersectionObserverEntry.prototype)) { var i 0, fb document.querySelectorAll(class^tb-), o new IntersectionObserver(es > { es.forEach(e > { o.unobserve(e.target); if (e.intersectionRatio > 0) { ex();o.disconnect();}else{ i++;if(fb.length>i){o.observe(fbi)}} }) }); if (fb.length) { o.observe(fbi) } } }) /script> noscript> link relstylesheet hrefhttps://cornea.is/wp-content/plugins/wp-views/vendor/toolset/blocks/public/css/style.css> /noscript>meta namegenerator contentPowered by WPBakery Page Builder - drag and drop page builder for WordPress./>style typetext/css titledynamic-css classoptions-output>body, input, textarea, select,.navbar-nav li.fas a,.navbar-nav li.far a,.navbar-nav li.fab a, .navbar-nav li.fas span, .navbar-nav li.far span, .navbar-nav li.fab span, .navbar-nav li.fas .dropdown-header, .navbar-nav li.far .dropdown-header, .navbar-nav li.fab .dropdown-header, footer ul li.menu-item.fas a, footer ul li.menu-item.far a, footer ul li.menu-item.fab a, .sidebar ul li.menu-item.fas a, .sidebar ul li.menu-item.far a, .sidebar ul li.menu-item.fab a{font-family:Open Sans;}.alt-font, .cd-headline span{font-family:Oswald;}body{line-height:23px;font-size:13px;}.navbar .navbar-nav > li > a, .search-cart-header .subtitle{font-size:11px;}.top-cart .fa-shopping-cart, .search-cart-header i{font-size:13px;}.dropdown-header, .dropdown-menu, .simple-dropdown > ul.dropdown-menu > li a{font-size:11px;}h1{font-size:36px;}h2{font-size:24px;}h3{font-size:14px;}h4{font-size:16px;}h5{font-size:11px;}h6{font-size:13px;}h1.section-title{font-size:36px;}h2.section-title{font-size:24px;}h3.section-title{font-size:20px;}h5.section-title{font-size:14px;}h6.section-title{font-size:13px;}.text-small{line-height:15px;font-size:11px;}.text-med{line-height:26px;font-size:14px;}.text-large{line-height:24px;font-size:15px;}.text-extra-large{line-height:28px;font-size:16px;}.title-small{line-height:30px;font-size:20px;}.title-med{line-height:34px;font-size:24px;}.title-large{line-height:41px;font-size:28px;}.title-extra-large{line-height:43px;font-size:35px;}.page-title h1{font-size:20px;}.page-title span{font-size:14px;}.breadcrumb ul li{font-size:11px;}.breadcrumb ul > li+li:before{font-size:8px;}.page-title-shop h1{font-size:35px;}.page-title-small h1{font-size:18px;}.blog-details-headline{line-height:24px;font-size:18px;}.standard-post-meta{line-height:23px;font-size:11px;}.full-width-headline h2{line-height:55px;font-size:40px;}.full-width-headline .full-width-header-post-meta{line-height:23px;font-size:13px;}.blog-single-full-width-with-image-slider-headline{line-height:64px;font-size:50px;}.blog-headline .blog-single-full-width-with-image-slider-meta{line-height:23px;font-size:25px;}body{background:#241f21;}.bg-blck-overlay{background:rgba(0,0,0,0.85);}.bg-white{background:#FFFFFF;}.bg-yellow{background:#e6af2a;}.bg-deep-yellow{background:#f7f5e7;}.bg-golden-yellow{background:#c3bd86;}.bg-fast-yellow{background:#fdd947;}.bg-dark-gray{background:#252525;}.bg-mid-gray{background:#d4d4d4;}.bg-black{background:#000000;}.bg-green{background:#70bd5b;}.bg-gray{background:#f6f6f6;}.bg-yellow-ochre{background:#997546;}.bg-deep-brown{background:#544441;}.bg-orange{background:#c24742;}.bg-deep-orange{background:#f15a22;}.bg-fast-orange{background:#ff513b;}.bg-pink{background:#c2345f;}.bg-deep-red{background:#e75e50;}.bg-red{background:#d21616;}.bg-deep-pink{background:#e53878;}.bg-light-pink{background:#dc378e;}.bg-fast-pink{background:#ff1a56;}.bg-magenta{background:#d94378;}.bg-light-yellow{background:#f8f7f5;}.bg-dark-green{background:#60a532;}.bg-dark-blue{background:#3273a5;}.bg-violet{background:#6c407e;}.bg-light-gray{background:#f8f7f7;}.bg-light-gray2{background:#f4f4f4;}.bg-light-gray3{background:#fcfcfc;}.bg-slider{background:rgba(27,22,28,0.9);}.wide-separator-line{background:#e5e5e5;}.video-background{background:rgba(67,67,67,0.5);}.overlay-yellow{background:#ffca18;}.overlay-blue{background:#8ac4fe;}.overlay-gray{background:#f4f5f6;}.overlay-green{background:#71f1b9;}.transparent-header.shrink-nav{background:#1f1b1d;}.dropdown-menu, .simple-dropdown > ul.dropdown-menu > li > ul.mega-sub-menu, .navbar > .nav-header-container .navbar-nav.default-menu-wrapper > li.page_item_has_children .children, .navbar > .nav-header-container .navbar-nav.default-menu-wrapper > li.menu-item-has-children .sub-menu, .navbar > .nav-header-container .navbar-nav.default-menu-wrapper > li.page_item_has_children .children li .children, .navbar > .nav-header-container .navbar-nav.default-menu-wrapper > li.menu-item-has-children .sub-menu li .sub-menu{background:rgba(27,22,28,0.95);}.cart-content{background:rgba(27,22,28,0.95);}.white-header{background:#ffffff;}.white-header.shrink-nav{background:#ffffff;}.white-header .dropdown-menu, .white-header .simple-dropdown > ul.dropdown-menu > li > ul.mega-sub-menu, .navbar.white-header > .nav-header-container .navbar-nav.default-menu-wrapper > li.page_item_has_children .children, .navbar.white-header > .nav-header-container .navbar-nav.default-menu-wrapper > li.menu-item-has-children .sub-menu, .navbar.white-header > .nav-header-container .navbar-nav.default-menu-wrapper > li.page_item_has_children .children li .children, .navbar.white-header > .nav-header-container .navbar-nav.default-menu-wrapper > li.menu-item-has-children .sub-menu li .sub-menu{background:rgba(27,22,28,0.95);}.white-header .search-cart-header .cart-content{background:rgba(27,22,28,0.95);}.static-sticky, header .static-sticky{background:#ffffff;}.static-sticky.shrink-nav, header .static-sticky.shrink-nav{background:#1f1b1d;}header .static-sticky .dropdown-menu, header .static-sticky .simple-dropdown > ul.dropdown-menu > li > ul.mega-sub-menu, .static-sticky .dropdown-menu, .static-sticky .simple-dropdown > ul.dropdown-menu > li > ul.mega-sub-menu, .navbar.static-sticky > .nav-header-container .navbar-nav.default-menu-wrapper > li.page_item_has_children .children, .navbar.static-sticky > .nav-header-container .navbar-nav.default-menu-wrapper > li.menu-item-has-children .sub-menu, .navbar.static-sticky > .nav-header-container .navbar-nav.default-menu-wrapper > li.page_item_has_children .children li .children, .navbar.static-sticky > .nav-header-container .navbar-nav.default-menu-wrapper > li.menu-item-has-children .sub-menu li .sub-menu{background:rgba(27,22,28,0.95);}header .static-sticky .cart-content, .static-sticky .cart-content{background:rgba(27,22,28,0.95);}.static-sticky-gray, header .static-sticky-gray{background:#f6f6f6;}.static-sticky-gray.shrink-nav, header .static-sticky-gray.shrink-nav{background:#1f1b1d;}header .static-sticky-gray .dropdown-menu, header .static-sticky-gray .simple-dropdown > ul.dropdown-menu > li > ul.mega-sub-menu, .navbar.static-sticky-gray > .nav-header-container .navbar-nav.default-menu-wrapper > li.page_item_has_children .children, .navbar.static-sticky-gray > .nav-header-container .navbar-nav.default-menu-wrapper > li.menu-item-has-children .sub-menu, .navbar.static-sticky-gray > .nav-header-container .navbar-nav.default-menu-wrapper > li.page_item_has_children .children li .children, .navbar.static-sticky-gray > .nav-header-container .navbar-nav.default-menu-wrapper > li.menu-item-has-children .sub-menu li .sub-menu{background:rgba(27,22,28,0.95);}header .static-sticky-gray .cart-content{background:rgba(27,22,28,0.95);}.nav-dark{background:#000000;}.nav-dark.shrink-nav{background:#000000;}.nav-dark .dropdown-menu, .nav-dark .simple-dropdown > ul.dropdown-menu > li > ul.mega-sub-menu, .navbar.nav-dark > .nav-header-container .navbar-nav.default-menu-wrapper > li.page_item_has_children .children, .navbar.nav-dark > .nav-header-container .navbar-nav.default-menu-wrapper > li.menu-item-has-children .sub-menu, .navbar.nav-dark > .nav-header-container .navbar-nav.default-menu-wrapper > li.page_item_has_children .children li .children, .navbar.nav-dark > .nav-header-container .navbar-nav.default-menu-wrapper > li.menu-item-has-children .sub-menu li .sub-menu{background:rgba(0,0,0,0.9);}.nav-dark .cart-content{background:rgba(0,0,0,0.9);}.nav-dark-transparent{background:rgba(0,0,0,0.8);}.nav-dark-transparent.shrink-nav{background:rgba(0,0,0,0.8);}.nav-dark-transparent .dropdown-menu, .nav-dark-transparent .simple-dropdown > ul.dropdown-menu > li > ul.mega-sub-menu, .navbar.nav-dark-transparent > .nav-header-container .navbar-nav.default-menu-wrapper > li.page_item_has_children .children, .navbar.nav-dark-transparent > .nav-header-container .navbar-nav.default-menu-wrapper > li.menu-item-has-children .sub-menu, .navbar.nav-dark-transparent > .nav-header-container .navbar-nav.default-menu-wrapper > li.page_item_has_children .children li .children, .navbar.nav-dark-transparent > .nav-header-container .navbar-nav.default-menu-wrapper > li.menu-item-has-children .sub-menu li .sub-menu{background:rgba(0,0,0,0.9);}.nav-dark-transparent .cart-content{background:rgba(0,0,0,0.9);}.nav-light-transparent{background:rgba(255,255,255,0.8);}.nav-light-transparent.shrink-nav{background:rgba(255,255,255,0.8);}.nav-light-transparent .dropdown-menu, .nav-light-transparent .simple-dropdown > ul.dropdown-menu > li > ul.mega-sub-menu, .navbar.nav-light-transparent > .nav-header-container .navbar-nav.default-menu-wrapper > li.page_item_has_children .children, .navbar.nav-light-transparent > .nav-header-container .navbar-nav.default-menu-wrapper > li.menu-item-has-children .sub-menu, .navbar.nav-light-transparent > .nav-header-container .navbar-nav.default-menu-wrapper > li.page_item_has_children .children li .children, .navbar.nav-light-transparent > .nav-header-container .navbar-nav.default-menu-wrapper > li.menu-item-has-children .sub-menu li .sub-menu{background:rgba(0,0,0,0.9);}.nav-light-transparent .cart-content{background:rgba(0,0,0,0.9);}.non-sticky{background:#ffffff;}.non-sticky .dropdown-menu, .non-sticky .simple-dropdown > ul.dropdown-menu > li > ul.mega-sub-menu, .navbar.non-sticky > .nav-header-container .navbar-nav.default-menu-wrapper > li.page_item_has_children .children, .navbar.non-sticky > .nav-header-container .navbar-nav.default-menu-wrapper > li.menu-item-has-children .sub-menu, .navbar.non-sticky > .nav-header-container .navbar-nav.default-menu-wrapper > li.page_item_has_children .children li .children, .navbar.non-sticky > .nav-header-container .navbar-nav.default-menu-wrapper > li.menu-item-has-children .sub-menu li .sub-menu{background:rgba(0,0,0,0.9);}.non-sticky .cart-content{background:rgba(0,0,0,0.9);}.hamburger-menu1{background:#000000;}.full-width-pull-menu .menu-wrap{background:#1a1a1a;}.bg-hamburger-menu3{background:#ffffff;}body{color:#f2f2f2;}a{color:#000000;}a:hover{color:#575757;}h1, h2, h3, h4, h5{color:#000000;}.breadcrumb-white-text a, .breadcrumb-white-text li{color:#FFFFFF;}.breadcrumb-gray-text a, .breadcrumb-gray-text{color:#575757;}i{color:#9a9a9a;}.white-text{color:#FFFFFF;}.magenta-text{color:#d94378;}.orange-text{color:#ff513b;}.orange-light-text{color:#ef824c;}.deep-red-text{color:#e75e50;}.red-text{color:#d50f0f;}.black-text{color:#000000;}a.black-text-link, a.black-text-link i, footer ul.list-inline li a{color:#000000;}a.black-text-link:hover, a.black-text-link:hover i, footer ul.list-inline li a:hover{color:#858585;}a.white-text-link, a.white-text-link i{color:#FFFFFF;}a.white-text-link:hover, a.white-text-link:hover i{color:#ababab;}a.gray-text-link, footer ul li a{color:#626262;}a.gray-text-link:hover, footer ul li a:hover{color:#000000;}.yellow-text{color:#e6af2a;}.yellow-text2{color:#fdd947;}.fast-yellow-text{color:#f7d23d;}.pink-text{color:#d9378e;}.light-gray-text{color:#ababab;}.light-gray-text2, .blog-date, .blog-date a{color:#828282;}.deep-gray-text{color:#464646;}.deep-light-gray-text{color:#878787;}.gray-text{color:#7f7f7f;}.dark-gray-text{color:#373737;}.navbar .mobile-accordion-menu, .navbar > .nav-header-container .accordion-menu.mobile-accordion-menu .navbar-collapse{background:#000000;}.top-header-area{background:#000000;}.hcode-main-footer{background-color:#080808;}/style>style typetext/css data-typevc_shortcodes-custom-css>.vc_custom_1730312594713{margin-top: 0px !important;margin-right: 0px !important;margin-bottom: 0px !important;margin-left: 0px !important;padding-top: 0px !important;padding-right: 0px !important;padding-bottom: 0px !important;padding-left: 0px !important;background-image: url(https://cornea.is/wp-content/uploads/2024/10/plane.jpg?id5866) !important;}.vc_custom_1646725481095{margin-top: 0px !important;margin-bottom: 0px !important;padding-top: 0px !important;padding-bottom: 0px !important;background-color: #241f21 !important;}.vc_custom_1730912502044{margin-top: 0px !important;margin-bottom: 0px !important;padding-top: 0px !important;padding-bottom: 0px !important;}.vc_custom_1729566586020{margin-top: 0px !important;padding-top: 0px !important;}.vc_custom_1729267043717{margin-top: 0px !important;padding-top: 0px !important;}.vc_custom_1646851438673{margin-top: 0px !important;margin-right: 0px !important;margin-bottom: 0px !important;margin-left: 0px !important;padding-top: 0px !important;padding-right: 0px !important;padding-bottom: 0px !important;padding-left: 0px !important;}.vc_custom_1729835313364{margin-top: 0px !important;margin-right: 0px !important;margin-bottom: 0px !important;margin-left: 0px !important;padding-top: 0px !important;padding-right: 0px !important;padding-bottom: 0px !important;padding-left: 0px !important;}.vc_custom_1646628667286{margin-top: 0px !important;margin-right: 0px !important;margin-bottom: 0px !important;margin-left: 0px !important;padding-top: 0px !important;padding-right: 0px !important;padding-bottom: 0px !important;padding-left: 0px !important;}.vc_custom_1567883886782{margin-top: 0px !important;margin-right: 0px !important;margin-bottom: 0px !important;margin-left: 0px !important;padding-top: 0px !important;padding-right: 0px !important;padding-bottom: 0px !important;padding-left: 0px !important;}.vc_custom_1646623841890{margin-top: 0px !important;margin-right: 0px !important;margin-bottom: 0px !important;margin-left: 0px !important;padding-top: 40px !important;padding-right: 0px !important;padding-bottom: 40px !important;padding-left: 0px !important;}.vc_custom_1729797374417{margin-top: 0px !important;margin-right: 0px !important;margin-bottom: 0px !important;margin-left: 0px !important;padding-top: 30px !important;padding-right: 40px !important;padding-bottom: 30px !important;padding-left: 0px !important;}.vc_custom_1646710154298{margin-right: 0px !important;margin-left: 0px !important;padding-right: 0px !important;padding-left: 0px !important;}.vc_custom_1646710174198{margin-left: 0px !important;padding-left: 0px !important;}.vc_custom_1646331010016{margin-top: 0px !important;margin-right: 0px !important;margin-bottom: 0px !important;margin-left: 0px !important;padding-top: 0px !important;padding-right: 0px !important;padding-bottom: 0px !important;padding-left: 0px !important;}.vc_custom_1646331010016{margin-top: 0px !important;margin-right: 0px !important;margin-bottom: 0px !important;margin-left: 0px !important;padding-top: 0px !important;padding-right: 0px !important;padding-bottom: 0px !important;padding-left: 0px !important;}.vc_custom_1646331010016{margin-top: 0px !important;margin-right: 0px !important;margin-bottom: 0px !important;margin-left: 0px !important;padding-top: 0px !important;padding-right: 0px !important;padding-bottom: 0px !important;padding-left: 0px !important;}.vc_custom_1567883886782{margin-top: 0px !important;margin-right: 0px !important;margin-bottom: 0px !important;margin-left: 0px !important;padding-top: 0px !important;padding-right: 0px !important;padding-bottom: 0px !important;padding-left: 0px !important;}.vc_custom_1567883886782{margin-top: 0px !important;margin-right: 0px !important;margin-bottom: 0px !important;margin-left: 0px !important;padding-top: 0px !important;padding-right: 0px !important;padding-bottom: 0px !important;padding-left: 0px !important;}.vc_custom_1567883886782{margin-top: 0px !important;margin-right: 0px !important;margin-bottom: 0px !important;margin-left: 0px !important;padding-top: 0px !important;padding-right: 0px !important;padding-bottom: 0px !important;padding-left: 0px !important;}.vc_custom_1646331010016{margin-top: 0px !important;margin-right: 0px !important;margin-bottom: 0px !important;margin-left: 0px !important;padding-top: 0px !important;padding-right: 0px !important;padding-bottom: 0px !important;padding-left: 0px !important;}.vc_custom_1646331010016{margin-top: 0px !important;margin-right: 0px !important;margin-bottom: 0px !important;margin-left: 0px !important;padding-top: 0px !important;padding-right: 0px !important;padding-bottom: 0px !important;padding-left: 0px !important;}.vc_custom_1567883886782{margin-top: 0px !important;margin-right: 0px !important;margin-bottom: 0px !important;margin-left: 0px !important;padding-top: 0px !important;padding-right: 0px !important;padding-bottom: 0px !important;padding-left: 0px !important;}.vc_custom_1567883886782{margin-top: 0px !important;margin-right: 0px !important;margin-bottom: 0px !important;margin-left: 0px !important;padding-top: 0px !important;padding-right: 0px !important;padding-bottom: 0px !important;padding-left: 0px !important;}/style>noscript>style> .wpb_animate_when_almost_visible { opacity: 1; }/style>/noscript>link relshortcut icon hrefhttps://cornea.is/wp-content/uploads/2019/09/32.png />link relapple-touch-icon hrefhttps://cornea.is/wp-content/uploads/2019/09/57.png />link relapple-touch-icon sizes72x72 hrefhttps://cornea.is/wp-content/uploads/2019/09/72.png />link relapple-touch-icon sizes114x114 hrefhttps://cornea.is/wp-content/uploads/2019/09/149.png />link relapple-touch-icon sizes149x149 hrefhttps://cornea.is/wp-content/uploads/2019/09/149.png />!-- Global site tag (gtag.js) - Google Analytics -->script async srchttps://www.googletagmanager.com/gtag/js?idUA-98107578-1 type2149538ebfc05c59ae30118a-text/javascript>/script>script type2149538ebfc05c59ae30118a-text/javascript> window.dataLayer window.dataLayer || ; function gtag(){dataLayer.push(arguments);} gtag(js, new Date()); gtag(config, UA-98107578-1);/script>style>input.wpcf7-form-control.wpcf7-submit { margin-top: 24px;}#rc-anchor-container { background: transparent !important; color: white !important;}@media only screen and (max-width: 767px) { .vc_tta.vc_tta-accordion .vc_tta-controls-icon-position-right.vc_tta-panel-title>a { padding-right: 321px !important;}}/style> /head> body classhome wp-singular page-template-default page page-id-6 wp-theme-h-code wp-child-theme-h-code-child hcode-menu-custom-color wpb-js-composer js-comp-ver-6.7.0 vc_responsive> nav classnavbar navbar-default navbar-fixed-top nav-transparent overlay-nav sticky-nav nav-border-bottom static-sticky hcode-nav-margin nav-black data-menu-hover-delay100 data-offset0>div classnav-header-container container>div classrow>div classhcode-header-logo >a classlogo-light hrefhttps://cornea.is/>img altCornea Logo srchttps://cornea.is/wp-content/uploads/2019/09/cornea.png classlogo data-no-lazy1 />img altCornea Logo srchttps://cornea.is/wp-content/uploads/2019/09/cornea.png classretina-logo data-no-lazy1 stylewidth:109px; max-height:34px; />/a>/div>div class menu-right-align accordion-menu>div classnavbar-header>button typebutton classnavbar-toggle data-togglecollapse data-target.navbar-collapse>span classsr-only>Toggle navigation/span>span classicon-bar>/span>span classicon-bar>/span>span classicon-bar>/span>/button>/div>div idmega-menu classnavbar-collapse collapse>ul idmenu-primary-menu classmega-menu-ul nav navbar-nav>li idmenu-item-5855 classmenu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-5855 menu-first-level simple-dropdown-right dropdown simple-dropdown dropdown-toggle collapsed>a href#collapse1 data-redirect-url# data-default-url#collapse1 classdropdown-toggle collapsed data-hoverdropdown data-togglecollapse>Solutions/a>a href#collapse1 classdropdown-toggle collapsed megamenu-right-icon data-hoverdropdown data-togglecollapse>i classfas fa-angle-down megamenu-mobile-icon>/i>/a>ul idcollapse1 classdropdown-menu mega-menu panel-collapse collapse> li idmenu-item-5856 classmenu-item menu-item-type-post_type menu-item-object-page menu-item-5856 dropdown-toggle collapsed>a hrefhttps://cornea.is/beacon/>Beacon/a>/li> li idmenu-item-5857 classmenu-item menu-item-type-post_type menu-item-object-page menu-item-5857 dropdown-toggle collapsed>a hrefhttps://cornea.is/wildfire-explorer/>Wildfire Explorer/a>/li> li idmenu-item-5858 classmenu-item menu-item-type-post_type menu-item-object-page menu-item-5858 dropdown-toggle collapsed>a hrefhttps://cornea.is/landmapper/>LandMapper/a>/li>/ul>/li>li idmenu-item-5947 classmenu-item menu-item-type-post_type menu-item-object-page menu-item-5947 menu-first-level simple-dropdown-right dropdown simple-dropdown dropdown-toggle collapsed>a href#collapse2 data-redirect-urlhttps://cornea.is/cornea-about-us/ data-default-url#collapse2 classdropdown-toggle collapsed data-hoverdropdown data-togglecollapse>About/a>/li>li idmenu-item-4929 classmenu-item menu-item-type-post_type menu-item-object-page menu-item-4929 menu-first-level simple-dropdown-right dropdown simple-dropdown dropdown-toggle collapsed>a href#collapse3 data-redirect-urlhttps://cornea.is/media/ data-default-url#collapse3 classdropdown-toggle collapsed data-hoverdropdown data-togglecollapse>Media/a>/li>li idmenu-item-33 classmenu-item menu-item-type-post_type menu-item-object-page menu-item-33 menu-first-level simple-dropdown-right dropdown simple-dropdown dropdown-toggle collapsed>a href#collapse4 data-redirect-urlhttps://cornea.is/contact/ data-default-url#collapse4 classdropdown-toggle collapsed data-hoverdropdown data-togglecollapse>Contact/a>/li>/ul>/div>/div>/div>/div>/nav>section classparent-section no-padding post-6 page type-page status-publish hentry> div classcontainer-fluid> div classrow> div classhcode-rich-snippet display-none>span classentry-title>Home/span>span classauthor vcard>a classurl fn n hrefhttps://cornea.is/author/battstaging2_fnceda/>Max Batt/a>/span>span classpublished>August 5, 2019/span>time classupdated datetime2024-12-03T18:14:27+00:00>December 3, 2024/time>/div> div classentry-content> section idhero classvc_section vc_custom_1730312594713 vc_section-has-fill vc_section-o-content-middle vc_section-flex>section class vc_custom_1646851438673>div classcontainer>div classrow>div classwpb_column hcode-column-container text-black vc_custom_1729835313364 vc_col-sm-8 col-xs-mobile-fullwidth data-front-classtext-black vc_custom_1729835313364 col-xs-mobile-fullwidth>div classvc-column-innner-wrapper>div classvc_empty_space styleheight: 100px>span classvc_empty_space_inner>/span>/div>h1 classcolor-white styletext-shadow: rgb(0 0 0) 0px 0px 120px;>Predict. Protect. Preserve./h1>h3 classcolor-white styletext-shadow: rgb(0 0 0) 0px 0px 120px;>Wildfire risk and land management intelligence when and where you need it./h3>div classvc_empty_space styleheight: 50px>span classvc_empty_space_inner>/span>/div>a hrefhttps://cornea.is/contact/ target_self classinner-link button btn highlight-button-dark btn-medium>Get in Touch/a>div classvc_empty_space styleheight: 40px>span classvc_empty_space_inner>/span>/div>/div>/div>div classwpb_column hcode-column-container vc_col-sm-4 col-xs-mobile-fullwidth data-front-classcol-xs-mobile-fullwidth>div classvc-column-innner-wrapper>/div>/div>/div>/div>/section>/section>section idourwhy classvc_section indentablet vc_custom_1646725481095 vc_section-has-fill>section class vc_custom_1646628667286 wow fadeIn>div classcontainer>div classrow>div classwpb_column hcode-column-container vc_custom_1567883886782 vc_col-sm-12 col-xs-mobile-fullwidth data-front-class vc_custom_1567883886782 col-xs-mobile-fullwidth>div classvc-column-innner-wrapper>div classvc_empty_space styleheight: 40px>span classvc_empty_space_inner>/span>/div>h3 classcolor-yellow lesserh1 styletext-align: center;>Cornea leverages advanced AI and machine learning to turn real-time wildfire data into actionable insights, delivering tools for wildfire intelligence and land management to ensure effective risk management and long-term resilience at scale./h3>div classvc_empty_space styleheight: 40px>span classvc_empty_space_inner>/span>/div>/div>/div>/div>/div>/section>/section>section idproblem data-vc-parallax1.2 data-vc-parallax-imagehttps://cornea.is/wp-content/uploads/2024/11/fire2-scaled.jpg classvc_section indentablet vc_custom_1730912502044 vc_section-has-fill vc_general vc_parallax vc_parallax-content-moving>section class vc_custom_1646623841890>div classcontainer>div classrow>div classwpb_column hcode-column-container vc_custom_1729797374417 vc_col-sm-6 col-xs-mobile-fullwidth data-front-class vc_custom_1729797374417 col-xs-mobile-fullwidth>div classvc-column-innner-wrapper>div class vc_custom_1646710154298 hcode-inner-row>div classwpb_column hcode-column-container vc_custom_1646710174198 vc_col-sm-6 col-xs-mobile-fullwidth data-front-class vc_custom_1646710174198 col-xs-mobile-fullwidth>div classvc-column-innner-wrapper>h5>The Problem/h5>/div>/div>div classwpb_column hcode-column-container vc_col-sm-6 col-xs-mobile-fullwidth data-front-classcol-xs-mobile-fullwidth>div classvc-column-innner-wrapper>div classvc_empty_space styleheight: 12px>span classvc_empty_space_inner>/span>/div>div classvc_separator wpb_content_element vc_separator_align_center vc_sep_width_100 vc_sep_pos_align_center vc_separator_no_text >span classvc_sep_holder vc_sep_holder_l>span styleborder-color:#ff8964; classvc_sep_line>/span>/span>span classvc_sep_holder vc_sep_holder_r>span styleborder-color:#ff8964; classvc_sep_line>/span>/span>/div>/div>/div>/div>div classvc_empty_space styleheight: 40px>span classvc_empty_space_inner>/span>/div>div classvc_empty_space styleheight: 30px>span classvc_empty_space_inner>/span>/div>div classvc_empty_space styleheight: 40px>span classvc_empty_space_inner>/span>/div>div classhcode-inner-row>div classwpb_column hcode-column-container vc_col-sm-2 col-xs-mobile-fullwidth data-front-classcol-xs-mobile-fullwidth>div classvc-column-innner-wrapper>p>img decodingasync classaligncenter wp-image-5894 size-full srchttps://cornea.is/wp-content/uploads/2024/10/Frame-2.png alt width208 height208 srcsethttps://cornea.is/wp-content/uploads/2024/10/Frame-2.png 208w, https://cornea.is/wp-content/uploads/2024/10/Frame-2-150x150.png 150w, https://cornea.is/wp-content/uploads/2024/10/Frame-2-81x81.png 81w sizes(max-width: 208px) 100vw, 208px />/p>/div>/div>div classwpb_column hcode-column-container vc_col-sm-10 col-xs-mobile-fullwidth data-front-classcol-xs-mobile-fullwidth>div classvc-column-innner-wrapper>h3>Increasing Wildfire Severity/h3>p>The frequency and intensity of wildfires have grown significantly, with the average acres burned per year increasing fourfold over the past 30 years. These fires cause escalating economic harm, with federal suppression costs reaching $3.2 billion in 2023—ten times higher than 30 years ago. Beyond the financial toll, wildfires are also causing widespread environmental damage, impacting forests, grasslands, and watersheds, and releasing billions of tons of carbon into the atmosphere yearly./p>p>This growing challenge affects both public and private sectors, requiring governments, first responders, and organizations to adapt their strategies and operations to better assess and mitigate current and future risks./p>/div>/div>/div>div classhcode-inner-row>div classwpb_column hcode-column-container vc_col-sm-12 col-xs-mobile-fullwidth data-front-classcol-xs-mobile-fullwidth>div classvc-column-innner-wrapper>div classvc_empty_space styleheight: 40px>span classvc_empty_space_inner>/span>/div>/div>/div>/div>div classhcode-inner-row>div classwpb_column hcode-column-container vc_col-sm-2 col-xs-mobile-fullwidth data-front-classcol-xs-mobile-fullwidth>div classvc-column-innner-wrapper>p>img decodingasync classaligncenter wp-image-5895 size-full srchttps://cornea.is/wp-content/uploads/2024/10/Frame-3.png alt width208 height208 srcsethttps://cornea.is/wp-content/uploads/2024/10/Frame-3.png 208w, https://cornea.is/wp-content/uploads/2024/10/Frame-3-150x150.png 150w, https://cornea.is/wp-content/uploads/2024/10/Frame-3-81x81.png 81w sizes(max-width: 208px) 100vw, 208px />/p>/div>/div>div classwpb_column hcode-column-container vc_col-sm-10 col-xs-mobile-fullwidth data-front-classcol-xs-mobile-fullwidth>div classvc-column-innner-wrapper>h3>Growing Complexity of Risk/h3>p>Just as responders and government agencies are feeling the impact of increased wildfire severity, so too are private sector stakeholders who are seeing a near-constant change in their business operations. From impacts on employee wellbeing to infrastructure vulnerabilities and financial risks, strategic and operational business decision-making has become inextricably linked with our climate./p>p>Cornea provides real time and predictive models with proprietary risk analytics, backed by fire science, to inform decision makers of structural and financial risks and support in planning for and mitigating such risks./p>/div>/div>/div>div classhcode-inner-row>div classwpb_column hcode-column-container vc_col-sm-12 col-xs-mobile-fullwidth data-front-classcol-xs-mobile-fullwidth>div classvc-column-innner-wrapper>div classvc_empty_space styleheight: 40px>span classvc_empty_space_inner>/span>/div>/div>/div>/div>div classhcode-inner-row>div classwpb_column hcode-column-container vc_col-sm-2 col-xs-mobile-fullwidth data-front-classcol-xs-mobile-fullwidth>div classvc-column-innner-wrapper>p>img decodingasync classaligncenter wp-image-5896 size-full srchttps://cornea.is/wp-content/uploads/2024/10/Frame-4.png alt width208 height208 srcsethttps://cornea.is/wp-content/uploads/2024/10/Frame-4.png 208w, https://cornea.is/wp-content/uploads/2024/10/Frame-4-150x150.png 150w, https://cornea.is/wp-content/uploads/2024/10/Frame-4-81x81.png 81w sizes(max-width: 208px) 100vw, 208px />/p>/div>/div>div classwpb_column hcode-column-container vc_col-sm-10 col-xs-mobile-fullwidth data-front-classcol-xs-mobile-fullwidth>div classvc-column-innner-wrapper>h3>Lack of Technology Solutions/h3>p>Fire Managers and Agency Administrators routinely expose themselves to incredible danger in an effort to combat wildfires. Incident Management Teams lead these efforts most often without the support of modern technology solutions and instead rely, in part, on outdated tools and resources./p>p>Cornea’s platform uses current and local environmental factors, as well as predictive analytics of fire behavior in order to empower response, recovery, and mitigation leaders with vastly improved decision support systems./p>/div>/div>/div>div classvc_separator wpb_content_element vc_separator_align_center vc_sep_width_100 vc_sep_pos_align_center vc_separator_no_text >span classvc_sep_holder vc_sep_holder_l>span styleborder-color:rgb(0,0,0);border-color:rgba(0,0,0,0.01); classvc_sep_line>/span>/span>span classvc_sep_holder vc_sep_holder_r>span styleborder-color:rgb(0,0,0);border-color:rgba(0,0,0,0.01); classvc_sep_line>/span>/span>/div>div classvc_empty_space styleheight: 40px>span classvc_empty_space_inner>/span>/div>div classvc_separator wpb_content_element vc_separator_align_center vc_sep_width_100 vc_sep_pos_align_center vc_separator_no_text >span classvc_sep_holder vc_sep_holder_l>span styleborder-color:rgb(255,255,255);border-color:rgba(255,255,255,0.07); classvc_sep_line>/span>/span>span classvc_sep_holder vc_sep_holder_r>span styleborder-color:rgb(255,255,255);border-color:rgba(255,255,255,0.07); classvc_sep_line>/span>/span>/div>div classvc_empty_space styleheight: 40px>span classvc_empty_space_inner>/span>/div>div classvc_empty_space styleheight: 40px>span classvc_empty_space_inner>/span>/div>div classtext-yellow>h3>Cornea’s cutting edge solutions are designed for today, tomorrow, and beyond./h3>/div>/div>/div>div classwpb_column hcode-column-container vc_col-sm-6 col-xs-mobile-fullwidth data-front-classcol-xs-mobile-fullwidth>div classvc-column-innner-wrapper>/div>/div>/div>/div>/section>/section>section idsolutions classvc_section indentablet yellowbg vc_custom_1729566586020>section class vc_custom_1646331010016>div classcontainer>div classrow>div classwpb_column hcode-column-container vc_custom_1567883886782 vc_col-sm-12 col-xs-mobile-fullwidth data-front-class vc_custom_1567883886782 col-xs-mobile-fullwidth>div classvc-column-innner-wrapper>div classvc_empty_space styleheight: 90px>span classvc_empty_space_inner>/span>/div>/div>/div>/div>/div>/section>section class vc_custom_1646331010016>div classcontainer>div classrow>div classwpb_column hcode-column-container vc_custom_1567883886782 vc_col-sm-1/5 col-xs-mobile-fullwidth data-front-class vc_custom_1567883886782 col-xs-mobile-fullwidth>div classvc-column-innner-wrapper>h5>Our Solutions/h5>/div>/div>div classwpb_column hcode-column-container vc_col-sm-4/5 col-xs-mobile-fullwidth data-front-classcol-xs-mobile-fullwidth>div classvc-column-innner-wrapper>div classvc_empty_space styleheight: 10px>span classvc_empty_space_inner>/span>/div>div classvc_separator wpb_content_element vc_separator_align_center vc_sep_width_100 vc_sep_pos_align_center vc_separator_no_text >span classvc_sep_holder vc_sep_holder_l>span styleborder-color:#ff8964; classvc_sep_line>/span>/span>span classvc_sep_holder vc_sep_holder_r>span styleborder-color:#ff8964; classvc_sep_line>/span>/span>/div>div classvc_empty_space styleheight: 30px>span classvc_empty_space_inner>/span>/div>div classvc_separator wpb_content_element vc_separator_align_center vc_sep_width_100 vc_sep_pos_align_center vc_separator_no_text >span classvc_sep_holder vc_sep_holder_l>span styleborder-color:rgb(255,137,100);border-color:rgba(255,137,100,0.01); classvc_sep_line>/span>/span>span classvc_sep_holder vc_sep_holder_r>span styleborder-color:rgb(255,137,100);border-color:rgba(255,137,100,0.01); classvc_sep_line>/span>/span>/div>/div>/div>/div>/div>/section>section class vc_custom_1646331010016>div classcontainer>div classrow>div classwpb_column hcode-column-container vc_custom_1567883886782 vc_col-sm-12 col-xs-mobile-fullwidth data-front-class vc_custom_1567883886782 col-xs-mobile-fullwidth>div classvc-column-innner-wrapper>div classvc_empty_space styleheight: 32px>span classvc_empty_space_inner>/span>/div>div classhcode-inner-row>div classwpb_column hcode-column-container hcode-column-1 column-min-height vc_col-sm-4 col-xs-mobile-fullwidth data-front-classhcode-column-1 column-min-height col-xs-mobile-fullwidth>div classvc-column-innner-wrapper> div classwpb_single_image wpb_content_element vc_align_left> figure classwpb_wrapper vc_figure> div classvc_single_image-wrapper vc_box_border_grey>img loadinglazy decodingasync width1800 height1125 srchttps://cornea.is/wp-content/uploads/2024/10/1.0-Landing-Map.jpg classvc_single_image-img attachment-full alt srcsethttps://cornea.is/wp-content/uploads/2024/10/1.0-Landing-Map.jpg 1800w, https://cornea.is/wp-content/uploads/2024/10/1.0-Landing-Map-300x188.jpg 300w, https://cornea.is/wp-content/uploads/2024/10/1.0-Landing-Map-1024x640.jpg 1024w, https://cornea.is/wp-content/uploads/2024/10/1.0-Landing-Map-768x480.jpg 768w, https://cornea.is/wp-content/uploads/2024/10/1.0-Landing-Map-1536x960.jpg 1536w, https://cornea.is/wp-content/uploads/2024/10/1.0-Landing-Map-133x83.jpg 133w, https://cornea.is/wp-content/uploads/2024/10/1.0-Landing-Map-374x234.jpg 374w, https://cornea.is/wp-content/uploads/2024/10/1.0-Landing-Map-81x51.jpg 81w sizesauto, (max-width: 1800px) 100vw, 1800px />/div> /figure> /div>div classvc_empty_space styleheight: 20px>span classvc_empty_space_inner>/span>/div>div classvc_empty_space styleheight: 20px>span classvc_empty_space_inner>/span>/div>h3>span stylefont-weight: 400;>Beacon/span>/h3>h4>span stylefont-weight: 400;>Model fire and smoke behavior in real-time to plan wildfire responses and prescribed burns./span>/h4>p>Beacon computes critical fire behavior and fighting metrics with real time data and provides a GIS interface for visualization alongside an expansive set of data overlays./p>div classvc_empty_space styleheight: 20px>span classvc_empty_space_inner>/span>/div>a hrefhttps://cornea.is/beacon/ target_self classinner-link button btn highlight-button btn-small>Learn More →/a>/div>/div>div classwpb_column hcode-column-container vc_col-sm-4 col-xs-mobile-fullwidth data-front-classcol-xs-mobile-fullwidth>div classvc-column-innner-wrapper> div classwpb_single_image wpb_content_element vc_align_left> figure classwpb_wrapper vc_figure> div classvc_single_image-wrapper vc_box_border_grey>img loadinglazy decodingasync width2536 height1309 srchttps://cornea.is/wp-content/uploads/2024/10/Screen-Shot-2024-10-24-at-1_0006_Layer-1.jpg classvc_single_image-img attachment-full alt srcsethttps://cornea.is/wp-content/uploads/2024/10/Screen-Shot-2024-10-24-at-1_0006_Layer-1.jpg 2536w, https://cornea.is/wp-content/uploads/2024/10/Screen-Shot-2024-10-24-at-1_0006_Layer-1-300x155.jpg 300w, https://cornea.is/wp-content/uploads/2024/10/Screen-Shot-2024-10-24-at-1_0006_Layer-1-1024x529.jpg 1024w, https://cornea.is/wp-content/uploads/2024/10/Screen-Shot-2024-10-24-at-1_0006_Layer-1-768x396.jpg 768w, https://cornea.is/wp-content/uploads/2024/10/Screen-Shot-2024-10-24-at-1_0006_Layer-1-1536x793.jpg 1536w, https://cornea.is/wp-content/uploads/2024/10/Screen-Shot-2024-10-24-at-1_0006_Layer-1-2048x1057.jpg 2048w, https://cornea.is/wp-content/uploads/2024/10/Screen-Shot-2024-10-24-at-1_0006_Layer-1-81x42.jpg 81w sizesauto, (max-width: 2536px) 100vw, 2536px />/div> /figure> /div>div classvc_empty_space styleheight: 20px>span classvc_empty_space_inner>/span>/div>div classvc_empty_space styleheight: 20px>span classvc_empty_space_inner>/span>/div>h3>span stylefont-weight: 400;>Wildfire Explorer/span>/h3>h4>span stylefont-weight: 400;>Track Wildfires in Real Time & Big Picture Insights/span>/h4>ul>li>span stylefont-weight: 400;>Track active fires and fire information across the continental US, Alaska, Hawaii and Puerto Rico. /span>/li>li>span stylefont-weight: 400;>Engage with your community to share critical fire information. /span>/li>li>span stylefont-weight: 400;>Collect and analyze wildfire data to identify trends and share updates./span>/li>/ul>div classvc_empty_space styleheight: 20px>span classvc_empty_space_inner>/span>/div>a hrefhttps://cornea.is/wildfire-explorer/ target_self classinner-link button btn highlight-button btn-small>Learn More →/a>div classvc_empty_space styleheight: 12px>span classvc_empty_space_inner>/span>/div>a hrefhttps://fires.cornea.is/ target_blank classinner-link button btn highlight-button btn-small>Visit Wildfire Explorer ↗/a>/div>/div>div classwpb_column hcode-column-container hcode-column-2 column-min-height vc_col-sm-4 col-xs-mobile-fullwidth data-front-classhcode-column-2 column-min-height col-xs-mobile-fullwidth>div classvc-column-innner-wrapper> div classwpb_single_image wpb_content_element vc_align_left> figure classwpb_wrapper vc_figure> div classvc_single_image-wrapper vc_box_border_grey>img loadinglazy decodingasync width891 height561 srchttps://cornea.is/wp-content/uploads/2024/11/Screen-Shot-2024-11-06-at-11.15.30-AM-1.jpg classvc_single_image-img attachment-full alt srcsethttps://cornea.is/wp-content/uploads/2024/11/Screen-Shot-2024-11-06-at-11.15.30-AM-1.jpg 891w, https://cornea.is/wp-content/uploads/2024/11/Screen-Shot-2024-11-06-at-11.15.30-AM-1-300x189.jpg 300w, https://cornea.is/wp-content/uploads/2024/11/Screen-Shot-2024-11-06-at-11.15.30-AM-1-768x484.jpg 768w, https://cornea.is/wp-content/uploads/2024/11/Screen-Shot-2024-11-06-at-11.15.30-AM-1-133x83.jpg 133w, https://cornea.is/wp-content/uploads/2024/11/Screen-Shot-2024-11-06-at-11.15.30-AM-1-374x234.jpg 374w, https://cornea.is/wp-content/uploads/2024/11/Screen-Shot-2024-11-06-at-11.15.30-AM-1-81x51.jpg 81w sizesauto, (max-width: 891px) 100vw, 891px />/div> /figure> /div>div classvc_empty_space styleheight: 20px>span classvc_empty_space_inner>/span>/div>div classvc_empty_space styleheight: 20px>span classvc_empty_space_inner>/span>/div>h3>span stylefont-weight: 400;>LandMapper/span>/h3>h4>span stylefont-weight: 400;>Scalable Solutions for Land Resilience/span>/h4>p>Land management and monitoring at scale to plan treatments, maintain forest health, and mitigate wildfire risk./p>div classvc_empty_space styleheight: 20px>span classvc_empty_space_inner>/span>/div>a hrefhttps://cornea.is/landmapper/ target_self classinner-link button btn highlight-button btn-small>Learn More →/a>/div>/div>/div>div classvc_separator wpb_content_element vc_separator_align_center vc_sep_width_100 vc_sep_pos_align_center vc_separator_no_text >span classvc_sep_holder vc_sep_holder_l>span styleborder-color:rgb(255,137,100);border-color:rgba(255,137,100,0.01); classvc_sep_line>/span>/span>span classvc_sep_holder vc_sep_holder_r>span styleborder-color:rgb(255,137,100);border-color:rgba(255,137,100,0.01); classvc_sep_line>/span>/span>/div>div classvc_empty_space styleheight: 30px>span classvc_empty_space_inner>/span>/div>div classvc_empty_space styleheight: 10px>span classvc_empty_space_inner>/span>/div>div classvc_separator wpb_content_element vc_separator_align_center vc_sep_width_100 vc_sep_pos_align_center vc_separator_no_text >span classvc_sep_holder vc_sep_holder_l>span styleborder-color:#ff8964; classvc_sep_line>/span>/span>span classvc_sep_holder vc_sep_holder_r>span styleborder-color:#ff8964; classvc_sep_line>/span>/span>/div>/div>/div>/div>/div>/section>/section>section idweserve classvc_section indentablet vc_custom_1729267043717>section class vc_custom_1646331010016>div classcontainer>div classrow>div classwpb_column hcode-column-container vc_custom_1567883886782 vc_col-sm-12 col-xs-mobile-fullwidth data-front-class vc_custom_1567883886782 col-xs-mobile-fullwidth>div classvc-column-innner-wrapper>div classvc_empty_space styleheight: 90px>span classvc_empty_space_inner>/span>/div>/div>/div>/div>/div>/section>section class vc_custom_1646331010016>div classcontainer>div classrow>div classwpb_column hcode-column-container vc_custom_1567883886782 vc_col-sm-1/5 col-xs-mobile-fullwidth data-front-class vc_custom_1567883886782 col-xs-mobile-fullwidth>div classvc-column-innner-wrapper>h5>WHO WE SERVE/h5>/div>/div>div classwpb_column hcode-column-container vc_col-sm-4/5 col-xs-mobile-fullwidth data-front-classcol-xs-mobile-fullwidth>div classvc-column-innner-wrapper>div classhcode-inner-row>div classwpb_column hcode-column-container vc_col-sm-3 col-xs-mobile-fullwidth data-front-classcol-xs-mobile-fullwidth>div classvc-column-innner-wrapper> div classwpb_single_image wpb_content_element vc_align_left> figure classwpb_wrapper vc_figure> div classvc_single_image-wrapper vc_box_border_grey>img loadinglazy decodingasync width800 height502 srchttps://cornea.is/wp-content/uploads/2024/10/mike-newbry-_jK0JWaWuqw-unsplash.jpg classvc_single_image-img attachment-full altPublic Ce srcsethttps://cornea.is/wp-content/uploads/2024/10/mike-newbry-_jK0JWaWuqw-unsplash.jpg 800w, https://cornea.is/wp-content/uploads/2024/10/mike-newbry-_jK0JWaWuqw-unsplash-300x188.jpg 300w, https://cornea.is/wp-content/uploads/2024/10/mike-newbry-_jK0JWaWuqw-unsplash-768x482.jpg 768w, https://cornea.is/wp-content/uploads/2024/10/mike-newbry-_jK0JWaWuqw-unsplash-133x83.jpg 133w, https://cornea.is/wp-content/uploads/2024/10/mike-newbry-_jK0JWaWuqw-unsplash-374x234.jpg 374w, https://cornea.is/wp-content/uploads/2024/10/mike-newbry-_jK0JWaWuqw-unsplash-81x51.jpg 81w sizesauto, (max-width: 800px) 100vw, 800px />/div> /figure> /div>/div>/div>div classwpb_column hcode-column-container vc_col-sm-9 col-xs-mobile-fullwidth data-front-classcol-xs-mobile-fullwidth>div classvc-column-innner-wrapper>h3>Public Sector/h3>h2>The public sector is the foundation of the entire wildfire community./h2>p>Public sector leaders and wildfire stakeholders are in need of real-time technology to minimize risk to responders and the public, ease the impact of perpetual resource constraints, and provide leaders with enhanced situational intelligence to inform their strategic and operational decisions./p>p>Cornea’s platform supports enhanced decision-making in managing and preparing for wildland fires. We enable Incident Command Teams to deploy firefighting assets informed by the latest scientific research on fire behavior, coupled with the analytical power of real-time machine learning models./p>div classvc_empty_space styleheight: 32px>span classvc_empty_space_inner>/span>/div>/div>/div>/div>div classhcode-inner-row>div classwpb_column hcode-column-container vc_col-sm-3 col-xs-mobile-fullwidth data-front-classcol-xs-mobile-fullwidth>div classvc-column-innner-wrapper> div classwpb_single_image wpb_content_element vc_align_left> figure classwpb_wrapper vc_figure> div classvc_single_image-wrapper vc_box_border_grey>img loadinglazy decodingasync width1416 height862 srchttps://cornea.is/wp-content/uploads/2024/10/adam-ulrich-4aIgbQEUkEg-unsplash.jpg classvc_single_image-img attachment-full alt srcsethttps://cornea.is/wp-content/uploads/2024/10/adam-ulrich-4aIgbQEUkEg-unsplash.jpg 1416w, https://cornea.is/wp-content/uploads/2024/10/adam-ulrich-4aIgbQEUkEg-unsplash-300x183.jpg 300w, https://cornea.is/wp-content/uploads/2024/10/adam-ulrich-4aIgbQEUkEg-unsplash-1024x623.jpg 1024w, https://cornea.is/wp-content/uploads/2024/10/adam-ulrich-4aIgbQEUkEg-unsplash-768x468.jpg 768w, https://cornea.is/wp-content/uploads/2024/10/adam-ulrich-4aIgbQEUkEg-unsplash-81x49.jpg 81w sizesauto, (max-width: 1416px) 100vw, 1416px />/div> /figure> /div>/div>/div>div classwpb_column hcode-column-container vc_col-sm-9 col-xs-mobile-fullwidth data-front-classcol-xs-mobile-fullwidth>div classvc-column-innner-wrapper>h3>Private Sector/h3>h2>The private sector sits at the forefront of climate adaptation and environmental risk mitigation./h2>p>As our climate changes, so too do the risks and uncertainties of the impact of climate disasters. Organizations need accurate insights and models that incorporate not only leading science but also public sector perspectives for a comprehensive view of wildfire and climate change will impact their business. Understanding risk factors, in context and at scale are vital to making sound, justified, and forward-thinking business decisions./p>div classvc_empty_space styleheight: 40px>span classvc_empty_space_inner>/span>/div>a hrefhttps://cornea.is/contact/ target_self classinner-link button btn highlight-button-dark btn-medium>Get in Touch/a>div classvc_empty_space styleheight: 40px>span classvc_empty_space_inner>/span>/div>div classvc_empty_space styleheight: 40px>span classvc_empty_space_inner>/span>/div>/div>/div>/div>div classvc_separator wpb_content_element vc_separator_align_center vc_sep_width_100 vc_sep_pos_align_center vc_separator_no_text >span classvc_sep_holder vc_sep_holder_l>span styleborder-color:#ff8964; classvc_sep_line>/span>/span>span classvc_sep_holder vc_sep_holder_r>span styleborder-color:#ff8964; classvc_sep_line>/span>/span>/div>/div>/div>/div>/div>/section>/section> /div> /div> /div>/section>footer classbg-light-gray2 hcode-main-footer> div classcontainer footer-middle hcode-footer-middle>div classrow>div classcol-md-6 col-sm-3 col-xs-6 footer-links no-transition>div idcustom_html-2 classwidget_text widget_custom_html>div classtextwidget custom-html-widget>p classfootlink>a hrefhttps://www.hangar.is/>built by hangar/a>/p>p classfootlink>a hrefhttps://cornea.is/privacy-policy/>privacy policy/a>/p>/div>/div>/div>div classcol-md-6 col-sm-3 col-xs-12 footer-links no-transition>div idcustom_html-3 classwidget_text widget_custom_html>div classtextwidget custom-html-widget> a hrefhttps://www.instagram.com/cornea.is/>i classfab fa-instagram flright>/i>/a> a hrefhttps://www.linkedin.com/company/corneatech/>i classfab fa-linkedin flright>/i>/a>a hrefhttps://twitter.com/corneatech>i classfab fa-twitter-square flright>/i>/a>p classfootlink flright>follow us:/p>/div>/div>/div>/div>/div>div classcontainer-fluid bg-dark-gray footer-bottom hcode-footer-bottom>div classcontainer>div classrow margin-three>div classcol-md-12 col-sm-12 col-xs-12 copyright text-left letter-spacing-1 xs-text-center xs-margin-bottom-one light-gray-text2>div classhcode-footer-copyright vertical-align-middle display-inline-block> div classtextwidget>© Cornea Inc. All Rights Reserved./div> /div> | a classprivacy-policy-link light-gray-text2 vertical-align-middle hrefhttps://cornea.is/privacy-policy/ relprivacy-policy>Privacy Policy/a>/div>/div>/div>/div>/footer>script typespeculationrules>{prefetch:{source:document,where:{and:{href_matches:\/*},{not:{href_matches:\/wp-*.php,\/wp-admin\/*,\/wp-content\/uploads\/*,\/wp-content\/*,\/wp-content\/plugins\/*,\/wp-content\/themes\/h-code-child\/*,\/wp-content\/themes\/h-code\/*,\/*\\?(.+)}},{not:{selector_matches:arel~\nofollow\}},{not:{selector_matches:.no-prefetch, .no-prefetch a}}},eagerness:conservative}}/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-includes/js/dist/hooks.min.js?ver4d63a3d491d11ffd8ac6 idwp-hooks-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-includes/js/dist/i18n.min.js?ver5e580eb46a90c2b997e6 idwp-i18n-js>/script>script type2149538ebfc05c59ae30118a-text/javascript idwp-i18n-js-after>/* !CDATA */wp.i18n.setLocaleData( { text direction\u0004ltr: ltr } );/* > *//script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/plugins/contact-form-7/includes/swv/js/index.js?ver6.0.2 idswv-js>/script>script type2149538ebfc05c59ae30118a-text/javascript idcontact-form-7-js-before>/* !CDATA */var wpcf7 { api: { root: https:\/\/cornea.is\/wp-json\/, namespace: contact-form-7\/v1 }, cached: 1};/* > *//script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/plugins/contact-form-7/includes/js/index.js?ver6.0.2 idcontact-form-7-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/plugins/wp-views/vendor/toolset/toolset-common/res/lib/bootstrap3/js/bootstrap.min.js?ver3.3.7 idtoolset_bootstrap-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/themes/h-code/assets/js/modernizr.js?ver2.7.2 idhcode-modernizr-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/themes/h-code/assets/js/bootstrap.js?ver3.2.0 idhcode-bootstrap-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/themes/h-code/assets/js/bootstrap-hover-dropdown.js?ver2.2.1 idbootstrap-hover-dropdown-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/themes/h-code/assets/js/jquery.easing.1.3.js?ver1.3 idhcode-jquery-easing-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/themes/h-code/assets/js/skrollr.min.js?ver1.0 idhcode-skrollr-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/themes/h-code/assets/js/jquery.viewport.mini.js?ver1.0 idhcode-viewport-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/themes/h-code/assets/js/jquery.smooth-scroll.min.js?ver2.2.0 idhcode-smooth-scroll-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/themes/h-code/assets/js/wow.min.js?ver1.1.3 idhcode-wow-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/themes/h-code/assets/js/page-scroll.js?ver1.4.9 idhcode-page-scroll-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/themes/h-code/assets/js/jquery.easypiechart.js?ver1.0 idhcode-easypiechart-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/themes/h-code/assets/js/jquery.parallax.js?ver1.1.3 idhcode-parallax-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/themes/h-code/assets/js/jquery.isotope.min.js?ver3.0.6 idhcode-isotope-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/themes/h-code/assets/js/owl.carousel.min.js?ver2.3.4 idhcode-owl-carousel-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/themes/h-code/assets/js/jquery.magnific-popup.min.js?ver1.0 idhcode-magnific-popup-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/themes/h-code/assets/js/popup-gallery.js?ver2.2 idhcode-popup-gallery-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/themes/h-code/assets/js/jquery.appear.js?ver0.3.6 idhcode-appear-scroll-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/themes/h-code/assets/js/text-effect.js?ver1.0 idhcode-text-effect-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/themes/h-code/assets/js/jquery.countdown.min.js?ver2.2.0 idhcode-counter-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/themes/h-code/assets/js/jquery.fitvids.js?ver1.1 idhcode-fitvids-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/themes/h-code/assets/js/imagesloaded.pkgd.min.js?ver4.1.4 idhcode-imagesloaded-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/themes/h-code/assets/js/jquery.placeholder.min.js?ver2.3.1 idhcode-ie-placeholder-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/themes/h-code/assets/js/classie.js?ver1.0.1 idhcode-classie-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/themes/h-code/assets/js/hamburger-menu.js?ver2.2 idhcode-hamburger-menu-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/themes/h-code/assets/js/jquery.mCustomScrollbar.concat.min.js?ver3.1.13 idhcode-mcustomscrollbar-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/themes/h-code/assets/js/infinite-scroll.js?ver2.1.0 idinfinite-scroll-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/themes/h-code/assets/js/background-srcset.js?ver2.1.0 idbackground-srcset-js>/script>script type2149538ebfc05c59ae30118a-text/javascript idhcodemain-js-extra>/* !CDATA */var hcodeajaxurl {ajaxurl:https:\/\/cornea.is\/wp-admin\/admin-ajax.php,theme_url:https:\/\/cornea.is\/wp-content\/themes\/h-code,loading_image:https:\/\/cornea.is\/wp-content\/themes\/h-code\/assets\/images\/spin.gif};var hcode_infinite_scroll_message {message:All Post Loaded};var simpleLikes {ajaxurl:https:\/\/cornea.is\/wp-admin\/admin-ajax.php,like:Like,unlike:Unlike};/* > *//script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/themes/h-code/assets/js/main.js?ver2.2 idhcodemain-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/plugins/js_composer/assets/js/dist/js_composer_front.min.js?ver6.7.0 idwpb_composer_front_js-js>/script>script type2149538ebfc05c59ae30118a-text/javascript srchttps://cornea.is/wp-content/plugins/js_composer/assets/lib/bower/skrollr/dist/skrollr.min.js?ver6.7.0 idvc_jquery_skrollr_js-js>/script>!-- start Simple Custom CSS and JS -->script type2149538ebfc05c59ae30118a-text/javascript>// threejs.org/license(function(l,ka){objecttypeof exports&&undefined!typeof module?ka(exports):functiontypeof define&&define.amd?define(exports,ka):(ll||self,ka(l.THREE{}))})(this,function(l){function ka(){}function B(a,b){this.xa||0;this.yb||0}function J(){this.elements1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1;0arguments.length&&console.error(THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.)}function aa(a,b,c,d){this._xa||0;this._yb||0;this._zc||0;this._wvoid 0!d?d:1}function n(a,b,c){this.xa||0;this.yb||0;this.zc||0}function pa(){this.elements1,0,0,0,1,0,0,0,1;0arguments.length&&console.error(THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.)}function V(a,b,c,d,e,f,g,h,k,m){Object.defineProperty(this,id,{value:Tf++});this.uuidH.generateUUID();this.name;this.imagevoid 0!a?a:V.DEFAULT_IMAGE;this.mipmaps;this.mappingvoid 0!b?b:V.DEFAULT_MAPPING;this.wrapSvoid 0!c?c:1001;this.wrapTvoid 0!d?d:1001;this.magFiltervoid 0!e?e:1006;this.minFiltervoid 0!f?f:1008;this.anisotropyvoid 0!k?k:1;this.formatvoid 0!g?g:1023;this.typevoid 0!h?h:1009;this.offsetnew B(0,0);this.repeatnew B(1,1);this.centernew B(0,0);this.rotation0;this.matrixAutoUpdate!0;this.matrixnew pa;this.generateMipmaps!0;this.premultiplyAlpha!1;this.flipY!0;this.unpackAlignment4;this.encodingvoid 0!m?m:3E3;this.version0;this.onUpdatenull}function ba(a,b,c,d){this.xa||0;this.yb||0;this.zc||0;this.wvoid 0!d?d:1}function Ra(a,b,c){this.widtha;this.heightb;this.scissornew ba(0,0,a,b);this.scissorTest!1;this.viewportnew ba(0,0,a,b);cc||{};this.texturenew V(void 0,void 0,c.wrapS,c.wrapT,c.magFilter,c.minFilter,c.format,c.type,c.anisotropy,c.encoding);this.texture.generateMipmapsvoid 0!c.generateMipmaps?c.generateMipmaps:!1;this.texture.minFiltervoid 0!c.minFilter?c.minFilter:1006;this.depthBuffervoid 0!c.depthBuffer?c.depthBuffer:!0;this.stencilBuffervoid 0!c.stencilBuffer?c.stencilBuffer:!0;this.depthTexturevoid 0!c.depthTexture?c.depthTexture:null}function Zd(a,b,c){Ra.call(this,a,b,c);this.samples4}function mb(a,b,c){Ra.call(this,a,b,c)}function nb(a,b,c,d,e,f,g,h,k,m,p,q){V.call(this,null,f,g,h,k,m,d,e,p,q);this.image{data:a,width:b,height:c};this.magFiltervoid 0!k?k:1003;this.minFiltervoid 0!m?m:1003;this.flipYthis.generateMipmaps!1;this.unpackAlignment1}function Za(a,b){this.minvoid 0!a?a:new n(Infinity,Infinity,Infinity);this.maxvoid 0!b?b:new n(-Infinity,-Infinity,-Infinity)}function Ha(a,b){this.centervoid 0!a?a:new n;this.radiusvoid 0!b?b:0}function Sa(a,b){this.normalvoid 0!a?a:new n(1,0,0);this.constantvoid 0!b?b:0}function ud(a,b,c,d,e,f){this.planesvoid 0!a?a:new Sa,void 0!b?b:new Sa,void 0!c?c:new Sa,void 0!d?d:new Sa,void 0!e?e:new Sa,void 0!f?f:new Sa}function Mb(a){var b{},c;for(c in a){bc{};for(var d in ac){var eacd;e&&(e.isColor||e.isMatrix3||e.isMatrix4||e.isVector2||e.isVector3||e.isVector4||e.isTexture)?bcde.clone():Array.isArray(e)?bcde.slice():bcde}}return b}function xa(a){for(var b{},c0;ca.length;c++){var dMb(ac),e;for(e in d)bede}return b}function K(a,b,c){return void 0b&&void 0c?this.set(a):this.setRGB(a,b,c)}function $d(){function a(e,f){!1!c&&(d(e,f),b.requestAnimationFrame(a))}var bnull,c!1,dnull;return{start:function(){!0!c&&null!d&&(b.requestAnimationFrame(a),c!0)},stop:function(){c!1},setAnimationLoop:function(a){da},setContext:function(a){ba}}}function Uf(a){function b(b,c){var db.array,eb.dynamic?35048:35044,ha.createBuffer();a.bindBuffer(c,h);a.bufferData(c,d,e);b.onUploadCallback();c5126;d instanceof Float32Array?c5126:d instanceof Float64Array?console.warn(THREE.WebGLAttributes: Unsupported data buffer format: Float64Array.):d instanceof Uint16Array?c5123:d instanceof Int16Array?c5122:d instanceof Uint32Array?c5125:d instanceof Int32Array?c5124:d instanceof Int8Array?c5120:d instanceof Uint8Array&&(c5121);return{buffer:h,type:c,bytesPerElement:d.BYTES_PER_ELEMENT,version:b.version}}var cnew WeakMap;return{get:function(a){a.isInterleavedBufferAttribute&&(aa.data);return c.get(a)},remove:function(b){b.isInterleavedBufferAttribute&&(bb.data);var dc.get(b);d&&(a.deleteBuffer(d.buffer),c.delete(b))},update:function(d,e){d.isInterleavedBufferAttribute&&(dd.data);var fc.get(d);if(void 0f)c.set(d,b(d,e));else if(f.versiond.version){var gd,hg.array,kg.updateRange;a.bindBuffer(e,f.buffer);!1g.dynamic?a.bufferData(e,h,35044):-1k.count?a.bufferSubData(e,0,h):0k.count?console.error(THREE.WebGLObjects.updateBuffer: dynamic THREE.BufferAttribute marked as needsUpdate but updateRange.count is 0, ensure you are using set methods or updating manually.):(a.bufferSubData(e,k.offset*h.BYTES_PER_ELEMENT,h.subarray(k.offset,k.offset+k.count)),k.count-1);f.versiond.version}}}}function Nb(a,b,c,d,e,f){this.aa;this.bb;this.cc;this.normald&&d.isVector3?d:new n;this.vertexNormalsArray.isArray(d)?d:;this.colore&&e.isColor?e:new K;this.vertexColorsArray.isArray(e)?e:;this.materialIndexvoid 0!f?f:0}function ob(a,b,c,d){this._xa||0;this._yb||0;this._zc||0;this._orderd||ob.DefaultOrder}function ae(){this.mask1}function E(){Object.defineProperty(this,id,{value:Vf++});this.uuidH.generateUUID();this.name;this.typeObject3D;this.parentnull;this.children;this.upE.DefaultUp.clone();var anew n,bnew ob,cnew aa,dnew n(1,1,1);b.onChange(function(){c.setFromEuler(b,!1)});c.onChange(function(){b.setFromQuaternion(c,void 0,!1)});Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:a},rotation:{configurable:!0,enumerable:!0,value:b},quaternion:{configurable:!0,enumerable:!0,value:c},scale:{configurable:!0,enumerable:!0,value:d},modelViewMatrix:{value:new J},normalMatrix:{value:new pa}});this.matrixnew J;this.matrixWorldnew J;this.matrixAutoUpdateE.DefaultMatrixAutoUpdate;this.matrixWorldNeedsUpdate!1;this.layersnew ae;this.visible!0;this.receiveShadowthis.castShadow!1;this.frustumCulled!0;this.renderOrder0;this.userData{}}function G(){Object.defineProperty(this,id,{value:Wf+2});this.uuidH.generateUUID();this.name;this.typeGeometry;this.vertices;this.colors;this.faces;this.faceVertexUvs;this.morphTargets;this.morphNormals;this.skinWeights;this.skinIndices;this.lineDistances;this.boundingSpherethis.boundingBoxnull;this.groupsNeedUpdatethis.lineDistancesNeedUpdatethis.colorsNeedUpdatethis.normalsNeedUpdatethis.uvsNeedUpdatethis.verticesNeedUpdatethis.elementsNeedUpdate!1}function P(a,b,c){if(Array.isArray(a))throw new TypeError(THREE.BufferAttribute: array should be a Typed Array.);this.name;this.arraya;this.itemSizeb;this.countvoid 0!a?a.length/b:0;this.normalized!0c;this.dynamic!1;this.updateRange{offset:0,count:-1};this.version0}function uc(a,b,c){P.call(this,new Int8Array(a),b,c)}function vc(a,b,c){P.call(this,new Uint8Array(a),b,c)}function wc(a,b,c){P.call(this,new Uint8ClampedArray(a),b,c)}function xc(a,b,c){P.call(this,new Int16Array(a),b,c)}function pb(a,b,c){P.call(this,new Uint16Array(a),b,c)}function yc(a,b,c){P.call(this,new Int32Array(a),b,c)}function qb(a,b,c){P.call(this,new Uint32Array(a),b,c)}function F(a,b,c){P.call(this,new Float32Array(a),b,c)}function zc(a,b,c){P.call(this,new Float64Array(a),b,c)}function Re(){this.vertices;this.normals;this.colors;this.uvs;this.uvs2;this.groups;this.morphTargets{};this.skinWeights;this.skinIndices;this.boundingSpherethis.boundingBoxnull;this.groupsNeedUpdatethis.uvsNeedUpdatethis.colorsNeedUpdatethis.normalsNeedUpdatethis.verticesNeedUpdate!1}function Se(a){if(0a.length)return-Infinity;for(var ba0,c1,da.length;cd;++c)ac>b&&(bac);return b}function C(){Object.defineProperty(this,id,{value:Xf+2});this.uuidH.generateUUID();this.name;this.typeBufferGeometry;this.indexnull;this.attributes{};this.morphAttributes{};this.groups;this.boundingSpherethis.boundingBoxnull;this.drawRange{start:0,count:Infinity};this.userData{}}function Ob(a,b,c,d,e,f){G.call(this);this.typeBoxGeometry;this.parameters{width:a,height:b,depth:c,widthSegments:d,heightSegments:e,depthSegments:f};this.fromBufferGeometry(new rb(a,b,c,d,e,f));this.mergeVertices()}function rb(a,b,c,d,e,f){function g(a,b,c,d,e,f,g,l,fa,A,B){var rf/fa,ug/A,wf/2,xg/2,zl/2;gfa+1;var DA+1,yf0,Q,Fa,tanew n;for(Fa0;FaD;Fa++){var FFa*u-x;for(Q0;Qg;Q++)taa(Q*r-w)*d,tabF*e,tacz,m.push(ta.x,ta.y,ta.z),taa0,tab0,tac0l?1:-1,p.push(ta.x,ta.y,ta.z),q.push(Q/fa),q.push(1-Fa/A),f+1}for(Fa0;FaA;Fa++)for(Q0;Qfa;Q++)av+Q+g*(Fa+1),bv+(Q+1)+g*(Fa+1),cv+(Q+1)+g*Fa,k.push(v+Q+g*Fa,a,c),k.push(a,b,c),y+6;h.addGroup(t,y,B);t+y;v+f}C.call(this);this.typeBoxBufferGeometry;this.parameters{width:a,height:b,depth:c,widthSegments:d,heightSegments:e,depthSegments:f};var hthis;aa||1;bb||1;cc||1;dMath.floor(d)||1;eMath.floor(e)||1;fMath.floor(f)||1;var k,m,p,q,v0,t0;g(z,y,x,-1,-1,c,b,a,f,e,0);g(z,y,x,1,-1,c,b,-a,f,e,1);g(x,z,y,1,1,a,c,b,d,f,2);g(x,z,y,1,-1,a,c,-b,d,f,3);g(x,y,z,1,-1,a,b,c,d,e,4);g(x,y,z,-1,-1,a,b,-c,d,e,5);this.setIndex(k);this.addAttribute(position,new F(m,3));this.addAttribute(normal,new F(p,3));this.addAttribute(uv,new F(q,2))}function Bc(a,b,c,d){G.call(this);this.typePlaneGeometry;this.parameters{width:a,height:b,widthSegments:c,heightSegments:d};this.fromBufferGeometry(new sb(a,b,c,d));this.mergeVertices()}function sb(a,b,c,d){C.call(this);this.typePlaneBufferGeometry;this.parameters{width:a,height:b,widthSegments:c,heightSegments:d};aa||1;bb||1;var ea/2,fb/2;cMath.floor(c)||1;dMath.floor(d)||1;var gc+1,hd+1,ka/c,mb/d,p,q,v,t;for(a0;ah;a++){var la*m-f;for(b0;bg;b++)q.push(b*k-e,-l,0),v.push(0,0,1),t.push(b/c),t.push(1-a/d)}for(a0;ad;a++)for(b0;bc;b++)eb+g*(a+1),fb+1+g*(a+1),hb+1+g*a,p.push(b+g*a,e,h),p.push(e,f,h);this.setIndex(p);this.addAttribute(position,new F(q,3));this.addAttribute(normal,new F(v,3));this.addAttribute(uv,new F(t,2))}function M(){Object.defineProperty(this,id,{value:Yf++});this.uuidH.generateUUID();this.name;this.typeMaterial;this.lightsthis.fog!0;this.blending1;this.side0;this.vertexTangentsthis.flatShading!1;this.vertexColors0;this.opacity1;this.transparent!1;this.blendSrc204;this.blendDst205;this.blendEquation100;this.blendEquationAlphathis.blendDstAlphathis.blendSrcAlphanull;this.depthFunc3;this.depthWritethis.depthTest!0;this.clippingPlanesnull;this.clipShadowsthis.clipIntersection!1;this.shadowSidenull;this.colorWrite!0;this.precisionnull;this.polygonOffset!1;this.polygonOffsetUnitsthis.polygonOffsetFactor0;this.dithering!1;this.alphaTest0;this.premultipliedAlpha!1;this.visible!0;this.userData{};this.needsUpdate!0}function Ca(a){M.call(this);this.typeShaderMaterial;this.defines{};this.uniforms{};this.vertexShadervoid main() {\n\tgl_Position projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n};this.fragmentShadervoid main() {\n\tgl_FragColor vec4( 1.0, 0.0, 0.0, 1.0 );\n};this.linewidth1;this.wireframe!1;this.wireframeLinewidth1;this.morphNormalsthis.morphTargetsthis.skinningthis.clippingthis.lightsthis.fog!1;this.extensions{derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1};this.defaultAttributeValues{color:1,1,1,uv:0,0,uv2:0,0};this.index0AttributeNamevoid 0;this.uniformsNeedUpdate!1;void 0!a&&(void 0!a.attributes&&console.error(THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead.),this.setValues(a))}function tb(a,b){this.originvoid 0!a?a:new n;this.directionvoid 0!b?b:new n}function ua(a,b,c){this.avoid 0!a?a:new n;this.bvoid 0!b?b:new n;this.cvoid 0!c?c:new n}function ya(a){M.call(this);this.typeMeshBasicMaterial;this.colornew K(16777215);this.lightMapthis.mapnull;this.lightMapIntensity1;this.aoMapnull;this.aoMapIntensity1;this.envMapthis.alphaMapthis.specularMapnull;this.combine0;this.reflectivity1;this.refractionRatio.98;this.wireframe!1;this.wireframeLinewidth1;this.wireframeLinejointhis.wireframeLinecapround;this.lightsthis.morphTargetsthis.skinning!1;this.setValues(a)}function va(a,b){E.call(this);this.typeMesh;this.geometryvoid 0!a?a:new C;this.materialvoid 0!b?b:new ya({color:16777215*Math.random()});this.drawMode0;this.updateMorphTargets()}function Zf(a,b,c,d){function e(a,c){b.buffers.color.setClear(a.r,a.g,a.b,c,d)}var fnew K(0),g0,h,k,mnull,p0;return{getClearColor:function(){return f},setClearColor:function(a,b){f.set(a);gvoid 0!b?b:1;e(f,g)},getClearAlpha:function(){return g},setClearAlpha:function(a){ga;e(f,g)},render:function(b,d,t,l){dd.background;nulld?(e(f,g),mnull,p0):d&&d.isColor&&(e(d,1),l!0,mnull,p0);(a.autoClear||l)&&a.clear(a.autoClearColor,a.autoClearDepth,a.autoClearStencil);if(d&&(d.isCubeTexture||d.isWebGLRenderTargetCube)){void 0k&&(knew va(new rb(1,1,1),new Ca({type:BackgroundCubeMaterial,uniforms:Mb(Ta.cube.uniforms),vertexShader:Ta.cube.vertexShader,fragmentShader:Ta.cube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1})),k.geometry.removeAttribute(normal),k.geometry.removeAttribute(uv),k.onBeforeRenderfunction(a,b,c){this.matrixWorld.copyPosition(c.matrixWorld)},Object.defineProperty(k.material,map,{get:function(){return this.uniforms.tCube.value}}),c.update(k));ld.isWebGLRenderTargetCube?d.texture:d;k.material.uniforms.tCube.valuel;k.material.uniforms.tFlip.valued.isWebGLRenderTargetCube?1:-1;if(m!d||p!l.version)k.material.needsUpdate!0,md,pl.version;b.unshift(k,k.geometry,k.material,0,0,null)}else if(d&&d.isTexture){void 0h&&(hnew va(new sb(2,2),new Ca({type:BackgroundMaterial,uniforms:Mb(Ta.background.uniforms),vertexShader:Ta.background.vertexShader,fragmentShader:Ta.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.removeAttribute(normal),Object.defineProperty(h.material,map,{get:function(){return this.uniforms.t2D.value}}),c.update(h));h.material.uniforms.t2D.valued;!0d.matrixAutoUpdate&&d.updateMatrix();h.material.uniforms.uvTransform.value.copy(d.matrix);if(m!d||p!d.version)h.material.needsUpdate!0,md,pd.version;b.unshift(h,h.geometry,h.material,0,0,null)}}}}function $f(a,b,c,d){var e;this.setModefunction(a){ea};this.renderfunction(b,d){a.drawArrays(e,b,d);c.update(d,e)};this.renderInstancesfunction(f,g,h){if(d.isWebGL2)var ka;else if(kb.get(ANGLE_instanced_arrays),nullk){console.error(THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.);return}kd.isWebGL2?drawArraysInstanced:drawArraysInstancedANGLE(e,g,h,f.maxInstancedCount);c.update(h,e,f.maxInstancedCount)}}function ag(a,b,c){function d(b){if(highpb){if(0a.getShaderPrecisionFormat(35633,36338).precision&&0a.getShaderPrecisionFormat(35632,36338).precision)returnhighp;bmediump}returnmediumpb&&0a.getShaderPrecisionFormat(35633,36337).precision&&0a.getShaderPrecisionFormat(35632,36337).precision?mediump:lowp}var e,fundefined!typeof WebGL2RenderingContext&&a instanceof WebGL2RenderingContext,gvoid 0!c.precision?c.precision:highp,hd(g);h!g&&(console.warn(THREE.WebGLRenderer:,g,not supported, using,h,instead.),gh);c!0c.logarithmicDepthBuffer;ha.getParameter(34930);var ka.getParameter(35660),ma.getParameter(3379),pa.getParameter(34076),qa.getParameter(34921),va.getParameter(36347),ta.getParameter(36348),la.getParameter(36349),u0k,wf||!!b.get(OES_texture_float),nu&&w,xf?a.getParameter(36183):0;return{isWebGL2:f,getMaxAnisotropy:function(){if(void 0!e)return e;var cb.get(EXT_texture_filter_anisotropic);return enull!c?a.getParameter(c.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0},getMaxPrecision:d,precision:g,logarithmicDepthBuffer:c,maxTextures:h,maxVertexTextures:k,maxTextureSize:m,maxCubemapSize:p,maxAttributes:q,maxVertexUniforms:v,maxVaryings:t,maxFragmentUniforms:l,vertexTextures:u,floatFragmentTextures:w,floatVertexTextures:n,maxSamples:x}}function bg(){function a(){m.value!d&&(m.valued,m.needsUpdate0e);c.numPlanese;c.numIntersection0}function b(a,b,d,e){var fnull!a?a.length:0,gnull;if(0!f){gm.value;if(!0!e||nullg){ed+4*f;bb.matrixWorldInverse;k.getNormalMatrix(b);if(nullg||g.lengthe)gnew Float32Array(e);for(e0;e!f;++e,d+4)h.copy(ae).applyMatrix4(b,k),h.normal.toArray(g,d),gd+3h.constant}m.valueg;m.needsUpdate!0}c.numPlanesf;return g}var cthis,dnull,e0,f!1,g!1,hnew Sa,knew pa,m{value:null,needsUpdate:!1};this.uniformm;this.numIntersectionthis.numPlanes0;this.initfunction(a,c,g){var h0!a.length||c||0!e||f;fc;db(a,g,0);ea.length;return h};this.beginShadowsfunction(){g!0;b(null)};this.endShadowsfunction(){g!1;a()};this.setStatefunction(c,h,k,l,r,u){if(!f||nullc||0c.length||g&&!k)g?b(null):a();else{kg?0:e;var p4*k,qr.clippingState||null;m.valueq;qb(c,l,p,u);for(c0;c!p;++c)qcdc;r.clippingStateq;this.numIntersectionh?this.numPlanes:0;this.numPlanes+k}}}function cg(a){var b{};return{get:function(c){if(void 0!bc)return bc;switch(c){case WEBGL_depth_texture:var da.getExtension(WEBGL_depth_texture)||a.getExtension(MOZ_WEBGL_depth_texture)||a.getExtension(WEBKIT_WEBGL_depth_texture);break;case EXT_texture_filter_anisotropic:da.getExtension(EXT_texture_filter_anisotropic)||a.getExtension(MOZ_EXT_texture_filter_anisotropic)||a.getExtension(WEBKIT_EXT_texture_filter_anisotropic);break;case WEBGL_compressed_texture_s3tc:da.getExtension(WEBGL_compressed_texture_s3tc)||a.getExtension(MOZ_WEBGL_compressed_texture_s3tc)||a.getExtension(WEBKIT_WEBGL_compressed_texture_s3tc);break;case WEBGL_compressed_texture_pvrtc:da.getExtension(WEBGL_compressed_texture_pvrtc)||a.getExtension(WEBKIT_WEBGL_compressed_texture_pvrtc);break;default:da.getExtension(c)}nulld&&console.warn(THREE.WebGLRenderer: +c+ extension not supported.);return bcd}}}function dg(a,b,c){function d(a){var ga.target;aeg.id;null!a.index&&b.remove(a.index);for(var k in a.attributes)b.remove(a.attributesk);g.removeEventListener(dispose,d);delete eg.id;if(kfa.id)b.remove(k),delete fa.id;c.memory.geometries--}var e{},f{};return{get:function(a,b){var feb.id;if(f)return f;b.addEventListener(dispose,d);b.isBufferGeometry?fb:b.isGeometry&&(void 0b._bufferGeometry&&(b._bufferGeometry(new C).setFromObject(a)),fb._bufferGeometry);eb.idf;c.memory.geometries++;return f},update:function(a){var ca.index,da.attributes;null!c&&b.update(c,34963);for(var e in d)b.update(de,34962);aa.morphAttributes;for(e in a){cae;d0;for(var fc.length;df;d++)b.update(cd,34962)}},getWireframeAttribute:function(a){var cfa.id;if(c)return c;c;var da.index,ea.attributes;if(null!d){dd.array;e0;for(var gd.length;eg;e+3){var qde+0,vde+1,lde+2;c.push(q,v,v,l,l,q)}}else for(de.position.array,e0,gd.length/3-1;eg;e+3)qe+0,ve+1,le+2,c.push(q,v,v,l,l,q);cnew (65535Se(c)?qb:pb)(c,1);b.update(c,34963);return fa.idc}}}function eg(a,b,c,d){var e,f,g;this.setModefunction(a){ea};this.setIndexfunction(a){fa.type;ga.bytesPerElement};this.renderfunction(b,d){a.drawElements(e,d,f,b*g);c.update(d,e)};this.renderInstancesfunction(h,k,m){if(d.isWebGL2)var pa;else if(pb.get(ANGLE_instanced_arrays),nullp){console.error(THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.);return}pd.isWebGL2?drawElementsInstanced:drawElementsInstancedANGLE(e,m,f,k*g,h.maxInstancedCount);c.update(m,e,h.maxInstancedCount)}}function fg(a){var b{frame:0,calls:0,triangles:0,points:0,lines:0};return{memory:{geometries:0,textures:0},render:b,programs:null,autoReset:!0,reset:function(){b.frame++;b.calls0;b.triangles0;b.points0;b.lines0},update:function(a,d,e){ee||1;b.calls++;switch(d){case 4:b.triangles+a/3*e;break;case 5:case 6:b.triangles+e*(a-2);break;case 1:b.lines+a/2*e;break;case 3:b.lines+e*(a-1);break;case 2:b.lines+e*a;break;case 0:b.points+e*a;break;default:console.error(THREE.WebGLInfo: Unknown draw mode:,d)}}}}function gg(a,b){return Math.abs(b1)-Math.abs(a1)}function hg(a){var b{},cnew Float32Array(8);return{update:function(d,e,f,g){var hd.morphTargetInfluences,kh.length;dbe.id;if(void 0d){d;for(var m0;mk;m++)dmm,0;be.idd}var pf.morphTargets&&e.morphAttributes.position;ff.morphNormals&&e.morphAttributes.normal;for(m0;mk;m++){var qdm;0!q1&&(p&&e.removeAttribute(morphTarget+m),f&&e.removeAttribute(morphNormal+m))}for(m0;mk;m++)qdm,q0m,q1hm;d.sort(gg);for(m0;8>m;m++){if(qdm)if(hq0,kq1){p&&e.addAttribute(morphTarget+m,ph);f&&e.addAttribute(morphNormal+m,fh);cmk;continue}cm0}g.getUniforms().setValue(a,morphTargetInfluences,c)}}}function ig(a,b){var c{};return{update:function(d){var eb.render.frame,fd.geometry,ga.get(d,f);cg.id!e&&(f.isGeometry&&g.updateFromObject(d),a.update(g),cg.ide);return g},dispose:function(){c{}}}}function $a(a,b,c,d,e,f,g,h,k,m){avoid 0!a?a:;V.call(this,a,void 0!b?b:301,c,d,e,f,void 0!g?g:1022,h,k,m);this.flipY!1}function Qb(a,b,c,d){V.call(this,null);this.image{data:a,width:b,height:c,depth:d};this.minFilterthis.magFilter1003;this.wrapR1001;this.flipYthis.generateMipmaps!1}function Rb(a,b,c){var da0;if(0>d||0d)return a;var eb*c,fTee;void 0f&&(fnew Float32Array(e),Teef);if(0!b)for(d.toArray(f,0),d1,e0;d!b;++d)e+c,ad.toArray(f,e);return f}function ca(a,b){if(a.length!b.length)return!1;for(var c0,da.length;cd;c++)if(ac!bc)return!1;return!0}function ha(a,b){for(var c0,db.length;cd;c++)acbc}function Ue(a,b){var cVeb;void 0c&&(cnew Int32Array(b),Vebc);for(var d0;d!b;++d)cda.allocTextureUnit();return c}function jg(a,b){var cthis.cache;c0!b&&(a.uniform1f(this.addr,b),c0b)}function kg(a,b){var cthis.cache;c0!b&&(a.uniform1i(this.addr,b),c0b)}function lg(a,b){var cthis.cache;if(void 0!b.x){if(c0!b.x||c1!b.y)a.uniform2f(this.addr,b.x,b.y),c0b.x,c1b.y}else ca(c,b)||(a.uniform2fv(this.addr,b),ha(c,b))}function mg(a,b){var cthis.cache;if(void 0!b.x){if(c0!b.x||c1!b.y||c2!b.z)a.uniform3f(this.addr,b.x,b.y,b.z),c0b.x,c1b.y,c2b.z}else if(void 0!b.r){if(c0!b.r||c1!b.g||c2!b.b)a.uniform3f(this.addr,b.r,b.g,b.b),c0b.r,c1b.g,c2b.b}else ca(c,b)||(a.uniform3fv(this.addr,b),ha(c,b))}function ng(a,b){var cthis.cache;if(void 0!b.x){if(c0!b.x||c1!b.y||c2!b.z||c3!b.w)a.uniform4f(this.addr,b.x,b.y,b.z,b.w),c0b.x,c1b.y,c2b.z,c3b.w}else ca(c,b)||(a.uniform4fv(this.addr,b),ha(c,b))}function og(a,b){var cthis.cache,db.elements;void 0d?ca(c,b)||(a.uniformMatrix2fv(this.addr,!1,b),ha(c,b)):ca(c,d)||(We.set(d),a.uniformMatrix2fv(this.addr,!1,We),ha(c,d))}function pg(a,b){var cthis.cache,db.elements;void 0d?ca(c,b)||(a.uniformMatrix3fv(this.addr,!1,b),ha(c,b)):ca(c,d)||(Xe.set(d),a.uniformMatrix3fv(this.addr,!1,Xe),ha(c,d))}function qg(a,b){var cthis.cache,db.elements;void 0d?ca(c,b)||(a.uniformMatrix4fv(this.addr,!1,b),ha(c,b)):ca(c,d)||(Ye.set(d),a.uniformMatrix4fv(this.addr,!1,Ye),ha(c,d))}function rg(a,b,c){var dthis.cache,ec.allocTextureUnit();d0!e&&(a.uniform1i(this.addr,e),d0e);c.setTexture2D(b||Ze,e)}function sg(a,b,c){var dthis.cache,ec.allocTextureUnit();d0!e&&(a.uniform1i(this.addr,e),d0e);c.setTexture3D(b||tg,e)}function ug(a,b,c){var dthis.cache,ec.allocTextureUnit();d0!e&&(a.uniform1i(this.addr,e),d0e);c.setTextureCube(b||$e,e)}function af(a,b){var cthis.cache;ca(c,b)||(a.uniform2iv(this.addr,b),ha(c,b))}function bf(a,b){var cthis.cache;ca(c,b)||(a.uniform3iv(this.addr,b),ha(c,b))}function cf(a,b){var cthis.cache;ca(c,b)||(a.uniform4iv(this.addr,b),ha(c,b))}function vg(a){switch(a){case 5126:return jg;case 35664:return lg;case 35665:return mg;case 35666:return ng;case 35674:return og;case 35675:return pg;case 35676:return qg;case 35678:case 36198:return rg;case 35679:return sg;case 35680:return ug;case 5124:case 35670:return kg;case 35667:case 35671:return af;case 35668:case 35672:return bf;case 35669:case 35673:return cf}}function wg(a,b){var cthis.cache;ca(c,b)||(a.uniform1fv(this.addr,b),ha(c,b))}function xg(a,b){var cthis.cache;ca(c,b)||(a.uniform1iv(this.addr,b),ha(c,b))}function yg(a,b){var cthis.cache;bRb(b,this.size,2);ca(c,b)||(a.uniform2fv(this.addr,b),this.updateCache(b))}function zg(a,b){var cthis.cache;bRb(b,this.size,3);ca(c,b)||(a.uniform3fv(this.addr,b),this.updateCache(b))}function Ag(a,b){var cthis.cache;bRb(b,this.size,4);ca(c,b)||(a.uniform4fv(this.addr,b),this.updateCache(b))}function Bg(a,b){var cthis.cache;bRb(b,this.size,4);ca(c,b)||(a.uniformMatrix2fv(this.addr,!1,b),this.updateCache(b))}function Cg(a,b){var cthis.cache;bRb(b,this.size,9);ca(c,b)||(a.uniformMatrix3fv(this.addr,!1,b),this.updateCache(b))}function Dg(a,b){var cthis.cache;bRb(b,this.size,16);ca(c,b)||(a.uniformMatrix4fv(this.addr,!1,b),this.updateCache(b))}function Eg(a,b,c){var dthis.cache,eb.length,fUe(c,e);!1ca(d,f)&&(a.uniform1iv(this.addr,f),ha(d,f));for(a0;a!e;++a)c.setTexture2D(ba||Ze,fa)}function Fg(a,b,c){var dthis.cache,eb.length,fUe(c,e);!1ca(d,f)&&(a.uniform1iv(this.addr,f),ha(d,f));for(a0;a!e;++a)c.setTextureCube(ba||$e,fa)}function Gg(a){switch(a){case 5126:return wg;case 35664:return yg;case 35665:return zg;case 35666:return Ag;case 35674:return Bg;case 35675:return Cg;case 35676:return Dg;case 35678:return Eg;case 35680:return Fg;case 5124:case 35670:return xg;case 35667:case 35671:return af;case 35668:case 35672:return bf;case 35669:case 35673:return cf}}function Hg(a,b,c){this.ida;this.addrc;this.cache;this.setValuevg(b.type)}function df(a,b,c){this.ida;this.addrc;this.cache;this.sizeb.size;this.setValueGg(b.type)}function ef(a){this.ida;this.seq;this.map{}}function fb(a,b,c){this.seq;this.map{};this.rendererc;ca.getProgramParameter(b,35718);for(var d0;dc;++d){var ea.getActiveUniform(b,d),fa.getUniformLocation(b,e.name),gthis,he.name,kh.length;for(ee.lastIndex0;;){var mee.exec(h),pee.lastIndex,qm1,vm3;m2&&(q|0);if(void 0v||v&&p+2k){hg;evoid 0v?new Hg(q,e,f):new df(q,e,f);h.seq.push(e);h.mape.ide;break}else vg.mapq,void 0v&&(vnew ef(q),qg,gv,q.seq.push(g),q.mapg.idg),gv}}}function Ig(a){aa.split(\n);for(var b0;ba.length;b++)abb+1+: +ab;return a.join(\n)}function ff(a,b,c){var da.createShader(b);a.shaderSource(d,c);a.compileShader(d);!1a.getShaderParameter(d,35713)&&console.error(THREE.WebGLShader: Shader couldnt compile.);!a.getShaderInfoLog(d)&&console.warn(THREE.WebGLShader: gl.getShaderInfoLog(),35633b?vertex:fragment,a.getShaderInfoLog(d),Ig(c));return d}function gf(a){switch(a){case 3E3:returnLinear,( value );case 3001:returnsRGB,( value );case 3002:returnRGBE,( value );case 3004:returnRGBM,( value, 7.0 );case 3005:returnRGBM,( value, 16.0 );case 3006:returnRGBD,( value, 256.0 );case 3007:returnGamma,( value, float( GAMMA_FACTOR ) );default:throw Error(unsupported encoding: +a);}}function wd(a,b){bgf(b);returnvec4 +a+( vec4 value ) { return +b0+ToLinear+b1+; }}function Jg(a,b){bgf(b);returnvec4 +a+( vec4 value ) { return LinearTo+b0+b1+; }}function Kg(a,b){switch(b){case 1:bLinear;break;case 2:bReinhard;break;case 3:bUncharted2;break;case 4:bOptimizedCineon;break;case 5:bACESFilmic;break;default:throw Error(unsupported toneMapping: +b);}returnvec3 +a+( vec3 color ) { return +b+ToneMapping( color ); }}function Lg(a,b,c){aa||{};returna.derivatives||b.envMapCubeUV||b.bumpMap||b.normalMap&&!b.objectSpaceNormalMap||b.flatShading?#extension GL_OES_standard_derivatives : enable:,(a.fragDepth||b.logarithmicDepthBuffer)&&c.get(EXT_frag_depth)?#extension GL_EXT_frag_depth : enable:,a.drawBuffers&&c.get(WEBGL_draw_buffers)?#extension GL_EXT_draw_buffers : require:,(a.shaderTextureLOD||b.envMap)&&c.get(EXT_shader_texture_lod)?#extension GL_EXT_shader_texture_lod : enable:.filter(Cc).join(\n)}function Mg(a){var b,c;for(c in a){var dac;!1!d&&b.push(#define +c+ +d)}return b.join(\n)}function Cc(a){return!a}function hf(a,b){return a.replace(/NUM_DIR_LIGHTS/g,b.numDirLights).replace(/NUM_SPOT_LIGHTS/g,b.numSpotLights).replace(/NUM_RECT_AREA_LIGHTS/g,b.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,b.numPointLights).replace(/NUM_HEMI_LIGHTS/g,b.numHemiLights)}function jf(a,b){return a.replace(/NUM_CLIPPING_PLANES/g,b.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,b.numClippingPlanes-b.numClipIntersection)}function fe(a){return a.replace(/^ \t*#include +(\w\d./+)>/gm,function(a,c){aUc;if(void 0a)throw Error(Can not resolve #include +c+>);return fe(a)})}function kf(a){return a.replace(/#pragma unroll_loop\s+?for \( int i (\d+); i (\d+); i \+\+ \) \{(\s\S+?)(?\})\}/g,function(a,c,d,e){a;for(cparseInt(c);cparseInt(d);c++)a+e.replace(/\ i \/g, +c+ );return a})}function Ng(a,b,c,d,e,f,g){var ha.context,kd.defines,me.vertexShader,pe.fragmentShader,qSHADOWMAP_TYPE_BASIC;1f.shadowMapType?qSHADOWMAP_TYPE_PCF:2f.shadowMapType&&(qSHADOWMAP_TYPE_PCF_SOFT);var vENVMAP_TYPE_CUBE,lENVMAP_MODE_REFLECTION,rENVMAP_BLENDING_MULTIPLY;if(f.envMap){switch(d.envMap.mapping){case 301:case 302:vENVMAP_TYPE_CUBE;break;case 306:case 307:vENVMAP_TYPE_CUBE_UV;break;case 303:case 304:vENVMAP_TYPE_EQUIREC;break;case 305:vENVMAP_TYPE_SPHERE}switch(d.envMap.mapping){case 302:case 304:lENVMAP_MODE_REFRACTION}switch(d.combine){case 0:rENVMAP_BLENDING_MULTIPLY;break;case 1:rENVMAP_BLENDING_MIX;break;case 2:rENVMAP_BLENDING_ADD}}var u0a.gammaFactor?a.gammaFactor:1,wg.isWebGL2?:Lg(d.extensions,f,b),nMg(k),xh.createProgram();d.isRawShaderMaterial?(kn.filter(Cc).join(\n),0k.length&&(k+\n),bw,n.filter(Cc).join(\n),0b.length&&(b+\n)):(kprecision +f.precision+ float;,precision +f.precision+ int;,#define SHADER_NAME +e.name,n,f.supportsVertexTextures?#define VERTEX_TEXTURES:,#define GAMMA_FACTOR +u,#define MAX_BONES +f.maxBones,f.useFog&&f.fog?#define USE_FOG:,f.useFog&&f.fogExp?#define FOG_EXP2:,f.map?#define USE_MAP:,f.envMap?#define USE_ENVMAP:,f.envMap?#define +l:,f.lightMap?#define USE_LIGHTMAP:,f.aoMap?#define USE_AOMAP:,f.emissiveMap?#define USE_EMISSIVEMAP:,f.bumpMap?#define USE_BUMPMAP:,f.normalMap?#define USE_NORMALMAP:,f.normalMap&&f.objectSpaceNormalMap?#define OBJECTSPACE_NORMALMAP:,f.displacementMap&&f.supportsVertexTextures?#define USE_DISPLACEMENTMAP:,f.specularMap?#define USE_SPECULARMAP:,f.roughnessMap?#define USE_ROUGHNESSMAP:,f.metalnessMap?#define USE_METALNESSMAP:,f.alphaMap?#define USE_ALPHAMAP:,f.vertexTangents?#define USE_TANGENT:,f.vertexColors?#define USE_COLOR:,f.flatShading?#define FLAT_SHADED:,f.skinning?#define USE_SKINNING:,f.useVertexTexture?#define BONE_TEXTURE:,f.morphTargets?#define USE_MORPHTARGETS:,f.morphNormals&&!1f.flatShading?#define USE_MORPHNORMALS:,f.doubleSided?#define DOUBLE_SIDED:,f.flipSided?#define FLIP_SIDED:,f.shadowMapEnabled?#define USE_SHADOWMAP:,f.shadowMapEnabled?#define +q:,f.sizeAttenuation?#define USE_SIZEATTENUATION:,f.logarithmicDepthBuffer?#define USE_LOGDEPTHBUF:,f.logarithmicDepthBuffer&&(g.isWebGL2||b.get(EXT_frag_depth))?#define USE_LOGDEPTHBUF_EXT:,uniform mat4 modelMatrix;,uniform mat4 modelViewMatrix;,uniform mat4 projectionMatrix;,uniform mat4 viewMatrix;,uniform mat3 normalMatrix;,uniform vec3 cameraPosition;,attribute vec3 position;,attribute vec3 normal;,attribute vec2 uv;,#ifdef USE_TANGENT,\tattribute vec4 tangent;,#endif,#ifdef USE_COLOR,\tattribute vec3 color;,#endif,#ifdef USE_MORPHTARGETS,\tattribute vec3 morphTarget0;,\tattribute vec3 morphTarget1;,\tattribute vec3 morphTarget2;,\tattribute vec3 morphTarget3;,\t#ifdef USE_MORPHNORMALS,\t\tattribute vec3 morphNormal0;,\t\tattribute vec3 morphNormal1;,\t\tattribute vec3 morphNormal2;,\t\tattribute vec3 morphNormal3;,\t#else,\t\tattribute vec3 morphTarget4;,\t\tattribute vec3 morphTarget5;,\t\tattribute vec3 morphTarget6;,\t\tattribute vec3 morphTarget7;,\t#endif,#endif,#ifdef USE_SKINNING,\tattribute vec4 skinIndex;,\tattribute vec4 skinWeight;,#endif,\n.filter(Cc).join(\n),bw,precision +f.precision+ float;,precision +f.precision+ int;,#define SHADER_NAME +e.name,n,f.alphaTest?#define ALPHATEST +f.alphaTest+(f.alphaTest%1?:.0):,#define GAMMA_FACTOR +u,f.useFog&&f.fog?#define USE_FOG:,f.useFog&&f.fogExp?#define FOG_EXP2:,f.map?#define USE_MAP:,f.matcap?#define USE_MATCAP:,f.envMap?#define USE_ENVMAP:,f.envMap?#define +v:,f.envMap?#define +l:,f.envMap?#define +r:,f.lightMap?#define USE_LIGHTMAP:,f.aoMap?#define USE_AOMAP:,f.emissiveMap?#define USE_EMISSIVEMAP:,f.bumpMap?#define USE_BUMPMAP:,f.normalMap?#define USE_NORMALMAP:,f.normalMap&&f.objectSpaceNormalMap?#define OBJECTSPACE_NORMALMAP:,f.specularMap?#define USE_SPECULARMAP:,f.roughnessMap?#define USE_ROUGHNESSMAP:,f.metalnessMap?#define USE_METALNESSMAP:,f.alphaMap?#define USE_ALPHAMAP:,f.vertexTangents?#define USE_TANGENT:,f.vertexColors?#define USE_COLOR:,f.gradientMap?#define USE_GRADIENTMAP:,f.flatShading?#define FLAT_SHADED:,f.doubleSided?#define DOUBLE_SIDED:,f.flipSided?#define FLIP_SIDED:,f.shadowMapEnabled?#define USE_SHADOWMAP:,f.shadowMapEnabled?#define +q:,f.premultipliedAlpha?#define PREMULTIPLIED_ALPHA:,f.physicallyCorrectLights?#define PHYSICALLY_CORRECT_LIGHTS:,f.logarithmicDepthBuffer?#define USE_LOGDEPTHBUF:,f.logarithmicDepthBuffer&&(g.isWebGL2||b.get(EXT_frag_depth))?#define USE_LOGDEPTHBUF_EXT:,f.envMap&&(g.isWebGL2||b.get(EXT_shader_texture_lod))?#define TEXTURE_LOD_EXT:,uniform mat4 viewMatrix;,uniform vec3 cameraPosition;,0!f.toneMapping?#define TONE_MAPPING:,0!f.toneMapping?U.tonemapping_pars_fragment:,0!f.toneMapping?Kg(toneMapping,f.toneMapping):,f.dithering?#define DITHERING:,f.outputEncoding||f.mapEncoding||f.matcapEncoding||f.envMapEncoding||f.emissiveMapEncoding?U.encodings_pars_fragment:,f.mapEncoding?wd(mapTexelToLinear,f.mapEncoding):,f.matcapEncoding?wd(matcapTexelToLinear,f.matcapEncoding):,f.envMapEncoding?wd(envMapTexelToLinear,f.envMapEncoding):,f.emissiveMapEncoding?wd(emissiveMapTexelToLinear,f.emissiveMapEncoding):,f.outputEncoding?Jg(linearToOutputTexel,f.outputEncoding):,f.depthPacking?#define DEPTH_PACKING +d.depthPacking:,\n.filter(Cc).join(\n));mfe(m);mhf(m,f);mjf(m,f);pfe(p);phf(p,f);pjf(p,f);mkf(m);pkf(p);g.isWebGL2&&!d.isRawShaderMaterial&&(g!1,q/^\s*#version\s+300\s+es\s*\n/,d.isShaderMaterial&&null!m.match(q)&&null!p.match(q)&&(g!0,mm.replace(q,),pp.replace(q,)),k#version 300 es\n\n#define attribute in\n#define varying out\n#define texture2D texture\n+k,b#version 300 es\n\n#define varying in,g?:out highp vec4 pc_fragColor;,g?:#define gl_FragColor pc_fragColor,#define gl_FragDepthEXT gl_FragDepth\n#define texture2D texture\n#define textureCube texture\n#define texture2DProj textureProj\n#define texture2DLodEXT textureLod\n#define texture2DProjLodEXT textureProjLod\n#define textureCubeLodEXT textureLod\n#define texture2DGradEXT textureGrad\n#define texture2DProjGradEXT textureProjGrad\n#define textureCubeGradEXT textureGrad.join(\n)+\n+b);pb+p;mff(h,35633,k+m);pff(h,35632,p);h.attachShader(x,m);h.attachShader(x,p);void 0!d.index0AttributeName?h.bindAttribLocation(x,0,d.index0AttributeName):!0f.morphTargets&&h.bindAttribLocation(x,0,position);h.linkProgram(x);fh.getProgramInfoLog(x).trim();gh.getShaderInfoLog(m).trim();qh.getShaderInfoLog(p).trim();lv!0;if(!1h.getProgramParameter(x,35714))v!1,console.error(THREE.WebGLProgram: shader error: ,h.getError(),35715,h.getProgramParameter(x,35715),gl.getProgramInfoLog,f,g,q);else if(!f)console.warn(THREE.WebGLProgram: gl.getProgramInfoLog(),f);else if(g||q)l!1;l&&(this.diagnostics{runnable:v,material:d,programLog:f,vertexShader:{log:g,prefix:k},fragmentShader:{log:q,prefix:b}});h.deleteShader(m);h.deleteShader(p);var D;this.getUniformsfunction(){void 0D&&(Dnew fb(h,x,a));return D};var y;this.getAttributesfunction(){if(void 0y){for(var a{},bh.getProgramParameter(x,35721),c0;cb;c++){var dh.getActiveAttrib(x,c).name;adh.getAttribLocation(x,d)}ya}return y};this.destroyfunction(){h.deleteProgram(x);this.programvoid 0};Object.defineProperties(this,{uniforms:{get:function(){console.warn(THREE.WebGLProgram: .uniforms is now .getUniforms().);return this.getUniforms()}},attributes:{get:function(){console.warn(THREE.WebGLProgram: .attributes is now .getAttributes().);return this.getAttributes()}}});this.namee.name;this.idOg++;this.codec;this.usedTimes1;this.programx;this.vertexShaderm;this.fragmentShaderp;return this}function Pg(a,b,c){function d(a,b){if(a)a.isTexture?ca.encoding:a.isWebGLRenderTarget&&(console.warn(THREE.WebGLPrograms.getTextureEncodingFromMap: dont use render targets as textures. Use their .texture property instead.),ca.texture.encoding);else var c3E3;3E3c&&b&&(c3007);return c}var e,f{MeshDepthMaterial:depth,MeshDistanceMaterial:distanceRGBA,MeshNormalMaterial:normal,MeshBasicMaterial:basic,MeshLambertMaterial:lambert,MeshPhongMaterial:phong,MeshToonMaterial:phong,MeshStandardMaterial:physical,MeshPhysicalMaterial:physical,MeshMatcapMaterial:matcap,LineBasicMaterial:basic,LineDashedMaterial:dashed,PointsMaterial:points,ShadowMaterial:shadow,SpriteMaterial:sprite},gprecision supportsVertexTextures map mapEncoding matcap matcapEncoding envMap envMapMode envMapEncoding lightMap aoMap emissiveMap emissiveMapEncoding bumpMap normalMap objectSpaceNormalMap displacementMap specularMap roughnessMap metalnessMap gradientMap alphaMap combine vertexColors vertexTangents fog useFog fogExp flatShading sizeAttenuation logarithmicDepthBuffer skinning maxBones useVertexTexture morphTargets morphNormals maxMorphTargets maxMorphNormals premultipliedAlpha numDirLights numPointLights numSpotLights numHemiLights numRectAreaLights shadowMapEnabled shadowMapType toneMapping physicallyCorrectLights alphaTest doubleSided flipSided numClippingPlanes numClipIntersection depthPacking dithering.split( );this.getParametersfunction(b,e,g,p,q,v,l){var hfb.type;if(l.isSkinnedMesh){var kl.skeleton.bones;if(c.floatVertexTextures)k1024;else{var mMath.min(Math.floor((c.maxVertexUniforms-20)/4),k.length);mk.length?(console.warn(THREE.WebGLRenderer: Skeleton has +k.length+ bones. This GPU supports +m+.),k0):km}}else k0;mc.precision;null!b.precision&&(mc.getMaxPrecision(b.precision),m!b.precision&&console.warn(THREE.WebGLProgram.getParameters:,b.precision,not supported, using,m,instead.));var ta.getRenderTarget();return{shaderID:h,precision:m,supportsVertexTextures:c.vertexTextures,outputEncoding:d(t?t.texture:null,a.gammaOutput),map:!!b.map,mapEncoding:d(b.map,a.gammaInput),matcap:!!b.matcap,matcapEncoding:d(b.matcap,a.gammaInput),envMap:!!b.envMap,envMapMode:b.envMap&&b.envMap.mapping,envMapEncoding:d(b.envMap,a.gammaInput),envMapCubeUV:!!b.envMap&&(306b.envMap.mapping||307b.envMap.mapping),lightMap:!!b.lightMap,aoMap:!!b.aoMap,emissiveMap:!!b.emissiveMap,emissiveMapEncoding:d(b.emissiveMap,a.gammaInput),bumpMap:!!b.bumpMap,normalMap:!!b.normalMap,objectSpaceNormalMap:1b.normalMapType,displacementMap:!!b.displacementMap,roughnessMap:!!b.roughnessMap,metalnessMap:!!b.metalnessMap,specularMap:!!b.specularMap,alphaMap:!!b.alphaMap,gradientMap:!!b.gradientMap,combine:b.combine,vertexTangents:b.normalMap&&b.vertexTangents,vertexColors:b.vertexColors,fog:!!p,useFog:b.fog,fogExp:p&&p.isFogExp2,flatShading:b.flatShading,sizeAttenuation:b.sizeAttenuation,logarithmicDepthBuffer:c.logarithmicDepthBuffer,skinning:b.skinning&&0k,maxBones:k,useVertexTexture:c.floatVertexTextures,morphTargets:b.morphTargets,morphNormals:b.morphNormals,maxMorphTargets:a.maxMorphTargets,maxMorphNormals:a.maxMorphNormals,numDirLights:e.directional.length,numPointLights:e.point.length,numSpotLights:e.spot.length,numRectAreaLights:e.rectArea.length,numHemiLights:e.hemi.length,numClippingPlanes:q,numClipIntersection:v,dithering:b.dithering,shadowMapEnabled:a.shadowMap.enabled&&l.receiveShadow&&0g.length,shadowMapType:a.shadowMap.type,toneMapping:a.toneMapping,physicallyCorrectLights:a.physicallyCorrectLights,premultipliedAlpha:b.premultipliedAlpha,alphaTest:b.alphaTest,doubleSided:2b.side,flipSided:1b.side,depthPacking:void 0!b.depthPacking?b.depthPacking:!1}};this.getProgramCodefunction(b,c){var d;c.shaderID?d.push(c.shaderID):(d.push(b.fragmentShader),d.push(b.vertexShader));if(void 0!b.defines)for(var e in b.defines)d.push(e),d.push(b.definese);for(e0;eg.length;e++)d.push(cge);d.push(b.onBeforeCompile.toString());d.push(a.gammaOutput);d.push(a.gammaFactor);return d.join()};this.acquireProgramfunction(d,f,g,p){for(var h,k0,me.length;km;k++){var lek;if(l.codep){hl;++h.usedTimes;break}}void 0h&&(hnew Ng(a,b,p,d,f,g,c),e.push(h));return h};this.releaseProgramfunction(a){if(0--a.usedTimes){var be.indexOf(a);ebee.length-1;e.pop();a.destroy()}};this.programse}function Qg(){var anew WeakMap;return{get:function(b){var ca.get(b);void 0c&&(c{},a.set(b,c));return c},remove:function(b){a.delete(b)},update:function(b,c,d){a.get(b)cd},dispose:function(){anew WeakMap}}}function Rg(a,b){return a.groupOrder!b.groupOrder?a.groupOrder-b.groupOrder:a.renderOrder!b.renderOrder?a.renderOrder-b.renderOrder:a.program&&b.program&&a.program!b.program?a.program.id-b.program.id:a.material.id!b.material.id?a.material.id-b.material.id:a.z!b.z?a.z-b.z:a.id-b.id}function Sg(a,b){return a.groupOrder!b.groupOrder?a.groupOrder-b.groupOrder:a.renderOrder!b.renderOrder?a.renderOrder-b.renderOrder:a.z!b.z?b.z-a.z:a.id-b.id}function lf(){function a(a,d,e,k,m,p){var fbc;void 0f?(f{id:a.id,object:a,geometry:d,material:e,program:e.program,groupOrder:k,renderOrder:a.renderOrder,z:m,group:p},bcf):(f.ida.id,f.objecta,f.geometryd,f.materiale,f.programe.program,f.groupOrderk,f.renderOrdera.renderOrder,f.zm,f.groupp);c++;return f}var b,c0,d,e;return{opaque:d,transparent:e,init:function(){c0;d.length0;e.length0},push:function(b,c,h,k,m,p){ba(b,c,h,k,m,p);(!0h.transparent?e:d).push(b)},unshift:function(b,c,h,k,m,p){ba(b,c,h,k,m,p);(!0h.transparent?e:d).unshift(b)},sort:function(){1d.length&&d.sort(Rg);1e.length&&e.sort(Sg)}}}function Tg(){function a(c){cc.target;c.removeEventListener(dispose,a);delete bc.id}var b{};return{get:function(c,d){var ebc.id;if(void 0e){var fnew lf;bc.id{};bc.idd.idf;c.addEventListener(dispose,a)}else fed.id,void 0f&&(fnew lf,ed.idf);return f},dispose:function(){b{}}}}function Ug(){var a{};return{get:function(b){if(void 0!ab.id)return ab.id;switch(b.type){case DirectionalLight:var c{direction:new n,color:new K,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new B};break;case SpotLight:c{position:new n,direction:new n,color:new K,distance:0,coneCos:0,penumbraCos:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new B};break;case PointLight:c{position:new n,color:new K,distance:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new B,shadowCameraNear:1,shadowCameraFar:1E3};break;case HemisphereLight:c{direction:new n,skyColor:new K,groundColor:new K};break;case RectAreaLight:c{color:new K,position:new n,halfWidth:new n,halfHeight:new n}}return ab.idc}}}function Vg(){var anew Ug,b{id:Wg++,hash:{stateID:-1,directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,shadowsLength:-1},ambient:0,0,0,directional:,directionalShadowMap:,directionalShadowMatrix:,spot:,spotShadowMap:,spotShadowMatrix:,rectArea:,point:,pointShadowMap:,pointShadowMatrix:,hemi:},cnew n,dnew J,enew J;return{setup:function(f,g,h){var k0,m0,p0,q0,v0,l0,r0,u0;hh.matrixWorldInverse;for(var w0,nf.length;wn;w++){var xfw,Dx.color,yx.intensity,Qx.distance,fax.shadow&&x.shadow.map?x.shadow.map.texture:null;if(x.isAmbientLight)k+D.r*y,m+D.g*y,p+D.b*y;else if(x.isDirectionalLight){var Aa.get(x);A.color.copy(x.color).multiplyScalar(x.intensity);A.direction.setFromMatrixPosition(x.matrixWorld);c.setFromMatrixPosition(x.target.matrixWorld);A.direction.sub(c);A.direction.transformDirection(h);if(A.shadowx.castShadow)Dx.shadow,A.shadowBiasD.bias,A.shadowRadiusD.radius,A.shadowMapSizeD.mapSize;b.directionalShadowMapqfa;b.directionalShadowMatrixqx.shadow.matrix;b.directionalqA;q++}else if(x.isSpotLight){Aa.get(x);A.position.setFromMatrixPosition(x.matrixWorld);A.position.applyMatrix4(h);A.color.copy(D).multiplyScalar(y);A.distanceQ;A.direction.setFromMatrixPosition(x.matrixWorld);c.setFromMatrixPosition(x.target.matrixWorld);A.direction.sub(c);A.direction.transformDirection(h);A.coneCosMath.cos(x.angle);A.penumbraCosMath.cos(x.angle*(1-x.penumbra));A.decayx.decay;if(A.shadowx.castShadow)Dx.shadow,A.shadowBiasD.bias,A.shadowRadiusD.radius,A.shadowMapSizeD.mapSize;b.spotShadowMaplfa;b.spotShadowMatrixlx.shadow.matrix;b.spotlA;l++}else if(x.isRectAreaLight)Aa.get(x),A.color.copy(D).multiplyScalar(y),A.position.setFromMatrixPosition(x.matrixWorld),A.position.applyMatrix4(h),e.identity(),d.copy(x.matrixWorld),d.premultiply(h),e.extractRotation(d),A.halfWidth.set(.5*x.width,0,0),A.halfHeight.set(0,.5*x.height,0),A.halfWidth.applyMatrix4(e),A.halfHeight.applyMatrix4(e),b.rectArearA,r++;else if(x.isPointLight){Aa.get(x);A.position.setFromMatrixPosition(x.matrixWorld);A.position.applyMatrix4(h);A.color.copy(x.color).multiplyScalar(x.intensity);A.distancex.distance;A.decayx.decay;if(A.shadowx.castShadow)Dx.shadow,A.shadowBiasD.bias,A.shadowRadiusD.radius,A.shadowMapSizeD.mapSize,A.shadowCameraNearD.camera.near,A.shadowCameraFarD.camera.far;b.pointShadowMapvfa;b.pointShadowMatrixvx.shadow.matrix;b.pointvA;v++}else x.isHemisphereLight&&(Aa.get(x),A.direction.setFromMatrixPosition(x.matrixWorld),A.direction.transformDirection(h),A.direction.normalize(),A.skyColor.copy(x.color).multiplyScalar(y),A.groundColor.copy(x.groundColor).multiplyScalar(y),b.hemiuA,u++)}b.ambient0k;b.ambient1m;b.ambient2p;b.directional.lengthq;b.spot.lengthl;b.rectArea.lengthr;b.point.lengthv;b.hemi.lengthu;b.hash.stateIDb.id;b.hash.directionalLengthq;b.hash.pointLengthv;b.hash.spotLengthl;b.hash.rectAreaLengthr;b.hash.hemiLengthu;b.hash.shadowsLengthg.length},state:b}}function mf(){var anew Vg,b,c;return{init:function(){b.length0;c.length0},state:{lightsArray:b,shadowsArray:c,lights:a},setupLights:function(d){a.setup(b,c,d)},pushLight:function(a){b.push(a)},pushShadow:function(a){c.push(a)}}}function Xg(){function a(c){cc.target;c.removeEventListener(dispose,a);delete bc.id}var b{};return{get:function(c,d){if(void 0bc.id){var enew mf;bc.id{};bc.idd.ide;c.addEventListener(dispose,a)}else void 0bc.idd.id?(enew mf,bc.idd.ide):ebc.idd.id;return e},dispose:function(){b{}}}}function gb(a){M.call(this);this.typeMeshDepthMaterial;this.depthPacking3200;this.morphTargetsthis.skinning!1;this.displacementMapthis.alphaMapthis.mapnull;this.displacementScale1;this.displacementBias0;this.wireframe!1;this.wireframeLinewidth1;this.lightsthis.fog!1;this.setValues(a)}function hb(a){M.call(this);this.typeMeshDistanceMaterial;this.referencePositionnew n;this.nearDistance1;this.farDistance1E3;this.morphTargetsthis.skinning!1;this.displacementMapthis.alphaMapthis.mapnull;this.displacementScale1;this.displacementBias0;this.lightsthis.fog!1;this.setValues(a)}function nf(a,b,c){function d(b,c,d,e,f,g){var hb.geometry;var kq;var mb.customDepthMaterial;d&&(kv,mb.customDistanceMaterial);m?km:(m!1,c.morphTargets&&(h&&h.isBufferGeometry?mh.morphAttributes&&h.morphAttributes.position&&0h.morphAttributes.position.length:h&&h.isGeometry&&(mh.morphTargets&&0h.morphTargets.length)),b.isSkinnedMesh&&!1c.skinning&&console.warn(THREE.WebGLShadowMap: THREE.SkinnedMesh with material.skinning set to false:,b),bb.isSkinnedMesh&&c.skinning,h0,m&&(h|1),b&&(h|2),kkh);a.localClippingEnabled&&!0c.clipShadows&&0!c.clippingPlanes.length&&(hk.uuid,mc.uuid,blh,void 0b&&(b{},lhb),hbm,void 0h&&(hk.clone(),bmh),kh);k.visiblec.visible;k.wireframec.wireframe;k.sidenull!c.shadowSide?c.shadowSide:rc.side;k.clipShadowsc.clipShadows;k.clippingPlanesc.clippingPlanes;k.clipIntersectionc.clipIntersection;k.wireframeLinewidthc.wireframeLinewidth;k.linewidthc.linewidth;d&&k.isMeshDistanceMaterial&&(k.referencePosition.copy(e),k.nearDistancef,k.farDistanceg);return k}function e(c,g,h,k){if(!1!c.visible){if(c.layers.test(g.layers)&&(c.isMesh||c.isLine||c.isPoints)&&c.castShadow&&(!c.frustumCulled||f.intersectsObject(c))){c.modelViewMatrix.multiplyMatrices(h.matrixWorldInverse,c.matrixWorld);var mb.update(c),qc.material;if(Array.isArray(q))for(var vm.groups,l0,tv.length;lt;l++){var rvl,uqr.materialIndex;u&&u.visible&&(ud(c,u,k,p,h.near,h.far),a.renderBufferDirect(h,null,m,u,c,r))}else q.visible&&(ud(c,q,k,p,h.near,h.far),a.renderBufferDirect(h,null,m,u,c,null))}cc.children;m0;for(qc.length;mq;m++)e(cm,g,h,k)}}var fnew ud,gnew J,hnew B,knew B(c,c),mnew n,pnew n,qArray(4),vArray(4),l{},r{0:1,1:0,2:2},unew n(1,0,0),new n(-1,0,0),new n(0,0,1),new n(0,0,-1),new n(0,1,0),new n(0,-1,0),wnew n(0,1,0),new n(0,1,0),new n(0,1,0),new n(0,1,0),new n(0,0,1),new n(0,0,-1),znew ba,new ba,new ba,new ba,new ba,new ba;for(c0;4!c;++c){var x0!(c&1),D0!(c&2),ynew gb({depthPacking:3201,morphTargets:x,skinning:D});qcy;xnew hb({morphTargets:x,skinning:D});vcx}var Qthis;this.enabled!1;this.autoUpdate!0;this.needsUpdate!1;this.type1;this.renderfunction(b,c,d){if(!1!Q.enabled&&(!1!Q.autoUpdate||!1!Q.needsUpdate)&&0!b.length){var qa.getRenderTarget(),va.state;v.setBlending(0);v.buffers.color.setClear(1,1,1,1);v.buffers.depth.setTest(!0);v.setScissorTest(!1);for(var l,t0,rb.length;tr;t++){var nbt;ln.shadow;var xn&&n.isPointLight;if(void 0l)console.warn(THREE.WebGLShadowMap:,n,has no shadow.);else{var yl.camera;h.copy(l.mapSize);h.min(k);if(x){var Dh.x,Ah.y;z0.set(2*D,A,D,A);z1.set(0,A,D,A);z2.set(3*D,A,D,A);z3.set(D,A,D,A);z4.set(3*D,0,D,A);z5.set(D,0,D,A);h.x*4;h.y*2}nulll.map&&(l.mapnew Ra(h.x,h.y,{minFilter:1003,magFilter:1003,format:1023}),l.map.texture.namen.name+.shadowMap,y.updateProjectionMatrix());l.isSpotLightShadow&&l.update(n);Dl.map;Al.matrix;p.setFromMatrixPosition(n.matrixWorld);y.position.copy(p);x?(l6,A.makeTranslation(-p.x,-p.y,-p.z)):(l1,m.setFromMatrixPosition(n.target.matrixWorld),y.lookAt(m),y.updateMatrixWorld(),A.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),A.multiply(y.projectionMatrix),A.multiply(y.matrixWorldInverse));a.setRenderTarget(D);a.clear();for(n0;nl;n++)x&&(m.copy(y.position),m.add(un),y.up.copy(wn),y.lookAt(m),y.updateMatrixWorld(),v.viewport(zn)),g.multiplyMatrices(y.projectionMatrix,y.matrixWorldInverse),f.setFromMatrix(g),e(c,d,y,x)}}Q.needsUpdate!1;a.setRenderTarget(q)}}}function Yg(a,b,c,d){function e(b,c,d){var enew Uint8Array(4),fa.createTexture();a.bindTexture(b,f);a.texParameteri(b,10241,9728);a.texParameteri(b,10240,9728);for(b0;bd;b++)a.texImage2D(c+b,0,6408,1,1,0,6408,5121,e);return f}function f(c,e){zc1;0xc&&(a.enableVertexAttribArray(c),xc1);Dc!e&&((d.isWebGL2?a:b.get(ANGLE_instanced_arrays))d.isWebGL2?vertexAttribDivisor:vertexAttribDivisorANGLE(c,e),Dce)}function g(b){!0!yb&&(a.enable(b),yb!0)}function h(b){!1!yb&&(a.disable(b),yb!1)}function k(b,d,e,f,k,m,p,q){if(0b)A&&(h(3042),A!1);else if(A||(g(3042),A!0),5!b){if(b!B||q!de){if(100!F||100!vd)a.blendEquation(32774),vdF100;if(q)switch(b){case 1:a.blendFuncSeparate(1,771,1,771);break;case 2:a.blendFunc(1,1);break;case 3:a.blendFuncSeparate(0,0,769,771);break;case 4:a.blendFuncSeparate(0,768,0,770);break;default:console.error(THREE.WebGLState: Invalid blending: ,b)}else switch(b){case 1:a.blendFuncSeparate(770,771,1,771);break;case 2:a.blendFunc(770,1);break;case 3:a.blendFunc(0,769);break;case 4:a.blendFunc(0,768);break;default:console.error(THREE.WebGLState: Invalid blending: ,b)}cebeXAcnull;Bb;deq}}else{kk||d;mm||e;pp||f;if(d!F||k!vd)a.blendEquationSeparate(c.convert(d),c.convert(k)),Fd,vdk;if(e!Ac||f!X||m!be||p!ce)a.blendFuncSeparate(c.convert(e),c.convert(f),c.convert(m),c.convert(p)),Ace,Xf,bem,cep;Bb;denull}}function m(b){E!b&&(b?a.frontFace(2304):a.frontFace(2305),Eb)}function p(b){0!b?(g(2884),b!C&&(1b?a.cullFace(1029):2b?a.cullFace(1028):a.cullFace(1032))):h(2884);Cb}function q(b,c,d){if(b){if(g(32823),I!c||K!d)a.polygonOffset(c,d),Ic,Kd}else h(32823)}function v(b){void 0b&&(b33984+L-1);G!b&&(a.activeTexture(b),Gb)}var lnew function(){var b!1,cnew ba,dnull,enew ba(0,0,0,0);return{setMask:function(c){dc||b||(a.colorMask(c,c,c,c),dc)},setLocked:function(a){ba},setClear:function(b,d,f,g,h){!0h&&(b*g,d*g,f*g);c.set(b,d,f,g);!1e.equals(c)&&(a.clearColor(b,d,f,g),e.copy(c))},reset:function(){b!1;dnull;e.set(-1,0,0,0)}}},rnew function(){var b!1,cnull,dnull,enull;return{setTest:function(a){a?g(2929):h(2929)},setMask:function(d){cd||b||(a.depthMask(d),cd)},setFunc:function(b){if(d!b){if(b)switch(b){case 0:a.depthFunc(512);break;case 1:a.depthFunc(519);break;case 2:a.depthFunc(513);break;case 3:a.depthFunc(515);break;case 4:a.depthFunc(514);break;case 5:a.depthFunc(518);break;case 6:a.depthFunc(516);break;case 7:a.depthFunc(517);break;default:a.depthFunc(515)}else a.depthFunc(515);db}},setLocked:function(a){ba},setClear:function(b){e!b&&(a.clearDepth(b),eb)},reset:function(){b!1;edcnull}}},unew function(){var b!1,cnull,dnull,enull,fnull,knull,mnull,pnull,qnull;return{setTest:function(a){a?g(2960):h(2960)},setMask:function(d){cd||b||(a.stencilMask(d),cd)},setFunc:function(b,c,g){if(d!b||e!c||f!g)a.stencilFunc(b,c,g),db,ec,fg},setOp:function(b,c,d){if(k!b||m!c||p!d)a.stencilOp(b,c,d),kb,mc,pd},setLocked:function(a){ba},setClear:function(b){q!b&&(a.clearStencil(b),qb)},reset:function(){b!1;qpmkfedcnull}}},na.getParameter(34921),znew Uint8Array(n),xnew Uint8Array(n),Dnew Uint8Array(n),y{},Qnull,fanull,Anull,Bnull,Fnull,Acnull,Xnull,vdnull,benull,cenull,de!1,Enull,Cnull,tanull,Inull,Knull,La.getParameter(35661),J!1;n0;na.getParameter(7938);-1!n.indexOf(WebGL)?(nparseFloat(/^WebGL (0-9)/.exec(n)1),J1n):-1!n.indexOf(OpenGL ES)&&(nparseFloat(/^OpenGL ES (0-9)/.exec(n)1),J2n);var Gnull,H{},Mnew ba,Nnew ba,T{};T3553e(3553,3553,1);T34067e(34067,34069,6);l.setClear(0,0,0,1);r.setClear(1);u.setClear(0);g(2929);r.setFunc(3);m(!1);p(1);g(2884);k(0);return{buffers:{color:l,depth:r,stencil:u},initAttributes:function(){for(var a0,bz.length;ab;a++)za0},enableAttribute:function(a){f(a,0)},enableAttributeAndDivisor:f,disableUnusedAttributes:function(){for(var b0,cx.length;b!c;++b)xb!zb&&(a.disableVertexAttribArray(b),xb0)},enable:g,disable:h,getCompressedTextureFormats:function(){if(nullQ&&(Q,b.get(WEBGL_compressed_texture_pvrtc)||b.get(WEBGL_compressed_texture_s3tc)||b.get(WEBGL_compressed_texture_etc1)||b.get(WEBGL_compressed_texture_astc)))for(var ca.getParameter(34467),d0;dc.length;d++)Q.push(cd);return Q},useProgram:function(b){return fa!b?(a.useProgram(b),fab,!0):!1},setBlending:k,setMaterial:function(a,b){2a.side?h(2884):g(2884);var c1a.side;b&&(c!c);m(c);1a.blending&&!1a.transparent?k(0):k(a.blending,a.blendEquation,a.blendSrc,a.blendDst,a.blendEquationAlpha,a.blendSrcAlpha,a.blendDstAlpha,a.premultipliedAlpha);r.setFunc(a.depthFunc);r.setTest(a.depthTest);r.setMask(a.depthWrite);l.setMask(a.colorWrite);q(a.polygonOffset,a.polygonOffsetFactor,a.polygonOffsetUnits)},setFlipSided:m,setCullFace:p,setLineWidth:function(b){b!ta&&(J&&a.lineWidth(b),tab)},setPolygonOffset:q,setScissorTest:function(a){a?g(3089):h(3089)},activeTexture:v,bindTexture:function(b,c){nullG&&v();var dHG;void 0d&&(d{type:void 0,texture:void 0},HGd);if(d.type!b||d.texture!c)a.bindTexture(b,c||Tb),d.typeb,d.texturec},compressedTexImage2D:function(){try{a.compressedTexImage2D.apply(a,arguments)}catch(ea){console.error(THREE.WebGLState:,ea)}},texImage2D:function(){try{a.texImage2D.apply(a,arguments)}catch(ea){console.error(THREE.WebGLState:,ea)}},texImage3D:function(){try{a.texImage3D.apply(a,arguments)}catch(ea){console.error(THREE.WebGLState:,ea)}},scissor:function(b){!1M.equals(b)&&(a.scissor(b.x,b.y,b.z,b.w),M.copy(b))},viewport:function(b){!1N.equals(b)&&(a.viewport(b.x,b.y,b.z,b.w),N.copy(b))},reset:function(){for(var b0;bx.length;b++)1xb&&(a.disableVertexAttribArray(b),xb0);y{};GQnull;H{};CEBfanull;l.reset();r.reset();u.reset()}}}function Zg(a,b,c,d,e,f,g){function h(a,b){return F?new OffscreenCanvas(a,b):document.createElementNS(http://www.w3.org/1999/xhtml,canvas)}function k(a,b,c,d){var e1;if(a.width>d||a.height>d)ed/Math.max(a.width,a.height);if(1>e||!0b){if(a instanceof ImageBitmap||a instanceof HTMLImageElement||a instanceof HTMLCanvasElement)return db?H.floorPowerOfTwo:Math.floor,bd(e*a.width),ed(e*a.height),void 0B&&(Bh(b,e)),cc?h(b,e):B,c.widthb,c.heighte,c.getContext(2d).drawImage(a,0,0,b,e),console.warn(THREE.WebGLRenderer: Texture has been resized from (+a.width+x+a.height+) to (+b+x+e+).),F?c.transferToImageBitmap():c;datain a&&console.warn(THREE.WebGLRenderer: Image in DataTexture is too big (+a.width+x+a.height+).)}return a}function m(a){return H.isPowerOfTwo(a.width)&&H.isPowerOfTwo(a.height)}function p(a,b){return a.generateMipmaps&&b&&1003!a.minFilter&&1006!a.minFilter}function q(b,c,e,f){a.generateMipmap(b);d.get(c).__maxMipLevelMath.log(Math.max(e,f))*Math.LOG2E}function v(a,c){if(!e.isWebGL2)return a;var da;6403a&&(5126c&&(d33326),5131c&&(d33325),5121c&&(d33321));6407a&&(5126c&&(d34837),5131c&&(d34843),5121c&&(d32849));6408a&&(5126c&&(d34836),5131c&&(d34842),5121c&&(d32856));33325d||33326d||34842d||34836d?b.get(EXT_color_buffer_float):(34843d||34837d)&&console.warn(THREE.WebGLRenderer: Floating point textures with RGB format not supported. Please use RGBA instead.);return d}function l(a){return 1003a||1004a||1005a?9728:9729}function r(b){bb.target;b.removeEventListener(dispose,r);var cd.get(b);void 0!c.__webglInit&&(a.deleteTexture(c.__webglTexture),d.remove(b));b.isVideoTexture&&delete Ab.id;g.memory.textures--}function u(b){bb.target;b.removeEventListener(dispose,u);var cd.get(b),ed.get(b.texture);if(b){void 0!e.__webglTexture&&a.deleteTexture(e.__webglTexture);b.depthTexture&&b.depthTexture.dispose();if(b.isWebGLRenderTargetCube)for(e0;6>e;e++)a.deleteFramebuffer(c.__webglFramebuffere),c.__webglDepthbuffer&&a.deleteRenderbuffer(c.__webglDepthbuffere);else a.deleteFramebuffer(c.__webglFramebuffer),c.__webglDepthbuffer&&a.deleteRenderbuffer(c.__webglDepthbuffer);d.remove(b.texture);d.remove(b)}g.memory.textures--}function n(a,b){var ed.get(a);if(a.isVideoTexture){var fa.id,hg.render.frame;Af!h&&(Afh,a.update())}if(0a.version&&e.__version!a.version)if(fa.image,void 0f)console.warn(THREE.WebGLRenderer: Texture marked for update but image is undefined);else if(!1f.complete)console.warn(THREE.WebGLRenderer: Texture marked for update but image is incomplete);else{D(e,a,b);return}c.activeTexture(33984+b);c.bindTexture(3553,e.__webglTexture)}function z(c,g,h){h?(a.texParameteri(c,10242,f.convert(g.wrapS)),a.texParameteri(c,10243,f.convert(g.wrapT)),32879c&&a.texParameteri(c,32882,f.convert(g.wrapR)),a.texParameteri(c,10240,f.convert(g.magFilter)),a.texParameteri(c,10241,f.convert(g.minFilter))):(a.texParameteri(c,10242,33071),a.texParameteri(c,10243,33071),32879c&&a.texParameteri(c,32882,33071),1001g.wrapS&&1001g.wrapT||console.warn(THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping.),a.texParameteri(c,10240,l(g.magFilter)),a.texParameteri(c,10241,l(g.minFilter)),1003!g.minFilter&&1006!g.minFilter&&console.warn(THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.));!(hb.get(EXT_texture_filter_anisotropic))||1015g.type&&nullb.get(OES_texture_float_linear)||1016g.type&&null(e.isWebGL2||b.get(OES_texture_half_float_linear))||!(1g.anisotropy||d.get(g).__currentAnisotropy)||(a.texParameterf(c,h.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(g.anisotropy,e.getMaxAnisotropy())),d.get(g).__currentAnisotropyg.anisotropy)}function x(b,c){void 0b.__webglInit&&(b.__webglInit!0,c.addEventListener(dispose,r),b.__webglTexturea.createTexture(),g.memory.textures++)}function D(b,d,g){var hd.isDataTexture3D?32879:3553;x(b,d);c.activeTexture(33984+g);c.bindTexture(h,b.__webglTexture);a.pixelStorei(37440,d.flipY);a.pixelStorei(37441,d.premultiplyAlpha);a.pixelStorei(3317,d.unpackAlignment);ge.isWebGL2?!1:1001!d.wrapS||1001!d.wrapT||1003!d.minFilter&&1006!d.minFilter;gg&&!1m(d.image);gk(d.image,g,!1,e.maxTextureSize);var lm(g)||e.isWebGL2,tf.convert(d.format),rf.convert(d.type),uv(t,r);z(h,d,l);var nd.mipmaps;if(d.isDepthTexture){u6402;if(1015d.type){if(!e.isWebGL2)throw Error(Float Depth Texture only supported in WebGL2.0);u36012}else e.isWebGL2&&(u33189);1026d.format&&6402u&&1012!d.type&&1014!d.type&&(console.warn(THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture.),d.type1012,rf.convert(d.type));1027d.format&&(u34041,1020!d.type&&(console.warn(THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture.),d.type1020,rf.convert(d.type)));c.texImage2D(3553,0,u,g.width,g.height,0,t,r,null)}else if(d.isDataTexture)if(0n.length&&l){for(var w0,yn.length;wy;w++)hnw,c.texImage2D(3553,w,u,h.width,h.height,0,t,r,h.data);d.generateMipmaps!1;b.__maxMipLeveln.length-1}else c.texImage2D(3553,0,u,g.width,g.height,0,t,r,g.data),b.__maxMipLevel0;else if(d.isCompressedTexture){w0;for(yn.length;wy;w++)hnw,1023!d.format&&1022!d.format?-1c.getCompressedTextureFormats().indexOf(t)?c.compressedTexImage2D(3553,w,u,h.width,h.height,0,h.data):console.warn(THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()):c.texImage2D(3553,w,u,h.width,h.height,0,t,r,h.data);b.__maxMipLeveln.length-1}else if(d.isDataTexture3D)c.texImage3D(32879,0,u,g.width,g.height,g.depth,0,t,r,g.data),b.__maxMipLevel0;else if(0n.length&&l){w0;for(yn.length;wy;w++)hnw,c.texImage2D(3553,w,u,t,r,h);d.generateMipmaps!1;b.__maxMipLeveln.length-1}else c.texImage2D(3553,0,u,t,r,g),b.__maxMipLevel0;p(d,l)&&q(3553,d,g.width,g.height);b.__versiond.version;if(d.onUpdate)d.onUpdate(d)}function y(b,e,g,h){var kf.convert(e.texture.format),mf.convert(e.texture.type),pv(k,m);c.texImage2D(h,0,p,e.width,e.height,0,k,m,null);a.bindFramebuffer(36160,b);a.framebufferTexture2D(36160,g,h,d.get(e.texture).__webglTexture,0);a.bindFramebuffer(36160,null)}function Q(b,c,d){a.bindRenderbuffer(36161,b);if(c.depthBuffer&&!c.stencilBuffer)d?(dfa(c),a.renderbufferStorageMultisample(36161,d,33189,c.width,c.height)):a.renderbufferStorage(36161,33189,c.width,c.height),a.framebufferRenderbuffer(36160,36096,36161,b);else if(c.depthBuffer&&c.stencilBuffer)d?(dfa(c),a.renderbufferStorageMultisample(36161,d,34041,c.width,c.height)):a.renderbufferStorage(36161,34041,c.width,c.height),a.framebufferRenderbuffer(36160,33306,36161,b);else{bf.convert(c.texture.format);var ef.convert(c.texture.type);bv(b,e);d?(dfa(c),a.renderbufferStorageMultisample(36161,d,b,c.width,c.height)):a.renderbufferStorage(36161,b,c.width,c.height)}a.bindRenderbuffer(36161,null)}function fa(a){return e.isWebGL2&&a.isWebGLMultisampleRenderTarget?Math.min(e.maxSamples,a.samples):0}var A{},B,Fundefined!typeof OffscreenCanvas;this.setTexture2Dn;this.setTexture3Dfunction(a,b){var ed.get(a);0a.version&&e.__version!a.version?D(e,a,b):(c.activeTexture(33984+b),c.bindTexture(32879,e.__webglTexture))};this.setTextureCubefunction(b,g){var hd.get(b);if(6b.image.length)if(0b.version&&h.__version!b.version){x(h,b);c.activeTexture(33984+g);c.bindTexture(34067,h.__webglTexture);a.pixelStorei(37440,b.flipY);gb&&b.isCompressedTexture;for(var lb.image0&&b.image0.isDataTexture,t,r0;6>r;r++)trg||l?l?b.imager.image:b.imager:k(b.imager,!1,!0,e.maxCubemapSize);var ut0,nm(u)||e.isWebGL2,wf.convert(b.format),yf.convert(b.type),Dv(w,y);z(34067,b,n);for(r0;6>r;r++)if(g)for(var A,fatr.mipmaps,Q0,Acfa.length;QAc;Q++)AfaQ,1023!b.format&&1022!b.format?-1c.getCompressedTextureFormats().indexOf(w)?c.compressedTexImage2D(34069+r,Q,D,A.width,A.height,0,A.data):console.warn(THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()):c.texImage2D(34069+r,Q,D,A.width,A.height,0,w,y,A.data);else l?c.texImage2D(34069+r,0,D,tr.width,tr.height,0,w,y,tr.data):c.texImage2D(34069+r,0,D,w,y,tr);h.__maxMipLevelg?fa.length-1:0;p(b,n)&&q(34067,b,u.width,u.height);h.__versionb.version;if(b.onUpdate)b.onUpdate(b)}else c.activeTexture(33984+g),c.bindTexture(34067,h.__webglTexture)};this.setTextureCubeDynamicfunction(a,b){c.activeTexture(33984+b);c.bindTexture(34067,d.get(a).__webglTexture)};this.setupRenderTargetfunction(b){var hd.get(b),kd.get(b.texture);b.addEventListener(dispose,u);k.__webglTexturea.createTexture();g.memory.textures++;var l!0b.isWebGLRenderTargetCube,r!0b.isWebGLMultisampleRenderTarget,tm(b)||e.isWebGL2;if(l)for(h.__webglFramebuffer,r0;6>r;r++)h.__webglFramebufferra.createFramebuffer();else if(h.__webglFramebuffera.createFramebuffer(),r)if(e.isWebGL2){h.__webglMultisampledFramebuffera.createFramebuffer();h.__webglColorRenderbuffera.createRenderbuffer();a.bindRenderbuffer(36161,h.__webglColorRenderbuffer);rf.convert(b.texture.format);var wf.convert(b.texture.type);rv(r,w);wfa(b);a.renderbufferStorageMultisample(36161,w,r,b.width,b.height);a.bindFramebuffer(36160,h.__webglMultisampledFramebuffer);a.framebufferRenderbuffer(36160,36064,36161,h.__webglColorRenderbuffer);a.bindRenderbuffer(36161,null);b.depthBuffer&&(h.__webglDepthRenderbuffera.createRenderbuffer(),Q(h.__webglDepthRenderbuffer,b,!0));a.bindFramebuffer(36160,null)}else console.warn(THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.);if(l){c.bindTexture(34067,k.__webglTexture);z(34067,b.texture,t);for(r0;6>r;r++)y(h.__webglFramebufferr,b,36064,34069+r);p(b.texture,t)&&q(34067,b.texture,b.width,b.height);c.bindTexture(34067,null)}else c.bindTexture(3553,k.__webglTexture),z(3553,b.texture,t),y(h.__webglFramebuffer,b,36064,3553),p(b.texture,t)&&q(3553,b.texture,b.width,b.height),c.bindTexture(3553,null);if(b.depthBuffer){hd.get(b);k!0b.isWebGLRenderTargetCube;if(b.depthTexture){if(k)throw Error(target.depthTexture not supported in Cube render targets);if(b&&b.isWebGLRenderTargetCube)throw Error(Depth Texture with cube render targets is not supported);a.bindFramebuffer(36160,h.__webglFramebuffer);if(!b.depthTexture||!b.depthTexture.isDepthTexture)throw Error(renderTarget.depthTexture must be an instance of THREE.DepthTexture);d.get(b.depthTexture).__webglTexture&&b.depthTexture.image.widthb.width&&b.depthTexture.image.heightb.height||(b.depthTexture.image.widthb.width,b.depthTexture.image.heightb.height,b.depthTexture.needsUpdate!0);n(b.depthTexture,0);hd.get(b.depthTexture).__webglTexture;if(1026b.depthTexture.format)a.framebufferTexture2D(36160,36096,3553,h,0);else if(1027b.depthTexture.format)a.framebufferTexture2D(36160,33306,3553,h,0);else throw Error(Unknown depthTexture format);}else if(k)for(h.__webglDepthbuffer,k0;6>k;k++)a.bindFramebuffer(36160,h.__webglFramebufferk),h.__webglDepthbufferka.createRenderbuffer(),Q(h.__webglDepthbufferk,b);else a.bindFramebuffer(36160,h.__webglFramebuffer),h.__webglDepthbuffera.createRenderbuffer(),Q(h.__webglDepthbuffer,b);a.bindFramebuffer(36160,null)}};this.updateRenderTargetMipmapfunction(a){var ba.texture,fm(a)||e.isWebGL2;if(p(b,f)){fa.isWebGLRenderTargetCube?34067:3553;var gd.get(b).__webglTexture;c.bindTexture(f,g);q(f,b,a.width,a.height);c.bindTexture(f,null)}};this.updateMultisampleRenderTargetfunction(b){if(b.isWebGLMultisampleRenderTarget)if(e.isWebGL2){var cd.get(b);a.bindFramebuffer(36008,c.__webglMultisampledFramebuffer);a.bindFramebuffer(36009,c.__webglFramebuffer);cb.width;var fb.height,g16384;b.depthBuffer&&(g|256);b.stencilBuffer&&(g|1024);a.blitFramebuffer(0,0,c,f,0,0,c,f,g,9728)}else console.warn(THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.)}}function of(a,b,c){return{convert:function(a){if(1E3a)return 10497;if(1001a)return 33071;if(1002a)return 33648;if(1003a)return 9728;if(1004a)return 9984;if(1005a)return 9986;if(1006a)return 9729;if(1007a)return 9985;if(1008a)return 9987;if(1009a)return 5121;if(1017a)return 32819;if(1018a)return 32820;if(1019a)return 33635;if(1010a)return 5120;if(1011a)return 5122;if(1012a)return 5123;if(1013a)return 5124;if(1014a)return 5125;if(1015a)return 5126;if(1016a){if(c.isWebGL2)return 5131;var db.get(OES_texture_half_float);if(null!d)return d.HALF_FLOAT_OES}if(1021a)return 6406;if(1022a)return 6407;if(1023a)return 6408;if(1024a)return 6409;if(1025a)return 6410;if(1026a)return 6402;if(1027a)return 34041;if(1028a)return 6403;if(100a)return 32774;if(101a)return 32778;if(102a)return 32779;if(200a)return 0;if(201a)return 1;if(202a)return 768;if(203a)return 769;if(204a)return 770;if(205a)return 771;if(206a)return 772;if(207a)return 773;if(208a)return 774;if(209a)return 775;if(210a)return 776;if(33776a||33777a||33778a||33779a)if(db.get(WEBGL_compressed_texture_s3tc),null!d){if(33776a)return d.COMPRESSED_RGB_S3TC_DXT1_EXT;if(33777a)return d.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(33778a)return d.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(33779a)return d.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(35840a||35841a||35842a||35843a)if(db.get(WEBGL_compressed_texture_pvrtc),null!d){if(35840a)return d.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(35841a)return d.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(35842a)return d.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(35843a)return d.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(36196a&&(db.get(WEBGL_compressed_texture_etc1),null!d))return d.COMPRESSED_RGB_ETC1_WEBGL;if(37808a||37809a||37810a||37811a||37812a||37813a||37814a||37815a||37816a||37817a||37818a||37819a||37820a||37821a)if(db.get(WEBGL_compressed_texture_astc),null!d)return a;if(103a||104a){if(c.isWebGL2){if(103a)return 32775;if(104a)return 32776}db.get(EXT_blend_minmax);if(null!d){if(103a)return d.MIN_EXT;if(104a)return d.MAX_EXT}}if(1020a){if(c.isWebGL2)return 34042;db.get(WEBGL_depth_texture);if(null!d)return d.UNSIGNED_INT_24_8_WEBGL}return 0}}}function Sb(){E.call(this);this.typeGroup}function Ua(){E.call(this);this.typeCamera;this.matrixWorldInversenew J;this.projectionMatrixnew J;this.projectionMatrixInversenew J}function S(a,b,c,d){Ua.call(this);this.typePerspectiveCamera;this.fovvoid 0!a?a:50;this.zoom1;this.nearvoid 0!c?c:.1;this.farvoid 0!d?d:2E3;this.focus10;this.aspectvoid 0!b?b:1;this.viewnull;this.filmGauge35;this.filmOffset0;this.updateProjectionMatrix()}function Ec(a){S.call(this);this.camerasa||}function pf(a,b,c){qf.setFromMatrixPosition(b.matrixWorld);rf.setFromMatrixPosition(c.matrixWorld);var dqf.distanceTo(rf),eb.projectionMatrix.elements,fc.projectionMatrix.elements,ge14/(e10-1);ce14/(e10+1);var h(e9+1)/e5,k(e9-1)/e5,m(e8-1)/e0,p(f8+1)/f0;eg*m;fg*p;pd/(-m+p);mp*-m;b.matrixWorld.decompose(a.position,a.quaternion,a.scale);a.translateX(m);a.translateZ(p);a.matrixWorld.compose(a.position,a.quaternion,a.scale);a.matrixWorldInverse.getInverse(a.matrixWorld);bg+p;gc+p;a.projectionMatrix.makePerspective(e-m,f+(d-m),h*c/g*b,k*c/g*b,b,g)}function sf(a){function b(){return null!e&&!0e.isPresenting}function c(){if(b()){var ce.getEyeParameters(left),fc.renderWidth*p;cc.renderHeight*p;Da.getPixelRatio();a.getSize(x);a.setDrawingBufferSize(2*f,c,1);Q.start()}else d.enabled&&a.setDrawingBufferSize(x.width,x.height,D),Q.stop()}var dthis,enull,fnull,gnull,h,knew J,mnew J,p1,qstage;undefined!typeof window&&VRFrameDatain window&&(fnew window.VRFrameData,window.addEventListener(vrdisplaypresentchange,c,!1));var vnew J,lnew aa,rnew n,unew S;u.boundsnew ba(0,0,.5,1);u.layers.enable(1);var wnew S;w.boundsnew ba(.5,0,.5,1);w.layers.enable(2);var znew Ec(u,w);z.layers.enable(1);z.layers.enable(2);var xnew B,D,y;this.enabled!1;this.getControllerfunction(a){var bha;void 0b&&(bnew Sb,b.matrixAutoUpdate!1,b.visible!1,hab);return b};this.getDevicefunction(){return e};this.setDevicefunction(a){void 0!a&&(ea);Q.setContext(a)};this.setFramebufferScaleFactorfunction(a){pa};this.setFrameOfReferenceTypefunction(a){qa};this.setPoseTargetfunction(a){void 0!a&&(ga)};this.getCamerafunction(a){var cstageq?1.6:0;if(!1b())return a.position.set(0,c,0),a.rotation.set(0,0,0),a;e.depthNeara.near;e.depthFara.far;e.getFrameData(f);if(stageq){var de.stageParameters;d?k.fromArray(d.sittingToStandingTransform):k.makeTranslation(0,c,0)}cf.pose;dnull!g?g:a;d.matrix.copy(k);d.matrix.decompose(d.position,d.quaternion,d.scale);null!c.orientation&&(l.fromArray(c.orientation),d.quaternion.multiply(l));null!c.position&&(l.setFromRotationMatrix(k),r.fromArray(c.position),r.applyQuaternion(l),d.position.add(r));d.updateMatrixWorld();u.neara.near;w.neara.near;u.fara.far;w.fara.far;u.matrixWorldInverse.fromArray(f.leftViewMatrix);w.matrixWorldInverse.fromArray(f.rightViewMatrix);m.getInverse(k);stageq&&(u.matrixWorldInverse.multiply(m),w.matrixWorldInverse.multiply(m));ad.parent;null!a&&(v.getInverse(a.matrixWorld),u.matrixWorldInverse.multiply(v),w.matrixWorldInverse.multiply(v));u.matrixWorld.getInverse(u.matrixWorldInverse);w.matrixWorld.getInverse(w.matrixWorldInverse);u.projectionMatrix.fromArray(f.leftProjectionMatrix);w.projectionMatrix.fromArray(f.rightProjectionMatrix);pf(z,u,w);ae.getLayers();a.length&&(aa0,null!a.leftBounds&&4a.leftBounds.length&&u.bounds.fromArray(a.leftBounds),null!a.rightBounds&&4a.rightBounds.length&&w.bounds.fromArray(a.rightBounds));a:for(a0;ah.length;a++){cha;b:{da;for(var pnavigator.getGamepads&&navigator.getGamepads(),t0,n0,xp.length;tx;t++){var Dpt;if(D&&(Daydream ControllerD.id||Gear VR ControllerD.id||Oculus Go ControllerD.id||OpenVR GamepadD.id||D.id.startsWith(Oculus Touch)||D.id.startsWith(Spatial Controller))){if(nd){dD;break b}n++}}dvoid 0}if(void 0!d&&void 0!d.pose){if(nulld.pose)break a;pd.pose;!1p.hasPosition&&c.position.set(.2,-.6,-.05);null!p.position&&c.position.fromArray(p.position);null!p.orientation&&c.quaternion.fromArray(p.orientation);c.matrix.compose(c.position,c.quaternion,c.scale);c.matrix.premultiply(k);c.matrix.decompose(c.position,c.quaternion,c.scale);c.matrixWorldNeedsUpdate!0;c.visible!0;pDaydream Controllerd.id?0:1;ya!d.buttonsp.pressed&&(yad.buttonsp.pressed,!0ya?c.dispatchEvent({type:selectstart}):(c.dispatchEvent({type:selectend}),c.dispatchEvent({type:select})))}else c.visible!1}return z};this.getStandingMatrixfunction(){return k};this.isPresentingb;var Qnew $d;this.setAnimationLoopfunction(a){Q.setAnimationLoop(a)};this.submitFramefunction(){b()&&e.submitFrame()};this.disposefunction(){undefined!typeof window&&window.removeEventListener(vrdisplaypresentchange,c)}}function $g(a){function b(){return null!h&&null!m}function c(a){var blt.indexOf(a.inputSource);b&&b.dispatchEvent({type:a.type})}function d(){a.setFramebuffer(null);a.setRenderTarget(a.getRenderTarget());x.stop()}function e(a,b){nullb?a.matrixWorld.copy(a.matrix):a.matrixWorld.multiplyMatrices(b.matrixWorld,a.matrix);a.matrixWorldInverse.getInverse(a.matrixWorld)}var fa.context,gnull,hnull,k1,mnull,pstage,qnull,l,t,rnew S;r.layers.enable(1);r.viewportnew ba;var unew S;u.layers.enable(2);u.viewportnew ba;var nnew Ec(r,u);n.layers.enable(1);n.layers.enable(2);this.enabled!1;this.getControllerfunction(a){var bla;void 0b&&(bnew Sb,b.matrixAutoUpdate!1,b.visible!1,lab);return b};this.getDevicefunction(){return g};this.setDevicefunction(a){void 0!a&&(ga);a instanceof XRDevice&&f.setCompatibleXRDevice(a)};this.setFramebufferScaleFactorfunction(a){ka};this.setFrameOfReferenceTypefunction(a){pa};this.setSessionfunction(b){hb;null!h&&(h.addEventListener(select,c),h.addEventListener(selectstart,c),h.addEventListener(selectend,c),h.addEventListener(end,d),h.baseLayernew XRWebGLLayer(h,f,{framebufferScaleFactor:k}),h.requestFrameOfReference(p).then(function(b){mb;a.setFramebuffer(h.baseLayer.framebuffer);x.setContext(h);x.start()}),th.getInputSources(),h.addEventListener(inputsourceschange,function(){th.getInputSources();console.log(t);for(var a0;al.length;a++)la.userData.inputSourceta}))};this.getCamerafunction(a){if(b()){var ca.parent,dn.cameras;e(n,c);for(var f0;fd.length;f++)e(df,c);a.matrixWorld.copy(n.matrixWorld);aa.children;f0;for(ca.length;fc;f++)af.updateMatrixWorld(!0);pf(n,r,u);return n}return a};this.isPresentingb;var znull,xnew $d;x.setAnimationLoop(function(a,b){qb.getDevicePose(m);if(null!q)for(var ch.baseLayer,db.views,e0;ed.length;e++){var fde,gc.getViewport(f),kq.getViewMatrix(f),pn.camerase;p.matrix.fromArray(k).getInverse(p.matrix);p.projectionMatrix.fromArray(f.projectionMatrix);p.viewport.set(g.x,g.y,g.width,g.height);0e&&n.matrix.copy(p.matrix)}for(e0;el.length;e++){cle;if(dte)if(db.getInputPose(d,m),null!d){targetRayin d?c.matrix.elementsd.targetRay.transformMatrix:pointerMatrixin d&&(c.matrix.elementsd.pointerMatrix);c.matrix.decompose(c.position,c.rotation,c.scale);c.visible!0;continue}c.visible!1}z&&z(a)});this.setAnimationLoopfunction(a){za};this.disposefunction(){};this.getStandingMatrixfunction(){console.warn(THREE.WebXRManager: getStandingMatrix() is no longer needed.);return new J};this.submitFramefunction(){}}function he(a){var b;function c(){lanew cg(O);zanew ag(O,la,a);za.isWebGL2||(la.get(WEBGL_depth_texture),la.get(OES_texture_float),la.get(OES_texture_half_float),la.get(OES_texture_half_float_linear),la.get(OES_standard_derivatives),la.get(OES_element_index_uint),la.get(ANGLE_instanced_arrays));la.get(OES_texture_float_linear);janew of(O,la,za);Znew Yg(O,la,ja,za);Z.scissor(W.copy(aa).multiplyScalar(T));Z.viewport(V.copy(ea).multiplyScalar(T));hanew fg(O);Danew Qg;danew Zg(O,la,Z,Da,za,ja,ha);ranew Uf(O);uanew dg(O,ra,ha);oanew ig(ua,ha);xanew hg(O);manew Pg(X,la,za);vanew Tg;qanew Xg;nanew Zf(X,Z,oa,fa);Aanew $f(O,la,ha,za);Banew eg(O,la,ha,za);ha.programsma.programs;X.contextO;X.capabilitiesza;X.extensionsla;X.propertiesDa;X.renderListsva;X.stateZ;X.infoha}function d(a){a.preventDefault();console.log(THREE.WebGLRenderer: Context Lost.);K!0}function e(){console.log(THREE.WebGLRenderer: Context Restored.);K!1;c()}function f(a){aa.target;a.removeEventListener(dispose,f);g(a);Da.remove(a)}function g(a){var bDa.get(a).program;a.programvoid 0;void 0!b&&ma.releaseProgram(b)}function h(a,b){a.render(function(a){X.renderBufferImmediate(a,b)})}function k(a,b,c,d){if(!1!a.visible){if(a.layers.test(b.layers))if(a.isGroup)ca.renderOrder;else if(a.isLight)C.pushLight(a),a.castShadow&&C.pushShadow(a);else if(a.isSprite){if(!a.frustumCulled||sa.intersectsSprite(a)){d&&ib.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Dc);var eoa.update(a),fa.material;E.push(a,e,f,c,ib.z,null)}}else if(a.isImmediateRenderObject)d&&ib.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Dc),E.push(a,null,a.material,c,ib.z,null);else if(a.isMesh||a.isLine||a.isPoints)if(a.isSkinnedMesh&&a.skeleton.update(),!a.frustumCulled||sa.intersectsObject(a))if(d&&ib.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Dc),eoa.update(a),fa.material,Array.isArray(f))for(var ge.groups,h0,mg.length;hm;h++){var pgh,qfp.materialIndex;q&&q.visible&&E.push(a,e,q,c,ib.z,p)}else f.visible&&E.push(a,e,f,c,ib.z,null);aa.children;h0;for(ma.length;hm;h++)k(ah,b,c,d)}}function m(a,b,c,d){for(var e0,fa.length;ef;e++){var gae,hg.object,kg.geometry,mvoid 0d?g.material:d;gg.group;if(c.isArrayCamera){Rc;for(var qc.cameras,l0,vq.length;lv;l++){var rql;if(h.layers.test(r.layers)){if(viewportin r)Z.viewport(V.copy(r.viewport));else{var tr.bounds;Z.viewport(V.set(t.x*S,t.y*N,t.z*S,t.w*N).multiplyScalar(T))}C.setupLights(r);p(h,b,r,k,m,g)}}}else Rnull,p(h,b,c,k,m,g)}}function p(a,c,d,e,f,g){a.onBeforeRender(X,c,d,e,f,g);Cqa.get(c,R||d);a.modelViewMatrix.multiplyMatrices(d.matrixWorldInverse,a.matrixWorld);a.normalMatrix.getNormalMatrix(a.modelViewMatrix);if(a.isImmediateRenderObject){Z.setMaterial(f);var kl(d,c.fog,f,a);Ubnull;ta!1;h(a,k)}else X.renderBufferDirect(d,c.fog,e,f,a,g);a.onAfterRender(X,c,d,e,f,g);Cqa.get(c,R||d)}function q(a,b,c){var dDa.get(a),eC.state.lights,hd.lightsHash,ke.state.hash;cma.getParameters(a,e.state,C.state.shadowsArray,b,Y.numPlanes,Y.numIntersection,c);var mma.getProgramCode(a,c),pd.program,q!0;if(void 0p)a.addEventListener(dispose,f);else if(p.code!m)g(a);else{if(h.stateID!k.stateID||h.directionalLength!k.directionalLength||h.pointLength!k.pointLength||h.spotLength!k.spotLength||h.rectAreaLength!k.rectAreaLength||h.hemiLength!k.hemiLength||h.shadowsLength!k.shadowsLength)h.stateIDk.stateID,h.directionalLengthk.directionalLength,h.pointLengthk.pointLength,h.spotLengthk.spotLength,h.rectAreaLengthk.rectAreaLength,h.hemiLengthk.hemiLength,h.shadowsLengthk.shadowsLength;else if(void 0!c.shaderID)return;q!1}q&&(c.shaderID?(mTac.shaderID,d.shader{name:a.type,uniforms:Mb(m.uniforms),vertexShader:m.vertexShader,fragmentShader:m.fragmentShader}):d.shader{name:a.type,uniforms:a.uniforms,vertexShader:a.vertexShader,fragmentShader:a.fragmentShader},a.onBeforeCompile(d.shader,X),mma.getProgramCode(a,c),pma.acquireProgram(a,d.shader,c,m),d.programp,a.programp);cp.getAttributes();if(a.morphTargets)for(ma.numSupportedMorphTargets0;mX.maxMorphTargets;m++)0cmorphTarget+m&&a.numSupportedMorphTargets++;if(a.morphNormals)for(ma.numSupportedMorphNormals0;mX.maxMorphNormals;m++)0cmorphNormal+m&&a.numSupportedMorphNormals++;cd.shader.uniforms;if(!a.isShaderMaterial&&!a.isRawShaderMaterial||!0a.clipping)d.numClippingPlanesY.numPlanes,d.numIntersectionY.numIntersection,c.clippingPlanesY.uniform;d.fogb;void 0h&&(d.lightsHashh{});h.stateIDk.stateID;h.directionalLengthk.directionalLength;h.pointLengthk.pointLength;h.spotLengthk.spotLength;h.rectAreaLengthk.rectAreaLength;h.hemiLengthk.hemiLength;h.shadowsLengthk.shadowsLength;a.lights&&(c.ambientLightColor.valuee.state.ambient,c.directionalLights.valuee.state.directional,c.spotLights.valuee.state.spot,c.rectAreaLights.valuee.state.rectArea,c.pointLights.valuee.state.point,c.hemisphereLights.valuee.state.hemi,c.directionalShadowMap.valuee.state.directionalShadowMap,c.directionalShadowMatrix.valuee.state.directionalShadowMatrix,c.spotShadowMap.valuee.state.spotShadowMap,c.spotShadowMatrix.valuee.state.spotShadowMatrix,c.pointShadowMap.valuee.state.pointShadowMap,c.pointShadowMatrix.valuee.state.pointShadowMatrix);ad.program.getUniforms();afb.seqWithValue(a.seq,c);d.uniformsLista}function l(a,b,c,d){ia0;var eDa.get(c),fe.lightsHash,gC.state.lights.state.hash;xd&&(ge||a!Pb)&&Y.setState(c.clippingPlanes,c.clipIntersection,c.clipShadows,a,e,aPb&&c.idP);!1c.needsUpdate&&(void 0e.program?c.needsUpdate!0:c.fog&&e.fog!b?c.needsUpdate!0:!c.lights||f.stateIDg.stateID&&f.directionalLengthg.directionalLength&&f.pointLengthg.pointLength&&f.spotLengthg.spotLength&&f.rectAreaLengthg.rectAreaLength&&f.hemiLengthg.hemiLength&&f.shadowsLengthg.shadowsLength?void 0e.numClippingPlanes||e.numClippingPlanesY.numPlanes&&e.numIntersectionY.numIntersection||(c.needsUpdate!0):c.needsUpdate!0);c.needsUpdate&&(q(c,b,d),c.needsUpdate!1);var h!1,k!1,m!1;fe.program;gf.getUniforms();var pe.shader.uniforms;Z.useProgram(f.program)&&(mkh!0);c.id!P&&(Pc.id,k!0);if(h||Pb!a){g.setValue(O,projectionMatrix,a.projectionMatrix);za.logarithmicDepthBuffer&&g.setValue(O,logDepthBufFC,2/(Math.log(a.far+1)/Math.LN2));Pb!a&&(Pba,mk!0);if(c.isShaderMaterial||c.isMeshPhongMaterial||c.isMeshStandardMaterial||c.envMap)hg.map.cameraPosition,void 0!h&&h.setValue(O,ib.setFromMatrixPosition(a.matrixWorld));(c.isMeshPhongMaterial||c.isMeshLambertMaterial||c.isMeshBasicMaterial||c.isMeshStandardMaterial||c.isShaderMaterial||c.skinning)&&g.setValue(O,viewMatrix,a.matrixWorldInverse)}if(c.skinning&&(g.setOptional(O,d,bindMatrix),g.setOptional(O,d,bindMatrixInverse),ad.skeleton))if(ha.bones,za.floatVertexTextures){if(void 0a.boneTexture){hMath.sqrt(4*h.length);hH.ceilPowerOfTwo(h);hMath.max(h,4);var lnew Float32Array(h*h*4);l.set(a.boneMatrices);var vnew nb(l,h,h,1023,1015);v.needsUpdate!0;a.boneMatricesl;a.boneTexturev;a.boneTextureSizeh}g.setValue(O,boneTexture,a.boneTexture);g.setValue(O,boneTextureSize,a.boneTextureSize)}else g.setOptional(O,a,boneMatrices);k&&(g.setValue(O,toneMappingExposure,X.toneMappingExposure),g.setValue(O,toneMappingWhitePoint,X.toneMappingWhitePoint),c.lights&&(km,p.ambientLightColor.needsUpdatek,p.directionalLights.needsUpdatek,p.pointLights.needsUpdatek,p.spotLights.needsUpdatek,p.rectAreaLights.needsUpdatek,p.hemisphereLights.needsUpdatek),b&&c.fog&&(p.fogColor.valueb.color,b.isFog?(p.fogNear.valueb.near,p.fogFar.valueb.far):b.isFogExp2&&(p.fogDensity.valueb.density)),c.isMeshBasicMaterial?t(p,c):c.isMeshLambertMaterial?(t(p,c),c.emissiveMap&&(p.emissiveMap.valuec.emissiveMap)):c.isMeshPhongMaterial?(t(p,c),c.isMeshToonMaterial?(r(p,c),c.gradientMap&&(p.gradientMap.valuec.gradientMap)):r(p,c)):c.isMeshStandardMaterial?(t(p,c),c.isMeshPhysicalMaterial?(u(p,c),p.reflectivity.valuec.reflectivity,p.clearCoat.valuec.clearCoat,p.clearCoatRoughness.valuec.clearCoatRoughness):u(p,c)):c.isMeshMatcapMaterial?(t(p,c),c.matcap&&(p.matcap.valuec.matcap),c.bumpMap&&(p.bumpMap.valuec.bumpMap,p.bumpScale.valuec.bumpScale,1c.side&&(p.bumpScale.value*-1)),c.normalMap&&(p.normalMap.valuec.normalMap,p.normalScale.value.copy(c.normalScale),1c.side&&p.normalScale.value.negate()),c.displacementMap&&(p.displacementMap.valuec.displacementMap,p.displacementScale.valuec.displacementScale,p.displacementBias.valuec.displacementBias)):c.isMeshDepthMaterial?(t(p,c),c.displacementMap&&(p.displacementMap.valuec.displacementMap,p.displacementScale.valuec.displacementScale,p.displacementBias.valuec.displacementBias)):c.isMeshDistanceMaterial?(t(p,c),c.displacementMap&&(p.displacementMap.valuec.displacementMap,p.displacementScale.valuec.displacementScale,p.displacementBias.valuec.displacementBias),p.referencePosition.value.copy(c.referencePosition),p.nearDistance.valuec.nearDistance,p.farDistance.valuec.farDistance):c.isMeshNormalMaterial?(t(p,c),c.bumpMap&&(p.bumpMap.valuec.bumpMap,p.bumpScale.valuec.bumpScale,1c.side&&(p.bumpScale.value*-1)),c.normalMap&&(p.normalMap.valuec.normalMap,p.normalScale.value.copy(c.normalScale),1c.side&&p.normalScale.value.negate()),c.displacementMap&&(p.displacementMap.valuec.displacementMap,p.displacementScale.valuec.displacementScale,p.displacementBias.valuec.displacementBias)):c.isLineBasicMaterial?(p.diffuse.valuec.color,p.opacity.valuec.opacity,c.isLineDashedMaterial&&(p.dashSize.valuec.dashSize,p.totalSize.valuec.dashSize+c.gapSize,p.scale.valuec.scale)):c.isPointsMaterial?(p.diffuse.valuec.color,p.opacity.valuec.opacity,p.size.valuec.size*T,p.scale.value.5*N,p.map.valuec.map,null!c.map&&(!0c.map.matrixAutoUpdate&&c.map.updateMatrix(),p.uvTransform.value.copy(c.map.matrix))):c.isSpriteMaterial?(p.diffuse.valuec.color,p.opacity.valuec.opacity,p.rotation.valuec.rotation,p.map.valuec.map,null!c.map&&(!0c.map.matrixAutoUpdate&&c.map.updateMatrix(),p.uvTransform.value.copy(c.map.matrix))):c.isShadowMaterial&&(p.color.valuec.color,p.opacity.valuec.opacity),void 0!p.ltc_1&&(p.ltc_1.valueI.LTC_1),void 0!p.ltc_2&&(p.ltc_2.valueI.LTC_2),fb.upload(O,e.uniformsList,p,X));c.isShaderMaterial&&!0c.uniformsNeedUpdate&&(fb.upload(O,e.uniformsList,p,X),c.uniformsNeedUpdate!1);c.isSpriteMaterial&&g.setValue(O,center,d.center);g.setValue(O,modelViewMatrix,d.modelViewMatrix);g.setValue(O,normalMatrix,d.normalMatrix);g.setValue(O,modelMatrix,d.matrixWorld);return f}function t(a,b){a.opacity.valueb.opacity;b.color&&(a.diffuse.valueb.color);b.emissive&&a.emissive.value.copy(b.emissive).multiplyScalar(b.emissiveIntensity);b.map&&(a.map.valueb.map);b.alphaMap&&(a.alphaMap.valueb.alphaMap);b.specularMap&&(a.specularMap.valueb.specularMap);b.envMap&&(a.envMap.valueb.envMap,a.flipEnvMap.valueb.envMap.isCubeTexture?-1:1,a.reflectivity.valueb.reflectivity,a.refractionRatio.valueb.refractionRatio,a.maxMipLevel.valueDa.get(b.envMap).__maxMipLevel);b.lightMap&&(a.lightMap.valueb.lightMap,a.lightMapIntensity.valueb.lightMapIntensity);b.aoMap&&(a.aoMap.valueb.aoMap,a.aoMapIntensity.valueb.aoMapIntensity);if(b.map)var cb.map;else b.specularMap?cb.specularMap:b.displacementMap?cb.displacementMap:b.normalMap?cb.normalMap:b.bumpMap?cb.bumpMap:b.roughnessMap?cb.roughnessMap:b.metalnessMap?cb.metalnessMap:b.alphaMap?cb.alphaMap:b.emissiveMap&&(cb.emissiveMap);void 0!c&&(c.isWebGLRenderTarget&&(cc.texture),!0c.matrixAutoUpdate&&c.updateMatrix(),a.uvTransform.value.copy(c.matrix))}function r(a,b){a.specular.valueb.specular;a.shininess.valueMath.max(b.shininess,1E-4);b.emissiveMap&&(a.emissiveMap.valueb.emissiveMap);b.bumpMap&&(a.bumpMap.valueb.bumpMap,a.bumpScale.valueb.bumpScale,1b.side&&(a.bumpScale.value*-1));b.normalMap&&(a.normalMap.valueb.normalMap,a.normalScale.value.copy(b.normalScale),1b.side&&a.normalScale.value.negate());b.displacementMap&&(a.displacementMap.valueb.displacementMap,a.displacementScale.valueb.displacementScale,a.displacementBias.valueb.displacementBias)}function u(a,b){a.roughness.valueb.roughness;a.metalness.valueb.metalness;b.roughnessMap&&(a.roughnessMap.valueb.roughnessMap);b.metalnessMap&&(a.metalnessMap.valueb.metalnessMap);b.emissiveMap&&(a.emissiveMap.valueb.emissiveMap);b.bumpMap&&(a.bumpMap.valueb.bumpMap,a.bumpScale.valueb.bumpScale,1b.side&&(a.bumpScale.value*-1));b.normalMap&&(a.normalMap.valueb.normalMap,a.normalScale.value.copy(b.normalScale),1b.side&&a.normalScale.value.negate());b.displacementMap&&(a.displacementMap.valueb.displacementMap,a.displacementScale.valueb.displacementScale,a.displacementBias.valueb.displacementBias);b.envMap&&(a.envMapIntensity.valueb.envMapIntensity)}console.log(THREE.WebGLRenderer,102);aa||{};var wvoid 0!a.canvas?a.canvas:document.createElementNS(http://www.w3.org/1999/xhtml,canvas),zvoid 0!a.context?a.context:null,xvoid 0!a.alpha?a.alpha:!1,Dvoid 0!a.depth?a.depth:!0,yvoid 0!a.stencil?a.stencil:!0,Qvoid 0!a.antialias?a.antialias:!1,favoid 0!a.premultipliedAlpha?a.premultipliedAlpha:!0,Avoid 0!a.preserveDrawingBuffer?a.preserveDrawingBuffer:!1,Fvoid 0!a.powerPreference?a.powerPreference:default,Enull,Cnull;this.domElementw;this.contextnull;this.sortObjectsthis.autoClearStencilthis.autoClearDepththis.autoClearColorthis.autoClear!0;this.clippingPlanes;this.localClippingEnabled!1;this.gammaFactor2;this.physicallyCorrectLightsthis.gammaOutputthis.gammaInput!1;this.toneMappingWhitePointthis.toneMappingExposurethis.toneMapping1;this.maxMorphTargets8;this.maxMorphNormals4;var Xthis,K!1,Lnull,Gnull,Mnull,P-1;var Ubnull;var ta!1;var Pbnull,Rnull,Vnew ba,Wnew ba,canull,ia0,Sw.width,Nw.height,T1,eanew ba(0,0,S,N),aanew ba(0,0,S,N),pa!1,sanew ud,Ynew bg,xd!1,ge!1,Dcnew J,ibnew n;try{x{alpha:x,depth:D,stencil:y,antialias:Q,premultipliedAlpha:fa,preserveDrawingBuffer:A,powerPreference:F};w.addEventListener(webglcontextlost,d,!1);w.addEventListener(webglcontextrestored,e,!1);var Oz||w.getContext(webgl,x)||w.getContext(experimental-webgl,x);if(nullO){if(null!w.getContext(webgl))throw Error(Error creating WebGL context with your selected attributes.);throw Error(Error creating WebGL context.);}void 0O.getShaderPrecisionFormat&&(O.getShaderPrecisionFormatfunction(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(tf){throw console.error(THREE.WebGLRenderer: +tf.message),tf;}var la,za,Z,ha,Da,da,ra,ua,oa,ma,va,qa,na,xa,Aa,Ba,ja;c();var kanull;undefined!typeof navigator&&(kaxrin navigator?new $g(X):new sf(X));this.vrka;var Canew nf(X,oa,za.maxTextureSize);this.shadowMapCa;this.getContextfunction(){return O};this.getContextAttributesfunction(){return O.getContextAttributes()};this.forceContextLossfunction(){var ala.get(WEBGL_lose_context);a&&a.loseContext()};this.forceContextRestorefunction(){var ala.get(WEBGL_lose_context);a&&a.restoreContext()};this.getPixelRatiofunction(){return T};this.setPixelRatiofunction(a){void 0!a&&(Ta,this.setSize(S,N,!1))};this.getSizefunction(a){void 0a&&(console.warn(WebGLRenderer: .getsize() now requires a Vector2 as an argument),anew B);return a.set(S,N)};this.setSizefunction(a,b,c){ka.isPresenting()?console.warn(THREE.WebGLRenderer: Cant change size while VR device is presenting.):(Sa,Nb,w.widtha*T,w.heightb*T,!1!c&&(w.style.widtha+px,w.style.heightb+px),this.setViewport(0,0,a,b))};this.getDrawingBufferSizefunction(a){void 0a&&(console.warn(WebGLRenderer: .getdrawingBufferSize() now requires a Vector2 as an argument),anew B);return a.set(S*T,N*T)};this.setDrawingBufferSizefunction(a,b,c){Sa;Nb;Tc;w.widtha*c;w.heightb*c;this.setViewport(0,0,a,b)};this.getCurrentViewportfunction(a){void 0a&&(console.warn(WebGLRenderer: .getCurrentViewport() now requires a Vector4 as an argument),anew ba);return a.copy(V)};this.getViewportfunction(a){return a.copy(ea)};this.setViewportfunction(a,b,c,d){a.isVector4?ea.set(a.x,a.y,a.z,a.w):ea.set(a,b,c,d);Z.viewport(V.copy(ea).multiplyScalar(T))};this.getScissorfunction(a){return a.copy(aa)};this.setScissorfunction(a,b,c,d){a.isVector4?aa.set(a.x,a.y,a.z,a.w):aa.set(a,b,c,d);Z.scissor(W.copy(aa).multiplyScalar(T))};this.getScissorTestfunction(){return pa};this.setScissorTestfunction(a){Z.setScissorTest(paa)};this.getClearColorfunction(){return na.getClearColor()};this.setClearColorfunction(){na.setClearColor.apply(na,arguments)};this.getClearAlphafunction(){return na.getClearAlpha()};this.setClearAlphafunction(){na.setClearAlpha.apply(na,arguments)};this.clearfunction(a,b,c){var d0;if(void 0a||a)d|16384;if(void 0b||b)d|256;if(void 0c||c)d|1024;O.clear(d)};this.clearColorfunction(){this.clear(!0,!1,!1)};this.clearDepthfunction(){this.clear(!1,!0,!1)};this.clearStencilfunction(){this.clear(!1,!1,!0)};this.disposefunction(){w.removeEventListener(webglcontextlost,d,!1);w.removeEventListener(webglcontextrestored,e,!1);va.dispose();qa.dispose();Da.dispose();oa.dispose();ka.dispose();wa.stop()};this.renderBufferImmediatefunction(a,b){Z.initAttributes();var cDa.get(a);a.hasPositions&&!c.position&&(c.positionO.createBuffer());a.hasNormals&&!c.normal&&(c.normalO.createBuffer());a.hasUvs&&!c.uv&&(c.uvO.createBuffer());a.hasColors&&!c.color&&(c.colorO.createBuffer());bb.getAttributes();a.hasPositions&&(O.bindBuffer(34962,c.position),O.bufferData(34962,a.positionArray,35048),Z.enableAttribute(b.position),O.vertexAttribPointer(b.position,3,5126,!1,0,0));a.hasNormals&&(O.bindBuffer(34962,c.normal),O.bufferData(34962,a.normalArray,35048),Z.enableAttribute(b.normal),O.vertexAttribPointer(b.normal,3,5126,!1,0,0));a.hasUvs&&(O.bindBuffer(34962,c.uv),O.bufferData(34962,a.uvArray,35048),Z.enableAttribute(b.uv),O.vertexAttribPointer(b.uv,2,5126,!1,0,0));a.hasColors&&(O.bindBuffer(34962,c.color),O.bufferData(34962,a.colorArray,35048),Z.enableAttribute(b.color),O.vertexAttribPointer(b.color,3,5126,!1,0,0));Z.disableUnusedAttributes();O.drawArrays(4,0,a.count);a.count0};this.renderBufferDirectfunction(a,c,d,e,f,g){var hf.isMesh&&0>f.matrixWorld.determinant();Z.setMaterial(e,h);var kl(a,c,e,f),m!1;if(b!d.id||U!k.id||ta!(!0e.wireframe))bd.id,Uk.id,ta!0e.wireframe,m!0;f.morphTargetInfluences&&(xa.update(f,d,e,k),m!0);hd.index;var pd.attributes.position;c1;!0e.wireframe&&(hua.getWireframeAttribute(d),c2);aAa;if(null!h){var qra.get(h);aBa;a.setIndex(q)}if(m){if(d&&d.isInstancedBufferGeometry&&!za.isWebGL2&&nullla.get(ANGLE_instanced_arrays))console.error(THREE.WebGLRenderer.setupVertexAttributes: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.);else{Z.initAttributes();md.attributes;kk.getAttributes();var ve.defaultAttributeValues;for(A in k){var rkA;if(0r){var tmA;if(void 0!t){var nt.normalized,ut.itemSize,wra.get(t);if(void 0!w){var xw.buffer,zw.type;ww.bytesPerElement;if(t.isInterleavedBufferAttribute){var yt.data,Dy.stride;tt.offset;y&&y.isInstancedInterleavedBuffer?(Z.enableAttributeAndDivisor(r,y.meshPerAttribute),void 0d.maxInstancedCount&&(d.maxInstancedCounty.meshPerAttribute*y.count)):Z.enableAttribute(r);O.bindBuffer(34962,x);O.vertexAttribPointer(r,u,z,n,D*w,t*w)}else t.isInstancedBufferAttribute?(Z.enableAttributeAndDivisor(r,t.meshPerAttribute),void 0d.maxInstancedCount&&(d.maxInstancedCountt.meshPerAttribute*t.count)):Z.enableAttribute(r),O.bindBuffer(34962,x),O.vertexAttribPointer(r,u,z,n,0,0)}}else if(void 0!v&&(nvA,void 0!n))switch(n.length){case 2:O.vertexAttrib2fv(r,n);break;case 3:O.vertexAttrib3fv(r,n);break;case 4:O.vertexAttrib4fv(r,n);break;default:O.vertexAttrib1fv(r,n)}}}Z.disableUnusedAttributes()}null!h&&O.bindBuffer(34963,q.buffer)}qInfinity;null!h?qh.count:void 0!p&&(qp.count);hd.drawRange.start*c;pnull!g?g.start*c:0;var AMath.max(h,p);gMath.max(0,Math.min(q,h+d.drawRange.count*c,p+(null!g?g.count*c:Infinity))-1-A+1);if(0!g){if(f.isMesh)if(!0e.wireframe)Z.setLineWidth(e.wireframeLinewidth*(nullG?T:1)),a.setMode(1);else switch(f.drawMode){case 0:a.setMode(4);break;case 1:a.setMode(5);break;case 2:a.setMode(6)}else f.isLine?(ee.linewidth,void 0e&&(e1),Z.setLineWidth(e*(nullG?T:1)),f.isLineSegments?a.setMode(1):f.isLineLoop?a.setMode(2):a.setMode(3)):f.isPoints?a.setMode(0):f.isSprite&&a.setMode(4);d&&d.isInstancedBufferGeometry?0d.maxInstancedCount&&a.renderInstances(d,A,g):a.render(A,g)}};this.compilefunction(a,b){Cqa.get(a,b);C.init();a.traverse(function(a){a.isLight&&(C.pushLight(a),a.castShadow&&C.pushShadow(a))});C.setupLights(b);a.traverse(function(b){if(b.material)if(Array.isArray(b.material))for(var c0;cb.material.length;c++)q(b.materialc,a.fog,b);else q(b.material,a.fog,b)})};var yanull,wanew $d;wa.setAnimationLoop(function(a){ka.isPresenting()||ya&&ya(a)});undefined!typeof window&&wa.setContext(window);this.setAnimationLoopfunction(a){yaa;ka.setAnimationLoop(a);wa.start()};this.renderfunction(a,c,d,e){if(void 0!d){console.warn(THREE.WebGLRenderer.render(): the renderTarget argument has been removed. Use .setRenderTarget() instead.);var fd}if(void 0!e){console.warn(THREE.WebGLRenderer.render(): the forceClear argument has been removed. Use .clear() instead.);var ge}c&&c.isCamera?K||(Ubnull,ta!1,P-1,Pbnull,!0a.autoUpdate&&a.updateMatrixWorld(),nullc.parent&&c.updateMatrixWorld(),ka.enabled&&(cka.getCamera(c)),Cqa.get(a,c),C.init(),a.onBeforeRender(X,a,c,f||G),Dc.multiplyMatrices(c.projectionMatrix,c.matrixWorldInverse),sa.setFromMatrix(Dc),gethis.localClippingEnabled,xdY.init(this.clippingPlanes,ge,c),Eva.get(a,c),E.init(),k(a,c,0,X.sortObjects),!0X.sortObjects&&E.sort(),xd&&Y.beginShadows(),Ca.render(C.state.shadowsArray,a,c),C.setupLights(c),xd&&Y.endShadows(),this.info.autoReset&&this.info.reset(),void 0!f&&this.setRenderTarget(f),na.render(E,a,c,g),dE.opaque,eE.transparent,a.overrideMaterial?(fa.overrideMaterial,d.length&&m(d,a,c,f),e.length&&m(e,a,c,f)):(d.length&&m(d,a,c),e.length&&m(e,a,c)),null!G&&(da.updateRenderTargetMipmap(G),da.updateMultisampleRenderTarget(G)),Z.buffers.depth.setTest(!0),Z.buffers.depth.setMask(!0),Z.buffers.color.setMask(!0),Z.setPolygonOffset(!1),a.onAfterRender(X,a,c),ka.enabled&&ka.submitFrame(),CEnull):console.error(THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.)};this.allocTextureUnitfunction(){var aia;a>za.maxTextures&&console.warn(THREE.WebGLRenderer: Trying to use +a+ texture units while this GPU supports only +za.maxTextures);ia+1;return a};this.setTexture2Dfunction(){var a!1;return function(b,c){b&&b.isWebGLRenderTarget&&(a||(console.warn(THREE.WebGLRenderer.setTexture2D: dont use render targets as textures. Use their .texture property instead.),a!0),bb.texture);da.setTexture2D(b,c)}}();this.setTexture3Dfunction(){return function(a,b){da.setTexture3D(a,b)}}();this.setTexturefunction(){var a!1;return function(b,c){a||(console.warn(THREE.WebGLRenderer: .setTexture is deprecated, use setTexture2D instead.),a!0);da.setTexture2D(b,c)}}();this.setTextureCubefunction(){var a!1;return function(b,c){b&&b.isWebGLRenderTargetCube&&(a||(console.warn(THREE.WebGLRenderer.setTextureCube: dont use cube render targets as textures. Use their .texture property instead.),a!0),bb.texture);b&&b.isCubeTexture||Array.isArray(b.image)&&6b.image.length?da.setTextureCube(b,c):da.setTextureCubeDynamic(b,c)}}();this.setFramebufferfunction(a){La};this.getRenderTargetfunction(){return G};this.setRenderTargetfunction(a,b,c){(Ga)&&void 0Da.get(a).__webglFramebuffer&&da.setupRenderTarget(a);var dL,e!1;a?(dDa.get(a).__webglFramebuffer,a.isWebGLRenderTargetCube?(ddb||0,e!0):da.isWebGLMultisampleRenderTarget?Da.get(a).__webglMultisampledFramebuffer:d,V.copy(a.viewport),W.copy(a.scissor),caa.scissorTest):(V.copy(ea).multiplyScalar(T),W.copy(aa).multiplyScalar(T),capa);M!d&&(O.bindFramebuffer(36160,d),Md);Z.viewport(V);Z.scissor(W);Z.setScissorTest(ca);e&&(aDa.get(a.texture),O.framebufferTexture2D(36160,36064,34069+b||0,a.__webglTexture,c||0))};this.readRenderTargetPixelsfunction(a,b,c,d,e,f){if(a&&a.isWebGLRenderTarget){var gDa.get(a).__webglFramebuffer;if(g){var h!1;g!M&&(O.bindFramebuffer(36160,g),h!0);try{var ka.texture,mk.format,pk.type;1023!m&&ja.convert(m)!O.getParameter(35739)?console.error(THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.):1009p||ja.convert(p)O.getParameter(35738)||1015p&&(za.isWebGL2||la.get(OES_texture_float)||la.get(WEBGL_color_buffer_float))||1016p&&(za.isWebGL2?la.get(EXT_color_buffer_float):la.get(EXT_color_buffer_half_float))?36053O.checkFramebufferStatus(36160)?0b&&ba.width-d&&0c&&ca.height-e&&O.readPixels(b,c,d,e,ja.convert(m),ja.convert(p),f):console.error(THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.):console.error(THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.)}finally{h&&O.bindFramebuffer(36160,M)}}}else console.error(THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.)};this.copyFramebufferToTexturefunction(a,b,c){var db.image.width,eb.image.height,fja.convert(b.format);this.setTexture2D(b,0);O.copyTexImage2D(3553,c||0,f,a.x,a.y,d,e,0)};this.copyTextureToTexturefunction(a,b,c,d){var eb.image.width,fb.image.height,gja.convert(c.format),hja.convert(c.type);this.setTexture2D(c,0);b.isDataTexture?O.texSubImage2D(3553,d||0,a.x,a.y,e,f,g,h,b.image.data):O.texSubImage2D(3553,d||0,a.x,a.y,g,h,b.image)}}function yd(a,b){this.name;this.colornew K(a);this.densityvoid 0!b?b:2.5E-4}function zd(a,b,c){this.name;this.colornew K(a);this.nearvoid 0!b?b:1;this.farvoid 0!c?c:1E3}function Ad(){E.call(this);this.typeScene;this.overrideMaterialthis.fogthis.backgroundnull;this.autoUpdate!0}function ub(a,b){this.arraya;this.strideb;this.countvoid 0!a?a.length/b:0;this.dynamic!1;this.updateRange{offset:0,count:-1};this.version0}function Fc(a,b,c,d){this.dataa;this.itemSizeb;this.offsetc;this.normalized!0d}function jb(a){M.call(this);this.typeSpriteMaterial;this.colornew K(16777215);this.mapnull;this.rotation0;this.sizeAttenuation!0;this.lights!1;this.transparent!0;this.setValues(a)}function Gc(a){E.call(this);this.typeSprite;if(void 0Tb){Tbnew C;var bnew Float32Array(-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1);bnew ub(b,5);Tb.setIndex(0,1,2,0,2,3);Tb.addAttribute(position,new Fc(b,3,0,!1));Tb.addAttribute(uv,new Fc(b,2,3,!1))}this.geometryTb;this.materialvoid 0!a?a:new jb;this.centernew B(.5,.5)}function Hc(){E.call(this);this.typeLOD;Object.defineProperties(this,{levels:{enumerable:!0,value:}})}function Ic(a,b){a&&a.isGeometry&&console.error(THREE.SkinnedMesh no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.);va.call(this,a,b);this.typeSkinnedMesh;this.bindModeattached;this.bindMatrixnew J;this.bindMatrixInversenew J}function Bd(a,b){aa||;this.bonesa.slice(0);this.boneMatricesnew Float32Array(16*this.bones.length);if(void 0b)this.calculateInverses();else if(this.bones.lengthb.length)this.boneInversesb.slice(0);else for(console.warn(THREE.Skeleton boneInverses is the wrong length.),this.boneInverses,a0,bthis.bones.length;ab;a++)this.boneInverses.push(new J)}function ie(){E.call(this);this.typeBone}function R(a){M.call(this);this.typeLineBasicMaterial;this.colornew K(16777215);this.linewidth1;this.linejointhis.linecapround;this.lights!1;this.setValues(a)}function da(a,b,c){1c&&console.error(THREE.Line: parameter THREE.LinePieces no longer supported. Use THREE.LineSegments instead.);E.call(this);this.typeLine;this.geometryvoid 0!a?a:new C;this.materialvoid 0!b?b:new R({color:16777215*Math.random()})}function W(a,b){da.call(this,a,b);this.typeLineSegments}function Cd(a,b){da.call(this,a,b);this.typeLineLoop}function Ia(a){M.call(this);this.typePointsMaterial;this.colornew K(16777215);this.mapnull;this.size1;this.sizeAttenuation!0;this.lightsthis.morphTargets!1;this.setValues(a)}function Ub(a,b){E.call(this);this.typePoints;this.geometryvoid 0!a?a:new C;this.materialvoid 0!b?b:new Ia({color:16777215*Math.random()})}function je(a,b,c,d,e,f,g,h,k){V.call(this,a,b,c,d,e,f,g,h,k);this.formatvoid 0!g?g:1022;this.minFiltervoid 0!f?f:1006;this.magFiltervoid 0!e?e:1006;this.generateMipmaps!1}function Vb(a,b,c,d,e,f,g,h,k,m,p,q){V.call(this,null,f,g,h,k,m,d,e,p,q);this.image{width:b,height:c};this.mipmapsa;this.generateMipmapsthis.flipY!1}function Jc(a,b,c,d,e,f,g,h,k){V.call(this,a,b,c,d,e,f,g,h,k);this.needsUpdate!0}function Kc(a,b,c,d,e,f,g,h,k,m){mvoid 0!m?m:1026;if(1026!m&&1027!m)throw Error(DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat);void 0c&&1026m&&(c1012);void 0c&&1027m&&(c1020);V.call(this,null,d,e,f,g,h,m,c,k);this.image{width:a,height:b};this.magFiltervoid 0!g?g:1003;this.minFiltervoid 0!h?h:1003;this.generateMipmapsthis.flipY!1}function Wb(a){C.call(this);this.typeWireframeGeometry;var b,c,d,e,f0,0,g{},ha,b,c;if(a&&a.isGeometry){var ka.faces;var m0;for(dk.length;md;m++){var pkm;for(c0;3>c;c++){var qphc;var lph(c+1)%3;f0Math.min(q,l);f1Math.max(q,l);qf0+,+f1;void 0gq&&(gq{index1:f0,index2:f1})}}for(q in g)mgq,ha.verticesm.index1,b.push(h.x,h.y,h.z),ha.verticesm.index2,b.push(h.x,h.y,h.z)}else if(a&&a.isBufferGeometry)if(hnew n,null!a.index){ka.attributes.position;pa.index;var ta.groups;0t.length&&(t{start:0,count:p.count,materialIndex:0});a0;for(et.length;ae;++a)for(mta,cm.start,dm.count,mc,dc+d;md;m+3)for(c0;3>c;c++)qp.getX(m+c),lp.getX(m+(c+1)%3),f0Math.min(q,l),f1Math.max(q,l),qf0+,+f1,void 0gq&&(gq{index1:f0,index2:f1});for(q in g)mgq,h.fromBufferAttribute(k,m.index1),b.push(h.x,h.y,h.z),h.fromBufferAttribute(k,m.index2),b.push(h.x,h.y,h.z)}else for(ka.attributes.position,m0,dk.count/3;md;m++)for(c0;3>c;c++)g3*m+c,h.fromBufferAttribute(k,g),b.push(h.x,h.y,h.z),g3*m+(c+1)%3,h.fromBufferAttribute(k,g),b.push(h.x,h.y,h.z);this.addAttribute(position,new F(b,3))}function Lc(a,b,c){G.call(this);this.typeParametricGeometry;this.parameters{func:a,slices:b,stacks:c};this.fromBufferGeometry(new Xb(a,b,c));this.mergeVertices()}function Xb(a,b,c){C.call(this);this.typeParametricBufferGeometry;this.parameters{func:a,slices:b,stacks:c};var d,e,f,g,hnew n,knew n,mnew n,pnew n,qnew n,l,t;3>a.length&&console.error(THREE.ParametricGeometry: Function must now modify a Vector3 as third parameter.);var rb+1;for(l0;lc;l++){var ul/c;for(t0;tb;t++){var wt/b;a(w,u,k);e.push(k.x,k.y,k.z);0w-1E-5?(a(w-1E-5,u,m),p.subVectors(k,m)):(a(w+1E-5,u,m),p.subVectors(m,k));0u-1E-5?(a(w,u-1E-5,m),q.subVectors(k,m)):(a(w,u+1E-5,m),q.subVectors(m,k));h.crossVectors(p,q).normalize();f.push(h.x,h.y,h.z);g.push(w,u)}}for(l0;lc;l++)for(t0;tb;t++)al*r+t+1,h(l+1)*r+t+1,k(l+1)*r+t,d.push(l*r+t,a,k),d.push(a,h,k);this.setIndex(d);this.addAttribute(position,new F(e,3));this.addAttribute(normal,new F(f,3));this.addAttribute(uv,new F(g,2))}function Mc(a,b,c,d){G.call(this);this.typePolyhedronGeometry;this.parameters{vertices:a,indices:b,radius:c,detail:d};this.fromBufferGeometry(new Aa(a,b,c,d));this.mergeVertices()}function Aa(a,b,c,d){function e(a){h.push(a.x,a.y,a.z)}function f(b,c){b*3;c.xab+0;c.yab+1;c.zab+2}function g(a,b,c,d){0>d&&1a.x&&(kba.x-1);0c.x&&0c.z&&(kbd/2/Math.PI+.5)}C.call(this);this.typePolyhedronBufferGeometry;this.parameters{vertices:a,indices:b,radius:c,detail:d};cc||1;dd||0;var h,k;(function(a){for(var cnew n,dnew n,gnew n,h0;hb.length;h+3){f(bh+0,c);f(bh+1,d);f(bh+2,g);var k,m,lc,zd,xg,DMath.pow(2,a),y;for(m0;mD;m++){ym;var Ql.clone().lerp(x,m/D),Bz.clone().lerp(x,m/D),AD-m;for(k0;kA;k++)ymk0k&&mD?Q:Q.clone().lerp(B,k/A)}for(m0;mD;m++)for(k0;k2*(D-m)-1;k++)lMath.floor(k/2),0k%2?(e(yml+1),e(ym+1l),e(yml)):(e(yml+1),e(ym+1l+1),e(ym+1l))}})(d);(function(a){for(var bnew n,c0;ch.length;c+3)b.xhc+0,b.yhc+1,b.zhc+2,b.normalize().multiplyScalar(a),hc+0b.x,hc+1b.y,hc+2b.z})(c);(function(){for(var anew n,b0;bh.length;b+3)a.xhb+0,a.yhb+1,a.zhb+2,k.push(Math.atan2(a.z,-a.x)/2/Math.PI+.5,1-(Math.atan2(-a.y,Math.sqrt(a.x*a.x+a.z*a.z))/Math.PI+.5));anew n;bnew n;for(var cnew n,dnew n,enew B,fnew B,lnew B,w0,z0;wh.length;w+9,z+6){a.set(hw+0,hw+1,hw+2);b.set(hw+3,hw+4,hw+5);c.set(hw+6,hw+7,hw+8);e.set(kz+0,kz+1);f.set(kz+2,kz+3);l.set(kz+4,kz+5);d.copy(a).add(b).add(c).divideScalar(3);var xMath.atan2(d.z,-d.x);g(e,z+0,a,x);g(f,z+2,b,x);g(l,z+4,c,x)}for(a0;ak.length;a+6)bka+0,cka+2,dka+4,eMath.min(b,c,d),.9Math.max(b,c,d)&&.1>e&&(.2>b&&(ka+0+1),.2>c&&(ka+2+1),.2>d&&(ka+4+1))})();this.addAttribute(position,new F(h,3));this.addAttribute(normal,new F(h.slice(),3));this.addAttribute(uv,new F(k,2));0d?this.computeVertexNormals():this.normalizeNormals()}function Nc(a,b){G.call(this);this.typeTetrahedronGeometry;this.parameters{radius:a,detail:b};this.fromBufferGeometry(new Yb(a,b));this.mergeVertices()}function Yb(a,b){Aa.call(this,1,1,1,-1,-1,1,-1,1,-1,1,-1,-1,2,1,0,0,3,2,1,3,0,2,3,1,a,b);this.typeTetrahedronBufferGeometry;this.parameters{radius:a,detail:b}}function Oc(a,b){G.call(this);this.typeOctahedronGeometry;this.parameters{radius:a,detail:b};this.fromBufferGeometry(new vb(a,b));this.mergeVertices()}function vb(a,b){Aa.call(this,1,0,0,-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1,0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2,a,b);this.typeOctahedronBufferGeometry;this.parameters{radius:a,detail:b}}function Pc(a,b){G.call(this);this.typeIcosahedronGeometry;this.parameters{radius:a,detail:b};this.fromBufferGeometry(new Zb(a,b));this.mergeVertices()}function Zb(a,b){var c(1+Math.sqrt(5))/2;Aa.call(this,-1,c,0,1,c,0,-1,-c,0,1,-c,0,0,-1,c,0,1,c,0,-1,-c,0,1,-c,c,0,-1,c,0,1,-c,0,-1,-c,0,1,0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1,a,b);this.typeIcosahedronBufferGeometry;this.parameters{radius:a,detail:b}}function Qc(a,b){G.call(this);this.typeDodecahedronGeometry;this.parameters{radius:a,detail:b};this.fromBufferGeometry(new $b(a,b));this.mergeVertices()}function $b(a,b){var c(1+Math.sqrt(5))/2,d1/c;Aa.call(this,-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-d,-c,0,-d,c,0,d,-c,0,d,c,-d,-c,0,-d,c,0,d,-c,0,d,c,0,-c,0,-d,c,0,-d,-c,0,d,c,0,d,3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9,a,b);this.typeDodecahedronBufferGeometry;this.parameters{radius:a,detail:b}}function Rc(a,b,c,d,e,f){G.call(this);this.typeTubeGeometry;this.parameters{path:a,tubularSegments:b,radius:c,radialSegments:d,closed:e};void 0!f&&console.warn(THREE.TubeGeometry: taper has been removed.);anew wb(a,b,c,d,e);this.tangentsa.tangents;this.normalsa.normals;this.binormalsa.binormals;this.fromBufferGeometry(a);this.mergeVertices()}function wb(a,b,c,d,e){function f(e){pa.getPointAt(e/b,p);var fg.normalse;eg.binormalse;for(l0;ld;l++){var ml/d*Math.PI*2,qMath.sin(m);m-Math.cos(m);k.xm*f.x+q*e.x;k.ym*f.y+q*e.y;k.zm*f.z+q*e.z;k.normalize();r.push(k.x,k.y,k.z);h.xp.x+c*k.x;h.yp.y+c*k.y;h.zp.z+c*k.z;t.push(h.x,h.y,h.z)}}C.call(this);this.typeTubeBufferGeometry;this.parameters{path:a,tubularSegments:b,radius:c,radialSegments:d,closed:e};bb||64;cc||1;dd||8;ee||!1;var ga.computeFrenetFrames(b,e);this.tangentsg.tangents;this.normalsg.normals;this.binormalsg.binormals;var hnew n,knew n,mnew B,pnew n,q,l,t,r,u,w;for(q0;qb;q++)f(q);f(!1e?b:0);for(q0;qb;q++)for(l0;ld;l++)m.xq/b,m.yl/d,u.push(m.x,m.y);(function(){for(l1;lb;l++)for(q1;qd;q++){var a(d+1)*l+(q-1),c(d+1)*l+q,e(d+1)*(l-1)+q;w.push((d+1)*(l-1)+(q-1),a,e);w.push(a,c,e)}})();this.setIndex(w);this.addAttribute(position,new F(t,3));this.addAttribute(normal,new F(r,3));this.addAttribute(uv,new F(u,2))}function Sc(a,b,c,d,e,f,g){G.call(this);this.typeTorusKnotGeometry;this.parameters{radius:a,tube:b,tubularSegments:c,radialSegments:d,p:e,q:f};void 0!g&&console.warn(THREE.TorusKnotGeometry: heightScale has been deprecated. Use .scale( x, y, z ) instead.);this.fromBufferGeometry(new ac(a,b,c,d,e,f));this.mergeVertices()}function ac(a,b,c,d,e,f){function g(a,b,c,d,e){var fMath.sin(a);bc/b*a;cMath.cos(b);e.xd*(2+c)*.5*Math.cos(a);e.yd*(2+c)*f*.5;e.zd*Math.sin(b)*.5}C.call(this);this.typeTorusKnotBufferGeometry;this.parameters{radius:a,tube:b,tubularSegments:c,radialSegments:d,p:e,q:f};aa||1;bb||.4;cMath.floor(c)||64;dMath.floor(d)||8;ee||2;ff||3;var h,k,m,p,q,lnew n,tnew n,rnew n,unew n,wnew n,znew n,xnew n;for(q0;qc;++q){var Dq/c*e*Math.PI*2;g(D,e,f,a,r);g(D+.01,e,f,a,u);z.subVectors(u,r);x.addVectors(u,r);w.crossVectors(z,x);x.crossVectors(w,z);w.normalize();x.normalize();for(D0;Dd;++D){var yD/d*Math.PI*2,Q-b*Math.cos(y);yb*Math.sin(y);l.xr.x+(Q*x.x+y*w.x);l.yr.y+(Q*x.y+y*w.y);l.zr.z+(Q*x.z+y*w.z);k.push(l.x,l.y,l.z);t.subVectors(l,r).normalize();m.push(t.x,t.y,t.z);p.push(q/c);p.push(D/d)}}for(D1;Dc;D++)for(q1;qd;q++)a(d+1)*D+(q-1),b(d+1)*D+q,e(d+1)*(D-1)+q,h.push((d+1)*(D-1)+(q-1),a,e),h.push(a,b,e);this.setIndex(h);this.addAttribute(position,new F(k,3));this.addAttribute(normal,new F(m,3));this.addAttribute(uv,new F(p,2))}function Tc(a,b,c,d,e){G.call(this);this.typeTorusGeometry;this.parameters{radius:a,tube:b,radialSegments:c,tubularSegments:d,arc:e};this.fromBufferGeometry(new bc(a,b,c,d,e));this.mergeVertices()}function bc(a,b,c,d,e){C.call(this);this.typeTorusBufferGeometry;this.parameters{radius:a,tube:b,radialSegments:c,tubularSegments:d,arc:e};aa||1;bb||.4;cMath.floor(c)||8;dMath.floor(d)||6;ee||2*Math.PI;var f,g,h,k,mnew n,pnew n,qnew n,l,t;for(l0;lc;l++)for(t0;td;t++){var rt/d*e,ul/c*Math.PI*2;p.x(a+b*Math.cos(u))*Math.cos(r);p.y(a+b*Math.cos(u))*Math.sin(r);p.zb*Math.sin(u);g.push(p.x,p.y,p.z);m.xa*Math.cos(r);m.ya*Math.sin(r);q.subVectors(p,m).normalize();h.push(q.x,q.y,q.z);k.push(t/d);k.push(l/c)}for(l1;lc;l++)for(t1;td;t++)a(d+1)*(l-1)+t-1,b(d+1)*(l-1)+t,e(d+1)*l+t,f.push((d+1)*l+t-1,a,e),f.push(a,b,e);this.setIndex(f);this.addAttribute(position,new F(g,3));this.addAttribute(normal,new F(h,3));this.addAttribute(uv,new F(k,2))}function uf(a,b,c,d,e){for(var f,g0,hb,kc-d;hc;h+d)g+(ak-ah)*(ah+1+ak+1),kh;if(e0g)for(eb;ec;e+d)fvf(e,ae,ae+1,f);else for(ec-d;e>b;e-d)fvf(e,ae,ae+1,f);f&&xb(f,f.next)&&(Uc(f),ff.next);return f}function Vc(a,b){if(!a)return a;b||(ba);do{var c!1;if(a.steiner||!xb(a,a.next)&&0!qa(a.prev,a,a.next))aa.next;else{Uc(a);aba.prev;if(aa.next)break;c!0}}while(c||a!b);return b}function Wc(a,b,c,d,e,f,g){if(a){if(!g&&f){var ha,kh;do nullk.z&&(k.zke(k.x,k.y,d,e,f)),k.prevZk.prev,kk.nextZk.next;while(k!h);k.prevZ.nextZnull;k.prevZnull;hk;var m,p,q,l,t1;do{kh;var rhnull;for(p0;k;){p++;var nk;for(mq0;mt&&(q++,nn.nextZ,n);m++);for(lt;0q||0l&&n;)0!q&&(0l||!n||k.zn.z)?(mk,kk.nextZ,q--):(mn,nn.nextZ,l--),r?r.nextZm:hm,m.prevZr,rm;kn}r.nextZnull;t*2}while(1p)}for(ha;a.prev!a.next;){ka.prev;na.next;if(f)a:{ra;ld;var we,zf;pr.prev;qr;tr.next;if(0qa(p,q,t))r!1;else{var xp.x>q.x?p.x>t.x?p.x:t.x:q.x>t.x?q.x:t.x,Dp.y>q.y?p.y>t.y?p.y:t.y:q.y>t.y?q.y:t.y;mke(p.xq.x?p.xt.x?p.x:t.x:q.xt.x?q.x:t.x,p.yq.y?p.yt.y?p.y:t.y:q.yt.y?q.y:t.y,l,w,z);lke(x,D,l,w,z);for(wr.nextZ;w&&w.zl;){if(w!r.prev&&w!r.next&&Dd(p.x,p.y,q.x,q.y,t.x,t.y,w.x,w.y)&&0qa(w.prev,w,w.next)){r!1;break a}ww.nextZ}for(wr.prevZ;w&&w.z>m;){if(w!r.prev&&w!r.next&&Dd(p.x,p.y,q.x,q.y,t.x,t.y,w.x,w.y)&&0qa(w.prev,w,w.next)){r!1;break a}ww.prevZ}r!0}}else a:if(ra,pr.prev,qr,tr.next,0qa(p,q,t))r!1;else{for(mr.next.next;m!r.prev;){if(Dd(p.x,p.y,q.x,q.y,t.x,t.y,m.x,m.y)&&0qa(m.prev,m,m.next)){r!1;break a}mm.next}r!0}if(r)b.push(k.i/c),b.push(a.i/c),b.push(n.i/c),Uc(a),han.next;else if(an,ah){if(!g)Wc(Vc(a),b,c,d,e,f,1);else if(1g){gb;hc;ka;do nk.prev,rk.next.next,!xb(n,r)&&wf(n,k,k.next,r)&&Xc(n,r)&&Xc(r,n)&&(g.push(n.i/h),g.push(k.i/h),g.push(r.i/h),Uc(k),Uc(k.next),kar),kk.next;while(k!a);ak;Wc(a,b,c,d,e,f,2)}else if(2g)a:{ga;do{for(hg.next.next;h!g.prev;){if(kg.i!h.i){kg;nh;if(rk.next.i!n.i&&k.prev.i!n.i){b:{rk;do{if(r.i!k.i&&r.next.i!k.i&&r.i!n.i&&r.next.i!n.i&&wf(r,r.next,k,n)){r!0;break b}rr.next}while(r!k);r!1}r!r}if(rr&&Xc(k,n)&&Xc(n,k)){rk;p!1;q(k.x+n.x)/2;n(k.y+n.y)/2;do r.y>n!r.next.y>n&&r.next.y!r.y&&q(r.next.x-r.x)*(n-r.y)/(r.next.y-r.y)+r.x&&(p!p),rr.next;while(r!k);rp}kr}if(k){axf(g,h);gVc(g,g.next);aVc(a,a.next);Wc(g,b,c,d,e,f);Wc(a,b,c,d,e,f);break a}hh.next}gg.next}while(g!a)}break}}}}function ah(a,b){return a.x-b.x}function bh(a,b){var cb,da.x,ea.y,f-Infinity;do{if(ec.y&&e>c.next.y&&c.next.y!c.y){var gc.x+(e-c.y)*(c.next.x-c.x)/(c.next.y-c.y);if(gd&&g>f){fg;if(gd){if(ec.y)return c;if(ec.next.y)return c.next}var hc.xc.next.x?c:c.next}}cc.next}while(c!b);if(!h)return null;if(df)return h.prev;bh;gh.x;var kh.y,mInfinity;for(ch.next;c!b;){if(d>c.x&&c.x>g&&d!c.x&&Dd(ek?d:f,e,g,k,ek?f:d,e,c.x,c.y)){var pMath.abs(e-c.y)/(d-c.x);(pm||pm&&c.x>h.x)&&Xc(c,a)&&(hc,mp)}cc.next}return h}function ke(a,b,c,d,e){a32767*(a-c)*e;b32767*(b-d)*e;a(a|a8)&16711935;a(a|a4)&252645135;a(a|a2)&858993459;b(b|b8)&16711935;b(b|b4)&252645135;b(b|b2)&858993459;return(a|a1)&1431655765|((b|b1)&1431655765)1}function ch(a){var ba,ca;do b.xc.x&&(cb),bb.next;while(b!a);return c}function Dd(a,b,c,d,e,f,g,h){return 0(e-g)*(b-h)-(a-g)*(f-h)&&0(a-g)*(d-h)-(c-g)*(b-h)&&0(c-g)*(f-h)-(e-g)*(d-h)}function qa(a,b,c){return(b.y-a.y)*(c.x-b.x)-(b.x-a.x)*(c.y-b.y)}function xb(a,b){return a.xb.x&&a.yb.y}function wf(a,b,c,d){return xb(a,b)&&xb(c,d)||xb(a,d)&&xb(c,b)?!0:0qa(a,b,c)!0qa(a,b,d)&&0qa(c,d,a)!0qa(c,d,b)}function Xc(a,b){return 0>qa(a.prev,a,a.next)?0qa(a,b,a.next)&&0qa(a,a.prev,b):0>qa(a,b,a.prev)||0>qa(a,a.next,b)}function xf(a,b){var cnew le(a.i,a.x,a.y),dnew le(b.i,b.x,b.y),ea.next,fb.prev;a.nextb;b.preva;c.nexte;e.prevc;d.nextc;c.prevd;f.nextd;d.prevf;return d}function vf(a,b,c,d){anew le(a,b,c);d?(a.nextd.next,a.prevd,d.next.preva,d.nexta):(a.preva,a.nexta);return a}function Uc(a){a.next.preva.prev;a.prev.nexta.next;a.prevZ&&(a.prevZ.nextZa.nextZ);a.nextZ&&(a.nextZ.prevZa.prevZ)}function le(a,b,c){this.ia;this.xb;this.yc;this.nextZthis.prevZthis.zthis.nextthis.prevnull;this.steiner!1}function yf(a){var ba.length;2b&&ab-1.equals(a0)&&a.pop()}function zf(a,b){for(var c0;cb.length;c++)a.push(bc.x),a.push(bc.y)}function yb(a,b){G.call(this);this.typeExtrudeGeometry;this.parameters{shapes:a,options:b};this.fromBufferGeometry(new Va(a,b));this.mergeVertices()}function Va(a,b){function c(a){function c(a,b,c){b||console.error(THREE.ExtrudeGeometry: vec does not exist);return b.clone().multiplyScalar(c).add(a)}function g(a,b,c){var da.x-b.x;var ea.y-b.y;var fc.x-a.x;var gc.y-a.y,hd*d+e*e;if(Math.abs(d*g-e*f)>Number.EPSILON){var kMath.sqrt(h),mMath.sqrt(f*f+g*g);hb.x-e/k;bb.y+d/k;g((c.x-g/m-h)*g-(c.y+f/m-b)*f)/(d*g-e*f);fh+d*g-a.x;db+e*g-a.y;ef*f+d*d;if(2>e)return new B(f,d);eMath.sqrt(e/2)}else a!1,d>Number.EPSILON?f>Number.EPSILON&&(a!0):d-Number.EPSILON?f-Number.EPSILON&&(a!0):Math.sign(e)Math.sign(g)&&(a!0),a?(f-e,eMath.sqrt(h)):(fd,de,eMath.sqrt(h/2));return new B(f/e,d/e)}function h(a,b){for(Na.length;0--N;){var cN;var fN-1;0>f&&(fa.length-1);var g,hx+2*A;for(g0;gh;g++){var kW*g,mW*(g+1),pb+f+k,qb+f+m;mb+c+m;r(b+c+k);r(p);r(m);r(p);r(q);r(m);ke.length/3;kF.generateSideWallUV(d,e,k-6,k-3,k-2,k-1);u(k0);u(k1);u(k3);u(k1);u(k2);u(k3)}}}function k(a,b,c){w.push(a);w.push(b);w.push(c)}function l(a,b,c){r(a);r(b);r(c);ae.length/3;aF.generateTopUV(d,e,a-3,a-2,a-1);u(a0);u(a1);u(a2)}function r(a){e.push(w3*a);e.push(w3*a+1);e.push(w3*a+2)}function u(a){f.push(a.x);f.push(a.y)}var w,zvoid 0!b.curveSegments?b.curveSegments:12,xvoid 0!b.steps?b.steps:1,Dvoid 0!b.depth?b.depth:100,yvoid 0!b.bevelEnabled?b.bevelEnabled:!0,Qvoid 0!b.bevelThickness?b.bevelThickness:6,favoid 0!b.bevelSize?b.bevelSize:Q-2,Avoid 0!b.bevelSegments?b.bevelSegments:3,Cb.extrudePath,Fvoid 0!b.UVGenerator?b.UVGenerator:dh;void 0!b.amount&&(console.warn(THREE.ExtrudeBufferGeometry: amount has been renamed to depth.),Db.amount);var E!1;if(C){var XC.getSpacedPoints(x);E!0;y!1;var GC.computeFrenetFrames(x,!1);var Inew n;var Knew n;var Lnew n}y||(faQA0);var J;za.extractPoints(z);az.shape;var Mz.holes;if(!ab.isClockWise(a)){aa.reverse();var H0;for(JM.length;HJ;H++){var PMH;ab.isClockWise(P)&&(MHP.reverse())}}var Uab.triangulateShape(a,M),Va;H0;for(JM.length;HJ;H++)PMH,aa.concat(P);var R,Wa.length,S,baU.length;z;var N0;var TV.length;var eaT-1;for(RN+1;NT;N++,ea++,R++)eaT&&(ea0),RT&&(R0),zNg(VN,Vea,VR);C;var daz.concat();H0;for(JM.length;HJ;H++){PMH;var aa;N0;TP.length;eaT-1;for(RN+1;NT;N++,ea++,R++)eaT&&(ea0),RT&&(R0),aaNg(PN,Pea,PR);C.push(aa);dada.concat(aa)}for(ea0;eaA;ea++){Tea/A;var caQ*Math.cos(T*Math.PI/2);Rfa*Math.sin(T*Math.PI/2);N0;for(TV.length;NT;N++){var Yc(VN,zN,R);k(Y.x,Y.y,-ca)}H0;for(JM.length;HJ;H++)for(PMH,aaCH,N0,TP.length;NT;N++)Yc(PN,aaN,R),k(Y.x,Y.y,-ca)}Rfa;for(N0;NW;N++)Yy?c(aN,daN,R):aN,E?(K.copy(G.normals0).multiplyScalar(Y.x),I.copy(G.binormals0).multiplyScalar(Y.y),L.copy(X0).add(K).add(I),k(L.x,L.y,L.z)):k(Y.x,Y.y,0);for(T1;Tx;T++)for(N0;NW;N++)Yy?c(aN,daN,R):aN,E?(K.copy(G.normalsT).multiplyScalar(Y.x),I.copy(G.binormalsT).multiplyScalar(Y.y),L.copy(XT).add(K).add(I),k(L.x,L.y,L.z)):k(Y.x,Y.y,D/x*T);for(eaA-1;0ea;ea--){Tea/A;caQ*Math.cos(T*Math.PI/2);Rfa*Math.sin(T*Math.PI/2);N0;for(TV.length;NT;N++)Yc(VN,zN,R),k(Y.x,Y.y,D+ca);H0;for(JM.length;HJ;H++)for(PMH,aaCH,N0,TP.length;NT;N++)Yc(PN,aaN,R),E?k(Y.x,Y.y+Xx-1.y,Xx-1.x+ca):k(Y.x,Y.y,D+ca)}(function(){var ae.length/3;if(y){var b0*W;for(N0;Nba;N++)SUN,l(S2+b,S1+b,S0+b);bW*(x+2*A);for(N0;Nba;N++)SUN,l(S0+b,S1+b,S2+b)}else{for(N0;Nba;N++)SUN,l(S2,S1,S0);for(N0;Nba;N++)SUN,l(S0+W*x,S1+W*x,S2+W*x)}d.addGroup(a,e.length/3-a,0)})();(function(){var ae.length/3,b0;h(V,b);b+V.length;H0;for(JM.length;HJ;H++)PMH,h(P,b),b+P.length;d.addGroup(a,e.length/3-a,1)})()}C.call(this);this.typeExtrudeBufferGeometry;this.parameters{shapes:a,options:b};aArray.isArray(a)?a:a;for(var dthis,e,f,g0,ha.length;gh;g++)c(ag);this.addAttribute(position,new F(e,3));this.addAttribute(uv,new F(f,2));this.computeVertexNormals()}function Af(a,b,c){c.shapes;if(Array.isArray(a))for(var d0,ea.length;de;d++)c.shapes.push(ad.uuid);else c.shapes.push(a.uuid);void 0!b.extrudePath&&(c.options.extrudePathb.extrudePath.toJSON());return c}function Yc(a,b){G.call(this);this.typeTextGeometry;this.parameters{text:a,parameters:b};this.fromBufferGeometry(new cc(a,b));this.mergeVertices()}function cc(a,b){bb||{};var cb.font;if(!c||!c.isFont)return console.error(THREE.TextGeometry: font parameter is not an instance of THREE.Font.),new G;ac.generateShapes(a,b.size);b.depthvoid 0!b.height?b.height:50;void 0b.bevelThickness&&(b.bevelThickness10);void 0b.bevelSize&&(b.bevelSize8);void 0b.bevelEnabled&&(b.bevelEnabled!1);Va.call(this,a,b);this.typeTextBufferGeometry}function Zc(a,b,c,d,e,f,g){G.call(this);this.typeSphereGeometry;this.parameters{radius:a,widthSegments:b,heightSegments:c,phiStart:d,phiLength:e,thetaStart:f,thetaLength:g};this.fromBufferGeometry(new zb(a,b,c,d,e,f,g));this.mergeVertices()}function zb(a,b,c,d,e,f,g){C.call(this);this.typeSphereBufferGeometry;this.parameters{radius:a,widthSegments:b,heightSegments:c,phiStart:d,phiLength:e,thetaStart:f,thetaLength:g};aa||1;bMath.max(3,Math.floor(b)||8);cMath.max(2,Math.floor(c)||6);dvoid 0!d?d:0;evoid 0!e?e:2*Math.PI;fvoid 0!f?f:0;gvoid 0!g?g:Math.PI;var hf+g,k,m,p0,q,lnew n,tnew n,r,u,w,z;for(m0;mc;m++){var x,Dm/c;for(k0;kb;k++){var yk/b;l.x-a*Math.cos(d+y*e)*Math.sin(f+D*g);l.ya*Math.cos(f+D*g);l.za*Math.sin(d+y*e)*Math.sin(f+D*g);u.push(l.x,l.y,l.z);t.set(l.x,l.y,l.z).normalize();w.push(t.x,t.y,t.z);z.push(y,1-D);x.push(p++)}q.push(x)}for(m0;mc;m++)for(k0;kb;k++)aqmk+1,dqmk,eqm+1k,gqm+1k+1,(0!m||0f)&&r.push(a,d,g),(m!c-1||hMath.PI)&&r.push(d,e,g);this.setIndex(r);this.addAttribute(position,new F(u,3));this.addAttribute(normal,new F(w,3));this.addAttribute(uv,new F(z,2))}function $c(a,b,c,d,e,f){G.call(this);this.typeRingGeometry;this.parameters{innerRadius:a,outerRadius:b,thetaSegments:c,phiSegments:d,thetaStart:e,thetaLength:f};this.fromBufferGeometry(new dc(a,b,c,d,e,f));this.mergeVertices()}function dc(a,b,c,d,e,f){C.call(this);this.typeRingBufferGeometry;this.parameters{innerRadius:a,outerRadius:b,thetaSegments:c,phiSegments:d,thetaStart:e,thetaLength:f};aa||.5;bb||1;evoid 0!e?e:0;fvoid 0!f?f:2*Math.PI;cvoid 0!c?Math.max(3,c):8;dvoid 0!d?Math.max(1,d):1;var g,h,k,m,pa,l(b-a)/d,vnew n,tnew B,r,u;for(r0;rd;r++){for(u0;uc;u++)ae+u/c*f,v.xp*Math.cos(a),v.yp*Math.sin(a),h.push(v.x,v.y,v.z),k.push(0,0,1),t.x(v.x/b+1)/2,t.y(v.y/b+1)/2,m.push(t.x,t.y);p+l}for(r0;rd;r++)for(br*(c+1),u0;uc;u++)au+b,ea+c+1,fa+c+2,pa+1,g.push(a,e,p),g.push(e,f,p);this.setIndex(g);this.addAttribute(position,new F(h,3));this.addAttribute(normal,new F(k,3));this.addAttribute(uv,new F(m,2))}function ad(a,b,c,d){G.call(this);this.typeLatheGeometry;this.parameters{points:a,segments:b,phiStart:c,phiLength:d};this.fromBufferGeometry(new ec(a,b,c,d));this.mergeVertices()}function ec(a,b,c,d){C.call(this);this.typeLatheBufferGeometry;this.parameters{points:a,segments:b,phiStart:c,phiLength:d};bMath.floor(b)||12;cc||0;dd||2*Math.PI;dH.clamp(d,0,2*Math.PI);var e,f,g,h1/b,knew n,mnew B,p;for(p0;pb;p++){var lc+p*h*d;var vMath.sin(l),tMath.cos(l);for(l0;la.length-1;l++)k.xal.x*v,k.yal.y,k.zal.x*t,f.push(k.x,k.y,k.z),m.xp/b,m.yl/(a.length-1),g.push(m.x,m.y)}for(p0;pb;p++)for(l0;la.length-1;l++)cl+p*a.length,hc+a.length,kc+a.length+1,mc+1,e.push(c,h,m),e.push(h,k,m);this.setIndex(e);this.addAttribute(position,new F(f,3));this.addAttribute(uv,new F(g,2));this.computeVertexNormals();if(d2*Math.PI)for(dthis.attributes.normal.array,enew n,fnew n,gnew n,cb*a.length*3,lp0;pa.length;p++,l+3)e.xdl+0,e.ydl+1,e.zdl+2,f.xdc+l+0,f.ydc+l+1,f.zdc+l+2,g.addVectors(e,f).normalize(),dl+0dc+l+0g.x,dl+1dc+l+1g.y,dl+2dc+l+2g.z}function Ab(a,b){G.call(this);this.typeShapeGeometry;objecttypeof b&&(console.warn(THREE.ShapeGeometry: Options parameter has been removed.),bb.curveSegments);this.parameters{shapes:a,curveSegments:b};this.fromBufferGeometry(new Bb(a,b));this.mergeVertices()}function Bb(a,b){function c(a){var c,he.length/3;aa.extractPoints(b);var ma.shape,pa.holes;!1ab.isClockWise(m)&&(mm.reverse());a0;for(cp.length;ac;a++){var lpa;!0ab.isClockWise(l)&&(pal.reverse())}var nab.triangulateShape(m,p);a0;for(cp.length;ac;a++)lpa,mm.concat(l);a0;for(cm.length;ac;a++)lma,e.push(l.x,l.y,0),f.push(0,0,1),g.push(l.x,l.y);a0;for(cn.length;ac;a++)mna,d.push(m0+h,m1+h,m2+h),k+3}C.call(this);this.typeShapeBufferGeometry;this.parameters{shapes:a,curveSegments:b};bb||12;var d,e,f,g,h0,k0;if(!1Array.isArray(a))c(a);else for(var m0;ma.length;m++)c(am),this.addGroup(h,k,m),h+k,k0;this.setIndex(d);this.addAttribute(position,new F(e,3));this.addAttribute(normal,new F(f,3));this.addAttribute(uv,new F(g,2))}function Bf(a,b){b.shapes;if(Array.isArray(a))for(var c0,da.length;cd;c++)b.shapes.push(ac.uuid);else b.shapes.push(a.uuid);return b}function fc(a,b){C.call(this);this.typeEdgesGeometry;this.parameters{thresholdAngle:b};var c;bMath.cos(H.DEG2RAD*(void 0!b?b:1));var d0,0,e{},fa,b,c;if(a.isBufferGeometry){var gnew G;g.fromBufferGeometry(a)}else ga.clone();g.mergeVertices();g.computeFaceNormals();ag.vertices;gg.faces;for(var h0,kg.length;hk;h++)for(var mgh,p0;3>p;p++){var lmfp;var nmf(p+1)%3;d0Math.min(l,n);d1Math.max(l,n);ld0+,+d1;void 0el?el{index1:d0,index2:d1,face1:h,face2:void 0}:el.face2h}for(l in e)if(del,void 0d.face2||gd.face1.normal.dot(gd.face2.normal)b)fad.index1,c.push(f.x,f.y,f.z),fad.index2,c.push(f.x,f.y,f.z);this.addAttribute(position,new F(c,3))}function Cb(a,b,c,d,e,f,g,h){G.call(this);this.typeCylinderGeometry;this.parameters{radiusTop:a,radiusBottom:b,height:c,radialSegments:d,heightSegments:e,openEnded:f,thetaStart:g,thetaLength:h};this.fromBufferGeometry(new bb(a,b,c,d,e,f,g,h));this.mergeVertices()}function bb(a,b,c,d,e,f,g,h){function k(c){var e,fnew B,knew n,q0,u!0c?a:b,x!0c?1:-1;var Cr;for(e1;ed;e++)l.push(0,w*x,0),v.push(0,x,0),t.push(.5,.5),r++;var Er;for(e0;ed;e++){var Fe/d*h+g,HMath.cos(F);FMath.sin(F);k.xu*F;k.yw*x;k.zu*H;l.push(k.x,k.y,k.z);v.push(0,x,0);f.x.5*H+.5;f.y.5*F*x+.5;t.push(f.x,f.y);r++}for(e0;ed;e++)fC+e,kE+e,!0c?p.push(k,k+1,f):p.push(k+1,k,f),q+3;m.addGroup(z,q,!0c?1:2);z+q}C.call(this);this.typeCylinderBufferGeometry;this.parameters{radiusTop:a,radiusBottom:b,height:c,radialSegments:d,heightSegments:e,openEnded:f,thetaStart:g,thetaLength:h};var mthis;avoid 0!a?a:1;bvoid 0!b?b:1;cc||1;dMath.floor(d)||8;eMath.floor(e)||1;fvoid 0!f?f:!1;gvoid 0!g?g:0;hvoid 0!h?h:2*Math.PI;var p,l,v,t,r0,u,wc/2,z0;(function(){var f,k,qnew n,Qnew n,B0,A(b-a)/c;for(k0;ke;k++){var C,Fk/e,EF*(b-a)+a;for(f0;fd;f++){var Hf/d,GH*h+g,IMath.sin(G);GMath.cos(G);Q.xE*I;Q.y-F*c+w;Q.zE*G;l.push(Q.x,Q.y,Q.z);q.set(I,A,G).normalize();v.push(q.x,q.y,q.z);t.push(H,1-F);C.push(r++)}u.push(C)}for(f0;fd;f++)for(k0;ke;k++)quk+1f,Quk+1f+1,Aukf+1,p.push(ukf,q,A),p.push(q,Q,A),B+6;m.addGroup(z,B,0);z+B})();!1f&&(0a&&k(!0),0b&&k(!1));this.setIndex(p);this.addAttribute(position,new F(l,3));this.addAttribute(normal,new F(v,3));this.addAttribute(uv,new F(t,2))}function bd(a,b,c,d,e,f,g){Cb.call(this,0,a,b,c,d,e,f,g);this.typeConeGeometry;this.parameters{radius:a,height:b,radialSegments:c,heightSegments:d,openEnded:e,thetaStart:f,thetaLength:g}}function cd(a,b,c,d,e,f,g){bb.call(this,0,a,b,c,d,e,f,g);this.typeConeBufferGeometry;this.parameters{radius:a,height:b,radialSegments:c,heightSegments:d,openEnded:e,thetaStart:f,thetaLength:g}}function dd(a,b,c,d){G.call(this);this.typeCircleGeometry;this.parameters{radius:a,segments:b,thetaStart:c,thetaLength:d};this.fromBufferGeometry(new gc(a,b,c,d));this.mergeVertices()}function gc(a,b,c,d){C.call(this);this.typeCircleBufferGeometry;this.parameters{radius:a,segments:b,thetaStart:c,thetaLength:d};aa||1;bvoid 0!b?Math.max(3,b):8;cvoid 0!c?c:0;dvoid 0!d?d:2*Math.PI;var e,f,g,h,k,mnew n,pnew B;f.push(0,0,0);g.push(0,0,1);h.push(.5,.5);var l0;for(k3;lb;l++,k+3){var vc+l/b*d;m.xa*Math.cos(v);m.ya*Math.sin(v);f.push(m.x,m.y,m.z);g.push(0,0,1);p.x(fk/a+1)/2;p.y(fk+1/a+1)/2;h.push(p.x,p.y)}for(k1;kb;k++)e.push(k,k+1,0);this.setIndex(e);this.addAttribute(position,new F(f,3));this.addAttribute(normal,new F(g,3));this.addAttribute(uv,new F(h,2))}function Db(a){M.call(this);this.typeShadowMaterial;this.colornew K(0);this.transparent!0;this.setValues(a)}function hc(a){Ca.call(this,a);this.typeRawShaderMaterial}function Wa(a){M.call(this);this.defines{STANDARD:};this.typeMeshStandardMaterial;this.colornew K(16777215);this.metalnessthis.roughness.5;this.lightMapthis.mapnull;this.lightMapIntensity1;this.aoMapnull;this.aoMapIntensity1;this.emissivenew K(0);this.emissiveIntensity1;this.bumpMapthis.emissiveMapnull;this.bumpScale1;this.normalMapnull;this.normalMapType0;this.normalScalenew B(1,1);this.displacementMapnull;this.displacementScale1;this.displacementBias0;this.envMapthis.alphaMapthis.metalnessMapthis.roughnessMapnull;this.envMapIntensity1;this.refractionRatio.98;this.wireframe!1;this.wireframeLinewidth1;this.wireframeLinejointhis.wireframeLinecapround;this.morphNormalsthis.morphTargetsthis.skinning!1;this.setValues(a)}function Eb(a){Wa.call(this);this.defines{PHYSICAL:};this.typeMeshPhysicalMaterial;this.reflectivity.5;this.clearCoatRoughnessthis.clearCoat0;this.setValues(a)}function Ja(a){M.call(this);this.typeMeshPhongMaterial;this.colornew K(16777215);this.specularnew K(1118481);this.shininess30;this.lightMapthis.mapnull;this.lightMapIntensity1;this.aoMapnull;this.aoMapIntensity1;this.emissivenew K(0);this.emissiveIntensity1;this.bumpMapthis.emissiveMapnull;this.bumpScale1;this.normalMapnull;this.normalMapType0;this.normalScalenew B(1,1);this.displacementMapnull;this.displacementScale1;this.displacementBias0;this.envMapthis.alphaMapthis.specularMapnull;this.combine0;this.reflectivity1;this.refractionRatio.98;this.wireframe!1;this.wireframeLinewidth1;this.wireframeLinejointhis.wireframeLinecapround;this.morphNormalsthis.morphTargetsthis.skinning!1;this.setValues(a)}function Fb(a){Ja.call(this);this.defines{TOON:};this.typeMeshToonMaterial;this.gradientMapnull;this.setValues(a)}function Gb(a){M.call(this);this.typeMeshNormalMaterial;this.bumpMapnull;this.bumpScale1;this.normalMapnull;this.normalMapType0;this.normalScalenew B(1,1);this.displacementMapnull;this.displacementScale1;this.displacementBias0;this.wireframe!1;this.wireframeLinewidth1;this.morphNormalsthis.morphTargetsthis.skinningthis.lightsthis.fog!1;this.setValues(a)}function Hb(a){M.call(this);this.typeMeshLambertMaterial;this.colornew K(16777215);this.lightMapthis.mapnull;this.lightMapIntensity1;this.aoMapnull;this.aoMapIntensity1;this.emissivenew K(0);this.emissiveIntensity1;this.envMapthis.alphaMapthis.specularMapthis.emissiveMapnull;this.combine0;this.reflectivity1;this.refractionRatio.98;this.wireframe!1;this.wireframeLinewidth1;this.wireframeLinejointhis.wireframeLinecapround;this.morphNormalsthis.morphTargetsthis.skinning!1;this.setValues(a)}function Ib(a){M.call(this);this.defines{MATCAP:};this.typeMeshMatcapMaterial;this.colornew K(16777215);this.bumpMapthis.mapthis.matcapnull;this.bumpScale1;this.normalMapnull;this.normalMapType0;this.normalScalenew B(1,1);this.displacementMapnull;this.displacementScale1;this.displacementBias0;this.alphaMapnull;this.lightsthis.morphNormalsthis.morphTargetsthis.skinning!1;this.setValues(a)}function Jb(a){R.call(this);this.typeLineDashedMaterial;this.scale1;this.dashSize3;this.gapSize1;this.setValues(a)}function wa(a,b,c,d){this.parameterPositionsa;this._cachedIndex0;this.resultBuffervoid 0!d?d:new b.constructor(c);this.sampleValuesb;this.valueSizec}function Ed(a,b,c,d){wa.call(this,a,b,c,d);this._offsetNextthis._weightNextthis._offsetPrevthis._weightPrev-0}function ed(a,b,c,d){wa.call(this,a,b,c,d)}function Fd(a,b,c,d){wa.call(this,a,b,c,d)}function ra(a,b,c,d){if(void 0a)throw Error(THREE.KeyframeTrack: track name is undefined);if(void 0b||0b.length)throw Error(THREE.KeyframeTrack: no keyframes in track named +a);this.namea;this.timessa.convertArray(b,this.TimeBufferType);this.valuessa.convertArray(c,this.ValueBufferType);this.setInterpolation(d||this.DefaultInterpolation)}function Gd(a,b,c){ra.call(this,a,b,c)}function Hd(a,b,c,d){ra.call(this,a,b,c,d)}function ic(a,b,c,d){ra.call(this,a,b,c,d)}function Id(a,b,c,d){wa.call(this,a,b,c,d)}function fd(a,b,c,d){ra.call(this,a,b,c,d)}function Jd(a,b,c,d){ra.call(this,a,b,c,d)}function jc(a,b,c,d){ra.call(this,a,b,c,d)}function Ga(a,b,c){this.namea;this.tracksc;this.durationvoid 0!b?b:-1;this.uuidH.generateUUID();0>this.duration&&this.resetDuration()}function eh(a){switch(a.toLowerCase()){case scalar:case double:case float:case number:case integer:return ic;case vector:case vector2:case vector3:case vector4:return jc;case color:return Hd;case quaternion:return fd;case bool:case boolean:return Gd;case string:return Jd}throw Error(THREE.KeyframeTrack: Unsupported typeName: +a);}function fh(a){if(void 0a.type)throw Error(THREE.KeyframeTrack: track type undefined, can not parse);var beh(a.type);if(void 0a.times){var c,d;sa.flattenJSON(a.keys,c,d,value);a.timesc;a.valuesd}return void 0!b.parse?b.parse(a):new b(a.name,a.times,a.values,a.interpolation)}function me(a,b,c){var dthis,e!1,f0,g0,hvoid 0;this.onStartvoid 0;this.onLoada;this.onProgressb;this.onErrorc;this.itemStartfunction(a){g++;if(!1e&&void 0!d.onStart)d.onStart(a,f,g);e!0};this.itemEndfunction(a){f++;if(void 0!d.onProgress)d.onProgress(a,f,g);if(fg&&(e!1,void 0!d.onLoad))d.onLoad()};this.itemErrorfunction(a){if(void 0!d.onError)d.onError(a)};this.resolveURLfunction(a){return h?h(a):a};this.setURLModifierfunction(a){ha;return this}}function Ka(a){this.managervoid 0!a?a:Ba}function Cf(a){this.managervoid 0!a?a:Ba}function Df(a){this.managervoid 0!a?a:Ba;this._parsernull}function ne(a){this.managervoid 0!a?a:Ba;this._parsernull}function gd(a){this.managervoid 0!a?a:Ba}function oe(a){this.managervoid 0!a?a:Ba}function Kd(a){this.managervoid 0!a?a:Ba}function L(){this.typeCurve;this.arcLengthDivisions200}function Ea(a,b,c,d,e,f,g,h){L.call(this);this.typeEllipseCurve;this.aXa||0;this.aYb||0;this.xRadiusc||1;this.yRadiusd||1;this.aStartAnglee||0;this.aEndAnglef||2*Math.PI;this.aClockwiseg||!1;this.aRotationh||0}function kc(a,b,c,d,e,f){Ea.call(this,a,b,c,c,d,e,f);this.typeArcCurve}function pe(){var a0,b0,c0,d0;return{initCatmullRom:function(e,f,g,h,k){ek*(g-e);hk*(h-f);af;be;c-3*f+3*g-2*e-h;d2*f-2*g+e+h},initNonuniformCatmullRom:function(e,f,g,h,k,m,p){e((f-e)/k-(g-e)/(k+m)+(g-f)/m)*m;h((g-f)/m-(h-f)/(m+p)+(h-g)/p)*m;af;be;c-3*f+3*g-2*e-h;d2*f-2*g+e+h},calc:function(e){var fe*e;return a+b*e+c*f+d*f*e}}}function oa(a,b,c,d){L.call(this);this.typeCatmullRomCurve3;this.pointsa||;this.closedb||!1;this.curveTypec||centripetal;this.tensiond||.5}function Ef(a,b,c,d,e){b.5*(d-b);e.5*(e-c);var fa*a;return(2*c-2*d+b+e)*a*f+(-3*c+3*d-2*b-e)*f+b*a+c}function hd(a,b,c,d){var e1-a;return e*e*b+2*(1-a)*a*c+a*a*d}function id(a,b,c,d,e){var f1-a,g1-a;return f*f*f*b+3*g*g*a*c+3*(1-a)*a*a*d+a*a*a*e}function La(a,b,c,d){L.call(this);this.typeCubicBezierCurve;this.v0a||new B;this.v1b||new B;this.v2c||new B;this.v3d||new B}function Xa(a,b,c,d){L.call(this);this.typeCubicBezierCurve3;this.v0a||new n;this.v1b||new n;this.v2c||new n;this.v3d||new n}function ja(a,b){L.call(this);this.typeLineCurve;this.v1a||new B;this.v2b||new B}function Ma(a,b){L.call(this);this.typeLineCurve3;this.v1a||new n;this.v2b||new n}function Na(a,b,c){L.call(this);this.typeQuadraticBezierCurve;this.v0a||new B;this.v1b||new B;this.v2c||new B}function Ya(a,b,c){L.call(this);this.typeQuadraticBezierCurve3;this.v0a||new n;this.v1b||new n;this.v2c||new n}function Oa(a){L.call(this);this.typeSplineCurve;this.pointsa||}function cb(){L.call(this);this.typeCurvePath;this.curves;this.autoClose!1}function Pa(a){cb.call(this);this.typePath;this.currentPointnew B;a&&this.setFromPoints(a)}function kb(a){Pa.call(this,a);this.uuidH.generateUUID();this.typeShape;this.holes}function ia(a,b){E.call(this);this.typeLight;this.colornew K(a);this.intensityvoid 0!b?b:1;this.receiveShadowvoid 0}function Ld(a,b,c){ia.call(this,a,c);this.typeHemisphereLight;this.castShadowvoid 0;this.position.copy(E.DefaultUp);this.updateMatrix();this.groundColornew K(b)}function Kb(a){this.cameraa;this.bias0;this.radius1;this.mapSizenew B(512,512);this.mapnull;this.matrixnew J}function Md(){Kb.call(this,new S(50,1,.5,500))}function Nd(a,b,c,d,e,f){ia.call(this,a,b);this.typeSpotLight;this.position.copy(E.DefaultUp);this.updateMatrix();this.targetnew E;Object.defineProperty(this,power,{get:function(){return this.intensity*Math.PI},set:function(a){this.intensitya/Math.PI}});this.distancevoid 0!c?c:0;this.anglevoid 0!d?d:Math.PI/3;this.penumbravoid 0!e?e:0;this.decayvoid 0!f?f:1;this.shadownew Md}function Od(a,b,c,d){ia.call(this,a,b);this.typePointLight;Object.defineProperty(this,power,{get:function(){return 4*this.intensity*Math.PI},set:function(a){this.intensitya/(4*Math.PI)}});this.distancevoid 0!c?c:0;this.decayvoid 0!d?d:1;this.shadownew Kb(new S(90,1,.5,500))}function jd(a,b,c,d,e,f){Ua.call(this);this.typeOrthographicCamera;this.zoom1;this.viewnull;this.leftvoid 0!a?a:-1;this.rightvoid 0!b?b:1;this.topvoid 0!c?c:1;this.bottomvoid 0!d?d:-1;this.nearvoid 0!e?e:.1;this.farvoid 0!f?f:2E3;this.updateProjectionMatrix()}function Pd(){Kb.call(this,new jd(-5,5,5,-5,.5,500))}function Qd(a,b){ia.call(this,a,b);this.typeDirectionalLight;this.position.copy(E.DefaultUp);this.updateMatrix();this.targetnew E;this.shadownew Pd}function Rd(a,b){ia.call(this,a,b);this.typeAmbientLight;this.castShadowvoid 0}function Sd(a,b,c,d){ia.call(this,a,b);this.typeRectAreaLight;this.widthvoid 0!c?c:10;this.heightvoid 0!d?d:10}function Td(a){this.managervoid 0!a?a:Ba;this.textures{}}function qe(a){this.managervoid 0!a?a:Ba}function re(a){this.managervoid 0!a?a:Ba;this.resourcePath}function se(a){undefinedtypeof createImageBitmap&&console.warn(THREE.ImageBitmapLoader: createImageBitmap() not supported.);undefinedtypeof fetch&&console.warn(THREE.ImageBitmapLoader: fetch() not supported.);this.managervoid 0!a?a:Ba;this.optionsvoid 0}function te(){this.typeShapePath;this.colornew K;this.subPaths;this.currentPathnull}function ue(a){this.typeFont;this.dataa}function Ff(a){this.managervoid 0!a?a:Ba}function kd(){}function ve(a){this.managervoid 0!a?a:Ba}function Gf(){this.typeStereoCamera;this.aspect1;this.eyeSep.064;this.cameraLnew S;this.cameraL.layers.enable(1);this.cameraL.matrixAutoUpdate!1;this.cameraRnew S;this.cameraR.layers.enable(2);this.cameraR.matrixAutoUpdate!1}function ld(a,b,c,d){E.call(this);this.typeCubeCamera;var enew S(90,1,a,b);e.up.set(0,-1,0);e.lookAt(new n(1,0,0));this.add(e);var fnew S(90,1,a,b);f.up.set(0,-1,0);f.lookAt(new n(-1,0,0));this.add(f);var gnew S(90,1,a,b);g.up.set(0,0,1);g.lookAt(new n(0,1,0));this.add(g);var hnew S(90,1,a,b);h.up.set(0,0,-1);h.lookAt(new n(0,-1,0));this.add(h);var knew S(90,1,a,b);k.up.set(0,-1,0);k.lookAt(new n(0,0,1));this.add(k);var mnew S(90,1,a,b);m.up.set(0,-1,0);m.lookAt(new n(0,0,-1));this.add(m);dd||{format:1022,magFilter:1006,minFilter:1006};this.renderTargetnew mb(c,c,d);this.renderTarget.texture.nameCubeCamera;this.updatefunction(a,b){nullthis.parent&&this.updateMatrixWorld();var ca.getRenderTarget(),dthis.renderTarget,pd.texture.generateMipmaps;d.texture.generateMipmaps!1;a.setRenderTarget(d,0);a.render(b,e);a.setRenderTarget(d,1);a.render(b,f);a.setRenderTarget(d,2);a.render(b,g);a.setRenderTarget(d,3);a.render(b,h);a.setRenderTarget(d,4);a.render(b,k);d.texture.generateMipmapsp;a.setRenderTarget(d,5);a.render(b,m);a.setRenderTarget(c)};this.clearfunction(a,b,c,d){for(var ea.getRenderTarget(),fthis.renderTarget,g0;6>g;g++)a.setRenderTarget(f,g),a.clear(b,c,d);a.setRenderTarget(e)}}function we(a){this.autoStartvoid 0!a?a:!0;this.elapsedTimethis.oldTimethis.startTime0;this.running!1}function xe(){E.call(this);this.typeAudioListener;this.contextye.getContext();this.gainthis.context.createGain();this.gain.connect(this.context.destination);this.filternull;this.timeDelta0}function lc(a){E.call(this);this.typeAudio;this.listenera;this.contexta.context;this.gainthis.context.createGain();this.gain.connect(a.getInput());this.autoplay!1;this.buffernull;this.detune0;this.loop!1;this.offsetthis.startTime0;this.playbackRate1;this.isPlaying!1;this.hasPlaybackControl!0;this.sourceTypeempty;this.filters}function ze(a){lc.call(this,a);this.pannerthis.context.createPanner();this.panner.connect(this.gain)}function Ae(a,b){this.analysera.context.createAnalyser();this.analyser.fftSizevoid 0!b?b:2048;this.datanew Uint8Array(this.analyser.frequencyBinCount);a.getOutput().connect(this.analyser)}function Be(a,b,c){this.bindinga;this.valueSizec;aFloat64Array;switch(b){case quaternion:bthis._slerp;break;case string:case bool:aArray;bthis._select;break;default:bthis._lerp}this.buffernew a(4*c);this._mixBufferRegionb;this.referenceCountthis.useCountthis.cumulativeWeight0}function Hf(a,b,c){cc||ma.parseTrackName(b);this._targetGroupa;this._bindingsa.subscribe_(b,c)}function ma(a,b,c){this.pathb;this.parsedPathc||ma.parseTrackName(b);this.nodema.findNode(a,this.parsedPath.nodeName)||a;this.rootNodea}function If(){this.uuidH.generateUUID();this._objectsArray.prototype.slice.call(arguments);this.nCachedObjects_0;var a{};this._indicesByUUIDa;for(var b0,carguments.length;b!c;++b)aargumentsb.uuidb;this._paths;this._parsedPaths;this._bindings;this._bindingsIndicesByPath{};var dthis;this.stats{objects:{get total(){return d._objects.length},get inUse(){return this.total-d.nCachedObjects_}},get bindingsPerObject(){return d._bindings.length}}}function Jf(a,b,c){this._mixera;this._clipb;this._localRootc||null;ab.tracks;ba.length;cArray(b);for(var d{endingStart:2400,endingEnd:2400},e0;e!b;++e){var fae.createInterpolant(null);cef;f.settingsd}this._interpolantSettingsd;this._interpolantsc;this._propertyBindingsArray(b);this._weightInterpolantthis._timeScaleInterpolantthis._byClipCacheIndexthis._cacheIndexnull;this.loop2201;this._loopCount-1;this._startTimenull;this.time0;this._effectiveWeightthis.weightthis._effectiveTimeScalethis.timeScale1;this.repetitionsInfinity;this.paused!1;this.enabled!0;this.clampWhenFinished!1;this.zeroSlopeAtEndthis.zeroSlopeAtStart!0}function Ce(a){this._roota;this._initMemoryManager();this.timethis._accuIndex0;this.timeScale1}function Ud(a,b){stringtypeof a&&(console.warn(THREE.Uniform: Type parameter is no longer needed.),ab);this.valuea}function De(){C.call(this);this.typeInstancedBufferGeometry;this.maxInstancedCountvoid 0}function Ee(a,b,c){ub.call(this,a,b);this.meshPerAttributec||1}function Fe(a,b,c,d){numbertypeof c&&(dc,c!1,console.error(THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument.));P.call(this,a,b,c);this.meshPerAttributed||1}function Kf(a,b,c,d){this.raynew tb(a,b);this.nearc||0;this.fard||Infinity;this.params{Mesh:{},Line:{},LOD:{},Points:{threshold:1},Sprite:{}};Object.defineProperties(this.params,{PointCloud:{get:function(){console.warn(THREE.Raycaster: params.PointCloud has been renamed to params.Points.);return this.Points}}})}function Lf(a,b){return a.distance-b.distance}function Ge(a,b,c,d){if(!1!a.visible&&(a.raycast(b,c),!0d)){aa.children;d0;for(var ea.length;de;d++)Ge(ad,b,c,!0)}}function Mf(a,b,c){this.radiusvoid 0!a?a:1;this.phivoid 0!b?b:0;this.thetavoid 0!c?c:0;return this}function Nf(a,b,c){this.radiusvoid 0!a?a:1;this.thetavoid 0!b?b:0;this.yvoid 0!c?c:0;return this}function He(a,b){this.minvoid 0!a?a:new B(Infinity,Infinity);this.maxvoid 0!b?b:new B(-Infinity,-Infinity)}function Ie(a,b){this.startvoid 0!a?a:new n;this.endvoid 0!b?b:new n}function md(a){E.call(this);this.materiala;this.renderfunction(){}}function nd(a,b,c,d){this.objecta;this.sizevoid 0!b?b:1;avoid 0!c?c:16711680;dvoid 0!d?d:1;b0;(cthis.object.geometry)&&c.isGeometry?b3*c.faces.length:c&&c.isBufferGeometry&&(bc.attributes.normal.count);cnew C;bnew F(6*b,3);c.addAttribute(position,b);W.call(this,c,new R({color:a,linewidth:d}));this.matrixAutoUpdate!1;this.update()}function mc(a,b){E.call(this);this.lighta;this.light.updateMatrixWorld();this.matrixa.matrixWorld;this.matrixAutoUpdate!1;this.colorb;anew C;b0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1;for(var c0,d1;32>c;c++,d++){var ec/32*Math.PI*2,fd/32*Math.PI*2;b.push(Math.cos(e),Math.sin(e),1,Math.cos(f),Math.sin(f),1)}a.addAttribute(position,new F(b,3));bnew R({fog:!1});this.conenew W(a,b);this.add(this.cone);this.update()}function Of(a){var b;a&&a.isBone&&b.push(a);for(var c0;ca.children.length;c++)b.push.apply(b,Of(a.childrenc));return b}function nc(a){for(var bOf(a),cnew C,d,e,fnew K(0,0,1),gnew K(0,1,0),h0;hb.length;h++){var kbh;k.parent&&k.parent.isBone&&(d.push(0,0,0),d.push(0,0,0),e.push(f.r,f.g,f.b),e.push(g.r,g.g,g.b))}c.addAttribute(position,new F(d,3));c.addAttribute(color,new F(e,3));dnew R({vertexColors:2,depthTest:!1,depthWrite:!1,transparent:!0});W.call(this,c,d);this.roota;this.bonesb;this.matrixa.matrixWorld;this.matrixAutoUpdate!1}function oc(a,b,c){this.lighta;this.light.updateMatrixWorld();this.colorc;anew zb(b,4,2);bnew ya({wireframe:!0,fog:!1});va.call(this,a,b);this.matrixthis.light.matrixWorld;this.matrixAutoUpdate!1;this.update()}function pc(a,b){this.typeRectAreaLightHelper;this.lighta;this.colorb;anew C;a.addAttribute(position,new F(1,1,0,-1,1,0,-1,-1,0,1,-1,0,1,1,0,3));a.computeBoundingSphere();bnew R({fog:!1});da.call(this,a,b);anew C;a.addAttribute(position,new F(1,1,0,-1,1,0,-1,-1,0,1,1,0,-1,-1,0,1,-1,0,3));a.computeBoundingSphere();this.add(new va(a,new ya({side:1,fog:!1})));this.update()}function qc(a,b,c){E.call(this);this.lighta;this.light.updateMatrixWorld();this.matrixa.matrixWorld;this.matrixAutoUpdate!1;this.colorc;anew vb(b);a.rotateY(.5*Math.PI);this.materialnew ya({wireframe:!0,fog:!1});void 0this.color&&(this.material.vertexColors2);ba.getAttribute(position);bnew Float32Array(3*b.count);a.addAttribute(color,new P(b,3));this.add(new va(a,this.material));this.update()}function od(a,b,c,d){aa||10;bb||10;cnew K(void 0!c?c:4473924);dnew K(void 0!d?d:8947848);var eb/2,fa/b,ga/2;a;for(var h,k0,m0,p-g;kb;k++,p+f){a.push(-g,0,p,g,0,p);a.push(p,0,-g,p,0,g);var lke?c:d;l.toArray(h,m);m+3;l.toArray(h,m);m+3;l.toArray(h,m);m+3;l.toArray(h,m);m+3}bnew C;b.addAttribute(position,new F(a,3));b.addAttribute(color,new F(h,3));cnew R({vertexColors:2});W.call(this,b,c)}function Vd(a,b,c,d,e,f){aa||10;bb||16;cc||8;dd||64;enew K(void 0!e?e:4473924);fnew K(void 0!f?f:8947848);var g,h,k;for(k0;kb;k++){var mk/b*2*Math.PI;var pMath.sin(m)*a;mMath.cos(m)*a;g.push(0,0,0);g.push(p,0,m);var lk&1?e:f;h.push(l.r,l.g,l.b);h.push(l.r,l.g,l.b)}for(k0;kc;k++){lk&1?e:f;var na-a/c*k;for(b0;bd;b++)mb/d*2*Math.PI,pMath.sin(m)*n,mMath.cos(m)*n,g.push(p,0,m),h.push(l.r,l.g,l.b),m(b+1)/d*2*Math.PI,pMath.sin(m)*n,mMath.cos(m)*n,g.push(p,0,m),h.push(l.r,l.g,l.b)}anew C;a.addAttribute(position,new F(g,3));a.addAttribute(color,new F(h,3));gnew R({vertexColors:2});W.call(this,a,g)}function rc(a,b,c,d){this.audioa;this.rangeb||1;this.divisionsInnerAnglec||16;this.divisionsOuterAngled||2;anew C;bnew Float32Array(3*(3*(this.divisionsInnerAngle+2*this.divisionsOuterAngle)+3));a.addAttribute(position,new P(b,3));bnew R({color:65280});cnew R({color:16776960});da.call(this,a,c,b);this.update()}function pd(a,b,c,d){this.objecta;this.sizevoid 0!b?b:1;avoid 0!c?c:16776960;dvoid 0!d?d:1;b0;(cthis.object.geometry)&&c.isGeometry?bc.faces.length:console.warn(THREE.FaceNormalsHelper: only THREE.Geometry is supported. Use THREE.VertexNormalsHelper, instead.);cnew C;bnew F(6*b,3);c.addAttribute(position,b);W.call(this,c,new R({color:a,linewidth:d}));this.matrixAutoUpdate!1;this.update()}function sc(a,b,c){E.call(this);this.lighta;this.light.updateMatrixWorld();this.matrixa.matrixWorld;this.matrixAutoUpdate!1;this.colorc;void 0b&&(b1);anew C;a.addAttribute(position,new F(-b,b,0,b,b,0,b,-b,0,-b,-b,0,-b,b,0,3));bnew R({fog:!1});this.lightPlanenew da(a,b);this.add(this.lightPlane);anew C;a.addAttribute(position,new F(0,0,0,0,0,1,3));this.targetLinenew da(a,b);this.add(this.targetLine);this.update()}function qd(a){function b(a,b,d){c(a,d);c(b,d)}function c(a,b){f.push(0,0,0);g.push(b.r,b.g,b.b);void 0ha&&(ha);ha.push(f.length/3-1)}var dnew C,enew R({color:16777215,vertexColors:1}),f,g,h{},knew K(16755200),mnew K(16711680),pnew K(43775),lnew K(16777215),nnew K(3355443);b(n1,n2,k);b(n2,n4,k);b(n4,n3,k);b(n3,n1,k);b(f1,f2,k);b(f2,f4,k);b(f4,f3,k);b(f3,f1,k);b(n1,f1,k);b(n2,f2,k);b(n3,f3,k);b(n4,f4,k);b(p,n1,m);b(p,n2,m);b(p,n3,m);b(p,n4,m);b(u1,u2,p);b(u2,u3,p);b(u3,u1,p);b(c,t,l);b(p,c,n);b(cn1,cn2,n);b(cn3,cn4,n);b(cf1,cf2,n);b(cf3,cf4,n);d.addAttribute(position,new F(f,3));d.addAttribute(color,new F(g,3));W.call(this,d,e);this.cameraa;this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix();this.matrixa.matrixWorld;this.matrixAutoUpdate!1;this.pointMaph;this.update()}function db(a,b){this.objecta;void 0b&&(b16776960);anew Uint16Array(0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7);var cnew Float32Array(24),dnew C;d.setIndex(new P(a,1));d.addAttribute(position,new P(c,3));W.call(this,d,new R({color:b}));this.matrixAutoUpdate!1;this.update()}function rd(a,b){this.typeBox3Helper;this.boxa;avoid 0!b?b:16776960;bnew Uint16Array(0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7);var cnew C;c.setIndex(new P(b,1));c.addAttribute(position,new F(1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,3));W.call(this,c,new R({color:a}));this.geometry.computeBoundingSphere()}function sd(a,b,c){this.typePlaneHelper;this.planea;this.sizevoid 0b?1:b;avoid 0!c?c:16776960;bnew C;b.addAttribute(position,new F(1,-1,1,-1,1,1,-1,-1,1,1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,0,0,1,0,0,0,3));b.computeBoundingSphere();da.call(this,b,new R({color:a}));bnew C;b.addAttribute(position,new F(1,1,1,-1,1,1,-1,-1,1,1,1,1,-1,-1,1,1,-1,1,3));b.computeBoundingSphere();this.add(new va(b,new ya({color:a,opacity:.2,transparent:!0,depthWrite:!1})))}function eb(a,b,c,d,e,f){E.call(this);void 0a&&(anew n(0,0,1));void 0b&&(bnew n(0,0,0));void 0c&&(c1);void 0d&&(d16776960);void 0e&&(e.2*c);void 0f&&(f.2*e);void 0Wd&&(Wdnew C,Wd.addAttribute(position,new F(0,0,0,0,1,0,3)),Jenew bb(0,.5,1,5,1),Je.translate(0,-.5,0));this.position.copy(b);this.linenew da(Wd,new R({color:d}));this.line.matrixAutoUpdate!1;this.add(this.line);this.conenew va(Je,new ya({color:d}));this.cone.matrixAutoUpdate!1;this.add(this.cone);this.setDirection(a);this.setLength(c,e,f)}function td(a){aa||1;var b0,0,0,a,0,0,0,0,0,0,a,0,0,0,0,0,0,a;anew C;a.addAttribute(position,new F(b,3));a.addAttribute(color,new F(1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1,3));bnew R({vertexColors:2});W.call(this,a,b)}function Pf(a){console.warn(THREE.ClosedSplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead.);oa.call(this,a);this.typecatmullrom;this.closed!0}function Qf(a){console.warn(THREE.SplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead.);oa.call(this,a);this.typecatmullrom}function Ke(a){console.warn(THREE.Spline has been removed. Use THREE.CatmullRomCurve3 instead.);oa.call(this,a);this.typecatmullrom}void 0Number.EPSILON&&(Number.EPSILONMath.pow(2,-52));void 0Number.isInteger&&(Number.isIntegerfunction(a){returnnumbertypeof a&&isFinite(a)&&Math.floor(a)a});void 0Math.sign&&(Math.signfunction(a){return 0>a?-1:0a?1:+a});!1namein Function.prototype&&Object.defineProperty(Function.prototype,name,{get:function(){return this.toString().match(/^\s*function\s*(^\(\s*)/)1}});void 0Object.assign&&function(){Object.assignfunction(a){if(void 0a||nulla)throw new TypeError(Cannot convert undefined or null to object);for(var bObject(a),c1;carguments.length;c++){var dargumentsc;if(void 0!d&&null!d)for(var e in d)Object.prototype.hasOwnProperty.call(d,e)&&(bede)}return b}}();Object.assign(ka.prototype,{addEventListener:function(a,b){void 0this._listeners&&(this._listeners{});var cthis._listeners;void 0ca&&(ca);-1ca.indexOf(b)&&ca.push(b)},hasEventListener:function(a,b){if(void 0this._listeners)return!1;var cthis._listeners;return void 0!ca&&-1!ca.indexOf(b)},removeEventListener:function(a,b){void 0!this._listeners&&(athis._listenersa,void 0!a&&(ba.indexOf(b),-1!b&&a.splice(b,1)))},dispatchEvent:function(a){if(void 0!this._listeners){var bthis._listenersa.type;if(void 0!b){a.targetthis;bb.slice(0);for(var c0,db.length;cd;c++)bc.call(this,a)}}}});var H{DEG2RAD:Math.PI/180,RAD2DEG:180/Math.PI,generateUUID:function(){for(var a,b0;256>b;b++)ab(16>b?0:)+b.toString(16);return function(){var b4294967295*Math.random()|0,d4294967295*Math.random()|0,e4294967295*Math.random()|0,f4294967295*Math.random()|0;return(ab&255+ab>>8&255+ab>>16&255+ab>>24&255+-+ad&255+ad>>8&255+-+ad>>16&15|64+ad>>24&255+-+ae&63|128+ae>>8&255+-+ae>>16&255+ae>>24&255+af&255+af>>8&255+af>>16&255+af>>24&255).toUpperCase()}}(),clamp:function(a,b,c){return Math.max(b,Math.min(c,a))},euclideanModulo:function(a,b){return(a%b+b)%b},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},lerp:function(a,b,c){return(1-c)*a+c*b},smoothstep:function(a,b,c){if(ab)return 0;if(a>c)return 1;a(a-b)/(c-b);return a*a*(3-2*a)},smootherstep:function(a,b,c){if(ab)return 0;if(a>c)return 1;a(a-b)/(c-b);return a*a*a*(a*(6*a-15)+10)},randInt:function(a,b){return a+Math.floor(Math.random()*(b-a+1))},randFloat:function(a,b){return a+Math.random()*(b-a)},randFloatSpread:function(a){return a*(.5-Math.random())},degToRad:function(a){return a*H.DEG2RAD},radToDeg:function(a){return a*H.RAD2DEG},isPowerOfTwo:function(a){return 0(a&a-1)&&0!a},ceilPowerOfTwo:function(a){return Math.pow(2,Math.ceil(Math.log(a)/Math.LN2))},floorPowerOfTwo:function(a){return Math.pow(2,Math.floor(Math.log(a)/Math.LN2))}};Object.defineProperties(B.prototype,{width:{get:function(){return this.x},set:function(a){this.xa}},height:{get:function(){return this.y},set:function(a){this.ya}}});Object.assign(B.prototype,{isVector2:!0,set:function(a,b){this.xa;this.yb;return this},setScalar:function(a){this.ythis.xa;return this},setX:function(a){this.xa;return this},setY:function(a){this.ya;return this},setComponent:function(a,b){switch(a){case 0:this.xb;break;case 1:this.yb;break;default:throw Error(index is out of range: +a);}return this},getComponent:function(a){switch(a){case 0:return this.x;case 1:return this.y;default:throw Error(index is out of range: +a);}},clone:function(){return new this.constructor(this.x,this.y)},copy:function(a){this.xa.x;this.ya.y;return this},add:function(a,b){if(void 0!b)return console.warn(THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead.),this.addVectors(a,b);this.x+a.x;this.y+a.y;return this},addScalar:function(a){this.x+a;this.y+a;return this},addVectors:function(a,b){this.xa.x+b.x;this.ya.y+b.y;return this},addScaledVector:function(a,b){this.x+a.x*b;this.y+a.y*b;return this},sub:function(a,b){if(void 0!b)return console.warn(THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.),this.subVectors(a,b);this.x-a.x;this.y-a.y;return this},subScalar:function(a){this.x-a;this.y-a;return this},subVectors:function(a,b){this.xa.x-b.x;this.ya.y-b.y;return this},multiply:function(a){this.x*a.x;this.y*a.y;return this},multiplyScalar:function(a){this.x*a;this.y*a;return this},divide:function(a){this.x/a.x;this.y/a.y;return this},divideScalar:function(a){return this.multiplyScalar(1/a)},applyMatrix3:function(a){var bthis.x,cthis.y;aa.elements;this.xa0*b+a3*c+a6;this.ya1*b+a4*c+a7;return this},min:function(a){this.xMath.min(this.x,a.x);this.yMath.min(this.y,a.y);return this},max:function(a){this.xMath.max(this.x,a.x);this.yMath.max(this.y,a.y);return this},clamp:function(a,b){this.xMath.max(a.x,Math.min(b.x,this.x));this.yMath.max(a.y,Math.min(b.y,this.y));return this},clampScalar:function(){var anew B,bnew B;return function(c,d){a.set(c,c);b.set(d,d);return this.clamp(a,b)}}(),clampLength:function(a,b){var cthis.length();return this.divideScalar(c||1).multiplyScalar(Math.max(a,Math.min(b,c)))},floor:function(){this.xMath.floor(this.x);this.yMath.floor(this.y);return this},ceil:function(){this.xMath.ceil(this.x);this.yMath.ceil(this.y);return this},round:function(){this.xMath.round(this.x);this.yMath.round(this.y);return this},roundToZero:function(){this.x0>this.x?Math.ceil(this.x):Math.floor(this.x);this.y0>this.y?Math.ceil(this.y):Math.floor(this.y);return this},negate:function(){this.x-this.x;this.y-this.y;return this},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},lengthSq:function(){return this.x*this.x+this.y*this.y},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)},normalize:function(){return this.divideScalar(this.length()||1)},angle:function(){var aMath.atan2(this.y,this.x);0>a&&(a+2*Math.PI);return a},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))},distanceToSquared:function(a){var bthis.x-a.x;athis.y-a.y;return b*b+a*a},manhattanDistanceTo:function(a){return Math.abs(this.x-a.x)+Math.abs(this.y-a.y)},setLength:function(a){return this.normalize().multiplyScalar(a)},lerp:function(a,b){this.x+(a.x-this.x)*b;this.y+(a.y-this.y)*b;return this},lerpVectors:function(a,b,c){return this.subVectors(b,a).multiplyScalar(c).add(a)},equals:function(a){return a.xthis.x&&a.ythis.y},fromArray:function(a,b){void 0b&&(b0);this.xab;this.yab+1;return this},toArray:function(a,b){void 0a&&(a);void 0b&&(b0);abthis.x;ab+1this.y;return a},fromBufferAttribute:function(a,b,c){void 0!c&&console.warn(THREE.Vector2: offset has been removed from .fromBufferAttribute().);this.xa.getX(b);this.ya.getY(b);return this},rotateAround:function(a,b){var cMath.cos(b);bMath.sin(b);var dthis.x-a.x,ethis.y-a.y;this.xd*c-e*b+a.x;this.yd*b+e*c+a.y;return this}});Object.assign(J.prototype,{isMatrix4:!0,set:function(a,b,c,d,e,f,g,h,k,m,l,q,n,t,r,u){var pthis.elements;p0a;p4b;p8c;p12d;p1e;p5f;p9g;p13h;p2k;p6m;p10l;p14q;p3n;p7t;p11r;p15u;return this},identity:function(){this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);return this},clone:function(){return(new J).fromArray(this.elements)},copy:function(a){var bthis.elements;aa.elements;b0a0;b1a1;b2a2;b3a3;b4a4;b5a5;b6a6;b7a7;b8a8;b9a9;b10a10;b11a11;b12a12;b13a13;b14a14;b15a15;return this},copyPosition:function(a){var bthis.elements;aa.elements;b12a12;b13a13;b14a14;return this},extractBasis:function(a,b,c){a.setFromMatrixColumn(this,0);b.setFromMatrixColumn(this,1);c.setFromMatrixColumn(this,2);return this},makeBasis:function(a,b,c){this.set(a.x,b.x,c.x,0,a.y,b.y,c.y,0,a.z,b.z,c.z,0,0,0,0,1);return this},extractRotation:function(){var anew n;return function(b){var cthis.elements,db.elements,e1/a.setFromMatrixColumn(b,0).length(),f1/a.setFromMatrixColumn(b,1).length();b1/a.setFromMatrixColumn(b,2).length();c0d0*e;c1d1*e;c2d2*e;c30;c4d4*f;c5d5*f;c6d6*f;c70;c8d8*b;c9d9*b;c10d10*b;c110;c120;c130;c140;c151;return this}}(),makeRotationFromEuler:function(a){a&&a.isEuler||console.error(THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.);var bthis.elements,ca.x,da.y,ea.z,fMath.cos(c);cMath.sin(c);var gMath.cos(d);dMath.sin(d);var hMath.cos(e);eMath.sin(e);if(XYZa.order){af*h;var kf*e,mc*h,pc*e;b0g*h;b4-g*e;b8d;b1k+m*d;b5a-p*d;b9-c*g;b2p-a*d;b6m+k*d;b10f*g}elseYXZa.order?(ag*h,kg*e,md*h,pd*e,b0a+p*c,b4m*c-k,b8f*d,b1f*e,b5f*h,b9-c,b2k*c-m,b6p+a*c,b10f*g):ZXYa.order?(ag*h,kg*e,md*h,pd*e,b0a-p*c,b4-f*e,b8m+k*c,b1k+m*c,b5f*h,b9p-a*c,b2-f*d,b6c,b10f*g):ZYXa.order?(af*h,kf*e,mc*h,pc*e,b0g*h,b4m*d-k,b8a*d+p,b1g*e,b5p*d+a,b9k*d-m,b2-d,b6c*g,b10f*g):YZXa.order?(af*g,kf*d,mc*g,pc*d,b0g*h,b4p-a*e,b8m*e+k,b1e,b5f*h,b9-c*h,b2-d*h,b6k*e+m,b10a-p*e):XZYa.order&&(af*g,kf*d,mc*g,pc*d,b0g*h,b4-e,b8d*h,b1a*e+p,b5f*h,b9k*e-m,b2m*e-k,b6c*h,b10p*e+a);b30;b70;b110;b120;b130;b140;b151;return this},makeRotationFromQuaternion:function(){var anew n(0,0,0),bnew n(1,1,1);return function(c){return this.compose(a,c,b)}}(),lookAt:function(){var anew n,bnew n,cnew n;return function(d,e,f){var gthis.elements;c.subVectors(d,e);0c.lengthSq()&&(c.z1);c.normalize();a.crossVectors(f,c);0a.lengthSq()&&(1Math.abs(f.z)?c.x+1E-4:c.z+1E-4,c.normalize(),a.crossVectors(f,c));a.normalize();b.crossVectors(c,a);g0a.x;g4b.x;g8c.x;g1a.y;g5b.y;g9c.y;g2a.z;g6b.z;g10c.z;return this}}(),multiply:function(a,b){return void 0!b?(console.warn(THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead.),this.multiplyMatrices(a,b)):this.multiplyMatrices(this,a)},premultiply:function(a){return this.multiplyMatrices(a,this)},multiplyMatrices:function(a,b){var ca.elements,db.elements;bthis.elements;ac0;var ec4,fc8,gc12,hc1,kc5,mc9,pc13,lc2,nc6,tc10,rc14,uc3,wc7,zc11;cc15;var xd0,Dd4,yd8,Qd12,Bd1,Ad5,Cd9,Fd13,Ed2,Hd6,Gd10,Id14,Ld3,Jd7,Kd11;dd15;b0a*x+e*B+f*E+g*L;b4a*D+e*A+f*H+g*J;b8a*y+e*C+f*G+g*K;b12a*Q+e*F+f*I+g*d;b1h*x+k*B+m*E+p*L;b5h*D+k*A+m*H+p*J;b9h*y+k*C+m*G+p*K;b13h*Q+k*F+m*I+p*d;b2l*x+n*B+t*E+r*L;b6l*D+n*A+t*H+r*J;b10l*y+n*C+t*G+r*K;b14l*Q+n*F+t*I+r*d;b3u*x+w*B+z*E+c*L;b7u*D+w*A+z*H+c*J;b11u*y+w*C+z*G+c*K;b15u*Q+w*F+z*I+c*d;return this},multiplyScalar:function(a){var bthis.elements;b0*a;b4*a;b8*a;b12*a;b1*a;b5*a;b9*a;b13*a;b2*a;b6*a;b10*a;b14*a;b3*a;b7*a;b11*a;b15*a;return this},applyToBufferAttribute:function(){var anew n;return function(b){for(var c0,db.count;cd;c++)a.xb.getX(c),a.yb.getY(c),a.zb.getZ(c),a.applyMatrix4(this),b.setXYZ(c,a.x,a.y,a.z);return b}}(),determinant:function(){var athis.elements,ba0,ca4,da8,ea12,fa1,ga5,ha9,ka13,ma2,pa6,la10,na14;return a3*(+e*h*p-d*k*p-e*g*l+c*k*l+d*g*n-c*h*n)+a7*(+b*h*n-b*k*l+e*f*l-d*f*n+d*k*m-e*h*m)+a11*(+b*k*p-b*g*n-e*f*p+c*f*n+e*g*m-c*k*m)+a15*(-d*g*m-b*h*p+b*g*l+d*f*p-c*f*l+c*h*m)},transpose:function(){var athis.elements;var ba1;a1a4;a4b;ba2;a2a8;a8b;ba6;a6a9;a9b;ba3;a3a12;a12b;ba7;a7a13;a13b;ba11;a11a14;a14b;return this},setPosition:function(a){var bthis.elements;b12a.x;b13a.y;b14a.z;return this},getInverse:function(a,b){var cthis.elements,da.elements;ad0;var ed1,fd2,gd3,hd4,kd5,md6,ld7,qd8,nd9,td10,rd11,ud12,wd13,zd14;dd15;var xn*z*l-w*t*l+w*m*r-k*z*r-n*m*d+k*t*d,Du*t*l-q*z*l-u*m*r+h*z*r+q*m*d-h*t*d,yq*w*l-u*n*l+u*k*r-h*w*r-q*k*d+h*n*d,Qu*n*m-q*w*m-u*k*t+h*w*t+q*k*z-h*n*z,Ba*x+e*D+f*y+g*Q;if(0B){if(!0b)throw Error(THREE.Matrix4: .getInverse() cant invert matrix, determinant is 0);console.warn(THREE.Matrix4: .getInverse() cant invert matrix, determinant is 0);return this.identity()}b1/B;c0x*b;c1(w*t*g-n*z*g-w*f*r+e*z*r+n*f*d-e*t*d)*b;c2(k*z*g-w*m*g+w*f*l-e*z*l-k*f*d+e*m*d)*b;c3(n*m*g-k*t*g-n*f*l+e*t*l+k*f*r-e*m*r)*b;c4D*b;c5(q*z*g-u*t*g+u*f*r-a*z*r-q*f*d+a*t*d)*b;c6(u*m*g-h*z*g-u*f*l+a*z*l+h*f*d-a*m*d)*b;c7(h*t*g-q*m*g+q*f*l-a*t*l-h*f*r+a*m*r)*b;c8y*b;c9(u*n*g-q*w*g-u*e*r+a*w*r+q*e*d-a*n*d)*b;c10(h*w*g-u*k*g+u*e*l-a*w*l-h*e*d+a*k*d)*b;c11(q*k*g-h*n*g-q*e*l+a*n*l+h*e*r-a*k*r)*b;c12Q*b;c13(q*w*f-u*n*f+u*e*t-a*w*t-q*e*z+a*n*z)*b;c14(u*k*f-h*w*f-u*e*m+a*w*m+h*e*z-a*k*z)*b;c15(h*n*f-q*k*f+q*e*m-a*n*m-h*e*t+a*k*t)*b;return this},scale:function(a){var bthis.elements,ca.x,da.y;aa.z;b0*c;b4*d;b8*a;b1*c;b5*d;b9*a;b2*c;b6*d;b10*a;b3*c;b7*d;b11*a;return this},getMaxScaleOnAxis:function(){var athis.elements;return Math.sqrt(Math.max(a0*a0+a1*a1+a2*a2,a4*a4+a5*a5+a6*a6,a8*a8+a9*a9+a10*a10))},makeTranslation:function(a,b,c){this.set(1,0,0,a,0,1,0,b,0,0,1,c,0,0,0,1);return this},makeRotationX:function(a){var bMath.cos(a);aMath.sin(a);this.set(1,0,0,0,0,b,-a,0,0,a,b,0,0,0,0,1);return this},makeRotationY:function(a){var bMath.cos(a);aMath.sin(a);this.set(b,0,a,0,0,1,0,0,-a,0,b,0,0,0,0,1);return this},makeRotationZ:function(a){var bMath.cos(a);aMath.sin(a);this.set(b,-a,0,0,a,b,0,0,0,0,1,0,0,0,0,1);return this},makeRotationAxis:function(a,b){var cMath.cos(b);bMath.sin(b);var d1-c,ea.x,fa.y;aa.z;var gd*e,hd*f;this.set(g*e+c,g*f-b*a,g*a+b*f,0,g*f+b*a,h*f+c,h*a-b*e,0,g*a-b*f,h*a+b*e,d*a*a+c,0,0,0,0,1);return this},makeScale:function(a,b,c){this.set(a,0,0,0,0,b,0,0,0,0,c,0,0,0,0,1);return this},makeShear:function(a,b,c){this.set(1,b,c,0,a,1,c,0,a,b,1,0,0,0,0,1);return this},compose:function(a,b,c){var dthis.elements,eb._x,fb._y,gb._z,hb._w,ke+e,mf+f,lg+g;be*k;var qe*m;e*l;var nf*m;f*l;g*l;k*h;m*h;h*l;lc.x;var tc.y;cc.z;d0(1-(n+g))*l;d1(q+h)*l;d2(e-m)*l;d30;d4(q-h)*t;d5(1-(b+g))*t;d6(f+k)*t;d70;d8(e+m)*c;d9(f-k)*c;d10(1-(b+n))*c;d110;d12a.x;d13a.y;d14a.z;d151;return this},decompose:function(){var anew n,bnew J;return function(c,d,e){var fthis.elements,ga.set(f0,f1,f2).length(),ha.set(f4,f5,f6).length(),ka.set(f8,f9,f10).length();0>this.determinant()&&(g-g);c.xf12;c.yf13;c.zf14;b.copy(this);c1/g;f1/h;var m1/k;b.elements0*c;b.elements1*c;b.elements2*c;b.elements4*f;b.elements5*f;b.elements6*f;b.elements8*m;b.elements9*m;b.elements10*m;d.setFromRotationMatrix(b);e.xg;e.yh;e.zk;return this}}(),makePerspective:function(a,b,c,d,e,f){void 0f&&console.warn(THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.);var gthis.elements;g02*e/(b-a);g40;g8(b+a)/(b-a);g120;g10;g52*e/(c-d);g9(c+d)/(c-d);g130;g20;g60;g10-(f+e)/(f-e);g14-2*f*e/(f-e);g30;g70;g11-1;g150;return this},makeOrthographic:function(a,b,c,d,e,f){var gthis.elements,h1/(b-a),k1/(c-d),m1/(f-e);g02*h;g40;g80;g12-((b+a)*h);g10;g52*k;g90;g13-((c+d)*k);g20;g60;g10-2*m;g14-((f+e)*m);g30;g70;g110;g151;return this},equals:function(a){var bthis.elements;aa.elements;for(var c0;16>c;c++)if(bc!ac)return!1;return!0},fromArray:function(a,b){void 0b&&(b0);for(var c0;16>c;c++)this.elementscac+b;return this},toArray:function(a,b){void 0a&&(a);void 0b&&(b0);var cthis.elements;abc0;ab+1c1;ab+2c2;ab+3c3;ab+4c4;ab+5c5;ab+6c6;ab+7c7;ab+8c8;ab+9c9;ab+10c10;ab+11c11;ab+12c12;ab+13c13;ab+14c14;ab+15c15;return a}});Object.assign(aa,{slerp:function(a,b,c,d){return c.copy(a).slerp(b,d)},slerpFlat:function(a,b,c,d,e,f,g){var hcd+0,kcd+1,mcd+2;ccd+3;def+0;var lef+1,qef+2;eef+3;if(c!e||h!d||k!l||m!q){f1-g;var nh*d+k*l+m*q+c*e,t0n?1:-1,r1-n*n;r>Number.EPSILON&&(rMath.sqrt(r),nMath.atan2(r,n*t),fMath.sin(f*n)/r,gMath.sin(g*n)/r);t*g;hh*f+d*t;kk*f+l*t;mm*f+q*t;cc*f+e*t;f1-g&&(g1/Math.sqrt(h*h+k*k+m*m+c*c),h*g,k*g,m*g,c*g)}abh;ab+1k;ab+2m;ab+3c}});Object.defineProperties(aa.prototype,{x:{get:function(){return this._x},set:function(a){this._xa;this.onChangeCallback()}},y:{get:function(){return this._y},set:function(a){this._ya;this.onChangeCallback()}},z:{get:function(){return this._z},set:function(a){this._za;this.onChangeCallback()}},w:{get:function(){return this._w},set:function(a){this._wa;this.onChangeCallback()}}});Object.assign(aa.prototype,{isQuaternion:!0,set:function(a,b,c,d){this._xa;this._yb;this._zc;this._wd;this.onChangeCallback();return this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._w)},copy:function(a){this._xa.x;this._ya.y;this._za.z;this._wa.w;this.onChangeCallback();return this},setFromEuler:function(a,b){if(!a||!a.isEuler)throw Error(THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.);var ca._x,da._y,ea._z;aa.order;var fMath.cos,gMath.sin,hf(c/2),kf(d/2);ff(e/2);cg(c/2);dg(d/2);eg(e/2);XYZa?(this._xc*k*f+h*d*e,this._yh*d*f-c*k*e,this._zh*k*e+c*d*f,this._wh*k*f-c*d*e):YXZa?(this._xc*k*f+h*d*e,this._yh*d*f-c*k*e,this._zh*k*e-c*d*f,this._wh*k*f+c*d*e):ZXYa?(this._xc*k*f-h*d*e,this._yh*d*f+c*k*e,this._zh*k*e+c*d*f,this._wh*k*f-c*d*e):ZYXa?(this._xc*k*f-h*d*e,this._yh*d*f+c*k*e,this._zh*k*e-c*d*f,this._wh*k*f+c*d*e):YZXa?(this._xc*k*f+h*d*e,this._yh*d*f+c*k*e,this._zh*k*e-c*d*f,this._wh*k*f-c*d*e):XZYa&&(this._xc*k*f-h*d*e,this._yh*d*f-c*k*e,this._zh*k*e+c*d*f,this._wh*k*f+c*d*e);if(!1!b)this.onChangeCallback();return this},setFromAxisAngle:function(a,b){b/2;var cMath.sin(b);this._xa.x*c;this._ya.y*c;this._za.z*c;this._wMath.cos(b);this.onChangeCallback();return this},setFromRotationMatrix:function(a){var ba.elements,cb0;ab4;var db8,eb1,fb5,gb9,hb2,kb6;bb10;var mc+f+b;0m?(c.5/Math.sqrt(m+1),this._w.25/c,this._x(k-g)*c,this._y(d-h)*c,this._z(e-a)*c):c>f&&c>b?(c2*Math.sqrt(1+c-f-b),this._w(k-g)/c,this._x.25*c,this._y(a+e)/c,this._z(d+h)/c):f>b?(c2*Math.sqrt(1+f-c-b),this._w(d-h)/c,this._x(a+e)/c,this._y.25*c,this._z(g+k)/c):(c2*Math.sqrt(1+b-c-f),this._w(e-a)/c,this._x(d+h)/c,this._y(g+k)/c,this._z.25*c);this.onChangeCallback();return this},setFromUnitVectors:function(){var anew n,b;return function(c,d){void 0a&&(anew n);bc.dot(d)+1;1E-6>b?(b0,Math.abs(c.x)>Math.abs(c.z)?a.set(-c.y,c.x,0):a.set(0,-c.z,c.y)):a.crossVectors(c,d);this._xa.x;this._ya.y;this._za.z;this._wb;return this.normalize()}}(),angleTo:function(a){return 2*Math.acos(Math.abs(H.clamp(this.dot(a),-1,1)))},rotateTowards:function(a,b){var cthis.angleTo(a);if(0c)return this;this.slerp(a,Math.min(1,b/c));return this},inverse:function(){return this.conjugate()},conjugate:function(){this._x*-1;this._y*-1;this._z*-1;this.onChangeCallback();return this},dot:function(a){return this._x*a._x+this._y*a._y+this._z*a._z+this._w*a._w},lengthSq:function(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w},length:function(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)},normalize:function(){var athis.length();0a?(this._zthis._ythis._x0,this._w1):(a1/a,this._x*a,this._y*a,this._z*a,this._w*a);this.onChangeCallback();return this},multiply:function(a,b){return void 0!b?(console.warn(THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead.),this.multiplyQuaternions(a,b)):this.multiplyQuaternions(this,a)},premultiply:function(a){return this.multiplyQuaternions(a,this)},multiplyQuaternions:function(a,b){var ca._x,da._y,ea._z;aa._w;var fb._x,gb._y,hb._z;bb._w;this._xc*b+a*f+d*h-e*g;this._yd*b+a*g+e*f-c*h;this._ze*b+a*h+c*g-d*f;this._wa*b-c*f-d*g-e*h;this.onChangeCallback();return this},slerp:function(a,b){if(0b)return this;if(1b)return this.copy(a);var cthis._x,dthis._y,ethis._z,fthis._w,gf*a._w+c*a._x+d*a._y+e*a._z;0>g?(this._w-a._w,this._x-a._x,this._y-a._y,this._z-a._z,g-g):this.copy(a);if(1g)return this._wf,this._xc,this._yd,this._ze,this;a1-g*g;if(aNumber.EPSILON)return g1-b,this._wg*f+b*this._w,this._xg*c+b*this._x,this._yg*d+b*this._y,this._zg*e+b*this._z,this.normalize();aMath.sqrt(a);var hMath.atan2(a,g);gMath.sin((1-b)*h)/a;bMath.sin(b*h)/a;this._wf*g+this._w*b;this._xc*g+this._x*b;this._yd*g+this._y*b;this._ze*g+this._z*b;this.onChangeCallback();return this},equals:function(a){return a._xthis._x&&a._ythis._y&&a._zthis._z&&a._wthis._w},fromArray:function(a,b){void 0b&&(b0);this._xab;this._yab+1;this._zab+2;this._wab+3;this.onChangeCallback();return this},toArray:function(a,b){void 0a&&(a);void 0b&&(b0);abthis._x;ab+1this._y;ab+2this._z;ab+3this._w;return a},onChange:function(a){this.onChangeCallbacka;return this},onChangeCallback:function(){}});Object.assign(n.prototype,{isVector3:!0,set:function(a,b,c){this.xa;this.yb;this.zc;return this},setScalar:function(a){this.zthis.ythis.xa;return this},setX:function(a){this.xa;return this},setY:function(a){this.ya;return this},setZ:function(a){this.za;return this},setComponent:function(a,b){switch(a){case 0:this.xb;break;case 1:this.yb;break;case 2:this.zb;break;default:throw Error(index is out of range: +a);}return this},getComponent:function(a){switch(a){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw Error(index is out of range: +a);}},clone:function(){return new this.constructor(this.x,this.y,this.z)},copy:function(a){this.xa.x;this.ya.y;this.za.z;return this},add:function(a,b){if(void 0!b)return console.warn(THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead.),this.addVectors(a,b);this.x+a.x;this.y+a.y;this.z+a.z;return this},addScalar:function(a){this.x+a;this.y+a;this.z+a;return this},addVectors:function(a,b){this.xa.x+b.x;this.ya.y+b.y;this.za.z+b.z;return this},addScaledVector:function(a,b){this.x+a.x*b;this.y+a.y*b;this.z+a.z*b;return this},sub:function(a,b){if(void 0!b)return console.warn(THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.),this.subVectors(a,b);this.x-a.x;this.y-a.y;this.z-a.z;return this},subScalar:function(a){this.x-a;this.y-a;this.z-a;return this},subVectors:function(a,b){this.xa.x-b.x;this.ya.y-b.y;this.za.z-b.z;return this},multiply:function(a,b){if(void 0!b)return console.warn(THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead.),this.multiplyVectors(a,b);this.x*a.x;this.y*a.y;this.z*a.z;return this},multiplyScalar:function(a){this.x*a;this.y*a;this.z*a;return this},multiplyVectors:function(a,b){this.xa.x*b.x;this.ya.y*b.y;this.za.z*b.z;return this},applyEuler:function(){var anew aa;return function(b){b&&b.isEuler||console.error(THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.);return this.applyQuaternion(a.setFromEuler(b))}}(),applyAxisAngle:function(){var anew aa;return function(b,c){return this.applyQuaternion(a.setFromAxisAngle(b,c))}}(),applyMatrix3:function(a){var bthis.x,cthis.y,dthis.z;aa.elements;this.xa0*b+a3*c+a6*d;this.ya1*b+a4*c+a7*d;this.za2*b+a5*c+a8*d;return this},applyMatrix4:function(a){var bthis.x,cthis.y,dthis.z;aa.elements;var e1/(a3*b+a7*c+a11*d+a15);this.x(a0*b+a4*c+a8*d+a12)*e;this.y(a1*b+a5*c+a9*d+a13)*e;this.z(a2*b+a6*c+a10*d+a14)*e;return this},applyQuaternion:function(a){var bthis.x,cthis.y,dthis.z,ea.x,fa.y,ga.z;aa.w;var ha*b+f*d-g*c,ka*c+g*b-e*d,ma*d+e*c-f*b;b-e*b-f*c-g*d;this.xh*a+b*-e+k*-g-m*-f;this.yk*a+b*-f+m*-e-h*-g;this.zm*a+b*-g+h*-f-k*-e;return this},project:function(a){return this.applyMatrix4(a.matrixWorldInverse).applyMatrix4(a.projectionMatrix)},unproject:function(){var anew J;return function(b){return this.applyMatrix4(a.getInverse(b.projectionMatrix)).applyMatrix4(b.matrixWorld)}}(),transformDirection:function(a){var bthis.x,cthis.y,dthis.z;aa.elements;this.xa0*b+a4*c+a8*d;this.ya1*b+a5*c+a9*d;this.za2*b+a6*c+a10*d;return this.normalize()},divide:function(a){this.x/a.x;this.y/a.y;this.z/a.z;return this},divideScalar:function(a){return this.multiplyScalar(1/a)},min:function(a){this.xMath.min(this.x,a.x);this.yMath.min(this.y,a.y);this.zMath.min(this.z,a.z);return this},max:function(a){this.xMath.max(this.x,a.x);this.yMath.max(this.y,a.y);this.zMath.max(this.z,a.z);return this},clamp:function(a,b){this.xMath.max(a.x,Math.min(b.x,this.x));this.yMath.max(a.y,Math.min(b.y,this.y));this.zMath.max(a.z,Math.min(b.z,this.z));return this},clampScalar:function(){var anew n,bnew n;return function(c,d){a.set(c,c,c);b.set(d,d,d);return this.clamp(a,b)}}(),clampLength:function(a,b){var cthis.length();return this.divideScalar(c||1).multiplyScalar(Math.max(a,Math.min(b,c)))},floor:function(){this.xMath.floor(this.x);this.yMath.floor(this.y);this.zMath.floor(this.z);return this},ceil:function(){this.xMath.ceil(this.x);this.yMath.ceil(this.y);this.zMath.ceil(this.z);return this},round:function(){this.xMath.round(this.x);this.yMath.round(this.y);this.zMath.round(this.z);return this},roundToZero:function(){this.x0>this.x?Math.ceil(this.x):Math.floor(this.x);this.y0>this.y?Math.ceil(this.y):Math.floor(this.y);this.z0>this.z?Math.ceil(this.z):Math.floor(this.z);return this},negate:function(){this.x-this.x;this.y-this.y;this.z-this.z;return this},dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)},normalize:function(){return this.divideScalar(this.length()||1)},setLength:function(a){return this.normalize().multiplyScalar(a)},lerp:function(a,b){this.x+(a.x-this.x)*b;this.y+(a.y-this.y)*b;this.z+(a.z-this.z)*b;return this},lerpVectors:function(a,b,c){return this.subVectors(b,a).multiplyScalar(c).add(a)},cross:function(a,b){return void 0!b?(console.warn(THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead.),this.crossVectors(a,b)):this.crossVectors(this,a)},crossVectors:function(a,b){var ca.x,da.y;aa.z;var eb.x,fb.y;bb.z;this.xd*b-a*f;this.ya*e-c*b;this.zc*f-d*e;return this},projectOnVector:function(a){var ba.dot(this)/a.lengthSq();return this.copy(a).multiplyScalar(b)},projectOnPlane:function(){var anew n;return function(b){a.copy(this).projectOnVector(b);return this.sub(a)}}(),reflect:function(){var anew n;return function(b){return this.sub(a.copy(b).multiplyScalar(2*this.dot(b)))}}(),angleTo:function(a){athis.dot(a)/Math.sqrt(this.lengthSq()*a.lengthSq());return Math.acos(H.clamp(a,-1,1))},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))},distanceToSquared:function(a){var bthis.x-a.x,cthis.y-a.y;athis.z-a.z;return b*b+c*c+a*a},manhattanDistanceTo:function(a){return Math.abs(this.x-a.x)+Math.abs(this.y-a.y)+Math.abs(this.z-a.z)},setFromSpherical:function(a){return this.setFromSphericalCoords(a.radius,a.phi,a.theta)},setFromSphericalCoords:function(a,b,c){var dMath.sin(b)*a;this.xd*Math.sin(c);this.yMath.cos(b)*a;this.zd*Math.cos(c);return this},setFromCylindrical:function(a){return this.setFromCylindricalCoords(a.radius,a.theta,a.y)},setFromCylindricalCoords:function(a,b,c){this.xa*Math.sin(b);this.yc;this.za*Math.cos(b);return this},setFromMatrixPosition:function(a){aa.elements;this.xa12;this.ya13;this.za14;return this},setFromMatrixScale:function(a){var bthis.setFromMatrixColumn(a,0).length(),cthis.setFromMatrixColumn(a,1).length();athis.setFromMatrixColumn(a,2).length();this.xb;this.yc;this.za;return this},setFromMatrixColumn:function(a,b){return this.fromArray(a.elements,4*b)},equals:function(a){return a.xthis.x&&a.ythis.y&&a.zthis.z},fromArray:function(a,b){void 0b&&(b0);this.xab;this.yab+1;this.zab+2;return this},toArray:function(a,b){void 0a&&(a);void 0b&&(b0);abthis.x;ab+1this.y;ab+2this.z;return a},fromBufferAttribute:function(a,b,c){void 0!c&&console.warn(THREE.Vector3: offset has been removed from .fromBufferAttribute().);this.xa.getX(b);this.ya.getY(b);this.za.getZ(b);return this}});Object.assign(pa.prototype,{isMatrix3:!0,set:function(a,b,c,d,e,f,g,h,k){var mthis.elements;m0a;m1d;m2g;m3b;m4e;m5h;m6c;m7f;m8k;return this},identity:function(){this.set(1,0,0,0,1,0,0,0,1);return this},clone:function(){return(new this.constructor).fromArray(this.elements)},copy:function(a){var bthis.elements;aa.elements;b0a0;b1a1;b2a2;b3a3;b4a4;b5a5;b6a6;b7a7;b8a8;return this},setFromMatrix4:function(a){aa.elements;this.set(a0,a4,a8,a1,a5,a9,a2,a6,a10);return this},applyToBufferAttribute:function(){var anew n;return function(b){for(var c0,db.count;cd;c++)a.xb.getX(c),a.yb.getY(c),a.zb.getZ(c),a.applyMatrix3(this),b.setXYZ(c,a.x,a.y,a.z);return b}}(),multiply:function(a){return this.multiplyMatrices(this,a)},premultiply:function(a){return this.multiplyMatrices(a,this)},multiplyMatrices:function(a,b){var ca.elements,db.elements;bthis.elements;ac0;var ec3,fc6,gc1,hc4,kc7,mc2,lc5;cc8;var qd0,nd3,td6,rd1,ud4,wd7,zd2,xd5;dd8;b0a*q+e*r+f*z;b3a*n+e*u+f*x;b6a*t+e*w+f*d;b1g*q+h*r+k*z;b4g*n+h*u+k*x;b7g*t+h*w+k*d;b2m*q+l*r+c*z;b5m*n+l*u+c*x;b8m*t+l*w+c*d;return this},multiplyScalar:function(a){var bthis.elements;b0*a;b3*a;b6*a;b1*a;b4*a;b7*a;b2*a;b5*a;b8*a;return this},determinant:function(){var athis.elements,ba0,ca1,da2,ea3,fa4,ga5,ha6,ka7;aa8;return b*f*a-b*g*k-c*e*a+c*g*h+d*e*k-d*f*h},getInverse:function(a,b){a&&a.isMatrix4&&console.error(THREE.Matrix3: .getInverse() no longer takes a Matrix4 argument.);var ca.elements;athis.elements;var dc0,ec1,fc2,gc3,hc4,kc5,mc6,lc7;cc8;var qc*h-k*l,nk*m-c*g,tl*g-h*m,rd*q+e*n+f*t;if(0r){if(!0b)throw Error(THREE.Matrix3: .getInverse() cant invert matrix, determinant is 0);console.warn(THREE.Matrix3: .getInverse() cant invert matrix, determinant is 0);return this.identity()}b1/r;a0q*b;a1(f*l-c*e)*b;a2(k*e-f*h)*b;a3n*b;a4(c*d-f*m)*b;a5(f*g-k*d)*b;a6t*b;a7(e*m-l*d)*b;a8(h*d-e*g)*b;return this},transpose:function(){var athis.elements;var ba1;a1a3;a3b;ba2;a2a6;a6b;ba5;a5a7;a7b;return this},getNormalMatrix:function(a){return this.setFromMatrix4(a).getInverse(this).transpose()},transposeIntoArray:function(a){var bthis.elements;a0b0;a1b3;a2b6;a3b1;a4b4;a5b7;a6b2;a7b5;a8b8;return this},setUvTransform:function(a,b,c,d,e,f,g){var hMath.cos(e);eMath.sin(e);this.set(c*h,c*e,-c*(h*f+e*g)+f+a,-d*e,d*h,-d*(-e*f+h*g)+g+b,0,0,1)},scale:function(a,b){var cthis.elements;c0*a;c3*a;c6*a;c1*b;c4*b;c7*b;return this},rotate:function(a){var bMath.cos(a);aMath.sin(a);var cthis.elements,dc0,ec3,fc6,gc1,hc4,kc7;c0b*d+a*g;c3b*e+a*h;c6b*f+a*k;c1-a*d+b*g;c4-a*e+b*h;c7-a*f+b*k;return this},translate:function(a,b){var cthis.elements;c0+a*c2;c3+a*c5;c6+a*c8;c1+b*c2;c4+b*c5;c7+b*c8;return this},equals:function(a){var bthis.elements;aa.elements;for(var c0;9>c;c++)if(bc!ac)return!1;return!0},fromArray:function(a,b){void 0b&&(b0);for(var c0;9>c;c++)this.elementscac+b;return this},toArray:function(a,b){void 0a&&(a);void 0b&&(b0);var cthis.elements;abc0;ab+1c1;ab+2c2;ab+3c3;ab+4c4;ab+5c5;ab+6c6;ab+7c7;ab+8c8;return a}});var tc,lb{getDataURL:function(a){if(undefinedtypeof HTMLCanvasElement)return a.src;if(!(a instanceof HTMLCanvasElement)){void 0tc&&(tcdocument.createElementNS(http://www.w3.org/1999/xhtml,canvas));tc.widtha.width;tc.heighta.height;var btc.getContext(2d);a instanceof ImageData?b.putImageData(a,0,0):b.drawImage(a,0,0,a.width,a.height);atc}return 2048a.width||2048a.height?a.toDataURL(image/jpeg,.6):a.toDataURL(image/png)}},Tf0;V.DEFAULT_IMAGEvoid 0;V.DEFAULT_MAPPING300;V.prototypeObject.assign(Object.create(ka.prototype),{constructor:V,isTexture:!0,updateMatrix:function(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.namea.name;this.imagea.image;this.mipmapsa.mipmaps.slice(0);this.mappinga.mapping;this.wrapSa.wrapS;this.wrapTa.wrapT;this.magFiltera.magFilter;this.minFiltera.minFilter;this.anisotropya.anisotropy;this.formata.format;this.typea.type;this.offset.copy(a.offset);this.repeat.copy(a.repeat);this.center.copy(a.center);this.rotationa.rotation;this.matrixAutoUpdatea.matrixAutoUpdate;this.matrix.copy(a.matrix);this.generateMipmapsa.generateMipmaps;this.premultiplyAlphaa.premultiplyAlpha;this.flipYa.flipY;this.unpackAlignmenta.unpackAlignment;this.encodinga.encoding;return this},toJSON:function(a){var bvoid 0a||stringtypeof a;if(!b&&void 0!a.texturesthis.uuid)return a.texturesthis.uuid;var c{metadata:{version:4.5,type:Texture,generator:Texture.toJSON},uuid:this.uuid,name:this.name,mapping:this.mapping,repeat:this.repeat.x,this.repeat.y,offset:this.offset.x,this.offset.y,center:this.center.x,this.center.y,rotation:this.rotation,wrap:this.wrapS,this.wrapT,format:this.format,type:this.type,encoding:this.encoding,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};if(void 0!this.image){var dthis.image;void 0d.uuid&&(d.uuidH.generateUUID());if(!b&&void 0a.imagesd.uuid){if(Array.isArray(d)){var e;for(var f0,gd.length;fg;f++)e.push(lb.getDataURL(df))}else elb.getDataURL(d);a.imagesd.uuid{uuid:d.uuid,url:e}}c.imaged.uuid}b||(a.texturesthis.uuidc);return c},dispose:function(){this.dispatchEvent({type:dispose})},transformUv:function(a){if(300!this.mapping)return a;a.applyMatrix3(this.matrix);if(0>a.x||1a.x)switch(this.wrapS){case 1E3:a.x-Math.floor(a.x);break;case 1001:a.x0>a.x?0:1;break;case 1002:a.x1Math.abs(Math.floor(a.x)%2)?Math.ceil(a.x)-a.x:a.x-Math.floor(a.x)}if(0>a.y||1a.y)switch(this.wrapT){case 1E3:a.y-Math.floor(a.y);break;case 1001:a.y0>a.y?0:1;break;case 1002:a.y1Math.abs(Math.floor(a.y)%2)?Math.ceil(a.y)-a.y:a.y-Math.floor(a.y)}this.flipY&&(a.y1-a.y);return a}});Object.defineProperty(V.prototype,needsUpdate,{set:function(a){!0a&&this.version++}});Object.assign(ba.prototype,{isVector4:!0,set:function(a,b,c,d){this.xa;this.yb;this.zc;this.wd;return this},setScalar:function(a){this.wthis.zthis.ythis.xa;return this},setX:function(a){this.xa;return this},setY:function(a){this.ya;return this},setZ:function(a){this.za;return this},setW:function(a){this.wa;return this},setComponent:function(a,b){switch(a){case 0:this.xb;break;case 1:this.yb;break;case 2:this.zb;break;case 3:this.wb;break;default:throw Error(index is out of range: +a);}return this},getComponent:function(a){switch(a){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw Error(index is out of range: +a);}},clone:function(){return new this.constructor(this.x,this.y,this.z,this.w)},copy:function(a){this.xa.x;this.ya.y;this.za.z;this.wvoid 0!a.w?a.w:1;return this},add:function(a,b){if(void 0!b)return console.warn(THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead.),this.addVectors(a,b);this.x+a.x;this.y+a.y;this.z+a.z;this.w+a.w;return this},addScalar:function(a){this.x+a;this.y+a;this.z+a;this.w+a;return this},addVectors:function(a,b){this.xa.x+b.x;this.ya.y+b.y;this.za.z+b.z;this.wa.w+b.w;return this},addScaledVector:function(a,b){this.x+a.x*b;this.y+a.y*b;this.z+a.z*b;this.w+a.w*b;return this},sub:function(a,b){if(void 0!b)return console.warn(THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.),this.subVectors(a,b);this.x-a.x;this.y-a.y;this.z-a.z;this.w-a.w;return this},subScalar:function(a){this.x-a;this.y-a;this.z-a;this.w-a;return this},subVectors:function(a,b){this.xa.x-b.x;this.ya.y-b.y;this.za.z-b.z;this.wa.w-b.w;return this},multiplyScalar:function(a){this.x*a;this.y*a;this.z*a;this.w*a;return this},applyMatrix4:function(a){var bthis.x,cthis.y,dthis.z,ethis.w;aa.elements;this.xa0*b+a4*c+a8*d+a12*e;this.ya1*b+a5*c+a9*d+a13*e;this.za2*b+a6*c+a10*d+a14*e;this.wa3*b+a7*c+a11*d+a15*e;return this},divideScalar:function(a){return this.multiplyScalar(1/a)},setAxisAngleFromQuaternion:function(a){this.w2*Math.acos(a.w);var bMath.sqrt(1-a.w*a.w);1E-4>b?(this.x1,this.zthis.y0):(this.xa.x/b,this.ya.y/b,this.za.z/b);return this},setAxisAngleFromRotationMatrix:function(a){aa.elements;var ba0;var ca4;var da8,ea1,fa5,ga9;var ha2;var ka6;var ma10;if(.01>Math.abs(c-e)&&.01>Math.abs(d-h)&&.01>Math.abs(g-k)){if(.1>Math.abs(c+e)&&.1>Math.abs(d+h)&&.1>Math.abs(g+k)&&.1>Math.abs(b+f+m-3))return this.set(1,0,0,0),this;aMath.PI;b(b+1)/2;f(f+1)/2;m(m+1)/2;c(c+e)/4;d(d+h)/4;g(g+k)/4;b>f&&b>m?.01>b?(k0,ch.707106781):(kMath.sqrt(b),hc/k,cd/k):f>m?.01>f?(k.707106781,h0,c.707106781):(hMath.sqrt(f),kc/h,cg/h):.01>m?(hk.707106781,c0):(cMath.sqrt(m),kd/c,hg/c);this.set(k,h,c,a);return this}aMath.sqrt((k-g)*(k-g)+(d-h)*(d-h)+(e-c)*(e-c));.001>Math.abs(a)&&(a1);this.x(k-g)/a;this.y(d-h)/a;this.z(e-c)/a;this.wMath.acos((b+f+m-1)/2);return this},min:function(a){this.xMath.min(this.x,a.x);this.yMath.min(this.y,a.y);this.zMath.min(this.z,a.z);this.wMath.min(this.w,a.w);return this},max:function(a){this.xMath.max(this.x,a.x);this.yMath.max(this.y,a.y);this.zMath.max(this.z,a.z);this.wMath.max(this.w,a.w);return this},clamp:function(a,b){this.xMath.max(a.x,Math.min(b.x,this.x));this.yMath.max(a.y,Math.min(b.y,this.y));this.zMath.max(a.z,Math.min(b.z,this.z));this.wMath.max(a.w,Math.min(b.w,this.w));return this},clampScalar:function(){var a,b;return function(c,d){void 0a&&(anew ba,bnew ba);a.set(c,c,c,c);b.set(d,d,d,d);return this.clamp(a,b)}}(),clampLength:function(a,b){var cthis.length();return this.divideScalar(c||1).multiplyScalar(Math.max(a,Math.min(b,c)))},floor:function(){this.xMath.floor(this.x);this.yMath.floor(this.y);this.zMath.floor(this.z);this.wMath.floor(this.w);return this},ceil:function(){this.xMath.ceil(this.x);this.yMath.ceil(this.y);this.zMath.ceil(this.z);this.wMath.ceil(this.w);return this},round:function(){this.xMath.round(this.x);this.yMath.round(this.y);this.zMath.round(this.z);this.wMath.round(this.w);return this},roundToZero:function(){this.x0>this.x?Math.ceil(this.x):Math.floor(this.x);this.y0>this.y?Math.ceil(this.y):Math.floor(this.y);this.z0>this.z?Math.ceil(this.z):Math.floor(this.z);this.w0>this.w?Math.ceil(this.w):Math.floor(this.w);return this},negate:function(){this.x-this.x;this.y-this.y;this.z-this.z;this.w-this.w;return this},dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z+this.w*a.w},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)},normalize:function(){return this.divideScalar(this.length()||1)},setLength:function(a){return this.normalize().multiplyScalar(a)},lerp:function(a,b){this.x+(a.x-this.x)*b;this.y+(a.y-this.y)*b;this.z+(a.z-this.z)*b;this.w+(a.w-this.w)*b;return this},lerpVectors:function(a,b,c){return this.subVectors(b,a).multiplyScalar(c).add(a)},equals:function(a){return a.xthis.x&&a.ythis.y&&a.zthis.z&&a.wthis.w},fromArray:function(a,b){void 0b&&(b0);this.xab;this.yab+1;this.zab+2;this.wab+3;return this},toArray:function(a,b){void 0a&&(a);void 0b&&(b0);abthis.x;ab+1this.y;ab+2this.z;ab+3this.w;return a},fromBufferAttribute:function(a,b,c){void 0!c&&console.warn(THREE.Vector4: offset has been removed from .fromBufferAttribute().);this.xa.getX(b);this.ya.getY(b);this.za.getZ(b);this.wa.getW(b);return this}});Ra.prototypeObject.assign(Object.create(ka.prototype),{constructor:Ra,isWebGLRenderTarget:!0,setSize:function(a,b){if(this.width!a||this.height!b)this.widtha,this.heightb,this.dispose();this.viewport.set(0,0,a,b);this.scissor.set(0,0,a,b)},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.widtha.width;this.heighta.height;this.viewport.copy(a.viewport);this.texturea.texture.clone();this.depthBuffera.depthBuffer;this.stencilBuffera.stencilBuffer;this.depthTexturea.depthTexture;return this},dispose:function(){this.dispatchEvent({type:dispose})}});Zd.prototypeObject.assign(Object.create(Ra.prototype),{constructor:Zd,isWebGLMultisampleRenderTarget:!0,copy:function(a){Ra.prototype.copy.call(this,a);this.samplesa.samples;return this}});mb.prototypeObject.create(Ra.prototype);mb.prototype.constructormb;mb.prototype.isWebGLRenderTargetCube!0;nb.prototypeObject.create(V.prototype);nb.prototype.constructornb;nb.prototype.isDataTexture!0;Object.assign(Za.prototype,{isBox3:!0,set:function(a,b){this.min.copy(a);this.max.copy(b);return this},setFromArray:function(a){for(var bInfinity,cInfinity,dInfinity,e-Infinity,f-Infinity,g-Infinity,h0,ka.length;hk;h+3){var mah,lah+1,qah+2;mb&&(bm);lc&&(cl);qd&&(dq);m>e&&(em);l>f&&(fl);q>g&&(gq)}this.min.set(b,c,d);this.max.set(e,f,g);return this},setFromBufferAttribute:function(a){for(var bInfinity,cInfinity,dInfinity,e-Infinity,f-Infinity,g-Infinity,h0,ka.count;hk;h++){var ma.getX(h),la.getY(h),qa.getZ(h);mb&&(bm);lc&&(cl);qd&&(dq);m>e&&(em);l>f&&(fl);q>g&&(gq)}this.min.set(b,c,d);this.max.set(e,f,g);return this},setFromPoints:function(a){this.makeEmpty();for(var b0,ca.length;bc;b++)this.expandByPoint(ab);return this},setFromCenterAndSize:function(){var anew n;return function(b,c){ca.copy(c).multiplyScalar(.5);this.min.copy(b).sub(c);this.max.copy(b).add(c);return this}}(),setFromObject:function(a){this.makeEmpty();return this.expandByObject(a)},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.min.copy(a.min);this.max.copy(a.max);return this},makeEmpty:function(){this.min.xthis.min.ythis.min.zInfinity;this.max.xthis.max.ythis.max.z-Infinity;return this},isEmpty:function(){return this.max.xthis.min.x||this.max.ythis.min.y||this.max.zthis.min.z},getCenter:function(a){void 0a&&(console.warn(THREE.Box3: .getCenter() target is now required),anew n);return this.isEmpty()?a.set(0,0,0):a.addVectors(this.min,this.max).multiplyScalar(.5)},getSize:function(a){void 0a&&(console.warn(THREE.Box3: .getSize() target is now required),anew n);return this.isEmpty()?a.set(0,0,0):a.subVectors(this.max,this.min)},expandByPoint:function(a){this.min.min(a);this.max.max(a);return this},expandByVector:function(a){this.min.sub(a);this.max.add(a);return this},expandByScalar:function(a){this.min.addScalar(-a);this.max.addScalar(a);return this},expandByObject:function(){function a(a){var fa.geometry;if(void 0!f)if(f.isGeometry)for(ff.vertices,c0,df.length;cd;c++)e.copy(fc),e.applyMatrix4(a.matrixWorld),b.expandByPoint(e);else if(f.isBufferGeometry&&(ff.attributes.position,void 0!f))for(c0,df.count;cd;c++)e.fromBufferAttribute(f,c).applyMatrix4(a.matrixWorld),b.expandByPoint(e)}var b,c,d,enew n;return function(c){bthis;c.updateMatrixWorld(!0);c.traverse(a);return this}}(),containsPoint:function(a){return a.xthis.min.x||a.x>this.max.x||a.ythis.min.y||a.y>this.max.y||a.zthis.min.z||a.z>this.max.z?!1:!0},containsBox:function(a){return this.min.xa.min.x&&a.max.xthis.max.x&&this.min.ya.min.y&&a.max.ythis.max.y&&this.min.za.min.z&&a.max.zthis.max.z},getParameter:function(a,b){void 0b&&(console.warn(THREE.Box3: .getParameter() target is now required),bnew n);return b.set((a.x-this.min.x)/(this.max.x-this.min.x),(a.y-this.min.y)/(this.max.y-this.min.y),(a.z-this.min.z)/(this.max.z-this.min.z))},intersectsBox:function(a){return a.max.xthis.min.x||a.min.x>this.max.x||a.max.ythis.min.y||a.min.y>this.max.y||a.max.zthis.min.z||a.min.z>this.max.z?!1:!0},intersectsSphere:function(){var anew n;return function(b){this.clampPoint(b.center,a);return a.distanceToSquared(b.center)b.radius*b.radius}}(),intersectsPlane:function(a){if(0a.normal.x){var ba.normal.x*this.min.x;var ca.normal.x*this.max.x}else ba.normal.x*this.max.x,ca.normal.x*this.min.x;0a.normal.y?(b+a.normal.y*this.min.y,c+a.normal.y*this.max.y):(b+a.normal.y*this.max.y,c+a.normal.y*this.min.y);0a.normal.z?(b+a.normal.z*this.min.z,c+a.normal.z*this.max.z):(b+a.normal.z*this.max.z,c+a.normal.z*this.min.z);return b-a.constant&&c>-a.constant},intersectsTriangle:function(){function a(a){var e;var f0;for(ea.length-3;fe;f+3){h.fromArray(a,f);var gm.x*Math.abs(h.x)+m.y*Math.abs(h.y)+m.z*Math.abs(h.z),kb.dot(h),lc.dot(h),pd.dot(h);if(Math.max(-Math.max(k,l,p),Math.min(k,l,p))>g)return!1}return!0}var bnew n,cnew n,dnew n,enew n,fnew n,gnew n,hnew n,knew n,mnew n,lnew n;return function(h){if(this.isEmpty())return!1;this.getCenter(k);m.subVectors(this.max,k);b.subVectors(h.a,k);c.subVectors(h.b,k);d.subVectors(h.c,k);e.subVectors(c,b);f.subVectors(d,c);g.subVectors(b,d);h0,-e.z,e.y,0,-f.z,f.y,0,-g.z,g.y,e.z,0,-e.x,f.z,0,-f.x,g.z,0,-g.x,-e.y,e.x,0,-f.y,f.x,0,-g.y,g.x,0;if(!a(h))return!1;h1,0,0,0,1,0,0,0,1;if(!a(h))return!1;l.crossVectors(e,f);hl.x,l.y,l.z;return a(h)}}(),clampPoint:function(a,b){void 0b&&(console.warn(THREE.Box3: .clampPoint() target is now required),bnew n);return b.copy(a).clamp(this.min,this.max)},distanceToPoint:function(){var anew n;return function(b){return a.copy(b).clamp(this.min,this.max).sub(b).length()}}(),getBoundingSphere:function(){var anew n;return function(b){void 0b&&(console.warn(THREE.Box3: .getBoundingSphere() target is now required),bnew Ha);this.getCenter(b.center);b.radius.5*this.getSize(a).length();return b}}(),intersect:function(a){this.min.max(a.min);this.max.min(a.max);this.isEmpty()&&this.makeEmpty();return this},union:function(a){this.min.min(a.min);this.max.max(a.max);return this},applyMatrix4:function(){var anew n,new n,new n,new n,new n,new n,new n,new n;return function(b){if(this.isEmpty())return this;a0.set(this.min.x,this.min.y,this.min.z).applyMatrix4(b);a1.set(this.min.x,this.min.y,this.max.z).applyMatrix4(b);a2.set(this.min.x,this.max.y,this.min.z).applyMatrix4(b);a3.set(this.min.x,this.max.y,this.max.z).applyMatrix4(b);a4.set(this.max.x,this.min.y,this.min.z).applyMatrix4(b);a5.set(this.max.x,this.min.y,this.max.z).applyMatrix4(b);a6.set(this.max.x,this.max.y,this.min.z).applyMatrix4(b);a7.set(this.max.x,this.max.y,this.max.z).applyMatrix4(b);this.setFromPoints(a);return this}}(),translate:function(a){this.min.add(a);this.max.add(a);return this},equals:function(a){return a.min.equals(this.min)&&a.max.equals(this.max)}});Object.assign(Ha.prototype,{set:function(a,b){this.center.copy(a);this.radiusb;return this},setFromPoints:function(){var anew Za;return function(b,c){var dthis.center;void 0!c?d.copy(c):a.setFromPoints(b).getCenter(d);for(var ec0,fb.length;ef;e++)cMath.max(c,d.distanceToSquared(be));this.radiusMath.sqrt(c);return this}}(),clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.center.copy(a.center);this.radiusa.radius;return this},empty:function(){return 0>this.radius},containsPoint:function(a){return a.distanceToSquared(this.center)this.radius*this.radius},distanceToPoint:function(a){return a.distanceTo(this.center)-this.radius},intersectsSphere:function(a){var bthis.radius+a.radius;return a.center.distanceToSquared(this.center)b*b},intersectsBox:function(a){return a.intersectsSphere(this)},intersectsPlane:function(a){return Math.abs(a.distanceToPoint(this.center))this.radius},clampPoint:function(a,b){var cthis.center.distanceToSquared(a);void 0b&&(console.warn(THREE.Sphere: .clampPoint() target is now required),bnew n);b.copy(a);c>this.radius*this.radius&&(b.sub(this.center).normalize(),b.multiplyScalar(this.radius).add(this.center));return b},getBoundingBox:function(a){void 0a&&(console.warn(THREE.Sphere: .getBoundingBox() target is now required),anew Za);a.set(this.center,this.center);a.expandByScalar(this.radius);return a},applyMatrix4:function(a){this.center.applyMatrix4(a);this.radius*a.getMaxScaleOnAxis();return this},translate:function(a){this.center.add(a);return this},equals:function(a){return a.center.equals(this.center)&&a.radiusthis.radius}});Object.assign(Sa.prototype,{set:function(a,b){this.normal.copy(a);this.constantb;return this},setComponents:function(a,b,c,d){this.normal.set(a,b,c);this.constantd;return this},setFromNormalAndCoplanarPoint:function(a,b){this.normal.copy(a);this.constant-b.dot(this.normal);return this},setFromCoplanarPoints:function(){var anew n,bnew n;return function(c,d,e){da.subVectors(e,d).cross(b.subVectors(c,d)).normalize();this.setFromNormalAndCoplanarPoint(d,c);return this}}(),clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.normal.copy(a.normal);this.constanta.constant;return this},normalize:function(){var a1/this.normal.length();this.normal.multiplyScalar(a);this.constant*a;return this},negate:function(){this.constant*-1;this.normal.negate();return this},distanceToPoint:function(a){return this.normal.dot(a)+this.constant},distanceToSphere:function(a){return this.distanceToPoint(a.center)-a.radius},projectPoint:function(a,b){void 0b&&(console.warn(THREE.Plane: .projectPoint() target is now required),bnew n);return b.copy(this.normal).multiplyScalar(-this.distanceToPoint(a)).add(a)},intersectLine:function(){var anew n;return function(b,c){void 0c&&(console.warn(THREE.Plane: .intersectLine() target is now required),cnew n);var db.delta(a),ethis.normal.dot(d);if(0e){if(0this.distanceToPoint(b.start))return c.copy(b.start)}else if(e-(b.start.dot(this.normal)+this.constant)/e,!(0>e||1e))return c.copy(d).multiplyScalar(e).add(b.start)}}(),intersectsLine:function(a){var bthis.distanceToPoint(a.start);athis.distanceToPoint(a.end);return 0>b&&0a||0>a&&0b},intersectsBox:function(a){return a.intersectsPlane(this)},intersectsSphere:function(a){return a.intersectsPlane(this)},coplanarPoint:function(a){void 0a&&(console.warn(THREE.Plane: .coplanarPoint() target is now required),anew n);return a.copy(this.normal).multiplyScalar(-this.constant)},applyMatrix4:function(){var anew n,bnew pa;return function(c,d){dd||b.getNormalMatrix(c);cthis.coplanarPoint(a).applyMatrix4(c);dthis.normal.applyMatrix3(d).normalize();this.constant-c.dot(d);return this}}(),translate:function(a){this.constant-a.dot(this.normal);return this},equals:function(a){return a.normal.equals(this.normal)&&a.constantthis.constant}});Object.assign(ud.prototype,{set:function(a,b,c,d,e,f){var gthis.planes;g0.copy(a);g1.copy(b);g2.copy(c);g3.copy(d);g4.copy(e);g5.copy(f);return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){for(var bthis.planes,c0;6>c;c++)bc.copy(a.planesc);return this},setFromMatrix:function(a){var bthis.planes,ca.elements;ac0;var dc1,ec2,fc3,gc4,hc5,kc6,mc7,lc8,qc9,nc10,tc11,rc12,uc13,wc14;cc15;b0.setComponents(f-a,m-g,t-l,c-r).normalize();b1.setComponents(f+a,m+g,t+l,c+r).normalize();b2.setComponents(f+d,m+h,t+q,c+u).normalize();b3.setComponents(f-d,m-h,t-q,c-u).normalize();b4.setComponents(f-e,m-k,t-n,c-w).normalize();b5.setComponents(f+e,m+k,t+n,c+w).normalize();return this},intersectsObject:function(){var anew Ha;return function(b){var cb.geometry;nullc.boundingSphere&&c.computeBoundingSphere();a.copy(c.boundingSphere).applyMatrix4(b.matrixWorld);return this.intersectsSphere(a)}}(),intersectsSprite:function(){var anew Ha;return function(b){a.center.set(0,0,0);a.radius.7071067811865476;a.applyMatrix4(b.matrixWorld);return this.intersectsSphere(a)}}(),intersectsSphere:function(a){var bthis.planes,ca.center;a-a.radius;for(var d0;6>d;d++)if(bd.distanceToPoint(c)a)return!1;return!0},intersectsBox:function(){var anew n;return function(b){for(var cthis.planes,d0;6>d;d++){var ecd;a.x0e.normal.x?b.max.x:b.min.x;a.y0e.normal.y?b.max.y:b.min.y;a.z0e.normal.z?b.max.z:b.min.z;if(0>e.distanceToPoint(a))return!1}return!0}}(),containsPoint:function(a){for(var bthis.planes,c0;6>c;c++)if(0>bc.distanceToPoint(a))return!1;return!0}});var U{alphamap_fragment:#ifdef USE_ALPHAMAP\n\tdiffuseColor.a * texture2D( alphaMap, vUv ).g;\n#endif,alphamap_pars_fragment:#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif,alphatest_fragment:#ifdef ALPHATEST\n\tif ( diffuseColor.a ALPHATEST ) discard;\n#endif,aomap_fragment:#ifdef USE_AOMAP\n\tfloat ambientOcclusion ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\n\treflectedLight.indirectDiffuse * ambientOcclusion;\n\t#if defined( USE_ENVMAP ) && defined( PHYSICAL )\n\t\tfloat dotNV saturate( dot( geometry.normal, geometry.viewDir ) );\n\t\treflectedLight.indirectSpecular * computeSpecularOcclusion( dotNV, ambientOcclusion, material.specularRoughness );\n\t#endif\n#endif,aomap_pars_fragment:#ifdef USE_AOMAP\n\tuniform sampler2D aoMap;\n\tuniform float aoMapIntensity;\n#endif,begin_vertex:vec3 transformed vec3( position );,beginnormal_vertex:vec3 objectNormal vec3( normal );\n#ifdef USE_TANGENT\n\tvec3 objectTangent vec3( tangent.xyz );\n#endif,bsdfs:vec2 integrateSpecularBRDF( const in float dotNV, const in float roughness ) {\n\tconst vec4 c0 vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r roughness * c0 + c1;\n\tfloat a004 min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\treturn vec2( -1.04, 1.04 ) * a004 + r.zw;\n}\nfloat punctualLightIntensityToIrradianceFactor( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n#if defined ( PHYSICALLY_CORRECT_LIGHTS )\n\tfloat distanceFalloff 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\tif( cutoffDistance > 0.0 ) {\n\t\tdistanceFalloff * pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t}\n\treturn distanceFalloff;\n#else\n\tif( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\treturn pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t}\n\treturn 1.0;\n#endif\n}\nvec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 specularColor, const in float dotLH ) {\n\tfloat fresnel exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );\n\treturn ( 1.0 - specularColor ) * fresnel + specularColor;\n}\nfloat G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 pow2( alpha );\n\tfloat gl dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\tfloat gv dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\treturn 1.0 / ( gl * gv );\n}\nfloat G_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 pow2( alpha );\n\tfloat gv dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 pow2( alpha );\n\tfloat denom pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float roughness ) {\n\tfloat alpha pow2( roughness );\n\tvec3 halfDir normalize( incidentLight.direction + geometry.viewDir );\n\tfloat dotNL saturate( dot( geometry.normal, incidentLight.direction ) );\n\tfloat dotNV saturate( dot( geometry.normal, geometry.viewDir ) );\n\tfloat dotNH saturate( dot( geometry.normal, halfDir ) );\n\tfloat dotLH saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F F_Schlick( specularColor, dotLH );\n\tfloat G G_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D D_GGX( alpha, dotNH );\n\treturn F * ( G * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE 64.0;\n\tconst float LUT_SCALE ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS 0.5 / LUT_SIZE;\n\tfloat dotNV saturate( dot( N, V ) );\n\tvec2 uv vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x dot( v1, v2 );\n\tfloat y abs( x );\n\tfloat a 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v a / b;\n\tfloat theta_sintheta ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords 4 ) {\n\tvec3 v1 rectCoords 1 - rectCoords 0 ;\n\tvec3 v2 rectCoords 3 - rectCoords 0 ;\n\tvec3 lightNormal cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords 0 ) 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 normalize( V - N * dot( V, N ) );\n\tT2 - cross( N, T1 );\n\tmat3 mat mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords 4 ;\n\tcoords 0 mat * ( rectCoords 0 - P );\n\tcoords 1 mat * ( rectCoords 1 - P );\n\tcoords 2 mat * ( rectCoords 2 - P );\n\tcoords 3 mat * ( rectCoords 3 - P );\n\tcoords 0 normalize( coords 0 );\n\tcoords 1 normalize( coords 1 );\n\tcoords 2 normalize( coords 2 );\n\tcoords 3 normalize( coords 3 );\n\tvec3 vectorFormFactor vec3( 0.0 );\n\tvectorFormFactor + LTC_EdgeVectorFormFactor( coords 0 , coords 1 );\n\tvectorFormFactor + LTC_EdgeVectorFormFactor( coords 1 , coords 2 );\n\tvectorFormFactor + LTC_EdgeVectorFormFactor( coords 2 , coords 3 );\n\tvectorFormFactor + LTC_EdgeVectorFormFactor( coords 3 , coords 0 );\n\tfloat result LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\nvec3 BRDF_Specular_GGX_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness ) {\n\tfloat dotNV saturate( dot( geometry.normal, geometry.viewDir ) );\n\tvec2 brdf integrateSpecularBRDF( dotNV, roughness );\n\treturn specularColor * brdf.x + brdf.y;\n}\nvoid BRDF_Specular_Multiscattering_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n\tfloat dotNV saturate( dot( geometry.normal, geometry.viewDir ) );\n\tvec3 F F_Schlick( specularColor, dotNV );\n\tvec2 brdf integrateSpecularBRDF( dotNV, roughness );\n\tvec3 FssEss F * brdf.x + brdf.y;\n\tfloat Ess brdf.x + brdf.y;\n\tfloat Ems 1.0 - Ess;\n\tvec3 Favg specularColor + ( 1.0 - specularColor ) * 0.047619;\tvec3 Fms FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter + FssEss;\n\tmultiScatter + Fms * Ems;\n}\nfloat G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir normalize( incidentLight.direction + geometry.viewDir );\n\tfloat dotNH saturate( dot( geometry.normal, halfDir ) );\n\tfloat dotLH saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F F_Schlick( specularColor, dotLH );\n\tfloat G G_BlinnPhong_Implicit( );\n\tfloat D D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n}\nfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {\n\treturn ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );\n}\nfloat BlinnExponentToGGXRoughness( const in float blinnExponent ) {\n\treturn sqrt( 2.0 / ( blinnExponent + 2.0 ) );\n},bumpmap_pars_fragment:#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx dFdx( vUv );\n\t\tvec2 dSTdy dFdy( vUv );\n\t\tfloat Hll bumpScale * texture2D( bumpMap, vUv ).x;\n\t\tfloat dBx bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\n\t\tfloat dBy bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {\n\t\tvec3 vSigmaX vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\n\t\tvec3 vSigmaY vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\n\t\tvec3 vN surf_norm;\n\t\tvec3 R1 cross( vSigmaY, vN );\n\t\tvec3 R2 cross( vN, vSigmaX );\n\t\tfloat fDet dot( vSigmaX, R1 );\n\t\tfDet * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\tvec3 vGrad sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif,clipping_planes_fragment:#if NUM_CLIPPING_PLANES > 0\n\tvec4 plane;\n\t#pragma unroll_loop\n\tfor ( int i 0; i UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane clippingPlanes i ;\n\t\tif ( dot( vViewPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#if UNION_CLIPPING_PLANES NUM_CLIPPING_PLANES\n\t\tbool clipped true;\n\t\t#pragma unroll_loop\n\t\tfor ( int i UNION_CLIPPING_PLANES; i NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane clippingPlanes i ;\n\t\t\tclipped ( dot( vViewPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\tif ( clipped ) discard;\n\t#endif\n#endif,clipping_planes_pars_fragment:#if NUM_CLIPPING_PLANES > 0\n\t#if ! defined( PHYSICAL ) && ! defined( PHONG ) && ! defined( MATCAP )\n\t\tvarying vec3 vViewPosition;\n\t#endif\n\tuniform vec4 clippingPlanes NUM_CLIPPING_PLANES ;\n#endif,clipping_planes_pars_vertex:#if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG ) && ! defined( MATCAP )\n\tvarying vec3 vViewPosition;\n#endif,clipping_planes_vertex:#if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG ) && ! defined( MATCAP )\n\tvViewPosition - mvPosition.xyz;\n#endif,color_fragment:#ifdef USE_COLOR\n\tdiffuseColor.rgb * vColor;\n#endif,color_pars_fragment:#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif,color_pars_vertex:#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif,color_vertex:#ifdef USE_COLOR\n\tvColor.xyz color.xyz;\n#endif,common:#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI_HALF 1.5707963267949\n#define RECIPROCAL_PI 0.31830988618\n#define RECIPROCAL_PI2 0.15915494\n#define LOG2 1.442695\n#define EPSILON 1e-6\n#define saturate(a) clamp( a, 0.0, 1.0 )\n#define whiteCompliment(a) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 x*x; return x2*x2; }\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a 12.9898, b 78.233, c 43758.5453;\n\thighp float dt dot( uv.xy, vec2( a,b ) ), sn mod( dt, PI );\n\treturn fract(sin(sn) * c);\n}\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\tfloat distance dot( planeNormal, point - pointOnPlane );\n\treturn - distance * planeNormal + point;\n}\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn sign( dot( point - pointOnPlane, planeNormal ) );\n}\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp 0 vec3( m 0 .x, m 1 .x, m 2 .x );\n\ttmp 1 vec3( m 0 .y, m 1 .y, m 2 .y );\n\ttmp 2 vec3( m 0 .z, m 1 .z, m 2 .z );\n\treturn tmp;\n}\nfloat linearToRelativeLuminance( const in vec3 color ) {\n\tvec3 weights vec3( 0.2126, 0.7152, 0.0722 );\n\treturn dot( weights, color.rgb );\n},cube_uv_reflection_fragment:#ifdef ENVMAP_TYPE_CUBE_UV\n#define cubeUV_textureSize (1024.0)\nint getFaceFromDirection(vec3 direction) {\n\tvec3 absDirection abs(direction);\n\tint face -1;\n\tif( absDirection.x > absDirection.z ) {\n\t\tif(absDirection.x > absDirection.y )\n\t\t\tface direction.x > 0.0 ? 0 : 3;\n\t\telse\n\t\t\tface direction.y > 0.0 ? 1 : 4;\n\t}\n\telse {\n\t\tif(absDirection.z > absDirection.y )\n\t\t\tface direction.z > 0.0 ? 2 : 5;\n\t\telse\n\t\t\tface direction.y > 0.0 ? 1 : 4;\n\t}\n\treturn face;\n}\n#define cubeUV_maxLods1 (log2(cubeUV_textureSize*0.25) - 1.0)\n#define cubeUV_rangeClamp (exp2((6.0 - 1.0) * 2.0))\nvec2 MipLevelInfo( vec3 vec, float roughnessLevel, float roughness ) {\n\tfloat scale exp2(cubeUV_maxLods1 - roughnessLevel);\n\tfloat dxRoughness dFdx(roughness);\n\tfloat dyRoughness dFdy(roughness);\n\tvec3 dx dFdx( vec * scale * dxRoughness );\n\tvec3 dy dFdy( vec * scale * dyRoughness );\n\tfloat d max( dot( dx, dx ), dot( dy, dy ) );\n\td clamp(d, 1.0, cubeUV_rangeClamp);\n\tfloat mipLevel 0.5 * log2(d);\n\treturn vec2(floor(mipLevel), fract(mipLevel));\n}\n#define cubeUV_maxLods2 (log2(cubeUV_textureSize*0.25) - 2.0)\n#define cubeUV_rcpTextureSize (1.0 / cubeUV_textureSize)\nvec2 getCubeUV(vec3 direction, float roughnessLevel, float mipLevel) {\n\tmipLevel roughnessLevel > cubeUV_maxLods2 - 3.0 ? 0.0 : mipLevel;\n\tfloat a 16.0 * cubeUV_rcpTextureSize;\n\tvec2 exp2_packed exp2( vec2( roughnessLevel, mipLevel ) );\n\tvec2 rcp_exp2_packed vec2( 1.0 ) / exp2_packed;\n\tfloat powScale exp2_packed.x * exp2_packed.y;\n\tfloat scale rcp_exp2_packed.x * rcp_exp2_packed.y * 0.25;\n\tfloat mipOffset 0.75*(1.0 - rcp_exp2_packed.y) * rcp_exp2_packed.x;\n\tbool bRes mipLevel 0.0;\n\tscale bRes && (scale a) ? a : scale;\n\tvec3 r;\n\tvec2 offset;\n\tint face getFaceFromDirection(direction);\n\tfloat rcpPowScale 1.0 / powScale;\n\tif( face 0) {\n\t\tr vec3(direction.x, -direction.z, direction.y);\n\t\toffset vec2(0.0+mipOffset,0.75 * rcpPowScale);\n\t\toffset.y bRes && (offset.y 2.0*a) ? a : offset.y;\n\t}\n\telse if( face 1) {\n\t\tr vec3(direction.y, direction.x, direction.z);\n\t\toffset vec2(scale+mipOffset, 0.75 * rcpPowScale);\n\t\toffset.y bRes && (offset.y 2.0*a) ? a : offset.y;\n\t}\n\telse if( face 2) {\n\t\tr vec3(direction.z, direction.x, direction.y);\n\t\toffset vec2(2.0*scale+mipOffset, 0.75 * rcpPowScale);\n\t\toffset.y bRes && (offset.y 2.0*a) ? a : offset.y;\n\t}\n\telse if( face 3) {\n\t\tr vec3(direction.x, direction.z, direction.y);\n\t\toffset vec2(0.0+mipOffset,0.5 * rcpPowScale);\n\t\toffset.y bRes && (offset.y 2.0*a) ? 0.0 : offset.y;\n\t}\n\telse if( face 4) {\n\t\tr vec3(direction.y, direction.x, -direction.z);\n\t\toffset vec2(scale+mipOffset, 0.5 * rcpPowScale);\n\t\toffset.y bRes && (offset.y 2.0*a) ? 0.0 : offset.y;\n\t}\n\telse {\n\t\tr vec3(direction.z, -direction.x, direction.y);\n\t\toffset vec2(2.0*scale+mipOffset, 0.5 * rcpPowScale);\n\t\toffset.y bRes && (offset.y 2.0*a) ? 0.0 : offset.y;\n\t}\n\tr normalize(r);\n\tfloat texelOffset 0.5 * cubeUV_rcpTextureSize;\n\tvec2 s ( r.yz / abs( r.x ) + vec2( 1.0 ) ) * 0.5;\n\tvec2 base offset + vec2( texelOffset );\n\treturn base + s * ( scale - 2.0 * texelOffset );\n}\n#define cubeUV_maxLods3 (log2(cubeUV_textureSize*0.25) - 3.0)\nvec4 textureCubeUV( sampler2D envMap, vec3 reflectedDirection, float roughness ) {\n\tfloat roughnessVal roughness* cubeUV_maxLods3;\n\tfloat r1 floor(roughnessVal);\n\tfloat r2 r1 + 1.0;\n\tfloat t fract(roughnessVal);\n\tvec2 mipInfo MipLevelInfo(reflectedDirection, r1, roughness);\n\tfloat s mipInfo.y;\n\tfloat level0 mipInfo.x;\n\tfloat level1 level0 + 1.0;\n\tlevel1 level1 > 5.0 ? 5.0 : level1;\n\tlevel0 + min( floor( s + 0.5 ), 5.0 );\n\tvec2 uv_10 getCubeUV(reflectedDirection, r1, level0);\n\tvec4 color10 envMapTexelToLinear(texture2D(envMap, uv_10));\n\tvec2 uv_20 getCubeUV(reflectedDirection, r2, level0);\n\tvec4 color20 envMapTexelToLinear(texture2D(envMap, uv_20));\n\tvec4 result mix(color10, color20, t);\n\treturn vec4(result.rgb, 1.0);\n}\n#endif,defaultnormal_vertex:vec3 transformedNormal normalMatrix * objectNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent normalMatrix * objectTangent;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent - transformedTangent;\n\t#endif\n#endif,displacementmap_pars_vertex:#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif,displacementmap_vertex:#ifdef USE_DISPLACEMENTMAP\n\ttransformed + normalize( objectNormal ) * ( texture2D( displacementMap, uv ).x * displacementScale + displacementBias );\n#endif,emissivemap_fragment:#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor texture2D( emissiveMap, vUv );\n\temissiveColor.rgb emissiveMapTexelToLinear( emissiveColor ).rgb;\n\ttotalEmissiveRadiance * emissiveColor.rgb;\n#endif,emissivemap_pars_fragment:#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif,encodings_fragment:gl_FragColor linearToOutputTexel( gl_FragColor );,encodings_pars_fragment:\nvec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.rgb, vec3( gammaFactor ) ), value.a );\n}\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.rgb, vec3( 1.0 / gammaFactor ) ), value.a );\n}\nvec4 sRGBToLinear( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}\nvec4 RGBEToLinear( in vec4 value ) {\n\treturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\n}\nvec4 LinearToRGBE( in vec4 value ) {\n\tfloat maxComponent max( max( value.r, value.g ), value.b );\n\tfloat fExp clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\n\treturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\n}\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * value.a * maxRange, 1.0 );\n}\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\n\tfloat maxRGB max( value.r, max( value.g, value.b ) );\n\tfloat M clamp( maxRGB / maxRange, 0.0, 1.0 );\n\tM ceil( M * 255.0 ) / 255.0;\n\treturn vec4( value.rgb / ( M * maxRange ), M );\n}\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\n}\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\n\tfloat maxRGB max( value.r, max( value.g, value.b ) );\n\tfloat D max( maxRange / maxRGB, 1.0 );\n\tD min( floor( D ) / 255.0, 1.0 );\n\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\n}\nconst mat3 cLogLuvM mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\nvec4 LinearToLogLuv( in vec4 value ) {\n\tvec3 Xp_Y_XYZp cLogLuvM * value.rgb;\n\tXp_Y_XYZp max( Xp_Y_XYZp, vec3( 1e-6, 1e-6, 1e-6 ) );\n\tvec4 vResult;\n\tvResult.xy Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\n\tfloat Le 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\n\tvResult.w fract( Le );\n\tvResult.z ( Le - ( floor( vResult.w * 255.0 ) ) / 255.0 ) / 255.0;\n\treturn vResult;\n}\nconst mat3 cLogLuvInverseM mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\nvec4 LogLuvToLinear( in vec4 value ) {\n\tfloat Le value.z * 255.0 + value.w;\n\tvec3 Xp_Y_XYZp;\n\tXp_Y_XYZp.y exp2( ( Le - 127.0 ) / 2.0 );\n\tXp_Y_XYZp.z Xp_Y_XYZp.y / value.y;\n\tXp_Y_XYZp.x value.x * Xp_Y_XYZp.z;\n\tvec3 vRGB cLogLuvInverseM * Xp_Y_XYZp.rgb;\n\treturn vec4( max( vRGB, 0.0 ), 1.0 );\n},envmap_fragment:#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\tvec3 cameraToVertex normalize( vWorldPosition - cameraPosition );\n\t\tvec3 worldNormal inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#elif defined( ENVMAP_TYPE_EQUIREC )\n\t\tvec2 sampleUV;\n\t\treflectVec normalize( reflectVec );\n\t\tsampleUV.y asin( clamp( reflectVec.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\t\tsampleUV.x atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\n\t\tvec4 envColor texture2D( envMap, sampleUV );\n\t#elif defined( ENVMAP_TYPE_SPHERE )\n\t\treflectVec normalize( reflectVec );\n\t\tvec3 reflectView normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) );\n\t\tvec4 envColor texture2D( envMap, reflectView.xy * 0.5 + 0.5 );\n\t#else\n\t\tvec4 envColor vec4( 0.0 );\n\t#endif\n\tenvColor envMapTexelToLinear( envColor );\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight + envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif,envmap_pars_fragment:#if defined( USE_ENVMAP ) || defined( PHYSICAL )\n\tuniform float reflectivity;\n\tuniform float envMapIntensity;\n#endif\n#ifdef USE_ENVMAP\n\t#if ! defined( PHYSICAL ) && ( defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) )\n\t\tvarying vec3 vWorldPosition;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\tuniform float flipEnvMap;\n\tuniform int maxMipLevel;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( PHYSICAL )\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif,envmap_pars_vertex:#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif,envmap_physical_pars_fragment:#if defined( USE_ENVMAP ) && defined( PHYSICAL )\n\tvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {\n\t\tvec3 worldNormal inverseTransformDirection( geometry.normal, viewMatrix );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryVec vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor textureCube( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 queryVec vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\n\t\t\tvec4 envMapColor textureCubeUV( envMap, queryVec, 1.0 );\n\t\t#else\n\t\t\tvec4 envMapColor vec4( 0.0 );\n\t\t#endif\n\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t}\n\tfloat getSpecularMIPLevel( const in float blinnShininessExponent, const in int maxMIPLevel ) {\n\t\tfloat maxMIPLevelScalar float( maxMIPLevel );\n\t\tfloat desiredMIPLevel maxMIPLevelScalar + 0.79248 - 0.5 * log2( pow2( blinnShininessExponent ) + 1.0 );\n\t\treturn clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );\n\t}\n\tvec3 getLightProbeIndirectRadiance( const in GeometricContext geometry, const in float blinnShininessExponent, const in int maxMIPLevel ) {\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec reflect( -geometry.viewDir, geometry.normal );\n\t\t#else\n\t\t\tvec3 reflectVec refract( -geometry.viewDir, geometry.normal, refractionRatio );\n\t\t#endif\n\t\treflectVec inverseTransformDirection( reflectVec, viewMatrix );\n\t\tfloat specularMIPLevel getSpecularMIPLevel( blinnShininessExponent, maxMIPLevel );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryReflectVec vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor textureCube( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 queryReflectVec vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\n\t\t\tvec4 envMapColor textureCubeUV( envMap, queryReflectVec, BlinnExponentToGGXRoughness(blinnShininessExponent ));\n\t\t#elif defined( ENVMAP_TYPE_EQUIREC )\n\t\t\tvec2 sampleUV;\n\t\t\tsampleUV.y asin( clamp( reflectVec.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\t\t\tsampleUV.x atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor texture2DLodEXT( envMap, sampleUV, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor texture2D( envMap, sampleUV, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_SPHERE )\n\t\t\tvec3 reflectView normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0,0.0,1.0 ) );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor texture2DLodEXT( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor texture2D( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb envMapTexelToLinear( envMapColor ).rgb;\n\t\t#endif\n\t\treturn envMapColor.rgb * envMapIntensity;\n\t}\n#endif,envmap_vertex:#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\tvWorldPosition worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex normalize( worldPosition.xyz - cameraPosition );\n\t\tvec3 worldNormal inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif,fog_vertex:#ifdef USE_FOG\n\tfogDepth -mvPosition.z;\n#endif,fog_pars_vertex:#ifdef USE_FOG\n\tvarying float fogDepth;\n#endif,fog_fragment:#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor whiteCompliment( exp2( - fogDensity * fogDensity * fogDepth * fogDepth * LOG2 ) );\n\t#else\n\t\tfloat fogFactor smoothstep( fogNear, fogFar, fogDepth );\n\t#endif\n\tgl_FragColor.rgb mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif,fog_pars_fragment:#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float fogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif,gradientmap_pars_fragment:#ifdef TOON\n\tuniform sampler2D gradientMap;\n\tvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\t\tfloat dotNL dot( normal, lightDirection );\n\t\tvec2 coord vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t\t#ifdef USE_GRADIENTMAP\n\t\t\treturn texture2D( gradientMap, coord ).rgb;\n\t\t#else\n\t\t\treturn ( coord.x 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\n\t\t#endif\n\t}\n#endif,lightmap_fragment:#ifdef USE_LIGHTMAP\n\treflectedLight.indirectDiffuse + PI * texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\n#endif,lightmap_pars_fragment:#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif,lights_lambert_vertex:vec3 diffuse vec3( 1.0 );\nGeometricContext geometry;\ngeometry.position mvPosition.xyz;\ngeometry.normal normalize( transformedNormal );\ngeometry.viewDir normalize( -mvPosition.xyz );\nGeometricContext backGeometry;\nbackGeometry.position geometry.position;\nbackGeometry.normal -geometry.normal;\nbackGeometry.viewDir geometry.viewDir;\nvLightFront vec3( 0.0 );\nvIndirectFront vec3( 0.0 );\n#ifdef DOUBLE_SIDED\n\tvLightBack vec3( 0.0 );\n\tvIndirectBack vec3( 0.0 );\n#endif\nIncidentLight directLight;\nfloat dotNL;\nvec3 directLightColor_Diffuse;\n#if NUM_POINT_LIGHTS > 0\n\t#pragma unroll_loop\n\tfor ( int i 0; i NUM_POINT_LIGHTS; i ++ ) {\n\t\tgetPointDirectLightIrradiance( pointLights i , geometry, directLight );\n\t\tdotNL dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse PI * directLight.color;\n\t\tvLightFront + saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack + saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\t#pragma unroll_loop\n\tfor ( int i 0; i NUM_SPOT_LIGHTS; i ++ ) {\n\t\tgetSpotDirectLightIrradiance( spotLights i , geometry, directLight );\n\t\tdotNL dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse PI * directLight.color;\n\t\tvLightFront + saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack + saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n#endif\n#if NUM_DIR_LIGHTS > 0\n\t#pragma unroll_loop\n\tfor ( int i 0; i NUM_DIR_LIGHTS; i ++ ) {\n\t\tgetDirectionalDirectLightIrradiance( directionalLights i , geometry, directLight );\n\t\tdotNL dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse PI * directLight.color;\n\t\tvLightFront + saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack + saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\t#pragma unroll_loop\n\tfor ( int i 0; i NUM_HEMI_LIGHTS; i ++ ) {\n\t\tvIndirectFront + getHemisphereLightIrradiance( hemisphereLights i , geometry );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvIndirectBack + getHemisphereLightIrradiance( hemisphereLights i , backGeometry );\n\t\t#endif\n\t}\n#endif,lights_pars_begin:uniform vec3 ambientLightColor;\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance ambientLightColor;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance * PI;\n\t#endif\n\treturn irradiance;\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tint shadow;\n\t\tfloat shadowBias;\n\t\tfloat shadowRadius;\n\t\tvec2 shadowMapSize;\n\t};\n\tuniform DirectionalLight directionalLights NUM_DIR_LIGHTS ;\n\tvoid getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tdirectLight.color directionalLight.color;\n\t\tdirectLight.direction directionalLight.direction;\n\t\tdirectLight.visible true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tint shadow;\n\t\tfloat shadowBias;\n\t\tfloat shadowRadius;\n\t\tvec2 shadowMapSize;\n\t\tfloat shadowCameraNear;\n\t\tfloat shadowCameraFar;\n\t};\n\tuniform PointLight pointLights NUM_POINT_LIGHTS ;\n\tvoid getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector pointLight.position - geometry.position;\n\t\tdirectLight.direction normalize( lVector );\n\t\tfloat lightDistance length( lVector );\n\t\tdirectLight.color pointLight.color;\n\t\tdirectLight.color * punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );\n\t\tdirectLight.visible ( directLight.color ! vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t\tint shadow;\n\t\tfloat shadowBias;\n\t\tfloat shadowRadius;\n\t\tvec2 shadowMapSize;\n\t};\n\tuniform SpotLight spotLights NUM_SPOT_LIGHTS ;\n\tvoid getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector spotLight.position - geometry.position;\n\t\tdirectLight.direction normalize( lVector );\n\t\tfloat lightDistance length( lVector );\n\t\tfloat angleCos dot( directLight.direction, spotLight.direction );\n\t\tif ( angleCos > spotLight.coneCos ) {\n\t\t\tfloat spotEffect smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\t\tdirectLight.color spotLight.color;\n\t\t\tdirectLight.color * spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tdirectLight.visible true;\n\t\t} else {\n\t\t\tdirectLight.color vec3( 0.0 );\n\t\t\tdirectLight.visible false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights NUM_RECT_AREA_LIGHTS ;\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights NUM_HEMI_LIGHTS ;\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in GeometricContext geometry ) {\n\t\tfloat dotNL dot( geometry.normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tirradiance * PI;\n\t\t#endif\n\t\treturn irradiance;\n\t}\n#endif,lights_phong_fragment:BlinnPhongMaterial material;\nmaterial.diffuseColor diffuseColor.rgb;\nmaterial.specularColor specular;\nmaterial.specularShininess shininess;\nmaterial.specularStrength specularStrength;,lights_phong_pars_fragment:varying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\nstruct BlinnPhongMaterial {\n\tvec3\tdiffuseColor;\n\tvec3\tspecularColor;\n\tfloat\tspecularShininess;\n\tfloat\tspecularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\t#ifdef TOON\n\t\tvec3 irradiance getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\t#else\n\t\tfloat dotNL saturate( dot( geometry.normal, directLight.direction ) );\n\t\tvec3 irradiance dotNL * directLight.color;\n\t#endif\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance * PI;\n\t#endif\n\treflectedLight.directDiffuse + irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular + irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse + irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong\n#define Material_LightProbeLOD( material )\t(0),lights_physical_fragment:PhysicalMaterial material;\nmaterial.diffuseColor diffuseColor.rgb * ( 1.0 - metalnessFactor );\nmaterial.specularRoughness clamp( roughnessFactor, 0.04, 1.0 );\n#ifdef STANDARD\n\tmaterial.specularColor mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.clearCoat saturate( clearCoat );\tmaterial.clearCoatRoughness clamp( clearCoatRoughness, 0.04, 1.0 );\n#endif,lights_physical_pars_fragment:struct PhysicalMaterial {\n\tvec3\tdiffuseColor;\n\tfloat\tspecularRoughness;\n\tvec3\tspecularColor;\n\t#ifndef STANDARD\n\t\tfloat clearCoat;\n\t\tfloat clearCoatRoughness;\n\t#endif\n};\n#define MAXIMUM_SPECULAR_COEFFICIENT 0.16\n#define DEFAULT_SPECULAR_COEFFICIENT 0.04\nfloat clearCoatDHRApprox( const in float roughness, const in float dotNL ) {\n\treturn DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal geometry.normal;\n\t\tvec3 viewDir geometry.viewDir;\n\t\tvec3 position geometry.position;\n\t\tvec3 lightPos rectAreaLight.position;\n\t\tvec3 halfWidth rectAreaLight.halfWidth;\n\t\tvec3 halfHeight rectAreaLight.halfHeight;\n\t\tvec3 lightColor rectAreaLight.color;\n\t\tfloat roughness material.specularRoughness;\n\t\tvec3 rectCoords 4 ;\n\t\trectCoords 0 lightPos + halfWidth - halfHeight;\t\trectCoords 1 lightPos - halfWidth - halfHeight;\n\t\trectCoords 2 lightPos - halfWidth + halfHeight;\n\t\trectCoords 3 lightPos + halfWidth + halfHeight;\n\t\tvec2 uv LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 texture2D( ltc_1, uv );\n\t\tvec4 t2 texture2D( ltc_2, uv );\n\t\tmat3 mInv mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular + lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse + lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance dotNL * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance * PI;\n\t#endif\n\t#ifndef STANDARD\n\t\tfloat clearCoatDHR material.clearCoat * clearCoatDHRApprox( material.clearCoatRoughness, dotNL );\n\t#else\n\t\tfloat clearCoatDHR 0.0;\n\t#endif\n\treflectedLight.directSpecular + ( 1.0 - clearCoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry, material.specularColor, material.specularRoughness );\n\treflectedLight.directDiffuse + ( 1.0 - clearCoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\t#ifndef STANDARD\n\t\treflectedLight.directSpecular + irradiance * material.clearCoat * BRDF_Specular_GGX( directLight, geometry, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearCoatRoughness );\n\t#endif\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t#ifndef ENVMAP_TYPE_CUBE_UV\n\t\treflectedLight.indirectDiffuse + irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\t#endif\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearCoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifndef STANDARD\n\t\tfloat dotNV saturate( dot( geometry.normal, geometry.viewDir ) );\n\t\tfloat dotNL dotNV;\n\t\tfloat clearCoatDHR material.clearCoat * clearCoatDHRApprox( material.clearCoatRoughness, dotNL );\n\t#else\n\t\tfloat clearCoatDHR 0.0;\n\t#endif\n\tfloat clearCoatInv 1.0 - clearCoatDHR;\n\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec3 singleScattering vec3( 0.0 );\n\t\tvec3 multiScattering vec3( 0.0 );\n\t\tvec3 cosineWeightedIrradiance irradiance * RECIPROCAL_PI;\n\t\tBRDF_Specular_Multiscattering_Environment( geometry, material.specularColor, material.specularRoughness, singleScattering, multiScattering );\n\t\tvec3 diffuse material.diffuseColor;\n\t\treflectedLight.indirectSpecular + clearCoatInv * radiance * singleScattering;\n\t\treflectedLight.indirectDiffuse + multiScattering * cosineWeightedIrradiance;\n\t\treflectedLight.indirectDiffuse + diffuse * cosineWeightedIrradiance;\n\t#else\n\t\treflectedLight.indirectSpecular + clearCoatInv * radiance * BRDF_Specular_GGX_Environment( geometry, material.specularColor, material.specularRoughness );\n\t#endif\n\t#ifndef STANDARD\n\t\treflectedLight.indirectSpecular + clearCoatRadiance * material.clearCoat * BRDF_Specular_GGX_Environment( geometry, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearCoatRoughness );\n\t#endif\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\n#define Material_BlinnShininessExponent( material ) GGXRoughnessToBlinnExponent( material.specularRoughness )\n#define Material_ClearCoat_BlinnShininessExponent( material ) GGXRoughnessToBlinnExponent( material.clearCoatRoughness )\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n},lights_fragment_begin:\nGeometricContext geometry;\ngeometry.position - vViewPosition;\ngeometry.normal normal;\ngeometry.viewDir normalize( vViewPosition );\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#pragma unroll_loop\n\tfor ( int i 0; i NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight pointLights i ;\n\t\tgetPointDirectLightIrradiance( pointLight, geometry, directLight );\n\t\t#ifdef USE_SHADOWMAP\n\t\tdirectLight.color * all( bvec2( pointLight.shadow, directLight.visible ) ) ? getPointShadow( pointShadowMap i , pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord i , pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\t#pragma unroll_loop\n\tfor ( int i 0; i NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight spotLights i ;\n\t\tgetSpotDirectLightIrradiance( spotLight, geometry, directLight );\n\t\t#ifdef USE_SHADOWMAP\n\t\tdirectLight.color * all( bvec2( spotLight.shadow, directLight.visible ) ) ? getShadow( spotShadowMap i , spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord i ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#pragma unroll_loop\n\tfor ( int i 0; i NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight directionalLights i ;\n\t\tgetDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );\n\t\t#ifdef USE_SHADOWMAP\n\t\tdirectLight.color * all( bvec2( directionalLight.shadow, directLight.visible ) ) ? getShadow( directionalShadowMap i , directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord i ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop\n\tfor ( int i 0; i NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight rectAreaLights i ;\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 irradiance getAmbientLightIrradiance( ambientLightColor );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop\n\t\tfor ( int i 0; i NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance + getHemisphereLightIrradiance( hemisphereLights i , geometry );\n\t\t}\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance vec3( 0.0 );\n\tvec3 clearCoatRadiance vec3( 0.0 );\n#endif,lights_fragment_maps:#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec3 lightMapIrradiance texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tlightMapIrradiance * PI;\n\t\t#endif\n\t\tirradiance + lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( PHYSICAL ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tirradiance + getLightProbeIndirectIrradiance( geometry, maxMipLevel );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance + getLightProbeIndirectRadiance( geometry, Material_BlinnShininessExponent( material ), maxMipLevel );\n\t#ifndef STANDARD\n\t\tclearCoatRadiance + getLightProbeIndirectRadiance( geometry, Material_ClearCoat_BlinnShininessExponent( material ), maxMipLevel );\n\t#endif\n#endif,lights_fragment_end:#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, irradiance, clearCoatRadiance, geometry, material, reflectedLight );\n#endif,logdepthbuf_fragment:#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif,logdepthbuf_pars_fragment:#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n#endif,logdepthbuf_pars_vertex:#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif,logdepthbuf_vertex:#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth 1.0 + gl_Position.w;\n\t#else\n\t\tgl_Position.z log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\tgl_Position.z * gl_Position.w;\n\t#endif\n#endif,map_fragment:#ifdef USE_MAP\n\tvec4 texelColor texture2D( map, vUv );\n\ttexelColor mapTexelToLinear( texelColor );\n\tdiffuseColor * texelColor;\n#endif,map_pars_fragment:#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif,map_particle_fragment:#ifdef USE_MAP\n\tvec2 uv ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\tvec4 mapTexel texture2D( map, uv );\n\tdiffuseColor * mapTexelToLinear( mapTexel );\n#endif,map_particle_pars_fragment:#ifdef USE_MAP\n\tuniform mat3 uvTransform;\n\tuniform sampler2D map;\n#endif,metalnessmap_fragment:float metalnessFactor metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness texture2D( metalnessMap, vUv );\n\tmetalnessFactor * texelMetalness.b;\n#endif,metalnessmap_pars_fragment:#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif,morphnormal_vertex:#ifdef USE_MORPHNORMALS\n\tobjectNormal + ( morphNormal0 - normal ) * morphTargetInfluences 0 ;\n\tobjectNormal + ( morphNormal1 - normal ) * morphTargetInfluences 1 ;\n\tobjectNormal + ( morphNormal2 - normal ) * morphTargetInfluences 2 ;\n\tobjectNormal + ( morphNormal3 - normal ) * morphTargetInfluences 3 ;\n#endif,morphtarget_pars_vertex:#ifdef USE_MORPHTARGETS\n\t#ifndef USE_MORPHNORMALS\n\tuniform float morphTargetInfluences 8 ;\n\t#else\n\tuniform float morphTargetInfluences 4 ;\n\t#endif\n#endif,morphtarget_vertex:#ifdef USE_MORPHTARGETS\n\ttransformed + ( morphTarget0 - position ) * morphTargetInfluences 0 ;\n\ttransformed + ( morphTarget1 - position ) * morphTargetInfluences 1 ;\n\ttransformed + ( morphTarget2 - position ) * morphTargetInfluences 2 ;\n\ttransformed + ( morphTarget3 - position ) * morphTargetInfluences 3 ;\n\t#ifndef USE_MORPHNORMALS\n\ttransformed + ( morphTarget4 - position ) * morphTargetInfluences 4 ;\n\ttransformed + ( morphTarget5 - position ) * morphTargetInfluences 5 ;\n\ttransformed + ( morphTarget6 - position ) * morphTargetInfluences 6 ;\n\ttransformed + ( morphTarget7 - position ) * morphTargetInfluences 7 ;\n\t#endif\n#endif,normal_fragment_begin:#ifdef FLAT_SHADED\n\tvec3 fdx vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\n\tvec3 fdy vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\n\tvec3 normal normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t#endif\n\t#ifdef USE_TANGENT\n\t\tvec3 tangent normalize( vTangent );\n\t\tvec3 bitangent normalize( vBitangent );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\ttangent tangent * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\t\tbitangent bitangent * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\t#endif\n\t#endif\n#endif,normal_fragment_maps:#ifdef USE_NORMALMAP\n\t#ifdef OBJECTSPACE_NORMALMAP\n\t\tnormal texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t\t#ifdef FLIP_SIDED\n\t\t\tnormal - normal;\n\t\t#endif\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tnormal normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\t#endif\n\t\tnormal normalize( normalMatrix * normal );\n\t#else\n\t\t#ifdef USE_TANGENT\n\t\t\tmat3 vTBN mat3( tangent, bitangent, normal );\n\t\t\tvec3 mapN texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t\t\tmapN.xy normalScale * mapN.xy;\n\t\t\tnormal normalize( vTBN * mapN );\n\t\t#else\n\t\t\tnormal perturbNormal2Arb( -vViewPosition, normal );\n\t\t#endif\n\t#endif\n#elif defined( USE_BUMPMAP )\n\tnormal perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );\n#endif,normalmap_pars_fragment:#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n\t#ifdef OBJECTSPACE_NORMALMAP\n\t\tuniform mat3 normalMatrix;\n\t#else\n\t\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm ) {\n\t\t\tvec3 q0 vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\n\t\t\tvec3 q1 vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\n\t\t\tvec2 st0 dFdx( vUv.st );\n\t\t\tvec2 st1 dFdy( vUv.st );\n\t\t\tfloat scale sign( st1.t * st0.s - st0.t * st1.s );\n\t\t\tvec3 S normalize( ( q0 * st1.t - q1 * st0.t ) * scale );\n\t\t\tvec3 T normalize( ( - q0 * st1.s + q1 * st0.s ) * scale );\n\t\t\tvec3 N normalize( surf_norm );\n\t\t\tmat3 tsn mat3( S, T, N );\n\t\t\tvec3 mapN texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t\t\tmapN.xy * normalScale;\n\t\t\tmapN.xy * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\t\treturn normalize( tsn * mapN );\n\t\t}\n\t#endif\n#endif,packing:vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale 256. / 255.;const float UnpackDownscale 255. / 256.;\nconst vec3 PackFactors vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r vec4( fract( v * PackFactors ), v );\n\tr.yzw - r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\n\treturn linearClipZ * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn (( near + viewZ ) * far ) / (( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\n},premultiplied_alpha_fragment:#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb * gl_FragColor.a;\n#endif,project_vertex:vec4 mvPosition modelViewMatrix * vec4( transformed, 1.0 );\ngl_Position projectionMatrix * mvPosition;,dithering_fragment:#if defined( DITHERING )\n\tgl_FragColor.rgb dithering( gl_FragColor.rgb );\n#endif,dithering_pars_fragment:#if defined( DITHERING )\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif,roughnessmap_fragment:float roughnessFactor roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness texture2D( roughnessMap, vUv );\n\troughnessFactor * texelRoughness.g;\n#endif,roughnessmap_pars_fragment:#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif,shadowmap_pars_fragment:#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS > 0\n\t\tuniform sampler2D directionalShadowMap NUM_DIR_LIGHTS ;\n\t\tvarying vec4 vDirectionalShadowCoord NUM_DIR_LIGHTS ;\n\t#endif\n\t#if NUM_SPOT_LIGHTS > 0\n\t\tuniform sampler2D spotShadowMap NUM_SPOT_LIGHTS ;\n\t\tvarying vec4 vSpotShadowCoord NUM_SPOT_LIGHTS ;\n\t#endif\n\t#if NUM_POINT_LIGHTS > 0\n\t\tuniform sampler2D pointShadowMap NUM_POINT_LIGHTS ;\n\t\tvarying vec4 vPointShadowCoord NUM_POINT_LIGHTS ;\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tfloat texture2DShadowLerp( sampler2D depths, vec2 size, vec2 uv, float compare ) {\n\t\tconst vec2 offset vec2( 0.0, 1.0 );\n\t\tvec2 texelSize vec2( 1.0 ) / size;\n\t\tvec2 centroidUV floor( uv * size + 0.5 ) / size;\n\t\tfloat lb texture2DCompare( depths, centroidUV + texelSize * offset.xx, compare );\n\t\tfloat lt texture2DCompare( depths, centroidUV + texelSize * offset.xy, compare );\n\t\tfloat rb texture2DCompare( depths, centroidUV + texelSize * offset.yx, compare );\n\t\tfloat rt texture2DCompare( depths, centroidUV + texelSize * offset.yy, compare );\n\t\tvec2 f fract( uv * size + 0.5 );\n\t\tfloat a mix( lb, lt, f.y );\n\t\tfloat b mix( rb, rt, f.y );\n\t\tfloat c mix( a, b, f.x );\n\t\treturn c;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow 1.0;\n\t\tshadowCoord.xyz / shadowCoord.w;\n\t\tshadowCoord.z + shadowBias;\n\t\tbvec4 inFrustumVec bvec4 ( shadowCoord.x > 0.0, shadowCoord.x 1.0, shadowCoord.y > 0.0, shadowCoord.y 1.0 );\n\t\tbool inFrustum all( inFrustumVec );\n\t\tbvec2 frustumTestVec bvec2( inFrustum, shadowCoord.z 1.0 );\n\t\tbool frustumTest all( frustumTestVec );\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 + texelSize.y * shadowRadius;\n\t\t\tshadow (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 + texelSize.y * shadowRadius;\n\t\t\tshadow (\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\tshadow texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV abs( v );\n\t\tfloat scaleToCube 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV * scaleToCube;\n\t\tv * scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar v.xy;\n\t\tfloat almostATexel 1.5 * texelSizeY;\n\t\tfloat almostOne 1.0 - almostATexel;\n\t\tif ( absV.z > almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x 4.0 - v.x;\n\t\t} else if ( absV.x > almostOne ) {\n\t\t\tfloat signX sign( v.x );\n\t\t\tplanar.x v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y > almostOne ) {\n\t\t\tfloat signY sign( v.y );\n\t\t\tplanar.x v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition shadowCoord.xyz;\n\t\tfloat dp ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp + shadowBias;\n\t\tvec3 bd3D normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 offset vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif,shadowmap_pars_vertex:#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS > 0\n\t\tuniform mat4 directionalShadowMatrix NUM_DIR_LIGHTS ;\n\t\tvarying vec4 vDirectionalShadowCoord NUM_DIR_LIGHTS ;\n\t#endif\n\t#if NUM_SPOT_LIGHTS > 0\n\t\tuniform mat4 spotShadowMatrix NUM_SPOT_LIGHTS ;\n\t\tvarying vec4 vSpotShadowCoord NUM_SPOT_LIGHTS ;\n\t#endif\n\t#if NUM_POINT_LIGHTS > 0\n\t\tuniform mat4 pointShadowMatrix NUM_POINT_LIGHTS ;\n\t\tvarying vec4 vPointShadowCoord NUM_POINT_LIGHTS ;\n\t#endif\n#endif,shadowmap_vertex:#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS > 0\n\t#pragma unroll_loop\n\tfor ( int i 0; i NUM_DIR_LIGHTS; i ++ ) {\n\t\tvDirectionalShadowCoord i directionalShadowMatrix i * worldPosition;\n\t}\n\t#endif\n\t#if NUM_SPOT_LIGHTS > 0\n\t#pragma unroll_loop\n\tfor ( int i 0; i NUM_SPOT_LIGHTS; i ++ ) {\n\t\tvSpotShadowCoord i spotShadowMatrix i * worldPosition;\n\t}\n\t#endif\n\t#if NUM_POINT_LIGHTS > 0\n\t#pragma unroll_loop\n\tfor ( int i 0; i NUM_POINT_LIGHTS; i ++ ) {\n\t\tvPointShadowCoord i pointShadowMatrix i * worldPosition;\n\t}\n\t#endif\n#endif,shadowmask_pars_fragment:float getShadowMask() {\n\tfloat shadow 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS > 0\n\tDirectionalLight directionalLight;\n\t#pragma unroll_loop\n\tfor ( int i 0; i NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight directionalLights i ;\n\t\tshadow * bool( directionalLight.shadow ) ? getShadow( directionalShadowMap i , directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord i ) : 1.0;\n\t}\n\t#endif\n\t#if NUM_SPOT_LIGHTS > 0\n\tSpotLight spotLight;\n\t#pragma unroll_loop\n\tfor ( int i 0; i NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight spotLights i ;\n\t\tshadow * bool( spotLight.shadow ) ? getShadow( spotShadowMap i , spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord i ) : 1.0;\n\t}\n\t#endif\n\t#if NUM_POINT_LIGHTS > 0\n\tPointLight pointLight;\n\t#pragma unroll_loop\n\tfor ( int i 0; i NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight pointLights i ;\n\t\tshadow * bool( pointLight.shadow ) ? getPointShadow( pointShadowMap i , pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord i , pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#endif\n\t#endif\n\treturn shadow;\n},skinbase_vertex:#ifdef USE_SKINNING\n\tmat4 boneMatX getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW getBoneMatrix( skinIndex.w );\n#endif,skinning_pars_vertex:#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\t#ifdef BONE_TEXTURE\n\t\tuniform sampler2D boneTexture;\n\t\tuniform int boneTextureSize;\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tfloat j i * 4.0;\n\t\t\tfloat x mod( j, float( boneTextureSize ) );\n\t\t\tfloat y floor( j / float( boneTextureSize ) );\n\t\t\tfloat dx 1.0 / float( boneTextureSize );\n\t\t\tfloat dy 1.0 / float( boneTextureSize );\n\t\t\ty dy * ( y + 0.5 );\n\t\t\tvec4 v1 texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\t\tvec4 v2 texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\t\tvec4 v3 texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\t\tvec4 v4 texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\t\tmat4 bone mat4( v1, v2, v3, v4 );\n\t\t\treturn bone;\n\t\t}\n\t#else\n\t\tuniform mat4 boneMatrices MAX_BONES ;\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tmat4 bone boneMatrices int(i) ;\n\t\t\treturn bone;\n\t\t}\n\t#endif\n#endif,skinning_vertex:#ifdef USE_SKINNING\n\tvec4 skinVertex bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned vec4( 0.0 );\n\tskinned + boneMatX * skinVertex * skinWeight.x;\n\tskinned + boneMatY * skinVertex * skinWeight.y;\n\tskinned + boneMatZ * skinVertex * skinWeight.z;\n\tskinned + boneMatW * skinVertex * skinWeight.w;\n\ttransformed ( bindMatrixInverse * skinned ).xyz;\n#endif,skinnormal_vertex:#ifdef USE_SKINNING\n\tmat4 skinMatrix mat4( 0.0 );\n\tskinMatrix + skinWeight.x * boneMatX;\n\tskinMatrix + skinWeight.y * boneMatY;\n\tskinMatrix + skinWeight.z * boneMatZ;\n\tskinMatrix + skinWeight.w * boneMatW;\n\tskinMatrix bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif,specularmap_fragment:float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular texture2D( specularMap, vUv );\n\tspecularStrength texelSpecular.r;\n#else\n\tspecularStrength 1.0;\n#endif,specularmap_pars_fragment:#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif,tonemapping_fragment:#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb toneMapping( gl_FragColor.rgb );\n#endif,tonemapping_pars_fragment:#ifndef saturate\n\t#define saturate(a) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nuniform float toneMappingWhitePoint;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor * toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\n#define Uncharted2Helper( x ) max( ( ( x * ( 0.15 * x + 0.10 * 0.50 ) + 0.20 * 0.02 ) / ( x * ( 0.15 * x + 0.50 ) + 0.20 * 0.30 ) ) - 0.02 / 0.30, vec3( 0.0 ) )\nvec3 Uncharted2ToneMapping( vec3 color ) {\n\tcolor * toneMappingExposure;\n\treturn saturate( Uncharted2Helper( color ) / Uncharted2Helper( vec3( toneMappingWhitePoint ) ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor * toneMappingExposure;\n\tcolor max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tcolor * toneMappingExposure;\n\treturn saturate( ( color * ( 2.51 * color + 0.03 ) ) / ( color * ( 2.43 * color + 0.59 ) + 0.14 ) );\n},uv_pars_fragment:#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\n\tvarying vec2 vUv;\n#endif,uv_pars_vertex:#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif,uv_vertex:#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\n\tvUv ( uvTransform * vec3( uv, 1 ) ).xy;\n#endif,uv2_pars_fragment:#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvarying vec2 vUv2;\n#endif,uv2_pars_vertex:#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tattribute vec2 uv2;\n\tvarying vec2 vUv2;\n#endif,uv2_vertex:#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvUv2 uv2;\n#endif,worldpos_vertex:#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP )\n\tvec4 worldPosition modelMatrix * vec4( transformed, 1.0 );\n#endif,background_frag:uniform sampler2D t2D;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor texture2D( t2D, vUv );\n\tgl_FragColor mapTexelToLinear( texColor );\n\t#include tonemapping_fragment>\n\t#include encodings_fragment>\n},background_vert:varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position vec4( position.xy, 1.0, 1.0 );\n},cube_frag:uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor mapTexelToLinear( texColor );\n\tgl_FragColor.a * opacity;\n\t#include tonemapping_fragment>\n\t#include encodings_fragment>\n},cube_vert:varying vec3 vWorldDirection;\n#include common>\nvoid main() {\n\tvWorldDirection transformDirection( position, modelMatrix );\n\t#include begin_vertex>\n\t#include project_vertex>\n\tgl_Position.z gl_Position.w;\n},depth_frag:#if DEPTH_PACKING 3200\n\tuniform float opacity;\n#endif\n#include common>\n#include packing>\n#include uv_pars_fragment>\n#include map_pars_fragment>\n#include alphamap_pars_fragment>\n#include logdepthbuf_pars_fragment>\n#include clipping_planes_pars_fragment>\nvoid main() {\n\t#include clipping_planes_fragment>\n\tvec4 diffuseColor vec4( 1.0 );\n\t#if DEPTH_PACKING 3200\n\t\tdiffuseColor.a opacity;\n\t#endif\n\t#include map_fragment>\n\t#include alphamap_fragment>\n\t#include alphatest_fragment>\n\t#include logdepthbuf_fragment>\n\t#if DEPTH_PACKING 3200\n\t\tgl_FragColor vec4( vec3( 1.0 - gl_FragCoord.z ), opacity );\n\t#elif DEPTH_PACKING 3201\n\t\tgl_FragColor packDepthToRGBA( gl_FragCoord.z );\n\t#endif\n},depth_vert:#include common>\n#include uv_pars_vertex>\n#include displacementmap_pars_vertex>\n#include morphtarget_pars_vertex>\n#include skinning_pars_vertex>\n#include logdepthbuf_pars_vertex>\n#include clipping_planes_pars_vertex>\nvoid main() {\n\t#include uv_vertex>\n\t#include skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include beginnormal_vertex>\n\t\t#include morphnormal_vertex>\n\t\t#include skinnormal_vertex>\n\t#endif\n\t#include begin_vertex>\n\t#include morphtarget_vertex>\n\t#include skinning_vertex>\n\t#include displacementmap_vertex>\n\t#include project_vertex>\n\t#include logdepthbuf_vertex>\n\t#include clipping_planes_vertex>\n},distanceRGBA_frag:#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include common>\n#include packing>\n#include uv_pars_fragment>\n#include map_pars_fragment>\n#include alphamap_pars_fragment>\n#include clipping_planes_pars_fragment>\nvoid main () {\n\t#include clipping_planes_fragment>\n\tvec4 diffuseColor vec4( 1.0 );\n\t#include map_fragment>\n\t#include alphamap_fragment>\n\t#include alphatest_fragment>\n\tfloat dist length( vWorldPosition - referencePosition );\n\tdist ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist saturate( dist );\n\tgl_FragColor packDepthToRGBA( dist );\n},distanceRGBA_vert:#define DISTANCE\nvarying vec3 vWorldPosition;\n#include common>\n#include uv_pars_vertex>\n#include displacementmap_pars_vertex>\n#include morphtarget_pars_vertex>\n#include skinning_pars_vertex>\n#include clipping_planes_pars_vertex>\nvoid main() {\n\t#include uv_vertex>\n\t#include skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include beginnormal_vertex>\n\t\t#include morphnormal_vertex>\n\t\t#include skinnormal_vertex>\n\t#endif\n\t#include begin_vertex>\n\t#include morphtarget_vertex>\n\t#include skinning_vertex>\n\t#include displacementmap_vertex>\n\t#include project_vertex>\n\t#include worldpos_vertex>\n\t#include clipping_planes_vertex>\n\tvWorldPosition worldPosition.xyz;\n},equirect_frag:uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include common>\nvoid main() {\n\tvec3 direction normalize( vWorldDirection );\n\tvec2 sampleUV;\n\tsampleUV.y asin( clamp( direction.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\tsampleUV.x atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;\n\tvec4 texColor texture2D( tEquirect, sampleUV );\n\tgl_FragColor mapTexelToLinear( texColor );\n\t#include tonemapping_fragment>\n\t#include encodings_fragment>\n},equirect_vert:varying vec3 vWorldDirection;\n#include common>\nvoid main() {\n\tvWorldDirection transformDirection( position, modelMatrix );\n\t#include begin_vertex>\n\t#include project_vertex>\n},linedashed_frag:uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include common>\n#include color_pars_fragment>\n#include fog_pars_fragment>\n#include logdepthbuf_pars_fragment>\n#include clipping_planes_pars_fragment>\nvoid main() {\n\t#include clipping_planes_fragment>\n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight vec3( 0.0 );\n\tvec4 diffuseColor vec4( diffuse, opacity );\n\t#include logdepthbuf_fragment>\n\t#include color_fragment>\n\toutgoingLight diffuseColor.rgb;\n\tgl_FragColor vec4( outgoingLight, diffuseColor.a );\n\t#include premultiplied_alpha_fragment>\n\t#include tonemapping_fragment>\n\t#include encodings_fragment>\n\t#include fog_fragment>\n},linedashed_vert:uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include common>\n#include color_pars_vertex>\n#include fog_pars_vertex>\n#include logdepthbuf_pars_vertex>\n#include clipping_planes_pars_vertex>\nvoid main() {\n\t#include color_vertex>\n\tvLineDistance scale * lineDistance;\n\tvec4 mvPosition modelViewMatrix * vec4( position, 1.0 );\n\tgl_Position projectionMatrix * mvPosition;\n\t#include logdepthbuf_vertex>\n\t#include clipping_planes_vertex>\n\t#include fog_vertex>\n},meshbasic_frag:uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include common>\n#include color_pars_fragment>\n#include uv_pars_fragment>\n#include uv2_pars_fragment>\n#include map_pars_fragment>\n#include alphamap_pars_fragment>\n#include aomap_pars_fragment>\n#include lightmap_pars_fragment>\n#include envmap_pars_fragment>\n#include fog_pars_fragment>\n#include specularmap_pars_fragment>\n#include logdepthbuf_pars_fragment>\n#include clipping_planes_pars_fragment>\nvoid main() {\n\t#include clipping_planes_fragment>\n\tvec4 diffuseColor vec4( diffuse, opacity );\n\t#include logdepthbuf_fragment>\n\t#include map_fragment>\n\t#include color_fragment>\n\t#include alphamap_fragment>\n\t#include alphatest_fragment>\n\t#include specularmap_fragment>\n\tReflectedLight reflectedLight ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\treflectedLight.indirectDiffuse + texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\n\t#else\n\t\treflectedLight.indirectDiffuse + vec3( 1.0 );\n\t#endif\n\t#include aomap_fragment>\n\treflectedLight.indirectDiffuse * diffuseColor.rgb;\n\tvec3 outgoingLight reflectedLight.indirectDiffuse;\n\t#include envmap_fragment>\n\tgl_FragColor vec4( outgoingLight, diffuseColor.a );\n\t#include premultiplied_alpha_fragment>\n\t#include tonemapping_fragment>\n\t#include encodings_fragment>\n\t#include fog_fragment>\n},meshbasic_vert:#include common>\n#include uv_pars_vertex>\n#include uv2_pars_vertex>\n#include envmap_pars_vertex>\n#include color_pars_vertex>\n#include fog_pars_vertex>\n#include morphtarget_pars_vertex>\n#include skinning_pars_vertex>\n#include logdepthbuf_pars_vertex>\n#include clipping_planes_pars_vertex>\nvoid main() {\n\t#include uv_vertex>\n\t#include uv2_vertex>\n\t#include color_vertex>\n\t#include skinbase_vertex>\n\t#ifdef USE_ENVMAP\n\t#include beginnormal_vertex>\n\t#include morphnormal_vertex>\n\t#include skinnormal_vertex>\n\t#include defaultnormal_vertex>\n\t#endif\n\t#include begin_vertex>\n\t#include morphtarget_vertex>\n\t#include skinning_vertex>\n\t#include project_vertex>\n\t#include logdepthbuf_vertex>\n\t#include worldpos_vertex>\n\t#include clipping_planes_vertex>\n\t#include envmap_vertex>\n\t#include fog_vertex>\n},meshlambert_frag:uniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\n#endif\n#include common>\n#include packing>\n#include dithering_pars_fragment>\n#include color_pars_fragment>\n#include uv_pars_fragment>\n#include uv2_pars_fragment>\n#include map_pars_fragment>\n#include alphamap_pars_fragment>\n#include aomap_pars_fragment>\n#include lightmap_pars_fragment>\n#include emissivemap_pars_fragment>\n#include envmap_pars_fragment>\n#include bsdfs>\n#include lights_pars_begin>\n#include fog_pars_fragment>\n#include shadowmap_pars_fragment>\n#include shadowmask_pars_fragment>\n#include specularmap_pars_fragment>\n#include logdepthbuf_pars_fragment>\n#include clipping_planes_pars_fragment>\nvoid main() {\n\t#include clipping_planes_fragment>\n\tvec4 diffuseColor vec4( diffuse, opacity );\n\tReflectedLight reflectedLight ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance emissive;\n\t#include logdepthbuf_fragment>\n\t#include map_fragment>\n\t#include color_fragment>\n\t#include alphamap_fragment>\n\t#include alphatest_fragment>\n\t#include specularmap_fragment>\n\t#include emissivemap_fragment>\n\treflectedLight.indirectDiffuse getAmbientLightIrradiance( ambientLightColor );\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.indirectDiffuse + ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack;\n\t#else\n\t\treflectedLight.indirectDiffuse + vIndirectFront;\n\t#endif\n\t#include lightmap_fragment>\n\treflectedLight.indirectDiffuse * BRDF_Diffuse_Lambert( diffuseColor.rgb );\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.directDiffuse ( gl_FrontFacing ) ? vLightFront : vLightBack;\n\t#else\n\t\treflectedLight.directDiffuse vLightFront;\n\t#endif\n\treflectedLight.directDiffuse * BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\n\t#include aomap_fragment>\n\tvec3 outgoingLight reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include envmap_fragment>\n\tgl_FragColor vec4( outgoingLight, diffuseColor.a );\n\t#include tonemapping_fragment>\n\t#include encodings_fragment>\n\t#include fog_fragment>\n\t#include premultiplied_alpha_fragment>\n\t#include dithering_fragment>\n},meshlambert_vert:#define LAMBERT\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\n#endif\n#include common>\n#include uv_pars_vertex>\n#include uv2_pars_vertex>\n#include envmap_pars_vertex>\n#include bsdfs>\n#include lights_pars_begin>\n#include color_pars_vertex>\n#include fog_pars_vertex>\n#include morphtarget_pars_vertex>\n#include skinning_pars_vertex>\n#include shadowmap_pars_vertex>\n#include logdepthbuf_pars_vertex>\n#include clipping_planes_pars_vertex>\nvoid main() {\n\t#include uv_vertex>\n\t#include uv2_vertex>\n\t#include color_vertex>\n\t#include beginnormal_vertex>\n\t#include morphnormal_vertex>\n\t#include skinbase_vertex>\n\t#include skinnormal_vertex>\n\t#include defaultnormal_vertex>\n\t#include begin_vertex>\n\t#include morphtarget_vertex>\n\t#include skinning_vertex>\n\t#include project_vertex>\n\t#include logdepthbuf_vertex>\n\t#include clipping_planes_vertex>\n\t#include worldpos_vertex>\n\t#include envmap_vertex>\n\t#include lights_lambert_vertex>\n\t#include shadowmap_vertex>\n\t#include fog_vertex>\n},meshmatcap_frag:#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include common>\n#include uv_pars_fragment>\n#include map_pars_fragment>\n#include alphamap_pars_fragment>\n#include fog_pars_fragment>\n#include bumpmap_pars_fragment>\n#include normalmap_pars_fragment>\n#include logdepthbuf_pars_fragment>\n#include clipping_planes_pars_fragment>\nvoid main() {\n\t#include clipping_planes_fragment>\n\tvec4 diffuseColor vec4( diffuse, opacity );\n\t#include logdepthbuf_fragment>\n\t#include map_fragment>\n\t#include alphamap_fragment>\n\t#include alphatest_fragment>\n\t#include normal_fragment_begin>\n\t#include normal_fragment_maps>\n\tvec3 viewDir normalize( vViewPosition );\n\tvec3 x normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y cross( viewDir, x );\n\tvec2 uv vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor texture2D( matcap, uv );\n\t\tmatcapColor matcapTexelToLinear( matcapColor );\n\t#else\n\t\tvec4 matcapColor vec4( 1.0 );\n\t#endif\n\tvec3 outgoingLight diffuseColor.rgb * matcapColor.rgb;\n\tgl_FragColor vec4( outgoingLight, diffuseColor.a );\n\t#include premultiplied_alpha_fragment>\n\t#include tonemapping_fragment>\n\t#include encodings_fragment>\n\t#include fog_fragment>\n},meshmatcap_vert:#define MATCAP\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include common>\n#include uv_pars_vertex>\n#include displacementmap_pars_vertex>\n#include fog_pars_vertex>\n#include morphtarget_pars_vertex>\n#include skinning_pars_vertex>\n#include logdepthbuf_pars_vertex>\n#include clipping_planes_pars_vertex>\nvoid main() {\n\t#include uv_vertex>\n\t#include beginnormal_vertex>\n\t#include morphnormal_vertex>\n\t#include skinbase_vertex>\n\t#include skinnormal_vertex>\n\t#include defaultnormal_vertex>\n\t#ifndef FLAT_SHADED\n\t\tvNormal normalize( transformedNormal );\n\t#endif\n\t#include begin_vertex>\n\t#include morphtarget_vertex>\n\t#include skinning_vertex>\n\t#include displacementmap_vertex>\n\t#include project_vertex>\n\t#include logdepthbuf_vertex>\n\t#include clipping_planes_vertex>\n\t#include fog_vertex>\n\tvViewPosition - mvPosition.xyz;\n},meshphong_frag:#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include common>\n#include packing>\n#include dithering_pars_fragment>\n#include color_pars_fragment>\n#include uv_pars_fragment>\n#include uv2_pars_fragment>\n#include map_pars_fragment>\n#include alphamap_pars_fragment>\n#include aomap_pars_fragment>\n#include lightmap_pars_fragment>\n#include emissivemap_pars_fragment>\n#include envmap_pars_fragment>\n#include gradientmap_pars_fragment>\n#include fog_pars_fragment>\n#include bsdfs>\n#include lights_pars_begin>\n#include lights_phong_pars_fragment>\n#include shadowmap_pars_fragment>\n#include bumpmap_pars_fragment>\n#include normalmap_pars_fragment>\n#include specularmap_pars_fragment>\n#include logdepthbuf_pars_fragment>\n#include clipping_planes_pars_fragment>\nvoid main() {\n\t#include clipping_planes_fragment>\n\tvec4 diffuseColor vec4( diffuse, opacity );\n\tReflectedLight reflectedLight ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance emissive;\n\t#include logdepthbuf_fragment>\n\t#include map_fragment>\n\t#include color_fragment>\n\t#include alphamap_fragment>\n\t#include alphatest_fragment>\n\t#include specularmap_fragment>\n\t#include normal_fragment_begin>\n\t#include normal_fragment_maps>\n\t#include emissivemap_fragment>\n\t#include lights_phong_fragment>\n\t#include lights_fragment_begin>\n\t#include lights_fragment_maps>\n\t#include lights_fragment_end>\n\t#include aomap_fragment>\n\tvec3 outgoingLight reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include envmap_fragment>\n\tgl_FragColor vec4( outgoingLight, diffuseColor.a );\n\t#include tonemapping_fragment>\n\t#include encodings_fragment>\n\t#include fog_fragment>\n\t#include premultiplied_alpha_fragment>\n\t#include dithering_fragment>\n},meshphong_vert:#define PHONG\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include common>\n#include uv_pars_vertex>\n#include uv2_pars_vertex>\n#include displacementmap_pars_vertex>\n#include envmap_pars_vertex>\n#include color_pars_vertex>\n#include fog_pars_vertex>\n#include morphtarget_pars_vertex>\n#include skinning_pars_vertex>\n#include shadowmap_pars_vertex>\n#include logdepthbuf_pars_vertex>\n#include clipping_planes_pars_vertex>\nvoid main() {\n\t#include uv_vertex>\n\t#include uv2_vertex>\n\t#include color_vertex>\n\t#include beginnormal_vertex>\n\t#include morphnormal_vertex>\n\t#include skinbase_vertex>\n\t#include skinnormal_vertex>\n\t#include defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal normalize( transformedNormal );\n#endif\n\t#include begin_vertex>\n\t#include morphtarget_vertex>\n\t#include skinning_vertex>\n\t#include displacementmap_vertex>\n\t#include project_vertex>\n\t#include logdepthbuf_vertex>\n\t#include clipping_planes_vertex>\n\tvViewPosition - mvPosition.xyz;\n\t#include worldpos_vertex>\n\t#include envmap_vertex>\n\t#include shadowmap_vertex>\n\t#include fog_vertex>\n},meshphysical_frag:#define PHYSICAL\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifndef STANDARD\n\tuniform float clearCoat;\n\tuniform float clearCoatRoughness;\n#endif\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include common>\n#include packing>\n#include dithering_pars_fragment>\n#include color_pars_fragment>\n#include uv_pars_fragment>\n#include uv2_pars_fragment>\n#include map_pars_fragment>\n#include alphamap_pars_fragment>\n#include aomap_pars_fragment>\n#include lightmap_pars_fragment>\n#include emissivemap_pars_fragment>\n#include bsdfs>\n#include cube_uv_reflection_fragment>\n#include envmap_pars_fragment>\n#include envmap_physical_pars_fragment>\n#include fog_pars_fragment>\n#include lights_pars_begin>\n#include lights_physical_pars_fragment>\n#include shadowmap_pars_fragment>\n#include bumpmap_pars_fragment>\n#include normalmap_pars_fragment>\n#include roughnessmap_pars_fragment>\n#include metalnessmap_pars_fragment>\n#include logdepthbuf_pars_fragment>\n#include clipping_planes_pars_fragment>\nvoid main() {\n\t#include clipping_planes_fragment>\n\tvec4 diffuseColor vec4( diffuse, opacity );\n\tReflectedLight reflectedLight ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance emissive;\n\t#include logdepthbuf_fragment>\n\t#include map_fragment>\n\t#include color_fragment>\n\t#include alphamap_fragment>\n\t#include alphatest_fragment>\n\t#include roughnessmap_fragment>\n\t#include metalnessmap_fragment>\n\t#include normal_fragment_begin>\n\t#include normal_fragment_maps>\n\t#include emissivemap_fragment>\n\t#include lights_physical_fragment>\n\t#include lights_fragment_begin>\n\t#include lights_fragment_maps>\n\t#include lights_fragment_end>\n\t#include aomap_fragment>\n\tvec3 outgoingLight reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\tgl_FragColor vec4( outgoingLight, diffuseColor.a );\n\t#include tonemapping_fragment>\n\t#include encodings_fragment>\n\t#include fog_fragment>\n\t#include premultiplied_alpha_fragment>\n\t#include dithering_fragment>\n},meshphysical_vert:#define PHYSICAL\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include common>\n#include uv_pars_vertex>\n#include uv2_pars_vertex>\n#include displacementmap_pars_vertex>\n#include color_pars_vertex>\n#include fog_pars_vertex>\n#include morphtarget_pars_vertex>\n#include skinning_pars_vertex>\n#include shadowmap_pars_vertex>\n#include logdepthbuf_pars_vertex>\n#include clipping_planes_pars_vertex>\nvoid main() {\n\t#include uv_vertex>\n\t#include uv2_vertex>\n\t#include color_vertex>\n\t#include beginnormal_vertex>\n\t#include morphnormal_vertex>\n\t#include skinbase_vertex>\n\t#include skinnormal_vertex>\n\t#include defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent normalize( transformedTangent );\n\t\tvBitangent normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif\n\t#include begin_vertex>\n\t#include morphtarget_vertex>\n\t#include skinning_vertex>\n\t#include displacementmap_vertex>\n\t#include project_vertex>\n\t#include logdepthbuf_vertex>\n\t#include clipping_planes_vertex>\n\tvViewPosition - mvPosition.xyz;\n\t#include worldpos_vertex>\n\t#include shadowmap_vertex>\n\t#include fog_vertex>\n},normal_frag:#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || ( defined( USE_NORMALMAP ) && ! defined( OBJECTSPACE_NORMALMAP ) )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include packing>\n#include uv_pars_fragment>\n#include bumpmap_pars_fragment>\n#include normalmap_pars_fragment>\n#include logdepthbuf_pars_fragment>\nvoid main() {\n\t#include logdepthbuf_fragment>\n\t#include normal_fragment_begin>\n\t#include normal_fragment_maps>\n\tgl_FragColor vec4( packNormalToRGB( normal ), opacity );\n},normal_vert:#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || ( defined( USE_NORMALMAP ) && ! defined( OBJECTSPACE_NORMALMAP ) )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include uv_pars_vertex>\n#include displacementmap_pars_vertex>\n#include morphtarget_pars_vertex>\n#include skinning_pars_vertex>\n#include logdepthbuf_pars_vertex>\nvoid main() {\n\t#include uv_vertex>\n\t#include beginnormal_vertex>\n\t#include morphnormal_vertex>\n\t#include skinbase_vertex>\n\t#include skinnormal_vertex>\n\t#include defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent normalize( transformedTangent );\n\t\tvBitangent normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif\n\t#include begin_vertex>\n\t#include morphtarget_vertex>\n\t#include skinning_vertex>\n\t#include displacementmap_vertex>\n\t#include project_vertex>\n\t#include logdepthbuf_vertex>\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || ( defined( USE_NORMALMAP ) && ! defined( OBJECTSPACE_NORMALMAP ) )\n\tvViewPosition - mvPosition.xyz;\n#endif\n},points_frag:uniform vec3 diffuse;\nuniform float opacity;\n#include common>\n#include color_pars_fragment>\n#include map_particle_pars_fragment>\n#include fog_pars_fragment>\n#include logdepthbuf_pars_fragment>\n#include clipping_planes_pars_fragment>\nvoid main() {\n\t#include clipping_planes_fragment>\n\tvec3 outgoingLight vec3( 0.0 );\n\tvec4 diffuseColor vec4( diffuse, opacity );\n\t#include logdepthbuf_fragment>\n\t#include map_particle_fragment>\n\t#include color_fragment>\n\t#include alphatest_fragment>\n\toutgoingLight diffuseColor.rgb;\n\tgl_FragColor vec4( outgoingLight, diffuseColor.a );\n\t#include premultiplied_alpha_fragment>\n\t#include tonemapping_fragment>\n\t#include encodings_fragment>\n\t#include fog_fragment>\n},points_vert:uniform float size;\nuniform float scale;\n#include common>\n#include color_pars_vertex>\n#include fog_pars_vertex>\n#include morphtarget_pars_vertex>\n#include logdepthbuf_pars_vertex>\n#include clipping_planes_pars_vertex>\nvoid main() {\n\t#include color_vertex>\n\t#include begin_vertex>\n\t#include morphtarget_vertex>\n\t#include project_vertex>\n\tgl_PointSize size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective ( projectionMatrix 2 3 - 1.0 );\n\t\tif ( isPerspective ) gl_PointSize * ( scale / - mvPosition.z );\n\t#endif\n\t#include logdepthbuf_vertex>\n\t#include clipping_planes_vertex>\n\t#include worldpos_vertex>\n\t#include fog_vertex>\n},shadow_frag:uniform vec3 color;\nuniform float opacity;\n#include common>\n#include packing>\n#include fog_pars_fragment>\n#include bsdfs>\n#include lights_pars_begin>\n#include shadowmap_pars_fragment>\n#include shadowmask_pars_fragment>\nvoid main() {\n\tgl_FragColor vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include fog_fragment>\n},shadow_vert:#include fog_pars_vertex>\n#include shadowmap_pars_vertex>\nvoid main() {\n\t#include begin_vertex>\n\t#include project_vertex>\n\t#include worldpos_vertex>\n\t#include shadowmap_vertex>\n\t#include fog_vertex>\n},sprite_frag:uniform vec3 diffuse;\nuniform float opacity;\n#include common>\n#include uv_pars_fragment>\n#include map_pars_fragment>\n#include fog_pars_fragment>\n#include logdepthbuf_pars_fragment>\n#include clipping_planes_pars_fragment>\nvoid main() {\n\t#include clipping_planes_fragment>\n\tvec3 outgoingLight vec3( 0.0 );\n\tvec4 diffuseColor vec4( diffuse, opacity );\n\t#include logdepthbuf_fragment>\n\t#include map_fragment>\n\t#include alphatest_fragment>\n\toutgoingLight diffuseColor.rgb;\n\tgl_FragColor vec4( outgoingLight, diffuseColor.a );\n\t#include tonemapping_fragment>\n\t#include encodings_fragment>\n\t#include fog_fragment>\n},sprite_vert:uniform float rotation;\nuniform vec2 center;\n#include common>\n#include uv_pars_vertex>\n#include fog_pars_vertex>\n#include logdepthbuf_pars_vertex>\n#include clipping_planes_pars_vertex>\nvoid main() {\n\t#include uv_vertex>\n\tvec4 mvPosition modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x length( vec3( modelMatrix 0 .x, modelMatrix 0 .y, modelMatrix 0 .z ) );\n\tscale.y length( vec3( modelMatrix 1 .x, modelMatrix 1 .y, modelMatrix 1 .z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective ( projectionMatrix 2 3 - 1.0 );\n\t\tif ( isPerspective ) scale * - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy + rotatedPosition;\n\tgl_Position projectionMatrix * mvPosition;\n\t#include logdepthbuf_vertex>\n\t#include clipping_planes_vertex>\n\t#include fog_vertex>\n}},gh{clone:Mb,merge:xa},hh{aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Object.assign(K.prototype,{isColor:!0,r:1,g:1,b:1,set:function(a){a&&a.isColor?this.copy(a):numbertypeof a?this.setHex(a):stringtypeof a&&this.setStyle(a);return this},setScalar:function(a){this.bthis.gthis.ra;return this},setHex:function(a){aMath.floor(a);this.r(a>>16&255)/255;this.g(a>>8&255)/255;this.b(a&255)/255;return this},setRGB:function(a,b,c){this.ra;this.gb;this.bc;return this},setHSL:function(){function a(a,c,d){0>d&&(d+1);1d&&--d;return d1/6?a+6*(c-a)*d:.5>d?c:d2/3?a+6*(c-a)*(2/3-d):a}return function(b,c,d){bH.euclideanModulo(b,1);cH.clamp(c,0,1);dH.clamp(d,0,1);0c?this.rthis.gthis.bd:(c.5>d?d*(1+c):d+c-d*c,d2*d-c,this.ra(d,c,b+1/3),this.ga(d,c,b),this.ba(d,c,b-1/3));return this}}(),setStyle:function(a){function b(b){void 0!b&&1>parseFloat(b)&&console.warn(THREE.Color: Alpha component of +a+ will be ignored.)}var c;if(c/^((?:rgb|hsl)a?)\(\s*(^\)*)\)/.exec(a)){var dc2;switch(c1){case rgb:case rgba:if(c/^(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*(0-9*\.?0-9+)\s*)?$/.exec(d))return this.rMath.min(255,parseInt(c1,10))/255,this.gMath.min(255,parseInt(c2,10))/255,this.bMath.min(255,parseInt(c3,10))/255,b(c5),this;if(c/^(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*(0-9*\.?0-9+)\s*)?$/.exec(d))return this.rMath.min(100,parseInt(c1,10))/100,this.gMath.min(100,parseInt(c2,10))/100,this.bMath.min(100,parseInt(c3,10))/100,b(c5),this;break;case hsl:case hsla:if(c/^(0-9*\.?0-9+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*(0-9*\.?0-9+)\s*)?$/.exec(d)){dparseFloat(c1)/360;var eparseInt(c2,10)/100,fparseInt(c3,10)/100;b(c5);return this.setHSL(d,e,f)}}}else if(c/^#(A-Fa-f0-9+)$/.exec(a)){cc1;dc.length;if(3d)return this.rparseInt(c.charAt(0)+c.charAt(0),16)/255,this.gparseInt(c.charAt(1)+c.charAt(1),16)/255,this.bparseInt(c.charAt(2)+c.charAt(2),16)/255,this;if(6d)return this.rparseInt(c.charAt(0)+c.charAt(1),16)/255,this.gparseInt(c.charAt(2)+c.charAt(3),16)/255,this.bparseInt(c.charAt(4)+c.charAt(5),16)/255,this}a&&0a.length&&(chha,void 0!c?this.setHex(c):console.warn(THREE.Color: Unknown color +a));return this},clone:function(){return new this.constructor(this.r,this.g,this.b)},copy:function(a){this.ra.r;this.ga.g;this.ba.b;return this},copyGammaToLinear:function(a,b){void 0b&&(b2);this.rMath.pow(a.r,b);this.gMath.pow(a.g,b);this.bMath.pow(a.b,b);return this},copyLinearToGamma:function(a,b){void 0b&&(b2);b0b?1/b:1;this.rMath.pow(a.r,b);this.gMath.pow(a.g,b);this.bMath.pow(a.b,b);return this},convertGammaToLinear:function(a){this.copyGammaToLinear(this,a);return this},convertLinearToGamma:function(a){this.copyLinearToGamma(this,a);return this},copySRGBToLinear:function(){function a(a){return.04045>a?.0773993808*a:Math.pow(.9478672986*a+.0521327014,2.4)}return function(b){this.ra(b.r);this.ga(b.g);this.ba(b.b);return this}}(),copyLinearToSRGB:function(){function a(a){return.0031308>a?12.92*a:1.055*Math.pow(a,.41666)-.055}return function(b){this.ra(b.r);this.ga(b.g);this.ba(b.b);return this}}(),convertSRGBToLinear:function(){this.copySRGBToLinear(this);return this},convertLinearToSRGB:function(){this.copyLinearToSRGB(this);return this},getHex:function(){return 255*this.r16^255*this.g8^255*this.b0},getHexString:function(){return(000000+this.getHex().toString(16)).slice(-6)},getHSL:function(a){void 0a&&(console.warn(THREE.Color: .getHSL() target is now required),a{h:0,s:0,l:0});var bthis.r,cthis.g,dthis.b,eMath.max(b,c,d),fMath.min(b,c,d),g,h(f+e)/2;if(fe)fg0;else{var ke-f;f.5>h?k/(e+f):k/(2-e-f);switch(e){case b:g(c-d)/k+(cd?6:0);break;case c:g(d-b)/k+2;break;case d:g(b-c)/k+4}g/6}a.hg;a.sf;a.lh;return a},getStyle:function(){returnrgb(+(255*this.r|0)+,+(255*this.g|0)+,+(255*this.b|0)+)},offsetHSL:function(){var a{};return function(b,c,d){this.getHSL(a);a.h+b;a.s+c;a.l+d;this.setHSL(a.h,a.s,a.l);return this}}(),add:function(a){this.r+a.r;this.g+a.g;this.b+a.b;return this},addColors:function(a,b){this.ra.r+b.r;this.ga.g+b.g;this.ba.b+b.b;return this},addScalar:function(a){this.r+a;this.g+a;this.b+a;return this},sub:function(a){this.rMath.max(0,this.r-a.r);this.gMath.max(0,this.g-a.g);this.bMath.max(0,this.b-a.b);return this},multiply:function(a){this.r*a.r;this.g*a.g;this.b*a.b;return this},multiplyScalar:function(a){this.r*a;this.g*a;this.b*a;return this},lerp:function(a,b){this.r+(a.r-this.r)*b;this.g+(a.g-this.g)*b;this.b+(a.b-this.b)*b;return this},lerpHSL:function(){var a{h:0,s:0,l:0},b{h:0,s:0,l:0};return function(c,d){this.getHSL(a);c.getHSL(b);cH.lerp(a.h,b.h,d);var eH.lerp(a.s,b.s,d);dH.lerp(a.l,b.l,d);this.setHSL(c,e,d);return this}}(),equals:function(a){return a.rthis.r&&a.gthis.g&&a.bthis.b},fromArray:function(a,b){void 0b&&(b0);this.rab;this.gab+1;this.bab+2;return this},toArray:function(a,b){void 0a&&(a);void 0b&&(b0);abthis.r;ab+1this.g;ab+2this.b;return a},toJSON:function(){return this.getHex()}});var I{common:{diffuse:{value:new K(15658734)},opacity:{value:1},map:{value:null},uvTransform:{value:new pa},alphaMap:{value:null}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},refractionRatio:{value:.98},maxMipLevel:{value:0}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new B(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:2.5E-4},fogNear:{value:1},fogFar:{value:2E3},fogColor:{value:new K(16777215)}},lights:{ambientLightColor:{value:},directionalLights:{value:,properties:{direction:{},color:{},shadow:{},shadowBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:},directionalShadowMatrix:{value:},spotLights:{value:,properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{},shadow:{},shadowBias:{},shadowRadius:{},shadowMapSize:{}}},spotShadowMap:{value:},spotShadowMatrix:{value:},pointLights:{value:,properties:{color:{},position:{},decay:{},distance:{},shadow:{},shadowBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:},pointShadowMatrix:{value:},hemisphereLights:{value:,properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:,properties:{color:{},position:{},width:{},height:{}}}},points:{diffuse:{value:new K(15658734)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},uvTransform:{value:new pa}},sprite:{diffuse:{value:new K(15658734)},opacity:{value:1},center:{value:new B(.5,.5)},rotation:{value:0},map:{value:null},uvTransform:{value:new pa}}},Ta{basic:{uniforms:xa(I.common,I.specularmap,I.envmap,I.aomap,I.lightmap,I.fog),vertexShader:U.meshbasic_vert,fragmentShader:U.meshbasic_frag},lambert:{uniforms:xa(I.common,I.specularmap,I.envmap,I.aomap,I.lightmap,I.emissivemap,I.fog,I.lights,{emissive:{value:new K(0)}}),vertexShader:U.meshlambert_vert,fragmentShader:U.meshlambert_frag},phong:{uniforms:xa(I.common,I.specularmap,I.envmap,I.aomap,I.lightmap,I.emissivemap,I.bumpmap,I.normalmap,I.displacementmap,I.gradientmap,I.fog,I.lights,{emissive:{value:new K(0)},specular:{value:new K(1118481)},shininess:{value:30}}),vertexShader:U.meshphong_vert,fragmentShader:U.meshphong_frag},standard:{uniforms:xa(I.common,I.envmap,I.aomap,I.lightmap,I.emissivemap,I.bumpmap,I.normalmap,I.displacementmap,I.roughnessmap,I.metalnessmap,I.fog,I.lights,{emissive:{value:new K(0)},roughness:{value:.5},metalness:{value:.5},envMapIntensity:{value:1}}),vertexShader:U.meshphysical_vert,fragmentShader:U.meshphysical_frag},matcap:{uniforms:xa(I.common,I.bumpmap,I.normalmap,I.displacementmap,I.fog,{matcap:{value:null}}),vertexShader:U.meshmatcap_vert,fragmentShader:U.meshmatcap_frag},points:{uniforms:xa(I.points,I.fog),vertexShader:U.points_vert,fragmentShader:U.points_frag},dashed:{uniforms:xa(I.common,I.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}),vertexShader:U.linedashed_vert,fragmentShader:U.linedashed_frag},depth:{uniforms:xa(I.common,I.displacementmap),vertexShader:U.depth_vert,fragmentShader:U.depth_frag},normal:{uniforms:xa(I.common,I.bumpmap,I.normalmap,I.displacementmap,{opacity:{value:1}}),vertexShader:U.normal_vert,fragmentShader:U.normal_frag},sprite:{uniforms:xa(I.sprite,I.fog),vertexShader:U.sprite_vert,fragmentShader:U.sprite_frag},background:{uniforms:{uvTransform:{value:new pa},t2D:{value:null}},vertexShader:U.background_vert,fragmentShader:U.background_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:U.cube_vert,fragmentShader:U.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:U.equirect_vert,fragmentShader:U.equirect_frag},distanceRGBA:{uniforms:xa(I.common,I.displacementmap,{referencePosition:{value:new n},nearDistance:{value:1},farDistance:{value:1E3}}),vertexShader:U.distanceRGBA_vert,fragmentShader:U.distanceRGBA_frag},shadow:{uniforms:xa(I.lights,I.fog,{color:{value:new K(0)},opacity:{value:1}}),vertexShader:U.shadow_vert,fragmentShader:U.shadow_frag}};Ta.physical{uniforms:xa(Ta.standard.uniforms,{clearCoat:{value:0},clearCoatRoughness:{value:0}}),vertexShader:U.meshphysical_vert,fragmentShader:U.meshphysical_frag};Object.assign(Nb.prototype,{clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.aa.a;this.ba.b;this.ca.c;this.normal.copy(a.normal);this.color.copy(a.color);this.materialIndexa.materialIndex;for(var b0,ca.vertexNormals.length;bc;b++)this.vertexNormalsba.vertexNormalsb.clone();b0;for(ca.vertexColors.length;bc;b++)this.vertexColorsba.vertexColorsb.clone();return this}});ob.RotationOrdersXYZ YZX ZXY XZY YXZ ZYX.split( );ob.DefaultOrderXYZ;Object.defineProperties(ob.prototype,{x:{get:function(){return this._x},set:function(a){this._xa;this.onChangeCallback()}},y:{get:function(){return this._y},set:function(a){this._ya;this.onChangeCallback()}},z:{get:function(){return this._z},set:function(a){this._za;this.onChangeCallback()}},order:{get:function(){return this._order},set:function(a){this._ordera;this.onChangeCallback()}}});Object.assign(ob.prototype,{isEuler:!0,set:function(a,b,c,d){this._xa;this._yb;this._zc;this._orderd||this._order;this.onChangeCallback();return this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._order)},copy:function(a){this._xa._x;this._ya._y;this._za._z;this._ordera._order;this.onChangeCallback();return this},setFromRotationMatrix:function(a,b,c){var dH.clamp,ea.elements;ae0;var fe4,ge8,he1,ke5,me9,le2,qe6;ee10;bb||this._order;XYZb?(this._yMath.asin(d(g,-1,1)),.99999>Math.abs(g)?(this._xMath.atan2(-m,e),this._zMath.atan2(-f,a)):(this._xMath.atan2(q,k),this._z0)):YXZb?(this._xMath.asin(-d(m,-1,1)),.99999>Math.abs(m)?(this._yMath.atan2(g,e),this._zMath.atan2(h,k)):(this._yMath.atan2(-l,a),this._z0)):ZXYb?(this._xMath.asin(d(q,-1,1)),.99999>Math.abs(q)?(this._yMath.atan2(-l,e),this._zMath.atan2(-f,k)):(this._y0,this._zMath.atan2(h,a))):ZYXb?(this._yMath.asin(-d(l,-1,1)),.99999>Math.abs(l)?(this._xMath.atan2(q,e),this._zMath.atan2(h,a)):(this._x0,this._zMath.atan2(-f,k))):YZXb?(this._zMath.asin(d(h,-1,1)),.99999>Math.abs(h)?(this._xMath.atan2(-m,k),this._yMath.atan2(-l,a)):(this._x0,this._yMath.atan2(g,e))):XZYb?(this._zMath.asin(-d(f,-1,1)),.99999>Math.abs(f)?(this._xMath.atan2(q,k),this._yMath.atan2(g,a)):(this._xMath.atan2(-m,e),this._y0)):console.warn(THREE.Euler: .setFromRotationMatrix() given unsupported order: +b);this._orderb;if(!1!c)this.onChangeCallback();return this},setFromQuaternion:function(){var anew J;return function(b,c,d){a.makeRotationFromQuaternion(b);return this.setFromRotationMatrix(a,c,d)}}(),setFromVector3:function(a,b){return this.set(a.x,a.y,a.z,b||this._order)},reorder:function(){var anew aa;return function(b){a.setFromEuler(this);return this.setFromQuaternion(a,b)}}(),equals:function(a){return a._xthis._x&&a._ythis._y&&a._zthis._z&&a._orderthis._order},fromArray:function(a){this._xa0;this._ya1;this._za2;void 0!a3&&(this._ordera3);this.onChangeCallback();return this},toArray:function(a,b){void 0a&&(a);void 0b&&(b0);abthis._x;ab+1this._y;ab+2this._z;ab+3this._order;return a},toVector3:function(a){return a?a.set(this._x,this._y,this._z):new n(this._x,this._y,this._z)},onChange:function(a){this.onChangeCallbacka;return this},onChangeCallback:function(){}});Object.assign(ae.prototype,{set:function(a){this.mask1a|0},enable:function(a){this.maskthis.mask|1a|0},toggle:function(a){this.mask^1a|0},disable:function(a){this.mask&~(1a|0)},test:function(a){return 0!(this.mask&a.mask)}});var Vf0;E.DefaultUpnew n(0,1,0);E.DefaultMatrixAutoUpdate!0;E.prototypeObject.assign(Object.create(ka.prototype),{constructor:E,isObject3D:!0,onBeforeRender:function(){},onAfterRender:function(){},applyMatrix:function(a){this.matrix.multiplyMatrices(a,this.matrix);this.matrix.decompose(this.position,this.quaternion,this.scale)},applyQuaternion:function(a){this.quaternion.premultiply(a);return this},setRotationFromAxisAngle:function(a,b){this.quaternion.setFromAxisAngle(a,b)},setRotationFromEuler:function(a){this.quaternion.setFromEuler(a,!0)},setRotationFromMatrix:function(a){this.quaternion.setFromRotationMatrix(a)},setRotationFromQuaternion:function(a){this.quaternion.copy(a)},rotateOnAxis:function(){var anew aa;return function(b,c){a.setFromAxisAngle(b,c);this.quaternion.multiply(a);return this}}(),rotateOnWorldAxis:function(){var anew aa;return function(b,c){a.setFromAxisAngle(b,c);this.quaternion.premultiply(a);return this}}(),rotateX:function(){var anew n(1,0,0);return function(b){return this.rotateOnAxis(a,b)}}(),rotateY:function(){var anew n(0,1,0);return function(b){return this.rotateOnAxis(a,b)}}(),rotateZ:function(){var anew n(0,0,1);return function(b){return this.rotateOnAxis(a,b)}}(),translateOnAxis:function(){var anew n;return function(b,c){a.copy(b).applyQuaternion(this.quaternion);this.position.add(a.multiplyScalar(c));return this}}(),translateX:function(){var anew n(1,0,0);return function(b){return this.translateOnAxis(a,b)}}(),translateY:function(){var anew n(0,1,0);return function(b){return this.translateOnAxis(a,b)}}(),translateZ:function(){var anew n(0,0,1);return function(b){return this.translateOnAxis(a,b)}}(),localToWorld:function(a){return a.applyMatrix4(this.matrixWorld)},worldToLocal:function(){var anew J;return function(b){return b.applyMatrix4(a.getInverse(this.matrixWorld))}}(),lookAt:function(){var anew aa,bnew J,cnew n,dnew n;return function(e,f,g){e.isVector3?c.copy(e):c.set(e,f,g);ethis.parent;this.updateWorldMatrix(!0,!1);d.setFromMatrixPosition(this.matrixWorld);this.isCamera||this.isLight?b.lookAt(d,c,this.up):b.lookAt(c,d,this.up);this.quaternion.setFromRotationMatrix(b);e&&(b.extractRotation(e.matrixWorld),a.setFromRotationMatrix(b),this.quaternion.premultiply(a.inverse()))}}(),add:function(a){if(1arguments.length){for(var b0;barguments.length;b++)this.add(argumentsb);return this}if(athis)return console.error(THREE.Object3D.add: object cant be added as a child of itself.,a),this;a&&a.isObject3D?(null!a.parent&&a.parent.remove(a),a.parentthis,a.dispatchEvent({type:added}),this.children.push(a)):console.error(THREE.Object3D.add: object not an instance of THREE.Object3D.,a);return this},remove:function(a){if(1arguments.length){for(var b0;barguments.length;b++)this.remove(argumentsb);return this}bthis.children.indexOf(a);-1!b&&(a.parentnull,a.dispatchEvent({type:removed}),this.children.splice(b,1));return this},getObjectById:function(a){return this.getObjectByProperty(id,a)},getObjectByName:function(a){return this.getObjectByProperty(name,a)},getObjectByProperty:function(a,b){if(thisab)return this;for(var c0,dthis.children.length;cd;c++){var ethis.childrenc.getObjectByProperty(a,b);if(void 0!e)return e}},getWorldPosition:function(a){void 0a&&(console.warn(THREE.Object3D: .getWorldPosition() target is now required),anew n);this.updateMatrixWorld(!0);return a.setFromMatrixPosition(this.matrixWorld)},getWorldQuaternion:function(){var anew n,bnew n;return function(c){void 0c&&(console.warn(THREE.Object3D: .getWorldQuaternion() target is now required),cnew aa);this.updateMatrixWorld(!0);this.matrixWorld.decompose(a,c,b);return c}}(),getWorldScale:function(){var anew n,bnew aa;return function(c){void 0c&&(console.warn(THREE.Object3D: .getWorldScale() target is now required),cnew n);this.updateMatrixWorld(!0);this.matrixWorld.decompose(a,b,c);return c}}(),getWorldDirection:function(a){void 0a&&(console.warn(THREE.Object3D: .getWorldDirection() target is now required),anew n);this.updateMatrixWorld(!0);var bthis.matrixWorld.elements;return a.set(b8,b9,b10).normalize()},raycast:function(){},traverse:function(a){a(this);for(var bthis.children,c0,db.length;cd;c++)bc.traverse(a)},traverseVisible:function(a){if(!1!this.visible){a(this);for(var bthis.children,c0,db.length;cd;c++)bc.traverseVisible(a)}},traverseAncestors:function(a){var bthis.parent;null!b&&(a(b),b.traverseAncestors(a))},updateMatrix:function(){this.matrix.compose(this.position,this.quaternion,this.scale);this.matrixWorldNeedsUpdate!0},updateMatrixWorld:function(a){this.matrixAutoUpdate&&this.updateMatrix();if(this.matrixWorldNeedsUpdate||a)nullthis.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorldNeedsUpdate!1,a!0;for(var bthis.children,c0,db.length;cd;c++)bc.updateMatrixWorld(a)},updateWorldMatrix:function(a,b){var cthis.parent;!0a&&null!c&&c.updateWorldMatrix(!0,!1);this.matrixAutoUpdate&&this.updateMatrix();nullthis.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix);if(!0b)for(athis.children,b0,ca.length;bc;b++)ab.updateWorldMatrix(!1,!0)},toJSON:function(a){function b(b,c){void 0bc.uuid&&(bc.uuidc.toJSON(a));return c.uuid}function c(a){var b,c;for(c in a){var dac;delete d.metadata;b.push(d)}return b}var dvoid 0a||stringtypeof a,e{};d&&(a{geometries:{},materials:{},textures:{},images:{},shapes:{}},e.metadata{version:4.5,type:Object,generator:Object3D.toJSON});var f{};f.uuidthis.uuid;f.typethis.type;!this.name&&(f.namethis.name);!0this.castShadow&&(f.castShadow!0);!0this.receiveShadow&&(f.receiveShadow!0);!1this.visible&&(f.visible!1);!1this.frustumCulled&&(f.frustumCulled!1);0!this.renderOrder&&(f.renderOrderthis.renderOrder);{}!JSON.stringify(this.userData)&&(f.userDatathis.userData);f.layersthis.layers.mask;f.matrixthis.matrix.toArray();!1this.matrixAutoUpdate&&(f.matrixAutoUpdate!1);this.isMesh&&0!this.drawMode&&(f.drawModethis.drawMode);if(this.isMesh||this.isLine||this.isPoints){f.geometryb(a.geometries,this.geometry);var gthis.geometry.parameters;if(void 0!g&&void 0!g.shapes)if(gg.shapes,Array.isArray(g))for(var h0,kg.length;hk;h++)b(a.shapes,gh);else b(a.shapes,g)}if(void 0!this.material)if(Array.isArray(this.material)){g;h0;for(kthis.material.length;hk;h++)g.push(b(a.materials,this.materialh));f.materialg}else f.materialb(a.materials,this.material);if(0this.children.length)for(f.children,h0;hthis.children.length;h++)f.children.push(this.childrenh.toJSON(a).object);if(d){dc(a.geometries);hc(a.materials);kc(a.textures);var mc(a.images);gc(a.shapes);0d.length&&(e.geometriesd);0h.length&&(e.materialsh);0k.length&&(e.texturesk);0m.length&&(e.imagesm);0g.length&&(e.shapesg)}e.objectf;return e},clone:function(a){return(new this.constructor).copy(this,a)},copy:function(a,b){void 0b&&(b!0);this.namea.name;this.up.copy(a.up);this.position.copy(a.position);this.quaternion.copy(a.quaternion);this.scale.copy(a.scale);this.matrix.copy(a.matrix);this.matrixWorld.copy(a.matrixWorld);this.matrixAutoUpdatea.matrixAutoUpdate;this.matrixWorldNeedsUpdatea.matrixWorldNeedsUpdate;this.layers.maska.layers.mask;this.visiblea.visible;this.castShadowa.castShadow;this.receiveShadowa.receiveShadow;this.frustumCulleda.frustumCulled;this.renderOrdera.renderOrder;this.userDataJSON.parse(JSON.stringify(a.userData));if(!0b)for(b0;ba.children.length;b++)this.add(a.childrenb.clone());return this}});var Wf0;G.prototypeObject.assign(Object.create(ka.prototype),{constructor:G,isGeometry:!0,applyMatrix:function(a){for(var b(new pa).getNormalMatrix(a),c0,dthis.vertices.length;cd;c++)this.verticesc.applyMatrix4(a);c0;for(dthis.faces.length;cd;c++){athis.facesc;a.normal.applyMatrix3(b).normalize();for(var e0,fa.vertexNormals.length;ef;e++)a.vertexNormalse.applyMatrix3(b).normalize()}null!this.boundingBox&&this.computeBoundingBox();null!this.boundingSphere&&this.computeBoundingSphere();this.normalsNeedUpdatethis.verticesNeedUpdate!0;return this},rotateX:function(){var anew J;return function(b){a.makeRotationX(b);this.applyMatrix(a);return this}}(),rotateY:function(){var anew J;return function(b){a.makeRotationY(b);this.applyMatrix(a);return this}}(),rotateZ:function(){var anew J;return function(b){a.makeRotationZ(b);this.applyMatrix(a);return this}}(),translate:function(){var anew J;return function(b,c,d){a.makeTranslation(b,c,d);this.applyMatrix(a);return this}}(),scale:function(){var anew J;return function(b,c,d){a.makeScale(b,c,d);this.applyMatrix(a);return this}}(),lookAt:function(){var anew E;return function(b){a.lookAt(b);a.updateMatrix();this.applyMatrix(a.matrix)}}(),fromBufferGeometry:function(a){function b(a,b,d,e){var fvoid 0h?:c.colorsa.clone(),c.colorsb.clone(),c.colorsd.clone(),lvoid 0g?:(new n).fromArray(g,3*a),(new n).fromArray(g,3*b),(new n).fromArray(g,3*d);enew Nb(a,b,d,l,f,e);c.faces.push(e);void 0!k&&c.faceVertexUvs0.push((new B).fromArray(k,2*a),(new B).fromArray(k,2*b),(new B).fromArray(k,2*d));void 0!m&&c.faceVertexUvs1.push((new B).fromArray(m,2*a),(new B).fromArray(m,2*b),(new B).fromArray(m,2*d))}var cthis,dnull!a.index?a.index.array:void 0,ea.attributes,fe.position.array,gvoid 0!e.normal?e.normal.array:void 0,hvoid 0!e.color?e.color.array:void 0,kvoid 0!e.uv?e.uv.array:void 0,mvoid 0!e.uv2?e.uv2.array:void 0;void 0!m&&(this.faceVertexUvs1);for(var le0;ef.length;e+3,l+2)c.vertices.push((new n).fromArray(f,e)),void 0!h&&c.colors.push((new K).fromArray(h,e));var qa.groups;if(0q.length)for(e0;eq.length;e++){fqe;var vf.start,tf.count;lv;for(v+t;lv;l+3)void 0!d?b(dl,dl+1,dl+2,f.materialIndex):b(l,l+1,l+2,f.materialIndex)}else if(void 0!d)for(e0;ed.length;e+3)b(de,de+1,de+2);else for(e0;ef.length/3;e+3)b(e,e+1,e+2);this.computeFaceNormals();null!a.boundingBox&&(this.boundingBoxa.boundingBox.clone());null!a.boundingSphere&&(this.boundingSpherea.boundingSphere.clone());return this},center:function(){var anew n;return function(){this.computeBoundingBox();this.boundingBox.getCenter(a).negate();this.translate(a.x,a.y,a.z);return this}}(),normalize:function(){this.computeBoundingSphere();var athis.boundingSphere.center,bthis.boundingSphere.radius;b0b?1:1/b;var cnew J;c.set(b,0,0,-b*a.x,0,b,0,-b*a.y,0,0,b,-b*a.z,0,0,0,1);this.applyMatrix(c);return this},computeFaceNormals:function(){for(var anew n,bnew n,c0,dthis.faces.length;cd;c++){var ethis.facesc,fthis.verticese.a,gthis.verticese.b;a.subVectors(this.verticese.c,g);b.subVectors(f,g);a.cross(b);a.normalize();e.normal.copy(a)}},computeVertexNormals:function(a){void 0a&&(a!0);var b;var cArray(this.vertices.length);var d0;for(bthis.vertices.length;db;d++)cdnew n;if(a){var enew n,fnew n;a0;for(dthis.faces.length;ad;a++){bthis.facesa;var gthis.verticesb.a;var hthis.verticesb.b;var kthis.verticesb.c;e.subVectors(k,h);f.subVectors(g,h);e.cross(f);cb.a.add(e);cb.b.add(e);cb.c.add(e)}}else for(this.computeFaceNormals(),a0,dthis.faces.length;ad;a++)bthis.facesa,cb.a.add(b.normal),cb.b.add(b.normal),cb.c.add(b.normal);d0;for(bthis.vertices.length;db;d++)cd.normalize();a0;for(dthis.faces.length;ad;a++)bthis.facesa,gb.vertexNormals,3g.length?(g0.copy(cb.a),g1.copy(cb.b),g2.copy(cb.c)):(g0cb.a.clone(),g1cb.b.clone(),g2cb.c.clone());0this.faces.length&&(this.normalsNeedUpdate!0)},computeFlatVertexNormals:function(){var a;this.computeFaceNormals();var b0;for(athis.faces.length;ba;b++){var cthis.facesb;var dc.vertexNormals;3d.length?(d0.copy(c.normal),d1.copy(c.normal),d2.copy(c.normal)):(d0c.normal.clone(),d1c.normal.clone(),d2c.normal.clone())}0this.faces.length&&(this.normalsNeedUpdate!0)},computeMorphNormals:function(){var a,b;var c0;for(bthis.faces.length;cb;c++){var dthis.facesc;d.__originalFaceNormal?d.__originalFaceNormal.copy(d.normal):d.__originalFaceNormald.normal.clone();d.__originalVertexNormals||(d.__originalVertexNormals);var e0;for(ad.vertexNormals.length;ea;e++)d.__originalVertexNormalse?d.__originalVertexNormalse.copy(d.vertexNormalse):d.__originalVertexNormalsed.vertexNormalse.clone()}var fnew G;f.facesthis.faces;e0;for(athis.morphTargets.length;ea;e++){if(!this.morphNormalse){this.morphNormalse{};this.morphNormalse.faceNormals;this.morphNormalse.vertexNormals;dthis.morphNormalse.faceNormals;var gthis.morphNormalse.vertexNormals;c0;for(bthis.faces.length;cb;c++){var hnew n;var k{a:new n,b:new n,c:new n};d.push(h);g.push(k)}}gthis.morphNormalse;f.verticesthis.morphTargetse.vertices;f.computeFaceNormals();f.computeVertexNormals();c0;for(bthis.faces.length;cb;c++)dthis.facesc,hg.faceNormalsc,kg.vertexNormalsc,h.copy(d.normal),k.a.copy(d.vertexNormals0),k.b.copy(d.vertexNormals1),k.c.copy(d.vertexNormals2)}c0;for(bthis.faces.length;cb;c++)dthis.facesc,d.normald.__originalFaceNormal,d.vertexNormalsd.__originalVertexNormals},computeBoundingBox:function(){nullthis.boundingBox&&(this.boundingBoxnew Za);this.boundingBox.setFromPoints(this.vertices)},computeBoundingSphere:function(){nullthis.boundingSphere&&(this.boundingSpherenew Ha);this.boundingSphere.setFromPoints(this.vertices)},merge:function(a,b,c){if(a&&a.isGeometry){var d,ethis.vertices.length,fthis.vertices,ga.vertices,hthis.faces,ka.faces,mthis.faceVertexUvs0,la.faceVertexUvs0,qthis.colors,na.colors;void 0c&&(c0);void 0!b&&(d(new pa).getNormalMatrix(b));a0;for(var tg.length;at;a++){var rga.clone();void 0!b&&r.applyMatrix4(b);f.push(r)}a0;for(tn.length;at;a++)q.push(na.clone());a0;for(tk.length;at;a++){gka;var ug.vertexNormals;ng.vertexColors;qnew Nb(g.a+e,g.b+e,g.c+e);q.normal.copy(g.normal);void 0!d&&q.normal.applyMatrix3(d).normalize();b0;for(fu.length;bf;b++)rub.clone(),void 0!d&&r.applyMatrix3(d).normalize(),q.vertexNormals.push(r);q.color.copy(g.color);b0;for(fn.length;bf;b++)rnb,q.vertexColors.push(r.clone());q.materialIndexg.materialIndex+c;h.push(q)}a0;for(tl.length;at;a++)if(cla,d,void 0!c){b0;for(fc.length;bf;b++)d.push(cb.clone());m.push(d)}}else console.error(THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.,a)},mergeMesh:function(a){a&&a.isMesh?(a.matrixAutoUpdate&&a.updateMatrix(),this.merge(a.geometry,a.matrix)):console.error(THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.,a)},mergeVertices:function(){var a{},b,c,dMath.pow(10,4),e;var f0;for(ethis.vertices.length;fe;f++){var gthis.verticesf;gMath.round(g.x*d)+_+Math.round(g.y*d)+_+Math.round(g.z*d);void 0ag?(agf,b.push(this.verticesf),cfb.length-1):cfcag}a;f0;for(ethis.faces.length;fe;f++)for(dthis.facesf,d.acd.a,d.bcd.b,d.ccd.c,dd.a,d.b,d.c,g0;3>g;g++)if(dgd(g+1)%3){a.push(f);break}for(fa.length-1;0f;f--)for(daf,this.faces.splice(d,1),c0,ethis.faceVertexUvs.length;ce;c++)this.faceVertexUvsc.splice(d,1);fthis.vertices.length-b.length;this.verticesb;return f},setFromPoints:function(a){this.vertices;for(var b0,ca.length;bc;b++){var dab;this.vertices.push(new n(d.x,d.y,d.z||0))}return this},sortFacesByMaterialIndex:function(){for(var athis.faces,ba.length,c0;cb;c++)ac._idc;a.sort(function(a,b){return a.materialIndex-b.materialIndex});var dthis.faceVertexUvs0,ethis.faceVertexUvs1,f,g;d&&d.lengthb&&(f);e&&e.lengthb&&(g);for(c0;cb;c++){var hac._id;f&&f.push(dh);g&&g.push(eh)}f&&(this.faceVertexUvs0f);g&&(this.faceVertexUvs1g)},toJSON:function(){function a(a,b,c){return c?a|1b:a&~(1b)}function b(a){var ba.x.toString()+a.y.toString()+a.z.toString();if(void 0!mb)return mb;mbk.length/3;k.push(a.x,a.y,a.z);return mb}function c(a){var ba.r.toString()+a.g.toString()+a.b.toString();if(void 0!qb)return qb;qbl.length;l.push(a.getHex());return qb}function d(a){var ba.x.toString()+a.y.toString();if(void 0!tb)return tb;tbn.length/2;n.push(a.x,a.y);return tb}var e{metadata:{version:4.5,type:Geometry,generator:Geometry.toJSON}};e.uuidthis.uuid;e.typethis.type;!this.name&&(e.namethis.name);if(void 0!this.parameters){var fthis.parameters,g;for(g in f)void 0!fg&&(egfg);return e}f;for(g0;gthis.vertices.length;g++){var hthis.verticesg;f.push(h.x,h.y,h.z)}h;var k,m{},l,q{},n,t{};for(g0;gthis.faces.length;g++){var rthis.facesg,uvoid 0!this.faceVertexUvs0g,w0r.normal.length(),z0r.vertexNormals.length,x1!r.color.r||1!r.color.g||1!r.color.b,D0r.vertexColors.length,y0;ya(y,0,0);ya(y,1,!0);ya(y,2,!1);ya(y,3,u);ya(y,4,w);ya(y,5,z);ya(y,6,x);ya(y,7,D);h.push(y);h.push(r.a,r.b,r.c);h.push(r.materialIndex);u&&(uthis.faceVertexUvs0g,h.push(d(u0),d(u1),d(u2)));w&&h.push(b(r.normal));z&&(wr.vertexNormals,h.push(b(w0),b(w1),b(w2)));x&&h.push(c(r.color));D&&(rr.vertexColors,h.push(c(r0),c(r1),c(r2)))}e.data{};e.data.verticesf;e.data.normalsk;0l.length&&(e.data.colorsl);0n.length&&(e.data.uvsn);e.data.facesh;return e},clone:function(){return(new G).copy(this)},copy:function(a){var b,c,d;this.vertices;this.colors;this.faces;this.faceVertexUvs;this.morphTargets;this.morphNormals;this.skinWeights;this.skinIndices;this.lineDistances;this.boundingSpherethis.boundingBoxnull;this.namea.name;var ea.vertices;var f0;for(be.length;fb;f++)this.vertices.push(ef.clone());ea.colors;f0;for(be.length;fb;f++)this.colors.push(ef.clone());ea.faces;f0;for(be.length;fb;f++)this.faces.push(ef.clone());f0;for(ba.faceVertexUvs.length;fb;f++){var ga.faceVertexUvsf;void 0this.faceVertexUvsf&&(this.faceVertexUvsf);e0;for(cg.length;ec;e++){var hge,k;var m0;for(dh.length;md;m++)k.push(hm.clone());this.faceVertexUvsf.push(k)}}ma.morphTargets;f0;for(bm.length;fb;f++){d{};d.namemf.name;if(void 0!mf.vertices)for(d.vertices,e0,cmf.vertices.length;ec;e++)d.vertices.push(mf.verticese.clone());if(void 0!mf.normals)for(d.normals,e0,cmf.normals.length;ec;e++)d.normals.push(mf.normalse.clone());this.morphTargets.push(d)}ma.morphNormals;f0;for(bm.length;fb;f++){d{};if(void 0!mf.vertexNormals)for(d.vertexNormals,e0,cmf.vertexNormals.length;ec;e++)gmf.vertexNormalse,h{},h.ag.a.clone(),h.bg.b.clone(),h.cg.c.clone(),d.vertexNormals.push(h);if(void 0!mf.faceNormals)for(d.faceNormals,e0,cmf.faceNormals.length;ec;e++)d.faceNormals.push(mf.faceNormalse.clone());this.morphNormals.push(d)}ea.skinWeights;f0;for(be.length;fb;f++)this.skinWeights.push(ef.clone());ea.skinIndices;f0;for(be.length;fb;f++)this.skinIndices.push(ef.clone());ea.lineDistances;f0;for(be.length;fb;f++)this.lineDistances.push(ef);fa.boundingBox;null!f&&(this.boundingBoxf.clone());fa.boundingSphere;null!f&&(this.boundingSpheref.clone());this.elementsNeedUpdatea.elementsNeedUpdate;this.verticesNeedUpdatea.verticesNeedUpdate;this.uvsNeedUpdatea.uvsNeedUpdate;this.normalsNeedUpdatea.normalsNeedUpdate;this.colorsNeedUpdatea.colorsNeedUpdate;this.lineDistancesNeedUpdatea.lineDistancesNeedUpdate;this.groupsNeedUpdatea.groupsNeedUpdate;return this},dispose:function(){this.dispatchEvent({type:dispose})}});Object.defineProperty(P.prototype,needsUpdate,{set:function(a){!0a&&this.version++}});Object.assign(P.prototype,{isBufferAttribute:!0,onUploadCallback:function(){},setArray:function(a){if(Array.isArray(a))throw new TypeError(THREE.BufferAttribute: array should be a Typed Array.);this.countvoid 0!a?a.length/this.itemSize:0;this.arraya;return this},setDynamic:function(a){this.dynamica;return this},copy:function(a){this.namea.name;this.arraynew a.array.constructor(a.array);this.itemSizea.itemSize;this.counta.count;this.normalizeda.normalized;this.dynamica.dynamic;return this},copyAt:function(a,b,c){a*this.itemSize;c*b.itemSize;for(var d0,ethis.itemSize;de;d++)this.arraya+db.arrayc+d;return this},copyArray:function(a){this.array.set(a);return this},copyColorsArray:function(a){for(var bthis.array,c0,d0,ea.length;de;d++){var fad;void 0f&&(console.warn(THREE.BufferAttribute.copyColorsArray(): color is undefined,d),fnew K);bc++f.r;bc++f.g;bc++f.b}return this},copyVector2sArray:function(a){for(var bthis.array,c0,d0,ea.length;de;d++){var fad;void 0f&&(console.warn(THREE.BufferAttribute.copyVector2sArray(): vector is undefined,d),fnew B);bc++f.x;bc++f.y}return this},copyVector3sArray:function(a){for(var bthis.array,c0,d0,ea.length;de;d++){var fad;void 0f&&(console.warn(THREE.BufferAttribute.copyVector3sArray(): vector is undefined,d),fnew n);bc++f.x;bc++f.y;bc++f.z}return this},copyVector4sArray:function(a){for(var bthis.array,c0,d0,ea.length;de;d++){var fad;void 0f&&(console.warn(THREE.BufferAttribute.copyVector4sArray(): vector is undefined,d),fnew ba);bc++f.x;bc++f.y;bc++f.z;bc++f.w}return this},set:function(a,b){void 0b&&(b0);this.array.set(a,b);return this},getX:function(a){return this.arraya*this.itemSize},setX:function(a,b){this.arraya*this.itemSizeb;return this},getY:function(a){return this.arraya*this.itemSize+1},setY:function(a,b){this.arraya*this.itemSize+1b;return this},getZ:function(a){return this.arraya*this.itemSize+2},setZ:function(a,b){this.arraya*this.itemSize+2b;return this},getW:function(a){return this.arraya*this.itemSize+3},setW:function(a,b){this.arraya*this.itemSize+3b;return this},setXY:function(a,b,c){a*this.itemSize;this.arraya+0b;this.arraya+1c;return this},setXYZ:function(a,b,c,d){a*this.itemSize;this.arraya+0b;this.arraya+1c;this.arraya+2d;return this},setXYZW:function(a,b,c,d,e){a*this.itemSize;this.arraya+0b;this.arraya+1c;this.arraya+2d;this.arraya+3e;return this},onUpload:function(a){this.onUploadCallbacka;return this},clone:function(){return(new this.constructor(this.array,this.itemSize)).copy(this)}});uc.prototypeObject.create(P.prototype);uc.prototype.constructoruc;vc.prototypeObject.create(P.prototype);vc.prototype.constructorvc;wc.prototypeObject.create(P.prototype);wc.prototype.constructorwc;xc.prototypeObject.create(P.prototype);xc.prototype.constructorxc;pb.prototypeObject.create(P.prototype);pb.prototype.constructorpb;yc.prototypeObject.create(P.prototype);yc.prototype.constructoryc;qb.prototypeObject.create(P.prototype);qb.prototype.constructorqb;F.prototypeObject.create(P.prototype);F.prototype.constructorF;zc.prototypeObject.create(P.prototype);zc.prototype.constructorzc;Object.assign(Re.prototype,{computeGroups:function(a){var b,cvoid 0;aa.faces;for(var d0;da.length;d++){var ead;if(e.materialIndex!c){ce.materialIndex;void 0!f&&(f.count3*d-f.start,b.push(f));var f{start:3*d,materialIndex:c}}}void 0!f&&(f.count3*d-f.start,b.push(f));this.groupsb},fromGeometry:function(a){var ba.faces,ca.vertices,da.faceVertexUvs,ed0&&0d0.length,fd1&&0d1.length,ga.morphTargets,hg.length;if(0h){var k;for(var m0;mh;m++)km{name:gm.name,data:};this.morphTargets.positionk}var la.morphNormals,ql.length;if(0q){var n;for(m0;mq;m++)nm{name:lm.name,data:};this.morphTargets.normaln}var ta.skinIndices,ra.skinWeights,ut.lengthc.length,wr.lengthc.length;0c.length&&0b.length&&console.error(THREE.DirectGeometry: Faceless geometries are not supported.);for(m0;mb.length;m++){var zbm;this.vertices.push(cz.a,cz.b,cz.c);var xz.vertexNormals;3x.length?this.normals.push(x0,x1,x2):(xz.normal,this.normals.push(x,x,x));xz.vertexColors;3x.length?this.colors.push(x0,x1,x2):(xz.color,this.colors.push(x,x,x));!0e&&(xd0m,void 0!x?this.uvs.push(x0,x1,x2):(console.warn(THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ,m),this.uvs.push(new B,new B,new B)));!0f&&(xd1m,void 0!x?this.uvs2.push(x0,x1,x2):(console.warn(THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ,m),this.uvs2.push(new B,new B,new B)));for(x0;xh;x++){var Dgx.vertices;kx.data.push(Dz.a,Dz.b,Dz.c)}for(x0;xq;x++)Dlx.vertexNormalsm,nx.data.push(D.a,D.b,D.c);u&&this.skinIndices.push(tz.a,tz.b,tz.c);w&&this.skinWeights.push(rz.a,rz.b,rz.c)}this.computeGroups(a);this.verticesNeedUpdatea.verticesNeedUpdate;this.normalsNeedUpdatea.normalsNeedUpdate;this.colorsNeedUpdatea.colorsNeedUpdate;this.uvsNeedUpdatea.uvsNeedUpdate;this.groupsNeedUpdatea.groupsNeedUpdate;return this}});var Xf1;C.prototypeObject.assign(Object.create(ka.prototype),{constructor:C,isBufferGeometry:!0,getIndex:function(){return this.index},setIndex:function(a){Array.isArray(a)?this.indexnew (65535Se(a)?qb:pb)(a,1):this.indexa},addAttribute:function(a,b,c){if(!(b&&b.isBufferAttribute||b&&b.isInterleavedBufferAttribute))return console.warn(THREE.BufferGeometry: .addAttribute() now expects ( name, attribute ).),this.addAttribute(a,new P(b,c));if(indexa)return console.warn(THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute.),this.setIndex(b),this;this.attributesab;return this},getAttribute:function(a){return this.attributesa},removeAttribute:function(a){delete this.attributesa;return this},addGroup:function(a,b,c){this.groups.push({start:a,count:b,materialIndex:void 0!c?c:0})},clearGroups:function(){this.groups},setDrawRange:function(a,b){this.drawRange.starta;this.drawRange.countb},applyMatrix:function(a){var bthis.attributes.position;void 0!b&&(a.applyToBufferAttribute(b),b.needsUpdate!0);var cthis.attributes.normal;void 0!c&&(b(new pa).getNormalMatrix(a),b.applyToBufferAttribute(c),c.needsUpdate!0);cthis.attributes.tangent;void 0!c&&(b(new pa).getNormalMatrix(a),b.applyToBufferAttribute(c),c.needsUpdate!0);null!this.boundingBox&&this.computeBoundingBox();null!this.boundingSphere&&this.computeBoundingSphere();return this},rotateX:function(){var anew J;return function(b){a.makeRotationX(b);this.applyMatrix(a);return this}}(),rotateY:function(){var anew J;return function(b){a.makeRotationY(b);this.applyMatrix(a);return this}}(),rotateZ:function(){var anew J;return function(b){a.makeRotationZ(b);this.applyMatrix(a);return this}}(),translate:function(){var anew J;return function(b,c,d){a.makeTranslation(b,c,d);this.applyMatrix(a);return this}}(),scale:function(){var anew J;return function(b,c,d){a.makeScale(b,c,d);this.applyMatrix(a);return this}}(),lookAt:function(){var anew E;return function(b){a.lookAt(b);a.updateMatrix();this.applyMatrix(a.matrix)}}(),center:function(){var anew n;return function(){this.computeBoundingBox();this.boundingBox.getCenter(a).negate();this.translate(a.x,a.y,a.z);return this}}(),setFromObject:function(a){var ba.geometry;if(a.isPoints||a.isLine){anew F(3*b.vertices.length,3);var cnew F(3*b.colors.length,3);this.addAttribute(position,a.copyVector3sArray(b.vertices));this.addAttribute(color,c.copyColorsArray(b.colors));b.lineDistances&&b.lineDistances.lengthb.vertices.length&&(anew F(b.lineDistances.length,1),this.addAttribute(lineDistance,a.copyArray(b.lineDistances)));null!b.boundingSphere&&(this.boundingSphereb.boundingSphere.clone());null!b.boundingBox&&(this.boundingBoxb.boundingBox.clone())}else a.isMesh&&b&&b.isGeometry&&this.fromGeometry(b);return this},setFromPoints:function(a){for(var b,c0,da.length;cd;c++){var eac;b.push(e.x,e.y,e.z||0)}this.addAttribute(position,new F(b,3));return this},updateFromObject:function(a){var ba.geometry;if(a.isMesh){var cb.__directGeometry;!0b.elementsNeedUpdate&&(cvoid 0,b.elementsNeedUpdate!1);if(void 0c)return this.fromGeometry(b);c.verticesNeedUpdateb.verticesNeedUpdate;c.normalsNeedUpdateb.normalsNeedUpdate;c.colorsNeedUpdateb.colorsNeedUpdate;c.uvsNeedUpdateb.uvsNeedUpdate;c.groupsNeedUpdateb.groupsNeedUpdate;b.verticesNeedUpdate!1;b.normalsNeedUpdate!1;b.colorsNeedUpdate!1;b.uvsNeedUpdate!1;b.groupsNeedUpdate!1;bc}!0b.verticesNeedUpdate&&(cthis.attributes.position,void 0!c&&(c.copyVector3sArray(b.vertices),c.needsUpdate!0),b.verticesNeedUpdate!1);!0b.normalsNeedUpdate&&(cthis.attributes.normal,void 0!c&&(c.copyVector3sArray(b.normals),c.needsUpdate!0),b.normalsNeedUpdate!1);!0b.colorsNeedUpdate&&(cthis.attributes.color,void 0!c&&(c.copyColorsArray(b.colors),c.needsUpdate!0),b.colorsNeedUpdate!1);b.uvsNeedUpdate&&(cthis.attributes.uv,void 0!c&&(c.copyVector2sArray(b.uvs),c.needsUpdate!0),b.uvsNeedUpdate!1);b.lineDistancesNeedUpdate&&(cthis.attributes.lineDistance,void 0!c&&(c.copyArray(b.lineDistances),c.needsUpdate!0),b.lineDistancesNeedUpdate!1);b.groupsNeedUpdate&&(b.computeGroups(a.geometry),this.groupsb.groups,b.groupsNeedUpdate!1);return this},fromGeometry:function(a){a.__directGeometry(new Re).fromGeometry(a);return this.fromDirectGeometry(a.__directGeometry)},fromDirectGeometry:function(a){var bnew Float32Array(3*a.vertices.length);this.addAttribute(position,(new P(b,3)).copyVector3sArray(a.vertices));0a.normals.length&&(bnew Float32Array(3*a.normals.length),this.addAttribute(normal,(new P(b,3)).copyVector3sArray(a.normals)));0a.colors.length&&(bnew Float32Array(3*a.colors.length),this.addAttribute(color,(new P(b,3)).copyColorsArray(a.colors)));0a.uvs.length&&(bnew Float32Array(2*a.uvs.length),this.addAttribute(uv,(new P(b,2)).copyVector2sArray(a.uvs)));0a.uvs2.length&&(bnew Float32Array(2*a.uvs2.length),this.addAttribute(uv2,(new P(b,2)).copyVector2sArray(a.uvs2)));this.groupsa.groups;for(var c in a.morphTargets){b;for(var da.morphTargetsc,e0,fd.length;ef;e++){var gde,hnew F(3*g.data.length,3);h.nameg.name;b.push(h.copyVector3sArray(g.data))}this.morphAttributescb}0a.skinIndices.length&&(cnew F(4*a.skinIndices.length,4),this.addAttribute(skinIndex,c.copyVector4sArray(a.skinIndices)));0a.skinWeights.length&&(cnew F(4*a.skinWeights.length,4),this.addAttribute(skinWeight,c.copyVector4sArray(a.skinWeights)));null!a.boundingSphere&&(this.boundingSpherea.boundingSphere.clone());null!a.boundingBox&&(this.boundingBoxa.boundingBox.clone());return this},computeBoundingBox:function(){nullthis.boundingBox&&(this.boundingBoxnew Za);var athis.attributes.position;void 0!a?this.boundingBox.setFromBufferAttribute(a):this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error(THREE.BufferGeometry.computeBoundingBox: Computed min/max have NaN values. The position attribute is likely to have NaN values.,this)},computeBoundingSphere:function(){var anew Za,bnew n;return function(){nullthis.boundingSphere&&(this.boundingSpherenew Ha);var cthis.attributes.position;if(c){var dthis.boundingSphere.center;a.setFromBufferAttribute(c);a.getCenter(d);for(var e0,f0,gc.count;fg;f++)b.xc.getX(f),b.yc.getY(f),b.zc.getZ(f),eMath.max(e,d.distanceToSquared(b));this.boundingSphere.radiusMath.sqrt(e);isNaN(this.boundingSphere.radius)&&console.error(THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The position attribute is likely to have NaN values.,this)}}}(),computeFaceNormals:function(){},computeVertexNormals:function(){var athis.index,bthis.attributes;if(b.position){var cb.position.array;if(void 0b.normal)this.addAttribute(normal,new P(new Float32Array(c.length),3));else for(var db.normal.array,e0,fd.length;ef;e++)de0;db.normal.array;var gnew n,hnew n,knew n,mnew n,lnew n;if(a){var qa.array;e0;for(fa.count;ef;e+3){a3*qe+0;var v3*qe+1;var t3*qe+2;g.fromArray(c,a);h.fromArray(c,v);k.fromArray(c,t);m.subVectors(k,h);l.subVectors(g,h);m.cross(l);da+m.x;da+1+m.y;da+2+m.z;dv+m.x;dv+1+m.y;dv+2+m.z;dt+m.x;dt+1+m.y;dt+2+m.z}}else for(e0,fc.length;ef;e+9)g.fromArray(c,e),h.fromArray(c,e+3),k.fromArray(c,e+6),m.subVectors(k,h),l.subVectors(g,h),m.cross(l),dem.x,de+1m.y,de+2m.z,de+3m.x,de+4m.y,de+5m.z,de+6m.x,de+7m.y,de+8m.z;this.normalizeNormals();b.normal.needsUpdate!0}},merge:function(a,b){if(a&&a.isBufferGeometry){void 0b&&(b0,console.warn(THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset0. Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge.));var cthis.attributes,d;for(d in c)if(void 0!a.attributesd){var ecd.array,fa.attributesd,gf.array,h0;for(ff.itemSize*b;hg.length;h++,f++)efgh}return this}console.error(THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.,a)},normalizeNormals:function(){var anew n;return function(){for(var bthis.attributes.normal,c0,db.count;cd;c++)a.xb.getX(c),a.yb.getY(c),a.zb.getZ(c),a.normalize(),b.setXYZ(c,a.x,a.y,a.z)}}(),toNonIndexed:function(){function a(a,b){var ca.array;aa.itemSize;for(var dnew c.constructor(b.length*a),e,f0,g0,hb.length;gh;g++){ebg*a;for(var k0;ka;k++)df++ce++}return new P(d,a)}if(nullthis.index)return console.warn(THREE.BufferGeometry.toNonIndexed(): Geometry is already non-indexed.),this;var bnew C,cthis.index.array,dthis.attributes,e;for(e in d){var fde;fa(f,c);b.addAttribute(e,f)}var gthis.morphAttributes;for(e in g){var h,kge;d0;for(var mk.length;dm;d++)fkd,fa(f,c),h.push(f);b.morphAttributeseh}cthis.groups;d0;for(ec.length;de;d++)fcd,b.addGroup(f.start,f.count,f.materialIndex);return b},toJSON:function(){var a{metadata:{version:4.5,type:BufferGeometry,generator:BufferGeometry.toJSON}};a.uuidthis.uuid;a.typethis.type;!this.name&&(a.namethis.name);0Object.keys(this.userData).length&&(a.userDatathis.userData);if(void 0!this.parameters){var bthis.parameters;for(m in b)void 0!bm&&(ambm);return a}a.data{attributes:{}};bthis.index;null!b&&(a.data.index{type:b.array.constructor.name,array:Array.prototype.slice.call(b.array)});var cthis.attributes;for(m in c){bcm;var d{itemSize:b.itemSize,type:b.array.constructor.name,array:Array.prototype.slice.call(b.array),normalized:b.normalized};!b.name&&(d.nameb.name);a.data.attributesmd}c{};var e!1;for(m in this.morphAttributes){for(var fthis.morphAttributesm,g,h0,kf.length;hk;h++)bfh,d{itemSize:b.itemSize,type:b.array.constructor.name,array:Array.prototype.slice.call(b.array),normalized:b.normalized},!b.name&&(d.nameb.name),g.push(d);0g.length&&(cmg,e!0)}e&&(a.data.morphAttributesc);var mthis.groups;0m.length&&(a.data.groupsJSON.parse(JSON.stringify(m)));mthis.boundingSphere;null!m&&(a.data.boundingSphere{center:m.center.toArray(),radius:m.radius});return a},clone:function(){return(new C).copy(this)},copy:function(a){var b;this.indexnull;this.attributes{};this.morphAttributes{};this.groups;this.boundingSpherethis.boundingBoxnull;this.namea.name;var ca.index;null!c&&this.setIndex(c.clone());ca.attributes;for(g in c)this.addAttribute(g,cg.clone());var da.morphAttributes;for(g in d){var e,fdg;c0;for(bf.length;cb;c++)e.push(fc.clone());this.morphAttributesge}var ga.groups;c0;for(bg.length;cb;c++)dgc,this.addGroup(d.start,d.count,d.materialIndex);ga.boundingBox;null!g&&(this.boundingBoxg.clone());ga.boundingSphere;null!g&&(this.boundingSphereg.clone());this.drawRange.starta.drawRange.start;this.drawRange.counta.drawRange.count;this.userDataa.userData;return this},dispose:function(){this.dispatchEvent({type:dispose})}});Ob.prototypeObject.create(G.prototype);Ob.prototype.constructorOb;rb.prototypeObject.create(C.prototype);rb.prototype.constructorrb;Bc.prototypeObject.create(G.prototype);Bc.prototype.constructorBc;sb.prototypeObject.create(C.prototype);sb.prototype.constructorsb;var Yf0;M.prototypeObject.assign(Object.create(ka.prototype),{constructor:M,isMaterial:!0,onBeforeCompile:function(){},setValues:function(a){if(void 0!a)for(var b in a){var cab;if(void 0c)console.warn(THREE.Material: +b+ parameter is undefined.);else if(shadingb)console.warn(THREE.+this.type+: .shading has been removed. Use the boolean .flatShading instead.),this.flatShading1c?!0:!1;else{var dthisb;void 0d?console.warn(THREE.+this.type+: +b+ is not a property of this material.):d&&d.isColor?d.set(c):d&&d.isVector3&&c&&c.isVector3?d.copy(c):thisbc}}},toJSON:function(a){function b(a){var b,c;for(c in a){var dac;delete d.metadata;b.push(d)}return b}var cvoid 0a||stringtypeof a;c&&(a{textures:{},images:{}});var d{metadata:{version:4.5,type:Material,generator:Material.toJSON}};d.uuidthis.uuid;d.typethis.type;!this.name&&(d.namethis.name);this.color&&this.color.isColor&&(d.colorthis.color.getHex());void 0!this.roughness&&(d.roughnessthis.roughness);void 0!this.metalness&&(d.metalnessthis.metalness);this.emissive&&this.emissive.isColor&&(d.emissivethis.emissive.getHex());1!this.emissiveIntensity&&(d.emissiveIntensitythis.emissiveIntensity);this.specular&&this.specular.isColor&&(d.specularthis.specular.getHex());void 0!this.shininess&&(d.shininessthis.shininess);void 0!this.clearCoat&&(d.clearCoatthis.clearCoat);void 0!this.clearCoatRoughness&&(d.clearCoatRoughnessthis.clearCoatRoughness);this.map&&this.map.isTexture&&(d.mapthis.map.toJSON(a).uuid);this.alphaMap&&this.alphaMap.isTexture&&(d.alphaMapthis.alphaMap.toJSON(a).uuid);this.lightMap&&this.lightMap.isTexture&&(d.lightMapthis.lightMap.toJSON(a).uuid);this.aoMap&&this.aoMap.isTexture&&(d.aoMapthis.aoMap.toJSON(a).uuid,d.aoMapIntensitythis.aoMapIntensity);this.bumpMap&&this.bumpMap.isTexture&&(d.bumpMapthis.bumpMap.toJSON(a).uuid,d.bumpScalethis.bumpScale);this.normalMap&&this.normalMap.isTexture&&(d.normalMapthis.normalMap.toJSON(a).uuid,d.normalMapTypethis.normalMapType,d.normalScalethis.normalScale.toArray());this.displacementMap&&this.displacementMap.isTexture&&(d.displacementMapthis.displacementMap.toJSON(a).uuid,d.displacementScalethis.displacementScale,d.displacementBiasthis.displacementBias);this.roughnessMap&&this.roughnessMap.isTexture&&(d.roughnessMapthis.roughnessMap.toJSON(a).uuid);this.metalnessMap&&this.metalnessMap.isTexture&&(d.metalnessMapthis.metalnessMap.toJSON(a).uuid);this.emissiveMap&&this.emissiveMap.isTexture&&(d.emissiveMapthis.emissiveMap.toJSON(a).uuid);this.specularMap&&this.specularMap.isTexture&&(d.specularMapthis.specularMap.toJSON(a).uuid);this.envMap&&this.envMap.isTexture&&(d.envMapthis.envMap.toJSON(a).uuid,d.reflectivitythis.reflectivity,void 0!this.combine&&(d.combinethis.combine),void 0!this.envMapIntensity&&(d.envMapIntensitythis.envMapIntensity));this.gradientMap&&this.gradientMap.isTexture&&(d.gradientMapthis.gradientMap.toJSON(a).uuid);void 0!this.size&&(d.sizethis.size);void 0!this.sizeAttenuation&&(d.sizeAttenuationthis.sizeAttenuation);1!this.blending&&(d.blendingthis.blending);!0this.flatShading&&(d.flatShadingthis.flatShading);0!this.side&&(d.sidethis.side);0!this.vertexColors&&(d.vertexColorsthis.vertexColors);1>this.opacity&&(d.opacitythis.opacity);!0this.transparent&&(d.transparentthis.transparent);d.depthFuncthis.depthFunc;d.depthTestthis.depthTest;d.depthWritethis.depthWrite;0!this.rotation&&(d.rotationthis.rotation);!0this.polygonOffset&&(d.polygonOffset!0);0!this.polygonOffsetFactor&&(d.polygonOffsetFactorthis.polygonOffsetFactor);0!this.polygonOffsetUnits&&(d.polygonOffsetUnitsthis.polygonOffsetUnits);1!this.linewidth&&(d.linewidththis.linewidth);void 0!this.dashSize&&(d.dashSizethis.dashSize);void 0!this.gapSize&&(d.gapSizethis.gapSize);void 0!this.scale&&(d.scalethis.scale);!0this.dithering&&(d.dithering!0);0this.alphaTest&&(d.alphaTestthis.alphaTest);!0this.premultipliedAlpha&&(d.premultipliedAlphathis.premultipliedAlpha);!0this.wireframe&&(d.wireframethis.wireframe);1this.wireframeLinewidth&&(d.wireframeLinewidththis.wireframeLinewidth);round!this.wireframeLinecap&&(d.wireframeLinecapthis.wireframeLinecap);round!this.wireframeLinejoin&&(d.wireframeLinejointhis.wireframeLinejoin);!0this.morphTargets&&(d.morphTargets!0);!0this.skinning&&(d.skinning!0);!1this.visible&&(d.visible!1);{}!JSON.stringify(this.userData)&&(d.userDatathis.userData);c&&(cb(a.textures),ab(a.images),0c.length&&(d.texturesc),0a.length&&(d.imagesa));return d},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.namea.name;this.foga.fog;this.lightsa.lights;this.blendinga.blending;this.sidea.side;this.flatShadinga.flatShading;this.vertexColorsa.vertexColors;this.opacitya.opacity;this.transparenta.transparent;this.blendSrca.blendSrc;this.blendDsta.blendDst;this.blendEquationa.blendEquation;this.blendSrcAlphaa.blendSrcAlpha;this.blendDstAlphaa.blendDstAlpha;this.blendEquationAlphaa.blendEquationAlpha;this.depthFunca.depthFunc;this.depthTesta.depthTest;this.depthWritea.depthWrite;this.colorWritea.colorWrite;this.precisiona.precision;this.polygonOffseta.polygonOffset;this.polygonOffsetFactora.polygonOffsetFactor;this.polygonOffsetUnitsa.polygonOffsetUnits;this.ditheringa.dithering;this.alphaTesta.alphaTest;this.premultipliedAlphaa.premultipliedAlpha;this.visiblea.visible;this.userDataJSON.parse(JSON.stringify(a.userData));this.clipShadowsa.clipShadows;this.clipIntersectiona.clipIntersection;var ba.clippingPlanes,cnull;if(null!b){var db.length;cArray(d);for(var e0;e!d;++e)cebe.clone()}this.clippingPlanesc;this.shadowSidea.shadowSide;return this},dispose:function(){this.dispatchEvent({type:dispose})}});Ca.prototypeObject.create(M.prototype);Ca.prototype.constructorCa;Ca.prototype.isShaderMaterial!0;Ca.prototype.copyfunction(a){M.prototype.copy.call(this,a);this.fragmentShadera.fragmentShader;this.vertexShadera.vertexShader;this.uniformsMb(a.uniforms);this.definesObject.assign({},a.defines);this.wireframea.wireframe;this.wireframeLinewidtha.wireframeLinewidth;this.lightsa.lights;this.clippinga.clipping;this.skinninga.skinning;this.morphTargetsa.morphTargets;this.morphNormalsa.morphNormals;this.extensionsa.extensions;return this};Ca.prototype.toJSONfunction(a){var bM.prototype.toJSON.call(this,a);b.uniforms{};for(var c in this.uniforms){var dthis.uniformsc.value;b.uniformscd&&d.isTexture?{type:t,value:d.toJSON(a).uuid}:d&&d.isColor?{type:c,value:d.getHex()}:d&&d.isVector2?{type:v2,value:d.toArray()}:d&&d.isVector3?{type:v3,value:d.toArray()}:d&&d.isVector4?{type:v4,value:d.toArray()}:d&&d.isMatrix3?{type:m3,value:d.toArray()}:d&&d.isMatrix4?{type:m4,value:d.toArray()}:{value:d}}0Object.keys(this.defines).length&&(b.definesthis.defines);b.vertexShaderthis.vertexShader;b.fragmentShaderthis.fragmentShader;a{};for(var e in this.extensions)!0this.extensionse&&(ae!0);0Object.keys(a).length&&(b.extensionsa);return b};Object.assign(tb.prototype,{set:function(a,b){this.origin.copy(a);this.direction.copy(b);return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.origin.copy(a.origin);this.direction.copy(a.direction);return this},at:function(a,b){void 0b&&(console.warn(THREE.Ray: .at() target is now required),bnew n);return b.copy(this.direction).multiplyScalar(a).add(this.origin)},lookAt:function(a){this.direction.copy(a).sub(this.origin).normalize();return this},recast:function(){var anew n;return function(b){this.origin.copy(this.at(b,a));return this}}(),closestPointToPoint:function(a,b){void 0b&&(console.warn(THREE.Ray: .closestPointToPoint() target is now required),bnew n);b.subVectors(a,this.origin);ab.dot(this.direction);return 0>a?b.copy(this.origin):b.copy(this.direction).multiplyScalar(a).add(this.origin)},distanceToPoint:function(a){return Math.sqrt(this.distanceSqToPoint(a))},distanceSqToPoint:function(){var anew n;return function(b){var ca.subVectors(b,this.origin).dot(this.direction);if(0>c)return this.origin.distanceToSquared(b);a.copy(this.direction).multiplyScalar(c).add(this.origin);return a.distanceToSquared(b)}}(),distanceSqToSegment:function(){var anew n,bnew n,cnew n;return function(d,e,f,g){a.copy(d).add(e).multiplyScalar(.5);b.copy(e).sub(d).normalize();c.copy(this.origin).sub(a);var h.5*d.distanceTo(e),k-this.direction.dot(b),mc.dot(this.direction),l-c.dot(b),nc.lengthSq(),vMath.abs(1-k*k);if(0v){dk*l-m;ek*m-l;var th*v;0d?e>-t?et?(h1/v,d*h,e*h,kd*(d+k*e+2*m)+e*(k*d+e+2*l)+n):(eh,dMath.max(0,-(k*e+m)),k-d*d+e*(e+2*l)+n):(e-h,dMath.max(0,-(k*e+m)),k-d*d+e*(e+2*l)+n):e-t?(dMath.max(0,-(-k*h+m)),e0d?-h:Math.min(Math.max(-h,-l),h),k-d*d+e*(e+2*l)+n):et?(d0,eMath.min(Math.max(-h,-l),h),ke*(e+2*l)+n):(dMath.max(0,-(k*h+m)),e0d?h:Math.min(Math.max(-h,-l),h),k-d*d+e*(e+2*l)+n)}else e0k?-h:h,dMath.max(0,-(k*e+m)),k-d*d+e*(e+2*l)+n;f&&f.copy(this.direction).multiplyScalar(d).add(this.origin);g&&g.copy(b).multiplyScalar(e).add(a);return k}}(),intersectSphere:function(){var anew n;return function(b,c){a.subVectors(b.center,this.origin);var da.dot(this.direction),ea.dot(a)-d*d;bb.radius*b.radius;if(e>b)return null;bMath.sqrt(b-e);ed-b;d+b;return 0>e&&0>d?null:0>e?this.at(d,c):this.at(e,c)}}(),intersectsSphere:function(a){return this.distanceSqToPoint(a.center)a.radius*a.radius},distanceToPlane:function(a){var ba.normal.dot(this.direction);if(0b)return 0a.distanceToPoint(this.origin)?0:null;a-(this.origin.dot(a.normal)+a.constant)/b;return 0a?a:null},intersectPlane:function(a,b){athis.distanceToPlane(a);return nulla?null:this.at(a,b)},intersectsPlane:function(a){var ba.distanceToPoint(this.origin);return 0b||0>a.normal.dot(this.direction)*b?!0:!1},intersectBox:function(a,b){var c1/this.direction.x;var d1/this.direction.y;var e1/this.direction.z,fthis.origin;if(0c){var g(a.min.x-f.x)*c;c*a.max.x-f.x}else g(a.max.x-f.x)*c,c*a.min.x-f.x;if(0d){var h(a.min.y-f.y)*d;d*a.max.y-f.y}else h(a.max.y-f.y)*d,d*a.min.y-f.y;if(g>d||h>c)return null;if(h>g||g!g)gh;if(dc||c!c)cd;0e?(h(a.min.z-f.z)*e,a(a.max.z-f.z)*e):(h(a.max.z-f.z)*e,a(a.min.z-f.z)*e);if(g>a||h>c)return null;if(h>g||g!g)gh;if(ac||c!c)ca;return 0>c?null:this.at(0g?g:c,b)},intersectsBox:function(){var anew n;return function(b){return null!this.intersectBox(b,a)}}(),intersectTriangle:function(){var anew n,bnew n,cnew n,dnew n;return function(e,f,g,h,k){b.subVectors(f,e);c.subVectors(g,e);d.crossVectors(b,c);fthis.direction.dot(d);if(0f){if(h)return null;h1}else if(0>f)h-1,f-f;else return null;a.subVectors(this.origin,e);eh*this.direction.dot(c.crossVectors(a,c));if(0>e)return null;gh*this.direction.dot(b.cross(a));if(0>g||e+g>f)return null;e-h*a.dot(d);return 0>e?null:this.at(e/f,k)}}(),applyMatrix4:function(a){this.origin.applyMatrix4(a);this.direction.transformDirection(a);return this},equals:function(a){return a.origin.equals(this.origin)&&a.direction.equals(this.direction)}});Object.assign(ua,{getNormal:function(){var anew n;return function(b,c,d,e){void 0e&&(console.warn(THREE.Triangle: .getNormal() target is now required),enew n);e.subVectors(d,c);a.subVectors(b,c);e.cross(a);be.lengthSq();return 0b?e.multiplyScalar(1/Math.sqrt(b)):e.set(0,0,0)}}(),getBarycoord:function(){var anew n,bnew n,cnew n;return function(d,e,f,g,h){a.subVectors(g,e);b.subVectors(f,e);c.subVectors(d,e);da.dot(a);ea.dot(b);fa.dot(c);var kb.dot(b);gb.dot(c);var md*k-e*e;void 0h&&(console.warn(THREE.Triangle: .getBarycoord() target is now required),hnew n);if(0m)return h.set(-2,-1,-1);m1/m;k(k*f-e*g)*m;d(d*g-e*f)*m;return h.set(1-k-d,d,k)}}(),containsPoint:function(){var anew n;return function(b,c,d,e){ua.getBarycoord(b,c,d,e,a);return 0a.x&&0a.y&&1>a.x+a.y}}(),getUV:function(){var anew n;return function(b,c,d,e,f,g,h,k){this.getBarycoord(b,c,d,e,a);k.set(0,0);k.addScaledVector(f,a.x);k.addScaledVector(g,a.y);k.addScaledVector(h,a.z);return k}}()});Object.assign(ua.prototype,{set:function(a,b,c){this.a.copy(a);this.b.copy(b);this.c.copy(c);return this},setFromPointsAndIndices:function(a,b,c,d){this.a.copy(ab);this.b.copy(ac);this.c.copy(ad);return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.a.copy(a.a);this.b.copy(a.b);this.c.copy(a.c);return this},getArea:function(){var anew n,bnew n;return function(){a.subVectors(this.c,this.b);b.subVectors(this.a,this.b);return.5*a.cross(b).length()}}(),getMidpoint:function(a){void 0a&&(console.warn(THREE.Triangle: .getMidpoint() target is now required),anew n);return a.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)},getNormal:function(a){return ua.getNormal(this.a,this.b,this.c,a)},getPlane:function(a){void 0a&&(console.warn(THREE.Triangle: .getPlane() target is now required),anew n);return a.setFromCoplanarPoints(this.a,this.b,this.c)},getBarycoord:function(a,b){return ua.getBarycoord(a,this.a,this.b,this.c,b)},containsPoint:function(a){return ua.containsPoint(a,this.a,this.b,this.c)},getUV:function(a,b,c,d,e){return ua.getUV(a,this.a,this.b,this.c,b,c,d,e)},intersectsBox:function(a){return a.intersectsTriangle(this)},closestPointToPoint:function(){var anew n,bnew n,cnew n,dnew n,enew n,fnew n;return function(g,h){void 0h&&(console.warn(THREE.Triangle: .closestPointToPoint() target is now required),hnew n);var kthis.a,mthis.b,lthis.c;a.subVectors(m,k);b.subVectors(l,k);d.subVectors(g,k);var qa.dot(d),vb.dot(d);if(0>q&&0>v)return h.copy(k);e.subVectors(g,m);var ta.dot(e),rb.dot(e);if(0t&&rt)return h.copy(m);var uq*r-t*v;if(0>u&&0q&&0>t)return mq/(q-t),h.copy(k).addScaledVector(a,m);f.subVectors(g,l);ga.dot(f);var wb.dot(f);if(0w&&gw)return h.copy(l);qg*v-q*w;if(0>q&&0v&&0>w)return uv/(v-w),h.copy(k).addScaledVector(b,u);vt*w-g*r;if(0>v&&0r-t&&0g-w)return c.subVectors(l,m),u(r-t)/(r-t+(g-w)),h.copy(m).addScaledVector(c,u);l1/(v+q+u);mq*l;u*l;return h.copy(k).addScaledVector(a,m).addScaledVector(b,u)}}(),equals:function(a){return a.a.equals(this.a)&&a.b.equals(this.b)&&a.c.equals(this.c)}});ya.prototypeObject.create(M.prototype);ya.prototype.constructorya;ya.prototype.isMeshBasicMaterial!0;ya.prototype.copyfunction(a){M.prototype.copy.call(this,a);this.color.copy(a.color);this.mapa.map;this.lightMapa.lightMap;this.lightMapIntensitya.lightMapIntensity;this.aoMapa.aoMap;this.aoMapIntensitya.aoMapIntensity;this.specularMapa.specularMap;this.alphaMapa.alphaMap;this.envMapa.envMap;this.combinea.combine;this.reflectivitya.reflectivity;this.refractionRatioa.refractionRatio;this.wireframea.wireframe;this.wireframeLinewidtha.wireframeLinewidth;this.wireframeLinecapa.wireframeLinecap;this.wireframeLinejoina.wireframeLinejoin;this.skinninga.skinning;this.morphTargetsa.morphTargets;return this};va.prototypeObject.assign(Object.create(E.prototype),{constructor:va,isMesh:!0,setDrawMode:function(a){this.drawModea},copy:function(a){E.prototype.copy.call(this,a);this.drawModea.drawMode;void 0!a.morphTargetInfluences&&(this.morphTargetInfluencesa.morphTargetInfluences.slice());void 0!a.morphTargetDictionary&&(this.morphTargetDictionaryObject.assign({},a.morphTargetDictionary));return this},updateMorphTargets:function(){var athis.geometry;if(a.isBufferGeometry){aa.morphAttributes;var bObject.keys(a);if(0b.length){var cab0;if(void 0!c)for(this.morphTargetInfluences,this.morphTargetDictionary{},a0,bc.length;ab;a++){var dca.name||String(a);this.morphTargetInfluences.push(0);this.morphTargetDictionaryda}}}else aa.morphTargets,void 0!a&&0a.length&&console.error(THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.)},raycast:function(){function a(a,b,c,d,e,f,g,h){if(null(1b.side?d.intersectTriangle(g,f,e,!0,h):d.intersectTriangle(e,f,g,2!b.side,h)))return null;u.copy(h);u.applyMatrix4(a.matrixWorld);bc.ray.origin.distanceTo(u);return bc.near||b>c.far?null:{distance:b,point:u.clone(),object:a}}function b(b,c,d,e,k,m,l,p,n){f.fromBufferAttribute(k,l);g.fromBufferAttribute(k,p);h.fromBufferAttribute(k,n);if(ba(b,c,d,e,f,g,h,r))m&&(q.fromBufferAttribute(m,l),v.fromBufferAttribute(m,p),t.fromBufferAttribute(m,n),b.uvua.getUV(r,f,g,h,q,v,t,new B)),mnew Nb(l,p,n),ua.getNormal(f,g,h,m.normal),b.facem;return b}var cnew J,dnew tb,enew Ha,fnew n,gnew n,hnew n,knew n,mnew n,lnew n,qnew B,vnew B,tnew B,rnew n,unew n;return function(p,n){var uthis.geometry,wthis.material,ythis.matrixWorld;if(void 0!w&&(nullu.boundingSphere&&u.computeBoundingSphere(),e.copy(u.boundingSphere),e.applyMatrix4(y),!1!p.ray.intersectsSphere(e)&&(c.getInverse(y),d.copy(p.ray).applyMatrix4(c),nullu.boundingBox||!1!d.intersectsBox(u.boundingBox))))if(u.isBufferGeometry){var zu.index,Cu.attributes.position,Au.attributes.uv,Fu.groups;uu.drawRange;var E,H;if(null!z)if(Array.isArray(w)){var G0;for(EF.length;GE;G++){var IFG;var LwI.materialIndex;var JMath.max(I.start,u.start);for(HyMath.min(I.start+I.count,u.start+u.count);JH;J+3){yz.getX(J);var Kz.getX(J+1);var Mz.getX(J+2);if(yb(this,L,p,d,C,A,y,K,M))y.faceIndexMath.floor(J/3),y.face.materialIndexI.materialIndex,n.push(y)}}}else for(JMath.max(0,u.start),yMath.min(z.count,u.start+u.count),GJ,Ey;GE;G+3){if(yz.getX(G),Kz.getX(G+1),Mz.getX(G+2),yb(this,w,p,d,C,A,y,K,M))y.faceIndexMath.floor(G/3),n.push(y)}else if(void 0!C)if(Array.isArray(w))for(G0,EF.length;GE;G++)for(IFG,LwI.materialIndex,JMath.max(I.start,u.start),HyMath.min(I.start+I.count,u.start+u.count);JH;J+3){if(yJ,KJ+1,MJ+2,yb(this,L,p,d,C,A,y,K,M))y.faceIndexMath.floor(J/3),y.face.materialIndexI.materialIndex,n.push(y)}else for(JMath.max(0,u.start),yMath.min(C.count,u.start+u.count),GJ,Ey;GE;G+3)if(yG,KG+1,MG+2,yb(this,w,p,d,C,A,y,K,M))y.faceIndexMath.floor(G/3),n.push(y)}else if(u.isGeometry)for(CArray.isArray(w),Au.vertices,Fu.faces,yu.faceVertexUvs0,0y.length&&(zy),L0,JF.length;LJ;L++)if(HFL,yC?wH.materialIndex:w,void 0!y){GAH.a;EAH.b;IAH.c;if(!0y.morphTargets){Ku.morphTargets;Mthis.morphTargetInfluences;f.set(0,0,0);g.set(0,0,0);h.set(0,0,0);for(var P0,RK.length;PR;P++){var SMP;if(0!S){var UKP.vertices;f.addScaledVector(k.subVectors(UH.a,G),S);g.addScaledVector(m.subVectors(UH.b,E),S);h.addScaledVector(l.subVectors(UH.c,I),S)}}f.add(G);g.add(E);h.add(I);Gf;Eg;Ih}if(ya(this,y,p,d,G,E,I,r))z&&zL&&(KzL,q.copy(K0),v.copy(K1),t.copy(K2),y.uvua.getUV(r,G,E,I,q,v,t,new B)),y.faceH,y.faceIndexL,n.push(y)}}}(),clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});$a.prototypeObject.create(V.prototype);$a.prototype.constructor$a;$a.prototype.isCubeTexture!0;Object.defineProperty($a.prototype,images,{get:function(){return this.image},set:function(a){this.imagea}});Qb.prototypeObject.create(V.prototype);Qb.prototype.constructorQb;Qb.prototype.isDataTexture3D!0;var Zenew V,tgnew Qb,$enew $a,Te,Ve,Yenew Float32Array(16),Xenew Float32Array(9),Wenew Float32Array(4);df.prototype.updateCachefunction(a){var bthis.cache;a instanceof Float32Array&&b.length!a.length&&(this.cachenew Float32Array(a.length));ha(b,a)};ef.prototype.setValuefunction(a,b,c){for(var dthis.seq,e0,fd.length;e!f;++e){var gde;g.setValue(a,bg.id,c)}};var ee/(\w\d_+)(\)?(\|\.)?/g;fb.prototype.setValuefunction(a,b,c){bthis.mapb;void 0!b&&b.setValue(a,c,this.renderer)};fb.prototype.setOptionalfunction(a,b,c){bbc;void 0!b&&this.setValue(a,c,b)};fb.uploadfunction(a,b,c,d){for(var e0,fb.length;e!f;++e){var gbe,hcg.id;!1!h.needsUpdate&&g.setValue(a,h.value,d)}};fb.seqWithValuefunction(a,b){for(var c,d0,ea.length;d!e;++d){var fad;f.id in b&&c.push(f)}return c};var Og0,Wg0;gb.prototypeObject.create(M.prototype);gb.prototype.constructorgb;gb.prototype.isMeshDepthMaterial!0;gb.prototype.copyfunction(a){M.prototype.copy.call(this,a);this.depthPackinga.depthPacking;this.skinninga.skinning;this.morphTargetsa.morphTargets;this.mapa.map;this.alphaMapa.alphaMap;this.displacementMapa.displacementMap;this.displacementScalea.displacementScale;this.displacementBiasa.displacementBias;this.wireframea.wireframe;this.wireframeLinewidtha.wireframeLinewidth;return this};hb.prototypeObject.create(M.prototype);hb.prototype.constructorhb;hb.prototype.isMeshDistanceMaterial!0;hb.prototype.copyfunction(a){M.prototype.copy.call(this,a);this.referencePosition.copy(a.referencePosition);this.nearDistancea.nearDistance;this.farDistancea.farDistance;this.skinninga.skinning;this.morphTargetsa.morphTargets;this.mapa.map;this.alphaMapa.alphaMap;this.displacementMapa.displacementMap;this.displacementScalea.displacementScale;this.displacementBiasa.displacementBias;return this};Sb.prototypeObject.assign(Object.create(E.prototype),{constructor:Sb,isGroup:!0});Ua.prototypeObject.assign(Object.create(E.prototype),{constructor:Ua,isCamera:!0,copy:function(a,b){E.prototype.copy.call(this,a,b);this.matrixWorldInverse.copy(a.matrixWorldInverse);this.projectionMatrix.copy(a.projectionMatrix);this.projectionMatrixInverse.copy(a.projectionMatrixInverse);return this},getWorldDirection:function(a){void 0a&&(console.warn(THREE.Camera: .getWorldDirection() target is now required),anew n);this.updateMatrixWorld(!0);var bthis.matrixWorld.elements;return a.set(-b8,-b9,-b10).normalize()},updateMatrixWorld:function(a){E.prototype.updateMatrixWorld.call(this,a);this.matrixWorldInverse.getInverse(this.matrixWorld)},clone:function(){return(new this.constructor).copy(this)}});S.prototypeObject.assign(Object.create(Ua.prototype),{constructor:S,isPerspectiveCamera:!0,copy:function(a,b){Ua.prototype.copy.call(this,a,b);this.fova.fov;this.zooma.zoom;this.neara.near;this.fara.far;this.focusa.focus;this.aspecta.aspect;this.viewnulla.view?null:Object.assign({},a.view);this.filmGaugea.filmGauge;this.filmOffseta.filmOffset;return this},setFocalLength:function(a){a.5*this.getFilmHeight()/a;this.fov2*H.RAD2DEG*Math.atan(a);this.updateProjectionMatrix()},getFocalLength:function(){var aMath.tan(.5*H.DEG2RAD*this.fov);return.5*this.getFilmHeight()/a},getEffectiveFOV:function(){return 2*H.RAD2DEG*Math.atan(Math.tan(.5*H.DEG2RAD*this.fov)/this.zoom)},getFilmWidth:function(){return this.filmGauge*Math.min(this.aspect,1)},getFilmHeight:function(){return this.filmGauge/Math.max(this.aspect,1)},setViewOffset:function(a,b,c,d,e,f){this.aspecta/b;nullthis.view&&(this.view{enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1});this.view.enabled!0;this.view.fullWidtha;this.view.fullHeightb;this.view.offsetXc;this.view.offsetYd;this.view.widthe;this.view.heightf;this.updateProjectionMatrix()},clearViewOffset:function(){null!this.view&&(this.view.enabled!1);this.updateProjectionMatrix()},updateProjectionMatrix:function(){var athis.near,ba*Math.tan(.5*H.DEG2RAD*this.fov)/this.zoom,c2*b,dthis.aspect*c,e-.5*d,fthis.view;if(null!this.view&&this.view.enabled){var gf.fullWidth,hf.fullHeight;e+f.offsetX*d/g;b-f.offsetY*c/h;d*f.width/g;c*f.height/h}fthis.filmOffset;0!f&&(e+a*f/this.getFilmWidth());this.projectionMatrix.makePerspective(e,e+d,b,b-c,a,this.far);this.projectionMatrixInverse.getInverse(this.projectionMatrix)},toJSON:function(a){aE.prototype.toJSON.call(this,a);a.object.fovthis.fov;a.object.zoomthis.zoom;a.object.nearthis.near;a.object.farthis.far;a.object.focusthis.focus;a.object.aspectthis.aspect;null!this.view&&(a.object.viewObject.assign({},this.view));a.object.filmGaugethis.filmGauge;a.object.filmOffsetthis.filmOffset;return a}});Ec.prototypeObject.assign(Object.create(S.prototype),{constructor:Ec,isArrayCamera:!0});var qfnew n,rfnew n;Object.assign(yd.prototype,{isFogExp2:!0,clone:function(){return new yd(this.color,this.density)},toJSON:function(){return{type:FogExp2,color:this.color.getHex(),density:this.density}}});Object.assign(zd.prototype,{isFog:!0,clone:function(){return new zd(this.color,this.near,this.far)},toJSON:function(){return{type:Fog,color:this.color.getHex(),near:this.near,far:this.far}}});Ad.prototypeObject.assign(Object.create(E.prototype),{constructor:Ad,isScene:!0,copy:function(a,b){E.prototype.copy.call(this,a,b);null!a.background&&(this.backgrounda.background.clone());null!a.fog&&(this.foga.fog.clone());null!a.overrideMaterial&&(this.overrideMateriala.overrideMaterial.clone());this.autoUpdatea.autoUpdate;this.matrixAutoUpdatea.matrixAutoUpdate;return this},toJSON:function(a){var bE.prototype.toJSON.call(this,a);null!this.background&&(b.object.backgroundthis.background.toJSON(a));null!this.fog&&(b.object.fogthis.fog.toJSON());return b},dispose:function(){this.dispatchEvent({type:dispose})}});Object.defineProperty(ub.prototype,needsUpdate,{set:function(a){!0a&&this.version++}});Object.assign(ub.prototype,{isInterleavedBuffer:!0,onUploadCallback:function(){},setArray:function(a){if(Array.isArray(a))throw new TypeError(THREE.BufferAttribute: array should be a Typed Array.);this.countvoid 0!a?a.length/this.stride:0;this.arraya;return this},setDynamic:function(a){this.dynamica;return this},copy:function(a){this.arraynew a.array.constructor(a.array);this.counta.count;this.stridea.stride;this.dynamica.dynamic;return this},copyAt:function(a,b,c){a*this.stride;c*b.stride;for(var d0,ethis.stride;de;d++)this.arraya+db.arrayc+d;return this},set:function(a,b){void 0b&&(b0);this.array.set(a,b);return this},clone:function(){return(new this.constructor).copy(this)},onUpload:function(a){this.onUploadCallbacka;return this}});Object.defineProperties(Fc.prototype,{count:{get:function(){return this.data.count}},array:{get:function(){return this.data.array}}});Object.assign(Fc.prototype,{isInterleavedBufferAttribute:!0,setX:function(a,b){this.data.arraya*this.data.stride+this.offsetb;return this},setY:function(a,b){this.data.arraya*this.data.stride+this.offset+1b;return this},setZ:function(a,b){this.data.arraya*this.data.stride+this.offset+2b;return this},setW:function(a,b){this.data.arraya*this.data.stride+this.offset+3b;return this},getX:function(a){return this.data.arraya*this.data.stride+this.offset},getY:function(a){return this.data.arraya*this.data.stride+this.offset+1},getZ:function(a){return this.data.arraya*this.data.stride+this.offset+2},getW:function(a){return this.data.arraya*this.data.stride+this.offset+3},setXY:function(a,b,c){aa*this.data.stride+this.offset;this.data.arraya+0b;this.data.arraya+1c;return this},setXYZ:function(a,b,c,d){aa*this.data.stride+this.offset;this.data.arraya+0b;this.data.arraya+1c;this.data.arraya+2d;return this},setXYZW:function(a,b,c,d,e){aa*this.data.stride+this.offset;this.data.arraya+0b;this.data.arraya+1c;this.data.arraya+2d;this.data.arraya+3e;return this}});jb.prototypeObject.create(M.prototype);jb.prototype.constructorjb;jb.prototype.isSpriteMaterial!0;jb.prototype.copyfunction(a){M.prototype.copy.call(this,a);this.color.copy(a.color);this.mapa.map;this.rotationa.rotation;this.sizeAttenuationa.sizeAttenuation;return this};var Tb;Gc.prototypeObject.assign(Object.create(E.prototype),{constructor:Gc,isSprite:!0,raycast:function(){function a(a,b,c,d,h,k){e.subVectors(a,c).addScalar(.5).multiply(d);void 0!h?(f.xk*e.x-h*e.y,f.yh*e.x+k*e.y):f.copy(e);a.copy(b);a.x+f.x;a.y+f.y;a.applyMatrix4(g)}var bnew n,cnew n,dnew n,enew B,fnew B,gnew J,hnew n,knew n,mnew n,lnew B,qnew B,vnew B;return function(e,f){c.setFromMatrixScale(this.matrixWorld);g.getInverse(this.modelViewMatrix).premultiply(this.matrixWorld);d.setFromMatrixPosition(this.modelViewMatrix);var pthis.material.rotation;if(0!p){var nMath.cos(p);var rMath.sin(p)}pthis.center;a(h.set(-.5,-.5,0),d,p,c,r,n);a(k.set(.5,-.5,0),d,p,c,r,n);a(m.set(.5,.5,0),d,p,c,r,n);l.set(0,0);q.set(1,0);v.set(1,1);var te.ray.intersectTriangle(h,k,m,!1,b);if(nullt&&(a(k.set(-.5,.5,0),d,p,c,r,n),q.set(0,1),te.ray.intersectTriangle(h,m,k,!1,b),nullt))return;re.ray.origin.distanceTo(b);re.near||r>e.far||f.push({distance:r,point:b.clone(),uv:ua.getUV(b,h,k,m,l,q,v,new B),face:null,object:this})}}(),clone:function(){return(new this.constructor(this.material)).copy(this)},copy:function(a){E.prototype.copy.call(this,a);void 0!a.center&&this.center.copy(a.center);return this}});Hc.prototypeObject.assign(Object.create(E.prototype),{constructor:Hc,copy:function(a){E.prototype.copy.call(this,a,!1);aa.levels;for(var b0,ca.length;bc;b++){var dab;this.addLevel(d.object.clone(),d.distance)}return this},addLevel:function(a,b){void 0b&&(b0);bMath.abs(b);for(var cthis.levels,d0;dc.length&&!(bcd.distance);d++);c.splice(d,0,{distance:b,object:a});this.add(a)},getObjectForDistance:function(a){for(var bthis.levels,c1,db.length;cd&&!(abc.distance);c++);return bc-1.object},raycast:function(){var anew n;return function(b,c){a.setFromMatrixPosition(this.matrixWorld);var db.ray.origin.distanceTo(a);this.getObjectForDistance(d).raycast(b,c)}}(),update:function(){var anew n,bnew n;return function(c){var dthis.levels;if(1d.length){a.setFromMatrixPosition(c.matrixWorld);b.setFromMatrixPosition(this.matrixWorld);ca.distanceTo(b);d0.object.visible!0;for(var e1,fd.length;ef;e++)if(c>de.distance)de-1.object.visible!1,de.object.visible!0;else break;for(;ef;e++)de.object.visible!1}}}(),toJSON:function(a){aE.prototype.toJSON.call(this,a);a.object.levels;for(var bthis.levels,c0,db.length;cd;c++){var ebc;a.object.levels.push({object:e.object.uuid,distance:e.distance})}return a}});Ic.prototypeObject.assign(Object.create(va.prototype),{constructor:Ic,isSkinnedMesh:!0,bind:function(a,b){this.skeletona;void 0b&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),bthis.matrixWorld);this.bindMatrix.copy(b);this.bindMatrixInverse.getInverse(b)},pose:function(){this.skeleton.pose()},normalizeSkinWeights:function(){for(var anew ba,bthis.geometry.attributes.skinWeight,c0,db.count;cd;c++){a.xb.getX(c);a.yb.getY(c);a.zb.getZ(c);a.wb.getW(c);var e1/a.manhattanLength();Infinity!e?a.multiplyScalar(e):a.set(1,0,0,0);b.setXYZW(c,a.x,a.y,a.z,a.w)}},updateMatrixWorld:function(a){va.prototype.updateMatrixWorld.call(this,a);attachedthis.bindMode?this.bindMatrixInverse.getInverse(this.matrixWorld):detachedthis.bindMode?this.bindMatrixInverse.getInverse(this.bindMatrix):console.warn(THREE.SkinnedMesh: Unrecognized bindMode: +this.bindMode)},clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});Object.assign(Bd.prototype,{calculateInverses:function(){this.boneInverses;for(var a0,bthis.bones.length;ab;a++){var cnew J;this.bonesa&&c.getInverse(this.bonesa.matrixWorld);this.boneInverses.push(c)}},pose:function(){var a,b;var c0;for(bthis.bones.length;cb;c++)(athis.bonesc)&&a.matrixWorld.getInverse(this.boneInversesc);c0;for(bthis.bones.length;cb;c++)if(athis.bonesc)a.parent&&a.parent.isBone?(a.matrix.getInverse(a.parent.matrixWorld),a.matrix.multiply(a.matrixWorld)):a.matrix.copy(a.matrixWorld),a.matrix.decompose(a.position,a.quaternion,a.scale)},update:function(){var anew J,bnew J;return function(){for(var cthis.bones,dthis.boneInverses,ethis.boneMatrices,fthis.boneTexture,g0,hc.length;gh;g++)a.multiplyMatrices(cg?cg.matrixWorld:b,dg),a.toArray(e,16*g);void 0!f&&(f.needsUpdate!0)}}(),clone:function(){return new Bd(this.bones,this.boneInverses)},getBoneByName:function(a){for(var b0,cthis.bones.length;bc;b++){var dthis.bonesb;if(d.namea)return d}}});ie.prototypeObject.assign(Object.create(E.prototype),{constructor:ie,isBone:!0});R.prototypeObject.create(M.prototype);R.prototype.constructorR;R.prototype.isLineBasicMaterial!0;R.prototype.copyfunction(a){M.prototype.copy.call(this,a);this.color.copy(a.color);this.linewidtha.linewidth;this.linecapa.linecap;this.linejoina.linejoin;return this};da.prototypeObject.assign(Object.create(E.prototype),{constructor:da,isLine:!0,computeLineDistances:function(){var anew n,bnew n;return function(){var cthis.geometry;if(c.isBufferGeometry)if(nullc.index){for(var dc.attributes.position,e0,f1,gd.count;fg;f++)a.fromBufferAttribute(d,f-1),b.fromBufferAttribute(d,f),efef-1,ef+a.distanceTo(b);c.addAttribute(lineDistance,new F(e,1))}else console.warn(THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.);else if(c.isGeometry)for(dc.vertices,ec.lineDistances,e00,f1,gd.length;fg;f++)efef-1,ef+df-1.distanceTo(df);return this}}(),raycast:function(){var anew J,bnew tb,cnew Ha;return function(d,e){var fd.linePrecision,gthis.geometry,hthis.matrixWorld;nullg.boundingSphere&&g.computeBoundingSphere();c.copy(g.boundingSphere);c.applyMatrix4(h);c.radius+f;if(!1!d.ray.intersectsSphere(c)){a.getInverse(h);b.copy(d.ray).applyMatrix4(a);f/(this.scale.x+this.scale.y+this.scale.z)/3;f*f;var knew n,mnew n;hnew n;var lnew n,qthis&&this.isLineSegments?2:1;if(g.isBufferGeometry){var vg.index,tg.attributes.position.array;if(null!v){vv.array;g0;for(var rv.length-1;gr;g+q){var uvg+1;k.fromArray(t,3*vg);m.fromArray(t,3*u);ub.distanceSqToSegment(k,m,l,h);u>f||(l.applyMatrix4(this.matrixWorld),ud.ray.origin.distanceTo(l),ud.near||u>d.far||e.push({distance:u,point:h.clone().applyMatrix4(this.matrixWorld),index:g,face:null,faceIndex:null,object:this}))}}else for(g0,rt.length/3-1;gr;g+q)k.fromArray(t,3*g),m.fromArray(t,3*g+3),ub.distanceSqToSegment(k,m,l,h),u>f||(l.applyMatrix4(this.matrixWorld),ud.ray.origin.distanceTo(l),ud.near||u>d.far||e.push({distance:u,point:h.clone().applyMatrix4(this.matrixWorld),index:g,face:null,faceIndex:null,object:this}))}else if(g.isGeometry)for(kg.vertices,mk.length,g0;gm-1;g+q)ub.distanceSqToSegment(kg,kg+1,l,h),u>f||(l.applyMatrix4(this.matrixWorld),ud.ray.origin.distanceTo(l),ud.near||u>d.far||e.push({distance:u,point:h.clone().applyMatrix4(this.matrixWorld),index:g,face:null,faceIndex:null,object:this}))}}}(),copy:function(a){E.prototype.copy.call(this,a);this.geometry.copy(a.geometry);this.material.copy(a.material);return this},clone:function(){return(new this.constructor).copy(this)}});W.prototypeObject.assign(Object.create(da.prototype),{constructor:W,isLineSegments:!0,computeLineDistances:function(){var anew n,bnew n;return function(){var cthis.geometry;if(c.isBufferGeometry)if(nullc.index){for(var dc.attributes.position,e,f0,gd.count;fg;f+2)a.fromBufferAttribute(d,f),b.fromBufferAttribute(d,f+1),ef0f?0:ef-1,ef+1ef+a.distanceTo(b);c.addAttribute(lineDistance,new F(e,1))}else console.warn(THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.);else if(c.isGeometry)for(dc.vertices,ec.lineDistances,f0,gd.length;fg;f+2)a.copy(df),b.copy(df+1),ef0f?0:ef-1,ef+1ef+a.distanceTo(b);return this}}()});Cd.prototypeObject.assign(Object.create(da.prototype),{constructor:Cd,isLineLoop:!0});Ia.prototypeObject.create(M.prototype);Ia.prototype.constructorIa;Ia.prototype.isPointsMaterial!0;Ia.prototype.copyfunction(a){M.prototype.copy.call(this,a);this.color.copy(a.color);this.mapa.map;this.sizea.size;this.sizeAttenuationa.sizeAttenuation;this.morphTargetsa.morphTargets;return this};Ub.prototypeObject.assign(Object.create(E.prototype),{constructor:Ub,isPoints:!0,raycast:function(){var anew J,bnew tb,cnew Ha;return function(d,e){function f(a,c){var fb.distanceSqToPoint(a);fl&&(b.closestPointToPoint(a,q),q.applyMatrix4(k),ad.ray.origin.distanceTo(q),ad.near||a>d.far||e.push({distance:a,distanceToRay:Math.sqrt(f),point:q.clone(),index:c,face:null,object:g}))}var gthis,hthis.geometry,kthis.matrixWorld,md.params.Points.threshold;nullh.boundingSphere&&h.computeBoundingSphere();c.copy(h.boundingSphere);c.applyMatrix4(k);c.radius+m;if(!1!d.ray.intersectsSphere(c)){a.getInverse(k);b.copy(d.ray).applyMatrix4(a);m/(this.scale.x+this.scale.y+this.scale.z)/3;var lm*m;mnew n;var qnew n;if(h.isBufferGeometry){var vh.index;hh.attributes.position.array;if(null!v){var tv.array;v0;for(var rt.length;vr;v++){var utv;m.fromArray(h,3*u);f(m,u)}}else for(v0,th.length/3;vt;v++)m.fromArray(h,3*v),f(m,v)}else for(mh.vertices,v0,tm.length;vt;v++)f(mv,v)}}}(),clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});je.prototypeObject.assign(Object.create(V.prototype),{constructor:je,isVideoTexture:!0,update:function(){var athis.image;a.readyState>a.HAVE_CURRENT_DATA&&(this.needsUpdate!0)}});Vb.prototypeObject.create(V.prototype);Vb.prototype.constructorVb;Vb.prototype.isCompressedTexture!0;Jc.prototypeObject.create(V.prototype);Jc.prototype.constructorJc;Jc.prototype.isCanvasTexture!0;Kc.prototypeObject.create(V.prototype);Kc.prototype.constructorKc;Kc.prototype.isDepthTexture!0;Wb.prototypeObject.create(C.prototype);Wb.prototype.constructorWb;Lc.prototypeObject.create(G.prototype);Lc.prototype.constructorLc;Xb.prototypeObject.create(C.prototype);Xb.prototype.constructorXb;Mc.prototypeObject.create(G.prototype);Mc.prototype.constructorMc;Aa.prototypeObject.create(C.prototype);Aa.prototype.constructorAa;Nc.prototypeObject.create(G.prototype);Nc.prototype.constructorNc;Yb.prototypeObject.create(Aa.prototype);Yb.prototype.constructorYb;Oc.prototypeObject.create(G.prototype);Oc.prototype.constructorOc;vb.prototypeObject.create(Aa.prototype);vb.prototype.constructorvb;Pc.prototypeObject.create(G.prototype);Pc.prototype.constructorPc;Zb.prototypeObject.create(Aa.prototype);Zb.prototype.constructorZb;Qc.prototypeObject.create(G.prototype);Qc.prototype.constructorQc;$b.prototypeObject.create(Aa.prototype);$b.prototype.constructor$b;Rc.prototypeObject.create(G.prototype);Rc.prototype.constructorRc;wb.prototypeObject.create(C.prototype);wb.prototype.constructorwb;wb.prototype.toJSONfunction(){var aC.prototype.toJSON.call(this);a.paththis.parameters.path.toJSON();return a};Sc.prototypeObject.create(G.prototype);Sc.prototype.constructorSc;ac.prototypeObject.create(C.prototype);ac.prototype.constructorac;Tc.prototypeObject.create(G.prototype);Tc.prototype.constructorTc;bc.prototypeObject.create(C.prototype);bc.prototype.constructorbc;var ih{triangulate:function(a,b,c){cc||2;var db&&b.length,ed?b0*c:a.length,fuf(a,0,e,c,!0),g;if(!f)return g;var h;if(d){var kc;d;var m;var l0;for(mb.length;lm;l++){var nbl*k;var vlm-1?bl+1*k:a.length;nuf(a,n,v,k,!1);nn.next&&(n.steiner!0);d.push(ch(n))}d.sort(ah);for(l0;ld.length;l++){bdl;kf;if(kbh(b,k))bxf(k,b),Vc(b,b.next);fVc(f,f.next)}}if(a.length>80*c){var tha0;var rda1;for(kc;ke;k+c)lak,bak+1,lt&&(tl),br&&(rb),l>h&&(hl),b>d&&(db);hMath.max(h-t,d-r);h0!h?1/h:0}Wc(f,g,c,t,r,h);return g}},ab{area:function(a){for(var ba.length,c0,db-1,e0;eb;de++)c+ad.x*ae.y-ae.x*ad.y;return.5*c},isClockWise:function(a){return 0>ab.area(a)},triangulateShape:function(a,b){var c,d,e;yf(a);zf(c,a);var fa.length;b.forEach(yf);for(a0;ab.length;a++)d.push(f),f+ba.length,zf(c,ba);bih.triangulate(c,d);for(a0;ab.length;a+3)e.push(b.slice(a,a+3));return e}};yb.prototypeObject.create(G.prototype);yb.prototype.constructoryb;yb.prototype.toJSONfunction(){var aG.prototype.toJSON.call(this);return Af(this.parameters.shapes,this.parameters.options,a)};Va.prototypeObject.create(C.prototype);Va.prototype.constructorVa;Va.prototype.toJSONfunction(){var aC.prototype.toJSON.call(this);return Af(this.parameters.shapes,this.parameters.options,a)};var dh{generateTopUV:function(a,b,c,d,e){ab3*d;db3*d+1;var fb3*e;eb3*e+1;returnnew B(b3*c,b3*c+1),new B(a,d),new B(f,e)},generateSideWallUV:function(a,b,c,d,e,f){ab3*c;var gb3*c+1;cb3*c+2;var hb3*d,kb3*d+1;db3*d+2;var mb3*e,lb3*e+1;eb3*e+2;var nb3*f,vb3*f+1;bb3*f+2;return.01>Math.abs(g-k)?new B(a,1-c),new B(h,1-d),new B(m,1-e),new B(n,1-b):new B(g,1-c),new B(k,1-d),new B(l,1-e),new B(v,1-b)}};Yc.prototypeObject.create(G.prototype);Yc.prototype.constructorYc;cc.prototypeObject.create(Va.prototype);cc.prototype.constructorcc;Zc.prototypeObject.create(G.prototype);Zc.prototype.constructorZc;zb.prototypeObject.create(C.prototype);zb.prototype.constructorzb;$c.prototypeObject.create(G.prototype);$c.prototype.constructor$c;dc.prototypeObject.create(C.prototype);dc.prototype.constructordc;ad.prototypeObject.create(G.prototype);ad.prototype.constructorad;ec.prototypeObject.create(C.prototype);ec.prototype.constructorec;Ab.prototypeObject.create(G.prototype);Ab.prototype.constructorAb;Ab.prototype.toJSONfunction(){var aG.prototype.toJSON.call(this);return Bf(this.parameters.shapes,a)};Bb.prototypeObject.create(C.prototype);Bb.prototype.constructorBb;Bb.prototype.toJSONfunction(){var aC.prototype.toJSON.call(this);return Bf(this.parameters.shapes,a)};fc.prototypeObject.create(C.prototype);fc.prototype.constructorfc;Cb.prototypeObject.create(G.prototype);Cb.prototype.constructorCb;bb.prototypeObject.create(C.prototype);bb.prototype.constructorbb;bd.prototypeObject.create(Cb.prototype);bd.prototype.constructorbd;cd.prototypeObject.create(bb.prototype);cd.prototype.constructorcd;dd.prototypeObject.create(G.prototype);dd.prototype.constructordd;gc.prototypeObject.create(C.prototype);gc.prototype.constructorgc;var naObject.freeze({WireframeGeometry:Wb,ParametricGeometry:Lc,ParametricBufferGeometry:Xb,TetrahedronGeometry:Nc,TetrahedronBufferGeometry:Yb,OctahedronGeometry:Oc,OctahedronBufferGeometry:vb,IcosahedronGeometry:Pc,IcosahedronBufferGeometry:Zb,DodecahedronGeometry:Qc,DodecahedronBufferGeometry:$b,PolyhedronGeometry:Mc,PolyhedronBufferGeometry:Aa,TubeGeometry:Rc,TubeBufferGeometry:wb,TorusKnotGeometry:Sc,TorusKnotBufferGeometry:ac,TorusGeometry:Tc,TorusBufferGeometry:bc,TextGeometry:Yc,TextBufferGeometry:cc,SphereGeometry:Zc,SphereBufferGeometry:zb,RingGeometry:$c,RingBufferGeometry:dc,PlaneGeometry:Bc,PlaneBufferGeometry:sb,LatheGeometry:ad,LatheBufferGeometry:ec,ShapeGeometry:Ab,ShapeBufferGeometry:Bb,ExtrudeGeometry:yb,ExtrudeBufferGeometry:Va,EdgesGeometry:fc,ConeGeometry:bd,ConeBufferGeometry:cd,CylinderGeometry:Cb,CylinderBufferGeometry:bb,CircleGeometry:dd,CircleBufferGeometry:gc,BoxGeometry:Ob,BoxBufferGeometry:rb});Db.prototypeObject.create(M.prototype);Db.prototype.constructorDb;Db.prototype.isShadowMaterial!0;Db.prototype.copyfunction(a){M.prototype.copy.call(this,a);this.color.copy(a.color);return this};hc.prototypeObject.create(Ca.prototype);hc.prototype.constructorhc;hc.prototype.isRawShaderMaterial!0;Wa.prototypeObject.create(M.prototype);Wa.prototype.constructorWa;Wa.prototype.isMeshStandardMaterial!0;Wa.prototype.copyfunction(a){M.prototype.copy.call(this,a);this.defines{STANDARD:};this.color.copy(a.color);this.roughnessa.roughness;this.metalnessa.metalness;this.mapa.map;this.lightMapa.lightMap;this.lightMapIntensitya.lightMapIntensity;this.aoMapa.aoMap;this.aoMapIntensitya.aoMapIntensity;this.emissive.copy(a.emissive);this.emissiveMapa.emissiveMap;this.emissiveIntensitya.emissiveIntensity;this.bumpMapa.bumpMap;this.bumpScalea.bumpScale;this.normalMapa.normalMap;this.normalMapTypea.normalMapType;this.normalScale.copy(a.normalScale);this.displacementMapa.displacementMap;this.displacementScalea.displacementScale;this.displacementBiasa.displacementBias;this.roughnessMapa.roughnessMap;this.metalnessMapa.metalnessMap;this.alphaMapa.alphaMap;this.envMapa.envMap;this.envMapIntensitya.envMapIntensity;this.refractionRatioa.refractionRatio;this.wireframea.wireframe;this.wireframeLinewidtha.wireframeLinewidth;this.wireframeLinecapa.wireframeLinecap;this.wireframeLinejoina.wireframeLinejoin;this.skinninga.skinning;this.morphTargetsa.morphTargets;this.morphNormalsa.morphNormals;return this};Eb.prototypeObject.create(Wa.prototype);Eb.prototype.constructorEb;Eb.prototype.isMeshPhysicalMaterial!0;Eb.prototype.copyfunction(a){Wa.prototype.copy.call(this,a);this.defines{PHYSICAL:};this.reflectivitya.reflectivity;this.clearCoata.clearCoat;this.clearCoatRoughnessa.clearCoatRoughness;return this};Ja.prototypeObject.create(M.prototype);Ja.prototype.constructorJa;Ja.prototype.isMeshPhongMaterial!0;Ja.prototype.copyfunction(a){M.prototype.copy.call(this,a);this.color.copy(a.color);this.specular.copy(a.specular);this.shininessa.shininess;this.mapa.map;this.lightMapa.lightMap;this.lightMapIntensitya.lightMapIntensity;this.aoMapa.aoMap;this.aoMapIntensitya.aoMapIntensity;this.emissive.copy(a.emissive);this.emissiveMapa.emissiveMap;this.emissiveIntensitya.emissiveIntensity;this.bumpMapa.bumpMap;this.bumpScalea.bumpScale;this.normalMapa.normalMap;this.normalMapTypea.normalMapType;this.normalScale.copy(a.normalScale);this.displacementMapa.displacementMap;this.displacementScalea.displacementScale;this.displacementBiasa.displacementBias;this.specularMapa.specularMap;this.alphaMapa.alphaMap;this.envMapa.envMap;this.combinea.combine;this.reflectivitya.reflectivity;this.refractionRatioa.refractionRatio;this.wireframea.wireframe;this.wireframeLinewidtha.wireframeLinewidth;this.wireframeLinecapa.wireframeLinecap;this.wireframeLinejoina.wireframeLinejoin;this.skinninga.skinning;this.morphTargetsa.morphTargets;this.morphNormalsa.morphNormals;return this};Fb.prototypeObject.create(Ja.prototype);Fb.prototype.constructorFb;Fb.prototype.isMeshToonMaterial!0;Fb.prototype.copyfunction(a){Ja.prototype.copy.call(this,a);this.gradientMapa.gradientMap;return this};Gb.prototypeObject.create(M.prototype);Gb.prototype.constructorGb;Gb.prototype.isMeshNormalMaterial!0;Gb.prototype.copyfunction(a){M.prototype.copy.call(this,a);this.bumpMapa.bumpMap;this.bumpScalea.bumpScale;this.normalMapa.normalMap;this.normalMapTypea.normalMapType;this.normalScale.copy(a.normalScale);this.displacementMapa.displacementMap;this.displacementScalea.displacementScale;this.displacementBiasa.displacementBias;this.wireframea.wireframe;this.wireframeLinewidtha.wireframeLinewidth;this.skinninga.skinning;this.morphTargetsa.morphTargets;this.morphNormalsa.morphNormals;return this};Hb.prototypeObject.create(M.prototype);Hb.prototype.constructorHb;Hb.prototype.isMeshLambertMaterial!0;Hb.prototype.copyfunction(a){M.prototype.copy.call(this,a);this.color.copy(a.color);this.mapa.map;this.lightMapa.lightMap;this.lightMapIntensitya.lightMapIntensity;this.aoMapa.aoMap;this.aoMapIntensitya.aoMapIntensity;this.emissive.copy(a.emissive);this.emissiveMapa.emissiveMap;this.emissiveIntensitya.emissiveIntensity;this.specularMapa.specularMap;this.alphaMapa.alphaMap;this.envMapa.envMap;this.combinea.combine;this.reflectivitya.reflectivity;this.refractionRatioa.refractionRatio;this.wireframea.wireframe;this.wireframeLinewidtha.wireframeLinewidth;this.wireframeLinecapa.wireframeLinecap;this.wireframeLinejoina.wireframeLinejoin;this.skinninga.skinning;this.morphTargetsa.morphTargets;this.morphNormalsa.morphNormals;return this};Ib.prototypeObject.create(M.prototype);Ib.prototype.constructorIb;Ib.prototype.isMeshMatcapMaterial!0;Ib.prototype.copyfunction(a){M.prototype.copy.call(this,a);this.defines{MATCAP:};this.color.copy(a.color);this.matcapa.matcap;this.mapa.map;this.bumpMapa.bumpMap;this.bumpScalea.bumpScale;this.normalMapa.normalMap;this.normalMapTypea.normalMapType;this.normalScale.copy(a.normalScale);this.displacementMapa.displacementMap;this.displacementScalea.displacementScale;this.displacementBiasa.displacementBias;this.alphaMapa.alphaMap;this.skinninga.skinning;this.morphTargetsa.morphTargets;this.morphNormalsa.morphNormals;return this};Jb.prototypeObject.create(R.prototype);Jb.prototype.constructorJb;Jb.prototype.isLineDashedMaterial!0;Jb.prototype.copyfunction(a){R.prototype.copy.call(this,a);this.scalea.scale;this.dashSizea.dashSize;this.gapSizea.gapSize;return this};var jhObject.freeze({ShadowMaterial:Db,SpriteMaterial:jb,RawShaderMaterial:hc,ShaderMaterial:Ca,PointsMaterial:Ia,MeshPhysicalMaterial:Eb,MeshStandardMaterial:Wa,MeshPhongMaterial:Ja,MeshToonMaterial:Fb,MeshNormalMaterial:Gb,MeshLambertMaterial:Hb,MeshDepthMaterial:gb,MeshDistanceMaterial:hb,MeshBasicMaterial:ya,MeshMatcapMaterial:Ib,LineDashedMaterial:Jb,LineBasicMaterial:R,Material:M}),sa{arraySlice:function(a,b,c){return sa.isTypedArray(a)?new a.constructor(a.subarray(b,void 0!c?c:a.length)):a.slice(b,c)},convertArray:function(a,b,c){return!a||!c&&a.constructorb?a:numbertypeof b.BYTES_PER_ELEMENT?new b(a):Array.prototype.slice.call(a)},isTypedArray:function(a){return ArrayBuffer.isView(a)&&!(a instanceof DataView)},getKeyframeOrder:function(a){for(var ba.length,cArray(b),d0;d!b;++d)cdd;c.sort(function(b,c){return ab-ac});return c},sortedArray:function(a,b,c){for(var da.length,enew a.constructor(d),f0,g0;g!d;++f)for(var hcf*b,k0;k!b;++k)eg++ah+k;return e},flattenJSON:function(a,b,c,d){for(var e1,fa0;void 0!f&&void 0fd;)fae++;if(void 0!f){var gfd;if(void 0!g)if(Array.isArray(g)){do gfd,void 0!g&&(b.push(f.time),c.push.apply(c,g)),fae++;while(void 0!f)}else if(void 0!g.toArray){do gfd,void 0!g&&(b.push(f.time),g.toArray(c,c.length)),fae++;while(void 0!f)}else{do gfd,void 0!g&&(b.push(f.time),c.push(g)),fae++;while(void 0!f)}}}};Object.assign(wa.prototype,{evaluate:function(a){var bthis.parameterPositions,cthis._cachedIndex,dbc,ebc-1;a:{b:{c:{d:if(!(ad)){for(var fc+2;;){if(void 0d){if(ae)break d;this._cachedIndexcb.length;return this.afterEnd_(c-1,a,e)}if(cf)break;ed;db++c;if(ad)break b}db.length;break c}if(a>e)break a;else{fb1;af&&(c2,ef);for(fc-2;;){if(void 0e)return this._cachedIndex0,this.beforeStart_(0,a,d);if(cf)break;de;eb--c-1;if(a>e)break b}dc;c0}}for(;cd;)ec+d>>>1,abe?de:ce+1;dbc;ebc-1;if(void 0e)return this._cachedIndex0,this.beforeStart_(0,a,d);if(void 0d)return this._cachedIndexcb.length,this.afterEnd_(c-1,e,a)}this._cachedIndexc;this.intervalChanged_(c,e,d)}return this.interpolate_(c,e,a,d)},settings:null,DefaultSettings_:{},getSettings_:function(){return this.settings||this.DefaultSettings_},copySampleValue_:function(a){var bthis.resultBuffer,cthis.sampleValues,dthis.valueSize;a*d;for(var e0;e!d;++e)beca+e;return b},interpolate_:function(){throw Error(call to abstract method);},intervalChanged_:function(){}});Object.assign(wa.prototype,{beforeStart_:wa.prototype.copySampleValue_,afterEnd_:wa.prototype.copySampleValue_});Ed.prototypeObject.assign(Object.create(wa.prototype),{constructor:Ed,DefaultSettings_:{endingStart:2400,endingEnd:2400},intervalChanged_:function(a,b,c){var dthis.parameterPositions,ea-2,fa+1,gde,hdf;if(void 0g)switch(this.getSettings_().endingStart){case 2401:ea;g2*b-c;break;case 2402:ed.length-2;gb+de-de+1;break;default:ea,gc}if(void 0h)switch(this.getSettings_().endingEnd){case 2401:fa;h2*c-b;break;case 2402:f1;hc+d1-d0;break;default:fa-1,hb}a.5*(c-b);dthis.valueSize;this._weightPreva/(b-g);this._weightNexta/(h-c);this._offsetPreve*d;this._offsetNextf*d},interpolate_:function(a,b,c,d){var ethis.resultBuffer,fthis.sampleValues,gthis.valueSize;a*g;var ha-g,kthis._offsetPrev,mthis._offsetNext,lthis._weightPrev,nthis._weightNext,v(c-b)/(d-b);cv*v;dc*v;b-l*d+2*l*c-l*v;l(1+l)*d+(-1.5-2*l)*c+(-.5+l)*v+1;v(-1-n)*d+(1.5+n)*c+.5*v;nn*d-n*c;for(c0;c!g;++c)ecb*fk+c+l*fh+c+v*fa+c+n*fm+c;return e}});ed.prototypeObject.assign(Object.create(wa.prototype),{constructor:ed,interpolate_:function(a,b,c,d){var ethis.resultBuffer,fthis.sampleValues,gthis.valueSize;a*g;var ha-g;b(c-b)/(d-b);c1-b;for(d0;d!g;++d)edfh+d*c+fa+d*b;return e}});Fd.prototypeObject.assign(Object.create(wa.prototype),{constructor:Fd,interpolate_:function(a){return this.copySampleValue_(a-1)}});Object.assign(ra,{toJSON:function(a){var ba.constructor;if(void 0!b.toJSON)bb.toJSON(a);else{b{name:a.name,times:sa.convertArray(a.times,Array),values:sa.convertArray(a.values,Array)};var ca.getInterpolation();c!a.DefaultInterpolation&&(b.interpolationc)}b.typea.ValueTypeName;return b}});Object.assign(ra.prototype,{constructor:ra,TimeBufferType:Float32Array,ValueBufferType:Float32Array,DefaultInterpolation:2301,InterpolantFactoryMethodDiscrete:function(a){return new Fd(this.times,this.values,this.getValueSize(),a)},InterpolantFactoryMethodLinear:function(a){return new ed(this.times,this.values,this.getValueSize(),a)},InterpolantFactoryMethodSmooth:function(a){return new Ed(this.times,this.values,this.getValueSize(),a)},setInterpolation:function(a){switch(a){case 2300:var bthis.InterpolantFactoryMethodDiscrete;break;case 2301:bthis.InterpolantFactoryMethodLinear;break;case 2302:bthis.InterpolantFactoryMethodSmooth}if(void 0b){bunsupported interpolation for +this.ValueTypeName+ keyframe track named +this.name;if(void 0this.createInterpolant)if(a!this.DefaultInterpolation)this.setInterpolation(this.DefaultInterpolation);else throw Error(b);console.warn(THREE.KeyframeTrack:,b);return this}this.createInterpolantb;return this},getInterpolation:function(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return 2300;case this.InterpolantFactoryMethodLinear:return 2301;case this.InterpolantFactoryMethodSmooth:return 2302}},getValueSize:function(){return this.values.length/this.times.length},shift:function(a){if(0!a)for(var bthis.times,c0,db.length;c!d;++c)bc+a;return this},scale:function(a){if(1!a)for(var bthis.times,c0,db.length;c!d;++c)bc*a;return this},trim:function(a,b){for(var cthis.times,dc.length,e0,fd-1;e!d&&cea;)++e;for(;-1!f&&cf>b;)--f;++f;if(0!e||f!d)e>f&&(fMath.max(f,1),ef-1),athis.getValueSize(),this.timessa.arraySlice(c,e,f),this.valuessa.arraySlice(this.values,e*a,f*a);return this},validate:function(){var a!0,bthis.getValueSize();0!b-Math.floor(b)&&(console.error(THREE.KeyframeTrack: Invalid value size in track.,this),a!1);var cthis.times;bthis.values;var dc.length;0d&&(console.error(THREE.KeyframeTrack: Track is empty.,this),a!1);for(var enull,f0;f!d;f++){var gcf;if(numbertypeof g&&isNaN(g)){console.error(THREE.KeyframeTrack: Time is not a valid number.,this,f,g);a!1;break}if(null!e&&e>g){console.error(THREE.KeyframeTrack: Out of order keys.,this,f,g,e);a!1;break}eg}if(void 0!b&&sa.isTypedArray(b))for(f0,cb.length;f!c;++f)if(dbf,isNaN(d)){console.error(THREE.KeyframeTrack: Value is not a valid number.,this,f,d);a!1;break}return a},optimize:function(){for(var athis.times,bthis.values,cthis.getValueSize(),d2302this.getInterpolation(),e1,fa.length-1,g1;gf;++g){var h!1,kag;if(k!ag+1&&(1!g||k!k0))if(d)h!0;else{var mg*c,lm-c,nm+c;for(k0;k!c;++k){var vbm+k;if(v!bl+k||v!bn+k){h!0;break}}}if(h){if(g!e)for(aeag,hg*c,me*c,k0;k!c;++k)bm+kbh+k;++e}}if(0f){aeaf;hf*c;me*c;for(k0;k!c;++k)bm+kbh+k;++e}e!a.length&&(this.timessa.arraySlice(a,0,e),this.valuessa.arraySlice(b,0,e*c));return this},clone:function(){var asa.arraySlice(this.times,0),bsa.arraySlice(this.values,0);anew this.constructor(this.name,a,b);a.createInterpolantthis.createInterpolant;return a}});Gd.prototypeObject.assign(Object.create(ra.prototype),{constructor:Gd,ValueTypeName:bool,ValueBufferType:Array,DefaultInterpolation:2300,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0});Hd.prototypeObject.assign(Object.create(ra.prototype),{constructor:Hd,ValueTypeName:color});ic.prototypeObject.assign(Object.create(ra.prototype),{constructor:ic,ValueTypeName:number});Id.prototypeObject.assign(Object.create(wa.prototype),{constructor:Id,interpolate_:function(a,b,c,d){var ethis.resultBuffer,fthis.sampleValues,gthis.valueSize;a*g;b(c-b)/(d-b);for(ca+g;a!c;a+4)aa.slerpFlat(e,0,f,a-g,f,a,b);return e}});fd.prototypeObject.assign(Object.create(ra.prototype),{constructor:fd,ValueTypeName:quaternion,DefaultInterpolation:2301,InterpolantFactoryMethodLinear:function(a){return new Id(this.times,this.values,this.getValueSize(),a)},InterpolantFactoryMethodSmooth:void 0});Jd.prototypeObject.assign(Object.create(ra.prototype),{constructor:Jd,ValueTypeName:string,ValueBufferType:Array,DefaultInterpolation:2300,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0});jc.prototypeObject.assign(Object.create(ra.prototype),{constructor:jc,ValueTypeName:vector});Object.assign(Ga,{parse:function(a){for(var b,ca.tracks,d1/(a.fps||1),e0,fc.length;e!f;++e)b.push(fh(ce).scale(d));return new Ga(a.name,a.duration,b)},toJSON:function(a){var b,ca.tracks;a{name:a.name,duration:a.duration,tracks:b,uuid:a.uuid};for(var d0,ec.length;d!e;++d)b.push(ra.toJSON(cd));return a},CreateFromMorphTargetSequence:function(a,b,c,d){for(var eb.length,f,g0;ge;g++){var h,k;h.push((g+e-1)%e,g,(g+1)%e);k.push(0,1,0);var msa.getKeyframeOrder(h);hsa.sortedArray(h,1,m);ksa.sortedArray(k,1,m);d||0!h0||(h.push(e),k.push(k0));f.push((new ic(.morphTargetInfluences+bg.name+,h,k)).scale(1/c))}return new Ga(a,-1,f)},findByName:function(a,b){var ca;Array.isArray(a)||(ca.geometry&&a.geometry.animations||a.animations);for(a0;ac.length;a++)if(ca.nameb)return ca;return null},CreateClipsFromMorphTargetSequences:function(a,b,c){for(var d{},e/^(\w-*?)(\d+)$/,f0,ga.length;fg;f++){var haf,kh.name.match(e);if(k&&1k.length){var mk1;(kdm)||(dmk);k.push(h)}}a;for(m in d)a.push(Ga.CreateFromMorphTargetSequence(m,dm,b,c));return a},parseAnimation:function(a,b){if(!a)return console.error(THREE.AnimationClip: No animation in JSONLoader data.),null;var cfunction(a,b,c,d,e){if(0!c.length){var f,g;sa.flattenJSON(c,f,g,d);0!f.length&&e.push(new a(b,f,g))}},d,ea.name||default,fa.length||-1,ga.fps||30;aa.hierarchy||;for(var h0;ha.length;h++){var kah.keys;if(k&&0!k.length)if(k0.morphTargets){f{};for(var m0;mk.length;m++)if(km.morphTargets)for(var l0;lkm.morphTargets.length;l++)fkm.morphTargetsl-1;for(var n in f){var v,t;for(l0;l!km.morphTargets.length;++l){var rkm;v.push(r.time);t.push(r.morphTargetn?1:0)}d.push(new ic(.morphTargetInfluence+n+,v,t))}ff.length*(g||1)}else m.bones+bh.name+,c(jc,m+.position,k,pos,d),c(fd,m+.quaternion,k,rot,d),c(jc,m+.scale,k,scl,d)}return 0d.length?null:new Ga(e,f,d)}});Object.assign(Ga.prototype,{resetDuration:function(){for(var a0,b0,cthis.tracks.length;b!c;++b){var dthis.tracksb;aMath.max(a,d.timesd.times.length-1)}this.durationa;return this},trim:function(){for(var a0;athis.tracks.length;a++)this.tracksa.trim(0,this.duration);return this},validate:function(){for(var a!0,b0;bthis.tracks.length;b++)aa&&this.tracksb.validate();return a},optimize:function(){for(var a0;athis.tracks.length;a++)this.tracksa.optimize();return this},clone:function(){for(var a,b0;bthis.tracks.length;b++)a.push(this.tracksb.clone());return new Ga(this.name,this.duration,a)}});var Lb{enabled:!1,files:{},add:function(a,b){!1!this.enabled&&(this.filesab)},get:function(a){if(!1!this.enabled)return this.filesa},remove:function(a){delete this.filesa},clear:function(){this.files{}}},Banew me,Qa{};Object.assign(Ka.prototype,{load:function(a,b,c,d){void 0a&&(a);void 0!this.path&&(athis.path+a);athis.manager.resolveURL(a);var ethis,fLb.get(a);if(void 0!f)return e.manager.itemStart(a),setTimeout(function(){b&&b(f);e.manager.itemEnd(a)},0),f;if(void 0!Qaa)Qaa.push({onLoad:b,onProgress:c,onError:d});else{var ga.match(/^data:(.*?)(;base64)?,(.*)$/);if(g){cg1;var h!!g2;gg3;gdecodeURIComponent(g);h&&(gatob(g));try{var k(this.responseType||).toLowerCase();switch(k){case arraybuffer:case blob:var mnew Uint8Array(g.length);for(h0;hg.length;h++)mhg.charCodeAt(h);var lblobk?new Blob(m.buffer,{type:c}):m.buffer;break;case document:l(new DOMParser).parseFromString(g,c);break;case json:lJSON.parse(g);break;default:lg}setTimeout(function(){b&&b(l);e.manager.itemEnd(a)},0)}catch(v){setTimeout(function(){d&&d(v);e.manager.itemError(a);e.manager.itemEnd(a)},0)}}else{Qaa;Qaa.push({onLoad:b,onProgress:c,onError:d});var nnew XMLHttpRequest;n.open(GET,a,!0);n.addEventListener(load,function(b){var cthis.response;Lb.add(a,c);var dQaa;delete Qaa;if(200this.status||0this.status){0this.status&&console.warn(THREE.FileLoader: HTTP Status 0 received.);for(var f0,gd.length;fg;f++){var hdf;if(h.onLoad)h.onLoad(c)}}else{f0;for(gd.length;fg;f++)if(hdf,h.onError)h.onError(b);e.manager.itemError(a)}e.manager.itemEnd(a)},!1);n.addEventListener(progress,function(b){for(var cQaa,d0,ec.length;de;d++){var fcd;if(f.onProgress)f.onProgress(b)}},!1);n.addEventListener(error,function(b){var cQaa;delete Qaa;for(var d0,fc.length;df;d++){var gcd;if(g.onError)g.onError(b)}e.manager.itemError(a);e.manager.itemEnd(a)},!1);n.addEventListener(abort,function(b){var cQaa;delete Qaa;for(var d0,fc.length;df;d++){var gcd;if(g.onError)g.onError(b)}e.manager.itemError(a);e.manager.itemEnd(a)},!1);void 0!this.responseType&&(n.responseTypethis.responseType);void 0!this.withCredentials&&(n.withCredentialsthis.withCredentials);n.overrideMimeType&&n.overrideMimeType(void 0!this.mimeType?this.mimeType:text/plain);for(h in this.requestHeader)n.setRequestHeader(h,this.requestHeaderh);n.send(null)}e.manager.itemStart(a);return n}},setPath:function(a){this.patha;return this},setResponseType:function(a){this.responseTypea;return this},setWithCredentials:function(a){this.withCredentialsa;return this},setMimeType:function(a){this.mimeTypea;return this},setRequestHeader:function(a){this.requestHeadera;return this}});Object.assign(Cf.prototype,{load:function(a,b,c,d){var ethis,fnew Ka(e.manager);f.setPath(e.path);f.load(a,function(a){b(e.parse(JSON.parse(a)))},c,d)},parse:function(a,b){for(var c,d0;da.length;d++){var eGa.parse(ad);c.push(e)}b(c)},setPath:function(a){this.patha;return this}});Object.assign(Df.prototype,{load:function(a,b,c,d){function e(e){k.load(ae,function(a){af._parser(a,!0);ge{width:a.width,height:a.height,format:a.format,mipmaps:a.mipmaps};m+1;6m&&(1a.mipmapCount&&(h.minFilter1006),h.formata.format,h.needsUpdate!0,b&&b(h))},c,d)}var fthis,g,hnew Vb;h.imageg;var knew Ka(this.manager);k.setPath(this.path);k.setResponseType(arraybuffer);if(Array.isArray(a))for(var m0,l0,na.length;ln;++l)e(l);else k.load(a,function(a){af._parser(a,!0);if(a.isCubemap)for(var ca.mipmaps.length/a.mipmapCount,d0;dc;d++){gd{mipmaps:};for(var e0;ea.mipmapCount;e++)gd.mipmaps.push(a.mipmapsd*a.mipmapCount+e),gd.formata.format,gd.widtha.width,gd.heighta.height}else h.image.widtha.width,h.image.heighta.height,h.mipmapsa.mipmaps;1a.mipmapCount&&(h.minFilter1006);h.formata.format;h.needsUpdate!0;b&&b(h)},c,d);return h},setPath:function(a){this.patha;return this}});Object.assign(ne.prototype,{load:function(a,b,c,d){var ethis,fnew nb,gnew Ka(this.manager);g.setResponseType(arraybuffer);g.setPath(this.path);g.load(a,function(a){if(ae._parser(a))void 0!a.image?f.imagea.image:void 0!a.data&&(f.image.widtha.width,f.image.heighta.height,f.image.dataa.data),f.wrapSvoid 0!a.wrapS?a.wrapS:1001,f.wrapTvoid 0!a.wrapT?a.wrapT:1001,f.magFiltervoid 0!a.magFilter?a.magFilter:1006,f.minFiltervoid 0!a.minFilter?a.minFilter:1008,f.anisotropyvoid 0!a.anisotropy?a.anisotropy:1,void 0!a.format&&(f.formata.format),void 0!a.type&&(f.typea.type),void 0!a.mipmaps&&(f.mipmapsa.mipmaps),1a.mipmapCount&&(f.minFilter1006),f.needsUpdate!0,b&&b(f,a)},c,d);return f},setPath:function(a){this.patha;return this}});Object.assign(gd.prototype,{crossOrigin:anonymous,load:function(a,b,c,d){function e(){k.removeEventListener(load,e,!1);k.removeEventListener(error,f,!1);Lb.add(a,this);b&&b(this);g.manager.itemEnd(a)}function f(b){k.removeEventListener(load,e,!1);k.removeEventListener(error,f,!1);d&&d(b);g.manager.itemError(a);g.manager.itemEnd(a)}void 0a&&(a);void 0!this.path&&(athis.path+a);athis.manager.resolveURL(a);var gthis,hLb.get(a);if(void 0!h)return g.manager.itemStart(a),setTimeout(function(){b&&b(h);g.manager.itemEnd(a)},0),h;var kdocument.createElementNS(http://www.w3.org/1999/xhtml,img);k.addEventListener(load,e,!1);k.addEventListener(error,f,!1);data:!a.substr(0,5)&&void 0!this.crossOrigin&&(k.crossOriginthis.crossOrigin);g.manager.itemStart(a);k.srca;return k},setCrossOrigin:function(a){this.crossOrigina;return this},setPath:function(a){this.patha;return this}});Object.assign(oe.prototype,{crossOrigin:anonymous,load:function(a,b,c,d){function e(c){g.load(ac,function(a){f.imagesca;h++;6h&&(f.needsUpdate!0,b&&b(f))},void 0,d)}var fnew $a,gnew gd(this.manager);g.setCrossOrigin(this.crossOrigin);g.setPath(this.path);var h0;for(c0;ca.length;++c)e(c);return f},setCrossOrigin:function(a){this.crossOrigina;return this},setPath:function(a){this.patha;return this}});Object.assign(Kd.prototype,{crossOrigin:anonymous,load:function(a,b,c,d){var enew V,fnew gd(this.manager);f.setCrossOrigin(this.crossOrigin);f.setPath(this.path);f.load(a,function(c){e.imagec;c0a.search(/\.jpe?g($|\?)/i)||0a.search(/^data:image\/jpeg/);e.formatc?1022:1023;e.needsUpdate!0;void 0!b&&b(e)},c,d);return e},setCrossOrigin:function(a){this.crossOrigina;return this},setPath:function(a){this.patha;return this}});Object.assign(L.prototype,{getPoint:function(){console.warn(THREE.Curve: .getPoint() not implemented.);return null},getPointAt:function(a,b){athis.getUtoTmapping(a);return this.getPoint(a,b)},getPoints:function(a){void 0a&&(a5);for(var b,c0;ca;c++)b.push(this.getPoint(c/a));return b},getSpacedPoints:function(a){void 0a&&(a5);for(var b,c0;ca;c++)b.push(this.getPointAt(c/a));return b},getLength:function(){var athis.getLengths();return aa.length-1},getLengths:function(a){void 0a&&(athis.arcLengthDivisions);if(this.cacheArcLengths&&this.cacheArcLengths.lengtha+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate!1;var b,cthis.getPoint(0),d,e0;b.push(0);for(d1;da;d++){var fthis.getPoint(d/a);e+f.distanceTo(c);b.push(e);cf}return this.cacheArcLengthsb},updateArcLengths:function(){this.needsUpdate!0;this.getLengths()},getUtoTmapping:function(a,b){var cthis.getLengths(),dc.length;bb?b:a*cd-1;for(var e0,fd-1,g;ef;)if(aMath.floor(e+(f-e)/2),gca-b,0>g)ea+1;else if(0g)fa-1;else{fa;break}af;if(cab)return a/(d-1);eca;return(a+(b-e)/(ca+1-e))/(d-1)},getTangent:function(a){var ba-1E-4;a+1E-4;0>b&&(b0);1a&&(a1);bthis.getPoint(b);return this.getPoint(a).clone().sub(b).normalize()},getTangentAt:function(a){athis.getUtoTmapping(a);return this.getTangent(a)},computeFrenetFrames:function(a,b){var cnew n,d,e,f,gnew n,hnew J,k;for(k0;ka;k++){var mk/a;dkthis.getTangentAt(m);dk.normalize()}e0new n;f0new n;kNumber.MAX_VALUE;mMath.abs(d0.x);var lMath.abs(d0.y),qMath.abs(d0.z);mk&&(km,c.set(1,0,0));lk&&(kl,c.set(0,1,0));qk&&c.set(0,0,1);g.crossVectors(d0,c).normalize();e0.crossVectors(d0,g);f0.crossVectors(d0,e0);for(k1;ka;k++)ekek-1.clone(),fkfk-1.clone(),g.crossVectors(dk-1,dk),g.length()>Number.EPSILON&&(g.normalize(),cMath.acos(H.clamp(dk-1.dot(dk),-1,1)),ek.applyMatrix4(h.makeRotationAxis(g,c))),fk.crossVectors(dk,ek);if(!0b)for(cMath.acos(H.clamp(e0.dot(ea),-1,1)),c/a,0d0.dot(g.crossVectors(e0,ea))&&(c-c),k1;ka;k++)ek.applyMatrix4(h.makeRotationAxis(dk,c*k)),fk.crossVectors(dk,ek);return{tangents:d,normals:e,binormals:f}},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.arcLengthDivisionsa.arcLengthDivisions;return this},toJSON:function(){var a{metadata:{version:4.5,type:Curve,generator:Curve.toJSON}};a.arcLengthDivisionsthis.arcLengthDivisions;a.typethis.type;return a},fromJSON:function(a){this.arcLengthDivisionsa.arcLengthDivisions;return this}});Ea.prototypeObject.create(L.prototype);Ea.prototype.constructorEa;Ea.prototype.isEllipseCurve!0;Ea.prototype.getPointfunction(a,b){bb||new B;for(var c2*Math.PI,dthis.aEndAngle-this.aStartAngle,eMath.abs(d)Number.EPSILON;0>d;)d+c;for(;d>c;)d-c;dNumber.EPSILON&&(de?0:c);!0!this.aClockwise||e||(ddc?-c:d-c);cthis.aStartAngle+a*d;athis.aX+this.xRadius*Math.cos(c);var fthis.aY+this.yRadius*Math.sin(c);0!this.aRotation&&(cMath.cos(this.aRotation),dMath.sin(this.aRotation),ea-this.aX,f-this.aY,ae*c-f*d+this.aX,fe*d+f*c+this.aY);return b.set(a,f)};Ea.prototype.copyfunction(a){L.prototype.copy.call(this,a);this.aXa.aX;this.aYa.aY;this.xRadiusa.xRadius;this.yRadiusa.yRadius;this.aStartAnglea.aStartAngle;this.aEndAnglea.aEndAngle;this.aClockwisea.aClockwise;this.aRotationa.aRotation;return this};Ea.prototype.toJSONfunction(){var aL.prototype.toJSON.call(this);a.aXthis.aX;a.aYthis.aY;a.xRadiusthis.xRadius;a.yRadiusthis.yRadius;a.aStartAnglethis.aStartAngle;a.aEndAnglethis.aEndAngle;a.aClockwisethis.aClockwise;a.aRotationthis.aRotation;return a};Ea.prototype.fromJSONfunction(a){L.prototype.fromJSON.call(this,a);this.aXa.aX;this.aYa.aY;this.xRadiusa.xRadius;this.yRadiusa.yRadius;this.aStartAnglea.aStartAngle;this.aEndAnglea.aEndAngle;this.aClockwisea.aClockwise;this.aRotationa.aRotation;return this};kc.prototypeObject.create(Ea.prototype);kc.prototype.constructorkc;kc.prototype.isArcCurve!0;var Xdnew n,Lenew pe,Menew pe,Nenew pe;oa.prototypeObject.create(L.prototype);oa.prototype.constructoroa;oa.prototype.isCatmullRomCurve3!0;oa.prototype.getPointfunction(a,b){bb||new n;var cthis.points,dc.length;a*d-(this.closed?0:1);var eMath.floor(a);a-e;this.closed?e+0e?0:(Math.floor(Math.abs(e)/d)+1)*d:0a&&ed-1&&(ed-2,a1);if(this.closed||0e)var fc(e-1)%d;else Xd.subVectors(c0,c1).add(c0),fXd;var gce%d;var hc(e+1)%d;this.closed||e+2d?cc(e+2)%d:(Xd.subVectors(cd-1,cd-2).add(cd-1),cXd);if(centripetalthis.curveType||chordalthis.curveType){var kchordalthis.curveType?.5:.25;dMath.pow(f.distanceToSquared(g),k);eMath.pow(g.distanceToSquared(h),k);kMath.pow(h.distanceToSquared(c),k);1E-4>e&&(e1);1E-4>d&&(de);1E-4>k&&(ke);Le.initNonuniformCatmullRom(f.x,g.x,h.x,c.x,d,e,k);Me.initNonuniformCatmullRom(f.y,g.y,h.y,c.y,d,e,k);Ne.initNonuniformCatmullRom(f.z,g.z,h.z,c.z,d,e,k)}elsecatmullromthis.curveType&&(Le.initCatmullRom(f.x,g.x,h.x,c.x,this.tension),Me.initCatmullRom(f.y,g.y,h.y,c.y,this.tension),Ne.initCatmullRom(f.z,g.z,h.z,c.z,this.tension));b.set(Le.calc(a),Me.calc(a),Ne.calc(a));return b};oa.prototype.copyfunction(a){L.prototype.copy.call(this,a);this.points;for(var b0,ca.points.length;bc;b++)this.points.push(a.pointsb.clone());this.closeda.closed;this.curveTypea.curveType;this.tensiona.tension;return this};oa.prototype.toJSONfunction(){var aL.prototype.toJSON.call(this);a.points;for(var b0,cthis.points.length;bc;b++)a.points.push(this.pointsb.toArray());a.closedthis.closed;a.curveTypethis.curveType;a.tensionthis.tension;return a};oa.prototype.fromJSONfunction(a){L.prototype.fromJSON.call(this,a);this.points;for(var b0,ca.points.length;bc;b++){var da.pointsb;this.points.push((new n).fromArray(d))}this.closeda.closed;this.curveTypea.curveType;this.tensiona.tension;return this};La.prototypeObject.create(L.prototype);La.prototype.constructorLa;La.prototype.isCubicBezierCurve!0;La.prototype.getPointfunction(a,b){bb||new B;var cthis.v0,dthis.v1,ethis.v2,fthis.v3;b.set(id(a,c.x,d.x,e.x,f.x),id(a,c.y,d.y,e.y,f.y));return b};La.prototype.copyfunction(a){L.prototype.copy.call(this,a);this.v0.copy(a.v0);this.v1.copy(a.v1);this.v2.copy(a.v2);this.v3.copy(a.v3);return this};La.prototype.toJSONfunction(){var aL.prototype.toJSON.call(this);a.v0this.v0.toArray();a.v1this.v1.toArray();a.v2this.v2.toArray();a.v3this.v3.toArray();return a};La.prototype.fromJSONfunction(a){L.prototype.fromJSON.call(this,a);this.v0.fromArray(a.v0);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);this.v3.fromArray(a.v3);return this};Xa.prototypeObject.create(L.prototype);Xa.prototype.constructorXa;Xa.prototype.isCubicBezierCurve3!0;Xa.prototype.getPointfunction(a,b){bb||new n;var cthis.v0,dthis.v1,ethis.v2,fthis.v3;b.set(id(a,c.x,d.x,e.x,f.x),id(a,c.y,d.y,e.y,f.y),id(a,c.z,d.z,e.z,f.z));return b};Xa.prototype.copyfunction(a){L.prototype.copy.call(this,a);this.v0.copy(a.v0);this.v1.copy(a.v1);this.v2.copy(a.v2);this.v3.copy(a.v3);return this};Xa.prototype.toJSONfunction(){var aL.prototype.toJSON.call(this);a.v0this.v0.toArray();a.v1this.v1.toArray();a.v2this.v2.toArray();a.v3this.v3.toArray();return a};Xa.prototype.fromJSONfunction(a){L.prototype.fromJSON.call(this,a);this.v0.fromArray(a.v0);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);this.v3.fromArray(a.v3);return this};ja.prototypeObject.create(L.prototype);ja.prototype.constructorja;ja.prototype.isLineCurve!0;ja.prototype.getPointfunction(a,b){bb||new B;1a?b.copy(this.v2):(b.copy(this.v2).sub(this.v1),b.multiplyScalar(a).add(this.v1));return b};ja.prototype.getPointAtfunction(a,b){return this.getPoint(a,b)};ja.prototype.getTangentfunction(){return this.v2.clone().sub(this.v1).normalize()};ja.prototype.copyfunction(a){L.prototype.copy.call(this,a);this.v1.copy(a.v1);this.v2.copy(a.v2);return this};ja.prototype.toJSONfunction(){var aL.prototype.toJSON.call(this);a.v1this.v1.toArray();a.v2this.v2.toArray();return a};ja.prototype.fromJSONfunction(a){L.prototype.fromJSON.call(this,a);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);return this};Ma.prototypeObject.create(L.prototype);Ma.prototype.constructorMa;Ma.prototype.isLineCurve3!0;Ma.prototype.getPointfunction(a,b){bb||new n;1a?b.copy(this.v2):(b.copy(this.v2).sub(this.v1),b.multiplyScalar(a).add(this.v1));return b};Ma.prototype.getPointAtfunction(a,b){return this.getPoint(a,b)};Ma.prototype.copyfunction(a){L.prototype.copy.call(this,a);this.v1.copy(a.v1);this.v2.copy(a.v2);return this};Ma.prototype.toJSONfunction(){var aL.prototype.toJSON.call(this);a.v1this.v1.toArray();a.v2this.v2.toArray();return a};Ma.prototype.fromJSONfunction(a){L.prototype.fromJSON.call(this,a);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);return this};Na.prototypeObject.create(L.prototype);Na.prototype.constructorNa;Na.prototype.isQuadraticBezierCurve!0;Na.prototype.getPointfunction(a,b){bb||new B;var cthis.v0,dthis.v1,ethis.v2;b.set(hd(a,c.x,d.x,e.x),hd(a,c.y,d.y,e.y));return b};Na.prototype.copyfunction(a){L.prototype.copy.call(this,a);this.v0.copy(a.v0);this.v1.copy(a.v1);this.v2.copy(a.v2);return this};Na.prototype.toJSONfunction(){var aL.prototype.toJSON.call(this);a.v0this.v0.toArray();a.v1this.v1.toArray();a.v2this.v2.toArray();return a};Na.prototype.fromJSONfunction(a){L.prototype.fromJSON.call(this,a);this.v0.fromArray(a.v0);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);return this};Ya.prototypeObject.create(L.prototype);Ya.prototype.constructorYa;Ya.prototype.isQuadraticBezierCurve3!0;Ya.prototype.getPointfunction(a,b){bb||new n;var cthis.v0,dthis.v1,ethis.v2;b.set(hd(a,c.x,d.x,e.x),hd(a,c.y,d.y,e.y),hd(a,c.z,d.z,e.z));return b};Ya.prototype.copyfunction(a){L.prototype.copy.call(this,a);this.v0.copy(a.v0);this.v1.copy(a.v1);this.v2.copy(a.v2);return this};Ya.prototype.toJSONfunction(){var aL.prototype.toJSON.call(this);a.v0this.v0.toArray();a.v1this.v1.toArray();a.v2this.v2.toArray();return a};Ya.prototype.fromJSONfunction(a){L.prototype.fromJSON.call(this,a);this.v0.fromArray(a.v0);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);return this};Oa.prototypeObject.create(L.prototype);Oa.prototype.constructorOa;Oa.prototype.isSplineCurve!0;Oa.prototype.getPointfunction(a,b){bb||new B;var cthis.points,d(c.length-1)*a;aMath.floor(d);d-a;var ec0a?a:a-1,fca,gca>c.length-2?c.length-1:a+1;cca>c.length-3?c.length-1:a+2;b.set(Ef(d,e.x,f.x,g.x,c.x),Ef(d,e.y,f.y,g.y,c.y));return b};Oa.prototype.copyfunction(a){L.prototype.copy.call(this,a);this.points;for(var b0,ca.points.length;bc;b++)this.points.push(a.pointsb.clone());return this};Oa.prototype.toJSONfunction(){var aL.prototype.toJSON.call(this);a.points;for(var b0,cthis.points.length;bc;b++)a.points.push(this.pointsb.toArray());return a};Oa.prototype.fromJSONfunction(a){L.prototype.fromJSON.call(this,a);this.points;for(var b0,ca.points.length;bc;b++){var da.pointsb;this.points.push((new B).fromArray(d))}return this};var OeObject.freeze({ArcCurve:kc,CatmullRomCurve3:oa,CubicBezierCurve:La,CubicBezierCurve3:Xa,EllipseCurve:Ea,LineCurve:ja,LineCurve3:Ma,QuadraticBezierCurve:Na,QuadraticBezierCurve3:Ya,SplineCurve:Oa});cb.prototypeObject.assign(Object.create(L.prototype),{constructor:cb,add:function(a){this.curves.push(a)},closePath:function(){var athis.curves0.getPoint(0),bthis.curvesthis.curves.length-1.getPoint(1);a.equals(b)||this.curves.push(new ja(b,a))},getPoint:function(a){var ba*this.getLength(),cthis.getCurveLengths();for(a0;ac.length;){if(ca>b)return bca-b,athis.curvesa,ca.getLength(),a.getPointAt(0c?0:1-b/c);a++}return null},getLength:function(){var athis.getCurveLengths();return aa.length-1},updateArcLengths:function(){this.needsUpdate!0;this.cacheLengthsnull;this.getCurveLengths()},getCurveLengths:function(){if(this.cacheLengths&&this.cacheLengths.lengththis.curves.length)return this.cacheLengths;for(var a,b0,c0,dthis.curves.length;cd;c++)b+this.curvesc.getLength(),a.push(b);return this.cacheLengthsa},getSpacedPoints:function(a){void 0a&&(a40);for(var b,c0;ca;c++)b.push(this.getPoint(c/a));this.autoClose&&b.push(b0);return b},getPoints:function(a){aa||12;for(var b,c,d0,ethis.curves;de.length;d++){var fed;ff.getPoints(f&&f.isEllipseCurve?2*a:f&&(f.isLineCurve||f.isLineCurve3)?1:f&&f.isSplineCurve?a*f.points.length:a);for(var g0;gf.length;g++){var hfg;c&&c.equals(h)||(b.push(h),ch)}}this.autoClose&&1b.length&&!bb.length-1.equals(b0)&&b.push(b0);return b},copy:function(a){L.prototype.copy.call(this,a);this.curves;for(var b0,ca.curves.length;bc;b++)this.curves.push(a.curvesb.clone());this.autoClosea.autoClose;return this},toJSON:function(){var aL.prototype.toJSON.call(this);a.autoClosethis.autoClose;a.curves;for(var b0,cthis.curves.length;bc;b++)a.curves.push(this.curvesb.toJSON());return a},fromJSON:function(a){L.prototype.fromJSON.call(this,a);this.autoClosea.autoClose;this.curves;for(var b0,ca.curves.length;bc;b++){var da.curvesb;this.curves.push((new Oed.type).fromJSON(d))}return this}});Pa.prototypeObject.assign(Object.create(cb.prototype),{constructor:Pa,setFromPoints:function(a){this.moveTo(a0.x,a0.y);for(var b1,ca.length;bc;b++)this.lineTo(ab.x,ab.y)},moveTo:function(a,b){this.currentPoint.set(a,b)},lineTo:function(a,b){var cnew ja(this.currentPoint.clone(),new B(a,b));this.curves.push(c);this.currentPoint.set(a,b)},quadraticCurveTo:function(a,b,c,d){anew Na(this.currentPoint.clone(),new B(a,b),new B(c,d));this.curves.push(a);this.currentPoint.set(c,d)},bezierCurveTo:function(a,b,c,d,e,f){anew La(this.currentPoint.clone(),new B(a,b),new B(c,d),new B(e,f));this.curves.push(a);this.currentPoint.set(e,f)},splineThru:function(a){var bthis.currentPoint.clone().concat(a);bnew Oa(b);this.curves.push(b);this.currentPoint.copy(aa.length-1)},arc:function(a,b,c,d,e,f){this.absarc(a+this.currentPoint.x,b+this.currentPoint.y,c,d,e,f)},absarc:function(a,b,c,d,e,f){this.absellipse(a,b,c,c,d,e,f)},ellipse:function(a,b,c,d,e,f,g,h){this.absellipse(a+this.currentPoint.x,b+this.currentPoint.y,c,d,e,f,g,h)},absellipse:function(a,b,c,d,e,f,g,h){anew Ea(a,b,c,d,e,f,g,h);0this.curves.length&&(ba.getPoint(0),b.equals(this.currentPoint)||this.lineTo(b.x,b.y));this.curves.push(a);aa.getPoint(1);this.currentPoint.copy(a)},copy:function(a){cb.prototype.copy.call(this,a);this.currentPoint.copy(a.currentPoint);return this},toJSON:function(){var acb.prototype.toJSON.call(this);a.currentPointthis.currentPoint.toArray();return a},fromJSON:function(a){cb.prototype.fromJSON.call(this,a);this.currentPoint.fromArray(a.currentPoint);return this}});kb.prototypeObject.assign(Object.create(Pa.prototype),{constructor:kb,getPointsHoles:function(a){for(var b,c0,dthis.holes.length;cd;c++)bcthis.holesc.getPoints(a);return b},extractPoints:function(a){return{shape:this.getPoints(a),holes:this.getPointsHoles(a)}},copy:function(a){Pa.prototype.copy.call(this,a);this.holes;for(var b0,ca.holes.length;bc;b++)this.holes.push(a.holesb.clone());return this},toJSON:function(){var aPa.prototype.toJSON.call(this);a.uuidthis.uuid;a.holes;for(var b0,cthis.holes.length;bc;b++)a.holes.push(this.holesb.toJSON());return a},fromJSON:function(a){Pa.prototype.fromJSON.call(this,a);this.uuida.uuid;this.holes;for(var b0,ca.holes.length;bc;b++){var da.holesb;this.holes.push((new Pa).fromJSON(d))}return this}});ia.prototypeObject.assign(Object.create(E.prototype),{constructor:ia,isLight:!0,copy:function(a){E.prototype.copy.call(this,a);this.color.copy(a.color);this.intensitya.intensity;return this},toJSON:function(a){aE.prototype.toJSON.call(this,a);a.object.colorthis.color.getHex();a.object.intensitythis.intensity;void 0!this.groundColor&&(a.object.groundColorthis.groundColor.getHex());void 0!this.distance&&(a.object.distancethis.distance);void 0!this.angle&&(a.object.anglethis.angle);void 0!this.decay&&(a.object.decaythis.decay);void 0!this.penumbra&&(a.object.penumbrathis.penumbra);void 0!this.shadow&&(a.object.shadowthis.shadow.toJSON());return a}});Ld.prototypeObject.assign(Object.create(ia.prototype),{constructor:Ld,isHemisphereLight:!0,copy:function(a){ia.prototype.copy.call(this,a);this.groundColor.copy(a.groundColor);return this}});Object.assign(Kb.prototype,{copy:function(a){this.cameraa.camera.clone();this.biasa.bias;this.radiusa.radius;this.mapSize.copy(a.mapSize);return this},clone:function(){return(new this.constructor).copy(this)},toJSON:function(){var a{};0!this.bias&&(a.biasthis.bias);1!this.radius&&(a.radiusthis.radius);if(512!this.mapSize.x||512!this.mapSize.y)a.mapSizethis.mapSize.toArray();a.camerathis.camera.toJSON(!1).object;delete a.camera.matrix;return a}});Md.prototypeObject.assign(Object.create(Kb.prototype),{constructor:Md,isSpotLightShadow:!0,update:function(a){var bthis.camera,c2*H.RAD2DEG*a.angle,dthis.mapSize.width/this.mapSize.height;aa.distance||b.far;if(c!b.fov||d!b.aspect||a!b.far)b.fovc,b.aspectd,b.fara,b.updateProjectionMatrix()}});Nd.prototypeObject.assign(Object.create(ia.prototype),{constructor:Nd,isSpotLight:!0,copy:function(a){ia.prototype.copy.call(this,a);this.distancea.distance;this.anglea.angle;this.penumbraa.penumbra;this.decaya.decay;this.targeta.target.clone();this.shadowa.shadow.clone();return this}});Od.prototypeObject.assign(Object.create(ia.prototype),{constructor:Od,isPointLight:!0,copy:function(a){ia.prototype.copy.call(this,a);this.distancea.distance;this.decaya.decay;this.shadowa.shadow.clone();return this}});jd.prototypeObject.assign(Object.create(Ua.prototype),{constructor:jd,isOrthographicCamera:!0,copy:function(a,b){Ua.prototype.copy.call(this,a,b);this.lefta.left;this.righta.right;this.topa.top;this.bottoma.bottom;this.neara.near;this.fara.far;this.zooma.zoom;this.viewnulla.view?null:Object.assign({},a.view);return this},setViewOffset:function(a,b,c,d,e,f){nullthis.view&&(this.view{enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1});this.view.enabled!0;this.view.fullWidtha;this.view.fullHeightb;this.view.offsetXc;this.view.offsetYd;this.view.widthe;this.view.heightf;this.updateProjectionMatrix()},clearViewOffset:function(){null!this.view&&(this.view.enabled!1);this.updateProjectionMatrix()},updateProjectionMatrix:function(){var a(this.right-this.left)/(2*this.zoom),b(this.top-this.bottom)/(2*this.zoom),c(this.right+this.left)/2,d(this.top+this.bottom)/2,ec-a;c+a;ad+b;bd-b;if(null!this.view&&this.view.enabled){cthis.zoom/(this.view.width/this.view.fullWidth);bthis.zoom/(this.view.height/this.view.fullHeight);var f(this.right-this.left)/this.view.width;d(this.top-this.bottom)/this.view.height;e+this.view.offsetX/c*f;ce+this.view.width/c*f;a-this.view.offsetY/b*d;ba-this.view.height/b*d}this.projectionMatrix.makeOrthographic(e,c,a,b,this.near,this.far);this.projectionMatrixInverse.getInverse(this.projectionMatrix)},toJSON:function(a){aE.prototype.toJSON.call(this,a);a.object.zoomthis.zoom;a.object.leftthis.left;a.object.rightthis.right;a.object.topthis.top;a.object.bottomthis.bottom;a.object.nearthis.near;a.object.farthis.far;null!this.view&&(a.object.viewObject.assign({},this.view));return a}});Pd.prototypeObject.assign(Object.create(Kb.prototype),{constructor:Pd});Qd.prototypeObject.assign(Object.create(ia.prototype),{constructor:Qd,isDirectionalLight:!0,copy:function(a){ia.prototype.copy.call(this,a);this.targeta.target.clone();this.shadowa.shadow.clone();return this}});Rd.prototypeObject.assign(Object.create(ia.prototype),{constructor:Rd,isAmbientLight:!0});Sd.prototypeObject.assign(Object.create(ia.prototype),{constructor:Sd,isRectAreaLight:!0,copy:function(a){ia.prototype.copy.call(this,a);this.widtha.width;this.heighta.height;return this},toJSON:function(a){aia.prototype.toJSON.call(this,a);a.object.widththis.width;a.object.heightthis.height;return a}});Object.assign(Td.prototype,{load:function(a,b,c,d){var ethis,fnew Ka(e.manager);f.setPath(e.path);f.load(a,function(a){b(e.parse(JSON.parse(a)))},c,d)},parse:function(a){function b(a){void 0ca&&console.warn(THREE.MaterialLoader: Undefined texture,a);return ca}var cthis.textures,dnew jha.type;void 0!a.uuid&&(d.uuida.uuid);void 0!a.name&&(d.namea.name);void 0!a.color&&d.color.setHex(a.color);void 0!a.roughness&&(d.roughnessa.roughness);void 0!a.metalness&&(d.metalnessa.metalness);void 0!a.emissive&&d.emissive.setHex(a.emissive);void 0!a.specular&&d.specular.setHex(a.specular);void 0!a.shininess&&(d.shininessa.shininess);void 0!a.clearCoat&&(d.clearCoata.clearCoat);void 0!a.clearCoatRoughness&&(d.clearCoatRoughnessa.clearCoatRoughness);void 0!a.vertexColors&&(d.vertexColorsa.vertexColors);void 0!a.fog&&(d.foga.fog);void 0!a.flatShading&&(d.flatShadinga.flatShading);void 0!a.blending&&(d.blendinga.blending);void 0!a.combine&&(d.combinea.combine);void 0!a.side&&(d.sidea.side);void 0!a.opacity&&(d.opacitya.opacity);void 0!a.transparent&&(d.transparenta.transparent);void 0!a.alphaTest&&(d.alphaTesta.alphaTest);void 0!a.depthTest&&(d.depthTesta.depthTest);void 0!a.depthWrite&&(d.depthWritea.depthWrite);void 0!a.colorWrite&&(d.colorWritea.colorWrite);void 0!a.wireframe&&(d.wireframea.wireframe);void 0!a.wireframeLinewidth&&(d.wireframeLinewidtha.wireframeLinewidth);void 0!a.wireframeLinecap&&(d.wireframeLinecapa.wireframeLinecap);void 0!a.wireframeLinejoin&&(d.wireframeLinejoina.wireframeLinejoin);void 0!a.rotation&&(d.rotationa.rotation);1!a.linewidth&&(d.linewidtha.linewidth);void 0!a.dashSize&&(d.dashSizea.dashSize);void 0!a.gapSize&&(d.gapSizea.gapSize);void 0!a.scale&&(d.scalea.scale);void 0!a.polygonOffset&&(d.polygonOffseta.polygonOffset);void 0!a.polygonOffsetFactor&&(d.polygonOffsetFactora.polygonOffsetFactor);void 0!a.polygonOffsetUnits&&(d.polygonOffsetUnitsa.polygonOffsetUnits);void 0!a.skinning&&(d.skinninga.skinning);void 0!a.morphTargets&&(d.morphTargetsa.morphTargets);void 0!a.dithering&&(d.ditheringa.dithering);void 0!a.visible&&(d.visiblea.visible);void 0!a.userData&&(d.userDataa.userData);if(void 0!a.uniforms)for(var e in a.uniforms){var fa.uniformse;d.uniformse{};switch(f.type){case t:d.uniformse.valueb(f.value);break;case c:d.uniformse.value(new K).setHex(f.value);break;case v2:d.uniformse.value(new B).fromArray(f.value);break;case v3:d.uniformse.value(new n).fromArray(f.value);break;case v4:d.uniformse.value(new ba).fromArray(f.value);break;case m3:d.uniformse.value(new pa).fromArray(f.value);case m4:d.uniformse.value(new J).fromArray(f.value);break;default:d.uniformse.valuef.value}}void 0!a.defines&&(d.definesa.defines);void 0!a.vertexShader&&(d.vertexShadera.vertexShader);void 0!a.fragmentShader&&(d.fragmentShadera.fragmentShader);if(void 0!a.extensions)for(var g in a.extensions)d.extensionsga.extensionsg;void 0!a.shading&&(d.flatShading1a.shading);void 0!a.size&&(d.sizea.size);void 0!a.sizeAttenuation&&(d.sizeAttenuationa.sizeAttenuation);void 0!a.map&&(d.mapb(a.map));void 0!a.alphaMap&&(d.alphaMapb(a.alphaMap),d.transparent!0);void 0!a.bumpMap&&(d.bumpMapb(a.bumpMap));void 0!a.bumpScale&&(d.bumpScalea.bumpScale);void 0!a.normalMap&&(d.normalMapb(a.normalMap));void 0!a.normalMapType&&(d.normalMapTypea.normalMapType);void 0!a.normalScale&&(ea.normalScale,!1Array.isArray(e)&&(ee,e),d.normalScale(new B).fromArray(e));void 0!a.displacementMap&&(d.displacementMapb(a.displacementMap));void 0!a.displacementScale&&(d.displacementScalea.displacementScale);void 0!a.displacementBias&&(d.displacementBiasa.displacementBias);void 0!a.roughnessMap&&(d.roughnessMapb(a.roughnessMap));void 0!a.metalnessMap&&(d.metalnessMapb(a.metalnessMap));void 0!a.emissiveMap&&(d.emissiveMapb(a.emissiveMap));void 0!a.emissiveIntensity&&(d.emissiveIntensitya.emissiveIntensity);void 0!a.specularMap&&(d.specularMapb(a.specularMap));void 0!a.envMap&&(d.envMapb(a.envMap));void 0!a.envMapIntensity&&(d.envMapIntensitya.envMapIntensity);void 0!a.reflectivity&&(d.reflectivitya.reflectivity);void 0!a.lightMap&&(d.lightMapb(a.lightMap));void 0!a.lightMapIntensity&&(d.lightMapIntensitya.lightMapIntensity);void 0!a.aoMap&&(d.aoMapb(a.aoMap));void 0!a.aoMapIntensity&&(d.aoMapIntensitya.aoMapIntensity);void 0!a.gradientMap&&(d.gradientMapb(a.gradientMap));return d},setPath:function(a){this.patha;return this},setTextures:function(a){this.texturesa;return this}});var Pe{decodeText:function(a){if(undefined!typeof TextDecoder)return(new TextDecoder).decode(a);for(var b,c0,da.length;cd;c++)b+String.fromCharCode(ac);return decodeURIComponent(escape(b))},extractUrlBase:function(a){var ba.lastIndexOf(/);return-1b?./:a.substr(0,b+1)}};Object.assign(qe.prototype,{load:function(a,b,c,d){var ethis,fnew Ka(e.manager);f.setPath(e.path);f.load(a,function(a){b(e.parse(JSON.parse(a)))},c,d)},parse:function(a){var bnew C,ca.data.index;if(void 0!c){var dnew Qec.type(c.array);b.setIndex(new P(d,1))}ca.data.attributes;for(var e in c){var fce;dnew Qef.type(f.array);dnew P(d,f.itemSize,f.normalized);void 0!f.name&&(d.namef.name);b.addAttribute(e,d)}var ga.data.morphAttributes;if(g)for(e in g){var hge,k;c0;for(var mh.length;cm;c++)fhc,dnew Qef.type(f.array),dnew P(d,f.itemSize,f.normalized),void 0!f.name&&(d.namef.name),k.push(d);b.morphAttributesek}ea.data.groups||a.data.drawcalls||a.data.offsets;if(void 0!e)for(c0,fe.length;c!f;++c)dec,b.addGroup(d.start,d.count,d.materialIndex);ca.data.boundingSphere;void 0!c&&(enew n,void 0!c.center&&e.fromArray(c.center),b.boundingSpherenew Ha(e,c.radius));a.name&&(b.namea.name);a.userData&&(b.userDataa.userData);return b},setPath:function(a){this.patha;return this}});var Qe{Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:undefined!typeof Uint8ClampedArray?Uint8ClampedArray:Uint8Array,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};Object.assign(re.prototype,{crossOrigin:anonymous,load:function(a,b,c,d){var ethis,fvoid 0this.path?Pe.extractUrlBase(a):this.path;this.resourcePaththis.resourcePath||f;fnew Ka(e.manager);f.setPath(this.path);f.load(a,function(c){var fnull;try{fJSON.parse(c)}catch(k){void 0!d&&d(k);console.error(THREE:ObjectLoader: Cant parse +a+.,k.message);return}cf.metadata;void 0c||void 0c.type||geometryc.type.toLowerCase()?console.error(THREE.ObjectLoader: Cant load +a):e.parse(f,b)},c,d)},setPath:function(a){this.patha;return this},setResourcePath:function(a){this.resourcePatha;return this},setCrossOrigin:function(a){this.crossOrigina;return this},parse:function(a,b){var cthis.parseShape(a.shapes);cthis.parseGeometries(a.geometries,c);var dthis.parseImages(a.images,function(){void 0!b&&b(e)});dthis.parseTextures(a.textures,d);dthis.parseMaterials(a.materials,d);var ethis.parseObject(a.object,c,d);a.animations&&(e.animationsthis.parseAnimations(a.animations));void 0!a.images&&0!a.images.length||void 0b||b(e);return e},parseShape:function(a){var b{};if(void 0!a)for(var c0,da.length;cd;c++){var e(new kb).fromJSON(ac);be.uuide}return b},parseGeometries:function(a,b){var c{};if(void 0!a)for(var dnew qe,e0,fa.length;ef;e++){var gae;switch(g.type){case PlaneGeometry:case PlaneBufferGeometry:var hnew nag.type(g.width,g.height,g.widthSegments,g.heightSegments);break;case BoxGeometry:case BoxBufferGeometry:case CubeGeometry:hnew nag.type(g.width,g.height,g.depth,g.widthSegments,g.heightSegments,g.depthSegments);break;case CircleGeometry:case CircleBufferGeometry:hnew nag.type(g.radius,g.segments,g.thetaStart,g.thetaLength);break;case CylinderGeometry:case CylinderBufferGeometry:hnew nag.type(g.radiusTop,g.radiusBottom,g.height,g.radialSegments,g.heightSegments,g.openEnded,g.thetaStart,g.thetaLength);break;case ConeGeometry:case ConeBufferGeometry:hnew nag.type(g.radius,g.height,g.radialSegments,g.heightSegments,g.openEnded,g.thetaStart,g.thetaLength);break;case SphereGeometry:case SphereBufferGeometry:hnew nag.type(g.radius,g.widthSegments,g.heightSegments,g.phiStart,g.phiLength,g.thetaStart,g.thetaLength);break;case DodecahedronGeometry:case DodecahedronBufferGeometry:case IcosahedronGeometry:case IcosahedronBufferGeometry:case OctahedronGeometry:case OctahedronBufferGeometry:case TetrahedronGeometry:case TetrahedronBufferGeometry:hnew nag.type(g.radius,g.detail);break;case RingGeometry:case RingBufferGeometry:hnew nag.type(g.innerRadius,g.outerRadius,g.thetaSegments,g.phiSegments,g.thetaStart,g.thetaLength);break;case TorusGeometry:case TorusBufferGeometry:hnew nag.type(g.radius,g.tube,g.radialSegments,g.tubularSegments,g.arc);break;case TorusKnotGeometry:case TorusKnotBufferGeometry:hnew nag.type(g.radius,g.tube,g.tubularSegments,g.radialSegments,g.p,g.q);break;case TubeGeometry:case TubeBufferGeometry:hnew nag.type((new Oeg.path.type).fromJSON(g.path),g.tubularSegments,g.radius,g.radialSegments,g.closed);break;case LatheGeometry:case LatheBufferGeometry:hnew nag.type(g.points,g.segments,g.phiStart,g.phiLength);break;case PolyhedronGeometry:case PolyhedronBufferGeometry:hnew nag.type(g.vertices,g.indices,g.radius,g.details);break;case ShapeGeometry:case ShapeBufferGeometry:h;for(var k0,mg.shapes.length;km;k++){var lbg.shapesk;h.push(l)}hnew nag.type(h,g.curveSegments);break;case ExtrudeGeometry:case ExtrudeBufferGeometry:h;k0;for(mg.shapes.length;km;k++)lbg.shapesk,h.push(l);kg.options.extrudePath;void 0!k&&(g.options.extrudePath(new Oek.type).fromJSON(k));hnew nag.type(h,g.options);break;case BufferGeometry:hd.parse(g);break;case Geometry:THREEin window&&LegacyJSONLoaderin THREE?h(new THREE.LegacyJSONLoader).parse(g,this.resourcePath).geometry:console.error(THREE.ObjectLoader: You have to import LegacyJSONLoader in order load geometry data of type Geometry.);break;default:console.warn(THREE.ObjectLoader: Unsupported geometry type +g.type+);continue}h.uuidg.uuid;void 0!g.name&&(h.nameg.name);!0h.isBufferGeometry&&void 0!g.userData&&(h.userDatag.userData);cg.uuidh}return c},parseMaterials:function(a,b){var c{},d{};if(void 0!a){var enew Td;e.setTextures(b);b0;for(var fa.length;bf;b++){var gab;if(MultiMaterialg.type){for(var h,k0;kg.materials.length;k++){var mg.materialsk;void 0cm.uuid&&(cm.uuide.parse(m));h.push(cm.uuid)}dg.uuidh}else void 0cg.uuid&&(cg.uuide.parse(g)),dg.uuidcg.uuid}}return d},parseAnimations:function(a){for(var b,c0;ca.length;c++){var dac,eGa.parse(d);void 0!d.uuid&&(e.uuidd.uuid);b.push(e)}return b},parseImages:function(a,b){function c(a){d.manager.itemStart(a);return f.load(a,function(){d.manager.itemEnd(a)},void 0,function(){d.manager.itemError(a);d.manager.itemEnd(a)})}var dthis,e{};if(void 0!a&&0a.length){bnew me(b);var fnew gd(b);f.setCrossOrigin(this.crossOrigin);b0;for(var ga.length;bg;b++){var hab,kh.url;if(Array.isArray(k)){eh.uuid;for(var m0,lk.length;ml;m++){var nkm;n/^(\/\/)|(a-z+:(\/\/)?)/i.test(n)?n:d.resourcePath+n;eh.uuid.push(c(n))}}else n/^(\/\/)|(a-z+:(\/\/)?)/i.test(h.url)?h.url:d.resourcePath+h.url,eh.uuidc(n)}}return e},parseTextures:function(a,b){function c(a,b){if(numbertypeof a)return a;console.warn(THREE.ObjectLoader.parseTexture: Constant should be in numeric form.,a);return ba}var d{};if(void 0!a)for(var e0,fa.length;ef;e++){var gae;void 0g.image&&console.warn(THREE.ObjectLoader: No image specified for,g.uuid);void 0bg.image&&console.warn(THREE.ObjectLoader: Undefined image,g.image);var hArray.isArray(bg.image)?new $a(bg.image):new V(bg.image);h.needsUpdate!0;h.uuidg.uuid;void 0!g.name&&(h.nameg.name);void 0!g.mapping&&(h.mappingc(g.mapping,kh));void 0!g.offset&&h.offset.fromArray(g.offset);void 0!g.repeat&&h.repeat.fromArray(g.repeat);void 0!g.center&&h.center.fromArray(g.center);void 0!g.rotation&&(h.rotationg.rotation);void 0!g.wrap&&(h.wrapSc(g.wrap0,Rf),h.wrapTc(g.wrap1,Rf));void 0!g.format&&(h.formatg.format);void 0!g.type&&(h.typeg.type);void 0!g.encoding&&(h.encodingg.encoding);void 0!g.minFilter&&(h.minFilterc(g.minFilter,Sf));void 0!g.magFilter&&(h.magFilterc(g.magFilter,Sf));void 0!g.anisotropy&&(h.anisotropyg.anisotropy);void 0!g.flipY&&(h.flipYg.flipY);void 0!g.premultiplyAlpha&&(h.premultiplyAlphag.premultiplyAlpha);void 0!g.unpackAlignment&&(h.unpackAlignmentg.unpackAlignment);dg.uuidh}return d},parseObject:function(a,b,c){function d(a){void 0ba&&console.warn(THREE.ObjectLoader: Undefined geometry,a);return ba}function e(a){if(void 0!a){if(Array.isArray(a)){for(var b,d0,ea.length;de;d++){var fad;void 0cf&&console.warn(THREE.ObjectLoader: Undefined material,f);b.push(cf)}return b}void 0ca&&console.warn(THREE.ObjectLoader: Undefined material,a);return ca}}switch(a.type){case Scene:var fnew Ad;void 0!a.background&&Number.isInteger(a.background)&&(f.backgroundnew K(a.background));void 0!a.fog&&(Foga.fog.type?f.fognew zd(a.fog.color,a.fog.near,a.fog.far):FogExp2a.fog.type&&(f.fognew yd(a.fog.color,a.fog.density)));break;case PerspectiveCamera:fnew S(a.fov,a.aspect,a.near,a.far);void 0!a.focus&&(f.focusa.focus);void 0!a.zoom&&(f.zooma.zoom);void 0!a.filmGauge&&(f.filmGaugea.filmGauge);void 0!a.filmOffset&&(f.filmOffseta.filmOffset);void 0!a.view&&(f.viewObject.assign({},a.view));break;case OrthographicCamera:fnew jd(a.left,a.right,a.top,a.bottom,a.near,a.far);void 0!a.zoom&&(f.zooma.zoom);void 0!a.view&&(f.viewObject.assign({},a.view));break;case AmbientLight:fnew Rd(a.color,a.intensity);break;case DirectionalLight:fnew Qd(a.color,a.intensity);break;case PointLight:fnew Od(a.color,a.intensity,a.distance,a.decay);break;case RectAreaLight:fnew Sd(a.color,a.intensity,a.width,a.height);break;case SpotLight:fnew Nd(a.color,a.intensity,a.distance,a.angle,a.penumbra,a.decay);break;case HemisphereLight:fnew Ld(a.color,a.groundColor,a.intensity);break;case SkinnedMesh:console.warn(THREE.ObjectLoader.parseObject() does not support SkinnedMesh yet.);case Mesh:fd(a.geometry);var ge(a.material);ff.bones&&0f.bones.length?new Ic(f,g):new va(f,g);void 0!a.drawMode&&f.setDrawMode(a.drawMode);break;case LOD:fnew Hc;break;case Line:fnew da(d(a.geometry),e(a.material),a.mode);break;case LineLoop:fnew Cd(d(a.geometry),e(a.material));break;case LineSegments:fnew W(d(a.geometry),e(a.material));break;case PointCloud:case Points:fnew Ub(d(a.geometry),e(a.material));break;case Sprite:fnew Gc(e(a.material));break;case Group:fnew Sb;break;default:fnew E}f.uuida.uuid;void 0!a.name&&(f.namea.name);void 0!a.matrix?(f.matrix.fromArray(a.matrix),void 0!a.matrixAutoUpdate&&(f.matrixAutoUpdatea.matrixAutoUpdate),f.matrixAutoUpdate&&f.matrix.decompose(f.position,f.quaternion,f.scale)):(void 0!a.position&&f.position.fromArray(a.position),void 0!a.rotation&&f.rotation.fromArray(a.rotation),void 0!a.quaternion&&f.quaternion.fromArray(a.quaternion),void 0!a.scale&&f.scale.fromArray(a.scale));void 0!a.castShadow&&(f.castShadowa.castShadow);void 0!a.receiveShadow&&(f.receiveShadowa.receiveShadow);a.shadow&&(void 0!a.shadow.bias&&(f.shadow.biasa.shadow.bias),void 0!a.shadow.radius&&(f.shadow.radiusa.shadow.radius),void 0!a.shadow.mapSize&&f.shadow.mapSize.fromArray(a.shadow.mapSize),void 0!a.shadow.camera&&(f.shadow.camerathis.parseObject(a.shadow.camera)));void 0!a.visible&&(f.visiblea.visible);void 0!a.frustumCulled&&(f.frustumCulleda.frustumCulled);void 0!a.renderOrder&&(f.renderOrdera.renderOrder);void 0!a.userData&&(f.userDataa.userData);void 0!a.layers&&(f.layers.maska.layers);if(void 0!a.children){ga.children;for(var h0;hg.length;h++)f.add(this.parseObject(gh,b,c))}if(LODa.type)for(aa.levels,g0;ga.length;g++){hag;var kf.getObjectByProperty(uuid,h.object);void 0!k&&f.addLevel(k,h.distance)}return f}});var kh{UVMapping:300,CubeReflectionMapping:301,CubeRefractionMapping:302,EquirectangularReflectionMapping:303,EquirectangularRefractionMapping:304,SphericalReflectionMapping:305,CubeUVReflectionMapping:306,CubeUVRefractionMapping:307},Rf{RepeatWrapping:1E3,ClampToEdgeWrapping:1001,MirroredRepeatWrapping:1002},Sf{NearestFilter:1003,NearestMipMapNearestFilter:1004,NearestMipMapLinearFilter:1005,LinearFilter:1006,LinearMipMapNearestFilter:1007,LinearMipMapLinearFilter:1008};se.prototype{constructor:se,setOptions:function(a){this.optionsa;return this},load:function(a,b,c,d){void 0a&&(a);void 0!this.path&&(athis.path+a);athis.manager.resolveURL(a);var ethis,fLb.get(a);if(void 0!f)return e.manager.itemStart(a),setTimeout(function(){b&&b(f);e.manager.itemEnd(a)},0),f;fetch(a).then(function(a){return a.blob()}).then(function(a){return createImageBitmap(a,e.options)}).then(function(c){Lb.add(a,c);b&&b(c);e.manager.itemEnd(a)}).catch(function(b){d&&d(b);e.manager.itemError(a);e.manager.itemEnd(a)});e.manager.itemStart(a)},setCrossOrigin:function(){return this},setPath:function(a){this.patha;return this}};Object.assign(te.prototype,{moveTo:function(a,b){this.currentPathnew Pa;this.subPaths.push(this.currentPath);this.currentPath.moveTo(a,b)},lineTo:function(a,b){this.currentPath.lineTo(a,b)},quadraticCurveTo:function(a,b,c,d){this.currentPath.quadraticCurveTo(a,b,c,d)},bezierCurveTo:function(a,b,c,d,e,f){this.currentPath.bezierCurveTo(a,b,c,d,e,f)},splineThru:function(a){this.currentPath.splineThru(a)},toShapes:function(a,b){function c(a){for(var b,c0,da.length;cd;c++){var eac,fnew kb;f.curvese.curves;b.push(f)}return b}function d(a,b){for(var cb.length,d!1,ec-1,f0;fc;ef++){var gbe,hbf,kh.x-g.x,lh.y-g.y;if(Math.abs(l)>Number.EPSILON){if(0>l&&(gbf,k-k,hbe,l-l),!(a.yg.y||a.y>h.y))if(a.yg.y){if(a.xg.x)return!0}else{el*(a.x-g.x)-k*(a.y-g.y);if(0e)return!0;0>e||(d!d)}}else if(a.yg.y&&(h.xa.x&&a.xg.x||g.xa.x&&a.xh.x))return!0}return d}var eab.isClockWise,fthis.subPaths;if(0f.length)return;if(!0b)return c(f);b;if(1f.length){var gf0;var hnew kb;h.curvesg.curves;b.push(h);return b}var k!e(f0.getPoints());ka?!k:k;h;var l,n,q0;lqvoid 0;nq;for(var v0,tf.length;vt;v++){gfv;var rg.getPoints();var ue(r);(ua?!u:u)?(!k&&lq&&q++,lq{s:new kb,p:r},lq.s.curvesg.curves,k&&q++,nq):nq.push({h:g,p:r0})}if(!l0)return c(f);if(1l.length){v!1;a;e0;for(fl.length;ef;e++)he;e0;for(fl.length;ef;e++)for(gne,u0;ug.length;u++){kgu;q!0;for(r0;rl.length;r++)d(k.p,lr.p)&&(e!r&&a.push({froms:e,tos:r,hole:u}),q?(q!1,hr.push(k)):v!0);q&&he.push(k)}0a.length&&(v||(nh))}v0;for(el.length;ve;v++)for(hlv.s,b.push(h),anv,f0,ga.length;fg;f++)h.holes.push(af.h);return b}});Object.assign(ue.prototype,{isFont:!0,generateShapes:function(a,b){void 0b&&(b100);var c,db;bthis.data;var eArray.from?Array.from(a):String(a).split();d/b.resolution;var f(b.boundingBox.yMax-b.boundingBox.yMin+b.underlineThickness)*d;a;for(var g0,h0,k0;ke.length;k++){var lek;if(\nl)g0,h-f;else{var nd;var qg,vh;if(lb.glyphsl||b.glyphs?){var tnew te;if(l.o)for(var rl._cachedOutline||(l._cachedOutlinel.o.split( )),u0,wr.length;uw;)switch(ru++){case m:var zru++*n+q;var xru++*n+v;t.moveTo(z,x);break;case l:zru++*n+q;xru++*n+v;t.lineTo(z,x);break;case q:var Bru++*n+q;var yru++*n+v;var Cru++*n+q;var Eru++*n+v;t.quadraticCurveTo(C,E,B,y);break;case b:Bru++*n+q,yru++*n+v,Cru++*n+q,Eru++*n+v,zru++*n+q,xru++*n+v,t.bezierCurveTo(C,E,z,x,B,y)}n{offsetX:l.ha*n,path:t}}else nvoid 0;g+n.offsetX;a.push(n.path)}}b0;for(ea.length;be;b++)Array.prototype.push.apply(c,ab.toShapes());return c}});Object.assign(Ff.prototype,{load:function(a,b,c,d){var ethis,fnew Ka(this.manager);f.setPath(this.path);f.load(a,function(a){try{var cJSON.parse(a)}catch(k){console.warn(THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead.),cJSON.parse(a.substring(65,a.length-2))}ae.parse(c);b&&b(a)},c,d)},parse:function(a){return new ue(a)},setPath:function(a){this.patha;return this}});kd.Handlers{handlers:,add:function(a,b){this.handlers.push(a,b)},get:function(a){for(var bthis.handlers,c0,db.length;cd;c+2){var ebc+1;if(bc.test(a))return e}return null}};Object.assign(kd.prototype,{crossOrigin:anonymous,onLoadStart:function(){},onLoadProgress:function(){},onLoadComplete:function(){},initMaterials:function(a,b,c){for(var d,e0;ea.length;++e)dethis.createMaterial(ae,b,c);return d},createMaterial:function(){var a{NoBlending:0,NormalBlending:1,AdditiveBlending:2,SubtractiveBlending:3,MultiplyBlending:4,CustomBlending:5},bnew K,cnew Kd,dnew Td;return function(e,f,g){function h(a,b,d,e,h){af+a;var lkd.Handlers.get(a);null!l?al.load(a):(c.setCrossOrigin(g),ac.load(a));void 0!b&&(a.repeat.fromArray(b),1!b0&&(a.wrapS1E3),1!b1&&(a.wrapT1E3));void 0!d&&a.offset.fromArray(d);void 0!e&&(repeate0&&(a.wrapS1E3),mirrore0&&(a.wrapS1002),repeate1&&(a.wrapT1E3),mirrore1&&(a.wrapT1002));void 0!h&&(a.anisotropyh);bH.generateUUID();kba;return b}var k{},l{uuid:H.generateUUID(),type:MeshLambertMaterial},n;for(n in e){var qen;switch(n){case DbgColor:case DbgIndex:case opticalDensity:case illumination:break;case DbgName:l.nameq;break;case blending:l.blendingaq;break;case colorAmbient:case mapAmbient:console.warn(THREE.Loader.createMaterial:,n,is no longer supported.);break;case colorDiffuse:l.colorb.fromArray(q).getHex();break;case colorSpecular:l.specularb.fromArray(q).getHex();break;case colorEmissive:l.emissiveb.fromArray(q).getHex();break;case specularCoef:l.shininessq;break;case shading:basicq.toLowerCase()&&(l.typeMeshBasicMaterial);phongq.toLowerCase()&&(l.typeMeshPhongMaterial);standardq.toLowerCase()&&(l.typeMeshStandardMaterial);break;case mapDiffuse:l.maph(q,e.mapDiffuseRepeat,e.mapDiffuseOffset,e.mapDiffuseWrap,e.mapDiffuseAnisotropy);break;case mapDiffuseRepeat:case mapDiffuseOffset:case mapDiffuseWrap:case mapDiffuseAnisotropy:break;case mapEmissive:l.emissiveMaph(q,e.mapEmissiveRepeat,e.mapEmissiveOffset,e.mapEmissiveWrap,e.mapEmissiveAnisotropy);break;case mapEmissiveRepeat:case mapEmissiveOffset:case mapEmissiveWrap:case mapEmissiveAnisotropy:break;case mapLight:l.lightMaph(q,e.mapLightRepeat,e.mapLightOffset,e.mapLightWrap,e.mapLightAnisotropy);break;case mapLightRepeat:case mapLightOffset:case mapLightWrap:case mapLightAnisotropy:break;case mapAO:l.aoMaph(q,e.mapAORepeat,e.mapAOOffset,e.mapAOWrap,e.mapAOAnisotropy);break;case mapAORepeat:case mapAOOffset:case mapAOWrap:case mapAOAnisotropy:break;case mapBump:l.bumpMaph(q,e.mapBumpRepeat,e.mapBumpOffset,e.mapBumpWrap,e.mapBumpAnisotropy);break;case mapBumpScale:l.bumpScaleq;break;case mapBumpRepeat:case mapBumpOffset:case mapBumpWrap:case mapBumpAnisotropy:break;case mapNormal:l.normalMaph(q,e.mapNormalRepeat,e.mapNormalOffset,e.mapNormalWrap,e.mapNormalAnisotropy);break;case mapNormalFactor:l.normalScaleq;break;case mapNormalRepeat:case mapNormalOffset:case mapNormalWrap:case mapNormalAnisotropy:break;case mapSpecular:l.specularMaph(q,e.mapSpecularRepeat,e.mapSpecularOffset,e.mapSpecularWrap,e.mapSpecularAnisotropy);break;case mapSpecularRepeat:case mapSpecularOffset:case mapSpecularWrap:case mapSpecularAnisotropy:break;case mapMetalness:l.metalnessMaph(q,e.mapMetalnessRepeat,e.mapMetalnessOffset,e.mapMetalnessWrap,e.mapMetalnessAnisotropy);break;case mapMetalnessRepeat:case mapMetalnessOffset:case mapMetalnessWrap:case mapMetalnessAnisotropy:break;case mapRoughness:l.roughnessMaph(q,e.mapRoughnessRepeat,e.mapRoughnessOffset,e.mapRoughnessWrap,e.mapRoughnessAnisotropy);break;case mapRoughnessRepeat:case mapRoughnessOffset:case mapRoughnessWrap:case mapRoughnessAnisotropy:break;case mapAlpha:l.alphaMaph(q,e.mapAlphaRepeat,e.mapAlphaOffset,e.mapAlphaWrap,e.mapAlphaAnisotropy);break;case mapAlphaRepeat:case mapAlphaOffset:case mapAlphaWrap:case mapAlphaAnisotropy:break;case flipSided:l.side1;break;case doubleSided:l.side2;break;case transparency:console.warn(THREE.Loader.createMaterial: transparency has been renamed to opacity);l.opacityq;break;case depthTest:case depthWrite:case colorWrite:case opacity:case reflectivity:case transparent:case visible:case wireframe:lnq;break;case vertexColors:!0q&&(l.vertexColors2);faceq&&(l.vertexColors1);break;default:console.error(THREE.Loader.createMaterial: Unsupported,n,q)}}MeshBasicMateriall.type&&delete l.emissive;MeshPhongMaterial!l.type&&delete l.specular;1>l.opacity&&(l.transparent!0);d.setTextures(k);return d.parse(l)}}()});var Yd,ye{getContext:function(){void 0Yd&&(Ydnew (window.AudioContext||window.webkitAudioContext));return Yd},setContext:function(a){Yda}};Object.assign(ve.prototype,{load:function(a,b,c,d){var enew Ka(this.manager);e.setResponseType(arraybuffer);e.setPath(this.path);e.load(a,function(a){aa.slice(0);ye.getContext().decodeAudioData(a,function(a){b(a)})},c,d)},setPath:function(a){this.patha;return this}});Object.assign(Gf.prototype,{update:function(){var a,b,c,d,e,f,g,h,knew J,lnew J;return function(m){if(a!this||b!m.focus||c!m.fov||d!m.aspect*this.aspect||e!m.near||f!m.far||g!m.zoom||h!this.eyeSep){athis;bm.focus;cm.fov;dm.aspect*this.aspect;em.near;fm.far;gm.zoom;var nm.projectionMatrix.clone();hthis.eyeSep/2;var ph*e/b,te*Math.tan(H.DEG2RAD*c*.5)/g;l.elements12-h;k.elements12h;var r-t*d+p;var ut*d+p;n.elements02*e/(u-r);n.elements8(u+r)/(u-r);this.cameraL.projectionMatrix.copy(n);r-t*d-p;ut*d-p;n.elements02*e/(u-r);n.elements8(u+r)/(u-r);this.cameraR.projectionMatrix.copy(n)}this.cameraL.matrixWorld.copy(m.matrixWorld).multiply(l);this.cameraR.matrixWorld.copy(m.matrixWorld).multiply(k)}}()});ld.prototypeObject.create(E.prototype);ld.prototype.constructorld;Object.assign(we.prototype,{start:function(){this.oldTimethis.startTime(undefinedtypeof performance?Date:performance).now();this.elapsedTime0;this.running!0},stop:function(){this.getElapsedTime();this.autoStartthis.running!1},getElapsedTime:function(){this.getDelta();return this.elapsedTime},getDelta:function(){var a0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){var b(undefinedtypeof performance?Date:performance).now();a(b-this.oldTime)/1E3;this.oldTimeb;this.elapsedTime+a}return a}});xe.prototypeObject.assign(Object.create(E.prototype),{constructor:xe,getInput:function(){return this.gain},removeFilter:function(){null!this.filter&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filternull);return this},getFilter:function(){return this.filter},setFilter:function(a){null!this.filter?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination);this.filtera;this.gain.connect(this.filter);this.filter.connect(this.context.destination);return this},getMasterVolume:function(){return this.gain.gain.value},setMasterVolume:function(a){this.gain.gain.setTargetAtTime(a,this.context.currentTime,.01);return this},updateMatrixWorld:function(){var anew n,bnew aa,cnew n,dnew n,enew we;return function(f){E.prototype.updateMatrixWorld.call(this,f);fthis.context.listener;var gthis.up;this.timeDeltae.getDelta();this.matrixWorld.decompose(a,b,c);d.set(0,0,-1).applyQuaternion(b);if(f.positionX){var hthis.context.currentTime+this.timeDelta;f.positionX.linearRampToValueAtTime(a.x,h);f.positionY.linearRampToValueAtTime(a.y,h);f.positionZ.linearRampToValueAtTime(a.z,h);f.forwardX.linearRampToValueAtTime(d.x,h);f.forwardY.linearRampToValueAtTime(d.y,h);f.forwardZ.linearRampToValueAtTime(d.z,h);f.upX.linearRampToValueAtTime(g.x,h);f.upY.linearRampToValueAtTime(g.y,h);f.upZ.linearRampToValueAtTime(g.z,h)}else f.setPosition(a.x,a.y,a.z),f.setOrientation(d.x,d.y,d.z,g.x,g.y,g.z)}}()});lc.prototypeObject.assign(Object.create(E.prototype),{constructor:lc,getOutput:function(){return this.gain},setNodeSource:function(a){this.hasPlaybackControl!1;this.sourceTypeaudioNode;this.sourcea;this.connect();return this},setMediaElementSource:function(a){this.hasPlaybackControl!1;this.sourceTypemediaNode;this.sourcethis.context.createMediaElementSource(a);this.connect();return this},setBuffer:function(a){this.buffera;this.sourceTypebuffer;this.autoplay&&this.play();return this},play:function(){if(!0this.isPlaying)console.warn(THREE.Audio: Audio is already playing.);else if(!1this.hasPlaybackControl)console.warn(THREE.Audio: this Audio has no playback control.);else{var athis.context.createBufferSource();a.bufferthis.buffer;a.loopthis.loop;a.onendedthis.onEnded.bind(this);this.startTimethis.context.currentTime;a.start(this.startTime,this.offset);this.isPlaying!0;this.sourcea;this.setDetune(this.detune);this.setPlaybackRate(this.playbackRate);return this.connect()}},pause:function(){if(!1this.hasPlaybackControl)console.warn(THREE.Audio: this Audio has no playback control.);else return!0this.isPlaying&&(this.source.stop(),this.source.onendednull,this.offset+(this.context.currentTime-this.startTime)*this.playbackRate,this.isPlaying!1),this},stop:function(){if(!1this.hasPlaybackControl)console.warn(THREE.Audio: this Audio has no playback control.);else return this.source.stop(),this.source.onendednull,this.offset0,this.isPlaying!1,this},connect:function(){if(0this.filters.length){this.source.connect(this.filters0);for(var a1,bthis.filters.length;ab;a++)this.filtersa-1.connect(this.filtersa);this.filtersthis.filters.length-1.connect(this.getOutput())}else this.source.connect(this.getOutput());return this},disconnect:function(){if(0this.filters.length){this.source.disconnect(this.filters0);for(var a1,bthis.filters.length;ab;a++)this.filtersa-1.disconnect(this.filtersa);this.filtersthis.filters.length-1.disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());return this},getFilters:function(){return this.filters},setFilters:function(a){a||(a);!0this.isPlaying?(this.disconnect(),this.filtersa,this.connect()):this.filtersa;return this},setDetune:function(a){this.detunea;if(void 0!this.source.detune)return!0this.isPlaying&&this.source.detune.setTargetAtTime(this.detune,this.context.currentTime,.01),this},getDetune:function(){return this.detune},getFilter:function(){return this.getFilters()0},setFilter:function(a){return this.setFilters(a?a:)},setPlaybackRate:function(a){if(!1this.hasPlaybackControl)console.warn(THREE.Audio: this Audio has no playback control.);else return this.playbackRatea,!0this.isPlaying&&this.source.playbackRate.setTargetAtTime(this.playbackRate,this.context.currentTime,.01),this},getPlaybackRate:function(){return this.playbackRate},onEnded:function(){this.isPlaying!1},getLoop:function(){return!1this.hasPlaybackControl?(console.warn(THREE.Audio: this Audio has no playback control.),!1):this.loop},setLoop:function(a){if(!1this.hasPlaybackControl)console.warn(THREE.Audio: this Audio has no playback control.);else return this.loopa,!0this.isPlaying&&(this.source.loopthis.loop),this},getVolume:function(){return this.gain.gain.value},setVolume:function(a){this.gain.gain.setTargetAtTime(a,this.context.currentTime,.01);return this}});ze.prototypeObject.assign(Object.create(lc.prototype),{constructor:ze,getOutput:function(){return this.panner},getRefDistance:function(){return this.panner.refDistance},setRefDistance:function(a){this.panner.refDistancea;return this},getRolloffFactor:function(){return this.panner.rolloffFactor},setRolloffFactor:function(a){this.panner.rolloffFactora;return this},getDistanceModel:function(){return this.panner.distanceModel},setDistanceModel:function(a){this.panner.distanceModela;return this},getMaxDistance:function(){return this.panner.maxDistance},setMaxDistance:function(a){this.panner.maxDistancea;return this},setDirectionalCone:function(a,b,c){this.panner.coneInnerAnglea;this.panner.coneOuterAngleb;this.panner.coneOuterGainc;return this},updateMatrixWorld:function(){var anew n,bnew aa,cnew n,dnew n;return function(e){E.prototype.updateMatrixWorld.call(this,e);if(!0!this.hasPlaybackControl||!1!this.isPlaying)if(this.matrixWorld.decompose(a,b,c),d.set(0,0,1).applyQuaternion(b),ethis.panner,e.positionX){var fthis.context.currentTime+this.listener.timeDelta;e.positionX.linearRampToValueAtTime(a.x,f);e.positionY.linearRampToValueAtTime(a.y,f);e.positionZ.linearRampToValueAtTime(a.z,f);e.orientationX.linearRampToValueAtTime(d.x,f);e.orientationY.linearRampToValueAtTime(d.y,f);e.orientationZ.linearRampToValueAtTime(d.z,f)}else e.setPosition(a.x,a.y,a.z),e.setOrientation(d.x,d.y,d.z)}}()});Object.assign(Ae.prototype,{getFrequencyData:function(){this.analyser.getByteFrequencyData(this.data);return this.data},getAverageFrequency:function(){for(var a0,bthis.getFrequencyData(),c0;cb.length;c++)a+bc;return a/b.length}});Object.assign(Be.prototype,{accumulate:function(a,b){var cthis.buffer,dthis.valueSize;aa*d+d;var ethis.cumulativeWeight;if(0e){for(e0;e!d;++e)ca+ece;eb}else e+b,this._mixBufferRegion(c,a,0,b/e,d);this.cumulativeWeighte},apply:function(a){var bthis.valueSize,cthis.buffer;aa*b+b;var dthis.cumulativeWeight,ethis.binding;this.cumulativeWeight0;1>d&&this._mixBufferRegion(c,a,3*b,1-d,b);db;for(var fb+b;d!f;++d)if(cd!cd+b){e.setValue(c,a);break}},saveOriginalState:function(){var athis.buffer,bthis.valueSize,c3*b;this.binding.getValue(a,c);for(var db;d!c;++d)adac+d%b;this.cumulativeWeight0},restoreOriginalState:function(){this.binding.setValue(this.buffer,3*this.valueSize)},_select:function(a,b,c,d,e){if(.5d)for(d0;d!e;++d)ab+dac+d},_slerp:function(a,b,c,d){aa.slerpFlat(a,b,a,b,a,c,d)},_lerp:function(a,b,c,d,e){for(var f1-d,g0;g!e;++g){var hb+g;ahah*f+ac+g*d}}});Object.assign(Hf.prototype,{getValue:function(a,b){this.bind();var cthis._bindingsthis._targetGroup.nCachedObjects_;void 0!c&&c.getValue(a,b)},setValue:function(a,b){for(var cthis._bindings,dthis._targetGroup.nCachedObjects_,ec.length;d!e;++d)cd.setValue(a,b)},bind:function(){for(var athis._bindings,bthis._targetGroup.nCachedObjects_,ca.length;b!c;++b)ab.bind()},unbind:function(){for(var athis._bindings,bthis._targetGroup.nCachedObjects_,ca.length;b!c;++b)ab.unbind()}});Object.assign(ma,{Composite:Hf,create:function(a,b,c){return a&&a.isAnimationObjectGroup?new ma.Composite(a,b,c):new ma(a,b,c)},sanitizeNodeName:function(){var a/\\\.:\//g;return function(b){return b.replace(/\s/g,_).replace(a,)}}(),parseTrackName:function(){var a^+\\\\\\.:\\/.replace(\\.,)+,b/((?:WC+\/:)*)/.source.replace(WC,^\\\\\\.:\\/);a/(WCOD+)?/.source.replace(WCOD,a);var c/(?:\.(WC+)(?:\(.+)\)?)?/.source.replace(WC,^\\\\\\.:\\/),d/\.(WC+)(?:\(.+)\)?/.source.replace(WC,^\\\\\\.:\\/),enew RegExp(^+b+a+c+d+$),fmaterial,materials,bones;return function(a){var be.exec(a);if(!b)throw Error(PropertyBinding: Cannot parse trackName: +a);b{nodeName:b2,objectName:b3,objectIndex:b4,propertyName:b5,propertyIndex:b6};var cb.nodeName&&b.nodeName.lastIndexOf(.);if(void 0!c&&-1!c){var db.nodeName.substring(c+1);-1!f.indexOf(d)&&(b.nodeNameb.nodeName.substring(0,c),b.objectNamed)}if(nullb.propertyName||0b.propertyName.length)throw Error(PropertyBinding: can not parse propertyName from trackName: +a);return b}}(),findNode:function(a,b){if(!b||b||rootb||.b||-1b||ba.name||ba.uuid)return a;if(a.skeleton){var ca.skeleton.getBoneByName(b);if(void 0!c)return c}if(a.children){var dfunction(a){for(var c0;ca.length;c++){var eac;if(e.nameb||e.uuidb||(ed(e.children)))return e}return null};if(ad(a.children))return a}return null}});Object.assign(ma.prototype,{_getValue_unavailable:function(){},_setValue_unavailable:function(){},BindingType:{Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3},Versioning:{None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2},GetterByBindingType:function(a,b){abthis.nodethis.propertyName},function(a,b){for(var cthis.resolvedProperty,d0,ec.length;d!e;++d)ab++cd},function(a,b){abthis.resolvedPropertythis.propertyIndex},function(a,b){this.resolvedProperty.toArray(a,b)},SetterByBindingTypeAndVersioning:function(a,b){this.targetObjectthis.propertyNameab},function(a,b){this.targetObjectthis.propertyNameab;this.targetObject.needsUpdate!0},function(a,b){this.targetObjectthis.propertyNameab;this.targetObject.matrixWorldNeedsUpdate!0},function(a,b){for(var cthis.resolvedProperty,d0,ec.length;d!e;++d)cdab++},function(a,b){for(var cthis.resolvedProperty,d0,ec.length;d!e;++d)cdab++;this.targetObject.needsUpdate!0},function(a,b){for(var cthis.resolvedProperty,d0,ec.length;d!e;++d)cdab++;this.targetObject.matrixWorldNeedsUpdate!0},function(a,b){this.resolvedPropertythis.propertyIndexab},function(a,b){this.resolvedPropertythis.propertyIndexab;this.targetObject.needsUpdate!0},function(a,b){this.resolvedPropertythis.propertyIndexab;this.targetObject.matrixWorldNeedsUpdate!0},function(a,b){this.resolvedProperty.fromArray(a,b)},function(a,b){this.resolvedProperty.fromArray(a,b);this.targetObject.needsUpdate!0},function(a,b){this.resolvedProperty.fromArray(a,b);this.targetObject.matrixWorldNeedsUpdate!0},getValue:function(a,b){this.bind();this.getValue(a,b)},setValue:function(a,b){this.bind();this.setValue(a,b)},bind:function(){var athis.node,bthis.parsedPath,cb.objectName,db.propertyName,eb.propertyIndex;a||(this.nodeama.findNode(this.rootNode,b.nodeName)||this.rootNode);this.getValuethis._getValue_unavailable;this.setValuethis._setValue_unavailable;if(a){if(c){var fb.objectIndex;switch(c){case materials:if(!a.material){console.error(THREE.PropertyBinding: Can not bind to material as node does not have a material.,this);return}if(!a.material.materials){console.error(THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.,this);return}aa.material.materials;break;case bones:if(!a.skeleton){console.error(THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.,this);return}aa.skeleton.bones;for(c0;ca.length;c++)if(ac.namef){fc;break}break;default:if(void 0ac){console.error(THREE.PropertyBinding: Can not bind to objectName of node undefined.,this);return}aac}if(void 0!f){if(void 0af){console.error(THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.,this,a);return}aaf}}fad;if(void 0f)console.error(THREE.PropertyBinding: Trying to update property for track: +b.nodeName+.+d+ but it wasnt found.,a);else{bthis.Versioning.None;this.targetObjecta;void 0!a.needsUpdate?bthis.Versioning.NeedsUpdate:void 0!a.matrixWorldNeedsUpdate&&(bthis.Versioning.MatrixWorldNeedsUpdate);cthis.BindingType.Direct;if(void 0!e){if(morphTargetInfluencesd){if(!a.geometry){console.error(THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.,this);return}if(a.geometry.isBufferGeometry){if(!a.geometry.morphAttributes){console.error(THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.,this);return}for(c0;cthis.node.geometry.morphAttributes.position.length;c++)if(a.geometry.morphAttributes.positionc.namee){ec;break}}else{if(!a.geometry.morphTargets){console.error(THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphTargets.,this);return}for(c0;cthis.node.geometry.morphTargets.length;c++)if(a.geometry.morphTargetsc.namee){ec;break}}}cthis.BindingType.ArrayElement;this.resolvedPropertyf;this.propertyIndexe}else void 0!f.fromArray&&void 0!f.toArray?(cthis.BindingType.HasFromToArray,this.resolvedPropertyf):Array.isArray(f)?(cthis.BindingType.EntireArray,this.resolvedPropertyf):this.propertyNamed;this.getValuethis.GetterByBindingTypec;this.setValuethis.SetterByBindingTypeAndVersioningcb}}else console.error(THREE.PropertyBinding: Trying to update node for track: +this.path+ but it wasnt found.)},unbind:function(){this.nodenull;this.getValuethis._getValue_unbound;this.setValuethis._setValue_unbound}});Object.assign(ma.prototype,{_getValue_unbound:ma.prototype.getValue,_setValue_unbound:ma.prototype.setValue});Object.assign(If.prototype,{isAnimationObjectGroup:!0,add:function(){for(var athis._objects,ba.length,cthis.nCachedObjects_,dthis._indicesByUUID,ethis._paths,fthis._parsedPaths,gthis._bindings,hg.length,kvoid 0,l0,narguments.length;l!n;++l){var qargumentsl,vq.uuid,tdv;if(void 0t){tb++;dvt;a.push(q);v0;for(var rh;v!r;++v)gv.push(new ma(q,ev,fv))}else if(tc){kat;var u--c;rau;dr.uuidt;atr;dvu;auq;v0;for(rh;v!r;++v){var wgv,zwt;wtwu;void 0z&&(znew ma(q,ev,fv));wuz}}else at!k&&console.error(THREE.AnimationObjectGroup: Different objects with the same UUID detected. Clean the caches or recreate your infrastructure when reloading scenes.)}this.nCachedObjects_c},remove:function(){for(var athis._objects,bthis.nCachedObjects_,cthis._indicesByUUID,dthis._bindings,ed.length,f0,garguments.length;f!g;++f){var hargumentsf,kh.uuid,lck;if(void 0!l&&l>b){var nb++,qan;cq.uuidl;alq;ckn;anh;h0;for(ke;h!k;++h){qdh;var vql;qlqn;qnv}}}this.nCachedObjects_b},uncache:function(){for(var athis._objects,ba.length,cthis.nCachedObjects_,dthis._indicesByUUID,ethis._bindings,fe.length,g0,harguments.length;g!h;++g){var kargumentsg.uuid,ldk;if(void 0!l)if(delete dk,lc){k--c;var nak,q--b,vaq;dn.uuidl;aln;dv.uuidk;akv;a.pop();n0;for(vf;n!v;++n){var ten,rtq;tltk;tkr;t.pop()}}else for(q--b,vaq,dv.uuidl,alv,a.pop(),n0,vf;n!v;++n)ten,tltq,t.pop()}this.nCachedObjects_c},subscribe_:function(a,b){var cthis._bindingsIndicesByPath,dca,ethis._bindings;if(void 0!d)return ed;var fthis._paths,gthis._parsedPaths,hthis._objects,kthis.nCachedObjects_,lArray(h.length);de.length;cad;f.push(a);g.push(b);e.push(l);ck;for(dh.length;c!d;++c)lcnew ma(hc,a,b);return l},unsubscribe_:function(a){var bthis._bindingsIndicesByPath,cba;if(void 0!c){var dthis._paths,ethis._parsedPaths,fthis._bindings,gf.length-1,hfg;bagc;fch;f.pop();eceg;e.pop();dcdg;d.pop()}}});Object.assign(Jf.prototype,{play:function(){this._mixer._activateAction(this);return this},stop:function(){this._mixer._deactivateAction(this);return this.reset()},reset:function(){this.paused!1;this.enabled!0;this.time0;this._loopCount-1;this._startTimenull;return this.stopFading().stopWarping()},isRunning:function(){return this.enabled&&!this.paused&&0!this.timeScale&&nullthis._startTime&&this._mixer._isActiveAction(this)},isScheduled:function(){return this._mixer._isActiveAction(this)},startAt:function(a){this._startTimea;return this},setLoop:function(a,b){this.loopa;this.repetitionsb;return this},setEffectiveWeight:function(a){this.weighta;this._effectiveWeightthis.enabled?a:0;return this.stopFading()},getEffectiveWeight:function(){return this._effectiveWeight},fadeIn:function(a){return this._scheduleFading(a,0,1)},fadeOut:function(a){return this._scheduleFading(a,1,0)},crossFadeFrom:function(a,b,c){a.fadeOut(b);this.fadeIn(b);if(c){cthis._clip.duration;var da._clip.duration,ec/d;a.warp(1,d/c,b);this.warp(e,1,b)}return this},crossFadeTo:function(a,b,c){return a.crossFadeFrom(this,b,c)},stopFading:function(){var athis._weightInterpolant;null!a&&(this._weightInterpolantnull,this._mixer._takeBackControlInterpolant(a));return this},setEffectiveTimeScale:function(a){this.timeScalea;this._effectiveTimeScalethis.paused?0:a;return this.stopWarping()},getEffectiveTimeScale:function(){return this._effectiveTimeScale},setDuration:function(a){this.timeScalethis._clip.duration/a;return this.stopWarping()},syncWith:function(a){this.timea.time;this.timeScalea.timeScale;return this.stopWarping()},halt:function(a){return this.warp(this._effectiveTimeScale,0,a)},warp:function(a,b,c){var dthis._mixer,ed.time,fthis._timeScaleInterpolant,gthis.timeScale;nullf&&(this._timeScaleInterpolantfd._lendControlInterpolant());df.parameterPositions;ff.sampleValues;d0e;d1e+c;f0a/g;f1b/g;return this},stopWarping:function(){var athis._timeScaleInterpolant;null!a&&(this._timeScaleInterpolantnull,this._mixer._takeBackControlInterpolant(a));return this},getMixer:function(){return this._mixer},getClip:function(){return this._clip},getRoot:function(){return this._localRoot||this._mixer._root},_update:function(a,b,c,d){if(this.enabled){var ethis._startTime;if(null!e){b(a-e)*c;if(0>b||0c)return;this._startTimenull;b*c}b*this._updateTimeScale(a);cthis._updateTime(b);athis._updateWeight(a);if(0a){bthis._interpolants;ethis._propertyBindings;for(var f0,gb.length;f!g;++f)bf.evaluate(c),ef.accumulate(d,a)}}else this._updateWeight(a)},_updateWeight:function(a){var b0;if(this.enabled){bthis.weight;var cthis._weightInterpolant;if(null!c){var dc.evaluate(a)0;b*d;a>c.parameterPositions1&&(this.stopFading(),0d&&(this.enabled!1))}}return this._effectiveWeightb},_updateTimeScale:function(a){var b0;if(!this.paused){bthis.timeScale;var cthis._timeScaleInterpolant;if(null!c){var dc.evaluate(a)0;b*d;a>c.parameterPositions1&&(this.stopWarping(),0b?this.paused!0:this.timeScaleb)}}return this._effectiveTimeScaleb},_updateTime:function(a){var bthis.time+a,cthis._clip.duration,dthis.loop,ethis._loopCount,f2202d;if(0a)return-1e?b:f&&1(e&1)?c-b:b;if(2200d)a:{if(-1e&&(this._loopCount0,this._setEndings(!0,!0,!1)),b>c)bc;else if(0>b)b0;else break a;this.clampWhenFinished?this.paused!0:this.enabled!1;this._mixer.dispatchEvent({type:finished,action:this,direction:0>a?-1:1})}else{-1e&&(0a?(e0,this._setEndings(!0,0this.repetitions,f)):this._setEndings(0this.repetitions,!0,f));if(b>c||0>b){dMath.floor(b/c);b-c*d;e+Math.abs(d);var gthis.repetitions-e;0>g?(this.clampWhenFinished?this.paused!0:this.enabled!1,b0a?c:0,this._mixer.dispatchEvent({type:finished,action:this,direction:0a?1:-1})):(1g?(a0>a,this._setEndings(a,!a,f)):this._setEndings(!1,!1,f),this._loopCounte,this._mixer.dispatchEvent({type:loop,action:this,loopDelta:d}))}if(f&&1(e&1))return this.timeb,c-b}return this.timeb},_setEndings:function(a,b,c){var dthis._interpolantSettings;c?(d.endingStart2401,d.endingEnd2401):(d.endingStarta?this.zeroSlopeAtStart?2401:2400:2402,d.endingEndb?this.zeroSlopeAtEnd?2401:2400:2402)},_scheduleFading:function(a,b,c){var dthis._mixer,ed.time,fthis._weightInterpolant;nullf&&(this._weightInterpolantfd._lendControlInterpolant());df.parameterPositions;ff.sampleValues;d0e;f0b;d1e+a;f1c;return this}});Ce.prototypeObject.assign(Object.create(ka.prototype),{constructor:Ce,_bindAction:function(a,b){var ca._localRoot||this._root,da._clip.tracks,ed.length,fa._propertyBindings;aa._interpolants;var gc.uuid,hthis._bindingsByRootAndName,khg;void 0k&&(k{},hgk);for(h0;h!e;++h){var ldh,nl.name,qkn;if(void 0q){qfh;if(void 0!q){nullq._cacheIndex&&(++q.referenceCount,this._addInactiveBinding(q,g,n));continue}qnew Be(ma.create(c,n,b&&b._propertyBindingsh.binding.parsedPath),l.ValueTypeName,l.getValueSize());++q.referenceCount;this._addInactiveBinding(q,g,n)}fhq;ah.resultBufferq.buffer}},_activateAction:function(a){if(!this._isActiveAction(a)){if(nulla._cacheIndex){var b(a._localRoot||this._root).uuid,ca._clip.uuid,dthis._actionsByClipc;this._bindAction(a,d&&d.knownActions0);this._addInactiveAction(a,c,b)}ba._propertyBindings;c0;for(db.length;c!d;++c){var ebc;0e.useCount++&&(this._lendBinding(e),e.saveOriginalState())}this._lendAction(a)}},_deactivateAction:function(a){if(this._isActiveAction(a)){for(var ba._propertyBindings,c0,db.length;c!d;++c){var ebc;0--e.useCount&&(e.restoreOriginalState(),this._takeBackBinding(e))}this._takeBackAction(a)}},_initMemoryManager:function(){this._actions;this._nActiveActions0;this._actionsByClip{};this._bindings;this._nActiveBindings0;this._bindingsByRootAndName{};this._controlInterpolants;this._nActiveControlInterpolants0;var athis;this.stats{actions:{get total(){return a._actions.length},get inUse(){return a._nActiveActions}},bindings:{get total(){return a._bindings.length},get inUse(){return a._nActiveBindings}},controlInterpolants:{get total(){return a._controlInterpolants.length},get inUse(){return a._nActiveControlInterpolants}}}},_isActiveAction:function(a){aa._cacheIndex;return null!a&&athis._nActiveActions},_addInactiveAction:function(a,b,c){var dthis._actions,ethis._actionsByClip,feb;void 0f?(f{knownActions:a,actionByRoot:{}},a._byClipCacheIndex0,ebf):(bf.knownActions,a._byClipCacheIndexb.length,b.push(a));a._cacheIndexd.length;d.push(a);f.actionByRootca},_removeInactiveAction:function(a){var bthis._actions,cbb.length-1,da._cacheIndex;c._cacheIndexd;bdc;b.pop();a._cacheIndexnull;ba._clip.uuid;cthis._actionsByClip;dcb;var ed.knownActions,fee.length-1,ga._byClipCacheIndex;f._byClipCacheIndexg;egf;e.pop();a._byClipCacheIndexnull;delete d.actionByRoot(a._localRoot||this._root).uuid;0e.length&&delete cb;this._removeInactiveBindingsForAction(a)},_removeInactiveBindingsForAction:function(a){aa._propertyBindings;for(var b0,ca.length;b!c;++b){var dab;0--d.referenceCount&&this._removeInactiveBinding(d)}},_lendAction:function(a){var bthis._actions,ca._cacheIndex,dthis._nActiveActions++,ebd;a._cacheIndexd;bda;e._cacheIndexc;bce},_takeBackAction:function(a){var bthis._actions,ca._cacheIndex,d--this._nActiveActions,ebd;a._cacheIndexd;bda;e._cacheIndexc;bce},_addInactiveBinding:function(a,b,c){var dthis._bindingsByRootAndName,edb,fthis._bindings;void 0e&&(e{},dbe);eca;a._cacheIndexf.length;f.push(a)},_removeInactiveBinding:function(a){var bthis._bindings,ca.binding,dc.rootNode.uuid;cc.path;var ethis._bindingsByRootAndName,fed,gbb.length-1;aa._cacheIndex;g._cacheIndexa;bag;b.pop();delete fc;a:{for(var h in f)break a;delete ed}},_lendBinding:function(a){var bthis._bindings,ca._cacheIndex,dthis._nActiveBindings++,ebd;a._cacheIndexd;bda;e._cacheIndexc;bce},_takeBackBinding:function(a){var bthis._bindings,ca._cacheIndex,d--this._nActiveBindings,ebd;a._cacheIndexd;bda;e._cacheIndexc;bce},_lendControlInterpolant:function(){var athis._controlInterpolants,bthis._nActiveControlInterpolants++,cab;void 0c&&(cnew ed(new Float32Array(2),new Float32Array(2),1,this._controlInterpolantsResultBuffer),c.__cacheIndexb,abc);return c},_takeBackControlInterpolant:function(a){var bthis._controlInterpolants,ca.__cacheIndex,d--this._nActiveControlInterpolants,ebd;a.__cacheIndexd;bda;e.__cacheIndexc;bce},_controlInterpolantsResultBuffer:new Float32Array(1),clipAction:function(a,b){var cb||this._root,dc.uuid;cstringtypeof a?Ga.findByName(c,a):a;anull!c?c.uuid:a;var ethis._actionsByClipa,fnull;if(void 0!e){fe.actionByRootd;if(void 0!f)return f;fe.knownActions0;nullc&&(cf._clip)}if(nullc)return null;bnew Jf(this,c,b);this._bindAction(b,f);this._addInactiveAction(b,a,d);return b},existingAction:function(a,b){var cb||this._root;bc.uuid;cstringtypeof a?Ga.findByName(c,a):a;athis._actionsByClipc?c.uuid:a;return void 0!a?a.actionByRootb||null:null},stopAllAction:function(){for(var athis._actions,bthis._nActiveActions,cthis._bindings,dthis._nActiveBindings,ethis._nActiveBindingsthis._nActiveActions0;e!b;++e)ae.reset();for(e0;e!d;++e)ce.useCount0;return this},update:function(a){a*this.timeScale;for(var bthis._actions,cthis._nActiveActions,dthis.time+a,eMath.sign(a),fthis._accuIndex^1,g0;g!c;++g)bg._update(d,a,e,f);athis._bindings;bthis._nActiveBindings;for(g0;g!b;++g)ag.apply(f);return this},getRoot:function(){return this._root},uncacheClip:function(a){var bthis._actions;aa.uuid;var cthis._actionsByClip,dca;if(void 0!d){dd.knownActions;for(var e0,fd.length;e!f;++e){var gde;this._deactivateAction(g);var hg._cacheIndex,kbb.length-1;g._cacheIndexnull;g._byClipCacheIndexnull;k._cacheIndexh;bhk;b.pop();this._removeInactiveBindingsForAction(g)}delete ca}},uncacheRoot:function(a){aa.uuid;var bthis._actionsByClip;for(d in b){var cbd.actionByRoota;void 0!c&&(this._deactivateAction(c),this._removeInactiveAction(c))}var dthis._bindingsByRootAndNamea;if(void 0!d)for(var e in d)ade,a.restoreOriginalState(),this._removeInactiveBinding(a)},uncacheAction:function(a,b){athis.existingAction(a,b);null!a&&(this._deactivateAction(a),this._removeInactiveAction(a))}});Ud.prototype.clonefunction(){return new Ud(void 0this.value.clone?this.value:this.value.clone())};De.prototypeObject.assign(Object.create(C.prototype),{constructor:De,isInstancedBufferGeometry:!0,copy:function(a){C.prototype.copy.call(this,a);this.maxInstancedCounta.maxInstancedCount;return this},clone:function(){return(new this.constructor).copy(this)}});Ee.prototypeObject.assign(Object.create(ub.prototype),{constructor:Ee,isInstancedInterleavedBuffer:!0,copy:function(a){ub.prototype.copy.call(this,a);this.meshPerAttributea.meshPerAttribute;return this}});Fe.prototypeObject.assign(Object.create(P.prototype),{constructor:Fe,isInstancedBufferAttribute:!0,copy:function(a){P.prototype.copy.call(this,a);this.meshPerAttributea.meshPerAttribute;return this}});Object.assign(Kf.prototype,{linePrecision:1,set:function(a,b){this.ray.set(a,b)},setFromCamera:function(a,b){b&&b.isPerspectiveCamera?(this.ray.origin.setFromMatrixPosition(b.matrixWorld),this.ray.direction.set(a.x,a.y,.5).unproject(b).sub(this.ray.origin).normalize()):b&&b.isOrthographicCamera?(this.ray.origin.set(a.x,a.y,(b.near+b.far)/(b.near-b.far)).unproject(b),this.ray.direction.set(0,0,-1).transformDirection(b.matrixWorld)):console.error(THREE.Raycaster: Unsupported camera type.)},intersectObject:function(a,b,c){cc||;Ge(a,this,c,b);c.sort(Lf);return c},intersectObjects:function(a,b,c){cc||;if(!1Array.isArray(a))return console.warn(THREE.Raycaster.intersectObjects: objects is not an Array.),c;for(var d0,ea.length;de;d++)Ge(ad,this,c,b);c.sort(Lf);return c}});Object.assign(Mf.prototype,{set:function(a,b,c){this.radiusa;this.phib;this.thetac;return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.radiusa.radius;this.phia.phi;this.thetaa.theta;return this},makeSafe:function(){this.phiMath.max(1E-6,Math.min(Math.PI-1E-6,this.phi));return this},setFromVector3:function(a){return this.setFromCartesianCoords(a.x,a.y,a.z)},setFromCartesianCoords:function(a,b,c){this.radiusMath.sqrt(a*a+b*b+c*c);0this.radius?this.phithis.theta0:(this.thetaMath.atan2(a,c),this.phiMath.acos(H.clamp(b/this.radius,-1,1)));return this}});Object.assign(Nf.prototype,{set:function(a,b,c){this.radiusa;this.thetab;this.yc;return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.radiusa.radius;this.thetaa.theta;this.ya.y;return this},setFromVector3:function(a){return this.setFromCartesianCoords(a.x,a.y,a.z)},setFromCartesianCoords:function(a,b,c){this.radiusMath.sqrt(a*a+c*c);this.thetaMath.atan2(a,c);this.yb;return this}});Object.assign(He.prototype,{set:function(a,b){this.min.copy(a);this.max.copy(b);return this},setFromPoints:function(a){this.makeEmpty();for(var b0,ca.length;bc;b++)this.expandByPoint(ab);return this},setFromCenterAndSize:function(){var anew B;return function(b,c){ca.copy(c).multiplyScalar(.5);this.min.copy(b).sub(c);this.max.copy(b).add(c);return this}}(),clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.min.copy(a.min);this.max.copy(a.max);return this},makeEmpty:function(){this.min.xthis.min.yInfinity;this.max.xthis.max.y-Infinity;return this},isEmpty:function(){return this.max.xthis.min.x||this.max.ythis.min.y},getCenter:function(a){void 0a&&(console.warn(THREE.Box2: .getCenter() target is now required),anew B);return this.isEmpty()?a.set(0,0):a.addVectors(this.min,this.max).multiplyScalar(.5)},getSize:function(a){void 0a&&(console.warn(THREE.Box2: .getSize() target is now required),anew B);return this.isEmpty()?a.set(0,0):a.subVectors(this.max,this.min)},expandByPoint:function(a){this.min.min(a);this.max.max(a);return this},expandByVector:function(a){this.min.sub(a);this.max.add(a);return this},expandByScalar:function(a){this.min.addScalar(-a);this.max.addScalar(a);return this},containsPoint:function(a){return a.xthis.min.x||a.x>this.max.x||a.ythis.min.y||a.y>this.max.y?!1:!0},containsBox:function(a){return this.min.xa.min.x&&a.max.xthis.max.x&&this.min.ya.min.y&&a.max.ythis.max.y},getParameter:function(a,b){void 0b&&(console.warn(THREE.Box2: .getParameter() target is now required),bnew B);return b.set((a.x-this.min.x)/(this.max.x-this.min.x),(a.y-this.min.y)/(this.max.y-this.min.y))},intersectsBox:function(a){return a.max.xthis.min.x||a.min.x>this.max.x||a.max.ythis.min.y||a.min.y>this.max.y?!1:!0},clampPoint:function(a,b){void 0b&&(console.warn(THREE.Box2: .clampPoint() target is now required),bnew B);return b.copy(a).clamp(this.min,this.max)},distanceToPoint:function(){var anew B;return function(b){return a.copy(b).clamp(this.min,this.max).sub(b).length()}}(),intersect:function(a){this.min.max(a.min);this.max.min(a.max);return this},union:function(a){this.min.min(a.min);this.max.max(a.max);return this},translate:function(a){this.min.add(a);this.max.add(a);return this},equals:function(a){return a.min.equals(this.min)&&a.max.equals(this.max)}});Object.assign(Ie.prototype,{set:function(a,b){this.start.copy(a);this.end.copy(b);return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.start.copy(a.start);this.end.copy(a.end);return this},getCenter:function(a){void 0a&&(console.warn(THREE.Line3: .getCenter() target is now required),anew n);return a.addVectors(this.start,this.end).multiplyScalar(.5)},delta:function(a){void 0a&&(console.warn(THREE.Line3: .delta() target is now required),anew n);return a.subVectors(this.end,this.start)},distanceSq:function(){return this.start.distanceToSquared(this.end)},distance:function(){return this.start.distanceTo(this.end)},at:function(a,b){void 0b&&(console.warn(THREE.Line3: .at() target is now required),bnew n);return this.delta(b).multiplyScalar(a).add(this.start)},closestPointToPointParameter:function(){var anew n,bnew n;return function(c,d){a.subVectors(c,this.start);b.subVectors(this.end,this.start);cb.dot(b);cb.dot(a)/c;d&&(cH.clamp(c,0,1));return c}}(),closestPointToPoint:function(a,b,c){athis.closestPointToPointParameter(a,b);void 0c&&(console.warn(THREE.Line3: .closestPointToPoint() target is now required),cnew n);return this.delta(c).multiplyScalar(a).add(this.start)},applyMatrix4:function(a){this.start.applyMatrix4(a);this.end.applyMatrix4(a);return this},equals:function(a){return a.start.equals(this.start)&&a.end.equals(this.end)}});md.prototypeObject.create(E.prototype);md.prototype.constructormd;md.prototype.isImmediateRenderObject!0;nd.prototypeObject.create(W.prototype);nd.prototype.constructornd;nd.prototype.updatefunction(){var anew n,bnew n,cnew pa;return function(){var da,b,c;this.object.updateMatrixWorld(!0);c.getNormalMatrix(this.object.matrixWorld);var ethis.object.matrixWorld,fthis.geometry.attributes.position,gthis.object.geometry;if(g&&g.isGeometry)for(var hg.vertices,kg.faces,lg0,nk.length;ln;l++)for(var qkl,v0,tq.vertexNormals.length;vt;v++){var rq.vertexNormalsv;a.copy(hqdv).applyMatrix4(e);b.copy(r).applyMatrix3(c).normalize().multiplyScalar(this.size).add(a);f.setXYZ(g,a.x,a.y,a.z);g+1;f.setXYZ(g,b.x,b.y,b.z);g+1}else if(g&&g.isBufferGeometry)for(dg.attributes.position,hg.attributes.normal,vg0,td.count;vt;v++)a.set(d.getX(v),d.getY(v),d.getZ(v)).applyMatrix4(e),b.set(h.getX(v),h.getY(v),h.getZ(v)),b.applyMatrix3(c).normalize().multiplyScalar(this.size).add(a),f.setXYZ(g,a.x,a.y,a.z),g+1,f.setXYZ(g,b.x,b.y,b.z),g+1;f.needsUpdate!0}}();mc.prototypeObject.create(E.prototype);mc.prototype.constructormc;mc.prototype.disposefunction(){this.cone.geometry.dispose();this.cone.material.dispose()};mc.prototype.updatefunction(){var anew n;return function(){this.light.updateMatrixWorld();var bthis.light.distance?this.light.distance:1E3,cb*Math.tan(this.light.angle);this.cone.scale.set(c,c,b);a.setFromMatrixPosition(this.light.target.matrixWorld);this.cone.lookAt(a);void 0!this.color?this.cone.material.color.set(this.color):this.cone.material.color.copy(this.light.color)}}();nc.prototypeObject.create(W.prototype);nc.prototype.constructornc;nc.prototype.updateMatrixWorldfunction(){var anew n,bnew J,cnew J;return function(d){var ethis.bones,fthis.geometry,gf.getAttribute(position);c.getInverse(this.root.matrixWorld);for(var h0,k0;he.length;h++){var leh;l.parent&&l.parent.isBone&&(b.multiplyMatrices(c,l.matrixWorld),a.setFromMatrixPosition(b),g.setXYZ(k,a.x,a.y,a.z),b.multiplyMatrices(c,l.parent.matrixWorld),a.setFromMatrixPosition(b),g.setXYZ(k+1,a.x,a.y,a.z),k+2)}f.getAttribute(position).needsUpdate!0;E.prototype.updateMatrixWorld.call(this,d)}}();oc.prototypeObject.create(va.prototype);oc.prototype.constructoroc;oc.prototype.disposefunction(){this.geometry.dispose();this.material.dispose()};oc.prototype.updatefunction(){void 0!this.color?this.material.color.set(this.color):this.material.color.copy(this.light.color)};pc.prototypeObject.create(da.prototype);pc.prototype.constructorpc;pc.prototype.updatefunction(){this.scale.set(.5*this.light.width,.5*this.light.height,1);if(void 0!this.color)this.material.color.set(this.color),this.children0.material.color.set(this.color);else{this.material.color.copy(this.light.color).multiplyScalar(this.light.intensity);var athis.material.color,bMath.max(a.r,a.g,a.b);1b&&a.multiplyScalar(1/b);this.children0.material.color.copy(this.material.color)}};pc.prototype.disposefunction(){this.geometry.dispose();this.material.dispose();this.children0.geometry.dispose();this.children0.material.dispose()};qc.prototypeObject.create(E.prototype);qc.prototype.constructorqc;qc.prototype.disposefunction(){this.children0.geometry.dispose();this.children0.material.dispose()};qc.prototype.updatefunction(){var anew n,bnew K,cnew K;return function(){var dthis.children0;if(void 0!this.color)this.material.color.set(this.color);else{var ed.geometry.getAttribute(color);b.copy(this.light.color);c.copy(this.light.groundColor);for(var f0,ge.count;fg;f++){var hfg/2?b:c;e.setXYZ(f,h.r,h.g,h.b)}e.needsUpdate!0}d.lookAt(a.setFromMatrixPosition(this.light.matrixWorld).negate())}}();od.prototypeObject.create(W.prototype);od.prototype.constructorod;Vd.prototypeObject.create(W.prototype);Vd.prototype.constructorVd;rc.prototypeObject.create(da.prototype);rc.prototype.constructorrc;rc.prototype.updatefunction(){function a(a,b,d,e){d(b-a)/d;t.setXYZ(k,0,0,0);l++;for(na;nb;n+d)qk+l,t.setXYZ(q,Math.sin(n)*c,0,Math.cos(n)*c),t.setXYZ(q+1,Math.sin(Math.min(n+d,b))*c,0,Math.cos(Math.min(n+d,b))*c),t.setXYZ(q+2,0,0,0),l+3;v.addGroup(k,l,e);k+l;l0}var bthis.audio,cthis.range,dthis.divisionsInnerAngle,ethis.divisionsOuterAngle,fH.degToRad(b.panner.coneInnerAngle);bH.degToRad(b.panner.coneOuterAngle);var gf/2,hb/2,k0,l0,n,q,vthis.geometry,tv.attributes.position;v.clearGroups();a(-h,-g,e,0);a(-g,g,d,1);a(g,h,e,0);t.needsUpdate!0;fb&&(this.material0.visible!1)};rc.prototype.disposefunction(){this.geometry.dispose();this.material0.dispose();this.material1.dispose()};pd.prototypeObject.create(W.prototype);pd.prototype.constructorpd;pd.prototype.updatefunction(){var anew n,bnew n,cnew pa;return function(){this.object.updateMatrixWorld(!0);c.getNormalMatrix(this.object.matrixWorld);var dthis.object.matrixWorld,ethis.geometry.attributes.position,fthis.object.geometry,gf.vertices;ff.faces;for(var h0,k0,lf.length;kl;k++){var nfk,qn.normal;a.copy(gn.a).add(gn.b).add(gn.c).divideScalar(3).applyMatrix4(d);b.copy(q).applyMatrix3(c).normalize().multiplyScalar(this.size).add(a);e.setXYZ(h,a.x,a.y,a.z);h+1;e.setXYZ(h,b.x,b.y,b.z);h+1}e.needsUpdate!0}}();sc.prototypeObject.create(E.prototype);sc.prototype.constructorsc;sc.prototype.disposefunction(){this.lightPlane.geometry.dispose();this.lightPlane.material.dispose();this.targetLine.geometry.dispose();this.targetLine.material.dispose()};sc.prototype.updatefunction(){var anew n,bnew n,cnew n;return function(){a.setFromMatrixPosition(this.light.matrixWorld);b.setFromMatrixPosition(this.light.target.matrixWorld);c.subVectors(b,a);this.lightPlane.lookAt(b);void 0!this.color?(this.lightPlane.material.color.set(this.color),this.targetLine.material.color.set(this.color)):(this.lightPlane.material.color.copy(this.light.color),this.targetLine.material.color.copy(this.light.color));this.targetLine.lookAt(b);this.targetLine.scale.zc.length()}}();qd.prototypeObject.create(W.prototype);qd.prototype.constructorqd;qd.prototype.updatefunction(){function a(a,g,h,k){d.set(g,h,k).unproject(e);aca;if(void 0!a)for(gb.getAttribute(position),h0,ka.length;hk;h++)g.setXYZ(ah,d.x,d.y,d.z)}var b,c,dnew n,enew Ua;return function(){bthis.geometry;cthis.pointMap;e.projectionMatrix.copy(this.camera.projectionMatrix);a(c,0,0,-1);a(t,0,0,1);a(n1,-1,-1,-1);a(n2,1,-1,-1);a(n3,-1,1,-1);a(n4,1,1,-1);a(f1,-1,-1,1);a(f2,1,-1,1);a(f3,-1,1,1);a(f4,1,1,1);a(u1,.7,1.1,-1);a(u2,-.7,1.1,-1);a(u3,0,2,-1);a(cf1,-1,0,1);a(cf2,1,0,1);a(cf3,0,-1,1);a(cf4,0,1,1);a(cn1,-1,0,-1);a(cn2,1,0,-1);a(cn3,0,-1,-1);a(cn4,0,1,-1);b.getAttribute(position).needsUpdate!0}}();db.prototypeObject.create(W.prototype);db.prototype.constructordb;db.prototype.updatefunction(){var anew Za;return function(b){void 0!b&&console.warn(THREE.BoxHelper: .update() has no longer arguments.);void 0!this.object&&a.setFromObject(this.object);if(!a.isEmpty()){ba.min;var ca.max,dthis.geometry.attributes.position,ed.array;e0c.x;e1c.y;e2c.z;e3b.x;e4c.y;e5c.z;e6b.x;e7b.y;e8c.z;e9c.x;e10b.y;e11c.z;e12c.x;e13c.y;e14b.z;e15b.x;e16c.y;e17b.z;e18b.x;e19b.y;e20b.z;e21c.x;e22b.y;e23b.z;d.needsUpdate!0;this.geometry.computeBoundingSphere()}}}();db.prototype.setFromObjectfunction(a){this.objecta;this.update();return this};db.prototype.copyfunction(a){W.prototype.copy.call(this,a);this.objecta.object;return this};db.prototype.clonefunction(){return(new this.constructor).copy(this)};rd.prototypeObject.create(W.prototype);rd.prototype.constructorrd;rd.prototype.updateMatrixWorldfunction(a){var bthis.box;b.isEmpty()||(b.getCenter(this.position),b.getSize(this.scale),this.scale.multiplyScalar(.5),E.prototype.updateMatrixWorld.call(this,a))};sd.prototypeObject.create(da.prototype);sd.prototype.constructorsd;sd.prototype.updateMatrixWorldfunction(a){var b-this.plane.constant;1E-8>Math.abs(b)&&(b1E-8);this.scale.set(.5*this.size,.5*this.size,b);this.children0.material.side0>b?1:0;this.lookAt(this.plane.normal);E.prototype.updateMatrixWorld.call(this,a)};var Wd,Je;eb.prototypeObject.create(E.prototype);eb.prototype.constructoreb;eb.prototype.setDirectionfunction(){var anew n,b;return function(c){.99999c.y?this.quaternion.set(0,0,0,1):-.99999>c.y?this.quaternion.set(1,0,0,0):(a.set(c.z,0,-c.x).normalize(),bMath.acos(c.y),this.quaternion.setFromAxisAngle(a,b))}}();eb.prototype.setLengthfunction(a,b,c){void 0b&&(b.2*a);void 0c&&(c.2*b);this.line.scale.set(1,Math.max(0,a-b),1);this.line.updateMatrix();this.cone.scale.set(c,b,c);this.cone.position.ya;this.cone.updateMatrix()};eb.prototype.setColorfunction(a){this.line.material.color.copy(a);this.cone.material.color.copy(a)};eb.prototype.copyfunction(a){E.prototype.copy.call(this,a,!1);this.line.copy(a.line);this.cone.copy(a.cone);return this};eb.prototype.clonefunction(){return(new this.constructor).copy(this)};td.prototypeObject.create(W.prototype);td.prototype.constructortd;L.createfunction(a,b){console.log(THREE.Curve.create() has been deprecated);a.prototypeObject.create(L.prototype);a.prototype.constructora;a.prototype.getPointb;return a};Object.assign(cb.prototype,{createPointsGeometry:function(a){console.warn(THREE.CurvePath: .createPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.);athis.getPoints(a);return this.createGeometry(a)},createSpacedPointsGeometry:function(a){console.warn(THREE.CurvePath: .createSpacedPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.);athis.getSpacedPoints(a);return this.createGeometry(a)},createGeometry:function(a){console.warn(THREE.CurvePath: .createGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.);for(var bnew G,c0,da.length;cd;c++){var eac;b.vertices.push(new n(e.x,e.y,e.z||0))}return b}});Object.assign(Pa.prototype,{fromPoints:function(a){console.warn(THREE.Path: .fromPoints() has been renamed to .setFromPoints().);this.setFromPoints(a)}});Pf.prototypeObject.create(oa.prototype);Qf.prototypeObject.create(oa.prototype);Ke.prototypeObject.create(oa.prototype);Object.assign(Ke.prototype,{initFromArray:function(){console.error(THREE.Spline: .initFromArray() has been removed.)},getControlPointsArray:function(){console.error(THREE.Spline: .getControlPointsArray() has been removed.)},reparametrizeByArcLength:function(){console.error(THREE.Spline: .reparametrizeByArcLength() has been removed.)}});od.prototype.setColorsfunction(){console.error(THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.)};nc.prototype.updatefunction(){console.error(THREE.SkeletonHelper: update() no longer needs to be called.)};Object.assign(kd.prototype,{extractUrlBase:function(a){console.warn(THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead.);return Pe.extractUrlBase(a)}});Object.assign(re.prototype,{setTexturePath:function(a){console.warn(THREE.ObjectLoader: .setTexturePath() has been renamed to .setResourcePath().);return this.setResourcePath(a)}});Object.assign(He.prototype,{center:function(a){console.warn(THREE.Box2: .center() has been renamed to .getCenter().);return this.getCenter(a)},empty:function(){console.warn(THREE.Box2: .empty() has been renamed to .isEmpty().);return this.isEmpty()},isIntersectionBox:function(a){console.warn(THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox().);return this.intersectsBox(a)},size:function(a){console.warn(THREE.Box2: .size() has been renamed to .getSize().);return this.getSize(a)}});Object.assign(Za.prototype,{center:function(a){console.warn(THREE.Box3: .center() has been renamed to .getCenter().);return this.getCenter(a)},empty:function(){console.warn(THREE.Box3: .empty() has been renamed to .isEmpty().);return this.isEmpty()},isIntersectionBox:function(a){console.warn(THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox().);return this.intersectsBox(a)},isIntersectionSphere:function(a){console.warn(THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere().);return this.intersectsSphere(a)},size:function(a){console.warn(THREE.Box3: .size() has been renamed to .getSize().);return this.getSize(a)}});Ie.prototype.centerfunction(a){console.warn(THREE.Line3: .center() has been renamed to .getCenter().);return this.getCenter(a)};Object.assign(H,{random16:function(){console.warn(THREE.Math: .random16() has been deprecated. Use Math.random() instead.);return Math.random()},nearestPowerOfTwo:function(a){console.warn(THREE.Math: .nearestPowerOfTwo() has been renamed to .floorPowerOfTwo().);return H.floorPowerOfTwo(a)},nextPowerOfTwo:function(a){console.warn(THREE.Math: .nextPowerOfTwo() has been renamed to .ceilPowerOfTwo().);return H.ceilPowerOfTwo(a)}});Object.assign(pa.prototype,{flattenToArrayOffset:function(a,b){console.warn(THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.);return this.toArray(a,b)},multiplyVector3:function(a){console.warn(THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead.);return a.applyMatrix3(this)},multiplyVector3Array:function(){console.error(THREE.Matrix3: .multiplyVector3Array() has been removed.)},applyToBuffer:function(a){console.warn(THREE.Matrix3: .applyToBuffer() has been removed. Use matrix.applyToBufferAttribute( attribute ) instead.);return this.applyToBufferAttribute(a)},applyToVector3Array:function(){console.error(THREE.Matrix3: .applyToVector3Array() has been removed.)}});Object.assign(J.prototype,{extractPosition:function(a){console.warn(THREE.Matrix4: .extractPosition() has been renamed to .copyPosition().);return this.copyPosition(a)},flattenToArrayOffset:function(a,b){console.warn(THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.);return this.toArray(a,b)},getPosition:function(){var a;return function(){void 0a&&(anew n);console.warn(THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead.);return a.setFromMatrixColumn(this,3)}}(),setRotationFromQuaternion:function(a){console.warn(THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion().);return this.makeRotationFromQuaternion(a)},multiplyToArray:function(){console.warn(THREE.Matrix4: .multiplyToArray() has been removed.)},multiplyVector3:function(a){console.warn(THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead.);return a.applyMatrix4(this)},multiplyVector4:function(a){console.warn(THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead.);return a.applyMatrix4(this)},multiplyVector3Array:function(){console.error(THREE.Matrix4: .multiplyVector3Array() has been removed.)},rotateAxis:function(a){console.warn(THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead.);a.transformDirection(this)},crossVector:function(a){console.warn(THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead.);return a.applyMatrix4(this)},translate:function(){console.error(THREE.Matrix4: .translate() has been removed.)},rotateX:function(){console.error(THREE.Matrix4: .rotateX() has been removed.)},rotateY:function(){console.error(THREE.Matrix4: .rotateY() has been removed.)},rotateZ:function(){console.error(THREE.Matrix4: .rotateZ() has been removed.)},rotateByAxis:function(){console.error(THREE.Matrix4: .rotateByAxis() has been removed.)},applyToBuffer:function(a){console.warn(THREE.Matrix4: .applyToBuffer() has been removed. Use matrix.applyToBufferAttribute( attribute ) instead.);return this.applyToBufferAttribute(a)},applyToVector3Array:function(){console.error(THREE.Matrix4: .applyToVector3Array() has been removed.)},makeFrustum:function(a,b,c,d,e,f){console.warn(THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead.);return this.makePerspective(a,b,d,c,e,f)}});Sa.prototype.isIntersectionLinefunction(a){console.warn(THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine().);return this.intersectsLine(a)};aa.prototype.multiplyVector3function(a){console.warn(THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead.);return a.applyQuaternion(this)};Object.assign(tb.prototype,{isIntersectionBox:function(a){console.warn(THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox().);return this.intersectsBox(a)},isIntersectionPlane:function(a){console.warn(THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane().);return this.intersectsPlane(a)},isIntersectionSphere:function(a){console.warn(THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere().);return this.intersectsSphere(a)}});Object.assign(ua.prototype,{area:function(){console.warn(THREE.Triangle: .area() has been renamed to .getArea().);return this.getArea()},barycoordFromPoint:function(a,b){console.warn(THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().);return this.getBarycoord(a,b)},midpoint:function(a){console.warn(THREE.Triangle: .midpoint() has been renamed to .getMidpoint().);return this.getMidpoint(a)},normal:function(a){console.warn(THREE.Triangle: .normal() has been renamed to .getNormal().);return this.getNormal(a)},plane:function(a){console.warn(THREE.Triangle: .plane() has been renamed to .getPlane().);return this.getPlane(a)}});Object.assign(ua,{barycoordFromPoint:function(a,b,c,d,e){console.warn(THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().);return ua.getBarycoord(a,b,c,d,e)},normal:function(a,b,c,d){console.warn(THREE.Triangle: .normal() has been renamed to .getNormal().);return ua.getNormal(a,b,c,d)}});Object.assign(kb.prototype,{extractAllPoints:function(a){console.warn(THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead.);return this.extractPoints(a)},extrude:function(a){console.warn(THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead.);return new yb(this,a)},makeGeometry:function(a){console.warn(THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead.);return new Ab(this,a)}});Object.assign(B.prototype,{fromAttribute:function(a,b,c){console.warn(THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute().);return this.fromBufferAttribute(a,b,c)},distanceToManhattan:function(a){console.warn(THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo().);return this.manhattanDistanceTo(a)},lengthManhattan:function(){console.warn(THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength().);return this.manhattanLength()}});Object.assign(n.prototype,{setEulerFromRotationMatrix:function(){console.error(THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.)},setEulerFromQuaternion:function(){console.error(THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.)},getPositionFromMatrix:function(a){console.warn(THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition().);return this.setFromMatrixPosition(a)},getScaleFromMatrix:function(a){console.warn(THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale().);return this.setFromMatrixScale(a)},getColumnFromMatrix:function(a,b){console.warn(THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn().);return this.setFromMatrixColumn(b,a)},applyProjection:function(a){console.warn(THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead.);return this.applyMatrix4(a)},fromAttribute:function(a,b,c){console.warn(THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute().);return this.fromBufferAttribute(a,b,c)},distanceToManhattan:function(a){console.warn(THREE.Vector3: .distanceToManhattan() has been renamed to .manhattanDistanceTo().);return this.manhattanDistanceTo(a)},lengthManhattan:function(){console.warn(THREE.Vector3: .lengthManhattan() has been renamed to .manhattanLength().);return this.manhattanLength()}});Object.assign(ba.prototype,{fromAttribute:function(a,b,c){console.warn(THREE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute().);return this.fromBufferAttribute(a,b,c)},lengthManhattan:function(){console.warn(THREE.Vector4: .lengthManhattan() has been renamed to .manhattanLength().);return this.manhattanLength()}});Object.assign(G.prototype,{computeTangents:function(){console.error(THREE.Geometry: .computeTangents() has been removed.)},computeLineDistances:function(){console.error(THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.)}});Object.assign(E.prototype,{getChildByName:function(a){console.warn(THREE.Object3D: .getChildByName() has been renamed to .getObjectByName().);return this.getObjectByName(a)},renderDepth:function(){console.warn(THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.)},translate:function(a,b){console.warn(THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead.);return this.translateOnAxis(b,a)},getWorldRotation:function(){console.error(THREE.Object3D: .getWorldRotation() has been removed. Use THREE.Object3D.getWorldQuaternion( target ) instead.)}});Object.defineProperties(E.prototype,{eulerOrder:{get:function(){console.warn(THREE.Object3D: .eulerOrder is now .rotation.order.);return this.rotation.order},set:function(a){console.warn(THREE.Object3D: .eulerOrder is now .rotation.order.);this.rotation.ordera}},useQuaternion:{get:function(){console.warn(THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.)},set:function(){console.warn(THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.)}}});Object.defineProperties(Hc.prototype,{objects:{get:function(){console.warn(THREE.LOD: .objects has been renamed to .levels.);return this.levels}}});Object.defineProperty(Bd.prototype,useVertexTexture,{get:function(){console.warn(THREE.Skeleton: useVertexTexture has been removed.)},set:function(){console.warn(THREE.Skeleton: useVertexTexture has been removed.)}});Ic.prototype.initBonesfunction(){console.error(THREE.SkinnedMesh: initBones() has been removed.)};Object.defineProperty(L.prototype,__arcLengthDivisions,{get:function(){console.warn(THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions.);return this.arcLengthDivisions},set:function(a){console.warn(THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions.);this.arcLengthDivisionsa}});S.prototype.setLensfunction(a,b){console.warn(THREE.PerspectiveCamera.setLens is deprecated. Use .setFocalLength and .filmGauge for a photographic setup.);void 0!b&&(this.filmGaugeb);this.setFocalLength(a)};Object.defineProperties(ia.prototype,{onlyShadow:{set:function(){console.warn(THREE.Light: .onlyShadow has been removed.)}},shadowCameraFov:{set:function(a){console.warn(THREE.Light: .shadowCameraFov is now .shadow.camera.fov.);this.shadow.camera.fova}},shadowCameraLeft:{set:function(a){console.warn(THREE.Light: .shadowCameraLeft is now .shadow.camera.left.);this.shadow.camera.lefta}},shadowCameraRight:{set:function(a){console.warn(THREE.Light: .shadowCameraRight is now .shadow.camera.right.);this.shadow.camera.righta}},shadowCameraTop:{set:function(a){console.warn(THREE.Light: .shadowCameraTop is now .shadow.camera.top.);this.shadow.camera.topa}},shadowCameraBottom:{set:function(a){console.warn(THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom.);this.shadow.camera.bottoma}},shadowCameraNear:{set:function(a){console.warn(THREE.Light: .shadowCameraNear is now .shadow.camera.near.);this.shadow.camera.neara}},shadowCameraFar:{set:function(a){console.warn(THREE.Light: .shadowCameraFar is now .shadow.camera.far.);this.shadow.camera.fara}},shadowCameraVisible:{set:function(){console.warn(THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.)}},shadowBias:{set:function(a){console.warn(THREE.Light: .shadowBias is now .shadow.bias.);this.shadow.biasa}},shadowDarkness:{set:function(){console.warn(THREE.Light: .shadowDarkness has been removed.)}},shadowMapWidth:{set:function(a){console.warn(THREE.Light: .shadowMapWidth is now .shadow.mapSize.width.);this.shadow.mapSize.widtha}},shadowMapHeight:{set:function(a){console.warn(THREE.Light: .shadowMapHeight is now .shadow.mapSize.height.);this.shadow.mapSize.heighta}}});Object.defineProperties(P.prototype,{length:{get:function(){console.warn(THREE.BufferAttribute: .length has been deprecated. Use .count instead.);return this.array.length}},copyIndicesArray:function(){console.error(THREE.BufferAttribute: .copyIndicesArray() has been removed.)}});Object.assign(C.prototype,{addIndex:function(a){console.warn(THREE.BufferGeometry: .addIndex() has been renamed to .setIndex().);this.setIndex(a)},addDrawCall:function(a,b,c){void 0!c&&console.warn(THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset.);console.warn(THREE.BufferGeometry: .addDrawCall() is now .addGroup().);this.addGroup(a,b)},clearDrawCalls:function(){console.warn(THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups().);this.clearGroups()},computeTangents:function(){console.warn(THREE.BufferGeometry: .computeTangents() has been removed.)},computeOffsets:function(){console.warn(THREE.BufferGeometry: .computeOffsets() has been removed.)}});Object.defineProperties(C.prototype,{drawcalls:{get:function(){console.error(THREE.BufferGeometry: .drawcalls has been renamed to .groups.);return this.groups}},offsets:{get:function(){console.warn(THREE.BufferGeometry: .offsets has been renamed to .groups.);return this.groups}}});Object.assign(Va.prototype,{getArrays:function(){console.error(THREE.ExtrudeBufferGeometry: .getArrays() has been removed.)},addShapeList:function(){console.error(THREE.ExtrudeBufferGeometry: .addShapeList() has been removed.)},addShape:function(){console.error(THREE.ExtrudeBufferGeometry: .addShape() has been removed.)}});Object.defineProperties(Ud.prototype,{dynamic:{set:function(){console.warn(THREE.Uniform: .dynamic has been removed. Use object.onBeforeRender() instead.)}},onUpdate:{value:function(){console.warn(THREE.Uniform: .onUpdate() has been removed. Use object.onBeforeRender() instead.);return this}}});Object.defineProperties(M.prototype,{wrapAround:{get:function(){console.warn(THREE.Material: .wrapAround has been removed.)},set:function(){console.warn(THREE.Material: .wrapAround has been removed.)}},overdraw:{get:function(){console.warn(THREE.Material: .overdraw has been removed.)},set:function(){console.warn(THREE.Material: .overdraw has been removed.)}},wrapRGB:{get:function(){console.warn(THREE.Material: .wrapRGB has been removed.);return new K}},shading:{get:function(){console.error(THREE.+this.type+: .shading has been removed. Use the boolean .flatShading instead.)},set:function(a){console.warn(THREE.+this.type+: .shading has been removed. Use the boolean .flatShading instead.);this.flatShading1a}}});Object.defineProperties(Ja.prototype,{metal:{get:function(){console.warn(THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead.);return!1},set:function(){console.warn(THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead)}}});Object.defineProperties(Ca.prototype,{derivatives:{get:function(){console.warn(THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives.);return this.extensions.derivatives},set:function(a){console.warn(THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives.);this.extensions.derivativesa}}});Object.assign(he.prototype,{clearTarget:function(a,b,c,d){console.warn(THREE.WebGLRenderer: .clearTarget() has been deprecated. Use .setRenderTarget() and .clear() instead.);this.setRenderTarget(a);this.clear(b,c,d)},animate:function(a){console.warn(THREE.WebGLRenderer: .animate() is now .setAnimationLoop().);this.setAnimationLoop(a)},getCurrentRenderTarget:function(){console.warn(THREE.WebGLRenderer: .getCurrentRenderTarget() is now .getRenderTarget().);return this.getRenderTarget()},getMaxAnisotropy:function(){console.warn(THREE.WebGLRenderer: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy().);return this.capabilities.getMaxAnisotropy()},getPrecision:function(){console.warn(THREE.WebGLRenderer: .getPrecision() is now .capabilities.precision.);return this.capabilities.precision},resetGLState:function(){console.warn(THREE.WebGLRenderer: .resetGLState() is now .state.reset().);return this.state.reset()},supportsFloatTextures:function(){console.warn(THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( OES_texture_float ).);return this.extensions.get(OES_texture_float)},supportsHalfFloatTextures:function(){console.warn(THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( OES_texture_half_float ).);return this.extensions.get(OES_texture_half_float)},supportsStandardDerivatives:function(){console.warn(THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( OES_standard_derivatives ).);return this.extensions.get(OES_standard_derivatives)},supportsCompressedTextureS3TC:function(){console.warn(THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( WEBGL_compressed_texture_s3tc ).);return this.extensions.get(WEBGL_compressed_texture_s3tc)},supportsCompressedTexturePVRTC:function(){console.warn(THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( WEBGL_compressed_texture_pvrtc ).);return this.extensions.get(WEBGL_compressed_texture_pvrtc)},supportsBlendMinMax:function(){console.warn(THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( EXT_blend_minmax ).);return this.extensions.get(EXT_blend_minmax)},supportsVertexTextures:function(){console.warn(THREE.WebGLRenderer: .supportsVertexTextures() is now .capabilities.vertexTextures.);return this.capabilities.vertexTextures},supportsInstancedArrays:function(){console.warn(THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( ANGLE_instanced_arrays ).);return this.extensions.get(ANGLE_instanced_arrays)},enableScissorTest:function(a){console.warn(THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest().);this.setScissorTest(a)},initMaterial:function(){console.warn(THREE.WebGLRenderer: .initMaterial() has been removed.)},addPrePlugin:function(){console.warn(THREE.WebGLRenderer: .addPrePlugin() has been removed.)},addPostPlugin:function(){console.warn(THREE.WebGLRenderer: .addPostPlugin() has been removed.)},updateShadowMap:function(){console.warn(THREE.WebGLRenderer: .updateShadowMap() has been removed.)},setFaceCulling:function(){console.warn(THREE.WebGLRenderer: .setFaceCulling() has been removed.)}});Object.defineProperties(he.prototype,{shadowMapEnabled:{get:function(){return this.shadowMap.enabled},set:function(a){console.warn(THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled.);this.shadowMap.enableda}},shadowMapType:{get:function(){return this.shadowMap.type},set:function(a){console.warn(THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type.);this.shadowMap.typea}},shadowMapCullFace:{get:function(){console.warn(THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.)},set:function(){console.warn(THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.)}}});Object.defineProperties(nf.prototype,{cullFace:{get:function(){console.warn(THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.)},set:function(){console.warn(THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.)}},renderReverseSided:{get:function(){console.warn(THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.)},set:function(){console.warn(THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.)}},renderSingleSided:{get:function(){console.warn(THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.)},set:function(){console.warn(THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.)}}});Object.defineProperties(mb.prototype,{activeCubeFace:{set:function(){console.warn(THREE.WebGLRenderTargetCube: .activeCubeFace has been removed. It is now the second parameter of WebGLRenderer.setRenderTarget().)}},activeMipMapLevel:{set:function(){console.warn(THREE.WebGLRenderTargetCube: .activeMipMapLevel has been removed. It is now the third parameter of WebGLRenderer.setRenderTarget().)}}});Object.defineProperties(Ra.prototype,{wrapS:{get:function(){console.warn(THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.);return this.texture.wrapS},set:function(a){console.warn(THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.);this.texture.wrapSa}},wrapT:{get:function(){console.warn(THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.);return this.texture.wrapT},set:function(a){console.warn(THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.);this.texture.wrapTa}},magFilter:{get:function(){console.warn(THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.);return this.texture.magFilter},set:function(a){console.warn(THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.);this.texture.magFiltera}},minFilter:{get:function(){console.warn(THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.);return this.texture.minFilter},set:function(a){console.warn(THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.);this.texture.minFiltera}},anisotropy:{get:function(){console.warn(THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.);return this.texture.anisotropy},set:function(a){console.warn(THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.);this.texture.anisotropya}},offset:{get:function(){console.warn(THREE.WebGLRenderTarget: .offset is now .texture.offset.);return this.texture.offset},set:function(a){console.warn(THREE.WebGLRenderTarget: .offset is now .texture.offset.);this.texture.offseta}},repeat:{get:function(){console.warn(THREE.WebGLRenderTarget: .repeat is now .texture.repeat.);return this.texture.repeat},set:function(a){console.warn(THREE.WebGLRenderTarget: .repeat is now .texture.repeat.);this.texture.repeata}},format:{get:function(){console.warn(THREE.WebGLRenderTarget: .format is now .texture.format.);return this.texture.format},set:function(a){console.warn(THREE.WebGLRenderTarget: .format is now .texture.format.);this.texture.formata}},type:{get:function(){console.warn(THREE.WebGLRenderTarget: .type is now .texture.type.);return this.texture.type},set:function(a){console.warn(THREE.WebGLRenderTarget: .type is now .texture.type.);this.texture.typea}},generateMipmaps:{get:function(){console.warn(THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.);return this.texture.generateMipmaps},set:function(a){console.warn(THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.);this.texture.generateMipmapsa}}});Object.defineProperties(sf.prototype,{standing:{set:function(){console.warn(THREE.WebVRManager: .standing has been removed.)}},userHeight:{set:function(){console.warn(THREE.WebVRManager: .userHeight has been removed.)}}});lc.prototype.loadfunction(a){console.warn(THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.);var bthis;(new ve).load(a,function(a){b.setBuffer(a)});return this};Ae.prototype.getDatafunction(){console.warn(THREE.AudioAnalyser: .getData() is now .getFrequencyData().);return this.getFrequencyData()};ld.prototype.updateCubeMapfunction(a,b){console.warn(THREE.CubeCamera: .updateCubeMap() is now .update().);return this.update(a,b)};lb.crossOriginvoid 0;lb.loadTexturefunction(a,b,c,d){console.warn(THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.);var enew Kd;e.setCrossOrigin(this.crossOrigin);ae.load(a,c,void 0,d);b&&(a.mappingb);return a};lb.loadTextureCubefunction(a,b,c,d){console.warn(THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.);var enew oe;e.setCrossOrigin(this.crossOrigin);ae.load(a,c,void 0,d);b&&(a.mappingb);return a};lb.loadCompressedTexturefunction(){console.error(THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.)};lb.loadCompressedTextureCubefunction(){console.error(THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.)};l.WebGLMultisampleRenderTargetZd;l.WebGLRenderTargetCubemb;l.WebGLRenderTargetRa;l.WebGLRendererhe;l.ShaderLibTa;l.UniformsLibI;l.UniformsUtilsgh;l.ShaderChunkU;l.FogExp2yd;l.Fogzd;l.SceneAd;l.SpriteGc;l.LODHc;l.SkinnedMeshIc;l.SkeletonBd;l.Boneie;l.Meshva;l.LineSegmentsW;l.LineLoopCd;l.Lineda;l.PointsUb;l.GroupSb;l.VideoTextureje;l.DataTexturenb;l.DataTexture3DQb;l.CompressedTextureVb;l.CubeTexture$a;l.CanvasTextureJc;l.DepthTextureKc;l.TextureV;l.AnimationLoaderCf;l.CompressedTextureLoaderDf;l.DataTextureLoaderne;l.CubeTextureLoaderoe;l.TextureLoaderKd;l.ObjectLoaderre;l.MaterialLoaderTd;l.BufferGeometryLoaderqe;l.DefaultLoadingManagerBa;l.LoadingManagerme;l.ImageLoadergd;l.ImageBitmapLoaderse;l.FontLoaderFf;l.FileLoaderKa;l.Loaderkd;l.LoaderUtilsPe;l.CacheLb;l.AudioLoaderve;l.SpotLightShadowMd;l.SpotLightNd;l.PointLightOd;l.RectAreaLightSd;l.HemisphereLightLd;l.DirectionalLightShadowPd;l.DirectionalLightQd;l.AmbientLightRd;l.LightShadowKb;l.Lightia;l.StereoCameraGf;l.PerspectiveCameraS;l.OrthographicCamerajd;l.CubeCamerald;l.ArrayCameraEc;l.CameraUa;l.AudioListenerxe;l.PositionalAudioze;l.AudioContextye;l.AudioAnalyserAe;l.Audiolc;l.VectorKeyframeTrackjc;l.StringKeyframeTrackJd;l.QuaternionKeyframeTrackfd;l.NumberKeyframeTrackic;l.ColorKeyframeTrackHd;l.BooleanKeyframeTrackGd;l.PropertyMixerBe;l.PropertyBindingma;l.KeyframeTrackra;l.AnimationUtilssa;l.AnimationObjectGroupIf;l.AnimationMixerCe;l.AnimationClipGa;l.UniformUd;l.InstancedBufferGeometryDe;l.BufferGeometryC;l.GeometryG;l.InterleavedBufferAttributeFc;l.InstancedInterleavedBufferEe;l.InterleavedBufferub;l.InstancedBufferAttributeFe;l.Face3Nb;l.Object3DE;l.RaycasterKf;l.Layersae;l.EventDispatcherka;l.Clockwe;l.QuaternionLinearInterpolantId;l.LinearInterpolanted;l.DiscreteInterpolantFd;l.CubicInterpolantEd;l.Interpolantwa;l.Triangleua;l.MathH;l.SphericalMf;l.CylindricalNf;l.PlaneSa;l.Frustumud;l.SphereHa;l.Raytb;l.Matrix4J;l.Matrix3pa;l.Box3Za;l.Box2He;l.Line3Ie;l.Eulerob;l.Vector4ba;l.Vector3n;l.Vector2B;l.Quaternionaa;l.ColorK;l.ImmediateRenderObjectmd;l.VertexNormalsHelpernd;l.SpotLightHelpermc;l.SkeletonHelpernc;l.PointLightHelperoc;l.RectAreaLightHelperpc;l.HemisphereLightHelperqc;l.GridHelperod;l.PolarGridHelperVd;l.PositionalAudioHelperrc;l.FaceNormalsHelperpd;l.DirectionalLightHelpersc;l.CameraHelperqd;l.BoxHelperdb;l.Box3Helperrd;l.PlaneHelpersd;l.ArrowHelpereb;l.AxesHelpertd;l.Shapekb;l.PathPa;l.ShapePathte;l.Fontue;l.CurvePathcb;l.CurveL;l.ImageUtilslb;l.ShapeUtilsab;l.WebGLUtilsof;l.WireframeGeometryWb;l.ParametricGeometryLc;l.ParametricBufferGeometryXb;l.TetrahedronGeometryNc;l.TetrahedronBufferGeometryYb;l.OctahedronGeometryOc;l.OctahedronBufferGeometryvb;l.IcosahedronGeometryPc;l.IcosahedronBufferGeometryZb;l.DodecahedronGeometryQc;l.DodecahedronBufferGeometry$b;l.PolyhedronGeometryMc;l.PolyhedronBufferGeometryAa;l.TubeGeometryRc;l.TubeBufferGeometrywb;l.TorusKnotGeometrySc;l.TorusKnotBufferGeometryac;l.TorusGeometryTc;l.TorusBufferGeometrybc;l.TextGeometryYc;l.TextBufferGeometrycc;l.SphereGeometryZc;l.SphereBufferGeometryzb;l.RingGeometry$c;l.RingBufferGeometrydc;l.PlaneGeometryBc;l.PlaneBufferGeometrysb;l.LatheGeometryad;l.LatheBufferGeometryec;l.ShapeGeometryAb;l.ShapeBufferGeometryBb;l.ExtrudeGeometryyb;l.ExtrudeBufferGeometryVa;l.EdgesGeometryfc;l.ConeGeometrybd;l.ConeBufferGeometrycd;l.CylinderGeometryCb;l.CylinderBufferGeometrybb;l.CircleGeometrydd;l.CircleBufferGeometrygc;l.BoxGeometryOb;l.CubeGeometryOb;l.BoxBufferGeometryrb;l.ShadowMaterialDb;l.SpriteMaterialjb;l.RawShaderMaterialhc;l.ShaderMaterialCa;l.PointsMaterialIa;l.MeshPhysicalMaterialEb;l.MeshStandardMaterialWa;l.MeshPhongMaterialJa;l.MeshToonMaterialFb;l.MeshNormalMaterialGb;l.MeshLambertMaterialHb;l.MeshDepthMaterialgb;l.MeshDistanceMaterialhb;l.MeshBasicMaterialya;l.MeshMatcapMaterialIb;l.LineDashedMaterialJb;l.LineBasicMaterialR;l.MaterialM;l.Float64BufferAttributezc;l.Float32BufferAttributeF;l.Uint32BufferAttributeqb;l.Int32BufferAttributeyc;l.Uint16BufferAttributepb;l.Int16BufferAttributexc;l.Uint8ClampedBufferAttributewc;l.Uint8BufferAttributevc;l.Int8BufferAttributeuc;l.BufferAttributeP;l.ArcCurvekc;l.CatmullRomCurve3oa;l.CubicBezierCurveLa;l.CubicBezierCurve3Xa;l.EllipseCurveEa;l.LineCurveja;l.LineCurve3Ma;l.QuadraticBezierCurveNa;l.QuadraticBezierCurve3Ya;l.SplineCurveOa;l.REVISION102;l.MOUSE{LEFT:0,MIDDLE:1,RIGHT:2};l.CullFaceNone0;l.CullFaceBack1;l.CullFaceFront2;l.CullFaceFrontBack3;l.FrontFaceDirectionCW0;l.FrontFaceDirectionCCW1;l.BasicShadowMap0;l.PCFShadowMap1;l.PCFSoftShadowMap2;l.FrontSide0;l.BackSide1;l.DoubleSide2;l.FlatShading1;l.SmoothShading2;l.NoColors0;l.FaceColors1;l.VertexColors2;l.NoBlending0;l.NormalBlending1;l.AdditiveBlending2;l.SubtractiveBlending3;l.MultiplyBlending4;l.CustomBlending5;l.AddEquation100;l.SubtractEquation101;l.ReverseSubtractEquation102;l.MinEquation103;l.MaxEquation104;l.ZeroFactor200;l.OneFactor201;l.SrcColorFactor202;l.OneMinusSrcColorFactor203;l.SrcAlphaFactor204;l.OneMinusSrcAlphaFactor205;l.DstAlphaFactor206;l.OneMinusDstAlphaFactor207;l.DstColorFactor208;l.OneMinusDstColorFactor209;l.SrcAlphaSaturateFactor210;l.NeverDepth0;l.AlwaysDepth1;l.LessDepth2;l.LessEqualDepth3;l.EqualDepth4;l.GreaterEqualDepth5;l.GreaterDepth6;l.NotEqualDepth7;l.MultiplyOperation0;l.MixOperation1;l.AddOperation2;l.NoToneMapping0;l.LinearToneMapping1;l.ReinhardToneMapping2;l.Uncharted2ToneMapping3;l.CineonToneMapping4;l.ACESFilmicToneMapping5;l.UVMapping300;l.CubeReflectionMapping301;l.CubeRefractionMapping302;l.EquirectangularReflectionMapping303;l.EquirectangularRefractionMapping304;l.SphericalReflectionMapping305;l.CubeUVReflectionMapping306;l.CubeUVRefractionMapping307;l.RepeatWrapping1E3;l.ClampToEdgeWrapping1001;l.MirroredRepeatWrapping1002;l.NearestFilter1003;l.NearestMipMapNearestFilter1004;l.NearestMipMapLinearFilter1005;l.LinearFilter1006;l.LinearMipMapNearestFilter1007;l.LinearMipMapLinearFilter1008;l.UnsignedByteType1009;l.ByteType1010;l.ShortType1011;l.UnsignedShortType1012;l.IntType1013;l.UnsignedIntType1014;l.FloatType1015;l.HalfFloatType1016;l.UnsignedShort4444Type1017;l.UnsignedShort5551Type1018;l.UnsignedShort565Type1019;l.UnsignedInt248Type1020;l.AlphaFormat1021;l.RGBFormat1022;l.RGBAFormat1023;l.LuminanceFormat1024;l.LuminanceAlphaFormat1025;l.RGBEFormat1023;l.DepthFormat1026;l.DepthStencilFormat1027;l.RedFormat1028;l.RGB_S3TC_DXT1_Format33776;l.RGBA_S3TC_DXT1_Format33777;l.RGBA_S3TC_DXT3_Format33778;l.RGBA_S3TC_DXT5_Format33779;l.RGB_PVRTC_4BPPV1_Format35840;l.RGB_PVRTC_2BPPV1_Format35841;l.RGBA_PVRTC_4BPPV1_Format35842;l.RGBA_PVRTC_2BPPV1_Format35843;l.RGB_ETC1_Format36196;l.RGBA_ASTC_4x4_Format37808;l.RGBA_ASTC_5x4_Format37809;l.RGBA_ASTC_5x5_Format37810;l.RGBA_ASTC_6x5_Format37811;l.RGBA_ASTC_6x6_Format37812;l.RGBA_ASTC_8x5_Format37813;l.RGBA_ASTC_8x6_Format37814;l.RGBA_ASTC_8x8_Format37815;l.RGBA_ASTC_10x5_Format37816;l.RGBA_ASTC_10x6_Format37817;l.RGBA_ASTC_10x8_Format37818;l.RGBA_ASTC_10x10_Format37819;l.RGBA_ASTC_12x10_Format37820;l.RGBA_ASTC_12x12_Format37821;l.LoopOnce2200;l.LoopRepeat2201;l.LoopPingPong2202;l.InterpolateDiscrete2300;l.InterpolateLinear2301;l.InterpolateSmooth2302;l.ZeroCurvatureEnding2400;l.ZeroSlopeEnding2401;l.WrapAroundEnding2402;l.TrianglesDrawMode0;l.TriangleStripDrawMode1;l.TriangleFanDrawMode2;l.LinearEncoding3E3;l.sRGBEncoding3001;l.GammaEncoding3007;l.RGBEEncoding3002;l.LogLuvEncoding3003;l.RGBM7Encoding3004;l.RGBM16Encoding3005;l.RGBDEncoding3006;l.BasicDepthPacking3200;l.RGBADepthPacking3201;l.TangentSpaceNormalMap0;l.ObjectSpaceNormalMap1;l.Face4function(a,b,c,d,e,f,g){console.warn(THREE.Face4 has been removed. A THREE.Face3 will be created instead.);return new Nb(a,b,c,e,f,g)};l.LineStrip0;l.LinePieces1;l.MeshFaceMaterialfunction(a){console.warn(THREE.MeshFaceMaterial has been removed. Use an Array instead.);return a};l.MultiMaterialfunction(a){void 0a&&(a);console.warn(THREE.MultiMaterial has been removed. Use an Array instead.);a.isMultiMaterial!0;a.materialsa;a.clonefunction(){return a.slice()};return a};l.PointCloudfunction(a,b){console.warn(THREE.PointCloud has been renamed to THREE.Points.);return new Ub(a,b)};l.Particlefunction(a){console.warn(THREE.Particle has been renamed to THREE.Sprite.);return new Gc(a)};l.ParticleSystemfunction(a,b){console.warn(THREE.ParticleSystem has been renamed to THREE.Points.);return new Ub(a,b)};l.PointCloudMaterialfunction(a){console.warn(THREE.PointCloudMaterial has been renamed to THREE.PointsMaterial.);return new Ia(a)};l.ParticleBasicMaterialfunction(a){console.warn(THREE.ParticleBasicMaterial has been renamed to THREE.PointsMaterial.);return new Ia(a)};l.ParticleSystemMaterialfunction(a){console.warn(THREE.ParticleSystemMaterial has been renamed to THREE.PointsMaterial.);return new Ia(a)};l.Vertexfunction(a,b,c){console.warn(THREE.Vertex has been removed. Use THREE.Vector3 instead.);return new n(a,b,c)};l.DynamicBufferAttributefunction(a,b){console.warn(THREE.DynamicBufferAttribute has been removed. Use new THREE.BufferAttribute().setDynamic( true ) instead.);return(new P(a,b)).setDynamic(!0)};l.Int8Attributefunction(a,b){console.warn(THREE.Int8Attribute has been removed. Use new THREE.Int8BufferAttribute() instead.);return new uc(a,b)};l.Uint8Attributefunction(a,b){console.warn(THREE.Uint8Attribute has been removed. Use new THREE.Uint8BufferAttribute() instead.);return new vc(a,b)};l.Uint8ClampedAttributefunction(a,b){console.warn(THREE.Uint8ClampedAttribute has been removed. Use new THREE.Uint8ClampedBufferAttribute() instead.);return new wc(a,b)};l.Int16Attributefunction(a,b){console.warn(THREE.Int16Attribute has been removed. Use new THREE.Int16BufferAttribute() instead.);return new xc(a,b)};l.Uint16Attributefunction(a,b){console.warn(THREE.Uint16Attribute has been removed. Use new THREE.Uint16BufferAttribute() instead.);return new pb(a,b)};l.Int32Attributefunction(a,b){console.warn(THREE.Int32Attribute has been removed. Use new THREE.Int32BufferAttribute() instead.);return new yc(a,b)};l.Uint32Attributefunction(a,b){console.warn(THREE.Uint32Attribute has been removed. Use new THREE.Uint32BufferAttribute() instead.);return new qb(a,b)};l.Float32Attributefunction(a,b){console.warn(THREE.Float32Attribute has been removed. Use new THREE.Float32BufferAttribute() instead.);return new F(a,b)};l.Float64Attributefunction(a,b){console.warn(THREE.Float64Attribute has been removed. Use new THREE.Float64BufferAttribute() instead.);return new zc(a,b)};l.ClosedSplineCurve3Pf;l.SplineCurve3Qf;l.SplineKe;l.AxisHelperfunction(a){console.warn(THREE.AxisHelper has been renamed to THREE.AxesHelper.);return new td(a)};l.BoundingBoxHelperfunction(a,b){console.warn(THREE.BoundingBoxHelper has been deprecated. Creating a THREE.BoxHelper instead.);return new db(a,b)};l.EdgesHelperfunction(a,b){console.warn(THREE.EdgesHelper has been removed. Use THREE.EdgesGeometry instead.);return new W(new fc(a.geometry),new R({color:void 0!b?b:16777215}))};l.WireframeHelperfunction(a,b){console.warn(THREE.WireframeHelper has been removed. Use THREE.WireframeGeometry instead.);return new W(new Wb(a.geometry),new R({color:void 0!b?b:16777215}))};l.XHRLoaderfunction(a){console.warn(THREE.XHRLoader has been renamed to THREE.FileLoader.);return new Ka(a)};l.BinaryTextureLoaderfunction(a){console.warn(THREE.BinaryTextureLoader has been renamed to THREE.DataTextureLoader.);return new ne(a)};l.GeometryUtils{merge:function(a,b,c){console.warn(THREE.GeometryUtils: .merge() has been moved to Geometry. Use geometry.merge( geometry2, matrix, materialIndexOffset ) instead.);if(b.isMesh){b.matrixAutoUpdate&&b.updateMatrix();var db.matrix;bb.geometry}a.merge(b,d,c)},center:function(a){console.warn(THREE.GeometryUtils: .center() has been moved to Geometry. Use geometry.center() instead.);return a.center()}};l.Projectorfunction(){console.error(THREE.Projector has been moved to /examples/js/renderers/Projector.js.);this.projectVectorfunction(a,b){console.warn(THREE.Projector: .projectVector() is now vector.project().);a.project(b)};this.unprojectVectorfunction(a,b){console.warn(THREE.Projector: .unprojectVector() is now vector.unproject().);a.unproject(b)};this.pickingRayfunction(){console.error(THREE.Projector: .pickingRay() is now raycaster.setFromCamera().)}};l.CanvasRendererfunction(){console.error(THREE.CanvasRenderer has been removed)};l.JSONLoaderfunction(){console.error(THREE.JSONLoader has been removed.)};l.SceneUtils{createMultiMaterialObject:function(){console.error(THREE.SceneUtils has been moved to /examples/js/utils/SceneUtils.js)},detach:function(){console.error(THREE.SceneUtils has been moved to /examples/js/utils/SceneUtils.js)},attach:function(){console.error(THREE.SceneUtils has been moved to /examples/js/utils/SceneUtils.js)}};l.LensFlarefunction(){console.error(THREE.LensFlare has been moved to /examples/js/objects/Lensflare.js)};Object.defineProperty(l,__esModule,{value:!0})});/script>!-- end Simple Custom CSS and JS -->!-- start Simple Custom CSS and JS -->script type2149538ebfc05c59ae30118a-text/javascript>!function(e,n){objecttypeof exports&&undefined!typeof module?module.exportsn():functiontypeof define&&define.amd?define(n):e.uosn()}(this,function(){var e;function n(){for(var n,t,oe.length;o--;)t(neo)11?(pageYOffset/(document.body.scrollHeight-innerHeight)-n0)/(n1-n0):(pageYOffset-n0)/(n1-n0),n2(t0?0:t>1?1:t)}return function(t,o,f,i){return(ie.push(t,o,f))>1||addEventListener(scroll,n),function(t){e.splice(i-1,1),t&&removeEventListener(scroll,n)}}});/script>!-- end Simple Custom CSS and JS --> script type2149538ebfc05c59ae30118a-text/javascript> (function($) { $(head).append(style idhcode-addon-custom-css typetext/css>.hcode-column-1{min-height:667px !important;}.hcode-column-2{min-height:667 !important;}/style>); })(jQuery); /script> script src/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js data-cf-settings2149538ebfc05c59ae30118a-|49 defer>/script>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]