{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?7e02","webpack:///./src/assets/images/oono-s.jpg","webpack:///./src/views/UploadEventsHistory.vue?0f87","webpack:///./src/components/AppliedUserTags.vue?d7df","webpack:///./src/assets/images/2_no_clouds_4k.jpg","webpack:///./src/assets/images/elev_bump_4k.jpg","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/views/UserProfile.vue?89d2","webpack:///./src/components/PopupModal.vue?d3c4","webpack:///./src/App.vue?a4d2","webpack:///./src/components/OwcHeader.vue?3cc0","webpack:///./src/components/LoggedInUserActions.vue?3584","webpack:///src/components/LoggedInUserActions.vue","webpack:///./src/components/LoggedInUserActions.vue?b5ac","webpack:///./src/components/LoggedInUserActions.vue","webpack:///src/components/OwcHeader.vue","webpack:///./src/components/OwcHeader.vue?3df8","webpack:///./src/components/OwcHeader.vue","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue","webpack:///./src/views/Home.vue?d81c","webpack:///./src/components/UserDashboardTile.vue?f86a","webpack:///src/components/UserDashboardTile.vue","webpack:///./src/components/UserDashboardTile.vue?5448","webpack:///./src/components/UserDashboardTile.vue","webpack:///./src/components/TagUsageStats.vue?9ab6","webpack:///src/components/TagUsageStats.vue","webpack:///./src/components/TagUsageStats.vue?b13e","webpack:///./src/components/TagUsageStats.vue","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///./src/views/Home.vue","webpack:///./src/mixins/owcMixin.js","webpack:///./src/store/actions/authActions.js","webpack:///./src/store/actions/eventActions.js","webpack:///./src/store/actions/tagEventActions.js","webpack:///./src/store/actions/tagActions.js","webpack:///./src/store/actions/planningActions.js","webpack:///./src/store/actions/googleMapsApiActions.js","webpack:///./src/store/actions/filterEventActions.js","webpack:///./src/store/actions/index.js","webpack:///./src/store/mutations.js","webpack:///./src/store/state.js","webpack:///./src/store/getters.js","webpack:///./src/store/index.js","webpack:///./src/views/Login.vue?a36a","webpack:///src/views/Login.vue","webpack:///./src/views/Login.vue?5da6","webpack:///./src/views/Login.vue","webpack:///./src/views/UserProfile.vue?27be","webpack:///./src/components/ConfirmDialogue.vue?cbdc","webpack:///./src/components/PopupModal.vue?c16b","webpack:///src/components/PopupModal.vue","webpack:///./src/components/PopupModal.vue?e971","webpack:///./src/components/PopupModal.vue","webpack:///src/components/ConfirmDialogue.vue","webpack:///./src/components/ConfirmDialogue.vue?9714","webpack:///./src/components/ConfirmDialogue.vue","webpack:///src/views/UserProfile.vue","webpack:///./src/views/UserProfile.vue?9311","webpack:///./src/views/UserProfile.vue","webpack:///./src/views/CreateAccount.vue?628c","webpack:///src/views/CreateAccount.vue","webpack:///./src/views/CreateAccount.vue?369e","webpack:///./src/views/CreateAccount.vue","webpack:///./src/views/ResetPassword.vue?7c42","webpack:///src/views/ResetPassword.vue","webpack:///./src/views/ResetPassword.vue?719d","webpack:///./src/views/ResetPassword.vue","webpack:///./src/views/RestoreSession.vue?74c9","webpack:///src/views/RestoreSession.vue","webpack:///./src/views/RestoreSession.vue?060f","webpack:///./src/views/RestoreSession.vue","webpack:///./src/views/EditStations.vue?2f28","webpack:///src/views/EditStations.vue","webpack:///./src/views/EditStations.vue?0b93","webpack:///./src/views/EditStations.vue","webpack:///./src/router/authRoutes.js","webpack:///./src/views/Event.vue?a2e6","webpack:///./src/components/EarthPlot.vue?b710","webpack:///./src/assets/js/occelmnt.js","webpack:///src/components/EarthPlot.vue","webpack:///./src/assets/js/gmaps.js","webpack:///./src/components/EarthPlot.vue?d285","webpack:///./src/components/EarthPlot.vue","webpack:///./src/components/PredictionsSummary.vue?2f1d","webpack:///./src/components/OrbitSolutionInfo.vue?f617","webpack:///src/components/OrbitSolutionInfo.vue","webpack:///./src/components/OrbitSolutionInfo.vue?92ce","webpack:///./src/components/OrbitSolutionInfo.vue","webpack:///src/components/PredictionsSummary.vue","webpack:///./src/components/PredictionsSummary.vue?fa84","webpack:///./src/components/PredictionsSummary.vue","webpack:///./src/components/TagList.vue?b32d","webpack:///src/components/TagList.vue","webpack:///./src/components/TagList.vue?0d97","webpack:///./src/components/TagList.vue","webpack:///./src/components/TagAgreements.vue?516f","webpack:///src/components/TagAgreements.vue","webpack:///./src/components/TagAgreements.vue?a90a","webpack:///./src/components/TagAgreements.vue","webpack:///./src/components/CommunityTagEvent.vue?5cdc","webpack:///src/components/CommunityTagEvent.vue","webpack:///./src/components/CommunityTagEvent.vue?4a4b","webpack:///./src/components/CommunityTagEvent.vue","webpack:///./src/components/ObjectLink.vue?f329","webpack:///src/components/ObjectLink.vue","webpack:///./src/components/ObjectLink.vue?9750","webpack:///./src/components/ObjectLink.vue","webpack:///./src/components/StarLink.vue?4635","webpack:///src/components/StarLink.vue","webpack:///./src/components/StarLink.vue?4e98","webpack:///./src/components/StarLink.vue","webpack:///./src/components/OccultWatcherPlot.vue?a7bd","webpack:///src/components/OccultWatcherPlot.vue","webpack:///./src/components/OccultWatcherPlot.vue?0b0c","webpack:///./src/components/OccultWatcherPlot.vue","webpack:///./src/components/StationSort.vue?c611","webpack:///src/components/StationSort.vue","webpack:///./src/components/StationSort.vue?6848","webpack:///./src/components/StationSort.vue","webpack:///./src/components/NearbyStarSummary.vue?b3bc","webpack:///src/components/NearbyStarSummary.vue","webpack:///./src/components/NearbyStarSummary.vue?fdb8","webpack:///./src/components/NearbyStarSummary.vue","webpack:///src/views/Event.vue","webpack:///./src/views/Event.vue?e804","webpack:///./src/views/Event.vue","webpack:///./src/views/EventPrediction.vue?43a2","webpack:///./src/components/RaValue.vue?f8ee","webpack:///src/components/RaValue.vue","webpack:///./src/components/RaValue.vue?d3f0","webpack:///./src/components/RaValue.vue","webpack:///./src/components/DecValue.vue?9082","webpack:///src/components/DecValue.vue","webpack:///./src/components/DecValue.vue?3e05","webpack:///./src/components/DecValue.vue","webpack:///./src/components/EventGoogleMap.vue?3d94","webpack:///./src/assets/js/fundPlane.js","webpack:///./src/assets/js/xephem.js","webpack:///./src/components/ObservingSiteEditor.vue?a409","webpack:///src/components/ObservingSiteEditor.vue","webpack:///./src/components/ObservingSiteEditor.vue?5b91","webpack:///./src/components/ObservingSiteEditor.vue","webpack:///./src/components/ObservationReportEditor.vue?fdf0","webpack:///src/components/ObservationReportEditor.vue","webpack:///./src/components/ObservationReportEditor.vue?e6e0","webpack:///./src/components/ObservationReportEditor.vue","webpack:///src/components/EventGoogleMap.vue","webpack:///./src/components/EventGoogleMap.vue?97f5","webpack:///./src/components/EventGoogleMap.vue","webpack:///./src/components/ChangePredictionDropdown.vue?3aa6","webpack:///src/components/ChangePredictionDropdown.vue","webpack:///./src/components/ChangePredictionDropdown.vue?f10d","webpack:///./src/components/ChangePredictionDropdown.vue","webpack:///./src/components/ErrorEllipses.vue?34de","webpack:///src/components/ErrorEllipses.vue","webpack:///./src/components/ErrorEllipses.vue?bb6e","webpack:///./src/components/ErrorEllipses.vue","webpack:///src/views/EventPrediction.vue","webpack:///./src/views/EventPrediction.vue?6c9f","webpack:///./src/views/EventPrediction.vue","webpack:///./src/views/EventSearch.vue?26fe","webpack:///./src/components/SearchByObject.vue?c188","webpack:///src/components/SearchByObject.vue","webpack:///./src/components/SearchByObject.vue?d444","webpack:///./src/components/SearchByObject.vue","webpack:///./src/components/SearchPastEvents.vue?baf1","webpack:///./src/components/TagPicker.vue?5601","webpack:///src/components/TagPicker.vue","webpack:///./src/components/TagPicker.vue?17de","webpack:///./src/components/TagPicker.vue","webpack:///src/components/SearchPastEvents.vue","webpack:///./src/components/SearchPastEvents.vue?7d1a","webpack:///./src/components/SearchPastEvents.vue","webpack:///./src/components/SearchByStar.vue?70bc","webpack:///src/components/SearchByStar.vue","webpack:///./src/components/SearchByStar.vue?3cad","webpack:///./src/components/SearchByStar.vue","webpack:///src/views/EventSearch.vue","webpack:///./src/views/EventSearch.vue?3b9c","webpack:///./src/views/EventSearch.vue","webpack:///./src/views/EventSearchAdvanced.vue?cabf","webpack:///./src/components/OwPositionBox.vue?32fb","webpack:///src/components/OwPositionBox.vue","webpack:///./src/components/OwPositionBox.vue?78c8","webpack:///./src/components/OwPositionBox.vue","webpack:///./src/components/ZoomedGoogleMap.vue?de43","webpack:///src/components/ZoomedGoogleMap.vue","webpack:///./src/components/ZoomedGoogleMap.vue?12d9","webpack:///./src/components/ZoomedGoogleMap.vue","webpack:///src/views/EventSearchAdvanced.vue","webpack:///./src/views/EventSearchAdvanced.vue?2541","webpack:///./src/views/EventSearchAdvanced.vue","webpack:///./src/views/CampaignEvents.vue?f314","webpack:///./src/components/TagInfo.vue?26fd","webpack:///src/components/TagInfo.vue","webpack:///./src/components/TagInfo.vue?86c0","webpack:///./src/components/TagInfo.vue","webpack:///src/views/CampaignEvents.vue","webpack:///./src/views/CampaignEvents.vue?1870","webpack:///./src/views/CampaignEvents.vue","webpack:///./src/router/eventRoutes.js","webpack:///./src/views/LocateEvent.vue?58a5","webpack:///src/views/LocateEvent.vue","webpack:///./src/views/LocateEvent.vue?d04d","webpack:///./src/views/LocateEvent.vue","webpack:///./src/router/extRoutes.js","webpack:///./src/views/Tags.vue?8ffd","webpack:///./src/components/UpdateTag.vue?058c","webpack:///src/components/UpdateTag.vue","webpack:///./src/components/UpdateTag.vue?7e34","webpack:///./src/components/UpdateTag.vue","webpack:///src/views/Tags.vue","webpack:///./src/views/Tags.vue?9679","webpack:///./src/views/Tags.vue","webpack:///./src/views/Filters.vue?7fc3","webpack:///src/views/Filters.vue","webpack:///./src/views/Filters.vue?920e","webpack:///./src/views/Filters.vue","webpack:///./src/views/TagEvents.vue?c13a","webpack:///src/views/TagEvents.vue","webpack:///./src/views/TagEvents.vue?da8a","webpack:///./src/views/TagEvents.vue","webpack:///./src/views/UploadEvents.vue?4dcb","webpack:///./src/components/AppliedUserTags.vue?7ef5","webpack:///src/components/AppliedUserTags.vue","webpack:///./src/components/AppliedUserTags.vue?eba4","webpack:///./src/components/AppliedUserTags.vue","webpack:///./src/components/AvailableUserTags.vue?0cc6","webpack:///src/components/AvailableUserTags.vue","webpack:///./src/components/AvailableUserTags.vue?be30","webpack:///./src/components/AvailableUserTags.vue","webpack:///src/views/UploadEvents.vue","webpack:///./src/views/UploadEvents.vue?cb16","webpack:///./src/views/UploadEvents.vue","webpack:///./src/views/UploadEventsHistory.vue?a3b7","webpack:///./src/components/Period.vue?2616","webpack:///src/components/Period.vue","webpack:///./src/components/Period.vue?2fda","webpack:///./src/components/Period.vue","webpack:///src/views/UploadEventsHistory.vue","webpack:///./src/views/UploadEventsHistory.vue?079a","webpack:///./src/views/UploadEventsHistory.vue","webpack:///./src/router/taggingRoutes.js","webpack:///./src/router/index.js","webpack:///./src/filters/dateTimeFilters.js","webpack:///./src/filters/astronomyFilters.js","webpack:///./src/filters/filters.js","webpack:///./src/main.js","webpack:///./src/components/OccultWatcherPlot.vue?a30c","webpack:///./src/components/StationSort.vue?3433","webpack:///./src/views/Filters.vue?366f","webpack:///./src/components/ThemeSelector.vue?3128","webpack:///src/components/ThemeSelector.vue","webpack:///./src/components/ThemeSelector.vue?902a","webpack:///./src/components/ThemeSelector.vue","webpack:///./src/views/LocateEvent.vue?d005","webpack:///./src/views/CampaignEvents.vue?06db","webpack:///./src/components/ErrorEllipses.vue?e011","webpack:///./src/components/EventGoogleMap.vue?7f31","webpack:///./src/views/CreateAccount.vue?c916","webpack:///./src/components/ChangePredictionDropdown.vue?881d","webpack:///./src/assets/images/user.png","webpack:///./src/components/ConfirmDialogue.vue?9b24","webpack:///./src/components/SearchByObject.vue?50b9","webpack:///./src/assets/js/three.js","webpack:///./src/components/ZoomedGoogleMap.vue?6c5a","webpack:///./src/views/Login.vue?bd5f","webpack:///./src/components/AvailableUserTags.vue?fdd5","webpack:///./src/components/TagAgreements.vue?82ab","webpack:///./src/views/Event.vue?8b98","webpack:///./src/components/SearchPastEvents.vue?7682","webpack:///./src/components/OwPositionBox.vue?787e","webpack:///./src/views/EventSearchAdvanced.vue?f498","webpack:///./src/assets/images/imageLoadSpinner.gif"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","jsonpScriptSrc","p","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","map","webpackContext","req","id","webpackContextResolve","code","keys","_vm","this","_h","$createElement","_c","_self","directives","rawName","expression","arg","$route","meta","headerless","_e","staticRenderFns","staticClass","attrs","_v","_m","tagEventsVisible","isLoggedInUserFeedMaintainer","viewPortVisible","staticStyle","_s","viewPortSize","currentUser","on","logIn","scopedSlots","_u","fn","proxy","userProfile","logOut","component","components","OwcHeader","resize","methods","showLoader","_l","ti","params","campaignId","ref","href","descr","_f","lastEvent","UserDashboardTile","TagUsageStats","sleep","ms","hasPassedUtc","timeVal","moment","utc","String","isBefore","degToStr","deg","retVal","Math","floor","debug","process","REPORT_NOT_REPORTED","REPORT_MISS","REPORT_CLOUDED","REPORT_FAILED","REPORT_POSITIVE","REPORT_NOT_OBSERVED","REPORT_NOT_REDUCED","showToast","title","delay","endsWith","response","status","trace","$bvToast","toast","variant","solid","autoHideDelay","toaster","addOwStationClasses","stations","hasReportData","filter","x","report","st","cls","getStationClass","cloud","cloud0to9","round","loginUser","userAndPass","commit","owcMixin","getUrl","axios","auth","username","user","password","pass","withCredentials","log","save","sessionDurMin","localStorage","setItem","getItem","loginUserWithOwSessionId","owSessionId","headers","login","logoutUser","ensureCurrentUser","gettingUserInfo","loadUserProfile","saveUserProfile","profile","post","loadUserOAuthClient","loadUserSites","deleteSavedSite","_","site","postUrl","updateSavedSite","addSavedSite","putUrl","put","createUser","resetPassword","clearUserProfile","setRestoreSessionFlag","flag","searchEvents","form","astNo","date","bufferDays","combinedRes","searchEventsByObjectId","objectId","taggedOnly","searchPastEvents","tags","join","observer","limit","tabIndex","searchEventsByTag","countries","minRank","searchEventsByStar","ra","de","starIdentifier","searchEventById","eventId","searchEventPrediction","predSrc","searchMyEventPrediction","setPreferredPrediction","predictionId","getEventStations","searchEventsCampaignIdWithAuth","epPart","observed","resolveStar","starId","encodeURIComponent","getTotalEventsInfo","requestEventPredictionUpdate","requestChangeDefaultPrediction","frm","predId","locateEvent","ast","tag","occelmntid","accept","communityTagEvent","tagId","singleTagEvent","reProcessFile","fileId","loadUploadEventsInfo","pageNo","pageSize","loadUploadEventLog","loadPredictionSources","loadTagPairs","loadPolygonPairs","loadCommunityTagsInfo","loadCampaignTagsInfo","loadTags","allTags","selectedTagGroup","loadCommunityTags","loadSingleEventUserTags","updateTag","patchUrl","desciption","url","patch","toggleSelectedTag","clearSelectedTags","loadTagUsage","planningCancelStation","stationId","success","planningUpdateStation","planningAddStation","planningReportObservation","duration","comment","API_KEY_JS","MAPS_WEB_API_BASE_URL","OPEN_ELEVATION_WEB_API_BASE_URL","getElevation","lat","lng","results","elevation","getOpenElevation","loadUserFilters","addUserFilter","updateUserFilter","deleteUserFilter","deleteUrl","delete","filterEvents","filterEvents2","authActions","eventActions","tagEventActions","tagActions","planningActions","googleMapsApiActions","filterEventActions","setViewPortSize","setSelectedMapLocation","loc","loadServerVersionInfo","dummyMethod","SET_EVENTS","state","payload","eventList","SET_FILTERED_EVENTS","perf","filteredEventList","filteredEventExecInfo","SET_CURR_EVENT","currentEvent","SET_CURR_PREDICTION","currentPrediction","SET_CURR_EVENT_STATIONS","currentEventStations","SET_TOTALS_INFO","totalEventsInfo","Date","now","SET_BOOTSTRAP_VIEW_PORT","bsViewPortSize","SET_LOGGED_IN_USER","JSON","stringify","SET_NEW_USER_SESSION","getTime","SET_TAG_PAIRS","tagPairs","SET_GEOPOLY_PAIRS","polygonPairs","SET_TAGS","tagList","UPDATE_TAG","TOGGLE_SELECTED_TAG","index","selectedTagIds","indexOf","selectedTagId","CLEAR_SELECTED_TAGS","SET_UPLOAD_EVENTS","uploadEventsList","entries","uploadEventsTotalPages","pages","uploadEventsTotalRows","rows","SET_UPLOAD_EVENT_LOG","uploadEventLog","SET_PREDICTION_SOURCES","predictionSources","SET_RESTORE_SESSION_FLAG","restoreSessionFlag","SET_SELECTED_MAP_LOCATION","selectedMapLocation","SET_USER_PROFILE","SET_USER_SITES","userSites","SET_USER_FILTERS","userFilters","SET_STAR_INFO","resolvedStar","SET_COMMUNITY_TAGS","communityTags","SET_CAMPAIGN_TAGS","campaignTags","SET_TAG_USAGE","tagUsage","SET_SERVER_VERSION_INFO","serverVersionInfo","SET_USER_OAUTH_CLIENT","userOAuthClient","navigating","eventSearchResult","filterEventSearchResult","filterEventSearchExecInfo","currentEventResult","totalEventsInfoResult","currentUserProfile","currentUserSites","currentUserFilters","currentUserMainRole","owcRoles","isSystemAdmin","adminFlag","isOwcAdmin","isOwcAdminOrFeedMaintaner","currentUserOAuthClient","loadedTags","selectedTags","selectedTag","deselectedTags","orbitSources","orbits","starSources","stars","polygons","community","adHocCampaignTags","flags","luckyStarCampaignTags","tagUsageFutureEvents","rightNow","isAfter","Vue","use","Vuex","Store","strict","mutations","actions","getters","style","backgroundImage","bgImageUrl","class","required","domProps","$event","composing","$set","errors","first","Array","isArray","rememberme","_i","$$a","$$el","$$c","checked","$$v","$$i","concat","onLogin","activeTabChanged","model","callback","profileTab","showSubmitLoader","onUpdateProfile","Name","ClientId","ClientSecret","selectedSite","selectSite","Lng","Lat","Alt","editSite","deleteSite","addSite","addSiteMode","showModal","resetModal","handleOk","modifiers","handleCancel","modalShow","siteForm","isSubmitting","decimal","min_value","max_value","setAutoAltitude","_cancel","cancelButton","_confirm","okButton","_t","email","confirmed","password2","onCreateAccount","onResetPassword","isFailedPost","redirectCountDown","path","Login","public","UserProfile","CreateAccount","ResetPassword","RestoreSession","EditStations","foundEvent","errored","asteroid","star","time","objClass","magDropAffectedByNearbyStars","rank","isAster","asterMag","gaia","starMag","ruwe","nearby","comb","drop","star4","comb4","drop4","star8","comb8","drop8","mag","magDrop","maxDur","updReqAllowed","updateRequestSubmitted","requestUpdate","predictions","default","pred","requestChangeDefault","updPending","updMessages","geo","ctryName","openDefaultPrediction","occel","shadowDur","from","to","isOccultMapLoaded","isOccultMapLoading","showOccultMap","imageSpinnerUrl","occultMapErrored","occulMapImgUrl","viewPortChanged","Occelmnt","debugMode","update","subStlrLng","SubstellarLongRad","THREE","degToRad","SubstellarLatRad","subStlrLat","SubSolarLongRad","subSolrLng","SubSolarLatRad","subSolrLat","XatMin","xMin","YatMin","yMin","dX","dY","shadowWidthEarthRadii","shadowWidth","errorAsIncreaseInPathWidths","shdwIncrPathWidths","parse540String","sqrt","D","dH","halfShadow","EARTH_PLOT_FACTOR","halfSigma","centerLineTranslation","sign","pathRotation","PI","atan","shadowLine1","fundPlaneGeometry","shadowLineMat","rotation","set","camera","y","z","translateZ","rotateZ","translateX","scene","add","shadowLine2","sigmaLine1","sigmaLineMat","sigmaLine2","remove","distance","sin","cos","position","lookAt","lightDistance","light","plotShadow","lines","split","totalChars","ObjectName","substr","trim","ObjectNumber","StarName","eventYear","parseInt","eventMonth","eventDay","EventDate","parseFloat","canvas","CANVAS_WIDTH","clientWidth","CANVAS_HEIGHT","clientHeight","geometry","loader","setCrossOrigin","material","load","require","bumpMap","bumpScale","needsUpdate","globeMesh","animate","requestAnimationFrame","renderer","render","antialias","setPixelRatio","devicePixelRatio","setSize","domElement","toDateString","transparent","opacity","color","resolveInitPromise","rejectInitPromise","openPrediction","predIdForUpdate","pendingUpdate","defPredUser","updated","orbDate","orbSlnId","errpw","errtime","shiftInfo","wrn","startsWith","taggedBy","agreement","onTagClicked","onRedirectToLogin","onTagsModalShown","comunityTagEvent","ssdSearchId","gaiaStar","ra16","de16","starName","panelWidth","panelHeight","themeBackground","plt","hshw","hsgw","station","secr","cord","siteHeight","bid","announcementMode","kmTick","plotScale","width","km","hasCloudData","dist","obs","repText","cmtmt","weaText","closestStarBrightEnoughtToMention","magDropAffectedByMoreThanHalfMag","nbMags","magDropAffectedHint","magAffected","nbDist","magsTruncated","nbMg","displayMags","displayDistance","succcess","foundPrediction","objectDisplayName","evt","midTime","eventHasPassed","isTagged","isCustomPreferredPrediction","canBeMadePreferredPrediction","setAsPreferredPrediction","preds","earth","subStLng","subStLat","fPlane","defaultStationLocation","pw","elps_maj","elps_min","basis","elps_pa","combMag","dropV","obj","dia","vsf","solarElng","dropR","moonPhase","moonElng","constl","dia_mas","ra_2000","de_2000","mV","mR","mB","dbl_info","gflags","num","diaErr","diasrc","dRaHr","moons","dianfo","diaRow","includes","diaArcSec","dDecHr","rings","occEllipse","starEllipse","astEllipse","jplErr","smaa","smia","theta","pmRa","pmDe","plx","epoch","hr","min","sec_whole","sec_frac","cancelStationEditing","submitStation","submitObservationReport","cancelReportObservation","owStations","FundPlane","asteroidDiameterAugmented","halfWidthAugmentation","fPlaneDecRad","substellarLong","subSolarLat_OfDate","subSolarLng_OfDate","d2X","d3X","d2Y","d3Y","tFrom","tTo","md","verticalScaleFactor","ta","limitId","factor","abs","chordPathByTime","distKm","rv","valid","latDeg","NaN","lngDeg","num2","num3","num6","num7","atan2","num8","num9","num10","num11","num12","num13","num14","num15","num16","x1","num17","validPath","centrePathByTime","lngLeftSigma","latLeftSigma","lngLeft","latLeft","lngCentre","latCentre","tCentre","centreLineValid","num1","tan","num4","num5","starAz","starAlt","asin","sunAlt","lngRight","latRight","lngRightSigma","latRightSigma","altMsl","RADIAN","EARTH_RADIUS","geoidAltitude","geoidHeight","getGeoidHeight","tP","pCos","pSin","f","g","f1","g1","N2","loopCounter","tY","X","Y","H1","minD","lngDeg1","trunc","latDeg1","geoidHeightPoint1","getSingleGeoidHeightPoint","geoidHeightPoint2","geoidHeightPoint3","geoidHeightPoint4","GEOID_HEIGHT_DATA","geoHeight","API_KEY_OW","CALLBACK_NAME","initialized","google","initPromise","init","async","defer","querySelector","xephem","ZERO_TICKS","ma","nu","ea","fea","dla","corr","mjd","degrad","deps","dpsi","t2","a","b","ls","ld","nm","tls","tnm","tld","lsn","rsn","an","anomaly","a1","b1","c1","d1","e1","h1","dl","dr","sw","q","eps","obliquity","nut","nutation","seps","ceps","sy","cy","ty","cx","sx","range","year","getFullYear","month","getMonth","dy","getDate","getHours","getMinutes","sec","getSeconds","JD_from_Date","formatedDate","Number","day","jd","parse","getSunPositionFromMoment","dec","getMJD","sunPos","sunpos","sunEcl","ecleq_aux","raddeg","siderial","altitude","latitude","raInHours","decInDeg","degToRadian","lng1","acos","lng2","long1","lat1","long2","lat2","calcBearing","ALongitude","ALatitude","CLongitude","CLatitude","w","v","asinVal","max","acosVal","lon","gmst","localSiderealTime","H","az","currentStation","isEditing","currAltMsl","$$selectedVal","options","selected","val","_value","multiple","onCancelClicked","onSubmitClicked","repChanged","isNumber","fixedComment","fixedCommentChanged","isReported","own","defaultLocation","res","stMsl","stAlt","mk","predictionChanged","sel","preferred","orbSrc","starSrc","ell","rx","ry","pa","toFixed","masTick","mas","$props","maj","showObjectIdHint","regex","onDatePick","setBuffer","onSearchEvents","totTE","fromDate","toDate","submitted","foundEventsList","objectClass","openEvent","msElapsed","eventTags","onTagsChanged","setMaxResults","totPE","totPPE","stSmry","pos","neg","noobs","norep","disabled","addTag","removeTag","alias","stopPropagation","preventDefault","searchDesc","search","option","onOptionClick","availableOptions","pickedTags","onResolveStar","resolvedStarSearchId","elapsedTime","resolveSubmitted","daysAhead","setDaysAhead","filters","onCurrFilterChanged","orderByReferences","onFilterEvents","showFilterExplain","locations","distanceReferences","inclDTO","mapDisplayOptions","onMapDisplayOptionsChanged","displayOptions","mapDisplay","onAutoZoomChanged","onForceShowMinAperChanged","submittedFilter","distFrom","siteName","minDur","aperture","detectionFrames","maxEPW","maxEPWEnabled","minProb","minAltitude","selectedEvent","selectEvent","locTime","prob","sigPW","alt","travelDist","mgaDiff","minAper","expl","owcIds","find","Pass","Description","foundEventsExecInfo","PreHandleTime","PreSearchTime","TotalExecTime","TotalDbTime","TotalFilterTime","TotalEventCalcTime","EventsChecked","EventsMatched","EventsExcludedDec","EventsExcludedDayTime","EventsExcludedAlt","EventsExcludedMagDurDrop","EventsExcludedProbability","EventsExcludedTagFilter","TotalTaggedPredLoadTime","EventsExcludedFastDistCheckFilter","EventsExcludedSigPWFilter","openSelectedEvent","onAddStation","cachedFilter","savedFilter","titleDescr","searchTab","taggedMode","dateHeading","searchResultTab","tagInfo","selectedEventStations","imgUrl","Event","EventPrediction","EventSearch","EventSearchAdvanced","CampaignEvents","tagged","locatedEvents","navigateToEvent","occelmntId","LocateEvent","foundTags","_q","onChange","numberOfPersonalFilters","currentUserFilterOptions","currFilter","addNewFilter","isShared","showObservabilityExplanation","isReadOnly","hash","extinctionReferences","maxRUWEEnabled","handleSave","unselectUnsavedNewFilter","isNew","handleDelete","showExplanation","selectedEventTitle","onFileChange","selectedFile","uploadedBytes","totalBytes","occfile","warn","info","info2","info3","validated","useCloudEvents","onUploadEvents","onShowHistory","toggleTag","showLogLoader","foundFileList","file","selectedId","showLog","created","total","completed","canrerun","reRunFile","useowc","orbit","newTags","sharedTags","notInOwc","ambigious","totalRows","pageChange","loadFileHistory","autoRefreshCountdown","selectedLog","displayString","hasPendingOrRunningItems","Tags","Filters","TagEvents","UploadEvents","UploadEventsHistory","VueRouter","indexRoutes","Home","routes","authRoutes","eventRoutes","extRoutes","taggingRoutes","router","base","publicRouteNames","beforeEach","next","authRequired","loggedIn","loggedInUser","loggedInUserId","store","sessDurMin","sessLastReq","expired","removeItem","afterEach","nextTick","isLightTheme","getElementById","defaults","common","interceptors","config","method","statusText","redirectPath","currentRoute","fullPath","lastChunkPos","substring","suffix","dispatch","format","ddMMMhhmm","replace","secs","padStart","extract","exec","minP","secP","sgn","ew","azDir","match","leftOrRight","toUpperCase","fxd","prc","toPrecision","nStr","x2","rgx","test","BootstrapVue","Clipboard","dictionary","en","custom","eventDatePicker","orbitSource","starSource","uploadedFile","VeeValidate","inject","mixin","productionTip","vm","h","App","$mount","onToggleTheme","global","factory","define","EPSILON","pow","isInteger","isFinite","Function","toString","assign","TypeError","output","arguments","source","nextKey","REVISION","MOUSE","LEFT","MIDDLE","RIGHT","ROTATE","DOLLY","PAN","TOUCH","DOLLY_PAN","DOLLY_ROTATE","CullFaceNone","CullFaceBack","CullFaceFront","CullFaceFrontBack","BasicShadowMap","PCFShadowMap","PCFSoftShadowMap","VSMShadowMap","FrontSide","BackSide","DoubleSide","FlatShading","SmoothShading","NoBlending","NormalBlending","AdditiveBlending","SubtractiveBlending","MultiplyBlending","CustomBlending","AddEquation","SubtractEquation","ReverseSubtractEquation","MinEquation","MaxEquation","ZeroFactor","OneFactor","SrcColorFactor","OneMinusSrcColorFactor","SrcAlphaFactor","OneMinusSrcAlphaFactor","DstAlphaFactor","OneMinusDstAlphaFactor","DstColorFactor","OneMinusDstColorFactor","SrcAlphaSaturateFactor","NeverDepth","AlwaysDepth","LessDepth","LessEqualDepth","EqualDepth","GreaterEqualDepth","GreaterDepth","NotEqualDepth","MultiplyOperation","MixOperation","AddOperation","NoToneMapping","LinearToneMapping","ReinhardToneMapping","CineonToneMapping","ACESFilmicToneMapping","CustomToneMapping","UVMapping","CubeReflectionMapping","CubeRefractionMapping","EquirectangularReflectionMapping","EquirectangularRefractionMapping","CubeUVReflectionMapping","CubeUVRefractionMapping","RepeatWrapping","ClampToEdgeWrapping","MirroredRepeatWrapping","NearestFilter","NearestMipmapNearestFilter","NearestMipMapNearestFilter","NearestMipmapLinearFilter","NearestMipMapLinearFilter","LinearFilter","LinearMipmapNearestFilter","LinearMipMapNearestFilter","LinearMipmapLinearFilter","LinearMipMapLinearFilter","UnsignedByteType","ByteType","ShortType","UnsignedShortType","IntType","UnsignedIntType","FloatType","HalfFloatType","UnsignedShort4444Type","UnsignedShort5551Type","UnsignedShort565Type","UnsignedInt248Type","AlphaFormat","RGBFormat","RGBAFormat","LuminanceFormat","LuminanceAlphaFormat","RGBEFormat","DepthFormat","DepthStencilFormat","RedFormat","RedIntegerFormat","RGFormat","RGIntegerFormat","RGBIntegerFormat","RGBAIntegerFormat","RGB_S3TC_DXT1_Format","RGBA_S3TC_DXT1_Format","RGBA_S3TC_DXT3_Format","RGBA_S3TC_DXT5_Format","RGB_PVRTC_4BPPV1_Format","RGB_PVRTC_2BPPV1_Format","RGBA_PVRTC_4BPPV1_Format","RGBA_PVRTC_2BPPV1_Format","RGB_ETC1_Format","RGB_ETC2_Format","RGBA_ETC2_EAC_Format","RGBA_ASTC_4x4_Format","RGBA_ASTC_5x4_Format","RGBA_ASTC_5x5_Format","RGBA_ASTC_6x5_Format","RGBA_ASTC_6x6_Format","RGBA_ASTC_8x5_Format","RGBA_ASTC_8x6_Format","RGBA_ASTC_8x8_Format","RGBA_ASTC_10x5_Format","RGBA_ASTC_10x6_Format","RGBA_ASTC_10x8_Format","RGBA_ASTC_10x10_Format","RGBA_ASTC_12x10_Format","RGBA_ASTC_12x12_Format","RGBA_BPTC_Format","SRGB8_ALPHA8_ASTC_4x4_Format","SRGB8_ALPHA8_ASTC_5x4_Format","SRGB8_ALPHA8_ASTC_5x5_Format","SRGB8_ALPHA8_ASTC_6x5_Format","SRGB8_ALPHA8_ASTC_6x6_Format","SRGB8_ALPHA8_ASTC_8x5_Format","SRGB8_ALPHA8_ASTC_8x6_Format","SRGB8_ALPHA8_ASTC_8x8_Format","SRGB8_ALPHA8_ASTC_10x5_Format","SRGB8_ALPHA8_ASTC_10x6_Format","SRGB8_ALPHA8_ASTC_10x8_Format","SRGB8_ALPHA8_ASTC_10x10_Format","SRGB8_ALPHA8_ASTC_12x10_Format","SRGB8_ALPHA8_ASTC_12x12_Format","LoopOnce","LoopRepeat","LoopPingPong","InterpolateDiscrete","InterpolateLinear","InterpolateSmooth","ZeroCurvatureEnding","ZeroSlopeEnding","WrapAroundEnding","NormalAnimationBlendMode","AdditiveAnimationBlendMode","TrianglesDrawMode","TriangleStripDrawMode","TriangleFanDrawMode","LinearEncoding","sRGBEncoding","GammaEncoding","RGBEEncoding","LogLuvEncoding","RGBM7Encoding","RGBM16Encoding","RGBDEncoding","BasicDepthPacking","RGBADepthPacking","TangentSpaceNormalMap","ObjectSpaceNormalMap","ZeroStencilOp","KeepStencilOp","ReplaceStencilOp","IncrementStencilOp","DecrementStencilOp","IncrementWrapStencilOp","DecrementWrapStencilOp","InvertStencilOp","NeverStencilFunc","LessStencilFunc","EqualStencilFunc","LessEqualStencilFunc","GreaterStencilFunc","NotEqualStencilFunc","GreaterEqualStencilFunc","AlwaysStencilFunc","StaticDrawUsage","DynamicDrawUsage","StreamDrawUsage","StaticReadUsage","DynamicReadUsage","StreamReadUsage","StaticCopyUsage","DynamicCopyUsage","StreamCopyUsage","GLSL1","GLSL3","EventDispatcher","addEventListener","listener","_listeners","listeners","hasEventListener","removeEventListener","listenerArray","dispatchEvent","array","_lut","_seed","MathUtils","DEG2RAD","RAD2DEG","generateUUID","d0","random","d2","d3","uuid","clamp","euclideanModulo","mapLinear","a2","b2","lerp","smoothstep","smootherstep","randInt","low","high","randFloat","randFloatSpread","seededRandom","degrees","radToDeg","radians","isPowerOfTwo","ceilPowerOfTwo","ceil","LN2","floorPowerOfTwo","setQuaternionFromProperEuler","order","c2","s2","c13","s13","c1_3","s1_3","c3_1","s3_1","_defineProperties","props","descriptor","configurable","writable","_createClass","Constructor","protoProps","staticProps","_inheritsLoose","subClass","superClass","constructor","__proto__","_assertThisInitialized","self","ReferenceError","_canvas","Vector2","_proto","setScalar","scalar","setX","setY","setComponent","getComponent","clone","copy","addVectors","addScalar","addScaledVector","sub","subVectors","subScalar","multiply","multiplyScalar","divide","divideScalar","applyMatrix3","elements","clampScalar","minVal","maxVal","clampLength","roundToZero","negate","dot","cross","lengthSq","manhattanLength","normalize","angle","distanceTo","distanceToSquared","dx","manhattanDistanceTo","setLength","alpha","lerpVectors","v1","v2","equals","fromArray","offset","toArray","fromBufferAttribute","attribute","getX","getY","rotateAround","center","Matrix3","n11","n12","n13","n21","n22","n23","n31","n32","n33","te","identity","me","extractBasis","xAxis","yAxis","zAxis","setFromMatrix3Column","setFromMatrix4","multiplyMatrices","premultiply","ae","be","a11","a12","a13","a21","a22","a23","a31","a32","a33","b11","b12","b13","b21","b22","b23","b31","b32","b33","determinant","invert","t11","t12","t13","det","detInv","transpose","tmp","getNormalMatrix","matrix4","transposeIntoArray","setUvTransform","tx","scale","rotate","translate","matrix","ImageUtils","getDataURL","image","HTMLCanvasElement","createElementNS","height","context","getContext","ImageData","putImageData","drawImage","toDataURL","textureId","Texture","mapping","wrapS","wrapT","magFilter","minFilter","anisotropy","encoding","DEFAULT_IMAGE","DEFAULT_MAPPING","mipmaps","internalFormat","repeat","matrixAutoUpdate","generateMipmaps","premultiplyAlpha","flipY","unpackAlignment","version","onUpdate","serializeImage","HTMLImageElement","ImageBitmap","isTexture","updateMatrix","toJSON","isRootObject","textures","metadata","generator","wrap","images","isDataTexture","dispose","transformUv","uv","Vector4","setZ","setW","applyMatrix4","setAxisAngleFromQuaternion","setAxisAngleFromRotationMatrix","epsilon","epsilon2","m11","m12","m13","m21","m22","m23","m31","m32","m33","xx","yy","zz","xy","xz","yz","getZ","getW","WebGLRenderTarget","scissor","scissorTest","viewport","texture","depthBuffer","stencilBuffer","depthTexture","WebGLMultisampleRenderTarget","samples","isWebGLRenderTarget","isWebGLMultisampleRenderTarget","Quaternion","_x","_y","_z","_w","slerp","qa","qb","qm","slerpFlat","dst","dstOffset","src0","srcOffset0","src1","srcOffset1","x0","y0","z0","w0","y1","z1","w1","dir","sqrSin","len","tDir","multiplyQuaternionsFlat","_onChangeCallback","quaternion","setFromEuler","euler","isEuler","_order","c3","s1","s3","setFromAxisAngle","axis","halfAngle","setFromRotationMatrix","_s2","_s3","setFromUnitVectors","vFrom","vTo","EPS","angleTo","rotateTowards","step","conjugate","multiplyQuaternions","qax","qay","qaz","qaw","qbx","qby","qbz","qbw","cosHalfTheta","sqrSinHalfTheta","sinHalfTheta","halfTheta","ratioA","ratioB","_onChange","Vector3","multiplyVectors","applyEuler","applyQuaternion","_quaternion","applyAxisAngle","applyNormalMatrix","qx","qy","qz","qw","ix","iy","iz","iw","project","matrixWorldInverse","projectionMatrix","unproject","projectionMatrixInverse","matrixWorld","transformDirection","crossVectors","ax","ay","bx","by","bz","projectOnVector","denominator","projectOnPlane","planeNormal","_vector","reflect","normal","dz","setFromSpherical","setFromSphericalCoords","radius","phi","sinPhiRadius","setFromCylindrical","setFromCylindricalCoords","setFromMatrixPosition","setFromMatrixScale","setFromMatrixColumn","sz","Box3","Infinity","setFromArray","minX","minY","minZ","maxX","maxY","maxZ","setFromBufferAttribute","count","setFromPoints","points","makeEmpty","il","expandByPoint","setFromCenterAndSize","size","halfSize","_vector$1","setFromObject","expandByObject","box","isEmpty","getCenter","getSize","point","expandByVector","vector","expandByScalar","updateWorldMatrix","boundingBox","computeBoundingBox","_box","union","children","containsPoint","containsBox","getParameter","intersectsBox","intersectsSphere","sphere","clampPoint","intersectsPlane","plane","constant","intersectsTriangle","triangle","_center","_extents","_v0","_v1","_v2","_f0","_f1","_f2","axes","satForAxes","_triangleNormal","distanceToPoint","clampedPoint","getBoundingSphere","intersect","_points","v0","extents","_testAxis","p0","p1","p2","_box$1","Sphere","optionalCenter","maxRadiusSq","radiusSum","deltaLengthSq","getBoundingBox","getMaxScaleOnAxis","_vector$2","_segCenter","_segDir","_diff","_edge1","_edge2","_normal","Ray","origin","direction","ray","at","recast","closestPointToPoint","directionDistance","distanceSqToPoint","distanceSqToSegment","optionalPointOnRay","optionalPointOnSegment","s0","sqrDist","extDet","segExtent","a01","b0","invDet","intersectSphere","tca","radius2","thc","t0","t1","distanceToPlane","intersectPlane","distToPoint","intersectBox","tmin","tmax","tymin","tymax","tzmin","tzmax","invdirx","invdiry","invdirz","intersectTriangle","backfaceCulling","DdN","DdQxE2","DdE1xQ","QdN","Matrix4","n14","n24","n34","n41","n42","n43","n44","copyPosition","makeBasis","extractRotation","scaleX","_v1$1","scaleY","scaleZ","makeRotationFromEuler","af","bf","ce","cf","df","_ce","_cf","_de","_df","_ae","_af","_be","_bf","ac","ad","bc","bd","_ac","_ad","_bc","_bd","makeRotationFromQuaternion","compose","_zero","_one","eye","up","a14","a24","a34","a41","a42","a43","a44","b14","b24","b34","b41","b42","b43","b44","setPosition","isVector3","t14","scaleXSq","scaleYSq","scaleZSq","makeTranslation","makeRotationX","makeRotationY","makeRotationZ","makeRotationAxis","makeScale","makeShear","y2","z2","wx","wy","wz","decompose","_m1","invSX","invSY","invSZ","makePerspective","left","right","top","bottom","near","far","makeOrthographic","Euler","DefaultOrder","setFromQuaternion","_matrix","setFromVector3","reorder","newOrder","_quaternion$1","toVector3","optionalResult","RotationOrders","Layers","mask","channel","enable","enableAll","toggle","disable","disableAll","layers","_object3DId","_v1$2","_q1","_m1$1","_target","_position","_scale","_quaternion$2","_xAxis","_yAxis","_zAxis","_addedEvent","_removedEvent","Object3D","parent","DefaultUp","onRotationChange","onQuaternionChange","defineProperties","modelViewMatrix","normalMatrix","DefaultMatrixAutoUpdate","matrixWorldNeedsUpdate","visible","castShadow","receiveShadow","frustumCulled","renderOrder","animations","userData","isObject3D","onBeforeRender","onAfterRender","setRotationFromAxisAngle","setRotationFromEuler","setRotationFromMatrix","setRotationFromQuaternion","rotateOnAxis","rotateOnWorldAxis","rotateX","rotateY","translateOnAxis","translateY","localToWorld","worldToLocal","isCamera","isLight","clear","attach","getObjectById","getObjectByProperty","getObjectByName","child","getWorldPosition","getWorldQuaternion","getWorldScale","getWorldDirection","raycast","traverse","traverseVisible","traverseAncestors","updateMatrixWorld","force","updateParents","updateChildren","geometries","materials","shapes","skeletons","serialize","library","element","isInstancedMesh","instanceMatrix","isMesh","isLine","isPoints","parameters","shape","isSkinnedMesh","bindMode","bindMatrix","skeleton","uuids","_i2","_i3","animation","extractFromCache","_shapes","cache","values","recursive","_vector1","_vector2","_normalMatrix","Plane","setComponents","setFromNormalAndCoplanarPoint","setFromCoplanarPoints","inverseNormalLength","distanceToSphere","projectPoint","intersectLine","line","delta","start","intersectsLine","startSign","endSign","end","coplanarPoint","optionalNormalMatrix","referencePoint","_v0$1","_v1$3","_v2$1","_v3","_vab","_vac","_vbc","_vap","_vbp","_vcp","Triangle","getNormal","targetLengthSq","getBarycoord","dot00","dot01","dot02","dot11","dot12","denom","invDenom","u","getUV","p3","uv1","uv2","uv3","isFrontFacing","setFromPointsAndIndices","i0","i1","i2","getArea","getMidpoint","getPlane","d4","vc","d5","d6","vb","va","_colorKeywords","_hslA","_hslB","hue2rgb","SRGBToLinear","LinearToSRGB","Color","setRGB","isColor","setHex","setStyle","hex","setHSL","handleAlpha","string","charAt","setColorName","copyGammaToLinear","gammaFactor","copyLinearToGamma","safeInverse","convertGammaToLinear","convertLinearToGamma","copySRGBToLinear","copyLinearToSRGB","convertSRGBToLinear","convertLinearToSRGB","getHex","getHexString","getHSL","hue","saturation","lightness","getStyle","offsetHSL","addColors","color1","color2","lerpHSL","normalized","NAMES","Face3","materialIndex","vertexNormals","vertexColors","_il","materialId","Material","fog","blending","side","flatShading","blendSrc","blendDst","blendEquation","blendSrcAlpha","blendDstAlpha","blendEquationAlpha","depthFunc","depthTest","depthWrite","stencilWriteMask","stencilFunc","stencilRef","stencilFuncMask","stencilFail","stencilZFail","stencilZPass","stencilWrite","clippingPlanes","clipIntersection","clipShadows","shadowSide","colorWrite","precision","polygonOffset","polygonOffsetFactor","polygonOffsetUnits","dithering","alphaTest","premultipliedAlpha","toneMapped","MeshBasicMaterial","lightMap","lightMapIntensity","aoMap","aoMapIntensity","specularMap","alphaMap","envMap","combine","reflectivity","refractionRatio","wireframe","wireframeLinewidth","wireframeLinecap","wireframeLinejoin","skinning","morphTargets","setValues","isMaterial","onBeforeCompile","customProgramCacheKey","newValue","currentValue","isRoot","_data","roughness","metalness","sheen","emissive","emissiveIntensity","specular","shininess","clearcoat","clearcoatRoughness","clearcoatMap","clearcoatRoughnessMap","clearcoatNormalMap","clearcoatNormalScale","matcap","normalMap","normalMapType","normalScale","displacementMap","displacementScale","displacementBias","roughnessMap","metalnessMap","emissiveMap","envMapIntensity","gradientMap","sizeAttenuation","linewidth","dashSize","gapSize","morphNormals","srcPlanes","dstPlanes","isMeshBasicMaterial","_vector$3","_vector2$1","BufferAttribute","itemSize","usage","updateRange","Int8BufferAttribute","Int8Array","Uint8BufferAttribute","Uint8Array","Uint8ClampedBufferAttribute","Uint8ClampedArray","Int16BufferAttribute","Int16Array","Uint16BufferAttribute","Uint16Array","Int32BufferAttribute","Int32Array","Uint32BufferAttribute","Uint32Array","Float16BufferAttribute","Float32BufferAttribute","Float32Array","Float64BufferAttribute","Float64Array","isBufferAttribute","onUploadCallback","setUsage","copyAt","index1","index2","copyArray","copyColorsArray","colors","copyVector2sArray","vectors","copyVector3sArray","copyVector4sArray","setXY","setXYZ","setXYZW","onUpload","isFloat16BufferAttribute","DirectGeometry","vertices","normals","uvs","uvs2","groups","skinWeights","skinIndices","boundingSphere","verticesNeedUpdate","normalsNeedUpdate","colorsNeedUpdate","uvsNeedUpdate","groupsNeedUpdate","computeGroups","group","faces","face","fromGeometry","morphTargetsPosition","faceVertexUvs","hasFaceVertexUv","hasFaceVertexUv2","morphTargetsLength","morphTargetsNormal","morphNormalsLength","hasSkinIndices","hasSkinWeights","vertexUvs","_vertexUvs","morphTarget","_j","morphNormal","arrayMax","TYPED_ARRAYS","getTypedArray","buffer","_bufferGeometryId","_m1$2","_obj","_offset","_box$2","_boxMorphTargets","_vector$4","BufferGeometry","attributes","morphAttributes","morphTargetsRelative","drawRange","isBufferGeometry","getIndex","setIndex","getAttribute","deleteAttribute","hasAttribute","addGroup","clearGroups","setDrawRange","tangent","computeBoundingSphere","positions","lineDistances","isGeometry","updateFromObject","direct","__directGeometry","elementsNeedUpdate","_attribute","_attribute2","_attribute3","lineDistancesNeedUpdate","_attribute4","lineDistance","fromDirectGeometry","morphAttributesPosition","isGLBufferAttribute","morphAttribute","isNaN","_il2","_morphAttribute","jl","computeFaceNormals","computeVertexNormals","positionAttribute","normalAttribute","pA","pB","pC","nA","nB","nC","cb","ab","_il3","vA","vB","vC","_i4","_il4","normalizeNormals","merge","attribute1","attributeArray1","attribute2","attributeArray2","attributeOffset","toNonIndexed","convertBufferAttribute","indices","array2","geometry2","newAttribute","_name","morphArray","_attribute5","_newAttribute","_i5","_key","attributeData","hasMorphAttributes","_key2","attributeArray","_attribute6","_attributeData","_name2","_i6","_inverseMatrix","_ray","_sphere","_vA","_vB","_vC","_tempA","_tempB","_tempC","_morphA","_morphB","_morphC","_uvA","_uvB","_uvC","_intersectionPoint","_intersectionPointWorld","Mesh","updateMorphTargets","checkIntersection","raycaster","checkBufferGeometryIntersection","morphPosition","morphInfluences","morphTargetInfluences","influence","boneTransform","intersection","morphTargetDictionary","ml","intersects","groupMaterial","faceIndex","_start","_end","_a","_b","_group","_groupMaterial","_start2","_end2","_jl","_a2","_b2","_c2","_start3","_end3","_a3","_b3","_c3","isMultiMaterial","fl","faceMaterial","fvA","fvB","fvC","uvs_f","BoxBufferGeometry","_BufferGeometry","depth","widthSegments","heightSegments","depthSegments","_this","scope","numberOfVertices","groupStart","buildPlane","udir","vdir","gridX","gridY","segmentWidth","segmentHeight","widthHalf","heightHalf","depthHalf","gridX1","gridY1","vertexCounter","groupCount","_iy","_ix","cloneUniforms","isMatrix3","isMatrix4","isVector2","isVector4","mergeUniforms","uniforms","merged","UniformsUtils","default_vertex","default_fragment","ShaderMaterial","defines","vertexShader","fragmentShader","lights","clipping","extensions","derivatives","fragDepth","drawBuffers","shaderTextureLOD","defaultAttributeValues","index0AttributeName","uniformsNeedUpdate","glslVersion","Camera","PerspectiveCamera","fov","aspect","zoom","focus","view","filmGauge","filmOffset","updateProjectionMatrix","isShaderMaterial","uniform","isPerspectiveCamera","setFocalLength","focalLength","vExtentSlope","getFilmHeight","getFocalLength","getEffectiveFOV","getFilmWidth","setViewOffset","fullWidth","fullHeight","enabled","offsetX","offsetY","clearViewOffset","skew","CubeCamera","renderTarget","isWebGLCubeRenderTarget","cameraPX","cameraNX","cameraPY","cameraNY","cameraPZ","cameraNZ","currentXrEnabled","xr","currentRenderTarget","getRenderTarget","setRenderTarget","CubeTexture","_needsFlipEnvMap","WebGLCubeRenderTarget","dummy","DataTexture","isCubeTexture","fromEquirectangularTexture","shader","tEquirect","mesh","currentMinFilter","stencil","_sphere$1","_vector$5","Frustum","p4","p5","planes","frustum","setFromProjectionMatrix","me0","me1","me2","me3","me4","me5","me6","me7","me8","me9","me10","me11","me12","me13","me14","me15","intersectsObject","intersectsSprite","sprite","negRadius","WebGLAnimation","isAnimating","animationLoop","requestId","onAnimationFrame","frame","stop","cancelAnimationFrame","setAnimationLoop","setContext","WebGLAttributes","gl","capabilities","isWebGL2","buffers","WeakMap","createBuffer","bufferType","bindBuffer","bufferData","bytesPerElement","BYTES_PER_ELEMENT","updateBuffer","bufferSubData","subarray","isInterleavedBufferAttribute","deleteBuffer","cached","elementSize","PlaneBufferGeometry","width_half","height_half","segment_width","segment_height","alphamap_fragment","alphamap_pars_fragment","alphatest_fragment","aomap_fragment","aomap_pars_fragment","begin_vertex","beginnormal_vertex","bsdfs","bumpmap_pars_fragment","clipping_planes_fragment","clipping_planes_pars_fragment","clipping_planes_pars_vertex","clipping_planes_vertex","color_fragment","color_pars_fragment","color_pars_vertex","color_vertex","cube_uv_reflection_fragment","defaultnormal_vertex","displacementmap_pars_vertex","displacementmap_vertex","emissivemap_fragment","emissivemap_pars_fragment","encodings_fragment","encodings_pars_fragment","envmap_fragment","envmap_common_pars_fragment","envmap_pars_fragment","envmap_pars_vertex","envmap_vertex","fog_vertex","fog_pars_vertex","fog_fragment","fog_pars_fragment","gradientmap_pars_fragment","lightmap_fragment","lightmap_pars_fragment","lights_lambert_vertex","lights_pars_begin","envmap_physical_pars_fragment","lights_toon_fragment","lights_toon_pars_fragment","lights_phong_fragment","lights_phong_pars_fragment","lights_physical_fragment","lights_physical_pars_fragment","lights_fragment_begin","lights_fragment_maps","lights_fragment_end","logdepthbuf_fragment","logdepthbuf_pars_fragment","logdepthbuf_pars_vertex","logdepthbuf_vertex","map_fragment","map_pars_fragment","map_particle_fragment","map_particle_pars_fragment","metalnessmap_fragment","metalnessmap_pars_fragment","morphnormal_vertex","morphtarget_pars_vertex","morphtarget_vertex","normal_fragment_begin","normal_fragment_maps","normalmap_pars_fragment","clearcoat_normal_fragment_begin","clearcoat_normal_fragment_maps","clearcoat_pars_fragment","packing","premultiplied_alpha_fragment","project_vertex","dithering_fragment","dithering_pars_fragment","roughnessmap_fragment","roughnessmap_pars_fragment","shadowmap_pars_fragment","shadowmap_pars_vertex","shadowmap_vertex","shadowmask_pars_fragment","skinbase_vertex","skinning_pars_vertex","skinning_vertex","skinnormal_vertex","specularmap_fragment","specularmap_pars_fragment","tonemapping_fragment","tonemapping_pars_fragment","transmissionmap_fragment","transmissionmap_pars_fragment","uv_pars_fragment","uv_pars_vertex","uv_vertex","uv2_pars_fragment","uv2_pars_vertex","uv2_vertex","worldpos_vertex","background_frag","background_vert","cube_frag","cube_vert","depth_frag","depth_vert","distanceRGBA_frag","distanceRGBA_vert","equirect_frag","equirect_vert","linedashed_frag","linedashed_vert","meshbasic_frag","meshbasic_vert","meshlambert_frag","meshlambert_vert","meshmatcap_frag","meshmatcap_vert","meshtoon_frag","meshtoon_vert","meshphong_frag","meshphong_vert","meshphysical_frag","meshphysical_vert","normal_frag","normal_vert","points_frag","points_vert","shadow_frag","shadow_vert","sprite_frag","sprite_vert","ShaderChunk","UniformsLib","diffuse","uvTransform","uv2Transform","specularmap","envmap","flipEnvMap","maxMipLevel","aomap","lightmap","emissivemap","bumpmap","normalmap","displacementmap","roughnessmap","metalnessmap","gradientmap","fogDensity","fogNear","fogFar","fogColor","ambientLightColor","lightProbe","directionalLights","properties","directionalLightShadows","shadowBias","shadowNormalBias","shadowRadius","shadowMapSize","directionalShadowMap","directionalShadowMatrix","spotLights","coneCos","penumbraCos","decay","spotLightShadows","spotShadowMap","spotShadowMatrix","pointLights","pointLightShadows","shadowCameraNear","shadowCameraFar","pointShadowMap","pointShadowMatrix","hemisphereLights","skyColor","groundColor","rectAreaLights","ltc_1","ltc_2","ShaderLib","basic","lambert","phong","standard","toon","dashed","totalSize","background","t2D","cube","equirect","distanceRGBA","referencePosition","nearDistance","farDistance","shadow","WebGLBackground","cubemaps","objects","planeMesh","boxMesh","clearColor","clearAlpha","currentBackground","currentBackgroundVersion","currentTonemapping","renderList","forceClear","isScene","session","getSession","environmentBlendMode","setClear","autoClear","autoClearColor","autoClearDepth","autoClearStencil","toneMapping","unshift","getClearColor","setClearColor","getClearAlpha","setClearAlpha","WebGLBindingStates","maxVertexAttributes","extension","vaoAvailable","bindingStates","defaultState","createBindingState","currentState","setup","program","updateBuffers","getBindingState","bindVertexArrayObject","saveCache","setupVertexAttributes","createVertexArrayObject","createVertexArray","createVertexArrayOES","vao","bindVertexArray","bindVertexArrayOES","deleteVertexArrayObject","deleteVertexArray","deleteVertexArrayOES","programMap","stateMap","newAttributes","enabledAttributes","attributeDivisors","cachedAttributes","geometryAttributes","attributesNum","cachedAttribute","geometryAttribute","initAttributes","enableAttribute","enableAttributeAndDivisor","meshPerAttribute","enableVertexAttribArray","_extension","disableUnusedAttributes","disableVertexAttribArray","vertexAttribPointer","stride","vertexAttribIPointer","isInstancedBufferGeometry","programAttributes","getAttributes","materialDefaultAttributeValues","programAttribute","isInstancedInterleavedBuffer","_maxInstanceCount","isInstancedBufferAttribute","_buffer","_type","instanceColor","_buffer2","_type2","vertexAttrib2fv","vertexAttrib3fv","vertexAttrib4fv","vertexAttrib1fv","geometryId","reset","programId","releaseStatesOfGeometry","releaseStatesOfProgram","resetDefaultState","WebGLBufferRenderer","setMode","drawArrays","renderInstances","primcount","methodName","WebGLCapabilities","maxAnisotropy","getMaxAnisotropy","MAX_TEXTURE_MAX_ANISOTROPY_EXT","getMaxPrecision","getShaderPrecisionFormat","WebGL2RenderingContext","WebGL2ComputeRenderingContext","maxPrecision","logarithmicDepthBuffer","maxTextures","maxVertexTextures","maxTextureSize","maxCubemapSize","maxAttributes","maxVertexUniforms","maxVaryings","maxFragmentUniforms","vertexTextures","floatFragmentTextures","floatVertexTextures","maxSamples","WebGLClipping","globalState","numGlobalPlanes","localClippingEnabled","renderingShadows","viewNormalMatrix","resetGlobalState","numPlanes","numIntersection","projectPlanes","skipTransform","nPlanes","dstArray","flatSize","viewMatrix","i4","enableLocalClipping","beginShadows","endShadows","setState","useCache","materialProperties","nGlobal","lGlobal","clippingState","WebGLCubeMaps","mapTextureMapping","has","cubemap","currentRenderList","getRenderList","currentRenderState","getRenderState","setRenderList","setRenderState","onTextureDispose","WebGLExtensions","getExtension","WebGLGeometries","wireframeAttributes","onGeometryDispose","buffergeometry","memory","_bufferGeometry","updateWireframeAttribute","geometryIndex","geometryPosition","_array","previousAttribute","getWireframeAttribute","currentAttribute","WebGLIndexedBufferRenderer","drawElements","WebGLInfo","calls","triangles","instanceCount","programs","autoReset","numericalSort","absNumericalSort","WebGLMorphtargets","influencesList","workInfluences","objectInfluences","influences","sort","MAX_SAFE_INTEGER","morphInfluencesSum","_influence","morphBaseInfluence","getUniforms","setValue","WebGLObjects","updateMap","DataTexture2DArray","wrapR","DataTexture3D","physical","transmission","transmissionMap","isDataTexture2DArray","isDataTexture3D","emptyTexture","emptyTexture2dArray","emptyTexture3d","emptyCubeTexture","arrayCacheF32","arrayCacheI32","mat4array","mat3array","mat2array","flatten","nBlocks","blockSize","firstElem","arraysEqual","allocTexUnits","allocateTextureUnit","setValueV1f","uniform1f","addr","setValueV2f","uniform2f","uniform2fv","setValueV3f","uniform3f","uniform3fv","setValueV4f","uniform4f","uniform4fv","setValueM2","uniformMatrix2fv","setValueM3","uniformMatrix3fv","setValueM4","uniformMatrix4fv","setValueT1","unit","uniform1i","safeSetTexture2D","setValueT2DArray1","setTexture2DArray","setValueT3D1","setTexture3D","setValueT6","safeSetTextureCube","setValueV1i","setValueV2i","uniform2iv","setValueV3i","uniform3iv","setValueV4i","uniform4iv","setValueV1ui","uniform1ui","getSingularSetter","setValueV1fArray","uniform1fv","setValueV1iArray","uniform1iv","setValueV2iArray","setValueV3iArray","setValueV4iArray","setValueV2fArray","setValueV3fArray","setValueV4fArray","setValueM2Array","setValueM3Array","setValueM4Array","setValueT1Array","units","setValueT6Array","getPureArraySetter","SingleUniform","activeInfo","PureArrayUniform","StructuredUniform","seq","updateCache","RePathPart","addUniform","container","uniformObject","parseUniform","pathLength","lastIndex","matchEnd","idIsIndex","subscript","WebGLUniforms","getProgramParameter","getActiveUniform","getUniformLocation","WebGLShader","createShader","shaderSource","compileShader","setOptional","upload","seqWithValue","programIdCount","addLineNumbers","getEncodingComponents","getShaderErrors","getShaderParameter","getShaderInfoLog","getShaderSource","getTexelDecodingFunction","functionName","getTexelEncodingFunction","getToneMappingFunction","toneMappingName","generateExtensions","chunks","extensionDerivatives","envMapCubeUV","tangentSpaceNormalMap","shaderID","extensionFragDepth","rendererExtensionFragDepth","extensionDrawBuffers","rendererExtensionDrawBuffers","extensionShaderTextureLOD","rendererExtensionShaderTextureLod","filterEmptyLine","generateDefines","fetchAttributeLocations","getActiveAttrib","getAttribLocation","replaceLightNums","numDirLights","numSpotLights","numRectAreaLights","numPointLights","numHemiLights","numDirLightShadows","numSpotLightShadows","numPointLightShadows","replaceClippingPlaneNums","numClippingPlanes","numClipIntersection","includePattern","resolveIncludes","includeReplacer","include","deprecatedUnrollLoopPattern","unrollLoopPattern","unrollLoops","loopReplacer","deprecatedLoopReplacer","snippet","generatePrecision","precisionstring","generateShadowMapTypeDefine","shadowMapTypeDefine","shadowMapType","generateEnvMapTypeDefine","envMapTypeDefine","envMapMode","generateEnvMapModeDefine","envMapModeDefine","generateEnvMapBlendingDefine","envMapBlendingDefine","WebGLProgram","cacheKey","prefixVertex","prefixFragment","gammaFactorDefine","customExtensions","customDefines","createProgram","versionString","isRawShaderMaterial","shaderName","instancing","instancingColor","supportsVertexTextures","maxBones","useFog","fogExp2","objectSpaceNormalMap","vertexTangents","uvsVertexOnly","useVertexTexture","doubleSided","flipSided","shadowMapEnabled","physicallyCorrectLights","mapEncoding","matcapEncoding","envMapEncoding","emissiveMapEncoding","lightMapEncoding","outputEncoding","depthPacking","cachedUniforms","vertexGlsl","fragmentGlsl","glVertexShader","glFragmentShader","attachShader","bindAttribLocation","linkProgram","checkShaderErrors","programLog","getProgramInfoLog","vertexLog","fragmentLog","runnable","haveDiagnostics","vertexErrors","fragmentErrors","getError","diagnostics","prefix","deleteShader","destroy","deleteProgram","usedTimes","WebGLPrograms","shaderIDs","MeshDepthMaterial","MeshDistanceMaterial","MeshNormalMaterial","MeshLambertMaterial","MeshPhongMaterial","MeshToonMaterial","MeshStandardMaterial","MeshPhysicalMaterial","MeshMatcapMaterial","LineBasicMaterial","LineDashedMaterial","PointsMaterial","ShadowMaterial","SpriteMaterial","parameterNames","getMaxBones","bones","nVertexUniforms","nVertexMatrices","getTextureEncodingFromMap","getParameters","shadows","environment","isMeshStandardMaterial","isFogExp2","maxMorphTargets","maxMorphNormals","directional","spot","rectArea","hemi","shadowMap","getProgramCacheKey","acquireProgram","pl","preexistingProgram","releaseProgram","pop","WebGLProperties","painterSortStable","groupOrder","reversePainterSortStable","WebGLRenderList","renderItems","renderItemsIndex","opaque","defaultProgram","getNextRenderItem","renderItem","customOpaqueSort","customTransparentSort","finish","WebGLRenderLists","lists","list","cameras","UniformsCache","halfWidth","halfHeight","ShadowUniformsCache","nextVersion","shadowCastingLightsFirst","lightA","lightB","WebGLLights","shadowCache","directionalLength","pointLength","spotLength","rectAreaLength","hemiLength","numDirectionalShadows","numPointShadows","numSpotShadows","ambient","probe","directionalShadow","spotShadow","rectAreaLTC1","rectAreaLTC2","pointShadow","vector3","matrix42","intensity","isAmbientLight","isLightProbe","sh","coefficients","isDirectionalLight","shadowUniforms","bias","normalBias","mapSize","isSpotLight","_uniforms","penumbra","_shadow","_shadowUniforms","isRectAreaLight","_uniforms2","isPointLight","_uniforms3","_shadow2","_shadowUniforms2","isHemisphereLight","_uniforms4","LTC_FLOAT_1","LTC_FLOAT_2","LTC_HALF_1","LTC_HALF_2","WebGLRenderState","lightsArray","shadowsArray","pushLight","pushShadow","shadowLight","setupLights","WebGLRenderStates","renderStates","renderState","isMeshDepthMaterial","isMeshDistanceMaterial","vsm_frag","vsm_vert","WebGLShadowMap","_renderer","_objects","_frustum","_shadowMapSize","_viewportSize","_viewport","_depthMaterials","_distanceMaterials","_materialCache","0","1","2","shadowMaterialVertical","SAMPLE_RATE","HALF_SAMPLE_RATE","shadow_pass","resolution","shadowMaterialHorizonal","HORIZONAL_PASS","fullScreenTri","fullScreenMesh","VSMPass","mapPass","renderBufferDirect","getDepthMaterialVariant","useMorphing","useSkinning","useInstancing","getDistanceMaterialVariant","getDepthMaterial","getMaterialVariant","customMaterial","customDepthMaterial","customDistanceMaterial","keyA","keyB","materialsForVariant","cachedMaterial","renderObject","shadowCamera","k","kl","depthMaterial","_depthMaterial","autoUpdate","activeCubeFace","getActiveCubeFace","activeMipmapLevel","getActiveMipmapLevel","_state","setBlending","setTest","setScissorTest","shadowFrameExtents","getFrameExtents","isPointLightShadow","pars","_pars","viewportCount","getViewportCount","vp","getViewport","updateMatrices","getFrustum","WebGLState","_equationToGL","_factorToGL","ColorBuffer","locked","currentColorMask","currentColorClear","setMask","colorMask","setLocked","lock","DepthBuffer","currentDepthMask","currentDepthFunc","currentDepthClear","depthMask","setFunc","clearDepth","StencilBuffer","currentStencilMask","currentStencilFunc","currentStencilRef","currentStencilFuncMask","currentStencilFail","currentStencilZFail","currentStencilZPass","currentStencilClear","stencilTest","stencilMask","setOp","stencilOp","clearStencil","colorBuffer","enabledCapabilities","currentProgram","currentBlendingEnabled","currentBlending","currentBlendEquation","currentBlendSrc","currentBlendDst","currentBlendEquationAlpha","currentBlendSrcAlpha","currentBlendDstAlpha","currentPremultipledAlpha","currentFlipSided","currentCullFace","currentLineWidth","currentPolygonOffsetFactor","currentPolygonOffsetUnits","lineWidthAvailable","glVersion","currentTextureSlot","currentBoundTextures","currentScissor","currentViewport","createTexture","bindTexture","texParameteri","texImage2D","emptyTextures","useProgram","setFlipSided","setCullFace","equationToGL","MIN_EXT","MAX_EXT","factorToGL","blendEquationSeparate","blendFuncSeparate","blendFunc","setMaterial","frontFaceCW","setPolygonOffset","frontFace","cullFace","setLineWidth","lineWidth","activeTexture","webglSlot","webglType","webglTexture","boundTexture","unbindTexture","compressedTexImage2D","texImage3D","WebGLTextures","_gl","utils","_wrappingToGL","_filterToGL","_videoTextures","useOffscreenCanvas","OffscreenCanvas","createCanvas","resizeImage","needsPowerOfTwo","needsNewCanvas","maxSize","textureNeedsPowerOfTwo","textureNeedsGenerateMipmaps","supportsMips","generateMipmap","textureProperties","__maxMipLevel","LOG2E","getInternalFormat","internalFormatName","glFormat","glType","filterFallback","deallocateTexture","isVideoTexture","onRenderTargetDispose","deallocateRenderTarget","__webglInit","deleteTexture","__webglTexture","renderTargetProperties","deleteFramebuffer","__webglFramebuffer","__webglDepthbuffer","deleteRenderbuffer","__webglMultisampledFramebuffer","__webglColorRenderbuffer","__webglDepthRenderbuffer","textureUnits","resetTextureUnits","textureUnit","setTexture2D","slot","updateVideoTexture","__version","complete","uploadTexture","setTextureCube","uploadCubeTexture","wrappingToGL","filterToGL","setTextureParameters","textureType","__currentAnisotropy","texParameterf","TEXTURE_MAX_ANISOTROPY_EXT","initTexture","pixelStorei","mipmap","convert","glInternalFormat","isDepthTexture","isCompressedTexture","isCompressed","cubeImage","_mipmap","mipmapImage","_j2","_mipmap2","setupFrameBufferTexture","framebuffer","attachment","textureTarget","bindFramebuffer","framebufferTexture2D","setupRenderBufferStorage","renderbuffer","isMultisample","bindRenderbuffer","getRenderTargetSamples","renderbufferStorageMultisample","renderbufferStorage","framebufferRenderbuffer","_samples","_glInternalFormat","_samples2","setupDepthTexture","isCube","webglDepthTexture","setupDepthRenderbuffer","createRenderbuffer","setupRenderTarget","createFramebuffer","updateRenderTargetMipmap","updateMultisampleRenderTarget","blitFramebuffer","warnedTexture2D","warnedTextureCube","WebGLUtils","HALF_FLOAT_OES","COMPRESSED_RGB_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT3_EXT","COMPRESSED_RGBA_S3TC_DXT5_EXT","COMPRESSED_RGB_PVRTC_4BPPV1_IMG","COMPRESSED_RGB_PVRTC_2BPPV1_IMG","COMPRESSED_RGBA_PVRTC_4BPPV1_IMG","COMPRESSED_RGBA_PVRTC_2BPPV1_IMG","COMPRESSED_RGB_ETC1_WEBGL","COMPRESSED_RGB8_ETC2","COMPRESSED_RGBA8_ETC2_EAC","UNSIGNED_INT_24_8_WEBGL","ArrayCamera","Group","WebXRController","_targetRay","_grip","_hand","WebXRManager","framebufferScaleFactor","referenceSpace","referenceSpaceType","pose","controllers","inputSourcesMap","Map","cameraL","cameraR","cameraVR","_currentDepthNear","_currentDepthFar","onSessionEvent","controller","inputSource","onSessionEnd","forEach","disconnect","setFramebuffer","isPresenting","onRequestReferenceSpace","updateInputSources","inputSources","removed","added","_inputSource","_controller","getController","getTargetRaySpace","getControllerGrip","getGripSpace","getHand","getHandSpace","setFramebufferScaleFactor","setReferenceSpaceType","getReferenceSpace","setSession","getContextAttributes","xrCompatible","makeXRCompatible","layerInit","baseLayer","XRWebGLLayer","updateRenderState","requestReferenceSpace","then","cameraLPos","cameraRPos","setProjectionFromUnion","ipd","projL","projR","topFov","bottomFov","leftFov","rightFov","zOffset","xOffset","near2","far2","left2","right2","top2","bottom2","updateCamera","getCamera","depthNear","depthFar","onAnimationFrameCallback","getViewerPose","views","cameraVRNeedsUpdate","transform","WebGLMaterials","refreshFogUniforms","isFog","density","refreshMaterialUniforms","pixelRatio","refreshUniformsCommon","isMeshLambertMaterial","refreshUniformsLambert","isMeshToonMaterial","refreshUniformsToon","isMeshPhongMaterial","refreshUniformsPhong","isMeshPhysicalMaterial","refreshUniformsPhysical","refreshUniformsStandard","isMeshMatcapMaterial","refreshUniformsMatcap","refreshUniformsDepth","refreshUniformsDistance","isMeshNormalMaterial","refreshUniformsNormal","isLineBasicMaterial","refreshUniformsLine","isLineDashedMaterial","refreshUniformsDash","isPointsMaterial","refreshUniformsPoints","isSpriteMaterial","refreshUniformsSprites","isShadowMaterial","uvScaleMap","uv2ScaleMap","createCanvasElement","display","WebGLRenderer","_context","_alpha","_depth","_stencil","_antialias","_premultipliedAlpha","_preserveDrawingBuffer","preserveDrawingBuffer","_powerPreference","powerPreference","_failIfMajorPerformanceCaveat","failIfMajorPerformanceCaveat","sortObjects","toneMappingExposure","_isContextLost","_framebuffer","_currentActiveCubeFace","_currentActiveMipmapLevel","_currentRenderTarget","_currentFramebuffer","_currentMaterialId","_currentCamera","_currentArrayCamera","_currentViewport","_currentScissor","_currentScissorTest","_width","_height","_pixelRatio","_opaqueSort","_transparentSort","_scissor","_scissorTest","_clippingEnabled","_localClippingEnabled","_projScreenMatrix","_vector3","_emptyScene","overrideMaterial","getTargetPixelRatio","programCache","renderLists","morphtargets","bufferRenderer","indexedBufferRenderer","contextNames","contextAttributes","contextName","onContextLost","onContextRestore","isWebGL1Renderer","initGLContext","onMaterialDispose","deallocateMaterial","releaseMaterialProgramReference","programInfo","renderObjectImmediate","renderBufferImmediate","forceContextLoss","loseContext","forceContextRestore","restoreContext","getPixelRatio","updateStyle","setViewport","getDrawingBufferSize","setDrawingBufferSize","getCurrentViewport","getScissor","setScissor","getScissorTest","boolean","setOpaqueSort","setTransparentSort","bits","hasPositions","hasNormals","hasUvs","hasColors","positionArray","normalArray","uvArray","colorArray","setProgram","rangeFactor","dataCount","rangeStart","rangeCount","drawStart","drawEnd","drawCount","isLineSegments","isLineLoop","isSprite","compile","compiled","material2","initMaterial","projectObject","isGroup","isLOD","isImmediateRenderObject","_geometry","_material","renderObjects","isArrayCamera","camera2","lightsStateVersion","programCacheKey","programChange","needsLights","materialNeedsLights","progUniforms","uniformsList","refreshProgram","refreshMaterial","refreshLights","p_uniforms","m_uniforms","uCamPos","cameraPosition","isOrthographicCamera","boneTexture","boneMatrices","boneTextureSize","markUniformsLightsNeedsUpdate","opaqueObjects","transparentObjects","readRenderTargetPixels","activeCubeFaceIndex","restore","textureFormat","checkFramebufferStatus","readPixels","copyFramebufferToTexture","level","levelScale","copyTexImage2D","copyTextureToTexture","srcTexture","dstTexture","texSubImage2D","compressedTexSubImage2D","__THREE_DEVTOOLS__","CustomEvent","detail","WebGL1Renderer","joints","inputState","pinching","XRHand","LITTLE_PHALANX_TIP","joint","inputPose","gripPose","handPose","targetRay","grip","hand","visibilityState","jointPose","getJointPose","jointRadius","indexTip","INDEX_PHALANX_TIP","thumbTip","THUMB_PHALANX_TIP","distanceToPinch","threshold","handedness","getPose","targetRaySpace","gripSpace","FogExp2","Fog","Scene","_Object3D","InterleavedBuffer","isInterleavedBuffer","arrayBuffers","_uuid","ib","_vector$6","InterleavedBufferAttribute","interleavedBuffer","interleavedBuffers","_intersectPoint","_worldScale","_mvPosition","_alignedPosition","_rotatedPosition","_viewWorldMatrix","_vA$1","_vB$1","_vC$1","_uvA$1","_uvB$1","_uvC$1","Sprite","float32Array","transformVertex","vertexPosition","mvPosition","_v1$4","_v2$2","LOD","_currentLevel","levels","SkinnedMesh","bindMatrixInverse","Bone","addLevel","getCurrentLevel","getObjectForDistance","calculateInverses","normalizeSkinWeights","skinWeight","basePosition","skinIndex","weight","boneIndex","boneInverses","isBone","_offsetMatrix","_identityMatrix","Skeleton","inverse","bone","_bone","getBoneByName","fromJSON","json","boneInverse","_instanceLocalMatrix","_instanceWorldMatrix","_instanceIntersects","_mesh","InstancedMesh","linecap","linejoin","getColorAt","getMatrixAt","raycastTimes","instanceId","setColorAt","setMatrixAt","_inverseMatrix$1","_ray$1","_sphere$2","Line","computeLineDistances","_lineDistances","localThreshold","localThresholdSq","vStart","vEnd","interSegment","interRay","distSq","_l2","_distSq","_distance","nbVertices","_distSq2","_distance2","_start$1","_end$1","LineSegments","LineLoop","_inverseMatrix$2","_ray$2","_sphere$3","_position$1","Points","testPoint","rayPointDistanceSq","intersectPoint","distanceToRay","VideoTexture","video","updateVideo","requestVideoFrameCallback","CompressedTexture","CanvasTexture","DepthTexture","hasVideoFrameCallback","readyState","HAVE_CURRENT_DATA","isCanvasTexture","_geometryId","_m1$3","_obj$1","_offset$1","Geometry","vertex","fromBufferGeometry","addFace","areaWeighted","vl","_fl","_face","_vl","_fl2","_face2","computeFlatVertexNormals","computeMorphNormals","__originalFaceNormal","__originalVertexNormals","tmpGeo","faceNormals","dstNormalsFace","dstNormalsVertex","_f3","_fl3","faceNormal","_f4","_fl4","_face3","_faceNormal","_vertexNormals","_f5","_fl5","_face4","materialIndexOffset","vertexOffset","vertices1","vertices2","faces1","faces2","colors1","colors2","vertexCopy","_i7","faceVertexNormals","faceVertexColors","faceCopy","_i8","_il5","faceVertexUvs2","_jl2","uvsCopy","mergeMesh","mergeVertices","precisionPoints","verticesMap","unique","changes","faceIndicesToRemove","_i9","_il6","_i10","idx","diff","sortFacesByMaterialIndex","_id","materialIndexSort","newUvs1","newUvs2","uvs1","_i11","normalsHash","colorsHash","uvsHash","_i12","hasMaterial","hasFaceUv","hasFaceNormal","hasFaceVertexNormal","hasFaceColor","hasFaceVertexColor","faceType","setBit","getUvIndex","getNormalIndex","getColorIndex","_i13","_il7","_i14","_il8","_i15","_il9","_i16","_il10","_j3","_jl3","_j4","_jl4","_i17","_il11","_j5","_jl5","srcVertexNormal","destVertexNormal","_j6","_jl6","_i18","_il12","_i19","_il13","_i20","_il14","BoxGeometry","_Geometry","CircleBufferGeometry","segments","thetaStart","thetaLength","segment","CircleGeometry","CylinderBufferGeometry","radiusTop","radiusBottom","radialSegments","openEnded","indexArray","generateTorso","slope","indexRow","sinTheta","cosTheta","generateCap","centerIndexStart","centerIndexEnd","_x2","_x3","CylinderGeometry","ConeGeometry","_CylinderGeometry","ConeBufferGeometry","_CylinderBufferGeomet","PolyhedronBufferGeometry","vertexBuffer","uvBuffer","subdivide","getVertexByIndex","subdivideFace","cols","aj","bj","pushVertex","applyRadius","generateUVs","azimuth","inclination","correctUVs","correctSeam","centroid","uvA","uvB","uvC","azi","correctUV","DodecahedronBufferGeometry","_PolyhedronBufferGeom","DodecahedronGeometry","_v0$2","_v1$5","_normal$1","_triangle","EdgesGeometry","thresholdAngle","thresholdDot","indexAttr","positionAttr","indexCount","indexArr","vertKeys","hashes","edgeData","jNext","vecHash0","vecHash1","reverseHash","index0","_edgeData$key","Earcut","triangulate","holeIndices","dim","invSize","hasHoles","outerLen","outerNode","linkedList","prev","eliminateHoles","earcutLinked","clockwise","last","signedArea","insertNode","removeNode","filterPoints","again","steiner","area","ear","indexCurve","isEarHashed","isEar","cureLocalIntersections","splitEarcut","pointInTriangle","minTX","minTY","maxTX","maxTY","zOrder","prevZ","nextZ","locallyInside","isValidDiagonal","splitPolygon","queue","getLeftmost","compareX","eliminateHole","hole","findHoleBridge","hx","hy","mx","my","tanMin","sectorContainsSector","sortLinked","tail","numMerges","pSize","qSize","inSize","leftmost","px","py","intersectsPolygon","middleInside","q1","q2","o1","o2","o3","o4","onSegment","inside","Node","bp","sum","ShapeUtils","contour","isClockWise","pts","triangulateShape","holes","removeDupEndPts","addContour","holeIndex","ExtrudeBufferGeometry","verticesArray","addShape","placeholder","curveSegments","steps","bevelEnabled","bevelThickness","bevelSize","bevelOffset","bevelSegments","extrudePath","uvgen","UVGenerator","WorldUVGenerator","amount","extrudePts","splineTube","binormal","position2","extrudeByPath","getSpacedPoints","computeFrenetFrames","shapePoints","extractPoints","reverse","hl","ahole","_hl","_ahole","scalePt2","pt","vec","vlen","flen","getBevelVec","inPt","inPrev","inNext","v_trans_x","v_trans_y","shrink_by","v_prev_x","v_prev_y","v_next_x","v_next_y","v_prev_lensq","collinear0","v_prev_len","v_next_len","ptPrevShift_x","ptPrevShift_y","ptNextShift_x","ptNextShift_y","sf","v_trans_lensq","direction_eq","contourMovements","oneHoleMovements","holesMovements","verticesMovements","_h2","_hl2","_ahole2","_k","_bs","vert","_h3","_hl3","_ahole3","_vert","bs","_vert2","binormals","_vert3","_bs2","_vert4","_h4","_hl4","_ahole4","_vert5","buildLidFaces","layer","f3","buildSideFaces","layeroffset","sidewalls","_h5","_hl5","_ahole5","_k2","sl","slen1","slen2","f4","addVertex","nextIndex","generateTopUV","addUV","generateSideWallUV","vector2","_toJSON","indexA","indexB","indexC","a_x","a_y","b_x","b_y","c_x","c_y","indexD","a_z","b_z","c_z","d_x","d_y","d_z","ExtrudeGeometry","_toJSON$1","IcosahedronBufferGeometry","IcosahedronGeometry","LatheBufferGeometry","phiStart","phiLength","inverseSegments","n1","n2","_base","LatheGeometry","OctahedronBufferGeometry","OctahedronGeometry","ParametricBufferGeometry","func","slices","stacks","pu","pv","sliceCount","ParametricGeometry","PlaneGeometry","PolyhedronGeometry","RingBufferGeometry","innerRadius","outerRadius","thetaSegments","phiSegments","radiusStep","thetaSegmentLevel","_segment","RingGeometry","ShapeBufferGeometry","indexOffset","shapeVertices","shapeHoles","shapeHole","_shapeHole","_l3","_toJSON$2","ShapeGeometry","_toJSON$3","SphereBufferGeometry","thetaEnd","grid","verticesRow","uOffset","SphereGeometry","TetrahedronBufferGeometry","TetrahedronGeometry","TextBufferGeometry","_ExtrudeBufferGeometr","text","font","isFont","generateShapes","TextGeometry","TorusBufferGeometry","tube","tubularSegments","arc","TorusGeometry","TorusKnotBufferGeometry","P1","P2","B","T","N","calculatePositionOnCurve","cu","su","quOverP","cs","TorusKnotGeometry","heightScale","TubeBufferGeometry","closed","frames","tangents","P","generateBufferData","generateSegment","generateIndices","getPointAt","TubeGeometry","taper","bufferGeometry","WireframeGeometry","edge","edges","edge1","edge2","_vertex","ol","_edge","_key3","Geometries","freeze","RawShaderMaterial","ior","Materials","AnimationUtils","arraySlice","isTypedArray","convertArray","forceClone","ArrayBuffer","isView","DataView","getKeyframeOrder","times","compareTime","sortedArray","nValues","srcOffset","flattenJSON","jsonKeys","valuePropertyName","subclip","sourceClip","startFrame","endFrame","fps","clip","tracks","track","valueSize","getValueSize","minStartTime","resetDuration","makeClipAdditive","targetClip","referenceFrame","referenceClip","numTracks","referenceTime","_loop","referenceTrack","referenceTrackType","ValueTypeName","targetTrack","referenceOffset","referenceValueSize","createInterpolant","isInterpolantFactoryMethodGLTFCubicSpline","targetOffset","targetValueSize","referenceValue","startIndex","endIndex","_startIndex","_endIndex","interpolant","_startIndex2","_endIndex2","evaluate","resultBuffer","referenceQuat","numTimes","valueStart","valueEnd","blendMode","Interpolant","parameterPositions","sampleValues","sampleSize","_cachedIndex","CubicInterpolant","_weightPrev","_offsetPrev","_weightNext","_offsetNext","LinearInterpolant","DiscreteInterpolant","KeyframeTrack","interpolation","TimeBufferType","ValueBufferType","setInterpolation","DefaultInterpolation","BooleanKeyframeTrack","ColorKeyframeTrack","NumberKeyframeTrack","QuaternionLinearInterpolant","QuaternionKeyframeTrack","StringKeyframeTrack","VectorKeyframeTrack","AnimationClip","getTrackTypeForValueTypeName","typeName","toLowerCase","parseKeyframeTrack","trackType","pp","validate_interval","seek","linear_scan","forward_scan","giveUpAt","afterEnd_","t1global","_giveUpAt","beforeStart_","mid","intervalChanged_","interpolate_","settings","DefaultSettings_","getSettings_","copySampleValue_","endingStart","endingEnd","iPrev","iNext","tPrev","tNext","halfDt","o0","oP","oN","wP","wN","ppp","sP","sN","offset1","offset0","weight1","weight0","getInterpolation","InterpolantFactoryMethodDiscrete","InterpolantFactoryMethodLinear","InterpolantFactoryMethodSmooth","factoryMethod","timeOffset","timeScale","startTime","endTime","nKeys","validate","prevTime","currTime","optimize","smoothInterpolation","writeIndex","keep","timeNext","offsetP","offsetN","readOffset","writeOffset","_readOffset","_writeOffset","TypedKeyframeTrack","jsonTracks","frameTime","clipTracks","CreateFromMorphTargetSequence","morphTargetSequence","noLoop","numMorphTargets","findByName","objectOrClipArray","clipArray","CreateClipsFromMorphTargetSequences","animationToMorphTargets","pattern","parts","animationMorphTargets","clips","parseAnimation","addNonemptyTrack","trackName","animationKeys","propertyName","destTracks","clipName","hierarchyTracks","hierarchy","morphTargetNames","morphTargetName","animationKey","boneName","Cache","files","LoadingManager","onLoad","onProgress","onError","isLoading","itemsLoaded","itemsTotal","urlModifier","handlers","onStart","itemStart","itemEnd","itemError","resolveURL","setURLModifier","addHandler","removeHandler","getHandler","DefaultLoadingManager","Loader","manager","crossOrigin","resourcePath","requestHeader","loadAsync","setWithCredentials","setPath","setResourcePath","setRequestHeader","loading","FileLoader","AnimationLoader","CompressedTextureLoader","ImageLoader","CubeTextureLoader","DataTextureLoader","TextureLoader","Curve","arcLengthDivisions","EllipseCurve","aX","aY","xRadius","yRadius","aStartAngle","aEndAngle","aClockwise","aRotation","ArcCurve","aRadius","CubicPoly","c0","initCatmullRom","x3","tension","initNonuniformCatmullRom","dt0","dt1","dt2","calc","t3","dataUriRegex","dataUriRegexResult","mimeType","isBase64","decodeURIComponent","atob","responseType","charCodeAt","Blob","parser","DOMParser","parseFromString","header","XMLHttpRequest","open","callbacks","_callback","overrideMimeType","send","setResponseType","setMimeType","loaded","loadTexture","texDatas","mipmapCount","isCubemap","onImageLoad","onImageError","urls","texData","isJPEG","getPoint","optionalTarget","getUtoTmapping","getPoints","divisions","getLength","lengths","getLengths","cacheArcLengths","current","updateArcLengths","targetArcLength","arcLengths","comparison","lengthBefore","lengthAfter","segmentLength","segmentFraction","getTangent","pt1","pt2","getTangentAt","mat","MAX_VALUE","tz","_theta","isEllipseCurve","twoPi","deltaAngle","samePoints","isArcCurve","pz","CatmullRomCurve3","curveType","CatmullRom","QuadraticBezierP0","QuadraticBezierP1","QuadraticBezierP2","QuadraticBezier","CubicBezierP0","CubicBezierP1","CubicBezierP2","CubicBezierP3","CubicBezier","CubicBezierCurve","v3","CubicBezierCurve3","LineCurve","LineCurve3","QuadraticBezierCurve","QuadraticBezierCurve3","SplineCurve","isCatmullRomCurve3","intPoint","isCubicBezierCurve","isCubicBezierCurve3","isLineCurve","isLineCurve3","isQuadraticBezierCurve","isQuadraticBezierCurve3","isSplineCurve","Curves","CurvePath","curves","autoClose","Path","currentPoint","Shape","Light","HemisphereLight","LightShadow","_frameExtents","_viewportCount","_viewports","SpotLightShadow","SpotLight","power","PointLightShadow","_cubeDirections","_cubeUps","PointLight","OrthographicCamera","DirectionalLightShadow","DirectionalLight","AmbientLight","RectAreaLight","curve","closePath","startPoint","endPoint","curveLengths","getCurveLengths","lens","cacheLengths","sums","moveTo","lineTo","quadraticCurveTo","aCPx","aCPy","bezierCurveTo","aCP1x","aCP1y","aCP2x","aCP2y","splineThru","npts","absarc","absellipse","ellipse","firstPoint","lastPoint","getPointsHoles","holesPts","_lightPositionWorld","_lookTarget","shadowMatrix","projScreenMatrix","lookTarget","lightPositionWorld","viewportIndex","isSpotLightShadow","scaleW","scaleH","isDirectionalLightShadow","SphericalHarmonics3","zero","getAt","coeff","getIrradianceAt","addScaledSH","getBasisAt","shBasis","LightProbe","MaterialLoader","getTexture","shading","setTextures","LoaderUtils","decodeText","TextDecoder","decode","fromCharCode","escape","extractUrlBase","lastIndexOf","InstancedBufferGeometry","InstancedBufferAttribute","BufferGeometryLoader","interleavedBufferMap","arrayBufferMap","getInterleavedBuffer","getArrayBuffer","arrayBuffer","typedArray","bufferAttribute","_typedArray","bufferAttributeConstr","_bufferAttribute","_interleavedBuffer","_typedArray2","drawcalls","offsets","ObjectLoader","_Loader","parseAnimations","parseShapes","parseGeometries","parseImages","parseTextures","parseMaterials","parseObject","parseSkeletons","bindSkeletons","hasImages","geometryShapes","bufferGeometryLoader","details","_shape","loadImage","deserializeImage","currentUrl","deserializedImage","_deserializedImage","parseConstant","TEXTURE_MAPPING","TEXTURE_WRAPPING","TEXTURE_FILTER","getGeometry","getMaterial","objectAnimations","setTexturePath","ImageBitmapLoader","createImageBitmap","fetch","ShapePath","subPaths","currentPath","Font","createPaths","chars","line_height","yMax","underlineThickness","paths","char","ret","createPath","glyph","glyphs","cpx","cpy","cpx1","cpy1","cpx2","cpy2","outline","_cachedOutline","action","ha","familyName","FontLoader","isImageBitmapLoader","setOptions","fetchOptions","credentials","blob","imageBitmap","catch","toShapes","isCCW","noHoles","toShapesNoHoles","inSubpaths","_tmpPath","_tmpShape","isPointInsidePolygon","inPolygon","polyLen","edgeLowPt","edgeHighPt","edgeDx","edgeDy","perpEdge","tmpPath","tmpShape","holesFirst","tmpPoints","tmpHoles","betterShapeHoles","newShapes","newShapeHoles","mainIdx","ambiguous","toChange","sIdx","sLen","_sIdx","_sLen","sho","hIdx","ho","hole_unassigned","s2Idx","froms","tos","AudioContext","webkitAudioContext","AudioLoader","HemisphereLightProbe","sky","ground","AmbientLightProbe","bufferCopy","decodeAudioData","audioBuffer","isHemisphereLightProbe","isAmbientLightProbe","_eyeRight","_eyeLeft","StereoCamera","eyeSep","_cache","xmin","xmax","eyeSepHalf","eyeSepOnProjection","ymax","Clock","autoStart","oldTime","running","getElapsedTime","getDelta","newTime","performance","_position$2","_quaternion$3","_scale$1","_orientation","AudioListener","gain","createGain","connect","destination","timeDelta","_clock","getInput","removeFilter","getFilter","setFilter","getMasterVolume","setMasterVolume","setTargetAtTime","currentTime","positionX","linearRampToValueAtTime","positionY","positionZ","forwardX","forwardY","forwardZ","upX","upY","upZ","setOrientation","Audio","autoplay","detune","loop","loopStart","loopEnd","playbackRate","isPlaying","hasPlaybackControl","sourceType","_startedAt","_progress","_connected","getOutput","setNodeSource","audioNode","setMediaElementSource","mediaElement","createMediaElementSource","setMediaStreamSource","mediaStream","createMediaStreamSource","play","createBufferSource","onended","onEnded","setDetune","setPlaybackRate","pause","getFilters","setFilters","getDetune","getPlaybackRate","getLoop","setLoop","setLoopStart","setLoopEnd","getVolume","setVolume","_position$3","_quaternion$4","_scale$2","_orientation$1","PositionalAudio","_Audio","panner","createPanner","panningModel","getRefDistance","refDistance","setRefDistance","getRolloffFactor","rolloffFactor","setRolloffFactor","getDistanceModel","distanceModel","setDistanceModel","getMaxDistance","maxDistance","setMaxDistance","setDirectionalCone","coneInnerAngle","coneOuterAngle","coneOuterGain","orientationX","orientationY","orientationZ","AudioAnalyser","audio","fftSize","analyser","createAnalyser","frequencyBinCount","getFrequencyData","getByteFrequencyData","getAverageFrequency","PropertyMixer","binding","mixFunction","mixFunctionAdditive","setIdentity","_slerp","_slerpAdditive","_setAdditiveIdentityQuaternion","_workIndex","_select","_setAdditiveIdentityOther","_lerp","_lerpAdditive","_setAdditiveIdentityNumeric","_mixBufferRegion","_mixBufferRegionAdditive","_setIdentity","_origIndex","_addIndex","cumulativeWeight","cumulativeWeightAdditive","useCount","referenceCount","accumulate","accuIndex","currentWeight","mix","accumulateAdditive","weightAdditive","originalValueOffset","saveOriginalState","getValue","restoreOriginalState","targetIndex","workOffset","_RESERVED_CHARS_RE","_reservedRe","RegExp","_wordChar","_wordCharOrDot","_directoryRe","_nodeRe","_objectRe","_propertyRe","_trackRe","_supportedObjectNames","Composite","targetGroup","optionalParsedPath","parsedPath","PropertyBinding","parseTrackName","_targetGroup","_bindings","subscribe_","rootNode","node","findNode","nodeName","AnimationObjectGroup","nCachedObjects_","_indicesByUUID","_paths","_parsedPaths","_bindingsIndicesByPath","stats","firstValidIndex","bindings","unbind","root","isAnimationObjectGroup","sanitizeNodeName","matches","objectName","objectIndex","propertyIndex","lastDot","searchNodeSubtree","childNode","subTreeNode","_getValue_unavailable","_setValue_unavailable","BindingType","Direct","EntireArray","ArrayElement","HasFromToArray","Versioning","None","NeedsUpdate","MatrixWorldNeedsUpdate","GetterByBindingType","resolvedProperty","SetterByBindingTypeAndVersioning","targetObject","dest","targetArray","sourceArray","nodeProperty","versioning","bindingType","_getValue_unbound","_setValue_unbound","indicesByUUID","parsedPaths","nBindings","knownObject","nObjects","nCachedObjects","firstActiveIndex","lastCachedObject","bindingsForPath","lastCached","lastCachedIndex","firstActiveObject","firstActive","uncache","lastObject","_lastIndex","_lastObject","_m2","_bindingsForPath","indicesByPath","unsubscribe_","lastBindingsIndex","lastBindings","lastBindingsPath","AnimationAction","mixer","localRoot","_mixer","_clip","_localRoot","nTracks","interpolants","interpolantSettings","_interpolantSettings","_interpolants","_propertyBindings","_cacheIndex","_byClipCacheIndex","_timeScaleInterpolant","_weightInterpolant","_loopCount","_startTime","_effectiveTimeScale","_effectiveWeight","repetitions","paused","clampWhenFinished","zeroSlopeAtStart","zeroSlopeAtEnd","_activateAction","_deactivateAction","stopFading","stopWarping","isRunning","_isActiveAction","isScheduled","startAt","setEffectiveWeight","getEffectiveWeight","fadeIn","_scheduleFading","fadeOut","crossFadeFrom","fadeOutAction","warp","fadeInDuration","fadeOutDuration","startEndRatio","endStartRatio","crossFadeTo","fadeInAction","weightInterpolant","_takeBackControlInterpolant","setEffectiveTimeScale","getEffectiveTimeScale","setDuration","syncWith","halt","startTimeScale","endTimeScale","_lendControlInterpolant","timeScaleInterpolant","getMixer","getClip","getRoot","_root","_update","deltaTime","timeDirection","timeRunning","_updateTimeScale","clipTime","_updateTime","_updateWeight","propertyMixers","interpolantValue","loopCount","pingPong","_setEndings","handle_stop","loopDelta","pending","atStart","atEnd","weightNow","weightThen","AnimationMixer","_initMemoryManager","_accuIndex","_bindAction","prototypeAction","rootUuid","bindingsByRoot","_bindingsByRootAndName","bindingsByName","_addInactiveBinding","clipUuid","actionsForClip","_actionsByClip","knownActions","_addInactiveAction","_lendBinding","_lendAction","_takeBackBinding","_takeBackAction","_actions","_nActiveActions","_nActiveBindings","_controlInterpolants","_nActiveControlInterpolants","controlInterpolants","actionsByClip","actionByRoot","_removeInactiveAction","lastInactiveAction","cacheIndex","knownActionsForClip","lastKnownAction","byClipCacheIndex","_removeInactiveBindingsForAction","_removeInactiveBinding","prevIndex","lastActiveIndex","firstInactiveAction","firstInactiveIndex","lastActiveAction","bindingByName","propBinding","lastInactiveBinding","firstInactiveBinding","lastActiveBinding","_controlInterpolantsResultBuffer","__cacheIndex","lastActiveInterpolant","clipAction","optionalRoot","clipObject","existingAction","newAction","stopAllAction","nActions","setTime","timeInSeconds","uncacheClip","actionsToRemove","uncacheRoot","uncacheAction","Uniform","InstancedInterleavedBuffer","GLBufferAttribute","Raycaster","PointCloud","ascSort","_intersectObject","setType","setItemSize","setCount","setFromCamera","coords","intersectObject","intersectObjects","Spherical","other","makeSafe","setFromCartesianCoords","Cylindrical","_vector$7","Box2","_startP","_startEnd","Line3","distanceSq","closestPointToPointParameter","clampToLine","startEnd2","startEnd_startP","ImmediateRenderObject","_vector$8","SpotLightHelper","cone","coneLength","coneWidth","_vector$9","_boneMatrix","_matrixWorldInv","SkeletonHelper","_LineSegments","getBoneList","isSkeletonHelper","boneList","PointLightHelper","_Mesh","sphereSize","_vector$a","_color1","_color2","HemisphereLightHelper","GridHelper","PolarGridHelper","radials","circles","_color","_v1$6","_v2$3","_v3$1","DirectionalLightHelper","lightPlane","targetLine","_vector$b","_camera","CameraHelper","pointMap","colorFrustum","colorCone","colorUp","colorTarget","colorCross","addLine","addPoint","setPoint","_lineGeometry","_coneGeometry","_ENCODINGS","_box$3","BoxHelper","Box3Helper","PlaneHelper","_Line","positions2","_axis","ArrowHelper","headLength","headWidth","setDirection","setColor","AxesHelper","_floatView","_int32View","DataUtils","toHalfFloat","LOD_MIN","LOD_MAX","SIZE_MAX","EXTRA_LOD_SIGMA","TOTAL_LODS","MAX_SAMPLES","ENCODINGS","_flatCamera","_createPlanes2","_createPlanes","_lodPlanes","_sizeLods","_sigmas","_oldTarget","PHI","INV_PHI","_axisDirections","PMREMGenerator","_pingPongRenderTarget","_blurMaterial","_getBlurShader","_equirectShader","_cubemapShader","_compileMaterial","fromScene","sigma","cubeUVRenderTarget","_allocateTargets","_sceneToCubeUV","_blur","_applyPMREM","_cleanup","fromEquirectangular","equirectangular","_fromTexture","fromCubemap","compileCubemapShader","_getCubemapShader","compileEquirectangularShader","_getEquirectShader","outputTarget","_setViewport","_textureToCubeUV","_isLDR","_createRenderTarget","tmpMesh","cubeCamera","upSign","forwardSign","maxComponent","fExp","log2","col","poleAxis","lodIn","lodOut","pingPongRenderTarget","_halfBlur","targetIn","targetOut","sigmaRadians","blurMaterial","STANDARD_DEVIATIONS","blurMesh","blurUniforms","pixels","radiansPerPixel","sigmaPixels","weights","exp","outputSize","lod","sizeLod","texelSize","cubeFaces","positionSize","uvSize","faceIndexSize","coordinates","fill","shaderMaterial","_getCommonVertexShader","_getEncodings","Face4","LineStrip","LinePieces","NoColors","FaceColors","VertexColors","MeshFaceMaterial","MultiMaterial","Particle","ParticleSystem","PointCloudMaterial","ParticleBasicMaterial","ParticleSystemMaterial","Vertex","DynamicBufferAttribute","Int8Attribute","Uint8Attribute","Uint8ClampedAttribute","Int16Attribute","Uint16Attribute","Int32Attribute","Uint32Attribute","Float32Attribute","Float64Attribute","ClosedSplineCurve3","SplineCurve3","Spline","AxisHelper","BoundingBoxHelper","EdgesHelper","WireframeHelper","XHRLoader","BinaryTextureLoader","WebGLRenderTargetCube","construct","createPointsGeometry","createGeometry","createSpacedPointsGeometry","fromPoints","initFromArray","getControlPointsArray","reparametrizeByArcLength","setColors","Handlers","empty","isIntersectionBox","isIntersectionSphere","setFromMatrix","random16","nearestPowerOfTwo","nextPowerOfTwo","flattenToArrayOffset","multiplyVector3","multiplyVector3Array","applyToBufferAttribute","applyToVector3Array","getInverse","extractPosition","getPosition","multiplyToArray","multiplyVector4","rotateAxis","crossVector","rotateByAxis","makeFrustum","isIntersectionLine","isIntersectionPlane","barycoordFromPoint","midpoint","extractAllPoints","extrude","makeGeometry","fromAttribute","distanceToManhattan","lengthManhattan","setEulerFromRotationMatrix","setEulerFromQuaternion","getPositionFromMatrix","getScaleFromMatrix","getColumnFromMatrix","applyProjection","computeTangents","applyMatrix","getChildByName","renderDepth","getWorldRotation","eulerOrder","useQuaternion","setDrawMode","drawMode","initBones","setLens","onlyShadow","shadowCameraFov","shadowCameraLeft","shadowCameraRight","shadowCameraTop","shadowCameraBottom","shadowCameraVisible","shadowDarkness","shadowMapWidth","shadowMapHeight","dynamic","setDynamic","copyIndicesArray","setArray","addIndex","addAttribute","addDrawCall","clearDrawCalls","computeOffsets","removeAttribute","maxInstancedCount","linePrecision","getArrays","addShapeList","wrapAround","overdraw","wrapRGB","metal","transparency","clearTarget","getCurrentRenderTarget","getPrecision","resetGLState","supportsFloatTextures","supportsHalfFloatTextures","supportsStandardDerivatives","supportsCompressedTextureS3TC","supportsCompressedTexturePVRTC","supportsBlendMinMax","supportsInstancedArrays","enableScissorTest","addPrePlugin","addPostPlugin","updateShadowMap","setFaceCulling","allocTextureUnit","setTexture","getActiveMipMapLevel","shadowMapCullFace","vr","gammaInput","gammaOutput","toneMappingWhitePoint","renderReverseSided","renderSingleSided","audioLoader","getData","updateCubeMap","GeometryUtils","geometry1","CanvasRenderer","JSONLoader","loadTextureCube","loadCompressedTexture","loadCompressedTextureCube","SceneUtils","createMultiMaterialObject","detach","LensFlare","revision","CubeGeometry"],"mappings":"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AG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC9T,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAC1R,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GACzP,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC9Q,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAClS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACtM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACrR,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACvO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GACxM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC5R,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACtM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC9O,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC7O,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACtM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC9Q,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1R,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACtM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAChO,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACnS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC3O,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC9N,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC/Q,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAClS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAClN,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC9S,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACrS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5S,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC9N,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAClV,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC9S,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Q,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC/T,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC1R,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACxS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACtV,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACrS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACzU,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC1Q,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAChW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACzR,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC9V,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACxT,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACxT,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC9T,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACtR,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC7W,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACzW,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAChR,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAChV,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5S,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAClU,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC1U,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC1S,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC1V,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1O,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACtW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAC7R,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAChW,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Q,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACpU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACnU,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAChR,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAC7U,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EACvW,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC/N,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC1V,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAClT,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACxT,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACtT,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACtT,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACpV,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAChQ,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC7V,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,EAC/R,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GACtW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC1R,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC1U,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACxU,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAC9S,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EACzV,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACpW,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAChR,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC7V,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACtT,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC7U,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACvU,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACpT,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5V,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EACnR,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC1V,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAC/R,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACnW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5R,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC7U,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACxU,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACtS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACzV,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACvS,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAChW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACjR,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAClW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACxT,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACjU,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC3U,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC5T,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAChW,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACtQ,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACxX,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAClS,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACnW,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACtS,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAChV,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC9U,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAC7R,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAChX,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACvS,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACrW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC7S,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACvW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACnU,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IACpU,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACtV,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC7T,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC9W,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAChQ,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACxX,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACnT,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAC/V,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAChT,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAChV,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5V,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACzS,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACpY,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACxW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAClV,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACvW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACnU,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAChV,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACjU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC/W,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACpV,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC9X,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACpT,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAC7V,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACpY,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACxV,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC1V,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACpV,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC7S,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC1W,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAChX,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC1W,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACrU,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACxV,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACpU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAC9W,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC3V,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAC/X,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACnT,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAC9V,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACxV,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACzV,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC3V,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAChT,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACxW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACjX,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC9W,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC9T,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACzV,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACrU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAChW,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACzV,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GACnY,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC9R,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC3V,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC1Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC3V,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC7U,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACxV,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACpT,GAAG,GAAG,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC/W,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAChX,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACvU,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACvV,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAC7W,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACzV,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,GACpY,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACnT,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAC7V,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC9W,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC7V,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5V,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACzT,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC1Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACnT,GAAG,GAAG,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC3W,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACpU,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACjX,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACvU,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC7U,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC/V,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GACtW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAClS,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACxS,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC/V,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5T,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAClW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACtV,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAClR,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAChY,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EACxT,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC1W,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACrS,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC1X,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAChU,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC7T,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC3V,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACjV,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAC9V,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACnR,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC3S,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC3V,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC3T,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACvW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACpV,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC7R,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5X,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACnT,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC9W,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC9S,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACnX,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAClU,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EACpU,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IACpU,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACpV,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC9V,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAClS,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACxX,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACpT,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACxV,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAChV,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACpV,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC3V,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAC/S,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAChW,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC3T,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACxT,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GACjW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACpV,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAClU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAC7U,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EACzU,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACnX,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAClS,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACjX,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACxU,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACtV,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC1U,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACnU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC9W,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC5S,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACpV,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC3U,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACvW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACrT,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC7V,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAClW,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC/T,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAC3U,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,IAC/T,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACxX,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACjS,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5W,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC7U,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACjV,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACxU,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACpU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACrX,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACvS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAC9U,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC/U,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACpW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACpT,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GACvV,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACrW,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC5T,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAChV,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAC9T,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzX,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EACpS,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACzW,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5U,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC/U,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACpU,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC5U,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACtX,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAC5U,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACjV,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACrW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC/S,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EACpW,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC3V,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC/T,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,GACjV,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IACzT,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC5X,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAChS,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACzW,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC7U,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACrV,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC7T,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAClV,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC3W,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC9S,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EACxU,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC/U,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC3W,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACvS,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAC3W,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAClV,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACpU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EACjV,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAChU,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC5X,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAChS,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5W,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACjV,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACrV,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACzU,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC9U,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC3W,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC9S,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACrV,GAAG,GAAG,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACzU,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC7W,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACtT,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EACvW,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC9U,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACrU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EACtV,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAChU,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,GACpX,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAC9R,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACtW,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5U,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC/V,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC1U,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACrU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACrW,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzT,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAClV,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC7T,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACpX,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACzT,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC7V,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACxU,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC5U,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACjV,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC9T,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EACpX,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACvS,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACpV,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,IACjU,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC/V,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACjV,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACpT,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACxV,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACxT,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACnU,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACpT,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACjW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC9T,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAC5T,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACjS,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC9U,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACjU,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC7S,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC9T,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC1S,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC7T,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACtR,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAClV,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC9U,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACxR,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACnS,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EACjU,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACpU,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAClS,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GACtU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5T,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC5S,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAClS,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzV,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC5U,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC5R,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACzU,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACjT,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC9U,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC/R,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACvV,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAClV,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACjS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACrT,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EACtU,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAChV,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC1S,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EACtV,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACxT,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAChU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EACpS,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzV,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1V,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC3S,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACtU,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACzT,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC1V,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACxS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACpV,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACnV,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAChT,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAChT,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAClU,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACvV,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC9S,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACtV,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC3S,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC/T,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACxU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC3U,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC5S,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC/T,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACrT,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAClV,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EACzV,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACpV,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACxS,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACrV,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACjW,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC9S,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC/U,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACnW,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAChU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC/V,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC5W,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC3S,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACzT,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAClX,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAClV,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACvS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAChW,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAClX,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACvS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IACnS,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACpY,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACjW,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC3R,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC1U,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAChS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAClX,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAChY,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC5Q,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACrT,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACxU,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACnS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC3V,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC5R,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACnS,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC1Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC1W,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACrR,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACrU,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC9T,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC3W,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAC1Y,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC5R,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACjT,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzV,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACvS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACzV,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC7S,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACnS,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC1Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAChX,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACtU,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC3U,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC/W,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAClS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACpT,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAChW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC9V,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACxT,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IACnS,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACnX,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC3U,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC3U,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC7W,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACxR,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC/S,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACrW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAChR,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC/V,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAC9Q,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAC/R,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EACrX,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACnP,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACzU,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACnS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACrR,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACtX,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAClP,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC3T,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAChV,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAClR,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC9V,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GACrT,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAC9R,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAClY,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACxS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACrU,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EACtW,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GACpR,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACjX,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACrT,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC1S,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACrS,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5U,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC5W,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACxP,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC3S,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAChQ,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACpX,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACxX,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC9P,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAClT,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAChV,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAClR,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IACpY,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC9X,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5Y,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,I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","file":"js/app.96c3114b64f802753183.bundle.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"633ec29f\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"","module.exports = __webpack_public_path__ + \"img/oono-s.15a964b5.jpg\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadEventsHistory.vue?vue&type=style&index=0&id=e8db6ce8&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppliedUserTags.vue?vue&type=style&index=0&id=cf1b6540&scoped=true&lang=css&\"","module.exports = __webpack_public_path__ + \"img/2_no_clouds_4k.62b35535.jpg\";","module.exports = __webpack_public_path__ + \"img/elev_bump_4k.f0080dda.jpg\";","var map = {\n\t\"./af\": \"2bfb\",\n\t\"./af.js\": \"2bfb\",\n\t\"./ar\": \"8e73\",\n\t\"./ar-dz\": \"a356\",\n\t\"./ar-dz.js\": \"a356\",\n\t\"./ar-kw\": \"423e\",\n\t\"./ar-kw.js\": \"423e\",\n\t\"./ar-ly\": \"1cfd\",\n\t\"./ar-ly.js\": \"1cfd\",\n\t\"./ar-ma\": \"0a84\",\n\t\"./ar-ma.js\": \"0a84\",\n\t\"./ar-sa\": \"8230\",\n\t\"./ar-sa.js\": \"8230\",\n\t\"./ar-tn\": \"6d83\",\n\t\"./ar-tn.js\": \"6d83\",\n\t\"./ar.js\": \"8e73\",\n\t\"./az\": \"485c\",\n\t\"./az.js\": \"485c\",\n\t\"./be\": \"1fc1\",\n\t\"./be.js\": \"1fc1\",\n\t\"./bg\": \"84aa\",\n\t\"./bg.js\": \"84aa\",\n\t\"./bm\": \"a7fa\",\n\t\"./bm.js\": \"a7fa\",\n\t\"./bn\": \"9043\",\n\t\"./bn-bd\": \"9686\",\n\t\"./bn-bd.js\": \"9686\",\n\t\"./bn.js\": \"9043\",\n\t\"./bo\": \"d26a\",\n\t\"./bo.js\": \"d26a\",\n\t\"./br\": \"6887\",\n\t\"./br.js\": \"6887\",\n\t\"./bs\": \"2554\",\n\t\"./bs.js\": \"2554\",\n\t\"./ca\": \"d716\",\n\t\"./ca.js\": \"d716\",\n\t\"./cs\": \"3c0d\",\n\t\"./cs.js\": \"3c0d\",\n\t\"./cv\": \"03ec\",\n\t\"./cv.js\": \"03ec\",\n\t\"./cy\": \"9797\",\n\t\"./cy.js\": \"9797\",\n\t\"./da\": \"0f14\",\n\t\"./da.js\": \"0f14\",\n\t\"./de\": \"b469\",\n\t\"./de-at\": \"b3eb\",\n\t\"./de-at.js\": \"b3eb\",\n\t\"./de-ch\": \"bb71\",\n\t\"./de-ch.js\": \"bb71\",\n\t\"./de.js\": \"b469\",\n\t\"./dv\": \"598a\",\n\t\"./dv.js\": \"598a\",\n\t\"./el\": \"8d47\",\n\t\"./el.js\": \"8d47\",\n\t\"./en-au\": \"0e6b\",\n\t\"./en-au.js\": \"0e6b\",\n\t\"./en-ca\": \"3886\",\n\t\"./en-ca.js\": \"3886\",\n\t\"./en-gb\": \"39a6\",\n\t\"./en-gb.js\": \"39a6\",\n\t\"./en-ie\": \"e1d3\",\n\t\"./en-ie.js\": \"e1d3\",\n\t\"./en-il\": \"7333\",\n\t\"./en-il.js\": \"7333\",\n\t\"./en-in\": \"ec2e\",\n\t\"./en-in.js\": \"ec2e\",\n\t\"./en-nz\": \"6f50\",\n\t\"./en-nz.js\": \"6f50\",\n\t\"./en-sg\": \"b7e9\",\n\t\"./en-sg.js\": \"b7e9\",\n\t\"./eo\": \"65db\",\n\t\"./eo.js\": \"65db\",\n\t\"./es\": \"898b\",\n\t\"./es-do\": \"0a3c\",\n\t\"./es-do.js\": \"0a3c\",\n\t\"./es-mx\": \"b5b7\",\n\t\"./es-mx.js\": \"b5b7\",\n\t\"./es-us\": \"55c9\",\n\t\"./es-us.js\": \"55c9\",\n\t\"./es.js\": \"898b\",\n\t\"./et\": \"ec18\",\n\t\"./et.js\": \"ec18\",\n\t\"./eu\": \"0ff2\",\n\t\"./eu.js\": \"0ff2\",\n\t\"./fa\": \"8df4\",\n\t\"./fa.js\": \"8df4\",\n\t\"./fi\": \"81e9\",\n\t\"./fi.js\": \"81e9\",\n\t\"./fil\": \"d69a\",\n\t\"./fil.js\": \"d69a\",\n\t\"./fo\": \"0721\",\n\t\"./fo.js\": \"0721\",\n\t\"./fr\": \"9f26\",\n\t\"./fr-ca\": \"d9f8\",\n\t\"./fr-ca.js\": \"d9f8\",\n\t\"./fr-ch\": \"0e49\",\n\t\"./fr-ch.js\": \"0e49\",\n\t\"./fr.js\": \"9f26\",\n\t\"./fy\": \"7118\",\n\t\"./fy.js\": \"7118\",\n\t\"./ga\": \"5120\",\n\t\"./ga.js\": \"5120\",\n\t\"./gd\": \"f6b4\",\n\t\"./gd.js\": \"f6b4\",\n\t\"./gl\": \"8840\",\n\t\"./gl.js\": \"8840\",\n\t\"./gom-deva\": \"aaf2\",\n\t\"./gom-deva.js\": \"aaf2\",\n\t\"./gom-latn\": \"0caa\",\n\t\"./gom-latn.js\": \"0caa\",\n\t\"./gu\": \"e0c5\",\n\t\"./gu.js\": \"e0c5\",\n\t\"./he\": \"c7aa\",\n\t\"./he.js\": \"c7aa\",\n\t\"./hi\": \"dc4d\",\n\t\"./hi.js\": \"dc4d\",\n\t\"./hr\": \"4ba9\",\n\t\"./hr.js\": \"4ba9\",\n\t\"./hu\": \"5b14\",\n\t\"./hu.js\": \"5b14\",\n\t\"./hy-am\": \"d6b6\",\n\t\"./hy-am.js\": \"d6b6\",\n\t\"./id\": \"5038\",\n\t\"./id.js\": \"5038\",\n\t\"./is\": \"0558\",\n\t\"./is.js\": \"0558\",\n\t\"./it\": \"6e98\",\n\t\"./it-ch\": \"6f12\",\n\t\"./it-ch.js\": \"6f12\",\n\t\"./it.js\": \"6e98\",\n\t\"./ja\": \"079e\",\n\t\"./ja.js\": \"079e\",\n\t\"./jv\": \"b540\",\n\t\"./jv.js\": \"b540\",\n\t\"./ka\": \"201b\",\n\t\"./ka.js\": \"201b\",\n\t\"./kk\": \"6d79\",\n\t\"./kk.js\": \"6d79\",\n\t\"./km\": \"e81d\",\n\t\"./km.js\": \"e81d\",\n\t\"./kn\": \"3e92\",\n\t\"./kn.js\": \"3e92\",\n\t\"./ko\": \"22f8\",\n\t\"./ko.js\": \"22f8\",\n\t\"./ku\": \"2421\",\n\t\"./ku.js\": \"2421\",\n\t\"./ky\": \"9609\",\n\t\"./ky.js\": \"9609\",\n\t\"./lb\": \"440c\",\n\t\"./lb.js\": \"440c\",\n\t\"./lo\": \"b29d\",\n\t\"./lo.js\": \"b29d\",\n\t\"./lt\": \"26f9\",\n\t\"./lt.js\": \"26f9\",\n\t\"./lv\": \"b97c\",\n\t\"./lv.js\": \"b97c\",\n\t\"./me\": \"293c\",\n\t\"./me.js\": \"293c\",\n\t\"./mi\": \"688b\",\n\t\"./mi.js\": \"688b\",\n\t\"./mk\": \"6909\",\n\t\"./mk.js\": \"6909\",\n\t\"./ml\": \"02fb\",\n\t\"./ml.js\": \"02fb\",\n\t\"./mn\": \"958b\",\n\t\"./mn.js\": \"958b\",\n\t\"./mr\": \"39bd\",\n\t\"./mr.js\": \"39bd\",\n\t\"./ms\": \"ebe4\",\n\t\"./ms-my\": \"6403\",\n\t\"./ms-my.js\": \"6403\",\n\t\"./ms.js\": \"ebe4\",\n\t\"./mt\": \"1b45\",\n\t\"./mt.js\": \"1b45\",\n\t\"./my\": \"8689\",\n\t\"./my.js\": \"8689\",\n\t\"./nb\": \"6ce3\",\n\t\"./nb.js\": \"6ce3\",\n\t\"./ne\": \"3a39\",\n\t\"./ne.js\": \"3a39\",\n\t\"./nl\": \"facd\",\n\t\"./nl-be\": \"db29\",\n\t\"./nl-be.js\": \"db29\",\n\t\"./nl.js\": \"facd\",\n\t\"./nn\": \"b84c\",\n\t\"./nn.js\": \"b84c\",\n\t\"./oc-lnc\": \"167b\",\n\t\"./oc-lnc.js\": \"167b\",\n\t\"./pa-in\": \"f3ff\",\n\t\"./pa-in.js\": \"f3ff\",\n\t\"./pl\": \"8d57\",\n\t\"./pl.js\": \"8d57\",\n\t\"./pt\": \"f260\",\n\t\"./pt-br\": \"d2d4\",\n\t\"./pt-br.js\": \"d2d4\",\n\t\"./pt.js\": \"f260\",\n\t\"./ro\": \"972c\",\n\t\"./ro.js\": \"972c\",\n\t\"./ru\": \"957c\",\n\t\"./ru.js\": \"957c\",\n\t\"./sd\": \"6784\",\n\t\"./sd.js\": \"6784\",\n\t\"./se\": \"ffff\",\n\t\"./se.js\": \"ffff\",\n\t\"./si\": \"eda5\",\n\t\"./si.js\": \"eda5\",\n\t\"./sk\": \"7be6\",\n\t\"./sk.js\": \"7be6\",\n\t\"./sl\": \"8155\",\n\t\"./sl.js\": \"8155\",\n\t\"./sq\": \"c8f3\",\n\t\"./sq.js\": \"c8f3\",\n\t\"./sr\": \"cf1e\",\n\t\"./sr-cyrl\": \"13e9\",\n\t\"./sr-cyrl.js\": \"13e9\",\n\t\"./sr.js\": \"cf1e\",\n\t\"./ss\": \"52bd\",\n\t\"./ss.js\": \"52bd\",\n\t\"./sv\": \"5fbd\",\n\t\"./sv.js\": \"5fbd\",\n\t\"./sw\": \"74dc\",\n\t\"./sw.js\": \"74dc\",\n\t\"./ta\": \"3de5\",\n\t\"./ta.js\": \"3de5\",\n\t\"./te\": \"5cbb\",\n\t\"./te.js\": \"5cbb\",\n\t\"./tet\": \"576c\",\n\t\"./tet.js\": \"576c\",\n\t\"./tg\": \"3b1b\",\n\t\"./tg.js\": \"3b1b\",\n\t\"./th\": \"10e8\",\n\t\"./th.js\": \"10e8\",\n\t\"./tk\": \"5aff\",\n\t\"./tk.js\": \"5aff\",\n\t\"./tl-ph\": \"0f38\",\n\t\"./tl-ph.js\": \"0f38\",\n\t\"./tlh\": \"cf75\",\n\t\"./tlh.js\": \"cf75\",\n\t\"./tr\": \"0e81\",\n\t\"./tr.js\": \"0e81\",\n\t\"./tzl\": \"cf51\",\n\t\"./tzl.js\": \"cf51\",\n\t\"./tzm\": \"c109\",\n\t\"./tzm-latn\": \"b53d\",\n\t\"./tzm-latn.js\": \"b53d\",\n\t\"./tzm.js\": \"c109\",\n\t\"./ug-cn\": \"6117\",\n\t\"./ug-cn.js\": \"6117\",\n\t\"./uk\": \"ada2\",\n\t\"./uk.js\": \"ada2\",\n\t\"./ur\": \"5294\",\n\t\"./ur.js\": \"5294\",\n\t\"./uz\": \"2e8c\",\n\t\"./uz-latn\": \"010e\",\n\t\"./uz-latn.js\": \"010e\",\n\t\"./uz.js\": \"2e8c\",\n\t\"./vi\": \"2921\",\n\t\"./vi.js\": \"2921\",\n\t\"./x-pseudo\": \"fd7e\",\n\t\"./x-pseudo.js\": \"fd7e\",\n\t\"./yo\": \"7f33\",\n\t\"./yo.js\": \"7f33\",\n\t\"./zh-cn\": \"5c3a\",\n\t\"./zh-cn.js\": \"5c3a\",\n\t\"./zh-hk\": \"49ab\",\n\t\"./zh-hk.js\": \"49ab\",\n\t\"./zh-mo\": \"3a6c\",\n\t\"./zh-mo.js\": \"3a6c\",\n\t\"./zh-tw\": \"90ea\",\n\t\"./zh-tw.js\": \"90ea\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"4678\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserProfile.vue?vue&type=style&index=0&id=7ed3b49a&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopupModal.vue?vue&type=style&index=0&id=31cfed2b&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"resize\",rawName:\"v-resize:debounce\",value:(_vm.onResize),expression:\"onResize\",arg:\"debounce\"},{name:\"resize\",rawName:\"v-resize:initial\",value:(_vm.onResize),expression:\"onResize\",arg:\"initial\"}]},[(this.$route.meta.headerless !== true)?_c('OwcHeader'):_vm._e(),_c('router-view')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('nav',{staticClass:\"nav navbar-expand-sm\",attrs:{\"id\":\"top-nav\"}},[_c('router-link',{staticClass:\"navbar-brand mx-4 pb-1\",attrs:{\"to\":\"/\"}},[_vm._v(\"OW Cloud\")]),_vm._m(0),_c('div',{staticClass:\"collapse navbar-collapse pb-1 mx-3\",attrs:{\"id\":\"mynav\"}},[_c('ul',{staticClass:\"navbar-nav mr-auto\"},[_c('li',{staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link\",attrs:{\"to\":\"/\"}},[_vm._v(\"Home\")])],1),_c('li',{staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link\",attrs:{\"to\":\"/events\"}},[_vm._v(\"Events\")])],1),(_vm.isLoggedInUserFeedMaintainer)?_c('li',{staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link\",attrs:{\"to\":\"/tags\"}},[_vm._v(\"Tags\")])],1):_vm._e(),_c('li',{staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link\",attrs:{\"to\":\"/campaigns\"}},[_vm._v(\"Campaigns\")])],1),_c('li',{staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link\",attrs:{\"to\":\"/filters\"}},[_vm._v(\"Filters\")])],1),_c('li',{staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link\",attrs:{\"to\":\"/search\"}},[_vm._v(\"Search\")])],1),(_vm.tagEventsVisible && _vm.isLoggedInUserFeedMaintainer)?_c('li',{staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link\",attrs:{\"to\":\"/tag-events\"}},[_vm._v(\"Tag Events\")])],1):_vm._e(),(_vm.isLoggedInUserFeedMaintainer)?_c('li',{staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link\",attrs:{\"to\":\"/upload-events\"}},[_vm._v(\"Upload Events\")])],1):_vm._e(),_c('li',{staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link\",attrs:{\"to\":\"/about\"}},[_vm._v(\"About\")])],1)]),_c('ThemeSelector'),_c('LoggedInUserActions',{attrs:{\"viewPortVisible\":_vm.viewPortVisible}})],1)],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"navbar-toggler\",attrs:{\"type\":\"button\",\"data-toggle\":\"collapse\",\"data-target\":\"#mynav\"}},[_c('span',{staticClass:\"navbar-toggler-icon\"})])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pull-right\"},[(this.canShow)?_c('ul',{staticClass:\"navbar-nav pull-right\"},[(_vm.viewPortVisible)?_c('li',{staticClass:\"pt-2 pr-3\",staticStyle:{\"color\":\"#444411\"}},[_vm._v(\"[\"+_vm._s(_vm.viewPortSize)+\"]\")]):_vm._e(),(!_vm.currentUser)?_c('li',{staticClass:\"nav-item\"},[_c('a',{staticClass:\"nav-link\",attrs:{\"href\":\"#\"},on:{\"click\":_vm.logIn}},[_vm._v(\"Login\")])]):_vm._e(),(_vm.currentUser && _vm.currentUser.id)?_c('li',{staticClass:\"nav-item dropdown\"},[_c('b-dropdown',{attrs:{\"variant\":\"link\",\"toggle-class\":\"text-decoration-none\",\"no-caret\":\"\"},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('i',{staticClass:\"fa fa-user pr-1\"}),_vm._v(\"Welcome, \"+_vm._s(_vm.currentUser.name)+\" \"),_c('i',{staticClass:\"fa fa-angle-down pr-1\"})]},proxy:true}],null,false,3528319018)},[_c('b-dropdown-item',{attrs:{\"href\":\"#\"},on:{\"click\":_vm.userProfile}},[_c('i',{staticClass:\"fa fa-cog pr-1\"}),_vm._v(\" User Profile\")]),_c('b-dropdown-divider'),_c('b-dropdown-item',{attrs:{\"href\":\"#\"},on:{\"click\":_vm.logOut}},[_c('i',{staticClass:\"fa fa-power-off pr-1\"}),_vm._v(\" Logout\")])],1)],1):_vm._e()]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoggedInUserActions.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoggedInUserActions.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LoggedInUserActions.vue?vue&type=template&id=5315b64a&\"\nimport script from \"./LoggedInUserActions.vue?vue&type=script&lang=js&\"\nexport * from \"./LoggedInUserActions.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OwcHeader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OwcHeader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./OwcHeader.vue?vue&type=template&id=6e8ab1f9&\"\nimport script from \"./OwcHeader.vue?vue&type=script&lang=js&\"\nexport * from \"./OwcHeader.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=04cbafb4&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container-fluid\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-lg-3 pb-3 pt-4 mx-2\"},[_c('UserDashboardTile'),_c('TagUsageStats')],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.userDashVisible)?_c('div',{staticClass:\"row border\"},[_c('div',{staticClass:\"col-11 text-white text-center mx-auto pb-2 pt-2 font-weight-bold\",staticStyle:{\"font-family\":\"'Arial Narrow Bold', sans-serif\"}},[_vm._v(\"FEED MAINTAINER\")]),_vm._m(0),_c('div',{staticClass:\"col-12 text-center pt-2 pb-2 font-weight-bold\",staticStyle:{\"font-family\":\"Verdana, Geneva, Tahoma, sans-serif\"}},[_vm._v(\"John User\")]),_c('div',{staticClass:\"col-12 text-center pt-4 pb-2\",staticStyle:{\"font-family\":\"Arial, Helvetica, sans-serif\"}},[_vm._v(\"TAG STATISTICS\")]),_vm._m(1),_c('div',{staticClass:\"col-12 text-center pt-4 pb-2\",staticStyle:{\"font-family\":\"Arial, Helvetica, sans-serif\"}},[_vm._v(\"ACTIONS REQUIRED\")]),_vm._m(2)]):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-12 text-center mt-2\"},[_c('img',{attrs:{\"src\":require(\"@/assets/images/user.png\"),\"width\":\"120px\",\"alt\":\"User\"}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-12 mb-3\"},[_c('ul',{staticClass:\"list-group\"},[_c('li',{staticClass:\"list-group-item d-flex justify-content-between align-items-center\"},[_vm._v(\" Tagged Active Events \"),_c('span',{staticClass:\"badge badge-dark\",staticStyle:{\"font-size\":\"13px\"}},[_vm._v(\"75\")])]),_c('li',{staticClass:\"list-group-item d-flex justify-content-between align-items-center\"},[_vm._v(\" Tagged Active Unique Events \"),_c('span',{staticClass:\"badge badge-dark\",staticStyle:{\"font-size\":\"13px\"}},[_vm._v(\"58 %\")])]),_c('li',{staticClass:\"list-group-item d-flex justify-content-between align-items-center\"},[_vm._v(\" User Subscriptions \"),_c('span',{staticClass:\"badge badge-secondary\",staticStyle:{\"font-size\":\"13px\"}},[_vm._v(\"34\")])]),_c('li',{staticClass:\"list-group-item d-flex justify-content-between align-items-center\"},[_vm._v(\" Total Observed Events (past 30 days) \"),_c('span',{staticClass:\"badge badge-secondary\",staticStyle:{\"font-size\":\"13px\"}},[_vm._v(\"35 %\")])]),_c('li',{staticClass:\"list-group-item d-flex justify-content-between align-items-center\"},[_vm._v(\" Total Tagged Events \"),_c('span',{staticClass:\"badge badge-secondary\",staticStyle:{\"font-size\":\"13px\"}},[_vm._v(\"427\")])])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-12 mb-3\"},[_c('ul',{staticClass:\"list-group\"},[_c('li',{staticClass:\"list-group-item d-flex justify-content-between align-items-center\"},[_c('a',{attrs:{\"href\":\"\"}},[_vm._v(\"Tag events for next period\")]),_c('span',{staticClass:\"badge badge-secondary\",staticStyle:{\"font-size\":\"13px\"}},[_vm._v(\"due in 12 days\")])])])])}]\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserDashboardTile.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserDashboardTile.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UserDashboardTile.vue?vue&type=template&id=95a60d76&scoped=true&\"\nimport script from \"./UserDashboardTile.vue?vue&type=script&lang=js&\"\nexport * from \"./UserDashboardTile.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"95a60d76\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row border\"},[_c('div',{staticClass:\"col-12 text-center pt-2 pb-2\",staticStyle:{\"font-family\":\"Arial, Helvetica, sans-serif\"}},[_vm._v(\"OccultWatcher Feeds AVAILABILITY \"),(_vm.showLoader)?_c('b-spinner',{staticClass:\"justify-content-center mt-3\",staticStyle:{\"width\":\"1rem\",\"height\":\"1rem\"},attrs:{\"varient\":\"secondary\"}}):_vm._e()],1),(!_vm.showLoader)?_c('div',{staticClass:\"col-12 mb-3\"},_vm._l((_vm.tagInfo),function(ti){return _c('ul',{key:ti.id,staticClass:\"list-group\"},[_c('li',{staticClass:\"list-group-item d-flex justify-content-between align-items-center\"},[_c('router-link',{attrs:{\"to\":{ name: 'TaggedEvents', params: { campaignId: ti.name }},\"custom\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar href = ref.href;\nreturn [_c('a',{attrs:{\"href\":href,\"target\":\"_blank\",\"title\":ti.descr}},[_vm._v(_vm._s(ti.name))])]}}],null,true)}),_c('span',{staticClass:\"badge badge-secondary\",staticStyle:{\"font-size\":\"13px\"}},[_vm._v(_vm._s(_vm._f(\"formatDayMonth\")(ti.lastEvent)))])],1)])}),0):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TagUsageStats.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TagUsageStats.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TagUsageStats.vue?vue&type=template&id=0c5dc9b6&scoped=true&\"\nimport script from \"./TagUsageStats.vue?vue&type=script&lang=js&\"\nexport * from \"./TagUsageStats.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0c5dc9b6\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7733d1ec&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import moment from 'moment'\r\n\r\nexport function sleep(ms) {\r\n return new Promise(resolve => setTimeout(resolve, ms));\r\n}\r\n\r\nexport function hasPassedUtc(timeVal) {\r\n return moment.utc(String(timeVal)).isBefore(moment().utc());\r\n}\r\n\r\nexport function degToStr(deg) {\r\n var retVal = \"\";\r\n if (deg < 0)\r\n {\r\n retVal = \"-\";\r\n deg = -deg;\r\n }\r\n retVal = retVal + Math.floor(deg) + \"° \";\r\n deg = (deg - Math.floor(deg)) * 60;\r\n retVal = retVal + Math.floor(deg) + \"' \";\r\n deg = (deg - Math.floor(deg)) * 60;\r\n retVal = retVal + Math.floor(deg) + '\"';\r\n\r\n return retVal;\r\n} \r\n\r\nconst debug = process.env.NODE_ENV != 'production';\r\n\r\nconst REPORT_NOT_REPORTED = 0;\r\nconst REPORT_MISS = 1;\r\nconst REPORT_CLOUDED = 2;\r\nconst REPORT_FAILED = 3;\r\nconst REPORT_POSITIVE = 4;\r\nconst REPORT_NOT_OBSERVED = 5;\r\nconst REPORT_NOT_REDUCED = 6; \r\n\r\nexport default {\r\n methods: {\r\n showToast(message, title, delay){\r\n\r\n if (title === 'ERROR' && message && ((message + '').endsWith('status code 401') || (message.response && message.response.status === 401)))\r\n {\r\n // 401 should have been handled already\r\n // by restoring session or redirecting to login page\r\n return;\r\n }\r\n\r\n if (debug && title === 'ERROR')\r\n {\r\n console.trace(message);\r\n }\r\n\r\n if (!delay)\r\n {\r\n delay = title === 'SUCCESS' ? 1500 : 5000;\r\n }\r\n\r\n this.$bvToast.toast(message, {\r\n title: title,\r\n variant: title === 'SUCCESS' ? 'success' : 'danger',\r\n solid: true,\r\n autoHideDelay: delay,\r\n toaster: 'b-toaster-top-right'\r\n });\r\n },\r\n addOwStationClasses(stations){\r\n if (stations)\r\n {\r\n const hasReportData = stations.filter(x => x.report !== null).length > 0\r\n for(var st of stations)\r\n {\r\n st.cls = this.getStationClass(st, hasReportData);\r\n }\r\n } \r\n },\r\n getStationClass(st, hasReportData){\r\n if (hasReportData)\r\n {\r\n if (st.report)\r\n {\r\n switch (st.report)\r\n {\r\n case REPORT_MISS:\r\n return \"miss\";\r\n case REPORT_POSITIVE:\r\n return \"hit\"; \r\n case REPORT_CLOUDED: \r\n case REPORT_FAILED:\r\n case REPORT_NOT_OBSERVED:\r\n return \"noobs\";\r\n case REPORT_NOT_REPORTED:\r\n case REPORT_NOT_REDUCED:\r\n return \"norep\";\r\n }\r\n }\r\n }\r\n else if (!hasReportData &&st.cloud)\r\n {\r\n var cloud0to9 = Math.round(st.cloud / 10);\r\n switch(cloud0to9)\r\n {\r\n case 0:\r\n return \"cloud0\";\r\n case 1:\r\n return \"cloud1\";\r\n case 2:\r\n return \"cloud2\";\r\n case 3:\r\n return \"cloud3\";\r\n case 4:\r\n return \"cloud4\";\r\n case 5:\r\n return \"cloud5\";\r\n case 6:\r\n return \"cloud6\";\r\n case 7:\r\n return \"cloud7\";\r\n case 8:\r\n return \"cloud8\";\r\n case 9:\r\n return \"cloud9\";\r\n default:\r\n return \"cloud10\"; \r\n }\r\n }\r\n\r\n return \"site\";\r\n } \r\n }\r\n}","import axios from 'axios';\r\nimport * as owcMixin from '@/mixins/owcMixin.js';\r\n\r\nexport default {\r\n async loginUser ({commit}, userAndPass) {\r\n try\r\n {\r\n await owcMixin.sleep(1000);\r\n\r\n let getUrl = `${process.env.VUE_APP_OW_AUTH_BASE_URL}/login`;\r\n let result = await axios.get(getUrl, \r\n { \r\n auth: {\r\n username: userAndPass.user,\r\n password: userAndPass.pass\r\n },\r\n withCredentials: true \r\n });\r\n\r\n if (result && result.status === 200)\r\n {\r\n console.log(`Logged in successfully: ${userAndPass.user}, remember me: ${userAndPass.save}, session duration: ${result.data.sessionDurMin} min`, result.data);\r\n \r\n localStorage.setItem('owc-user-remember', userAndPass.save ? 't' : 'f');\r\n if (userAndPass.save && \r\n (localStorage.getItem('owc-user-name') !== userAndPass.user ||\r\n localStorage.getItem('owc-user-pass') !== userAndPass.pass))\r\n {\r\n localStorage.setItem('owc-user-name', userAndPass.user);\r\n localStorage.setItem('owc-user-pass', userAndPass.pass);\r\n console.log('Remembered owc-user credentials');\r\n }\r\n else if (!userAndPass.save && localStorage.getItem('owc-user-name'))\r\n {\r\n localStorage.setItem('owc-user-name', null);\r\n localStorage.setItem('owc-user-pass', null);\r\n console.log('Cleared owc-user credentials');\r\n }\r\n\r\n commit('SET_LOGGED_IN_USER', result.data);\r\n commit('SET_NEW_USER_SESSION', result.data);\r\n }\r\n else\r\n {\r\n commit('SET_LOGGED_IN_USER', null);\r\n commit('SET_NEW_USER_SESSION', null);\r\n }\r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n },\r\n async loginUserWithOwSessionId ({commit}, owSessionId) {\r\n try\r\n {\r\n await owcMixin.sleep(1000);\r\n\r\n let getUrl = `${process.env.VUE_APP_OW_AUTH_BASE_URL}/login`;\r\n let result = await axios.get(getUrl, \r\n { \r\n headers: {\r\n \"OW-Session\": owSessionId\r\n },\r\n withCredentials: true \r\n });\r\n\r\n if (result && result.status === 200)\r\n {\r\n console.log(`Logged in successfully: ${result.data.login}, session duration: ${result.data.sessionDurMin} min`, result.data);\r\n\r\n commit('SET_LOGGED_IN_USER', result.data);\r\n commit('SET_NEW_USER_SESSION', result.data);\r\n }\r\n else\r\n {\r\n commit('SET_LOGGED_IN_USER', null);\r\n commit('SET_NEW_USER_SESSION', null);\r\n }\r\n }\r\n catch(error){\r\n throw new Error(error);\r\n } \r\n },\r\n async logoutUser ({commit}) {\r\n commit('SET_LOGGED_IN_USER', null);\r\n commit('SET_NEW_USER_SESSION', null);\r\n }, \r\n async ensureCurrentUser({commit}) {\r\n let getUrl = `${process.env.VUE_APP_OW_AUTH_BASE_URL}/user`;\r\n let result = await axios.get(getUrl, { withCredentials: true, gettingUserInfo: true });\r\n \r\n if (result && result.status === 200)\r\n {\r\n commit('SET_LOGGED_IN_USER', result.data);\r\n commit('SET_NEW_USER_SESSION', result.data);\r\n }\r\n }, \r\n async loadUserProfile ({commit}) {\r\n try\r\n {\r\n let getUrl = `${process.env.VUE_APP_OW_AUTH_BASE_URL}/user-profile`;\r\n let result = await axios.get(getUrl, { withCredentials: true });\r\n\r\n if (result && result.status === 200)\r\n {\r\n commit('SET_USER_PROFILE', result.data);\r\n }\r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n },\r\n async saveUserProfile ({commit}, profile) {\r\n try\r\n {\r\n await owcMixin.sleep(250);\r\n\r\n let getUrl = `${process.env.VUE_APP_OW_AUTH_BASE_URL}/user-profile`;\r\n let result = await axios.post(getUrl, profile, { withCredentials: true });\r\n\r\n if (result && result.status === 200)\r\n {\r\n commit('SET_USER_PROFILE', result.data);\r\n } \r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n },\r\n async loadUserOAuthClient ({commit}) {\r\n try\r\n {\r\n let getUrl = `${process.env.VUE_APP_PROFILE_BASE_URL}/owned-oauth-client`;\r\n let result = await axios.get(getUrl, { withCredentials: true });\r\n\r\n if (result && result.status === 200)\r\n {\r\n commit('SET_USER_OAUTH_CLIENT', result.data); \r\n }\r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n }, \r\n async loadUserSites ({commit}) {\r\n try\r\n {\r\n let getUrl = `${process.env.VUE_APP_PROFILE_BASE_URL}/saved-sites`;\r\n let result = await axios.get(getUrl, { withCredentials: true });\r\n\r\n if (result && result.status === 200)\r\n {\r\n commit('SET_USER_SITES', result.data); \r\n }\r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n }, \r\n async deleteSavedSite (_, site) {\r\n try\r\n {\r\n await owcMixin.sleep(250);\r\n\r\n let postUrl = `${process.env.VUE_APP_PROFILE_BASE_URL}/saved-site/delete`;\r\n await axios.post(postUrl, site, { withCredentials: true }); \r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n },\r\n async updateSavedSite (_, site) {\r\n try\r\n {\r\n await owcMixin.sleep(250);\r\n\r\n let postUrl = `${process.env.VUE_APP_PROFILE_BASE_URL}/saved-site`;\r\n await axios.post(postUrl, site, { withCredentials: true }); \r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n },\r\n async addSavedSite (_, site) {\r\n try\r\n {\r\n await owcMixin.sleep(250);\r\n\r\n let putUrl = `${process.env.VUE_APP_PROFILE_BASE_URL}/saved-site`;\r\n await axios.put(putUrl, site, { withCredentials: true }); \r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n }, \r\n async createUser (_, user) {\r\n try\r\n {\r\n await owcMixin.sleep(250);\r\n\r\n let getUrl = `${process.env.VUE_APP_OW_AUTH_BASE_URL}/create-user`;\r\n await axios.post(getUrl, user, { withCredentials: false }); \r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n },\r\n async resetPassword(_, request){\r\n try\r\n {\r\n await owcMixin.sleep(250);\r\n\r\n let postUrl = `${process.env.VUE_APP_OW_AUTH_BASE_URL}/reset-password`;\r\n await axios.post(postUrl, request, { withCredentials: false }); \r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n },\r\n async clearUserProfile ({commit}) {\r\n commit('SET_USER_PROFILE', null);\r\n },\r\n async setRestoreSessionFlag ({commit}, flag) {\r\n commit('SET_RESTORE_SESSION_FLAG', flag);\r\n }, \r\n}","import axios from 'axios';\r\nimport * as owcMixin from '@/mixins/owcMixin.js';\r\n\r\nexport default {\r\n async searchEvents ({commit}, form) {\r\n try\r\n {\r\n let getUrl = `${process.env.VUE_APP_OWC_WEB_API_BASE_URL}/events/?astNo=${form.astNo}&dt=${form.date}&bf=${form.bufferDays}`;\r\n\r\n let result = await axios.get(getUrl, { withCredentials: false });\r\n\r\n let combinedRes = { 'data': result.data, 'form' : { type: 'ast', astNo: form.astNo, date: form.date, bufferDays: form.bufferDays } };\r\n \r\n commit('SET_EVENTS', combinedRes );\r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n },\r\n async searchEventsByObjectId ({commit}, form) {\r\n try\r\n {\r\n let getUrl = `${process.env.VUE_APP_OWC_WEB_API_BASE_URL}/events-all/?objectId=${form.objectId}&dt=${form.date}&bf=${form.bufferDays}&t=${form.taggedOnly}`;\r\n\r\n let result = await axios.get(getUrl, { withCredentials: false });\r\n\r\n let combinedRes = { 'data': result.data, 'form' : { type: 'obj', objectId: form.objectId, date: form.date, bufferDays: form.bufferDays, taggedOnly: form.taggedOnly } };\r\n \r\n commit('SET_EVENTS', combinedRes );\r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n },\r\n async searchPastEvents({commit}, form) {\r\n try\r\n {\r\n let getUrl = `${process.env.VUE_APP_OWC_WEB_API_BASE_URL}/past-events/?tags=${form.tags ? form.tags.join('|') : ''}&dt=${form.date}&objectId=${form.objectId}&observer=${form.observer ?? ''}&limit=${form.limit}`;\r\n\r\n let result = await axios.get(getUrl, { withCredentials: false });\r\n\r\n let combinedRes = { 'data': result.data, 'form' : { type: 'past', tags: form.tags, observer: form.observer, date: form.date, objectId: form.objectId, limit: form.limit, tabIndex: form.tabIndex } };\r\n \r\n commit('SET_EVENTS', combinedRes );\r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n }, \r\n async searchEventsByTag({commit}, form) {\r\n try\r\n {\r\n let getUrl = `${process.env.VUE_APP_OWC_WEB_API_BASE_URL}/events2/?tags=${form.tags.join('|')}&countries=${form.countries.join('|')}&dt=${form.date}&minR=${form.minRank}&limit=${form.limit}`;\r\n\r\n let result = await axios.get(getUrl, { withCredentials: false });\r\n\r\n let combinedRes = { 'data': result.data, 'form' : { type: 'tag', tags: form.tags, countries: form.countries, date: form.date, minRank: form.minRank, limit: form.limit } };\r\n \r\n commit('SET_EVENTS', combinedRes );\r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n },\r\n async searchEventsByStar({commit}, form) {\r\n try\r\n {\r\n let getUrl = `${process.env.VUE_APP_OWC_WEB_API_BASE_URL}/events3/?id=${form.id}&ra=${form.ra}&de=${form.de}`;\r\n\r\n let result = await axios.get(getUrl, { withCredentials: false });\r\n\r\n let combinedRes = { 'data': result.data, 'form' : { type: 'star', starIdentifier: form.id } };\r\n \r\n commit('SET_EVENTS', combinedRes );\r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n }, \r\n async searchEventById ({commit}, eventId) {\r\n try\r\n {\r\n let getUrl = `${process.env.VUE_APP_OWC_WEB_API_BASE_URL}/event/${eventId}`;\r\n\r\n let result = await axios.get(getUrl, { withCredentials: false });\r\n\r\n commit('SET_CURR_EVENT', result.data);\r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n },\r\n async searchEventPrediction ({commit}, form) {\r\n try\r\n {\r\n let getUrl = `${process.env.VUE_APP_OWC_WEB_API_BASE_URL}/event/${form.eventId}/${form.predSrc}`;\r\n\r\n let result = await axios.get(getUrl, { withCredentials: false });\r\n\r\n commit('SET_CURR_PREDICTION', result.data);\r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n },\r\n async searchMyEventPrediction ({commit}, form) {\r\n try\r\n {\r\n let getUrl = `${process.env.VUE_APP_OWC_WEB_API_BASE_URL}/event/my/${form.eventId}/${form.predSrc}`;\r\n\r\n let result = await axios.get(getUrl, { withCredentials: true });\r\n\r\n commit('SET_CURR_PREDICTION', result.data);\r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n },\r\n async setPreferredPrediction(_, form) {\r\n try\r\n {\r\n await owcMixin.sleep(200);\r\n\r\n let postUrl = `${process.env.VUE_APP_OWC_WEB_API_BASE_URL}/event/${form.eventId}/set-preferred-prediction?predictionId=${form.predictionId}`;\r\n let result = await axios.post(postUrl, null, { withCredentials: true });\r\n\r\n if (result && result.status === 200)\r\n {\r\n return true; \r\n }\r\n }\r\n catch(error) {\r\n throw new Error(error);\r\n } \r\n },\r\n async getEventStations ({commit}, eventId) {\r\n try\r\n {\r\n let getUrl = `${process.env.VUE_APP_OWC_WEB_API_BASE_URL}/event/${eventId}/stations`;\r\n\r\n let result = await axios.get(getUrl, { withCredentials: false });\r\n\r\n commit('SET_CURR_EVENT_STATIONS', result.data);\r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n }, \r\n async searchEventsCampaignIdWithAuth({commit}, form) {\r\n try\r\n {\r\n var epPart = form.observed ? \"campaign-events-observed\" : \"campaign-events-future\";\r\n let getUrl = `${process.env.VUE_APP_OWC_WEB_API_BASE_URL}/${epPart}/?id=${form.campaignId}&d=${form.date}&l=${form.limit}`;\r\n\r\n let result = await axios.get(getUrl, { withCredentials: true });\r\n\r\n let combinedRes = { 'data': result.data, 'form' : { type: 'campaign', campaignId: form.campaignId, date: form.date, limit: form.limit } };\r\n \r\n commit('SET_EVENTS', combinedRes );\r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n },\r\n async resolveStar({commit}, starId) {\r\n try\r\n {\r\n let getUrl = `${process.env.VUE_APP_OWC_WEB_API_BASE_URL}/star-id-gaia?q=${encodeURIComponent(starId)}`;\r\n let result = await axios.get(getUrl, { withCredentials: false });\r\n\r\n commit('SET_STAR_INFO', result.data);\r\n }\r\n catch(error) {\r\n throw new Error(error);\r\n }\r\n }, \r\n async getTotalEventsInfo ({commit}) {\r\n try\r\n {\r\n let getUrl = `${process.env.VUE_APP_OWC_WEB_API_BASE_URL}/events/info`;\r\n let result = await axios.get(getUrl, { withCredentials: false });\r\n\r\n commit('SET_TOTALS_INFO', result.data);\r\n }\r\n catch(error) {\r\n throw new Error(error);\r\n }\r\n }, \r\n async requestEventPredictionUpdate(_, eventId) {\r\n try\r\n {\r\n await owcMixin.sleep(1000);\r\n\r\n let postUrl = `${process.env.VUE_APP_OWC_WEB_API_BASE_URL}/event/${eventId}/request-prediction-update`;\r\n let result = await axios.post(postUrl, { withCredentials: false });\r\n\r\n if (result && result.status === 200)\r\n {\r\n return true; \r\n }\r\n }\r\n catch(error) {\r\n throw new Error(error);\r\n } \r\n }, \r\n async requestChangeDefaultPrediction(_, frm) {\r\n try\r\n {\r\n await owcMixin.sleep(1000);\r\n \r\n let postUrl = `${process.env.VUE_APP_OWC_WEB_API_BASE_URL}/event/${frm.eventId}/request-default-update/${frm.predId}`;\r\n\r\n let result = await axios.post(postUrl, null, { withCredentials: true });\r\n\r\n if (result && result.status === 200)\r\n {\r\n return true; \r\n }\r\n }\r\n catch(error) {\r\n throw new Error(error);\r\n } \r\n },\r\n async locateEvent(_, frm)\r\n {\r\n try\r\n {\r\n let getUrl = frm.date != null \r\n ? `${process.env.VUE_APP_OWC_WEB_API_EXT_URL}/locate?ast=${frm.ast}&tag=${frm.tag}&date=${frm.date}`\r\n : `${process.env.VUE_APP_OWC_WEB_API_EXT_URL}/locate?ast=${frm.ast}&tag=${frm.tag}&occelmntId=${frm.occelmntid}`;\r\n\r\n let result = await axios.get(getUrl, { withCredentials: false, headers: {\r\n accept: \"application/json\",\r\n } });\r\n\r\n return result.data;\r\n }\r\n catch(error) {\r\n throw new Error(error);\r\n } \r\n }\r\n}","import axios from 'axios';\r\nimport * as owcMixin from '@/mixins/owcMixin.js';\r\n\r\nexport default {\r\n async communityTagEvent(_, form)\r\n {\r\n try\r\n {\r\n await owcMixin.sleep(1000);\r\n\r\n let postUrl = `${process.env.VUE_APP_OWC_WEB_API_BASE_URL}/tag-event/community`;\r\n let data = { eventId: form.eventId, tagId: form.tagId };\r\n\r\n let result = await axios.post(postUrl, data, { withCredentials: true });\r\n\r\n if (result && result.status === 200)\r\n {\r\n return true; \r\n }\r\n }\r\n catch(error) {\r\n throw new Error(error);\r\n }\r\n },\r\n async singleTagEvent(_, form)\r\n {\r\n try\r\n {\r\n await owcMixin.sleep(1000);\r\n\r\n let postUrl = `${process.env.VUE_APP_OWC_WEB_API_BASE_URL}/tag-event/single-event-tag`;\r\n let data = { eventId: form.eventId, tagId: form.tagId };\r\n\r\n let result = await axios.post(postUrl, data, { withCredentials: true });\r\n\r\n if (result && result.status === 200)\r\n {\r\n return true; \r\n }\r\n }\r\n catch(error) {\r\n throw new Error(error);\r\n }\r\n }, \r\n async reProcessFile(_, fileId)\r\n {\r\n try\r\n {\r\n let postUrl = `${process.env.VUE_APP_OWC_WEB_API_BASE_URL}/reupload-file/${fileId}`;\r\n\r\n let result = await axios.post(postUrl, null, { withCredentials: true });\r\n\r\n if (result && result.status === 200)\r\n {\r\n return true; \r\n }\r\n }\r\n catch(error) {\r\n throw new Error(error);\r\n }\r\n },\r\n async loadUploadEventsInfo ({commit}, form) {\r\n try\r\n {\r\n let getUrl = `${process.env.VUE_APP_OWC_WEB_API_BASE_URL}/upload-events-paged?pageNo=${form.pageNo}&pageSize=${form.pageSize}`;\r\n let result = await axios.get(getUrl, { withCredentials: true });\r\n\r\n if (result && result.status === 200)\r\n {\r\n commit('SET_UPLOAD_EVENTS', result.data);\r\n }\r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n },\r\n async loadUploadEventLog ({commit}, fileId) {\r\n try\r\n {\r\n await owcMixin.sleep(250);\r\n\r\n let getUrl = `${process.env.VUE_APP_OWC_WEB_API_BASE_URL}/upload-events/${fileId}/log`;\r\n let result = await axios.get(getUrl, { withCredentials: true });\r\n\r\n if (result && result.status === 200)\r\n {\r\n commit('SET_UPLOAD_EVENT_LOG', result.data);\r\n }\r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n },\r\n async loadPredictionSources({commit}){\r\n try\r\n {\r\n let getUrl = `${process.env.VUE_APP_OWC_WEB_API_BASE_URL}/prediction-sources`;\r\n let result = await axios.get(getUrl, { withCredentials: true });\r\n\r\n if (result && result.status === 200)\r\n {\r\n commit('SET_PREDICTION_SOURCES', result.data);\r\n }\r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n }, \r\n}","import axios from 'axios';\r\nimport * as owcMixin from '@/mixins/owcMixin.js';\r\n\r\nexport default {\r\n async loadTagPairs ({commit}) {\r\n try\r\n {\r\n let getUrl = `${process.env.VUE_APP_OWC_WEB_API_BASE_URL}/tag-info`;\r\n let result = await axios.get(getUrl, { withCredentials: false });\r\n\r\n if (result && result.status === 200)\r\n {\r\n commit('SET_TAG_PAIRS', result.data);\r\n }\r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n },\r\n async loadPolygonPairs ({commit}) {\r\n try\r\n {\r\n let getUrl = `${process.env.VUE_APP_OWC_WEB_API_BASE_URL}/geo-poly-info`;\r\n let result = await axios.get(getUrl, { withCredentials: false });\r\n\r\n if (result && result.status === 200)\r\n {\r\n commit('SET_GEOPOLY_PAIRS', result.data);\r\n }\r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n },\r\n async loadCommunityTagsInfo ({commit}) {\r\n try\r\n {\r\n let getUrl = `${process.env.VUE_APP_OWC_WEB_API_BASE_URL}/community-tags`;\r\n let result = await axios.get(getUrl, { withCredentials: false });\r\n\r\n if (result && result.status === 200)\r\n {\r\n commit('SET_COMMUNITY_TAGS', result.data);\r\n }\r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n },\r\n async loadCampaignTagsInfo ({commit}) {\r\n try\r\n {\r\n let getUrl = `${process.env.VUE_APP_OWC_WEB_API_BASE_URL}/campaign-tags`;\r\n let result = await axios.get(getUrl, { withCredentials: false });\r\n\r\n if (result && result.status === 200)\r\n {\r\n commit('SET_CAMPAIGN_TAGS', result.data);\r\n }\r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n }, \r\n async loadTags ({commit}, allTags) {\r\n try\r\n {\r\n await owcMixin.sleep(250);\r\n\r\n let getUrl = `${process.env.VUE_APP_OWC_WEB_API_BASE_URL}/tags?allTags=${allTags}`;\r\n let result = await axios.get(getUrl, { withCredentials: true });\r\n\r\n if (result && result.status === 200)\r\n {\r\n let combinedRes = { 'data': result.data, 'form' : { selectedTagGroup: allTags ? 'a' : 'm' } };\r\n\r\n commit('SET_TAGS', combinedRes);\r\n }\r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n },\r\n async loadCommunityTags({commit})\r\n {\r\n try\r\n {\r\n await owcMixin.sleep(250);\r\n\r\n let getUrl = `${process.env.VUE_APP_OWC_WEB_API_BASE_URL}/tags/community`;\r\n let result = await axios.get(getUrl, { withCredentials: true });\r\n\r\n if (result && result.status === 200)\r\n {\r\n let combinedRes = { 'data': result.data, 'form' : { selectedTagGroup: 'c' } };\r\n\r\n commit('SET_TAGS', combinedRes);\r\n }\r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n },\r\n async loadSingleEventUserTags({commit})\r\n {\r\n try\r\n {\r\n await owcMixin.sleep(250);\r\n\r\n let getUrl = `${process.env.VUE_APP_OWC_WEB_API_BASE_URL}/tags/single-event-tags`;\r\n let result = await axios.get(getUrl, { withCredentials: true });\r\n\r\n if (result && result.status === 200)\r\n {\r\n let combinedRes = { 'data': result.data, 'form' : { selectedTagGroup: 'c' } };\r\n\r\n commit('SET_TAGS', combinedRes);\r\n }\r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n }, \r\n async updateTag ({commit}, form) {\r\n try\r\n {\r\n let patchUrl = `${process.env.VUE_APP_OWC_WEB_API_BASE_URL}/tag/${form.id}`;\r\n let data = { desciption: form.descr, url: form.url};\r\n\r\n await axios.patch(patchUrl, data, { withCredentials: true });\r\n\r\n commit('UPDATE_TAG', form);\r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n }, \r\n async toggleSelectedTag ({commit}, tagId) {\r\n commit('TOGGLE_SELECTED_TAG', tagId);\r\n }, \r\n async clearSelectedTags ({commit}) {\r\n commit('CLEAR_SELECTED_TAGS');\r\n },\r\n async loadTagUsage({commit})\r\n {\r\n try\r\n {\r\n await owcMixin.sleep(250);\r\n\r\n let getUrl = `${process.env.VUE_APP_OWC_WEB_API_BASE_URL}/tag-usage`;\r\n let result = await axios.get(getUrl, { withCredentials: false });\r\n\r\n if (result && result.status === 200)\r\n {\r\n commit('SET_TAG_USAGE', result.data);\r\n }\r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n }, \r\n}","import axios from 'axios';\r\n\r\nexport default {\r\n async planningCancelStation (_, form) {\r\n try\r\n {\r\n let postUrl = `${process.env.VUE_APP_PLANNING_WEB_API_BASE_URL}/${form.eventId}/cancel-station?stationId=${form.stationId}`;\r\n\r\n let result = await axios.post(postUrl, null, { withCredentials: true });\r\n\r\n console.log('planningCancelStation', result);\r\n return { success: true }\r\n }\r\n catch(error){\r\n return { error: error.message ?? error.Error, success: false };\r\n }\r\n },\r\n async planningUpdateStation (_, form) {\r\n try\r\n {\r\n console.log(`planningUpdateStation(${form.eventId}, ${form.stationId})`, form);\r\n\r\n let postUrl = `${process.env.VUE_APP_PLANNING_WEB_API_BASE_URL}/${form.eventId}/update-station?stationId=${form.stationId}`;\r\n\r\n let result = await axios.post(postUrl, form, { withCredentials: true });\r\n\r\n console.log('planningUpdateStation', result);\r\n return { success: true }\r\n }\r\n catch(error){\r\n return { error: error.message ?? error.Error, success: false };\r\n }\r\n },\r\n async planningAddStation (_, form) {\r\n try\r\n {\r\n console.log(`planningAddStation(${form.eventId}, ${form.stationId})`, form);\r\n\r\n let postUrl = `${process.env.VUE_APP_PLANNING_WEB_API_BASE_URL}/${form.eventId}/add-station`;\r\n\r\n let result = await axios.post(postUrl, form, { withCredentials: true });\r\n\r\n console.log('planningAddStation', result);\r\n return { success: true }\r\n }\r\n catch(error){\r\n return { error: error.message ?? error.Error, success: false };\r\n }\r\n },\r\n async planningReportObservation (_, form) {\r\n try\r\n {\r\n let postUrl = `${process.env.VUE_APP_PLANNING_WEB_API_BASE_URL}/${form.eventId}/report-obs?stationId=${form.stationId}&report=${form.report}&duration=${form.duration}&comment=${form.comment}`;\r\n\r\n let result = await axios.post(postUrl, null, { withCredentials: true });\r\n\r\n console.log('planningReportObservation', result);\r\n\r\n return { success: true }\r\n }\r\n catch(error){\r\n return { error: error.message ?? error.Error, success: false };\r\n }\r\n }, \r\n}","import axios from 'axios';\r\n\r\nconst API_KEY_JS = 'AIzaSyDnetEVDJxqD7vayAbzFmb19eysTDPOuTk';\r\nconst MAPS_WEB_API_BASE_URL = 'https://maps.googleapis.com/maps/api';\r\n//const OPEN_ELEVATION_WEB_API_BASE_URL = 'http://oe-api.occultwatcher.net:8080/api/v1/lookup';\r\nconst OPEN_ELEVATION_WEB_API_BASE_URL = 'https://www.occultwatcher.net/api2/v1/owc/oe';\r\n\r\nexport default {\r\n async getElevation(_, frm) {\r\n try\r\n {\r\n let getUrl = `${MAPS_WEB_API_BASE_URL}/elevation/json?locations=${frm.lat},${frm.lng}&key=${API_KEY_JS}`;\r\n \r\n let result = await axios.get(getUrl);\r\n\r\n if (result && result.status === 'OK')\r\n {\r\n return result.results[0].elevation;\r\n }\r\n\r\n return null;\r\n }\r\n catch(error) {\r\n throw new Error(error);\r\n } \r\n },\r\n async getOpenElevation(_, frm) {\r\n try\r\n {\r\n //let getUrl = `${OPEN_ELEVATION_WEB_API_BASE_URL}?locations=${frm.lat},${frm.lng}`;\r\n let getUrl = `${OPEN_ELEVATION_WEB_API_BASE_URL}?lat=${frm.lat}&lng=${frm.lng}`;\r\n\r\n let result = await axios.get(getUrl);\r\n \r\n if (result && result.status == 200 && result.data?.results[0] && result.data?.results[0].elevation != null)\r\n {\r\n return result.data.results[0].elevation;\r\n }\r\n\r\n return null;\r\n }\r\n catch(error) {\r\n throw new Error(error);\r\n } \r\n }\r\n}","import axios from 'axios';\r\n\r\nexport default {\r\n async loadUserFilters ({commit}) {\r\n try\r\n {\r\n let getUrl = `${process.env.VUE_APP_WEB_API_BASE_URL}/filters/list`;\r\n \r\n let result = await axios.get(getUrl, { withCredentials: true });\r\n\r\n if (result && result.status === 200)\r\n {\r\n commit('SET_USER_FILTERS', result.data); \r\n } \r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n }, \r\n async addUserFilter (_, form) {\r\n try\r\n {\r\n let putUrl = `${process.env.VUE_APP_WEB_API_BASE_URL}/filters/new`;\r\n \r\n let result = await axios.put(putUrl, form, { withCredentials: true });\r\n\r\n if (result && result.status === 200)\r\n {\r\n // All good\r\n }\r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n },\r\n async updateUserFilter (_, form) {\r\n try\r\n {\r\n let postUrl = `${process.env.VUE_APP_WEB_API_BASE_URL}/filters/${form.id}`;\r\n \r\n console.log(`PST ${postUrl}`);\r\n \r\n let result = await axios.post(postUrl, form, { withCredentials: true });\r\n\r\n if (result && result.status === 200)\r\n {\r\n // All good\r\n }\r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n },\r\n async deleteUserFilter (_, id) {\r\n try\r\n {\r\n let deleteUrl = `${process.env.VUE_APP_WEB_API_BASE_URL}/filters/${id}`;\r\n \r\n let result = await axios.delete(deleteUrl, { withCredentials: true });\r\n\r\n if (result && result.status === 200)\r\n {\r\n // All good\r\n }\r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n }, \r\n async filterEvents ({commit}, form) {\r\n try\r\n {\r\n let postUrl = `${process.env.VUE_APP_OWC_WEB_API_BASE_URL}/search/advanced`;\r\n \r\n let result = await axios.post(postUrl, form, { withCredentials: true });\r\n\r\n let combinedRes = { 'data': result.data, 'form' : form };\r\n \r\n commit('SET_FILTERED_EVENTS', combinedRes );\r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n },\r\n async filterEvents2 ({commit}, form) {\r\n try\r\n {\r\n let postUrl = `${process.env.VUE_APP_OWC_WEB_API_BASE_URL}/search/filter`;\r\n \r\n let result = await axios.post(postUrl, form, { withCredentials: true });\r\n\r\n let combinedRes = { 'data': result.data, 'form' : form };\r\n \r\n commit('SET_FILTERED_EVENTS', combinedRes );\r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n }\r\n}","import axios from 'axios';\r\nimport * as owcMixin from '@/mixins/owcMixin.js';\r\n\r\nimport authActions from '@/store/actions/authActions.js'\r\nimport eventActions from '@/store/actions/eventActions.js'\r\nimport tagEventActions from '@/store/actions/tagEventActions.js'\r\nimport tagActions from '@/store/actions/tagActions.js'\r\nimport planningActions from '@/store/actions/planningActions.js'\r\nimport googleMapsApiActions from '@/store/actions/googleMapsApiActions.js'\r\nimport filterEventActions from '@/store/actions/filterEventActions.js'\r\n\r\nexport default {\r\n ...authActions,\r\n ...eventActions,\r\n ...tagEventActions,\r\n ...tagActions,\r\n ...planningActions,\r\n ...googleMapsApiActions,\r\n ...filterEventActions,\r\n async setViewPortSize ({commit}, viewPortSize) {\r\n commit('SET_BOOTSTRAP_VIEW_PORT', viewPortSize);\r\n }, \r\n async setSelectedMapLocation ({commit}, loc) {\r\n commit('SET_SELECTED_MAP_LOCATION', loc);\r\n }, \r\n async loadServerVersionInfo ({commit}) {\r\n try\r\n {\r\n let getUrl = `${process.env.VUE_APP_OWC_WEB_API_BASE_URL}/server/version`;\r\n let result = await axios.get(getUrl, { withCredentials: true });\r\n\r\n if (result && result.status === 200)\r\n {\r\n commit('SET_SERVER_VERSION_INFO', result.data);\r\n }\r\n }\r\n catch(error){\r\n throw new Error(error);\r\n }\r\n }, \r\n async dummyMethod(){\r\n await owcMixin.sleep(2000);\r\n }\r\n}","export default {\r\n SET_EVENTS: (state, payload ) => {\r\n state.eventList = payload;\r\n },\r\n SET_FILTERED_EVENTS: (state, payload ) => {\r\n if (payload.data && payload.data.perf && payload.data.result)\r\n {\r\n state.filteredEventList = payload.data.result;\r\n state.filteredEventExecInfo = payload.data.perf;\r\n }\r\n else\r\n {\r\n state.filteredEventList = payload.data;\r\n state.filteredEventExecInfo = null;\r\n }\r\n },\r\n SET_CURR_EVENT: (state, payload) => {\r\n state.currentEvent = payload;\r\n },\r\n SET_CURR_PREDICTION: (state, payload) => {\r\n state.currentPrediction = payload;\r\n },\r\n SET_CURR_EVENT_STATIONS: (state, payload) => {\r\n state.currentEventStations = payload;\r\n },\r\n SET_TOTALS_INFO: (state, payload) => {\r\n state.totalEventsInfo = { ...payload, 'cached' : Date.now() };\r\n },\r\n SET_BOOTSTRAP_VIEW_PORT: (state, payload) => {\r\n state.bsViewPortSize = payload;\r\n },\r\n SET_LOGGED_IN_USER: (state, payload) => {\r\n state.user = payload;\r\n localStorage.setItem('owc-user', payload != null ? JSON.stringify(payload) : null);\r\n },\r\n SET_NEW_USER_SESSION: (_, payload) => {\r\n localStorage.setItem('owc-user-session-duration', payload != null ? payload.sessionDurMin : null);\r\n localStorage.setItem('owc-user-last-request-time', payload != null ? new Date().getTime() : null);\r\n },\r\n SET_TAG_PAIRS: (state, payload) => {\r\n state.tagPairs = payload;\r\n },\r\n SET_GEOPOLY_PAIRS: (state, payload) => {\r\n state.polygonPairs = payload;\r\n },\r\n SET_TAGS: (state, payload) => {\r\n state.tagList = payload;\r\n },\r\n UPDATE_TAG: (state, payload) => {\r\n if (state.tagList && state.tagList.data)\r\n {\r\n state.tagList.data = state.tagList.data.map(t => {\r\n if (t.id === payload.id)\r\n return {...t, url: payload.url, descr: payload.descr};\r\n else \r\n return t;\r\n }); \r\n }\r\n },\r\n TOGGLE_SELECTED_TAG: (state, payload) => {\r\n let index = state.selectedTagIds.indexOf(payload);\r\n if (index > -1)\r\n {\r\n state.selectedTagIds.splice(index, 1);\r\n state.selectedTagId = null;\r\n }\r\n else\r\n {\r\n state.selectedTagIds.push(payload);\r\n state.selectedTagId = payload;\r\n }\r\n },\r\n CLEAR_SELECTED_TAGS: (state) => {\r\n state.selectedTagIds = [];\r\n state.selectedTagId = null;\r\n },\r\n SET_UPLOAD_EVENTS: (state, payload) => {\r\n state.uploadEventsList = payload.entries;\r\n state.uploadEventsTotalPages = payload.pages;\r\n state.uploadEventsTotalRows = payload.rows;\r\n },\r\n SET_UPLOAD_EVENT_LOG: (state, payload) => {\r\n state.uploadEventLog = payload;\r\n },\r\n SET_PREDICTION_SOURCES: (state, payload) => {\r\n state.predictionSources = payload;\r\n },\r\n SET_RESTORE_SESSION_FLAG: (state, payload) => {\r\n state.restoreSessionFlag = payload;\r\n },\r\n SET_SELECTED_MAP_LOCATION: (state, payload) => {\r\n state.selectedMapLocation = payload;\r\n localStorage.setItem('owc-selected-map-location', payload != null ? JSON.stringify(payload) : null);\r\n },\r\n SET_USER_PROFILE: (state, payload) => {\r\n state.userProfile = payload;\r\n },\r\n SET_USER_SITES: (state, payload) => {\r\n state.userSites = payload;\r\n },\r\n SET_USER_FILTERS: (state, payload) => {\r\n state.userFilters = payload;\r\n },\r\n SET_STAR_INFO: (state, payload) => {\r\n state.resolvedStar = payload;\r\n },\r\n SET_COMMUNITY_TAGS: (state, payload) => {\r\n state.communityTags = payload;\r\n },\r\n SET_CAMPAIGN_TAGS: (state, payload) => {\r\n state.campaignTags = payload;\r\n },\r\n SET_TAG_USAGE: (state, payload) => {\r\n state.tagUsage = payload;\r\n },\r\n SET_SERVER_VERSION_INFO: (state, payload) => {\r\n state.serverVersionInfo = payload;\r\n },\r\n SET_USER_OAUTH_CLIENT: (state, payload) => {\r\n state.userOAuthClient = payload;\r\n },\r\n}","export default {\r\n eventList: null,\r\n currentEvent: {},\r\n currentPrediction: null,\r\n totalEventsInfo: null,\r\n bsViewPortSize: '',\r\n user: null,\r\n userProfile: null,\r\n userSites: [],\r\n userFilters: [],\r\n tagList: null,\r\n selectedTagIds: [],\r\n selectedTagId: null,\r\n uploadEventsList: null,\r\n uploadEventsTotalPages: 0,\r\n uploadEventsTotalRows: 0,\r\n uploadEventLog: null,\r\n predictionSources: null,\r\n restoreSessionFlag: false,\r\n selectedMapLocation: null,\r\n tagPairs: null,\r\n polygonPairs: null,\r\n resolvedStar: null,\r\n communityTags: null,\r\n campaignTags: null,\r\n currentEventStations: null,\r\n navigating: false,\r\n tagUsage: [],\r\n serverVersionInfo: null,\r\n filteredEventList: null,\r\n filteredEventExecInfo: null,\r\n userOAuthClient: null,\r\n}","import moment from 'moment'\r\n\r\nexport default {\r\n eventSearchResult: (state) => {\r\n return state.eventList ? state.eventList.data : null;\r\n },\r\n filterEventSearchResult: (state) => {\r\n return state.filteredEventList;\r\n },\r\n filterEventSearchExecInfo: (state) => {\r\n return state.filteredEventExecInfo;\r\n },\r\n currentEventResult: (state) => {\r\n return state.currentEvent;\r\n },\r\n totalEventsInfoResult: (state) => {\r\n return state.totalEventsInfo;\r\n },\r\n viewPortSize: (state) => {\r\n return state.bsViewPortSize;\r\n },\r\n currentUser: (state) => {\r\n return state.user;\r\n },\r\n currentUserProfile: (state) => {\r\n return state.userProfile;\r\n }, \r\n currentUserSites: (state) => {\r\n return state.userSites;\r\n },\r\n currentUserFilters: (state) => {\r\n return state.userFilters;\r\n }, \r\n currentUserMainRole: (state) => {\r\n if (!state.user) return null;\r\n if (state.user.owcRoles.indexOf('Admin') > -1)\r\n return 'Administrator';\r\n else if (state.user.owcRoles.indexOf('FeedMaintainer') > -1)\r\n return 'Feed Maintainer'; \r\n \r\n return 'User';\r\n },\r\n isSystemAdmin: (state) => {\r\n return state.user !== null && state.user.adminFlag == 2;\r\n },\r\n isOwcAdmin: (state) => {\r\n return state.user && state.user.owcRoles.indexOf('Admin') > -1;\r\n }, \r\n isOwcAdminOrFeedMaintaner: (state) => {\r\n return state.user && (state.user.owcRoles.indexOf('Admin') > -1 || state.user.owcRoles.indexOf('FeedMaintainer') > -1);\r\n },\r\n currentUserOAuthClient: (state) => {\r\n return state.userOAuthClient;\r\n },\r\n loadedTags: (state) => {\r\n return state.tagList ? state.tagList.data : [];\r\n },\r\n selectedTags: (state) => {\r\n return state.tagList \r\n ? state.tagList.data.filter(x => state.selectedTagIds.indexOf(x.id) > -1) \r\n : [];\r\n },\r\n selectedTag: (state) => {\r\n if (state.selectedTagId === null)\r\n return null;\r\n\r\n return state.tagList \r\n ? state.tagList.data.filter(x => state.selectedTagId == x.id)[0] \r\n : null;\r\n },\r\n deselectedTags: (state) => {\r\n return state.tagList \r\n ? state.tagList.data.filter(x => state.selectedTagIds.indexOf(x.id) == -1) \r\n : [];\r\n },\r\n uploadEventsList: (state) => {\r\n return state.uploadEventsList ?? [];\r\n },\r\n uploadEventsTotalPages: (state) => {\r\n return state.uploadEventsTotalPages;\r\n },\r\n uploadEventsTotalRows: (state) => {\r\n return state.uploadEventsTotalRows;\r\n },\r\n uploadEventLog: (state) => {\r\n return state.uploadEventLog;\r\n },\r\n orbitSources: (state) => {\r\n if (!state.predictionSources)\r\n return [];\r\n\r\n return state.predictionSources.orbits ?? [];\r\n },\r\n starSources: (state) => {\r\n if (!state.predictionSources)\r\n return [];\r\n\r\n return state.predictionSources.stars ?? [];\r\n },\r\n currentPrediction: (state) => {\r\n return state.currentPrediction;\r\n },\r\n selectedMapLocation: (state) => {\r\n return state.selectedMapLocation;\r\n },\r\n tags: (state) => {\r\n return state.tagPairs ?? [];\r\n },\r\n polygons: (state) => {\r\n return state.polygonPairs ?? [];\r\n },\r\n communityTags: (state) => {\r\n return state.tagList?.data?.filter(x => x.community) ?? [];\r\n },\r\n adHocCampaignTags: (state) => {\r\n return state.campaignTags?.filter(x => x.flags == 1) ?? [];\r\n },\r\n luckyStarCampaignTags: (state) => {\r\n return state.campaignTags?.filter(x => x.flags == 2) ?? [];\r\n },\r\n tagUsageFutureEvents: (state) => {\r\n const rightNow = new moment();\r\n return state.tagUsage?.filter(x => moment(String(x.lastEvent)).isAfter(rightNow)) ?? [];\r\n },\r\n serverVersionInfo: (state) => {\r\n return state.serverVersionInfo;\r\n }\r\n}","import Vue from 'vue'\r\nimport Vuex from 'vuex'\r\nimport actions from './actions/index.js'\r\nimport mutations from './mutations'\r\nimport state from './state'\r\nimport getters from './getters'\r\n\r\nVue.use(Vuex)\r\n\r\nexport default new Vuex.Store({\r\n strict: (process.env.NODE_ENV != 'production'),\r\n state,\r\n mutations,\r\n actions,\r\n getters,\r\n modules: {\r\n }\r\n})\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"container-fluid bg-image\",style:({ backgroundImage: (\"url(\" + _vm.bgImageUrl + \")\")})},[_c('div',{staticClass:\"login_form_wrapper\"},[_c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"row d-flex justify-content-center\"},[_c('div',{staticClass:\"col-md-6 col-md-offset-2\"},[_c('div',{staticClass:\"login_wrapper\",class:_vm.showLoader ? 'disabled-control' : ''},[_c('div',{staticClass:\"formsix-pos\"},[_c('div',{staticClass:\"form-group i-email\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form.loginName),expression:\"form.loginName\"},{name:\"validate\",rawName:\"v-validate\",value:({required: true}),expression:\"{required: true}\"}],staticClass:\"form-control\",attrs:{\"type\":\"email\",\"id\":\"email\",\"placeholder\":\"Email Address *\",\"name\":\"login\"},domProps:{\"value\":(_vm.form.loginName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.form, \"loginName\", $event.target.value)}}})]),(_vm.validated)?_c('div',{staticClass:\"text-danger pb-3\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('login'))+\" \")]):_vm._e()]),_c('div',{staticClass:\"formsix-e\"},[_c('div',{staticClass:\"form-group i-password\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form.password),expression:\"form.password\"},{name:\"validate\",rawName:\"v-validate\",value:({required: true}),expression:\"{required: true}\"}],staticClass:\"form-control\",attrs:{\"type\":\"password\",\"id\":\"password\",\"placeholder\":\"Password *\",\"name\":\"password\"},domProps:{\"value\":(_vm.form.password)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.form, \"password\", $event.target.value)}}})]),(_vm.validated)?_c('div',{staticClass:\"text-danger pb-3\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('password'))+\" \")]):_vm._e()]),_c('div',{staticClass:\"login_remember_box\"},[_c('div',{staticClass:\"row align-items-center\"},[_c('div',{staticClass:\"col-6\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form.rememberme),expression:\"form.rememberme\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.form.rememberme)?_vm._i(_vm.form.rememberme,null)>-1:(_vm.form.rememberme)},on:{\"change\":function($event){var $$a=_vm.form.rememberme,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.form, \"rememberme\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.form, \"rememberme\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.form, \"rememberme\", $$c)}}}}),_c('label',{staticClass:\"px-2\"},[_vm._v(\"Remember me\")])]),_vm._m(0)])]),_c('div',{staticClass:\"login_btn_wrapper\"},[_c('a',{staticClass:\"btn btn-primary login_btn\",attrs:{\"href\":\"#\"},on:{\"click\":_vm.onLogin}},[_vm._v(\" Login \")])]),_c('div',{staticClass:\"text-center\"},[(_vm.showLoader)?_c('b-spinner',{staticClass:\"justify-content-center mt-3\",staticStyle:{\"width\":\"3rem\",\"height\":\"3rem\"},attrs:{\"varient\":\"secondary\"}}):_vm._e()],1),_c('div',{staticClass:\"login_line_div\"}),_vm._m(1)])])])])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-6 pull-right\"},[_c('a',{staticClass:\"forget_password\",attrs:{\"href\":\"/reset-password\"}},[_vm._v(\" Forgot Password \")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"login_message\"},[_c('p',[_vm._v(\"Don’t have an account ? \"),_c('a',{attrs:{\"href\":\"/create-account\"}},[_vm._v(\" Sign up \")])])])}]\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Login.vue?vue&type=template&id=86e6faee&scoped=true&\"\nimport script from \"./Login.vue?vue&type=script&lang=js&\"\nexport * from \"./Login.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Login.vue?vue&type=style&index=0&id=86e6faee&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"86e6faee\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"mt-2\"},[_c('b-tabs',{attrs:{\"content-class\":\"mt-3\"},on:{\"activate-tab\":_vm.activeTabChanged},model:{value:(_vm.profileTab),callback:function ($$v) {_vm.profileTab=$$v},expression:\"profileTab\"}},[_c('b-tab',{attrs:{\"title\":\"User Profile\",\"active\":\"\"}},[_c('div',{staticClass:\"row pt-4\",staticStyle:{\"display\":\"flex\"}},[_c('div',{staticClass:\"col-3\"}),_c('div',{staticClass:\"col-6\"},[(_vm.currentUserProfile)?_c('div',{staticClass:\"row border\",class:_vm.showSubmitLoader ? 'disabled-control' : ''},[_c('div',{staticClass:\"col-11 text-white text-center mx-auto pb-2 pt-2 font-weight-bold\",staticStyle:{\"font-family\":\"'Arial Narrow Bold', sans-serif\"}},[_vm._v(_vm._s(_vm._f(\"formatUpperCase\")(_vm.currentUserMainRole)))]),_c('div',{staticClass:\"col-12 text-center mt-2\"},[_c('img',{attrs:{\"src\":require(\"@/assets/images/user.png\"),\"width\":\"120px\",\"alt\":\"User\"}})]),_c('div',{staticClass:\"col-12 text-center pt-2 pb-2 font-weight-bold\",staticStyle:{\"font-family\":\"Verdana, Geneva, Tahoma, sans-serif\"}},[_vm._v(_vm._s(_vm.currentUserProfile.name))]),_c('div',{staticClass:\"col-12 text-center pt-4 pb-2 text-muted\",staticStyle:{\"font-family\":\"Arial, Helvetica, sans-serif\"}},[_vm._v(\"USER PROFILE\")]),_c('div',{staticClass:\"col-12 mb-3\"},[_c('ul',{staticClass:\"list-group\"},[_c('li',{staticClass:\"list-group-item d-flex justify-content-between align-items-center\"},[_vm._v(\" Account Display Name \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form.name),expression:\"form.name\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.form.name)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.form, \"name\", $event.target.value)}}})]),_c('li',{staticClass:\"list-group-item d-flex justify-content-between align-items-center\"},[_vm._v(\" Observer Name \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form.observer),expression:\"form.observer\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.form.observer)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.form, \"observer\", $event.target.value)}}})]),_c('li',{staticClass:\"list-group-item d-flex justify-content-between align-items-center\"},[_vm._v(\" Country \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form.country),expression:\"form.country\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.form.country)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.form, \"country\", $event.target.value)}}})]),_c('li',{staticClass:\"list-group-item d-flex justify-content-between align-items-center\"},[_vm._v(\" City \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form.city),expression:\"form.city\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.form.city)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.form, \"city\", $event.target.value)}}})]),_c('li',{staticClass:\"list-group-item d-flex justify-content-between align-items-center\"},[_vm._v(\" Affiliation \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form.affiliation),expression:\"form.affiliation\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.form.affiliation)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.form, \"affiliation\", $event.target.value)}}})])])]),_c('div',{staticClass:\"col-12\"},[_c('small',{staticClass:\"text-muted\"},[_c('strong',{staticClass:\"text-light\"},[_vm._v(\"NOTE: \")]),_vm._v(\" These are shared with OccultWatcher\")])]),_c('div',{staticClass:\"col-12 mb-3 mt-3\"},[(_vm.showSubmitLoader)?_c('b-spinner',{staticClass:\"justify-content-center\",staticStyle:{\"width\":\"2rem\",\"height\":\"2rem\"},attrs:{\"varient\":\"secondary\"}}):_vm._e(),_c('button',{staticClass:\"btn btn-primary pull-right\",attrs:{\"type\":\"button\",\"disabled\":_vm.showLoader},on:{\"click\":_vm.onUpdateProfile}},[_vm._v(\"Update Profile\")])],1)]):_vm._e()])])]),_c('b-tab',{attrs:{\"title\":\"User Permissions\"}},[_c('div',{staticClass:\"row pt-4\",staticStyle:{\"display\":\"flex\"}},[_c('div',{staticClass:\"col-3\"}),_c('div',{staticClass:\"col-6\"},[(_vm.currentUserProfile)?_c('div',{staticClass:\"row border mt-4\"},[_c('div',{staticClass:\"col-12 text-center pt-4 pb-2 text-muted\",staticStyle:{\"font-family\":\"Arial, Helvetica, sans-serif\"}},[_vm._v(\"CREDENIALS\")]),_c('div',{staticClass:\"col-12 mb-3\"},[_c('ul',{staticClass:\"list-group\"},[_c('li',{staticClass:\"list-group-item d-flex justify-content-between align-items-center\"},[_vm._v(\" Login \"),_c('span',[_vm._v(_vm._s(_vm.currentUserProfile.login))])]),_c('li',{staticClass:\"list-group-item d-flex justify-content-between align-items-center\"},[_vm._v(\" OWC Role \"),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentUserProfile.owcRoles.length > 0),expression:\"currentUserProfile.owcRoles.length > 0\"}]},[_vm._v(_vm._s(_vm._f(\"formatCommaList\")(_vm.currentUserProfile.owcRoles)))]),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentUserProfile.owcRoles.length === 0),expression:\"currentUserProfile.owcRoles.length === 0\"}]},[_vm._v(\"User\")])]),(_vm.currentUserProfile.adminFlag > 0)?_c('li',{staticClass:\"list-group-item d-flex justify-content-between align-items-center\"},[_vm._v(\" Occult Watcher Role \"),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentUserProfile.adminFlag === 2),expression:\"currentUserProfile.adminFlag === 2\"}]},[_vm._v(\"Admin\")]),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentUserProfile.adminFlag === 1),expression:\"currentUserProfile.adminFlag === 1\"}]},[_vm._v(\"Coordinator\")])]):_vm._e()])])]):_vm._e(),(_vm.currentUserOAuthClient)?_c('div',{staticClass:\"row border mt-4\"},[_c('div',{staticClass:\"col-12 text-center pt-4 pb-2 text-muted\",staticStyle:{\"font-family\":\"Arial, Helvetica, sans-serif\"}},[_vm._v(\"OAUTH CLIENT\")]),_c('div',{staticClass:\"col-12 mb-3\"},[_c('ul',{staticClass:\"list-group\"},[_c('li',{staticClass:\"list-group-item d-flex justify-content-between align-items-center\"},[_vm._v(\" Client Name \"),_c('span',[_vm._v(_vm._s(_vm.currentUserOAuthClient.Name))])]),_c('li',{staticClass:\"list-group-item d-flex justify-content-between align-items-center\"},[_vm._v(\" Client Id \"),_c('span',[_vm._v(_vm._s(_vm.currentUserOAuthClient.ClientId))])]),_c('li',{staticClass:\"list-group-item d-flex justify-content-between align-items-center\"},[_vm._v(\" Client Secret \"),_c('span',[_vm._v(_vm._s(_vm.currentUserOAuthClient.ClientSecret))])])])])]):_vm._e()])])]),_c('b-tab',{attrs:{\"title\":\"Saved Sites\"}},[_c('div',{staticClass:\"row pt-4\",staticStyle:{\"display\":\"flex\"}},[_c('div',{staticClass:\"col-12 justify-content-center\"},[_c('div',{staticClass:\"table-responsive-md\"},[_c('table',{staticClass:\"table table-dark table-bordered table-hover\"},[_c('thead',{staticClass:\"thead-dark text-center\"},[_c('tr',[_c('td',[_vm._v(\"Site Name\")]),_c('td',[_vm._v(\"Longitude\")]),_c('td',[_vm._v(\"Latitude\")]),_c('td',[_vm._v(\"Elevation, MSL\")])])]),_c('tbody',_vm._l((this.currentUserSites),function(site){return _c('tr',{key:site.Name,class:_vm.selectedSite && site.Name === _vm.selectedSite.Name ? 'highlight' : '',on:{\"click\":function($event){return _vm.selectSite(site)}}},[_c('td',[_vm._v(_vm._s(site.Name))]),_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm._f(\"formatLng\")(site.Lng)))]),_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm._f(\"formatLat\")(site.Lat)))]),_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s(site.Alt)+\" m\")])])}),0)])]),(_vm.selectedSite)?_c('b-button',{attrs:{\"title\":\"Edit\"},on:{\"click\":function($event){return _vm.editSite()}}},[_c('i',{staticClass:\"fa fa-edit pr-2\"}),_vm._v(\"Edit '\"+_vm._s(_vm.selectedSite.Name)+\"'\")]):_vm._e(),(_vm.selectedSite)?_c('b-button',{staticClass:\"ml-2\",attrs:{\"title\":\"Edit\"},on:{\"click\":function($event){return _vm.deleteSite()}}},[_c('i',{staticClass:\"fa fa-trash pr-2\"}),_vm._v(\"Delete '\"+_vm._s(_vm.selectedSite.Name)+\"'\")]):_vm._e(),_c('b-button',{staticClass:\"ml-2\",attrs:{\"title\":\"Edit\"},on:{\"click\":function($event){return _vm.addSite()}}},[_c('i',{staticClass:\"fa fa-plus-square pr-2\"}),_vm._v(\"Add New Site\")])],1)])])],1)],1)]),_c('div',{staticClass:\"text-center\"},[(_vm.showLoader)?_c('b-spinner',{staticClass:\"justify-content-center mt-3\",staticStyle:{\"width\":\"3rem\",\"height\":\"3rem\"},attrs:{\"varient\":\"secondary\"}}):_vm._e()],1),(_vm.siteForm)?_c('b-modal',{attrs:{\"title\":this.addSiteMode ? 'Add Site': 'Update Site'},on:{\"show\":_vm.showModal,\"hidden\":_vm.resetModal,\"ok\":_vm.handleOk},scopedSlots:_vm._u([{key:\"modal-footer\",fn:function(){return [_c('button',{directives:[{name:\"b-modal\",rawName:\"v-b-modal.modal-close_visit\",modifiers:{\"modal-close_visit\":true}}],staticClass:\"btn btn-primary btn-sm m-1\",on:{\"click\":function($event){return _vm.handleCancel()}}},[_vm._v(\"Close\")]),_c('button',{directives:[{name:\"b-modal\",rawName:\"v-b-modal.modal-close_visit\",modifiers:{\"modal-close_visit\":true}}],staticClass:\"btn btn-primary btn-sm m-1\",on:{\"click\":function($event){return _vm.handleOk()}}},[(_vm.isSubmitting)?_c('b-spinner',{staticClass:\"justify-content-center mr-2\",staticStyle:{\"width\":\"1rem\",\"height\":\"1rem\"},attrs:{\"varient\":\"secondary\"}}):_vm._e(),_vm._v(\"Submit\")],1)]},proxy:true}],null,false,3639634402),model:{value:(_vm.modalShow),callback:function ($$v) {_vm.modalShow=$$v},expression:\"modalShow\"}},[_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"row pt-2\",staticStyle:{\"display\":\"flex\"}},[_c('div',{staticClass:\"col-lg-12\"},[_c('div',{staticClass:\"bs-component\"},[_c('form',[_c('fieldset',[_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"form-group col-md-12 pt-2\"},[_c('label',{attrs:{\"for\":\"siteName\"}},[_vm._v(\"Site Name\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.siteForm.name),expression:\"siteForm.name\"},{name:\"validate\",rawName:\"v-validate\",value:({required: true}),expression:\"{required: true}\"}],staticClass:\"form-control\",class:(this.addSiteMode === true && this.isSubmitting === false) ? '' : 'disabled-control',attrs:{\"id\":\"siteNameInput\",\"name\":\"Site Name\",\"autofocus\":\"\"},domProps:{\"value\":(_vm.siteForm.name)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.siteForm, \"name\", $event.target.value)}}}),(_vm.validated)?_c('div',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('Site Name'))+\" \")]):_vm._e()])]),_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"form-group col-md-12\"},[_c('label',{attrs:{\"for\":\"longitude\"}},[_vm._v(\"Longitude\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.siteForm.lng),expression:\"siteForm.lng\"},{name:\"validate\",rawName:\"v-validate\",value:({required: true, decimal: true, min_value:-180, max_value:180}),expression:\"{required: true, decimal: true, min_value:-180, max_value:180}\"}],staticClass:\"form-control\",class:this.isSubmitting ? 'disabled-control' : '',attrs:{\"id\":\"longitude\",\"name\":\"Longitude\"},domProps:{\"value\":(_vm.siteForm.lng)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.siteForm, \"lng\", $event.target.value)}}}),(_vm.validated)?_c('div',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('Longitude'))+\" \")]):_vm._e()])]),_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"form-group col-md-12\"},[_c('label',{attrs:{\"for\":\"latitude\"}},[_vm._v(\"Latitude\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.siteForm.lat),expression:\"siteForm.lat\"},{name:\"validate\",rawName:\"v-validate\",value:({required: true, decimal: true, min_value:-90, max_value:90}),expression:\"{required: true, decimal: true, min_value:-90, max_value:90}\"}],staticClass:\"form-control\",class:this.isSubmitting ? 'disabled-control' : '',attrs:{\"id\":\"latitude\",\"name\":\"Latitude\"},domProps:{\"value\":(_vm.siteForm.lat)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.siteForm, \"lat\", $event.target.value)}}}),(_vm.validated)?_c('div',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('Latitude'))+\" \")]):_vm._e()])]),_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"form-group col-md-12\"},[_c('label',{attrs:{\"for\":\"altitude\"}},[_vm._v(\"Elevation, MSL (m)\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.siteForm.alt),expression:\"siteForm.alt\"},{name:\"validate\",rawName:\"v-validate\",value:({required: true, decimal: true, min_value:-500, max_value:9000}),expression:\"{required: true, decimal: true, min_value:-500, max_value:9000}\"}],staticClass:\"form-control\",class:this.isSubmitting ? 'disabled-control' : '',attrs:{\"id\":\"tagUrl\",\"name\":\"Elevation\"},domProps:{\"value\":(_vm.siteForm.alt)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.siteForm, \"alt\", $event.target.value)}}}),(_vm.validated)?_c('div',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('Elevation'))+\" \")]):_vm._e(),_c('b-button',{staticClass:\"mt-2\",attrs:{\"title\":\"Get the elevation for this location\"},on:{\"click\":function($event){return _vm.setAutoAltitude()}}},[_c('i',{staticClass:\"fa fa-map pr-2\"}),_vm._v(\"Find & set elevation\")]),(_vm.showAltitudeLoader)?_c('b-spinner',{staticClass:\"justify-content-center pt-2 mt-2 ml-3\",staticStyle:{\"width\":\"1rem\",\"height\":\"1rem\"},attrs:{\"varient\":\"secondary\"}}):_vm._e()],1)])])])])])])])]):_vm._e(),_c('confirm-dialogue',{ref:\"confirmDialogue\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('popup-modal',{ref:\"popup\"},[_c('h5',{staticStyle:{\"margin-top\":\"0\"}},[_vm._v(_vm._s(_vm.title))]),_c('p',[_vm._v(_vm._s(_vm.message))]),_c('div',{staticClass:\"btns pull-right\"},[_c('b-button',{staticClass:\"btn btn-primary cancel-btn mx-2\",attrs:{\"variant\":\"primary\",\"size\":\"sm\"},on:{\"click\":_vm._cancel}},[_vm._v(_vm._s(_vm.cancelButton))]),_c('b-button',{staticClass:\"btn btn-primary ok-btn\",attrs:{\"variant\":\"danger\",\"size\":\"sm\"},on:{\"click\":_vm._confirm}},[_vm._v(_vm._s(_vm.okButton))])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.isVisible)?_c('div',{staticClass:\"row popup-modal\"},[_c('div',{staticClass:\"window\"},[_vm._t(\"default\")],2)]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopupModal.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopupModal.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PopupModal.vue?vue&type=template&id=31cfed2b&scoped=true&\"\nimport script from \"./PopupModal.vue?vue&type=script&lang=js&\"\nexport * from \"./PopupModal.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PopupModal.vue?vue&type=style&index=0&id=31cfed2b&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"31cfed2b\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConfirmDialogue.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConfirmDialogue.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ConfirmDialogue.vue?vue&type=template&id=a58080c4&scoped=true&\"\nimport script from \"./ConfirmDialogue.vue?vue&type=script&lang=js&\"\nexport * from \"./ConfirmDialogue.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ConfirmDialogue.vue?vue&type=style&index=0&id=a58080c4&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a58080c4\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserProfile.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserProfile.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UserProfile.vue?vue&type=template&id=7ed3b49a&scoped=true&\"\nimport script from \"./UserProfile.vue?vue&type=script&lang=js&\"\nexport * from \"./UserProfile.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UserProfile.vue?vue&type=style&index=0&id=7ed3b49a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed3b49a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"row pt-4\",staticStyle:{\"display\":\"flex\"}},[_c('div',{staticClass:\"col-3\"}),_c('div',{staticClass:\"col-6\"},[_c('div',{staticClass:\"row border\",class:_vm.showSubmitLoader ? 'disabled-control' : ''},[_c('div',{staticClass:\"col-12 text-white text-center mx-auto pb-2 pt-2 font-weight-bold\",staticStyle:{\"font-family\":\"'Arial Narrow Bold', sans-serif\"}},[_vm._v(\"Create New Account\")]),_c('div',{staticClass:\"col-12 mb-3 pt-4\"},[_c('ul',{staticClass:\"list-group\"},[_c('li',{staticClass:\"list-group-item\"},[_c('div',{staticClass:\"d-flex justify-content-between align-items-center\"},[_vm._m(0),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form.login),expression:\"form.login\"},{name:\"validate\",rawName:\"v-validate\",value:({required: true, email: true}),expression:\"{required: true, email: true}\"}],staticClass:\"form-control\",attrs:{\"data-vv-name\":\"Email Address\",\"type\":\"text\"},domProps:{\"value\":(_vm.form.login)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.form, \"login\", $event.target.value)}}})]),(_vm.validated)?_c('div',{staticClass:\"text-danger pull-right\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('Email Address'))+\" \")]):_vm._e()]),_c('li',{staticClass:\"list-group-item\"},[_c('div',{staticClass:\"d-flex justify-content-between align-items-center\"},[_vm._m(1),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form.password),expression:\"form.password\"},{name:\"validate\",rawName:\"v-validate\",value:({required: true, confirmed: _vm.form.password2}),expression:\"{required: true, confirmed: form.password2}\"}],staticClass:\"form-control\",attrs:{\"data-vv-name\":\"Password\",\"type\":\"password\"},domProps:{\"value\":(_vm.form.password)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.form, \"password\", $event.target.value)}}})]),(_vm.validated)?_c('div',{staticClass:\"text-danger pull-right\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('Password'))+\" \")]):_vm._e()]),_c('li',{staticClass:\"list-group-item\"},[_c('div',{staticClass:\"d-flex justify-content-between align-items-center\"},[_vm._m(2),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form.password2),expression:\"form.password2\"},{name:\"validate\",rawName:\"v-validate\",value:({required: true}),expression:\"{required: true}\"}],staticClass:\"form-control\",attrs:{\"data-vv-name\":\"Confirm Password\",\"type\":\"password\"},domProps:{\"value\":(_vm.form.password2)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.form, \"password2\", $event.target.value)}}})]),(_vm.validated)?_c('div',{staticClass:\"text-danger pull-right\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('Confirm Password'))+\" \")]):_vm._e()]),_c('li',{staticClass:\"list-group-item\"},[_c('div',{staticClass:\"d-flex justify-content-between align-items-center\"},[_vm._m(3),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form.name),expression:\"form.name\"},{name:\"validate\",rawName:\"v-validate\",value:({required: true}),expression:\"{required: true}\"}],staticClass:\"form-control\",attrs:{\"data-vv-name\":\"Account Display Name\",\"type\":\"text\"},domProps:{\"value\":(_vm.form.name)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.form, \"name\", $event.target.value)}}})]),(_vm.validated)?_c('div',{staticClass:\"text-danger pull-right\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('Account Display Name'))+\" \")]):_vm._e()])])]),_c('div',{staticClass:\"col-12 mb-3\"},[_c('ul',{staticClass:\"list-group\"},[_c('li',{staticClass:\"list-group-item d-flex justify-content-between align-items-center\"},[_vm._v(\" Observer Name \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form.observer),expression:\"form.observer\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.form.observer)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.form, \"observer\", $event.target.value)}}})]),_c('li',{staticClass:\"list-group-item d-flex justify-content-between align-items-center\"},[_vm._v(\" Country \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form.country),expression:\"form.country\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.form.country)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.form, \"country\", $event.target.value)}}})]),_c('li',{staticClass:\"list-group-item d-flex justify-content-between align-items-center\"},[_vm._v(\" City \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form.city),expression:\"form.city\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.form.city)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.form, \"city\", $event.target.value)}}})]),_c('li',{staticClass:\"list-group-item d-flex justify-content-between align-items-center\"},[_vm._v(\" Affiliation \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form.affiliation),expression:\"form.affiliation\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.form.affiliation)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.form, \"affiliation\", $event.target.value)}}})])])]),_vm._m(4),_c('div',{staticClass:\"col-12 mb-3 mt-3\"},[(_vm.showSubmitLoader)?_c('b-spinner',{staticClass:\"justify-content-center\",staticStyle:{\"width\":\"2rem\",\"height\":\"2rem\"},attrs:{\"varient\":\"secondary\"}}):_vm._e(),_c('button',{staticClass:\"btn btn-primary pull-right\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.onCreateAccount}},[_vm._v(\"Create Account\")])],1)])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_vm._v(\"Email Address\"),_c('span',{staticClass:\"text-danger pl-2\"},[_vm._v(\"*\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_vm._v(\"Password\"),_c('span',{staticClass:\"text-danger pl-2\"},[_vm._v(\"*\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_vm._v(\"Confirm Password\"),_c('span',{staticClass:\"text-danger pl-2\"},[_vm._v(\"*\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_vm._v(\"Account Display Name\"),_c('span',{staticClass:\"text-danger pl-2\"},[_vm._v(\"*\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-12\"},[_c('small',{staticClass:\"text-muted\"},[_c('strong',{staticClass:\"text-light\"},[_vm._v(\"NOTE: \")]),_vm._v(\" OWC accounts are shared with OccultWatcher\")])])}]\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateAccount.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateAccount.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CreateAccount.vue?vue&type=template&id=f5a21118&scoped=true&\"\nimport script from \"./CreateAccount.vue?vue&type=script&lang=js&\"\nexport * from \"./CreateAccount.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CreateAccount.vue?vue&type=style&index=0&id=f5a21118&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f5a21118\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"row pt-4\",staticStyle:{\"display\":\"flex\"}},[_c('div',{staticClass:\"col-3\"}),_c('div',{staticClass:\"col-6\"},[_c('div',{staticClass:\"row border\",class:_vm.showSubmitLoader ? 'disabled-control' : ''},[_c('div',{staticClass:\"col-12 text-white text-center mx-auto pb-2 pt-2 font-weight-bold\",staticStyle:{\"font-family\":\"'Arial Narrow Bold', sans-serif\"}},[_vm._v(\"Reset Password\")]),_c('div',{staticClass:\"col-12 mb-3 pt-4\"},[_c('ul',{staticClass:\"list-group\"},[_c('li',{staticClass:\"list-group-item\"},[_c('div',{staticClass:\"d-flex align-items-center\"},[_vm._m(0),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form.login),expression:\"form.login\"},{name:\"validate\",rawName:\"v-validate\",value:({required: true, email: true}),expression:\"{required: true, email: true}\"}],staticClass:\"form-control\",attrs:{\"data-vv-name\":\"Email Address\",\"type\":\"text\"},domProps:{\"value\":(_vm.form.login)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.form, \"login\", $event.target.value)}}})]),(_vm.validated)?_c('div',{staticClass:\"text-danger pull-right\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('Email Address'))+\" \")]):_vm._e()])])]),_vm._m(1),_vm._m(2),_c('div',{staticClass:\"col-12 mb-3 mt-3\"},[(_vm.showSubmitLoader)?_c('b-spinner',{staticClass:\"justify-content-center\",staticStyle:{\"width\":\"2rem\",\"height\":\"2rem\"},attrs:{\"varient\":\"secondary\"}}):_vm._e(),_c('button',{staticClass:\"btn btn-primary pull-right\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.onResetPassword}},[_vm._v(\"Reset Password\")])],1)])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticStyle:{\"width\":\"15em\"}},[_vm._v(\"Email Address\"),_c('span',{staticClass:\"text-danger pl-2\"},[_vm._v(\"*\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-12\"},[_c('small',{staticClass:\"text-muted\"},[_c('strong',{staticClass:\"text-light\"},[_vm._v(\"NOTE: \")]),_vm._v(\" OWC accounts are shared with OccultWatcher. Resetting your password will do so for both Occult Watcher and OWC.\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-12\"},[_c('br'),_c('small',{staticClass:\"text-muted\"},[_vm._v(\"Once your password has been reset, follow these steps to reconfigure your account in OccultWatcher:\")]),_c('br'),_c('small',{staticClass:\"text-muted\"},[_c('strong',{staticClass:\"text-light pr-1\"},[_vm._v(\"1)\")]),_vm._v(\" Shut down OccultWatcher if running\")]),_c('br'),_c('small',{staticClass:\"text-muted\"},[_c('strong',{staticClass:\"text-light pr-1\"},[_vm._v(\"2)\")]),_vm._v(\" From command line run: \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(\"OccultWatcher.exe reset-account\")])]),_c('br'),_c('small',{staticClass:\"text-muted\"},[_c('strong',{staticClass:\"text-light pr-1\"},[_vm._v(\"3)\")]),_vm._v(\" Start OccultWatcher and reconfigure your account\")]),_c('br')])}]\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ResetPassword.vue?vue&type=template&id=1b028825&scoped=true&\"\nimport script from \"./ResetPassword.vue?vue&type=script&lang=js&\"\nexport * from \"./ResetPassword.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1b028825\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('nav',{staticClass:\"nav navbar-expand-sm\",attrs:{\"id\":\"top-nav\"}},[_c('router-link',{staticClass:\"navbar-brand mx-4 pb-1\",attrs:{\"to\":\"/\"}},[_vm._v(\"OW Cloud\")])],1),_c('div',{staticClass:\"container-fluid\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12 pb-3 pt-4 mx-2\"},[_c('div',{staticClass:\"text-center\"},[(_vm.isFailedPost && !_vm.showLoader)?_c('div',{staticClass:\"pt-4 text-danger\"},[_vm._v(\"Could not complete request as you are no longer logged in ...\")]):_vm._e(),(_vm.isFailedPost || _vm.showLoader)?_c('b-spinner',{staticClass:\"justify-content-center mt-3\",staticStyle:{\"width\":\"3rem\",\"height\":\"3rem\"},attrs:{\"varient\":\"secondary\"}}):_vm._e(),(_vm.isFailedPost && !_vm.showLoader)?_c('div',{staticClass:\"pt-4\"},[_c('strong',[_vm._v(\"Restoring previous session in \"+_vm._s(_vm.redirectCountDown)+\"...\")])]):_vm._e(),(_vm.showLoader)?_c('div',{staticClass:\"text-muted pt-4\"},[_vm._v(\"Restoring previous session, this could take a few seconds...\")]):_vm._e()],1)])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RestoreSession.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RestoreSession.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RestoreSession.vue?vue&type=template&id=8c45f572&scoped=true&\"\nimport script from \"./RestoreSession.vue?vue&type=script&lang=js&\"\nexport * from \"./RestoreSession.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8c45f572\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditStations.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditStations.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EditStations.vue?vue&type=template&id=1bd748fe&\"\nimport script from \"./EditStations.vue?vue&type=script&lang=js&\"\nexport * from \"./EditStations.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Login from '../views/Login.vue'\r\nimport UserProfile from '../views/UserProfile.vue'\r\nimport CreateAccount from '../views/CreateAccount.vue'\r\nimport ResetPassword from '../views/ResetPassword.vue'\r\nimport RestoreSession from '../views/RestoreSession.vue'\r\nimport EditStations from '../views/EditStations.vue'\r\n\r\nexport default [\r\n {\r\n path: '/login',\r\n name: 'Login',\r\n component: Login,\r\n meta: { title: \"Login\", public: true}\r\n },\r\n {\r\n path: '/user-profile',\r\n name: 'UserProfile',\r\n component: UserProfile,\r\n meta: { title: \"User Profile\"}\r\n },\r\n {\r\n path: '/create-account',\r\n name: 'CreateAccount',\r\n component: CreateAccount,\r\n meta: { title: \"Create Account\", public: true}\r\n },\r\n {\r\n path: '/reset-password',\r\n name: 'ResetPassword',\r\n component: ResetPassword,\r\n meta: { title: \"Reset Password\", public: true}\r\n }, \r\n {\r\n path: '/restore-session',\r\n name: 'RestoreSession',\r\n component: RestoreSession,\r\n meta: { title: \"OWC\", headerless: true, public: true}\r\n }, \r\n {\r\n path: '/editStations',\r\n name: 'EditStations',\r\n component: EditStations,\r\n meta: { title: \"OWC\", headerless: true, public: false}\r\n } \r\n]","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('nav',{staticClass:\"nav navbar-expand-sm\",attrs:{\"id\":\"top-nav\"}},[_c('router-link',{staticClass:\"navbar-brand mx-4 pb-1\",attrs:{\"to\":\"/\"}},[_vm._v(\"OW Cloud\")]),_c('div',{staticClass:\"collapse navbar-collapse pb-1 mx-3\",attrs:{\"id\":\"mynav\"}},[(!_vm.showLoader && _vm.foundEvent && !_vm.errored)?_c('div',{staticClass:\"pt-2 yellow-highlight mr-auto\",staticStyle:{\"margin-left\":\"35px\"}},[_vm._v(_vm._s(_vm.foundEvent.asteroid)+\" occults \"+_vm._s(_vm.foundEvent.star)+\" on \"+_vm._s(_vm.foundEvent.date)+\" at \"+_vm._s(_vm.foundEvent.time))]):_vm._e(),_c('ThemeSelector'),_c('LoggedInUserActions',{ref:\"logginComponent\",attrs:{\"viewPortVisible\":false,\"delayedShow\":true,\"redirectToCurrent\":true}})],1)],1),(!_vm.showLoader && _vm.foundEvent && !_vm.errored)?_c('div',{staticClass:\"container-float mx-4\"},[_c('div',{staticClass:\"row pt-2 mt-3 justify-content-center\"},[_vm._m(0),_vm._m(1),_c('div',{staticClass:\"col-lg-2 col-md-4\"},[_c('div',[_vm._v(_vm._s(_vm.foundEvent.objClass))])]),_c('div',{staticClass:\"col-lg-1 col-md-4\"}),_vm._m(2),(_vm.magDropAffectedByNearbyStars)?_c('div',{staticClass:\"col-lg-2 col-md-6\"},[_vm._m(3)]):_vm._e(),(!_vm.magDropAffectedByNearbyStars)?_c('div',{staticClass:\"col-lg-2 col-md-6\"},[_vm._m(4)]):_vm._e(),_vm._m(5)]),_vm._m(6),_c('div',{staticClass:\"row justify-content-center pb-2\"},[_c('div',{staticClass:\"col-lg-2 col-md-6\"},[_vm._v(\" \"+_vm._s(_vm.foundEvent.date)+\", \"+_vm._s(_vm.foundEvent.time)+\" \")]),_c('div',{staticClass:\"col-lg-1 col-md-6\"},[_c('a',{attrs:{\"href\":\"http://www.asteroidoccultation.com/asteroid_help.htm#Rank\",\"title\":\"See definition of Rank\",\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.foundEvent.rank))])]),_c('div',{staticClass:\"col-lg-2 col-md-4\"},[_c('ObjectLink',{attrs:{\"isAster\":_vm.foundEvent.isAster,\"number\":this.foundEvent.astNo,\"name\":_vm.foundEvent.asteroid}}),_c('span',{staticClass:\"pl-2 text-muted\"},[_vm._v(\"(\"+_vm._s(_vm._f(\"formatFixed1\")(_vm.foundEvent.asterMag))+\" \"),_c('sup',[_vm._v(\"m\")]),_vm._v(\")\")])],1),_c('div',{staticClass:\"col-lg-1 col-md-2\"},[(_vm.foundEvent.encodedImage)?_c('a',{attrs:{\"href\":(\"/aladinViewer.html?starId=\" + (_vm.foundEvent.aladinTarget) + \"&fov=0.02&catalogue=1&ra=\" + (_vm.foundEvent.starRa) + \"&de=\" + (_vm.foundEvent.starDec)),\"target\":\"_blank\",\"title\":\"AladinLite image with GaiaEDR3 overlay and marked 4\\\" and 8\\\" apertures\"}},[_c('img',{staticClass:\"border border-success pull-right\",attrs:{\"src\":(\"data:image/png;base64,\" + (_vm.foundEvent.encodedImage))}})]):_vm._e()]),_c('div',{staticClass:\"col-lg-3 col-md-6\"},[_c('div',{staticClass:\"row\"},[(_vm.foundEvent.star || _vm.foundEvent.gaia)?_c('div',{staticClass:\"col-12\"},[_c('StarLink',{attrs:{\"starName\":_vm.foundEvent.star,\"gaiaStar\":_vm.foundEvent.gaia}}),_c('span',{staticClass:\"pl-2 text-muted\"},[_vm._v(\"(\"+_vm._s(_vm._f(\"formatMag\")(_vm.foundEvent.starMag))+\" \"),_c('sup',[_vm._v(\"m\")]),_vm._v(\")\")]),(_vm.ruwe)?_c('small',{staticClass:\"text-muted align-top\"},[_vm._v(\" [RUWE: \"),_c('strong',{staticClass:\"text-light\"},[_c('a',{attrs:{\"href\":\"https://gea.esac.esa.int/archive/documentation/GDR2/Gaia_archive/chap_datamodel/sec_dm_main_tables/ssec_dm_ruwe.html\",\"title\":\"See definition of RUWE\",\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm._f(\"formatFixed2\")(_vm.ruwe)))])]),_vm._v(\"]\")]):_vm._e()],1):_vm._e()]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12\"},[_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Star Chart: \")]),_c('a',{staticClass:\"pl-3\",attrs:{\"href\":(\"/aladinViewer.html?starId=\" + (_vm.foundEvent.aladinTarget) + \"&fov=15\"),\"target\":\"_blank\"}},[_vm._v(\"15°\")]),_c('a',{staticClass:\"pl-3\",attrs:{\"href\":(\"/aladinViewer.html?starId=\" + (_vm.foundEvent.aladinTarget) + \"&fov=5\"),\"target\":\"_blank\"}},[_vm._v(\"5°\")]),_c('a',{staticClass:\"pl-3\",attrs:{\"href\":(\"/aladinViewer.html?starId=\" + (_vm.foundEvent.aladinTarget) + \"&fov=2\"),\"target\":\"_blank\"}},[_vm._v(\"2°\")]),_c('a',{staticClass:\"pl-3\",attrs:{\"href\":(\"/aladinViewer.html?starId=\" + (_vm.foundEvent.aladinTarget) + \"&fov=0.5\"),\"target\":\"_blank\"}},[_vm._v(\"0.5°\")]),_c('a',{staticClass:\"pl-3\",attrs:{\"href\":(\"/aladinViewer.html?starId=\" + (_vm.foundEvent.aladinTarget) + \"&fov=0.1\"),\"target\":\"_blank\"}},[_vm._v(\"0.1°\")]),_c('span',{staticClass:\"aladin\",attrs:{\"title\":\"Star charts by AladinLite\"}})])]),(_vm.foundEvent.nearby)?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12 pt-2\"},[_c('NearbyStarSummary',{attrs:{\"nearby\":_vm.foundEvent.nearby}})],1)]):_vm._e()]),(_vm.magDropAffectedByNearbyStars)?_c('div',{staticClass:\"col-lg-2 col-md-6\"},[_c('div',{staticClass:\"row\"},[_vm._m(7),_c('div',{staticClass:\"col-3 border-bottom border-secondary\"},[_c('small',[_vm._v(_vm._s(_vm._f(\"formatFixed1\")(_vm.foundEvent.nearby.star))+\" \"),_c('sup',[_vm._v(\"m\")])])]),_c('div',{staticClass:\"col-3 border-bottom border-secondary\"},[_c('small',[_vm._v(_vm._s(_vm._f(\"formatFixed1\")(_vm.foundEvent.nearby.comb))+\" \"),_c('sup',[_vm._v(\"m\")])])]),_c('div',{staticClass:\"col-3 border-bottom border-secondary\"},[_c('small',[_vm._v(_vm._s(_vm._f(\"formatFixed1\")(_vm.foundEvent.nearby.drop))+\" \"),_c('sup',[_vm._v(\"m\")])])])]),_c('div',{staticClass:\"row\"},[_vm._m(8),_c('div',{staticClass:\"col-3 border-bottom border-secondary\"},[_c('small',[_vm._v(_vm._s(_vm._f(\"formatFixed1\")(_vm.foundEvent.nearby.star4))+\" \"),_c('sup',[_vm._v(\"m\")])])]),_c('div',{staticClass:\"col-3 border-bottom border-secondary\"},[_c('small',[_vm._v(_vm._s(_vm._f(\"formatFixed1\")(_vm.foundEvent.nearby.comb4))+\" \"),_c('sup',[_vm._v(\"m\")])])]),_c('div',{staticClass:\"col-3 border-bottom border-secondary\"},[_c('small',[_vm._v(_vm._s(_vm._f(\"formatFixed1\")(_vm.foundEvent.nearby.drop4))+\" \"),_c('sup',[_vm._v(\"m\")])])])]),_c('div',{staticClass:\"row\"},[_vm._m(9),_c('div',{staticClass:\"col-3\"},[_c('small',[_vm._v(_vm._s(_vm._f(\"formatFixed1\")(_vm.foundEvent.nearby.star8))+\" \"),_c('sup',[_vm._v(\"m\")])])]),_c('div',{staticClass:\"col-3\"},[_c('small',[_vm._v(_vm._s(_vm._f(\"formatFixed1\")(_vm.foundEvent.nearby.comb8))+\" \"),_c('sup',[_vm._v(\"m\")])])]),_c('div',{staticClass:\"col-3\"},[_c('small',[_vm._v(_vm._s(_vm._f(\"formatFixed1\")(_vm.foundEvent.nearby.drop8))+\" \"),_c('sup',[_vm._v(\"m\")])])])])]):_vm._e(),(!_vm.magDropAffectedByNearbyStars)?_c('div',{staticClass:\"col-lg-2 col-md-6\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-4\"},[_vm._v(\" \"+_vm._s(_vm._f(\"formatFixed1\")(_vm.foundEvent.starMag))+\" \"),_c('sup',[_vm._v(\"m\")])]),_c('div',{staticClass:\"col-4\"},[_vm._v(\" \"+_vm._s(_vm._f(\"formatFixed1\")(_vm.foundEvent.mag))+\" \"),_c('sup',[_vm._v(\"m\")])]),_c('div',{staticClass:\"col-4\"},[_vm._v(\" \"+_vm._s(_vm._f(\"formatFixed1\")(_vm.foundEvent.magDrop))+\" \"),_c('sup',[_vm._v(\"m\")])])])]):_vm._e(),_c('div',{staticClass:\"col-lg-1 col-md-6\"},[_vm._v(\" \"+_vm._s(_vm.foundEvent.maxDur)+\" \"),_c('small',[_vm._v(\"sec\")])])]),_c('div',{staticClass:\"row pb-4 justify-content-center\"},[_vm._m(10),_c('div',{staticClass:\"col-lg-7\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"pl-1 pb-3\"},[_vm._v(\" Predictions \"),(this.currentUser && _vm.foundEvent.updReqAllowed && !_vm.updateRequestSubmitted && !_vm.showSubmitLoader)?_c('span',{staticClass:\"mx-2\"},[_c('b-dropdown',{attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('i',{staticClass:\"fa fa-bars\"})]},proxy:true}],null,false,3474634490)},[_c('b-dropdown-item-button',{on:{\"click\":_vm.requestUpdate}},[_vm._v(\" Request Prediction Update \")]),(_vm.isOwcAdmin)?_c('b-dropdown-divider'):_vm._e(),(_vm.isOwcAdmin)?_c('b-dropdown-group',{attrs:{\"id\":\"dropdown-group-1\",\"header\":\"Change Default\"}},_vm._l((_vm.foundEvent.predictions.filter(function (x) { return !x.default; })),function(pred){return _c('b-dropdown-item-button',{key:pred.id,on:{\"click\":function($event){return _vm.requestChangeDefault(pred)}}},[_vm._v(\" \"+_vm._s(_vm._f(\"formatPredictionSource\")(pred.src))+\" \"),_c('small',{key:pred.id,staticClass:\"text-muted pl-1\"},[_vm._v(\"(by \"+_vm._s(pred.user)+\")\")])])}),1):_vm._e()],1)],1):_vm._e()]),_c('div',[_c('PredictionsSummary',{attrs:{\"predictions\":_vm.foundEvent.predictions,\"eventId\":_vm.eventId,\"pendingUpdate\":_vm.foundEvent.updPending,\"messages\":_vm.foundEvent.updMessages}})],1),_c('div',[_c('TagAgreements',{attrs:{\"tags\":_vm.foundEvent.tags}})],1)])]),_c('div',{staticClass:\"row pt-4\"},[_c('div',{staticClass:\"col-6\"},[_c('div',{staticClass:\"pl-1 pb-3\"},[_vm._v(\" Countries in 1-σ Zone (\"+_vm._s(_vm.foundEvent.geo !== undefined ? _vm.foundEvent.geo.length : '')+\") \")]),_c('div',_vm._l((_vm.foundEvent.geo),function(ctryName){return _c('span',{key:ctryName,staticClass:\"badge badge-secondary mx-1\"},[_vm._v(_vm._s(ctryName))])}),0)]),_c('div',{staticClass:\"col-6\"},[_c('div',{staticClass:\"pl-1 pb-3\"},[_vm._v(\" Tags (\"+_vm._s(_vm.foundEvent.tags !== undefined ? _vm.foundEvent.tags.length : '')+\") \")]),_c('div',[(_vm.foundEvent.tags)?_c('TagList',{attrs:{\"tags\":_vm.foundEvent.tags}}):_vm._e()],1),_c('div',{staticClass:\"pt-4\"},[(_vm.showSubmitLoader)?_c('b-spinner',{staticClass:\"justify-content-center\",staticStyle:{\"width\":\"2rem\",\"height\":\"2rem\"},attrs:{\"varient\":\"secondary\"}}):_vm._e(),_c('CommunityTagEvent',{attrs:{\"eventId\":_vm.foundEvent.id}})],1)])])]),_c('div',{staticClass:\"col-lg-5\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12\"},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.openDefaultPrediction()}}},[_c('EarthPlot',{attrs:{\"occel\":_vm.occel}})],1)]),_c('div',{staticClass:\"col-12 pt-2 text-center\"},[_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Shadow crossing the Earth for \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm._f(\"formatMinSecDuration\")(2 * _vm.foundEvent.shadowDur)))]),_vm._v(\" from \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm.foundEvent.from))]),_vm._v(\" to \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm.foundEvent.to))])])])]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12 pt-2\"},[_c('OccultWatcherPlot',{attrs:{\"occel\":_vm.foundEvent.data,\"owstations\":_vm.stations}})],1)]),(_vm.stations)?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12\"},[_c('StationSort',{attrs:{\"owstations\":_vm.stations}})],1)]):_vm._e()]),_vm._m(11)]),_c('div',{staticClass:\"row pb-4 justify-content-center\"},[_c('div',{staticClass:\"col-lg-12 text-center\"},[(!_vm.isOccultMapLoaded && !_vm.isOccultMapLoading)?_c('button',{staticClass:\"btn btn-primary\",on:{\"click\":_vm.showOccultMap}},[_vm._v(\"Show Occult Map\")]):_vm._e(),(_vm.isOccultMapLoading)?_c('div',{staticClass:\"loading-image\",style:({ backgroundImage: (\"url(\" + _vm.imageSpinnerUrl + \")\")})}):_vm._e(),_c('a',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isOccultMapLoaded && !_vm.occultMapErrored),expression:\"isOccultMapLoaded && !occultMapErrored\"}],attrs:{\"href\":_vm.occulMapImgUrl,\"target\":\"_blank\"}},[_c('img',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isOccultMapLoaded && !_vm.occultMapErrored),expression:\"isOccultMapLoaded && !occultMapErrored\"}],staticClass:\"mx-auto\",staticStyle:{\"filter\":\"brightness(70%)\"},attrs:{\"src\":_vm.occulMapImgUrl,\"width\":\"99%\",\"height\":\"99%\"}}),_c('img')]),_c('div',{staticClass:\"text-center\"},[(_vm.occultMapErrored)?_c('h6',{staticClass:\"text-danger my-4\"},[_vm._v(\"Error loading Occult Map\")]):_vm._e()])])])]):_vm._e(),_c('div',{staticClass:\"text-center\"},[(_vm.showLoader)?_c('b-spinner',{staticClass:\"justify-content-center mt-3\",staticStyle:{\"width\":\"3rem\",\"height\":\"3rem\"},attrs:{\"varient\":\"secondary\"}}):_vm._e(),(!_vm.foundEvent && !_vm.showLoader)?_c('h5',{staticClass:\"text-danger mt-3\"},[_vm._v(\"No event found\")]):_vm._e(),(_vm.errored && !_vm.showLoader)?_c('h5',{staticClass:\"text-danger mt-3\"},[_vm._v(\"Error getting event: \"+_vm._s(this.eventId))]):_vm._e()],1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-lg-2 col-md-6\"},[_c('div',[_vm._v(\"Closest Approach\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-lg-1 col-md-6\"},[_c('div',[_vm._v(\"Rank\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-lg-3 col-md-6\"},[_c('div',[_vm._v(\"Star\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-6 text-right\"},[_vm._v(\" Star Mag \")]),_c('div',{staticClass:\"col-3\"},[_vm._v(\" Comb. \")]),_c('div',{staticClass:\"col-3\"},[_vm._v(\" Drop \")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-4\"},[_vm._v(\" Mag \")]),_c('div',{staticClass:\"col-4\"},[_vm._v(\" Comb. \")]),_c('div',{staticClass:\"col-4\"},[_vm._v(\" Drop \")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-lg-1 col-md-6\"},[_c('div',[_vm._v(\"Max Dur\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row justify-content-center\"},[_c('div',{staticClass:\"col-lg-12\"},[_c('hr',{staticStyle:{\"height\":\"1px\",\"width\":\"100%\",\"border-width\":\"0\",\"color\":\"rgb(65, 65, 65)\",\"background-color\":\"rgb(65, 65, 65)\"}})])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-3 text-center\"},[_c('span',{staticClass:\"text-muted\"},[_c('small',{attrs:{\"title\":\"Target star only\"}},[_vm._v(\"*\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-3 text-center\"},[_c('small',{staticClass:\"text-muted\",attrs:{\"title\":\"Measuring aperture of 4\\\" radius\"}},[_vm._v(\"4\\\"\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-3 text-center\"},[_c('small',{staticClass:\"text-muted\",attrs:{\"title\":\"Measuring aperture of 8\\\" radius\"}},[_vm._v(\"8\\\"\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-lg-12\"},[_c('hr',{staticStyle:{\"height\":\"1px\",\"width\":\"100%\",\"border-width\":\"0\",\"color\":\"rgb(165, 165, 165)\",\"background-color\":\"rgb(165, 165, 165)\"}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-lg-12\"},[_c('hr',{staticStyle:{\"height\":\"1px\",\"width\":\"100%\",\"border-width\":\"0\",\"color\":\"rgb(65, 65, 65)\",\"background-color\":\"rgb(65, 65, 65)\"}}),_c('span',{staticClass:\"text-muted\"},[_c('small',[_vm._v(\"If you want to see more information on this page, you can simply request it!\")])])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row mx-1 mt-2 border earth-plot-container d-flex align-items-center justify-content-center\"},[_c('div',{staticClass:\"earth-plot-canvas\",attrs:{\"id\":\"earthCanvas\"}}),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.viewPortSize),expression:\"viewPortSize\"}],attrs:{\"type\":\"hidden\",\"name\":\"hidden\",\"id\":\"hidden\"},domProps:{\"value\":(_vm.viewPortSize)},on:{\"change\":_vm.viewPortChanged,\"input\":function($event){if($event.target.composing){ return; }_vm.viewPortSize=$event.target.value}}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import * as THREE from './three.js'\r\n\r\nexport class Occelmnt {\r\n constructor(data, debugMode)\r\n {\r\n this.debugMode = debugMode || process.env.NODE_ENV != 'production';\r\n this.update(data);\r\n }\r\n\r\n shadowLine1 = null;\r\n shadowLine2 = null;\r\n sigmaLine1 = null;\r\n sigmaLine2 = null;\r\n debugMode = false;\r\n\r\n static fundPlaneGeometry = new THREE.PlaneGeometry( 50, 50, 50 );\r\n static shadowLineMat = new THREE.LineBasicMaterial( { transparent: true, opacity: 0.5, color: 0x8888FF} );\r\n static sigmaLineMat = new THREE.LineDashedMaterial( { transparent: true, opacity: 0.3, color: 0xFF8888} );\r\n static EARTH_PLOT_FACTOR = 2.14; \r\n static camera = null;\r\n static light = null;\r\n static scene = null;\r\n static renderer = null;\r\n\r\n update(data){\r\n if (data.subStlrLng)\r\n {\r\n this.SubstellarLongRad = -1 * THREE.Math.degToRad(data.subStlrLng);\r\n this.SubstellarLatRad = -1 * THREE.Math.degToRad(data.subStlrLat);\r\n this.SubSolarLongRad = -1 * THREE.Math.degToRad(data.subSolrLng);\r\n this.SubSolarLatRad = THREE.Math.degToRad(data.subSolrLat);\r\n \r\n this.XatMin = data.xMin;\r\n this.YatMin = data.yMin;\r\n this.dX = data.dX;\r\n this.dY = data.dY;\r\n this.shadowWidthEarthRadii = data.shadowWidth / 6371.0;\r\n this.errorAsIncreaseInPathWidths = data.shdwIncrPathWidths;\r\n }\r\n else\r\n {\r\n this.parse540String(data);\r\n }\r\n }\r\n\r\n plotShadow() {\r\n var n = Math.sqrt(this.dX * this.dX + this.dY * this.dY);\r\n var D = this.XatMin * this.dX + this.YatMin * this.dY;\r\n var dH = D / n / n;\r\n //var H2 = H1 - dH;\r\n // This correction will return a dH=0 for most events. For satellite predictions it will be non-zero and must be applied for the purpose of this plotting\r\n // as the original (XatMin, YatMin) will be for the main body, not the satellite\r\n this.XatMin = this.XatMin - dH * this.dX;\r\n this.YatMin = this.YatMin - dH * this.dY;\r\n\r\n if (this.debugMode)\r\n {\r\n console.log(`Besselian (${this.XatMin}, ${this.YatMin}), errorAsIncreaseInPathWidths: ${this.errorAsIncreaseInPathWidths}, dH: ${dH}`);\r\n }\r\n \r\n var halfShadow = this.shadowWidthEarthRadii * Occelmnt.EARTH_PLOT_FACTOR / 2.0;\r\n var halfSigma = this.errorAsIncreaseInPathWidths * 2 * halfShadow;\r\n var centerLineTranslation = Math.sign(this.XatMin) * Occelmnt.EARTH_PLOT_FACTOR * Math.sqrt(this.YatMin * this.YatMin + this.XatMin * this.XatMin);\r\n var pathRotation = Math.PI / 4 + Math.atan(this.YatMin/this.XatMin);\r\n\r\n if (this.debugMode)\r\n {\r\n console.log(`halfShadow: ${halfShadow}, halfSigma: ${halfSigma}, centerLineTranslation: ${centerLineTranslation}, pathRotation: ${pathRotation},`);\r\n }\r\n \r\n this.shadowLine1 = new THREE.Line( Occelmnt.fundPlaneGeometry, Occelmnt.shadowLineMat );\r\n this.shadowLine1.rotation.set(Occelmnt.camera.rotation.x, Occelmnt.camera.rotation.y, Occelmnt.camera.rotation.z);\r\n this.shadowLine1.translateZ(1.5);\r\n this.shadowLine1.rotateZ(pathRotation);\r\n this.shadowLine1.translateX(centerLineTranslation - halfShadow);\r\n Occelmnt.scene.add( this.shadowLine1 );\r\n\r\n this.shadowLine2 = new THREE.Line( Occelmnt.fundPlaneGeometry, Occelmnt.shadowLineMat );\r\n this.shadowLine2.rotation.set(Occelmnt.camera.rotation.x, Occelmnt.camera.rotation.y, Occelmnt.camera.rotation.z);\r\n this.shadowLine2.translateZ(1.5);\r\n this.shadowLine2.rotateZ(pathRotation);\r\n this.shadowLine2.translateX(centerLineTranslation + halfShadow);\r\n Occelmnt.scene.add( this.shadowLine2 ); \r\n\r\n // Show sigma lines if error is bigger than 50% path widths\r\n if (this.errorAsIncreaseInPathWidths > 1.5)\r\n {\r\n this.sigmaLine1 = new THREE.Line( Occelmnt.fundPlaneGeometry, Occelmnt.sigmaLineMat );\r\n this.sigmaLine1.rotation.set(Occelmnt.camera.rotation.x, Occelmnt.camera.rotation.y, Occelmnt.camera.rotation.z);\r\n this.sigmaLine1.translateZ(1.5);\r\n this.sigmaLine1.rotateZ(pathRotation);\r\n this.sigmaLine1.translateX(centerLineTranslation - halfSigma);\r\n Occelmnt.scene.add( this.sigmaLine1 ); \r\n \r\n this.sigmaLine2 = new THREE.Line( Occelmnt.fundPlaneGeometry, Occelmnt.sigmaLineMat );\r\n this.sigmaLine2.rotation.set(Occelmnt.camera.rotation.x, Occelmnt.camera.rotation.y, Occelmnt.camera.rotation.z);\r\n this.sigmaLine2.translateZ(1.5);\r\n this.sigmaLine2.rotateZ(pathRotation);\r\n this.sigmaLine2.translateX(centerLineTranslation + halfSigma);\r\n Occelmnt.scene.add( this.sigmaLine2 ); \r\n }\r\n }\r\n\r\n clearPlot(){\r\n if (this.shadowLine1 != null) {\r\n Occelmnt.scene.remove(this.shadowLine1);\r\n }\r\n if (this.shadowLine2 != null) {\r\n Occelmnt.scene.remove(this.shadowLine2);\r\n }\r\n if (this.sigmaLine1 != null) {\r\n Occelmnt.scene.remove(this.sigmaLine1);\r\n }\r\n if (this.sigmaLine2 != null) {\r\n Occelmnt.scene.remove(this.sigmaLine2);\r\n }\r\n }\r\n\r\n plot() {\r\n var distance = 5;\r\n var y = distance * Math.sin(-this.SubstellarLatRad);\r\n var x = distance * Math.cos(-this.SubstellarLatRad) * Math.cos(this.SubstellarLongRad);\r\n var z = distance * Math.cos(-this.SubstellarLatRad) * Math.sin(this.SubstellarLongRad);\r\n\r\n Occelmnt.camera.position.set(x, y, z);\r\n Occelmnt.camera.lookAt(Occelmnt.scene.position);\r\n\r\n if (this.debugMode)\r\n {\r\n console.log(`Camera at (${x}, ${y}, ${z}) ${x*x + y*y + z*z}`);\r\n }\r\n \r\n var lightDistance = 50;\r\n y = lightDistance * Math.sin(this.SubSolarLatRad);\r\n x = lightDistance * Math.cos(this.SubSolarLatRad) * Math.cos(this.SubSolarLongRad);\r\n z = lightDistance * Math.cos(this.SubSolarLatRad) * Math.sin(this.SubSolarLongRad);\r\n Occelmnt.light.position.set(x, y, z);\r\n\r\n if (this.debugMode)\r\n {\r\n console.log(`Light at (${x}, ${y}, ${z}) ${x*x + y*y + z*z}`);\r\n }\r\n\r\n this.plotShadow(Occelmnt.camera);\r\n }\r\n\r\n parse540String(data)\r\n {\r\n var lines = data.split(/\\r?\\n/);\r\n if (lines.length < 10)\r\n {\r\n console.error(`Occelmnt: Not a 10 lines but ${lines.length}`);\r\n }\r\n var totalChars = lines[0].length + lines[1].length + lines[2].length + lines[3].length + lines[4].length + lines[5].length + lines[6].length + lines[7].length + lines[8].length + lines[9].length;\r\n if (totalChars != 520)\r\n {\r\n console.error('Occelmnt: Not a 540 string. ');\r\n }\r\n\r\n this.ObjectName = lines[1].substr(7, 15).trim();\r\n this.ObjectNumber = lines[1].substr(0, 7).trim();\r\n this.StarName = lines[3].substr(33, 20).trim();\r\n var eventYear = parseInt(lines[0].substr(1, 4));\r\n var eventMonth = \"JanFebMarAprMayJunJulAugSepOctNovDec\".indexOf(lines[0].substr(6, 3)) / 3 + 1;\r\n var eventDay = parseInt(lines[0].substr(9, 3)); \r\n this.EventDate = new Date(eventYear + \"-\" + eventMonth + \"-\" + eventDay);\r\n this.SubstellarLongRad = -1 * THREE.Math.degToRad(parseFloat(lines[5].substr(0, 9).trim()));\r\n this.SubstellarLatRad = -1 * THREE.Math.degToRad(parseFloat(lines[5].substr(9, 8).trim()));\r\n this.SubSolarLongRad = -1 * THREE.Math.degToRad(parseFloat(lines[5].substr(17, 9).trim()));\r\n this.SubSolarLatRad = THREE.Math.degToRad(parseFloat(lines[5].substr(26, 8).trim()));\r\n\r\n this.XatMin = parseFloat(lines[6].substr(8, 9).trim());\r\n this.YatMin = parseFloat(lines[6].substr(17, 9).trim());\r\n this.dX = parseFloat(lines[6].substr(26, 9).trim());\r\n if (this.dX == 0.0) this.dX = 1E-07;\r\n this.dY = parseFloat(lines[6].substr(35, 9).trim());\r\n this.shadowWidthEarthRadii = parseFloat(lines[4].substr(4, 7).trim()) / 6371; \r\n this.errorAsIncreaseInPathWidths = parseFloat(lines[9].substr(23, 6).trim()); \r\n\r\n if (this.debugMode)\r\n {\r\n console.log(`SubSolarLongRad: ${lines[5].substr(17, 9).trim()}, SubSolarLatRad: ${lines[5].substr(26, 8).trim()}`);\r\n } \r\n }\r\n\r\n initPlot(canvas) {\r\n var CANVAS_WIDTH = canvas.clientWidth,\r\n CANVAS_HEIGHT = canvas.clientHeight;\r\n\r\n Occelmnt.scene = new THREE.Scene();\r\n\r\n Occelmnt.scene.add(new THREE.AmbientLight(0x4B4B4B));\r\n\r\n Occelmnt.camera = new THREE.OrthographicCamera(-2, 2, 2, -2, 0, 10);\r\n Occelmnt.light = new THREE.DirectionalLight(0xffffff, 1);\r\n Occelmnt.scene.add(Occelmnt.light); \r\n\r\n const geometry = new THREE.SphereBufferGeometry( 1.5, 32, 32 );\r\n\r\n const loader = new THREE.TextureLoader();\r\n loader.setCrossOrigin('anonymous');\r\n\r\n const material = new THREE.MeshStandardMaterial();\r\n\r\n material.map = loader.load(require('@/assets/images/2_no_clouds_4k.jpg'));\r\n material.bumpMap = loader.load(require('@/assets/images/elev_bump_4k.jpg'));\r\n material.bumpScale = 0.05; \r\n material.needsUpdate = true;\r\n\r\n const globeMesh = new THREE.Mesh( geometry, material ); \r\n\r\n Occelmnt.renderer = new THREE.WebGLRenderer( { antialias: true } );\r\n Occelmnt.renderer.setPixelRatio( window.devicePixelRatio );\r\n Occelmnt.renderer.setSize( CANVAS_WIDTH, CANVAS_HEIGHT ); \r\n canvas.appendChild( Occelmnt.renderer.domElement );\r\n\r\n globeMesh.position.set( 0, 0, 0 );\r\n Occelmnt.scene.add( globeMesh );\r\n\r\n\r\n function animate() {\r\n requestAnimationFrame( animate );\r\n Occelmnt.renderer.render( Occelmnt.scene, Occelmnt.camera );\r\n }\r\n animate(); \r\n }\r\n\r\n resizeCanvas(canvas) { \r\n Occelmnt.renderer.setSize( canvas.clientWidth, canvas.clientHeight );\r\n }\r\n\r\n getEventTitle() {\r\n return `Occelmnt: (${this.ObjectNumber}) ${this.ObjectName} occults ${this.StarName} on ${this.EventDate.toDateString()}`;\r\n }\r\n}\r\n","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","//API Keys from here: https://console.cloud.google.com/google/maps-apis\r\n//const API_KEY_JS = 'AIzaSyDaRXdeeeedsPffcfiPHn9faW6hiVhgXUY';\r\n//const API_KEY_OW = 'AIzaSyDnetEVDJxqD7vayAbzFmb19eysTDPOuTk';\r\nconst API_KEY_OW = 'AIzaSyAx_LaEjz9jPbC1nHMYdRCMIuW3MbY3Jec'; // hpavlov75@gmail.com, \r\n// Keys & Credentials - https://console.cloud.google.com/google/maps-apis/credentials?project=smart-pride-408511\r\n// Metrics - https://console.cloud.google.com/google/maps-apis/metrics?project=smart-pride-408511\r\n\r\n//const API_KEY_OW = 'AIzaSyCgxFIyn9nUTMWbGIGX95OACHK29pVgXrU';\r\nconst CALLBACK_NAME = 'gmapsCallback';\r\n\r\nlet initialized = !!window.google;\r\nlet resolveInitPromise;\r\nlet rejectInitPromise;\r\n// This promise handles the initialization\r\n// status of the google maps script.\r\nconst initPromise = new Promise((resolve, reject) => {\r\n resolveInitPromise = resolve;\r\n rejectInitPromise = reject;\r\n});\r\n\r\nexport default function init() {\r\n // If Google Maps already is initialized\r\n // the `initPromise` should get resolved\r\n // eventually.\r\n if (initialized) return initPromise;\r\n\r\n initialized = true;\r\n // The callback function is called by\r\n // the Google Maps script if it is\r\n // successfully loaded.\r\n window[CALLBACK_NAME] = () => resolveInitPromise(window.google);\r\n\r\n // We inject a new script tag into\r\n // the `` of our HTML to load\r\n // the Google Maps script.\r\n const script = document.createElement('script');\r\n script.async = true;\r\n script.defer = true;\r\n script.src = `https://maps.googleapis.com/maps/api/js?key=${API_KEY_OW}&callback=${CALLBACK_NAME}`;\r\n script.onerror = rejectInitPromise;\r\n document.querySelector('head').appendChild(script);\r\n\r\n return initPromise;\r\n}","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EarthPlot.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EarthPlot.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EarthPlot.vue?vue&type=template&id=35e55fcc&scoped=true&\"\nimport script from \"./EarthPlot.vue?vue&type=script&lang=js&\"\nexport * from \"./EarthPlot.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"35e55fcc\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.predictions && _vm.predictions.length > 0)?_c('div',{staticClass:\"table-responsive-md\"},[_c('table',{staticClass:\"table table-dark table-bordered table-hover\"},[_c('thead',{staticClass:\"thead-dark text-center\"},[_c('tr',[_c('td',[_vm._v(\"Data Sources\")]),_c('td',[_vm._v(\"Last Updated (UT)\")]),_c('td',[_vm._v(\"Orbit Date\")]),_vm._m(0),_c('td',[_vm._v(\"Error (time)\")]),(_vm.predictions.length > 1)?_c('td',[_vm._v(\"Path Diff\"),_c('b',[_vm._v(\" **\")])]):_vm._e()])]),_c('tbody',_vm._l((_vm.predictions),function(pred){return _c('tr',{key:pred.src,staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":function($event){return _vm.openPrediction(pred)}}},[_c('td',{staticClass:\"text-center\"},[(pred.id === _vm.predIdForUpdate && _vm.pendingUpdate)?_c('i',{staticClass:\"fa pr-2 fa-hourglass\",attrs:{\"title\":\"Prediction update is pending\"}}):_vm._e(),_vm._v(\" \"+_vm._s(_vm._f(\"formatPredictionSource\")(pred.src))+\" \"),(pred.default && !pred.defPredUser)?_c('span',{staticClass:\"badge badge-pill badge-secondary mx-1\"},[_vm._v(\"default\")]):_vm._e(),(pred.default && pred.defPredUser)?_c('span',{staticClass:\"badge badge-pill badge-info mx-1\",attrs:{\"title\":(\"Set as default by \" + (pred.defPredUser))}},[_vm._v(\"default\")]):_vm._e()]),_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm._f(\"formatDayHourMinuteOrDayOnly\")(pred.updated))+\" \"),_c('small',[_c('span',{staticClass:\"text-muted\"},[_vm._v(\"(by \"+_vm._s(pred.user)+\")\")])])]),_c('td',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm._f(\"formatDate\")(pred.orbDate))+\" \"),_c('OrbitSolutionInfo',{attrs:{\"orbSlnId\":pred.orbSlnId}})],1),_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm._f(\"formatFixed2\")(pred.errpw - 1)))]),_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm._f(\"formatMinSecDuration\")(pred.errtime / 60.0)))]),(_vm.predictions.length > 1)?_c('td',{staticClass:\"text-center\"},[(pred.shiftInfo)?_c('span',[_vm._v(_vm._s(pred.shiftInfo))]):_vm._e(),(!pred.shift)?_c('span',[_vm._v(\"-\")]):_vm._e()]):_vm._e()])}),0)]),_vm._l((_vm.updateErrors),function(err){return _c('div',{key:err},[_c('span',{staticClass:\"text-danger\"},[_c('small',[_vm._v(_vm._s(err))])])])}),_vm._l((_vm.updateWarnings),function(wrn){return _c('div',{key:wrn},[_c('span',{staticClass:\"text-warning\"},[_c('small',[_vm._v(_vm._s(wrn))])])])}),_c('div',[_vm._m(1),(_vm.predictions.length > 1)?_c('span',{staticClass:\"text-muted\"},[_vm._v(\";\"),_vm._m(2)]):_vm._e(),_c('br')])],2):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',[_vm._v(\"Error (\"),_c('span',{attrs:{\"title\":\"Path Widths\"}},[_vm._v(\"PW\"),_c('b',[_vm._v(\" *\")])]),_vm._v(\")\")])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"text-muted\"},[_c('small',[_vm._v(\"* \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(\"PW\")]),_vm._v(\" = path widths\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"text-muted pl-2\"},[_c('small',[_c('strong',{staticClass:\"text-light\"},[_vm._v(\"**\")]),_vm._v(\" Across and along path difference between predictions. Across path shift is computed on the Fundamental Plane, where '-' indicates a left and '+' a right path shift. \")])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[(_vm.orbDate)?_c('span',[_vm._v(\", orbit: \"+_vm._s(_vm._f(\"formatDate\")(_vm.orbDate)))]):_vm._e(),(_vm.orbSlnId && _vm.orbSlnId.startsWith('JPL'))?_c('span',{staticClass:\"text-muted\"},[_vm._v(\" (\"),_c('span',{staticStyle:{\"color\":\"rgb(0, 188, 140)\"},attrs:{\"title\":_vm.orbSlnId}},[_vm._v(_vm._s(_vm._f(\"formatJPLNo\")(_vm.orbSlnId)))]),_vm._v(\") \")]):_vm._e(),(_vm.orbSlnId && !_vm.orbSlnId.startsWith('JPL') && _vm.orbSlnId.indexOf('/DE') > 0)?_c('span',{staticClass:\"text-muted\"},[_vm._v(\" (\"),_c('span',{staticStyle:{\"color\":\"rgb(0, 188, 140)\"},attrs:{\"title\":_vm.orbSlnId}},[_vm._v(_vm._s(_vm._f(\"formatJPLDE\")(_vm.orbSlnId)))]),_vm._v(\") \")]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OrbitSolutionInfo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OrbitSolutionInfo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./OrbitSolutionInfo.vue?vue&type=template&id=4b900b6f&scoped=true&\"\nimport script from \"./OrbitSolutionInfo.vue?vue&type=script&lang=js&\"\nexport * from \"./OrbitSolutionInfo.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4b900b6f\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PredictionsSummary.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PredictionsSummary.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PredictionsSummary.vue?vue&type=template&id=eabb96ac&scoped=true&\"\nimport script from \"./PredictionsSummary.vue?vue&type=script&lang=js&\"\nexport * from \"./PredictionsSummary.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"eabb96ac\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',_vm._l((_vm.tags),function(tag){return _c('span',{key:tag.id},[_c('span',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover\",modifiers:{\"hover\":true}}],staticClass:\"badge badge-owc mx-1\",attrs:{\"title\":tag.descr}},[_vm._v(_vm._s(tag.name)),(tag.url)?_c('span',[_vm._v(\" [\"),_c('a',{staticClass:\"alt\",attrs:{\"href\":tag.url,\"target\":\"_blank\"}},[_vm._v(\"web page\")]),_vm._v(\"]\")]):_vm._e()]),(tag.taggedBy)?_c('span',{staticClass:\"text-muted\"},[_c('small',[_vm._v(\"(Tagged by \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(tag.taggedBy))]),_vm._v(\")\")])]):_vm._e()])}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TagList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TagList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TagList.vue?vue&type=template&id=35beb855&\"\nimport script from \"./TagList.vue?vue&type=script&lang=js&\"\nexport * from \"./TagList.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[(_vm.tag)?_c('span',{staticClass:\"border border-info pull-right tag align-middle pb-1\"},[_c('small',{staticClass:\"px-2\"},[_vm._v(\" \"+_vm._s(_vm.tag.agreement))])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TagAgreements.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TagAgreements.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TagAgreements.vue?vue&type=template&id=75720a3f&scoped=true&\"\nimport script from \"./TagAgreements.vue?vue&type=script&lang=js&\"\nexport * from \"./TagAgreements.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TagAgreements.vue?vue&type=style&index=0&id=75720a3f&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"75720a3f\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.foundEvent)?_c('div',[_c('button',{staticClass:\"btn btn-primary mb-2\",on:{\"click\":_vm.onTagClicked}},[_vm._v(\"Tag Event\")]),_c('b-modal',{ref:\"loginPromptModal\",attrs:{\"title\":\"Login Required\",\"centered\":\"\",\"size\":\"md\"},on:{\"ok\":_vm.onRedirectToLogin}},[_c('div',{staticClass:\"d-block my-2\"},[_c('span',{staticClass:\"ml-4\"}),_vm._v(\"In order to tag an event with a community tag you are required to log in first. Once logged in press the 'Tag Event' button again. \")])]),_c('b-modal',{ref:\"tagEventModal\",attrs:{\"title\":\"Tag Event\",\"scrollable\":\"\",\"centered\":\"\",\"size\":\"lg\",\"ok-disabled\":this.selectedTag === -1},on:{\"shown\":_vm.onTagsModalShown,\"ok\":_vm.comunityTagEvent}},[(_vm.showLoader || _vm.showSubmitLoader)?_c('b-spinner',{staticClass:\"justify-content-center my-3\",staticStyle:{\"width\":\"3rem\",\"height\":\"3rem\"},attrs:{\"varient\":\"secondary\"}}):_vm._e(),(!_vm.showLoader)?_c('div',{class:{ 'grayout': _vm.showSubmitLoader }},[_c('div',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-lg-12\"},[_c('div',[_vm._v(\"Please select the tag you want to apply to this event:\")]),_c('span',{staticClass:\"text-muted\"},[_c('small',[_vm._v(\"(If you want to tag an event against a new tag not listed below, please contact \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(\"OWCloud@groups.io\")]),_vm._v(\")\")])]),_c('hr',{staticStyle:{\"height\":\"1px\",\"width\":\"100%\",\"border-width\":\"0\",\"color\":\"rgb(65, 65, 65)\",\"background-color\":\"rgb(65, 65, 65)\"}})]),_vm._l((_vm.loadedTags),function(tag){return _c('div',{key:tag.id,staticClass:\"col-12\"},[_c('b-radio',{attrs:{\"value\":tag.id},model:{value:(_vm.selectedTag),callback:function ($$v) {_vm.selectedTag=$$v},expression:\"selectedTag\"}},[_c('span',{staticClass:\"badge badge-owc mx-2\"},[_vm._v(_vm._s(tag.name))]),_c('span',[_vm._v(_vm._s(tag.descr))])])],1)})],2)])]):_vm._e()],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommunityTagEvent.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommunityTagEvent.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CommunityTagEvent.vue?vue&type=template&id=33666848&scoped=true&\"\nimport script from \"./CommunityTagEvent.vue?vue&type=script&lang=js&\"\nexport * from \"./CommunityTagEvent.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"33666848\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[(_vm.isAster)?_c('a',{attrs:{\"href\":(\"https://ssd.jpl.nasa.gov/sbdb.cgi?sstr=\" + _vm.ssdSearchId),\"title\":\"Open in JPL Small Body Database\",\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.name))]):_vm._e(),(!_vm.isAster)?_c('span',[_vm._v(_vm._s(_vm.name))]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ObjectLink.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ObjectLink.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ObjectLink.vue?vue&type=template&id=6f20f544&\"\nimport script from \"./ObjectLink.vue?vue&type=script&lang=js&\"\nexport * from \"./ObjectLink.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[(_vm.gaiaStar && _vm.gaiaStar.ra16 && _vm.gaiaStar.de16)?_c('a',{attrs:{\"href\":(\"https://vizier.u-strasbg.fr/viz-bin/VizieR-5?-ref=VIZOWC&-out.add=.&-source=I/350/gaiaedr3&-c=\" + (_vm.gaiaStar.ra16) + \" \" + (_vm.gaiaStar.de16) + \",eq=ICRS,rs=2&-out.orig=o\"),\"title\":\"Open Gaia Source in VizierR\",\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.starName)),(!_vm.starName)?_c('span',[_vm._v(_vm._s(_vm.gaiaStar.id))]):_vm._e()]):_vm._e(),(!_vm.gaiaStar && !(_vm.starName.startsWith('G')))?_c('a',{attrs:{\"href\":(\"http://vizier.u-strasbg.fr/viz-bin/VizieR-S?\" + _vm.starName),\"title\":\"Open in VizierR\",\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.starName))]):_vm._e(),(!_vm.gaiaStar && _vm.starName.startsWith('G'))?_c('span',[_vm._v(_vm._s(_vm.starName))]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StarLink.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StarLink.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./StarLink.vue?vue&type=template&id=1cf6c139&\"\nimport script from \"./StarLink.vue?vue&type=script&lang=js&\"\nexport * from \"./StarLink.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"ow\"},[(_vm.plt)?_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":((-1 * (_vm.panelWidth / 2)) + \" 0 \" + _vm.panelWidth + \" \" + _vm.panelHeight)}},[_c('rect',{class:_vm.themeBackground,attrs:{\"x\":-1 * (_vm.panelWidth / 2),\"width\":_vm.panelWidth,\"height\":_vm.panelHeight}}),_c('rect',{staticClass:\"shadow\",attrs:{\"x\":-1 * _vm.plt.hshw,\"width\":2 * _vm.plt.hshw,\"height\":\"70\"}}),_c('rect',{staticClass:\"sigma\",attrs:{\"x\":-1 * (_vm.plt.hsgw + _vm.plt.hshw),\"width\":_vm.plt.hsgw,\"height\":\"70\"}}),_c('rect',{staticClass:\"sigma\",attrs:{\"x\":_vm.plt.hshw,\"width\":_vm.plt.hsgw,\"height\":\"70\"}}),_c('line',{staticClass:\"center\",attrs:{\"x1\":\"0\",\"y1\":\"0\",\"x2\":\"0\",\"y2\":\"70\"}}),_c('line',{staticClass:\"sigma\",attrs:{\"x1\":-1 * (_vm.plt.hshw + 2 * _vm.plt.hsgw),\"y1\":\"0\",\"x2\":-1 * (_vm.plt.hshw + 2 * _vm.plt.hsgw),\"y2\":\"70\"}}),_c('line',{staticClass:\"sigma\",attrs:{\"x1\":_vm.plt.hshw + 2 * _vm.plt.hsgw,\"y1\":\"0\",\"x2\":_vm.plt.hshw + 2 * _vm.plt.hsgw,\"y2\":\"70\"}}),_c('line',{staticClass:\"sigma\",attrs:{\"x1\":-1 * (_vm.plt.hshw + 3 * _vm.plt.hsgw),\"y1\":\"0\",\"x2\":-1 * (_vm.plt.hshw + 3 * _vm.plt.hsgw),\"y2\":\"70\"}}),_c('line',{staticClass:\"sigma\",attrs:{\"x1\":_vm.plt.hshw + 3 * _vm.plt.hsgw,\"y1\":\"0\",\"x2\":_vm.plt.hshw + 3 * _vm.plt.hsgw,\"y2\":\"70\"}}),_vm._l((_vm.stations),function(station){return [_c('rect',{key:station.secr,class:station.cls,staticStyle:{\"stroke-width\":\"1\",\"stroke\":\"rgb(0,0,0)\"},attrs:{\"x\":station.cord,\"y\":\"0\",\"width\":\"5\",\"height\":_vm.siteHeight - 1}},[_c('title',[_vm._v(_vm._s(station.descr))])])]}),(_vm.bid && _vm.announcementMode)?_c('rect',{staticStyle:{\"fill\":\"rgb(0,0,0)\",\"stroke-width\":\"1\",\"stroke\":\"rgb(255,255,0)\"},attrs:{\"x\":_vm.bid.cord,\"y\":\"0\",\"width\":\"4\",\"height\":\"30\"}},[_c('title',[_vm._v(_vm._s(_vm.bid.descr))])]):_vm._e(),_c('line',{staticClass:\"gray\",attrs:{\"x1\":\"-500\",\"y1\":_vm.siteHeight,\"x2\":\"500\",\"y2\":_vm.siteHeight}}),(!_vm.announcementMode)?[_c('line',{staticClass:\"gray\",attrs:{\"x1\":\"-500\",\"y1\":\"71\",\"x2\":\"500\",\"y2\":\"71\"}}),_c('line',{staticClass:\"gray\",attrs:{\"x1\":\"0\",\"y1\":\"70\",\"x2\":\"0\",\"y2\":\"78\"}}),_vm._l((_vm.kmTicks),function(kmTick){return [_c('line',{key:kmTick,staticClass:\"gray\",attrs:{\"x1\":kmTick,\"y1\":\"70\",\"x2\":kmTick,\"y2\":\"76\"}})]}),_c('line',{staticClass:\"center\",attrs:{\"x1\":\"-490\",\"y1\":\"107\",\"x2\":\"-490\",\"y2\":\"133\"}}),_c('text',{attrs:{\"x\":\"-478\",\"y\":\"127\",\"fill\":\"gray\",\"font-size\":\"x-large\"}},[_vm._v(\"center\")]),_c('rect',{staticStyle:{\"fill\":\"rgb(0,0,0)\"},attrs:{\"x\":\"-389\",\"y\":\"109\",\"width\":\"22\",\"height\":\"22\"}}),_c('rect',{staticClass:\"shadow\",attrs:{\"x\":\"-388\",\"y\":\"110\",\"width\":\"20\",\"height\":\"20\"}}),_c('text',{attrs:{\"x\":\"-358\",\"y\":\"127\",\"fill\":\"gray\",\"font-size\":\"x-large\"}},[_vm._v(\"shadow\")]),_c('rect',{staticStyle:{\"fill\":\"rgb(0,0,0)\"},attrs:{\"x\":\"-261\",\"y\":\"109\",\"width\":\"22\",\"height\":\"22\"}}),_c('rect',{staticClass:\"sigma\",attrs:{\"x\":\"-260\",\"y\":\"110\",\"width\":\"20\",\"height\":\"20\"}}),_c('text',{attrs:{\"x\":\"-230\",\"y\":\"127\",\"fill\":\"gray\",\"font-size\":\"x-large\"}},[_vm._v(\"1-sigma\")]),_c('line',{staticClass:\"sigma\",attrs:{\"x1\":\"-120\",\"y1\":\"107\",\"x2\":\"-120\",\"y2\":\"133\"}}),_c('text',{attrs:{\"x\":\"-105\",\"y\":\"127\",\"fill\":\"gray\",\"font-size\":\"x-large\"}},[_vm._v(\"2 & 3-sigma\")]),_c('pattern',{attrs:{\"id\":\"diagonalHatch\",\"patternUnits\":\"userSpaceOnUse\",\"width\":\"4\",\"height\":\"4\"}},[_c('path',{staticStyle:{\"stroke\":\"rgb(180,180,180)\",\"stroke-width\":\"2\"},attrs:{\"d\":\"M-1,1 l2,-2\\n M0,4 l4,-4\\n M3,5 l2,-2\"}})]),(_vm.plotScale)?[_c('rect',{attrs:{\"x\":_vm.panelWidth/2 - _vm.plotScale.width - 100,\"y\":\"118\",\"width\":_vm.plotScale.width,\"height\":\"8\",\"fill\":\"url(#diagonalHatch)\"}}),_c('text',{attrs:{\"x\":_vm.panelWidth/2 - 80,\"y\":\"127\",\"fill\":\"gray\",\"font-size\":\"large\"}},[_vm._v(_vm._s(_vm.plotScale.km)+\" km\")])]:_vm._e()]:_vm._e()],2):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OccultWatcherPlot.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OccultWatcherPlot.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./OccultWatcherPlot.vue?vue&type=template&id=35e57b4a&scoped=true&\"\nimport script from \"./OccultWatcherPlot.vue?vue&type=script&lang=js&\"\nexport * from \"./OccultWatcherPlot.vue?vue&type=script&lang=js&\"\nimport style0 from \"./OccultWatcherPlot.vue?vue&type=style&index=0&id=35e57b4a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"35e57b4a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.stations)?_c('div',[_c('div',{staticClass:\"pl-1 py-3\"},[_vm._v(\" Stations (\"+_vm._s(this.stations.length)+\") \")]),_c('div',[_c('table',{staticClass:\"table table-dark table-bordered\",attrs:{\"id\":\"tblStations\"}},[_c('thead',{staticClass:\"thead-dark text-center\"},[_c('tr',[_c('td',[_vm._v(\"Chord\")]),_c('td',[_vm._v(\"Observer\")]),(!_vm.hasReportData)?_c('td',[_vm._v(\"Commitment\")]):_vm._e(),(_vm.hasCloudData || _vm.hasReportData)?_c('td',[_vm._v(\"Note\")]):_vm._e()])]),_c('tbody',_vm._l((_vm.stations),function(st){return _c('tr',{key:st.id},[_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm._f(\"formatFixed1\")(st.dist))+\" km\")]),_c('td',[_vm._v(_vm._s(st.obs))]),(_vm.hasReportData)?_c('td',[_c('canvas',{staticClass:\"mr-2\",class:st.cls,attrs:{\"width\":\"10\",\"height\":\"10\"}}),_vm._v(_vm._s((st.repText ? st.repText : \"No report\")))]):_vm._e(),(!_vm.hasReportData)?_c('td',[_vm._v(_vm._s(st.cmtmt))]):_vm._e(),(!_vm.hasReportData && _vm.hasCloudData)?_c('td',[_c('pre',[_vm._v(_vm._s(_vm._f(\"formatTrim\")(st.weaText)))])]):_vm._e()])}),0)])])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StationSort.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StationSort.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./StationSort.vue?vue&type=template&id=7067d663&scoped=true&\"\nimport script from \"./StationSort.vue?vue&type=script&lang=js&\"\nexport * from \"./StationSort.vue?vue&type=script&lang=js&\"\nimport style0 from \"./StationSort.vue?vue&type=style&index=0&id=7067d663&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7067d663\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.closestStarBrightEnoughtToMention || _vm.magDropAffectedByMoreThanHalfMag)?_c('div',[(_vm.nearby.nbMags.length == 1)?_c('span',{staticClass:\"text-muted\"},[(this.nearby.magAffected)?_c('i',{staticClass:\"fa fa-warning pr-2\",class:_vm.magDropAffectedByMoreThanHalfMag ? 'warn-strong' : 'warn-soft',attrs:{\"title\":_vm.magDropAffectedHint}}):_vm._e(),_c('small',[_c('strong',{class:this.nearby.magAffected ? 'text-light' : ''},[_vm._v(\"Nearby star (\"+_vm._s(_vm._f(\"formatFixed1\")(_vm.nearby.nbMags[0]))),_c('sup',[_vm._v(\"m\")]),_vm._v(\") at \"+_vm._s(_vm._f(\"formatFixed1\")(_vm.nearby.nbDist))+\"\\\"\")])])]):_vm._e(),(_vm.nearby.nbMags.length > 1 && !_vm.magsTruncated)?_c('span',{staticClass:\"text-muted\"},[(this.nearby.magAffected)?_c('i',{staticClass:\"fa fa-warning pr-2\",class:_vm.magDropAffectedByMoreThanHalfMag ? 'warn-strong' : 'warn-soft',attrs:{\"title\":_vm.magDropAffectedHint}}):_vm._e(),_c('small',[_c('strong',{class:this.nearby.magAffected ? 'text-light' : ''},[_vm._v(_vm._s(_vm.nearby.nbMags.length)+\" nearby stars (\"),_vm._l((_vm.displayMags),function(nbMg,index){return [_c('span',{key:index},[_vm._v(_vm._s(_vm._f(\"formatFixed1\")(nbMg))),_c('sup',[_vm._v(\"m\")]),(index != _vm.displayMags.length -1)?_c('span',[_vm._v(\", \")]):_vm._e()])]}),_vm._v(\") at \"+_vm._s(_vm._f(\"formatFixed1\")(_vm.nearby.nbDist))+\"\\\"+\")],2)])]):_vm._e(),(_vm.nearby.nbMags.length > 1 && _vm.magsTruncated)?_c('span',{staticClass:\"text-muted\"},[(this.nearby.magAffected)?_c('i',{staticClass:\"fa fa-warning pr-2\",class:_vm.magDropAffectedByMoreThanHalfMag ? 'warn-strong' : 'warn-soft',attrs:{\"title\":_vm.magDropAffectedHint}}):_vm._e(),_c('small',[_c('strong',{class:this.nearby.magAffected ? 'text-light' : ''},[_vm._v(\"Nearby stars (\"),_vm._l((_vm.displayMags),function(nbMg,index){return [_c('span',{key:index},[_vm._v(_vm._s(_vm._f(\"formatFixed1\")(nbMg))),_c('sup',[_vm._v(\"m\")]),(index != _vm.displayMags.length -1)?_c('span',[_vm._v(\", \")]):_vm._e()])]}),(_vm.magsTruncated)?_c('span',[_vm._v(\" +\")]):_vm._e(),_vm._v(\") at \"+_vm._s(_vm._f(\"formatFixed1\")(_vm.displayDistance))+\"\\\"+\")],2)])]):_vm._e()]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NearbyStarSummary.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NearbyStarSummary.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./NearbyStarSummary.vue?vue&type=template&id=12bc6fcb&\"\nimport script from \"./NearbyStarSummary.vue?vue&type=script&lang=js&\"\nexport * from \"./NearbyStarSummary.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Event.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Event.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Event.vue?vue&type=template&id=8808df3a&scoped=true&\"\nimport script from \"./Event.vue?vue&type=script&lang=js&\"\nexport * from \"./Event.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Event.vue?vue&type=style&index=0&id=8808df3a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8808df3a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('nav',{staticClass:\"nav navbar-expand-sm\",attrs:{\"id\":\"top-nav\"}},[_c('router-link',{staticClass:\"navbar-brand mx-4 pb-1\",attrs:{\"to\":\"/\"}},[_vm._v(\"OW Cloud\")]),_c('div',{staticClass:\"collapse navbar-collapse pb-1 mx-3\",attrs:{\"id\":\"mynav\"}},[(!_vm.showLoader && _vm.foundPrediction && !_vm.errored)?_c('div',{staticClass:\"pt-2 yellow-highlight mr-auto\",staticStyle:{\"margin-left\":\"35px\"}},[_vm._v(\" \"+_vm._s(_vm.objectDisplayName)+\" occults \"+_vm._s(_vm.foundPrediction.star.name)+\" on \"+_vm._s(_vm._f(\"formatDate\")(_vm.foundPrediction.evt.midTime)))]):_vm._e(),_c('ThemeSelector'),_c('LoggedInUserActions',{ref:\"logginComponent\",attrs:{\"viewPortVisible\":false,\"delayedShow\":true,\"redirectToCurrent\":true}})],1)],1),(!_vm.showLoader && _vm.foundPrediction && !_vm.errored)?_c('div',{staticClass:\"container-float mx-4\"},[_c('div',{staticClass:\"row py-2 justify-content-center\"},[_c('div',{staticClass:\"col-lg-8 pt-2\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"pt-2\"},[(_vm.eventHasPassed)?_c('span',{staticClass:\"small px-2 panel-light\",staticStyle:{\"color\":\"orange\",\"border\":\"1px solid #676767\"}},[_vm._v(\"This event has passed\")]):_vm._e(),(_vm.currentUser && !_vm.eventHasPassed && _vm.isTagged === false)?_c('span',{staticClass:\"small px-2 panel-light\",staticStyle:{\"color\":\"orange\",\"border\":\"1px solid #676767\"}},[_vm._v(\"Submitting a station will tag the event as 'OwPersonal'\")]):_vm._e(),(!_vm.currentUser && !_vm.eventHasPassed && _vm.isTagged)?_c('span',{staticClass:\"small px-2 panel-light\",staticStyle:{\"color\":\"orange\",\"border\":\"1px solid #676767\"}},[_vm._v(\"Login to submit a station\")]):_vm._e(),(_vm.currentUser && _vm.isTagged && _vm.isCustomPreferredPrediction)?_c('span',{staticClass:\"small px-2 panel-light\",staticStyle:{\"color\":\"orange\",\"border\":\"1px solid #676767\"}},[_vm._v(\"Custom preferred prediction\")]):_vm._e(),(_vm.currentUser && _vm.isTagged && _vm.canBeMadePreferredPrediction)?_c('a',{staticClass:\"small px-2 panel-light\",staticStyle:{\"border\":\"1px solid #676767\",\"cursor\":\"pointer\"},attrs:{\"title\":\"Set as preferred prediction\"},on:{\"click\":_vm.setAsPreferredPrediction}},[_vm._v(\"Set as preferred prediction\")]):_vm._e(),(_vm.showSubmitLoader)?_c('b-spinner',{staticClass:\"justify-content-center mt-1 ml-2\",staticStyle:{\"width\":\"1rem\",\"height\":\"1rem\"},attrs:{\"varient\":\"secondary\"}}):_vm._e(),(_vm.foundPrediction.preds && _vm.foundPrediction.preds.length > 1)?_c('ChangePredictionDropdown',{staticClass:\"pull-right\",attrs:{\"eventId\":this.eventId,\"preds\":_vm.foundPrediction.preds}}):_vm._e()],1),_c('EventGoogleMap',{attrs:{\"location\":{ lng: _vm.foundPrediction.earth.subStLng, lat: _vm.foundPrediction.earth.subStLat },\"fPlane\":_vm.foundPrediction.fPlane,\"occel\":_vm.foundPrediction.data,\"midTime\":_vm.foundPrediction.evt.midTime,\"toTime\":_vm.foundPrediction.evt.to,\"stations\":_vm.foundPrediction.stations,\"eventId\":this.eventId,\"tags\":_vm.foundPrediction.tags,\"currentUser\":_vm.currentUser,\"defaultStationLocation\":this.defaultStationLocation,\"star\":_vm.foundPrediction.star}}),_c('div',{staticClass:\"pt-2\"},[(_vm.foundPrediction.tags && _vm.foundPrediction.tags.length > 0)?_c('small',[_vm._v(\"Tagged as: \")]):_vm._e(),_c('TagList',{attrs:{\"tags\":_vm.foundPrediction.tags}}),_c('TagAgreements',{attrs:{\"tags\":_vm.foundPrediction.tags}})],1)],1)])]),_c('div',{staticClass:\"col-lg-4\"},[_c('div',{staticClass:\"row pt-1\"},[_c('div',{staticClass:\"col-lg-12\"},[_vm._v(\" Prediction \")]),_c('div',{staticClass:\"col-lg-12\"},[_c('div',{staticClass:\"row pl-4\"},[_c('div',{staticClass:\"col-lg-6\"},[_c('small',[_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Last Updated:\")]),_vm._v(\" \"+_vm._s(_vm._f(\"formatDateHourMinute\")(_vm.foundPrediction.updated))+\" UT\"),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Data Sources:\")]),_vm._v(\" \"+_vm._s(_vm._f(\"formatPredictionSource\")(_vm.foundPrediction.src))+\" \"),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Error (path widths):\")]),_vm._v(\" \"+_vm._s(_vm._f(\"formatFixed3\")(_vm.foundPrediction.err.pw - 1))+\" \"),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Err. Ellipse:\")]),_vm._v(\" \"),_c('a',{attrs:{\"href\":\"#errelps\"}},[_vm._v(_vm._s(_vm.foundPrediction.err.elps_maj)+\"\\\" x \"+_vm._s(_vm.foundPrediction.err.elps_min)+\"\\\"\")]),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Err. Basis:\")]),_vm._v(\" \"+_vm._s(_vm.foundPrediction.err.basis)),_c('br')])]),_c('div',{staticClass:\"col-lg-6\"},[_c('small',[_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Computed By:\")]),_vm._v(\" \"+_vm._s(_vm.foundPrediction.user)),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Orbit Date:\")]),_vm._v(\" \"+_vm._s(_vm._f(\"formatDate\")(_vm.foundPrediction.orbDate))+\" \"),(_vm.foundPrediction.orbSlnId && _vm.foundPrediction.orbSlnId.startsWith('JPL'))?_c('span',{staticClass:\"text-muted\"},[_vm._v(\" (\"),_c('strong',{staticClass:\"text-light\",attrs:{\"title\":_vm.foundPrediction.orbSlnId}},[_vm._v(_vm._s(_vm._f(\"formatJPLNo\")(_vm.foundPrediction.orbSlnId)))]),_vm._v(\") \")]):_vm._e(),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Error in time:\")]),_vm._v(\" \"+_vm._s(_vm._f(\"formatMinSecDuration\")(_vm.foundPrediction.err.time / 60.0))+\" \"),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Err. Ellipse PA:\")]),_vm._v(\" \"+_vm._s(_vm.foundPrediction.err.elps_pa)+\"°\"),_c('br'),(_vm.foundPrediction.id)?_c('span',[_c('span',{staticClass:\"text-muted\"},[_vm._v(\"OWC Id:\")]),_vm._v(\" \"+_vm._s(_vm.foundPrediction.id)),_c('br')]):_vm._e()])])])])]),_c('div',{staticClass:\"row py-2\"},[_c('div',{staticClass:\"col-lg-12\"},[_vm._v(\" Event \")]),_c('div',{staticClass:\"col-lg-12\"},[_c('div',{staticClass:\"row pl-4\"},[_c('div',{staticClass:\"col-lg-6\"},[_c('small',[_c('span',{staticClass:\"text-muted\"},[_vm._v(\"From:\")]),_vm._v(\" \"+_vm._s(_vm._f(\"formatHourMinuteSec\")(_vm.foundPrediction.evt.from))+\" UT\"),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Combined Mag:\")]),_vm._v(\" \"+_vm._s(_vm._f(\"formatMag\")(_vm.foundPrediction.combMag))),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Mag Drop (V):\")]),_vm._v(\" \"+_vm._s(_vm._f(\"formatMag\")(_vm.foundPrediction.dropV))),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Shadow Width:\")]),_vm._v(\" \"+_vm._s(_vm._f(\"formatFixed1\")(_vm.foundPrediction.obj.dia / _vm.foundPrediction.evt.vsf))+\" km\"),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Solar Elong.:\")]),_vm._v(\" \"+_vm._s(_vm._f(\"formatFixed0\")(_vm.foundPrediction.solarElng))+\"°\"),_c('br')])]),_c('div',{staticClass:\"col-lg-6\"},[_c('small',[_c('span',{staticClass:\"text-muted\"},[_vm._v(\"To:\")]),_vm._v(\" \"+_vm._s(_vm._f(\"formatHourMinuteSec\")(_vm.foundPrediction.evt.to))+\" UT\"),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Max Duration:\")]),_vm._v(\" \"+_vm._s(_vm._f(\"formatMinSecDuration\")(_vm.foundPrediction.maxDur / 60.0))),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Mag Drop (R):\")]),_vm._v(\" \"+_vm._s(_vm._f(\"formatMag\")(_vm.foundPrediction.dropR))),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Moon Phase:\")]),_vm._v(\" \"+_vm._s(_vm._f(\"formatFixed0\")(_vm.foundPrediction.moonPhase))+\"% sunlit\"),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Moon Elong.:\")]),_vm._v(\" \"+_vm._s(_vm._f(\"formatFixed0\")(_vm.foundPrediction.moonElng))+\"°\"),_c('br')])])])])]),_c('div',{staticClass:\"row py-2\"},[_c('div',{staticClass:\"col-lg-12\"},[_vm._v(\" Target Star \")]),_c('div',{staticClass:\"col-lg-12\"},[_c('div',{staticClass:\"row pl-4\"},[_c('div',{staticClass:\"col-lg-6\"},[_c('small',[_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Name:\")]),_vm._v(\" \"),_c('StarLink',{attrs:{\"starName\":_vm.foundPrediction.star.name}}),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Constellation:\")]),_vm._v(\" \"+_vm._s(_vm.foundPrediction.star.constl)),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Diameter:\")]),_vm._v(\" \"),(_vm.foundPrediction.star.dia_mas)?_c('span',[_vm._v(_vm._s(_vm._f(\"formatFixed2\")(_vm.foundPrediction.star.dia_mas))+\" mas\")]):_vm._e(),(!_vm.foundPrediction.star.dia_mas)?_c('span'):_vm._e(),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"RUWE:\")]),_vm._v(\" \"),_c('a',{attrs:{\"href\":\"https://gea.esac.esa.int/archive/documentation/GDR2/Gaia_archive/chap_datamodel/sec_dm_main_tables/ssec_dm_ruwe.html\",\"title\":\"See definition of RUWE\",\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm._f(\"formatFixed2\")(_vm.foundPrediction.star.ruwe)))]),_c('br'),(_vm.foundPrediction.star.srcid)?_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Gaia SourceId:\")]):_vm._e(),_vm._v(\" \"),_c('StarLink',{attrs:{\"gaiaStar\":_vm.foundPrediction.gaia}}),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"RA [ICRS]:\")]),_vm._v(\" \"),_c('RaValue',{attrs:{\"val\":_vm.foundPrediction.star.ra_2000}}),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Dec [ICRS]:\")]),_vm._v(\" \"),_c('DecValue',{attrs:{\"val\":_vm.foundPrediction.star.de_2000}}),_c('br')],1)]),_c('div',{staticClass:\"col-lg-6\"},[_c('small',[_c('span',{staticClass:\"text-muted\"},[_vm._v(\"V mag:\")]),_vm._v(\" \"+_vm._s(_vm._f(\"formatFixed2\")(_vm.foundPrediction.star.mV))),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"R mag:\")]),_vm._v(\" \"+_vm._s(_vm._f(\"formatFixed2\")(_vm.foundPrediction.star.mR))),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"B mag:\")]),_vm._v(\" \"+_vm._s(_vm._f(\"formatFixed2\")(_vm.foundPrediction.star.mB))),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Flags:\")]),_vm._v(\" \"+_vm._s(_vm.foundPrediction.star.dbl_info)+\" \"),(_vm.foundPrediction.star.dbl_info)?_c('i',{staticClass:\"fa fa-warning warn-soft\"}):_vm._e(),_c('br'),(_vm.foundPrediction.star.srcid)?_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Gaia Flags:\")]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.foundPrediction.star.gflags)),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"RA [aprnt]:\")]),_vm._v(\" \"),(_vm.foundPrediction.star.apparent)?_c('RaValue',{attrs:{\"val\":_vm.foundPrediction.star.ra}}):_vm._e(),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Dec [aprnt]:\")]),_vm._v(\" \"),(_vm.foundPrediction.star.apparent)?_c('DecValue',{attrs:{\"val\":_vm.foundPrediction.star.de}}):_vm._e(),_c('br')],1)])])])]),_c('div',{staticClass:\"row py-2\"},[_c('div',{staticClass:\"col-lg-12\"},[_vm._v(\" Object \")]),_c('div',{staticClass:\"col-lg-12\"},[_c('div',{staticClass:\"row pl-4\"},[_c('div',{staticClass:\"col-lg-6\"},[_c('small',[_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Name:\")]),_vm._v(\" \"),_c('ObjectLink',{attrs:{\"isAster\":_vm.foundPrediction.obj.isAster,\"number\":_vm.foundPrediction.obj.num,\"name\":_vm.objectDisplayName}}),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Diameter:\")]),_vm._v(\" \"+_vm._s(_vm.foundPrediction.obj.dia)+\" \"),(_vm.foundPrediction.obj.diaErr > 0)?_c('span',[_vm._v(\"± \"+_vm._s(_vm.foundPrediction.obj.diaErr))]):_vm._e(),_vm._v(\" km\"),(_vm.foundPrediction.obj.diasrc)?_c('span',{staticClass:\"text-light pl-1\",attrs:{\"id\":\"objDiaSrc\"}},[_vm._v(\"(\"+_vm._s(_vm.foundPrediction.obj.diasrc)+\")\")]):_vm._e(),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Distance:\")]),_vm._v(\" \"+_vm._s(_vm.foundPrediction.obj.dist)+\" au\"),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Motion RA:\")]),_vm._v(\" \"+_vm._s(_vm._f(\"formatFixed2\")(_vm.foundPrediction.obj.dRaHr * 15 * Math.cos(_vm.foundPrediction.star.de_2000 * Math.PI / 180)))+\" \\\"/hr\"),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Moons:\")]),_vm._v(\" \"+_vm._s(_vm.foundPrediction.obj.moons)),_c('br')],1),(_vm.isOwcAdmin && _vm.foundPrediction.obj.dianfo)?_c('b-tooltip',{attrs:{\"target\":\"objDiaSrc\",\"triggers\":\"hover\",\"placement\":\"right\",\"variant\":\"prinary\"}},[_c('table',[_c('thead',[_c('tr',[_c('td',[_c('small',[_vm._v(\"Diameter\")])]),_c('td',[_c('small',[_vm._v(\"Source\")])])]),_c('tr',[_c('td',{attrs:{\"colspan\":\"2\"}},[_c('div',{staticClass:\"text-muted mb-2\",staticStyle:{\"text-align\":\"left\",\"border-top\":\"1px solid #95999c!important\"}})])])]),_c('tbody',_vm._l((_vm.foundPrediction.obj.dianfo.split('\\r\\n')),function(diaRow){return _c('tr',{key:diaRow,staticStyle:{\"text-align\":\"left\"}},[_c('td',{staticClass:\"pr-3\",class:diaRow.split('-')[1].includes(_vm.foundPrediction.obj.diasrc) ? 'text-highlight' : 'text-muted'},[_c('small',[_vm._v(_vm._s(diaRow.split('-')[0].trim())+\" km\")])]),_c('td',{class:diaRow.split('-')[1].includes(_vm.foundPrediction.obj.diasrc) ? 'text-highlight' : 'text-muted'},[_c('small',[_vm._v(_vm._s(diaRow.split('-')[1].trim()))])])])}),0)]),_c('div',{staticClass:\"text-muted mt-2\",staticStyle:{\"text-align\":\"left\",\"border-top\":\"1px solid #95999c!important\"}},[_c('small',[_vm._v(\"* at the time of generation\")])])]):_vm._e()],1),_c('div',{staticClass:\"col-lg-6\"},[_c('small',[_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Class:\")]),_vm._v(\" \"+_vm._s(_vm.foundPrediction.obj.class)),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Diameter (augm):\")]),_vm._v(\" \"+_vm._s(_vm._f(\"formatFixed2\")(_vm.foundPrediction.obj.diaArcSec * 1000))+\" mas\"),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Mag:\")]),_vm._v(\" \"+_vm._s(_vm._f(\"formatFixed1\")(_vm.foundPrediction.obj.mag))+\" \"),(_vm.foundPrediction.obj.isAster)?_c('i',{staticClass:\"fa fa-warning warn-soft\",attrs:{\"title\":\"This magnitude does not factor in rotational variations\"}}):_vm._e(),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Motion Dec:\")]),_vm._v(\" \"+_vm._s(_vm._f(\"formatFixed2\")(_vm.foundPrediction.obj.dDecHr))+\" \\\"/hr\"),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Rings:\")]),_vm._v(\" \"+_vm._s(_vm.foundPrediction.obj.rings)),_c('br')])])])])])])]),_c('div',{staticClass:\"row pb-4 justify-content-center\"},[_c('div',{staticClass:\"col-12\"},[_c('hr',{staticStyle:{\"height\":\"1px\",\"width\":\"100%\",\"border-width\":\"0\",\"color\":\"rgb(0, 0, 65)\",\"background-color\":\"rgb(65, 65, 65)\"}}),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-lg-7 py-2\"},[_c('a',{attrs:{\"name\":\"errelps\"}}),_vm._v(\" Error Ellipses\"),_c('br'),_c('br'),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-lg-3\"},[_c('ErrorEllipses',{attrs:{\"cls\":'occ',\"err\":this.occEllipse,\"title\":\"Combined\"}})],1),(this.foundPrediction.err.starElps)?_c('div',{staticClass:\"col-lg-3\"},[_c('ErrorEllipses',{attrs:{\"cls\":'star',\"err\":this.starEllipse,\"title\":\"Star\"}})],1):_vm._e(),(this.foundPrediction.err.astElps)?_c('div',{staticClass:\"col-lg-3\"},[_c('ErrorEllipses',{attrs:{\"cls\":'ast',\"err\":this.astEllipse,\"title\":\"Asteroid\"}})],1):_vm._e(),_c('div',{staticClass:\"col-lg-3\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12\"},[_c('small',[(this.foundPrediction.err.jplErr)?_c('div',[_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Horizons SMAA (3-σ):\")]),_vm._v(\" \"+_vm._s(this.foundPrediction.err.jplErr.smaa)+\" \\\"\"),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Horizons SMIA (3-σ):\")]),_vm._v(\" \"+_vm._s(this.foundPrediction.err.jplErr.smia)+\" \\\"\"),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Horizons Θ:\")]),_vm._v(\" \"+_vm._s(this.foundPrediction.err.jplErr.theta)+\" °\"),_c('br')]):_vm._e(),(this.foundPrediction.err.star)?_c('div',[_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Star SDev RA:\")]),_vm._v(\" \"+_vm._s(this.foundPrediction.err.star.ra)+\" mas\"),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Star SDev DE:\")]),_vm._v(\" \"+_vm._s(this.foundPrediction.err.star.de)+\" mas\"),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Star SDev pmRA:\")]),_vm._v(\" \"+_vm._s(this.foundPrediction.err.star.pmRa)+\" mas/yr\"),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Star SDev pmDE:\")]),_vm._v(\" \"+_vm._s(this.foundPrediction.err.star.pmDe)+\" mas/yr\"),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Star SDev Parallax:\")]),_vm._v(\" \"+_vm._s(this.foundPrediction.err.star.plx)+\" mas\"),_c('br'),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Star Position Epoch:\")]),_vm._v(\" \"+_vm._s(_vm._f(\"formatFixed3\")(this.foundPrediction.err.star.epoch))),_c('br')]):_vm._e()])])])])])]),_c('div',{staticClass:\"col-lg-5 py-2\"})])])]),_c('div',{staticClass:\"row justify-content-center\"},[_c('div',{staticClass:\"col-lg-12\"},[_c('hr',{staticStyle:{\"height\":\"1px\",\"width\":\"100%\",\"border-width\":\"0\",\"color\":\"rgb(65, 65, 65)\",\"background-color\":\"rgb(65, 65, 65)\"}}),_vm._v(\" Occultation Elements \"),_c('button',{directives:[{name:\"clipboard\",rawName:\"v-clipboard\",value:(function () { return _vm.foundPrediction.occel; }),expression:\"() => foundPrediction.occel\"}],staticClass:\"btn-sm btn-secondary mx-2\",attrs:{\"title\":\"Copy to clipboard\"}},[_c('i',{staticClass:\"fa fa-clipboard\"})]),_c('pre',{staticClass:\"mt-3\"},[_vm._v(\"------ occelmnt file for Occult BEGIN -----------------------------------\\n\"+_vm._s(_vm.foundPrediction.occel)+\"\\n------ occelmnt file for Occult END ----------------------------------- \\n \")])])])]):_vm._e(),_c('div',{staticClass:\"text-center\"},[(_vm.showLoader)?_c('b-spinner',{staticClass:\"justify-content-center mt-3\",staticStyle:{\"width\":\"3rem\",\"height\":\"3rem\"},attrs:{\"varient\":\"secondary\"}}):_vm._e(),(!_vm.foundPrediction && !_vm.showLoader)?_c('h5',{staticClass:\"text-danger mt-3\"},[_vm._v(\"Event prediction not found\")]):_vm._e(),(_vm.errored && !_vm.showLoader)?_c('h5',{staticClass:\"text-danger mt-3\"},[_vm._v(\"Error getting prediction \"+_vm._s(this.predSrc)+\" for event \"+_vm._s(this.eventId))]):_vm._e()],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_vm._v(_vm._s(_vm.hr)),_c('sup',[_vm._v(\"h\")]),_vm._v(\" \"+_vm._s(_vm.min)),_c('sup',[_vm._v(\"m\")]),_vm._v(\" \"+_vm._s(_vm.sec_whole)),_c('sup',[_vm._v(\"s\")]),_vm._v(_vm._s(_vm.sec_frac))])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RaValue.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RaValue.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RaValue.vue?vue&type=template&id=feb7adde&scoped=true&\"\nimport script from \"./RaValue.vue?vue&type=script&lang=js&\"\nexport * from \"./RaValue.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"feb7adde\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_vm._v(_vm._s(_vm.sign)+_vm._s(_vm.deg)+\"° \"+_vm._s(_vm.min)),_c('sup',[_vm._v(\"'\")]),_vm._v(\" \"+_vm._s(_vm.sec_whole)),_c('sup',[_vm._v(\"\\\"\")]),_vm._v(_vm._s(_vm.sec_frac))])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DecValue.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DecValue.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DecValue.vue?vue&type=template&id=02719aaa&scoped=true&\"\nimport script from \"./DecValue.vue?vue&type=script&lang=js&\"\nexport * from \"./DecValue.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"02719aaa\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"col-12 border border-primary\",attrs:{\"id\":\"evGmap\"}}),(this.currentUser)?_c('div',{staticClass:\"pt-1\"},[_c('ObservingSiteEditor',{ref:\"siteEditor\",attrs:{\"stations\":_vm.stations},on:{\"cancelStationEditing\":_vm.cancelStationEditing,\"submitStation\":_vm.submitStation}}),_c('ObservationReportEditor',{ref:\"reportEditor\",attrs:{\"stations\":_vm.stations},on:{\"submitObservationReport\":_vm.submitObservationReport,\"cancelReportObservation\":_vm.cancelReportObservation}})],1):_vm._e(),_c('div',{staticClass:\"pt-1\"},[_c('OccultWatcherPlot',{ref:\"owPlot\",attrs:{\"occel\":_vm.occel,\"owstations\":this.owStations,\"legend\":'off'}})],1),_c('confirm-dialogue',{ref:\"confirmDialogue\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export class FundPlane {\r\n constructor(data)\r\n {\r\n this.asteroidDiameterAugmented = data.asteroidDiameterAugmented;\r\n this.halfWidthAugmentation = data.halfWidthAugmentation; \r\n this.fPlaneDecRad = data.fPlaneDecRad;\r\n this.substellarLong = data.substellarLong;\r\n this.subSolarLat_OfDate = data.subSolarLat_OfDate;\r\n this.subSolarLng_OfDate = data.subSolarLng_OfDate;\r\n this.midTime = data.midTime;\r\n this.XatMin = data.XatMin;\r\n this.dX = data.dX;\r\n this.d2X = data.d2X;\r\n this.d3X = data.d3X;\r\n this.YatMin = data.YatMin;\r\n this.dY = data.dY;\r\n this.d2Y = data.d2Y;\r\n this.d3Y = data.d3Y;\r\n this.tFrom = data.tFrom;\r\n this.tTo = data.tTo;\r\n\r\n let md = Math.sqrt((this.XatMin * this.XatMin) + (this.YatMin * this.YatMin));\r\n if (md < 0.9988)\r\n this.verticalScaleFactor = Math.sqrt(1.0 - (md * md));\r\n else\r\n this.verticalScaleFactor = 0.05;\r\n }\r\n\r\n centrePathByTime(ta, limitId) {\r\n\r\n let dist = 0;\r\n let factor = 1;\r\n if (limitId != 0)\r\n {\r\n dist = Math.sign(limitId) * this.asteroidDiameterAugmented / 2.0;\r\n if (Math.abs(limitId) == 2)\r\n {\r\n factor = this.halfWidthAugmentation;\r\n } \r\n }\r\n\r\n return this.chordPathByTime(ta, dist, factor);\r\n }\r\n\r\n chordPathByTime(ta, distKm, factor) {\r\n let rv = {\r\n valid : false,\r\n latDeg : NaN,\r\n lngDeg : NaN\r\n };\r\n\r\n let num2 = 0;\r\n let num3 = 0;\r\n let sign = Math.sign(distKm);\r\n if (distKm != 0)\r\n {\r\n let num6 = sign * distKm / 6378.137;\r\n let x = this.dX + 2.0 * this.d2X * ta + 3.0 * this.d3X * ta * ta;\r\n let num7 = Math.atan2(this.dY + 2.0 * this.d2Y * ta + 3.0 * this.d3Y * ta * ta, x);\r\n num3 = num6 * Math.cos(num7 - Math.PI / 2.0) * sign;\r\n num2 = num6 * Math.sin(num7 - Math.PI / 2.0) * sign;\r\n if (factor && factor != 1)\r\n {\r\n num3 = factor * num3;\r\n num2 = factor * num2;\r\n }\r\n }\r\n\r\n let num8 = Math.sin(this.fPlaneDecRad);\r\n let num9 = 0.996647 * Math.cos(this.fPlaneDecRad);\r\n let num10 = Math.sqrt(num8 * num8 + num9 * num9);\r\n let num11 = num8 / num10;\r\n let num12 = num9 / num10;\r\n let num13 = -this.substellarLong / (180.0 / Math.PI) + 0.2625161 * ta;\r\n let num14 = this.XatMin + this.dX * ta + this.d2X * ta * ta + this.d3X * ta * ta * ta + num3;\r\n let num15 = (this.YatMin + this.dY * ta + this.d2Y * ta * ta + this.d3Y * ta * ta * ta + num2) / num10;\r\n let d = 1.0 - num14 * num14 - num15 * num15;\r\n\r\n if (d > 0.0)\r\n {\r\n rv.valid = true;\r\n let num16 = Math.sqrt(d);\r\n let y = num14;\r\n let x1 = -num15 * num11 + num16 * num12;\r\n let num17 = num15 * num12 + num16 * num11;\r\n rv.latDeg = 180.0 / Math.PI * Math.atan(num17 / Math.sqrt(y * y + x1 * x1) / 0.996647);\r\n rv.lngDeg = 180.0 / Math.PI * (Math.atan2(y, x1) - num13);\r\n while (rv.latDeg < -180.0) rv.latDeg += 360.0;\r\n while (rv.lngDeg > 180.0) rv.lngDeg -= 360.0; \r\n }\r\n\r\n return rv;\r\n }\r\n\r\n pathByTime(ta) {\r\n let rv = { \r\n validPath: false\r\n };\r\n\r\n for (let limitId = -2; limitId <= 2; ++limitId)\r\n {\r\n let path = this.centrePathByTime(ta, limitId);\r\n if (path.valid)\r\n {\r\n rv.validPath = true;\r\n switch (limitId)\r\n {\r\n case -2:\r\n rv.lngLeftSigma = path.lngDeg;\r\n rv.latLeftSigma = path.latDeg;\r\n continue;\r\n case -1:\r\n rv.lngLeft = path.lngDeg;\r\n rv.latLeft = path.latDeg;\r\n continue;\r\n case 0:\r\n {\r\n rv.lngCentre = path.lngDeg;\r\n rv.latCentre = path.latDeg;\r\n rv.tCentre = this.midTime + ta;\r\n rv.centreLineValid = true;\r\n let num1 = Math.atan(0.996647 * Math.tan(path.latDeg / (180.0 / Math.PI)));\r\n let num2 = Math.cos(num1);\r\n let num3 = 0.996647 * Math.sin(num1);\r\n let num4 = -this.substellarLong / (180.0 / Math.PI) + 0.2625161 * ta + path.lngDeg / (180.0 / Math.PI);\r\n let num5 = 180.0 / Math.PI * Math.atan2(-Math.cos(this.fPlaneDecRad) * Math.sin(num4), num2 * Math.sin(this.fPlaneDecRad) - num3 * Math.cos(num4) * Math.cos(this.fPlaneDecRad));\r\n if (num5 < 0.0) num5 += 360.0;\r\n rv.starAz = num5;\r\n rv.starAlt = 180.0 / Math.PI * Math.asin(num3 * Math.sin(this.fPlaneDecRad) + num2 * Math.cos(num4) * Math.cos(this.fPlaneDecRad));\r\n rv.sunAlt = 180.0 / Math.PI * Math.asin(num3 * Math.sin(this.subSolarLat_OfDate / (180.0 / Math.PI)) + num2 * Math.cos(num4 + (this.substellarLong - this.subSolarLng_OfDate) / (180.0 / Math.PI)) * Math.cos(this.subSolarLat_OfDate / (180.0 / Math.PI)));\r\n }\r\n continue;\r\n case 1:\r\n rv.lngRight = path.lngDeg;\r\n rv.latRight = path.latDeg;\r\n continue;\r\n case 2:\r\n rv.lngRightSigma = path.lngDeg;\r\n rv.latRightSigma = path.latDeg;\r\n continue;\r\n default:\r\n continue;\r\n }\r\n }\r\n }\r\n\r\n return rv;\r\n }\r\n \r\n getTforMinimumDistance(lngDeg, latDeg, altMsl) {\r\n const RADIAN = 180 / Math.PI;\r\n const EARTH_RADIUS = 6378.137;\r\n\r\n let geoidAltitude = 0;\r\n\r\n var geoidHeight = this.getGeoidHeight(lngDeg, latDeg);\r\n\r\n if (altMsl != null) geoidAltitude = altMsl + geoidHeight;\r\n\r\n let num2 = 1.0 / Math.sqrt(Math.cos(latDeg / RADIAN) * Math.cos(latDeg / RADIAN) + 0.993305620009859 * Math.sin(latDeg / RADIAN) * Math.sin(latDeg / RADIAN));\r\n let tP = 0.993305620009859 * num2;\r\n let pCos = Math.cos(latDeg / RADIAN) * (num2 + geoidAltitude / 6378137.0);\r\n let pSin = Math.sin(latDeg / RADIAN) * (tP + geoidAltitude / 6378137.0);\r\n\r\n //let tP = Math.atan(0.996647 * Math.tan(latDeg / RADIAN));\r\n //let pCos = Math.cos(tP);\r\n //let pSin = 0.996647 * Math.sin(tP);\r\n\r\n let f = 0;\r\n let g = 0;\r\n let f1 = 0;\r\n let g1 = 0;\r\n let n = 0;\r\n let N2 = 0;\r\n let D = 0;\r\n let loopCounter = 0;\r\n let ta = 0;\r\n let tY = 0;\r\n let X = 0;\r\n let Y = 0;\r\n do\r\n {\r\n let H1 = -this.substellarLong / RADIAN + 0.2625161 * ta + lngDeg / RADIAN;\r\n\r\n X = this.XatMin + this.dX * ta + this.d2X * ta * ta + this.d3X * ta * ta * ta;\r\n Y = this.YatMin + this.dY * ta + this.d2Y * ta * ta + this.d3Y * ta * ta * ta;\r\n\r\n f = X - pCos * Math.sin(H1);\r\n g = Y - pSin * Math.cos(this.fPlaneDecRad) + pCos * Math.cos(H1) * Math.sin(this.fPlaneDecRad);\r\n f1 = this.dX + 2 * this.d2X * ta - 0.2625161 * pCos * Math.cos(H1);\r\n g1 = this.dY + 2 * this.d2Y * ta - 0.2625161 * pCos * Math.sin(H1) * Math.sin(this.fPlaneDecRad);\r\n\r\n N2 = f1 * f1 + g1 * g1;\r\n n = Math.sqrt(N2);\r\n D = f * f1 + g * g1;\r\n tY = D / N2;\r\n if (Math.abs(tY) > 1) tY = Math.sign(tY);\r\n ta = ta - tY;\r\n loopCounter++;\r\n }\r\n while (Math.abs(tY) > 0.00001 & loopCounter < 30);\r\n\r\n return {\r\n ta: ta,\r\n x : X,\r\n y : Y,\r\n minD : -(f * g1 - g * f1) * EARTH_RADIUS / n\r\n }\r\n } \r\n\r\n getGeoidHeight(lngDeg, latDeg)\r\n {\r\n\t while (lngDeg < -180.0) lngDeg += 360.0;\r\n\t while (lngDeg > 180.0) lngDeg -= 360.0;\r\n\t if (lngDeg < -180.0) ++lngDeg;\r\n\t if (lngDeg > 180.0) --lngDeg;\r\n\t let lngDeg1 = Math.trunc(Math.floor(lngDeg));\r\n\t let latDeg1 = Math.trunc(Math.floor(latDeg));\r\n\t let geoidHeightPoint1 = this.getSingleGeoidHeightPoint(lngDeg1, latDeg1);\r\n\t let geoidHeightPoint2 = this.getSingleGeoidHeightPoint(lngDeg1 + 1, latDeg1);\r\n\t let geoidHeightPoint3 = this.getSingleGeoidHeightPoint(lngDeg1, latDeg1 + 1);\r\n\t let geoidHeightPoint4 = this.getSingleGeoidHeightPoint(lngDeg1 + 1, latDeg1 + 1);\r\n\t let num1 = (lngDeg1 + 1) - lngDeg;\r\n\t let num2 = geoidHeightPoint1 * num1 + geoidHeightPoint2 * (lngDeg - lngDeg1);\r\n\t let num3 = geoidHeightPoint3 * ( (lngDeg1 + 1) - lngDeg) + geoidHeightPoint4 * (lngDeg - lngDeg1);\r\n\t let num4 = (latDeg1 + 1) - latDeg;\r\n\t return num2 * num4 + num3 * (latDeg - latDeg1); \r\n }\r\n\r\n getSingleGeoidHeightPoint(lngDeg, latDeg)\r\n {\r\n let GEOID_HEIGHT_DATA = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,\r\n 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,\r\n 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,\r\n 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,\r\n 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15,15,15,15,15,15,16,16,16,16,16,16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,\r\n 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,15,15,15,15,15,15,15,15,15,15,15,15,15,\r\n 15,15,15,15,15,15,15,15,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,\r\n 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,12,12,12,12,12,12,13,13,13,13,13,13,13,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,\r\n 15,15,15,15,15,15,15,15,15,15,15,15,15,16,16,16,16,16,16,16,16,17,17,17,17,17,17,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,18,18,18,18,18,18,18,18,17,17,17,17,17,17,17,17,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,\r\n 17,17,17,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,17,17,17,17,17,17,17,17,17,17,17,16,16,16,16,16,16,16,16,16,16,16,16,16,16,15,15,15,15,15,15,15,15,15,15,15,15,15,15,14,14,14,14,14,14,14,14,14,14,13,13,13,13,13,13,13,13,13,\r\n 12,12,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,\r\n 11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,13,14,14,14,14,14,14,14,15,15,15,15,15,15,15,16,16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,19,19,19,19,\r\n 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,20,20,20,20,20,20,20,\r\n 20,20,19,19,19,19,19,19,19,18,18,18,18,18,18,18,18,18,17,17,17,17,17,17,17,17,17,17,17,16,16,16,16,16,16,16,16,16,15,15,15,15,15,15,15,15,14,14,14,14,14,14,14,13,13,13,13,13,13,13,12,12,12,12,12,12,12,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,\r\n 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,14,14,14,14,14,14,\r\n 14,14,14,14,15,15,15,15,15,15,15,15,15,15,16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,18,18,18,18,18,18,19,19,19,19,19,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,\r\n 22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,22,22,22,22,22,22,22,22,22,22,21,21,21,21,21,21,21,21,21,20,20,20,20,20,20,19,19,19,19,19,18,18,18,18,18,18,17,17,17,17,17,17,17,17,16,16,16,16,16,16,16,16,15,15,15,15,15,\r\n 15,14,14,14,14,14,14,13,13,13,13,13,13,13,13,12,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,11,10,10,10,10,10,10,9,9,9,9,9,9,9,9,9,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,\r\n 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,13,13,13,13,13,13,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15,15,15,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,\r\n 17,17,18,18,18,19,19,19,19,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,25,25,25,25,25,\r\n 25,24,24,24,24,24,23,23,23,22,22,22,22,22,21,21,21,21,20,20,20,20,19,19,19,19,18,18,18,17,17,17,17,16,16,16,16,16,15,15,15,15,15,15,15,15,14,14,14,14,14,14,14,14,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,9,\r\n 9,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,9,9,9,9,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,\r\n 9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,11,11,11,11,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,14,14,14,14,14,14,15,15,15,15,16,16,16,16,16,17,17,17,17,18,18,18,19,19,19,19,20,20,20,20,20,20,20,20,21,21,21,22,22,22,23,23,23,24,24,24,25,25,25,25,25,25,25,25,25,25,\r\n 25,25,25,25,25,26,26,26,26,27,27,27,27,27,27,27,27,27,26,26,26,26,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,28,28,28,28,28,28,28,28,28,27,27,27,27,27,27,26,26,26,25,25,25,24,24,24,24,23,23,23,23,22,22,22,22,21,21,21,21,20,20,20,20,19,19,19,19,18,18,18,18,18,17,17,17,16,16,16,15,15,15,15,14,14,14,\r\n 14,14,14,14,14,14,14,13,13,13,13,12,12,12,12,12,12,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,6,6,6,6,6,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,\r\n 6,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,9,9,9,9,10,10,11,\r\n 11,12,12,12,13,13,13,14,14,14,15,15,16,16,16,17,17,18,18,18,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,22,22,23,23,24,24,25,25,26,26,26,27,27,28,28,29,29,30,30,30,30,30,30,30,30,30,30,30,29,29,29,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,31,31,31,31,\r\n 30,30,30,29,29,29,28,28,28,28,27,27,27,26,26,26,26,25,25,25,25,24,24,24,24,23,23,23,23,22,22,22,22,22,22,22,21,21,21,21,20,20,20,19,19,18,18,18,18,17,17,16,16,15,15,15,14,14,13,13,13,13,13,13,14,14,15,15,15,15,15,15,15,14,14,13,12,12,11,11,11,10,10,10,10,10,9,9,9,8,8,8,8,7,7,7,7,7,7,7,\r\n 6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,4,4,4,4,4,4,4,4,4,4,3,3,3,3,3,3,4,4,4,4,\r\n 4,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,4,4,4,4,4,5,5,5,5,5,5,5,6,6,6,6,6,7,7,8,8,9,10,10,11,11,11,11,11,12,12,12,12,13,13,13,14,14,15,15,16,16,17,17,18,18,19,19,19,19,19,19,19,19,19,18,18,18,17,17,16,16,16,\r\n 16,16,17,17,18,18,19,19,19,20,20,21,21,22,23,24,25,27,28,29,30,31,31,31,32,32,32,32,32,32,32,32,31,31,30,29,29,28,27,27,27,27,28,28,29,30,31,32,32,32,32,32,32,31,31,31,31,31,32,32,32,32,32,32,31,31,31,31,31,31,30,30,29,29,28,27,27,26,26,26,25,25,25,25,24,24,24,24,24,24,24,24,24,24,24,24,24,23,23,22,\r\n 22,21,21,20,20,19,19,19,18,18,18,17,17,16,16,16,15,15,14,14,14,13,13,13,13,13,13,12,12,12,12,12,12,12,11,11,10,10,10,9,9,9,9,8,8,8,8,8,8,8,7,7,7,7,6,6,6,6,6,6,6,6,5,5,5,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,3,3,3,3,3,3,3,3,3,3,3,\r\n 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,\r\n 2,2,2,2,2,3,3,4,5,6,6,7,7,8,8,8,8,7,7,7,7,7,7,7,8,9,9,10,10,10,10,10,10,10,11,11,12,12,13,13,14,14,15,16,17,18,18,18,17,16,15,14,13,12,11,11,12,12,13,15,16,17,19,20,21,22,23,23,24,25,25,26,27,28,29,30,31,31,32,33,34,35,35,35,35,35,35,35,35,35,35,35,35,34,33,33,32,32,32,32,\r\n 32,31,31,31,31,31,31,31,32,32,32,32,33,33,33,33,33,33,33,34,34,34,35,35,34,34,33,33,32,32,32,32,32,32,32,32,31,31,30,30,29,28,28,28,27,27,27,26,26,26,25,25,24,24,23,23,22,22,21,21,20,20,19,19,19,18,18,18,17,17,16,15,15,14,14,13,13,12,12,12,11,11,10,10,9,9,8,8,7,7,6,6,6,6,6,6,6,6,6,6,\r\n 6,6,5,5,4,4,4,4,4,4,4,4,4,4,4,5,5,5,6,6,6,6,6,6,5,5,4,3,3,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,1,1,1,1,1,1,1,1,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,3,3,3,4,\r\n 3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,254,254,254,255,255,255,0,0,0,1,1,2,3,4,5,6,6,6,5,5,4,3,3,2,2,2,3,3,3,4,5,6,6,7,8,9,9,9,9,8,7,7,6,6,7,8,9,10,\r\n 11,12,12,12,12,11,11,10,9,8,7,7,8,9,10,11,13,14,16,17,19,20,21,22,24,24,25,26,27,28,28,29,30,30,31,31,32,32,33,34,34,35,35,35,36,36,37,37,38,38,37,36,35,34,33,33,32,32,32,32,32,32,32,31,31,31,31,31,32,33,34,35,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,35,35,35,35,34,34,33,32,31,30,29,\r\n 29,28,28,28,27,27,26,26,25,24,24,24,23,23,23,22,21,20,20,19,18,18,17,17,16,16,16,15,15,14,13,12,12,11,10,10,10,9,9,8,8,7,7,6,6,5,5,4,3,3,2,2,2,2,3,3,3,3,3,3,2,2,2,1,1,1,1,1,1,1,1,1,1,1,2,2,3,3,3,3,3,3,3,3,3,3,3,2,2,2,1,1,1,1,1,1,1,1,2,2,\r\n 2,1,1,1,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,0,0,0,0,1,1,1,1,1,1,2,2,2,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,254,254,254,\r\n 253,253,253,254,254,254,253,253,253,253,253,253,254,254,254,254,254,255,255,255,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,2,2,3,3,4,5,5,5,5,5,5,6,7,8,9,10,10,10,10,9,8,7,7,7,8,10,11,12,13,15,16,18,20,21,23,24,24,25,26,26,27,28,28,28,29,29,30,30,31,32,32,33,33,34,35,\r\n 35,35,36,36,36,37,37,37,37,37,36,35,34,34,32,31,30,29,28,28,28,28,29,30,30,31,31,31,31,32,33,35,36,37,37,37,37,37,37,37,37,37,37,37,37,38,38,38,37,37,37,36,36,35,35,34,34,33,33,31,30,29,28,27,26,25,25,24,23,23,22,21,21,20,20,19,18,18,17,16,16,15,15,14,14,13,13,12,12,11,10,10,9,9,8,8,8,7,7,7,\r\n 6,5,4,3,3,2,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,1,1,1,1,1,2,2,2,2,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,\r\n 4,4,4,4,3,3,2,2,1,1,1,0,0,1,1,1,2,2,2,3,3,3,3,3,3,3,2,2,2,2,3,3,3,4,3,3,3,3,2,1,1,0,0,1,0,0,0,255,255,255,255,255,255,254,254,253,253,253,252,252,252,252,251,251,251,251,251,251,251,252,252,252,253,253,254,254,255,255,255,254,254,254,254,254,254,254,254,254,254,254,253,253,253,253,253,253,254,253,253,253,\r\n 253,253,254,255,255,255,255,255,255,0,0,0,1,2,4,5,7,8,9,10,11,12,11,10,9,9,9,10,12,14,16,17,19,20,21,22,23,24,25,26,27,28,28,29,30,30,30,30,30,31,31,31,31,32,32,33,34,34,34,35,35,35,36,36,37,38,39,39,40,39,39,38,37,37,35,34,32,30,30,30,30,31,31,31,31,31,32,33,34,35,36,37,37,38,38,39,39,39,39,39,\r\n 39,39,39,39,40,40,39,39,39,39,38,38,37,35,34,33,32,31,31,30,30,29,29,28,27,26,24,23,22,21,21,20,19,19,18,17,17,16,16,15,14,14,13,12,12,11,11,10,9,9,8,8,7,7,7,7,6,6,5,4,4,3,3,3,3,2,1,0,0,0,255,255,255,255,255,0,0,255,255,255,254,254,253,253,252,252,252,252,252,252,252,253,253,253,253,253,253,254,254,254,\r\n 254,254,255,255,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,2,2,3,3,3,3,3,3,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,1,1,1,1,1,\r\n 0,0,0,0,0,0,0,0,255,255,255,254,254,254,253,253,252,252,252,251,251,250,250,250,249,249,250,250,250,251,251,252,253,254,254,254,253,252,252,251,252,252,252,251,251,250,250,249,249,249,249,249,250,250,250,251,251,250,250,250,250,251,252,253,253,254,254,254,254,255,255,0,1,3,5,6,6,7,7,8,9,9,10,10,9,9,9,10,11,13,14,16,17,19,20,22,23,24,24,24,\r\n 24,25,25,26,27,28,29,30,31,31,32,32,32,32,33,33,34,34,35,35,36,37,38,39,39,40,41,42,43,43,43,43,43,43,42,39,36,34,32,32,33,34,34,34,34,35,36,38,39,40,41,41,42,42,42,41,41,41,41,41,41,41,42,42,42,42,41,41,40,40,40,39,38,37,36,35,33,32,31,30,29,29,28,28,27,26,25,24,23,22,21,20,19,18,17,17,16,16,15,14,\r\n 13,12,12,11,10,10,9,9,8,7,7,7,6,6,5,5,5,4,4,4,4,3,3,2,2,2,2,2,1,0,0,255,254,254,254,254,253,253,253,253,253,252,252,251,251,251,251,250,250,250,250,251,251,251,251,251,251,251,252,252,252,252,253,253,253,254,254,254,254,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,2,\r\n 2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,3,3,3,3,2,2,2,2,3,3,2,2,2,2,1,1,1,2,1,1,1,0,0,0,0,0,1,1,1,1,1,2,2,1,1,0,0,0,0,0,0,0,255,255,254,254,254,254,254,254,254,253,253,252,251,251,251,251,250,250,249,249,249,249,249,250,251,252,252,252,252,251,251,250,249,249,249,249,\r\n 249,249,249,249,249,249,250,249,248,248,247,247,247,247,248,248,248,248,249,249,250,250,251,251,251,252,253,253,254,255,255,255,0,255,0,0,0,1,3,4,5,6,7,9,11,13,14,14,14,15,15,16,16,17,17,18,18,19,19,20,21,22,23,25,26,27,28,29,31,31,32,32,33,33,34,34,34,35,36,37,38,39,39,40,41,42,43,43,44,45,46,47,48,47,45,43,40,39,38,38,\r\n 38,38,39,39,40,41,42,43,43,44,44,44,45,44,44,43,42,42,42,42,43,43,43,43,43,43,43,43,42,41,40,39,39,40,40,39,37,35,32,31,30,30,29,28,27,26,25,24,23,22,21,20,19,19,18,17,16,15,14,13,12,11,11,10,9,9,8,8,7,7,6,6,5,5,5,5,4,4,4,4,4,4,4,3,3,2,1,0,0,255,254,253,252,252,252,251,250,250,250,250,\r\n 250,250,250,250,249,249,249,248,249,249,249,249,249,249,250,250,250,250,249,249,249,250,250,250,251,251,252,252,253,253,254,254,254,254,253,253,253,253,253,253,253,253,254,254,254,254,255,255,255,0,0,0,0,0,0,0,0,1,2,2,2,2,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,\r\n 1,1,1,2,2,2,3,3,3,4,3,3,2,1,0,0,0,0,0,0,0,255,254,254,253,253,253,254,254,253,253,252,252,252,252,252,251,251,250,249,249,249,248,248,248,247,248,249,250,251,253,253,253,251,249,247,246,246,246,246,245,245,245,245,246,246,246,245,245,244,244,244,243,243,243,243,244,244,244,245,246,247,248,249,249,250,250,251,251,252,253,254,255,0,1,3,4,5,6,6,\r\n 6,6,7,9,12,14,15,16,17,18,19,20,20,19,19,18,18,17,17,18,19,20,21,22,23,25,27,29,30,32,32,33,33,34,35,36,37,37,37,38,38,39,39,40,40,41,42,43,44,45,46,46,46,46,46,47,47,48,48,47,45,44,44,45,47,47,47,47,47,47,46,46,46,46,46,46,45,44,44,44,44,44,44,44,44,44,44,43,43,42,41,40,40,40,40,40,39,37,35,33,\r\n 31,30,29,28,27,26,24,23,22,21,21,20,19,18,17,17,16,15,14,13,12,11,10,9,9,8,8,7,6,6,5,4,4,3,3,3,3,4,5,5,4,2,0,0,0,255,254,253,253,253,252,252,252,251,251,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,249,249,249,248,248,248,248,248,248,248,248,248,248,248,248,248,249,249,250,250,251,251,251,251,251,251,251,251,251,\r\n 252,252,252,252,252,253,253,253,253,254,254,254,254,255,255,0,0,0,0,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,2,3,3,2,2,1,1,1,1,0,0,254,253,252,252,252,252,252,252,252,251,251,251,251,251,250,250,250,250,250,249,\r\n 249,248,248,247,247,247,247,248,249,250,251,252,252,250,248,247,247,247,247,246,245,245,245,245,243,242,242,242,241,241,240,240,240,240,240,241,241,241,241,242,244,244,244,245,246,247,247,248,247,247,248,248,248,249,250,250,251,251,252,254,0,1,3,6,9,11,13,14,15,16,16,16,16,17,19,21,22,21,20,19,18,19,21,23,24,25,27,29,31,32,33,34,35,36,36,37,38,38,38,39,\r\n 39,40,41,42,43,45,46,46,47,47,48,48,47,47,48,48,48,49,49,50,50,50,51,51,51,51,50,49,49,49,49,48,48,48,48,48,47,47,47,47,46,46,45,45,45,45,46,45,45,44,43,42,41,40,39,39,38,36,35,33,31,30,28,26,25,24,23,22,21,20,20,19,18,17,16,16,15,14,13,12,12,11,10,9,8,7,7,6,5,5,4,3,3,3,3,3,4,4,3,1,\r\n 0,0,255,254,254,253,253,253,252,252,252,252,251,251,250,250,250,249,249,248,248,249,249,249,248,248,248,247,247,247,247,247,247,247,247,248,248,247,246,246,246,246,246,246,246,246,246,246,246,246,247,247,247,248,248,249,249,249,249,250,250,250,250,251,251,251,251,251,251,252,252,253,253,254,254,254,255,255,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\r\n 1,1,1,1,1,2,2,2,2,2,2,2,2,2,1,2,2,2,1,1,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,252,251,251,250,250,249,249,249,249,249,249,249,249,249,249,249,249,249,249,248,248,248,249,249,250,250,250,249,248,247,246,246,247,247,247,246,245,245,244,244,242,241,240,239,238,238,237,237,237,237,237,237,237,238,239,\r\n 241,241,242,243,244,245,245,245,246,246,246,246,246,247,247,248,250,252,253,253,254,0,2,3,5,6,9,12,14,14,14,14,15,16,17,18,20,23,24,23,21,20,21,22,23,25,26,28,31,33,35,37,37,38,38,38,39,40,41,42,42,43,44,46,47,48,49,49,50,50,50,50,49,50,50,50,50,51,51,52,53,53,53,53,53,52,51,51,51,51,51,51,51,51,51,50,50,50,49,49,\r\n 49,49,49,48,48,47,47,46,45,44,43,43,42,42,41,39,38,35,33,31,31,29,28,26,24,23,22,21,20,19,18,17,17,16,16,15,15,14,13,12,11,10,9,8,7,6,6,5,4,3,2,2,2,3,4,4,3,1,0,0,255,254,253,253,252,252,251,251,251,251,250,250,250,250,249,249,249,249,248,248,248,248,248,247,247,246,246,245,245,246,246,246,246,246,246,245,245,245,245,245,\r\n 245,245,245,244,244,244,245,245,246,246,246,246,246,247,247,247,247,247,248,248,249,249,249,249,250,250,250,250,250,250,250,251,252,252,253,253,254,254,254,255,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,3,3,3,2,2,2,2,2,2,2,2,2,3,2,2,2,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,\r\n 1,0,0,0,255,255,254,254,253,251,250,249,249,249,249,249,249,249,249,249,249,249,250,250,250,249,250,251,252,252,252,250,248,246,246,247,247,247,247,246,245,244,244,243,242,241,240,240,239,238,237,236,236,235,235,235,234,234,234,236,237,238,239,239,239,240,241,240,240,240,241,242,243,244,245,245,247,248,249,249,250,252,255,0,1,2,3,5,7,9,11,12,13,14,15,16,17,19,21,23,\r\n 25,26,26,26,25,26,28,31,33,34,35,36,37,38,39,39,40,41,42,43,44,45,46,48,49,49,50,51,52,52,52,51,52,53,54,54,53,53,54,55,56,55,55,54,54,54,54,54,54,54,53,53,53,53,53,53,52,52,52,51,50,50,50,49,48,47,46,45,44,43,42,41,41,41,41,40,38,36,34,33,31,29,27,26,25,23,22,21,20,19,19,18,17,16,16,15,14,13,12,11,\r\n 10,9,8,8,7,7,6,5,5,3,2,2,3,4,3,1,0,0,255,254,254,253,252,251,251,250,250,250,250,249,249,249,249,249,249,249,249,248,248,247,246,246,246,246,246,245,244,244,244,244,244,244,244,244,243,243,244,244,245,245,244,244,243,243,244,245,246,247,247,247,247,247,247,247,247,248,248,248,248,248,248,249,249,250,250,250,250,250,250,250,250,250,251,252,252,253,253,254,254,254,\r\n 255,255,0,0,0,0,0,1,1,1,1,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,3,3,3,3,2,2,2,3,3,3,3,3,3,3,3,2,2,1,1,2,2,2,2,2,1,1,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,254,254,253,253,253,254,255,255,253,252,252,251,251,251,251,252,253,254,254,253,251,250,248,247,246,245,245,245,244,243,243,\r\n 242,242,241,240,240,240,240,240,238,236,234,233,233,233,233,232,232,231,231,232,233,233,234,235,236,238,238,237,236,236,236,237,237,238,239,240,241,241,243,244,245,246,248,251,253,255,0,1,3,3,4,5,8,10,12,14,16,18,20,22,24,25,26,27,29,29,28,27,28,30,32,34,36,37,39,40,40,41,42,44,45,47,48,49,50,51,52,54,54,54,54,54,54,53,54,54,54,54,55,57,\r\n 58,57,56,57,58,58,58,57,57,56,56,56,55,55,54,54,53,52,52,51,51,50,48,47,46,46,45,44,44,43,43,42,41,40,40,39,37,35,33,31,30,29,28,27,26,24,23,22,21,21,19,18,17,16,16,15,14,13,12,11,9,9,9,9,8,7,6,5,4,3,2,2,2,2,1,1,0,0,255,253,252,251,250,250,249,249,249,249,248,248,248,247,247,247,247,247,248,248,247,246,\r\n 246,245,245,244,244,243,243,243,243,243,243,243,243,243,243,243,243,244,245,245,246,246,246,245,245,246,247,247,248,248,248,248,247,247,247,247,248,248,248,249,249,250,250,250,250,251,250,249,249,249,250,250,251,252,252,253,253,254,254,255,255,255,0,0,0,0,0,1,1,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,3,3,\r\n 2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,0,255,255,255,255,254,253,253,253,253,253,252,251,250,250,249,248,248,247,246,245,245,245,244,243,242,240,240,239,239,239,238,238,237,235,232,230,230,229,229,228,228,229,229,229,229,230,230,229,230,231,232,232,232,232,231,231,232,232,233,234,236,236,236,237,\r\n 238,240,241,243,246,248,251,254,0,1,3,4,4,5,7,10,14,17,19,21,23,25,26,27,28,28,28,27,26,27,29,32,34,36,38,40,41,42,43,45,46,47,49,51,52,53,55,56,57,57,56,56,57,58,58,58,58,57,58,59,59,59,59,60,60,59,59,59,58,57,56,55,55,53,51,51,52,51,50,49,49,48,48,47,46,46,45,44,44,43,42,41,40,40,39,38,37,36,34,31,\r\n 30,29,28,27,25,25,25,24,23,21,20,19,18,17,16,15,14,14,13,12,11,10,9,8,8,7,6,5,4,3,3,2,2,1,0,0,255,255,255,254,254,252,251,250,249,249,249,248,248,247,247,247,247,247,247,246,246,246,245,245,244,244,243,243,243,243,243,243,243,244,245,245,245,245,244,244,243,243,243,243,243,243,243,243,244,245,246,247,247,248,248,248,247,246,246,246,246,247,247,248,\r\n 248,249,249,249,248,247,247,248,249,250,251,251,252,252,253,254,254,255,0,0,0,0,0,0,0,1,1,2,2,2,3,3,3,3,3,2,2,3,3,3,3,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3,2,2,2,3,3,2,2,1,1,1,1,1,1,2,1,1,1,1,1,1,2,3,4,4,4,3,3,3,3,3,3,3,3,3,4,4,6,7,8,7,6,6,4,\r\n 3,1,255,253,252,252,251,251,251,251,250,249,249,248,248,249,249,249,248,247,246,244,242,240,239,238,237,236,236,234,231,229,227,226,226,225,225,225,226,226,225,225,225,226,226,226,227,227,228,229,229,229,229,229,230,232,233,233,233,233,234,235,236,238,240,242,245,248,250,253,0,0,0,1,5,10,14,15,16,18,21,24,26,27,27,26,24,23,23,25,28,31,34,36,37,40,41,42,44,46,\r\n 47,48,50,52,53,54,55,55,56,57,59,60,60,60,60,59,59,59,60,60,61,60,60,61,61,60,59,59,59,58,57,56,54,53,52,51,51,50,49,49,48,48,47,47,46,46,45,43,42,42,40,39,39,39,38,37,35,33,32,31,31,30,29,28,27,26,25,24,22,21,20,20,19,18,17,16,15,14,13,12,11,10,10,9,9,8,7,6,5,4,3,3,2,1,0,0,0,255,255,254,\r\n 253,252,252,251,251,250,250,249,248,247,246,246,245,245,245,245,244,244,244,244,243,243,243,242,242,242,242,243,243,242,241,242,243,243,243,244,244,243,242,242,241,240,241,242,242,242,243,243,243,244,244,245,245,245,245,246,246,246,246,247,247,247,246,244,244,243,244,247,250,252,252,252,252,253,254,254,255,0,0,0,0,1,1,1,1,2,2,2,3,4,4,4,4,4,4,4,4,4,4,4,\r\n 5,5,5,6,6,6,6,6,5,5,5,5,5,5,5,5,5,4,4,4,5,4,3,2,2,1,1,1,1,1,1,0,1,1,1,1,2,3,4,4,4,4,4,5,7,8,8,8,8,8,9,10,10,9,8,8,8,7,6,5,4,4,3,1,0,255,254,254,254,253,252,251,251,250,249,249,248,247,247,246,245,243,241,240,238,236,234,232,231,229,227,226,225,225,225,224,223,223,222,221,\r\n 221,222,222,223,223,223,224,226,227,227,227,227,226,226,227,229,230,231,230,230,230,231,232,234,236,238,240,242,245,248,252,255,1,3,4,7,9,12,15,17,20,22,24,26,26,25,25,26,28,29,31,34,36,38,40,42,44,45,47,48,49,49,52,55,56,56,56,56,56,57,58,59,59,59,59,59,60,61,60,61,62,63,62,62,62,61,60,59,59,58,57,56,55,54,53,52,51,51,50,50,\r\n 49,49,48,47,46,45,44,42,42,41,40,41,41,39,36,32,31,31,32,32,31,29,28,27,25,24,22,21,21,20,19,18,18,19,19,18,17,16,15,14,12,11,10,10,10,9,9,8,7,5,5,4,2,2,1,0,0,0,0,255,254,253,252,251,251,251,251,251,250,248,246,245,243,243,243,243,242,242,242,242,242,241,241,241,241,241,241,241,241,240,240,239,240,241,241,241,241,240,241,241,\r\n 241,241,241,241,241,241,241,241,241,241,242,242,243,243,244,244,245,246,246,246,246,246,245,244,242,242,243,247,251,253,253,252,252,253,254,254,255,0,1,2,2,2,1,1,1,2,3,3,4,5,5,5,5,5,5,5,5,6,6,6,6,6,6,7,7,7,7,8,8,7,6,6,5,6,6,6,6,6,6,6,4,4,4,3,2,2,2,2,2,2,2,2,2,2,2,3,3,4,4,5,\r\n 5,5,6,7,8,9,9,9,9,10,10,9,9,8,7,7,7,7,7,7,7,6,4,4,3,2,0,255,255,254,253,252,252,251,249,248,247,246,244,243,241,240,240,239,238,237,235,233,232,231,230,228,226,224,224,223,222,221,221,220,220,220,220,220,221,222,223,224,225,225,226,226,225,225,225,226,227,228,228,228,228,229,229,231,233,234,236,238,240,243,247,250,253,1,5,8,8,9,12,16,\r\n 18,20,22,23,25,25,27,29,30,31,33,36,39,41,44,46,47,48,48,49,49,50,53,55,57,57,56,57,57,58,58,59,60,60,61,61,62,63,63,63,64,64,63,63,63,63,62,60,59,58,57,57,56,54,53,52,51,51,51,50,49,49,48,47,45,44,42,42,43,42,41,40,38,35,33,31,31,31,31,31,29,28,26,24,23,22,21,20,18,17,18,18,17,17,17,18,18,17,16,15,\r\n 14,13,12,11,10,9,7,7,7,7,5,4,3,2,1,1,0,0,255,255,254,252,251,250,252,253,252,251,249,247,245,244,243,242,241,241,241,241,241,241,240,240,240,240,240,239,239,239,239,238,237,237,238,238,238,238,237,237,238,238,237,237,238,239,239,239,239,239,240,240,240,241,242,242,243,244,244,244,245,245,245,245,245,244,243,243,246,250,252,252,252,252,253,253,254,255,0,0,1,3,\r\n 4,3,4,5,6,5,4,3,4,5,5,6,6,6,6,6,6,6,7,7,8,8,8,8,8,8,9,9,9,8,8,7,7,6,6,6,6,6,6,5,4,4,4,4,4,3,3,3,4,4,4,4,4,4,5,5,5,5,6,6,7,8,8,8,8,9,9,9,10,10,10,9,9,9,9,9,9,9,8,8,8,8,6,6,5,4,2,0,255,253,252,251,250,250,249,247,245,244,242,240,\r\n 240,239,239,239,238,237,236,234,233,232,230,228,227,225,224,223,221,220,220,219,219,218,218,218,219,220,221,222,221,221,222,223,223,223,223,223,223,223,224,225,226,227,228,230,231,233,234,236,238,241,243,246,248,251,0,4,7,8,9,13,17,20,20,22,25,27,28,30,31,33,34,36,40,42,44,46,48,49,48,48,48,48,49,51,53,55,57,58,58,59,60,61,61,61,63,64,64,65,65,65,\r\n 65,66,66,65,65,65,64,63,62,60,58,58,56,54,53,53,53,52,51,51,50,49,47,46,45,44,43,43,42,41,39,39,37,35,34,34,32,31,30,29,28,25,23,21,20,19,18,18,18,18,18,17,17,18,18,17,16,15,15,15,14,13,12,12,12,10,8,6,6,6,6,4,2,2,1,0,0,0,255,254,253,251,252,253,253,251,249,248,246,245,244,243,241,240,240,240,239,239,240,239,\r\n 238,238,238,238,238,238,237,236,235,235,235,235,235,234,235,236,235,234,234,235,235,235,235,236,236,237,237,238,239,240,240,241,242,242,242,241,241,242,242,242,242,242,242,242,242,243,246,249,251,253,253,253,253,254,0,0,0,1,3,4,5,6,6,5,6,8,9,8,8,6,5,5,6,7,7,7,7,8,8,9,9,9,10,10,10,10,10,10,9,9,9,8,7,7,6,6,6,5,5,5,\r\n 4,4,4,4,4,4,4,4,5,5,5,5,5,6,6,7,7,7,8,8,9,9,9,9,9,10,10,10,11,11,11,11,11,11,12,12,12,12,11,10,11,11,10,9,8,7,7,7,6,4,3,1,254,251,248,247,246,244,243,242,241,240,238,237,237,236,235,234,232,231,229,228,226,224,223,223,221,220,219,218,217,217,216,216,217,217,218,219,219,219,221,220,220,220,221,222,223,223,221,222,\r\n 223,225,227,229,231,232,234,236,238,240,243,247,249,250,252,255,1,4,7,12,16,18,19,21,23,26,28,28,27,29,33,37,40,44,47,49,50,50,48,46,44,45,48,51,55,56,56,56,57,58,59,60,61,62,64,65,65,66,66,67,67,68,68,67,67,66,64,63,63,61,60,58,57,56,55,53,53,52,52,51,51,50,48,46,44,44,43,41,40,40,40,39,38,36,34,32,31,30,29,27,\r\n 25,23,20,19,18,18,18,17,18,18,18,17,16,17,17,18,17,17,15,13,13,12,11,10,9,8,8,7,7,7,6,5,4,2,0,0,0,255,254,0,0,0,254,252,250,248,246,246,245,244,243,242,241,240,239,238,237,238,238,237,236,236,236,236,236,236,235,234,234,234,234,235,234,233,232,232,232,232,233,233,233,232,232,233,235,235,235,235,236,237,238,239,239,240,240,239,238,239,239,239,\r\n 240,240,240,240,239,240,243,247,250,252,253,254,255,0,0,1,2,3,3,4,5,6,6,7,8,9,9,10,10,9,8,7,7,8,8,8,9,9,10,10,10,10,11,11,11,11,11,11,10,9,9,8,7,7,7,6,5,5,5,5,3,4,4,5,5,5,5,5,5,6,6,5,5,6,6,7,7,7,8,9,10,10,10,10,10,11,12,12,12,12,13,14,14,14,13,13,13,13,12,11,\r\n 11,10,10,9,8,7,6,6,6,5,4,2,1,255,251,249,248,247,245,242,241,240,238,236,235,234,233,232,230,229,228,227,225,223,223,222,220,218,217,215,214,214,214,214,215,215,216,217,217,217,217,217,217,218,219,219,220,221,221,221,222,223,225,226,227,229,231,234,238,241,244,246,249,253,255,255,255,1,7,12,14,15,16,19,21,23,25,28,29,29,32,37,40,44,47,50,51,51,48,46,\r\n 46,50,53,53,53,54,54,55,57,58,59,61,62,63,64,65,65,66,67,67,67,68,67,66,66,64,63,63,62,61,60,58,57,56,54,52,52,52,51,51,50,49,47,44,43,42,43,43,42,41,40,39,36,34,32,31,30,30,28,26,23,21,19,18,18,18,18,18,18,18,18,17,16,16,16,15,15,15,14,14,14,13,12,11,10,9,9,9,8,6,6,5,4,2,1,0,0,255,255,0,\r\n 255,254,251,249,248,246,246,245,244,243,242,241,240,239,238,236,236,236,235,236,236,235,234,234,234,234,233,232,232,232,233,233,233,232,231,230,230,230,230,229,228,228,229,229,230,231,231,231,232,233,234,235,236,236,237,237,236,237,238,238,239,239,239,240,241,241,242,244,246,247,247,248,251,254,0,2,3,4,6,6,6,6,7,8,8,9,10,10,11,11,10,10,10,10,9,10,11,11,12,12,\r\n 12,12,12,12,12,11,11,11,10,9,9,8,8,7,7,6,5,4,4,4,5,5,5,5,5,5,5,6,6,6,7,7,7,7,7,8,8,9,10,11,11,11,11,11,12,12,12,14,15,16,16,16,17,17,17,17,17,15,13,13,12,11,10,9,8,7,6,4,4,3,3,2,1,0,254,252,249,246,245,244,242,239,237,236,234,232,230,229,228,228,227,226,225,223,222,221,219,218,217,215,\r\n 214,213,212,212,212,212,212,212,212,213,213,213,214,215,216,216,217,218,219,220,221,223,224,225,226,227,229,231,234,238,241,244,247,248,251,254,0,3,7,10,11,12,14,16,18,20,23,25,28,30,32,37,42,45,48,51,51,49,46,47,50,51,51,52,53,54,55,56,58,59,61,62,63,64,65,66,65,65,65,64,63,63,63,62,61,61,61,61,62,61,60,59,59,57,55,54,52,51,50,50,\r\n 48,48,48,47,45,45,45,44,44,43,42,40,38,35,33,32,31,29,25,22,20,18,18,18,18,18,18,18,18,18,17,16,15,15,14,14,14,14,13,12,12,12,12,12,11,10,9,10,10,8,6,4,2,2,2,1,0,0,255,255,254,251,249,248,247,246,245,244,243,242,241,239,238,237,236,235,235,234,234,234,233,233,232,232,232,232,231,231,231,231,231,231,231,231,230,229,229,228,228,227,\r\n 228,228,228,228,227,228,228,228,229,230,231,232,233,233,234,234,233,235,237,238,238,239,241,242,243,244,244,245,245,246,247,248,249,251,252,253,255,1,5,7,9,9,8,8,10,11,11,11,12,12,12,12,11,11,12,13,13,13,14,13,13,12,12,11,12,12,11,10,10,10,10,9,9,8,8,7,6,6,6,5,5,5,5,5,6,6,6,7,7,7,7,7,8,9,9,9,10,10,11,11,\r\n 11,12,12,12,12,14,15,15,12,9,10,16,20,19,17,17,18,19,18,16,14,12,11,10,8,7,7,5,4,3,1,1,0,0,255,253,249,246,244,243,242,240,237,235,233,230,229,228,227,226,225,224,224,223,222,221,218,217,216,215,214,213,212,211,210,210,209,209,209,209,210,211,213,213,213,214,215,217,218,219,221,223,224,227,229,230,232,233,233,234,236,238,241,244,247,252,0,3,7,9,\r\n 10,10,13,15,17,20,22,23,26,29,31,33,38,42,45,48,49,46,47,49,50,50,51,52,53,54,56,57,59,61,62,63,64,65,65,65,65,64,64,64,63,62,62,61,60,60,60,60,60,60,59,59,58,57,56,54,52,50,49,50,50,49,48,47,46,46,46,47,47,46,43,40,37,36,34,32,30,27,24,22,21,20,19,19,18,19,18,18,19,18,17,17,17,16,15,14,14,14,13,12,\r\n 12,11,12,11,11,10,9,9,8,7,6,4,2,1,0,0,0,255,254,255,254,251,248,247,246,245,244,242,240,239,238,237,236,235,235,234,233,232,232,231,230,230,230,229,229,230,230,230,230,230,230,229,228,229,229,228,228,227,226,226,226,226,226,227,227,228,228,228,228,229,230,231,232,232,232,233,235,237,237,235,235,239,243,244,246,246,247,248,249,250,252,254,255,0,0,1,2,5,7,9,\r\n 9,10,12,12,12,12,12,13,13,13,14,14,14,14,14,15,15,14,13,13,13,13,13,12,11,11,11,10,11,11,11,11,10,8,6,4,2,3,5,6,5,5,4,4,6,7,7,7,8,8,8,9,10,10,11,11,11,11,12,12,13,13,13,14,14,14,15,15,11,6,8,12,14,15,17,18,18,19,20,20,19,15,12,10,9,7,6,5,3,2,1,0,0,255,253,252,248,245,244,243,\r\n 241,239,236,234,233,231,229,228,227,226,225,224,224,223,222,220,219,218,216,215,215,213,212,211,209,209,209,208,208,209,210,211,212,212,212,213,214,215,217,218,220,221,222,224,227,229,231,233,233,234,235,237,238,240,244,250,254,0,3,6,8,9,11,13,16,19,21,23,25,27,29,31,34,36,38,43,45,46,48,49,49,50,51,53,53,55,57,58,60,62,63,64,65,65,65,64,64,64,63,62,\r\n 61,61,61,60,60,59,59,60,59,58,58,58,57,56,55,53,52,51,51,51,49,47,47,46,45,46,46,47,46,44,41,38,36,34,32,31,29,26,23,22,20,19,19,19,19,19,17,16,16,16,16,16,15,15,15,14,12,11,12,12,11,11,11,10,10,10,9,8,8,7,6,5,4,2,1,0,255,254,253,254,254,251,248,246,245,244,242,240,239,238,237,236,235,233,233,232,231,229,230,229,\r\n 228,228,228,228,228,228,228,228,227,226,227,228,227,227,226,225,225,224,223,224,224,225,225,226,227,227,227,227,228,228,229,230,231,230,230,231,232,235,237,238,239,242,244,246,247,249,250,251,252,253,255,0,1,2,3,3,5,7,9,10,11,12,12,13,13,14,14,15,15,15,16,16,16,16,17,16,15,13,13,13,14,14,13,12,12,12,12,12,11,11,11,10,8,5,3,1,0,0,1,3,\r\n 1,3,5,5,5,7,8,8,8,9,9,10,11,11,12,12,12,12,13,14,15,15,14,15,15,15,15,13,10,10,14,14,13,13,12,12,12,11,11,12,11,12,12,11,9,8,6,4,2,2,0,255,254,253,252,250,247,244,244,243,241,240,239,236,235,233,231,229,228,227,226,225,224,223,222,221,220,218,217,216,215,214,213,212,210,209,208,208,208,209,210,211,210,210,210,212,213,214,215,215,\r\n 215,216,219,223,225,227,230,231,232,233,234,235,238,241,244,249,252,0,2,3,5,7,9,12,14,17,19,22,25,27,29,30,33,36,39,42,44,46,47,48,49,50,51,53,54,56,58,59,61,63,64,64,64,64,64,63,63,62,61,61,61,60,60,60,60,60,59,58,57,57,56,56,55,56,55,54,54,53,51,49,48,47,46,45,44,44,45,46,45,42,41,39,36,33,31,29,27,25,23,21,\r\n 19,19,20,20,19,18,16,16,15,15,16,16,15,15,16,15,13,12,11,11,12,11,11,12,11,10,9,7,7,7,6,5,4,3,2,0,0,254,254,254,253,249,246,246,244,242,241,240,238,237,236,234,233,232,231,231,230,229,228,227,227,226,226,226,226,225,225,225,224,223,223,224,225,226,225,224,223,222,223,223,223,223,224,225,225,226,226,227,228,229,229,229,229,229,229,231,233,236,238,239,\r\n 240,242,245,247,249,251,253,254,255,0,0,2,3,4,5,5,6,8,10,11,12,12,12,12,14,14,14,14,15,16,16,17,17,17,17,16,15,14,14,14,14,15,15,14,13,13,12,11,8,8,8,4,0,0,0,255,255,0,0,0,0,1,4,6,6,7,8,9,9,10,10,11,12,12,12,13,13,14,14,15,15,15,15,15,16,15,14,12,11,10,11,12,12,10,8,7,6,7,7,8,\r\n 7,6,8,9,7,6,5,4,2,2,1,0,254,253,252,249,246,245,244,242,240,239,238,237,237,236,233,230,229,227,226,225,224,223,223,222,221,221,219,217,217,215,214,212,210,210,208,207,208,208,209,209,209,209,209,211,211,211,213,213,213,216,218,221,223,224,227,228,230,230,231,233,236,239,242,246,250,252,0,3,5,6,7,10,12,15,18,21,23,25,28,31,33,36,38,40,43,45,47,48,\r\n 49,50,51,53,55,57,59,61,63,64,64,64,64,63,63,62,61,61,61,61,61,60,60,60,59,59,58,56,56,56,55,55,56,56,56,55,54,52,50,48,47,46,45,45,44,44,44,45,44,42,40,38,35,33,31,29,28,26,23,21,20,19,20,20,20,19,18,17,17,16,15,14,15,16,17,16,15,14,14,14,13,13,12,11,10,9,8,8,7,6,6,5,3,3,1,0,0,255,254,254,\r\n 252,249,246,244,243,241,240,239,237,236,235,233,232,230,230,229,228,227,227,226,225,225,224,223,223,223,223,223,222,221,220,221,222,223,223,223,223,222,222,221,221,221,222,223,225,226,225,226,227,227,229,229,229,231,234,236,238,238,238,239,241,243,246,249,251,252,254,0,1,1,2,4,5,7,8,8,10,11,12,13,13,13,13,13,13,13,14,15,16,16,16,17,17,18,17,17,16,16,16,16,\r\n 16,17,17,16,14,12,10,8,6,5,6,5,1,0,1,0,0,0,0,1,1,1,1,2,4,5,7,9,10,10,11,11,12,12,13,14,14,15,15,15,15,15,15,15,15,14,13,12,11,12,14,13,10,6,6,7,8,6,5,4,4,3,3,3,4,3,2,3,3,1,0,0,255,254,253,251,249,245,243,242,241,240,238,237,236,234,233,233,231,229,228,227,226,225,224,224,223,222,221,220,\r\n 219,217,216,215,213,212,211,210,210,209,209,208,208,209,209,210,210,210,211,213,214,215,217,219,221,222,224,226,228,229,230,232,235,238,241,245,248,249,250,254,3,5,6,9,11,14,17,19,22,24,27,30,33,35,38,40,42,44,45,47,49,51,53,54,56,58,60,62,63,63,63,63,63,62,62,61,61,61,61,61,61,61,60,59,59,60,59,57,56,56,56,57,58,57,56,55,53,50,49,48,\r\n 48,47,46,44,43,43,42,42,41,39,38,37,35,34,32,31,29,27,25,23,21,21,20,20,20,19,20,20,18,17,16,16,15,16,16,15,15,14,14,13,12,11,11,10,9,9,9,8,7,6,5,4,2,1,0,0,255,254,253,253,252,249,246,243,242,240,239,237,235,234,233,232,231,230,228,228,227,227,226,225,224,223,223,222,222,222,222,222,221,220,220,219,219,220,220,219,218,217,217,217,\r\n 218,220,221,222,224,224,223,224,224,226,228,231,233,235,237,238,240,241,242,243,245,246,249,251,253,0,1,3,4,6,8,9,10,10,10,11,11,12,14,14,14,13,13,13,13,14,15,15,16,16,16,16,16,16,17,16,17,18,18,18,18,19,18,16,13,10,9,9,7,6,6,6,3,2,2,1,1,1,1,1,2,2,2,3,3,3,5,10,11,11,12,12,12,13,14,14,15,15,15,15,\r\n 14,14,15,15,12,11,13,15,15,14,11,8,7,8,8,8,7,6,5,4,2,1,0,0,1,2,0,0,0,0,0,255,254,253,252,250,249,247,245,243,242,241,239,238,237,235,235,234,232,231,229,228,228,227,227,226,225,224,223,222,221,219,218,216,215,215,212,211,210,210,210,209,209,209,209,209,209,210,210,212,214,214,215,217,219,221,222,224,227,228,229,231,234,238,241,244,246,247,248,250,\r\n 255,4,6,8,11,13,16,18,21,24,27,29,32,34,36,40,41,44,46,47,49,51,53,55,58,59,61,61,62,62,62,61,61,61,61,61,61,61,62,62,61,60,60,60,60,60,59,57,55,55,56,58,58,57,56,56,54,52,50,48,47,46,45,44,43,42,42,41,40,39,39,38,37,36,34,33,31,28,26,25,23,23,23,22,21,21,21,20,19,19,18,17,16,17,16,15,13,13,13,13,\r\n 12,11,9,9,8,8,8,7,6,5,4,2,0,255,254,252,252,252,251,251,250,248,245,243,241,239,238,236,235,234,232,231,229,228,228,227,226,225,224,223,223,223,222,222,221,221,221,220,219,218,219,218,218,218,218,217,216,217,217,217,218,219,221,221,222,222,223,223,224,227,231,233,234,235,236,238,240,243,245,246,247,248,250,252,254,0,2,5,6,8,9,10,11,12,12,12,14,15,15,14,\r\n 14,14,14,15,15,16,17,18,17,18,18,17,17,16,17,18,19,20,21,21,21,19,18,15,11,10,10,9,8,7,7,5,3,2,2,1,1,1,1,2,2,3,3,3,3,3,3,4,5,7,10,12,13,13,14,15,15,15,16,16,17,16,14,13,12,13,13,11,7,6,7,9,9,9,8,7,6,6,4,3,2,0,0,254,253,255,0,255,254,254,253,252,251,251,250,249,248,246,244,243,\r\n 242,241,239,238,238,237,236,235,233,232,230,229,228,228,228,227,227,226,225,224,223,222,220,219,217,216,215,214,213,212,211,210,209,209,209,209,210,210,211,212,213,213,214,216,218,220,222,224,225,227,230,230,232,236,240,242,245,246,247,248,251,0,5,7,8,11,14,17,20,23,26,28,31,34,37,39,41,43,46,48,50,52,54,56,58,60,61,61,61,61,61,61,61,61,61,61,62,63,63,61,\r\n 61,61,61,62,62,60,58,56,55,56,57,58,58,57,56,55,54,52,50,48,47,45,44,44,43,42,42,41,41,41,39,38,37,36,35,34,32,30,28,26,25,24,24,24,23,22,22,21,20,20,18,17,17,18,17,16,16,15,14,13,12,10,9,8,8,7,6,6,5,4,2,1,0,255,252,251,251,251,250,250,249,247,244,241,240,238,237,235,234,233,232,231,229,228,227,226,225,224,223,223,\r\n 222,222,222,222,221,221,221,221,220,219,218,218,219,218,217,217,217,216,216,216,217,218,219,220,221,223,224,224,226,228,229,231,232,234,236,238,240,243,246,248,249,250,251,253,255,0,2,4,6,9,11,12,13,14,14,15,15,15,15,14,14,14,15,15,16,18,18,18,18,19,19,19,18,18,18,19,21,23,24,23,22,19,15,9,7,8,9,9,8,7,6,4,3,2,2,1,0,0,0,0,\r\n 0,1,3,3,4,5,6,6,6,8,9,11,13,14,14,15,17,17,18,18,17,15,14,13,11,10,9,10,11,12,11,9,8,7,6,6,4,3,2,1,0,0,255,253,251,251,252,253,252,251,251,250,249,248,247,247,246,245,244,243,241,240,240,240,239,238,237,235,234,233,232,231,230,229,229,228,228,227,226,225,224,223,222,220,218,217,216,215,214,214,213,211,211,210,210,211,211,212,212,212,\r\n 212,213,214,216,218,220,222,224,226,228,230,232,234,236,239,241,242,244,245,247,249,252,0,3,8,12,15,16,19,22,25,28,31,34,37,38,41,43,45,48,50,52,54,56,58,60,60,60,61,60,60,61,61,61,61,61,61,60,60,60,61,62,61,60,59,58,57,56,56,56,58,58,57,57,56,55,55,53,51,49,46,44,43,42,42,41,41,41,41,41,40,39,38,36,35,34,33,32,30,28,\r\n 27,26,25,25,25,25,24,22,22,21,20,19,17,17,16,16,15,15,14,12,11,10,8,7,7,6,6,5,4,2,1,1,0,255,253,251,249,248,248,249,247,245,243,240,239,237,235,234,234,232,231,230,228,227,225,224,223,222,222,221,221,222,221,221,220,220,219,220,221,221,220,218,218,219,220,219,219,219,219,217,217,217,218,220,222,223,224,225,225,224,227,231,233,235,237,239,240,243,245,246,\r\n 248,249,252,254,255,1,3,4,6,7,10,13,14,15,14,15,15,15,15,16,16,15,16,17,16,16,17,18,18,19,19,19,20,19,19,20,21,25,26,23,22,21,12,1,255,1,8,12,10,6,5,3,2,1,0,255,1,4,3,2,4,1,2,3,4,5,5,6,7,8,10,11,13,16,17,18,17,13,9,7,8,8,8,8,9,10,11,11,11,11,11,10,9,7,5,4,3,1,0,0,\r\n 255,254,253,252,251,249,248,250,249,248,249,248,248,248,246,244,244,244,243,244,244,243,242,240,239,238,237,235,234,234,233,233,232,231,231,231,229,228,227,226,226,225,223,221,220,219,218,218,217,215,214,213,212,212,211,211,212,212,213,213,213,214,214,216,218,220,222,224,226,228,230,232,234,236,237,238,239,241,242,244,248,252,0,2,6,10,14,15,18,21,24,27,30,32,35,38,40,42,44,46,\r\n 49,51,53,56,58,60,60,60,60,60,61,61,61,61,61,61,61,60,60,61,61,61,61,60,59,58,58,58,59,60,59,58,58,57,56,55,54,53,51,48,46,45,43,42,42,41,40,40,39,40,40,39,39,37,36,35,34,32,30,29,29,29,28,28,27,26,25,24,23,21,19,18,17,17,16,16,15,13,11,10,9,9,8,7,7,6,5,4,3,2,0,0,0,254,252,249,247,246,247,248,\r\n 246,243,241,239,237,235,234,233,231,230,230,229,227,226,224,223,222,220,219,219,218,218,218,218,218,218,217,217,219,220,220,218,217,217,218,219,221,221,221,220,218,218,218,219,222,223,223,224,223,223,227,230,233,235,236,238,240,242,244,246,248,251,252,254,0,1,4,6,7,8,10,12,13,14,16,17,16,16,16,17,18,17,16,18,17,15,16,17,18,18,19,19,19,20,20,21,22,25,26,25,\r\n 21,14,4,0,3,5,2,1,2,4,5,3,2,2,2,3,3,2,2,5,5,2,1,2,2,3,4,6,8,10,13,14,14,10,4,1,1,2,5,7,9,10,11,12,12,11,11,10,9,8,7,6,6,5,3,3,1,0,255,254,252,251,250,249,248,247,245,245,247,246,245,246,246,246,246,245,244,243,243,244,244,244,244,243,240,239,238,236,235,235,235,235,235,234,234,233,232,231,230,229,\r\n 227,226,224,223,222,222,221,219,218,217,216,215,213,213,212,212,212,212,212,212,212,213,214,216,218,220,223,224,226,228,230,232,233,235,238,239,241,242,244,247,250,254,0,3,7,10,12,15,19,21,23,25,28,31,34,36,39,41,43,45,47,50,52,54,56,58,59,60,60,60,61,60,61,61,62,62,61,60,60,60,61,60,60,59,59,60,62,61,60,60,58,58,57,57,56,55,55,53,51,49,\r\n 46,45,44,43,42,42,42,41,41,41,41,41,40,39,37,36,34,33,31,30,30,30,29,28,28,26,26,24,22,21,19,19,18,17,17,16,14,12,11,10,9,8,8,7,5,4,4,3,1,0,0,255,254,253,251,248,246,246,246,245,243,240,238,237,235,233,233,232,231,230,229,228,227,225,224,222,220,219,218,218,217,217,217,217,216,215,216,217,217,218,217,216,216,217,217,217,218,219,221,222,\r\n 222,220,219,219,220,221,221,220,221,225,228,230,232,234,237,238,240,242,245,247,250,252,254,0,1,3,4,6,7,9,11,13,15,17,18,18,17,17,18,18,19,19,18,18,17,16,16,17,18,18,18,19,20,20,21,22,23,25,25,22,18,6,254,1,8,9,9,5,0,255,0,2,4,7,5,2,1,2,1,3,4,3,3,5,7,7,7,7,6,3,1,255,254,0,3,6,9,10,11,11,\r\n 11,11,10,10,10,10,9,8,7,6,6,5,4,2,1,0,0,255,253,252,250,249,248,247,246,245,245,243,243,243,243,243,243,245,246,245,244,243,242,243,243,243,244,246,246,242,239,238,237,237,237,237,237,235,236,235,234,233,233,230,227,226,225,224,224,224,223,222,221,219,218,216,215,214,214,215,214,214,214,213,213,214,215,217,218,220,222,224,226,227,229,231,234,237,239,239,241,242,244,247,\r\n 249,252,0,1,4,9,12,14,18,20,22,23,26,29,32,34,36,39,42,45,47,49,51,52,54,56,57,58,60,61,62,62,62,62,62,62,62,62,62,61,61,59,58,57,58,61,61,60,60,60,58,58,57,56,55,54,54,52,50,48,46,45,44,44,44,43,44,44,45,45,44,44,43,42,41,40,38,37,35,33,33,32,30,29,27,27,27,26,23,21,22,24,21,19,18,16,14,13,12,11,\r\n 10,9,7,7,6,3,2,0,255,254,252,251,250,248,247,245,243,243,245,244,241,239,236,234,232,232,232,231,230,229,228,227,225,224,223,221,220,219,217,216,216,216,215,214,214,214,215,215,217,218,219,217,217,215,215,216,217,218,219,220,221,222,221,219,218,217,218,221,224,225,227,229,232,233,236,238,241,243,246,248,251,253,0,1,3,5,6,8,9,11,12,14,16,18,19,19,18,18,19,20,\r\n 20,20,19,19,18,17,16,17,18,19,19,19,20,21,22,23,23,26,25,13,2,0,3,7,8,9,9,7,6,3,0,254,252,255,1,5,5,3,5,5,249,250,250,249,248,246,246,247,250,252,255,2,5,7,9,10,10,10,11,10,10,10,9,8,7,7,6,5,4,3,3,2,1,0,0,255,254,252,251,250,248,247,245,244,243,243,242,242,241,240,240,240,242,243,244,244,245,244,243,242,\r\n 241,242,242,243,245,244,240,239,238,238,238,238,237,236,236,236,236,235,234,233,230,228,227,227,226,226,224,223,222,221,220,219,218,217,217,217,216,216,215,216,215,215,216,217,219,221,222,224,225,228,231,233,235,236,237,239,240,240,242,244,247,249,252,255,3,8,11,13,16,20,24,24,25,28,31,34,36,39,41,43,46,48,50,52,54,55,57,58,59,61,63,63,64,63,63,63,63,63,63,62,\r\n 61,60,59,58,57,59,60,59,58,60,59,58,56,55,55,54,53,51,49,46,45,45,44,45,45,45,46,47,48,48,47,47,45,44,43,43,42,40,39,38,37,36,34,31,29,29,29,30,27,25,25,25,23,20,18,16,14,13,12,11,11,9,7,6,4,3,0,253,251,248,247,245,243,243,241,240,239,238,241,241,239,236,234,233,231,230,230,229,229,227,226,225,224,223,221,219,218,217,217,215,\r\n 214,214,215,216,217,217,217,218,218,218,218,215,214,214,214,214,215,216,217,218,218,218,219,220,220,220,221,221,223,225,228,230,232,233,236,238,240,243,246,249,252,255,1,3,5,7,8,10,11,12,13,16,17,19,20,20,20,20,20,22,21,20,20,21,19,17,18,18,18,19,19,19,20,22,22,23,25,26,20,7,1,5,8,8,8,8,6,6,6,4,4,3,1,0,253,252,249,246,249,250,\r\n 251,251,252,253,255,0,1,2,3,5,6,6,7,8,9,9,9,9,8,8,8,7,7,6,5,4,4,3,2,1,0,0,255,254,253,252,251,249,248,247,245,244,243,242,241,240,240,239,239,239,238,237,237,241,243,242,241,242,242,242,241,241,242,242,243,244,242,240,239,239,240,240,240,238,238,238,237,237,236,234,233,232,230,228,228,227,226,225,223,223,222,221,219,218,218,217,217,218,218,219,\r\n 217,217,217,218,220,221,223,224,226,228,231,233,234,234,234,235,236,238,239,241,244,247,252,1,4,8,10,13,16,22,24,23,23,26,29,32,35,38,40,42,44,47,50,51,53,54,56,57,59,61,62,64,64,64,64,63,63,63,63,63,62,61,60,58,57,57,56,57,58,59,59,58,56,55,54,53,52,50,48,46,45,45,45,45,45,47,48,49,48,48,48,47,47,47,45,44,44,44,42,42,\r\n 40,37,35,33,30,32,32,31,31,29,27,25,23,22,19,16,14,12,11,11,11,10,8,5,4,0,252,249,249,247,245,244,242,242,242,240,237,236,239,240,238,235,233,231,229,228,228,227,226,225,224,223,223,222,221,219,218,216,215,213,213,212,212,214,215,216,217,218,218,217,216,215,213,210,211,212,213,215,215,216,216,216,217,217,218,218,219,221,223,225,228,230,232,234,236,238,241,244,246,249,\r\n 253,0,2,4,6,9,11,11,12,13,15,17,19,20,21,21,20,21,22,23,23,20,21,22,21,19,18,19,19,20,20,21,21,21,22,25,25,16,6,2,6,8,9,8,7,6,4,4,3,2,2,3,1,1,1,1,1,0,254,252,0,1,1,2,2,3,4,4,5,6,6,6,6,7,7,7,7,7,6,6,5,5,4,4,3,2,1,1,0,255,254,253,252,251,250,249,248,246,245,244,\r\n 243,241,240,239,239,238,238,237,237,237,236,236,235,235,238,240,240,237,238,241,241,241,241,242,242,243,243,243,243,242,241,241,240,240,240,239,239,238,237,236,235,234,232,230,229,228,227,225,224,223,222,221,219,219,219,219,218,219,219,218,218,218,219,219,220,221,222,223,224,227,230,230,231,234,237,238,238,237,239,241,243,248,254,2,4,7,9,12,15,21,24,22,23,26,29,33,35,37,39,41,\r\n 43,45,47,49,52,53,55,56,58,60,62,63,65,65,64,65,64,64,63,63,63,62,60,59,58,57,56,56,58,58,58,56,55,54,53,52,51,50,49,48,47,46,45,44,46,47,47,48,48,48,49,47,46,47,47,47,46,43,43,43,43,40,38,36,33,32,33,34,32,30,29,26,24,23,21,18,17,16,13,11,10,9,7,5,2,254,252,250,248,246,243,242,241,241,240,238,236,235,238,239,\r\n 235,233,231,228,226,226,226,225,225,224,222,221,220,218,218,217,217,217,217,215,213,212,212,211,211,213,214,214,216,215,214,212,212,211,211,212,212,212,213,214,214,214,215,216,217,217,218,220,223,225,228,230,232,234,236,239,241,244,247,251,254,0,3,4,7,9,11,13,13,15,16,18,19,20,20,20,22,23,24,24,24,21,22,22,21,21,20,20,20,21,20,21,21,21,25,24,12,2,3,8,\r\n 9,9,8,7,5,4,2,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,3,3,4,4,4,4,4,5,4,4,4,4,3,3,2,1,1,0,0,255,254,254,253,252,251,249,248,247,246,245,243,242,241,240,239,238,237,236,236,235,236,235,235,235,235,235,234,234,234,237,236,236,240,239,238,239,240,241,242,243,244,243,243,242,242,242,241,240,240,239,239,239,236,\r\n 235,233,232,230,230,229,228,226,226,226,224,222,221,220,219,220,220,220,220,219,219,219,220,221,223,224,224,225,227,230,230,230,233,235,236,237,238,239,240,241,243,248,253,0,2,5,8,10,12,17,20,25,27,29,32,35,36,37,37,40,42,44,46,49,51,52,54,56,58,60,62,64,65,66,65,65,64,63,63,63,62,61,61,60,58,58,56,55,54,53,52,52,53,54,53,51,50,50,49,48,\r\n 47,46,45,46,47,47,49,49,50,48,47,47,45,45,46,47,46,44,44,44,43,41,39,39,38,36,34,33,32,31,30,28,26,24,23,21,20,18,16,14,12,10,7,4,1,254,252,249,245,244,243,241,241,239,238,236,236,236,237,236,233,231,228,226,224,224,224,223,223,221,219,218,216,216,215,214,214,214,214,214,212,211,210,207,206,205,206,207,209,211,213,212,209,208,209,209,211,212,213,214,\r\n 213,213,213,214,215,216,217,220,223,225,227,229,232,234,236,239,241,244,248,252,0,2,3,5,7,10,11,13,15,17,18,19,19,20,21,22,23,25,26,26,23,21,23,23,22,22,20,20,20,20,20,21,21,24,25,15,3,6,11,10,9,9,7,5,3,2,1,254,254,0,253,253,255,254,255,255,255,255,0,0,254,255,255,0,0,0,0,1,1,1,2,2,2,2,2,2,2,2,2,1,\r\n 0,0,0,0,254,254,252,252,251,250,249,248,247,246,244,243,242,241,240,238,237,236,235,234,234,233,233,233,233,234,233,233,233,232,233,232,234,236,237,239,237,237,238,239,241,242,243,245,244,246,245,245,243,243,241,241,241,240,238,236,235,233,232,231,230,230,228,227,228,226,225,224,221,220,220,220,220,220,220,221,220,220,221,222,222,223,225,226,228,229,229,231,233,235,236,237,238,239,240,242,\r\n 243,246,249,253,0,3,6,8,11,15,17,20,25,28,32,35,36,36,36,39,41,44,45,48,50,52,54,56,57,60,61,63,65,66,66,66,65,64,62,62,62,61,61,59,59,57,56,55,53,50,50,50,49,48,48,50,50,49,48,48,47,47,47,47,48,49,50,50,49,49,50,52,52,51,50,49,47,45,44,43,42,42,42,42,40,39,36,33,32,31,29,28,26,24,23,21,20,17,14,13,\r\n 11,9,7,5,3,0,253,252,249,246,244,243,242,240,238,237,236,235,234,232,230,229,227,225,223,223,222,221,220,219,218,216,214,214,213,212,211,209,209,209,209,208,208,209,209,210,208,204,203,205,208,211,211,209,208,207,209,210,212,213,214,214,213,213,214,215,217,220,221,224,226,229,232,235,237,240,243,246,249,253,0,2,4,6,7,9,12,14,16,18,19,20,20,21,23,24,26,27,27,25,\r\n 24,24,25,25,23,21,20,21,21,21,22,22,25,24,15,5,9,13,12,11,9,7,5,3,1,0,0,254,250,254,253,251,253,253,253,253,253,253,254,254,252,253,253,254,254,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,255,254,253,253,252,251,250,249,248,247,246,245,244,243,243,241,240,239,238,236,235,234,233,232,232,231,231,231,231,232,232,232,232,232,231,231,234,236,237,237,\r\n 236,236,238,241,241,243,245,245,246,247,246,245,243,242,241,241,241,240,238,236,235,233,232,231,231,231,229,230,229,227,226,225,223,222,222,221,220,219,219,220,220,221,221,222,223,224,224,225,228,229,231,232,232,233,235,237,238,239,240,242,244,245,248,251,255,2,4,7,10,14,17,20,23,27,29,30,31,33,35,38,40,42,44,47,49,52,54,55,57,60,61,63,65,66,66,66,65,64,63,62,\r\n 61,61,60,59,58,57,55,54,52,50,49,48,48,47,46,46,48,49,48,48,48,49,50,50,50,49,50,54,54,50,50,51,48,46,46,47,46,45,45,44,43,43,43,44,42,40,38,32,31,30,29,26,24,23,21,19,16,13,13,12,11,9,7,6,4,1,0,254,251,249,247,246,243,242,240,238,235,233,231,230,228,227,226,224,222,221,220,219,218,216,215,215,214,213,211,210,209,206,206,206,\r\n 206,207,207,208,206,201,196,196,197,199,203,204,206,208,208,206,207,209,208,208,209,211,212,212,214,215,217,218,220,223,225,229,232,235,239,242,244,247,251,254,0,2,4,6,8,10,12,15,17,19,21,22,22,23,24,25,28,28,26,25,25,26,26,26,24,23,23,23,23,24,25,24,17,7,4,10,13,12,11,9,7,5,3,1,0,0,255,253,250,252,252,248,251,251,251,251,251,251,252,252,\r\n 251,251,251,252,252,252,253,253,253,253,254,254,254,254,255,254,254,254,253,253,253,252,251,251,250,249,248,247,246,245,244,243,242,241,240,239,238,237,236,234,234,232,231,231,230,229,229,229,229,230,231,231,231,230,230,230,234,235,236,237,237,239,241,242,243,244,245,247,248,249,250,246,245,244,242,243,241,240,237,235,234,233,232,232,230,230,230,228,226,225,224,221,221,219,221,222,221,220,220,220,\r\n 221,221,222,222,223,225,227,227,229,230,231,231,232,233,234,235,236,238,239,240,242,244,247,250,253,255,3,7,10,14,17,20,21,24,26,28,30,32,34,37,39,41,44,47,49,51,53,55,57,60,61,63,65,65,65,65,64,64,63,62,61,59,58,59,59,57,56,56,54,53,50,48,46,45,45,45,44,46,47,47,47,48,50,53,53,51,53,55,46,41,40,41,42,42,44,45,46,46,46,45,\r\n 44,44,44,42,39,37,34,32,33,32,30,29,27,25,25,21,17,15,14,13,12,12,12,8,4,1,255,252,250,248,246,245,243,241,239,237,235,234,231,229,227,227,225,223,222,220,219,218,217,216,215,213,213,212,211,209,209,208,208,212,216,214,205,201,198,193,191,190,192,196,199,201,201,201,202,205,205,206,208,208,208,209,210,210,211,214,215,217,220,222,225,228,232,235,240,243,246,249,252,255,\r\n 0,2,5,7,9,11,14,16,19,20,22,23,24,24,26,28,28,27,26,27,28,28,28,28,28,26,25,27,28,24,13,1,254,2,10,12,11,10,8,6,5,3,2,0,255,254,253,252,249,248,253,249,247,250,248,249,249,250,250,250,249,249,249,250,250,251,251,251,251,251,252,252,253,253,252,252,252,251,251,251,250,250,249,249,248,247,246,245,244,243,242,241,240,239,238,237,236,235,235,233,\r\n 232,231,230,230,229,228,228,228,228,228,229,229,229,229,228,229,233,235,236,237,238,239,240,240,242,245,246,247,246,248,251,247,245,247,243,243,244,241,237,234,232,232,231,231,230,229,228,228,227,224,221,221,220,220,222,223,221,221,221,221,220,220,220,221,223,226,228,228,229,229,230,231,232,234,234,234,234,236,238,239,243,244,245,246,249,250,254,3,9,12,16,18,18,21,24,26,28,30,33,35,\r\n 38,40,44,46,48,51,53,54,57,59,61,63,64,64,64,64,63,63,63,61,60,58,58,59,56,55,55,53,50,47,48,51,51,49,48,49,46,46,48,48,48,49,50,52,51,50,52,53,49,46,46,44,42,41,42,43,44,46,47,47,46,45,45,42,41,39,38,37,36,33,32,29,24,21,20,16,16,14,12,15,21,23,20,15,7,2,255,251,248,247,246,245,244,243,241,239,237,234,231,230,\r\n 228,226,225,223,221,220,218,218,219,217,216,214,213,212,213,213,211,210,210,209,207,207,205,205,205,202,196,191,194,199,199,199,200,200,198,197,200,202,202,204,205,207,208,211,212,213,215,218,219,222,225,229,232,235,239,243,247,251,253,255,0,3,5,8,10,13,16,18,21,22,23,25,25,26,28,28,27,26,27,28,29,31,31,31,30,30,31,29,19,3,254,2,8,12,12,12,10,8,6,4,\r\n 4,2,0,0,254,253,252,252,250,247,249,247,246,249,247,247,248,248,248,249,247,247,248,248,248,248,249,249,250,250,250,250,250,250,250,250,250,249,249,249,248,248,247,246,246,245,244,244,243,241,240,239,238,237,236,236,235,234,233,232,231,230,229,228,227,227,227,227,226,227,227,227,227,228,227,228,233,234,236,237,237,238,239,240,241,242,243,244,246,247,248,247,244,245,244,242,241,239,238,236,\r\n 233,231,230,231,230,228,228,227,226,225,223,222,222,222,223,223,223,222,221,221,220,221,221,222,223,225,225,227,229,229,230,230,231,232,233,234,235,236,236,236,237,238,239,243,248,249,250,255,4,10,13,17,18,19,20,23,25,28,31,34,37,40,43,45,47,50,52,54,56,59,61,62,63,62,62,62,62,62,61,60,58,58,58,56,56,53,51,52,55,53,54,56,56,57,57,56,54,52,50,52,\r\n 53,52,51,50,49,49,48,46,45,47,48,48,49,47,43,42,43,43,43,45,46,46,46,45,43,42,41,39,36,31,29,28,25,22,20,20,19,19,17,13,15,20,24,24,19,13,7,0,249,248,247,246,245,243,240,239,237,234,232,230,229,228,225,224,223,220,217,215,214,215,217,216,216,215,214,215,215,217,216,215,214,212,209,207,207,210,209,205,197,193,194,193,192,195,200,200,199,201,201,202,\r\n 204,206,208,209,211,214,215,217,219,223,226,229,232,236,239,244,248,251,254,0,1,3,6,9,12,15,17,20,22,23,24,25,26,27,28,27,26,27,28,28,32,33,31,31,28,28,22,11,3,6,12,15,15,14,12,11,9,7,5,3,2,0,255,254,253,252,251,250,249,246,249,248,245,248,247,246,246,247,247,247,246,245,246,246,246,247,247,248,248,248,248,248,248,249,249,248,248,248,247,247,\r\n 247,246,246,245,244,244,243,242,241,241,239,238,237,236,235,234,233,232,231,230,229,228,228,227,227,226,225,225,225,226,226,226,226,227,227,227,231,234,234,235,237,238,239,240,241,242,243,243,243,244,243,243,243,244,245,243,239,238,238,236,235,233,232,232,229,228,228,225,225,224,223,224,223,223,223,223,222,221,221,221,222,223,224,223,224,226,225,227,227,228,229,229,230,231,232,231,231,231,231,231,\r\n 233,235,237,240,244,247,249,251,0,4,6,9,12,15,18,21,23,26,29,32,35,38,41,44,46,48,51,53,56,58,60,62,61,61,61,60,60,60,58,58,57,55,54,53,53,51,51,50,51,52,52,56,57,58,57,54,54,54,52,51,51,51,52,50,47,47,45,46,46,49,47,48,48,50,48,46,46,43,39,37,41,46,45,45,45,43,41,40,38,33,30,28,27,30,31,28,25,21,19,19,\r\n 17,16,20,22,21,16,14,12,0,247,245,244,245,245,243,241,237,234,231,230,229,227,225,224,222,221,218,215,214,213,218,223,222,221,222,222,221,219,219,220,219,213,203,201,200,199,196,196,196,194,195,195,195,193,194,196,199,201,200,201,201,203,204,207,209,212,214,218,222,225,228,231,235,238,241,244,248,251,254,0,2,4,6,10,13,17,20,22,25,26,25,23,23,24,25,26,27,28,29,31,\r\n 34,33,24,20,16,11,9,10,14,17,17,16,15,13,11,9,7,5,4,2,0,255,254,253,252,251,250,249,248,245,248,247,244,247,246,246,245,245,246,246,245,245,245,245,245,246,246,246,246,247,247,247,247,247,248,247,247,246,246,246,245,245,245,244,243,242,242,241,240,239,239,237,236,235,234,233,232,231,230,229,228,227,226,226,225,225,224,224,224,224,225,225,225,226,225,225,228,232,232,235,\r\n 236,236,237,238,239,240,240,240,241,244,244,243,242,245,247,242,238,237,236,234,234,232,231,230,229,227,225,224,224,223,224,224,224,223,222,223,221,221,223,223,222,224,223,223,223,223,224,226,225,225,226,226,228,229,227,226,228,229,229,230,232,233,236,238,241,244,247,250,253,0,3,7,9,12,16,18,21,24,27,30,33,37,40,42,45,47,50,53,56,58,60,61,61,61,60,59,58,57,57,56,\r\n 54,52,52,51,51,50,49,48,48,48,50,54,56,56,56,55,54,54,53,52,51,50,49,47,46,45,45,45,46,48,47,46,46,47,48,48,48,45,40,35,37,43,43,43,42,42,41,39,38,37,36,36,37,37,36,35,32,30,28,26,25,26,28,26,24,19,11,7,6,250,239,239,245,245,244,243,240,235,232,230,228,227,225,224,222,221,219,217,214,213,216,212,208,213,219,221,222,223,221,213,\r\n 203,198,196,194,192,191,193,195,196,195,195,194,194,195,196,198,199,201,200,201,201,202,204,207,209,211,215,216,219,224,230,234,237,240,243,246,248,251,254,0,3,4,7,11,15,18,20,24,26,27,23,23,24,25,26,27,29,30,31,32,35,36,29,18,12,11,16,19,19,19,18,16,14,12,10,8,6,4,3,1,0,255,253,252,251,250,249,248,247,244,250,249,243,246,246,245,245,245,245,246,\r\n 245,244,245,245,244,245,245,246,245,246,246,247,246,246,246,246,246,245,245,244,244,244,243,243,242,242,241,240,238,238,236,235,235,233,232,231,230,228,227,227,225,225,224,223,222,222,221,221,221,220,220,220,221,221,222,223,226,229,230,234,234,234,235,236,238,238,238,238,240,242,240,241,242,245,245,240,237,236,234,233,232,231,230,230,227,225,224,224,224,224,223,224,224,223,222,222,223,223,222,222,\r\n 223,224,222,223,223,223,223,222,222,222,223,223,223,223,223,224,224,226,227,229,230,232,234,236,239,242,245,248,251,255,1,4,7,10,13,16,19,23,25,29,32,35,38,41,44,46,49,52,55,57,59,59,60,59,59,58,57,56,54,53,52,51,51,51,49,49,47,46,46,46,49,54,56,56,55,54,53,52,53,53,51,49,48,49,48,45,45,44,46,48,46,44,44,44,45,46,45,39,38,34,\r\n 34,37,39,40,40,40,40,40,39,39,39,38,38,37,36,35,35,34,33,33,32,31,28,27,23,21,21,11,3,249,239,235,238,241,241,242,239,236,233,230,228,226,224,223,221,220,220,219,217,216,217,216,219,220,223,221,216,213,212,209,203,198,196,195,193,192,191,191,191,191,191,191,191,193,195,198,202,202,201,200,202,204,205,208,210,212,213,216,220,225,229,232,237,241,243,246,248,249,253,0,\r\n 2,5,9,12,15,17,20,23,24,23,23,24,25,26,29,30,31,31,32,34,38,41,37,24,15,17,21,21,20,18,17,15,12,10,8,7,5,3,2,0,255,254,253,252,250,249,248,247,246,244,246,242,243,245,246,245,245,244,244,244,244,245,244,244,244,244,244,245,245,246,245,246,246,245,245,245,245,244,244,244,243,243,242,242,241,240,240,239,238,236,235,235,234,233,232,231,229,227,226,225,\r\n 224,223,222,222,222,221,221,220,220,219,220,220,221,220,221,221,223,228,227,230,234,233,234,235,236,236,237,237,239,240,238,240,241,244,245,242,237,235,233,232,231,230,230,228,226,224,224,224,224,224,225,225,224,224,223,222,223,223,222,223,225,224,223,224,222,221,220,220,218,218,219,219,219,220,221,222,224,225,227,229,230,231,233,235,237,241,243,247,250,253,0,2,5,8,11,14,17,21,24,27,\r\n 30,34,36,39,43,45,49,51,54,56,57,58,59,58,57,56,55,54,52,51,51,50,49,49,49,49,51,51,48,49,53,54,55,55,54,54,54,54,53,52,50,49,49,47,45,44,44,44,45,46,44,43,43,42,43,43,44,37,30,29,26,28,33,38,39,40,40,39,39,39,39,38,37,36,36,35,35,34,32,31,30,29,27,26,25,21,19,14,11,255,243,239,239,238,236,238,238,236,232,230,\r\n 228,225,224,222,221,220,219,222,224,224,222,224,228,230,228,221,211,207,207,208,207,205,201,199,197,196,195,193,194,199,203,203,201,203,205,207,209,211,212,210,207,206,207,207,210,212,216,218,221,225,228,232,238,240,243,244,246,249,252,255,2,6,10,12,15,18,21,24,24,23,25,25,26,28,30,31,31,32,34,37,39,42,38,25,16,20,22,21,20,18,15,14,11,10,7,6,4,2,0,0,\r\n 254,254,252,251,250,249,248,247,246,244,242,243,243,244,245,245,245,244,244,244,245,244,244,244,244,245,244,244,244,245,245,245,245,245,245,245,245,244,244,243,243,242,242,241,240,240,239,238,237,236,235,234,234,232,231,230,228,227,225,224,223,223,222,221,221,220,220,219,219,218,218,218,218,218,219,220,220,224,225,226,231,234,232,232,233,234,235,236,239,237,237,239,241,243,242,240,236,234,233,231,\r\n 231,230,228,227,226,225,225,225,225,226,227,227,226,224,223,223,223,223,224,225,225,224,224,222,220,220,218,216,215,216,217,217,217,218,219,221,223,225,226,228,229,230,232,234,236,239,242,245,249,252,255,1,4,6,9,13,16,20,23,27,30,33,37,39,42,45,48,51,53,54,55,56,56,55,56,55,53,52,51,50,49,48,49,47,48,48,50,49,45,44,48,53,55,56,55,52,51,52,52,50,\r\n 49,47,46,45,44,43,42,42,42,43,43,43,43,44,42,43,37,32,29,25,23,25,29,36,39,39,38,38,37,36,36,37,37,36,35,36,34,33,30,28,26,24,24,26,25,21,18,16,14,4,248,244,245,243,241,239,242,243,238,231,228,226,224,222,220,219,219,219,214,212,217,226,228,230,229,227,223,212,205,205,204,204,204,203,202,202,203,209,212,212,209,204,199,197,199,205,211,212,213,214,\r\n 215,214,212,209,211,213,215,217,221,224,227,232,237,240,242,242,246,249,253,0,3,7,10,12,16,18,21,23,26,26,26,27,28,29,31,30,33,36,36,38,42,41,36,24,17,21,23,21,19,16,14,12,10,8,6,5,3,1,0,255,254,253,253,252,250,248,248,247,247,245,247,249,243,244,245,246,246,246,245,244,245,245,245,244,244,244,244,244,244,244,244,244,244,244,244,244,244,243,243,243,\r\n 242,242,241,241,240,239,239,237,237,236,235,234,233,232,231,230,228,227,225,225,223,222,221,221,220,220,219,218,218,218,217,217,217,217,218,218,219,221,224,225,225,231,232,230,231,231,232,235,234,234,236,236,237,239,241,240,237,235,232,230,229,228,228,228,227,227,227,228,227,226,227,228,227,226,225,225,226,225,225,225,223,225,224,221,218,219,216,214,214,214,214,214,215,216,218,220,222,223,224,226,\r\n 228,230,231,233,235,237,240,244,246,250,253,0,2,5,8,12,16,19,23,26,29,33,35,38,42,45,47,50,51,51,51,52,52,52,53,53,50,48,48,48,46,46,46,47,47,51,52,48,47,50,50,52,52,51,48,47,49,51,50,47,46,45,45,45,44,43,43,44,43,43,43,42,42,40,40,40,31,29,28,27,23,21,25,31,36,38,37,34,30,30,31,29,34,35,33,28,28,28,26,25,\r\n 23,21,19,18,19,19,17,16,13,9,5,255,248,247,247,247,247,245,244,241,234,228,226,224,222,219,218,215,213,211,216,226,229,229,229,228,229,229,225,217,211,207,208,209,213,217,219,218,217,215,213,213,208,203,200,201,204,205,209,212,213,215,216,216,214,216,218,220,223,226,227,232,236,240,242,242,246,250,253,0,4,7,10,13,16,18,21,23,26,29,27,27,29,32,32,33,35,38,39,42,\r\n 44,39,28,17,18,23,22,21,19,16,14,12,10,8,6,4,2,1,1,0,255,253,253,251,250,249,248,248,247,246,244,245,245,244,245,246,247,246,246,245,246,246,246,245,245,244,244,244,244,243,243,243,243,243,244,244,244,243,243,242,242,242,241,241,240,240,239,237,237,236,235,234,233,232,231,230,228,227,226,225,224,223,222,221,220,220,218,218,218,217,217,217,217,217,217,217,218,219,220,224,\r\n 223,226,229,227,229,229,230,233,234,234,237,237,236,237,239,239,237,233,230,229,228,228,229,228,227,227,228,228,229,228,228,228,228,227,227,227,226,225,225,223,225,225,221,220,218,218,214,213,212,213,213,214,214,216,217,219,220,222,223,226,226,228,229,231,233,236,239,241,245,248,251,254,0,4,7,11,14,18,21,25,28,31,35,38,41,44,46,47,47,48,48,49,49,49,48,48,47,45,44,43,\r\n 42,42,43,45,48,49,46,46,47,45,43,45,45,42,42,43,45,48,47,47,47,48,48,46,45,44,44,44,43,42,40,39,40,38,37,38,32,28,29,26,20,14,11,18,28,30,29,25,17,12,16,14,21,27,25,23,26,26,24,22,21,19,16,13,10,11,14,15,12,11,7,7,5,0,255,252,248,246,244,242,240,235,230,228,228,229,228,228,225,221,230,231,230,234,230,228,231,234,235,234,\r\n 231,226,226,226,225,223,222,221,219,218,218,217,216,215,214,212,213,212,213,215,213,214,215,215,216,218,221,221,223,226,229,231,236,240,241,242,246,250,255,1,4,8,10,13,16,19,22,24,27,29,28,28,30,33,34,35,36,40,44,42,38,32,19,17,22,23,22,21,19,16,14,12,10,8,6,5,4,2,2,0,255,253,252,251,250,249,248,247,247,247,245,246,246,244,246,246,246,246,247,246,\r\n 247,247,247,247,246,245,245,244,244,244,244,244,244,244,244,244,244,244,243,243,242,242,241,241,241,240,240,238,237,236,235,235,234,233,232,230,229,228,226,226,225,224,223,222,221,219,219,218,217,217,217,216,216,216,216,216,217,217,218,221,223,225,225,226,226,227,228,230,233,233,233,235,236,236,237,236,233,232,230,230,229,230,230,230,227,224,226,227,229,229,229,228,228,229,227,227,227,227,224,225,\r\n 225,223,220,219,218,215,212,210,210,211,211,212,213,215,217,218,219,221,223,224,225,226,228,229,232,234,237,239,242,246,249,253,0,3,6,9,13,16,20,24,27,30,34,37,39,41,42,43,44,44,45,45,46,44,44,43,42,42,41,40,41,42,44,47,48,46,46,48,47,44,43,41,40,40,41,44,49,50,50,50,49,48,47,44,42,38,36,38,38,38,37,36,36,36,34,34,33,29,28,27,\r\n 23,17,12,10,16,20,17,9,5,5,7,7,17,27,25,19,24,25,24,21,18,16,14,10,6,4,8,11,11,10,7,2,0,254,251,248,246,246,244,242,240,237,235,235,235,237,236,235,232,228,223,221,221,227,229,234,236,235,234,233,232,232,230,228,226,225,224,222,221,220,219,219,218,217,217,217,217,218,218,219,219,219,220,220,219,218,220,221,222,223,226,230,235,236,238,242,246,250,254,2,\r\n 5,8,11,14,17,20,23,25,28,29,30,31,33,35,36,37,37,38,41,40,34,22,13,20,24,24,22,21,19,16,15,12,10,8,7,5,4,3,1,0,0,254,252,250,249,248,248,247,247,247,245,249,252,245,247,247,247,247,248,247,247,247,247,247,247,245,245,245,245,245,244,245,245,245,245,245,245,244,244,243,243,242,242,242,241,241,240,239,238,237,236,235,234,233,232,231,230,228,228,226,\r\n 226,225,224,222,221,220,219,218,217,217,216,216,216,216,216,215,216,216,217,218,220,220,223,226,225,225,226,227,228,231,233,235,235,235,236,234,233,233,231,229,228,228,230,231,228,227,229,230,230,230,229,229,229,228,227,227,226,227,226,225,224,221,219,218,215,210,209,208,208,209,209,211,212,213,215,218,219,220,222,223,224,225,227,228,229,232,234,238,241,244,248,251,254,1,4,8,12,15,19,22,\r\n 26,30,32,35,36,38,39,40,41,42,42,42,42,42,40,38,38,38,38,39,40,42,43,44,46,45,43,42,41,40,37,38,43,45,46,48,52,52,51,50,48,46,45,42,39,35,31,29,30,32,33,34,33,33,33,32,31,29,28,26,25,23,19,13,9,9,5,1,1,5,7,10,13,14,15,18,27,25,22,19,17,15,11,6,2,0,4,6,6,7,7,4,1,254,252,250,248,246,246,244,\r\n 240,237,238,239,239,238,236,236,234,230,223,215,209,211,219,227,238,238,236,233,232,231,231,230,228,227,226,224,223,222,222,221,219,219,219,219,218,219,220,221,222,222,222,222,221,220,220,222,223,225,229,232,234,236,239,242,246,251,255,1,5,8,11,15,18,21,23,26,28,29,31,32,32,35,37,37,40,37,37,40,39,24,11,23,26,26,24,21,19,17,15,13,11,9,7,5,4,4,3,2,\r\n 0,255,252,251,249,249,248,248,248,247,245,246,248,245,248,249,248,248,248,249,248,247,247,246,247,247,246,246,246,246,246,246,246,246,246,246,246,246,245,244,244,243,243,242,242,242,242,241,240,239,237,236,235,233,233,231,230,229,229,228,227,225,224,223,222,221,220,219,218,218,217,216,216,216,216,215,216,216,216,217,219,220,220,224,223,222,224,225,226,228,230,232,234,233,235,235,233,235,232,230,\r\n 228,227,227,229,231,229,229,230,230,230,229,228,227,227,227,227,229,228,226,224,223,221,218,217,213,209,207,206,206,207,208,210,211,213,214,218,219,219,221,222,222,223,225,226,228,230,233,235,239,241,245,249,252,0,2,7,10,13,17,21,25,28,30,32,33,34,36,37,38,38,39,40,39,38,38,37,35,35,35,36,39,43,45,48,45,43,41,42,42,41,40,45,49,50,53,55,53,52,50,48,\r\n 45,42,40,39,36,32,30,30,29,31,33,33,33,33,32,30,29,28,27,27,28,28,29,23,15,9,7,7,7,9,11,14,15,16,16,20,23,22,21,19,16,12,9,4,0,253,252,255,254,1,5,4,1,0,253,252,249,247,245,245,243,239,237,237,238,236,234,235,232,230,222,212,209,208,210,215,228,241,240,236,233,231,231,230,229,228,227,226,225,224,223,222,222,221,220,219,218,220,221,223,\r\n 223,224,224,225,224,220,220,222,224,226,229,231,233,236,239,242,246,251,255,1,4,8,12,15,18,21,23,26,28,31,32,33,31,34,35,34,34,35,37,41,42,33,15,24,27,27,25,22,20,17,16,14,12,10,9,7,6,5,5,3,1,255,253,251,250,249,248,248,248,248,247,247,250,248,248,248,248,248,248,248,248,247,248,248,247,247,248,247,247,247,247,247,247,247,247,247,247,248,247,246,\r\n 246,245,244,243,243,243,243,242,242,240,239,237,236,235,233,232,231,230,229,228,227,226,225,224,223,221,221,219,219,217,217,217,216,216,215,215,215,215,216,216,216,218,218,221,224,221,222,224,226,227,229,230,232,232,233,234,231,233,232,231,230,229,228,229,230,229,230,230,230,230,230,229,228,228,229,229,229,228,226,224,222,221,218,216,213,211,207,206,206,206,207,208,210,212,214,219,218,218,220,221,\r\n 221,221,222,223,226,228,231,233,236,240,243,247,250,254,1,4,8,12,16,20,23,24,27,28,30,31,33,34,34,35,36,36,38,34,34,33,33,33,34,36,38,39,40,41,40,40,42,43,43,44,45,48,49,51,56,55,51,48,47,44,41,39,38,36,33,30,28,28,29,30,32,33,32,33,32,30,29,27,27,27,30,30,28,25,21,18,14,12,11,12,16,19,17,17,16,20,21,20,18,18,\r\n 14,11,7,3,0,252,248,245,244,245,254,0,255,255,254,252,251,247,245,244,243,239,237,235,234,232,233,232,231,228,220,212,213,213,211,209,212,228,238,237,235,233,232,231,230,229,228,227,227,225,224,223,222,221,221,220,219,220,222,223,224,225,225,227,223,216,217,220,224,229,232,234,234,236,240,243,248,251,0,2,6,9,13,16,18,21,24,26,29,30,32,31,26,31,32,33,35,37,38,42,\r\n 40,33,17,24,28,28,26,24,21,19,16,15,13,12,10,9,7,7,6,4,1,0,254,253,251,250,249,249,248,248,249,247,249,251,248,248,248,248,248,248,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,248,248,247,246,245,244,244,244,244,243,242,242,241,239,237,236,234,233,232,231,230,229,229,227,226,225,224,222,221,220,219,218,217,216,216,215,215,215,215,215,215,215,\r\n 215,216,217,218,223,223,221,222,224,227,229,230,231,232,233,234,234,233,232,233,233,233,230,230,229,228,228,229,229,229,229,228,227,228,228,228,228,228,227,226,224,221,218,214,213,213,209,206,205,205,206,207,209,211,212,213,215,217,218,218,218,219,221,222,224,226,229,231,234,238,241,245,249,252,0,3,7,11,14,18,19,22,23,25,27,28,29,30,31,33,32,33,32,32,31,31,31,32,33,34,\r\n 35,37,38,38,39,41,44,44,44,43,46,51,54,55,53,50,48,46,43,41,39,36,34,32,29,27,27,27,27,28,29,31,32,31,30,29,29,29,28,27,27,26,25,23,21,21,21,19,16,15,15,15,16,17,17,17,19,18,16,15,12,8,6,2,0,252,247,243,241,241,246,253,255,253,253,252,251,249,243,243,242,238,235,234,231,231,231,232,231,227,221,208,210,212,212,210,209,216,227,236,\r\n 237,235,234,232,231,230,229,229,228,227,225,224,223,223,223,221,221,222,222,224,225,226,228,226,217,214,215,218,221,227,232,235,235,238,241,244,249,253,0,3,6,10,13,17,19,22,24,27,29,30,31,29,26,30,33,35,37,37,39,42,42,35,20,23,29,28,26,24,22,19,17,16,14,13,11,10,9,7,6,4,3,0,255,254,253,252,250,249,249,249,249,249,248,248,249,249,250,249,248,248,\r\n 250,248,249,249,250,250,251,251,251,252,252,251,251,252,251,251,251,251,250,249,248,247,247,245,245,245,244,244,243,242,241,240,240,238,237,236,234,233,232,230,229,228,227,225,224,223,222,220,219,217,217,215,215,215,214,214,213,214,214,214,215,215,216,217,219,222,221,222,224,225,227,229,232,232,233,233,234,234,233,233,234,233,231,229,228,228,228,229,229,229,230,229,229,229,229,228,228,228,227,227,\r\n 225,221,218,215,210,211,210,208,205,205,205,207,208,210,211,212,214,215,215,216,216,217,219,221,222,224,227,229,232,236,239,243,247,251,254,1,5,9,12,14,16,18,20,22,23,25,26,28,29,30,30,33,33,30,31,30,30,31,32,33,34,35,36,37,39,40,41,44,42,40,43,48,49,48,48,46,44,42,39,37,34,31,30,29,28,27,27,26,26,27,28,30,30,31,31,30,29,29,28,27,\r\n 26,24,23,23,22,21,20,18,17,16,16,15,16,17,18,18,19,17,15,13,11,8,5,2,0,253,249,245,242,239,239,243,250,250,249,251,251,251,244,240,242,238,234,233,232,229,229,228,223,224,218,207,209,210,211,210,209,207,209,215,223,230,233,235,232,231,230,230,228,227,226,225,225,224,224,221,224,225,223,224,226,227,226,217,213,216,216,219,224,229,233,235,235,238,242,246,249,254,0,5,\r\n 8,11,14,17,20,23,25,28,30,30,30,26,26,32,34,36,37,38,39,42,42,35,24,22,30,30,28,26,23,21,20,17,15,14,12,11,9,8,6,4,3,2,0,255,254,253,252,251,251,250,250,250,250,250,251,250,250,250,250,251,252,254,252,251,252,251,253,253,254,254,254,255,255,255,254,254,253,253,252,251,250,250,248,248,247,246,245,245,244,244,242,241,240,240,238,237,235,234,232,231,\r\n 230,228,227,226,225,223,222,221,219,218,216,215,214,214,213,213,213,213,213,213,214,215,215,215,216,219,221,221,222,224,226,228,232,233,233,233,234,235,235,233,233,231,230,229,229,230,230,231,231,232,232,232,228,228,230,229,229,228,228,228,225,222,220,215,210,211,210,209,207,205,205,206,207,209,210,211,212,212,213,213,214,216,217,218,220,223,225,228,231,234,238,241,245,249,253,0,3,7,9,11,\r\n 13,15,17,18,20,22,23,25,26,28,28,28,28,28,29,29,29,29,31,31,33,34,38,38,37,36,43,43,41,41,43,43,40,40,40,41,40,38,36,33,30,28,28,29,29,28,27,27,27,28,29,29,30,31,31,31,30,29,28,26,25,24,23,23,21,19,17,16,15,16,15,15,17,16,20,17,18,15,14,12,11,8,6,3,0,254,250,246,242,238,236,235,243,244,244,246,249,252,246,240,\r\n 239,240,235,232,231,228,228,225,216,219,212,206,208,209,210,210,208,206,203,200,202,207,218,232,234,232,231,229,227,226,227,227,227,227,224,218,224,226,225,224,226,227,226,221,216,215,218,222,226,228,233,236,237,240,244,247,251,254,1,6,9,12,15,18,21,24,27,29,30,30,26,24,29,33,35,36,38,39,40,42,43,37,35,24,31,31,30,27,25,23,21,19,17,15,13,11,9,9,7,5,\r\n 4,3,2,0,0,254,254,253,252,251,251,250,250,250,250,251,251,251,251,251,252,253,0,255,0,254,252,254,255,0,0,0,1,0,0,0,0,255,255,254,253,252,251,249,249,248,247,246,245,244,243,243,241,241,240,238,237,235,233,232,230,229,227,226,225,223,222,221,219,218,217,215,214,214,213,213,212,212,212,212,213,213,214,214,214,219,220,221,221,223,225,228,232,234,233,234,235,236,236,234,\r\n 232,231,229,229,230,229,230,231,231,232,231,230,227,226,227,231,232,231,229,228,225,223,220,218,212,212,211,209,207,205,205,206,207,209,210,210,210,210,210,211,212,213,215,216,219,221,223,226,229,232,236,239,243,247,251,255,2,4,6,8,10,11,13,15,17,19,20,21,23,25,26,26,26,26,27,27,27,27,28,30,31,34,39,42,43,41,41,39,40,39,39,39,38,37,36,36,36,34,32,29,\r\n 28,28,27,28,29,28,28,28,29,28,29,30,30,30,30,30,29,29,28,26,25,23,22,21,20,16,15,15,14,14,14,13,16,15,15,14,16,15,13,12,12,10,8,4,0,254,250,246,242,238,233,231,233,237,238,237,237,238,239,238,238,236,233,227,226,226,226,221,215,214,211,209,210,210,210,210,208,204,201,197,194,193,197,204,206,213,225,231,231,230,229,228,230,222,210,205,209,220,218,222,\r\n 224,226,225,224,220,220,223,226,228,231,235,237,239,241,244,248,252,0,3,8,11,13,16,20,23,26,29,31,31,29,25,26,33,34,35,37,38,40,41,42,44,39,48,33,30,33,33,30,27,24,22,21,19,17,15,13,11,9,8,6,5,4,3,1,0,0,255,254,253,252,251,251,250,250,250,251,251,252,252,252,253,252,254,255,0,254,254,254,255,0,1,2,2,3,3,2,2,1,1,0,\r\n 0,255,254,252,251,249,248,248,246,245,244,243,242,241,240,239,237,236,234,233,231,229,228,226,225,224,222,221,219,218,216,215,214,213,212,212,212,211,211,211,212,212,213,214,214,215,219,221,222,221,224,226,230,234,234,235,236,237,237,236,235,232,231,232,229,226,227,228,228,228,230,231,231,230,228,230,232,231,231,230,228,226,224,219,213,213,212,209,207,205,205,205,207,208,208,208,208,208,208,209,\r\n 209,211,213,214,216,219,222,224,228,231,234,238,242,245,249,253,0,1,3,6,7,9,10,12,14,15,16,18,20,21,23,23,25,26,26,26,25,26,28,29,32,34,35,33,32,32,36,39,39,39,40,39,38,35,34,34,34,32,30,27,26,26,25,26,28,29,30,29,29,29,29,29,29,29,28,28,28,30,29,26,24,22,21,20,18,15,14,14,13,13,13,13,13,15,13,12,12,15,14,13,\r\n 11,11,8,5,0,255,251,246,241,237,232,230,228,229,231,230,227,229,237,234,234,232,230,227,226,227,224,217,213,213,211,211,212,211,209,209,206,203,200,196,193,191,189,189,190,192,198,206,209,212,214,212,213,207,200,201,205,211,212,219,222,224,224,224,225,226,226,227,229,233,235,238,240,243,247,250,254,1,5,9,12,15,18,21,24,28,30,31,32,26,24,29,33,35,35,37,38,40,41,43,\r\n 44,41,45,35,32,35,34,31,29,28,25,23,22,18,16,15,13,11,9,8,7,5,4,3,1,0,0,255,254,253,252,251,251,251,251,251,252,252,253,253,253,254,254,255,255,0,6,2,4,6,4,4,5,3,4,4,3,3,3,2,2,1,0,255,254,252,251,249,247,246,245,244,242,241,241,239,238,237,235,234,232,230,229,227,225,224,222,221,219,218,216,215,214,213,212,211,211,211,211,211,\r\n 211,212,212,213,214,215,216,220,221,222,223,226,229,234,236,236,236,237,239,238,237,233,232,234,230,225,226,228,228,229,229,231,231,232,231,229,232,232,232,231,229,226,224,218,213,214,212,210,207,205,204,205,206,207,207,207,207,206,206,207,208,210,211,213,215,218,220,223,226,229,233,236,240,244,247,251,253,255,1,2,4,6,8,9,11,12,13,15,17,18,21,22,23,24,24,24,25,26,27,29,\r\n 32,35,34,31,31,34,36,39,39,40,40,37,35,32,32,32,32,30,28,27,26,25,25,27,31,32,34,34,33,32,30,30,29,27,26,26,27,29,28,26,23,21,20,20,17,15,14,13,13,13,13,13,12,13,14,11,11,11,12,11,12,9,8,4,0,255,253,247,242,236,231,229,227,226,225,223,226,231,235,233,231,230,227,226,225,223,217,214,213,211,211,212,211,209,209,208,203,201,200,197,\r\n 196,194,193,191,190,191,193,195,199,203,206,209,210,207,205,208,207,210,214,218,220,222,223,225,226,226,227,229,230,233,236,238,241,244,249,251,255,3,7,11,14,17,20,23,26,28,29,29,28,25,28,33,36,37,36,37,39,40,42,43,45,42,39,36,39,38,36,34,32,28,27,26,24,22,19,17,14,13,12,10,9,7,6,5,3,2,1,0,0,254,254,253,252,252,252,252,252,252,253,253,\r\n 254,255,0,0,0,0,1,1,5,6,8,7,14,8,3,4,4,4,4,4,3,3,2,1,0,255,253,251,249,247,246,244,243,242,241,240,238,237,236,234,233,231,229,227,226,224,223,221,219,218,217,215,214,213,212,211,211,210,210,210,211,211,212,212,214,215,216,218,221,222,222,225,227,231,236,237,238,238,240,243,240,237,235,235,229,225,225,227,229,230,230,229,229,231,233,230,233,234,233,233,\r\n 229,229,226,224,219,214,213,210,208,206,205,205,205,206,207,206,206,205,205,206,208,209,210,212,214,216,219,222,224,228,231,234,238,242,246,249,251,253,255,0,1,3,5,6,8,9,11,13,15,17,18,20,21,21,22,22,23,25,26,28,30,33,33,31,34,34,38,40,38,38,38,35,33,31,30,30,29,28,27,27,28,28,28,30,33,35,36,36,36,35,31,29,29,27,25,25,28,28,27,25,\r\n 23,21,19,17,15,15,15,14,14,13,13,13,13,11,13,11,9,10,11,10,10,9,7,4,1,0,252,248,241,235,230,227,226,225,224,223,229,229,228,226,226,225,224,222,218,215,213,213,212,210,210,210,209,209,208,205,203,202,200,198,197,197,196,195,194,195,196,198,201,202,204,205,207,207,208,204,209,211,215,217,219,221,223,225,226,226,226,228,230,233,235,239,243,246,250,253,0,5,8,12,\r\n 15,19,20,22,25,27,27,25,24,29,33,36,35,36,37,37,39,41,43,44,45,46,42,34,37,38,35,34,34,31,28,27,27,24,22,19,17,15,14,13,10,9,8,7,5,3,2,1,0,0,255,255,254,254,254,253,253,253,253,253,255,0,0,0,1,1,2,3,4,4,5,6,7,12,13,10,8,5,5,4,4,4,4,3,3,1,255,252,250,248,247,245,244,243,241,240,238,237,236,235,\r\n 233,231,229,228,226,225,222,221,220,218,217,216,215,214,212,212,211,210,210,210,210,210,211,212,213,214,216,217,220,222,224,224,226,230,234,238,239,241,242,243,244,240,237,234,229,226,226,229,229,228,229,233,236,234,233,231,232,232,231,231,231,231,230,226,223,218,214,212,210,207,206,205,205,205,205,205,205,204,205,206,207,208,209,211,213,216,219,221,223,227,229,232,236,240,243,246,248,250,252,254,\r\n 255,0,2,3,5,7,10,11,14,16,17,18,19,20,20,22,23,24,25,27,28,30,31,33,35,38,40,39,38,37,36,33,32,30,30,28,27,27,26,28,29,31,31,33,34,36,37,36,34,34,33,29,27,26,24,25,28,28,27,27,23,20,18,14,14,16,18,16,14,14,13,12,12,11,12,11,8,7,8,9,9,7,6,4,2,0,252,246,239,233,229,227,225,224,224,223,227,230,227,221,\r\n 219,218,215,212,210,209,212,211,210,208,209,208,206,205,205,203,202,202,201,199,198,197,197,197,199,200,200,202,201,202,202,203,204,206,203,202,210,211,215,216,219,221,222,224,226,227,227,229,231,234,237,241,244,247,251,255,2,6,10,15,17,24,16,17,21,24,26,26,29,33,35,36,38,37,37,38,39,42,44,46,46,48,45,34,29,36,37,36,34,32,32,30,28,26,24,22,20,19,17,16,\r\n 14,12,11,9,7,5,4,3,3,1,1,0,0,0,0,0,255,255,254,255,0,0,0,1,2,2,4,4,5,7,7,7,6,6,7,9,10,10,12,7,4,4,3,3,3,2,0,254,251,249,247,246,245,243,241,240,239,237,236,234,233,231,230,228,226,224,223,222,220,219,217,216,215,214,212,211,211,210,210,210,210,210,211,212,212,214,215,217,219,220,224,224,226,229,232,237,240,242,243,244,\r\n 244,242,240,236,231,228,230,231,230,232,237,241,241,239,238,234,234,235,235,234,233,232,233,230,227,220,218,213,210,208,207,206,206,205,205,205,204,204,205,206,207,208,209,211,213,215,218,220,223,226,228,231,235,238,241,244,246,248,249,251,253,255,0,2,4,7,9,11,14,15,16,17,17,18,20,21,22,23,24,25,26,27,28,33,36,38,38,39,38,35,34,32,31,29,28,26,26,26,27,27,\r\n 30,31,32,33,34,35,37,33,32,32,30,29,26,25,24,26,28,28,27,27,22,19,16,13,14,17,17,16,14,13,11,11,11,10,11,10,8,6,6,6,8,7,5,3,1,254,249,244,237,231,227,225,224,224,223,224,224,227,230,228,219,217,213,211,212,209,210,209,207,206,205,204,202,201,200,201,199,199,198,198,199,199,197,197,200,201,200,200,200,201,201,203,204,207,203,204,210,213,214,216,\r\n 219,220,222,224,226,227,229,230,232,235,239,242,245,249,253,0,4,8,12,17,19,25,19,17,18,22,26,29,32,34,35,36,37,38,39,40,40,42,44,47,47,48,48,40,32,27,31,35,36,36,33,31,29,31,26,25,22,21,19,16,14,14,12,11,9,8,7,5,4,3,2,2,1,1,1,0,1,0,0,0,2,1,1,2,2,3,4,6,6,7,8,9,9,9,9,9,8,8,7,8,\r\n 14,11,8,1,0,0,0,254,252,250,248,247,246,244,242,241,239,237,236,234,233,232,230,228,226,225,223,222,220,219,217,216,215,213,213,212,210,210,210,209,210,210,210,211,212,214,215,217,219,221,223,225,226,228,232,234,240,242,244,245,245,243,241,238,233,232,233,233,239,241,242,242,243,244,239,236,239,240,239,236,236,235,233,229,224,221,219,215,214,208,206,206,207,206,206,205,205,205,206,206,\r\n 207,208,210,212,213,215,217,219,221,223,227,230,233,236,240,243,244,246,247,249,251,253,255,0,3,6,8,11,14,15,17,17,17,18,19,21,22,23,24,24,24,25,27,33,35,36,37,37,37,35,33,32,30,29,27,26,26,26,28,29,30,31,32,33,32,32,32,30,30,30,28,27,25,24,23,24,27,28,28,27,20,17,14,13,14,17,16,14,13,12,11,10,10,10,9,10,9,6,5,4,\r\n 6,6,5,2,255,252,247,240,234,230,226,224,223,223,223,223,222,224,225,227,221,216,215,212,213,208,205,204,204,204,204,202,199,198,198,198,197,197,198,197,197,196,195,195,196,199,199,198,198,200,201,202,203,207,206,206,210,214,215,216,219,220,222,224,226,227,229,231,233,237,240,243,247,251,254,1,5,10,14,17,19,22,23,24,26,28,31,32,34,35,35,36,37,39,39,40,41,44,45,47,\r\n 48,48,49,47,43,32,26,32,37,37,36,34,32,30,27,26,23,22,19,19,18,16,15,13,11,11,8,7,7,6,5,4,3,3,2,4,2,2,3,2,3,2,2,2,3,4,5,6,7,8,9,9,9,10,9,9,9,9,8,7,7,6,12,16,9,0,255,254,252,251,249,248,246,245,243,241,240,238,237,235,234,232,230,228,227,225,223,222,221,219,218,216,215,214,212,211,211,210,209,209,\r\n 210,210,211,211,212,214,215,217,219,221,223,225,226,227,229,235,240,242,245,247,248,248,244,242,238,235,236,237,243,243,243,244,245,246,239,238,237,237,235,234,233,235,235,232,229,224,216,213,212,212,209,206,206,206,205,205,206,206,206,207,208,210,212,213,213,215,216,218,221,223,226,228,231,235,238,241,242,243,245,247,249,251,253,255,1,4,7,11,14,16,18,18,18,19,20,21,22,23,24,24,\r\n 24,25,28,32,34,35,35,35,35,33,32,31,29,28,28,27,27,27,29,30,31,31,32,32,31,30,28,27,26,28,27,26,24,22,22,22,25,29,29,24,17,14,14,13,14,15,15,13,12,11,10,9,10,9,9,9,8,6,4,3,5,6,4,0,254,249,245,238,233,229,226,224,222,222,221,221,221,223,225,223,217,214,211,209,207,202,201,200,199,200,201,199,197,195,195,194,194,194,193,192,\r\n 193,192,193,194,195,197,197,195,198,200,201,201,203,206,206,206,211,215,216,217,219,221,223,225,227,229,230,232,235,237,242,246,249,253,0,4,8,12,15,18,19,21,27,25,29,31,32,34,35,36,36,37,38,39,40,41,42,44,46,48,48,49,48,49,47,44,35,30,37,37,37,34,33,32,29,29,26,25,23,20,19,18,16,16,14,12,12,11,9,8,7,6,5,4,5,5,5,6,4,4,\r\n 4,4,4,4,4,5,6,8,8,9,9,10,9,9,9,9,9,9,8,8,8,7,5,5,19,13,255,254,253,252,250,248,247,246,244,242,240,239,237,235,234,233,231,229,228,226,223,222,221,219,218,216,215,214,213,212,211,210,210,209,209,210,211,211,213,214,215,217,219,221,223,225,227,228,228,237,242,243,246,248,250,252,251,247,242,238,240,241,244,245,246,247,248,244,241,242,240,239,239,238,\r\n 237,236,235,234,232,231,222,221,216,213,209,205,199,195,192,194,198,200,204,207,210,211,212,211,212,215,216,217,219,221,224,227,230,233,236,239,240,242,243,245,247,249,251,254,0,2,6,9,13,15,17,18,19,20,21,23,24,25,25,25,25,26,28,31,32,34,34,34,33,32,31,30,29,28,27,27,27,26,29,30,31,32,31,31,29,28,26,25,25,27,27,25,23,21,21,21,22,23,23,20,\r\n 15,12,13,13,13,13,13,13,12,10,9,8,9,8,7,6,7,5,3,2,1,3,4,0,253,247,242,237,233,229,226,224,223,221,220,220,221,223,222,219,215,209,207,207,205,202,201,199,196,194,197,193,192,191,191,190,190,189,189,189,189,191,191,192,195,195,194,193,195,196,197,201,203,205,204,205,211,215,216,218,219,222,224,226,228,230,231,233,235,240,244,248,251,255,2,5,9,13,17,20,\r\n 22,23,30,27,31,33,34,35,36,37,38,39,39,40,41,41,44,46,47,48,49,49,49,50,49,46,41,31,36,40,41,38,35,33,31,28,28,27,24,21,22,21,19,18,15,15,13,13,11,10,9,7,7,6,6,5,6,6,5,5,6,5,5,6,6,7,8,9,8,9,9,9,9,9,8,8,8,8,7,7,7,7,7,5,12,9,255,255,254,252,250,249,248,247,245,243,242,240,238,236,\r\n 234,233,232,230,228,226,224,222,221,219,218,217,215,214,213,212,211,211,210,210,210,210,211,212,213,214,216,218,220,222,223,225,227,229,229,232,239,244,244,245,250,252,254,251,244,244,243,246,246,247,248,249,250,245,244,243,244,243,241,240,238,235,233,230,229,229,230,231,231,229,222,212,201,195,196,202,201,197,195,200,205,209,209,210,212,214,216,217,218,220,223,225,228,232,235,236,238,240,241,243,\r\n 245,247,249,252,255,1,4,8,11,14,16,17,18,20,22,23,24,26,27,26,27,26,26,29,33,34,35,32,31,31,29,29,28,28,27,26,27,27,28,29,30,30,30,28,26,25,24,24,25,28,26,24,22,20,20,19,18,18,17,15,13,12,12,12,12,12,12,12,10,9,7,7,7,6,6,5,5,5,1,1,0,0,2,1,253,247,242,238,233,229,227,225,224,222,221,220,221,222,220,215,\r\n 214,207,207,205,203,201,199,197,194,190,192,190,189,187,187,187,186,185,186,185,185,188,189,192,191,190,188,189,191,192,194,197,197,200,203,207,211,214,216,218,220,222,224,227,229,231,233,235,238,243,247,250,254,0,4,6,10,15,20,22,24,30,33,30,33,35,37,38,39,39,40,40,41,41,42,43,45,46,47,49,49,49,49,51,50,48,42,34,33,39,38,38,37,35,33,31,28,26,26,22,\r\n 22,20,21,19,17,19,15,16,14,12,11,11,10,8,8,7,7,6,6,5,6,6,6,7,8,9,9,8,9,9,8,9,9,9,8,8,8,7,6,7,7,7,7,6,3,1,0,255,254,252,251,250,249,247,246,244,242,241,239,237,235,233,232,230,229,227,225,223,221,220,218,217,216,215,214,213,212,211,211,210,210,211,211,212,213,214,216,218,220,222,224,226,227,229,232,234,234,240,243,249,\r\n 249,250,253,254,246,245,244,246,247,249,250,251,249,246,246,245,245,245,246,244,242,241,241,241,237,233,231,228,228,224,218,215,213,214,215,212,211,214,208,196,199,206,209,210,212,213,215,217,218,220,222,224,227,230,233,234,236,238,239,241,244,245,248,251,254,0,3,7,10,12,15,16,18,20,22,24,24,26,26,27,26,26,26,29,33,33,35,31,30,29,28,27,27,27,27,27,27,27,29,29,\r\n 28,28,27,25,24,24,23,23,24,27,25,23,21,20,19,17,16,15,14,12,12,12,11,12,12,11,11,11,9,8,7,6,6,6,4,4,3,3,2,0,0,255,255,0,254,247,243,239,235,231,229,229,227,225,224,224,223,221,217,213,209,203,205,203,201,199,195,192,191,188,185,187,186,183,183,183,182,183,182,182,182,183,186,188,185,181,183,186,188,190,194,197,198,198,201,206,209,213,216,218,\r\n 220,223,224,225,227,233,235,237,240,244,248,251,253,1,5,9,13,18,22,25,31,41,37,32,36,38,39,40,41,41,41,42,42,43,44,45,46,47,49,49,50,50,50,51,51,50,44,36,31,39,41,42,37,36,33,32,30,28,26,25,24,23,21,21,20,18,18,17,16,14,12,14,13,11,10,9,8,7,7,7,7,6,6,7,7,7,8,8,9,9,9,10,10,9,9,8,8,7,7,6,\r\n 6,5,5,5,4,2,0,255,254,253,252,251,249,248,246,245,243,242,240,238,237,235,233,231,230,228,226,224,223,221,219,218,217,216,214,213,212,212,211,211,211,211,212,213,213,215,217,218,220,222,224,226,228,230,233,235,237,237,238,243,248,252,255,0,253,248,250,253,254,252,252,254,252,249,249,249,251,251,250,249,247,245,243,240,238,236,231,227,226,224,219,216,214,212,212,212,214,215,216,202,\r\n 195,204,208,208,209,210,213,215,216,218,221,223,226,229,232,233,235,236,238,240,242,244,247,250,253,0,2,5,8,10,13,15,17,18,22,29,25,27,25,26,26,26,27,30,32,32,33,31,28,27,27,27,27,28,28,28,28,29,28,28,27,27,26,24,22,23,22,22,23,24,24,22,20,19,17,16,14,13,11,10,12,12,13,13,12,11,10,10,8,7,6,5,5,4,3,2,2,0,2,0,\r\n 255,254,252,253,254,249,244,241,238,236,235,234,232,231,228,225,221,218,215,213,207,202,202,201,198,195,193,188,186,185,182,180,181,180,179,180,179,178,179,178,177,180,182,179,177,177,180,184,187,190,194,197,197,197,199,206,209,213,216,219,220,224,226,227,230,232,237,240,242,246,249,252,1,4,8,12,17,21,25,28,35,43,42,34,40,43,43,42,43,43,44,44,44,44,45,47,48,49,50,50,\r\n 51,51,51,52,53,52,49,38,32,40,44,41,40,36,37,33,31,30,28,27,25,24,23,24,21,20,19,18,17,16,14,13,12,11,10,9,9,9,8,7,7,7,7,7,8,8,7,8,8,9,10,10,10,10,10,9,8,8,7,6,5,4,4,4,3,1,0,255,254,253,252,251,250,248,247,246,244,242,241,240,238,236,235,233,231,229,228,225,223,222,220,218,217,216,215,214,213,212,212,211,\r\n 211,212,212,213,214,215,217,219,221,222,224,227,228,230,233,235,238,239,242,243,243,245,249,255,253,249,251,254,0,253,254,0,255,255,0,0,255,254,254,252,250,247,244,243,240,237,234,231,230,227,225,223,220,218,216,215,215,216,215,213,196,202,208,210,211,210,211,213,215,217,219,222,225,228,231,232,233,235,237,239,241,243,246,249,252,254,0,2,5,8,10,13,15,18,19,22,23,31,25,24,\r\n 25,26,27,30,30,32,33,32,28,28,28,29,28,28,28,28,28,29,28,27,25,23,24,23,21,21,21,21,22,22,22,20,18,17,16,14,13,12,11,11,11,11,11,12,11,10,9,9,7,6,5,5,3,3,2,1,0,0,1,0,253,253,251,250,252,248,245,242,240,238,236,234,231,228,226,224,221,218,213,211,205,201,201,198,195,192,190,186,183,182,179,177,177,177,177,177,176,174,173,173,\r\n 174,176,175,173,173,176,179,182,185,189,193,196,198,196,201,207,210,213,217,220,222,225,226,227,230,234,238,243,246,248,251,0,4,7,13,16,19,24,29,31,41,45,40,33,41,45,44,45,45,45,46,46,46,46,47,48,49,50,51,51,51,51,51,53,54,54,52,39,37,43,43,40,41,36,35,36,32,30,29,28,27,25,24,25,23,22,20,20,18,17,16,15,13,13,12,11,11,10,9,8,\r\n 9,9,9,8,8,8,8,8,8,9,9,10,10,11,10,9,9,8,7,6,5,4,4,3,2,1,0,255,254,253,253,252,251,250,248,247,245,244,243,242,240,239,237,235,233,231,229,226,225,222,221,219,218,217,216,215,213,213,212,212,212,212,213,213,215,216,217,219,221,223,225,226,228,231,233,236,238,240,242,244,246,247,247,247,247,247,251,252,1,4,3,2,3,5,4,3,1,0,0,254,\r\n 251,249,247,243,242,239,236,236,233,229,227,225,223,220,219,217,218,217,215,216,201,201,208,207,208,208,210,213,214,216,219,221,224,227,229,231,233,234,236,238,240,242,244,247,249,252,254,0,3,6,8,10,13,15,18,21,25,25,21,22,23,25,28,30,29,31,32,33,30,30,30,30,29,28,28,28,29,28,26,24,23,22,23,22,20,21,20,20,20,21,20,20,17,16,14,14,13,12,10,10,\r\n 10,9,11,10,10,9,8,7,6,5,4,3,2,1,0,0,0,0,0,1,253,251,250,249,252,249,245,243,242,239,236,233,230,228,225,223,221,217,213,207,203,200,199,196,193,190,187,184,181,178,176,175,173,174,172,174,174,173,170,169,170,169,168,170,172,174,178,181,184,189,193,196,197,195,201,207,210,214,217,221,223,226,228,230,233,236,241,246,250,252,255,1,6,10,14,18,23,27,32,31,\r\n 40,44,42,42,44,42,46,47,47,47,48,48,48,49,50,50,51,51,52,52,52,52,52,53,55,55,51,37,39,44,44,41,41,38,36,35,31,30,29,29,29,28,25,26,23,23,23,19,17,19,16,15,14,13,13,12,12,11,10,9,9,10,10,9,9,9,9,9,9,9,10,11,11,11,11,10,10,8,8,7,6,5,4,3,2,1,0,255,255,254,253,253,252,251,250,249,247,246,245,243,\r\n 242,240,238,236,234,232,230,228,225,224,222,220,219,218,216,215,215,213,213,213,213,213,213,214,215,216,218,220,221,223,225,227,229,231,234,236,239,241,242,245,246,248,249,250,251,250,248,250,252,255,0,2,4,5,6,5,4,3,1,0,254,251,249,245,242,239,236,234,232,228,224,222,221,221,220,220,220,219,216,218,210,204,208,208,209,210,211,213,214,215,217,219,222,225,228,231,233,234,236,237,\r\n 239,241,243,246,248,250,252,255,1,3,6,8,11,13,15,17,17,18,19,20,22,23,26,29,30,31,31,32,30,31,31,31,30,29,29,28,29,27,25,25,24,23,23,22,21,20,19,19,20,21,20,19,17,15,13,13,12,11,10,10,9,8,9,9,9,8,6,4,4,3,3,1,0,0,0,255,254,255,255,0,254,251,249,247,249,248,246,241,238,235,233,231,228,226,223,221,219,216,212,207,\r\n 203,199,197,194,191,188,185,182,179,176,174,173,171,170,170,169,172,172,171,168,167,166,167,169,170,171,177,180,184,188,192,195,195,197,199,207,211,214,218,222,224,227,231,233,236,240,243,248,253,255,0,3,8,13,17,21,25,30,33,34,37,45,48,50,53,45,46,49,50,50,50,50,50,50,51,52,52,53,53,53,53,52,53,55,54,55,43,33,42,44,43,42,40,38,37,34,36,33,31,30,\r\n 29,30,27,26,27,24,24,24,22,19,17,17,15,14,14,14,14,12,11,10,10,10,11,11,10,10,10,10,10,10,10,10,12,12,12,11,11,10,9,8,7,6,5,4,3,2,1,0,0,255,254,254,253,252,251,250,249,247,246,244,243,241,239,237,235,233,231,229,227,225,223,222,221,219,218,217,215,215,214,214,214,214,214,215,216,217,218,220,221,224,225,227,229,232,234,237,239,241,243,245,\r\n 246,248,249,250,251,252,253,252,251,252,253,0,0,4,7,6,5,4,2,1,0,253,251,249,245,240,235,233,231,231,227,223,219,217,216,220,222,219,216,218,209,209,211,209,211,212,212,213,213,214,216,218,220,223,226,230,232,233,235,237,239,241,242,244,246,249,251,254,0,2,4,7,9,11,13,15,16,17,17,19,20,21,23,29,30,31,31,31,31,31,32,32,31,29,29,28,28,27,26,26,\r\n 25,24,23,22,21,20,20,20,21,21,20,19,18,15,14,13,12,11,10,8,7,6,7,7,8,6,3,3,2,2,1,0,0,255,254,254,253,254,0,254,253,249,248,246,245,243,240,237,235,233,231,229,226,223,221,217,215,213,210,205,200,198,195,192,189,186,183,180,177,174,171,170,169,167,168,167,170,171,171,168,165,164,164,167,170,171,175,179,184,189,192,195,195,196,200,207,210,216,220,223,\r\n 225,228,232,235,237,241,246,251,255,1,3,6,11,15,19,24,28,32,36,38,38,48,50,52,53,46,45,52,53,53,52,52,51,52,52,54,54,55,55,54,53,52,53,54,53,46,32,39,47,46,44,42,40,40,38,36,34,34,32,31,30,30,29,28,26,25,24,22,21,21,20,18,17,16,15,15,14,13,12,12,11,10,11,11,11,11,11,11,11,11,11,12,12,13,13,12,11,10,10,9,\r\n 8,8,6,5,5,4,3,2,1,0,0,255,254,253,252,251,250,249,247,245,244,242,240,238,236,234,232,230,229,226,225,223,222,220,219,218,217,216,215,215,215,215,215,216,217,218,219,220,222,224,226,228,230,232,234,237,239,241,243,245,246,248,249,249,251,253,253,255,0,0,255,254,254,0,5,8,7,5,4,3,0,0,253,251,247,241,237,238,241,236,234,233,231,227,223,221,225,220,219,215,\r\n 208,208,212,209,210,211,212,212,213,214,215,216,219,222,225,228,231,233,235,237,238,241,242,244,246,248,251,253,255,1,3,6,8,10,12,14,15,16,17,18,19,20,22,27,28,29,30,31,33,33,33,32,31,29,29,29,28,27,26,26,25,24,22,22,20,20,21,21,22,21,21,19,18,16,14,13,12,10,8,8,6,5,5,4,4,3,1,0,0,0,0,0,254,253,253,252,252,254,254,254,\r\n 251,249,247,245,242,240,238,236,234,231,229,227,223,220,217,214,212,211,207,203,200,197,194,190,187,184,181,178,175,172,169,168,167,165,164,166,167,169,165,165,164,160,163,165,168,171,174,178,183,189,193,194,195,196,203,208,211,217,221,225,228,230,233,238,240,244,247,253,2,4,6,9,13,18,22,27,31,36,38,43,49,51,53,56,58,61,48,52,55,56,55,54,54,54,54,55,56,56,56,54,\r\n 53,48,46,48,39,36,42,47,47,47,44,43,42,40,39,38,36,35,33,33,31,30,31,29,28,29,26,26,24,23,22,20,19,18,17,16,15,14,13,12,12,11,11,11,11,11,11,11,11,11,12,12,12,13,14,13,13,12,11,10,9,9,8,7,6,5,4,3,2,1,0,0,255,254,253,252,251,250,248,246,244,243,241,239,237,235,233,232,229,228,227,225,223,222,221,219,218,218,217,216,\r\n 216,216,216,217,218,219,220,222,224,225,227,228,231,232,235,237,239,241,243,244,246,247,248,250,251,252,254,255,0,1,2,3,1,0,6,8,9,6,3,1,0,255,254,251,249,248,1,254,244,239,241,240,235,234,231,227,227,225,219,215,211,212,212,210,210,211,212,212,212,213,214,216,218,220,222,226,230,232,235,237,239,240,242,244,247,249,251,253,255,0,2,5,7,9,10,12,14,15,16,16,\r\n 17,19,20,26,29,29,31,33,35,34,32,32,31,29,29,29,28,26,26,25,24,23,22,23,21,22,23,23,23,23,21,19,18,17,14,13,11,10,7,6,4,3,2,2,1,0,0,254,254,254,255,254,253,252,252,251,252,254,254,253,250,247,245,243,240,237,236,235,234,231,230,224,217,213,210,210,209,208,205,203,199,195,192,189,186,182,179,176,173,170,167,166,166,164,162,163,163,164,162,164,\r\n 162,158,161,163,167,169,173,178,183,189,193,193,195,194,204,209,213,219,223,227,230,232,235,239,242,246,250,254,1,6,9,12,16,21,26,30,35,40,42,48,51,54,55,60,61,65,55,51,58,58,57,57,56,56,56,58,58,58,59,51,51,44,38,41,46,51,50,50,47,46,44,43,42,41,40,40,38,39,35,34,34,33,32,29,29,28,27,28,25,23,25,22,21,20,19,17,16,15,15,13,\r\n 13,12,12,12,10,10,11,10,11,12,12,12,12,13,14,15,14,13,12,11,11,10,9,8,7,6,6,5,4,2,1,0,0,255,255,253,252,251,249,248,246,244,242,240,238,236,234,233,231,229,228,226,225,224,222,221,220,219,218,218,218,218,218,218,219,220,221,223,224,226,228,230,231,233,235,237,239,241,242,244,245,247,248,249,251,253,254,255,0,1,1,3,5,4,6,11,14,10,6,2,\r\n 1,1,0,253,254,252,253,0,245,242,247,244,241,241,235,229,226,217,213,215,215,216,215,213,211,212,212,212,212,213,214,216,218,220,222,225,228,231,235,238,241,242,244,246,248,250,252,254,0,1,3,5,7,9,10,12,13,15,16,16,17,19,21,26,29,31,31,33,33,33,33,32,32,30,29,28,27,27,26,24,24,22,24,24,23,23,23,23,24,24,21,19,18,16,14,12,10,8,6,4,\r\n 2,0,0,0,0,255,255,253,252,251,252,252,251,250,250,252,251,251,250,250,248,245,244,243,239,237,236,234,232,229,225,220,213,209,208,206,206,207,206,203,199,195,191,188,185,181,178,174,171,169,166,164,163,162,160,160,162,162,161,161,160,158,160,163,165,169,172,178,183,189,194,194,196,194,204,211,215,221,226,229,232,235,238,241,245,248,252,0,3,8,11,15,19,24,29,33,37,40,45,50,\r\n 52,55,55,63,64,64,64,49,59,60,60,59,58,58,59,60,60,60,60,56,61,56,55,53,53,55,54,51,51,46,45,44,44,43,42,41,40,39,38,36,35,36,33,32,30,28,28,26,25,26,26,23,22,21,20,19,18,17,15,14,14,13,13,12,11,10,10,10,11,11,11,12,12,14,13,14,14,14,13,13,12,12,11,10,9,8,7,6,5,4,3,2,1,0,0,255,253,252,250,248,\r\n 247,245,243,241,240,238,236,234,232,231,229,228,226,225,224,223,222,221,220,220,220,219,220,220,221,222,223,224,225,227,228,230,232,233,235,237,239,240,242,244,245,247,248,250,251,252,254,255,0,0,1,3,4,6,6,7,11,16,13,10,12,14,10,2,2,254,255,254,245,252,249,245,244,242,239,234,228,224,222,223,224,221,217,217,215,213,215,213,213,214,215,216,218,220,222,224,227,231,234,238,\r\n 241,243,245,247,249,251,253,255,0,2,3,5,7,8,10,12,13,15,17,18,20,19,21,23,25,29,32,32,30,33,34,35,34,30,29,29,27,27,26,25,24,24,25,25,25,24,23,24,23,22,20,19,18,16,14,12,9,5,4,1,0,0,255,0,255,254,253,252,251,250,249,250,249,248,249,251,250,250,251,250,246,245,242,241,238,235,233,230,228,226,222,215,208,206,205,204,206,206,205,202,\r\n 199,195,191,187,183,180,177,173,170,167,165,162,161,161,159,158,161,161,160,160,161,161,159,162,165,169,173,179,183,190,195,196,198,196,205,212,217,224,228,231,235,237,240,244,247,251,254,2,6,10,13,17,23,27,31,35,38,42,50,50,54,56,53,61,62,65,70,51,60,62,62,61,61,62,62,62,61,62,59,60,60,61,61,58,55,56,56,54,55,51,55,47,51,46,43,43,43,42,40,38,\r\n 36,36,34,32,31,29,30,30,29,25,27,26,22,22,21,19,18,18,17,15,15,14,13,13,12,11,10,10,11,11,12,12,13,13,14,14,14,15,14,14,14,13,12,12,10,10,8,8,7,6,5,4,2,1,0,0,254,253,251,249,248,246,244,243,241,239,238,235,234,232,231,230,229,227,226,225,223,223,222,222,222,222,222,222,222,223,224,225,226,228,229,230,232,234,235,237,239,241,242,244,\r\n 246,247,248,249,251,252,253,254,0,0,1,2,4,5,7,9,11,12,15,16,15,15,17,12,7,3,1,3,0,253,247,248,246,245,242,239,236,233,231,228,227,226,224,222,220,219,220,218,214,214,215,216,217,220,222,225,227,229,232,236,239,242,245,247,250,252,253,0,0,2,4,6,7,9,10,12,13,15,17,18,19,19,20,21,23,24,30,32,30,32,34,35,34,31,30,29,28,27,27,26,\r\n 26,25,26,26,25,26,25,23,21,21,20,19,18,16,15,12,9,6,4,2,0,0,0,255,253,253,252,251,249,249,247,248,248,247,246,249,251,249,249,247,245,240,237,235,235,232,229,228,226,223,218,210,206,204,203,202,205,204,203,202,199,194,191,187,183,179,175,172,169,166,164,162,161,160,158,157,157,160,158,157,160,163,161,162,164,169,172,179,184,190,195,198,199,198,208,214,221,225,230,234,\r\n 237,240,242,246,250,254,0,4,8,12,16,21,25,29,34,36,38,46,50,51,55,56,60,68,70,73,70,56,60,64,64,64,64,64,65,63,63,64,59,64,63,62,62,62,60,60,60,59,59,58,53,50,54,49,48,49,46,44,42,41,39,38,35,33,32,30,29,27,28,28,25,26,23,23,22,20,19,18,16,16,16,15,15,15,14,12,11,11,11,11,11,12,12,13,14,14,14,14,15,15,\r\n 15,14,13,13,12,11,10,9,8,7,6,5,4,3,1,0,0,254,252,251,249,247,246,244,243,241,239,237,236,235,233,232,230,229,228,227,226,225,224,224,224,223,224,223,224,224,225,226,227,228,230,231,232,234,235,237,239,240,242,244,245,246,248,249,250,251,252,254,255,0,0,1,3,5,6,9,11,11,12,13,12,12,14,16,21,14,3,12,4,251,251,249,248,246,245,243,240,237,233,231,\r\n 229,228,227,227,225,224,224,223,218,217,217,217,218,220,222,225,227,230,232,235,238,241,244,248,250,253,0,1,3,4,6,7,9,10,11,13,14,16,17,17,19,19,19,20,21,22,23,27,31,31,31,32,31,31,30,28,28,27,28,26,26,26,26,25,24,23,23,22,22,22,20,20,19,17,15,13,9,6,3,0,255,255,254,253,252,250,250,249,249,248,247,246,246,245,246,247,248,247,246,247,\r\n 245,238,233,231,230,228,226,223,221,218,214,206,203,203,201,202,204,203,201,200,198,195,190,187,183,179,175,171,168,166,163,161,160,160,157,157,156,156,154,154,161,164,161,161,163,167,172,178,183,190,196,201,199,198,207,215,222,226,232,236,240,243,246,249,252,0,3,7,11,15,18,22,26,31,33,36,44,49,52,54,55,59,67,65,69,72,68,52,61,66,67,66,66,67,67,63,64,62,64,64,\r\n 64,63,63,63,62,61,60,60,58,58,54,53,55,52,50,50,49,46,49,44,41,39,37,35,34,32,30,28,27,27,26,26,26,23,22,21,19,18,17,16,15,16,16,16,15,13,13,12,12,12,12,12,13,13,14,14,15,15,16,17,16,16,15,14,13,13,12,11,10,8,7,6,5,4,3,1,0,0,254,252,251,249,247,246,244,242,241,240,238,237,235,234,233,231,230,229,228,227,226,225,\r\n 225,225,225,225,225,226,226,227,228,229,231,232,233,234,236,237,239,240,242,243,245,246,247,248,249,251,252,253,254,255,0,1,3,4,6,7,9,10,13,13,14,15,12,17,24,19,13,22,7,254,253,251,248,249,248,246,243,242,241,238,233,229,230,229,225,224,225,225,224,221,218,219,219,221,223,225,228,230,233,235,238,241,244,247,250,253,0,2,3,5,7,8,9,10,11,12,13,15,16,17,\r\n 18,18,18,19,20,21,22,22,24,28,30,30,31,29,29,28,27,27,27,27,25,24,21,18,19,19,19,20,21,21,22,20,18,15,13,11,8,6,2,254,252,251,252,251,250,248,246,246,248,247,246,245,245,244,244,245,244,245,245,243,238,235,231,229,227,226,223,221,217,215,209,205,204,202,203,204,203,201,201,198,197,194,191,187,183,179,175,172,169,166,163,161,160,161,157,156,155,155,152,152,\r\n 157,159,157,158,162,167,172,178,184,190,197,202,201,202,205,217,223,227,233,238,242,246,250,252,254,1,6,9,14,17,21,24,29,31,35,42,47,53,53,57,60,66,65,65,67,70,63,46,59,67,68,68,67,69,66,66,67,67,65,65,64,64,64,64,63,62,61,60,60,58,57,54,53,52,52,50,50,50,49,45,43,41,38,37,35,33,31,29,29,28,28,25,27,24,23,21,21,18,18,17,\r\n 16,16,16,16,16,15,13,13,13,13,12,13,13,13,14,15,15,16,16,17,16,17,16,15,15,14,13,12,11,10,9,8,6,5,4,3,1,0,0,254,252,251,249,247,245,244,242,241,239,238,237,236,234,233,232,231,229,229,228,227,227,226,226,226,226,227,228,228,229,230,231,233,234,235,236,237,239,240,242,243,244,246,247,248,249,250,251,252,253,254,0,0,2,4,5,6,7,9,10,12,\r\n 13,14,12,16,27,21,22,15,3,0,0,253,251,252,248,249,247,243,244,243,239,233,232,230,224,223,223,222,223,223,221,222,222,223,224,226,228,231,233,236,239,241,244,247,250,253,0,2,4,5,7,8,9,10,11,12,13,14,15,17,17,17,18,18,19,20,20,21,22,23,27,30,30,29,27,26,24,25,24,23,20,19,17,16,18,21,19,19,20,20,20,18,16,14,13,10,6,5,0,252,\r\n 250,249,250,249,248,247,244,244,246,247,246,245,244,244,243,243,242,242,242,240,238,233,228,227,226,223,221,218,216,211,208,204,203,203,204,203,202,201,200,198,195,193,191,187,183,179,176,173,169,166,163,161,159,161,157,156,154,154,152,150,151,153,154,158,162,167,171,177,183,190,196,202,204,207,208,216,229,232,234,239,244,249,253,0,1,4,8,12,16,20,23,27,31,35,40,44,48,52,56,60,\r\n 62,62,64,66,66,64,64,52,55,67,70,70,70,71,69,68,68,67,67,66,66,65,66,65,64,63,62,61,61,59,55,54,53,53,53,52,51,51,49,47,45,43,40,40,36,34,33,30,30,29,28,26,25,25,23,22,21,18,18,17,17,17,16,16,17,16,15,14,14,14,13,13,14,13,14,14,15,16,17,16,17,17,17,16,15,15,14,13,12,11,10,9,7,6,5,4,3,2,0,0,\r\n 254,252,251,249,247,245,244,242,241,239,238,237,236,235,234,232,231,230,229,228,228,228,228,228,228,228,229,230,230,231,232,233,234,235,237,238,239,240,241,243,244,245,246,247,248,249,250,251,253,254,255,0,1,3,3,5,6,8,10,13,14,13,10,17,33,20,23,10,7,4,3,0,254,251,250,252,250,246,243,240,237,234,233,230,226,226,224,224,224,223,225,227,227,226,225,227,229,231,234,236,\r\n 239,242,244,247,250,253,0,1,4,5,6,8,9,9,11,12,12,13,14,15,16,16,16,17,18,19,19,20,21,22,22,24,25,24,23,22,20,20,20,19,18,18,16,15,16,19,21,20,18,20,16,15,14,12,11,9,5,3,254,251,249,247,247,246,247,248,245,244,244,245,246,245,244,245,244,243,240,240,240,239,236,232,227,226,226,223,220,218,215,210,208,204,203,204,204,203,202,200,199,196,\r\n 194,192,190,187,184,180,177,173,170,166,164,161,159,161,158,156,154,153,153,151,151,152,154,157,162,167,171,177,184,190,197,202,206,207,213,214,224,235,238,240,246,250,255,1,3,6,10,14,19,22,26,30,34,37,42,47,51,54,57,58,58,61,64,66,68,70,70,63,64,66,71,71,72,73,71,70,69,68,68,67,67,67,67,66,65,64,63,62,62,59,57,55,53,53,54,54,52,53,50,48,\r\n 47,45,41,41,38,36,34,33,31,30,28,28,25,27,24,23,21,20,19,18,19,18,18,17,17,16,16,15,14,14,14,14,14,14,14,15,15,16,16,17,17,18,17,16,16,15,14,13,12,11,10,10,8,8,6,5,4,3,1,0,255,254,252,250,248,247,245,244,243,241,240,239,237,236,235,234,232,232,231,230,229,229,229,229,229,230,231,231,232,233,233,234,235,236,238,238,239,240,241,242,\r\n 243,244,246,247,248,249,250,251,253,254,255,0,0,1,2,4,6,7,10,12,12,11,15,24,29,22,19,16,11,9,6,3,1,254,250,250,252,248,244,242,239,236,234,232,231,229,226,226,227,226,226,228,228,226,226,228,230,232,234,236,239,242,245,247,250,253,255,1,4,5,7,7,8,9,10,11,11,12,13,13,15,14,15,16,16,18,18,19,20,20,20,21,21,20,19,19,18,18,18,17,\r\n 17,17,16,15,14,16,18,17,16,16,15,13,12,9,6,4,1,0,252,248,245,244,244,244,244,245,245,246,246,246,246,245,243,244,244,242,240,239,237,235,233,230,228,227,226,222,219,216,210,208,206,205,206,205,204,203,201,200,198,196,194,191,189,186,184,181,178,175,171,167,165,162,159,161,158,156,154,153,153,153,153,153,155,158,162,166,172,177,183,190,197,202,206,208,213,220,226,228,239,244,\r\n 247,251,0,3,6,9,13,17,21,24,28,32,36,40,45,50,53,55,56,55,57,59,62,64,68,71,67,55,63,67,72,73,74,73,72,71,70,69,69,68,68,68,68,67,66,65,64,64,62,61,58,56,55,55,55,55,54,53,50,50,47,46,43,41,39,38,36,34,32,30,30,29,27,27,25,24,22,21,20,19,19,19,19,18,18,17,16,15,15,14,14,14,14,14,14,15,15,15,16,16,\r\n 17,17,18,18,16,15,14,14,14,13,11,11,10,9,7,7,5,3,2,0,0,255,253,251,250,248,246,245,244,243,241,240,239,237,236,235,234,233,232,231,231,230,230,230,231,231,232,232,233,234,234,235,236,237,238,239,239,240,241,242,243,244,245,246,248,249,250,251,252,253,254,255,0,0,1,3,4,6,9,11,10,12,20,29,26,21,19,18,16,12,9,6,4,0,253,252,251,248,247,244,\r\n 241,238,235,234,233,232,229,228,229,228,228,228,228,227,225,228,230,232,235,237,240,242,244,247,249,252,255,0,2,5,6,7,8,9,10,10,11,11,11,12,12,13,13,14,14,15,16,18,20,19,19,19,18,18,18,19,19,18,17,17,17,17,16,16,16,16,15,16,15,14,13,13,10,7,4,1,0,252,249,244,242,241,240,241,240,241,243,244,245,247,248,243,243,243,242,242,240,241,236,233,\r\n 232,229,227,227,224,220,217,211,207,205,207,207,207,205,205,203,202,201,199,196,193,191,189,186,183,181,178,176,172,168,165,162,160,160,159,157,154,153,154,153,153,154,155,158,161,167,172,177,184,190,196,201,206,210,213,218,225,230,236,246,249,252,0,4,8,12,15,19,23,26,30,34,38,43,47,52,55,57,58,55,54,58,58,60,64,70,61,56,71,69,72,74,74,74,73,72,71,70,70,70,\r\n 69,70,69,68,67,66,66,65,63,62,60,57,56,56,57,56,55,54,52,50,47,46,44,42,40,39,38,36,34,32,31,30,27,28,26,25,23,21,21,20,19,20,19,19,18,17,17,16,15,15,15,14,14,14,15,15,15,15,16,16,16,17,17,18,16,16,15,15,14,13,12,11,11,10,8,7,6,4,3,1,0,255,254,252,250,249,248,246,245,244,243,241,240,239,238,237,235,235,233,233,\r\n 232,232,232,232,232,232,233,234,234,235,236,236,237,238,238,239,240,240,241,242,243,244,245,245,246,247,248,249,251,252,254,254,255,0,0,2,3,6,8,9,12,19,29,25,19,18,21,19,18,16,12,9,6,3,0,254,251,250,249,246,242,240,238,235,233,232,231,230,231,231,230,229,230,231,230,229,230,232,235,237,239,242,244,246,249,251,253,0,1,3,5,6,7,8,9,10,10,11,12,13,\r\n 12,12,13,14,16,17,17,17,18,19,19,20,20,19,19,18,18,18,17,17,17,17,16,16,16,16,15,16,14,13,11,12,10,7,4,0,254,249,246,244,241,240,239,239,238,239,241,243,245,246,245,243,243,243,242,245,242,242,237,233,230,227,225,224,221,215,213,209,207,206,207,207,207,206,205,204,203,201,199,196,194,191,189,186,184,181,179,176,173,169,166,163,161,161,160,157,155,154,153,154,\r\n 154,155,157,161,162,166,171,177,183,189,196,199,205,210,217,222,225,231,238,244,250,253,0,5,9,13,16,20,24,28,32,36,40,44,49,52,56,56,58,57,57,66,66,65,68,68,57,65,75,74,73,74,75,75,73,70,71,71,71,71,71,71,71,70,69,68,67,66,65,62,63,59,58,57,57,58,57,55,53,50,49,47,45,43,42,40,39,37,35,33,31,31,28,29,26,26,24,22,21,20,\r\n 21,20,20,19,18,18,17,16,15,15,15,15,15,15,14,15,16,16,16,15,16,16,17,17,17,16,15,14,14,14,13,12,11,10,9,8,6,5,3,2,1,0,255,253,251,250,249,248,247,245,244,243,241,240,239,238,236,236,235,234,234,234,233,233,233,234,234,235,236,236,237,238,238,238,239,239,240,241,241,242,243,244,244,245,246,246,247,248,249,252,252,253,254,255,0,1,3,6,9,9,\r\n 15,23,28,18,19,19,20,18,18,17,14,10,8,4,1,0,253,251,249,247,243,240,236,234,233,233,231,231,232,233,231,230,230,231,232,234,232,232,234,236,238,240,242,244,246,248,251,253,255,0,2,4,6,8,9,10,10,10,11,11,13,13,15,16,19,19,19,19,19,20,19,19,20,19,19,19,18,18,17,17,17,17,17,17,17,16,17,16,13,12,9,10,9,7,3,0,253,248,245,242,\r\n 240,239,238,237,236,238,240,243,245,249,247,245,244,243,240,242,243,245,238,234,229,226,224,221,216,213,212,209,208,208,208,208,208,207,206,205,204,201,199,197,194,192,189,186,184,182,179,177,174,171,167,165,162,162,161,157,156,155,154,154,154,155,159,162,164,168,173,178,183,188,194,199,204,210,217,223,227,228,238,244,250,255,2,6,11,14,17,22,25,29,33,37,41,45,49,51,53,54,54,54,\r\n 59,61,61,56,54,50,46,67,74,73,76,76,73,73,72,72,68,68,70,71,72,72,72,72,70,69,68,66,66,62,63,61,59,58,59,59,59,56,54,52,49,48,45,44,42,41,39,38,36,34,32,31,29,28,28,25,25,23,23,22,21,20,20,19,19,17,17,17,16,16,16,15,15,16,15,14,15,15,15,15,15,16,16,16,16,16,15,14,14,13,12,12,11,10,9,8,7,5,4,2,\r\n 1,0,255,254,252,251,250,248,247,246,245,244,242,241,240,239,238,237,236,236,235,235,235,235,235,235,236,236,237,237,238,238,239,239,240,240,240,241,242,242,243,243,244,245,245,246,246,247,248,251,253,253,254,255,0,1,3,6,9,11,17,24,24,16,18,19,20,20,19,17,15,12,9,5,3,0,254,251,249,246,244,240,238,235,234,233,233,233,232,233,232,231,231,232,233,235,235,234,235,237,\r\n 239,241,243,245,247,249,251,253,255,0,1,3,4,6,6,7,7,8,8,9,11,13,15,17,18,18,18,20,20,20,20,20,20,19,19,18,18,18,18,18,18,17,18,17,17,16,16,14,15,12,9,9,9,7,4,0,253,249,244,242,239,237,237,236,236,237,239,242,245,249,248,245,242,239,240,242,243,242,237,233,229,225,223,218,215,214,212,209,208,209,209,209,208,208,207,207,204,203,201,198,\r\n 195,193,190,187,184,183,180,179,176,172,169,166,163,163,162,158,158,157,156,155,156,157,160,162,165,169,173,178,183,189,195,198,204,210,216,223,228,230,235,241,246,1,3,7,11,15,18,21,25,29,33,38,41,44,47,49,52,53,54,55,62,61,64,60,50,44,44,54,69,71,72,74,77,80,76,75,75,72,70,70,72,73,73,73,73,73,73,72,71,69,65,62,60,60,59,60,59,58,56,53,\r\n 50,48,46,44,42,41,40,39,37,35,34,32,31,28,28,28,26,24,24,22,22,21,20,19,19,19,18,18,17,16,16,16,16,15,15,15,15,15,14,15,15,15,16,15,15,15,15,14,14,13,12,12,10,10,9,8,7,5,4,3,1,0,0,254,253,251,250,249,248,247,245,245,243,242,241,240,239,239,238,237,237,236,236,236,236,236,237,237,238,238,239,239,240,240,241,241,241,241,242,242,\r\n 243,243,244,244,245,245,246,246,247,248,249,250,252,253,255,0,3,5,6,11,17,24,20,14,15,18,20,20,19,17,16,13,9,6,4,1,255,252,249,247,245,241,240,239,238,234,234,234,233,233,233,232,231,233,231,230,234,236,238,240,241,242,244,244,246,247,249,250,251,253,254,255,0,0,2,4,5,6,7,8,10,12,13,14,15,17,18,20,20,20,20,20,19,19,18,18,18,17,18,19,\r\n 18,18,18,17,16,15,14,13,11,11,7,6,8,8,5,2,254,250,247,243,239,238,237,236,236,237,238,242,246,250,249,245,241,240,239,241,239,241,237,232,228,226,220,216,216,213,211,210,210,209,210,211,210,209,209,208,206,204,202,200,197,194,191,188,187,185,182,180,178,175,171,168,166,165,164,160,160,158,157,156,157,159,162,165,167,170,174,179,184,189,193,198,203,210,215,221,227,231,233,240,\r\n 242,255,5,7,11,15,18,22,25,29,32,36,39,43,45,48,52,53,52,55,64,64,60,60,61,63,64,61,59,63,67,69,71,70,70,72,72,74,74,74,72,72,73,77,78,78,77,77,76,74,74,70,66,63,62,61,61,59,57,54,51,49,48,46,44,42,41,40,38,37,35,33,32,30,27,28,28,25,24,23,23,22,20,20,19,18,18,18,18,17,16,16,16,16,16,16,15,15,15,15,\r\n 14,14,15,15,14,14,14,14,14,13,12,11,10,9,8,7,6,5,4,3,1,0,0,255,253,252,250,249,249,247,246,245,244,243,242,241,240,240,240,239,238,238,237,237,238,238,238,239,239,240,240,240,241,241,241,241,242,242,242,243,243,243,243,244,244,244,245,246,246,247,249,250,251,253,254,0,1,4,3,4,9,22,14,10,14,17,19,20,19,19,17,13,9,7,5,1,255,252,249,247,\r\n 245,242,242,242,239,239,237,234,233,234,234,232,231,230,230,229,233,234,236,241,244,245,246,246,247,248,249,250,252,252,253,254,255,0,0,1,2,4,5,6,8,10,11,13,15,16,17,19,20,19,19,19,19,18,18,18,18,18,18,19,18,18,17,16,14,13,11,10,8,8,7,5,4,5,4,2,255,250,247,244,242,241,238,237,237,237,239,241,245,249,248,244,241,239,239,240,238,241,237,233,\r\n 227,225,219,217,216,214,212,212,211,211,211,212,212,211,211,210,207,206,204,202,199,196,193,191,188,186,184,182,180,177,173,170,168,167,165,162,161,160,160,159,159,161,164,169,168,170,175,180,184,189,194,198,203,209,214,220,226,230,235,234,242,248,5,8,12,15,18,21,24,28,31,34,37,40,43,46,51,53,53,57,62,61,61,57,57,59,61,60,57,59,59,59,63,69,69,69,70,77,74,73,\r\n 74,78,78,78,78,79,79,80,79,78,77,75,72,66,62,64,62,61,59,56,54,52,50,48,45,44,42,40,40,39,37,34,33,32,30,27,26,26,25,24,24,22,21,20,19,19,19,19,18,17,16,17,17,16,17,17,17,15,15,14,14,14,13,14,14,14,13,13,13,12,12,11,10,9,8,7,6,4,3,2,1,0,0,254,253,252,251,250,249,248,246,246,245,244,243,242,242,241,241,240,\r\n 240,239,239,239,239,239,239,240,240,241,241,241,242,242,242,242,243,243,243,243,243,243,243,243,243,244,244,245,246,246,248,249,250,252,253,0,1,2,0,7,15,18,11,9,11,15,19,20,20,20,18,16,12,9,7,4,255,251,251,250,249,247,244,240,237,236,235,233,233,234,233,232,232,230,229,229,232,235,237,242,243,247,249,248,249,249,250,251,251,251,253,253,254,255,0,0,1,3,5,6,\r\n 8,10,11,13,15,16,17,18,19,19,19,19,19,18,18,18,18,18,18,18,18,17,15,14,12,11,9,8,7,4,5,5,3,3,3,1,0,252,249,247,244,243,242,240,239,238,239,241,244,246,246,243,241,239,236,238,239,238,236,233,226,224,220,217,216,214,213,213,213,212,213,213,213,213,214,215,213,208,206,203,201,198,196,193,190,188,186,184,182,180,176,173,171,170,167,165,164,163,163,162,\r\n 163,163,166,170,170,172,177,181,184,191,194,197,202,208,214,218,224,229,235,238,239,247,254,9,12,15,18,21,24,27,29,33,36,39,42,45,48,50,48,51,56,57,59,59,56,58,59,60,59,58,58,56,54,65,67,71,78,82,84,85,80,76,77,76,75,75,78,79,81,81,80,78,74,66,63,64,65,63,61,59,56,54,52,50,48,46,44,43,41,40,38,36,34,32,31,29,28,27,26,25,\r\n 24,23,21,21,20,19,18,18,19,17,17,17,17,17,17,17,17,16,15,14,14,13,13,13,13,12,12,12,11,11,10,9,8,8,7,6,5,4,3,2,1,0,0,255,253,252,251,250,249,248,247,246,246,245,244,243,243,242,242,241,241,240,240,240,241,241,241,241,242,242,243,243,243,243,244,243,243,243,243,243,243,243,243,243,243,243,244,244,245,246,247,248,249,251,253,255,0,1,255,10,\r\n 17,17,11,9,10,13,17,20,21,21,20,18,15,12,10,6,0,253,252,250,249,246,243,241,239,237,235,235,235,236,236,232,233,231,230,231,233,235,238,242,245,248,249,250,251,250,249,249,250,251,252,252,253,254,255,0,0,2,3,5,7,9,11,12,14,15,16,17,18,19,18,18,18,18,17,17,17,17,17,17,17,16,14,12,10,9,9,8,7,7,6,6,4,4,3,2,2,0,252,250,\r\n 247,245,244,242,241,241,240,241,242,243,242,244,242,238,237,238,238,238,235,230,226,223,219,218,216,215,215,214,214,214,214,215,215,215,214,216,216,213,208,206,203,201,198,195,193,190,188,186,185,182,179,176,175,174,169,167,166,166,165,164,164,165,169,170,171,174,178,181,185,190,193,197,201,207,211,216,222,227,233,238,238,242,248,254,8,14,17,20,23,25,28,31,34,37,40,43,45,47,47,51,\r\n 56,53,57,56,55,56,57,58,58,56,55,44,48,59,58,67,67,69,70,73,79,81,82,81,78,71,68,73,78,81,81,81,73,57,61,64,66,66,63,61,59,57,54,52,50,47,45,44,42,41,40,37,35,34,33,31,30,28,27,25,26,24,22,21,20,19,19,18,19,18,17,17,17,18,17,16,16,15,15,14,13,12,12,12,12,11,11,11,10,10,9,8,7,6,5,5,4,4,2,2,\r\n 1,0,0,255,253,252,251,250,249,248,247,247,246,245,244,244,243,243,242,242,242,242,242,242,242,242,242,242,243,244,244,244,244,245,245,244,244,244,243,243,243,243,243,243,243,244,244,244,245,246,247,248,249,251,252,254,0,0,254,8,10,17,19,14,11,12,17,21,23,23,23,22,18,14,11,7,3,0,0,253,251,249,247,244,241,238,237,235,236,238,237,233,233,231,231,233,234,236,238,243,\r\n 245,247,249,251,252,252,249,249,249,249,250,250,251,252,254,255,0,1,2,4,6,8,10,12,13,14,15,16,17,18,17,17,16,16,16,16,16,17,17,17,16,15,12,11,9,9,8,7,7,7,8,9,10,6,4,5,5,2,0,255,251,249,247,244,243,243,243,241,242,244,243,244,243,239,239,237,238,238,234,229,226,222,220,219,218,217,216,215,216,215,216,217,217,217,216,215,213,213,212,208,\r\n 206,203,201,199,195,193,191,189,188,185,181,180,181,176,172,170,169,168,168,167,167,168,171,171,173,176,180,182,186,191,194,196,201,206,209,214,220,225,230,236,241,240,245,246,253,9,15,18,21,24,26,29,31,34,37,40,42,44,46,47,49,49,51,52,54,54,54,55,54,53,50,35,44,53,59,67,68,69,70,71,73,74,76,82,83,81,73,73,72,75,80,74,61,57,57,71,65,62,60,60,\r\n 61,58,56,54,52,49,47,46,44,43,40,39,37,36,34,33,32,31,29,27,27,25,24,22,21,21,20,19,19,19,18,16,17,17,17,16,15,14,14,13,13,12,11,11,11,10,10,9,9,8,7,6,5,4,4,3,3,3,2,1,0,0,0,255,253,252,251,250,249,248,247,247,246,245,245,244,244,243,243,243,242,242,242,243,243,243,243,243,245,245,245,246,245,246,245,245,245,244,244,244,\r\n 244,244,244,243,243,244,244,244,245,245,246,247,249,250,252,254,255,0,255,3,9,18,22,14,11,14,20,22,24,23,23,22,19,16,12,9,7,4,2,0,254,252,250,246,243,240,239,238,238,238,237,233,234,233,233,234,235,236,239,244,246,247,248,251,253,252,248,247,247,248,249,249,250,251,252,253,255,0,1,3,5,7,9,11,12,13,14,15,16,16,16,16,16,15,15,16,16,16,16,16,\r\n 15,13,11,10,9,9,8,8,7,7,8,11,13,10,7,8,8,4,3,1,254,251,248,247,246,245,245,242,242,246,242,243,243,243,241,237,237,236,233,230,226,223,221,220,219,218,216,215,214,218,218,219,219,218,217,216,215,214,214,212,209,206,204,201,199,196,195,192,191,188,184,184,183,179,175,173,172,171,171,171,171,173,175,176,176,179,181,184,187,192,193,196,200,205,209,213,217,223,228,235,\r\n 239,241,242,245,247,252,9,21,22,22,25,26,28,31,33,37,39,41,43,44,44,49,48,48,48,50,51,50,50,49,46,42,46,54,64,67,67,69,70,71,73,73,74,76,77,77,78,75,60,58,64,66,70,69,59,64,70,68,62,59,56,59,59,55,53,52,50,48,46,44,42,40,39,37,37,35,32,32,30,29,29,27,26,25,23,22,21,22,20,20,19,18,17,17,17,16,15,14,14,13,\r\n 12,10,10,9,10,9,9,9,9,7,6,5,4,3,2,2,2,1,0,2,1,0,0,254,253,252,251,249,249,248,247,247,246,245,245,245,244,244,244,244,244,243,244,244,244,244,245,246,246,246,247,247,247,247,246,246,246,245,244,244,244,244,244,244,244,244,244,245,245,246,247,248,249,250,251,253,255,0,0,255,9,16,24,20,13,14,20,23,24,25,24,23,20,18,14,12,11,9,5,3,\r\n 0,254,252,249,247,243,240,240,241,240,236,233,235,234,234,235,236,239,241,245,246,247,249,251,251,252,248,246,246,247,248,249,249,250,251,252,253,255,0,2,4,7,8,10,11,12,14,15,15,15,15,15,15,15,15,15,15,15,15,15,13,12,10,10,9,9,8,9,8,8,9,10,11,13,10,10,11,7,4,3,0,254,253,252,251,249,245,244,246,246,244,242,243,241,241,240,239,235,232,231,\r\n 227,223,222,221,220,220,218,222,217,220,221,220,220,220,219,219,218,217,215,214,213,210,207,204,202,199,197,196,194,191,188,188,185,181,178,177,176,175,174,173,174,175,176,177,178,180,183,185,188,191,192,196,199,204,208,212,215,222,227,231,235,238,243,244,245,245,250,2,13,19,24,27,28,31,34,34,34,36,38,38,39,40,43,45,47,47,48,46,42,42,45,47,51,59,63,66,66,68,69,70,\r\n 72,72,74,74,74,74,75,84,74,68,72,73,69,70,70,69,68,70,66,63,62,57,58,59,56,53,52,50,49,47,44,42,41,39,39,38,35,34,33,32,32,29,29,27,26,24,24,24,23,22,20,19,17,17,16,15,15,15,13,12,11,10,12,9,8,8,8,8,7,7,5,5,3,2,1,0,0,0,0,0,2,0,254,254,253,252,250,249,248,248,247,247,247,246,246,245,246,245,245,245,\r\n 245,245,245,245,245,246,246,247,247,247,248,248,248,248,247,247,246,245,245,245,245,244,245,244,245,245,245,245,246,246,247,248,249,250,252,253,255,0,1,255,6,14,22,26,18,17,19,25,25,26,26,25,23,20,17,14,13,11,8,5,3,0,253,250,248,245,242,241,241,241,237,236,237,236,236,237,240,242,243,243,245,246,247,250,251,249,246,246,246,247,247,249,249,250,251,252,253,255,0,2,\r\n 4,6,8,9,11,12,13,14,14,14,14,14,14,14,14,14,14,14,14,13,12,10,10,9,9,9,9,9,10,10,11,11,13,16,15,14,14,9,6,7,4,0,0,254,253,250,247,249,249,245,244,244,246,245,244,243,235,235,233,232,226,224,224,223,222,222,220,223,219,222,222,223,223,221,222,221,220,219,217,216,216,213,211,208,205,203,201,199,197,194,193,191,189,185,182,181,179,178,177,177,\r\n 178,179,180,180,182,183,185,187,189,192,192,197,199,203,207,212,215,220,225,228,232,237,240,244,247,248,249,251,254,2,8,12,16,21,24,28,32,35,34,38,42,41,36,33,39,43,41,37,34,41,46,52,56,60,62,64,66,66,67,69,71,72,73,74,74,74,71,77,83,79,77,78,77,74,73,72,70,69,67,63,64,61,55,60,59,57,55,54,52,49,48,45,43,42,41,39,38,36,35,34,\r\n 35,33,31,30,28,28,27,26,25,22,21,20,18,17,16,15,16,15,14,12,11,9,8,8,7,7,7,6,6,6,5,4,2,2,0,0,0,255,255,254,254,0,255,253,252,251,250,249,249,248,248,247,247,247,247,247,246,247,246,246,246,246,246,246,247,248,248,249,249,249,249,249,249,249,248,248,247,246,246,245,245,245,245,245,245,246,246,246,246,247,248,249,250,251,252,253,255,0,1,0,\r\n 0,9,21,30,28,21,24,26,27,28,28,27,26,24,22,19,17,15,11,8,4,0,254,252,249,246,244,243,243,242,238,238,239,237,239,241,242,240,241,244,245,245,246,247,248,246,246,246,246,247,247,248,249,250,250,251,252,254,0,2,4,5,7,8,9,10,12,13,13,13,13,13,13,13,14,13,13,13,13,12,12,11,10,10,10,10,10,11,11,12,13,14,15,17,17,17,17,11,8,8,\r\n 6,3,1,255,253,251,252,250,250,247,245,246,245,245,241,241,238,235,234,233,230,226,227,225,225,224,224,223,224,223,225,227,224,225,224,223,222,221,219,218,219,218,216,211,209,206,205,203,201,198,196,195,192,189,186,184,183,182,181,181,181,182,182,183,184,186,187,188,189,192,193,197,199,203,205,210,214,218,221,225,230,234,236,241,246,252,252,249,251,254,255,1,4,10,11,11,14,16,20,28,\r\n 38,34,27,27,35,34,36,42,47,50,52,55,58,60,61,63,65,64,66,67,69,70,72,74,74,71,69,69,76,80,78,76,74,74,73,71,70,68,66,63,63,63,59,59,60,58,58,57,56,54,51,50,47,44,43,41,40,38,36,35,39,37,34,32,31,29,28,27,26,24,22,21,19,17,17,15,15,15,15,13,11,10,8,8,7,6,6,5,5,4,4,3,2,1,0,255,255,254,254,253,\r\n 253,253,253,252,252,250,250,249,249,249,248,248,248,247,247,247,247,247,247,247,247,247,247,248,248,249,250,250,250,250,250,250,250,250,249,249,248,247,247,247,246,246,246,246,246,247,247,247,247,248,248,249,250,251,252,253,255,0,1,3,0,2,16,28,33,28,29,28,27,28,29,29,28,28,26,23,20,17,14,10,4,1,255,251,246,246,246,245,244,240,238,239,241,240,242,240,240,241,242,244,\r\n 245,243,245,247,247,245,246,247,247,247,248,248,249,249,250,251,252,254,255,1,2,4,6,7,8,10,11,12,11,12,11,11,12,13,13,13,13,12,12,12,11,11,10,11,10,11,11,12,13,13,14,15,17,18,19,20,21,15,12,11,8,5,3,1,0,0,255,253,251,248,248,247,245,242,242,239,238,235,233,233,234,230,229,229,228,227,225,226,225,227,227,226,227,226,225,225,224,223,221,220,\r\n 219,221,219,215,212,210,209,208,205,202,200,199,195,192,190,188,187,186,185,185,185,185,185,185,187,188,188,189,190,194,193,197,199,202,205,209,214,218,220,224,228,231,235,238,243,249,249,250,252,254,0,2,5,5,5,7,10,13,16,17,22,27,29,29,31,37,42,46,48,49,52,55,58,59,59,60,62,62,64,66,67,67,69,72,72,70,71,69,68,69,72,74,74,74,72,70,66,69,69,65,\r\n 64,58,62,56,55,52,54,59,59,58,56,52,51,49,47,45,43,41,40,39,42,41,39,35,34,31,30,28,27,25,23,20,18,17,16,15,14,14,15,13,10,9,8,7,7,6,5,4,3,3,2,1,0,0,255,255,253,253,252,252,252,252,252,251,250,249,249,249,248,248,248,248,248,248,248,248,248,248,248,248,248,248,249,249,250,250,251,251,251,251,251,251,251,251,250,249,249,248,248,248,\r\n 247,247,247,247,247,248,248,248,248,249,249,250,251,252,253,254,255,0,1,3,4,2,10,25,35,36,35,32,33,29,30,30,30,30,29,26,23,20,18,15,12,8,4,1,252,249,248,247,245,243,239,242,241,239,241,241,241,241,244,245,245,245,246,245,245,245,247,248,249,248,248,249,249,250,250,251,252,253,255,0,2,3,5,6,7,9,10,10,10,10,10,11,12,12,12,13,13,12,12,11,\r\n 11,11,11,11,11,12,12,13,14,15,16,17,17,20,21,23,22,20,15,12,10,7,5,3,1,0,0,254,251,250,249,247,243,243,240,238,237,235,234,234,234,231,230,231,233,230,228,229,232,232,231,229,228,227,227,227,226,225,224,222,221,223,221,218,216,215,213,211,209,206,204,202,199,196,194,193,191,189,189,189,189,189,188,189,190,188,189,190,192,195,194,198,199,201,205,209,213,218,219,221,\r\n 224,229,233,236,240,243,244,248,250,254,0,3,6,7,8,10,13,14,17,20,23,25,29,34,37,38,41,43,45,46,49,53,54,57,57,59,60,61,62,63,63,64,66,69,68,67,68,67,67,66,66,66,66,67,67,65,67,69,67,64,66,65,61,60,60,55,47,59,61,61,60,58,56,53,52,50,49,46,46,42,42,44,41,37,36,34,32,29,28,25,24,22,20,17,16,14,13,14,13,12,\r\n 10,9,8,7,7,6,4,4,3,2,1,0,0,0,254,254,253,253,252,252,251,251,250,249,249,248,248,248,248,248,248,248,248,248,248,248,248,249,249,249,249,249,250,250,251,251,252,252,252,252,252,252,252,252,251,250,250,249,249,248,248,248,249,248,248,249,248,249,249,250,250,251,252,252,253,253,255,0,1,4,6,6,6,17,33,39,39,42,46,35,30,29,29,29,29,27,24,21,18,16,\r\n 13,10,6,3,255,253,250,249,248,245,244,244,241,239,243,244,243,241,244,245,246,246,246,245,245,245,247,248,249,249,249,249,249,250,250,251,252,253,254,0,1,2,4,6,7,9,9,10,10,10,11,11,12,12,14,13,13,13,13,12,12,12,12,12,12,12,13,14,14,15,16,17,18,22,21,23,23,20,17,14,12,10,6,3,2,1,0,254,253,252,251,247,242,245,242,241,240,237,237,236,\r\n 236,232,230,229,230,234,231,231,236,238,236,232,231,230,229,230,229,228,227,226,223,226,223,221,219,219,218,215,213,211,208,206,203,200,198,197,195,194,193,193,193,192,192,192,191,190,191,191,194,197,196,198,200,201,204,209,214,215,217,219,221,225,231,233,235,238,240,244,247,251,253,254,1,3,5,7,10,12,14,18,23,25,29,32,35,37,37,40,42,44,46,50,52,54,55,56,57,58,59,59,\r\n 61,61,64,67,66,64,66,65,65,65,65,65,65,64,65,67,69,68,66,65,64,65,64,62,62,60,49,58,62,62,62,60,59,57,56,54,52,50,48,46,47,46,44,43,39,36,32,31,36,30,29,24,19,17,16,14,13,13,12,10,9,8,7,7,6,6,5,4,3,2,2,1,0,255,255,254,253,252,251,251,250,250,249,248,248,247,247,247,247,248,248,248,248,248,248,248,249,249,249,249,\r\n 250,250,251,252,252,253,253,253,253,253,253,253,252,253,252,251,251,250,249,250,249,249,250,249,249,250,249,249,250,251,251,252,252,253,253,253,255,0,1,4,6,9,8,12,26,39,40,44,46,51,48,39,29,25,27,26,25,22,20,17,14,13,8,4,0,253,251,249,247,247,246,245,242,240,244,245,244,244,243,245,247,247,246,244,245,246,247,249,249,250,250,250,250,250,251,251,252,253,254,0,\r\n 0,2,4,5,6,8,9,9,10,10,11,12,12,13,13,13,13,13,13,13,13,13,13,12,13,13,13,14,14,15,16,17,19,21,22,23,21,21,17,14,13,10,6,5,4,3,1,0,255,253,250,246,245,245,246,242,241,240,238,237,236,233,234,232,231,231,231,233,239,243,241,235,234,233,232,232,232,231,230,228,228,230,227,225,223,222,221,220,217,215,212,209,206,204,203,201,199,198,198,197,\r\n 196,196,195,195,193,193,194,196,198,197,197,198,200,202,204,207,211,215,215,217,219,223,227,229,230,232,236,239,243,247,247,249,253,0,1,3,6,8,10,14,19,22,27,29,32,34,36,38,39,41,42,45,48,51,51,52,54,55,56,56,58,59,61,64,66,65,64,65,64,62,62,63,63,63,64,65,66,65,65,65,64,64,64,62,61,63,53,56,64,64,64,63,61,59,58,56,54,53,51,49,\r\n 49,48,46,45,44,42,38,27,26,29,27,23,20,17,15,14,13,12,11,10,9,8,7,7,6,6,6,5,3,3,1,1,2,1,255,254,253,252,252,252,250,249,248,248,247,247,247,247,247,248,248,247,248,248,248,248,249,249,250,250,251,251,251,252,253,253,253,254,254,254,254,254,254,253,252,252,252,251,251,250,251,250,250,250,250,250,250,250,250,251,252,252,252,253,253,254,0,0,2,4,\r\n 7,10,12,11,16,30,41,42,46,47,49,48,32,24,23,23,24,24,22,19,16,13,9,3,0,255,253,252,251,250,247,244,243,242,244,245,244,244,246,247,247,248,244,244,245,247,248,249,249,250,250,250,250,250,250,251,252,253,254,255,0,2,3,5,6,7,9,9,10,10,11,12,12,12,13,13,13,13,14,13,13,14,13,13,14,14,14,14,15,15,16,18,21,22,25,22,20,19,17,14,\r\n 12,10,8,7,5,5,3,1,0,253,249,249,247,245,247,245,243,242,240,238,238,235,235,234,233,231,234,237,239,244,242,238,235,235,234,235,235,234,232,230,233,234,229,228,227,226,225,224,221,219,216,214,210,208,206,205,204,203,202,201,200,199,198,197,196,196,199,201,201,198,199,200,201,203,204,208,209,213,214,215,218,220,223,225,226,229,232,235,239,242,243,245,249,252,254,0,1,3,6,10,\r\n 15,21,25,28,30,32,35,37,37,37,39,41,43,45,47,49,51,53,53,53,54,56,58,61,64,65,63,63,65,64,64,62,62,62,62,63,64,63,64,63,63,62,61,62,62,59,55,62,63,65,65,64,62,61,59,58,56,55,53,51,51,49,48,46,45,44,42,34,22,29,26,23,20,17,16,14,12,12,11,10,9,8,7,7,6,6,6,5,5,4,2,1,0,0,0,255,253,252,252,251,\r\n 251,249,248,247,247,246,246,246,247,247,247,247,248,248,248,249,249,249,250,251,251,252,252,253,253,254,254,254,254,254,254,254,254,254,253,253,252,252,252,252,251,251,251,251,251,251,250,251,251,251,252,253,253,254,254,255,0,0,2,5,7,10,13,15,13,15,30,37,41,46,47,48,42,32,23,21,23,24,24,22,18,14,10,5,4,1,254,253,252,251,249,246,245,244,244,244,244,244,246,249,\r\n 247,249,247,243,246,248,249,249,250,250,250,250,250,249,250,250,251,253,254,255,0,2,4,5,6,7,8,9,10,11,11,11,12,12,14,13,13,13,14,14,14,14,14,14,14,14,15,15,15,15,16,20,22,22,24,21,19,18,17,17,14,10,9,8,7,7,5,3,2,255,252,248,248,247,246,247,245,241,239,238,240,236,237,236,238,239,239,241,244,246,243,240,238,237,237,238,237,236,235,236,\r\n 238,235,233,231,231,230,229,227,225,223,220,217,215,212,211,209,208,207,206,205,203,202,200,199,198,198,199,200,203,200,201,201,203,204,206,207,208,211,212,214,216,217,220,222,224,226,229,231,235,237,239,242,245,248,249,252,254,0,2,8,14,20,22,25,27,29,33,34,34,34,35,37,39,41,43,45,48,49,50,52,53,54,56,59,62,64,62,61,63,63,64,64,63,61,61,61,62,63,62,62,\r\n 62,60,61,60,59,61,59,62,65,66,66,65,64,62,61,59,58,56,54,53,51,50,49,48,47,46,45,36,24,29,28,24,20,17,16,14,12,12,11,10,9,8,7,7,6,5,5,4,6,5,3,2,0,254,254,254,254,253,251,250,249,249,248,247,246,246,246,246,246,246,247,247,247,248,248,249,249,250,250,251,252,252,252,253,254,254,254,255,255,255,255,254,254,254,254,253,253,253,252,252,\r\n 251,251,251,251,251,251,251,251,252,252,253,253,254,254,255,0,0,1,3,5,7,10,13,15,16,14,11,18,30,40,47,46,48,47,39,24,21,23,23,21,19,16,12,9,5,2,0,254,253,252,249,246,245,244,243,244,245,245,247,248,248,248,246,247,248,248,249,250,250,251,251,250,250,250,249,250,251,253,255,0,0,2,4,5,6,7,9,9,10,11,11,12,12,13,13,13,13,13,14,15,\r\n 15,15,15,15,15,15,16,16,16,17,18,21,21,24,24,23,21,20,19,18,15,12,11,10,10,8,8,7,0,0,2,1,254,250,249,247,245,243,243,243,243,238,240,241,243,245,244,246,249,248,244,240,240,240,239,240,239,238,237,241,240,237,236,235,234,233,232,231,229,227,224,221,219,217,215,213,212,211,210,208,207,205,203,202,201,200,201,202,206,203,203,203,204,205,208,206,208,209,211,213,\r\n 215,215,217,219,222,224,226,229,232,234,237,240,242,247,249,251,251,253,0,7,12,16,19,22,24,26,29,32,32,31,33,35,37,38,39,43,44,46,47,50,51,52,54,57,59,61,62,60,60,61,63,63,63,61,61,61,61,61,60,60,59,58,60,59,60,60,60,58,62,67,66,66,65,63,62,60,59,57,56,54,50,51,50,49,49,48,47,33,26,29,27,25,21,18,16,14,13,13,11,10,\r\n 9,8,8,6,6,5,4,3,3,2,4,3,0,254,253,252,251,251,250,250,249,248,248,247,247,246,246,246,246,246,246,246,247,247,247,248,249,250,250,251,251,252,253,253,254,254,255,255,255,255,255,254,254,254,254,254,253,253,252,252,252,252,252,252,252,252,252,253,253,253,254,254,255,255,0,0,1,2,4,5,8,10,12,15,16,17,17,14,17,27,39,47,47,47,46,39,31,22,21,20,\r\n 20,17,14,11,7,3,0,254,253,251,249,245,245,246,246,246,247,247,248,247,248,250,251,247,250,249,249,250,251,251,251,251,250,250,250,250,251,252,254,0,0,2,3,5,6,7,8,10,10,11,12,13,13,13,13,13,13,14,15,15,16,16,16,16,16,16,17,18,18,18,18,20,23,25,26,24,22,20,20,19,17,14,14,12,10,10,8,5,4,3,3,4,2,254,251,249,247,248,247,243,\r\n 243,242,243,244,246,248,250,252,252,250,244,242,241,241,241,241,241,240,240,241,241,240,240,239,238,237,236,235,233,231,228,226,223,221,219,217,216,214,213,211,210,209,207,205,204,204,204,205,209,204,204,205,205,206,207,206,208,209,211,212,213,214,216,218,221,223,225,227,229,232,235,237,240,243,245,247,249,252,0,6,9,11,14,17,20,22,24,27,28,29,32,32,33,35,37,39,41,43,45,47,\r\n 49,50,51,54,57,60,60,59,58,59,60,60,60,59,59,60,60,59,58,58,58,58,58,61,60,60,60,57,57,66,66,66,65,64,63,61,59,57,57,52,50,50,51,50,51,50,46,26,29,28,29,25,21,18,16,14,12,12,11,10,10,9,8,6,5,4,3,2,2,2,0,0,255,253,252,251,251,250,249,249,248,247,247,247,247,247,246,246,246,246,246,246,247,247,248,248,249,249,250,251,\r\n 252,252,253,253,254,254,255,255,255,255,255,255,254,254,254,254,253,253,253,253,253,252,252,252,253,253,253,254,254,254,255,255,0,0,0,1,2,3,4,6,8,10,12,13,16,17,19,20,14,20,36,46,45,46,46,41,31,22,22,21,19,17,15,12,9,4,0,253,251,249,249,247,247,249,248,247,248,247,246,248,249,251,250,246,248,249,250,251,252,252,252,251,251,250,250,250,251,252,254,255,\r\n 0,2,3,5,6,7,8,10,11,11,12,12,12,13,13,13,13,14,15,16,16,16,16,17,17,18,18,19,19,19,20,22,25,25,26,25,23,23,22,22,20,16,14,13,12,11,10,8,7,6,6,6,2,255,253,251,250,250,246,245,244,245,246,247,247,249,254,0,255,250,244,244,243,243,244,244,242,244,248,244,244,243,242,242,242,241,240,239,237,235,233,230,228,226,223,222,220,218,216,215,\r\n 213,212,210,208,208,207,206,209,210,206,207,206,207,208,207,208,208,209,210,210,212,214,215,217,220,222,224,226,228,230,233,235,236,240,242,243,250,253,0,4,8,10,12,14,16,18,20,22,24,27,28,28,29,31,34,35,37,40,42,44,47,47,49,53,56,58,58,58,58,58,58,58,59,58,57,57,58,57,57,59,57,57,57,59,60,60,60,57,53,64,66,66,65,64,63,61,59,57,55,51,\r\n 50,51,52,51,52,52,43,24,29,29,26,23,21,18,16,15,13,12,11,10,9,9,10,7,5,4,3,2,1,0,0,255,253,253,251,251,250,249,248,248,248,248,247,246,246,246,246,245,245,245,245,246,246,247,247,248,249,249,250,251,252,252,253,253,254,254,254,255,255,255,255,255,254,254,254,254,254,253,253,253,253,253,253,253,253,254,254,255,255,255,0,0,0,0,1,1,2,3,5,7,\r\n 8,9,11,13,14,16,18,21,18,16,34,43,45,45,45,43,30,23,23,22,19,16,15,13,8,4,0,252,251,249,249,249,248,250,249,250,251,248,250,250,250,247,250,248,250,249,250,251,252,251,251,252,250,251,250,251,251,252,253,255,0,1,3,4,6,7,8,10,12,12,12,12,13,13,13,13,14,15,16,16,16,17,17,18,18,19,20,21,22,23,23,24,25,25,26,26,27,26,25,24,\r\n 22,19,17,16,14,13,11,10,10,10,7,5,1,1,0,253,253,248,246,247,247,248,248,249,250,251,255,1,0,250,246,246,246,246,246,246,245,246,250,244,247,246,246,246,245,245,244,242,240,239,236,234,232,230,227,225,223,222,220,218,216,215,213,212,211,210,211,212,212,209,209,209,210,209,208,209,209,210,209,210,211,213,215,217,220,222,223,225,227,229,231,233,235,238,240,244,249,251,254,1,\r\n 4,8,10,10,12,14,16,18,20,23,24,24,24,27,31,33,34,37,39,43,46,45,45,48,52,55,56,56,57,57,57,57,58,56,54,55,55,55,56,58,56,58,56,56,60,59,60,59,50,54,64,65,65,64,63,61,59,56,52,50,50,52,52,53,52,53,35,26,30,28,26,23,20,17,16,14,14,12,12,11,11,9,7,6,5,4,2,1,1,0,255,254,253,252,251,250,249,249,248,248,\r\n 247,247,247,246,246,246,245,245,245,245,245,245,246,246,247,247,248,249,250,251,251,252,253,253,253,254,254,254,255,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,255,255,0,255,0,0,0,0,1,2,2,3,4,6,8,8,9,11,12,14,16,18,19,20,16,32,39,45,44,43,41,28,23,23,22,21,18,16,14,8,3,0,253,251,250,250,250,250,251,252,253,254,251,251,250,\r\n 249,246,248,247,249,251,252,251,252,251,251,252,250,251,251,251,252,253,254,255,0,1,3,4,6,7,8,10,12,12,13,13,13,13,13,13,14,15,16,16,17,17,18,19,20,22,22,23,23,23,22,24,25,26,26,28,29,29,29,28,24,21,18,18,17,15,14,14,12,10,8,5,4,3,1,255,253,251,252,251,250,251,251,252,253,255,0,2,0,252,248,248,248,248,249,0,255,247,248,249,\r\n 249,249,249,248,248,247,246,245,244,242,240,238,235,234,231,229,227,225,223,222,220,218,217,215,215,215,214,214,214,211,211,211,210,209,210,210,211,210,209,210,211,213,215,217,220,221,222,224,226,227,228,230,233,235,239,245,248,249,251,254,1,4,7,8,8,9,11,14,16,18,20,22,24,26,28,30,32,34,36,40,44,43,43,44,47,50,53,54,55,55,55,56,56,55,53,52,53,54,54,56,\r\n 54,57,56,54,54,61,61,60,57,50,61,64,63,62,61,60,58,54,53,51,50,52,52,53,53,43,26,30,30,28,25,23,20,18,15,13,13,12,11,11,10,9,7,5,4,3,2,1,0,0,254,253,252,251,250,250,249,248,248,247,247,247,246,246,246,246,246,246,246,246,246,246,246,246,247,247,248,249,250,250,251,252,252,253,253,253,254,254,254,254,254,254,254,254,254,254,254,254,254,254,\r\n 254,254,254,255,255,255,0,0,0,0,0,1,1,2,2,3,4,5,7,7,8,9,10,12,14,16,17,19,19,15,33,38,45,45,45,40,27,23,24,22,19,18,16,14,9,4,0,254,253,251,251,250,250,252,254,254,254,252,250,251,250,246,247,247,248,248,249,250,251,251,251,250,251,251,251,252,252,253,255,0,0,2,3,5,6,8,9,11,12,12,12,13,13,13,13,14,15,15,16,17,\r\n 17,18,19,20,22,23,24,25,23,22,22,23,25,27,28,30,30,31,29,27,25,22,19,20,18,17,16,15,13,11,10,10,8,4,3,2,0,255,254,255,255,254,254,255,1,1,4,3,0,252,250,250,251,251,252,253,253,251,251,252,251,251,251,250,250,250,249,248,247,245,243,241,239,237,235,233,231,229,227,225,224,222,220,219,218,218,217,217,217,214,213,212,211,211,210,211,211,210,210,211,\r\n 212,214,215,218,222,223,221,224,226,226,226,228,230,235,241,245,248,249,250,251,254,0,3,5,4,5,7,10,12,14,15,16,18,21,25,27,30,32,34,37,40,41,41,42,43,46,49,51,52,53,53,53,54,53,52,50,51,52,51,53,53,53,54,54,52,53,59,60,59,54,52,60,61,60,58,56,54,53,51,50,50,52,52,52,51,30,27,32,30,28,25,23,20,18,16,14,13,12,11,10,\r\n 9,7,6,4,4,3,2,1,0,0,254,253,252,250,250,249,249,248,248,247,247,246,246,246,245,246,245,245,246,246,246,246,246,247,247,247,248,249,249,250,251,251,252,252,253,253,253,253,253,253,253,253,253,253,253,254,254,254,254,254,255,255,255,255,0,0,0,0,0,0,1,1,2,2,3,4,4,6,7,7,8,9,10,12,14,16,18,20,18,16,34,36,41,46,45,38,24,24,23,22,\r\n 19,17,16,13,9,4,0,0,254,253,252,252,251,253,255,253,252,251,251,251,247,246,247,247,248,249,249,250,250,251,251,251,251,251,252,253,254,255,0,0,2,3,4,5,7,8,10,11,12,12,13,13,13,13,14,14,15,16,17,18,18,19,20,22,23,25,26,25,24,22,22,23,25,28,29,30,31,33,30,27,25,24,22,21,20,18,18,16,15,15,14,11,9,6,6,6,3,1,0,1,\r\n 0,0,0,0,3,4,6,4,1,254,253,252,253,254,254,254,254,254,253,253,253,253,253,253,253,252,251,250,249,248,246,245,243,240,238,236,234,232,230,228,227,225,224,222,221,220,219,219,219,216,215,214,213,212,212,212,212,211,211,212,213,214,216,218,219,220,220,223,225,225,225,226,231,236,241,244,247,248,249,251,252,255,0,1,2,3,3,6,8,9,11,13,16,19,22,24,26,28,30,33,\r\n 36,37,37,37,39,43,46,49,50,50,51,51,51,50,50,48,49,49,48,50,50,52,52,52,52,52,53,57,58,57,51,49,50,50,51,53,54,52,51,50,50,52,52,51,43,25,32,32,31,28,25,22,20,17,16,14,12,11,11,10,8,7,6,5,3,2,1,0,0,255,254,253,253,252,251,249,249,248,248,247,246,246,246,245,245,245,245,245,245,245,246,246,247,247,247,247,248,248,249,250,\r\n 250,251,251,252,252,252,252,253,253,253,253,253,253,253,253,254,254,254,254,255,255,255,255,0,0,0,0,1,1,1,1,2,2,3,4,4,5,6,6,7,8,9,11,13,14,16,18,19,16,18,33,35,42,44,44,33,27,24,24,23,20,18,16,12,8,5,2,0,0,0,0,0,254,253,252,252,251,249,249,247,245,247,248,248,248,249,250,250,251,251,251,251,252,252,253,254,255,0,0,2,\r\n 2,4,5,7,8,9,11,12,12,13,13,13,13,14,14,15,16,16,17,18,19,20,21,23,24,26,27,25,23,23,23,24,25,28,29,30,33,33,29,27,26,26,24,23,23,21,19,17,19,19,15,11,13,9,9,9,6,4,4,3,3,2,2,0,5,7,8,6,3,0,255,255,0,0,0,0,0,0,255,255,255,0,255,255,255,254,253,253,252,251,249,248,245,244,242,240,238,235,234,232,\r\n 230,228,227,226,224,223,222,222,220,219,216,215,215,214,214,213,213,213,212,213,214,215,216,217,219,220,220,222,225,225,224,227,232,236,238,241,244,246,247,250,252,253,253,253,254,0,0,2,3,4,3,4,7,10,13,17,22,24,26,28,32,32,32,33,35,38,42,46,47,47,49,49,49,48,45,45,46,47,47,47,48,50,50,50,50,50,52,53,56,55,55,53,53,54,54,53,52,51,50,50,\r\n 50,51,51,50,39,28,34,34,31,28,25,22,20,17,15,14,12,10,10,9,8,7,5,4,3,2,1,0,0,255,254,253,253,252,252,250,249,248,248,247,246,246,245,245,245,244,244,244,244,245,245,246,246,246,247,247,247,248,249,249,250,250,251,251,251,252,252,252,252,252,252,253,253,253,253,254,254,254,255,255,255,0,0,0,0,0,0,1,1,2,2,2,3,3,4,4,5,6,7,8,\r\n 8,9,11,12,14,16,18,19,16,19,37,40,44,44,41,30,27,25,25,23,21,19,17,13,10,6,4,2,2,3,4,2,255,255,253,251,247,246,246,245,246,246,248,248,249,250,250,251,251,251,252,253,253,254,255,0,0,1,2,3,5,5,7,8,9,10,12,13,13,13,13,14,14,14,15,15,17,17,18,19,20,21,22,23,24,26,28,26,24,24,24,24,25,28,30,32,34,33,30,28,\r\n 28,27,26,25,25,24,23,21,22,20,21,15,15,13,11,11,8,7,5,5,3,3,3,2,5,8,9,7,3,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,255,254,253,252,251,249,247,245,243,241,239,237,235,233,232,230,229,227,225,224,225,224,221,219,218,216,215,215,214,214,214,214,214,215,216,217,218,219,220,220,220,222,223,224,227,232,235,236,239,241,241,242,245,\r\n 248,250,251,250,251,253,254,255,0,3,3,3,5,6,10,13,17,20,22,24,26,27,28,29,32,35,38,42,45,45,46,48,47,47,43,43,42,44,44,45,48,47,49,48,48,48,49,51,53,53,53,53,53,53,53,52,51,50,49,49,49,50,50,48,34,31,35,34,31,28,24,22,20,17,15,13,12,10,9,8,7,6,5,3,2,1,1,0,0,255,255,254,253,254,253,251,250,250,248,247,\r\n 246,246,245,245,244,244,244,244,244,244,245,245,246,246,246,247,247,248,248,249,249,250,250,251,251,251,251,251,252,252,252,252,253,253,253,254,254,254,255,255,255,255,0,0,0,0,0,1,1,1,2,2,2,3,4,4,5,6,7,7,9,9,11,13,15,16,17,19,15,20,35,42,44,45,38,30,27,26,25,23,21,19,17,15,11,7,5,4,5,5,4,2,0,255,251,248,246,247,247,246,\r\n 246,246,247,248,250,251,252,253,253,253,253,254,255,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,13,14,14,14,15,15,16,17,17,18,19,19,20,21,22,23,25,27,28,25,25,25,25,25,26,28,31,32,34,34,30,29,29,28,27,27,26,26,27,26,26,27,26,19,19,16,13,12,10,10,6,5,4,5,5,5,6,8,9,7,5,4,3,2,2,2,2,3,3,2,2,2,\r\n 2,1,2,2,2,1,1,1,0,0,255,253,252,250,248,246,244,242,240,238,236,235,233,232,230,228,227,228,226,223,221,219,219,217,216,216,215,215,215,216,218,217,217,218,219,219,220,220,219,220,222,226,230,233,235,237,240,241,240,243,245,246,246,247,249,250,251,255,0,3,4,1,2,5,8,10,13,15,17,19,21,23,24,27,28,31,35,38,39,40,42,45,45,45,42,39,40,40,41,42,\r\n 43,45,46,47,46,46,47,49,51,51,52,51,52,52,51,51,50,49,49,49,48,50,49,45,29,30,34,32,31,28,25,21,19,17,15,13,12,10,9,8,6,5,4,2,2,0,0,0,0,0,255,254,253,253,253,253,252,251,250,248,247,246,245,245,244,244,244,244,244,244,244,245,245,245,246,246,247,247,247,248,248,249,249,249,250,250,250,251,251,252,252,252,252,252,253,253,254,254,254,254,\r\n 255,255,255,0,0,0,0,1,1,1,2,2,3,3,3,4,5,6,7,8,9,10,12,13,14,16,18,19,13,22,35,43,43,40,36,27,25,24,23,22,20,19,17,15,12,8,6,5,7,6,4,1,0,254,250,249,247,247,247,246,246,248,248,249,250,252,253,254,255,255,255,0,0,0,1,3,3,4,5,6,7,8,9,10,11,12,13,14,14,14,14,15,15,15,16,17,17,18,19,20,\r\n 21,22,23,24,26,26,25,25,26,25,25,25,27,28,31,32,34,34,31,32,30,29,29,29,29,29,29,29,29,30,29,24,22,18,16,14,13,11,7,6,6,7,7,7,6,9,10,9,8,6,5,4,4,4,4,5,5,5,4,4,4,4,5,6,6,6,4,3,2,1,0,0,255,253,251,249,247,245,243,241,239,238,236,234,233,231,230,230,228,225,223,221,220,220,218,218,217,217,217,217,\r\n 217,218,218,219,219,219,219,219,219,219,220,222,227,231,234,237,239,239,239,240,242,244,244,245,246,247,247,249,250,252,255,0,0,1,5,7,9,12,14,16,18,20,22,24,26,29,32,34,35,36,38,42,43,43,39,37,37,38,38,40,41,42,43,44,44,43,45,46,48,49,50,50,50,50,50,50,49,48,47,47,48,49,47,41,26,30,34,32,30,28,24,22,19,17,15,13,12,10,9,8,\r\n 6,5,4,2,1,0,0,0,0,0,255,254,253,253,252,252,252,252,251,249,248,247,246,245,245,244,244,243,244,244,244,244,245,245,246,246,246,247,247,247,247,248,248,248,249,249,250,250,250,251,251,251,252,251,252,252,253,253,253,254,254,254,254,255,0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,7,8,10,11,12,14,15,16,17,13,26,35,42,36,29,30,27,24,24,23,21,\r\n 20,18,17,14,11,9,8,8,8,6,6,2,1,255,251,250,247,247,246,246,246,247,248,250,252,253,254,255,0,0,0,1,1,2,2,3,5,5,6,7,8,9,10,11,12,12,13,14,14,14,15,15,15,16,16,17,17,18,19,20,21,22,23,25,24,24,25,25,25,25,26,26,27,28,31,32,33,32,32,32,30,31,31,33,31,30,30,30,32,32,28,26,24,19,17,16,15,12,10,8,\r\n 9,10,10,9,9,12,12,12,12,11,8,7,7,7,8,8,8,7,7,7,7,8,9,8,8,7,7,6,4,3,2,1,0,255,254,252,250,248,246,244,242,240,238,237,235,234,233,231,230,227,226,223,223,222,221,220,219,219,220,220,218,218,219,219,219,219,218,218,218,218,219,220,223,228,233,236,236,237,237,238,239,241,242,243,243,243,244,245,245,245,247,248,251,0,4,5,8,9,11,13,\r\n 15,17,20,22,25,27,29,30,32,33,35,38,40,40,38,36,36,35,36,37,38,39,41,41,41,40,42,44,46,47,48,48,48,49,49,48,48,47,47,47,48,48,45,34,24,30,32,31,28,26,23,21,20,17,15,13,12,10,9,7,6,5,3,2,1,1,0,0,0,255,255,254,253,252,252,252,251,251,250,250,249,247,246,245,245,244,244,244,243,244,244,244,245,245,245,246,246,246,247,247,\r\n 247,247,248,248,248,248,249,249,249,250,250,250,251,251,251,251,252,252,252,253,253,253,254,254,255,255,0,0,0,1,1,2,2,2,3,3,4,5,6,7,8,9,11,12,14,16,17,15,15,31,38,36,33,29,27,26,24,23,22,20,19,18,16,14,11,10,9,9,7,7,4,2,1,254,251,249,248,248,248,248,248,249,249,251,253,254,0,0,1,2,2,2,2,3,3,5,5,7,7,8,\r\n 9,10,11,12,12,14,14,15,15,15,15,15,15,16,16,17,18,18,19,21,21,22,24,24,23,24,24,25,25,26,26,26,27,28,30,32,31,32,32,32,31,31,32,32,31,31,31,31,35,36,29,27,25,19,18,18,17,13,11,11,11,12,12,12,13,15,15,15,15,14,11,11,11,11,11,11,10,10,10,11,12,11,11,11,10,9,8,7,7,5,4,3,2,0,0,255,253,251,249,247,\r\n 245,243,241,240,238,237,235,234,233,230,228,227,225,224,224,223,222,220,221,220,219,218,219,219,219,218,218,218,218,217,218,219,221,223,229,231,233,234,236,237,237,237,239,240,240,241,241,241,241,242,245,248,253,0,1,4,5,8,10,12,13,16,19,20,23,24,27,28,30,31,33,35,37,37,34,31,33,32,34,35,35,37,38,39,38,38,40,42,46,45,46,47,47,47,47,47,47,47,46,46,\r\n 47,46,40,26,25,31,31,30,26,25,22,21,19,16,15,13,12,10,9,7,5,4,3,2,1,1,0,0,255,255,0,255,253,252,251,251,250,250,249,249,248,248,247,246,246,245,245,244,244,244,244,244,245,245,245,246,246,246,246,246,247,247,247,247,248,248,248,248,249,249,249,250,250,250,250,251,251,252,252,252,252,253,253,254,254,254,255,0,0,1,1,1,1,2,2,3,4,4,5,7,\r\n 8,9,10,11,14,15,16,13,15,31,38,32,28,26,23,24,25,22,22,19,18,17,15,14,13,11,11,9,7,5,3,3,1,253,251,250,249,249,248,247,248,250,251,253,0,0,1,1,1,2,4,4,4,5,5,6,7,8,9,9,10,11,12,13,13,14,15,15,15,15,15,15,15,15,16,17,18,19,19,20,22,23,23,25,23,23,23,24,25,26,26,26,27,28,30,32,31,31,34,35,\r\n 33,33,33,33,33,33,34,33,37,35,31,29,24,21,21,21,20,16,14,13,14,14,15,16,18,19,19,18,17,15,14,14,14,15,15,15,14,14,14,15,15,14,13,12,11,11,10,9,8,7,6,5,4,2,1,0,0,254,252,250,248,246,245,242,241,239,238,237,236,234,232,230,228,227,226,225,223,222,221,221,220,219,219,218,218,218,218,218,217,217,218,219,220,221,225,227,229,233,233,235,\r\n 235,235,236,236,237,239,239,240,239,240,243,247,251,254,0,1,3,5,8,11,12,15,17,19,21,22,24,26,28,28,32,35,36,34,30,28,30,30,32,33,34,35,36,36,36,36,38,39,42,43,44,45,45,46,45,45,45,45,46,46,46,45,33,20,27,31,29,28,26,23,22,19,17,16,14,12,12,10,8,7,6,4,3,2,1,1,0,0,0,255,255,254,254,252,251,250,250,249,249,248,\r\n 248,248,247,246,246,245,245,244,244,244,244,244,245,245,246,246,246,246,246,246,246,247,247,247,247,247,248,248,248,248,249,249,249,250,250,250,250,251,251,251,252,252,252,253,253,254,255,255,0,0,0,0,1,1,1,2,3,4,5,6,8,8,10,11,13,15,16,13,16,32,35,29,26,27,25,26,25,21,19,18,17,17,16,15,15,14,13,11,8,6,4,1,254,252,251,249,249,249,249,248,\r\n 249,250,252,253,0,2,3,3,2,3,4,5,5,6,6,8,8,9,10,11,12,13,13,14,15,15,16,16,15,16,15,15,15,16,16,17,17,18,19,20,21,21,23,24,22,23,23,24,24,25,26,26,27,28,29,29,31,31,32,33,35,35,35,35,35,35,35,36,36,33,30,26,22,22,23,22,22,17,16,16,16,17,17,20,23,23,22,21,19,18,17,17,17,17,18,18,18,18,19,18,\r\n 17,15,14,14,13,13,12,11,10,9,8,7,6,4,4,3,1,0,255,253,251,249,247,246,244,242,240,239,239,236,234,232,230,229,229,227,225,223,222,221,220,220,219,218,217,218,217,217,217,217,217,218,219,220,222,225,227,231,231,233,233,234,234,233,236,237,237,238,237,239,241,244,248,250,252,255,1,3,7,10,10,13,16,16,16,19,22,24,26,27,30,33,33,30,26,26,28,28,28,31,\r\n 32,33,33,34,34,34,35,37,39,40,41,42,43,44,43,43,43,44,45,45,44,41,23,20,29,30,29,26,24,21,20,19,17,15,13,12,11,10,8,7,6,5,3,2,1,1,0,0,255,255,254,254,253,252,251,250,248,248,248,247,247,247,247,247,246,245,245,245,245,245,245,245,245,246,246,246,246,246,246,246,246,246,246,246,247,247,247,247,248,248,248,248,249,249,249,250,250,250,251,251,\r\n 251,251,252,252,253,253,254,255,0,0,0,0,0,0,1,1,3,4,5,6,7,9,10,12,13,15,16,12,15,30,34,27,22,23,24,26,25,21,19,18,17,17,17,16,15,15,13,11,8,6,4,0,254,253,252,251,249,250,250,249,250,250,251,253,255,0,0,1,2,3,4,6,6,7,8,9,10,11,12,12,13,14,15,15,16,16,17,16,16,16,15,15,16,15,16,17,18,18,19,20,\r\n 21,20,23,22,23,22,23,23,24,24,25,26,26,27,28,29,31,31,32,33,35,37,36,35,35,34,34,34,31,31,27,24,23,23,24,25,24,20,18,18,19,20,21,24,26,26,25,23,23,22,21,21,20,20,21,21,22,21,21,20,19,17,16,15,15,15,14,13,12,11,10,9,8,6,5,5,3,2,0,255,253,251,250,248,246,245,243,242,241,238,236,234,232,230,228,228,228,226,225,223,\r\n 222,221,220,217,216,216,217,217,217,217,218,218,218,219,221,222,226,230,230,231,232,232,231,233,233,235,237,238,237,238,239,242,244,245,248,253,0,2,4,8,9,12,13,12,13,16,19,22,24,26,28,29,30,27,22,23,23,25,26,28,30,30,31,32,31,31,33,36,37,37,38,40,41,42,42,42,42,43,43,44,43,35,19,23,28,29,27,24,23,21,18,18,16,14,12,12,10,9,8,7,\r\n 5,5,3,2,1,1,0,0,0,255,254,253,253,253,251,250,249,248,248,247,247,247,247,246,246,245,245,245,245,245,246,245,246,246,246,246,246,246,246,246,246,246,246,246,246,246,247,247,247,247,248,248,248,249,249,249,250,250,250,251,251,251,251,252,252,253,253,254,255,255,0,0,0,0,1,2,3,3,5,6,7,8,9,11,12,13,15,10,15,27,34,25,20,23,26,25,23,20,19,17,\r\n 17,17,17,17,16,15,13,11,8,8,5,0,254,253,252,251,250,249,249,249,249,250,251,252,254,255,0,1,2,3,5,6,7,7,8,10,11,12,13,14,15,15,16,17,17,17,17,17,16,16,16,15,16,16,17,17,18,19,19,19,20,20,22,21,22,22,22,23,23,24,24,25,26,27,27,27,28,31,31,33,34,34,32,31,29,28,29,30,30,28,25,24,25,25,28,28,26,22,20,21,\r\n 21,22,23,26,31,30,28,27,25,25,24,24,23,23,24,25,25,24,23,21,19,19,18,18,17,17,15,15,14,13,12,11,9,8,7,6,5,4,3,1,0,254,252,250,249,247,246,245,243,240,238,236,234,232,231,229,227,225,224,223,223,221,219,218,217,216,217,217,217,217,219,219,219,219,222,223,226,230,230,229,229,229,229,230,231,234,235,236,236,236,238,241,243,242,246,250,255,1,3,7,\r\n 7,8,8,9,11,14,16,19,22,25,26,25,25,20,19,20,23,23,23,24,26,28,29,30,29,30,30,34,34,35,36,37,39,40,40,40,41,42,42,43,37,24,18,25,27,27,26,23,21,20,18,16,15,14,12,11,9,8,7,6,5,4,3,2,1,0,0,0,255,254,254,253,252,252,251,250,249,248,248,247,247,246,246,246,246,245,245,245,245,246,246,246,246,246,246,246,246,245,245,245,\r\n 245,246,246,246,246,246,246,247,247,247,247,248,248,248,249,249,250,250,250,251,251,251,251,252,252,253,253,254,254,255,255,255,0,0,0,1,2,4,5,7,8,10,10,11,12,14,13,9,19,25,32,26,22,22,23,22,21,20,18,17,17,17,16,16,16,15,13,9,9,6,2,0,254,252,251,251,250,250,250,250,250,250,251,252,253,255,0,1,3,4,5,6,7,9,10,11,12,13,14,15,\r\n 16,16,17,18,18,18,18,18,17,17,16,16,16,16,16,17,18,17,18,19,19,19,20,20,21,21,21,22,23,23,24,25,25,26,26,26,26,29,31,32,33,33,32,31,30,28,28,29,28,26,26,26,27,29,30,29,26,23,23,23,23,24,25,28,32,33,32,29,28,28,28,27,27,27,28,28,27,25,24,22,21,20,20,20,20,18,18,17,16,14,14,12,11,10,9,8,7,6,5,3,\r\n 2,0,255,253,251,249,248,247,244,242,240,238,236,235,233,231,229,228,226,225,224,222,220,219,217,216,216,217,217,218,221,221,220,219,222,224,226,229,229,227,226,227,227,228,230,231,230,229,229,230,233,235,239,243,246,249,253,255,1,4,4,4,6,8,10,12,14,17,19,22,24,22,18,15,17,18,19,19,20,20,23,24,26,27,27,28,28,30,32,32,34,36,39,39,39,39,40,40,41,41,\r\n 29,18,20,25,26,25,23,21,20,19,18,15,15,13,12,10,9,8,7,5,5,4,2,1,0,0,0,255,254,254,253,253,251,251,250,249,249,248,248,247,247,247,247,246,246,246,246,246,246,246,246,246,246,246,246,246,246,245,245,245,245,245,245,246,246,246,246,246,247,247,247,247,248,248,248,249,249,250,251,251,251,251,251,252,253,253,254,254,254,254,255,255,255,0,0,1,2,4,5,6,\r\n 7,8,10,11,13,13,10,13,21,25,30,26,23,21,21,20,19,18,18,17,17,17,16,15,14,13,10,9,8,3,0,254,252,251,251,251,250,250,249,250,250,250,251,252,253,254,0,0,2,5,6,7,8,10,11,12,14,15,16,17,17,18,18,18,19,19,18,18,18,17,17,17,17,17,17,18,17,17,17,18,18,18,19,20,20,20,21,21,22,23,24,25,25,26,26,26,26,28,30,31,\r\n 32,31,30,29,28,27,27,27,26,26,26,27,28,30,30,29,27,25,25,25,25,26,27,30,33,33,33,32,31,31,31,31,31,31,31,30,29,26,25,23,22,22,22,22,22,21,20,19,17,16,15,14,13,12,11,10,9,8,7,6,4,2,0,255,253,251,250,248,246,244,242,240,239,237,235,233,231,230,228,227,225,224,222,220,219,217,217,217,217,217,218,219,218,217,219,222,224,225,225,223,\r\n 223,223,223,224,224,224,224,224,226,226,229,232,235,238,242,247,250,253,255,0,1,2,4,6,8,10,12,14,17,20,21,17,11,14,15,16,16,17,17,17,19,21,23,24,25,26,26,27,29,31,32,32,35,38,39,38,37,38,38,37,22,17,22,24,24,23,21,19,18,17,16,14,14,12,11,10,8,7,6,5,4,3,2,1,0,0,255,255,254,253,253,252,251,250,250,249,248,248,248,247,\r\n 247,247,247,246,246,246,246,246,246,245,246,245,245,246,246,246,245,246,245,245,245,245,245,245,245,246,246,246,247,247,247,248,247,248,248,249,249,250,250,251,251,251,252,252,253,253,254,254,254,255,254,255,255,0,0,1,2,4,5,6,7,8,10,11,12,11,10,19,21,26,28,26,23,20,20,19,18,18,18,17,17,17,17,15,13,12,9,7,4,1,255,254,253,252,251,251,251,250,250,250,\r\n 250,250,250,252,253,254,0,1,2,3,5,8,9,10,12,13,15,16,17,18,18,19,20,20,20,19,19,19,19,18,18,18,18,17,17,18,17,17,17,17,17,18,18,18,19,20,21,22,23,23,24,25,25,25,26,26,27,28,28,29,31,32,31,28,27,27,28,28,28,28,28,28,29,30,30,29,27,26,27,27,28,29,30,32,34,34,35,34,34,34,34,35,34,33,33,31,29,27,25,24,\r\n 24,24,23,24,23,23,21,20,19,18,17,16,14,13,12,12,11,10,9,8,6,4,1,0,255,254,252,250,248,246,245,243,241,239,237,235,233,232,230,229,227,226,225,223,222,220,219,218,217,217,217,217,217,216,217,218,219,220,219,219,218,219,220,221,222,222,223,224,226,227,228,229,231,233,235,239,246,251,252,254,0,1,3,5,6,8,10,12,16,19,16,10,9,11,12,13,14,14,15,15,\r\n 16,18,19,20,22,25,25,25,26,28,29,29,31,33,36,37,36,35,32,29,20,21,23,23,22,20,18,17,16,15,15,13,11,11,10,8,7,6,5,5,4,3,2,1,0,0,255,254,253,252,252,251,250,250,249,248,248,247,247,247,247,247,246,246,246,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,246,246,247,247,247,247,247,247,248,249,249,249,250,250,\r\n 251,251,252,253,253,254,254,254,254,254,255,255,255,0,0,1,2,3,5,6,7,8,9,10,11,9,13,20,21,26,26,24,20,19,18,18,18,17,16,17,17,16,15,14,12,10,9,4,2,0,255,254,253,252,252,251,251,250,250,250,250,250,251,252,253,255,0,1,2,4,6,7,9,11,12,14,15,16,17,18,19,20,20,21,21,21,20,21,20,20,20,19,19,19,19,18,18,17,16,16,\r\n 17,17,18,18,19,20,21,22,23,24,24,25,25,26,26,26,26,27,28,28,29,29,29,29,28,29,30,30,29,29,29,30,30,30,31,30,28,28,29,30,31,31,32,34,36,37,36,37,37,39,38,38,37,35,33,31,30,27,26,25,25,24,24,24,24,24,22,22,21,20,18,17,16,15,14,13,12,12,12,10,8,5,4,2,0,0,254,253,250,249,247,245,243,242,239,238,236,234,232,231,\r\n 229,228,226,225,224,223,222,222,221,220,220,219,218,218,218,219,219,218,218,219,219,220,221,221,222,223,224,225,226,228,229,230,231,232,234,236,239,244,248,251,253,0,2,4,5,7,9,13,14,14,11,6,6,8,9,10,12,12,12,12,13,14,16,17,19,21,22,24,25,26,27,27,28,29,32,34,33,30,23,21,21,23,23,22,20,18,16,14,14,13,11,12,12,9,8,7,6,5,5,4,\r\n 4,3,2,1,0,0,255,254,253,252,251,250,250,249,249,248,247,247,246,246,246,246,246,246,245,245,245,245,245,245,245,245,245,245,245,245,245,245,244,244,244,244,244,245,245,245,246,246,246,247,247,247,247,248,248,248,248,249,249,250,250,251,252,253,253,254,254,255,255,255,255,0,0,0,0,1,2,3,4,5,6,8,9,10,11,9,14,19,21,25,23,21,19,18,17,16,16,16,16,14,\r\n 14,15,15,13,11,9,5,2,1,0,254,254,253,253,252,251,251,250,250,250,250,251,251,252,253,254,0,1,2,4,6,8,10,11,13,14,15,16,18,19,20,20,22,22,22,22,22,22,22,21,21,21,20,20,20,19,18,17,16,16,17,17,18,19,20,20,21,22,22,23,24,24,25,26,26,27,27,28,27,27,28,29,29,28,29,31,32,32,31,31,31,31,31,32,32,31,30,30,31,32,\r\n 33,35,36,37,38,39,39,40,41,41,40,40,37,35,34,32,31,29,27,26,25,25,25,24,25,24,24,23,22,21,20,19,17,16,15,14,14,14,14,12,9,7,6,5,3,1,0,255,253,251,249,248,246,244,242,240,238,237,235,233,232,230,228,227,226,224,224,223,223,223,222,221,221,221,220,220,221,220,221,221,222,222,222,223,224,224,225,226,227,228,229,230,231,233,235,236,238,240,242,245,\r\n 249,253,0,1,3,4,6,7,7,8,6,3,4,6,7,8,8,9,9,9,10,11,12,14,17,18,18,21,24,25,25,24,25,26,28,30,30,27,23,21,21,22,21,19,17,16,13,12,11,10,9,8,10,9,6,6,5,4,3,3,3,2,2,1,0,0,255,254,253,251,250,250,249,248,248,247,247,246,246,246,245,245,245,245,245,245,244,244,244,244,245,244,245,244,245,245,245,244,245,244,\r\n 244,244,244,245,245,245,245,246,246,247,247,247,247,247,247,248,249,249,249,250,250,251,251,252,253,254,254,255,255,0,0,0,0,0,1,1,2,3,4,6,7,8,9,11,10,10,13,17,21,25,22,20,18,17,16,15,14,14,14,14,12,12,13,12,10,8,4,1,0,255,254,253,253,252,251,251,250,250,250,250,250,251,251,252,253,255,0,1,2,4,6,8,10,11,13,14,16,17,18,19,\r\n 20,21,22,23,23,23,23,23,23,22,22,22,22,21,20,19,19,18,17,17,17,17,18,19,20,20,20,21,22,23,24,25,26,27,28,27,27,27,27,29,29,29,29,29,30,32,34,33,33,32,32,32,32,33,32,32,32,32,33,34,37,37,39,39,40,41,41,42,42,41,40,39,38,36,35,33,31,30,29,27,27,26,26,25,26,25,25,24,24,23,21,20,19,18,17,16,16,15,15,13,\r\n 11,10,8,7,5,4,2,1,255,254,252,250,248,246,244,243,241,239,237,235,234,232,231,229,228,227,226,225,224,223,223,223,222,222,222,221,222,222,222,222,223,223,223,224,225,225,226,226,228,228,229,230,232,233,234,235,237,239,241,242,244,247,251,254,0,1,2,2,3,1,0,0,2,3,4,5,5,6,7,7,7,8,9,11,13,15,16,18,21,22,22,22,22,23,23,25,25,21,21,20,\r\n 20,20,18,17,15,13,10,9,8,7,6,6,5,5,6,3,3,3,2,1,1,1,0,0,0,255,255,254,253,251,250,249,248,247,247,247,247,246,246,245,245,245,244,245,244,244,244,244,244,244,244,244,244,245,245,245,245,244,244,244,244,244,244,245,245,245,246,246,246,247,247,247,247,247,248,248,249,249,249,250,250,251,251,252,253,254,254,255,0,0,0,0,0,0,0,1,2,3,4,6,\r\n 7,8,9,11,11,9,13,17,21,23,22,22,20,17,16,15,14,13,13,14,13,13,13,12,10,6,2,0,0,255,254,254,253,252,251,251,250,250,249,250,250,251,252,253,254,255,0,0,2,4,6,8,10,11,13,14,16,17,18,20,21,22,22,23,24,24,24,23,23,23,23,22,22,22,22,20,19,18,18,18,18,18,18,19,19,20,20,21,22,24,25,26,27,27,26,28,28,28,29,29,\r\n 29,29,29,30,32,34,35,35,35,33,33,33,34,34,33,33,34,34,36,37,39,40,41,42,43,43,43,42,42,41,41,40,38,38,36,34,33,32,30,29,29,27,27,27,27,26,26,26,25,24,23,22,21,20,18,18,17,17,16,15,13,12,10,9,7,6,4,2,1,0,254,253,251,249,247,245,243,242,239,238,236,235,232,232,230,229,228,227,226,225,224,224,223,223,223,223,223,223,223,223,\r\n 223,224,224,225,225,226,227,227,228,229,230,231,232,233,235,236,238,239,240,241,242,243,245,250,255,255,0,0,1,1,255,255,0,1,2,2,3,3,4,4,5,6,7,8,10,11,12,15,17,19,19,19,19,18,15,12,16,18,19,19,19,18,17,15,13,12,10,8,6,5,4,4,3,2,2,4,2,0,0,0,0,0,0,255,255,254,254,253,252,251,250,249,248,247,246,246,246,246,245,245,\r\n 245,244,244,244,243,244,244,243,244,244,244,244,244,245,245,245,245,245,245,244,244,244,245,245,245,246,246,246,247,247,247,247,247,247,248,248,249,249,249,249,250,250,252,253,253,254,254,255,255,0,0,0,0,0,1,2,3,4,5,6,8,9,10,11,11,11,16,19,22,23,22,21,20,19,16,14,13,13,13,13,13,12,11,10,6,3,1,0,0,255,254,254,254,253,252,251,250,250,249,249,\r\n 250,251,252,253,254,255,0,1,2,4,6,8,10,11,13,14,16,17,19,20,21,22,23,24,24,24,24,24,24,24,23,23,23,22,22,20,20,20,19,17,17,18,19,19,20,20,21,22,23,25,26,27,27,27,29,29,29,29,29,29,30,30,30,31,33,35,36,35,35,34,33,33,33,33,34,35,36,37,39,40,40,42,43,43,44,44,43,43,42,42,41,41,40,39,37,36,35,33,32,31,\r\n 30,29,28,28,28,27,27,27,27,26,25,24,22,21,20,19,19,19,18,17,15,14,12,11,10,8,7,5,4,2,0,255,254,251,250,248,246,244,242,240,238,237,235,234,232,231,230,229,228,227,226,225,225,224,224,224,224,224,224,224,225,225,225,226,226,227,227,228,228,229,230,231,232,234,235,236,237,239,240,241,241,242,243,245,251,254,255,0,0,255,252,253,254,255,0,0,1,1,1,2,\r\n 3,4,5,6,7,8,10,12,15,15,15,16,18,17,13,13,17,16,15,17,15,15,13,13,11,10,9,7,5,4,3,2,1,1,0,0,0,0,255,255,254,254,254,253,253,252,252,251,250,250,249,248,247,246,246,245,245,245,245,244,244,244,243,243,243,243,243,243,243,243,244,244,244,244,245,245,245,245,245,245,245,245,245,245,245,246,246,246,247,247,247,247,247,248,248,248,248,249,249,249,\r\n 250,250,251,252,252,253,254,254,255,0,0,0,1,2,2,3,4,5,6,7,8,9,10,11,11,12,16,18,21,22,22,22,21,18,15,13,13,12,12,12,12,12,10,6,3,1,0,0,0,255,255,254,254,254,253,252,251,250,249,250,250,251,252,253,254,255,0,1,3,5,6,8,9,11,13,14,16,18,19,20,22,23,23,25,25,25,25,24,24,24,24,24,23,23,22,22,21,20,20,20,\r\n 22,22,21,20,20,21,22,23,24,25,26,26,27,28,29,29,29,29,29,30,30,31,32,33,34,35,36,35,35,34,33,33,34,34,36,37,39,40,41,42,43,44,44,44,44,43,43,43,43,43,43,42,41,41,39,38,37,35,34,33,32,31,29,29,29,29,28,28,27,27,26,25,24,23,22,22,21,20,19,18,17,16,15,13,12,10,9,7,6,4,3,0,0,254,252,250,248,246,244,242,\r\n 241,239,238,236,235,233,232,231,230,228,228,227,226,226,226,225,226,226,226,226,226,226,226,227,227,228,228,229,229,230,231,232,233,234,235,236,237,239,239,240,241,242,242,243,246,252,255,0,255,252,250,251,251,252,253,254,255,255,0,0,0,1,2,3,4,6,7,8,10,11,12,14,16,17,11,9,9,11,14,16,14,13,13,12,10,9,6,5,3,2,0,0,255,254,254,254,253,254,254,253,\r\n 253,253,252,252,251,251,250,250,249,248,248,247,246,246,245,245,245,244,244,243,243,243,243,243,243,243,242,242,243,243,243,243,244,244,244,245,245,245,245,245,245,245,246,246,246,246,246,247,247,247,247,247,247,248,248,249,249,249,249,249,250,251,252,252,252,253,253,254,255,0,0,0,1,2,2,3,4,5,6,7,8,9,10,11,10,12,15,18,21,21,21,21,19,17,14,13,13,12,11,11,\r\n 11,9,6,4,2,1,0,0,255,255,255,255,254,254,253,253,252,251,250,250,250,251,252,253,254,255,0,1,3,5,7,8,10,11,13,14,16,17,19,20,22,23,24,25,26,25,25,25,25,24,24,23,23,23,22,22,22,21,21,20,19,20,21,21,21,22,23,24,24,25,26,28,28,28,28,28,29,30,30,30,31,31,33,33,34,34,34,34,34,34,33,33,34,36,38,40,41,43,44,44,\r\n 45,46,44,44,44,44,44,44,44,44,44,43,43,42,41,39,38,37,36,35,33,32,31,30,30,29,30,29,28,28,27,26,26,25,24,24,23,21,21,20,19,17,17,15,13,12,11,9,8,6,4,3,1,0,254,253,250,248,247,245,243,241,240,238,237,235,234,233,232,231,229,229,228,227,227,227,227,226,227,227,227,227,227,228,228,229,229,230,230,231,231,233,233,234,235,236,237,239,239,240,\r\n 241,242,242,242,243,248,252,253,252,249,248,249,250,250,251,252,253,253,253,254,254,255,0,1,2,3,4,5,7,8,10,14,15,12,10,11,13,14,15,14,10,10,9,10,9,7,3,1,0,255,253,253,252,252,251,251,252,251,252,253,252,251,250,250,250,250,249,249,248,247,247,246,246,245,245,245,244,244,243,243,243,242,242,243,242,243,242,243,243,243,243,243,244,244,244,245,245,245,246,246,\r\n 246,246,246,246,246,246,247,247,247,247,247,247,248,248,248,248,249,249,250,250,251,251,252,252,253,253,253,254,254,255,0,0,1,2,2,3,4,5,6,7,8,9,10,10,11,12,15,18,20,21,20,19,17,16,14,13,12,12,11,11,10,7,6,3,1,1,0,0,255,255,255,255,254,254,253,253,252,251,251,251,251,251,252,253,254,255,0,1,3,5,7,9,10,12,13,14,16,18,19,20,\r\n 22,23,24,25,26,26,25,26,25,25,25,25,24,24,23,23,22,22,22,22,21,21,21,21,21,22,23,24,24,25,27,27,27,28,28,28,29,30,31,31,32,32,33,33,33,34,34,33,33,33,34,34,35,38,40,42,44,46,46,46,46,46,45,45,45,45,44,45,45,45,44,44,43,43,42,41,40,39,37,36,34,33,32,31,31,30,30,30,30,29,29,28,28,27,26,25,24,23,22,21,\r\n 20,19,18,16,15,14,12,11,9,8,6,4,3,1,0,254,252,251,249,247,245,243,242,240,239,237,236,235,234,232,231,230,230,229,229,228,228,228,228,228,228,228,228,229,229,230,230,230,230,231,232,233,234,235,235,237,237,238,239,240,240,241,241,242,242,244,247,249,248,246,248,248,248,248,249,250,250,251,251,251,252,253,254,0,0,0,1,0,3,8,11,11,10,10,10,11,11,11,10,10,\r\n 3,3,2,2,2,0,0,254,253,252,251,250,249,249,249,248,248,249,249,249,249,249,250,249,248,248,248,248,247,246,246,245,245,245,244,244,243,242,242,242,242,242,241,241,241,242,242,242,243,242,243,244,244,244,244,245,245,246,246,246,246,246,246,247,247,247,247,247,247,247,248,247,248,248,248,249,249,249,250,250,251,251,251,252,253,253,254,254,255,255,0,0,1,2,2,3,4,5,6,6,\r\n 7,9,11,11,11,13,16,18,20,19,18,18,17,15,13,12,12,12,11,11,9,5,4,2,1,0,0,0,255,254,254,254,253,253,253,253,253,252,252,252,252,252,253,253,254,255,0,1,3,5,7,9,10,12,13,15,16,18,19,21,22,23,24,25,26,26,27,26,26,26,26,25,25,25,25,24,23,23,22,21,21,21,21,21,22,22,23,23,25,26,26,27,27,27,28,28,29,30,31,32,\r\n 32,33,33,33,33,33,33,33,33,33,34,35,38,40,42,44,46,47,47,46,46,46,46,45,45,46,46,46,45,44,45,45,44,44,43,42,41,40,39,37,36,34,33,32,32,32,32,31,31,31,31,30,29,28,27,27,26,25,24,23,22,20,19,18,16,15,13,12,11,9,8,6,4,3,1,0,254,252,251,249,247,246,244,243,241,239,238,237,236,234,233,233,232,231,230,230,230,230,230,230,\r\n 229,229,229,230,230,230,231,231,231,232,233,233,234,234,236,237,238,239,239,240,240,240,241,241,242,242,243,244,244,245,245,245,246,246,247,248,248,249,249,249,251,251,253,253,255,254,252,0,7,8,9,7,5,5,5,6,6,5,5,4,255,254,254,253,253,252,251,250,249,249,248,248,247,247,246,247,246,246,247,247,247,247,247,248,248,247,247,246,245,245,245,245,244,244,244,243,242,242,241,241,\r\n 241,241,241,241,241,241,242,242,242,243,243,243,244,244,244,245,245,246,246,246,246,247,246,247,247,247,248,247,248,247,248,248,247,248,248,248,248,249,249,250,251,252,251,252,252,253,253,254,254,255,0,0,0,1,2,2,4,4,5,6,8,8,10,11,12,14,17,18,19,18,17,16,15,13,12,12,11,11,11,10,9,6,5,3,1,0,0,0,254,254,253,253,253,253,253,253,253,252,252,252,\r\n 253,253,253,254,255,0,0,2,3,5,7,9,10,12,13,15,16,17,19,20,22,23,24,25,26,27,27,27,27,27,26,25,25,25,24,24,23,23,23,23,23,22,21,21,22,22,23,24,24,25,25,26,27,27,28,28,29,30,31,32,32,32,33,33,33,33,33,33,33,34,35,38,40,42,44,46,46,46,46,45,45,45,46,46,44,46,47,46,45,48,51,50,47,45,43,43,43,41,40,39,\r\n 37,35,35,34,33,33,33,34,34,34,33,32,31,30,29,29,27,26,25,24,23,22,21,19,18,16,15,14,12,10,9,7,6,4,3,1,0,255,253,251,249,248,246,245,243,242,240,239,238,236,235,234,233,233,232,231,231,231,231,231,231,231,230,231,231,231,231,232,232,232,233,234,235,235,236,237,238,239,239,240,239,240,241,241,241,242,243,243,244,244,244,244,245,245,246,246,246,247,247,248,\r\n 249,249,251,252,253,251,255,5,5,5,6,3,0,0,1,1,1,0,0,0,252,251,249,249,248,247,247,247,247,246,246,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,244,244,243,243,243,243,242,242,242,241,241,240,240,240,241,241,241,241,242,242,242,242,243,243,244,245,245,245,246,246,246,246,247,247,247,247,247,247,248,247,248,247,247,248,247,248,248,248,249,249,250,\r\n 250,250,251,251,251,252,252,253,254,255,0,0,0,0,1,2,3,4,5,6,7,8,9,9,11,14,17,18,18,17,17,16,14,12,12,11,11,11,11,11,9,7,6,4,2,1,0,255,255,254,253,253,253,253,253,253,254,254,254,253,254,254,254,255,0,0,1,3,4,6,7,9,11,12,13,15,16,18,19,20,22,22,24,25,26,26,27,28,28,28,28,27,27,26,25,25,24,24,23,23,\r\n 23,22,22,22,22,22,24,25,26,25,26,26,26,27,27,28,29,30,31,31,32,32,33,33,33,33,33,34,34,35,37,40,41,43,45,45,45,45,45,44,45,44,43,43,44,45,46,46,44,45,46,47,48,45,44,44,42,42,40,39,38,37,36,35,35,34,37,38,38,37,36,35,34,32,31,30,28,28,27,25,24,23,22,20,19,18,16,15,13,12,10,8,7,5,4,2,1,0,255,253,\r\n 251,250,248,247,245,244,242,241,240,239,237,236,235,234,234,233,232,232,232,232,232,231,231,232,231,232,232,232,233,233,234,234,235,236,237,237,238,239,239,240,239,240,240,240,241,241,242,244,244,244,243,243,243,244,244,244,244,245,245,246,247,248,250,251,250,249,253,0,1,0,0,255,255,254,255,255,254,254,254,253,252,249,246,245,244,244,244,243,243,243,243,243,243,243,243,243,243,243,243,243,\r\n 242,243,243,243,244,244,244,244,243,243,243,243,243,242,242,241,241,241,241,240,240,240,240,239,240,240,241,241,242,242,242,243,244,244,245,245,245,245,246,246,247,247,247,247,247,248,247,248,247,247,247,247,247,247,248,247,248,248,248,249,249,250,250,250,250,251,252,253,254,255,0,0,0,0,1,1,2,3,4,5,6,7,7,7,11,15,15,17,17,16,16,16,13,12,11,11,11,11,11,11,\r\n 10,8,7,5,4,3,1,0,0,255,255,255,254,254,254,255,255,0,0,0,0,0,0,0,1,2,3,5,6,7,9,10,11,13,14,15,17,18,19,20,21,22,23,24,25,26,26,27,27,28,28,27,27,26,26,25,25,24,23,23,23,23,23,22,23,23,24,24,25,25,26,26,26,27,28,29,30,30,31,32,32,32,32,33,33,33,34,34,35,37,39,40,41,43,43,44,44,43,43,43,\r\n 44,44,44,43,44,44,45,46,45,45,45,45,44,44,44,43,42,42,40,40,38,38,37,36,36,37,39,40,40,40,39,37,35,34,32,31,30,29,28,27,26,24,23,22,20,19,17,16,14,13,11,10,8,7,5,4,3,1,0,254,253,251,250,249,247,246,244,243,241,240,239,238,237,236,235,234,234,233,233,233,232,233,232,232,232,232,233,233,233,234,234,235,235,236,237,237,238,239,239,240,\r\n 239,239,240,240,241,241,241,242,243,243,243,242,242,242,242,242,243,243,244,244,245,247,248,249,247,247,251,254,253,252,252,251,251,252,252,252,252,252,252,253,248,246,243,242,241,240,240,240,240,240,241,241,240,241,241,241,241,241,241,241,241,241,240,241,241,242,242,242,243,242,242,241,241,241,241,240,240,240,240,240,240,240,240,240,239,239,240,240,241,241,242,242,243,244,245,245,246,246,246,247,\r\n 246,247,247,247,247,248,247,248,247,247,247,247,247,247,247,247,247,248,248,248,249,250,250,250,250,251,251,252,253,254,254,255,0,0,0,1,2,3,3,5,5,6,6,5,11,15,15,16,16,15,13,13,12,11,11,10,11,11,11,11,11,10,10,9,7,6,3,1,0,0,0,0,0,0,0,0,1,2,2,2,2,1,2,3,4,4,5,5,6,7,7,9,11,13,14,15,16,18,19,20,\r\n 21,22,22,23,24,25,26,27,27,27,28,28,27,27,26,26,25,25,25,24,24,23,23,24,24,25,25,25,25,24,25,26,27,28,28,29,29,30,31,32,33,33,33,34,34,34,35,36,37,38,38,40,41,42,42,42,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,45,44,44,43,43,43,41,41,40,38,38,38,38,37,37,38,39,41,41,40,38,36,34,33,33,32,30,29,28,\r\n 27,25,24,22,21,20,18,17,15,14,12,11,9,8,6,5,3,1,0,255,254,253,251,250,248,247,245,244,243,242,240,239,239,238,237,236,235,234,234,234,234,233,233,233,233,233,233,233,234,234,235,235,236,236,237,237,238,239,239,240,239,239,239,240,240,240,240,240,240,241,243,242,241,241,241,241,241,241,242,243,244,245,246,246,247,248,249,250,250,249,249,249,250,250,250,250,249,248,248,248,\r\n 241,240,240,242,240,238,237,238,238,238,238,238,238,238,238,239,239,239,239,239,238,239,239,239,239,239,240,240,241,241,241,241,240,240,240,240,240,239,239,239,240,240,240,239,239,239,239,239,240,241,241,242,243,243,244,245,245,245,246,246,247,247,247,247,247,247,247,247,247,247,246,246,246,246,247,246,247,247,248,248,248,249,250,250,250,250,251,251,252,253,254,254,255,0,0,0,1,3,3,4,\r\n 5,6,5,6,10,15,15,15,14,13,12,11,11,10,11,11,12,13,13,13,13,12,12,10,9,8,6,5,3,3,3,3,2,2,3,4,5,6,7,5,4,3,3,4,5,6,7,7,8,10,11,11,12,14,15,16,17,18,19,20,21,21,22,23,23,25,26,26,26,27,27,27,27,27,27,27,27,26,26,25,25,25,25,25,25,25,25,25,25,24,26,27,26,27,28,30,31,31,32,33,\r\n 33,34,34,35,35,35,36,37,38,38,38,40,41,40,41,41,42,43,43,44,45,45,45,45,44,45,46,45,45,45,45,44,44,44,43,43,42,41,40,39,38,37,37,36,39,40,39,37,39,41,40,37,37,36,35,33,32,31,30,28,28,26,25,23,22,20,19,17,15,14,13,11,10,8,7,5,4,2,1,0,255,253,252,251,249,248,247,245,244,243,242,241,240,239,238,237,236,236,235,235,\r\n 235,234,234,234,233,233,234,233,234,235,235,235,236,236,237,237,238,238,239,239,238,239,239,239,240,240,239,239,240,240,240,240,240,240,240,240,240,240,241,242,243,244,244,246,247,245,247,248,247,247,247,247,247,247,246,245,244,244,243,242,236,236,236,236,235,235,234,235,235,236,236,236,236,236,236,236,236,237,237,237,237,237,237,237,238,237,238,238,238,239,239,239,240,240,239,239,239,239,239,238,\r\n 238,239,239,238,239,239,239,239,239,240,241,241,242,243,243,244,245,245,246,246,247,247,247,247,247,247,247,246,246,246,246,246,246,246,246,246,246,247,247,247,248,249,249,250,249,249,250,250,251,252,253,254,254,255,0,0,1,2,2,4,5,5,5,5,9,14,14,14,13,11,10,10,10,10,11,12,13,13,12,12,13,13,13,12,11,10,10,9,7,6,5,5,6,6,5,6,8,9,8,7,\r\n 7,6,7,8,8,8,10,11,11,12,12,13,14,15,17,17,17,18,19,19,20,21,22,23,24,24,25,26,26,26,27,27,28,28,28,28,27,27,27,27,26,26,25,25,25,25,25,25,26,26,26,27,27,29,31,31,32,32,33,34,34,34,34,35,36,36,37,38,37,36,38,40,39,40,40,41,42,43,44,46,46,46,47,47,47,47,46,46,45,44,44,44,44,44,43,42,41,41,40,39,\r\n 38,38,38,36,36,36,37,37,36,35,37,38,38,38,37,36,34,31,30,29,28,26,25,24,22,21,19,18,16,15,13,12,10,9,8,6,5,3,2,0,0,254,253,252,250,249,248,246,245,244,243,242,241,240,239,238,237,236,236,236,235,235,234,234,233,233,233,233,234,235,235,235,236,236,236,237,237,237,239,238,238,239,239,239,240,240,239,238,239,239,239,239,239,239,239,239,239,239,240,241,\r\n 242,244,245,245,243,242,245,246,245,245,244,244,244,243,242,241,239,238,237,236,233,232,232,231,231,231,231,232,232,233,233,233,233,233,233,234,234,234,235,235,235,236,236,235,235,236,236,237,237,237,237,238,238,238,239,239,239,238,239,239,239,238,238,237,238,238,238,238,239,239,240,241,241,242,243,244,244,245,245,246,246,246,247,247,246,246,246,246,246,245,246,245,245,246,246,246,246,246,247,247,\r\n 247,248,248,249,249,249,250,250,250,251,252,252,253,254,255,0,0,1,2,3,4,5,5,4,8,13,13,12,12,10,9,10,10,11,11,12,13,14,14,14,12,12,12,12,11,10,9,8,7,6,5,5,4,4,4,5,5,5,6,5,6,7,9,11,11,11,13,15,15,15,16,15,15,16,17,18,18,19,19,20,21,21,22,22,23,24,24,25,25,26,26,27,27,28,28,28,28,28,27,27,\r\n 27,26,26,26,26,26,26,26,26,26,27,28,30,31,32,32,33,34,35,35,36,36,37,37,37,37,37,38,37,36,39,39,38,39,40,41,43,44,45,46,47,49,49,48,48,47,47,47,46,45,44,44,43,43,43,43,42,40,40,39,37,37,37,36,36,36,35,35,35,34,35,37,38,38,38,37,36,33,31,29,28,27,25,24,22,21,19,18,16,15,14,12,11,9,8,6,5,4,2,1,\r\n 0,255,254,252,251,250,249,247,246,245,244,243,242,240,240,238,238,237,237,236,236,235,234,234,234,233,233,233,234,234,235,235,235,235,236,236,237,237,237,238,238,238,238,239,239,239,238,238,238,238,238,238,238,238,238,238,238,239,238,239,242,241,240,240,239,240,241,241,241,242,241,241,240,239,238,236,234,233,233,233,229,229,228,228,228,228,229,229,229,230,230,230,230,231,231,231,232,232,233,233,\r\n 234,234,234,235,235,235,234,235,236,236,236,237,237,237,237,238,238,238,239,239,239,239,239,238,237,236,237,238,239,239,240,241,241,242,243,243,244,244,245,245,245,246,246,246,246,246,246,245,245,245,245,245,245,245,245,245,245,245,246,247,247,248,248,249,249,249,249,249,250,251,251,252,252,253,254,255,0,0,1,3,3,4,5,4,5,9,13,13,12,10,9,11,12,12,12,13,13,12,12,11,\r\n 10,10,10,9,8,6,5,5,6,6,5,4,5,8,6,5,4,6,7,4,3,3,6,10,12,12,14,15,15,16,16,16,16,16,16,18,19,20,20,20,21,21,22,22,23,23,24,24,25,25,26,27,27,27,27,28,28,28,28,27,27,27,27,27,27,27,26,27,27,27,27,28,29,30,31,32,32,33,34,35,36,36,37,37,38,38,38,37,36,37,37,37,38,38,40,41,42,44,45,46,\r\n 47,49,48,48,51,50,46,46,47,45,44,44,43,42,42,41,41,41,39,38,37,37,37,35,35,35,35,35,35,35,34,35,37,39,39,37,35,34,32,30,28,26,24,23,22,20,19,17,16,15,14,12,11,9,8,7,5,4,3,1,0,0,254,253,252,250,249,248,247,246,244,243,242,241,240,239,238,238,236,236,236,235,235,234,233,233,233,233,234,234,234,234,235,234,235,235,235,236,236,236,\r\n 237,237,238,238,238,239,238,237,237,237,237,237,237,237,237,237,237,237,237,238,239,238,238,237,236,236,238,238,238,239,238,237,237,236,234,231,231,230,230,229,226,225,225,225,225,225,226,226,226,226,227,228,228,228,229,229,230,230,230,231,232,232,233,233,233,234,234,234,234,234,235,235,236,236,236,236,237,237,238,238,239,239,239,240,240,240,239,238,238,239,239,240,241,241,242,243,243,244,244,245,\r\n 245,245,245,245,245,245,245,244,245,245,244,245,244,244,245,245,245,245,245,246,247,247,248,248,248,248,248,249,250,250,251,252,252,253,253,254,255,0,0,2,3,4,5,5,4,4,9,13,12,11,11,12,12,12,11,11,9,9,10,11,11,10,10,9,7,6,8,12,13,12,11,11,12,15,14,14,13,14,16,16,15,16,18,19,16,13,12,13,13,13,14,14,14,14,15,17,19,20,21,21,\r\n 21,21,22,22,22,23,23,24,24,25,25,25,26,26,27,27,27,28,28,27,27,27,27,27,28,28,27,27,26,26,27,27,28,28,28,29,30,31,32,32,33,35,35,36,36,36,36,35,35,36,36,36,37,38,39,40,41,43,44,45,46,47,48,46,46,46,45,45,45,44,43,44,45,43,41,40,40,40,38,38,38,37,36,35,35,34,34,35,35,35,34,35,35,35,35,35,34,32,30,27,\r\n 25,24,24,22,21,20,18,17,16,15,13,12,11,9,8,7,6,5,3,2,0,0,0,253,252,251,250,248,247,246,245,244,243,241,240,239,238,237,237,236,235,235,234,234,233,233,233,232,233,233,233,233,234,234,234,234,234,234,235,234,236,237,237,238,238,238,238,237,236,236,236,236,236,236,236,235,235,235,236,237,235,235,235,233,233,234,235,234,235,234,233,233,231,230,228,227,227,227,226,226,\r\n 223,223,222,222,222,223,223,224,224,224,225,225,225,226,226,227,227,227,228,229,230,230,231,231,232,232,233,233,234,234,234,234,234,234,235,235,236,236,236,237,237,238,238,239,239,239,239,239,239,239,239,240,240,241,242,242,242,243,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,245,245,245,246,247,247,247,247,246,246,247,249,250,251,251,252,252,253,254,254,255,0,0,\r\n 2,3,4,5,5,3,4,7,10,12,13,14,14,14,13,11,11,12,13,15,17,17,18,18,16,15,13,14,14,14,15,15,16,16,15,16,16,15,16,16,16,17,18,21,22,21,16,12,11,11,9,7,5,4,7,14,19,20,21,21,21,21,21,21,22,22,23,23,23,24,24,25,25,26,26,26,27,27,27,27,27,26,25,26,27,26,26,26,25,25,25,24,25,25,26,27,28,29,30,31,\r\n 32,32,32,33,33,34,33,33,33,34,34,36,36,37,38,39,40,41,42,44,44,45,44,45,44,44,44,44,43,42,41,41,41,40,40,39,39,38,38,37,36,36,36,35,35,34,34,34,34,34,34,35,34,34,34,33,33,31,29,28,26,23,21,21,19,19,18,17,15,14,13,12,11,9,8,7,5,4,3,1,1,0,255,254,252,251,250,249,247,246,245,244,242,241,240,239,238,237,236,236,\r\n 235,235,234,234,232,233,232,232,233,232,232,233,232,232,233,232,233,233,233,234,234,235,236,236,237,237,237,236,235,235,235,235,235,235,235,234,233,234,235,234,231,231,231,230,229,230,231,231,230,229,227,225,224,224,223,224,224,224,223,223,220,219,219,220,220,220,220,221,221,222,222,222,223,224,224,225,225,226,227,227,227,228,229,230,230,230,231,231,232,232,233,233,234,234,234,234,234,234,235,235,\r\n 236,236,237,237,237,237,237,238,238,238,238,238,239,239,239,239,240,241,241,242,243,243,243,243,243,243,243,243,243,243,242,243,243,243,243,243,243,244,245,245,245,245,246,246,246,246,246,247,248,248,249,250,250,251,252,253,254,254,255,0,1,2,3,4,4,5,5,4,4,7,11,14,15,15,14,13,14,15,16,17,17,18,18,18,18,18,18,17,17,17,17,18,18,18,17,17,17,17,17,18,\r\n 19,19,19,19,20,20,21,21,22,22,21,21,21,15,5,6,14,19,20,20,21,20,20,21,21,22,22,22,22,22,23,23,24,25,25,25,25,25,25,25,25,24,24,24,24,24,23,22,22,22,22,22,23,23,24,25,26,27,28,29,29,30,31,31,31,31,31,31,32,32,33,35,35,36,37,37,38,39,40,41,41,42,42,42,41,42,42,41,41,40,39,39,39,39,38,38,38,37,37,36,\r\n 36,36,35,35,35,35,36,35,34,34,33,33,33,33,32,31,30,30,29,27,25,22,20,20,19,18,17,16,15,14,13,12,11,9,8,7,5,4,3,1,0,0,255,253,252,251,249,248,247,246,244,243,242,241,240,239,238,238,236,236,235,234,234,233,232,232,232,231,231,231,231,231,231,231,231,231,231,231,231,232,233,233,234,234,234,235,235,235,235,234,234,234,234,234,233,233,233,231,231,231,\r\n 230,229,228,226,225,225,226,225,224,223,222,221,220,220,220,220,220,220,220,220,217,217,217,217,217,217,217,218,218,219,220,220,221,221,222,222,223,224,225,225,226,226,227,227,228,229,229,230,230,230,231,231,232,232,232,233,232,232,233,233,233,234,235,235,236,235,235,236,236,236,237,237,237,237,238,238,238,239,239,238,239,239,239,240,240,240,240,240,240,241,241,241,241,241,241,242,243,243,244,244,\r\n 244,245,245,245,246,246,246,247,248,248,248,249,250,250,251,252,253,254,255,0,0,1,1,2,3,4,5,7,7,7,8,9,12,13,13,14,15,16,17,18,19,19,20,20,20,19,19,19,19,18,18,19,19,19,19,19,19,18,18,19,19,19,20,20,21,21,22,22,22,23,23,22,22,21,16,8,9,16,19,19,20,20,20,20,21,21,21,21,22,22,22,23,24,24,25,25,24,24,23,23,\r\n 23,22,22,22,22,21,20,20,20,20,20,21,21,21,22,23,25,26,26,27,28,28,29,29,29,29,29,30,31,31,32,33,34,34,35,36,36,37,38,39,39,39,39,39,39,40,39,39,39,38,38,37,37,36,36,36,36,36,36,35,35,35,34,35,35,35,35,35,34,34,34,34,33,32,31,31,31,29,29,28,26,24,21,19,18,17,17,16,15,14,13,11,10,9,8,6,5,4,2,1,\r\n 0,255,254,253,252,250,249,249,247,246,245,243,242,241,240,239,238,237,236,235,235,234,233,233,232,232,231,230,231,230,230,230,230,229,230,230,230,230,230,230,230,231,232,232,233,233,233,234,233,233,233,233,232,232,232,232,231,227,228,230,228,227,227,225,223,222,221,221,220,219,218,218,218,217,217,217,217,217,217,217,214,214,214,215,215,215,215,216,216,217,217,218,219,219,219,220,221,222,223,223,\r\n 224,224,225,226,226,227,227,228,229,229,229,230,230,230,230,230,230,231,231,231,231,231,231,232,232,233,233,234,234,235,235,235,236,236,236,236,236,236,237,238,238,238,238,238,237,237,238,238,238,238,238,239,239,240,240,240,241,242,242,243,243,243,244,244,245,246,246,246,247,248,249,249,249,250,251,251,252,254,254,255,0,0,0,1,3,4,5,6,8,10,11,12,13,14,15,16,16,17,18,19,\r\n 20,20,21,20,20,20,20,20,20,19,19,19,20,20,20,20,20,20,20,19,19,20,20,20,21,21,22,22,23,23,24,24,23,22,20,15,10,14,19,19,20,20,19,19,20,19,19,19,19,19,19,20,21,21,21,21,21,21,21,21,21,21,20,20,19,19,19,19,19,19,19,20,20,21,22,22,23,24,25,26,26,27,28,27,28,29,29,29,30,31,32,32,32,33,34,34,35,35,36,36,\r\n 37,38,37,37,38,38,38,38,37,37,37,36,35,35,35,35,35,35,35,35,34,34,34,34,33,32,31,31,31,31,30,30,30,30,30,30,30,29,28,27,26,25,24,21,18,17,16,15,14,12,11,11,9,8,7,6,5,3,1,0,0,254,254,252,251,250,249,248,247,245,244,243,242,241,240,238,238,237,236,235,234,233,233,232,231,231,230,229,229,229,228,229,228,228,228,228,228,228,228,229,\r\n 228,229,230,230,231,231,230,232,232,231,232,231,231,230,230,230,229,226,226,228,227,225,224,222,221,220,219,218,217,216,215,215,215,214,214,214,215,214,214,214,212,212,213,213,213,214,214,214,215,215,216,216,216,217,218,218,219,219,220,221,222,223,223,224,224,225,226,226,226,227,227,227,228,228,228,228,229,229,229,229,229,229,230,230,230,230,231,231,231,232,232,233,233,234,234,234,235,235,235,235,\r\n 236,236,236,236,236,236,235,235,235,236,237,238,238,238,238,239,240,240,241,241,241,242,243,243,244,245,245,245,246,246,247,248,248,249,250,251,251,252,253,254,255,255,0,1,2,3,4,6,7,9,11,12,14,15,16,17,17,18,19,20,20,19,20,21,21,21,21,21,21,21,21,20,20,21,21,21,21,20,19,19,20,21,20,21,21,22,22,23,23,24,24,24,23,23,20,14,11,14,19,20,\r\n 20,21,21,21,21,21,20,20,20,20,20,19,19,18,18,18,18,18,18,18,18,18,17,18,18,17,18,18,18,19,19,20,21,22,22,23,24,24,25,25,25,26,27,27,27,27,28,29,29,30,30,30,31,32,32,33,33,34,34,35,35,36,36,36,36,36,36,36,35,35,34,34,34,34,34,34,34,34,33,34,34,33,32,32,31,31,32,32,32,31,30,29,29,29,30,30,30,29,29,27,\r\n 26,25,24,23,20,17,14,13,12,11,11,9,8,7,6,5,3,2,1,0,255,254,253,251,250,250,249,247,246,245,244,243,242,240,239,238,237,236,235,235,233,232,232,231,230,230,229,228,228,227,227,227,226,226,227,226,226,226,226,226,227,227,227,228,228,228,229,229,229,230,230,230,230,229,228,228,228,227,224,223,223,223,222,220,219,218,217,216,216,214,213,213,212,212,212,212,212,212,212,212,\r\n 211,211,211,211,212,212,213,213,213,214,214,214,215,215,216,216,217,218,218,219,220,220,221,222,222,222,223,224,224,224,225,225,225,226,226,226,226,226,227,227,227,227,227,227,228,228,228,229,230,230,230,230,231,231,231,232,233,233,233,233,233,234,234,234,234,234,234,235,235,234,234,235,235,237,237,237,237,238,238,239,240,241,241,242,243,243,244,244,245,245,246,247,247,248,249,250,251,251,251,253,\r\n 253,254,0,0,1,2,4,6,7,8,9,12,13,15,16,17,17,18,18,19,21,21,21,20,20,21,21,22,22,20,20,20,19,19,18,17,17,18,19,20,21,21,20,21,22,23,23,23,24,24,24,23,22,18,13,11,14,18,20,20,21,21,21,20,20,19,19,18,17,17,17,16,16,16,16,16,15,15,16,15,15,16,16,16,16,16,17,18,18,19,20,21,22,23,23,23,24,25,25,25,\r\n 26,26,26,26,26,27,28,28,29,29,29,29,30,30,31,32,32,32,33,33,34,35,35,35,35,35,35,34,34,33,33,33,33,33,33,32,32,33,33,33,33,32,32,31,31,31,31,31,30,30,29,28,28,27,27,27,28,27,26,26,25,25,24,23,20,18,14,12,11,10,9,8,7,5,4,3,2,0,0,255,254,253,252,250,250,249,248,247,246,244,243,242,240,240,239,237,236,235,234,233,\r\n 232,231,231,230,229,229,228,227,227,226,226,225,224,224,224,224,224,224,224,224,224,224,224,225,225,225,226,226,226,227,228,228,228,228,227,226,226,227,225,224,223,221,220,219,218,217,216,215,214,213,212,212,211,211,210,210,210,210,210,210,209,210,210,210,211,211,211,211,212,212,213,214,214,214,214,215,216,216,217,217,218,218,219,219,220,221,221,222,222,222,222,223,223,223,223,223,223,224,224,224,\r\n 224,225,225,225,225,226,226,227,227,227,228,229,229,229,229,229,229,230,230,231,232,232,232,232,233,233,233,233,233,233,234,234,235,235,236,236,236,237,238,238,239,239,240,240,241,242,242,243,244,244,245,245,246,247,248,248,249,250,251,252,253,254,255,0,0,2,3,5,7,8,9,11,12,14,16,17,18,19,19,17,16,16,16,17,20,23,24,24,23,21,21,21,21,24,25,25,25,23,21,19,\r\n 19,20,21,21,22,22,22,22,22,22,22,22,21,18,17,16,17,17,17,18,18,18,17,17,17,16,16,16,16,15,15,15,15,15,14,14,14,14,14,14,14,14,15,15,16,17,17,18,19,20,20,22,23,23,24,24,24,24,25,25,25,25,25,25,26,26,26,27,28,28,28,28,28,29,29,30,31,31,32,32,33,33,33,33,33,33,33,32,32,32,32,32,32,32,32,32,32,31,32,32,\r\n 32,32,31,31,30,30,30,29,29,29,28,27,27,26,26,25,25,25,24,24,23,23,22,21,19,17,15,12,11,10,8,6,5,3,2,1,0,0,255,253,252,251,250,249,249,248,247,245,244,243,242,241,240,238,237,236,235,233,233,232,231,230,229,228,227,227,226,226,225,224,223,223,223,222,222,221,222,222,221,222,222,222,222,222,223,223,223,224,224,223,224,225,226,226,225,224,225,224,224,223,\r\n 222,221,220,219,218,217,216,214,212,211,211,211,210,209,209,209,209,209,209,209,208,209,209,208,209,209,210,211,211,211,212,212,212,213,214,214,215,215,215,216,216,217,217,218,218,218,219,219,219,220,220,220,220,220,221,221,221,221,221,221,222,222,222,223,223,223,224,224,225,225,225,226,226,226,227,227,227,227,228,228,229,230,230,231,231,231,231,231,232,232,233,233,233,234,234,235,235,236,236,237,\r\n 237,238,238,239,240,241,241,242,242,243,244,245,245,246,247,248,248,249,250,251,252,254,255,0,1,2,3,5,6,7,8,10,12,13,14,15,15,14,14,15,18,20,21,22,23,23,23,22,21,21,21,20,20,21,22,22,22,22,21,20,19,19,20,20,20,20,20,20,20,20,19,19,19,18,18,18,17,17,17,17,16,15,14,14,14,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,\r\n 13,14,15,15,15,17,18,19,20,20,21,22,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,25,25,26,26,26,26,27,27,28,29,30,31,31,32,32,32,32,32,32,32,32,31,31,31,31,31,31,31,31,31,31,31,31,31,30,30,30,29,28,28,28,28,28,27,26,26,25,25,24,24,22,21,21,21,21,20,18,17,15,13,11,10,9,7,6,4,2,1,0,0,255,253,252,\r\n 251,249,249,248,248,247,245,244,243,242,241,239,238,236,235,233,233,232,231,230,228,228,227,226,225,225,224,223,223,222,221,221,221,220,220,220,219,219,218,218,218,219,220,220,220,220,220,220,221,221,221,221,222,223,223,222,222,222,222,221,221,220,219,219,218,217,216,216,214,212,210,210,209,208,208,208,208,208,208,208,207,207,208,207,208,208,208,209,210,210,210,211,211,212,212,212,213,213,214,214,\r\n 214,214,215,215,215,216,216,217,217,217,217,218,218,218,218,218,219,219,219,219,220,220,220,220,220,221,221,221,222,222,222,223,223,224,224,225,225,226,227,227,228,228,228,229,229,229,230,230,231,231,231,232,232,233,233,234,234,235,235,236,236,237,237,238,239,240,241,241,242,243,243,244,245,245,246,246,247,249,250,251,252,253,254,0,0,2,3,4,5,7,8,9,10,12,14,15,15,16,18,20,\r\n 21,21,22,23,23,23,23,23,21,20,20,20,19,19,19,19,19,18,18,18,18,18,18,18,17,18,18,17,17,17,17,16,16,16,15,15,15,14,13,13,13,13,12,11,11,11,11,11,11,10,11,11,11,11,12,12,12,12,12,13,14,14,14,15,16,17,17,18,18,19,20,21,21,22,22,22,22,22,22,22,22,22,22,23,22,22,23,23,24,24,24,25,25,25,26,27,28,28,29,30,\r\n 30,31,31,31,31,31,31,31,30,30,30,29,29,29,29,30,30,30,31,31,30,30,30,29,29,28,27,27,27,26,25,25,25,24,24,23,23,22,21,20,18,18,18,17,15,14,13,11,10,8,7,6,5,4,2,1,0,255,254,253,251,250,249,248,247,245,244,244,243,241,239,238,236,235,235,234,233,232,230,229,228,227,226,225,224,224,224,223,222,221,220,219,218,218,217,217,217,217,216,216,\r\n 216,216,217,217,217,217,218,218,217,218,219,218,218,219,220,219,219,219,220,218,218,218,217,216,216,215,214,214,213,213,212,212,210,208,208,208,207,207,207,207,206,206,207,207,207,207,207,208,208,208,209,209,209,209,210,210,210,210,210,211,211,212,212,212,212,213,213,213,214,214,214,215,215,215,216,216,216,216,216,217,217,217,218,218,218,218,219,219,220,220,221,221,222,223,223,223,224,225,225,225,\r\n 226,227,227,227,228,228,228,229,229,230,230,231,231,232,232,233,233,234,234,235,235,236,236,237,238,239,240,240,241,242,243,244,244,245,245,246,247,248,249,250,252,253,254,0,0,1,2,3,5,6,7,9,10,12,14,16,17,18,19,20,22,23,22,21,20,20,19,17,16,16,16,16,17,17,17,17,17,17,17,16,16,16,16,16,15,15,15,15,15,14,14,14,13,12,12,13,12,12,12,11,\r\n 11,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,12,13,13,14,16,17,17,18,18,18,18,18,18,19,19,20,20,20,21,20,20,20,20,20,21,21,21,21,22,22,22,23,23,23,23,23,24,25,26,27,27,28,29,29,29,29,29,29,30,30,29,29,29,29,29,29,29,29,29,30,30,30,29,29,29,28,27,27,27,26,26,26,25,24,23,22,22,22,22,21,20,19,\r\n 18,16,16,15,14,13,12,11,10,9,7,5,4,4,3,3,2,1,0,0,255,253,250,248,247,246,245,243,242,239,238,237,236,235,235,235,234,232,231,229,227,226,225,224,224,222,221,221,220,219,218,217,217,217,216,216,216,217,216,216,216,215,214,213,213,214,214,215,215,215,215,215,216,216,216,216,216,216,216,216,216,215,214,214,213,212,212,211,211,210,210,210,209,209,209,208,207,206,207,207,\r\n 206,206,206,205,206,206,206,206,206,206,206,207,207,207,207,207,208,208,208,208,208,208,209,209,209,210,210,210,210,211,211,211,212,213,213,214,214,215,215,215,215,215,216,216,216,216,217,217,218,218,219,220,220,221,222,222,223,223,224,224,225,225,226,226,227,227,227,228,228,229,230,230,231,231,232,232,233,233,233,234,234,235,235,236,236,238,239,239,240,242,242,242,243,244,245,246,246,247,249,250,\r\n 251,252,253,254,0,0,1,2,4,5,6,9,11,13,14,15,17,19,19,19,18,18,17,18,18,18,16,14,12,12,13,13,14,15,15,15,14,14,14,14,15,14,14,14,13,13,13,12,12,12,11,11,11,11,11,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,11,11,12,12,14,15,16,17,17,17,17,17,17,17,17,18,18,19,20,20,19,19,18,19,\r\n 19,19,19,20,20,20,20,20,20,21,21,21,21,21,23,24,25,25,26,26,27,27,28,28,28,29,29,30,31,31,31,31,31,31,31,31,31,30,29,29,28,27,27,27,27,27,26,25,25,25,24,23,22,21,20,20,20,19,18,17,16,15,15,14,14,13,12,11,10,8,7,6,5,4,4,3,3,1,0,0,0,255,253,250,249,248,247,245,244,242,240,239,238,238,238,237,236,235,233,231,\r\n 229,227,226,225,225,225,224,223,223,222,222,221,221,220,219,217,216,215,214,213,213,213,213,212,212,211,211,210,210,211,211,211,212,213,213,214,213,213,213,212,213,212,212,211,211,210,209,209,208,207,207,207,206,205,205,205,205,205,205,205,202,203,204,204,204,204,203,203,204,204,204,204,204,205,205,205,205,205,206,206,205,206,206,207,207,207,208,208,208,208,209,209,209,210,211,211,212,212,213,213,\r\n 213,213,214,214,214,214,215,215,216,217,218,219,219,220,221,221,222,222,223,223,224,224,224,225,225,226,226,227,227,228,229,229,230,230,231,231,232,232,232,233,233,234,234,235,236,237,237,238,238,240,241,242,242,243,244,245,245,246,247,248,249,251,252,253,254,255,0,1,3,5,7,9,10,11,13,15,17,17,15,15,15,14,14,15,16,16,14,13,12,11,11,11,12,12,12,12,13,12,12,12,\r\n 12,12,11,11,11,11,11,10,10,10,9,9,9,9,9,8,8,8,8,8,7,7,7,7,7,7,8,8,8,8,8,8,9,9,9,10,10,11,11,12,13,14,15,15,15,15,15,15,16,16,17,18,19,19,19,18,17,17,17,17,17,18,18,18,17,18,18,18,19,20,20,19,20,21,23,24,23,23,24,24,25,25,26,27,28,28,28,30,31,31,31,32,33,33,33,33,33,32,31,30,\r\n 29,27,27,26,25,25,24,24,24,24,23,22,22,21,20,19,17,16,16,16,16,16,16,15,14,14,13,12,11,9,8,5,3,2,1,0,0,255,255,255,255,255,254,252,250,248,246,245,243,242,241,240,239,237,236,235,234,234,233,232,231,230,229,228,227,226,225,224,222,221,221,220,220,219,218,217,217,216,215,215,215,214,213,212,212,211,211,211,211,211,212,211,210,209,209,210,210,210,210,210,\r\n 209,209,209,209,209,208,208,207,206,206,205,204,203,203,203,202,202,202,202,202,199,199,198,199,199,200,200,201,201,201,201,201,202,202,202,203,203,203,203,203,203,204,204,204,205,205,205,205,205,206,206,207,207,208,208,209,209,210,210,210,211,211,211,212,213,213,213,214,215,216,217,218,219,220,220,221,221,221,221,222,222,223,223,224,224,224,225,226,227,227,228,228,229,229,229,229,230,230,231,231,\r\n 232,233,233,234,235,236,236,237,238,239,239,241,242,243,243,244,245,246,247,248,249,250,251,252,254,255,0,2,3,5,6,8,9,11,14,14,13,12,12,12,12,12,12,12,13,11,9,8,8,8,9,9,9,9,9,9,10,10,10,10,9,9,9,9,9,9,9,9,9,8,8,8,7,7,7,7,7,7,7,7,7,6,6,7,7,7,7,7,7,7,7,7,8,8,9,9,10,10,11,11,\r\n 11,11,12,13,13,13,14,14,15,15,15,16,16,16,16,16,16,16,16,16,16,16,15,15,16,16,16,17,18,18,18,18,20,22,22,22,22,23,24,24,25,26,26,26,26,27,29,31,31,31,32,32,33,35,35,34,32,31,31,31,30,29,29,28,27,26,25,24,23,24,25,25,24,22,20,19,18,18,18,18,18,17,16,15,14,14,12,11,10,9,8,7,6,5,3,2,2,2,0,255,\r\n 253,253,253,253,252,249,246,244,242,240,239,239,239,238,237,235,233,232,231,230,229,229,229,229,229,227,225,222,220,219,219,219,220,220,219,219,218,217,216,216,216,215,215,214,212,211,209,208,208,208,208,208,208,208,208,209,209,208,207,207,206,206,207,207,207,207,206,205,204,204,203,203,202,201,201,201,201,200,200,200,198,198,197,196,195,195,196,196,197,198,199,199,199,199,199,200,200,201,201,201,\r\n 201,201,201,201,202,202,202,202,203,203,204,204,205,205,205,206,206,207,208,208,209,209,209,210,211,212,212,213,214,215,216,217,218,218,219,220,220,220,221,221,222,222,222,223,224,224,225,225,226,226,227,227,228,228,228,229,229,229,230,230,231,232,232,233,234,234,235,236,237,238,239,240,241,242,242,243,244,245,246,247,247,248,249,251,253,255,0,2,3,4,5,6,8,10,12,11,9,9,9,9,\r\n 9,9,10,11,10,8,7,6,6,6,6,7,7,7,7,7,6,7,7,7,8,8,8,7,7,7,7,7,6,6,6,6,6,5,6,6,6,6,5,6,6,6,6,6,6,6,6,6,6,6,6,7,7,8,8,9,9,10,10,10,10,10,11,11,12,12,13,13,14,14,15,16,16,15,15,15,15,15,15,15,15,15,15,15,16,16,16,17,17,17,18,20,23,24,24,24,25,25,25,25,\r\n 25,25,25,25,26,27,27,28,28,29,31,33,34,35,35,34,33,33,32,31,30,30,30,29,28,27,26,26,25,24,23,22,21,19,18,17,17,17,17,17,17,16,15,15,15,15,13,12,11,10,10,9,8,7,7,6,6,5,2,254,250,250,253,254,253,250,247,245,243,242,241,240,239,238,237,236,235,233,233,232,232,231,231,230,229,228,226,224,221,220,219,219,220,221,221,220,218,217,217,217,\r\n 216,215,214,213,211,210,209,207,206,206,205,205,204,204,205,206,207,207,206,205,204,204,203,203,203,203,203,203,203,202,202,201,201,200,199,199,199,198,198,198,196,195,195,194,194,194,194,194,194,195,195,196,197,197,197,197,198,198,198,198,199,199,199,199,199,200,200,201,201,201,201,202,203,203,203,204,204,205,206,206,206,207,208,209,209,210,211,212,213,214,214,216,216,217,217,218,219,219,220,221,\r\n 221,221,221,222,223,223,223,224,224,225,225,226,226,227,227,228,228,229,229,230,231,231,231,232,232,232,234,236,237,239,240,240,241,241,242,243,243,245,247,248,249,250,251,253,254,0,0,1,3,4,5,5,6,8,10,10,10,8,7,7,6,6,7,7,7,5,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,4,4,4,3,3,3,3,3,3,3,3,4,4,4,4,\r\n 4,4,4,5,5,5,5,6,6,7,7,8,8,9,9,9,9,9,9,9,10,10,10,10,11,12,13,13,13,14,15,16,16,16,16,17,17,16,15,15,15,15,16,16,16,16,17,18,19,20,22,23,24,23,23,22,22,21,21,21,23,24,25,26,28,30,30,30,29,29,30,32,34,35,35,34,34,34,34,33,31,30,29,29,28,28,27,26,24,23,21,19,18,17,16,16,16,17,18,18,\r\n 18,17,17,16,15,14,13,12,12,12,12,12,11,10,9,8,6,3,255,251,249,249,250,250,248,245,242,241,240,240,239,238,237,236,236,235,235,234,233,232,231,230,229,228,228,227,225,223,221,219,218,219,220,220,220,218,216,215,215,216,217,217,216,215,213,211,208,207,206,205,203,202,201,201,202,203,204,203,203,203,203,203,203,202,201,201,200,200,200,200,200,200,200,199,198,198,197,197,196,196,\r\n 195,194,193,193,193,193,193,193,193,194,194,193,193,194,195,196,196,196,196,197,197,197,197,197,197,198,198,198,199,200,200,200,201,201,202,202,202,203,204,204,205,206,206,207,208,209,210,211,211,212,213,214,215,216,217,217,217,217,218,219,219,220,220,221,221,222,222,223,223,224,224,225,225,225,226,226,227,228,228,229,230,230,230,230,230,232,234,236,236,235,235,237,239,241,243,245,246,246,247,248,\r\n 249,250,251,252,253,254,255,0,0,2,3,4,5,7,9,10,10,8,6,5,4,4,5,4,3,1,0,0,0,0,0,0,1,1,1,1,1,1,1,2,2,1,2,2,1,1,1,1,1,1,1,1,2,2,2,3,3,2,3,3,3,4,4,4,4,4,5,6,7,8,9,10,11,12,13,13,14,14,14,14,14,14,15,15,15,16,16,17,17,17,18,18,18,18,18,19,19,18,18,18,\r\n 18,18,19,19,20,20,20,20,20,20,20,19,19,20,21,22,22,21,21,21,22,24,26,27,28,29,30,29,29,29,29,30,30,31,31,31,30,30,31,31,31,31,30,30,28,27,25,23,21,19,17,16,16,17,17,17,17,17,17,18,18,18,18,18,17,15,14,13,13,12,11,11,10,9,7,4,1,254,252,251,250,249,247,246,245,244,243,240,238,236,236,236,236,235,234,234,234,233,232,232,\r\n 231,230,229,228,228,227,226,223,221,219,218,218,219,219,218,216,214,213,214,215,215,214,213,213,211,209,207,206,205,204,202,201,201,201,201,202,202,202,202,202,201,201,201,202,202,201,201,200,200,199,199,199,199,199,198,197,197,196,196,195,196,196,195,193,192,192,192,192,192,192,192,192,193,193,194,194,194,195,195,195,195,196,196,196,196,196,197,197,197,198,198,198,198,199,199,200,201,201,202,203,\r\n 203,204,205,206,207,207,208,209,210,211,212,213,213,214,215,216,216,217,217,217,217,217,218,219,220,221,222,222,223,224,225,226,227,229,230,231,231,232,232,232,232,233,233,234,234,235,237,238,239,239,240,241,242,242,242,242,243,244,245,246,247,248,249,250,251,252,253,254,255,0,0,1,2,3,5,7,7,6,5,4,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\r\n 0,0,0,0,0,255,255,0,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,4,6,8,10,12,13,14,14,14,13,12,12,12,12,13,13,13,14,14,14,14,13,12,11,11,12,12,13,13,13,13,14,14,14,15,14,14,14,14,15,15,15,15,15,15,16,18,19,19,20,21,22,23,23,23,23,23,23,24,25,26,26,27,27,27,28,29,29,29,28,27,27,27,27,27,27,\r\n 26,25,25,25,25,24,23,21,19,16,14,13,14,15,16,17,17,18,18,18,18,18,18,17,16,15,14,13,12,10,9,8,7,6,4,2,0,0,255,255,253,250,247,245,243,242,239,236,233,232,231,232,233,233,234,234,233,232,231,231,230,230,229,228,227,226,225,224,222,220,219,218,218,217,217,215,214,213,212,210,209,208,208,208,208,207,206,205,204,203,202,202,201,201,200,199,199,201,203,203,\r\n 201,198,197,197,198,200,200,201,201,201,200,199,198,198,198,197,196,196,196,196,195,195,196,195,193,192,192,192,192,192,192,192,192,192,192,192,193,193,194,194,194,194,195,195,195,195,195,196,196,196,196,197,197,198,198,199,199,200,201,202,202,203,204,205,205,206,208,209,210,210,211,211,212,213,214,215,216,216,217,219,220,222,223,224,224,224,225,225,226,226,227,228,229,230,230,231,231,232,232,233,\r\n 234,235,236,236,236,236,237,237,238,238,239,239,240,240,241,242,243,243,244,245,246,247,248,248,249,251,252,253,254,255,255,255,255,0,1,3,4,3,2,1,0,0,0,0,1,1,2,2,2,1,1,0,0,0,0,0,255,255,255,254,254,254,254,254,254,254,254,254,254,254,254,254,255,255,255,0,0,0,0,0,0,2,3,6,8,10,11,11,9,8,6,6,6,7,8,10,11,10,10,11,\r\n 12,14,16,17,18,19,19,19,19,19,20,21,21,21,20,19,18,18,18,17,16,16,16,18,19,19,19,18,18,17,17,18,20,21,23,25,26,27,26,26,26,26,26,25,25,24,24,24,25,25,26,26,25,25,24,24,24,24,24,24,23,22,21,20,20,19,17,15,12,11,11,11,12,12,12,13,14,15,16,16,16,16,15,14,13,13,12,11,9,7,6,6,6,6,5,3,2,1,0,255,\r\n 253,250,247,245,242,239,235,233,231,230,229,229,230,231,232,231,231,230,230,229,228,227,226,225,224,223,221,220,219,219,219,218,217,217,217,217,216,213,209,207,207,207,208,208,207,206,205,203,202,201,201,200,200,199,199,198,198,199,200,201,201,200,199,199,201,203,204,204,204,203,202,201,200,199,199,198,197,196,195,195,196,195,195,194,193,192,192,192,192,191,191,191,191,191,191,191,192,192,192,193,\r\n 193,193,194,194,194,194,195,195,195,195,196,196,197,197,198,198,199,200,201,201,202,203,204,205,205,206,208,210,211,213,213,214,215,216,216,217,217,218,219,220,222,222,222,222,222,222,222,223,223,224,225,226,227,228,229,230,231,232,233,233,234,235,236,236,236,236,236,237,237,238,238,239,240,240,241,241,242,242,243,245,246,247,248,248,249,249,249,250,250,251,252,252,253,254,0,1,1,1,0,0,\r\n 254,253,253,254,254,255,0,0,1,2,2,2,2,2,1,0,0,255,254,253,252,251,251,251,251,251,251,252,252,252,253,254,254,255,255,255,255,0,0,2,4,6,7,8,8,8,6,5,3,3,4,6,9,11,13,14,14,14,14,14,15,16,17,19,20,21,21,21,21,21,21,21,22,22,22,22,22,21,21,22,22,22,22,23,24,25,24,23,21,20,19,20,21,22,23,24,24,24,24,24,\r\n 24,24,24,24,24,24,23,23,23,23,22,22,21,21,21,21,21,21,21,20,20,19,18,16,14,13,11,11,11,11,11,11,11,11,12,13,14,15,14,14,13,12,12,11,10,9,9,8,7,7,6,6,5,4,3,2,1,0,255,253,251,250,248,245,242,239,236,234,232,231,230,228,227,227,228,229,229,229,229,227,226,224,223,221,220,218,216,216,217,218,218,216,214,214,214,215,215,213,210,209,\r\n 208,209,209,208,206,204,203,202,201,201,200,199,199,199,199,198,198,198,199,200,201,201,202,203,204,204,204,204,203,202,201,200,199,199,199,198,197,196,196,196,195,195,194,193,193,192,192,192,192,191,191,191,191,191,191,192,192,192,193,193,193,194,194,194,194,194,195,195,195,195,196,197,197,197,198,199,200,201,202,203,204,205,207,208,209,210,211,212,213,214,214,214,215,215,216,217,218,218,219,219,\r\n 219,220,221,222,222,223,224,225,225,226,226,227,227,227,228,229,230,231,232,233,233,234,235,236,236,237,237,238,239,239,239,240,240,241,241,241,242,242,243,244,245,245,245,246,247,248,249,250,250,251,252,253,254,255,0,0,0,255,254,252,251,250,250,250,251,252,253,254,254,255,255,255,0,0,0,0,0,0,255,255,255,254,254,253,254,255,0,0,1,1,0,0,255,255,255,0,1,3,4,5,\r\n 5,5,5,4,4,3,2,2,2,3,4,6,9,11,13,15,16,17,17,16,16,15,15,16,16,17,17,16,17,17,17,17,17,17,17,18,18,18,18,19,20,20,20,20,21,22,22,22,22,21,20,20,20,20,20,21,22,22,23,23,23,22,22,22,21,21,21,20,20,19,19,19,19,19,18,18,17,16,15,14,14,13,13,12,11,10,9,8,8,9,9,9,9,9,10,11,12,13,12,11,\r\n 11,10,10,10,10,9,8,7,6,5,5,4,3,2,0,0,255,254,253,251,250,249,248,246,244,241,239,237,235,232,230,228,227,225,224,224,223,222,222,221,220,219,218,218,217,216,215,215,216,216,215,214,212,211,211,212,212,211,210,208,208,208,207,206,204,203,201,201,200,200,199,199,199,199,199,198,198,198,197,198,199,201,203,204,203,203,202,201,201,200,200,199,198,198,198,198,198,197,196,195,\r\n 196,195,195,195,194,194,194,194,194,194,194,194,194,194,193,193,193,193,194,194,194,194,194,195,195,196,196,196,196,196,197,198,199,200,201,201,202,203,204,205,206,207,208,209,210,211,212,213,214,214,215,216,217,217,218,218,218,219,219,220,221,222,223,223,224,224,224,224,225,226,226,227,227,227,227,228,228,229,229,230,231,232,233,233,234,234,234,235,236,237,237,238,239,239,240,240,241,241,242,243,\r\n 243,244,244,244,245,246,248,248,249,250,251,251,252,252,252,251,250,249,248,247,246,246,246,247,247,248,248,249,249,249,250,250,251,251,252,252,253,254,254,255,255,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,2,3,3,4,5,7,9,10,11,11,11,11,10,10,11,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,14,14,14,15,15,\r\n 16,16,17,17,17,18,18,19,19,20,20,19,18,18,18,18,19,19,19,19,19,19,19,19,19,19,18,18,17,17,17,18,18,18,18,17,16,15,14,14,13,12,12,11,11,10,9,9,8,8,7,7,7,8,8,10,10,11,10,9,8,8,8,8,8,8,7,6,5,5,4,3,1,0,255,254,253,253,252,251,250,250,249,247,246,244,243,241,239,236,233,231,228,226,225,223,222,221,220,220,\r\n 220,220,220,220,219,218,218,218,218,218,217,215,212,209,208,208,209,209,209,209,208,207,205,204,203,202,202,201,200,200,200,200,200,200,199,199,199,198,197,196,196,196,197,198,199,199,200,200,200,199,199,199,198,198,199,199,198,198,197,196,197,197,197,197,197,197,197,198,198,197,197,198,198,198,198,197,197,196,196,195,196,196,196,197,197,198,199,200,200,200,200,200,201,201,202,203,204,205,207,208,\r\n 210,211,212,213,213,214,215,216,216,217,217,218,219,219,220,221,221,221,221,221,222,222,223,223,224,224,225,225,226,227,227,226,226,227,228,228,229,229,230,230,230,231,231,231,232,233,233,234,234,235,235,236,237,238,238,239,239,239,240,240,241,241,240,240,241,242,243,244,245,246,246,247,246,246,245,245,244,244,244,243,243,243,243,243,243,243,244,244,245,245,246,246,247,248,248,249,250,250,251,251,\r\n 251,252,252,252,251,250,250,249,249,249,249,250,251,251,252,253,255,255,0,0,0,255,255,255,0,1,3,5,5,5,5,5,5,5,5,5,6,6,7,7,7,7,7,8,9,9,10,10,10,10,10,10,10,10,10,11,11,12,12,12,12,12,13,13,14,14,14,14,15,15,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,16,16,16,16,16,16,16,15,\r\n 15,14,12,10,9,8,7,7,7,7,6,5,5,4,4,4,5,5,5,6,6,7,7,7,6,5,5,4,4,3,2,1,0,0,255,254,253,252,251,250,248,247,246,245,244,243,243,242,241,239,237,234,232,230,228,226,224,222,221,221,220,220,219,219,218,218,218,219,219,218,217,215,213,211,209,208,207,206,206,207,207,207,206,205,204,202,201,200,200,200,200,201,201,202,202,202,202,201,201,201,\r\n 200,200,199,199,199,200,200,200,200,200,200,200,200,200,200,200,199,198,198,197,199,198,198,198,198,198,198,199,198,198,198,198,198,198,198,197,197,197,198,198,199,199,200,200,200,200,201,201,201,201,201,201,202,202,203,205,206,208,209,210,211,212,212,213,214,215,215,216,216,216,217,218,218,219,220,220,220,220,221,221,222,222,223,223,223,223,223,224,224,224,224,225,225,225,226,227,227,228,228,229,\r\n 229,230,231,231,232,232,233,233,234,234,235,235,235,235,235,236,236,238,239,241,241,241,241,240,239,239,239,239,239,239,239,239,240,240,241,241,241,241,241,240,240,240,240,240,240,241,241,241,242,242,243,243,244,245,245,245,246,246,246,246,246,245,245,245,245,245,245,246,247,248,249,250,251,252,253,254,255,255,255,255,254,254,255,0,0,1,2,3,2,2,1,0,0,0,1,1,1,1,1,1,\r\n 1,2,3,4,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,9,9,10,10,11,12,12,13,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,13,13,13,12,11,11,10,9,8,8,8,8,9,9,9,9,9,9,8,7,5,4,3,2,2,3,4,5,5,5,5,5,5,4,4,3,2,0,0,254,253,252,251,250,250,249,248,\r\n 247,245,243,241,240,239,240,240,241,240,239,237,235,233,231,229,227,225,223,222,221,220,218,217,217,216,216,217,217,217,217,216,215,214,212,210,209,207,206,206,206,205,204,203,202,201,201,200,200,201,201,201,201,202,202,203,204,205,205,205,204,203,202,202,202,202,202,202,202,202,201,201,201,201,202,202,201,201,200,199,201,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,201,\r\n 201,201,202,202,202,202,203,203,204,204,204,204,205,205,206,206,207,207,208,208,209,210,211,212,213,214,214,214,214,215,215,216,217,217,218,218,218,219,219,220,220,221,221,222,222,223,223,223,223,223,224,224,224,225,225,226,227,227,227,228,228,228,229,229,230,230,231,232,233,234,236,237,238,239,238,238,237,236,236,236,236,236,236,236,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,\r\n 237,237,237,237,237,238,238,239,239,240,240,241,242,242,243,243,243,242,242,242,242,242,243,243,244,245,246,246,247,246,246,246,246,246,247,248,248,249,249,249,250,250,250,250,250,251,251,252,252,253,253,253,253,254,254,254,254,254,254,254,255,255,0,0,0,0,1,2,3,3,4,4,4,5,5,5,6,6,6,6,6,6,7,7,7,7,7,8,8,9,9,9,10,10,10,11,11,12,12,12,\r\n 12,11,11,11,11,10,10,10,10,9,9,9,9,9,9,9,9,9,8,8,8,8,8,8,9,9,8,8,8,8,7,7,7,6,6,5,4,4,3,3,3,3,4,4,4,4,3,3,2,1,1,0,0,255,253,251,249,247,246,246,246,245,244,242,240,239,238,238,239,239,239,237,236,234,232,230,228,227,225,224,222,221,220,219,218,217,216,216,215,215,215,214,213,212,211,209,208,207,206,206,\r\n 205,205,204,203,202,201,201,201,201,201,201,202,202,202,203,203,204,205,206,206,207,207,206,206,206,206,205,205,205,204,203,203,203,203,203,203,203,202,202,201,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,203,203,204,204,204,204,204,204,204,204,205,205,206,206,207,207,207,208,208,208,209,209,210,210,210,211,211,212,212,213,214,214,215,216,217,217,217,217,218,218,219,\r\n 219,220,221,221,222,222,222,223,223,223,224,224,225,225,225,226,226,227,227,228,228,229,229,229,230,230,231,232,233,234,235,236,237,237,236,235,234,233,232,232,232,233,233,234,234,234,234,234,234,234,235,235,235,235,235,235,235,235,235,235,235,235,235,236,236,236,237,237,238,238,239,240,241,241,242,242,242,242,242,242,242,242,242,242,243,243,243,242,242,242,242,243,244,246,247,248,248,248,248,248,\r\n 248,248,248,248,249,250,251,252,253,253,254,254,254,253,253,252,252,252,252,252,252,252,253,253,253,253,254,254,255,0,0,1,2,2,3,3,3,4,4,4,4,4,4,5,5,5,6,6,6,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,6,6,6,6,7,7,7,7,7,7,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,\r\n 8,8,7,6,5,4,2,1,0,0,0,0,255,254,253,252,250,249,247,246,245,244,243,242,241,239,239,238,237,237,236,235,234,233,232,231,230,228,227,226,225,223,222,220,219,218,217,217,216,216,216,215,214,213,212,210,209,208,207,206,206,205,205,204,204,204,204,204,204,204,204,205,205,206,206,206,206,206,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,204,204,203,203,\r\n 205,205,205,205,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,205,205,205,205,206,206,206,207,207,208,208,209,209,209,210,210,210,210,211,211,212,213,213,214,215,215,216,216,217,217,218,218,218,219,219,220,220,220,220,220,220,221,221,222,223,223,224,225,226,226,227,227,228,228,228,229,230,230,231,232,233,234,234,234,234,234,234,234,234,234,234,234,234,\r\n 233,233,233,233,233,233,232,232,232,232,232,232,232,233,233,234,234,234,234,234,234,234,235,235,235,235,236,237,237,238,239,239,240,240,240,240,240,240,240,240,240,240,240,239,239,239,239,240,240,240,241,242,243,243,243,243,244,244,244,245,246,247,247,248,249,249,249,250,250,251,251,251,252,252,251,251,251,251,251,251,252,252,253,254,254,255,255,255,255,0,0,0,0,0,0,1,1,1,2,2,\r\n 2,3,3,3,3,4,4,4,5,5,5,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,6,6,6,5,5,5,5,5,5,6,6,6,6,7,7,7,7,7,7,7,7,7,7,8,8,8,9,9,9,9,8,8,7,7,6,5,4,3,3,2,1,0,0,255,253,252,251,250,249,248,247,246,245,244,244,243,241,240,239,237,236,234,233,233,232,231,230,230,229,228,226,225,\r\n 224,222,221,220,219,218,217,216,216,216,216,216,215,215,214,212,211,210,209,208,207,207,207,207,206,206,206,206,206,206,206,207,207,207,208,208,209,209,208,208,207,207,207,206,206,206,207,207,207,207,207,206,206,206,206,205,205,205,205,205,207,207,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,207,207,207,207,207,207,207,208,208,208,209,209,209,\r\n 210,210,211,211,211,212,212,213,213,214,214,214,215,215,216,216,216,217,217,217,218,218,219,220,220,221,221,222,222,223,223,223,224,224,224,225,226,226,227,228,229,230,230,231,231,231,232,232,232,232,232,232,232,232,232,232,232,231,231,231,230,230,230,230,230,230,230,231,231,231,231,231,232,232,232,232,232,232,232,232,232,232,232,232,233,233,233,234,234,234,235,235,235,236,236,236,237,237,237,238,\r\n 238,238,238,238,238,238,239,239,239,240,240,241,241,241,241,241,241,241,242,242,243,243,244,244,245,245,245,246,246,246,246,246,246,247,247,248,248,249,250,251,252,252,253,253,254,254,254,254,253,254,254,254,255,255,0,0,0,1,2,2,2,2,3,3,3,4,4,4,5,5,5,5,6,6,6,6,6,5,5,5,5,5,5,5,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,\r\n 5,6,6,6,6,5,5,5,5,5,5,6,6,6,6,6,6,5,5,4,3,3,2,2,1,1,1,0,0,0,255,254,253,252,250,249,248,247,246,245,245,244,243,242,241,240,239,237,236,234,233,232,231,230,229,229,228,227,227,226,225,224,223,222,221,220,219,218,218,217,217,217,216,216,215,214,214,213,212,211,211,210,210,209,209,209,208,208,208,207,207,207,207,207,207,208,209,209,210,210,\r\n 210,209,209,209,208,208,208,208,208,208,208,208,208,207,207,208,208,208,207,207,209,209,209,208,208,208,208,208,208,208,208,208,208,208,208,208,208,207,207,207,207,207,208,208,208,208,208,209,209,209,209,210,210,210,210,210,210,210,210,211,211,211,212,212,212,213,213,214,214,214,215,215,215,216,216,216,217,217,218,218,218,219,220,220,221,221,222,222,222,223,223,224,224,225,225,226,227,227,228,228,\r\n 228,229,229,229,229,229,230,230,230,231,231,231,231,231,231,231,231,231,230,230,230,230,229,229,229,229,229,229,229,230,230,230,230,230,231,231,231,231,231,231,231,231,231,231,231,232,232,233,234,235,235,236,236,236,236,237,237,237,238,238,238,238,239,239,239,239,240,240,241,241,242,242,243,243,243,244,244,244,244,244,245,245,245,245,246,245,245,245,245,244,244,244,243,243,243,243,243,243,244,244,\r\n 245,245,246,247,247,247,248,248,248,248,249,249,249,250,250,251,251,251,252,253,253,254,255,255,0,0,0,1,1,2,2,2,2,2,2,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,2,2,1,1,0,0,0,0,255,255,254,253,252,251,251,250,249,248,247,246,245,244,243,\r\n 242,241,240,239,239,238,237,236,235,235,234,233,232,232,231,230,229,228,227,226,225,224,223,222,221,221,220,219,218,218,218,218,217,217,217,217,217,216,215,215,214,214,214,213,213,213,213,213,214,214,214,214,214,214,215,215,215,214,214,214,213,212,212,211,211,210,210,210,210,210,210,210,210,210,209,209,209,209,209,209,211,211,211,211,211,211,211,211,210,210,210,210,210,211,211,211,211,211,211,210,\r\n 210,210,210,210,210,210,210,210,210,210,211,211,211,211,212,212,212,213,213,213,213,214,214,214,214,215,215,215,215,215,216,216,216,217,217,217,218,218,219,219,219,219,220,220,220,221,221,222,223,223,224,225,226,226,227,227,228,228,228,228,228,228,228,228,228,228,228,228,228,229,229,229,229,229,229,229,229,229,229,230,230,230,230,230,230,230,230,230,230,230,231,231,231,231,231,231,231,230,230,230,\r\n 230,231,232,233,234,235,236,236,237,237,237,237,236,236,236,236,236,237,237,238,238,238,239,239,239,239,240,240,241,241,242,242,243,243,243,243,244,243,243,243,243,243,243,243,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,245,245,245,245,246,246,246,246,246,246,246,246,246,247,247,248,249,250,251,252,253,253,254,255,255,255,0,0,0,0,255,255,255,255,\r\n 254,254,254,253,253,253,253,253,253,253,253,253,254,254,254,254,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,255,255,255,255,254,254,254,253,252,252,251,250,250,249,249,248,248,248,247,247,246,246,245,244,244,243,242,241,241,240,239,239,238,237,237,236,235,234,234,233,232,231,231,230,229,228,227,227,226,225,225,224,223,223,222,222,222,222,222,222,222,222,222,222,222,221,221,220,220,\r\n 219,219,218,218,218,218,218,218,217,217,217,217,217,217,217,216,216,216,216,216,216,216,216,216,216,216,215,215,214,213,213,212,212,212,211,211,211,211,211,211,215,214,214,214,214,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,214,214,214,214,214,214,214,214,215,215,215,215,215,215,215,216,216,216,216,216,216,217,217,217,218,218,218,219,219,220,220,220,221,\r\n 221,221,222,222,222,223,223,224,224,224,225,225,226,226,227,227,227,227,228,228,228,228,229,229,229,229,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,231,231,231,231,231,231,231,231,231,230,230,230,229,229,229,229,229,229,230,231,231,232,232,233,234,234,234,235,235,236,236,237,238,238,239,240,240,241,241,241,242,242,241,241,241,241,241,241,241,241,242,242,242,242,243,243,\r\n 243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,245,245,246,246,247,248,248,249,250,250,251,251,251,251,252,252,251,251,251,251,250,250,249,249,249,249,249,249,249,249,249,250,250,250,251,251,251,251,252,252,252,252,252,252,252,252,252,252,252,251,251,251,251,250,250,249,249,248,248,\r\n 247,246,246,245,245,245,244,244,244,244,243,243,242,242,242,241,241,240,240,239,239,238,238,237,237,236,236,235,235,234,234,233,233,232,232,231,230,230,229,228,227,227,226,225,225,225,224,224,224,223,223,223,223,222,222,221,221,221,220,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,220,220,220,221,221,221,221,221,220,220,219,219,218,218,217,217,216,216,216,216,216,215,215,215,\r\n 222,222,222,222,222,221,221,221,220,220,220,219,219,219,218,218,218,218,217,217,217,217,216,216,216,216,216,216,216,216,216,216,217,217,217,217,218,218,218,218,219,219,219,219,220,220,220,220,220,221,221,221,221,221,222,222,222,223,223,223,224,224,225,225,226,226,226,227,227,228,228,228,228,229,229,229,229,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,229,229,229,229,229,228,228,\r\n 228,228,228,229,229,229,229,230,230,230,231,231,231,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,233,233,233,234,235,235,236,237,237,238,239,239,240,240,241,241,241,241,241,241,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,243,243,243,243,243,243,243,243,243,243,243,243,243,242,242,242,242,242,242,242,242,243,243,\r\n 243,243,244,244,245,245,246,246,247,247,247,248,248,248,248,248,248,248,248,248,248,247,247,247,246,246,246,246,246,246,246,246,246,246,246,246,246,247,247,247,247,247,247,247,247,247,247,247,246,246,246,246,245,245,245,245,244,244,244,243,243,243,243,242,242,242,241,241,241,240,240,240,239,239,238,238,237,237,236,236,235,235,235,234,234,233,233,233,232,232,231,231,231,230,230,230,229,229,228,228,\r\n 228,227,227,226,226,226,225,225,225,224,224,223,223,223,223,222,222,222,222,221,221,221,221,221,221,221,221,221,221,221,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,223,223,223,223,223,223,223,226,226,226,226,226,226,226,226,226,226,225,225,225,225,225,225,224,224,224,224,224,223,223,223,223,223,223,223,223,223,223,223,223,223,223,224,224,224,224,224,\r\n 225,225,225,225,225,225,226,226,226,226,226,226,226,226,226,226,227,227,227,227,227,227,227,228,228,228,228,228,229,229,229,229,229,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,229,229,229,229,230,230,230,230,230,230,230,231,231,231,232,232,232,233,233,233,234,234,234,234,235,235,235,235,235,234,234,234,234,233,233,233,232,232,232,231,231,231,231,231,231,231,231,231,231,\r\n 231,232,232,232,233,233,233,234,234,235,235,235,236,236,237,237,237,238,238,238,238,239,239,239,239,239,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,241,241,241,241,241,241,241,241,241,241,241,241,241,242,242,242,242,242,242,242,243,243,243,243,243,243,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,\r\n 244,244,244,244,244,244,244,244,244,244,243,243,243,243,242,242,242,241,241,241,240,240,240,239,239,238,238,238,237,237,236,236,236,235,235,234,234,234,233,233,233,232,232,231,231,231,230,230,230,229,229,229,228,228,228,227,227,227,226,226,226,226,225,225,225,225,224,224,224,224,224,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,224,224,224,224,224,224,224,\r\n 224,224,224,224,224,224,224,224,224,224,225,225,225,225,225,225,225,225,226,226,227,227,227,227,227,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,230,230,230,230,230,\r\n 230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,231,231,231,231,231,232,232,232,232,232,232,233,233,233,233,233,233,234,234,234,234,234,234,234,234,233,233,233,233,233,233,233,232,232,232,232,231,231,231,231,231,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,231,231,231,231,231,231,232,232,232,232,232,233,233,233,233,233,234,234,234,234,234,235,235,235,\r\n 235,235,236,236,236,236,236,236,237,237,237,237,237,238,238,238,238,238,238,238,239,239,239,239,239,239,239,239,239,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,239,239,239,239,239,239,238,238,238,238,237,237,237,236,236,236,236,235,235,235,234,234,234,233,233,233,233,232,232,232,232,231,231,231,231,\r\n 230,230,230,230,229,229,229,228,228,228,228,227,227,227,227,226,226,226,226,226,225,225,225,225,225,225,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,225,225,225,225,225,225,225,225,225,225,225,225,225,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,227,227,227,227,227,227,227,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,\r\n 229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,\r\n 231,231,231,231,231,231,231,231,231,231,231,230,230,230,230,230,230,230,230,230,230,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,230,230,230,230,230,230,230,230,230,230,231,231,231,231,231,231,231,231,232,232,232,232,232,232,232,232,233,233,233,233,233,233,233,233,233,234,234,234,234,234,234,234,\r\n 234,234,234,234,234,234,234,234,235,235,235,235,235,235,235,235,235,235,234,234,234,234,234,234,234,234,234,234,234,234,234,234,233,233,233,233,233,233,233,233,232,232,232,232,232,232,232,232,231,231,231,231,231,231,231,230,230,230,230,230,230,229,229,229,229,229,229,229,228,228,228,228,228,228,228,227,227,227,227,227,227,227,227,227,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,\r\n 226,226,226,226,226,226,226,227,227,227,227,227,227,227,227,227,227,227,227,227,228,228,228,228,228,228,228,228,228,228,228,228,228,228,229,229,229,229,229,229,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,\r\n 228,228,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,\r\n 228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,229,229,229,229,229,229,229,229,229,229,229,229,229,\r\n 229,229,229,229,229,229,229,229,229,229,229,229,229,229,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,228,228,228,228,228,228,228,228,228,228,\r\n 228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,\r\n 228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,\r\n 228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,\r\n 228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228];\r\n\r\n if (lngDeg > 179) lngDeg = -180;\r\n if (lngDeg < -180) lngDeg = -180;\r\n if (latDeg > 90) latDeg = 90;\r\n if (latDeg < -90) latDeg = -90;\r\n let index = (90 - latDeg) * 360 + 180 + lngDeg;\r\n let geoHeight = GEOID_HEIGHT_DATA[index];\r\n if (geoHeight > 127) geoHeight -= 256.0;\r\n return geoHeight; \r\n }\r\n}","export class xephem {\r\n // Calc 1900 jan 0.5 as 1900 jan 1.5 minus 1 day\r\n static ZERO_TICKS = Date.parse(\"1900-01-01T12:00:00Z\") - 1000 * 3600 * 24\r\n\r\n degrad(x) {\r\n return (x) * Math.PI / 180.0;\r\n }\r\n\r\n raddeg(x) {\r\n return (x) * 180.0 / Math.PI;\r\n }\r\n\r\n range(x, r) {\r\n x -= r * Math.floor(x/r);\r\n return x;\r\n }\r\n\r\n // number of days elapsed since 1900 jan 0.5\r\n getMJD(moment)\r\n {\r\n return (new Date(moment - xephem.ZERO_TICKS)) / (1000 * 3600 * 24);\r\n }\r\n\r\n /* given the mean anomaly, ma, and the eccentricity, s, of elliptical motion,\r\n * find the true anomaly, *nu, and the eccentric anomaly, *ea.\r\n * all angles in radians.\r\n */\r\n anomaly(ma, s) {\r\n var rv = {\r\n nu: NaN, \r\n ea : NaN\r\n }\r\n\r\n let fea = 0;\r\n\r\n if (s < 1.0) \r\n {\r\n /* elliptical */\r\n let m = ma - Math.PI * 2 * Math.floor(ma / (Math.PI * 2));\r\n if (m > Math.PI) m -= Math.PI * 2;\r\n if (m < -Math.PI) m += Math.PI * 2;\r\n\r\n /* The current method is ok but smoe tempting mods require\r\n *\t0.97 and M near 0*/\r\n let corr = 1 - (s * Math.cos(fea));\r\n if (corr < 0.1) corr = 0.1;\r\n dla /= corr;\r\n fea -= dla;\r\n }\r\n\r\n rv.nu = 2 * Math.atan(Math.sqrt((1 + s) / (1 - s)) * Math.tan(fea / 2));\r\n }\r\n\r\n rv.ea = fea;\r\n \r\n return rv;\r\n }\r\n\r\n obliquity (mjd)\r\n {\r\n let t = mjd/36525.0;\r\n return this.degrad(2.345229444E1 - ((((-1.81E-3*t)+5.9E-3)*t+4.6845E1)*t)/3600.0);\r\n }\r\n\r\n nutation (mjd) {\r\n var rv = {\r\n deps: NaN,\r\n dpsi: NaN\r\n };\r\n \r\n let t = mjd/36525.0;\r\n let t2 = t*t;\r\n\r\n let a = 100.0021358*t;\r\n let b = 360.0*(a - Math.floor(a));\r\n let ls = 279.697+.000303*t2+b;\r\n\r\n a = 1336.855231*t;\r\n b = 360.0*(a - Math.floor(a));\r\n let ld = 270.434-.001133*t2+b;\r\n\r\n a = 99.99736056000026*t;\r\n b = 360.0*(a - Math.floor(a));\r\n let ms = 358.476-.00015*t2+b;\r\n\r\n a = 13255523.59*t;\r\n b = 360.0*(a - Math.floor(a));\r\n let md = 296.105+.009192*t2+b;\r\n\r\n a = 5.372616667*t;\r\n b = 360.0*(a - Math.floor(a));\r\n let nm = 259.183+.002078*t2-b;\r\n\r\n /* convert to radian forms for use with trig functions.\r\n */\r\n let tls = 2 * this.degrad(ls);\r\n nm = this.degrad(nm);\r\n let tnm = 2*nm;\r\n ms = this.degrad(ms);\r\n let tld = 2 * this.degrad(ld);\r\n md = this.degrad(md);\r\n\r\n /* find delta psi and eps, in arcseconds.\r\n */\r\n rv.dpsi = (-17.2327 - .01737 * t) * Math.sin(nm) + (-1.2729 - .00013 * t) * Math.sin(tls)\r\n + .2088 * Math.sin(tnm) - .2037 * Math.sin(tld) + (.1261 - .00031 * t) * Math.sin(ms)\r\n + .0675 * Math.sin(md) - (.0497 - .00012 * t) * Math.sin(tls + ms)\r\n - .0342 * Math.sin(tld - nm) - .0261 * Math.sin(tld + md) + .0214 * Math.sin(tls - ms)\r\n - .0149 * Math.sin(tls - tld + md) + .0124 * Math.sin(tls - nm) + .0114 * Math.sin(tld - md);\r\n\r\n rv.deps = (9.21 + .00091 * t) * Math.cos(nm) + (.5522 - .00029 * t) * Math.cos(tls)\r\n - .0904 * Math.cos(tnm) + .0884 * Math.cos(tld) + .0216 * Math.cos(tls + ms)\r\n + .0183 * Math.cos(tld - nm) + .0113 * Math.cos(tld + md) - .0093 * Math.cos(tls - ms)\r\n - .0066 * Math.cos(tls - nm);\r\n\r\n /* convert to radians.\r\n */\r\n rv.dpsi = this.degrad(rv.dpsi/3600);\r\n rv.deps = this.degrad(rv.deps/3600);\r\n\r\n return rv;\r\n } \r\n\r\n /* given the modified JD, mjd, return the true geocentric ecliptic longitude\r\n * of the sun for the mean equinox of the date, *lsn, in radians, and the\r\n * sun-earth distance, *rsn, in AU. (the true ecliptic latitude is never more\r\n * than 1.2 arc seconds and so may be taken to be a constant 0.)\r\n * if the APPARENT ecliptic longitude is required, correct the longitude for\r\n * nutation to the true equinox of date and for aberration (light travel time,\r\n * approximately -9.27e7/186000/(3600*24*365)*2*pi = -9.93e-5 radians).\r\n */\r\n sunpos(mjd)\r\n {\r\n var rv = {\r\n lsn: NaN,\r\n rsn: NaN\r\n }\r\n \r\n let t = mjd/36525.0;\r\n let t2 = t*t;\r\n let a = 100.0021359*t;\r\n let b = 360.0*(a - Math.floor(a));\r\n let ls = 279.69668+0.0003025*t2+b;\r\n a = 99.99736042000039*t;\r\n b = 360*(a - Math.floor(a));\r\n let ms = 358.47583-(0.00015+0.0000033*t)*t2+b;\r\n let s = 0.016751-0.0000418*t-1.26e-07*t2;\r\n\r\n var an = this.anomaly(this.degrad(ms), s);\r\n\r\n a = 62.55209472000015*t;\r\n b = 360*(a - Math.floor(a));\r\n let a1 = this.degrad(153.23+b);\r\n a = 125.1041894*t;\r\n b = 360*(a - Math.floor(a));\r\n let b1 = this.degrad(216.57+b);\r\n a = 91.56766028*t;\r\n b = 360*(a - Math.floor(a));\r\n let c1 = this.degrad(312.69+b);\r\n a = 1236.853095*t;\r\n b = 360*(a - Math.floor(a));\r\n let d1 = this.degrad(350.74-0.00144*t2+b);\r\n let e1 = this.degrad(231.19+20.2*t);\r\n a = 183.1353208*t;\r\n b = 360*(a - Math.floor(a));\r\n let h1 = this.degrad(353.4+b);\r\n let dl = 0.00134 * Math.cos(a1) + 0.00154 * Math.cos(b1) + 0.002 * Math.cos(c1) + .00179 * Math.sin(d1) + 0.00178 * Math.sin(e1);\r\n let dr = 5.43e-06 * Math.sin(a1) + 1.575e-05 * Math.sin(b1) + 1.627e-05 * Math.sin(c1) + 3.076e-05 * Math.cos(d1) + 9.27e-06 * Math.sin(h1);\r\n\r\n rv.lsn = an.nu + this.degrad(ls-ms+dl);\r\n\r\n while (rv.lsn < 0) { rv.lsn += 2 * Math.PI; }\r\n while (rv.lsn > 2 * Math.PI) { rv.lsn -= 2 * Math.PI; }\r\n\r\n rv.rsn = 1.0000002*(1-s*Math.cos(an.ea))+dr;\r\n\r\n return rv;\r\n }\r\n\r\n ecleq_aux (sw, mjd, x, y) {\r\n /* +1 for eq to ecliptic, -1 for vv. */\t\t\t\r\n /* sw==1: x==ra, y==dec. sw==-1: x==lng, y==lat. */\r\n /* sw==1: p==lng, q==lat. sw==-1: p==ra, q==dec. */\r\n\r\n var rv = {\r\n p: NaN, \r\n q: NaN\r\n }\r\n\r\n let eps = this.obliquity (mjd);\t\t/* mean obliquity for date */\r\n let nut = this.nutation (mjd);\r\n eps += nut.deps;\r\n let seps = Math.sin(eps);\r\n let ceps = Math.cos(eps);\r\n\r\n let sy = Math.sin(y);\r\n let cy = Math.cos(y);\t\t\t\t/* always non-negative */\r\n if (Math.abs(cy)<1e-20) \r\n cy = 1e-20;\t\t/* insure > 0 */\r\n let ty = sy/cy;\r\n let cx = Math.cos(x);\r\n\r\n let sx = Math.sin(x);\r\n let q = Math.asin((sy*ceps)-(cy*seps*sx*sw));\r\n let p = Math.atan(((sx * ceps) + (ty * seps * sw)) / cx);\r\n if (cx < 0) p += Math.PI;\t\t/* account for atan quad ambiguity */\r\n\r\n this.range (p, 2* Math.PI);\r\n\r\n rv.p = p;\r\n rv.q = q;\r\n return rv;\r\n }\r\n\r\n JD_from_Moment(moment) {\r\n \r\n let year = moment.getFullYear();\r\n let month = moment.getMonth() + 1;\r\n let dy = moment.getDate();\r\n let hr = moment.getHours();\r\n let min = moment.getMinutes();\r\n let sec = moment.getSeconds();\r\n\r\n return this.JD_from_Date(year, month, dy, hr, min, sec);\r\n }\r\n\r\n JD_from_DateString(formatedDate)\r\n {\r\n let year = Number(formatedDate.substr(0, 4));\r\n let month= Number(formatedDate.substr(5, 2));\r\n let dy = Number(formatedDate.substr(8, 2));\r\n let hr = Number(formatedDate.substr(11, 2));\r\n let min = Number(formatedDate.substr(14, 2));\r\n let sec = Number(formatedDate.substr(17));\r\n\r\n return this.JD_from_Date(year, month, dy, hr, min, sec);\r\n }\r\n\r\n JD_from_Date(year, month, dy, hr, min, sec)\r\n {\r\n let day = dy + (hr + min / 60.0 + sec / 3600.0) / 24.0;\r\n let num = ((12.0 * (year + 4800.0)) + month) - 3.0;\r\n let num2 = Math.floor(((((2.0 * (num % 12.0)) + 7.0) + (365.0 * num)) / 12.0)) + day;\r\n let num3 = (num2 + Math.floor((num / 48.0))) - 32083.5;\r\n if (((year > 0x62e) | ((year == 0x62e) & (month > 10))) | (((year == 0x62e) & (month == 10)) & (day > 4.0)))\r\n {\r\n num3 = ((num3 + Math.floor((num / 4800.0))) - Math.floor((num / 1200.0))) + 38.0;\r\n }\r\n return num3;\r\n } \r\n\r\n siderealTimeDeg(jd) {\r\n let num2 = Math.floor(jd) + 0.5;\r\n let num = (num2 - 2451545.0) / 36525.0;\r\n let num3 = (100.46061837 + (36000.770053608 * num)) + ((0.00038793 * num) * num);\r\n num3 += 360.985647 * (jd - num2);\r\n num3 = num3 % 360.0;\r\n return num3;\r\n }\r\n\r\n getSunPosition(formatedDate) {\r\n var moment = Date.parse(formatedDate + 'Z');\r\n return this.getSunPositionFromMoment(moment);\r\n }\r\n\r\n getSunPositionFromMoment(moment) {\r\n let rv = {\r\n ra: NaN,\r\n dec: NaN\r\n };\r\n\r\n let mjd = this.getMJD(moment);\r\n var sunPos = this.sunpos(mjd);\r\n var sunEcl = this.ecleq_aux(-1, mjd, sunPos.lsn, 0);\r\n if (sunEcl.q > Math.PI) sunEcl.q -= 2 * Math.PI;\r\n\r\n rv.ra = this.raddeg(sunEcl.p);\r\n rv.dec = this.raddeg(sunEcl.q);\r\n\r\n return rv;\r\n }\r\n \r\n longitudeForAltitudeAndLatitude(siderial, altitude, latitude, raInHours, decInDeg)\r\n {\r\n let degToRadian = 57.295779513082323;\r\n altitude = altitude / degToRadian;\r\n latitude = latitude / degToRadian;\r\n decInDeg = decInDeg / degToRadian;\r\n let lng1 = degToRadian * Math.acos((Math.sin(altitude) - Math.sin(latitude) * Math.sin(decInDeg)) / (Math.cos(latitude) * Math.cos(decInDeg)));\r\n let lng2 = -1 * lng1;\r\n lng1 = lng1 + raInHours * 15 - siderial;\r\n lng2 = lng2 + raInHours * 15 - siderial;\r\n lng1 = this.range(lng1, 360);\r\n lng2 = this.range(lng2, 360);\r\n return { lng1, lng2 };\r\n }\r\n\r\n getBearing(long1, lat1, long2, lat2)\r\n {\r\n return (180 / Math.PI) * this.calcBearing(long1 * Math.PI / 180, lat1 * Math.PI / 180, long2 * Math.PI / 180, lat2 * Math.PI / 180);\r\n }\r\n\r\n calcBearing(ALongitude, ALatitude, CLongitude, CLatitude)\r\n {\r\n let w = CLongitude - ALongitude;\r\n let v = CLatitude - ALatitude;\r\n\r\n let asinVal = Math.sqrt((Math.sin(v / 2) * Math.sin(v / 2)) + (Math.cos(ALatitude) * Math.cos(CLatitude) * Math.sin(w / 2) * Math.sin(w / 2)));\r\n let s = 2 * Math.asin(Math.max(-1, Math.min(1, asinVal)));\r\n let x = 0;\r\n if (Math.cos(CLatitude) < 0.000000000000001)\r\n {\r\n // initial point is pole\r\n if (CLatitude > 0)\r\n {\r\n x = Math.PI; // start from north pole\r\n }\r\n else\r\n {\r\n x = 0; // start from south pole\r\n }\r\n }\r\n else\r\n {\r\n // initial point isn't on pole\r\n if (Math.sin(ALongitude - CLongitude) < 0)\r\n {\r\n let acosVal = (Math.sin(CLatitude) - Math.sin(ALatitude) * Math.cos(s)) / (Math.sin(s) * Math.cos(ALatitude));\r\n x = Math.acos(Math.max(-1, Math.min(1, acosVal)));\r\n }\r\n else\r\n {\r\n let acosVal = (Math.sin(CLatitude) - Math.sin(ALatitude) * Math.cos(s)) / (Math.sin(s) * Math.cos(ALatitude));\r\n x = 2 * Math.PI - Math.acos(Math.max(-1, Math.min(1, acosVal)));\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n raDecToAltAz(ra,dec,lat,lon,gmst){\r\n ra = 15 * ra * Math.PI / 180;\r\n dec = dec * Math.PI / 180;\r\n lat = lat * Math.PI / 180;\r\n lon = lon * Math.PI / 180;\r\n gmst = gmst * Math.PI / 180;\r\n \r\n var localSiderealTime=(gmst+lon)%(2*Math.PI);\r\n \r\n let H=(localSiderealTime - ra);\r\n if(H<0){H+=2*Math.PI;}\r\n if(H>Math.PI){H=H-2*Math.PI;}\r\n \r\n let az = (Math.atan2(Math.sin(H), Math.cos(H)*Math.sin(lat) - Math.tan(dec)*Math.cos(lat)));\r\n let a = (Math.asin(Math.sin(lat)*Math.sin(dec) + Math.cos(lat)*Math.cos(dec)*Math.cos(H)));\r\n az-=Math.PI;\r\n \r\n if(az<0){az+=2*Math.PI;}\r\n return [a* 180 / Math.PI, az * 180 / Math.PI];\r\n } \r\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.currentStation && _vm.isEditing)?_c('div',{staticClass:\"px-2 py-2 panel-light\",staticStyle:{\"font-size\":\"12px\",\"border\":\"1px solid #676767\"}},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"float-left pl-3\"},[_c('span',{staticStyle:{\"font-size\":\"12px\"},attrs:{\"nowrap\":\"\"}},[_vm._v(\"Distance:\")]),_c('div',{staticStyle:{\"font-size\":\"12px\"}},[_vm._v(_vm._s(_vm._f(\"formatCentralDistance\")(this.distance)))])]),(_vm.currAltMsl != null)?_c('div',{staticClass:\"float-left pl-2\"},[_c('span',{staticStyle:{\"font-size\":\"12px\"},attrs:{\"nowrap\":\"\"}},[_vm._v(\"Altitude:\")]),_c('div',{staticClass:\"align-middle\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.currAltMsl),expression:\"currAltMsl\"}],staticClass:\"edit\",staticStyle:{\"line-height\":\"normal\"},attrs:{\"id\":\"siteAltitude\",\"type\":\"text\",\"size\":\"4\",\"disabled\":_vm.showLoader},domProps:{\"value\":(_vm.currAltMsl)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.currAltMsl=$event.target.value}}}),_vm._v(\" m \")])]):_vm._e(),_c('div',{staticClass:\"float-left pl-2\"},[_c('span',{staticStyle:{\"font-size\":\"12px\"},attrs:{\"nowrap\":\"\"}},[_vm._v(\"Site name:\")]),_c('div',{staticClass:\"align-middle\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.currentStation.name),expression:\"currentStation.name\"}],staticClass:\"edit\",staticStyle:{\"line-height\":\"normal\"},attrs:{\"id\":\"siteName\",\"type\":\"text\",\"disabled\":_vm.showLoader},domProps:{\"value\":(_vm.currentStation.name)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.currentStation, \"name\", $event.target.value)}}})])]),_c('div',{staticClass:\"float-left pl-2\"},[_c('span',{staticStyle:{\"font-size\":\"12px\"},attrs:{\"nowrap\":\"\"}},[_vm._v(\"Method:\")]),_c('div',{staticClass:\"align-middle\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.currentStation.obsm),expression:\"currentStation.obsm\"}],staticClass:\"edit\",attrs:{\"id\":\"obsMethod\",\"disabled\":_vm.showLoader},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.currentStation, \"obsm\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},[_c('option',{attrs:{\"value\":\"\"}},[_vm._v(\"Please choose...\")]),_c('option',{attrs:{\"value\":\"visual\"}},[_vm._v(\"Visual\")]),_c('option',{attrs:{\"value\":\"video\"}},[_vm._v(\"Video\")]),_c('option',{attrs:{\"value\":\"drift scan\"}},[_vm._v(\"Drift scan\")]),_c('option',{attrs:{\"value\":\"photoelectric\"}},[_vm._v(\"Photoelectric\")]),_c('option',{attrs:{\"value\":\"other\"}},[_vm._v(\"Other\")])])])]),_c('div',{staticClass:\"float-left pl-2\"},[_c('span',{staticStyle:{\"font-size\":\"12px\"},attrs:{\"nowrap\":\"\"}},[_vm._v(\"Timing:\")]),_c('div',{staticClass:\"align-bottom\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.currentStation.timm),expression:\"currentStation.timm\"}],staticClass:\"edit\",attrs:{\"id\":\"timMethod\",\"disabled\":_vm.showLoader},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.currentStation, \"timm\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},[_c('option',{attrs:{\"value\":\"\"}},[_vm._v(\"Please choose...\")]),_c('option',{attrs:{\"value\":\"beeper\"}},[_vm._v(\"Beeper-box\")]),_c('option',{attrs:{\"value\":\"GPS\"}},[_vm._v(\"GPS\")]),_c('option',{attrs:{\"value\":\"NTP\"}},[_vm._v(\"NTP\")]),_c('option',{attrs:{\"value\":\"radio\"}},[_vm._v(\"Radio broadcast\")]),_c('option',{attrs:{\"value\":\"other\"}},[_vm._v(\"Other\")])])])]),_c('div',{staticClass:\"float-left pl-2\"},[_c('span',{staticStyle:{\"font-size\":\"12px\"},attrs:{\"nowrap\":\"\"}},[_vm._v(\"Show site to others:\")]),_c('div',{staticClass:\"align-bottom\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.currentStation.loc),expression:\"currentStation.loc\"}],staticClass:\"edit\",attrs:{\"id\":\"locDisplay\",\"disabled\":_vm.showLoader},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.currentStation, \"loc\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},[_c('option',{attrs:{\"value\":\"\"}},[_vm._v(\"Please choose...\")]),_c('option',{attrs:{\"value\":\"1\"}},[_vm._v(\"Exact location\")]),_c('option',{attrs:{\"value\":\"2\"}},[_vm._v(\"Exact chord (no location)\")]),_c('option',{attrs:{\"value\":\"0\"}},[_vm._v(\"Inexact chord (1 km privacy)\")])])])]),_c('div',{staticClass:\"float-left pl-2\"},[_c('span',{staticStyle:{\"font-size\":\"12px\"},attrs:{\"nowrap\":\"\"}},[_vm._v(\"Comittment:\")]),_c('div',{staticClass:\"align-bottom\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.currentStation.cmt),expression:\"currentStation.cmt\"}],staticClass:\"edit\",attrs:{\"id\":\"obsCommitment\",\"disabled\":_vm.showLoader},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.currentStation, \"cmt\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},[_c('option',{attrs:{\"value\":\"\"}},[_vm._v(\"Please choose...\")]),_c('option',{attrs:{\"value\":\"0\"}},[_vm._v(\"High\")]),_c('option',{attrs:{\"value\":\"1\"}},[_vm._v(\"Medium\")]),_c('option',{attrs:{\"value\":\"2\"}},[_vm._v(\"Low or inexperienced\")])])])]),_c('div',{staticClass:\"pl-2 align-bottom\",staticStyle:{\"padding-top\":\"12px\"}},[_c('b-button',{staticClass:\"btn btn-primary mr-2\",staticStyle:{\"line-height\":\"normal\"},attrs:{\"disabled\":_vm.showLoader,\"variant\":\"primary\",\"size\":\"sm\"},on:{\"click\":_vm.onCancelClicked}},[_vm._v(\"Cancel\")]),_c('b-button',{staticClass:\"btn btn-primary mr-2\",staticStyle:{\"line-height\":\"normal\"},attrs:{\"disabled\":_vm.showLoader,\"variant\":\"primary\",\"size\":\"sm\"},on:{\"click\":_vm.onSubmitClicked}},[_vm._v(\"Submit\")]),(_vm.showLoader)?_c('b-spinner',{staticClass:\"justify-content-center mt-1\",staticStyle:{\"width\":\"1rem\",\"height\":\"1rem\"},attrs:{\"varient\":\"secondary\"}}):_vm._e()],1)])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ObservingSiteEditor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ObservingSiteEditor.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ObservingSiteEditor.vue?vue&type=template&id=32576fcd&\"\nimport script from \"./ObservingSiteEditor.vue?vue&type=script&lang=js&\"\nexport * from \"./ObservingSiteEditor.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.currentStation && _vm.isEditing)?_c('div',{staticClass:\"px-2 py-2\",staticStyle:{\"font-size\":\"12px\",\"border\":\"1px solid #676767\",\"background-color\":\"#6A6A48\"}},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"float-left pl-3\"},[_c('span',{staticStyle:{\"font-size\":\"12px\"},attrs:{\"nowrap\":\"\"}},[_vm._v(\"Site name:\")]),_c('div',{staticClass:\"align-middle\"},[_vm._v(_vm._s(_vm.currentStation.name))])]),_c('div',{staticClass:\"float-left pl-3\"},[_c('span',{staticStyle:{\"font-size\":\"12px\"},attrs:{\"nowrap\":\"\"}},[_vm._v(\"Report:\")]),_c('div',{staticClass:\"align-middle\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(this.report),expression:\"this.report\"}],staticClass:\"edit\",attrs:{\"id\":\"obsReport\",\"disabled\":_vm.showLoader},on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(this, \"report\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])},function($event){return _vm.repChanged($event)}]}},[_c('option',{attrs:{\"value\":\"0\"}},[_vm._v(\"Not Reported\")]),_c('option',{attrs:{\"value\":\"1\"}},[_vm._v(\"Report a miss\")]),_c('option',{attrs:{\"value\":\"2\"}},[_vm._v(\"Clouded out\")]),_c('option',{attrs:{\"value\":\"3\"}},[_vm._v(\"Failed to observe\")]),_c('option',{attrs:{\"value\":\"4\"}},[_vm._v(\"Report a positive\")]),_c('option',{attrs:{\"value\":\"5\"}},[_vm._v(\"No observation\")]),_c('option',{attrs:{\"value\":\"6\"}},[_vm._v(\"Observed - report to follow\")])])])]),(this.report == '4')?_c('div',{staticClass:\"float-left pl-2\"},[_c('span',{staticStyle:{\"font-size\":\"12px\"},attrs:{\"nowrap\":\"\"}},[_vm._v(\"Duration (sec):\")]),_c('div',{staticClass:\"align-bottom\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.duration),expression:\"duration\"}],staticClass:\"edit\",staticStyle:{\"line-height\":\"normal\"},attrs:{\"id\":\"obsDur\",\"type\":\"text\",\"disabled\":_vm.showLoader},domProps:{\"value\":(_vm.duration)},on:{\"keypress\":function($event){return _vm.isNumber($event)},\"input\":function($event){if($event.target.composing){ return; }_vm.duration=$event.target.value}}})])]):_vm._e(),(this.fixedComment != '3')?_c('div',{staticClass:\"float-left pl-3\"},[_c('span',{staticStyle:{\"font-size\":\"12px\"},attrs:{\"nowrap\":\"\"}},[_vm._v(\"Comment (optional):\")]),_c('div',{staticClass:\"align-middle\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(this.fixedComment),expression:\"this.fixedComment\"}],staticClass:\"edit\",attrs:{\"id\":\"obsReport\",\"disabled\":_vm.showLoader},on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(this, \"fixedComment\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])},function($event){return _vm.fixedCommentChanged($event)}]}},[_c('option',{attrs:{\"value\":\"0\"}}),_c('option',{attrs:{\"value\":\"1\"}},[_vm._v(\"Clouded Out\")]),_c('option',{attrs:{\"value\":\"2\"}},[_vm._v(\"Technical Failure\")]),_c('option',{attrs:{\"value\":\"3\"}},[_vm._v(\"Provide Own Comment\")])])])]):_vm._e(),(this.fixedComment == '3')?_c('div',{staticClass:\"float-left pl-2\"},[_c('span',{staticStyle:{\"font-size\":\"12px\"},attrs:{\"nowrap\":\"\"}},[_vm._v(\"Comment (optional):\")]),_c('div',{staticClass:\"align-bottom\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.comment),expression:\"comment\"}],staticClass:\"edit\",staticStyle:{\"line-height\":\"normal\"},attrs:{\"id\":\"obsComment\",\"type\":\"text\",\"disabled\":_vm.showLoader},domProps:{\"value\":(_vm.comment)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.comment=$event.target.value}}})])]):_vm._e(),_c('div',{staticClass:\"pl-2 align-bottom\",staticStyle:{\"padding-top\":\"12px\"}},[_c('b-button',{staticClass:\"btn btn-primary mr-2\",staticStyle:{\"line-height\":\"normal\"},attrs:{\"disabled\":_vm.showLoader,\"variant\":\"primary\",\"size\":\"sm\"},on:{\"click\":_vm.onCancelClicked}},[_vm._v(\"Cancel\")]),_c('b-button',{staticClass:\"btn btn-primary mr-2\",staticStyle:{\"line-height\":\"normal\"},attrs:{\"disabled\":_vm.showLoader || !_vm.isReported,\"variant\":\"primary\",\"size\":\"sm\"},on:{\"click\":_vm.onSubmitClicked}},[_vm._v(\"Submit Report\")]),(_vm.showLoader)?_c('b-spinner',{staticClass:\"justify-content-center mt-1\",staticStyle:{\"width\":\"1rem\",\"height\":\"1rem\"},attrs:{\"varient\":\"secondary\"}}):_vm._e()],1)])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ObservationReportEditor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ObservationReportEditor.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ObservationReportEditor.vue?vue&type=template&id=267747bc&\"\nimport script from \"./ObservationReportEditor.vue?vue&type=script&lang=js&\"\nexport * from \"./ObservationReportEditor.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EventGoogleMap.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EventGoogleMap.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EventGoogleMap.vue?vue&type=template&id=1891ad00&scoped=true&\"\nimport script from \"./EventGoogleMap.vue?vue&type=script&lang=js&\"\nexport * from \"./EventGoogleMap.vue?vue&type=script&lang=js&\"\nimport style0 from \"./EventGoogleMap.vue?vue&type=style&index=0&id=1891ad00&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1891ad00\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mb-1 row\"},[_c('div',{staticClass:\"col-md-12 col-12\"},[_c('small',{staticClass:\"pr-2\"},[_vm._v(\"Change prediction: \")]),_c('select',{staticClass:\"small\",on:{\"change\":function($event){return _vm.predictionChanged($event)}}},_vm._l((_vm.preds),function(pred){return _c('option',{key:pred.id,domProps:{\"value\":pred,\"selected\":pred.sel}},[_vm._v(\" \"+_vm._s(pred.default ? '[default] ' : '')+_vm._s(!pred.default & pred.preferred ? '[preferred] ' : '')+_vm._s(pred.orbSrc)+_vm._s(pred.orbSrc ? '/' : '')+_vm._s(pred.starSrc)+_vm._s(pred.orbSrc || pred.starSrc ? ', ' : '')+\"last upd: \"+_vm._s(_vm._f(\"formatDayHourMinuteOrDayOnly\")(pred.updated))+\" by \"+_vm._s(pred.user)),(pred.orbDate)?_c('span',[_vm._v(\", orbit date: \"+_vm._s(_vm._f(\"formatDate\")(pred.orbDate)))]):_vm._e(),_c('OrbitSolutionInfo',{attrs:{\"orbSlnId\":pred.orbSlnId}})],1)}),0)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChangePredictionDropdown.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChangePredictionDropdown.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ChangePredictionDropdown.vue?vue&type=template&id=74174fe1&scoped=true&\"\nimport script from \"./ChangePredictionDropdown.vue?vue&type=script&lang=js&\"\nexport * from \"./ChangePredictionDropdown.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ChangePredictionDropdown.vue?vue&type=style&index=0&id=74174fe1&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"74174fe1\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{class:_vm.themeBackground},[(_vm.ell)?_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":((-1 * (_vm.panelWidth / 2)) + \" \" + (-1 * (_vm.panelWidth / 2)) + \" \" + _vm.panelWidth + \" \" + _vm.panelWidth)}},[_c('line',{staticClass:\"axis\",attrs:{\"x1\":-0.95 * (_vm.panelWidth / 2),\"y1\":\"0\",\"x2\":0.95 * (_vm.panelWidth / 2),\"y2\":\"0\"}}),_c('line',{staticClass:\"axis\",attrs:{\"x1\":\"0\",\"y1\":-0.95 * (_vm.panelWidth / 2),\"x2\":\"0\",\"y2\":0.95 * (_vm.panelWidth / 2)}}),_c('ellipse',{class:_vm.cls,attrs:{\"cx\":\"0\",\"cy\":\"0\",\"rx\":_vm.ell.rx,\"ry\":_vm.ell.ry,\"transform\":(\"rotate(\" + (-1 * _vm.ell.pa.toFixed(2)) + \" 0 0)\")}}),_vm._l((_vm.ell.masTicks),function(masTick){return [(masTick < 0.95 * (_vm.panelWidth / 2) - 10)?_c('line',{key:(\"a\" + masTick),staticClass:\"axis\",attrs:{\"x1\":masTick,\"y1\":\"-2\",\"x2\":masTick,\"y2\":\"2\"}}):_vm._e(),(masTick > -0.95 * (_vm.panelWidth / 2) + 10)?_c('line',{key:(\"d\" + masTick),staticClass:\"axis\",attrs:{\"y1\":masTick,\"x1\":\"-2\",\"y2\":masTick,\"x2\":\"2\"}}):_vm._e()]}),_c('polygon',{staticClass:\"pointer\",attrs:{\"points\":(\"-2.5,\" + (-0.95 * (_vm.panelWidth / 2) + 7) + \" 0,\" + (-0.95 * (_vm.panelWidth / 2)) + \" 2.5,\" + (-0.95 * (_vm.panelWidth / 2) + 7))}}),_c('polygon',{staticClass:\"pointer\",attrs:{\"points\":((0.95 * (_vm.panelWidth / 2) - 7) + \",-2.5 \" + (0.95 * (_vm.panelWidth / 2)) + \",0 \" + (0.95 * (_vm.panelWidth / 2) - 7) + \",2.5\")}}),_c('text',{attrs:{\"x\":\"10\",\"y\":-0.8 * (_vm.panelWidth / 2),\"fill\":\"white\",\"font-size\":\"large\"}},[_vm._v(\"δ\")]),_c('text',{attrs:{\"x\":0.8 * (_vm.panelWidth / 2),\"y\":\"-10\",\"fill\":\"white\",\"font-size\":\"large\"}},[_vm._v(\"α\")]),_c('pattern',{attrs:{\"id\":\"diagonalHatch\",\"patternUnits\":\"userSpaceOnUse\",\"width\":\"4\",\"height\":\"4\"}},[_c('path',{staticStyle:{\"stroke\":\"rgb(180,180,180)\",\"stroke-width\":\"2\"},attrs:{\"d\":\"M-1,1 l2,-2\\n M0,4 l4,-4\\n M3,5 l2,-2\"}})]),(_vm.ell.plotScale)?[_c('rect',{attrs:{\"x\":-_vm.panelWidth/2 + 5,\"y\":_vm.panelWidth/2 - 15,\"width\":_vm.ell.plotScale.width,\"height\":\"8\",\"fill\":\"url(#diagonalHatch)\"}}),_c('text',{attrs:{\"x\":-_vm.panelWidth/2 + 5,\"y\":_vm.panelWidth/2 - 22,\"fill\":\"white\",\"font-size\":\"small\"}},[_vm._v(_vm._s(_vm.ell.plotScale.mas)+\" mas\")])]:_vm._e()],2):_vm._e()]),_c('small',[_vm._v(_vm._s(this.$props.title))]),_c('div',[_c('small',[_vm._v(\"(\"+_vm._s(_vm._f(\"formatFixedOrPrecision2\")(this.err.maj))+\" x \"+_vm._s(_vm._f(\"formatFixedOrPrecision2\")(this.err.min))+\") mas @ \"+_vm._s(_vm._f(\"formatAngle0t0180\")(this.err.pa))+\"°\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ErrorEllipses.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ErrorEllipses.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ErrorEllipses.vue?vue&type=template&id=762604ba&scoped=true&\"\nimport script from \"./ErrorEllipses.vue?vue&type=script&lang=js&\"\nexport * from \"./ErrorEllipses.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ErrorEllipses.vue?vue&type=style&index=0&id=762604ba&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"762604ba\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EventPrediction.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EventPrediction.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EventPrediction.vue?vue&type=template&id=3f35b896&scoped=true&\"\nimport script from \"./EventPrediction.vue?vue&type=script&lang=js&\"\nexport * from \"./EventPrediction.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3f35b896\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"mt-2\"},[_c('b-tabs',{attrs:{\"content-class\":\"mt-3\"}},[_c('b-tab',{attrs:{\"title\":\"Search by Object\",\"active\":\"\"}},[_c('SearchByObject')],1),_c('b-tab',{attrs:{\"title\":\"Search by Star\"}},[_c('SearchByStar')],1),_c('b-tab',{attrs:{\"title\":\"Search Past Events\"}},[_c('SearchPastEvents')],1)],1)],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"row pt-2 mt-3 \",class:{ 'grayout': _vm.showLoader }},[_c('div',{staticClass:\"col-xl-2 col-lg-3 col-md-3\"},[_c('label',{attrs:{\"for\":\"asteroidNumber\"}},[_vm._v(\"Object Id\")]),_c('span',{staticClass:\"text-muted\",staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":function($event){_vm.showObjectIdHint = !_vm.showObjectIdHint}}},[_c('small',[_c('strong',{staticClass:\"text-light\"},[_vm._v(\" ( \")]),_c('i',{staticClass:\"fa pr-1 fa-question-circle\"}),_c('span',{staticClass:\"pr-1\",style:(_vm.showObjectIdHint ? 'color: #cccccc;' : '')},[_vm._v(\"Help\")]),(_vm.showObjectIdHint)?_c('i',{staticClass:\"fa pr-1 fa-chevron-up\"}):_vm._e(),(!_vm.showObjectIdHint)?_c('i',{staticClass:\"fa pr-1 fa-chevron-down\"}):_vm._e(),_c('strong',{staticClass:\"text-light\"},[_vm._v(\")\")])])]),_c('b-popover',{attrs:{\"variant\":\"secondary\",\"target\":\"objectId\",\"triggers\":\"\",\"placement\":\"left\",\"show\":_vm.showObjectIdHint},on:{\"update:show\":function($event){_vm.showObjectIdHint=$event}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\"Supported Object Id Formats \"),_c('a',{staticClass:\"pl-2\",on:{\"click\":function($event){_vm.showObjectIdHint = false}}},[_c('i',{staticClass:\"fa pr-1 fa-close\"})])]},proxy:true}])},[_c('strong',[_vm._v(\"Asteroid Number\")]),_vm._v(\": 17237 \"),_c('br'),_c('strong',[_vm._v(\"Unnumbered Asteroid\")]),_vm._v(\": 2015 BZ518 \"),_c('br'),_c('strong',[_vm._v(\"Periodic Comet\")]),_vm._v(\": 252P\"),_c('br'),_c('strong',[_vm._v(\"Provisional Comet\")]),_vm._v(\": C/2017 Y2\"),_c('br'),_c('strong',[_vm._v(\"Interstellar Object\")]),_vm._v(\":2I\"),_c('br'),_c('strong',[_vm._v(\"Planetary Moon\")]),_vm._v(\": P6M14\"),_c('br')]),_c('input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({required: true, regex: /^(\\d+(P|I)?|P\\dM\\d+|((P|C|A)\\/)?\\d{4}\\s[\\w\\d]+)$/i }),expression:\"{required: true, regex: /^(\\\\d+(P|I)?|P\\\\dM\\\\d+|((P|C|A)\\\\/)?\\\\d{4}\\\\s[\\\\w\\\\d]+)$/i }\"},{name:\"model\",rawName:\"v-model\",value:(_vm.form.objectId),expression:\"form.objectId\"}],staticClass:\"form-control mb-3\",attrs:{\"disabled\":_vm.showLoader,\"id\":\"objectId\",\"name\":\"objectId\"},domProps:{\"value\":(_vm.form.objectId)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.form, \"objectId\", $event.target.value)}}}),(_vm.validated)?_c('div',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('objectId'))+\" \")]):_vm._e()],1),_c('div',{staticClass:\"col-xl-3 col-lg-3 col-md-3\"},[_c('label',{attrs:{\"for\":\"eventDate\"}},[_vm._v(\"Event Date\")]),_c('b-input-group',{staticClass:\"mb-3\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form.eventDateFormatted),expression:\"form.eventDateFormatted\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"disabled\":_vm.showLoader,\"autocomplete\":\"off\",\"id\":\"eventDate\",\"name\":\"eventDate\"},domProps:{\"value\":(_vm.form.eventDateFormatted)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.form, \"eventDateFormatted\", $event.target.value)}}}),_c('b-input-group-append',[_c('b-form-datepicker',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({required: true}),expression:\"{required: true}\"}],attrs:{\"data-vv-name\":\"eventDatePicker\",\"button-only\":\"\",\"right\":\"\",\"locale\":\"en-AU\",\"aria-controls\":\"example-input\",\"date-format-options\":{ year: 'numeric', month: 'short', day: '2-digit'}},on:{\"context\":_vm.onDatePick},model:{value:(_vm.form.eventDate),callback:function ($$v) {_vm.$set(_vm.form, \"eventDate\", $$v)},expression:\"form.eventDate\"}})],1)],1),(_vm.validated)?_c('div',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('eventDatePicker'))+\" \")]):_vm._e()],1),_c('div',{staticClass:\"col-xl-2 col-lg-3 col-md-4\"},[_c('label',{attrs:{\"for\":\"bufferDays\"}},[_vm._v(\"Buffer (days)\")]),_c('b-button-toolbar',{attrs:{\"key-nav\":\"\"}},[_c('b-button-group',[_c('b-button',{ref:\"d0\",staticStyle:{\"margin-right\":\"1px\"},attrs:{\"selected\":this.form.bufferDays === 0},on:{\"click\":function($event){return _vm.setBuffer(0)}}},[_vm._v(\"0\")]),_c('b-button',{ref:\"d1\",staticStyle:{\"margin-right\":\"1px\"},attrs:{\"selected\":this.form.bufferDays === 1},on:{\"click\":function($event){return _vm.setBuffer(1)}}},[_vm._v(\"±1\")]),_c('b-button',{ref:\"d2\",staticStyle:{\"margin-right\":\"1px\"},attrs:{\"selected\":this.form.bufferDays === 3},on:{\"click\":function($event){return _vm.setBuffer(3)}}},[_vm._v(\"±3\")]),_c('b-button',{ref:\"d7\",attrs:{\"selected\":this.form.bufferDays === 7},on:{\"click\":function($event){return _vm.setBuffer(7)}}},[_vm._v(\"±7\")])],1)],1)],1),_c('div',{staticClass:\"col-xl-2 col-lg-2 col-md-2\"},[_c('label',{attrs:{\"for\":\"searchEvents\"}}),_c('button',{staticClass:\"btn btn-primary align-self-end btn-block mt-2\",attrs:{\"type\":\"button\",\"disabled\":_vm.showLoader},on:{\"click\":_vm.onSearchEvents}},[_vm._v(\"Search\")])]),_c('div',{staticClass:\"col-xl-2 col-lg-3 col-md-3\"},[_c('label',{attrs:{\"for\":\"taggedOnly\"}}),_c('div',{staticClass:\"non-tab-top-align\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form.taggedOnly),expression:\"form.taggedOnly\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.form.taggedOnly)?_vm._i(_vm.form.taggedOnly,null)>-1:(_vm.form.taggedOnly)},on:{\"change\":function($event){var $$a=_vm.form.taggedOnly,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.form, \"taggedOnly\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.form, \"taggedOnly\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.form, \"taggedOnly\", $$c)}}}}),_c('label',{staticClass:\"mx-2\",attrs:{\"for\":\"taggedOnly\"}},[_vm._v(\"Tagged Only\")])])])]),_c('div',{staticClass:\"row mb-4\"},[_c('div',{staticClass:\"col-12\"},[(!_vm.totalEventsInfo)?_c('b-spinner',{staticClass:\"justify-content-center\",staticStyle:{\"width\":\"1rem\",\"height\":\"1rem\"},attrs:{\"type\":\"grow\",\"varient\":\"secondary\"}}):_vm._e(),(_vm.totalEventsInfo)?_c('span',{staticClass:\"text-muted\"},[_c('small',[_vm._v(\"Searching \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm._f(\"numberWithGroupSeparators\")(_vm.totalEventsInfo.totTE)))]),_vm._v(\" events from \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm._f(\"formatDayMonth\")(_vm.totalEventsInfo.fromDate)))]),_vm._v(\" to \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm._f(\"formatDayMonth\")(_vm.totalEventsInfo.toDate)))]),_vm._v(\", last updated on \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm._f(\"formatDate\")(_vm.totalEventsInfo.updated)))]),_vm._v(\" at \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm._f(\"formatHourMinute\")(_vm.totalEventsInfo.updated))+\" UT\")])])]):_vm._e()],1)]),_c('div',{staticClass:\"row pt-2 mt-3\"},[_c('div',{staticClass:\"col-12 justify-content-center\"},[((_vm.submitted || _vm.foundEventsList) && !_vm.showLoader)?_c('div',{staticClass:\"table-responsive-md\"},[_c('table',{staticClass:\"table table-dark table-bordered table-hover\"},[_c('thead',{staticClass:\"thead-dark text-center\"},[_c('tr',[_c('td',[_vm._v(\"Closest Approach, UT\")]),_c('td',[_vm._v(_vm._s(this.objectClass))]),_c('td',[_vm._v(\"Star\")]),_c('td',[_vm._v(\"Mag\")]),_c('td',[_vm._v(\"Mag Drop\")]),_c('td',[_vm._v(\"Max Dur.\")]),_c('td',[_vm._v(\"Rank\")])])]),_c('tbody',_vm._l((_vm.foundEventsList),function(evt){return _c('tr',{key:evt.id,staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":function($event){return _vm.openEvent(evt)}}},[_c('td',[_vm._v(_vm._s(evt.time)+\" \"),(evt.tags)?_c('TagList',{attrs:{\"tags\":evt.tags}}):_vm._e()],1),_c('td',[_vm._v(_vm._s(evt.asteroid))]),_c('td',[_vm._v(_vm._s(evt.star))]),_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm._f(\"formatMag\")(evt.mag)))]),_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm._f(\"formatMag\")(evt.magDrop)))]),_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm._f(\"formatMag\")(evt.maxDur)))]),_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s(evt.rank))])])}),0)]),(_vm.submitted && _vm.foundEventsList)?_c('div',{staticClass:\"text-muted pt-2\"},[_c('small',[_vm._v(\"Found \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm.foundEventsList.length))]),_vm._v(\" event\"+_vm._s(_vm.foundEventsList.length > 1 ? 's' : '')+\" in \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm.msElapsed / 1000))]),_vm._v(\" sec\")])]):_vm._e()]):_vm._e(),_c('div',{staticClass:\"text-center\"},[(_vm.showLoader)?_c('b-spinner',{staticClass:\"justify-content-center mt-3\",staticStyle:{\"width\":\"3rem\",\"height\":\"3rem\"},attrs:{\"varient\":\"secondary\"}}):_vm._e(),(_vm.showLoader)?_c('div',{staticClass:\"text-muted pt-4\"},[_vm._v(\"This search may take several seconds...\")]):_vm._e(),(_vm.foundEventsList && _vm.foundEventsList.length < 1 && _vm.submitted && !_vm.showLoader)?_c('h5',{staticClass:\"text-danger\"},[_vm._v(\"No events found\")]):_vm._e()],1)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchByObject.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchByObject.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SearchByObject.vue?vue&type=template&id=517dc798&scoped=true&\"\nimport script from \"./SearchByObject.vue?vue&type=script&lang=js&\"\nexport * from \"./SearchByObject.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SearchByObject.vue?vue&type=style&index=0&id=517dc798&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"517dc798\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"row pt-2 mt-3\",class:{ 'grayout': _vm.showLoader }},[_c('div',{staticClass:\"col-xl-2 col-lg-2 col-md-3 non-tab-top-align\"},[_c('label',{attrs:{\"for\":\"objectId2\"}},[_vm._v(\"Object Id\")]),_c('span',{staticClass:\"text-muted\",staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":function($event){_vm.showObjectIdHint = !_vm.showObjectIdHint}}},[_c('small',[_c('strong',{staticClass:\"text-light\"},[_vm._v(\" ( \")]),_c('i',{staticClass:\"fa pr-1 fa-question-circle\"}),_c('span',{staticClass:\"pr-1\",style:(_vm.showObjectIdHint ? 'color: #cccccc;' : '')},[_vm._v(\"Help\")]),(_vm.showObjectIdHint)?_c('i',{staticClass:\"fa pr-1 fa-chevron-up\"}):_vm._e(),(!_vm.showObjectIdHint)?_c('i',{staticClass:\"fa pr-1 fa-chevron-down\"}):_vm._e(),_c('strong',{staticClass:\"text-light\"},[_vm._v(\")\")])])]),_c('b-popover',{attrs:{\"variant\":\"secondary\",\"target\":\"objectId2\",\"triggers\":\"\",\"placement\":\"left\",\"show\":_vm.showObjectIdHint},on:{\"update:show\":function($event){_vm.showObjectIdHint=$event}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\"Supported Object Id Formats \"),_c('a',{staticClass:\"pl-2\",on:{\"click\":function($event){_vm.showObjectIdHint = false}}},[_c('i',{staticClass:\"fa pr-1 fa-close\"})])]},proxy:true}])},[_c('strong',[_vm._v(\"Asteroid Number\")]),_vm._v(\": 17237 \"),_c('br'),_c('strong',[_vm._v(\"Unnumbered Asteroid\")]),_vm._v(\": 2015 BZ518 \"),_c('br'),_c('strong',[_vm._v(\"Periodic Comet\")]),_vm._v(\": 252P\"),_c('br'),_c('strong',[_vm._v(\"Provisional Comet\")]),_vm._v(\": C/2017 Y2\"),_c('br'),_c('strong',[_vm._v(\"Interstellar Object\")]),_vm._v(\":2I\"),_c('br'),_c('strong',[_vm._v(\"Planetary Moon\")]),_vm._v(\": P6M14\"),_c('br')]),_c('input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({required: false, regex: /^(\\d+(P|I)?|P\\dM\\d+|((P|C|A)\\/)?\\d{4}\\s[\\w\\d]+)$/i }),expression:\"{required: false, regex: /^(\\\\d+(P|I)?|P\\\\dM\\\\d+|((P|C|A)\\\\/)?\\\\d{4}\\\\s[\\\\w\\\\d]+)$/i }\"},{name:\"model\",rawName:\"v-model\",value:(_vm.form.objectId),expression:\"form.objectId\"}],staticClass:\"form-control mb-3\",attrs:{\"disabled\":_vm.showLoader,\"id\":\"objectId2\",\"name\":\"objectId2\"},domProps:{\"value\":(_vm.form.objectId)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.form, \"objectId\", $event.target.value)}}}),(_vm.validated)?_c('div',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('objectId2'))+\" \")]):_vm._e()],1),_c('div',{staticClass:\"col-xl-3 col-lg-3 col-md-3 non-tab-top-align\"},[_c('label',{attrs:{\"for\":\"eventDate\"}},[_vm._v(\"Event Date\")]),_c('b-input-group',{staticClass:\"mb-3\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form.eventDateFormatted),expression:\"form.eventDateFormatted\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"disabled\":_vm.showLoader,\"autocomplete\":\"off\",\"id\":\"eventDate\",\"name\":\"eventDate\"},domProps:{\"value\":(_vm.form.eventDateFormatted)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.form, \"eventDateFormatted\", $event.target.value)}}}),_c('b-input-group-append',[_c('b-form-datepicker',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({required: false}),expression:\"{required: false}\"}],attrs:{\"data-vv-name\":\"eventDatePicker\",\"button-only\":\"\",\"right\":\"\",\"locale\":\"en-AU\",\"aria-controls\":\"example-input\",\"date-format-options\":{ year: 'numeric', month: 'short', day: '2-digit'}},on:{\"context\":_vm.onDatePick},model:{value:(_vm.form.eventDate),callback:function ($$v) {_vm.$set(_vm.form, \"eventDate\", $$v)},expression:\"form.eventDate\"}})],1)],1),(_vm.validated)?_c('div',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('eventDatePicker'))+\" \")]):_vm._e()],1),_c('div',{staticClass:\"col-xl-3 col-lg-3 col-md-3\"},[_c('b-tabs',{attrs:{\"content-class\":\"mt-1\"},model:{value:(_vm.tabIndex),callback:function ($$v) {_vm.tabIndex=$$v},expression:\"tabIndex\"}},[_c('b-tab',{attrs:{\"title\":\"Observer\",\"active\":\"\"}},[_c('input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({required: false }),expression:\"{required: false }\"},{name:\"model\",rawName:\"v-model\",value:(_vm.form.eventObserver),expression:\"form.eventObserver\"}],staticClass:\"form-control mb-3\",attrs:{\"disabled\":_vm.showLoader,\"id\":\"eventObserver\",\"title\":\"Optionally search by Observer or Tag\",\"name\":\"eventObserver\"},domProps:{\"value\":(_vm.form.eventObserver)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.form, \"eventObserver\", $event.target.value)}}}),(_vm.validated)?_c('div',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('eventObserver'))+\" \")]):_vm._e()]),_c('b-tab',{attrs:{\"title\":\"Tags\"}},[_c('TagPicker',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({required: false}),expression:\"{required: false}\"}],attrs:{\"data-vv-name\":\"Tags\",\"title\":'tags',\"loadedTags\":_vm.loadedTags,\"selectedTags\":_vm.form.eventTags},on:{\"pickedTagsChanged\":_vm.onTagsChanged},model:{value:(_vm.form.eventTags),callback:function ($$v) {_vm.$set(_vm.form, \"eventTags\", $$v)},expression:\"form.eventTags\"}}),(_vm.validated)?_c('div',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('Tags'))+\" \")]):_vm._e()],1)],1)],1),_c('div',{staticClass:\"col-xl-2 col-lg-3 col-md-3 non-tab-top-align\"},[_c('label',{attrs:{\"for\":\"limit\"}},[_vm._v(\"Max Results\")]),_c('b-button-toolbar',{attrs:{\"key-nav\":\"\"}},[_c('b-button-group',[_c('b-button',{ref:\"d0\",staticStyle:{\"margin-right\":\"1px\"},attrs:{\"selected\":this.form.limit === 10},on:{\"click\":function($event){return _vm.setMaxResults(10)}}},[_vm._v(\"10\")]),_c('b-button',{ref:\"d1\",staticStyle:{\"margin-right\":\"1px\"},attrs:{\"selected\":this.form.limit === 15},on:{\"click\":function($event){return _vm.setMaxResults(15)}}},[_vm._v(\"15\")]),_c('b-button',{ref:\"d2\",staticStyle:{\"margin-right\":\"1px\"},attrs:{\"selected\":this.form.limit === 20},on:{\"click\":function($event){return _vm.setMaxResults(20)}}},[_vm._v(\"20\")]),_c('b-button',{ref:\"d3\",attrs:{\"selected\":this.form.limit === 25},on:{\"click\":function($event){return _vm.setMaxResults(25)}}},[_vm._v(\"25\")])],1)],1)],1),_c('div',{staticClass:\"col-xl-2 col-lg-3 col-md-3 non-tab-top-align\"},[_c('label',{attrs:{\"for\":\"eventDate\"}}),_c('button',{staticClass:\"btn btn-primary align-self-end btn-block mt-2\",attrs:{\"type\":\"button\",\"disabled\":_vm.showLoader},on:{\"click\":_vm.onSearchEvents}},[_vm._v(\"Search\")])])]),_c('div',{staticClass:\"row mb-4\"},[_c('div',{staticClass:\"col-12\"},[(!_vm.totalEventsInfo)?_c('b-spinner',{staticClass:\"justify-content-center\",staticStyle:{\"width\":\"1rem\",\"height\":\"1rem\"},attrs:{\"type\":\"grow\",\"varient\":\"secondary\"}}):_vm._e(),(_vm.totalEventsInfo)?_c('span',{staticClass:\"text-muted\"},[_c('small',[_vm._v(\"Searching \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm._f(\"numberWithGroupSeparators\")(_vm.totalEventsInfo.totPE)))]),_vm._v(\" past tagged events, of which \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm._f(\"numberWithGroupSeparators\")(_vm.totalEventsInfo.totPPE)))]),_vm._v(\" had planned observations\")])]):_vm._e()],1)]),_c('div',{staticClass:\"row pt-2 mt-3\"},[_c('div',{staticClass:\"col-12 justify-content-center\"},[((_vm.submitted || _vm.foundEventsList) && !_vm.showLoader)?_c('div',{staticClass:\"table-responsive-md\"},[_c('table',{staticClass:\"table table-dark table-bordered table-hover\"},[_vm._m(0),_c('tbody',_vm._l((_vm.foundEventsList),function(evt){return _c('tr',{key:evt.id,staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":function($event){return _vm.openEvent(evt)}}},[_c('td',[_vm._v(_vm._s(evt.time)+\" \"),(evt.tags)?_c('TagList',{attrs:{\"tags\":evt.tags}}):_vm._e()],1),_c('td',[_vm._v(_vm._s(evt.asteroid))]),_c('td',[_vm._v(_vm._s(evt.star))]),_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm._f(\"formatMag\")(evt.mag)))]),(evt.stSmry)?_c('td',{staticClass:\"text-center\"},[(evt.stSmry.pos > 0)?_c('span',[_c('canvas',{staticClass:\"mr-1 hit\",attrs:{\"width\":\"10\",\"height\":\"10\",\"title\":\"Positive Detections\"}}),_vm._v(_vm._s(evt.stSmry.pos)+\" \")]):_vm._e(),(evt.stSmry.neg > 0)?_c('span',[_c('canvas',{staticClass:\"ml-2 mr-1 miss\",attrs:{\"width\":\"10\",\"height\":\"10\",\"title\":\"Negative\"}}),_vm._v(_vm._s(evt.stSmry.neg)+\" \")]):_vm._e(),(evt.stSmry.noobs + evt.stSmry.norep > 0)?_c('span',[_c('canvas',{staticClass:\"ml-2 mr-1 norep\",attrs:{\"width\":\"10\",\"height\":\"10\",\"title\":\"Not Reported/Not Observed\"}}),_vm._v(_vm._s(evt.stSmry.noobs + evt.stSmry.norep)+\" \")]):_vm._e()]):_vm._e(),(!evt.stSmry)?_c('td',{staticClass:\"text-center\"}):_vm._e()])}),0)]),(_vm.submitted)?_c('div',{staticClass:\"text-muted pt-2\"},[_c('small',[_vm._v(\"Found \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm.foundEventsList.length))]),_vm._v(\" event\"+_vm._s(_vm.foundEventsList.length > 1 ? 's' : '')+\" in \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm.msElapsed / 1000))]),_vm._v(\" sec\")])]):_vm._e()]):_vm._e(),_c('div',{staticClass:\"text-center\"},[(_vm.showLoader)?_c('b-spinner',{staticClass:\"justify-content-center mt-3\",staticStyle:{\"width\":\"3rem\",\"height\":\"3rem\"},attrs:{\"varient\":\"secondary\"}}):_vm._e(),(_vm.showLoader)?_c('div',{staticClass:\"text-muted pt-4\"},[_vm._v(\"This search may take a few seconds...\")]):_vm._e(),(_vm.foundEventsList && _vm.foundEventsList.length < 1 && _vm.submitted && !_vm.showLoader)?_c('h5',{staticClass:\"text-danger\"},[_vm._v(\"No events found\")]):_vm._e()],1)])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',{staticClass:\"thead-dark text-center\"},[_c('tr',[_c('td',[_vm._v(\"Closest Approach, UT\")]),_c('td',[_vm._v(\"Asteroid\")]),_c('td',[_vm._v(\"Star\")]),_c('td',[_vm._v(\"Mag\")]),_c('td',[_vm._v(\"Stations\")])])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-form-tags',{staticClass:\"mb-2\",attrs:{\"id\":\"tags-with-dropdown\",\"no-outer-focus\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar tags = ref.tags;\nvar disabled = ref.disabled;\nvar addTag = ref.addTag;\nvar removeTag = ref.removeTag;\nreturn [(tags.length > 0)?_c('ul',{staticClass:\"list-inline d-inline-block mb-2\"},_vm._l((tags),function(tag){return _c('li',{key:tag,staticClass:\"list-inline-item\"},[_c('b-form-tag',{attrs:{\"title\":tag,\"disabled\":disabled,\"variant\":\"info\"},on:{\"remove\":function($event){return removeTag(tag)}}},[_vm._v(_vm._s(tag))])],1)}),0):_vm._e(),_c('b-dropdown',{attrs:{\"size\":\"sm\",\"variant\":\"outline-secondary\",\"block\":\"\",\"menu-class\":\"w-100\"},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_vm._v(\" Choose \"+_vm._s(_vm.alias)+\" \")]},proxy:true}],null,true)},[_c('b-dropdown-form',{on:{\"submit\":function($event){$event.stopPropagation();$event.preventDefault();return (function () {})($event)}}},[_c('b-form-group',{staticClass:\"mb-0\",attrs:{\"label\":(\"Search \" + _vm.alias),\"label-for\":\"tag-search-input\",\"label-cols-md\":\"auto\",\"label-size\":\"sm\",\"description\":_vm.searchDesc,\"disabled\":disabled}},[_c('b-form-input',{attrs:{\"id\":\"tag-search-input\",\"type\":\"search\",\"size\":\"sm\",\"autocomplete\":\"off\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1)],1),_c('b-dropdown-divider'),_vm._l((_vm.availableOptions),function(option){return _c('b-dropdown-item-button',{key:option,on:{\"click\":function($event){return _vm.onOptionClick({ option: option, addTag: addTag })}}},[_vm._v(\" \"+_vm._s(option)+\" \")])}),(_vm.availableOptions.length === 0)?_c('b-dropdown-text',[_vm._v(\" There are no \"+_vm._s(_vm.alias)+\" available to select \")]):_vm._e()],2)]}}]),model:{value:(_vm.pickedTags),callback:function ($$v) {_vm.pickedTags=$$v},expression:\"pickedTags\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TagPicker.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TagPicker.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TagPicker.vue?vue&type=template&id=4eb4b4ee&scoped=true&\"\nimport script from \"./TagPicker.vue?vue&type=script&lang=js&\"\nexport * from \"./TagPicker.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4eb4b4ee\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchPastEvents.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchPastEvents.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SearchPastEvents.vue?vue&type=template&id=3b5956a5&scoped=true&\"\nimport script from \"./SearchPastEvents.vue?vue&type=script&lang=js&\"\nexport * from \"./SearchPastEvents.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SearchPastEvents.vue?vue&type=style&index=0&id=3b5956a5&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3b5956a5\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"row pt-2 mt-3\",class:{ 'grayout': _vm.showLoader }},[_c('div',{staticClass:\"col-xl-3 col-lg-4 col-md-4\"},[_vm._m(0),_c('input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({required: true}),expression:\"{required: true}\"},{name:\"model\",rawName:\"v-model\",value:(_vm.form.starIdentifier),expression:\"form.starIdentifier\"}],staticClass:\"form-control mb-3\",attrs:{\"disabled\":_vm.showLoader,\"id\":\"starDesignation\",\"name\":\"starIdentifier\"},domProps:{\"value\":(_vm.form.starIdentifier)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.form, \"starIdentifier\", $event.target.value)}}}),(_vm.validated)?_c('div',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('starIdentifier'))+\" \")]):_vm._e()]),_c('div',{staticClass:\"col-xl-2 col-lg-3 col-md-3\"},[_c('label',{attrs:{\"for\":\"eventDate\"}}),_c('button',{staticClass:\"btn btn-primary align-self-end btn-block mt-2\",attrs:{\"type\":\"button\",\"disabled\":_vm.showLoader},on:{\"click\":_vm.onResolveStar}},[_vm._v(\"Resolve Star\")])])]),_c('div',{staticClass:\"row mb-4\"},[_c('div',{staticClass:\"col-12\"},[(!_vm.totalEventsInfo)?_c('b-spinner',{staticClass:\"justify-content-center\",staticStyle:{\"width\":\"1rem\",\"height\":\"1rem\"},attrs:{\"type\":\"grow\",\"varient\":\"secondary\"}}):_vm._e(),(_vm.totalEventsInfo)?_c('span',{staticClass:\"text-muted\"},[_c('small',[_vm._v(\"Searching \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm._f(\"numberWithGroupSeparators\")(_vm.totalEventsInfo.totTE)))]),_vm._v(\" events from \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm._f(\"formatDayMonth\")(_vm.totalEventsInfo.fromDate)))]),_vm._v(\" to \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm._f(\"formatDayMonth\")(_vm.totalEventsInfo.toDate)))]),_vm._v(\", last updated on \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm._f(\"formatDate\")(_vm.totalEventsInfo.updated)))]),_vm._v(\" at \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm._f(\"formatHourMinute\")(_vm.totalEventsInfo.updated))+\" UT\")])])]):_vm._e()],1)]),(_vm.resolvedStar)?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-6 col-12\"},[_c('div',[_c('span',{staticClass:\"pr-2\"},[_vm._v(\"Resolved Star:\")]),_c('a',{attrs:{\"href\":(\"http://vizier.u-strasbg.fr/viz-bin/VizieR-S?\" + (_vm.resolvedStar.name)),\"title\":\"Open in VizierR\",\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.resolvedStar.name))]),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"|\")]),_c('StarLink',{staticClass:\"pl-2\",attrs:{\"gaiaStar\":_vm.resolvedStar}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"|\")]),_c('a',{staticClass:\"pl-2\",attrs:{\"href\":(\"/aladinViewer.html?starId=\" + (_vm.resolvedStar.name) + \"&fov=0.02&catalogue=1&ra=\" + (_vm.resolvedStar.ra) + \"&de=\" + (_vm.resolvedStar.de)),\"target\":\"_blank\",\"title\":\"AladinLite image with GaiaEDR3 overlay and marked 4\\\" and 8\\\" apertures\"}},[_vm._v(\" Aladin DSS \")])],1),_c('div',[_c('small',[_c('span',{staticClass:\"text-muted\"},[_vm._v(\"RA [ICRS]:\")]),_vm._v(\" \"),_c('RaValue',{attrs:{\"val\":_vm.resolvedStar.ra / 15}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"|\")]),_c('span',{staticClass:\"text-muted pl-2\"},[_vm._v(\"Dec [ICRS]:\")]),_vm._v(\" \"),_c('DecValue',{attrs:{\"val\":_vm.resolvedStar.de}}),(this.resolvedStarSearchId != _vm.resolvedStar.name)?_c('span',[_c('span',{staticClass:\"pl-2\"},[_vm._v(\"|\")]),_c('span',{staticClass:\"pl-2\"},[_vm._v(_vm._s(this.resolvedStarSearchId))])]):_vm._e()],1)])]),_c('div',{staticClass:\"col-xl-2 col-lg-2 col-md-3 col-3 pull-left\"},[_c('button',{staticClass:\"btn btn-primary btn-block mt-2 pull-left\",attrs:{\"type\":\"button\",\"disabled\":_vm.showLoader},on:{\"click\":_vm.onSearchEvents}},[_vm._v(\"Search Events\")])])]):_vm._e(),_c('div',{staticClass:\"row mt-3\"},[_c('div',{staticClass:\"col-12 justify-content-center\"},[((_vm.submitted || (_vm.foundEventsList && _vm.foundEventsList.length > 0)) && !_vm.showLoader)?_c('div',{staticClass:\"table-responsive-md\"},[_c('table',{staticClass:\"table table-dark table-bordered table-hover\"},[_vm._m(1),_c('tbody',_vm._l((_vm.foundEventsList),function(evt){return _c('tr',{key:evt.id,staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":function($event){return _vm.openEvent(evt)}}},[_c('td',[_vm._v(_vm._s(evt.time)+\" \"),(evt.tags)?_c('TagList',{attrs:{\"tags\":evt.tags}}):_vm._e()],1),_c('td',[_vm._v(_vm._s(evt.asteroid))]),_c('td',[_vm._v(_vm._s(evt.star))]),_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm._f(\"formatMag\")(evt.mag)))]),_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm._f(\"formatMag\")(evt.magDrop)))]),_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm._f(\"formatMag\")(evt.maxDur)))]),_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s(evt.rank))])])}),0)]),(_vm.submitted && _vm.foundEventsList)?_c('div',{staticClass:\"text-muted pt-2\"},[_c('small',[_vm._v(\"Found \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm.foundEventsList.length))]),_vm._v(\" event\"+_vm._s(_vm.foundEventsList.length > 1 ? 's' : '')+\" in \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm.msElapsed / 1000))]),_vm._v(\" sec\")])]):_vm._e()]):_vm._e()])]),_c('div',{staticClass:\"row mt-4\"},[_c('div',{staticClass:\"col-12 justify-content-center\"},[_c('div',{staticClass:\"text-center\"},[(_vm.showLoader)?_c('b-spinner',{staticClass:\"justify-content-center mt-3\",staticStyle:{\"width\":\"3rem\",\"height\":\"3rem\"},attrs:{\"varient\":\"secondary\"}}):_vm._e(),(_vm.showLoader && _vm.resolvedStar)?_c('div',{staticClass:\"text-muted pt-4\"},[_vm._v(\"This search will take a couple of minutes...\")]):_vm._e(),(_vm.showLoader && _vm.resolvedStar)?_c('div',{staticClass:\"text-muted pt-4\"},[_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm._f(\"formatMsToMinuteSecond\")(_vm.elapsedTime)))])]):_vm._e(),(_vm.foundEventsList && _vm.foundEventsList.length < 1 && _vm.submitted && !_vm.showLoader)?_c('h5',{staticClass:\"text-danger\"},[_vm._v(\"No events found\")]):_vm._e(),(!_vm.resolvedStar && _vm.resolveSubmitted && !_vm.showLoader)?_c('h5',{staticClass:\"text-danger\"},[_vm._v(_vm._s(_vm.resolvedStarSearchId)+\" could not be resolved\")]):_vm._e()],1)])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{attrs:{\"for\":\"asteroidNumber\"}},[_vm._v(\"Star Identifier \"),_c('span',{staticClass:\"text-muted\"},[_c('small',[_c('strong',{staticClass:\"text-light\"},[_vm._v(\"( \")]),_vm._v(\" UCAC4, TYC, HIP, G\"),_c('strong',{staticClass:\"text-light\"},[_vm._v(\" )\")])])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',{staticClass:\"thead-dark text-center\"},[_c('tr',[_c('td',[_vm._v(\"Closest Approach, UT\")]),_c('td',[_vm._v(\"Asteroid\")]),_c('td',[_vm._v(\"Star\")]),_c('td',[_vm._v(\"Mag\")]),_c('td',[_vm._v(\"Mag Drop\")]),_c('td',[_vm._v(\"Max Dur.\")]),_c('td',[_vm._v(\"Rank\")])])])}]\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchByStar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchByStar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SearchByStar.vue?vue&type=template&id=00cd3af2&scoped=true&\"\nimport script from \"./SearchByStar.vue?vue&type=script&lang=js&\"\nexport * from \"./SearchByStar.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"00cd3af2\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EventSearch.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EventSearch.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EventSearch.vue?vue&type=template&id=85237e7e&scoped=true&\"\nimport script from \"./EventSearch.vue?vue&type=script&lang=js&\"\nexport * from \"./EventSearch.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"85237e7e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"container-fluid\"},[_c('div',{staticClass:\"mt-2\"},[_c('div',[_c('b-card',{attrs:{\"no-body\":\"\"}},[_c('b-tabs',[_c('b-tab',{attrs:{\"title\":\"Filter Search\",\"active\":\"\"}},[_c('b-card-text',{staticClass:\"px-4 pb-4\"},[_c('div',{staticClass:\"row pt-2 mt-3 \",class:{ 'grayout': _vm.showLoader }},[_c('div',{staticClass:\"col-xl-2 col-lg-2 col-md-2\"},[_c('label',{attrs:{\"for\":\"eventDate\"}},[_vm._v(\"Start Date\")]),_c('b-input-group',{staticClass:\"mb-3\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form.eventDateFormatted),expression:\"form.eventDateFormatted\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"disabled\":_vm.showLoader,\"autocomplete\":\"off\",\"id\":\"eventDate\",\"name\":\"eventDate\"},domProps:{\"value\":(_vm.form.eventDateFormatted)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.form, \"eventDateFormatted\", $event.target.value)}}}),_c('b-input-group-append',[_c('b-form-datepicker',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({required: true}),expression:\"{required: true}\"}],attrs:{\"data-vv-name\":\"eventDatePicker\",\"button-only\":\"\",\"right\":\"\",\"locale\":\"en-AU\",\"aria-controls\":\"example-input\",\"date-format-options\":{ year: 'numeric', month: 'short', day: '2-digit'}},on:{\"context\":_vm.onDatePick},model:{value:(_vm.form.eventDate),callback:function ($$v) {_vm.$set(_vm.form, \"eventDate\", $$v)},expression:\"form.eventDate\"}})],1)],1),(_vm.validated)?_c('div',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('eventDatePicker'))+\" \")]):_vm._e()],1),_c('div',{staticClass:\"col-xl-1 col-lg-2 col-md-2\"},[_c('label',{attrs:{\"for\":\"daysAhead\"}},[_vm._v(\"Days Ahead\")]),_c('b-button-toolbar',{attrs:{\"key-nav\":\"\"}},[_c('b-button-group',[_c('b-button',{ref:\"d2\",staticStyle:{\"margin-right\":\"1px\"},attrs:{\"selected\":this.form.daysAhead === 2},on:{\"click\":function($event){return _vm.setDaysAhead(2)}}},[_vm._v(\"2\")]),_c('b-button',{ref:\"d4\",staticStyle:{\"margin-right\":\"1px\"},attrs:{\"selected\":this.form.daysAhead === 4},on:{\"click\":function($event){return _vm.setDaysAhead(4)}}},[_vm._v(\"4\")]),_c('b-button',{ref:\"d6\",attrs:{\"selected\":this.form.daysAhead === 6},on:{\"click\":function($event){return _vm.setDaysAhead(6)}}},[_vm._v(\"6\")])],1)],1)],1),_c('div',{staticClass:\"col-xl-2 col-lg-2 col-md-2\"},[_c('label',{attrs:{\"for\":\"filter\"}},[_c('router-link',{attrs:{\"to\":{ name: 'Filters' }}},[_vm._v(\"Filter\")])],1),_c('b-form-select',{staticClass:\"form-control\",attrs:{\"id\":\"filter\",\"options\":_vm.filters},on:{\"change\":_vm.onCurrFilterChanged},model:{value:(_vm.form.selectedFilter),callback:function ($$v) {_vm.$set(_vm.form, \"selectedFilter\", $$v)},expression:\"form.selectedFilter\"}}),(_vm.validated)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('filter'))+\" \")]):_vm._e()],1),_c('div',{staticClass:\"col-xl-1 col-lg-2 col-md-2\"},[_c('label',{attrs:{\"for\":\"orderBy\"}},[_vm._v(\"Order By\")]),_c('b-form-select',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({required: true}),expression:\"{required: true}\"}],staticClass:\"form-control\",attrs:{\"data-vv-name\":\"orderBy\",\"id\":\"orderBy\",\"options\":_vm.orderByReferences},model:{value:(_vm.form.orderBy),callback:function ($$v) {_vm.$set(_vm.form, \"orderBy\", $$v)},expression:\"form.orderBy\"}}),(_vm.validated)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('orderBy'))+\" \")]):_vm._e()],1),_c('div',{staticClass:\"col-xl-1 col-lg-2 col-md-2\"},[_c('label',{attrs:{\"for\":\"limit\"}},[_vm._v(\"Limit\")]),_c('b-form-input',{attrs:{\"id\":\"limit\",\"type\":\"number\",\"step\":\"1\",\"min\":\"10\",\"max\":\"250\"},model:{value:(_vm.form.limit),callback:function ($$v) {_vm.$set(_vm.form, \"limit\", $$v)},expression:\"form.limit\"}})],1),(_vm.showFilterExplain)?_c('div',{staticClass:\"col-xl-3 col-lg-3 col-md-3\"},[_c('label',{attrs:{\"for\":\"explain\"}},[_vm._v(\"EventIds (explain)\")]),_c('b-form-input',{attrs:{\"id\":\"explain\"},model:{value:(_vm.form.owcIds),callback:function ($$v) {_vm.$set(_vm.form, \"owcIds\", $$v)},expression:\"form.owcIds\"}}),_c('b-tooltip',{attrs:{\"target\":\"explain\",\"triggers\":\"hover\",\"placement\":\"bottom\",\"variant\":\"primary\",\"delay\":{ 'show': 500 }}},[_vm._v(\" Enter a semicolon (;) separated list of OWC event ids to check if they match the filter and what is the reason if they don't. Can be used for a single event as well. \")])],1):_vm._e(),_c('div',{staticClass:\"col-xl-1 col-lg-2 col-md-2\"},[_c('label',{attrs:{\"for\":\"filterEvents\"}}),_c('button',{staticClass:\"btn btn-primary align-self-end btn-block mt-2\",attrs:{\"type\":\"button\",\"disabled\":_vm.showLoader},on:{\"click\":_vm.onFilterEvents}},[_vm._v(\"Search\")])]),(!_vm.showFilterExplain)?_c('div',{staticClass:\"col-xl-3 col-lg-1 col-md-1\"}):_vm._e(),(!_vm.showFilterExplain)?_c('div',{staticClass:\"col-xl-1 col-lg-2 col-md-2\"},[_c('label',{}),_c('button',{staticClass:\"btn btn-secondary align-self-end btn-block mt-2\",attrs:{\"type\":\"button\",\"disabled\":_vm.showLoader},on:{\"click\":function($event){_vm.showFilterExplain = true}}},[_vm._v(\"Explain\")])]):_vm._e()])])],1),_c('b-tab',{attrs:{\"title\":\"Detailed Search\"}},[_c('b-card-text',{staticClass:\"pl-4 pb-4\"},[_c('div',{staticClass:\"row pt-2 mt-3 \",class:{ 'grayout': _vm.showLoader }},[_c('div',{staticClass:\"col-xl-2 col-lg-2 col-md-2\"},[_c('label',{attrs:{\"for\":\"eventDate\"}},[_vm._v(\"Start Date\")]),_c('b-input-group',{staticClass:\"mb-3\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form.eventDateFormatted),expression:\"form.eventDateFormatted\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"disabled\":_vm.showLoader,\"autocomplete\":\"off\",\"id\":\"eventDate\",\"name\":\"eventDate\"},domProps:{\"value\":(_vm.form.eventDateFormatted)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.form, \"eventDateFormatted\", $event.target.value)}}}),_c('b-input-group-append',[_c('b-form-datepicker',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({required: true}),expression:\"{required: true}\"}],attrs:{\"data-vv-name\":\"eventDatePicker\",\"button-only\":\"\",\"right\":\"\",\"locale\":\"en-AU\",\"aria-controls\":\"example-input\",\"date-format-options\":{ year: 'numeric', month: 'short', day: '2-digit'}},on:{\"context\":_vm.onDatePick},model:{value:(_vm.form.eventDate),callback:function ($$v) {_vm.$set(_vm.form, \"eventDate\", $$v)},expression:\"form.eventDate\"}})],1)],1),(_vm.validated)?_c('div',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('eventDatePicker'))+\" \")]):_vm._e()],1),_c('div',{staticClass:\"col-xl-1 col-lg-1 col-md-1\"},[_c('label',{attrs:{\"for\":\"daysAhead\"}},[_vm._v(\"Days Ahead\")]),_c('b-button-toolbar',{attrs:{\"key-nav\":\"\"}},[_c('b-button-group',[_c('b-button',{ref:\"d2\",staticStyle:{\"margin-right\":\"1px\"},attrs:{\"selected\":this.form.daysAhead === 2},on:{\"click\":function($event){return _vm.setDaysAhead(2)}}},[_vm._v(\"2\")]),_c('b-button',{ref:\"d4\",staticStyle:{\"margin-right\":\"1px\"},attrs:{\"selected\":this.form.daysAhead === 4},on:{\"click\":function($event){return _vm.setDaysAhead(4)}}},[_vm._v(\"4\")]),_c('b-button',{ref:\"d6\",attrs:{\"selected\":this.form.daysAhead === 6},on:{\"click\":function($event){return _vm.setDaysAhead(6)}}},[_vm._v(\"6\")])],1)],1)],1),_c('div',{staticClass:\"col-xl-1 col-lg-1 col-md-1\"},[_c('label',{attrs:{\"for\":\"starMag\"}},[_vm._v(\"Max Star Mag\")]),_c('b-form-input',{attrs:{\"id\":\"starMag\",\"type\":\"number\",\"step\":\"0.5\",\"min\":\"8\",\"max\":\"16\"},model:{value:(_vm.form.starMag),callback:function ($$v) {_vm.$set(_vm.form, \"starMag\", $$v)},expression:\"form.starMag\"}})],1),_c('div',{staticClass:\"col-xl-2 col-lg-2 col-md-2\"},[_c('label',{attrs:{\"for\":\"minDur\"}},[_vm._v(\"Min Duration (sec)\")]),_c('b-form-input',{attrs:{\"id\":\"minDur\",\"type\":\"number\",\"step\":\"0.1\",\"min\":\"0.2\",\"max\":\"60\"},model:{value:(_vm.form.minDur),callback:function ($$v) {_vm.$set(_vm.form, \"minDur\", $$v)},expression:\"form.minDur\"}})],1),_c('div',{staticClass:\"col-xl-1 col-lg-1 col-md-1\"},[_c('label',{attrs:{\"for\":\"magDrop\"}},[_vm._v(\"Min Mag Drop\")]),_c('b-form-input',{attrs:{\"id\":\"magDrop\",\"type\":\"number\",\"step\":\"0.1\",\"min\":\"0.1\",\"max\":\"10\"},model:{value:(_vm.form.magDrop),callback:function ($$v) {_vm.$set(_vm.form, \"magDrop\", $$v)},expression:\"form.magDrop\"}})],1),_c('div',{staticClass:\"col-xl-1 col-lg-2 col-md-2\"},[_c('label',{attrs:{\"for\":\"aperture\"}},[_vm._v(\"Aperture (cm)\")]),_c('b-form-input',{attrs:{\"id\":\"aperture\",\"type\":\"number\",\"step\":\"0.5\",\"min\":\"3\",\"max\":\"65\"},model:{value:(_vm.form.aperture),callback:function ($$v) {_vm.$set(_vm.form, \"aperture\", $$v)},expression:\"form.aperture\"}})],1),_c('div',{staticClass:\"col-xl-1 col-lg-2 col-md-2\"},[_c('label',{attrs:{\"for\":\"detectionFrames\"}},[_vm._v(\"Detection (frames)\")]),_c('b-form-input',{attrs:{\"id\":\"detectionFrames\",\"type\":\"number\",\"step\":\"1\",\"min\":\"1\",\"max\":\"10\"},model:{value:(_vm.form.detectionFrames),callback:function ($$v) {_vm.$set(_vm.form, \"detectionFrames\", $$v)},expression:\"form.detectionFrames\"}})],1),_c('div',{staticClass:\"col-xl-1 col-lg-2 col-md-2\"},[_c('label',{attrs:{\"for\":\"magAdjust\"}},[_vm._v(\"MagAdjust\")]),_c('b-form-input',{attrs:{\"id\":\"magAdjust\",\"type\":\"number\",\"step\":\"0.5\",\"min\":\"-5\",\"max\":\"5\"},model:{value:(_vm.form.magAdjust),callback:function ($$v) {_vm.$set(_vm.form, \"magAdjust\", $$v)},expression:\"form.magAdjust\"}})],1)]),_c('div',{staticClass:\"row pt-2 mt-3 \",class:{ 'grayout': _vm.showLoader }},[_c('div',{staticClass:\"col-xl-2 col-lg-2 col-md-2\"},[_c('label',{attrs:{\"for\":\"location\"}},[_vm._v(\"Location\")]),_c('b-form-select',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({required: true}),expression:\"{required: true}\"}],staticClass:\"form-control\",attrs:{\"data-vv-name\":\"location\",\"id\":\"location\",\"options\":_vm.locations},model:{value:(_vm.form.selectedSite),callback:function ($$v) {_vm.$set(_vm.form, \"selectedSite\", $$v)},expression:\"form.selectedSite\"}}),(_vm.validated)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('location'))+\" \")]):_vm._e()],1),_c('div',{staticClass:\"col-xl-2 col-lg-2 col-md-2\"},[_c('label',{attrs:{\"for\":\"location\"}},[_vm._v(\"Max Distance (km)\")]),_c('b-form-input',{attrs:{\"id\":\"distance\",\"type\":\"number\",\"step\":\"1\",\"min\":\"1\",\"max\":\"1000\"},model:{value:(_vm.form.distance),callback:function ($$v) {_vm.$set(_vm.form, \"distance\", $$v)},expression:\"form.distance\"}})],1),_c('div',{staticClass:\"col-xl-2 col-lg-2 col-md-2\"},[_c('label',{attrs:{\"for\":\"distFrom\"}},[_vm._v(\"From\")]),_c('b-form-select',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({required: true}),expression:\"{required: true}\"}],staticClass:\"form-control\",attrs:{\"data-vv-name\":\"distFrom\",\"id\":\"distFrom\",\"options\":_vm.distanceReferences},model:{value:(_vm.form.distFrom),callback:function ($$v) {_vm.$set(_vm.form, \"distFrom\", $$v)},expression:\"form.distFrom\"}}),(_vm.validated)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('distFrom'))+\" \")]):_vm._e()],1),_c('div',{staticClass:\"col-xl-1 col-lg-2 col-md-2\"},[_c('label',{attrs:{\"for\":\"orderBy\"}},[_vm._v(\"Order By\")]),_c('b-form-select',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({required: true}),expression:\"{required: true}\"}],staticClass:\"form-control\",attrs:{\"data-vv-name\":\"orderBy\",\"id\":\"orderBy\",\"options\":_vm.orderByReferences},model:{value:(_vm.form.orderBy),callback:function ($$v) {_vm.$set(_vm.form, \"orderBy\", $$v)},expression:\"form.orderBy\"}}),(_vm.validated)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('orderBy'))+\" \")]):_vm._e()],1),_c('div',{staticClass:\"col-xl-1 col-lg-2 col-md-2\"},[_c('label',{attrs:{\"for\":\"limit\"}},[_vm._v(\"Limit (events)\")]),_c('b-form-input',{attrs:{\"id\":\"limit\",\"type\":\"number\",\"step\":\"1\",\"min\":\"10\",\"max\":\"250\"},model:{value:(_vm.form.limit),callback:function ($$v) {_vm.$set(_vm.form, \"limit\", $$v)},expression:\"form.limit\"}})],1),_c('div',{staticClass:\"col-xl-2 col-lg-2 col-md-2\"},[_c('label',{attrs:{\"for\":\"explain\"}},[_vm._v(\"EventIds (explain)\")]),_c('b-form-input',{attrs:{\"id\":\"explain\"},model:{value:(_vm.form.owcIds),callback:function ($$v) {_vm.$set(_vm.form, \"owcIds\", $$v)},expression:\"form.owcIds\"}})],1)]),_c('div',{staticClass:\"row pt-2 mt-3 \",class:{ 'grayout': _vm.showLoader }},[_c('div',{staticClass:\"col-xl-1 col-lg-2 col-md-2\"},[_c('label',{attrs:{\"for\":\"minProb\"}},[_vm._v(\"Min Prob. (%)\")]),_c('b-form-input',{attrs:{\"id\":\"minProb\",\"type\":\"number\",\"step\":\"5\",\"min\":\"0\",\"max\":\"100\"},model:{value:(_vm.form.minProb),callback:function ($$v) {_vm.$set(_vm.form, \"minProb\", $$v)},expression:\"form.minProb\"}})],1),_c('div',{staticClass:\"col-xl-1 col-lg-2 col-md-2\"},[_c('label',{attrs:{\"for\":\"maxEPW\"}},[_vm._v(\"Max SigPW\")]),_c('b-form-input',{attrs:{\"id\":\"maxEPW\",\"type\":\"number\",\"step\":\"0.05\",\"min\":\"0.05\",\"max\":\"100\"},model:{value:(_vm.form.maxEPW),callback:function ($$v) {_vm.$set(_vm.form, \"maxEPW\", $$v)},expression:\"form.maxEPW\"}})],1),_c('div',{staticClass:\"col-xl-1 col-lg-2 col-md-2\"},[_c('label',{attrs:{\"for\":\"maxRUWE\"}},[_vm._v(\"Max RUWE\")]),_c('b-form-input',{attrs:{\"id\":\"maxRUWE\",\"type\":\"number\",\"step\":\"0.05\",\"min\":\"0.05\",\"max\":\"100\"},model:{value:(_vm.form.maxRUWE),callback:function ($$v) {_vm.$set(_vm.form, \"maxRUWE\", $$v)},expression:\"form.maxRUWE\"}})],1),_c('div',{staticClass:\"col-xl-2 col-lg-2 col-md-2\"},[_c('label',{attrs:{\"for\":\"altitude\"}},[_vm._v(\"Min Altitude (deg)\")]),_c('b-form-input',{attrs:{\"id\":\"altitude\",\"type\":\"number\",\"step\":\"1\",\"min\":\"0\",\"max\":\"90\"},model:{value:(_vm.form.minAltitude),callback:function ($$v) {_vm.$set(_vm.form, \"minAltitude\", $$v)},expression:\"form.minAltitude\"}})],1),_c('div',{staticClass:\"col-xl-2 col-lg-2 col-md-2\"},[_c('label',{attrs:{\"for\":\"inclDTO\"}},[_vm._v(\"Daytime Events\")]),_c('b-form-checkbox',{staticClass:\"cb-mid-align\",attrs:{\"id\":\"inclDTO\"},model:{value:(_vm.form.inclDTO),callback:function ($$v) {_vm.$set(_vm.form, \"inclDTO\", $$v)},expression:\"form.inclDTO\"}},[_vm._v(\" Include observable daytime events \")])],1),_c('div',{staticClass:\"col-xl-2 col-lg-2 col-md-2\"},[_c('label',{attrs:{\"for\":\"maxSunAlt\"}},[_vm._v(\"Max Sun Alt (deg)\")]),_c('b-form-input',{class:{ 'cb-grayout': _vm.form.inclDTO },attrs:{\"id\":\"maxSunAlt\",\"type\":\"number\",\"step\":\"1\",\"min\":\"-18\",\"max\":\"0\",\"disabled\":_vm.form.inclDTO,\"readonly\":_vm.form.inclDTO},model:{value:(_vm.form.maxSunAlt),callback:function ($$v) {_vm.$set(_vm.form, \"maxSunAlt\", $$v)},expression:\"form.maxSunAlt\"}})],1),_c('div',{staticClass:\"col-xl-1 col-lg-1 col-md-1\"},[_c('label',{attrs:{\"for\":\"flags\"}},[_vm._v(\"Flags\")]),_c('b-form-input',{attrs:{\"id\":\"flags\",\"title\":\"d - Disable day-time check\\n a - Disable star altitude check\\n c - Disable combined magnitude/aperture/duration check\\n e - Include 'Explain' data for all included events\\n t - Only include tagged events\\n T - Exclude tagged events\"},model:{value:(_vm.form.flags),callback:function ($$v) {_vm.$set(_vm.form, \"flags\", $$v)},expression:\"form.flags\"}})],1),_c('div',{staticClass:\"col-xl-1 col-lg-2 col-md-2\"},[_c('label',{attrs:{\"for\":\"searchEvents\"}}),_c('button',{staticClass:\"btn btn-primary align-self-end btn-block mt-2\",attrs:{\"type\":\"button\",\"disabled\":_vm.showLoader},on:{\"click\":_vm.onSearchEvents}},[_vm._v(\"Search\")])])])])],1),_c('b-tab',{attrs:{\"title\":\"Display Options\"}},[_c('b-card-text',{staticClass:\"pl-4 pb-4\"},[_c('div',{staticClass:\"row pt-2 mt-3 \",class:{ 'grayout': _vm.showLoader }},[_c('div',{staticClass:\"col-xl-2 col-lg-2 col-md-2\"},[_c('label',{attrs:{\"for\":\"mapDisplay\"}},[_vm._v(\"Map Display\")]),_c('b-form-select',{staticClass:\"form-control\",attrs:{\"id\":\"mapDisplay\",\"options\":_vm.mapDisplayOptions},on:{\"change\":_vm.onMapDisplayOptionsChanged},model:{value:(_vm.displayOptions.mapDisplay),callback:function ($$v) {_vm.$set(_vm.displayOptions, \"mapDisplay\", $$v)},expression:\"displayOptions.mapDisplay\"}})],1),(_vm.displayOptions.mapDisplay === 'zoomedMap')?_c('div',{staticClass:\"col-xl-2 col-lg-2 col-md-2\"},[_c('label',{attrs:{\"for\":\"autoZoom\"}},[_vm._v(\"Map Settings\")]),_c('b-form-checkbox',{staticClass:\"cb-mid-align\",attrs:{\"id\":\"autoZoom\"},on:{\"change\":_vm.onAutoZoomChanged},model:{value:(_vm.displayOptions.autoZoom),callback:function ($$v) {_vm.$set(_vm.displayOptions, \"autoZoom\", $$v)},expression:\"displayOptions.autoZoom\"}},[_vm._v(\" Zoom & center on selection \")])],1):_vm._e(),_c('div',{staticClass:\"col-xl-6 col-lg-6 col-md-6\"},[_c('label',{attrs:{\"for\":\"showMinAper\"}},[_vm._v(\"Optional Columns\")]),_c('b-form-checkbox',{staticClass:\"cb-mid-align\",attrs:{\"id\":\"forceShowMinAper\"},on:{\"change\":_vm.onForceShowMinAperChanged},model:{value:(_vm.displayOptions.forceShowMinAper),callback:function ($$v) {_vm.$set(_vm.displayOptions, \"forceShowMinAper\", $$v)},expression:\"displayOptions.forceShowMinAper\"}},[_vm._v(\" Show the minimum aperture (cm) requried to observe the event \")])],1)])])],1)],1)],1)],1),(_vm.submitted && _vm.submittedFilter)?_c('div',{staticClass:\"row pt-1 mt-1\"},[_c('div',{staticClass:\"col-12\"},[_vm._v(\" Search Results for filter \"),_c('span',{staticClass:\"pl-1\"},[_c('strong',[_vm._v(_vm._s(this.submittedFilter.name)+\":\")])]),_c('span',{staticClass:\"pl-2\"},[_vm._v(_vm._s(this.submittedFilter.distance)+\"km \"),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"from\")]),_vm._v(\" \"+_vm._s(this.submittedFilter.distFrom)+\" \"),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"from\")]),_vm._v(\" \"+_vm._s(this.submittedFilter.siteName)+\",\")]),_c('span',{staticClass:\"pl-2\"},[_c('span',{staticClass:\"text-muted\"},[_vm._v(\"StarMag:\")]),_vm._v(\" \"+_vm._s(this.submittedFilter.starMag)),_c('sup',[_vm._v(\"m\")]),_vm._v(\", \"),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"MinDur:\")]),_vm._v(\" \"+_vm._s(this.submittedFilter.minDur)+\"s, \"),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Aperture:\")]),_vm._v(\" \"+_vm._s(this.submittedFilter.aperture)+\"cm, \"),_c('span',{staticClass:\"text-muted\"},[_vm._v(\"DetectionFrames:\")]),_vm._v(\" \"+_vm._s(this.submittedFilter.detectionFrames)+\",\")]),(this.submittedFilter.maxEPWEnabled)?_c('span',{staticClass:\"pl-2\"},[_c('span',{staticClass:\"text-muted\"},[_vm._v(\"sigPW< \")]),_vm._v(\" \"+_vm._s(this.submittedFilter.maxEPW)+\",\")]):_vm._e(),(!this.submittedFilter.maxEPWEnabled)?_c('span',{staticClass:\"pl-2\"},[_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Probability> \")]),_vm._v(\" \"+_vm._s(this.submittedFilter.minProb)+\",\")]):_vm._e(),_c('span',{staticClass:\"pl-2\"},[_c('span',{staticClass:\"text-muted\"},[_vm._v(\"MinStarAltitude: \")]),_vm._v(\" \"+_vm._s(this.submittedFilter.minAltitude))])])]):_vm._e(),(_vm.submitted)?_c('div',{staticClass:\"row pt-2 mt-3\"},[_c('div',{staticClass:\"col-8\"},[((_vm.submitted || _vm.foundEventsList) && !_vm.showLoader)?_c('div',{staticClass:\"table-responsive-md\"},[_c('table',{staticClass:\"table table-dark table-bordered table-hover\"},[_c('thead',{staticClass:\"thead-dark text-center\"},[_c('tr',[_c('td',[_vm._v(\"Asteroid\")]),_c('td',[_vm._v(\"Local Event Time, UT\")]),_c('td',[_vm._v(\"Mag\")]),_c('td',[_vm._v(\"Mag Drop\")]),_c('td',[_vm._v(\"Max Dur.\")]),_c('td',[_vm._v(\"Prob.\")]),_c('td',[_vm._v(\"SigPW\")]),_c('td',[_vm._v(\"Altitude\")]),_c('td',[_vm._v(\"Travel Dist.\")]),(_vm.showMagAdjust)?_c('td',[_vm._v(\"MagAdjDiff\")]):_vm._e(),(_vm.showMinAper)?_c('td',[_vm._v(\"Min Aper.\")]):_vm._e()])]),_c('tbody',_vm._l((_vm.foundEventsList),function(evt){return _c('tr',{key:evt.id,class:_vm.selectedEvent && evt.id === _vm.selectedEvent.id ? 'highlight' : '',staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":function($event){return _vm.selectEvent(evt)}}},[_c('td',[_c('OwPositionBox',{staticClass:\"pr-2\",attrs:{\"pos\":evt.pos}}),_vm._v(\" \"+_vm._s(evt.asteroid))],1),_c('td',[_vm._v(_vm._s(evt.locTime)+\" \"),(evt.tags)?_c('TagList',{attrs:{\"tags\":evt.tags}}):_vm._e()],1),_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm._f(\"formatMag\")(evt.mag)))]),_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm._f(\"formatMag\")(evt.magDrop)))]),_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm._f(\"formatMag\")(evt.maxDur)))]),_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm._f(\"formatFixed0\")(evt.prob * 100))+\" %\")]),_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm._f(\"formatFixed2\")(evt.sigPW)))]),_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm._f(\"formatFixed0\")(evt.alt))+\"° \"+_vm._s(_vm._f(\"formatAzDir\")(evt.az)))]),_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm._f(\"formatFixed0\")(Math.abs(evt.travelDist)))+\" km\")]),(_vm.showMagAdjust)?_c('td',{staticClass:\"text-center\"},[(evt.mgaDiff > 0)?_c('span',[_vm._v(_vm._s(_vm._f(\"formatFixed1\")(evt.mgaDiff)))]):_vm._e()]):_vm._e(),(_vm.showMinAper)?_c('td',{staticClass:\"text-center\"},[(evt.minAper > 0)?_c('span',[_vm._v(_vm._s(_vm._f(\"formatFixed0\")(evt.minAper))+\" cm\")]):_vm._e()]):_vm._e()])}),0)]),(_vm.submitted && _vm.foundEventsList)?_c('div',{staticClass:\"text-muted pt-2\"},[_c('small',[_vm._v(\"Found \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm.foundEventsList.length))]),_vm._v(\" event\"+_vm._s(_vm.foundEventsList.length > 1 ? 's' : '')+\" in \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm.msElapsed / 1000))]),_vm._v(\" sec\")])]):_vm._e()]):_vm._e(),(_vm.selectedEvent && _vm.selectedEvent.expl && _vm.form.owcIds && _vm.selectedEvent.expl.find(function (x) { return x.Pass == false; }))?_c('div',{staticClass:\"table-responsive-md\"},[_c('table',{staticClass:\"table table-dark table-bordered table-hover\"},[_vm._m(0),_c('tbody',_vm._l((_vm.selectedEvent.expl),function(expl,i){return _c('tr',{key:i,class:expl.Pass ? '' : 'fail',staticStyle:{\"cursor\":\"pointer\"}},[_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s(expl.Pass ? 'Pass' : 'Fail'))]),_c('td',[_vm._v(_vm._s(expl.Name))]),_c('td',[_vm._v(_vm._s(expl.Description))])])}),0)])]):_vm._e(),((_vm.submitted || _vm.foundEventsList) && !_vm.showLoader && _vm.foundEventsExecInfo)?_c('div',{staticClass:\"table-responsive-md\"},[_vm._m(1),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-2\"},[_c('div',{staticClass:\"text-muted\"},[_c('small',[_vm._v(\"Pre-handle time: \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm._f(\"formatFixed0\")(_vm.foundEventsExecInfo.PreHandleTime))+\" ms\")])])]),_c('div',{staticClass:\"text-muted\"},[_c('small',[_vm._v(\"Pre-search time: \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm._f(\"formatFixed0\")(_vm.foundEventsExecInfo.PreSearchTime))+\" ms\")])])]),_c('div',{staticClass:\"text-muted\"},[_c('small',[_vm._v(\"Total exec time: \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm._f(\"formatFixed0\")(_vm.foundEventsExecInfo.TotalExecTime))+\" ms\")])])])]),_c('div',{staticClass:\"col-2\"},[_c('div',{staticClass:\"text-muted\"},[_c('small',[_vm._v(\"Total DB time: \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm._f(\"formatFixed0\")(_vm.foundEventsExecInfo.TotalDbTime))+\" ms\")])])]),_c('div',{staticClass:\"text-muted\"},[_c('small',[_vm._v(\"Total filter time: \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm._f(\"formatFixed0\")(_vm.foundEventsExecInfo.TotalFilterTime))+\" ms\")])])]),_c('div',{staticClass:\"text-muted\"},[_c('small',[_vm._v(\"Total event calc time: \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm._f(\"formatFixed0\")(_vm.foundEventsExecInfo.TotalEventCalcTime))+\" ms\")])])])]),_c('div',{staticClass:\"col-2\"},[_c('div',{staticClass:\"text-muted\"},[_c('small',[_vm._v(\"Events Checked: \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm.foundEventsExecInfo.EventsChecked))])])]),_c('div',{staticClass:\"text-muted\"},[_c('small',[_vm._v(\"Events Matched: \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm.foundEventsExecInfo.EventsMatched))])])]),_c('div',{staticClass:\"text-muted\"},[_c('small',[_vm._v(\"Excluded [Dec]: \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm.foundEventsExecInfo.EventsExcludedDec))])])])]),_c('div',{staticClass:\"col-2\"},[_c('div',{staticClass:\"text-muted\"},[_c('small',[_vm._v(\"Excluded [Day Time]: \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm.foundEventsExecInfo.EventsExcludedDayTime))])])]),_c('div',{staticClass:\"text-muted\"},[_c('small',[_vm._v(\"Excluded [Alt]: \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm.foundEventsExecInfo.EventsExcludedAlt))])])]),_c('div',{staticClass:\"text-muted\"},[_c('small',[_vm._v(\"Excluded [Aper/Mag/Dur]: \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm.foundEventsExecInfo.EventsExcludedMagDurDrop))])])])]),_c('div',{staticClass:\"col-2\"},[_c('div',{staticClass:\"text-muted\"},[_c('small',[_vm._v(\"Excluded [Probability]: \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm.foundEventsExecInfo.EventsExcludedProbability))])])]),_c('div',{staticClass:\"text-muted\"},[_c('small',[_vm._v(\"Excluded [TaggedFilter]: \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm.foundEventsExecInfo.EventsExcludedTagFilter))])])]),_c('div',{staticClass:\"text-muted\"},[_c('small',[_vm._v(\"Total load tagged time: \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm._f(\"formatFixed0\")(_vm.foundEventsExecInfo.TotalTaggedPredLoadTime))+\" ms\")])])])]),_c('div',{staticClass:\"col-2\"},[_c('div',{staticClass:\"text-muted\"},[_c('small',[_vm._v(\"Excluded [FastDistCheck]: \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm.foundEventsExecInfo.EventsExcludedFastDistCheckFilter))])])]),_c('div',{staticClass:\"text-muted\"},[_c('small',[_vm._v(\"Excluded [SigPW]: \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm.foundEventsExecInfo.EventsExcludedSigPWFilter))])])])])])]):_vm._e(),_c('div',{staticClass:\"justify-content-center text-center\"},[(_vm.showLoader)?_c('b-spinner',{staticClass:\"justify-content-center mt-3\",staticStyle:{\"width\":\"3rem\",\"height\":\"3rem\"},attrs:{\"varient\":\"secondary\"}}):_vm._e(),(_vm.showLoader && _vm.form.daysAhead < 5)?_c('div',{staticClass:\"text-muted pt-4\"},[_vm._v(\"This search may take several seconds...\")]):_vm._e(),(_vm.showLoader && _vm.form.daysAhead > 5)?_c('div',{staticClass:\"text-muted pt-4\"},[_vm._v(\"This search may take a few minutes...\")]):_vm._e(),(_vm.foundEventsList && _vm.foundEventsList.length < 1 && _vm.submitted && !_vm.showLoader)?_c('h5',{staticClass:\"text-danger\"},[_vm._v(\"No events found\")]):_vm._e()],1)]),_c('div',{staticClass:\"col-md-4 col-12\"},[_c('div',{staticClass:\"sticky\"},[(_vm.displayOptions.mapDisplay != 'zoomedMap' && _vm.foundEventsList)?_c('EarthPlot',{ref:\"earthPlot\"}):_vm._e(),(_vm.displayOptions.mapDisplay === 'zoomedMap' && _vm.foundEventsList)?_c('ZoomedGoogleMap',{ref:\"zoomedMap\",attrs:{\"location\":this.form.selectedSite}}):_vm._e(),(_vm.selectedEvent)?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-lg-12 text-center pt-2 pass\"},[_c('h6',[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.openSelectedEvent()}}},[_vm._v(_vm._s(_vm.selectedEvent.asteroid)+\" occults \"+_vm._s(_vm.selectedEvent.star)+\" on \"+_vm._s(_vm.selectedEvent.time))])])])]):_vm._e(),(_vm.selectedEvent)?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12 pt-2\"},[_c('OccultWatcherPlot',{ref:\"owPlot\",attrs:{\"occel\":_vm.selectedEvent.data,\"preview\":'on'}})],1),_c('div',{staticClass:\"col-4 pt-2\"},[_c('button',{staticClass:\"btn btn-success align-self-end btn-block mt-2\",attrs:{\"type\":\"button\",\"disabled\":_vm.showLoader},on:{\"click\":_vm.onAddStation}},[_vm._v(\"Add Station\")])])]):_vm._e(),(_vm.selectedEvent && _vm.selectedEvent.expl && !_vm.selectedEvent.expl.find(function (x) { return x.Pass == false; }))?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12 pt-2\"},[_c('table',{staticClass:\"table table-dark table-bordered table-hover\"},[_vm._m(2),_c('tbody',_vm._l((_vm.selectedEvent.expl),function(expl,i){return _c('tr',{key:i,staticStyle:{\"cursor\":\"pointer\"}},[_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s(expl.Pass ? 'Pass' : 'Fail'))]),_c('td',[_vm._v(_vm._s(expl.Name))]),_c('td',[_vm._v(_vm._s(expl.Description))])])}),0)])])]):_vm._e()],1)])]):_vm._e()])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',{staticClass:\"thead-dark text-center\"},[_c('tr',[_c('td',{attrs:{\"colspan\":\"3\"}},[_c('span',{staticClass:\"fail\"},[_vm._v(\"Explanation - Fail\")])])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row\"},[_c('hr',{attrs:{\"size\":\"1\"}}),_c('div',{staticClass:\"col-lg-12 pt-2 \"},[_vm._v(\" Search Performance Data \")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',{staticClass:\"thead-dark text-center\"},[_c('tr',[_c('td',{attrs:{\"colspan\":\"3\"}},[_c('span',{staticClass:\"pass\"},[_vm._v(\"Explanation - Pass\")])])])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticStyle:{\"height\":\"14px\",\"width\":\"22px\"}},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 22 14\",\"width\":\"22\",\"height\":\"14\"}},[(_vm.pos == 0)?_c('rect',{staticClass:\"shadow\",attrs:{\"x\":\"0\",\"y\":\"0\",\"width\":\"22\",\"height\":\"14\"}}):_vm._e(),(_vm.pos == 1)?_c('rect',{staticClass:\"sigma\",attrs:{\"x\":\"0\",\"y\":\"0\",\"width\":\"22\",\"height\":\"14\"}}):_vm._e(),(_vm.pos == 2)?_c('rect',{staticClass:\"outside\",attrs:{\"x\":\"0\",\"y\":\"0\",\"width\":\"22\",\"height\":\"14\"}}):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OwPositionBox.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OwPositionBox.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./OwPositionBox.vue?vue&type=template&id=1b9918f2&scoped=true&\"\nimport script from \"./OwPositionBox.vue?vue&type=script&lang=js&\"\nexport * from \"./OwPositionBox.vue?vue&type=script&lang=js&\"\nimport style0 from \"./OwPositionBox.vue?vue&type=style&index=0&id=1b9918f2&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1b9918f2\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"col-12 border border-primary\",attrs:{\"id\":\"evGmap\"}})])}]\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ZoomedGoogleMap.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ZoomedGoogleMap.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ZoomedGoogleMap.vue?vue&type=template&id=d9bf1372&scoped=true&\"\nimport script from \"./ZoomedGoogleMap.vue?vue&type=script&lang=js&\"\nexport * from \"./ZoomedGoogleMap.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ZoomedGoogleMap.vue?vue&type=style&index=0&id=d9bf1372&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d9bf1372\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EventSearchAdvanced.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EventSearchAdvanced.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EventSearchAdvanced.vue?vue&type=template&id=0f136f2a&scoped=true&\"\nimport script from \"./EventSearchAdvanced.vue?vue&type=script&lang=js&\"\nexport * from \"./EventSearchAdvanced.vue?vue&type=script&lang=js&\"\nimport style0 from \"./EventSearchAdvanced.vue?vue&type=style&index=0&id=0f136f2a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0f136f2a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('nav',{staticClass:\"nav navbar-expand-sm\",attrs:{\"id\":\"top-nav\"}},[_c('router-link',{staticClass:\"navbar-brand mx-4 pb-1\",attrs:{\"to\":\"/\"}},[_vm._v(\"OW Cloud\")]),_c('div',{staticClass:\"collapse navbar-collapse pb-1 mx-3\",attrs:{\"id\":\"mynav\"}},[(!_vm.showLoader && _vm.foundEventsList && !_vm.errored)?_c('div',{staticClass:\"pt-2 yellow-highlight mr-auto\",staticStyle:{\"margin-left\":\"35px\"}},[_vm._v(_vm._s(_vm.campaignId)+\" \"+_vm._s(_vm.titleDescr))]):_vm._e(),_c('ThemeSelector'),_c('LoggedInUserActions',{ref:\"logginComponent\",attrs:{\"viewPortVisible\":false,\"delayedShow\":true,\"redirectToCurrent\":true}})],1)],1),_c('div',{staticClass:\"container-flow px-4\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-8 col-12 pt-2 mt-3\"},[_c('b-tabs',{attrs:{\"content-class\":\"mt-3\"},on:{\"activate-tab\":_vm.activeTabChanged},model:{value:(_vm.searchTab),callback:function ($$v) {_vm.searchTab=$$v},expression:\"searchTab\"}},[_c('b-tab',{attrs:{\"title\":\"Observed Events\",\"active\":!this.taggedMode}}),_c('b-tab',{attrs:{\"title\":\"Future Events\",\"active\":this.taggedMode}})],1),_c('div',{staticClass:\"row pt-2 mt-3\",class:{ 'grayout': _vm.showLoader }},[_c('div',{staticClass:\"col-xl-3 col-lg-3 col-md-3\"},[_c('label',{attrs:{\"for\":\"eventDate\"}},[_vm._v(_vm._s(_vm.dateHeading))]),_c('b-input-group',{staticClass:\"mb-3\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form.dateFormatted),expression:\"form.dateFormatted\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"disabled\":_vm.showLoader,\"autocomplete\":\"off\",\"id\":\"date\",\"name\":\"date\"},domProps:{\"value\":(_vm.form.dateFormatted)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.form, \"dateFormatted\", $event.target.value)}}}),_c('b-input-group-append',[_c('b-form-datepicker',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({required: true}),expression:\"{required: true}\"}],attrs:{\"data-vv-name\":\"datePicker\",\"button-only\":\"\",\"right\":\"\",\"locale\":\"en-AU\",\"aria-controls\":\"example-input\",\"date-format-options\":{ year: 'numeric', month: 'short', day: '2-digit'}},on:{\"context\":_vm.onDatePick},model:{value:(_vm.form.date),callback:function ($$v) {_vm.$set(_vm.form, \"date\", $$v)},expression:\"form.date\"}})],1)],1),(_vm.validated)?_c('div',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('datePicker'))+\" \")]):_vm._e()],1),_c('div',{staticClass:\"col-xl-2 col-lg-3 col-md-3\"},[_c('label',{attrs:{\"for\":\"limit\"}},[_vm._v(\"Max Results\")]),_c('b-button-toolbar',{attrs:{\"key-nav\":\"\"}},[_c('b-button-group',[_c('b-button',{ref:\"d0\",staticStyle:{\"margin-right\":\"1px\"},attrs:{\"selected\":this.form.limit === 10},on:{\"click\":function($event){return _vm.setMaxResults(10)}}},[_vm._v(\"10\")]),_c('b-button',{ref:\"d1\",staticStyle:{\"margin-right\":\"1px\"},attrs:{\"selected\":this.form.limit === 20},on:{\"click\":function($event){return _vm.setMaxResults(20)}}},[_vm._v(\"20\")]),_c('b-button',{ref:\"d2\",staticStyle:{\"margin-right\":\"1px\"},attrs:{\"selected\":this.form.limit === 50},on:{\"click\":function($event){return _vm.setMaxResults(50)}}},[_vm._v(\"50\")]),_c('b-button',{ref:\"d3\",attrs:{\"selected\":this.form.limit === 100},on:{\"click\":function($event){return _vm.setMaxResults(100)}}},[_vm._v(\"100\")])],1)],1)],1),_c('div',{staticClass:\"col-xl-2 col-lg-3 col-md-3 mx-4\"},[_c('label',{attrs:{\"for\":\"button\"}}),_c('button',{staticClass:\"btn btn-primary align-self-end btn-block mt-2\",attrs:{\"type\":\"button\",\"disabled\":_vm.showLoader},on:{\"click\":_vm.onSearchEvents}},[_vm._v(\"Search\")])])]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12 justify-content-center\"},[((_vm.submitted || _vm.foundEventsList) && !_vm.showLoader && this.searchResultTab === this.searchTab)?_c('div',{staticClass:\"table-responsive-md\"},[_c('table',{staticClass:\"table table-dark table-bordered table-hover\"},[_c('thead',{staticClass:\"thead-dark text-center\"},[_c('tr',[_c('td',[_vm._v(\"Closest Approach, UT\")]),_c('td',[_vm._v(\"Asteroid\")]),_c('td',[_vm._v(\"Star\")]),_c('td',[_vm._v(\"Mag\")]),_c('td',[_vm._v(\"Stations\")]),(_vm.searchTab === 0)?_c('td',[_vm._v(\"Reports\")]):_vm._e()])]),_c('tbody',_vm._l((_vm.foundEventsList),function(evt){return _c('tr',{key:evt.id,class:_vm.selectedEvent && evt.id === _vm.selectedEvent.id ? 'highlight' : '',on:{\"click\":function($event){return _vm.selectEvent(evt)}}},[_c('td',[_vm._v(_vm._s(evt.time)+\" \"),(evt.tags)?_c('TagList',{attrs:{\"tags\":evt.tags}}):_vm._e()],1),_c('td',[_c('router-link',{attrs:{\"to\":{ name: 'Event', params: {eventId: evt.id}},\"target\":\"_blank\"}},[_vm._v(_vm._s(evt.asteroid))])],1),_c('td',[_vm._v(_vm._s(evt.star))]),_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm._f(\"formatMag\")(evt.mag)))]),(evt.stSmry)?_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s((evt.stSmry.neg + evt.stSmry.pos + evt.stSmry.norep + evt.stSmry.noobs)))]):_vm._e(),(!evt.stSmry)?_c('td',{staticClass:\"text-center\"}):_vm._e(),(_vm.searchTab === 0 && evt.stSmry)?_c('td',{staticClass:\"text-center\",staticStyle:{\"white-space\":\"nowrap\"}},[(evt.stSmry.pos > 0)?_c('span',[_c('canvas',{staticClass:\"mr-1 hit\",attrs:{\"width\":\"10\",\"height\":\"10\",\"title\":\"Positive Detections\"}}),_vm._v(_vm._s(evt.stSmry.pos)+\" \")]):_vm._e(),(evt.stSmry.neg > 0)?_c('span',[_c('canvas',{staticClass:\"ml-2 mr-1 miss\",attrs:{\"width\":\"10\",\"height\":\"10\",\"title\":\"Negative\"}}),_vm._v(_vm._s(evt.stSmry.neg)+\" \")]):_vm._e(),(evt.stSmry.noobs + evt.stSmry.norep > 0)?_c('span',[_c('canvas',{staticClass:\"ml-2 mr-1 norep\",attrs:{\"width\":\"10\",\"height\":\"10\",\"title\":\"Not Reported/Not Observed\"}}),_vm._v(_vm._s(evt.stSmry.noobs + evt.stSmry.norep)+\" \")]):_vm._e()]):_vm._e(),(_vm.searchTab === 0 && !evt.stSmry)?_c('td',{staticClass:\"text-center\"}):_vm._e()])}),0)]),(_vm.submitted)?_c('div',{staticClass:\"text-muted pt-2\"},[_c('small',[_vm._v(\"Found \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm.foundEventsList.length))]),_vm._v(\" event\"+_vm._s(_vm.foundEventsList.length > 1 ? 's' : '')+\" in \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm.msElapsed / 1000))]),_vm._v(\" sec\")])]):_vm._e()]):_vm._e(),_c('div',{staticClass:\"text-center\"},[(_vm.showLoader)?_c('b-spinner',{staticClass:\"justify-content-center mt-3\",staticStyle:{\"width\":\"3rem\",\"height\":\"3rem\"},attrs:{\"varient\":\"secondary\"}}):_vm._e(),(_vm.showLoader)?_c('div',{staticClass:\"text-muted pt-4\"},[_vm._v(\"This search may take several seconds...\")]):_vm._e(),(_vm.foundEventsList && _vm.foundEventsList.length < 1 && _vm.submitted && !_vm.showLoader)?_c('h5',{staticClass:\"text-danger\"},[_vm._v(\"No events found\")]):_vm._e()],1)])])],1),_c('div',{staticClass:\"col-md-4 col-12 mt-4\"},[_c('div',{staticClass:\"pt-4 mt-3\"},[_c('TagInfo',{attrs:{\"tag\":_vm.tagInfo}})],1),_c('div',{staticClass:\"sticky\"},[_c('EarthPlot',{ref:\"earthPlot\"}),(_vm.selectedEvent)?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-lg-12 text-center pt-2\",staticStyle:{\"color\":\"rgb(0, 188, 140)\"}},[_c('h6',[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.openSelectedEvent()}}},[_vm._v(_vm._s(_vm.selectedEvent.asteroid)+\" occults \"+_vm._s(_vm.selectedEvent.star)+\" on \"+_vm._s(_vm.selectedEvent.time))])]),(this.selectedEventStations && !_vm.showSubmitLoader)?_c('div',[_c('OccultWatcherPlot',{ref:\"owPlot\",attrs:{\"occel\":_vm.selectedEvent.data,\"owstations\":_vm.selectedEventStations}}),_c('StationSort',{ref:\"owStations\",attrs:{\"owstations\":_vm.selectedEventStations}})],1):_vm._e(),(_vm.showSubmitLoader)?_c('b-spinner',{staticClass:\"justify-content-center mt-2\",staticStyle:{\"width\":\"2rem\",\"height\":\"2rem\"},attrs:{\"varient\":\"secondary\"}}):_vm._e()],1)]):_vm._e()],1)])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.tag)?_c('table',{staticClass:\"table table-dark table-bordered\"},[_c('tbody',[_c('tr',[_c('td',[(_vm.tag.imgUrl)?_c('img',{staticClass:\"mx-3\",staticStyle:{\"float\":\"left\"},attrs:{\"src\":_vm.tag.imgUrl}}):_vm._e(),_c('p',[_vm._v(\" \"+_vm._s(_vm.tag.descr)+\" \"),(_vm.tag.url)?_c('span',{staticClass:\"pl-1\"},[_vm._v(\" [\"),_c('a',{attrs:{\"href\":_vm.tag.url,\"target\":\"_blank\"}},[_c('small',[_vm._v(\"External Web Site\")])]),_vm._v(\"] \")]):_vm._e()])])])])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TagInfo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TagInfo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TagInfo.vue?vue&type=template&id=0cdb7a81&\"\nimport script from \"./TagInfo.vue?vue&type=script&lang=js&\"\nexport * from \"./TagInfo.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEvents.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEvents.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CampaignEvents.vue?vue&type=template&id=8e56acf2&scoped=true&\"\nimport script from \"./CampaignEvents.vue?vue&type=script&lang=js&\"\nexport * from \"./CampaignEvents.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CampaignEvents.vue?vue&type=style&index=0&id=8e56acf2&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8e56acf2\",\n null\n \n)\n\nexport default component.exports","import Event from '../views/Event.vue'\r\nimport EventPrediction from '../views/EventPrediction.vue'\r\nimport EventSearch from '../views/EventSearch.vue'\r\nimport EventSearchAdvanced from '../views/EventSearchAdvanced.vue'\r\nimport CampaignEvents from '../views/CampaignEvents.vue'\r\n\r\nexport default [\r\n {\r\n path: '/event/:eventId',\r\n name: 'Event',\r\n component: Event,\r\n meta: { title: \"Event\", headerless: true, public: true }\r\n },\r\n {\r\n path: '/event/:eventId/:predSrc',\r\n name: 'Prediction',\r\n component: EventPrediction,\r\n meta: { title: \"Event Prediction\", headerless: true, public: true }\r\n }, \r\n {\r\n path: '/events',\r\n name: 'EventSearch',\r\n component: EventSearch,\r\n meta: { title: \"Simple Event Search\", public: true}\r\n },\r\n {\r\n path: '/search',\r\n name: 'EventSearchAdvanced',\r\n component: EventSearchAdvanced,\r\n meta: { title: \"Search Events\"}\r\n }, \r\n {\r\n path: '/events/campaign/:campaignId',\r\n name: 'CampaignEvents',\r\n component: CampaignEvents,\r\n meta: { title: \"Campaign Events\", headerless: true}\r\n },\r\n {\r\n path: '/events/tagged/:campaignId',\r\n name: 'TaggedEvents',\r\n component: CampaignEvents,\r\n meta: { title: \"Tagged Events\", headerless: true, tagged: true }\r\n }, \r\n {\r\n path: '/campaigns',\r\n name: 'Campaigns',\r\n meta: { title: \"Observation Campaigns\", public: true},\r\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Campaigns.vue')\r\n },\r\n]","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('nav',{staticClass:\"nav navbar-expand-sm\",attrs:{\"id\":\"top-nav\"}},[_c('router-link',{staticClass:\"navbar-brand mx-4 pb-1\",attrs:{\"to\":\"/\"}},[_vm._v(\"OW Cloud\")]),_c('div',{staticClass:\"collapse navbar-collapse pb-1 mx-3\",attrs:{\"id\":\"mynav\"}},[(!_vm.showLoader && _vm.locatedEvents && !_vm.errored)?_c('div',{staticClass:\"pt-2 yellow-highlight mr-auto\",staticStyle:{\"margin-left\":\"35px\"}},[_vm._v(\"Locate Event\")]):_vm._e(),_c('ThemeSelector'),_c('LoggedInUserActions',{ref:\"logginComponent\",attrs:{\"viewPortVisible\":false,\"delayedShow\":true,\"redirectToCurrent\":true}})],1)],1),(!_vm.showLoader && _vm.locatedEvents && !_vm.errored && _vm.locatedEvents.length > 1)?_c('div',{staticClass:\"container-float mx-4 my-4\"},[_c('h5',[_vm._v(\"Multiple events found\")]),_c('table',{staticClass:\"table table-dark table-bordered table-hover\"},[_vm._m(0),_c('tbody',_vm._l((_vm.locatedEvents),function(evt){return _c('tr',{key:evt.id,class:_vm.selectedEvent && evt.id === _vm.selectedEvent.id ? 'highlight' : '',on:{\"click\":function($event){return _vm.navigateToEvent(evt)}}},[_c('td',[_vm._v(_vm._s(evt.time)+\" \"),(evt.tags)?_c('TagList',{attrs:{\"tags\":evt.tags}}):_vm._e()],1),_c('td',[_c('router-link',{attrs:{\"to\":{ name: 'Event', params: {eventId: evt.id}},\"target\":\"_blank\"}},[_vm._v(_vm._s(evt.asteroid))])],1),_c('td',[_vm._v(_vm._s(evt.star))]),_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm._f(\"formatMag\")(evt.mag)))])])}),0)])]):_vm._e(),_c('div',{staticClass:\"text-center\"},[(_vm.showLoader)?_c('b-spinner',{staticClass:\"justify-content-center mt-3\",staticStyle:{\"width\":\"3rem\",\"height\":\"3rem\"},attrs:{\"varient\":\"secondary\"}}):_vm._e(),((!_vm.locatedEvents || _vm.locatedEvents.length == 0) && !_vm.showLoader)?_c('h5',{staticClass:\"text-danger mt-3\"},[_vm._v(\"No event was found for \"+_vm._s(_vm.form.ast)+\" on \"+_vm._s(_vm.form.date)+\" tagged as \"+_vm._s(_vm.form.tag))]):_vm._e(),(_vm.errored && !_vm.showLoader)?_c('h5',{staticClass:\"text-danger mt-3\"},[_vm._v(\"Error getting event for \"+_vm._s(_vm.form.ast)+\" on \"+_vm._s(_vm.form.date)+\" tagged as \"+_vm._s(_vm.form.tag))]):_vm._e()],1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',{staticClass:\"thead-dark text-center\"},[_c('tr',[_c('td',[_vm._v(\"Closest Approach, UT\")]),_c('td',[_vm._v(\"Asteroid\")]),_c('td',[_vm._v(\"Star\")]),_c('td',[_vm._v(\"Mag\")])])])}]\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LocateEvent.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LocateEvent.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LocateEvent.vue?vue&type=template&id=203b2672&scoped=true&\"\nimport script from \"./LocateEvent.vue?vue&type=script&lang=js&\"\nexport * from \"./LocateEvent.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LocateEvent.vue?vue&type=style&index=0&id=203b2672&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"203b2672\",\n null\n \n)\n\nexport default component.exports","import LocateEvent from '../views/LocateEvent.vue'\r\n\r\nexport default [\r\n {\r\n path: '/ext/locate',\r\n name: 'LocateEvent',\r\n component: LocateEvent,\r\n meta: { title: \"Locate Event\", headerless: true, public: true }\r\n }\r\n]","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"row pt-4\"},[(!_vm.showLoader && _vm.foundTags)?_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"row pt-2\"},[_c('div',{staticClass:\"col\"},[_c('span',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedTagGroup),expression:\"selectedTagGroup\"}],attrs:{\"type\":\"radio\",\"value\":\"m\",\"name\":\"tagSelection\",\"id\":\"myTags\"},domProps:{\"checked\":_vm._q(_vm.selectedTagGroup,\"m\")},on:{\"change\":[function($event){_vm.selectedTagGroup=\"m\"},function($event){return _vm.onChange()}]}}),_vm._v(\" My Tags \")]),_c('span',{staticClass:\"pl-4\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedTagGroup),expression:\"selectedTagGroup\"}],attrs:{\"type\":\"radio\",\"value\":\"a\",\"name\":\"tagSelection\",\"id\":\"allTags\"},domProps:{\"checked\":_vm._q(_vm.selectedTagGroup,\"a\")},on:{\"change\":[function($event){_vm.selectedTagGroup=\"a\"},function($event){return _vm.onChange()}]}}),_vm._v(\" All Feed Tags \")]),_c('span',{staticClass:\"pl-4\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedTagGroup),expression:\"selectedTagGroup\"}],attrs:{\"type\":\"radio\",\"value\":\"c\",\"name\":\"tagSelection\",\"id\":\"communityTags\"},domProps:{\"checked\":_vm._q(_vm.selectedTagGroup,\"c\")},on:{\"change\":[function($event){_vm.selectedTagGroup=\"c\"},function($event){return _vm.onChange()}]}}),_vm._v(\" Community Tags \")])])]),_c('div',{staticClass:\"row pt-2\"},[_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"table-responsive-md\"},[_c('table',{staticClass:\"table table-dark table-bordered table-hover\"},[_c('thead',{staticClass:\"thead-dark text-center\"},[_c('tr',[_c('td',[_vm._v(\"Tag\")]),_c('td',[_vm._v(\"Description\")]),_c('td',[_vm._v(\"Status\")]),(_vm.isSystemAdmin || _vm.selectedTagGroup === 'm')?_c('td',[_vm._v(\"Actions\")]):_vm._e()])]),_c('tbody',_vm._l((_vm.foundTags),function(tag){return _c('tr',{key:tag.id},[_c('td',[_c('span',{staticClass:\"badge badge-owc\"},[_vm._v(_vm._s(tag.name))])]),_c('td',[_c('p',[_vm._v(\" \"+_vm._s(tag.descr))])]),_c('td',{attrs:{\"nowrap\":\"\"}},[_c('i',{staticClass:\"fa pr-2\",class:tag.state == 1 ? 'fa-rss' : 'fa-hourglass'}),_vm._v(_vm._s(tag.state == 1 ? 'Live' : 'Pending'))]),(_vm.isSystemAdmin || _vm.selectedTagGroup === 'm')?_c('td',[_c('UpdateTag',{attrs:{\"tag\":tag}})],1):_vm._e()])}),0)]),(_vm.pagerVisible)?_c('ul',{staticClass:\"pagination justify-content-end pt-2\"},[_vm._m(0),_vm._m(1),_vm._m(2)]):_vm._e()])])])]):_vm._e(),_c('div',{staticClass:\"col-12 text-center\"},[(_vm.showLoader)?_c('b-spinner',{staticClass:\"justify-content-center mt-5\",staticStyle:{\"width\":\"3rem\",\"height\":\"3rem\"},attrs:{\"varient\":\"secondary\"}}):_vm._e(),(_vm.foundTags.length < 1 && !_vm.showLoader)?_c('h5',{staticClass:\"text-danger\"},[_vm._v(\"No tags found\")]):_vm._e()],1)])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{staticClass:\"page-item disabled\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"}},[_vm._v(\"«\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{staticClass:\"page-item active\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"}},[_vm._v(\"1\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{staticClass:\"page-item disabled\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"}},[_vm._v(\"»\")])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-button',{attrs:{\"title\":\"Edit\"},on:{\"click\":function($event){_vm.modalShow =!_vm.modalShow}}},[_c('i',{staticClass:\"fa fa-edit\"})]),_c('b-modal',{attrs:{\"title\":\"Update Tag\"},on:{\"show\":_vm.showModal,\"hidden\":_vm.resetModal,\"ok\":_vm.handleOk},model:{value:(_vm.modalShow),callback:function ($$v) {_vm.modalShow=$$v},expression:\"modalShow\"}},[_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"row pt-2\",staticStyle:{\"display\":\"flex\"}},[_c('div',{staticClass:\"col-lg-12\"},[_c('div',{staticClass:\"bs-component\"},[_c('form',[_c('fieldset',[_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"form-group col-md-12 pt-2\"},[_c('label',{attrs:{\"for\":\"tagName\"}},[_vm._v(\"Tag Name\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form.name),expression:\"form.name\"}],staticClass:\"form-control disabled-control\",attrs:{\"id\":\"tagName\"},domProps:{\"value\":(_vm.form.name)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.form, \"name\", $event.target.value)}}})])]),_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"form-group col-md-12\"},[_c('label',{attrs:{\"for\":\"tagUrl\"}},[_vm._v(\"Url\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form.url),expression:\"form.url\"}],staticClass:\"form-control\",attrs:{\"id\":\"tagUrl\"},domProps:{\"value\":(_vm.form.url)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.form, \"url\", $event.target.value)}}})])]),_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"form-group col-md-12\"},[_c('label',{attrs:{\"for\":\"tagDescr\"}},[_vm._v(\"Description\")]),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form.descr),expression:\"form.descr\"}],staticClass:\"form-control span6\",attrs:{\"rows\":\"4\",\"id\":\"tagDescr\"},domProps:{\"value\":(_vm.form.descr)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.form, \"descr\", $event.target.value)}}})])])])])])])])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdateTag.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdateTag.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UpdateTag.vue?vue&type=template&id=9ace654e&scoped=true&\"\nimport script from \"./UpdateTag.vue?vue&type=script&lang=js&\"\nexport * from \"./UpdateTag.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9ace654e\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Tags.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Tags.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Tags.vue?vue&type=template&id=8502028e&scoped=true&\"\nimport script from \"./Tags.vue?vue&type=script&lang=js&\"\nexport * from \"./Tags.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8502028e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container\"},[(!_vm.showLoader)?_c('div',{staticClass:\"row pt-2 pb-4 mt-3\"},[_c('div',{staticClass:\"col-lg-5\"},[_c('label',{attrs:{\"for\":\"orbitSource\"}},[_vm._v(\"Your Filters \"),(_vm.numberOfPersonalFilters > 0 && _vm.numberOfPersonalFilters != 3)?_c('small',{staticClass:\"px-2\"},[_vm._v(\"(\"),_c('span',{staticClass:\"text-muted mx-1\"},[_vm._v(\"You can define \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(3 - _vm.numberOfPersonalFilters))]),_vm._v(\" more filters\")]),_vm._v(\")\")]):_vm._e(),(_vm.numberOfPersonalFilters == 0)?_c('small',{staticClass:\"px-2\"},[_vm._v(\"(\"),_vm._m(0),_vm._v(\")\")]):_vm._e(),(_vm.numberOfPersonalFilters == 3)?_c('small',{staticClass:\"px-2\"},[_vm._v(\"(\"),_vm._m(1),_vm._v(\")\")]):_vm._e()]),_c('b-form-select',{staticClass:\"form-control\",attrs:{\"data-vv-name\":\"orbitSource\",\"id\":\"orbitSource\",\"options\":_vm.currentUserFilterOptions},on:{\"change\":_vm.onCurrFilterChanged},model:{value:(_vm.currFilter),callback:function ($$v) {_vm.currFilter=$$v},expression:\"currFilter\"}}),(_vm.validated)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('orbitSource'))+\" \")]):_vm._e()],1),_c('div',{staticClass:\"col-lg-3 filterbtn\"},[(_vm.canAddMoreFilters)?_c('button',{staticClass:\"btn btn-secondary mr-2 mr-4\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.addNewFilter}},[_vm._v(\"Add\")]):_vm._e()])]):_vm._e(),(_vm.currFilter != null)?_c('div',{staticClass:\"row pt-2 border\"},[_c('div',{staticClass:\"col-12 pb-4\"},[_c('div',{staticClass:\"row mx-1 my-3\"},[_c('div',{staticClass:\"col-lg-6\"},[_c('label',{attrs:{\"for\":\"filterName\"}},[_vm._v(\"Filter Name \"),(_vm.currFilter.isShared)?_c('span',[_vm._v(\"(readonly)\")]):_vm._e()]),_c('b-form-input',{class:_vm.currFilter.isShared ? 'cb-grayout' : '',attrs:{\"id\":\"filterName\",\"readonly\":_vm.currFilter.isShared},model:{value:(_vm.currFilter.name),callback:function ($$v) {_vm.$set(_vm.currFilter, \"name\", $$v)},expression:\"currFilter.name\"}})],1),_c('div',{staticClass:\"col-2\"}),(!_vm.currFilter.isShared)?_c('div',{staticClass:\"col-2\"},[_c('label',{attrs:{\"for\":\"isEnabled\"}},[_vm._v(\"Status\")]),_c('b-form-checkbox',{staticClass:\"cb-mid-align\",attrs:{\"id\":\"isEnabled\"},model:{value:(_vm.currFilter.isEnabled),callback:function ($$v) {_vm.$set(_vm.currFilter, \"isEnabled\", $$v)},expression:\"currFilter.isEnabled\"}},[_vm._v(\" Enabled \")])],1):_vm._e(),(_vm.currFilter.isShared)?_c('div',{staticClass:\"col-2\"},[_c('label',{attrs:{\"for\":\"isShared\"}},[_vm._v(\"Filter Type\")]),_vm._v(\" \"),_c('br'),_vm._m(2)]):_vm._e(),(_vm.currFilter.isShared)?_c('div',{staticClass:\"col-2\"},[_c('b-form-checkbox',{staticClass:\"cb-btm-align\",attrs:{\"id\":\"isEditingEnabled\",\"value\":false,\"unchecked-value\":true},model:{value:(_vm.currFilter.isReadOnly),callback:function ($$v) {_vm.$set(_vm.currFilter, \"isReadOnly\", $$v)},expression:\"currFilter.isReadOnly\"}},[_vm._v(\" Enable Editing \")])],1):_vm._e()]),_c('div',{staticClass:\"row mx-1 mt-3\"},[_c('div',{staticClass:\"col-lg-6 mt-3 pt-3 border-left border-top border-right border-info\"},[_c('span',{staticClass:\"text-light\"},[_vm._v(\"General Observability Criteria \"),_c('small',{staticClass:\"pl-2\"},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":_vm.showObservabilityExplanation}},[_vm._v(\"(show explanation)\")])])]),_c('hr',{staticStyle:{\"height\":\"1px\",\"border-width\":\"0\",\"color\":\"gray\",\"background-color\":\"gray\"}})]),_c('div',{staticClass:\"col-lg-2 mt-3\"}),(!_vm.currFilter.isShared)?_c('div',{staticClass:\"col-lg-4 mt-3 pt-3 border-left border-right border-top border-secondary\"},[_c('span',{staticClass:\"text-light\"},[_vm._v(\"Site & Distance from Shadow\")]),_c('hr',{staticStyle:{\"height\":\"1px\",\"border-width\":\"0\",\"color\":\"gray\",\"background-color\":\"gray\"}})]):_vm._e()]),_c('div',{staticClass:\"row mx-1\"},[_c('div',{staticClass:\"col-2 pb-3 pt-1 border-left border-info\"},[_c('label',{attrs:{\"for\":\"starMag\"}},[_vm._v(\"Max Star Mag\")]),_c('b-form-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('between:8,16'),expression:\"'between:8,16'\"}],attrs:{\"id\":\"starMag\",\"data-vv-name\":\"starMag\",\"type\":\"number\",\"step\":\"0.5\",\"min\":\"8\",\"max\":\"16\",\"readonly\":_vm.currFilter.isReadOnly},model:{value:(_vm.currFilter.starMag),callback:function ($$v) {_vm.$set(_vm.currFilter, \"starMag\", $$v)},expression:\"currFilter.starMag\"}}),(_vm.validated)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('starMag'))+\" \")]):_vm._e(),_c('b-tooltip',{attrs:{\"target\":\"starMag\",\"triggers\":\"hover\",\"placement\":\"bottom\",\"variant\":\"primary\",\"delay\":{ 'show': 1500 }}},[_vm._v(\" Maximum star magnitude \")])],1),_c('div',{staticClass:\"col-2 pb-3 pt-1 border-info\"},[_c('label',{attrs:{\"for\":\"minDur\"}},[_vm._v(\"Min Durarion (sec)\")]),_c('b-form-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('between:0.1,60'),expression:\"'between:0.1,60'\"}],attrs:{\"id\":\"minDur\",\"data-vv-name\":\"minDur\",\"type\":\"number\",\"step\":\"0.1\",\"min\":\"0.1\",\"max\":\"60\",\"readonly\":_vm.currFilter.isReadOnly},model:{value:(_vm.currFilter.minDur),callback:function ($$v) {_vm.$set(_vm.currFilter, \"minDur\", $$v)},expression:\"currFilter.minDur\"}}),(_vm.validated)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('minDur'))+\" \")]):_vm._e(),_c('b-tooltip',{attrs:{\"target\":\"minDur\",\"triggers\":\"hover\",\"placement\":\"bottom\",\"variant\":\"primary\",\"delay\":{ 'show': 1500 }}},[_vm._v(\" Minimum event duration in seconds \")])],1),_c('div',{staticClass:\"col-2 pb-3 pt-1 border-right border-info\"},[_c('label',{attrs:{\"for\":\"magDrop\"}},[_vm._v(\"Min Mag Drop\")]),_c('b-form-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('between:0.1,10'),expression:\"'between:0.1,10'\"}],attrs:{\"id\":\"magDrop\",\"data-vv-name\":\"magDrop\",\"type\":\"number\",\"step\":\"0.1\",\"min\":\"0.1\",\"max\":\"10\",\"readonly\":_vm.currFilter.isReadOnly},model:{value:(_vm.currFilter.magDrop),callback:function ($$v) {_vm.$set(_vm.currFilter, \"magDrop\", $$v)},expression:\"currFilter.magDrop\"}}),(_vm.validated)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('magDrop'))+\" \")]):_vm._e(),_c('b-tooltip',{attrs:{\"target\":\"magDrop\",\"triggers\":\"hover\",\"placement\":\"bottom\",\"variant\":\"primary\",\"delay\":{ 'show': 1500 }}},[_vm._v(\" Minimum event magnitude drop in Red \")])],1),_c('div',{staticClass:\"col-2\"}),(!_vm.currFilter.isShared)?_c('div',{staticClass:\"col-4 pb-3 pt-1 border-left border-right border-secondary\"},[_c('label',{attrs:{\"for\":\"location\"}},[_c('router-link',{attrs:{\"to\":{ name: 'UserProfile', hash: '#saved-sites'}}},[_vm._v(\"Location\")])],1),_c('b-form-select',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({required: true}),expression:\"{required: true}\"}],staticClass:\"form-control\",attrs:{\"data-vv-name\":\"location\",\"id\":\"location\",\"options\":_vm.locations},model:{value:(_vm.currFilter.selectedSite),callback:function ($$v) {_vm.$set(_vm.currFilter, \"selectedSite\", $$v)},expression:\"currFilter.selectedSite\"}}),(_vm.validated)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('location'))+\" \")]):_vm._e()],1):_vm._e()]),_c('div',{staticClass:\"row mx-1\"},[_c('div',{staticClass:\"col-2 pb-3 border-left border-bottom border-info\"},[_c('label',{attrs:{\"for\":\"aperture\"}},[_vm._v(\"Aperture (cm)\")]),_c('b-form-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('between:3,65'),expression:\"'between:3,65'\"}],attrs:{\"id\":\"aperture\",\"data-vv-name\":\"aperture\",\"type\":\"number\",\"step\":\"0.5\",\"min\":\"3\",\"max\":\"65\",\"readonly\":_vm.currFilter.isReadOnly},model:{value:(_vm.currFilter.aperture),callback:function ($$v) {_vm.$set(_vm.currFilter, \"aperture\", $$v)},expression:\"currFilter.aperture\"}}),(_vm.validated)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('aperture'))+\" \")]):_vm._e(),_c('b-tooltip',{attrs:{\"target\":\"aperture\",\"triggers\":\"hover\",\"placement\":\"bottom\",\"variant\":\"primary\",\"delay\":{ 'show': 1500 }}},[_vm._v(\" Telescope aperture \")])],1),_c('div',{staticClass:\"col-2 pb-3 border-bottom border-info\"},[_c('label',{attrs:{\"for\":\"detectionFrames\"}},[_vm._v(\"Detection (frames)\")]),_c('b-form-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('between:1,10'),expression:\"'between:1,10'\"}],attrs:{\"id\":\"detectionFrames\",\"data-vv-name\":\"detectionFrames\",\"type\":\"number\",\"step\":\"1\",\"min\":\"1\",\"max\":\"10\",\"readonly\":_vm.currFilter.isReadOnly},model:{value:(_vm.currFilter.detectionFrames),callback:function ($$v) {_vm.$set(_vm.currFilter, \"detectionFrames\", $$v)},expression:\"currFilter.detectionFrames\"}}),(_vm.validated)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('detectionFrames'))+\" \")]):_vm._e(),_c('b-tooltip',{attrs:{\"target\":\"detectionFrames\",\"triggers\":\"hover\",\"placement\":\"bottom\",\"variant\":\"primary\",\"delay\":{ 'show': 1500 }}},[_vm._v(\" Minimum number of desired video frames to be recorded for a central positive event \")])],1),_c('div',{staticClass:\"col-2 pb-3 border-right border-bottom border-info\"},[_c('label',{attrs:{\"for\":\"magAdjust\"}},[_vm._v(\"MagAdjust\")]),_c('b-form-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('between:-5,5'),expression:\"'between:-5,5'\"}],attrs:{\"id\":\"magAdjust\",\"data-vv-name\":\"magAdjust\",\"type\":\"number\",\"step\":\"0.5\",\"min\":\"-5\",\"max\":\"5\",\"readonly\":_vm.currFilter.isReadOnly},model:{value:(_vm.currFilter.magAdjust),callback:function ($$v) {_vm.$set(_vm.currFilter, \"magAdjust\", $$v)},expression:\"currFilter.magAdjust\"}}),(_vm.validated)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('magAdjust'))+\" \")]):_vm._e(),_c('b-tooltip',{attrs:{\"target\":\"magAdjust\",\"triggers\":\"hover\",\"placement\":\"bottom\",\"variant\":\"primary\",\"delay\":{ 'show': 1500 }}},[_vm._v(\" A factor in stellar magnitudes to adjust for darker or light-poluted skies and/or for more or less sensitive camera \")])],1),_c('div',{staticClass:\"col-2\"}),(!_vm.currFilter.isShared)?_c('div',{staticClass:\"col-2 pt-2 pb-3 border-left border-bottom border-secondary\"},[_c('label',{attrs:{\"for\":\"location\"}},[_vm._v(\"Max Distance (km)\")]),_c('b-form-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('between:1,1000'),expression:\"'between:1,1000'\"}],attrs:{\"id\":\"distance\",\"data-vv-name\":\"distance\",\"type\":\"number\",\"step\":\"1\",\"min\":\"1\",\"max\":\"1000\"},model:{value:(_vm.currFilter.distance),callback:function ($$v) {_vm.$set(_vm.currFilter, \"distance\", $$v)},expression:\"currFilter.distance\"}}),(_vm.validated)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('distance'))+\" \")]):_vm._e()],1):_vm._e(),(!_vm.currFilter.isShared)?_c('div',{staticClass:\"col-2 pt-2 pb-3 border-right border-bottom border-secondary\"},[_c('label',{attrs:{\"for\":\"distFrom\"}},[_vm._v(\"From\")]),_c('b-form-select',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({required: true}),expression:\"{required: true}\"}],staticClass:\"form-control\",attrs:{\"data-vv-name\":\"distFrom\",\"id\":\"distFrom\",\"options\":_vm.distanceReferences},model:{value:(_vm.currFilter.distFrom),callback:function ($$v) {_vm.$set(_vm.currFilter, \"distFrom\", $$v)},expression:\"currFilter.distFrom\"}}),(_vm.validated)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('distFrom'))+\" \")]):_vm._e()],1):_vm._e()]),(!_vm.currFilter.isShared)?_c('div',{staticClass:\"row mx-1 mt-3\"},[_vm._m(3),_c('div',{staticClass:\"col-lg-2 mt-3\"}),(!_vm.currFilter.isShared)?_c('div',{staticClass:\"col-lg-4 mt-3 pt-3 border-left border-right border-top border-danger\"},[_c('span',{staticClass:\"text-light\"},[_vm._v(\"Probability & Issue Flags\")]),_c('hr',{staticStyle:{\"height\":\"1px\",\"border-width\":\"0\",\"color\":\"gray\",\"background-color\":\"gray\"}})]):_vm._e()]):_vm._e(),(!_vm.currFilter.isShared)?_c('div',{staticClass:\"row mx-1\"},[_c('div',{staticClass:\"col-2 pb-3 pt-1 border-left border-success\"},[_c('label',{attrs:{\"for\":\"altitude\"}},[_vm._v(\"Min Altitude (deg)\")]),_c('b-form-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('between:0,80'),expression:\"'between:0,80'\"}],attrs:{\"id\":\"altitude\",\"data-vv-name\":\"distance\",\"type\":\"number\",\"step\":\"1\",\"min\":\"0\",\"max\":\"80\"},model:{value:(_vm.currFilter.minAltitude),callback:function ($$v) {_vm.$set(_vm.currFilter, \"minAltitude\", $$v)},expression:\"currFilter.minAltitude\"}}),(_vm.validated)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('distance'))+\" \")]):_vm._e(),_c('b-tooltip',{attrs:{\"target\":\"altitude\",\"triggers\":\"hover\",\"placement\":\"bottom\",\"variant\":\"primary\",\"delay\":{ 'show': 1500 }}},[_vm._v(\" Minimum altitude of the star above a zero horizon \")])],1),_c('div',{staticClass:\"col-4 pb-3 pt-1 border-right border-success\"},[_c('label',{attrs:{\"for\":\"altitude\"}},[_vm._v(\"Use Extinction Coeff. (for lower alt events)\")]),_c('b-form-select',{staticClass:\"form-control\",attrs:{\"id\":\"extK\",\"options\":_vm.extinctionReferences},model:{value:(_vm.currFilter.extK),callback:function ($$v) {_vm.$set(_vm.currFilter, \"extK\", $$v)},expression:\"currFilter.extK\"}}),_c('b-tooltip',{attrs:{\"target\":\"extK\",\"triggers\":\"hover\",\"placement\":\"bottom\",\"variant\":\"primary\",\"delay\":{ 'show': 1500 }}},[_vm._v(\" Atmospheric extinction coefficient to be used when determining the \"),_c('b',[_vm._v(\"General Observability\")]),_vm._v(\" of the event at lower altitudes \")])],1),_c('div',{staticClass:\"col-2\"}),_c('div',{staticClass:\"col-2 pb-3 pt-1 border-left border-danger\"},[_c('b-form-checkbox',{staticClass:\"cb-pad-btm\",attrs:{\"id\":\"maxEPWEnabled\"},model:{value:(_vm.currFilter.maxEPWEnabled),callback:function ($$v) {_vm.$set(_vm.currFilter, \"maxEPWEnabled\", $$v)},expression:\"currFilter.maxEPWEnabled\"}},[_vm._v(\" Max SigPW \")]),(_vm.currFilter.maxEPWEnabled)?_c('b-form-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('between:0.05,100'),expression:\"'between:0.05,100'\"}],attrs:{\"id\":\"maxEPW\",\"data-vv-name\":\"maxEPW\",\"type\":\"number\",\"step\":\"0.01\",\"min\":\"0.05\",\"max\":\"100\"},model:{value:(_vm.currFilter.maxEPW),callback:function ($$v) {_vm.$set(_vm.currFilter, \"maxEPW\", $$v)},expression:\"currFilter.maxEPW\"}}):_vm._e(),(_vm.validated)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('maxEPW'))+\" \")]):_vm._e(),(!_vm.currFilter.maxEPWEnabled)?_c('b-form-input',{staticClass:\"cb-grayout\",attrs:{\"id\":\"maxEPWEOff\",\"value\":\"N/A\",\"disabled\":true,\"readonly\":true}}):_vm._e(),(_vm.currFilter.maxEPWEnabled)?_c('b-tooltip',{attrs:{\"target\":\"maxEPW\",\"triggers\":\"hover\",\"placement\":\"bottom\",\"variant\":\"primary\",\"delay\":{ 'show': 1500 }}},[_vm._v(\" Maximum 1-sigma prediction error in path widths \")]):_vm._e()],1),_c('div',{staticClass:\"col-2 pb-3 pt-1 border-right border-danger\"},[_c('b-form-checkbox',{staticClass:\"cb-pad-btm\",attrs:{\"id\":\"maxRUWEEnabled\"},model:{value:(_vm.currFilter.maxRUWEEnabled),callback:function ($$v) {_vm.$set(_vm.currFilter, \"maxRUWEEnabled\", $$v)},expression:\"currFilter.maxRUWEEnabled\"}},[_vm._v(\" Max RUWE \")]),(_vm.currFilter.maxRUWEEnabled)?_c('b-form-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('between:0.1,10'),expression:\"'between:0.1,10'\"}],attrs:{\"id\":\"maxRUWE\",\"data-vv-name\":\"maxRUWE\",\"type\":\"number\",\"step\":\"0.1\",\"min\":\"0.1\",\"max\":\"10\"},model:{value:(_vm.currFilter.maxRUWE),callback:function ($$v) {_vm.$set(_vm.currFilter, \"maxRUWE\", $$v)},expression:\"currFilter.maxRUWE\"}}):_vm._e(),(_vm.validated)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('maxRUWE'))+\" \")]):_vm._e(),(!_vm.currFilter.maxRUWEEnabled)?_c('b-form-input',{staticClass:\"cb-grayout\",attrs:{\"id\":\"maxRUWEOff\",\"value\":\"N/A\",\"disabled\":true,\"readonly\":true}}):_vm._e(),(_vm.currFilter.maxRUWEEnabled)?_c('b-tooltip',{attrs:{\"target\":\"maxRUWE\",\"triggers\":\"hover\",\"interactive\":\"false\",\"placement\":\"bottom\",\"variant\":\"primary\",\"delay\":{ 'show': 1500 }}},[_vm._v(\" Maximum \"),_c('a',{attrs:{\"href\":\"https://gea.esac.esa.int/archive/documentation/GDR2/Gaia_archive/chap_datamodel/sec_dm_main_tables/ssec_dm_ruwe.html\",\"target\":\"_blank\"}},[_vm._v(\"RUWE\")]),_vm._v(\" value for the star from the Gaia catalogue \")]):_vm._e()],1)]):_vm._e(),(!_vm.currFilter.isShared)?_c('div',{staticClass:\"row mx-1\"},[_c('div',{staticClass:\"col-2 pb-3 border-left border-bottom border-success\"},[_c('label',{attrs:{\"for\":\"maxSunAlt\"}},[_vm._v(\"Max Sun Alt (deg)\")]),(!_vm.currFilter.inclDTO)?_c('b-form-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('between:-18,0'),expression:\"'between:-18,0'\"}],attrs:{\"id\":\"maxSunAlt\",\"data-vv-name\":\"maxSunAlt\",\"type\":\"number\",\"step\":\"1\",\"min\":\"-18\",\"max\":\"0\"},model:{value:(_vm.currFilter.maxSunAlt),callback:function ($$v) {_vm.$set(_vm.currFilter, \"maxSunAlt\", $$v)},expression:\"currFilter.maxSunAlt\"}}):_vm._e(),(_vm.validated)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('maxSunAlt'))+\" \")]):_vm._e(),(_vm.currFilter.inclDTO)?_c('b-form-input',{staticClass:\"cb-grayout\",attrs:{\"id\":\"maxSunAltOff\",\"value\":\"N/A\",\"disabled\":true,\"readonly\":true}}):_vm._e(),(!_vm.currFilter.inclDTO)?_c('b-tooltip',{attrs:{\"target\":\"maxSunAlt\",\"triggers\":\"hover\",\"placement\":\"bottom\",\"variant\":\"primary\",\"delay\":{ 'show': 1500 }}},[_vm._v(\" Maximum altitude of the Sun below the horizon for the inclusion of twilight events \")]):_vm._e()],1),_c('div',{staticClass:\"col-4 pb-3 border-right border-bottom border-success\"},[_c('label',{attrs:{\"for\":\"inclDTO\"}},[_vm._v(\"Daytime Events\")]),_c('b-form-checkbox',{staticClass:\"cb-mid-align\",attrs:{\"id\":\"inclDTO\"},model:{value:(_vm.currFilter.inclDTO),callback:function ($$v) {_vm.$set(_vm.currFilter, \"inclDTO\", $$v)},expression:\"currFilter.inclDTO\"}},[_c('span',{attrs:{\"id\":\"inclDTOText\"}},[_vm._v(\"Include observable daytime events\")])]),_c('b-tooltip',{attrs:{\"target\":\"inclDTOText\",\"triggers\":\"hover\",\"placement\":\"bottom\",\"variant\":\"primary\",\"delay\":{ 'show': 1500 }}},[_vm._v(\" When selected the Occult's criteria for inclusion of daytime events will be applied \")])],1),_c('div',{staticClass:\"col-2\"}),_c('div',{staticClass:\"col-2 pb-3 border-left border-bottom border-danger\"},[_c('label',{attrs:{\"for\":\"minProb\"}},[_vm._v(\"Min Probability (%)\")]),(!_vm.currFilter.maxEPWEnabled)?_c('b-form-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('between:0,100'),expression:\"'between:0,100'\"}],attrs:{\"id\":\"minProb\",\"data-vv-name\":\"minProb\",\"type\":\"number\",\"step\":\"5\",\"min\":\"0\",\"max\":\"100\"},model:{value:(_vm.currFilter.minProb),callback:function ($$v) {_vm.$set(_vm.currFilter, \"minProb\", $$v)},expression:\"currFilter.minProb\"}}):_vm._e(),(_vm.validated)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('minProb'))+\" \")]):_vm._e(),(_vm.currFilter.maxEPWEnabled)?_c('b-form-input',{staticClass:\"cb-grayout\",attrs:{\"id\":\"minProbOff\",\"value\":\"N/A\",\"disabled\":true,\"readonly\":true}}):_vm._e(),(!_vm.currFilter.maxEPWEnabled)?_c('b-tooltip',{attrs:{\"target\":\"minProb\",\"triggers\":\"hover\",\"placement\":\"bottom\",\"variant\":\"primary\",\"delay\":{ 'show': 1500 }}},[_vm._v(\" Minimum probability for a positive detection at the selected site \")]):_vm._e()],1),_c('div',{staticClass:\"col-2 pb-3 border-right border-bottom border-danger\"},[_c('label',{attrs:{\"for\":\"excBadStars\"}},[_vm._v(\"Stars with Issues\")]),_c('b-form-checkbox',{staticClass:\"cb-mid-align\",attrs:{\"id\":\"excBadStars\"},model:{value:(_vm.currFilter.excBadStars),callback:function ($$v) {_vm.$set(_vm.currFilter, \"excBadStars\", $$v)},expression:\"currFilter.excBadStars\"}},[_c('span',{attrs:{\"id\":\"excBadStarsText\"}},[_vm._v(\"Exclude events\")])]),_c('b-tooltip',{attrs:{\"target\":\"excBadStarsText\",\"triggers\":\"hover\",\"placement\":\"bottom\",\"variant\":\"primary\",\"delay\":{ 'show': 1500 }}},[_vm._v(\" When selected events involving stars that have any issue flags, will not be included \")])],1)]):_vm._e(),(false)?_c('div',{staticClass:\"row pt-3\"},[_c('div',{staticClass:\"col-12\"},[_c('span',{staticStyle:{\"color\":\"gray\"},on:{\"click\":function($event){_vm.showSpecializedFilters = !_vm.showSpecializedFilters}}},[_vm._v(\"Specialized Criteria \"),(_vm.showSpecializedFilters)?_c('i',{staticClass:\"fa pr-1 fa-chevron-up\"}):_vm._e(),(!_vm.showSpecializedFilters)?_c('i',{staticClass:\"fa pr-1 fa-chevron-down\"}):_vm._e()])]),_c('div',{staticClass:\"col-12\"},[_c('div',{class:_vm.showSpecializedFilters ? '' : 'collapse',attrs:{\"id\":\"SpecializedFilters\"}},[_c('hr',{staticStyle:{\"height\":\"1px\",\"width\":\"100%\",\"border-width\":\"0\",\"color\":\"rgb(65, 65, 65)\",\"background-color\":\"rgb(65, 65, 65)\"}}),_vm._m(4),_c('div',{staticClass:\"row pt-2\",staticStyle:{\"display\":\"flex\"}},[_c('div',{staticClass:\"col-lg-3\"},[_c('label',{attrs:{\"for\":\"minSemMagAxis\"}},[_vm._v(\"Semi-major axis greater than (au)\")]),_c('b-form-input',{attrs:{\"id\":\"minSemMagAxis\",\"type\":\"number\",\"step\":\"1\",\"min\":\"0\",\"max\":\"100\"},model:{value:(_vm.currFilter.minSemMagAxis),callback:function ($$v) {_vm.$set(_vm.currFilter, \"minSemMagAxis\", $$v)},expression:\"currFilter.minSemMagAxis\"}})],1),_c('div',{staticClass:\"col-lg-3\"},[_c('label',{attrs:{\"for\":\"maxSemMagAxis\"}},[_vm._v(\"Semi-major axis less than (au)\")]),_c('b-form-input',{attrs:{\"id\":\"maxSemMagAxis\",\"type\":\"number\",\"step\":\"1\",\"min\":\"0\",\"max\":\"100\"},model:{value:(_vm.currFilter.maxSemMagAxis),callback:function ($$v) {_vm.$set(_vm.currFilter, \"maxSemMagAxis\", $$v)},expression:\"currFilter.maxSemMagAxis\"}})],1),_vm._m(5)]),_vm._m(6)])])]):_vm._e()]),(!_vm.currFilter.isReadOnly)?_c('div',{staticClass:\"col-12\"},[(_vm.currFilter.isShared && !_vm.currFilter.isReadOnly)?_c('div',[_c('i',{staticClass:\"fa fa-warning warn-strong\"}),_vm._m(7)]):_vm._e(),_c('div',{staticClass:\"row pb-3\"},[_c('hr',{staticStyle:{\"height\":\"1px\",\"width\":\"97%\",\"border-width\":\"0\",\"color\":\"gray\",\"background-color\":\"gray\"}}),_c('div',{staticClass:\"col-5\"}),_c('div',{staticClass:\"col-2\"},[_c('button',{staticClass:\"btn btn-primary align-self-end btn-block mt-2\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.handleSave()}}},[(_vm.isSubmitting)?_c('b-spinner',{staticClass:\"justify-content-center mr-2\",staticStyle:{\"width\":\"1rem\",\"height\":\"1rem\"},attrs:{\"varient\":\"secondary\"}}):_vm._e(),_vm._v(\"Save\")],1)]),_c('div',{staticClass:\"col-2\"},[(_vm.currFilter.isNew)?_c('button',{staticClass:\"btn btn-secondary align-self-end btn-block mt-2\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.unselectUnsavedNewFilter()}}},[_vm._v(\"Cancel\")]):_vm._e()]),_c('div',{staticClass:\"col-2\"}),(!_vm.currFilter.isShared && !_vm.currFilter.isNew)?_c('div',{staticClass:\"col-1\"},[_c('b-dropdown',{staticClass:\"align-self-end mt-2\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('i',{staticClass:\"fa fa-bars\"})]},proxy:true}],null,false,3474634490)},[_c('b-dropdown-item-button',{on:{\"click\":function($event){return _vm.handleDelete()}}},[_c('i',{staticClass:\"fa fa-trash pr-3 text-danger\"}),_vm._v(\"Delete this filter \")])],1)],1):_vm._e()])]):_vm._e()]):_vm._e(),_c('div',{staticClass:\"text-center\"},[(_vm.showLoader)?_c('b-spinner',{staticClass:\"justify-content-center mt-3\",staticStyle:{\"width\":\"3rem\",\"height\":\"3rem\"},attrs:{\"varient\":\"secondary\"}}):_vm._e()],1),_c('b-modal',{attrs:{\"size\":\"lg\",\"title\":\"General Observability Criteria\"},on:{\"ok\":function($event){_vm.showExplanation = false}},scopedSlots:_vm._u([{key:\"modal-footer\",fn:function(){return [_c('button',{directives:[{name:\"b-modal\",rawName:\"v-b-modal.modal-close_visit\",modifiers:{\"modal-close_visit\":true}}],staticClass:\"btn btn-primary btn-sm m-1\",on:{\"click\":function($event){_vm.showExplanation = false}}},[_vm._v(\"Close\")])]},proxy:true}]),model:{value:(_vm.showExplanation),callback:function ($$v) {_vm.showExplanation=$$v},expression:\"showExplanation\"}},[_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"row pt-2\",staticStyle:{\"display\":\"flex\"}},[_c('div',{staticClass:\"col-lg-12\"},[_c('div',{staticClass:\"bs-component\"},[_vm._v(\" The General Observability Criteria in OWC has been designed to easily exclude events that are not going to be observable because they are too short for the given star magnitude to be reliably recorded. The user can also provide a hard limit on the minimum duration or the magnitude drop or a limit on the star magnitude for exclusion.\"),_c('br'),_c('br'),_vm._v(\" The filtering assumes that video recording will be used for the detection and is based on the aperture of the telescope to be used and the minimum desired number of positive detection video frames for the maximum predicted event duration.\"),_c('br'),_c('br'),_vm._v(\" An event will be included if:\"),_c('br'),_c('br'),_c('span',{staticStyle:{\"color\":\"aquamarine\"}},[_c('b',[_vm._v(\"StarMag\")]),_vm._v(\" < 5 * Log\"),_c('sub',[_vm._v(\"10\")]),_vm._v(\"(\"),_c('b',[_vm._v(\"Aperture\")]),_vm._v(\") + 2.5 * Log\"),_c('sub',[_vm._v(\"10\")]),_vm._v(\"(\"),_c('b',[_vm._v(\"MaxDuration\")]),_vm._v(\"/\"),_c('b',[_vm._v(\"DetectionFrames\")]),_vm._v(\") + 8.5 + \"),_c('b',[_vm._v(\"MagAdjust\")])]),_c('br'),_c('br'),_vm._v(\" The formula allows for a user provided magnitude adjustment factor so it can be tuned to particular personal conditions. Proving positive values for MagAdjust will adjust for having better conditions (e.g. darker skies or more sensitive equipment) while negative values will adjust for having worse conditions (e.g. light polluted skies or less sensitive equipment).\"),_c('br'),_c('br'),_vm._v(\" The formula does not use the star magnitude, the maximum predicted event duration or the magnitude drop directly however the user can configure preferred limits for these parameters and events that do not meet these limits will be excluded upfront without applying the formula. These extra parameters are included in the criteria as some observers prefer to set them directly as their hard limits of what they are comfortable to attempt to observe.\"),_c('br'),_c('br'),_vm._v(\" During the development and testing of the formula it was determined that the predicted magnitude drop does not have significant effect and is not part of the formula. \"),_c('br'),_c('br'),_vm._v(\" When enabled the formula will also adjust for magnitudes lost due to atmospheric extinction for lower altitude events. \")])])])])]),_c('confirm-dialogue',{ref:\"confirmDialogue\"})],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"text-muted mx-1\"},[_vm._v(\"You can define \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(\"3\")]),_vm._v(\" filters in total\")])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"text-muted mx-1\"},[_vm._v(\"All \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(\"3\")]),_vm._v(\" filters have been defined\")])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"cb-mid-align\"},[_c('strong',[_vm._v(\"Regional Events Filter\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-lg-6 mt-3 pt-3 border-left border-top border-right border-success\"},[_c('span',{staticClass:\"text-light\"},[_vm._v(\"Altitude & Twilight/Daytime Events\")]),_c('hr',{staticStyle:{\"height\":\"1px\",\"border-width\":\"0\",\"color\":\"gray\",\"background-color\":\"gray\"}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row pt-2\",staticStyle:{\"display\":\"flex\"}},[_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"bs-component\"},[_c('form',[_c('fieldset',[_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"form-group col-md-12\"},[_c('label',{attrs:{\"for\":\"asteroidNames\"}},[_vm._v(\"Asteroid Numbers (semicolon separted)\")]),_c('input',{staticClass:\"form-control\",attrs:{\"id\":\"asteroidNames\"}})])])])])])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-lg-6\"},[_c('div',{staticClass:\"bs-component\"},[_c('form',[_c('fieldset',[_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"form-group col-md-12\"},[_c('label',{attrs:{\"for\":\"asteroidClasses\"}},[_vm._v(\"Asteroid Classes\")]),_c('input',{staticClass:\"form-control\",attrs:{\"id\":\"asteroidClasses\"}})])])])])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row pt-2\",staticStyle:{\"display\":\"flex\"}},[_c('div',{staticClass:\"col-12\"},[_c('input',{staticClass:\"mr-2\",attrs:{\"type\":\"checkbox\"}}),_vm._v(\"with Moons \"),_c('input',{staticClass:\"mr-2 ml-4\",attrs:{\"type\":\"checkbox\"}}),_vm._v(\"with Rings \"),_c('input',{staticClass:\"mr-2 ml-4\",attrs:{\"type\":\"checkbox\"}}),_vm._v(\"with Shape Models \"),_c('input',{staticClass:\"mr-2 ml-4\",attrs:{\"type\":\"checkbox\"}}),_vm._v(\"with No Previous Observations \")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('small',{staticClass:\"px-2\"},[_c('span',{staticClass:\"text-danger mx-1\"},[_c('strong',[_vm._v(\"If you modify this Regional Events Filter the changes will apply for everyone who is using your filter\")])])])}]\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Filters.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Filters.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Filters.vue?vue&type=template&id=9e88025c&scoped=true&\"\nimport script from \"./Filters.vue?vue&type=script&lang=js&\"\nexport * from \"./Filters.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Filters.vue?vue&type=style&index=0&id=9e88025c&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9e88025c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container-fluid\"},[_c('div',{staticClass:\"row pt-2\"},[_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"row pt-2\"},[_vm._m(0),_c('div',{staticClass:\"col-xl-4 col-lg-4 col-md-12\"},[_vm._m(1),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-lg-12 text-center pt-5\",staticStyle:{\"color\":\"rgb(0, 188, 140)\"}},[_c('h6',{attrs:{\"id\":\"evtTitle\"}},[_vm._v(_vm._s(_vm.selectedEventTitle))])])]),_vm._m(2),_vm._m(3),_vm._m(4)])])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-xl-8 col-lg-8 col-md-12\"},[_c('ul',{staticClass:\"pagination pagination-secondary mx-auto justify-content-center\"},[_c('li',{staticClass:\"page-item active\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"}},[_vm._v(\"Month\")])]),_c('li',{staticClass:\"page-item\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"}},[_vm._v(\"W1\")])]),_c('li',{staticClass:\"page-item\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"}},[_vm._v(\"W2\")])]),_c('li',{staticClass:\"page-item\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"}},[_vm._v(\"W3\")])]),_c('li',{staticClass:\"page-item\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"}},[_vm._v(\"W4-5\")])]),_c('li',{staticClass:\"page-item\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"}},[_vm._v(\"D1-3\")])]),_c('li',{staticClass:\"page-item\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"}},[_vm._v(\"D4-6\")])]),_c('li',{staticClass:\"page-item\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"}},[_vm._v(\"D7-9\")])]),_c('li',{staticClass:\"page-item\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"}},[_vm._v(\"D10-12\")])]),_c('li',{staticClass:\"page-item\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"}},[_vm._v(\"D13-15\")])]),_c('li',{staticClass:\"page-item\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"}},[_vm._v(\"D16-18\")])]),_c('li',{staticClass:\"page-item\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"}},[_vm._v(\"D19-21\")])]),_c('li',{staticClass:\"page-item\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"}},[_vm._v(\"D22-24\")])]),_c('li',{staticClass:\"page-item\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"}},[_vm._v(\"D25-27\")])]),_c('li',{staticClass:\"page-item\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"}},[_vm._v(\"D29-31\")])])]),_c('div',{staticClass:\"table-responsive-md\"},[_c('table',{staticClass:\"table table-dark table-bordered table-hover\"},[_c('thead',{staticClass:\"thead-dark text-center\"},[_c('tr',[_c('td',[_vm._v(\"Event Time\")]),_c('td',[_vm._v(\"Asteroid\")]),_c('td',[_vm._v(\"Star\")]),_c('td',[_vm._v(\"Mag Drop\")]),_c('td',[_vm._v(\"Max Dur.\")]),_c('td',[_vm._v(\"Mag\")]),_c('td',[_vm._v(\"Rank\")]),_c('td',[_vm._v(\"Countries\")]),_c('td',[_vm._v(\"Tags\")])])]),_c('tbody',[_c('tr',{staticClass:\"highlight\",attrs:{\"id\":\"tr1\",\"data-occel\":\"1\"}},[_c('td',[_vm._v(\"2020-02-01 14:56:23\")]),_c('td',[_vm._v(\"(6734) Benzenberg\")]),_c('td',[_vm._v(\"4U 450-001166\")]),_c('td',[_vm._v(\"3.0\")]),_c('td',[_vm._v(\"1.0\")]),_c('td',[_vm._v(\"13.9\")]),_c('td',[_vm._v(\"24\")]),_c('td',[_c('span',{staticClass:\"badge\"},[_vm._v(\"IT\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"FR\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"SP\")])]),_c('td',[_c('span',{staticClass:\"badge\"},[_vm._v(\"ITALOccult\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"UKOCL\")])])]),_c('tr',{attrs:{\"id\":\"tr2\",\"data-occel\":\"2\"}},[_c('td',[_vm._v(\"2020-02-01 14:56:23\")]),_c('td',[_vm._v(\"(6734) Benzenberg\")]),_c('td',[_vm._v(\"4U 450-001166\")]),_c('td',[_vm._v(\"3.0\")]),_c('td',[_vm._v(\"1.0\")]),_c('td',[_vm._v(\"13.9\")]),_c('td',[_vm._v(\"24\")]),_c('td',[_c('span',{staticClass:\"badge\"},[_vm._v(\"IT\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"FR\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"SP\")])]),_c('td',[_c('span',{staticClass:\"badge\"},[_vm._v(\"ITALOccult\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"UKOCL\")])])]),_c('tr',{attrs:{\"id\":\"tr3\",\"data-occel\":\"3\"}},[_c('td',[_vm._v(\"2020-02-01 14:56:23\")]),_c('td',[_vm._v(\"(6734) Benzenberg\")]),_c('td',[_vm._v(\"4U 450-001166\")]),_c('td',[_vm._v(\"3.0\")]),_c('td',[_vm._v(\"1.0\")]),_c('td',[_vm._v(\"13.9\")]),_c('td',[_vm._v(\"24\")]),_c('td',[_c('span',{staticClass:\"badge\"},[_vm._v(\"IT\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"FR\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"SP\")])]),_c('td',[_c('span',{staticClass:\"badge\"},[_vm._v(\"ITALOccult\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"UKOCL\")])])]),_c('tr',{attrs:{\"id\":\"tr4\",\"data-occel\":\"4\"}},[_c('td',[_vm._v(\"2020-02-01 14:56:23\")]),_c('td',[_vm._v(\"(6734) Benzenberg\")]),_c('td',[_vm._v(\"4U 450-001166\")]),_c('td',[_vm._v(\"3.0\")]),_c('td',[_vm._v(\"1.0\")]),_c('td',[_vm._v(\"13.9\")]),_c('td',[_vm._v(\"24\")]),_c('td',[_c('span',{staticClass:\"badge\"},[_vm._v(\"IT\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"FR\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"SP\")])]),_c('td',[_c('span',{staticClass:\"badge\"},[_vm._v(\"ITALOccult\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"UKOCL\")])])]),_c('tr',{attrs:{\"id\":\"tr5\",\"data-occel\":\"5\"}},[_c('td',[_vm._v(\"2020-02-01 14:56:23\")]),_c('td',[_vm._v(\"(6734) Benzenberg\")]),_c('td',[_vm._v(\"4U 450-001166\")]),_c('td',[_vm._v(\"3.0\")]),_c('td',[_vm._v(\"1.0\")]),_c('td',[_vm._v(\"13.9\")]),_c('td',[_vm._v(\"24\")]),_c('td',[_c('span',{staticClass:\"badge\"},[_vm._v(\"IT\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"FR\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"SP\")])]),_c('td',[_c('span',{staticClass:\"badge\"},[_vm._v(\"ITALOccult\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"UKOCL\")])])]),_c('tr',{attrs:{\"id\":\"tr6\",\"data-occel\":\"6\"}},[_c('td',[_vm._v(\"2020-02-01 14:56:23\")]),_c('td',[_vm._v(\"(6734) Benzenberg\")]),_c('td',[_vm._v(\"4U 450-001166\")]),_c('td',[_vm._v(\"3.0\")]),_c('td',[_vm._v(\"1.0\")]),_c('td',[_vm._v(\"13.9\")]),_c('td',[_vm._v(\"24\")]),_c('td',[_c('span',{staticClass:\"badge\"},[_vm._v(\"IT\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"FR\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"SP\")])]),_c('td',[_c('span',{staticClass:\"badge\"},[_vm._v(\"ITALOccult\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"UKOCL\")])])]),_c('tr',{attrs:{\"id\":\"tr7\",\"data-occel\":\"7\"}},[_c('td',[_vm._v(\"2020-02-01 14:56:23\")]),_c('td',[_vm._v(\"(6734) Benzenberg\")]),_c('td',[_vm._v(\"4U 450-001166\")]),_c('td',[_vm._v(\"3.0\")]),_c('td',[_vm._v(\"1.0\")]),_c('td',[_vm._v(\"13.9\")]),_c('td',[_vm._v(\"24\")]),_c('td',[_c('span',{staticClass:\"badge\"},[_vm._v(\"IT\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"FR\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"SP\")])]),_c('td',[_c('span',{staticClass:\"badge\"},[_vm._v(\"ITALOccult\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"UKOCL\")])])]),_c('tr',{attrs:{\"id\":\"tr8\",\"data-occel\":\"8\"}},[_c('td',[_vm._v(\"2020-02-01 14:56:23\")]),_c('td',[_vm._v(\"(6734) Benzenberg\")]),_c('td',[_vm._v(\"4U 450-001166\")]),_c('td',[_vm._v(\"3.0\")]),_c('td',[_vm._v(\"1.0\")]),_c('td',[_vm._v(\"13.9\")]),_c('td',[_vm._v(\"24\")]),_c('td',[_c('span',{staticClass:\"badge\"},[_vm._v(\"IT\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"FR\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"SP\")])]),_c('td',[_c('span',{staticClass:\"badge\"},[_vm._v(\"ITALOccult\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"UKOCL\")])])]),_c('tr',{attrs:{\"id\":\"tr9\",\"data-occel\":\"9\"}},[_c('td',[_vm._v(\"2020-02-01 14:56:23\")]),_c('td',[_vm._v(\"(6734) Benzenberg\")]),_c('td',[_vm._v(\"4U 450-001166\")]),_c('td',[_vm._v(\"3.0\")]),_c('td',[_vm._v(\"1.0\")]),_c('td',[_vm._v(\"13.9\")]),_c('td',[_vm._v(\"24\")]),_c('td',[_c('span',{staticClass:\"badge\"},[_vm._v(\"IT\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"FR\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"SP\")])]),_c('td',[_c('span',{staticClass:\"badge\"},[_vm._v(\"ITALOccult\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"UKOCL\")])])]),_c('tr',{attrs:{\"id\":\"tr10\",\"data-occel\":\"10\"}},[_c('td',[_vm._v(\"2020-02-01 14:56:23\")]),_c('td',[_vm._v(\"(6734) Benzenberg\")]),_c('td',[_vm._v(\"4U 450-001166\")]),_c('td',[_vm._v(\"3.0\")]),_c('td',[_vm._v(\"1.0\")]),_c('td',[_vm._v(\"13.9\")]),_c('td',[_vm._v(\"24\")]),_c('td',[_c('span',{staticClass:\"badge\"},[_vm._v(\"IT\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"FR\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"SP\")])]),_c('td',[_c('span',{staticClass:\"badge\"},[_vm._v(\"ITALOccult\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"UKOCL\")])])]),_c('tr',{attrs:{\"id\":\"tr11\",\"data-occel\":\"11\"}},[_c('td',[_vm._v(\"2020-02-01 14:56:23\")]),_c('td',[_vm._v(\"(6734) Benzenberg\")]),_c('td',[_vm._v(\"4U 450-001166\")]),_c('td',[_vm._v(\"3.0\")]),_c('td',[_vm._v(\"1.0\")]),_c('td',[_vm._v(\"13.9\")]),_c('td',[_vm._v(\"24\")]),_c('td',[_c('span',{staticClass:\"badge\"},[_vm._v(\"IT\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"FR\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"SP\")])]),_c('td',[_c('span',{staticClass:\"badge\"},[_vm._v(\"ITALOccult\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"UKOCL\")])])]),_c('tr',{attrs:{\"id\":\"tr12\",\"data-occel\":\"12\"}},[_c('td',[_vm._v(\"2020-02-01 14:56:23\")]),_c('td',[_vm._v(\"(6734) Benzenberg\")]),_c('td',[_vm._v(\"4U 450-001166\")]),_c('td',[_vm._v(\"3.0\")]),_c('td',[_vm._v(\"1.0\")]),_c('td',[_vm._v(\"13.9\")]),_c('td',[_vm._v(\"24\")]),_c('td',[_c('span',{staticClass:\"badge\"},[_vm._v(\"IT\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"FR\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"SP\")])]),_c('td',[_c('span',{staticClass:\"badge\"},[_vm._v(\"ITALOccult\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"UKOCL\")])])]),_c('tr',{attrs:{\"id\":\"tr13\",\"data-occel\":\"13\"}},[_c('td',[_vm._v(\"2020-02-01 14:56:23\")]),_c('td',[_vm._v(\"(6734) Benzenberg\")]),_c('td',[_vm._v(\"4U 450-001166\")]),_c('td',[_vm._v(\"3.0\")]),_c('td',[_vm._v(\"1.0\")]),_c('td',[_vm._v(\"13.9\")]),_c('td',[_vm._v(\"24\")]),_c('td',[_c('span',{staticClass:\"badge\"},[_vm._v(\"IT\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"FR\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"SP\")])]),_c('td',[_c('span',{staticClass:\"badge\"},[_vm._v(\"ITALOccult\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"UKOCL\")])])]),_c('tr',{attrs:{\"id\":\"tr14\",\"data-occel\":\"14\"}},[_c('td',[_vm._v(\"2020-02-01 14:56:23\")]),_c('td',[_vm._v(\"(6734) Benzenberg\")]),_c('td',[_vm._v(\"4U 450-001166\")]),_c('td',[_vm._v(\"3.0\")]),_c('td',[_vm._v(\"1.0\")]),_c('td',[_vm._v(\"13.9\")]),_c('td',[_vm._v(\"24\")]),_c('td',[_c('span',{staticClass:\"badge\"},[_vm._v(\"IT\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"FR\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"SP\")])]),_c('td',[_c('span',{staticClass:\"badge\"},[_vm._v(\"ITALOccult\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"UKOCL\")])])]),_c('tr',{attrs:{\"id\":\"tr15\",\"data-occel\":\"15\"}},[_c('td',[_vm._v(\"2020-02-01 14:56:23\")]),_c('td',[_vm._v(\"(6734) Benzenberg\")]),_c('td',[_vm._v(\"4U 450-001166\")]),_c('td',[_vm._v(\"3.0\")]),_c('td',[_vm._v(\"1.0\")]),_c('td',[_vm._v(\"13.9\")]),_c('td',[_vm._v(\"24\")]),_c('td',[_c('span',{staticClass:\"badge\"},[_vm._v(\"IT\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"FR\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"SP\")])]),_c('td',[_c('span',{staticClass:\"badge\"},[_vm._v(\"ITALOccult\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"UKOCL\")])])]),_c('tr',{attrs:{\"id\":\"tr16\",\"data-occel\":\"16\"}},[_c('td',[_vm._v(\"2020-02-01 14:56:23\")]),_c('td',[_vm._v(\"(6734) Benzenberg\")]),_c('td',[_vm._v(\"4U 450-001166\")]),_c('td',[_vm._v(\"3.0\")]),_c('td',[_vm._v(\"1.0\")]),_c('td',[_vm._v(\"13.9\")]),_c('td',[_vm._v(\"24\")]),_c('td',[_c('span',{staticClass:\"badge\"},[_vm._v(\"IT\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"FR\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"SP\")])]),_c('td',[_c('span',{staticClass:\"badge\"},[_vm._v(\"ITALOccult\")]),_c('span',{staticClass:\"badge\"},[_vm._v(\"UKOCL\")])])])])])]),_c('ul',{staticClass:\"pagination justify-content-end\"},[_c('li',{staticClass:\"page-item\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"}},[_vm._v(\"«\")])]),_c('li',{staticClass:\"page-item active\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"}},[_vm._v(\"1\")])]),_c('li',{staticClass:\"page-item\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"}},[_vm._v(\"2\")])]),_c('li',{staticClass:\"page-item\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"}},[_vm._v(\"3\")])]),_c('li',{staticClass:\"page-item\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"}},[_vm._v(\"4\")])]),_c('li',{staticClass:\"page-item\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"}},[_vm._v(\"»\")])])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row pt-2 mx-1 border\"},[_c('div',{staticClass:\"col-lg-12\"},[_c('div',{staticClass:\"bs-component\"},[_c('form',[_c('fieldset',[_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"form-group col-md-12 col-xl-9\"},[_c('label',{attrs:{\"for\":\"filterId\"}},[_vm._v(\"Filter\")]),_c('select',{staticClass:\"form-control\",attrs:{\"id\":\"filterId\"}},[_c('option',[_vm._v(\"Mag. 16 Drop 0.3\")]),_c('option',[_vm._v(\"2\")]),_c('option',[_vm._v(\"3\")]),_c('option',[_vm._v(\"4\")]),_c('option',[_vm._v(\"5\")])])]),_c('div',{staticClass:\"form-group col-md-12 col-xl-3 d-flex\"},[_c('button',{staticClass:\"btn btn-secondary align-self-end btn-block\",attrs:{\"type\":\"button\"}},[_vm._v(\"Edit\")])])]),_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"form-group col-md-12 col-xl-9\"},[_c('label',{attrs:{\"for\":\"period\"}},[_vm._v(\"Period\")]),_c('select',{staticClass:\"form-control\",attrs:{\"id\":\"period\"}},[_c('option',[_vm._v(\"18 Nov - 15 Dec\")]),_c('option',[_vm._v(\"16 Dec - 12 Dec\")]),_c('option',[_vm._v(\"13 Jan - 19 Jan\")])])]),_c('div',{staticClass:\"form-group col-md-12 col-xl-3 d-flex\"},[_c('button',{staticClass:\"btn btn-primary align-self-end btn-block\",attrs:{\"type\":\"submit\"}},[_vm._v(\"Search\")])])]),_c('div',{staticClass:\"form-row\"},[_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"Searching \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(\"94,1234,569\")]),_vm._v(\" events from \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(\"12 Dec\")]),_vm._v(\" to \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(\"13 Feb\")]),_vm._v(\", last updated on 21 Dec at 12:45:12 UT\")])])])])])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row mx-1 mt-2 border earth-plot-container d-flex align-items-center justify-content-center\"},[_c('div',{staticClass:\"earth-plot-canvas\",attrs:{\"id\":\"earthCanvas\"}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row mt-2\"},[_c('div',{staticClass:\"col-lg-8\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12\"},[_c('span',{staticClass:\"badge remove-badges\"},[_vm._v(\"UKOCL \"),_c('a',{attrs:{\"href\":\"#\"}},[_c('i',{staticClass:\"fa fa-window-close\"})])]),_c('span',{staticClass:\"badge badge-disabled\"},[_vm._v(\"ITALOccult \"),_c('a',{attrs:{\"href\":\"#\"}},[_c('i',{staticClass:\"fa fa-window-close\"})])]),_c('span',{staticClass:\"badge\"},[_vm._v(\"MyTag \"),_c('a',{attrs:{\"href\":\"#\"}},[_c('i',{staticClass:\"fa fa-check\"})])])])]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12\"},[_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"No notes present\")])])])]),_c('div',{staticClass:\"col-lg-4\"},[_c('button',{staticClass:\"btn btn-secondary pull-right\",attrs:{\"type\":\"button\"}},[_vm._v(\"Google Maps\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row mt-2\"},[_c('div',{staticClass:\"col-lg-12\"},[_c('button',{staticClass:\"btn btn-secondary mr-2\",attrs:{\"type\":\"button\"}},[_vm._v(\"Add Notes\")]),_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"button\"}},[_vm._v(\"Save\")])])])}]\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TagEvents.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TagEvents.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TagEvents.vue?vue&type=template&id=34cd8f6e&scoped=true&\"\nimport script from \"./TagEvents.vue?vue&type=script&lang=js&\"\nexport * from \"./TagEvents.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"34cd8f6e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"row pt-4\",staticStyle:{\"display\":\"flex\"}},[(!_vm.showLoader)?_c('div',{staticClass:\"col-lg-8 border mx-auto\"},[_c('div',{staticClass:\"bs-component\"},[_c('form',[_c('fieldset',[_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"form-group col-md-12 pt-4\"},[_c('label',{attrs:{\"for\":\"occelmntFile\"}},[_vm._v(\".occlemnt File to Upload\")]),_vm._v(\" \"),(_vm.totalEventsInfo)?_c('span',{staticClass:\"text-muted\"},[_c('small',[_vm._v(\" (Accepting events from \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm._f(\"formatDate\")(_vm.totalEventsInfo.fromDate)))]),_vm._v(\" to \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm._f(\"formatDate\")(_vm.totalEventsInfo.toDate)))]),_vm._v(\")\")])]):_vm._e(),_c('div',{staticClass:\"custom-file\"},[_c('input',{staticClass:\"custom-file-input\",attrs:{\"type\":\"file\",\"id\":\"customFileInput\",\"aria-describedby\":\"customFileInput\"},on:{\"change\":_vm.onFileChange}}),_c('label',{staticClass:\"custom-file-label\",attrs:{\"for\":\"customFileInput\"}},[_vm._v(_vm._s(_vm.selectedFile))])]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form.occfile),expression:\"form.occfile\"},{name:\"validate\",rawName:\"v-validate\",value:({required: true}),expression:\"{required: true}\"}],attrs:{\"type\":\"hidden\",\"data-vv-name\":\"uploadedFile\"},domProps:{\"value\":(_vm.form.occfile)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.form, \"occfile\", $event.target.value)}}}),(_vm.totalBytes)?_c('b-progress',{attrs:{\"value\":_vm.uploadedBytes,\"max\":_vm.totalBytes,\"show-progress\":\"\",\"animated\":\"\"}}):_vm._e(),(_vm.form.occfile)?_c('div',[(_vm.form.occfile.error)?_c('small',{staticClass:\"form-text\"},[_c('i',{staticClass:\"fa fa-frown-o pr-1\",staticStyle:{\"color\":\"red\"}}),_vm._v(\" \"+_vm._s(_vm.form.occfile.error))]):_vm._e(),(_vm.form.occfile.warn)?_c('small',{staticClass:\"form-text\"},[_c('i',{staticClass:\"fa fa-warning pr-1\",staticStyle:{\"color\":\"orange\"}}),_vm._v(\" \"+_vm._s(_vm.form.occfile.warn))]):_vm._e(),(_vm.form.occfile.info)?_c('small',{staticClass:\"form-text\"},[_c('i',{staticClass:\"fa fa-check-square-o pr-1\",staticStyle:{\"color\":\"limegreen\"}}),_vm._v(\" \"+_vm._s(_vm.form.occfile.info))]):_vm._e(),(_vm.form.occfile.info2)?_c('small',{staticClass:\"form-text\"},[_c('i',{staticClass:\"fa fa-check-square-o pr-1\",staticStyle:{\"color\":\"limegreen\"}}),_vm._v(\" \"+_vm._s(_vm.form.occfile.info2))]):_vm._e(),(_vm.form.occfile.info3)?_c('small',{staticClass:\"form-text\"},[_c('i',{staticClass:\"fa fa-check-square-o pr-1\",staticStyle:{\"color\":\"limegreen\"}}),_vm._v(\" \"+_vm._s(_vm.form.occfile.info3))]):_vm._e()]):_vm._e(),(_vm.validated)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('uploadedFile'))+\" \")]):_vm._e()],1)]),_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"form-group col-md-12 remove-badges\"},[_c('div',{staticClass:\"float-left pr-2\"},[_vm._v(\" Tag to apply to uploaded events: \")]),_c('AppliedUserTags',{attrs:{\"validated\":this.validated}})],1)]),_c('div',{staticClass:\"form-row pl-2\"},[_c('div',{staticClass:\"form-group col-md-6 border border-secondary\",staticStyle:{\"height\":\"80px\",\"overflow-y\":\"scroll\"}},[_c('AvailableUserTags',{attrs:{\"singleSelection\":true}})],1),_c('div',{staticClass:\"col-md-8\"})]),_c('div',{staticClass:\"form-row pt-4\"},[_c('div',{staticClass:\"form-group col-md-12\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form.useCloudEvents),expression:\"form.useCloudEvents\"}],staticClass:\"form-radio-input\",attrs:{\"type\":\"radio\",\"value\":\"true\",\"name\":\"predUsage\",\"id\":\"tagDescr\",\"checked\":\"\"},domProps:{\"checked\":_vm._q(_vm.form.useCloudEvents,\"true\")},on:{\"change\":function($event){return _vm.$set(_vm.form, \"useCloudEvents\", \"true\")}}}),_c('label',{staticClass:\"pl-1\",attrs:{\"for\":\"tagDescr\"}},[_vm._v(\"Use occultation prediction elements computed by OW Cloud\")])])]),_vm._m(0),_c('div',{staticClass:\"form-row pt-4\"},[_c('div',{staticClass:\"form-group col-md-12\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form.useCloudEvents),expression:\"form.useCloudEvents\"}],staticClass:\"form-radio-input\",attrs:{\"type\":\"radio\",\"value\":\"false\",\"name\":\"predUsage\",\"id\":\"tagDescr\"},domProps:{\"checked\":_vm._q(_vm.form.useCloudEvents,\"false\")},on:{\"change\":function($event){return _vm.$set(_vm.form, \"useCloudEvents\", \"false\")}}}),_c('label',{staticClass:\"pl-1\",attrs:{\"for\":\"tagDescr\"}},[_vm._v(\"Use occultation prediction elements from the uploaded file\")])])]),_vm._m(1),_c('div',{staticClass:\"form-row pt-4\"},[_c('div',{staticClass:\"col-md-1\"}),_c('div',{staticClass:\"form-group col-md-5\"},[_c('label',{attrs:{\"for\":\"orbitSource\"}},[_vm._v(\"Orbit Source\")]),_c('b-form-select',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({required: _vm.form.useCloudEvents === false}),expression:\"{required: form.useCloudEvents === false}\"}],staticClass:\"form-control\",class:{ 'disabled-control': _vm.form.useCloudEvents == 'true' },attrs:{\"data-vv-name\":\"orbitSource\",\"id\":\"orbitSource\",\"options\":_vm.orbitSources},model:{value:(_vm.form.orbitSource),callback:function ($$v) {_vm.$set(_vm.form, \"orbitSource\", $$v)},expression:\"form.orbitSource\"}}),(_vm.validated)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('orbitSource'))+\" \")]):_vm._e()],1),_c('div',{staticClass:\"form-group col-md-5\"},[_c('label',{attrs:{\"for\":\"starSource\"}},[_vm._v(\"Star Coordinates Source\")]),_c('b-form-select',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({required: _vm.form.useCloudEvents === false}),expression:\"{required: form.useCloudEvents === false}\"}],staticClass:\"form-control\",class:{ 'disabled-control': _vm.form.useCloudEvents == 'true' },attrs:{\"data-vv-name\":\"starSource\",\"id\":\"starSource\",\"options\":_vm.starSources},model:{value:(_vm.form.starSource),callback:function ($$v) {_vm.$set(_vm.form, \"starSource\", $$v)},expression:\"form.starSource\"}}),(_vm.validated)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('starSource'))+\" \")]):_vm._e()],1),_c('div',{staticClass:\"col-md-1\"})]),_vm._m(2),_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"form-group col-md-12\"},[_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"button\",\"disabled\":_vm.showLoader},on:{\"click\":_vm.onUploadEvents}},[_vm._v(\"Upload\")]),_c('button',{staticClass:\"btn btn-secondary pull-right\",attrs:{\"type\":\"button\",\"disabled\":_vm.showLoader},on:{\"click\":_vm.onShowHistory}},[_vm._v(\"Show History\")])])])])])])]):_vm._e()]),_c('div',{staticClass:\"row\"},[(_vm.showLoader)?_c('div',{staticClass:\"col-12 text-center\"},[(_vm.showLoader)?_c('b-spinner',{staticClass:\"justify-content-center mt-5\",staticStyle:{\"width\":\"3rem\",\"height\":\"3rem\"},attrs:{\"varient\":\"secondary\"}}):_vm._e()],1):_vm._e()])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"col-md-1 text-right\"},[_c('i',{staticClass:\"fa fa-info-circle\"})]),_c('div',{staticClass:\"col-md-11\"},[_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"If the event has not been computed by OW Cloud then the occultation prediction elements from the uploaded file will be used.\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"col-md-1 text-right\"},[_c('i',{staticClass:\"fa fa-info-circle\"})]),_c('div',{staticClass:\"col-md-11\"},[_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"OW Cloud automatically computes and keeps up-to-date multiple predictions using the latest updates from all of the following orbits sources: \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(\"Horizons\")]),_vm._v(\", \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(\"AstOrb\")]),_vm._v(\", \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(\"MPC\")]),_vm._v(\" and \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(\"AstDyS\")]),_vm._v(\" and using the star positions from the latest \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(\"Gaia\")]),_vm._v(\" data release. \")]),_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"Only use the predictions from the uploaded file if they have been generated using a different orbit source and/or star coordinates source. This option is typically reserved for orbits produced with a manual orbit fitting using custom object astrometry and/or using custom star astrometry.\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-row pt-2\"},[_c('div',{staticClass:\"col-12\"},[_c('hr',{staticStyle:{\"height\":\"1px\",\"width\":\"100%\",\"border-width\":\"0\",\"color\":\"gray\",\"background-color\":\"gray\"}})])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._l((_vm.tags),function(tag){return _c('span',{key:tag.id,staticClass:\"badge mx-1 selected-tag remove-badge badge-owc\"},[_vm._v(_vm._s(tag.name)),_c('a',{staticClass:\"pl-2\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.toggleTag(tag)}}},[_c('i',{staticClass:\"fa fa-window-close\"})])])}),_c('input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({required: true}),expression:\"{required: true}\"},{name:\"model\",rawName:\"v-model\",value:(_vm.tags),expression:\"tags\"}],attrs:{\"type\":\"hidden\",\"data-vv-name\":\"selectedTags\"},domProps:{\"value\":(_vm.tags)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.tags=$event.target.value}}}),(this.$props.validated)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(_vm.errors.first('selectedTags'))+\" \")]):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppliedUserTags.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppliedUserTags.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AppliedUserTags.vue?vue&type=template&id=cf1b6540&scoped=true&\"\nimport script from \"./AppliedUserTags.vue?vue&type=script&lang=js&\"\nexport * from \"./AppliedUserTags.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AppliedUserTags.vue?vue&type=style&index=0&id=cf1b6540&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cf1b6540\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',_vm._l((_vm.tags),function(tag){return _c('span',{key:tag.id,staticClass:\"badge badge-owc mx-1\"},[_vm._v(_vm._s(tag.name)),_c('a',{staticClass:\"pl-1\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.toggleTag(tag)}}},[_c('i',{staticClass:\"fa fa-check\"})])])}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvailableUserTags.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvailableUserTags.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AvailableUserTags.vue?vue&type=template&id=7d9c1b05&scoped=true&\"\nimport script from \"./AvailableUserTags.vue?vue&type=script&lang=js&\"\nexport * from \"./AvailableUserTags.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AvailableUserTags.vue?vue&type=style&index=0&id=7d9c1b05&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7d9c1b05\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadEvents.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadEvents.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UploadEvents.vue?vue&type=template&id=1825fb50&scoped=true&\"\nimport script from \"./UploadEvents.vue?vue&type=script&lang=js&\"\nexport * from \"./UploadEvents.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1825fb50\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"container-fluid\"},[_c('div',{staticClass:\"row pt-2 mt-3\",class:_vm.showLogLoader ? 'disabled-control' : ''},[_c('div',{staticClass:\"col-12 justify-content-center\"},[((_vm.submitted || _vm.foundFileList) && !_vm.showLoader)?_c('div',{staticClass:\"table-responsive-md\"},[_c('table',{staticClass:\"table table-dark table-bordered table-hover\"},[_c('thead',{staticClass:\"thead-dark text-center\"},[_c('tr',[_c('td',[_vm._v(\"Uploaded\")]),_c('td',[_vm._v(\"File\")]),_c('td',[_vm._v(\"Period\")]),_c('td',[_vm._v(\"Events\")]),(_vm.isSystemAdmin)?_c('td',[_vm._v(\"User\")]):_vm._e(),_c('td',[_vm._v(\"Status\")]),_c('td',[_vm._v(\"Prediction Source\")]),_c('td',[_vm._v(\"Newly Tagged\")]),_c('td',[_vm._v(\"Notes\")])])]),_c('tbody',_vm._l((_vm.foundFileList),function(file){return _c('tr',{key:file.id,class:{ 'table-secondary': file.id === _vm.selectedId },on:{\"click\":function($event){return _vm.showLog(file)}}},[_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm._f(\"formatDate\")(file.created)))]),_c('td',[_c('span',{staticClass:\"badge badge-owc mx-1\"},[_vm._v(_vm._s(file.tag.name))]),_vm._v(\" \"+_vm._s(file.file))]),_c('td',{staticClass:\"text-center\"},[_c('Period',{attrs:{\"from\":file.from,\"to\":file.to}})],1),_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s(file.total))]),(_vm.isSystemAdmin)?_c('td',[_vm._v(_vm._s(file.user))]):_vm._e(),_c('td',{staticClass:\"text-center\"},[(file.status=='Completed')?_c('i',{staticClass:\"fa fa-check pr-1\",staticStyle:{\"color\":\"limegreen\"}}):_vm._e(),(file.status=='Pending')?_c('i',{staticClass:\"fa fa-hourglass-o pr-2\",staticStyle:{\"color\":\"gray\"}}):_vm._e(),(file.status=='Processing')?_c('i',{staticClass:\"fa fa-hourglass-half pr-2\",staticStyle:{\"color\":\"yellow\"}}):_vm._e(),(file.status=='Errored')?_c('i',{staticClass:\"fa fa-close pr-1\",staticStyle:{\"color\":\"red\"}}):_vm._e(),_vm._v(\" \"+_vm._s(file.status)+\" \"),(file.status=='Completed')?_c('span',{staticClass:\"text-muted pt-2\"},[_c('small',[_vm._v(\"(in \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm._f(\"formatFixed1\")((new Date(file.completed) - new Date(file.created)) / 1000)))]),_vm._v(\" sec)\")])]):_vm._e(),_c('span',[(_vm.isSystemAdmin && (file.canrerun || file.errored > 0))?_c('a',{staticClass:\"pull-right\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.reRunFile(file.id)}}},[_c('i',{staticClass:\"fa fa-refresh pr-1\",staticStyle:{\"color\":\"limegreen\"}}),_vm._v(\"Retry\")]):_vm._e()])]),_c('td',{staticClass:\"text-center\"},[(file.useowc === true)?_c('span',[_vm._v(\"OWC\")]):_vm._e(),(file.useowc === false)?_c('span',[_vm._v(_vm._s(file.orbit)+\" / \"+_vm._s(file.star))]):_vm._e()]),_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s(file.newTags))]),_c('td',{staticClass:\"text-center\"},[(file.sharedTags && file.sharedTags > 0)?_c('span',{staticClass:\"badge badge-info mx-1\",attrs:{\"title\":((file.sharedTags) + \" (\" + ((100 * file.sharedTags/file.total).toFixed()) + \"%) events have been included in other feeds.\")}},[_vm._v(_vm._s(file.sharedTags)+\" Shared\")]):_vm._e(),(_vm.isSystemAdmin && file.notInOwc)?_c('span',{staticClass:\"badge badge-owc-err mx-1\"},[_vm._v(_vm._s(file.notInOwc)+\" Not in OWC\")]):_vm._e(),(_vm.isSystemAdmin && file.ambigious)?_c('span',{staticClass:\"badge badge-owc-warn mx-1\",attrs:{\"title\":((file.ambigious) + \" events could not be matched to a single event.\")}},[_vm._v(_vm._s(file.ambigious)+\" Ambigious\")]):_vm._e(),(file.errored)?_c('span',{staticClass:\"badge badge-danger mx-1\"},[_vm._v(_vm._s((file.errored))+\" Errored\")]):_vm._e()])])}),0)])]):_vm._e(),_c('div',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-8\"},[((_vm.submitted || _vm.foundFileList) && !_vm.showLoader)?_c('b-pagination',{attrs:{\"total-rows\":_vm.form.totalRows,\"per-page\":_vm.form.limit},on:{\"change\":_vm.pageChange},model:{value:(_vm.form.pageNo),callback:function ($$v) {_vm.$set(_vm.form, \"pageNo\", $$v)},expression:\"form.pageNo\"}}):_vm._e()],1),_c('div',{staticClass:\"col-4\"},[(!_vm.showLoader)?_c('button',{staticClass:\"btn btn-primary pull-right\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.loadFileHistory}},[_vm._v(\"Refresh History\")]):_vm._e(),(_vm.autoRefreshCountdown > 0)?_c('span',{staticClass:\"text-muted pt-2 pr-4 pull-right\"},[_c('small',[_vm._v(\"Auto-refresh in \"),_c('strong',{staticClass:\"text-light\"},[_vm._v(_vm._s(_vm.autoRefreshCountdown))]),_vm._v(\" sec\")])]):_vm._e()])])]),_c('div',{staticClass:\"text-center\"},[(_vm.showLoader)?_c('b-spinner',{staticClass:\"justify-content-center mt-3\",staticStyle:{\"width\":\"3rem\",\"height\":\"3rem\"},attrs:{\"varient\":\"secondary\"}}):_vm._e(),(_vm.foundFileList.length < 1 && _vm.submitted && !_vm.showLoader)?_c('h5',{staticClass:\"text-danger\"},[_vm._v(\"No previous files found\")]):_vm._e()],1)])]),_c('div',{staticClass:\"row pt-2 mt-3\"},[_c('div',{staticClass:\"col-12 justify-content-center text-center\"},[(_vm.showLogLoader)?_c('b-spinner',{staticClass:\"center-text\",staticStyle:{\"width\":\"2rem\",\"height\":\"2rem\"},attrs:{\"varient\":\"secondary\"}}):_vm._e()],1),(_vm.selectedLog && !_vm.showLoader && !_vm.showLogLoader)?_c('div',{staticClass:\"col-12 justify-content-center\"},[_c('pre',{staticClass:\"info-bg px-2 py-2\"},[_vm._v(_vm._s(_vm.selectedLog))])]):_vm._e()])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_vm._v(_vm._s(_vm.displayString))])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Period.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Period.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Period.vue?vue&type=template&id=64a66996&\"\nimport script from \"./Period.vue?vue&type=script&lang=js&\"\nexport * from \"./Period.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadEventsHistory.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadEventsHistory.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UploadEventsHistory.vue?vue&type=template&id=e8db6ce8&scoped=true&\"\nimport script from \"./UploadEventsHistory.vue?vue&type=script&lang=js&\"\nexport * from \"./UploadEventsHistory.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UploadEventsHistory.vue?vue&type=style&index=0&id=e8db6ce8&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e8db6ce8\",\n null\n \n)\n\nexport default component.exports","import Tags from '../views/Tags.vue'\r\nimport Filters from '../views/Filters.vue'\r\nimport TagEvents from '../views/TagEvents.vue'\r\nimport UploadEvents from '../views/UploadEvents.vue'\r\nimport UploadEventsHistory from '../views/UploadEventsHistory.vue'\r\nimport EventSearchAdvanced from '../views/EventSearchAdvanced.vue'\r\n\r\nexport default [\r\n {\r\n path: '/tags',\r\n name: 'Tags',\r\n component: Tags\r\n },\r\n {\r\n path: '/filters',\r\n name: 'Filters',\r\n component: Filters\r\n }, \r\n {\r\n path: '/search',\r\n name: 'Search',\r\n component: EventSearchAdvanced\r\n }, \r\n {\r\n path: '/tag-events',\r\n name: 'TagEvents',\r\n component: TagEvents\r\n }, \r\n {\r\n path: '/upload-events',\r\n name: 'UploadEvents',\r\n component: UploadEvents,\r\n meta: { title: \"Upload Events\"}\r\n }, \r\n {\r\n path: '/upload-events/history',\r\n name: 'UploadEventsHistory',\r\n component: UploadEventsHistory,\r\n meta: { title: \"Upload Events History\"}\r\n }, \r\n {\r\n path: '/community-tags',\r\n name: 'CommunityTags',\r\n meta: { title: \"Community Tags\", headerless: true, public: true},\r\n component: () => import(/* webpackChunkName: \"about\" */ '../views/CommunityTags.vue')\r\n }, \r\n]","import Vue from 'vue'\r\nimport VueRouter from 'vue-router'\r\nimport Home from '../views/Home.vue'\r\nimport axios from 'axios'\r\nimport store from '../store'\r\n\r\nVue.use(VueRouter)\r\n\r\nconst indexRoutes = [\r\n {\r\n path: '/',\r\n name: 'Home',\r\n component: Home,\r\n meta: { title: \"OWC\", public: true}\r\n }, \r\n {\r\n path: '/about',\r\n name: 'About',\r\n meta: { title: \"About OWC\", public: true},\r\n // route level code-splitting\r\n // this generates a separate chunk (about.[hash].js) for this route\r\n // which is lazy-loaded when the route is visited.\r\n component: () => import(/* webpackChunkName: \"about\" */ '../views/About.vue')\r\n }\r\n]\r\n\r\nimport authRoutes from '@/router/authRoutes.js'\r\nimport eventRoutes from '@/router/eventRoutes.js'\r\nimport extRoutes from '@/router/extRoutes.js'\r\nimport taggingRoutes from '@/router/taggingRoutes.js'\r\n\r\nconst routes = [\r\n ...indexRoutes,\r\n ...authRoutes,\r\n ...eventRoutes,\r\n ...extRoutes,\r\n ...taggingRoutes\r\n]\r\n\r\nconst router = new VueRouter({\r\n mode: 'history',\r\n base: process.env.BASE_URL,\r\n routes\r\n})\r\n\r\nconst debug = process.env.NODE_ENV != 'production';\r\nconst publicRouteNames = routes.filter(x => x.meta && x.meta.public).map(x => x.name);\r\n\r\nrouter.beforeEach(async (to, from , next) => {\r\n var authRequired = to.name && !publicRouteNames.includes(to.name);\r\n let loggedIn = localStorage.getItem('owc-user');\r\n let loggedInUser = loggedIn != null ? JSON.parse(loggedIn) : null;\r\n let loggedInUserId = loggedInUser != null ? loggedInUser.login : null;\r\n\r\n if (debug)\r\n {\r\n console.log(`Router path: ${to.path} (authRequired: ${authRequired}, loggedInUserId: ${loggedInUserId})`);\r\n }\r\n\r\n if (authRequired && !loggedInUserId) {\r\n console.log('Login required for ', to.path);\r\n return next('/login');\r\n }\r\n\r\n if (loggedInUserId !== null && store.state.user === null)\r\n {\r\n if (loggedInUser)\r\n {\r\n let sessDurMin = localStorage.getItem('owc-user-session-duration');\r\n let sessLastReq = localStorage.getItem('owc-user-last-request-time');\r\n var expired = false;\r\n if (sessDurMin && sessLastReq)\r\n {\r\n if (debug)\r\n {\r\n console.log(`Found existing session with duration: ${sessDurMin} min, expiring in ${((parseInt(sessLastReq) + parseInt(sessDurMin) * 60000 - new Date().getTime()) / 1000).toFixed()} sec`);\r\n }\r\n\r\n if (parseInt(sessLastReq) + parseInt(sessDurMin) * 60000 < new Date().getTime())\r\n {\r\n localStorage.removeItem('owc-user');\r\n expired = true;\r\n }\r\n }\r\n\r\n if (debug)\r\n {\r\n if (expired)\r\n console.log(`Found expired session in localStorage`);\r\n else \r\n console.log('Restoring logged in user from localStorage');\r\n }\r\n\r\n if (!expired)\r\n {\r\n store.commit('SET_LOGGED_IN_USER', loggedInUser);\r\n authRequired = false; \r\n }\r\n else\r\n {\r\n console.log(`New authentication will be requried for this request as the previous session has expired.`);\r\n authRequired = true; \r\n }\r\n }\r\n\r\n if (authRequired)\r\n {\r\n if (debug)\r\n {\r\n console.log(`ensureCurrentUser; loggedInUserId:${loggedInUserId}, store.state.user:${store.state.user}`);\r\n }\r\n if (to.name != 'Login' && to.name != 'RestoreSession' && localStorage.getItem('owc-user-remember') === 't')\r\n {\r\n // Attempt to restore session from saved credentials\r\n console.log(`Restoring previous session as authentication is requried`);\r\n return next(`/restore-session?redirectTo=${encodeURIComponent(to.path)}`);\r\n }\r\n else\r\n {\r\n return next('/login');\r\n } \r\n }\r\n }\r\n\r\n next();\r\n})\r\n\r\nrouter.afterEach((to) => {\r\n Vue.nextTick( () => {\r\n document.title = to.meta.title ? to.meta.title : 'OccultWatcher Cloud';\r\n \r\n var isLightTheme = localStorage.getItem('theme') === 'light';\r\n \r\n document.getElementById('mainTheme').href = isLightTheme ? process.env.VUE_APP_BS_FLATLY_URL : process.env.VUE_APP_BS_DARKLY_URL;\r\n document.getElementById('owcStyle').href = isLightTheme ? process.env.VUE_APP_OWC_LIGHT_URL : process.env.VUE_APP_OWC_DARK_URL;\r\n });\r\n})\r\n\r\n/*\r\nif (debug)\r\n{\r\n axios.interceptors.request.use(request => {\r\n console.log('Starting Request', JSON.stringify(request, null, 2))\r\n return request\r\n }) \r\n}\r\n*/\r\n\r\naxios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';\r\n\r\naxios.interceptors.response.use(\r\n function (response) {\r\n if (response.config.withCredentials === true)\r\n {\r\n if (debug)\r\n {\r\n console.log(`${response.config.method} ${response.config.url} [withCredentials:${response.config.withCredentials}] ${response.status} ${response.statusText}`);\r\n }\r\n localStorage.setItem('owc-user-last-request-time', new Date().getTime());\r\n }\r\n return response\r\n }, \r\n function (error) {\r\n try\r\n {\r\n if (error.response && error.response.status === 401) {\r\n if (!error.response.config.url.endsWith('/login') && !error.response.config.url.endsWith('/restore-session'))\r\n {\r\n console.log(`Got unauthorised response for ${error.response.config.url}`, error.response.status, error.response);\r\n if (localStorage.getItem('owc-user-remember') === 't')\r\n {\r\n // Attempt to restore session from saved credentials\r\n console.log(`Restoring previous session as last request returned 401 and there are saved user credentials.`);\r\n let suffix = error.response.config.method == 'post' ? '&failedPost=1' : '';\r\n router.push(`/restore-session?redirectTo=${encodeURIComponent(router.currentRoute.fullPath)}${suffix}`);\r\n }\r\n else\r\n {\r\n store.dispatch('logoutUser');\r\n router.push({ name: 'Login' });\r\n }\r\n }\r\n else\r\n {\r\n if (error.response.config.headers[\"OW-Session\"])\r\n {\r\n console.log('Got unauthorised response while attempting to log in with owcSessionId. Redirecting for manual login...');\r\n var redirectPath = router.currentRoute.fullPath;\r\n var lastChunkPos = redirectPath.indexOf('&owcSessionId=');\r\n if (lastChunkPos > -1) redirectPath = redirectPath.substring(0, lastChunkPos);\r\n\r\n if (localStorage.getItem('owc-user-remember') === 't')\r\n {\r\n // Attempt to restore session from saved credentials\r\n console.log(`Restoring previous session as last request returned 401 and there are saved user credentials.`);\r\n router.push(`/restore-session?redirectTo=${encodeURIComponent(redirectPath)}`);\r\n }\r\n else\r\n {\r\n router.push(`/login?redirectTo=${encodeURIComponent(redirectPath)}`);\r\n }\r\n }\r\n else\r\n {\r\n console.log('Got unauthorised response while attempting to log in');\r\n } \r\n }\r\n }\r\n else if (error.response && error.response.status === 400) {\r\n return error.response.data ? Promise.reject(error.response.data) : Promise.reject(error);\r\n }\r\n }\r\n catch(err)\r\n {\r\n console.log('Error processing error response', err);\r\n }\r\n\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\nexport default router\r\n","import Vue from 'vue'\r\nimport moment from 'moment'\r\n\r\nVue.filter('formatDate', function(value) {\r\n if (value) {\r\n return moment(String(value)).format('DD MMM YYYY')\r\n }\r\n });\r\n \r\n Vue.filter('formatDayMonth', function(value) {\r\n if (value) {\r\n return moment(String(value)).format('DD MMM')\r\n }\r\n });\r\n \r\n Vue.filter('formatHourMinute', function(value) {\r\n if (value) {\r\n return moment(String(value)).format('HH:mm')\r\n }\r\n });\r\n \r\n Vue.filter('formatHourMinuteSec', function(value) {\r\n if (value) {\r\n return moment(String(value)).format('HH:mm:ss')\r\n }\r\n });\r\n \r\n Vue.filter('formatDateHourMinute', function(value) {\r\n if (value) {\r\n return moment(String(value)).format('DD/MMM/YY, HH:mm')\r\n }\r\n });\r\n \r\n Vue.filter('formatDayHourMinute', function(value) {\r\n if (value) {\r\n return moment(String(value)).format('DD MMM, HH:mm')\r\n }\r\n });\r\n\r\n Vue.filter('formatDayHourMinuteOrDayOnly', function(value) {\r\n if (value) {\r\n var ddMMMhhmm = moment(String(value)).format('DD MMM, HH:mm');\r\n return ddMMMhhmm.replace(/, 00:00$/g, '');\r\n }\r\n }); \r\n \r\n Vue.filter('formatMsToMinuteSecond', function(value) {\r\n if (value) {\r\n const secs = value / 1000.0;\r\n const min = secs / 60;\r\n const sec = secs % 60\r\n return `${Math.floor(min)}:${String(Math.floor(sec)).padStart(2, \"0\")}`\r\n }\r\n });","import Vue from 'vue'\r\n\r\nVue.filter(\"formatPredictionSource\", function (value) {\r\n if (value === undefined || value === null)\r\n return '';\r\n else\r\n {\r\n var extract = /([^;]+(;[^;]+)?)/g.exec(value);\r\n if (extract == null) return value;\r\n return extract[0].replace(';', '/');\r\n }\r\n });\r\n \r\n Vue.filter(\"formatMag\", function (value) {\r\n if (value === undefined)\r\n return '';\r\n else\r\n return value.toFixed(2);\r\n });\r\n\r\n Vue.filter('formatMinSecDuration', function(value) {\r\n if (value < 1) {\r\n return `${(value * 60).toFixed(1)} sec`\r\n }\r\n else\r\n {\r\n var min = Math.floor(value);\r\n var sec = Math.floor((value - min) * 60);\r\n return `${min}:${(sec + '').padStart(2, '0')} min`\r\n }\r\n });\r\n \r\n Vue.filter('formatHourMinSec', function(value) {\r\n if (value) {\r\n var hr = Math.floor(value);\r\n var minP = (value - hr) * 60;\r\n var min = Math.floor(minP);\r\n var secP = (minP - min) * 60;\r\n return `${(hr + '').padStart(2, '0')} ${(min+ '').padStart(2, '0')} ${secP.toFixed(4)}`\r\n }\r\n return '';\r\n });\r\n \r\n Vue.filter('formatDegMinSec', function(value) {\r\n if (value) {\r\n var sgn = value < 0 ? '-' : '+';\r\n value = Math.abs(value);\r\n var deg = Math.floor(value);\r\n var minP = (value - deg) * 60;\r\n var min = Math.floor(minP);\r\n var secP = (minP - min) * 60;\r\n return `${sgn}${(deg + '').padStart(2, '0')} ${(min+ '').padStart(2, '0')} ${secP.toFixed(3)}`\r\n }\r\n return '';\r\n });\r\n\r\n Vue.filter('formatLng', function(value) {\r\n if (value) {\r\n var ew = value < 0 ? 'W' : 'E';\r\n value = Math.abs(value);\r\n var deg = Math.floor(value);\r\n var minP = (value - deg) * 60;\r\n var min = Math.floor(minP);\r\n var secP = (minP - min) * 60;\r\n return `${(deg + '').padStart(2, '0')}° ${(min+ '').padStart(2, '0')}' ${secP.toFixed(0)}\" ${ew}`\r\n }\r\n return '';\r\n });\r\n\r\n Vue.filter('formatLat', function(value) {\r\n if (value) {\r\n var ns = value < 0 ? 'S' : 'N';\r\n value = Math.abs(value);\r\n var deg = Math.floor(value);\r\n var minP = (value - deg) * 60;\r\n var min = Math.floor(minP);\r\n var secP = (minP - min) * 60;\r\n return `${(deg + '').padStart(2, '0')}° ${(min+ '').padStart(2, '0')}' ${secP.toFixed(0)}\" ${ns}`\r\n }\r\n return '';\r\n }); \r\n\r\n Vue.filter('formatAzDir', function(value) {\r\n if (value) {\r\n let azDir = '';\r\n if (value <= 0 + 22.5 || value > 360 - 22.5)\r\n azDir = 'N';\r\n else if (value <= 45 * 1 + 22.5 && value > 45 * 1 - 22.5)\r\n azDir = 'NE';\r\n else if (value <= 45 * 2 + 22.5 && value > 45 * 2 - 22.5)\r\n azDir = 'E';\r\n else if (value <= 45 * 3 + 22.5 && value > 45 * 3 - 22.5)\r\n azDir = 'SE';\r\n else if (value <= 45 * 4 + 22.5 && value > 45 * 4 - 22.5)\r\n azDir = 'S';\r\n else if (value <= 45 * 5 + 22.5 && value > 45 * 5 - 22.5)\r\n azDir = 'SW';\r\n else if (value <= 45 * 6 + 22.5 && value > 45 * 6 - 22.5)\r\n azDir = 'W';\r\n else if (value <= 45 * 7 + 22.5 && value > 45 * 7 - 22.5)\r\n azDir = 'NW';\r\n return azDir\r\n }\r\n return '';\r\n });\r\n \r\n Vue.filter('formatJPLNo', function(value) {\r\n if (value) {\r\n var match = /(JPL#\\w?\\d+[^,]*)/g.exec(value);\r\n if (match == null) return value;\r\n return match[0];\r\n }\r\n return '';\r\n });\r\n\r\n Vue.filter('formatJPLDE', function(value) {\r\n if (value) {\r\n var match = /([^,]+)/g.exec(value);\r\n if (match == null) return value;\r\n return match[0];\r\n }\r\n return '';\r\n }); \r\n \r\n Vue.filter(\"formatAngle180\", function (value) {\r\n if (!value && value !== 0)\r\n return '';\r\n else\r\n {\r\n while (value > 180) value -= 360;\r\n while (value < -180) value += 360;\r\n return value.toFixed(0);\r\n }\r\n });\r\n \r\n Vue.filter(\"formatAngle0t0180\", function (value) {\r\n if (!value && value !== 0)\r\n return '';\r\n else\r\n {\r\n while (value > 180) value -= 180;\r\n while (value < 0) value += 180;\r\n return value.toFixed(0);\r\n }\r\n });\r\n\r\n Vue.filter(\"formatCentralDistance\", function (value) {\r\n if (!value && value !== 0)\r\n return '';\r\n else\r\n {\r\n var leftOrRight = 'right';\r\n if (value < 0) leftOrRight = 'left';\r\n \r\n return `${Math.abs(value).toFixed(2)} km (fp) ${leftOrRight}`;\r\n }\r\n });\r\n ","import Vue from 'vue'\r\n\r\nVue.filter('formatYesNo', function(value) {\r\n return value ? 'Yes' : 'No';\r\n });\r\n \r\n Vue.filter('formatUpperCase', function(value) {\r\n return value ? value.toUpperCase() : '';\r\n });\r\n \r\n Vue.filter('formatCommaList', function(value) {\r\n return value ? value.join(', ') : '';\r\n });\r\n \r\n Vue.filter(\"formatTrim\", function (value) {\r\n if (!value)\r\n return '';\r\n else\r\n return value.trim();\r\n });\r\n \r\n Vue.filter(\"formatFixed0\", function (value) {\r\n if (!value && value !== 0)\r\n return '';\r\n else\r\n return value.toFixed(0);\r\n });\r\n \r\n Vue.filter(\"formatFixed1\", function (value) {\r\n if (!value && value !== 0)\r\n return '';\r\n else\r\n return value.toFixed(1);\r\n });\r\n \r\n Vue.filter(\"formatFixed2\", function (value) {\r\n if (!value && value !== 0)\r\n return '';\r\n else\r\n return value.toFixed(2);\r\n });\r\n \r\n Vue.filter(\"formatFixed3\", function (value) {\r\n if (value === undefined)\r\n return '';\r\n else\r\n return value.toFixed(3);\r\n });\r\n \r\n Vue.filter(\"formatFixedOrPrecision2\", function (value) {\r\n if (!value && value !== 0)\r\n return '';\r\n else\r\n {\r\n var fxd = value.toFixed(2) + '';\r\n var prc = value.toPrecision(2) + '';\r\n return prc.length > fxd.length ? prc : fxd;\r\n }\r\n });\r\n \r\n Vue.filter('numberWithGroupSeparators', function(value) {\r\n let nStr = value + '';\r\n let x = nStr.split('.');\r\n let x1 = x[0];\r\n let x2 = x.length > 1 ? '.' + x[1] : '';\r\n let rgx = /(\\d+)(\\d{3})/;\r\n while (rgx.test(x1)) {\r\n x1 = x1.replace(rgx, '$1' + ',' + '$2');\r\n }\r\n return x1 + x2;\r\n });","import Vue from 'vue'\r\nimport App from './App.vue'\r\nimport router from './router'\r\nimport store from './store'\r\nimport owcMixin from '@/mixins/owcMixin';\r\nimport '@/filters/dateTimeFilters';\r\nimport '@/filters/astronomyFilters';\r\nimport '@/filters/filters';\r\n\r\nimport BootstrapVue from 'bootstrap-vue'\r\nimport VeeValidate from 'vee-validate'\r\nimport 'bootstrap-vue/dist/bootstrap-vue.css'\r\nimport Clipboard from 'v-clipboard'\r\n \r\nVue.use(BootstrapVue);\r\nVue.use(Clipboard)\r\n\r\nconst dictionary = {\r\n en: {\r\n custom: {\r\n eventDatePicker: {\r\n required: 'Required field'\r\n },\r\n objectId: {\r\n required: 'Required field',\r\n regex: 'Invalid object id',\r\n },\r\n selectedTags : {\r\n required: 'Select one or more tags'\r\n },\r\n orbitSource: {\r\n required: 'Required field'\r\n },\r\n starSource: {\r\n required: 'Required field'\r\n },\r\n uploadedFile: {\r\n required: 'A file should be upload first'\r\n },\r\n }\r\n }\r\n}\r\n\r\nVue.use(VeeValidate, { inject: true, dictionary });\r\n\r\nVue.mixin(owcMixin);\r\n\r\nVue.config.productionTip = false\r\n\r\nexport const vm = new Vue({\r\n router,\r\n store,\r\n render: h => h(App)\r\n}).$mount('#app')","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OccultWatcherPlot.vue?vue&type=style&index=0&id=35e57b4a&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StationSort.vue?vue&type=style&index=0&id=7067d663&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Filters.vue?vue&type=style&index=0&id=9e88025c&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pull-right\"},[_c('ul',{staticClass:\"navbar-nav pull-right pr-3\"},[(!_vm.isLightTheme)?_c('li',{staticClass:\"px-2 mt-1\",staticStyle:{\"color\":\"#333333\",\"background\":\"#cccccc\",\"cursor\":\"pointer\",\"font-size\":\"0.8em\",\"border\":\"1px solid #969696\"},on:{\"click\":_vm.onToggleTheme}},[_vm._v(\"Light Theme\")]):_vm._e(),(_vm.isLightTheme)?_c('li',{staticClass:\"px-2 mt-1\",staticStyle:{\"color\":\"#DDDDDD\",\"background\":\"#333333\",\"cursor\":\"pointer\",\"font-size\":\"0.8em\",\"border\":\"1px solid #565656\"},on:{\"click\":_vm.onToggleTheme}},[_vm._v(\"Dark Theme\")]):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThemeSelector.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThemeSelector.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ThemeSelector.vue?vue&type=template&id=5ef0d74a&scoped=true&\"\nimport script from \"./ThemeSelector.vue?vue&type=script&lang=js&\"\nexport * from \"./ThemeSelector.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5ef0d74a\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LocateEvent.vue?vue&type=style&index=0&id=203b2672&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEvents.vue?vue&type=style&index=0&id=8e56acf2&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ErrorEllipses.vue?vue&type=style&index=0&id=762604ba&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EventGoogleMap.vue?vue&type=style&index=0&id=1891ad00&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateAccount.vue?vue&type=style&index=0&id=f5a21118&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChangePredictionDropdown.vue?vue&type=style&index=0&id=74174fe1&scoped=true&lang=css&\"","module.exports = __webpack_public_path__ + \"img/user.d6759143.png\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConfirmDialogue.vue?vue&type=style&index=0&id=a58080c4&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchByObject.vue?vue&type=style&index=0&id=517dc798&scoped=true&lang=css&\"","// threejs.org/license\r\n(function (global, factory) {\r\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\r\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\r\n\t(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.THREE = {}));\r\n}(this, (function (exports) { 'use strict';\r\n\r\n\t// Polyfills\r\n\tif (Number.EPSILON === undefined) {\r\n\t\tNumber.EPSILON = Math.pow(2, -52);\r\n\t}\r\n\r\n\tif (Number.isInteger === undefined) {\r\n\t\t// Missing in IE\r\n\t\t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger\r\n\t\tNumber.isInteger = function (value) {\r\n\t\t\treturn typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\r\n\t\t};\r\n\t} //\r\n\r\n\r\n\tif (Math.sign === undefined) {\r\n\t\t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/sign\r\n\t\tMath.sign = function (x) {\r\n\t\t\treturn x < 0 ? -1 : x > 0 ? 1 : +x;\r\n\t\t};\r\n\t}\r\n\r\n\tif ('name' in Function.prototype === false) {\r\n\t\t// Missing in IE\r\n\t\t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name\r\n\t\tObject.defineProperty(Function.prototype, 'name', {\r\n\t\t\tget: function get() {\r\n\t\t\t\treturn this.toString().match(/^\\s*function\\s*([^\\(\\s]*)/)[1];\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tif (Object.assign === undefined) {\r\n\t\t// Missing in IE\r\n\t\t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\r\n\t\tObject.assign = function (target) {\r\n\r\n\t\t\tif (target === undefined || target === null) {\r\n\t\t\t\tthrow new TypeError('Cannot convert undefined or null to object');\r\n\t\t\t}\r\n\r\n\t\t\tvar output = Object(target);\r\n\r\n\t\t\tfor (var index = 1; index < arguments.length; index++) {\r\n\t\t\t\tvar source = arguments[index];\r\n\r\n\t\t\t\tif (source !== undefined && source !== null) {\r\n\t\t\t\t\tfor (var nextKey in source) {\r\n\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(source, nextKey)) {\r\n\t\t\t\t\t\t\toutput[nextKey] = source[nextKey];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn output;\r\n\t\t};\r\n\t}\r\n\r\n\tvar REVISION = '123';\r\n\tvar MOUSE = {\r\n\t\tLEFT: 0,\r\n\t\tMIDDLE: 1,\r\n\t\tRIGHT: 2,\r\n\t\tROTATE: 0,\r\n\t\tDOLLY: 1,\r\n\t\tPAN: 2\r\n\t};\r\n\tvar TOUCH = {\r\n\t\tROTATE: 0,\r\n\t\tPAN: 1,\r\n\t\tDOLLY_PAN: 2,\r\n\t\tDOLLY_ROTATE: 3\r\n\t};\r\n\tvar CullFaceNone = 0;\r\n\tvar CullFaceBack = 1;\r\n\tvar CullFaceFront = 2;\r\n\tvar CullFaceFrontBack = 3;\r\n\tvar BasicShadowMap = 0;\r\n\tvar PCFShadowMap = 1;\r\n\tvar PCFSoftShadowMap = 2;\r\n\tvar VSMShadowMap = 3;\r\n\tvar FrontSide = 0;\r\n\tvar BackSide = 1;\r\n\tvar DoubleSide = 2;\r\n\tvar FlatShading = 1;\r\n\tvar SmoothShading = 2;\r\n\tvar NoBlending = 0;\r\n\tvar NormalBlending = 1;\r\n\tvar AdditiveBlending = 2;\r\n\tvar SubtractiveBlending = 3;\r\n\tvar MultiplyBlending = 4;\r\n\tvar CustomBlending = 5;\r\n\tvar AddEquation = 100;\r\n\tvar SubtractEquation = 101;\r\n\tvar ReverseSubtractEquation = 102;\r\n\tvar MinEquation = 103;\r\n\tvar MaxEquation = 104;\r\n\tvar ZeroFactor = 200;\r\n\tvar OneFactor = 201;\r\n\tvar SrcColorFactor = 202;\r\n\tvar OneMinusSrcColorFactor = 203;\r\n\tvar SrcAlphaFactor = 204;\r\n\tvar OneMinusSrcAlphaFactor = 205;\r\n\tvar DstAlphaFactor = 206;\r\n\tvar OneMinusDstAlphaFactor = 207;\r\n\tvar DstColorFactor = 208;\r\n\tvar OneMinusDstColorFactor = 209;\r\n\tvar SrcAlphaSaturateFactor = 210;\r\n\tvar NeverDepth = 0;\r\n\tvar AlwaysDepth = 1;\r\n\tvar LessDepth = 2;\r\n\tvar LessEqualDepth = 3;\r\n\tvar EqualDepth = 4;\r\n\tvar GreaterEqualDepth = 5;\r\n\tvar GreaterDepth = 6;\r\n\tvar NotEqualDepth = 7;\r\n\tvar MultiplyOperation = 0;\r\n\tvar MixOperation = 1;\r\n\tvar AddOperation = 2;\r\n\tvar NoToneMapping = 0;\r\n\tvar LinearToneMapping = 1;\r\n\tvar ReinhardToneMapping = 2;\r\n\tvar CineonToneMapping = 3;\r\n\tvar ACESFilmicToneMapping = 4;\r\n\tvar CustomToneMapping = 5;\r\n\tvar UVMapping = 300;\r\n\tvar CubeReflectionMapping = 301;\r\n\tvar CubeRefractionMapping = 302;\r\n\tvar EquirectangularReflectionMapping = 303;\r\n\tvar EquirectangularRefractionMapping = 304;\r\n\tvar CubeUVReflectionMapping = 306;\r\n\tvar CubeUVRefractionMapping = 307;\r\n\tvar RepeatWrapping = 1000;\r\n\tvar ClampToEdgeWrapping = 1001;\r\n\tvar MirroredRepeatWrapping = 1002;\r\n\tvar NearestFilter = 1003;\r\n\tvar NearestMipmapNearestFilter = 1004;\r\n\tvar NearestMipMapNearestFilter = 1004;\r\n\tvar NearestMipmapLinearFilter = 1005;\r\n\tvar NearestMipMapLinearFilter = 1005;\r\n\tvar LinearFilter = 1006;\r\n\tvar LinearMipmapNearestFilter = 1007;\r\n\tvar LinearMipMapNearestFilter = 1007;\r\n\tvar LinearMipmapLinearFilter = 1008;\r\n\tvar LinearMipMapLinearFilter = 1008;\r\n\tvar UnsignedByteType = 1009;\r\n\tvar ByteType = 1010;\r\n\tvar ShortType = 1011;\r\n\tvar UnsignedShortType = 1012;\r\n\tvar IntType = 1013;\r\n\tvar UnsignedIntType = 1014;\r\n\tvar FloatType = 1015;\r\n\tvar HalfFloatType = 1016;\r\n\tvar UnsignedShort4444Type = 1017;\r\n\tvar UnsignedShort5551Type = 1018;\r\n\tvar UnsignedShort565Type = 1019;\r\n\tvar UnsignedInt248Type = 1020;\r\n\tvar AlphaFormat = 1021;\r\n\tvar RGBFormat = 1022;\r\n\tvar RGBAFormat = 1023;\r\n\tvar LuminanceFormat = 1024;\r\n\tvar LuminanceAlphaFormat = 1025;\r\n\tvar RGBEFormat = RGBAFormat;\r\n\tvar DepthFormat = 1026;\r\n\tvar DepthStencilFormat = 1027;\r\n\tvar RedFormat = 1028;\r\n\tvar RedIntegerFormat = 1029;\r\n\tvar RGFormat = 1030;\r\n\tvar RGIntegerFormat = 1031;\r\n\tvar RGBIntegerFormat = 1032;\r\n\tvar RGBAIntegerFormat = 1033;\r\n\tvar RGB_S3TC_DXT1_Format = 33776;\r\n\tvar RGBA_S3TC_DXT1_Format = 33777;\r\n\tvar RGBA_S3TC_DXT3_Format = 33778;\r\n\tvar RGBA_S3TC_DXT5_Format = 33779;\r\n\tvar RGB_PVRTC_4BPPV1_Format = 35840;\r\n\tvar RGB_PVRTC_2BPPV1_Format = 35841;\r\n\tvar RGBA_PVRTC_4BPPV1_Format = 35842;\r\n\tvar RGBA_PVRTC_2BPPV1_Format = 35843;\r\n\tvar RGB_ETC1_Format = 36196;\r\n\tvar RGB_ETC2_Format = 37492;\r\n\tvar RGBA_ETC2_EAC_Format = 37496;\r\n\tvar RGBA_ASTC_4x4_Format = 37808;\r\n\tvar RGBA_ASTC_5x4_Format = 37809;\r\n\tvar RGBA_ASTC_5x5_Format = 37810;\r\n\tvar RGBA_ASTC_6x5_Format = 37811;\r\n\tvar RGBA_ASTC_6x6_Format = 37812;\r\n\tvar RGBA_ASTC_8x5_Format = 37813;\r\n\tvar RGBA_ASTC_8x6_Format = 37814;\r\n\tvar RGBA_ASTC_8x8_Format = 37815;\r\n\tvar RGBA_ASTC_10x5_Format = 37816;\r\n\tvar RGBA_ASTC_10x6_Format = 37817;\r\n\tvar RGBA_ASTC_10x8_Format = 37818;\r\n\tvar RGBA_ASTC_10x10_Format = 37819;\r\n\tvar RGBA_ASTC_12x10_Format = 37820;\r\n\tvar RGBA_ASTC_12x12_Format = 37821;\r\n\tvar RGBA_BPTC_Format = 36492;\r\n\tvar SRGB8_ALPHA8_ASTC_4x4_Format = 37840;\r\n\tvar SRGB8_ALPHA8_ASTC_5x4_Format = 37841;\r\n\tvar SRGB8_ALPHA8_ASTC_5x5_Format = 37842;\r\n\tvar SRGB8_ALPHA8_ASTC_6x5_Format = 37843;\r\n\tvar SRGB8_ALPHA8_ASTC_6x6_Format = 37844;\r\n\tvar SRGB8_ALPHA8_ASTC_8x5_Format = 37845;\r\n\tvar SRGB8_ALPHA8_ASTC_8x6_Format = 37846;\r\n\tvar SRGB8_ALPHA8_ASTC_8x8_Format = 37847;\r\n\tvar SRGB8_ALPHA8_ASTC_10x5_Format = 37848;\r\n\tvar SRGB8_ALPHA8_ASTC_10x6_Format = 37849;\r\n\tvar SRGB8_ALPHA8_ASTC_10x8_Format = 37850;\r\n\tvar SRGB8_ALPHA8_ASTC_10x10_Format = 37851;\r\n\tvar SRGB8_ALPHA8_ASTC_12x10_Format = 37852;\r\n\tvar SRGB8_ALPHA8_ASTC_12x12_Format = 37853;\r\n\tvar LoopOnce = 2200;\r\n\tvar LoopRepeat = 2201;\r\n\tvar LoopPingPong = 2202;\r\n\tvar InterpolateDiscrete = 2300;\r\n\tvar InterpolateLinear = 2301;\r\n\tvar InterpolateSmooth = 2302;\r\n\tvar ZeroCurvatureEnding = 2400;\r\n\tvar ZeroSlopeEnding = 2401;\r\n\tvar WrapAroundEnding = 2402;\r\n\tvar NormalAnimationBlendMode = 2500;\r\n\tvar AdditiveAnimationBlendMode = 2501;\r\n\tvar TrianglesDrawMode = 0;\r\n\tvar TriangleStripDrawMode = 1;\r\n\tvar TriangleFanDrawMode = 2;\r\n\tvar LinearEncoding = 3000;\r\n\tvar sRGBEncoding = 3001;\r\n\tvar GammaEncoding = 3007;\r\n\tvar RGBEEncoding = 3002;\r\n\tvar LogLuvEncoding = 3003;\r\n\tvar RGBM7Encoding = 3004;\r\n\tvar RGBM16Encoding = 3005;\r\n\tvar RGBDEncoding = 3006;\r\n\tvar BasicDepthPacking = 3200;\r\n\tvar RGBADepthPacking = 3201;\r\n\tvar TangentSpaceNormalMap = 0;\r\n\tvar ObjectSpaceNormalMap = 1;\r\n\tvar ZeroStencilOp = 0;\r\n\tvar KeepStencilOp = 7680;\r\n\tvar ReplaceStencilOp = 7681;\r\n\tvar IncrementStencilOp = 7682;\r\n\tvar DecrementStencilOp = 7683;\r\n\tvar IncrementWrapStencilOp = 34055;\r\n\tvar DecrementWrapStencilOp = 34056;\r\n\tvar InvertStencilOp = 5386;\r\n\tvar NeverStencilFunc = 512;\r\n\tvar LessStencilFunc = 513;\r\n\tvar EqualStencilFunc = 514;\r\n\tvar LessEqualStencilFunc = 515;\r\n\tvar GreaterStencilFunc = 516;\r\n\tvar NotEqualStencilFunc = 517;\r\n\tvar GreaterEqualStencilFunc = 518;\r\n\tvar AlwaysStencilFunc = 519;\r\n\tvar StaticDrawUsage = 35044;\r\n\tvar DynamicDrawUsage = 35048;\r\n\tvar StreamDrawUsage = 35040;\r\n\tvar StaticReadUsage = 35045;\r\n\tvar DynamicReadUsage = 35049;\r\n\tvar StreamReadUsage = 35041;\r\n\tvar StaticCopyUsage = 35046;\r\n\tvar DynamicCopyUsage = 35050;\r\n\tvar StreamCopyUsage = 35042;\r\n\tvar GLSL1 = \"100\";\r\n\tvar GLSL3 = \"300 es\";\r\n\r\n\t/**\r\n\t * https://github.com/mrdoob/eventdispatcher.js/\r\n\t */\r\n\tfunction EventDispatcher() {}\r\n\r\n\tObject.assign(EventDispatcher.prototype, {\r\n\t\taddEventListener: function addEventListener(type, listener) {\r\n\t\t\tif (this._listeners === undefined) this._listeners = {};\r\n\t\t\tvar listeners = this._listeners;\r\n\r\n\t\t\tif (listeners[type] === undefined) {\r\n\t\t\t\tlisteners[type] = [];\r\n\t\t\t}\r\n\r\n\t\t\tif (listeners[type].indexOf(listener) === -1) {\r\n\t\t\t\tlisteners[type].push(listener);\r\n\t\t\t}\r\n\t\t},\r\n\t\thasEventListener: function hasEventListener(type, listener) {\r\n\t\t\tif (this._listeners === undefined) return false;\r\n\t\t\tvar listeners = this._listeners;\r\n\t\t\treturn listeners[type] !== undefined && listeners[type].indexOf(listener) !== -1;\r\n\t\t},\r\n\t\tremoveEventListener: function removeEventListener(type, listener) {\r\n\t\t\tif (this._listeners === undefined) return;\r\n\t\t\tvar listeners = this._listeners;\r\n\t\t\tvar listenerArray = listeners[type];\r\n\r\n\t\t\tif (listenerArray !== undefined) {\r\n\t\t\t\tvar index = listenerArray.indexOf(listener);\r\n\r\n\t\t\t\tif (index !== -1) {\r\n\t\t\t\t\tlistenerArray.splice(index, 1);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tdispatchEvent: function dispatchEvent(event) {\r\n\t\t\tif (this._listeners === undefined) return;\r\n\t\t\tvar listeners = this._listeners;\r\n\t\t\tvar listenerArray = listeners[event.type];\r\n\r\n\t\t\tif (listenerArray !== undefined) {\r\n\t\t\t\tevent.target = this; // Make a copy, in case listeners are removed while iterating.\r\n\r\n\t\t\t\tvar array = listenerArray.slice(0);\r\n\r\n\t\t\t\tfor (var i = 0, l = array.length; i < l; i++) {\r\n\t\t\t\t\tarray[i].call(this, event);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\tvar _lut = [];\r\n\r\n\tfor (var i = 0; i < 256; i++) {\r\n\t\t_lut[i] = (i < 16 ? '0' : '') + i.toString(16);\r\n\t}\r\n\r\n\tvar _seed = 1234567;\r\n\tvar MathUtils = {\r\n\t\tDEG2RAD: Math.PI / 180,\r\n\t\tRAD2DEG: 180 / Math.PI,\r\n\t\tgenerateUUID: function generateUUID() {\r\n\t\t\t// http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136\r\n\t\t\tvar d0 = Math.random() * 0xffffffff | 0;\r\n\t\t\tvar d1 = Math.random() * 0xffffffff | 0;\r\n\t\t\tvar d2 = Math.random() * 0xffffffff | 0;\r\n\t\t\tvar d3 = Math.random() * 0xffffffff | 0;\r\n\t\t\tvar uuid = _lut[d0 & 0xff] + _lut[d0 >> 8 & 0xff] + _lut[d0 >> 16 & 0xff] + _lut[d0 >> 24 & 0xff] + '-' + _lut[d1 & 0xff] + _lut[d1 >> 8 & 0xff] + '-' + _lut[d1 >> 16 & 0x0f | 0x40] + _lut[d1 >> 24 & 0xff] + '-' + _lut[d2 & 0x3f | 0x80] + _lut[d2 >> 8 & 0xff] + '-' + _lut[d2 >> 16 & 0xff] + _lut[d2 >> 24 & 0xff] + _lut[d3 & 0xff] + _lut[d3 >> 8 & 0xff] + _lut[d3 >> 16 & 0xff] + _lut[d3 >> 24 & 0xff]; // .toUpperCase() here flattens concatenated strings to save heap memory space.\r\n\r\n\t\t\treturn uuid.toUpperCase();\r\n\t\t},\r\n\t\tclamp: function clamp(value, min, max) {\r\n\t\t\treturn Math.max(min, Math.min(max, value));\r\n\t\t},\r\n\t\t// compute euclidian modulo of m % n\r\n\t\t// https://en.wikipedia.org/wiki/Modulo_operation\r\n\t\teuclideanModulo: function euclideanModulo(n, m) {\r\n\t\t\treturn (n % m + m) % m;\r\n\t\t},\r\n\t\t// Linear mapping from range to range \r\n\t\tmapLinear: function mapLinear(x, a1, a2, b1, b2) {\r\n\t\t\treturn b1 + (x - a1) * (b2 - b1) / (a2 - a1);\r\n\t\t},\r\n\t\t// https://en.wikipedia.org/wiki/Linear_interpolation\r\n\t\tlerp: function lerp(x, y, t) {\r\n\t\t\treturn (1 - t) * x + t * y;\r\n\t\t},\r\n\t\t// http://en.wikipedia.org/wiki/Smoothstep\r\n\t\tsmoothstep: function smoothstep(x, min, max) {\r\n\t\t\tif (x <= min) return 0;\r\n\t\t\tif (x >= max) return 1;\r\n\t\t\tx = (x - min) / (max - min);\r\n\t\t\treturn x * x * (3 - 2 * x);\r\n\t\t},\r\n\t\tsmootherstep: function smootherstep(x, min, max) {\r\n\t\t\tif (x <= min) return 0;\r\n\t\t\tif (x >= max) return 1;\r\n\t\t\tx = (x - min) / (max - min);\r\n\t\t\treturn x * x * x * (x * (x * 6 - 15) + 10);\r\n\t\t},\r\n\t\t// Random integer from interval\r\n\t\trandInt: function randInt(low, high) {\r\n\t\t\treturn low + Math.floor(Math.random() * (high - low + 1));\r\n\t\t},\r\n\t\t// Random float from interval\r\n\t\trandFloat: function randFloat(low, high) {\r\n\t\t\treturn low + Math.random() * (high - low);\r\n\t\t},\r\n\t\t// Random float from <-range/2, range/2> interval\r\n\t\trandFloatSpread: function randFloatSpread(range) {\r\n\t\t\treturn range * (0.5 - Math.random());\r\n\t\t},\r\n\t\t// Deterministic pseudo-random float in the interval [ 0, 1 ]\r\n\t\tseededRandom: function seededRandom(s) {\r\n\t\t\tif (s !== undefined) _seed = s % 2147483647; // Park-Miller algorithm\r\n\r\n\t\t\t_seed = _seed * 16807 % 2147483647;\r\n\t\t\treturn (_seed - 1) / 2147483646;\r\n\t\t},\r\n\t\tdegToRad: function degToRad(degrees) {\r\n\t\t\treturn degrees * MathUtils.DEG2RAD;\r\n\t\t},\r\n\t\tradToDeg: function radToDeg(radians) {\r\n\t\t\treturn radians * MathUtils.RAD2DEG;\r\n\t\t},\r\n\t\tisPowerOfTwo: function isPowerOfTwo(value) {\r\n\t\t\treturn (value & value - 1) === 0 && value !== 0;\r\n\t\t},\r\n\t\tceilPowerOfTwo: function ceilPowerOfTwo(value) {\r\n\t\t\treturn Math.pow(2, Math.ceil(Math.log(value) / Math.LN2));\r\n\t\t},\r\n\t\tfloorPowerOfTwo: function floorPowerOfTwo(value) {\r\n\t\t\treturn Math.pow(2, Math.floor(Math.log(value) / Math.LN2));\r\n\t\t},\r\n\t\tsetQuaternionFromProperEuler: function setQuaternionFromProperEuler(q, a, b, c, order) {\r\n\t\t\t// Intrinsic Proper Euler Angles - see https://en.wikipedia.org/wiki/Euler_angles\r\n\t\t\t// rotations are applied to the axes in the order specified by 'order'\r\n\t\t\t// rotation by angle 'a' is applied first, then by angle 'b', then by angle 'c'\r\n\t\t\t// angles are in radians\r\n\t\t\tvar cos = Math.cos;\r\n\t\t\tvar sin = Math.sin;\r\n\t\t\tvar c2 = cos(b / 2);\r\n\t\t\tvar s2 = sin(b / 2);\r\n\t\t\tvar c13 = cos((a + c) / 2);\r\n\t\t\tvar s13 = sin((a + c) / 2);\r\n\t\t\tvar c1_3 = cos((a - c) / 2);\r\n\t\t\tvar s1_3 = sin((a - c) / 2);\r\n\t\t\tvar c3_1 = cos((c - a) / 2);\r\n\t\t\tvar s3_1 = sin((c - a) / 2);\r\n\r\n\t\t\tswitch (order) {\r\n\t\t\t\tcase 'XYX':\r\n\t\t\t\t\tq.set(c2 * s13, s2 * c1_3, s2 * s1_3, c2 * c13);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'YZY':\r\n\t\t\t\t\tq.set(s2 * s1_3, c2 * s13, s2 * c1_3, c2 * c13);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'ZXZ':\r\n\t\t\t\t\tq.set(s2 * c1_3, s2 * s1_3, c2 * s13, c2 * c13);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'XZX':\r\n\t\t\t\t\tq.set(c2 * s13, s2 * s3_1, s2 * c3_1, c2 * c13);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'YXY':\r\n\t\t\t\t\tq.set(s2 * c3_1, c2 * s13, s2 * s3_1, c2 * c13);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'ZYZ':\r\n\t\t\t\t\tq.set(s2 * s3_1, s2 * c3_1, c2 * s13, c2 * c13);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tconsole.warn('THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: ' + order);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tfunction _defineProperties(target, props) {\r\n\t\tfor (var i = 0; i < props.length; i++) {\r\n\t\t\tvar descriptor = props[i];\r\n\t\t\tdescriptor.enumerable = descriptor.enumerable || false;\r\n\t\t\tdescriptor.configurable = true;\r\n\t\t\tif (\"value\" in descriptor) descriptor.writable = true;\r\n\t\t\tObject.defineProperty(target, descriptor.key, descriptor);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction _createClass(Constructor, protoProps, staticProps) {\r\n\t\tif (protoProps) _defineProperties(Constructor.prototype, protoProps);\r\n\t\tif (staticProps) _defineProperties(Constructor, staticProps);\r\n\t\treturn Constructor;\r\n\t}\r\n\r\n\tfunction _inheritsLoose(subClass, superClass) {\r\n\t\tsubClass.prototype = Object.create(superClass.prototype);\r\n\t\tsubClass.prototype.constructor = subClass;\r\n\t\tsubClass.__proto__ = superClass;\r\n\t}\r\n\r\n\tfunction _assertThisInitialized(self) {\r\n\t\tif (self === void 0) {\r\n\t\t\tthrow new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\r\n\t\t}\r\n\r\n\t\treturn self;\r\n\t}\r\n\r\n\tvar Vector2 = /*#__PURE__*/function () {\r\n\t\tfunction Vector2(x, y) {\r\n\t\t\tif (x === void 0) {\r\n\t\t\t\tx = 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (y === void 0) {\r\n\t\t\t\ty = 0;\r\n\t\t\t}\r\n\r\n\t\t\tObject.defineProperty(this, 'isVector2', {\r\n\t\t\t\tvalue: true\r\n\t\t\t});\r\n\t\t\tthis.x = x;\r\n\t\t\tthis.y = y;\r\n\t\t}\r\n\r\n\t\tvar _proto = Vector2.prototype;\r\n\r\n\t\t_proto.set = function set(x, y) {\r\n\t\t\tthis.x = x;\r\n\t\t\tthis.y = y;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setScalar = function setScalar(scalar) {\r\n\t\t\tthis.x = scalar;\r\n\t\t\tthis.y = scalar;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setX = function setX(x) {\r\n\t\t\tthis.x = x;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setY = function setY(y) {\r\n\t\t\tthis.y = y;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setComponent = function setComponent(index, value) {\r\n\t\t\tswitch (index) {\r\n\t\t\t\tcase 0:\r\n\t\t\t\t\tthis.x = value;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 1:\r\n\t\t\t\t\tthis.y = value;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tthrow new Error('index is out of range: ' + index);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.getComponent = function getComponent(index) {\r\n\t\t\tswitch (index) {\r\n\t\t\t\tcase 0:\r\n\t\t\t\t\treturn this.x;\r\n\r\n\t\t\t\tcase 1:\r\n\t\t\t\t\treturn this.y;\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tthrow new Error('index is out of range: ' + index);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t_proto.clone = function clone() {\r\n\t\t\treturn new this.constructor(this.x, this.y);\r\n\t\t};\r\n\r\n\t\t_proto.copy = function copy(v) {\r\n\t\t\tthis.x = v.x;\r\n\t\t\tthis.y = v.y;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.add = function add(v, w) {\r\n\t\t\tif (w !== undefined) {\r\n\t\t\t\tconsole.warn('THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead.');\r\n\t\t\t\treturn this.addVectors(v, w);\r\n\t\t\t}\r\n\r\n\t\t\tthis.x += v.x;\r\n\t\t\tthis.y += v.y;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.addScalar = function addScalar(s) {\r\n\t\t\tthis.x += s;\r\n\t\t\tthis.y += s;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.addVectors = function addVectors(a, b) {\r\n\t\t\tthis.x = a.x + b.x;\r\n\t\t\tthis.y = a.y + b.y;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.addScaledVector = function addScaledVector(v, s) {\r\n\t\t\tthis.x += v.x * s;\r\n\t\t\tthis.y += v.y * s;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.sub = function sub(v, w) {\r\n\t\t\tif (w !== undefined) {\r\n\t\t\t\tconsole.warn('THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.');\r\n\t\t\t\treturn this.subVectors(v, w);\r\n\t\t\t}\r\n\r\n\t\t\tthis.x -= v.x;\r\n\t\t\tthis.y -= v.y;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.subScalar = function subScalar(s) {\r\n\t\t\tthis.x -= s;\r\n\t\t\tthis.y -= s;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.subVectors = function subVectors(a, b) {\r\n\t\t\tthis.x = a.x - b.x;\r\n\t\t\tthis.y = a.y - b.y;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.multiply = function multiply(v) {\r\n\t\t\tthis.x *= v.x;\r\n\t\t\tthis.y *= v.y;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.multiplyScalar = function multiplyScalar(scalar) {\r\n\t\t\tthis.x *= scalar;\r\n\t\t\tthis.y *= scalar;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.divide = function divide(v) {\r\n\t\t\tthis.x /= v.x;\r\n\t\t\tthis.y /= v.y;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.divideScalar = function divideScalar(scalar) {\r\n\t\t\treturn this.multiplyScalar(1 / scalar);\r\n\t\t};\r\n\r\n\t\t_proto.applyMatrix3 = function applyMatrix3(m) {\r\n\t\t\tvar x = this.x,\r\n\t\t\t\t\ty = this.y;\r\n\t\t\tvar e = m.elements;\r\n\t\t\tthis.x = e[0] * x + e[3] * y + e[6];\r\n\t\t\tthis.y = e[1] * x + e[4] * y + e[7];\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.min = function min(v) {\r\n\t\t\tthis.x = Math.min(this.x, v.x);\r\n\t\t\tthis.y = Math.min(this.y, v.y);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.max = function max(v) {\r\n\t\t\tthis.x = Math.max(this.x, v.x);\r\n\t\t\tthis.y = Math.max(this.y, v.y);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.clamp = function clamp(min, max) {\r\n\t\t\t// assumes min < max, componentwise\r\n\t\t\tthis.x = Math.max(min.x, Math.min(max.x, this.x));\r\n\t\t\tthis.y = Math.max(min.y, Math.min(max.y, this.y));\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.clampScalar = function clampScalar(minVal, maxVal) {\r\n\t\t\tthis.x = Math.max(minVal, Math.min(maxVal, this.x));\r\n\t\t\tthis.y = Math.max(minVal, Math.min(maxVal, this.y));\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.clampLength = function clampLength(min, max) {\r\n\t\t\tvar length = this.length();\r\n\t\t\treturn this.divideScalar(length || 1).multiplyScalar(Math.max(min, Math.min(max, length)));\r\n\t\t};\r\n\r\n\t\t_proto.floor = function floor() {\r\n\t\t\tthis.x = Math.floor(this.x);\r\n\t\t\tthis.y = Math.floor(this.y);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.ceil = function ceil() {\r\n\t\t\tthis.x = Math.ceil(this.x);\r\n\t\t\tthis.y = Math.ceil(this.y);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.round = function round() {\r\n\t\t\tthis.x = Math.round(this.x);\r\n\t\t\tthis.y = Math.round(this.y);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.roundToZero = function roundToZero() {\r\n\t\t\tthis.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x);\r\n\t\t\tthis.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.negate = function negate() {\r\n\t\t\tthis.x = -this.x;\r\n\t\t\tthis.y = -this.y;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.dot = function dot(v) {\r\n\t\t\treturn this.x * v.x + this.y * v.y;\r\n\t\t};\r\n\r\n\t\t_proto.cross = function cross(v) {\r\n\t\t\treturn this.x * v.y - this.y * v.x;\r\n\t\t};\r\n\r\n\t\t_proto.lengthSq = function lengthSq() {\r\n\t\t\treturn this.x * this.x + this.y * this.y;\r\n\t\t};\r\n\r\n\t\t_proto.length = function length() {\r\n\t\t\treturn Math.sqrt(this.x * this.x + this.y * this.y);\r\n\t\t};\r\n\r\n\t\t_proto.manhattanLength = function manhattanLength() {\r\n\t\t\treturn Math.abs(this.x) + Math.abs(this.y);\r\n\t\t};\r\n\r\n\t\t_proto.normalize = function normalize() {\r\n\t\t\treturn this.divideScalar(this.length() || 1);\r\n\t\t};\r\n\r\n\t\t_proto.angle = function angle() {\r\n\t\t\t// computes the angle in radians with respect to the positive x-axis\r\n\t\t\tvar angle = Math.atan2(-this.y, -this.x) + Math.PI;\r\n\t\t\treturn angle;\r\n\t\t};\r\n\r\n\t\t_proto.distanceTo = function distanceTo(v) {\r\n\t\t\treturn Math.sqrt(this.distanceToSquared(v));\r\n\t\t};\r\n\r\n\t\t_proto.distanceToSquared = function distanceToSquared(v) {\r\n\t\t\tvar dx = this.x - v.x,\r\n\t\t\t\t\tdy = this.y - v.y;\r\n\t\t\treturn dx * dx + dy * dy;\r\n\t\t};\r\n\r\n\t\t_proto.manhattanDistanceTo = function manhattanDistanceTo(v) {\r\n\t\t\treturn Math.abs(this.x - v.x) + Math.abs(this.y - v.y);\r\n\t\t};\r\n\r\n\t\t_proto.setLength = function setLength(length) {\r\n\t\t\treturn this.normalize().multiplyScalar(length);\r\n\t\t};\r\n\r\n\t\t_proto.lerp = function lerp(v, alpha) {\r\n\t\t\tthis.x += (v.x - this.x) * alpha;\r\n\t\t\tthis.y += (v.y - this.y) * alpha;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.lerpVectors = function lerpVectors(v1, v2, alpha) {\r\n\t\t\tthis.x = v1.x + (v2.x - v1.x) * alpha;\r\n\t\t\tthis.y = v1.y + (v2.y - v1.y) * alpha;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.equals = function equals(v) {\r\n\t\t\treturn v.x === this.x && v.y === this.y;\r\n\t\t};\r\n\r\n\t\t_proto.fromArray = function fromArray(array, offset) {\r\n\t\t\tif (offset === void 0) {\r\n\t\t\t\toffset = 0;\r\n\t\t\t}\r\n\r\n\t\t\tthis.x = array[offset];\r\n\t\t\tthis.y = array[offset + 1];\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.toArray = function toArray(array, offset) {\r\n\t\t\tif (array === void 0) {\r\n\t\t\t\tarray = [];\r\n\t\t\t}\r\n\r\n\t\t\tif (offset === void 0) {\r\n\t\t\t\toffset = 0;\r\n\t\t\t}\r\n\r\n\t\t\tarray[offset] = this.x;\r\n\t\t\tarray[offset + 1] = this.y;\r\n\t\t\treturn array;\r\n\t\t};\r\n\r\n\t\t_proto.fromBufferAttribute = function fromBufferAttribute(attribute, index, offset) {\r\n\t\t\tif (offset !== undefined) {\r\n\t\t\t\tconsole.warn('THREE.Vector2: offset has been removed from .fromBufferAttribute().');\r\n\t\t\t}\r\n\r\n\t\t\tthis.x = attribute.getX(index);\r\n\t\t\tthis.y = attribute.getY(index);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.rotateAround = function rotateAround(center, angle) {\r\n\t\t\tvar c = Math.cos(angle),\r\n\t\t\t\t\ts = Math.sin(angle);\r\n\t\t\tvar x = this.x - center.x;\r\n\t\t\tvar y = this.y - center.y;\r\n\t\t\tthis.x = x * c - y * s + center.x;\r\n\t\t\tthis.y = x * s + y * c + center.y;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.random = function random() {\r\n\t\t\tthis.x = Math.random();\r\n\t\t\tthis.y = Math.random();\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_createClass(Vector2, [{\r\n\t\t\tkey: \"width\",\r\n\t\t\tget: function get() {\r\n\t\t\t\treturn this.x;\r\n\t\t\t},\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tthis.x = value;\r\n\t\t\t}\r\n\t\t}, {\r\n\t\t\tkey: \"height\",\r\n\t\t\tget: function get() {\r\n\t\t\t\treturn this.y;\r\n\t\t\t},\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tthis.y = value;\r\n\t\t\t}\r\n\t\t}]);\r\n\r\n\t\treturn Vector2;\r\n\t}();\r\n\r\n\tvar Matrix3 = /*#__PURE__*/function () {\r\n\t\tfunction Matrix3() {\r\n\t\t\tObject.defineProperty(this, 'isMatrix3', {\r\n\t\t\t\tvalue: true\r\n\t\t\t});\r\n\t\t\tthis.elements = [1, 0, 0, 0, 1, 0, 0, 0, 1];\r\n\r\n\t\t\tif (arguments.length > 0) {\r\n\t\t\t\tconsole.error('THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar _proto = Matrix3.prototype;\r\n\r\n\t\t_proto.set = function set(n11, n12, n13, n21, n22, n23, n31, n32, n33) {\r\n\t\t\tvar te = this.elements;\r\n\t\t\tte[0] = n11;\r\n\t\t\tte[1] = n21;\r\n\t\t\tte[2] = n31;\r\n\t\t\tte[3] = n12;\r\n\t\t\tte[4] = n22;\r\n\t\t\tte[5] = n32;\r\n\t\t\tte[6] = n13;\r\n\t\t\tte[7] = n23;\r\n\t\t\tte[8] = n33;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.identity = function identity() {\r\n\t\t\tthis.set(1, 0, 0, 0, 1, 0, 0, 0, 1);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.clone = function clone() {\r\n\t\t\treturn new this.constructor().fromArray(this.elements);\r\n\t\t};\r\n\r\n\t\t_proto.copy = function copy(m) {\r\n\t\t\tvar te = this.elements;\r\n\t\t\tvar me = m.elements;\r\n\t\t\tte[0] = me[0];\r\n\t\t\tte[1] = me[1];\r\n\t\t\tte[2] = me[2];\r\n\t\t\tte[3] = me[3];\r\n\t\t\tte[4] = me[4];\r\n\t\t\tte[5] = me[5];\r\n\t\t\tte[6] = me[6];\r\n\t\t\tte[7] = me[7];\r\n\t\t\tte[8] = me[8];\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.extractBasis = function extractBasis(xAxis, yAxis, zAxis) {\r\n\t\t\txAxis.setFromMatrix3Column(this, 0);\r\n\t\t\tyAxis.setFromMatrix3Column(this, 1);\r\n\t\t\tzAxis.setFromMatrix3Column(this, 2);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setFromMatrix4 = function setFromMatrix4(m) {\r\n\t\t\tvar me = m.elements;\r\n\t\t\tthis.set(me[0], me[4], me[8], me[1], me[5], me[9], me[2], me[6], me[10]);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.multiply = function multiply(m) {\r\n\t\t\treturn this.multiplyMatrices(this, m);\r\n\t\t};\r\n\r\n\t\t_proto.premultiply = function premultiply(m) {\r\n\t\t\treturn this.multiplyMatrices(m, this);\r\n\t\t};\r\n\r\n\t\t_proto.multiplyMatrices = function multiplyMatrices(a, b) {\r\n\t\t\tvar ae = a.elements;\r\n\t\t\tvar be = b.elements;\r\n\t\t\tvar te = this.elements;\r\n\t\t\tvar a11 = ae[0],\r\n\t\t\t\t\ta12 = ae[3],\r\n\t\t\t\t\ta13 = ae[6];\r\n\t\t\tvar a21 = ae[1],\r\n\t\t\t\t\ta22 = ae[4],\r\n\t\t\t\t\ta23 = ae[7];\r\n\t\t\tvar a31 = ae[2],\r\n\t\t\t\t\ta32 = ae[5],\r\n\t\t\t\t\ta33 = ae[8];\r\n\t\t\tvar b11 = be[0],\r\n\t\t\t\t\tb12 = be[3],\r\n\t\t\t\t\tb13 = be[6];\r\n\t\t\tvar b21 = be[1],\r\n\t\t\t\t\tb22 = be[4],\r\n\t\t\t\t\tb23 = be[7];\r\n\t\t\tvar b31 = be[2],\r\n\t\t\t\t\tb32 = be[5],\r\n\t\t\t\t\tb33 = be[8];\r\n\t\t\tte[0] = a11 * b11 + a12 * b21 + a13 * b31;\r\n\t\t\tte[3] = a11 * b12 + a12 * b22 + a13 * b32;\r\n\t\t\tte[6] = a11 * b13 + a12 * b23 + a13 * b33;\r\n\t\t\tte[1] = a21 * b11 + a22 * b21 + a23 * b31;\r\n\t\t\tte[4] = a21 * b12 + a22 * b22 + a23 * b32;\r\n\t\t\tte[7] = a21 * b13 + a22 * b23 + a23 * b33;\r\n\t\t\tte[2] = a31 * b11 + a32 * b21 + a33 * b31;\r\n\t\t\tte[5] = a31 * b12 + a32 * b22 + a33 * b32;\r\n\t\t\tte[8] = a31 * b13 + a32 * b23 + a33 * b33;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.multiplyScalar = function multiplyScalar(s) {\r\n\t\t\tvar te = this.elements;\r\n\t\t\tte[0] *= s;\r\n\t\t\tte[3] *= s;\r\n\t\t\tte[6] *= s;\r\n\t\t\tte[1] *= s;\r\n\t\t\tte[4] *= s;\r\n\t\t\tte[7] *= s;\r\n\t\t\tte[2] *= s;\r\n\t\t\tte[5] *= s;\r\n\t\t\tte[8] *= s;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.determinant = function determinant() {\r\n\t\t\tvar te = this.elements;\r\n\t\t\tvar a = te[0],\r\n\t\t\t\t\tb = te[1],\r\n\t\t\t\t\tc = te[2],\r\n\t\t\t\t\td = te[3],\r\n\t\t\t\t\te = te[4],\r\n\t\t\t\t\tf = te[5],\r\n\t\t\t\t\tg = te[6],\r\n\t\t\t\t\th = te[7],\r\n\t\t\t\t\ti = te[8];\r\n\t\t\treturn a * e * i - a * f * h - b * d * i + b * f * g + c * d * h - c * e * g;\r\n\t\t};\r\n\r\n\t\t_proto.invert = function invert() {\r\n\t\t\tvar te = this.elements,\r\n\t\t\t\t\tn11 = te[0],\r\n\t\t\t\t\tn21 = te[1],\r\n\t\t\t\t\tn31 = te[2],\r\n\t\t\t\t\tn12 = te[3],\r\n\t\t\t\t\tn22 = te[4],\r\n\t\t\t\t\tn32 = te[5],\r\n\t\t\t\t\tn13 = te[6],\r\n\t\t\t\t\tn23 = te[7],\r\n\t\t\t\t\tn33 = te[8],\r\n\t\t\t\t\tt11 = n33 * n22 - n32 * n23,\r\n\t\t\t\t\tt12 = n32 * n13 - n33 * n12,\r\n\t\t\t\t\tt13 = n23 * n12 - n22 * n13,\r\n\t\t\t\t\tdet = n11 * t11 + n21 * t12 + n31 * t13;\r\n\t\t\tif (det === 0) return this.set(0, 0, 0, 0, 0, 0, 0, 0, 0);\r\n\t\t\tvar detInv = 1 / det;\r\n\t\t\tte[0] = t11 * detInv;\r\n\t\t\tte[1] = (n31 * n23 - n33 * n21) * detInv;\r\n\t\t\tte[2] = (n32 * n21 - n31 * n22) * detInv;\r\n\t\t\tte[3] = t12 * detInv;\r\n\t\t\tte[4] = (n33 * n11 - n31 * n13) * detInv;\r\n\t\t\tte[5] = (n31 * n12 - n32 * n11) * detInv;\r\n\t\t\tte[6] = t13 * detInv;\r\n\t\t\tte[7] = (n21 * n13 - n23 * n11) * detInv;\r\n\t\t\tte[8] = (n22 * n11 - n21 * n12) * detInv;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.transpose = function transpose() {\r\n\t\t\tvar tmp;\r\n\t\t\tvar m = this.elements;\r\n\t\t\ttmp = m[1];\r\n\t\t\tm[1] = m[3];\r\n\t\t\tm[3] = tmp;\r\n\t\t\ttmp = m[2];\r\n\t\t\tm[2] = m[6];\r\n\t\t\tm[6] = tmp;\r\n\t\t\ttmp = m[5];\r\n\t\t\tm[5] = m[7];\r\n\t\t\tm[7] = tmp;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.getNormalMatrix = function getNormalMatrix(matrix4) {\r\n\t\t\treturn this.setFromMatrix4(matrix4).copy(this).invert().transpose();\r\n\t\t};\r\n\r\n\t\t_proto.transposeIntoArray = function transposeIntoArray(r) {\r\n\t\t\tvar m = this.elements;\r\n\t\t\tr[0] = m[0];\r\n\t\t\tr[1] = m[3];\r\n\t\t\tr[2] = m[6];\r\n\t\t\tr[3] = m[1];\r\n\t\t\tr[4] = m[4];\r\n\t\t\tr[5] = m[7];\r\n\t\t\tr[6] = m[2];\r\n\t\t\tr[7] = m[5];\r\n\t\t\tr[8] = m[8];\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setUvTransform = function setUvTransform(tx, ty, sx, sy, rotation, cx, cy) {\r\n\t\t\tvar c = Math.cos(rotation);\r\n\t\t\tvar s = Math.sin(rotation);\r\n\t\t\tthis.set(sx * c, sx * s, -sx * (c * cx + s * cy) + cx + tx, -sy * s, sy * c, -sy * (-s * cx + c * cy) + cy + ty, 0, 0, 1);\r\n\t\t};\r\n\r\n\t\t_proto.scale = function scale(sx, sy) {\r\n\t\t\tvar te = this.elements;\r\n\t\t\tte[0] *= sx;\r\n\t\t\tte[3] *= sx;\r\n\t\t\tte[6] *= sx;\r\n\t\t\tte[1] *= sy;\r\n\t\t\tte[4] *= sy;\r\n\t\t\tte[7] *= sy;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.rotate = function rotate(theta) {\r\n\t\t\tvar c = Math.cos(theta);\r\n\t\t\tvar s = Math.sin(theta);\r\n\t\t\tvar te = this.elements;\r\n\t\t\tvar a11 = te[0],\r\n\t\t\t\t\ta12 = te[3],\r\n\t\t\t\t\ta13 = te[6];\r\n\t\t\tvar a21 = te[1],\r\n\t\t\t\t\ta22 = te[4],\r\n\t\t\t\t\ta23 = te[7];\r\n\t\t\tte[0] = c * a11 + s * a21;\r\n\t\t\tte[3] = c * a12 + s * a22;\r\n\t\t\tte[6] = c * a13 + s * a23;\r\n\t\t\tte[1] = -s * a11 + c * a21;\r\n\t\t\tte[4] = -s * a12 + c * a22;\r\n\t\t\tte[7] = -s * a13 + c * a23;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.translate = function translate(tx, ty) {\r\n\t\t\tvar te = this.elements;\r\n\t\t\tte[0] += tx * te[2];\r\n\t\t\tte[3] += tx * te[5];\r\n\t\t\tte[6] += tx * te[8];\r\n\t\t\tte[1] += ty * te[2];\r\n\t\t\tte[4] += ty * te[5];\r\n\t\t\tte[7] += ty * te[8];\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.equals = function equals(matrix) {\r\n\t\t\tvar te = this.elements;\r\n\t\t\tvar me = matrix.elements;\r\n\r\n\t\t\tfor (var i = 0; i < 9; i++) {\r\n\t\t\t\tif (te[i] !== me[i]) return false;\r\n\t\t\t}\r\n\r\n\t\t\treturn true;\r\n\t\t};\r\n\r\n\t\t_proto.fromArray = function fromArray(array, offset) {\r\n\t\t\tif (offset === void 0) {\r\n\t\t\t\toffset = 0;\r\n\t\t\t}\r\n\r\n\t\t\tfor (var i = 0; i < 9; i++) {\r\n\t\t\t\tthis.elements[i] = array[i + offset];\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.toArray = function toArray(array, offset) {\r\n\t\t\tif (array === void 0) {\r\n\t\t\t\tarray = [];\r\n\t\t\t}\r\n\r\n\t\t\tif (offset === void 0) {\r\n\t\t\t\toffset = 0;\r\n\t\t\t}\r\n\r\n\t\t\tvar te = this.elements;\r\n\t\t\tarray[offset] = te[0];\r\n\t\t\tarray[offset + 1] = te[1];\r\n\t\t\tarray[offset + 2] = te[2];\r\n\t\t\tarray[offset + 3] = te[3];\r\n\t\t\tarray[offset + 4] = te[4];\r\n\t\t\tarray[offset + 5] = te[5];\r\n\t\t\tarray[offset + 6] = te[6];\r\n\t\t\tarray[offset + 7] = te[7];\r\n\t\t\tarray[offset + 8] = te[8];\r\n\t\t\treturn array;\r\n\t\t};\r\n\r\n\t\treturn Matrix3;\r\n\t}();\r\n\r\n\tvar _canvas;\r\n\r\n\tvar ImageUtils = {\r\n\t\tgetDataURL: function getDataURL(image) {\r\n\t\t\tif (/^data:/i.test(image.src)) {\r\n\t\t\t\treturn image.src;\r\n\t\t\t}\r\n\r\n\t\t\tif (typeof HTMLCanvasElement == 'undefined') {\r\n\t\t\t\treturn image.src;\r\n\t\t\t}\r\n\r\n\t\t\tvar canvas;\r\n\r\n\t\t\tif (image instanceof HTMLCanvasElement) {\r\n\t\t\t\tcanvas = image;\r\n\t\t\t} else {\r\n\t\t\t\tif (_canvas === undefined) _canvas = document.createElementNS('http://www.w3.org/1999/xhtml', 'canvas');\r\n\t\t\t\t_canvas.width = image.width;\r\n\t\t\t\t_canvas.height = image.height;\r\n\r\n\t\t\t\tvar context = _canvas.getContext('2d');\r\n\r\n\t\t\t\tif (image instanceof ImageData) {\r\n\t\t\t\t\tcontext.putImageData(image, 0, 0);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcontext.drawImage(image, 0, 0, image.width, image.height);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcanvas = _canvas;\r\n\t\t\t}\r\n\r\n\t\t\tif (canvas.width > 2048 || canvas.height > 2048) {\r\n\t\t\t\treturn canvas.toDataURL('image/jpeg', 0.6);\r\n\t\t\t} else {\r\n\t\t\t\treturn canvas.toDataURL('image/png');\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tvar textureId = 0;\r\n\r\n\tfunction Texture(image, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding) {\r\n\t\tif (image === void 0) {\r\n\t\t\timage = Texture.DEFAULT_IMAGE;\r\n\t\t}\r\n\r\n\t\tif (mapping === void 0) {\r\n\t\t\tmapping = Texture.DEFAULT_MAPPING;\r\n\t\t}\r\n\r\n\t\tif (wrapS === void 0) {\r\n\t\t\twrapS = ClampToEdgeWrapping;\r\n\t\t}\r\n\r\n\t\tif (wrapT === void 0) {\r\n\t\t\twrapT = ClampToEdgeWrapping;\r\n\t\t}\r\n\r\n\t\tif (magFilter === void 0) {\r\n\t\t\tmagFilter = LinearFilter;\r\n\t\t}\r\n\r\n\t\tif (minFilter === void 0) {\r\n\t\t\tminFilter = LinearMipmapLinearFilter;\r\n\t\t}\r\n\r\n\t\tif (format === void 0) {\r\n\t\t\tformat = RGBAFormat;\r\n\t\t}\r\n\r\n\t\tif (type === void 0) {\r\n\t\t\ttype = UnsignedByteType;\r\n\t\t}\r\n\r\n\t\tif (anisotropy === void 0) {\r\n\t\t\tanisotropy = 1;\r\n\t\t}\r\n\r\n\t\tif (encoding === void 0) {\r\n\t\t\tencoding = LinearEncoding;\r\n\t\t}\r\n\r\n\t\tObject.defineProperty(this, 'id', {\r\n\t\t\tvalue: textureId++\r\n\t\t});\r\n\t\tthis.uuid = MathUtils.generateUUID();\r\n\t\tthis.name = '';\r\n\t\tthis.image = image;\r\n\t\tthis.mipmaps = [];\r\n\t\tthis.mapping = mapping;\r\n\t\tthis.wrapS = wrapS;\r\n\t\tthis.wrapT = wrapT;\r\n\t\tthis.magFilter = magFilter;\r\n\t\tthis.minFilter = minFilter;\r\n\t\tthis.anisotropy = anisotropy;\r\n\t\tthis.format = format;\r\n\t\tthis.internalFormat = null;\r\n\t\tthis.type = type;\r\n\t\tthis.offset = new Vector2(0, 0);\r\n\t\tthis.repeat = new Vector2(1, 1);\r\n\t\tthis.center = new Vector2(0, 0);\r\n\t\tthis.rotation = 0;\r\n\t\tthis.matrixAutoUpdate = true;\r\n\t\tthis.matrix = new Matrix3();\r\n\t\tthis.generateMipmaps = true;\r\n\t\tthis.premultiplyAlpha = false;\r\n\t\tthis.flipY = true;\r\n\t\tthis.unpackAlignment = 4; // valid values: 1, 2, 4, 8 (see http://www.khronos.org/opengles/sdk/docs/man/xhtml/glPixelStorei.xml)\r\n\t\t// Values of encoding !== THREE.LinearEncoding only supported on map, envMap and emissiveMap.\r\n\t\t//\r\n\t\t// Also changing the encoding after already used by a Material will not automatically make the Material\r\n\t\t// update. You need to explicitly call Material.needsUpdate to trigger it to recompile.\r\n\r\n\t\tthis.encoding = encoding;\r\n\t\tthis.version = 0;\r\n\t\tthis.onUpdate = null;\r\n\t}\r\n\r\n\tTexture.DEFAULT_IMAGE = undefined;\r\n\tTexture.DEFAULT_MAPPING = UVMapping;\r\n\tTexture.prototype = Object.assign(Object.create(EventDispatcher.prototype), {\r\n\t\tconstructor: Texture,\r\n\t\tisTexture: true,\r\n\t\tupdateMatrix: function updateMatrix() {\r\n\t\t\tthis.matrix.setUvTransform(this.offset.x, this.offset.y, this.repeat.x, this.repeat.y, this.rotation, this.center.x, this.center.y);\r\n\t\t},\r\n\t\tclone: function clone() {\r\n\t\t\treturn new this.constructor().copy(this);\r\n\t\t},\r\n\t\tcopy: function copy(source) {\r\n\t\t\tthis.name = source.name;\r\n\t\t\tthis.image = source.image;\r\n\t\t\tthis.mipmaps = source.mipmaps.slice(0);\r\n\t\t\tthis.mapping = source.mapping;\r\n\t\t\tthis.wrapS = source.wrapS;\r\n\t\t\tthis.wrapT = source.wrapT;\r\n\t\t\tthis.magFilter = source.magFilter;\r\n\t\t\tthis.minFilter = source.minFilter;\r\n\t\t\tthis.anisotropy = source.anisotropy;\r\n\t\t\tthis.format = source.format;\r\n\t\t\tthis.internalFormat = source.internalFormat;\r\n\t\t\tthis.type = source.type;\r\n\t\t\tthis.offset.copy(source.offset);\r\n\t\t\tthis.repeat.copy(source.repeat);\r\n\t\t\tthis.center.copy(source.center);\r\n\t\t\tthis.rotation = source.rotation;\r\n\t\t\tthis.matrixAutoUpdate = source.matrixAutoUpdate;\r\n\t\t\tthis.matrix.copy(source.matrix);\r\n\t\t\tthis.generateMipmaps = source.generateMipmaps;\r\n\t\t\tthis.premultiplyAlpha = source.premultiplyAlpha;\r\n\t\t\tthis.flipY = source.flipY;\r\n\t\t\tthis.unpackAlignment = source.unpackAlignment;\r\n\t\t\tthis.encoding = source.encoding;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\ttoJSON: function toJSON(meta) {\r\n\t\t\tvar isRootObject = meta === undefined || typeof meta === 'string';\r\n\r\n\t\t\tif (!isRootObject && meta.textures[this.uuid] !== undefined) {\r\n\t\t\t\treturn meta.textures[this.uuid];\r\n\t\t\t}\r\n\r\n\t\t\tvar output = {\r\n\t\t\t\tmetadata: {\r\n\t\t\t\t\tversion: 4.5,\r\n\t\t\t\t\ttype: 'Texture',\r\n\t\t\t\t\tgenerator: 'Texture.toJSON'\r\n\t\t\t\t},\r\n\t\t\t\tuuid: this.uuid,\r\n\t\t\t\tname: this.name,\r\n\t\t\t\tmapping: this.mapping,\r\n\t\t\t\trepeat: [this.repeat.x, this.repeat.y],\r\n\t\t\t\toffset: [this.offset.x, this.offset.y],\r\n\t\t\t\tcenter: [this.center.x, this.center.y],\r\n\t\t\t\trotation: this.rotation,\r\n\t\t\t\twrap: [this.wrapS, this.wrapT],\r\n\t\t\t\tformat: this.format,\r\n\t\t\t\ttype: this.type,\r\n\t\t\t\tencoding: this.encoding,\r\n\t\t\t\tminFilter: this.minFilter,\r\n\t\t\t\tmagFilter: this.magFilter,\r\n\t\t\t\tanisotropy: this.anisotropy,\r\n\t\t\t\tflipY: this.flipY,\r\n\t\t\t\tpremultiplyAlpha: this.premultiplyAlpha,\r\n\t\t\t\tunpackAlignment: this.unpackAlignment\r\n\t\t\t};\r\n\r\n\t\t\tif (this.image !== undefined) {\r\n\t\t\t\t// TODO: Move to THREE.Image\r\n\t\t\t\tvar image = this.image;\r\n\r\n\t\t\t\tif (image.uuid === undefined) {\r\n\t\t\t\t\timage.uuid = MathUtils.generateUUID(); // UGH\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!isRootObject && meta.images[image.uuid] === undefined) {\r\n\t\t\t\t\tvar url;\r\n\r\n\t\t\t\t\tif (Array.isArray(image)) {\r\n\t\t\t\t\t\t// process array of images e.g. CubeTexture\r\n\t\t\t\t\t\turl = [];\r\n\r\n\t\t\t\t\t\tfor (var i = 0, l = image.length; i < l; i++) {\r\n\t\t\t\t\t\t\t// check cube texture with data textures\r\n\t\t\t\t\t\t\tif (image[i].isDataTexture) {\r\n\t\t\t\t\t\t\t\turl.push(serializeImage(image[i].image));\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\turl.push(serializeImage(image[i]));\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// process single image\r\n\t\t\t\t\t\turl = serializeImage(image);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tmeta.images[image.uuid] = {\r\n\t\t\t\t\t\tuuid: image.uuid,\r\n\t\t\t\t\t\turl: url\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\toutput.image = image.uuid;\r\n\t\t\t}\r\n\r\n\t\t\tif (!isRootObject) {\r\n\t\t\t\tmeta.textures[this.uuid] = output;\r\n\t\t\t}\r\n\r\n\t\t\treturn output;\r\n\t\t},\r\n\t\tdispose: function dispose() {\r\n\t\t\tthis.dispatchEvent({\r\n\t\t\t\ttype: 'dispose'\r\n\t\t\t});\r\n\t\t},\r\n\t\ttransformUv: function transformUv(uv) {\r\n\t\t\tif (this.mapping !== UVMapping) return uv;\r\n\t\t\tuv.applyMatrix3(this.matrix);\r\n\r\n\t\t\tif (uv.x < 0 || uv.x > 1) {\r\n\t\t\t\tswitch (this.wrapS) {\r\n\t\t\t\t\tcase RepeatWrapping:\r\n\t\t\t\t\t\tuv.x = uv.x - Math.floor(uv.x);\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase ClampToEdgeWrapping:\r\n\t\t\t\t\t\tuv.x = uv.x < 0 ? 0 : 1;\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase MirroredRepeatWrapping:\r\n\t\t\t\t\t\tif (Math.abs(Math.floor(uv.x) % 2) === 1) {\r\n\t\t\t\t\t\t\tuv.x = Math.ceil(uv.x) - uv.x;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tuv.x = uv.x - Math.floor(uv.x);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (uv.y < 0 || uv.y > 1) {\r\n\t\t\t\tswitch (this.wrapT) {\r\n\t\t\t\t\tcase RepeatWrapping:\r\n\t\t\t\t\t\tuv.y = uv.y - Math.floor(uv.y);\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase ClampToEdgeWrapping:\r\n\t\t\t\t\t\tuv.y = uv.y < 0 ? 0 : 1;\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase MirroredRepeatWrapping:\r\n\t\t\t\t\t\tif (Math.abs(Math.floor(uv.y) % 2) === 1) {\r\n\t\t\t\t\t\t\tuv.y = Math.ceil(uv.y) - uv.y;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tuv.y = uv.y - Math.floor(uv.y);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (this.flipY) {\r\n\t\t\t\tuv.y = 1 - uv.y;\r\n\t\t\t}\r\n\r\n\t\t\treturn uv;\r\n\t\t}\r\n\t});\r\n\tObject.defineProperty(Texture.prototype, \"needsUpdate\", {\r\n\t\tset: function set(value) {\r\n\t\t\tif (value === true) this.version++;\r\n\t\t}\r\n\t});\r\n\r\n\tfunction serializeImage(image) {\r\n\t\tif (typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement || typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement || typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap) {\r\n\t\t\t// default images\r\n\t\t\treturn ImageUtils.getDataURL(image);\r\n\t\t} else {\r\n\t\t\tif (image.data) {\r\n\t\t\t\t// images of DataTexture\r\n\t\t\t\treturn {\r\n\t\t\t\t\tdata: Array.prototype.slice.call(image.data),\r\n\t\t\t\t\twidth: image.width,\r\n\t\t\t\t\theight: image.height,\r\n\t\t\t\t\ttype: image.data.constructor.name\r\n\t\t\t\t};\r\n\t\t\t} else {\r\n\t\t\t\tconsole.warn('THREE.Texture: Unable to serialize Texture.');\r\n\t\t\t\treturn {};\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tvar Vector4 = /*#__PURE__*/function () {\r\n\t\tfunction Vector4(x, y, z, w) {\r\n\t\t\tif (x === void 0) {\r\n\t\t\t\tx = 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (y === void 0) {\r\n\t\t\t\ty = 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (z === void 0) {\r\n\t\t\t\tz = 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (w === void 0) {\r\n\t\t\t\tw = 1;\r\n\t\t\t}\r\n\r\n\t\t\tObject.defineProperty(this, 'isVector4', {\r\n\t\t\t\tvalue: true\r\n\t\t\t});\r\n\t\t\tthis.x = x;\r\n\t\t\tthis.y = y;\r\n\t\t\tthis.z = z;\r\n\t\t\tthis.w = w;\r\n\t\t}\r\n\r\n\t\tvar _proto = Vector4.prototype;\r\n\r\n\t\t_proto.set = function set(x, y, z, w) {\r\n\t\t\tthis.x = x;\r\n\t\t\tthis.y = y;\r\n\t\t\tthis.z = z;\r\n\t\t\tthis.w = w;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setScalar = function setScalar(scalar) {\r\n\t\t\tthis.x = scalar;\r\n\t\t\tthis.y = scalar;\r\n\t\t\tthis.z = scalar;\r\n\t\t\tthis.w = scalar;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setX = function setX(x) {\r\n\t\t\tthis.x = x;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setY = function setY(y) {\r\n\t\t\tthis.y = y;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setZ = function setZ(z) {\r\n\t\t\tthis.z = z;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setW = function setW(w) {\r\n\t\t\tthis.w = w;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setComponent = function setComponent(index, value) {\r\n\t\t\tswitch (index) {\r\n\t\t\t\tcase 0:\r\n\t\t\t\t\tthis.x = value;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 1:\r\n\t\t\t\t\tthis.y = value;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 2:\r\n\t\t\t\t\tthis.z = value;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 3:\r\n\t\t\t\t\tthis.w = value;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tthrow new Error('index is out of range: ' + index);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.getComponent = function getComponent(index) {\r\n\t\t\tswitch (index) {\r\n\t\t\t\tcase 0:\r\n\t\t\t\t\treturn this.x;\r\n\r\n\t\t\t\tcase 1:\r\n\t\t\t\t\treturn this.y;\r\n\r\n\t\t\t\tcase 2:\r\n\t\t\t\t\treturn this.z;\r\n\r\n\t\t\t\tcase 3:\r\n\t\t\t\t\treturn this.w;\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tthrow new Error('index is out of range: ' + index);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t_proto.clone = function clone() {\r\n\t\t\treturn new this.constructor(this.x, this.y, this.z, this.w);\r\n\t\t};\r\n\r\n\t\t_proto.copy = function copy(v) {\r\n\t\t\tthis.x = v.x;\r\n\t\t\tthis.y = v.y;\r\n\t\t\tthis.z = v.z;\r\n\t\t\tthis.w = v.w !== undefined ? v.w : 1;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.add = function add(v, w) {\r\n\t\t\tif (w !== undefined) {\r\n\t\t\t\tconsole.warn('THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead.');\r\n\t\t\t\treturn this.addVectors(v, w);\r\n\t\t\t}\r\n\r\n\t\t\tthis.x += v.x;\r\n\t\t\tthis.y += v.y;\r\n\t\t\tthis.z += v.z;\r\n\t\t\tthis.w += v.w;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.addScalar = function addScalar(s) {\r\n\t\t\tthis.x += s;\r\n\t\t\tthis.y += s;\r\n\t\t\tthis.z += s;\r\n\t\t\tthis.w += s;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.addVectors = function addVectors(a, b) {\r\n\t\t\tthis.x = a.x + b.x;\r\n\t\t\tthis.y = a.y + b.y;\r\n\t\t\tthis.z = a.z + b.z;\r\n\t\t\tthis.w = a.w + b.w;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.addScaledVector = function addScaledVector(v, s) {\r\n\t\t\tthis.x += v.x * s;\r\n\t\t\tthis.y += v.y * s;\r\n\t\t\tthis.z += v.z * s;\r\n\t\t\tthis.w += v.w * s;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.sub = function sub(v, w) {\r\n\t\t\tif (w !== undefined) {\r\n\t\t\t\tconsole.warn('THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.');\r\n\t\t\t\treturn this.subVectors(v, w);\r\n\t\t\t}\r\n\r\n\t\t\tthis.x -= v.x;\r\n\t\t\tthis.y -= v.y;\r\n\t\t\tthis.z -= v.z;\r\n\t\t\tthis.w -= v.w;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.subScalar = function subScalar(s) {\r\n\t\t\tthis.x -= s;\r\n\t\t\tthis.y -= s;\r\n\t\t\tthis.z -= s;\r\n\t\t\tthis.w -= s;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.subVectors = function subVectors(a, b) {\r\n\t\t\tthis.x = a.x - b.x;\r\n\t\t\tthis.y = a.y - b.y;\r\n\t\t\tthis.z = a.z - b.z;\r\n\t\t\tthis.w = a.w - b.w;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.multiplyScalar = function multiplyScalar(scalar) {\r\n\t\t\tthis.x *= scalar;\r\n\t\t\tthis.y *= scalar;\r\n\t\t\tthis.z *= scalar;\r\n\t\t\tthis.w *= scalar;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.applyMatrix4 = function applyMatrix4(m) {\r\n\t\t\tvar x = this.x,\r\n\t\t\t\t\ty = this.y,\r\n\t\t\t\t\tz = this.z,\r\n\t\t\t\t\tw = this.w;\r\n\t\t\tvar e = m.elements;\r\n\t\t\tthis.x = e[0] * x + e[4] * y + e[8] * z + e[12] * w;\r\n\t\t\tthis.y = e[1] * x + e[5] * y + e[9] * z + e[13] * w;\r\n\t\t\tthis.z = e[2] * x + e[6] * y + e[10] * z + e[14] * w;\r\n\t\t\tthis.w = e[3] * x + e[7] * y + e[11] * z + e[15] * w;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.divideScalar = function divideScalar(scalar) {\r\n\t\t\treturn this.multiplyScalar(1 / scalar);\r\n\t\t};\r\n\r\n\t\t_proto.setAxisAngleFromQuaternion = function setAxisAngleFromQuaternion(q) {\r\n\t\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToAngle/index.htm\r\n\t\t\t// q is assumed to be normalized\r\n\t\t\tthis.w = 2 * Math.acos(q.w);\r\n\t\t\tvar s = Math.sqrt(1 - q.w * q.w);\r\n\r\n\t\t\tif (s < 0.0001) {\r\n\t\t\t\tthis.x = 1;\r\n\t\t\t\tthis.y = 0;\r\n\t\t\t\tthis.z = 0;\r\n\t\t\t} else {\r\n\t\t\t\tthis.x = q.x / s;\r\n\t\t\t\tthis.y = q.y / s;\r\n\t\t\t\tthis.z = q.z / s;\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setAxisAngleFromRotationMatrix = function setAxisAngleFromRotationMatrix(m) {\r\n\t\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToAngle/index.htm\r\n\t\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\r\n\t\t\tvar angle, x, y, z; // variables for result\r\n\r\n\t\t\tvar epsilon = 0.01,\r\n\t\t\t\t\t// margin to allow for rounding errors\r\n\t\t\tepsilon2 = 0.1,\r\n\t\t\t\t\t// margin to distinguish between 0 and 180 degrees\r\n\t\t\tte = m.elements,\r\n\t\t\t\t\tm11 = te[0],\r\n\t\t\t\t\tm12 = te[4],\r\n\t\t\t\t\tm13 = te[8],\r\n\t\t\t\t\tm21 = te[1],\r\n\t\t\t\t\tm22 = te[5],\r\n\t\t\t\t\tm23 = te[9],\r\n\t\t\t\t\tm31 = te[2],\r\n\t\t\t\t\tm32 = te[6],\r\n\t\t\t\t\tm33 = te[10];\r\n\r\n\t\t\tif (Math.abs(m12 - m21) < epsilon && Math.abs(m13 - m31) < epsilon && Math.abs(m23 - m32) < epsilon) {\r\n\t\t\t\t// singularity found\r\n\t\t\t\t// first check for identity matrix which must have +1 for all terms\r\n\t\t\t\t// in leading diagonal and zero in other terms\r\n\t\t\t\tif (Math.abs(m12 + m21) < epsilon2 && Math.abs(m13 + m31) < epsilon2 && Math.abs(m23 + m32) < epsilon2 && Math.abs(m11 + m22 + m33 - 3) < epsilon2) {\r\n\t\t\t\t\t// this singularity is identity matrix so angle = 0\r\n\t\t\t\t\tthis.set(1, 0, 0, 0);\r\n\t\t\t\t\treturn this; // zero angle, arbitrary axis\r\n\t\t\t\t} // otherwise this singularity is angle = 180\r\n\r\n\r\n\t\t\t\tangle = Math.PI;\r\n\t\t\t\tvar xx = (m11 + 1) / 2;\r\n\t\t\t\tvar yy = (m22 + 1) / 2;\r\n\t\t\t\tvar zz = (m33 + 1) / 2;\r\n\t\t\t\tvar xy = (m12 + m21) / 4;\r\n\t\t\t\tvar xz = (m13 + m31) / 4;\r\n\t\t\t\tvar yz = (m23 + m32) / 4;\r\n\r\n\t\t\t\tif (xx > yy && xx > zz) {\r\n\t\t\t\t\t// m11 is the largest diagonal term\r\n\t\t\t\t\tif (xx < epsilon) {\r\n\t\t\t\t\t\tx = 0;\r\n\t\t\t\t\t\ty = 0.707106781;\r\n\t\t\t\t\t\tz = 0.707106781;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tx = Math.sqrt(xx);\r\n\t\t\t\t\t\ty = xy / x;\r\n\t\t\t\t\t\tz = xz / x;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (yy > zz) {\r\n\t\t\t\t\t// m22 is the largest diagonal term\r\n\t\t\t\t\tif (yy < epsilon) {\r\n\t\t\t\t\t\tx = 0.707106781;\r\n\t\t\t\t\t\ty = 0;\r\n\t\t\t\t\t\tz = 0.707106781;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\ty = Math.sqrt(yy);\r\n\t\t\t\t\t\tx = xy / y;\r\n\t\t\t\t\t\tz = yz / y;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// m33 is the largest diagonal term so base result on this\r\n\t\t\t\t\tif (zz < epsilon) {\r\n\t\t\t\t\t\tx = 0.707106781;\r\n\t\t\t\t\t\ty = 0.707106781;\r\n\t\t\t\t\t\tz = 0;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tz = Math.sqrt(zz);\r\n\t\t\t\t\t\tx = xz / z;\r\n\t\t\t\t\t\ty = yz / z;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.set(x, y, z, angle);\r\n\t\t\t\treturn this; // return 180 deg rotation\r\n\t\t\t} // as we have reached here there are no singularities so we can handle normally\r\n\r\n\r\n\t\t\tvar s = Math.sqrt((m32 - m23) * (m32 - m23) + (m13 - m31) * (m13 - m31) + (m21 - m12) * (m21 - m12)); // used to normalize\r\n\r\n\t\t\tif (Math.abs(s) < 0.001) s = 1; // prevent divide by zero, should not happen if matrix is orthogonal and should be\r\n\t\t\t// caught by singularity test above, but I've left it in just in case\r\n\r\n\t\t\tthis.x = (m32 - m23) / s;\r\n\t\t\tthis.y = (m13 - m31) / s;\r\n\t\t\tthis.z = (m21 - m12) / s;\r\n\t\t\tthis.w = Math.acos((m11 + m22 + m33 - 1) / 2);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.min = function min(v) {\r\n\t\t\tthis.x = Math.min(this.x, v.x);\r\n\t\t\tthis.y = Math.min(this.y, v.y);\r\n\t\t\tthis.z = Math.min(this.z, v.z);\r\n\t\t\tthis.w = Math.min(this.w, v.w);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.max = function max(v) {\r\n\t\t\tthis.x = Math.max(this.x, v.x);\r\n\t\t\tthis.y = Math.max(this.y, v.y);\r\n\t\t\tthis.z = Math.max(this.z, v.z);\r\n\t\t\tthis.w = Math.max(this.w, v.w);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.clamp = function clamp(min, max) {\r\n\t\t\t// assumes min < max, componentwise\r\n\t\t\tthis.x = Math.max(min.x, Math.min(max.x, this.x));\r\n\t\t\tthis.y = Math.max(min.y, Math.min(max.y, this.y));\r\n\t\t\tthis.z = Math.max(min.z, Math.min(max.z, this.z));\r\n\t\t\tthis.w = Math.max(min.w, Math.min(max.w, this.w));\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.clampScalar = function clampScalar(minVal, maxVal) {\r\n\t\t\tthis.x = Math.max(minVal, Math.min(maxVal, this.x));\r\n\t\t\tthis.y = Math.max(minVal, Math.min(maxVal, this.y));\r\n\t\t\tthis.z = Math.max(minVal, Math.min(maxVal, this.z));\r\n\t\t\tthis.w = Math.max(minVal, Math.min(maxVal, this.w));\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.clampLength = function clampLength(min, max) {\r\n\t\t\tvar length = this.length();\r\n\t\t\treturn this.divideScalar(length || 1).multiplyScalar(Math.max(min, Math.min(max, length)));\r\n\t\t};\r\n\r\n\t\t_proto.floor = function floor() {\r\n\t\t\tthis.x = Math.floor(this.x);\r\n\t\t\tthis.y = Math.floor(this.y);\r\n\t\t\tthis.z = Math.floor(this.z);\r\n\t\t\tthis.w = Math.floor(this.w);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.ceil = function ceil() {\r\n\t\t\tthis.x = Math.ceil(this.x);\r\n\t\t\tthis.y = Math.ceil(this.y);\r\n\t\t\tthis.z = Math.ceil(this.z);\r\n\t\t\tthis.w = Math.ceil(this.w);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.round = function round() {\r\n\t\t\tthis.x = Math.round(this.x);\r\n\t\t\tthis.y = Math.round(this.y);\r\n\t\t\tthis.z = Math.round(this.z);\r\n\t\t\tthis.w = Math.round(this.w);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.roundToZero = function roundToZero() {\r\n\t\t\tthis.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x);\r\n\t\t\tthis.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y);\r\n\t\t\tthis.z = this.z < 0 ? Math.ceil(this.z) : Math.floor(this.z);\r\n\t\t\tthis.w = this.w < 0 ? Math.ceil(this.w) : Math.floor(this.w);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.negate = function negate() {\r\n\t\t\tthis.x = -this.x;\r\n\t\t\tthis.y = -this.y;\r\n\t\t\tthis.z = -this.z;\r\n\t\t\tthis.w = -this.w;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.dot = function dot(v) {\r\n\t\t\treturn this.x * v.x + this.y * v.y + this.z * v.z + this.w * v.w;\r\n\t\t};\r\n\r\n\t\t_proto.lengthSq = function lengthSq() {\r\n\t\t\treturn this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w;\r\n\t\t};\r\n\r\n\t\t_proto.length = function length() {\r\n\t\t\treturn Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w);\r\n\t\t};\r\n\r\n\t\t_proto.manhattanLength = function manhattanLength() {\r\n\t\t\treturn Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z) + Math.abs(this.w);\r\n\t\t};\r\n\r\n\t\t_proto.normalize = function normalize() {\r\n\t\t\treturn this.divideScalar(this.length() || 1);\r\n\t\t};\r\n\r\n\t\t_proto.setLength = function setLength(length) {\r\n\t\t\treturn this.normalize().multiplyScalar(length);\r\n\t\t};\r\n\r\n\t\t_proto.lerp = function lerp(v, alpha) {\r\n\t\t\tthis.x += (v.x - this.x) * alpha;\r\n\t\t\tthis.y += (v.y - this.y) * alpha;\r\n\t\t\tthis.z += (v.z - this.z) * alpha;\r\n\t\t\tthis.w += (v.w - this.w) * alpha;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.lerpVectors = function lerpVectors(v1, v2, alpha) {\r\n\t\t\tthis.x = v1.x + (v2.x - v1.x) * alpha;\r\n\t\t\tthis.y = v1.y + (v2.y - v1.y) * alpha;\r\n\t\t\tthis.z = v1.z + (v2.z - v1.z) * alpha;\r\n\t\t\tthis.w = v1.w + (v2.w - v1.w) * alpha;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.equals = function equals(v) {\r\n\t\t\treturn v.x === this.x && v.y === this.y && v.z === this.z && v.w === this.w;\r\n\t\t};\r\n\r\n\t\t_proto.fromArray = function fromArray(array, offset) {\r\n\t\t\tif (offset === void 0) {\r\n\t\t\t\toffset = 0;\r\n\t\t\t}\r\n\r\n\t\t\tthis.x = array[offset];\r\n\t\t\tthis.y = array[offset + 1];\r\n\t\t\tthis.z = array[offset + 2];\r\n\t\t\tthis.w = array[offset + 3];\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.toArray = function toArray(array, offset) {\r\n\t\t\tif (array === void 0) {\r\n\t\t\t\tarray = [];\r\n\t\t\t}\r\n\r\n\t\t\tif (offset === void 0) {\r\n\t\t\t\toffset = 0;\r\n\t\t\t}\r\n\r\n\t\t\tarray[offset] = this.x;\r\n\t\t\tarray[offset + 1] = this.y;\r\n\t\t\tarray[offset + 2] = this.z;\r\n\t\t\tarray[offset + 3] = this.w;\r\n\t\t\treturn array;\r\n\t\t};\r\n\r\n\t\t_proto.fromBufferAttribute = function fromBufferAttribute(attribute, index, offset) {\r\n\t\t\tif (offset !== undefined) {\r\n\t\t\t\tconsole.warn('THREE.Vector4: offset has been removed from .fromBufferAttribute().');\r\n\t\t\t}\r\n\r\n\t\t\tthis.x = attribute.getX(index);\r\n\t\t\tthis.y = attribute.getY(index);\r\n\t\t\tthis.z = attribute.getZ(index);\r\n\t\t\tthis.w = attribute.getW(index);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.random = function random() {\r\n\t\t\tthis.x = Math.random();\r\n\t\t\tthis.y = Math.random();\r\n\t\t\tthis.z = Math.random();\r\n\t\t\tthis.w = Math.random();\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_createClass(Vector4, [{\r\n\t\t\tkey: \"width\",\r\n\t\t\tget: function get() {\r\n\t\t\t\treturn this.z;\r\n\t\t\t},\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tthis.z = value;\r\n\t\t\t}\r\n\t\t}, {\r\n\t\t\tkey: \"height\",\r\n\t\t\tget: function get() {\r\n\t\t\t\treturn this.w;\r\n\t\t\t},\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tthis.w = value;\r\n\t\t\t}\r\n\t\t}]);\r\n\r\n\t\treturn Vector4;\r\n\t}();\r\n\r\n\t/*\r\n\t In options, we can specify:\r\n\t * Texture parameters for an auto-generated target texture\r\n\t * depthBuffer/stencilBuffer: Booleans to indicate if we should generate these buffers\r\n\t*/\r\n\r\n\tfunction WebGLRenderTarget(width, height, options) {\r\n\t\tthis.width = width;\r\n\t\tthis.height = height;\r\n\t\tthis.scissor = new Vector4(0, 0, width, height);\r\n\t\tthis.scissorTest = false;\r\n\t\tthis.viewport = new Vector4(0, 0, width, height);\r\n\t\toptions = options || {};\r\n\t\tthis.texture = new Texture(undefined, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.encoding);\r\n\t\tthis.texture.image = {};\r\n\t\tthis.texture.image.width = width;\r\n\t\tthis.texture.image.height = height;\r\n\t\tthis.texture.generateMipmaps = options.generateMipmaps !== undefined ? options.generateMipmaps : false;\r\n\t\tthis.texture.minFilter = options.minFilter !== undefined ? options.minFilter : LinearFilter;\r\n\t\tthis.depthBuffer = options.depthBuffer !== undefined ? options.depthBuffer : true;\r\n\t\tthis.stencilBuffer = options.stencilBuffer !== undefined ? options.stencilBuffer : false;\r\n\t\tthis.depthTexture = options.depthTexture !== undefined ? options.depthTexture : null;\r\n\t}\r\n\r\n\tWebGLRenderTarget.prototype = Object.assign(Object.create(EventDispatcher.prototype), {\r\n\t\tconstructor: WebGLRenderTarget,\r\n\t\tisWebGLRenderTarget: true,\r\n\t\tsetSize: function setSize(width, height) {\r\n\t\t\tif (this.width !== width || this.height !== height) {\r\n\t\t\t\tthis.width = width;\r\n\t\t\t\tthis.height = height;\r\n\t\t\t\tthis.texture.image.width = width;\r\n\t\t\t\tthis.texture.image.height = height;\r\n\t\t\t\tthis.dispose();\r\n\t\t\t}\r\n\r\n\t\t\tthis.viewport.set(0, 0, width, height);\r\n\t\t\tthis.scissor.set(0, 0, width, height);\r\n\t\t},\r\n\t\tclone: function clone() {\r\n\t\t\treturn new this.constructor().copy(this);\r\n\t\t},\r\n\t\tcopy: function copy(source) {\r\n\t\t\tthis.width = source.width;\r\n\t\t\tthis.height = source.height;\r\n\t\t\tthis.viewport.copy(source.viewport);\r\n\t\t\tthis.texture = source.texture.clone();\r\n\t\t\tthis.depthBuffer = source.depthBuffer;\r\n\t\t\tthis.stencilBuffer = source.stencilBuffer;\r\n\t\t\tthis.depthTexture = source.depthTexture;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tdispose: function dispose() {\r\n\t\t\tthis.dispatchEvent({\r\n\t\t\t\ttype: 'dispose'\r\n\t\t\t});\r\n\t\t}\r\n\t});\r\n\r\n\tfunction WebGLMultisampleRenderTarget(width, height, options) {\r\n\t\tWebGLRenderTarget.call(this, width, height, options);\r\n\t\tthis.samples = 4;\r\n\t}\r\n\r\n\tWebGLMultisampleRenderTarget.prototype = Object.assign(Object.create(WebGLRenderTarget.prototype), {\r\n\t\tconstructor: WebGLMultisampleRenderTarget,\r\n\t\tisWebGLMultisampleRenderTarget: true,\r\n\t\tcopy: function copy(source) {\r\n\t\t\tWebGLRenderTarget.prototype.copy.call(this, source);\r\n\t\t\tthis.samples = source.samples;\r\n\t\t\treturn this;\r\n\t\t}\r\n\t});\r\n\r\n\tvar Quaternion = /*#__PURE__*/function () {\r\n\t\tfunction Quaternion(x, y, z, w) {\r\n\t\t\tif (x === void 0) {\r\n\t\t\t\tx = 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (y === void 0) {\r\n\t\t\t\ty = 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (z === void 0) {\r\n\t\t\t\tz = 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (w === void 0) {\r\n\t\t\t\tw = 1;\r\n\t\t\t}\r\n\r\n\t\t\tObject.defineProperty(this, 'isQuaternion', {\r\n\t\t\t\tvalue: true\r\n\t\t\t});\r\n\t\t\tthis._x = x;\r\n\t\t\tthis._y = y;\r\n\t\t\tthis._z = z;\r\n\t\t\tthis._w = w;\r\n\t\t}\r\n\r\n\t\tQuaternion.slerp = function slerp(qa, qb, qm, t) {\r\n\t\t\treturn qm.copy(qa).slerp(qb, t);\r\n\t\t};\r\n\r\n\t\tQuaternion.slerpFlat = function slerpFlat(dst, dstOffset, src0, srcOffset0, src1, srcOffset1, t) {\r\n\t\t\t// fuzz-free, array-based Quaternion SLERP operation\r\n\t\t\tvar x0 = src0[srcOffset0 + 0],\r\n\t\t\t\t\ty0 = src0[srcOffset0 + 1],\r\n\t\t\t\t\tz0 = src0[srcOffset0 + 2],\r\n\t\t\t\t\tw0 = src0[srcOffset0 + 3];\r\n\t\t\tvar x1 = src1[srcOffset1 + 0],\r\n\t\t\t\t\ty1 = src1[srcOffset1 + 1],\r\n\t\t\t\t\tz1 = src1[srcOffset1 + 2],\r\n\t\t\t\t\tw1 = src1[srcOffset1 + 3];\r\n\r\n\t\t\tif (w0 !== w1 || x0 !== x1 || y0 !== y1 || z0 !== z1) {\r\n\t\t\t\tvar s = 1 - t;\r\n\t\t\t\tvar cos = x0 * x1 + y0 * y1 + z0 * z1 + w0 * w1,\r\n\t\t\t\t\t\tdir = cos >= 0 ? 1 : -1,\r\n\t\t\t\t\t\tsqrSin = 1 - cos * cos; // Skip the Slerp for tiny steps to avoid numeric problems:\r\n\r\n\t\t\t\tif (sqrSin > Number.EPSILON) {\r\n\t\t\t\t\tvar sin = Math.sqrt(sqrSin),\r\n\t\t\t\t\t\t\tlen = Math.atan2(sin, cos * dir);\r\n\t\t\t\t\ts = Math.sin(s * len) / sin;\r\n\t\t\t\t\tt = Math.sin(t * len) / sin;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar tDir = t * dir;\r\n\t\t\t\tx0 = x0 * s + x1 * tDir;\r\n\t\t\t\ty0 = y0 * s + y1 * tDir;\r\n\t\t\t\tz0 = z0 * s + z1 * tDir;\r\n\t\t\t\tw0 = w0 * s + w1 * tDir; // Normalize in case we just did a lerp:\r\n\r\n\t\t\t\tif (s === 1 - t) {\r\n\t\t\t\t\tvar f = 1 / Math.sqrt(x0 * x0 + y0 * y0 + z0 * z0 + w0 * w0);\r\n\t\t\t\t\tx0 *= f;\r\n\t\t\t\t\ty0 *= f;\r\n\t\t\t\t\tz0 *= f;\r\n\t\t\t\t\tw0 *= f;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tdst[dstOffset] = x0;\r\n\t\t\tdst[dstOffset + 1] = y0;\r\n\t\t\tdst[dstOffset + 2] = z0;\r\n\t\t\tdst[dstOffset + 3] = w0;\r\n\t\t};\r\n\r\n\t\tQuaternion.multiplyQuaternionsFlat = function multiplyQuaternionsFlat(dst, dstOffset, src0, srcOffset0, src1, srcOffset1) {\r\n\t\t\tvar x0 = src0[srcOffset0];\r\n\t\t\tvar y0 = src0[srcOffset0 + 1];\r\n\t\t\tvar z0 = src0[srcOffset0 + 2];\r\n\t\t\tvar w0 = src0[srcOffset0 + 3];\r\n\t\t\tvar x1 = src1[srcOffset1];\r\n\t\t\tvar y1 = src1[srcOffset1 + 1];\r\n\t\t\tvar z1 = src1[srcOffset1 + 2];\r\n\t\t\tvar w1 = src1[srcOffset1 + 3];\r\n\t\t\tdst[dstOffset] = x0 * w1 + w0 * x1 + y0 * z1 - z0 * y1;\r\n\t\t\tdst[dstOffset + 1] = y0 * w1 + w0 * y1 + z0 * x1 - x0 * z1;\r\n\t\t\tdst[dstOffset + 2] = z0 * w1 + w0 * z1 + x0 * y1 - y0 * x1;\r\n\t\t\tdst[dstOffset + 3] = w0 * w1 - x0 * x1 - y0 * y1 - z0 * z1;\r\n\t\t\treturn dst;\r\n\t\t};\r\n\r\n\t\tvar _proto = Quaternion.prototype;\r\n\r\n\t\t_proto.set = function set(x, y, z, w) {\r\n\t\t\tthis._x = x;\r\n\t\t\tthis._y = y;\r\n\t\t\tthis._z = z;\r\n\t\t\tthis._w = w;\r\n\r\n\t\t\tthis._onChangeCallback();\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.clone = function clone() {\r\n\t\t\treturn new this.constructor(this._x, this._y, this._z, this._w);\r\n\t\t};\r\n\r\n\t\t_proto.copy = function copy(quaternion) {\r\n\t\t\tthis._x = quaternion.x;\r\n\t\t\tthis._y = quaternion.y;\r\n\t\t\tthis._z = quaternion.z;\r\n\t\t\tthis._w = quaternion.w;\r\n\r\n\t\t\tthis._onChangeCallback();\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setFromEuler = function setFromEuler(euler, update) {\r\n\t\t\tif (!(euler && euler.isEuler)) {\r\n\t\t\t\tthrow new Error('THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.');\r\n\t\t\t}\r\n\r\n\t\t\tvar x = euler._x,\r\n\t\t\t\t\ty = euler._y,\r\n\t\t\t\t\tz = euler._z,\r\n\t\t\t\t\torder = euler._order; // http://www.mathworks.com/matlabcentral/fileexchange/\r\n\t\t\t// \t20696-function-to-convert-between-dcm-euler-angles-quaternions-and-euler-vectors/\r\n\t\t\t//\tcontent/SpinCalc.m\r\n\r\n\t\t\tvar cos = Math.cos;\r\n\t\t\tvar sin = Math.sin;\r\n\t\t\tvar c1 = cos(x / 2);\r\n\t\t\tvar c2 = cos(y / 2);\r\n\t\t\tvar c3 = cos(z / 2);\r\n\t\t\tvar s1 = sin(x / 2);\r\n\t\t\tvar s2 = sin(y / 2);\r\n\t\t\tvar s3 = sin(z / 2);\r\n\r\n\t\t\tswitch (order) {\r\n\t\t\t\tcase 'XYZ':\r\n\t\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\r\n\t\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\r\n\t\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\r\n\t\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'YXZ':\r\n\t\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\r\n\t\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\r\n\t\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\r\n\t\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'ZXY':\r\n\t\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\r\n\t\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\r\n\t\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\r\n\t\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'ZYX':\r\n\t\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\r\n\t\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\r\n\t\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\r\n\t\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'YZX':\r\n\t\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\r\n\t\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\r\n\t\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\r\n\t\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'XZY':\r\n\t\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\r\n\t\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\r\n\t\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\r\n\t\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tconsole.warn('THREE.Quaternion: .setFromEuler() encountered an unknown order: ' + order);\r\n\t\t\t}\r\n\r\n\t\t\tif (update !== false) this._onChangeCallback();\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setFromAxisAngle = function setFromAxisAngle(axis, angle) {\r\n\t\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm\r\n\t\t\t// assumes axis is normalized\r\n\t\t\tvar halfAngle = angle / 2,\r\n\t\t\t\t\ts = Math.sin(halfAngle);\r\n\t\t\tthis._x = axis.x * s;\r\n\t\t\tthis._y = axis.y * s;\r\n\t\t\tthis._z = axis.z * s;\r\n\t\t\tthis._w = Math.cos(halfAngle);\r\n\r\n\t\t\tthis._onChangeCallback();\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setFromRotationMatrix = function setFromRotationMatrix(m) {\r\n\t\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm\r\n\t\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\r\n\t\t\tvar te = m.elements,\r\n\t\t\t\t\tm11 = te[0],\r\n\t\t\t\t\tm12 = te[4],\r\n\t\t\t\t\tm13 = te[8],\r\n\t\t\t\t\tm21 = te[1],\r\n\t\t\t\t\tm22 = te[5],\r\n\t\t\t\t\tm23 = te[9],\r\n\t\t\t\t\tm31 = te[2],\r\n\t\t\t\t\tm32 = te[6],\r\n\t\t\t\t\tm33 = te[10],\r\n\t\t\t\t\ttrace = m11 + m22 + m33;\r\n\r\n\t\t\tif (trace > 0) {\r\n\t\t\t\tvar s = 0.5 / Math.sqrt(trace + 1.0);\r\n\t\t\t\tthis._w = 0.25 / s;\r\n\t\t\t\tthis._x = (m32 - m23) * s;\r\n\t\t\t\tthis._y = (m13 - m31) * s;\r\n\t\t\t\tthis._z = (m21 - m12) * s;\r\n\t\t\t} else if (m11 > m22 && m11 > m33) {\r\n\t\t\t\tvar _s = 2.0 * Math.sqrt(1.0 + m11 - m22 - m33);\r\n\r\n\t\t\t\tthis._w = (m32 - m23) / _s;\r\n\t\t\t\tthis._x = 0.25 * _s;\r\n\t\t\t\tthis._y = (m12 + m21) / _s;\r\n\t\t\t\tthis._z = (m13 + m31) / _s;\r\n\t\t\t} else if (m22 > m33) {\r\n\t\t\t\tvar _s2 = 2.0 * Math.sqrt(1.0 + m22 - m11 - m33);\r\n\r\n\t\t\t\tthis._w = (m13 - m31) / _s2;\r\n\t\t\t\tthis._x = (m12 + m21) / _s2;\r\n\t\t\t\tthis._y = 0.25 * _s2;\r\n\t\t\t\tthis._z = (m23 + m32) / _s2;\r\n\t\t\t} else {\r\n\t\t\t\tvar _s3 = 2.0 * Math.sqrt(1.0 + m33 - m11 - m22);\r\n\r\n\t\t\t\tthis._w = (m21 - m12) / _s3;\r\n\t\t\t\tthis._x = (m13 + m31) / _s3;\r\n\t\t\t\tthis._y = (m23 + m32) / _s3;\r\n\t\t\t\tthis._z = 0.25 * _s3;\r\n\t\t\t}\r\n\r\n\t\t\tthis._onChangeCallback();\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setFromUnitVectors = function setFromUnitVectors(vFrom, vTo) {\r\n\t\t\t// assumes direction vectors vFrom and vTo are normalized\r\n\t\t\tvar EPS = 0.000001;\r\n\t\t\tvar r = vFrom.dot(vTo) + 1;\r\n\r\n\t\t\tif (r < EPS) {\r\n\t\t\t\tr = 0;\r\n\r\n\t\t\t\tif (Math.abs(vFrom.x) > Math.abs(vFrom.z)) {\r\n\t\t\t\t\tthis._x = -vFrom.y;\r\n\t\t\t\t\tthis._y = vFrom.x;\r\n\t\t\t\t\tthis._z = 0;\r\n\t\t\t\t\tthis._w = r;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis._x = 0;\r\n\t\t\t\t\tthis._y = -vFrom.z;\r\n\t\t\t\t\tthis._z = vFrom.y;\r\n\t\t\t\t\tthis._w = r;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// crossVectors( vFrom, vTo ); // inlined to avoid cyclic dependency on Vector3\r\n\t\t\t\tthis._x = vFrom.y * vTo.z - vFrom.z * vTo.y;\r\n\t\t\t\tthis._y = vFrom.z * vTo.x - vFrom.x * vTo.z;\r\n\t\t\t\tthis._z = vFrom.x * vTo.y - vFrom.y * vTo.x;\r\n\t\t\t\tthis._w = r;\r\n\t\t\t}\r\n\r\n\t\t\treturn this.normalize();\r\n\t\t};\r\n\r\n\t\t_proto.angleTo = function angleTo(q) {\r\n\t\t\treturn 2 * Math.acos(Math.abs(MathUtils.clamp(this.dot(q), -1, 1)));\r\n\t\t};\r\n\r\n\t\t_proto.rotateTowards = function rotateTowards(q, step) {\r\n\t\t\tvar angle = this.angleTo(q);\r\n\t\t\tif (angle === 0) return this;\r\n\t\t\tvar t = Math.min(1, step / angle);\r\n\t\t\tthis.slerp(q, t);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.identity = function identity() {\r\n\t\t\treturn this.set(0, 0, 0, 1);\r\n\t\t};\r\n\r\n\t\t_proto.invert = function invert() {\r\n\t\t\t// quaternion is assumed to have unit length\r\n\t\t\treturn this.conjugate();\r\n\t\t};\r\n\r\n\t\t_proto.conjugate = function conjugate() {\r\n\t\t\tthis._x *= -1;\r\n\t\t\tthis._y *= -1;\r\n\t\t\tthis._z *= -1;\r\n\r\n\t\t\tthis._onChangeCallback();\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.dot = function dot(v) {\r\n\t\t\treturn this._x * v._x + this._y * v._y + this._z * v._z + this._w * v._w;\r\n\t\t};\r\n\r\n\t\t_proto.lengthSq = function lengthSq() {\r\n\t\t\treturn this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w;\r\n\t\t};\r\n\r\n\t\t_proto.length = function length() {\r\n\t\t\treturn Math.sqrt(this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w);\r\n\t\t};\r\n\r\n\t\t_proto.normalize = function normalize() {\r\n\t\t\tvar l = this.length();\r\n\r\n\t\t\tif (l === 0) {\r\n\t\t\t\tthis._x = 0;\r\n\t\t\t\tthis._y = 0;\r\n\t\t\t\tthis._z = 0;\r\n\t\t\t\tthis._w = 1;\r\n\t\t\t} else {\r\n\t\t\t\tl = 1 / l;\r\n\t\t\t\tthis._x = this._x * l;\r\n\t\t\t\tthis._y = this._y * l;\r\n\t\t\t\tthis._z = this._z * l;\r\n\t\t\t\tthis._w = this._w * l;\r\n\t\t\t}\r\n\r\n\t\t\tthis._onChangeCallback();\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.multiply = function multiply(q, p) {\r\n\t\t\tif (p !== undefined) {\r\n\t\t\t\tconsole.warn('THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead.');\r\n\t\t\t\treturn this.multiplyQuaternions(q, p);\r\n\t\t\t}\r\n\r\n\t\t\treturn this.multiplyQuaternions(this, q);\r\n\t\t};\r\n\r\n\t\t_proto.premultiply = function premultiply(q) {\r\n\t\t\treturn this.multiplyQuaternions(q, this);\r\n\t\t};\r\n\r\n\t\t_proto.multiplyQuaternions = function multiplyQuaternions(a, b) {\r\n\t\t\t// from http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.htm\r\n\t\t\tvar qax = a._x,\r\n\t\t\t\t\tqay = a._y,\r\n\t\t\t\t\tqaz = a._z,\r\n\t\t\t\t\tqaw = a._w;\r\n\t\t\tvar qbx = b._x,\r\n\t\t\t\t\tqby = b._y,\r\n\t\t\t\t\tqbz = b._z,\r\n\t\t\t\t\tqbw = b._w;\r\n\t\t\tthis._x = qax * qbw + qaw * qbx + qay * qbz - qaz * qby;\r\n\t\t\tthis._y = qay * qbw + qaw * qby + qaz * qbx - qax * qbz;\r\n\t\t\tthis._z = qaz * qbw + qaw * qbz + qax * qby - qay * qbx;\r\n\t\t\tthis._w = qaw * qbw - qax * qbx - qay * qby - qaz * qbz;\r\n\r\n\t\t\tthis._onChangeCallback();\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.slerp = function slerp(qb, t) {\r\n\t\t\tif (t === 0) return this;\r\n\t\t\tif (t === 1) return this.copy(qb);\r\n\t\t\tvar x = this._x,\r\n\t\t\t\t\ty = this._y,\r\n\t\t\t\t\tz = this._z,\r\n\t\t\t\t\tw = this._w; // http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/slerp/\r\n\r\n\t\t\tvar cosHalfTheta = w * qb._w + x * qb._x + y * qb._y + z * qb._z;\r\n\r\n\t\t\tif (cosHalfTheta < 0) {\r\n\t\t\t\tthis._w = -qb._w;\r\n\t\t\t\tthis._x = -qb._x;\r\n\t\t\t\tthis._y = -qb._y;\r\n\t\t\t\tthis._z = -qb._z;\r\n\t\t\t\tcosHalfTheta = -cosHalfTheta;\r\n\t\t\t} else {\r\n\t\t\t\tthis.copy(qb);\r\n\t\t\t}\r\n\r\n\t\t\tif (cosHalfTheta >= 1.0) {\r\n\t\t\t\tthis._w = w;\r\n\t\t\t\tthis._x = x;\r\n\t\t\t\tthis._y = y;\r\n\t\t\t\tthis._z = z;\r\n\t\t\t\treturn this;\r\n\t\t\t}\r\n\r\n\t\t\tvar sqrSinHalfTheta = 1.0 - cosHalfTheta * cosHalfTheta;\r\n\r\n\t\t\tif (sqrSinHalfTheta <= Number.EPSILON) {\r\n\t\t\t\tvar s = 1 - t;\r\n\t\t\t\tthis._w = s * w + t * this._w;\r\n\t\t\t\tthis._x = s * x + t * this._x;\r\n\t\t\t\tthis._y = s * y + t * this._y;\r\n\t\t\t\tthis._z = s * z + t * this._z;\r\n\t\t\t\tthis.normalize();\r\n\r\n\t\t\t\tthis._onChangeCallback();\r\n\r\n\t\t\t\treturn this;\r\n\t\t\t}\r\n\r\n\t\t\tvar sinHalfTheta = Math.sqrt(sqrSinHalfTheta);\r\n\t\t\tvar halfTheta = Math.atan2(sinHalfTheta, cosHalfTheta);\r\n\t\t\tvar ratioA = Math.sin((1 - t) * halfTheta) / sinHalfTheta,\r\n\t\t\t\t\tratioB = Math.sin(t * halfTheta) / sinHalfTheta;\r\n\t\t\tthis._w = w * ratioA + this._w * ratioB;\r\n\t\t\tthis._x = x * ratioA + this._x * ratioB;\r\n\t\t\tthis._y = y * ratioA + this._y * ratioB;\r\n\t\t\tthis._z = z * ratioA + this._z * ratioB;\r\n\r\n\t\t\tthis._onChangeCallback();\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.equals = function equals(quaternion) {\r\n\t\t\treturn quaternion._x === this._x && quaternion._y === this._y && quaternion._z === this._z && quaternion._w === this._w;\r\n\t\t};\r\n\r\n\t\t_proto.fromArray = function fromArray(array, offset) {\r\n\t\t\tif (offset === void 0) {\r\n\t\t\t\toffset = 0;\r\n\t\t\t}\r\n\r\n\t\t\tthis._x = array[offset];\r\n\t\t\tthis._y = array[offset + 1];\r\n\t\t\tthis._z = array[offset + 2];\r\n\t\t\tthis._w = array[offset + 3];\r\n\r\n\t\t\tthis._onChangeCallback();\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.toArray = function toArray(array, offset) {\r\n\t\t\tif (array === void 0) {\r\n\t\t\t\tarray = [];\r\n\t\t\t}\r\n\r\n\t\t\tif (offset === void 0) {\r\n\t\t\t\toffset = 0;\r\n\t\t\t}\r\n\r\n\t\t\tarray[offset] = this._x;\r\n\t\t\tarray[offset + 1] = this._y;\r\n\t\t\tarray[offset + 2] = this._z;\r\n\t\t\tarray[offset + 3] = this._w;\r\n\t\t\treturn array;\r\n\t\t};\r\n\r\n\t\t_proto.fromBufferAttribute = function fromBufferAttribute(attribute, index) {\r\n\t\t\tthis._x = attribute.getX(index);\r\n\t\t\tthis._y = attribute.getY(index);\r\n\t\t\tthis._z = attribute.getZ(index);\r\n\t\t\tthis._w = attribute.getW(index);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto._onChange = function _onChange(callback) {\r\n\t\t\tthis._onChangeCallback = callback;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto._onChangeCallback = function _onChangeCallback() {};\r\n\r\n\t\t_createClass(Quaternion, [{\r\n\t\t\tkey: \"x\",\r\n\t\t\tget: function get() {\r\n\t\t\t\treturn this._x;\r\n\t\t\t},\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tthis._x = value;\r\n\r\n\t\t\t\tthis._onChangeCallback();\r\n\t\t\t}\r\n\t\t}, {\r\n\t\t\tkey: \"y\",\r\n\t\t\tget: function get() {\r\n\t\t\t\treturn this._y;\r\n\t\t\t},\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tthis._y = value;\r\n\r\n\t\t\t\tthis._onChangeCallback();\r\n\t\t\t}\r\n\t\t}, {\r\n\t\t\tkey: \"z\",\r\n\t\t\tget: function get() {\r\n\t\t\t\treturn this._z;\r\n\t\t\t},\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tthis._z = value;\r\n\r\n\t\t\t\tthis._onChangeCallback();\r\n\t\t\t}\r\n\t\t}, {\r\n\t\t\tkey: \"w\",\r\n\t\t\tget: function get() {\r\n\t\t\t\treturn this._w;\r\n\t\t\t},\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tthis._w = value;\r\n\r\n\t\t\t\tthis._onChangeCallback();\r\n\t\t\t}\r\n\t\t}]);\r\n\r\n\t\treturn Quaternion;\r\n\t}();\r\n\r\n\tvar Vector3 = /*#__PURE__*/function () {\r\n\t\tfunction Vector3(x, y, z) {\r\n\t\t\tif (x === void 0) {\r\n\t\t\t\tx = 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (y === void 0) {\r\n\t\t\t\ty = 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (z === void 0) {\r\n\t\t\t\tz = 0;\r\n\t\t\t}\r\n\r\n\t\t\tObject.defineProperty(this, 'isVector3', {\r\n\t\t\t\tvalue: true\r\n\t\t\t});\r\n\t\t\tthis.x = x;\r\n\t\t\tthis.y = y;\r\n\t\t\tthis.z = z;\r\n\t\t}\r\n\r\n\t\tvar _proto = Vector3.prototype;\r\n\r\n\t\t_proto.set = function set(x, y, z) {\r\n\t\t\tif (z === undefined) z = this.z; // sprite.scale.set(x,y)\r\n\r\n\t\t\tthis.x = x;\r\n\t\t\tthis.y = y;\r\n\t\t\tthis.z = z;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setScalar = function setScalar(scalar) {\r\n\t\t\tthis.x = scalar;\r\n\t\t\tthis.y = scalar;\r\n\t\t\tthis.z = scalar;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setX = function setX(x) {\r\n\t\t\tthis.x = x;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setY = function setY(y) {\r\n\t\t\tthis.y = y;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setZ = function setZ(z) {\r\n\t\t\tthis.z = z;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setComponent = function setComponent(index, value) {\r\n\t\t\tswitch (index) {\r\n\t\t\t\tcase 0:\r\n\t\t\t\t\tthis.x = value;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 1:\r\n\t\t\t\t\tthis.y = value;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 2:\r\n\t\t\t\t\tthis.z = value;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tthrow new Error('index is out of range: ' + index);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.getComponent = function getComponent(index) {\r\n\t\t\tswitch (index) {\r\n\t\t\t\tcase 0:\r\n\t\t\t\t\treturn this.x;\r\n\r\n\t\t\t\tcase 1:\r\n\t\t\t\t\treturn this.y;\r\n\r\n\t\t\t\tcase 2:\r\n\t\t\t\t\treturn this.z;\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tthrow new Error('index is out of range: ' + index);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t_proto.clone = function clone() {\r\n\t\t\treturn new this.constructor(this.x, this.y, this.z);\r\n\t\t};\r\n\r\n\t\t_proto.copy = function copy(v) {\r\n\t\t\tthis.x = v.x;\r\n\t\t\tthis.y = v.y;\r\n\t\t\tthis.z = v.z;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.add = function add(v, w) {\r\n\t\t\tif (w !== undefined) {\r\n\t\t\t\tconsole.warn('THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead.');\r\n\t\t\t\treturn this.addVectors(v, w);\r\n\t\t\t}\r\n\r\n\t\t\tthis.x += v.x;\r\n\t\t\tthis.y += v.y;\r\n\t\t\tthis.z += v.z;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.addScalar = function addScalar(s) {\r\n\t\t\tthis.x += s;\r\n\t\t\tthis.y += s;\r\n\t\t\tthis.z += s;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.addVectors = function addVectors(a, b) {\r\n\t\t\tthis.x = a.x + b.x;\r\n\t\t\tthis.y = a.y + b.y;\r\n\t\t\tthis.z = a.z + b.z;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.addScaledVector = function addScaledVector(v, s) {\r\n\t\t\tthis.x += v.x * s;\r\n\t\t\tthis.y += v.y * s;\r\n\t\t\tthis.z += v.z * s;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.sub = function sub(v, w) {\r\n\t\t\tif (w !== undefined) {\r\n\t\t\t\tconsole.warn('THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.');\r\n\t\t\t\treturn this.subVectors(v, w);\r\n\t\t\t}\r\n\r\n\t\t\tthis.x -= v.x;\r\n\t\t\tthis.y -= v.y;\r\n\t\t\tthis.z -= v.z;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.subScalar = function subScalar(s) {\r\n\t\t\tthis.x -= s;\r\n\t\t\tthis.y -= s;\r\n\t\t\tthis.z -= s;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.subVectors = function subVectors(a, b) {\r\n\t\t\tthis.x = a.x - b.x;\r\n\t\t\tthis.y = a.y - b.y;\r\n\t\t\tthis.z = a.z - b.z;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.multiply = function multiply(v, w) {\r\n\t\t\tif (w !== undefined) {\r\n\t\t\t\tconsole.warn('THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead.');\r\n\t\t\t\treturn this.multiplyVectors(v, w);\r\n\t\t\t}\r\n\r\n\t\t\tthis.x *= v.x;\r\n\t\t\tthis.y *= v.y;\r\n\t\t\tthis.z *= v.z;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.multiplyScalar = function multiplyScalar(scalar) {\r\n\t\t\tthis.x *= scalar;\r\n\t\t\tthis.y *= scalar;\r\n\t\t\tthis.z *= scalar;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.multiplyVectors = function multiplyVectors(a, b) {\r\n\t\t\tthis.x = a.x * b.x;\r\n\t\t\tthis.y = a.y * b.y;\r\n\t\t\tthis.z = a.z * b.z;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.applyEuler = function applyEuler(euler) {\r\n\t\t\tif (!(euler && euler.isEuler)) {\r\n\t\t\t\tconsole.error('THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.');\r\n\t\t\t}\r\n\r\n\t\t\treturn this.applyQuaternion(_quaternion.setFromEuler(euler));\r\n\t\t};\r\n\r\n\t\t_proto.applyAxisAngle = function applyAxisAngle(axis, angle) {\r\n\t\t\treturn this.applyQuaternion(_quaternion.setFromAxisAngle(axis, angle));\r\n\t\t};\r\n\r\n\t\t_proto.applyMatrix3 = function applyMatrix3(m) {\r\n\t\t\tvar x = this.x,\r\n\t\t\t\t\ty = this.y,\r\n\t\t\t\t\tz = this.z;\r\n\t\t\tvar e = m.elements;\r\n\t\t\tthis.x = e[0] * x + e[3] * y + e[6] * z;\r\n\t\t\tthis.y = e[1] * x + e[4] * y + e[7] * z;\r\n\t\t\tthis.z = e[2] * x + e[5] * y + e[8] * z;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.applyNormalMatrix = function applyNormalMatrix(m) {\r\n\t\t\treturn this.applyMatrix3(m).normalize();\r\n\t\t};\r\n\r\n\t\t_proto.applyMatrix4 = function applyMatrix4(m) {\r\n\t\t\tvar x = this.x,\r\n\t\t\t\t\ty = this.y,\r\n\t\t\t\t\tz = this.z;\r\n\t\t\tvar e = m.elements;\r\n\t\t\tvar w = 1 / (e[3] * x + e[7] * y + e[11] * z + e[15]);\r\n\t\t\tthis.x = (e[0] * x + e[4] * y + e[8] * z + e[12]) * w;\r\n\t\t\tthis.y = (e[1] * x + e[5] * y + e[9] * z + e[13]) * w;\r\n\t\t\tthis.z = (e[2] * x + e[6] * y + e[10] * z + e[14]) * w;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.applyQuaternion = function applyQuaternion(q) {\r\n\t\t\tvar x = this.x,\r\n\t\t\t\t\ty = this.y,\r\n\t\t\t\t\tz = this.z;\r\n\t\t\tvar qx = q.x,\r\n\t\t\t\t\tqy = q.y,\r\n\t\t\t\t\tqz = q.z,\r\n\t\t\t\t\tqw = q.w; // calculate quat * vector\r\n\r\n\t\t\tvar ix = qw * x + qy * z - qz * y;\r\n\t\t\tvar iy = qw * y + qz * x - qx * z;\r\n\t\t\tvar iz = qw * z + qx * y - qy * x;\r\n\t\t\tvar iw = -qx * x - qy * y - qz * z; // calculate result * inverse quat\r\n\r\n\t\t\tthis.x = ix * qw + iw * -qx + iy * -qz - iz * -qy;\r\n\t\t\tthis.y = iy * qw + iw * -qy + iz * -qx - ix * -qz;\r\n\t\t\tthis.z = iz * qw + iw * -qz + ix * -qy - iy * -qx;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.project = function project(camera) {\r\n\t\t\treturn this.applyMatrix4(camera.matrixWorldInverse).applyMatrix4(camera.projectionMatrix);\r\n\t\t};\r\n\r\n\t\t_proto.unproject = function unproject(camera) {\r\n\t\t\treturn this.applyMatrix4(camera.projectionMatrixInverse).applyMatrix4(camera.matrixWorld);\r\n\t\t};\r\n\r\n\t\t_proto.transformDirection = function transformDirection(m) {\r\n\t\t\t// input: THREE.Matrix4 affine matrix\r\n\t\t\t// vector interpreted as a direction\r\n\t\t\tvar x = this.x,\r\n\t\t\t\t\ty = this.y,\r\n\t\t\t\t\tz = this.z;\r\n\t\t\tvar e = m.elements;\r\n\t\t\tthis.x = e[0] * x + e[4] * y + e[8] * z;\r\n\t\t\tthis.y = e[1] * x + e[5] * y + e[9] * z;\r\n\t\t\tthis.z = e[2] * x + e[6] * y + e[10] * z;\r\n\t\t\treturn this.normalize();\r\n\t\t};\r\n\r\n\t\t_proto.divide = function divide(v) {\r\n\t\t\tthis.x /= v.x;\r\n\t\t\tthis.y /= v.y;\r\n\t\t\tthis.z /= v.z;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.divideScalar = function divideScalar(scalar) {\r\n\t\t\treturn this.multiplyScalar(1 / scalar);\r\n\t\t};\r\n\r\n\t\t_proto.min = function min(v) {\r\n\t\t\tthis.x = Math.min(this.x, v.x);\r\n\t\t\tthis.y = Math.min(this.y, v.y);\r\n\t\t\tthis.z = Math.min(this.z, v.z);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.max = function max(v) {\r\n\t\t\tthis.x = Math.max(this.x, v.x);\r\n\t\t\tthis.y = Math.max(this.y, v.y);\r\n\t\t\tthis.z = Math.max(this.z, v.z);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.clamp = function clamp(min, max) {\r\n\t\t\t// assumes min < max, componentwise\r\n\t\t\tthis.x = Math.max(min.x, Math.min(max.x, this.x));\r\n\t\t\tthis.y = Math.max(min.y, Math.min(max.y, this.y));\r\n\t\t\tthis.z = Math.max(min.z, Math.min(max.z, this.z));\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.clampScalar = function clampScalar(minVal, maxVal) {\r\n\t\t\tthis.x = Math.max(minVal, Math.min(maxVal, this.x));\r\n\t\t\tthis.y = Math.max(minVal, Math.min(maxVal, this.y));\r\n\t\t\tthis.z = Math.max(minVal, Math.min(maxVal, this.z));\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.clampLength = function clampLength(min, max) {\r\n\t\t\tvar length = this.length();\r\n\t\t\treturn this.divideScalar(length || 1).multiplyScalar(Math.max(min, Math.min(max, length)));\r\n\t\t};\r\n\r\n\t\t_proto.floor = function floor() {\r\n\t\t\tthis.x = Math.floor(this.x);\r\n\t\t\tthis.y = Math.floor(this.y);\r\n\t\t\tthis.z = Math.floor(this.z);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.ceil = function ceil() {\r\n\t\t\tthis.x = Math.ceil(this.x);\r\n\t\t\tthis.y = Math.ceil(this.y);\r\n\t\t\tthis.z = Math.ceil(this.z);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.round = function round() {\r\n\t\t\tthis.x = Math.round(this.x);\r\n\t\t\tthis.y = Math.round(this.y);\r\n\t\t\tthis.z = Math.round(this.z);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.roundToZero = function roundToZero() {\r\n\t\t\tthis.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x);\r\n\t\t\tthis.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y);\r\n\t\t\tthis.z = this.z < 0 ? Math.ceil(this.z) : Math.floor(this.z);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.negate = function negate() {\r\n\t\t\tthis.x = -this.x;\r\n\t\t\tthis.y = -this.y;\r\n\t\t\tthis.z = -this.z;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.dot = function dot(v) {\r\n\t\t\treturn this.x * v.x + this.y * v.y + this.z * v.z;\r\n\t\t} // TODO lengthSquared?\r\n\t\t;\r\n\r\n\t\t_proto.lengthSq = function lengthSq() {\r\n\t\t\treturn this.x * this.x + this.y * this.y + this.z * this.z;\r\n\t\t};\r\n\r\n\t\t_proto.length = function length() {\r\n\t\t\treturn Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);\r\n\t\t};\r\n\r\n\t\t_proto.manhattanLength = function manhattanLength() {\r\n\t\t\treturn Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z);\r\n\t\t};\r\n\r\n\t\t_proto.normalize = function normalize() {\r\n\t\t\treturn this.divideScalar(this.length() || 1);\r\n\t\t};\r\n\r\n\t\t_proto.setLength = function setLength(length) {\r\n\t\t\treturn this.normalize().multiplyScalar(length);\r\n\t\t};\r\n\r\n\t\t_proto.lerp = function lerp(v, alpha) {\r\n\t\t\tthis.x += (v.x - this.x) * alpha;\r\n\t\t\tthis.y += (v.y - this.y) * alpha;\r\n\t\t\tthis.z += (v.z - this.z) * alpha;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.lerpVectors = function lerpVectors(v1, v2, alpha) {\r\n\t\t\tthis.x = v1.x + (v2.x - v1.x) * alpha;\r\n\t\t\tthis.y = v1.y + (v2.y - v1.y) * alpha;\r\n\t\t\tthis.z = v1.z + (v2.z - v1.z) * alpha;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.cross = function cross(v, w) {\r\n\t\t\tif (w !== undefined) {\r\n\t\t\t\tconsole.warn('THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead.');\r\n\t\t\t\treturn this.crossVectors(v, w);\r\n\t\t\t}\r\n\r\n\t\t\treturn this.crossVectors(this, v);\r\n\t\t};\r\n\r\n\t\t_proto.crossVectors = function crossVectors(a, b) {\r\n\t\t\tvar ax = a.x,\r\n\t\t\t\t\tay = a.y,\r\n\t\t\t\t\taz = a.z;\r\n\t\t\tvar bx = b.x,\r\n\t\t\t\t\tby = b.y,\r\n\t\t\t\t\tbz = b.z;\r\n\t\t\tthis.x = ay * bz - az * by;\r\n\t\t\tthis.y = az * bx - ax * bz;\r\n\t\t\tthis.z = ax * by - ay * bx;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.projectOnVector = function projectOnVector(v) {\r\n\t\t\tvar denominator = v.lengthSq();\r\n\t\t\tif (denominator === 0) return this.set(0, 0, 0);\r\n\t\t\tvar scalar = v.dot(this) / denominator;\r\n\t\t\treturn this.copy(v).multiplyScalar(scalar);\r\n\t\t};\r\n\r\n\t\t_proto.projectOnPlane = function projectOnPlane(planeNormal) {\r\n\t\t\t_vector.copy(this).projectOnVector(planeNormal);\r\n\r\n\t\t\treturn this.sub(_vector);\r\n\t\t};\r\n\r\n\t\t_proto.reflect = function reflect(normal) {\r\n\t\t\t// reflect incident vector off plane orthogonal to normal\r\n\t\t\t// normal is assumed to have unit length\r\n\t\t\treturn this.sub(_vector.copy(normal).multiplyScalar(2 * this.dot(normal)));\r\n\t\t};\r\n\r\n\t\t_proto.angleTo = function angleTo(v) {\r\n\t\t\tvar denominator = Math.sqrt(this.lengthSq() * v.lengthSq());\r\n\t\t\tif (denominator === 0) return Math.PI / 2;\r\n\t\t\tvar theta = this.dot(v) / denominator; // clamp, to handle numerical problems\r\n\r\n\t\t\treturn Math.acos(MathUtils.clamp(theta, -1, 1));\r\n\t\t};\r\n\r\n\t\t_proto.distanceTo = function distanceTo(v) {\r\n\t\t\treturn Math.sqrt(this.distanceToSquared(v));\r\n\t\t};\r\n\r\n\t\t_proto.distanceToSquared = function distanceToSquared(v) {\r\n\t\t\tvar dx = this.x - v.x,\r\n\t\t\t\t\tdy = this.y - v.y,\r\n\t\t\t\t\tdz = this.z - v.z;\r\n\t\t\treturn dx * dx + dy * dy + dz * dz;\r\n\t\t};\r\n\r\n\t\t_proto.manhattanDistanceTo = function manhattanDistanceTo(v) {\r\n\t\t\treturn Math.abs(this.x - v.x) + Math.abs(this.y - v.y) + Math.abs(this.z - v.z);\r\n\t\t};\r\n\r\n\t\t_proto.setFromSpherical = function setFromSpherical(s) {\r\n\t\t\treturn this.setFromSphericalCoords(s.radius, s.phi, s.theta);\r\n\t\t};\r\n\r\n\t\t_proto.setFromSphericalCoords = function setFromSphericalCoords(radius, phi, theta) {\r\n\t\t\tvar sinPhiRadius = Math.sin(phi) * radius;\r\n\t\t\tthis.x = sinPhiRadius * Math.sin(theta);\r\n\t\t\tthis.y = Math.cos(phi) * radius;\r\n\t\t\tthis.z = sinPhiRadius * Math.cos(theta);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setFromCylindrical = function setFromCylindrical(c) {\r\n\t\t\treturn this.setFromCylindricalCoords(c.radius, c.theta, c.y);\r\n\t\t};\r\n\r\n\t\t_proto.setFromCylindricalCoords = function setFromCylindricalCoords(radius, theta, y) {\r\n\t\t\tthis.x = radius * Math.sin(theta);\r\n\t\t\tthis.y = y;\r\n\t\t\tthis.z = radius * Math.cos(theta);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setFromMatrixPosition = function setFromMatrixPosition(m) {\r\n\t\t\tvar e = m.elements;\r\n\t\t\tthis.x = e[12];\r\n\t\t\tthis.y = e[13];\r\n\t\t\tthis.z = e[14];\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setFromMatrixScale = function setFromMatrixScale(m) {\r\n\t\t\tvar sx = this.setFromMatrixColumn(m, 0).length();\r\n\t\t\tvar sy = this.setFromMatrixColumn(m, 1).length();\r\n\t\t\tvar sz = this.setFromMatrixColumn(m, 2).length();\r\n\t\t\tthis.x = sx;\r\n\t\t\tthis.y = sy;\r\n\t\t\tthis.z = sz;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setFromMatrixColumn = function setFromMatrixColumn(m, index) {\r\n\t\t\treturn this.fromArray(m.elements, index * 4);\r\n\t\t};\r\n\r\n\t\t_proto.setFromMatrix3Column = function setFromMatrix3Column(m, index) {\r\n\t\t\treturn this.fromArray(m.elements, index * 3);\r\n\t\t};\r\n\r\n\t\t_proto.equals = function equals(v) {\r\n\t\t\treturn v.x === this.x && v.y === this.y && v.z === this.z;\r\n\t\t};\r\n\r\n\t\t_proto.fromArray = function fromArray(array, offset) {\r\n\t\t\tif (offset === void 0) {\r\n\t\t\t\toffset = 0;\r\n\t\t\t}\r\n\r\n\t\t\tthis.x = array[offset];\r\n\t\t\tthis.y = array[offset + 1];\r\n\t\t\tthis.z = array[offset + 2];\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.toArray = function toArray(array, offset) {\r\n\t\t\tif (array === void 0) {\r\n\t\t\t\tarray = [];\r\n\t\t\t}\r\n\r\n\t\t\tif (offset === void 0) {\r\n\t\t\t\toffset = 0;\r\n\t\t\t}\r\n\r\n\t\t\tarray[offset] = this.x;\r\n\t\t\tarray[offset + 1] = this.y;\r\n\t\t\tarray[offset + 2] = this.z;\r\n\t\t\treturn array;\r\n\t\t};\r\n\r\n\t\t_proto.fromBufferAttribute = function fromBufferAttribute(attribute, index, offset) {\r\n\t\t\tif (offset !== undefined) {\r\n\t\t\t\tconsole.warn('THREE.Vector3: offset has been removed from .fromBufferAttribute().');\r\n\t\t\t}\r\n\r\n\t\t\tthis.x = attribute.getX(index);\r\n\t\t\tthis.y = attribute.getY(index);\r\n\t\t\tthis.z = attribute.getZ(index);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.random = function random() {\r\n\t\t\tthis.x = Math.random();\r\n\t\t\tthis.y = Math.random();\r\n\t\t\tthis.z = Math.random();\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\treturn Vector3;\r\n\t}();\r\n\r\n\tvar _vector = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _quaternion = /*@__PURE__*/new Quaternion();\r\n\r\n\tvar Box3 = /*#__PURE__*/function () {\r\n\t\tfunction Box3(min, max) {\r\n\t\t\tObject.defineProperty(this, 'isBox3', {\r\n\t\t\t\tvalue: true\r\n\t\t\t});\r\n\t\t\tthis.min = min !== undefined ? min : new Vector3(+Infinity, +Infinity, +Infinity);\r\n\t\t\tthis.max = max !== undefined ? max : new Vector3(-Infinity, -Infinity, -Infinity);\r\n\t\t}\r\n\r\n\t\tvar _proto = Box3.prototype;\r\n\r\n\t\t_proto.set = function set(min, max) {\r\n\t\t\tthis.min.copy(min);\r\n\t\t\tthis.max.copy(max);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setFromArray = function setFromArray(array) {\r\n\t\t\tvar minX = +Infinity;\r\n\t\t\tvar minY = +Infinity;\r\n\t\t\tvar minZ = +Infinity;\r\n\t\t\tvar maxX = -Infinity;\r\n\t\t\tvar maxY = -Infinity;\r\n\t\t\tvar maxZ = -Infinity;\r\n\r\n\t\t\tfor (var i = 0, l = array.length; i < l; i += 3) {\r\n\t\t\t\tvar x = array[i];\r\n\t\t\t\tvar y = array[i + 1];\r\n\t\t\t\tvar z = array[i + 2];\r\n\t\t\t\tif (x < minX) minX = x;\r\n\t\t\t\tif (y < minY) minY = y;\r\n\t\t\t\tif (z < minZ) minZ = z;\r\n\t\t\t\tif (x > maxX) maxX = x;\r\n\t\t\t\tif (y > maxY) maxY = y;\r\n\t\t\t\tif (z > maxZ) maxZ = z;\r\n\t\t\t}\r\n\r\n\t\t\tthis.min.set(minX, minY, minZ);\r\n\t\t\tthis.max.set(maxX, maxY, maxZ);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setFromBufferAttribute = function setFromBufferAttribute(attribute) {\r\n\t\t\tvar minX = +Infinity;\r\n\t\t\tvar minY = +Infinity;\r\n\t\t\tvar minZ = +Infinity;\r\n\t\t\tvar maxX = -Infinity;\r\n\t\t\tvar maxY = -Infinity;\r\n\t\t\tvar maxZ = -Infinity;\r\n\r\n\t\t\tfor (var i = 0, l = attribute.count; i < l; i++) {\r\n\t\t\t\tvar x = attribute.getX(i);\r\n\t\t\t\tvar y = attribute.getY(i);\r\n\t\t\t\tvar z = attribute.getZ(i);\r\n\t\t\t\tif (x < minX) minX = x;\r\n\t\t\t\tif (y < minY) minY = y;\r\n\t\t\t\tif (z < minZ) minZ = z;\r\n\t\t\t\tif (x > maxX) maxX = x;\r\n\t\t\t\tif (y > maxY) maxY = y;\r\n\t\t\t\tif (z > maxZ) maxZ = z;\r\n\t\t\t}\r\n\r\n\t\t\tthis.min.set(minX, minY, minZ);\r\n\t\t\tthis.max.set(maxX, maxY, maxZ);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setFromPoints = function setFromPoints(points) {\r\n\t\t\tthis.makeEmpty();\r\n\r\n\t\t\tfor (var i = 0, il = points.length; i < il; i++) {\r\n\t\t\t\tthis.expandByPoint(points[i]);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setFromCenterAndSize = function setFromCenterAndSize(center, size) {\r\n\t\t\tvar halfSize = _vector$1.copy(size).multiplyScalar(0.5);\r\n\r\n\t\t\tthis.min.copy(center).sub(halfSize);\r\n\t\t\tthis.max.copy(center).add(halfSize);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setFromObject = function setFromObject(object) {\r\n\t\t\tthis.makeEmpty();\r\n\t\t\treturn this.expandByObject(object);\r\n\t\t};\r\n\r\n\t\t_proto.clone = function clone() {\r\n\t\t\treturn new this.constructor().copy(this);\r\n\t\t};\r\n\r\n\t\t_proto.copy = function copy(box) {\r\n\t\t\tthis.min.copy(box.min);\r\n\t\t\tthis.max.copy(box.max);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.makeEmpty = function makeEmpty() {\r\n\t\t\tthis.min.x = this.min.y = this.min.z = +Infinity;\r\n\t\t\tthis.max.x = this.max.y = this.max.z = -Infinity;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.isEmpty = function isEmpty() {\r\n\t\t\t// this is a more robust check for empty than ( volume <= 0 ) because volume can get positive with two negative axes\r\n\t\t\treturn this.max.x < this.min.x || this.max.y < this.min.y || this.max.z < this.min.z;\r\n\t\t};\r\n\r\n\t\t_proto.getCenter = function getCenter(target) {\r\n\t\t\tif (target === undefined) {\r\n\t\t\t\tconsole.warn('THREE.Box3: .getCenter() target is now required');\r\n\t\t\t\ttarget = new Vector3();\r\n\t\t\t}\r\n\r\n\t\t\treturn this.isEmpty() ? target.set(0, 0, 0) : target.addVectors(this.min, this.max).multiplyScalar(0.5);\r\n\t\t};\r\n\r\n\t\t_proto.getSize = function getSize(target) {\r\n\t\t\tif (target === undefined) {\r\n\t\t\t\tconsole.warn('THREE.Box3: .getSize() target is now required');\r\n\t\t\t\ttarget = new Vector3();\r\n\t\t\t}\r\n\r\n\t\t\treturn this.isEmpty() ? target.set(0, 0, 0) : target.subVectors(this.max, this.min);\r\n\t\t};\r\n\r\n\t\t_proto.expandByPoint = function expandByPoint(point) {\r\n\t\t\tthis.min.min(point);\r\n\t\t\tthis.max.max(point);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.expandByVector = function expandByVector(vector) {\r\n\t\t\tthis.min.sub(vector);\r\n\t\t\tthis.max.add(vector);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.expandByScalar = function expandByScalar(scalar) {\r\n\t\t\tthis.min.addScalar(-scalar);\r\n\t\t\tthis.max.addScalar(scalar);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.expandByObject = function expandByObject(object) {\r\n\t\t\t// Computes the world-axis-aligned bounding box of an object (including its children),\r\n\t\t\t// accounting for both the object's, and children's, world transforms\r\n\t\t\tobject.updateWorldMatrix(false, false);\r\n\t\t\tvar geometry = object.geometry;\r\n\r\n\t\t\tif (geometry !== undefined) {\r\n\t\t\t\tif (geometry.boundingBox === null) {\r\n\t\t\t\t\tgeometry.computeBoundingBox();\r\n\t\t\t\t}\r\n\r\n\t\t\t\t_box.copy(geometry.boundingBox);\r\n\r\n\t\t\t\t_box.applyMatrix4(object.matrixWorld);\r\n\r\n\t\t\t\tthis.union(_box);\r\n\t\t\t}\r\n\r\n\t\t\tvar children = object.children;\r\n\r\n\t\t\tfor (var i = 0, l = children.length; i < l; i++) {\r\n\t\t\t\tthis.expandByObject(children[i]);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.containsPoint = function containsPoint(point) {\r\n\t\t\treturn point.x < this.min.x || point.x > this.max.x || point.y < this.min.y || point.y > this.max.y || point.z < this.min.z || point.z > this.max.z ? false : true;\r\n\t\t};\r\n\r\n\t\t_proto.containsBox = function containsBox(box) {\r\n\t\t\treturn this.min.x <= box.min.x && box.max.x <= this.max.x && this.min.y <= box.min.y && box.max.y <= this.max.y && this.min.z <= box.min.z && box.max.z <= this.max.z;\r\n\t\t};\r\n\r\n\t\t_proto.getParameter = function getParameter(point, target) {\r\n\t\t\t// This can potentially have a divide by zero if the box\r\n\t\t\t// has a size dimension of 0.\r\n\t\t\tif (target === undefined) {\r\n\t\t\t\tconsole.warn('THREE.Box3: .getParameter() target is now required');\r\n\t\t\t\ttarget = new Vector3();\r\n\t\t\t}\r\n\r\n\t\t\treturn target.set((point.x - this.min.x) / (this.max.x - this.min.x), (point.y - this.min.y) / (this.max.y - this.min.y), (point.z - this.min.z) / (this.max.z - this.min.z));\r\n\t\t};\r\n\r\n\t\t_proto.intersectsBox = function intersectsBox(box) {\r\n\t\t\t// using 6 splitting planes to rule out intersections.\r\n\t\t\treturn box.max.x < this.min.x || box.min.x > this.max.x || box.max.y < this.min.y || box.min.y > this.max.y || box.max.z < this.min.z || box.min.z > this.max.z ? false : true;\r\n\t\t};\r\n\r\n\t\t_proto.intersectsSphere = function intersectsSphere(sphere) {\r\n\t\t\t// Find the point on the AABB closest to the sphere center.\r\n\t\t\tthis.clampPoint(sphere.center, _vector$1); // If that point is inside the sphere, the AABB and sphere intersect.\r\n\r\n\t\t\treturn _vector$1.distanceToSquared(sphere.center) <= sphere.radius * sphere.radius;\r\n\t\t};\r\n\r\n\t\t_proto.intersectsPlane = function intersectsPlane(plane) {\r\n\t\t\t// We compute the minimum and maximum dot product values. If those values\r\n\t\t\t// are on the same side (back or front) of the plane, then there is no intersection.\r\n\t\t\tvar min, max;\r\n\r\n\t\t\tif (plane.normal.x > 0) {\r\n\t\t\t\tmin = plane.normal.x * this.min.x;\r\n\t\t\t\tmax = plane.normal.x * this.max.x;\r\n\t\t\t} else {\r\n\t\t\t\tmin = plane.normal.x * this.max.x;\r\n\t\t\t\tmax = plane.normal.x * this.min.x;\r\n\t\t\t}\r\n\r\n\t\t\tif (plane.normal.y > 0) {\r\n\t\t\t\tmin += plane.normal.y * this.min.y;\r\n\t\t\t\tmax += plane.normal.y * this.max.y;\r\n\t\t\t} else {\r\n\t\t\t\tmin += plane.normal.y * this.max.y;\r\n\t\t\t\tmax += plane.normal.y * this.min.y;\r\n\t\t\t}\r\n\r\n\t\t\tif (plane.normal.z > 0) {\r\n\t\t\t\tmin += plane.normal.z * this.min.z;\r\n\t\t\t\tmax += plane.normal.z * this.max.z;\r\n\t\t\t} else {\r\n\t\t\t\tmin += plane.normal.z * this.max.z;\r\n\t\t\t\tmax += plane.normal.z * this.min.z;\r\n\t\t\t}\r\n\r\n\t\t\treturn min <= -plane.constant && max >= -plane.constant;\r\n\t\t};\r\n\r\n\t\t_proto.intersectsTriangle = function intersectsTriangle(triangle) {\r\n\t\t\tif (this.isEmpty()) {\r\n\t\t\t\treturn false;\r\n\t\t\t} // compute box center and extents\r\n\r\n\r\n\t\t\tthis.getCenter(_center);\r\n\r\n\t\t\t_extents.subVectors(this.max, _center); // translate triangle to aabb origin\r\n\r\n\r\n\t\t\t_v0.subVectors(triangle.a, _center);\r\n\r\n\t\t\t_v1.subVectors(triangle.b, _center);\r\n\r\n\t\t\t_v2.subVectors(triangle.c, _center); // compute edge vectors for triangle\r\n\r\n\r\n\t\t\t_f0.subVectors(_v1, _v0);\r\n\r\n\t\t\t_f1.subVectors(_v2, _v1);\r\n\r\n\t\t\t_f2.subVectors(_v0, _v2); // test against axes that are given by cross product combinations of the edges of the triangle and the edges of the aabb\r\n\t\t\t// make an axis testing of each of the 3 sides of the aabb against each of the 3 sides of the triangle = 9 axis of separation\r\n\t\t\t// axis_ij = u_i x f_j (u0, u1, u2 = face normals of aabb = x,y,z axes vectors since aabb is axis aligned)\r\n\r\n\r\n\t\t\tvar axes = [0, -_f0.z, _f0.y, 0, -_f1.z, _f1.y, 0, -_f2.z, _f2.y, _f0.z, 0, -_f0.x, _f1.z, 0, -_f1.x, _f2.z, 0, -_f2.x, -_f0.y, _f0.x, 0, -_f1.y, _f1.x, 0, -_f2.y, _f2.x, 0];\r\n\r\n\t\t\tif (!satForAxes(axes, _v0, _v1, _v2, _extents)) {\r\n\t\t\t\treturn false;\r\n\t\t\t} // test 3 face normals from the aabb\r\n\r\n\r\n\t\t\taxes = [1, 0, 0, 0, 1, 0, 0, 0, 1];\r\n\r\n\t\t\tif (!satForAxes(axes, _v0, _v1, _v2, _extents)) {\r\n\t\t\t\treturn false;\r\n\t\t\t} // finally testing the face normal of the triangle\r\n\t\t\t// use already existing triangle edge vectors here\r\n\r\n\r\n\t\t\t_triangleNormal.crossVectors(_f0, _f1);\r\n\r\n\t\t\taxes = [_triangleNormal.x, _triangleNormal.y, _triangleNormal.z];\r\n\t\t\treturn satForAxes(axes, _v0, _v1, _v2, _extents);\r\n\t\t};\r\n\r\n\t\t_proto.clampPoint = function clampPoint(point, target) {\r\n\t\t\tif (target === undefined) {\r\n\t\t\t\tconsole.warn('THREE.Box3: .clampPoint() target is now required');\r\n\t\t\t\ttarget = new Vector3();\r\n\t\t\t}\r\n\r\n\t\t\treturn target.copy(point).clamp(this.min, this.max);\r\n\t\t};\r\n\r\n\t\t_proto.distanceToPoint = function distanceToPoint(point) {\r\n\t\t\tvar clampedPoint = _vector$1.copy(point).clamp(this.min, this.max);\r\n\r\n\t\t\treturn clampedPoint.sub(point).length();\r\n\t\t};\r\n\r\n\t\t_proto.getBoundingSphere = function getBoundingSphere(target) {\r\n\t\t\tif (target === undefined) {\r\n\t\t\t\tconsole.error('THREE.Box3: .getBoundingSphere() target is now required'); //target = new Sphere(); // removed to avoid cyclic dependency\r\n\t\t\t}\r\n\r\n\t\t\tthis.getCenter(target.center);\r\n\t\t\ttarget.radius = this.getSize(_vector$1).length() * 0.5;\r\n\t\t\treturn target;\r\n\t\t};\r\n\r\n\t\t_proto.intersect = function intersect(box) {\r\n\t\t\tthis.min.max(box.min);\r\n\t\t\tthis.max.min(box.max); // ensure that if there is no overlap, the result is fully empty, not slightly empty with non-inf/+inf values that will cause subsequence intersects to erroneously return valid values.\r\n\r\n\t\t\tif (this.isEmpty()) this.makeEmpty();\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.union = function union(box) {\r\n\t\t\tthis.min.min(box.min);\r\n\t\t\tthis.max.max(box.max);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.applyMatrix4 = function applyMatrix4(matrix) {\r\n\t\t\t// transform of empty box is an empty box.\r\n\t\t\tif (this.isEmpty()) return this; // NOTE: I am using a binary pattern to specify all 2^3 combinations below\r\n\r\n\t\t\t_points[0].set(this.min.x, this.min.y, this.min.z).applyMatrix4(matrix); // 000\r\n\r\n\r\n\t\t\t_points[1].set(this.min.x, this.min.y, this.max.z).applyMatrix4(matrix); // 001\r\n\r\n\r\n\t\t\t_points[2].set(this.min.x, this.max.y, this.min.z).applyMatrix4(matrix); // 010\r\n\r\n\r\n\t\t\t_points[3].set(this.min.x, this.max.y, this.max.z).applyMatrix4(matrix); // 011\r\n\r\n\r\n\t\t\t_points[4].set(this.max.x, this.min.y, this.min.z).applyMatrix4(matrix); // 100\r\n\r\n\r\n\t\t\t_points[5].set(this.max.x, this.min.y, this.max.z).applyMatrix4(matrix); // 101\r\n\r\n\r\n\t\t\t_points[6].set(this.max.x, this.max.y, this.min.z).applyMatrix4(matrix); // 110\r\n\r\n\r\n\t\t\t_points[7].set(this.max.x, this.max.y, this.max.z).applyMatrix4(matrix); // 111\r\n\r\n\r\n\t\t\tthis.setFromPoints(_points);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.translate = function translate(offset) {\r\n\t\t\tthis.min.add(offset);\r\n\t\t\tthis.max.add(offset);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.equals = function equals(box) {\r\n\t\t\treturn box.min.equals(this.min) && box.max.equals(this.max);\r\n\t\t};\r\n\r\n\t\treturn Box3;\r\n\t}();\r\n\r\n\tfunction satForAxes(axes, v0, v1, v2, extents) {\r\n\t\tfor (var i = 0, j = axes.length - 3; i <= j; i += 3) {\r\n\t\t\t_testAxis.fromArray(axes, i); // project the aabb onto the seperating axis\r\n\r\n\r\n\t\t\tvar r = extents.x * Math.abs(_testAxis.x) + extents.y * Math.abs(_testAxis.y) + extents.z * Math.abs(_testAxis.z); // project all 3 vertices of the triangle onto the seperating axis\r\n\r\n\t\t\tvar p0 = v0.dot(_testAxis);\r\n\t\t\tvar p1 = v1.dot(_testAxis);\r\n\t\t\tvar p2 = v2.dot(_testAxis); // actual test, basically see if either of the most extreme of the triangle points intersects r\r\n\r\n\t\t\tif (Math.max(-Math.max(p0, p1, p2), Math.min(p0, p1, p2)) > r) {\r\n\t\t\t\t// points of the projected triangle are outside the projected half-length of the aabb\r\n\t\t\t\t// the axis is seperating and we can exit\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t}\r\n\r\n\tvar _points = [/*@__PURE__*/new Vector3(), /*@__PURE__*/new Vector3(), /*@__PURE__*/new Vector3(), /*@__PURE__*/new Vector3(), /*@__PURE__*/new Vector3(), /*@__PURE__*/new Vector3(), /*@__PURE__*/new Vector3(), /*@__PURE__*/new Vector3()];\r\n\r\n\tvar _vector$1 = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _box = /*@__PURE__*/new Box3(); // triangle centered vertices\r\n\r\n\r\n\tvar _v0 = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _v1 = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _v2 = /*@__PURE__*/new Vector3(); // triangle edge vectors\r\n\r\n\r\n\tvar _f0 = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _f1 = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _f2 = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _center = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _extents = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _triangleNormal = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _testAxis = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _box$1 = /*@__PURE__*/new Box3();\r\n\r\n\tvar Sphere = /*#__PURE__*/function () {\r\n\t\tfunction Sphere(center, radius) {\r\n\t\t\tthis.center = center !== undefined ? center : new Vector3();\r\n\t\t\tthis.radius = radius !== undefined ? radius : -1;\r\n\t\t}\r\n\r\n\t\tvar _proto = Sphere.prototype;\r\n\r\n\t\t_proto.set = function set(center, radius) {\r\n\t\t\tthis.center.copy(center);\r\n\t\t\tthis.radius = radius;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setFromPoints = function setFromPoints(points, optionalCenter) {\r\n\t\t\tvar center = this.center;\r\n\r\n\t\t\tif (optionalCenter !== undefined) {\r\n\t\t\t\tcenter.copy(optionalCenter);\r\n\t\t\t} else {\r\n\t\t\t\t_box$1.setFromPoints(points).getCenter(center);\r\n\t\t\t}\r\n\r\n\t\t\tvar maxRadiusSq = 0;\r\n\r\n\t\t\tfor (var i = 0, il = points.length; i < il; i++) {\r\n\t\t\t\tmaxRadiusSq = Math.max(maxRadiusSq, center.distanceToSquared(points[i]));\r\n\t\t\t}\r\n\r\n\t\t\tthis.radius = Math.sqrt(maxRadiusSq);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.clone = function clone() {\r\n\t\t\treturn new this.constructor().copy(this);\r\n\t\t};\r\n\r\n\t\t_proto.copy = function copy(sphere) {\r\n\t\t\tthis.center.copy(sphere.center);\r\n\t\t\tthis.radius = sphere.radius;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.isEmpty = function isEmpty() {\r\n\t\t\treturn this.radius < 0;\r\n\t\t};\r\n\r\n\t\t_proto.makeEmpty = function makeEmpty() {\r\n\t\t\tthis.center.set(0, 0, 0);\r\n\t\t\tthis.radius = -1;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.containsPoint = function containsPoint(point) {\r\n\t\t\treturn point.distanceToSquared(this.center) <= this.radius * this.radius;\r\n\t\t};\r\n\r\n\t\t_proto.distanceToPoint = function distanceToPoint(point) {\r\n\t\t\treturn point.distanceTo(this.center) - this.radius;\r\n\t\t};\r\n\r\n\t\t_proto.intersectsSphere = function intersectsSphere(sphere) {\r\n\t\t\tvar radiusSum = this.radius + sphere.radius;\r\n\t\t\treturn sphere.center.distanceToSquared(this.center) <= radiusSum * radiusSum;\r\n\t\t};\r\n\r\n\t\t_proto.intersectsBox = function intersectsBox(box) {\r\n\t\t\treturn box.intersectsSphere(this);\r\n\t\t};\r\n\r\n\t\t_proto.intersectsPlane = function intersectsPlane(plane) {\r\n\t\t\treturn Math.abs(plane.distanceToPoint(this.center)) <= this.radius;\r\n\t\t};\r\n\r\n\t\t_proto.clampPoint = function clampPoint(point, target) {\r\n\t\t\tvar deltaLengthSq = this.center.distanceToSquared(point);\r\n\r\n\t\t\tif (target === undefined) {\r\n\t\t\t\tconsole.warn('THREE.Sphere: .clampPoint() target is now required');\r\n\t\t\t\ttarget = new Vector3();\r\n\t\t\t}\r\n\r\n\t\t\ttarget.copy(point);\r\n\r\n\t\t\tif (deltaLengthSq > this.radius * this.radius) {\r\n\t\t\t\ttarget.sub(this.center).normalize();\r\n\t\t\t\ttarget.multiplyScalar(this.radius).add(this.center);\r\n\t\t\t}\r\n\r\n\t\t\treturn target;\r\n\t\t};\r\n\r\n\t\t_proto.getBoundingBox = function getBoundingBox(target) {\r\n\t\t\tif (target === undefined) {\r\n\t\t\t\tconsole.warn('THREE.Sphere: .getBoundingBox() target is now required');\r\n\t\t\t\ttarget = new Box3();\r\n\t\t\t}\r\n\r\n\t\t\tif (this.isEmpty()) {\r\n\t\t\t\t// Empty sphere produces empty bounding box\r\n\t\t\t\ttarget.makeEmpty();\r\n\t\t\t\treturn target;\r\n\t\t\t}\r\n\r\n\t\t\ttarget.set(this.center, this.center);\r\n\t\t\ttarget.expandByScalar(this.radius);\r\n\t\t\treturn target;\r\n\t\t};\r\n\r\n\t\t_proto.applyMatrix4 = function applyMatrix4(matrix) {\r\n\t\t\tthis.center.applyMatrix4(matrix);\r\n\t\t\tthis.radius = this.radius * matrix.getMaxScaleOnAxis();\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.translate = function translate(offset) {\r\n\t\t\tthis.center.add(offset);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.equals = function equals(sphere) {\r\n\t\t\treturn sphere.center.equals(this.center) && sphere.radius === this.radius;\r\n\t\t};\r\n\r\n\t\treturn Sphere;\r\n\t}();\r\n\r\n\tvar _vector$2 = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _segCenter = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _segDir = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _diff = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _edge1 = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _edge2 = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _normal = /*@__PURE__*/new Vector3();\r\n\r\n\tvar Ray = /*#__PURE__*/function () {\r\n\t\tfunction Ray(origin, direction) {\r\n\t\t\tthis.origin = origin !== undefined ? origin : new Vector3();\r\n\t\t\tthis.direction = direction !== undefined ? direction : new Vector3(0, 0, -1);\r\n\t\t}\r\n\r\n\t\tvar _proto = Ray.prototype;\r\n\r\n\t\t_proto.set = function set(origin, direction) {\r\n\t\t\tthis.origin.copy(origin);\r\n\t\t\tthis.direction.copy(direction);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.clone = function clone() {\r\n\t\t\treturn new this.constructor().copy(this);\r\n\t\t};\r\n\r\n\t\t_proto.copy = function copy(ray) {\r\n\t\t\tthis.origin.copy(ray.origin);\r\n\t\t\tthis.direction.copy(ray.direction);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.at = function at(t, target) {\r\n\t\t\tif (target === undefined) {\r\n\t\t\t\tconsole.warn('THREE.Ray: .at() target is now required');\r\n\t\t\t\ttarget = new Vector3();\r\n\t\t\t}\r\n\r\n\t\t\treturn target.copy(this.direction).multiplyScalar(t).add(this.origin);\r\n\t\t};\r\n\r\n\t\t_proto.lookAt = function lookAt(v) {\r\n\t\t\tthis.direction.copy(v).sub(this.origin).normalize();\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.recast = function recast(t) {\r\n\t\t\tthis.origin.copy(this.at(t, _vector$2));\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.closestPointToPoint = function closestPointToPoint(point, target) {\r\n\t\t\tif (target === undefined) {\r\n\t\t\t\tconsole.warn('THREE.Ray: .closestPointToPoint() target is now required');\r\n\t\t\t\ttarget = new Vector3();\r\n\t\t\t}\r\n\r\n\t\t\ttarget.subVectors(point, this.origin);\r\n\t\t\tvar directionDistance = target.dot(this.direction);\r\n\r\n\t\t\tif (directionDistance < 0) {\r\n\t\t\t\treturn target.copy(this.origin);\r\n\t\t\t}\r\n\r\n\t\t\treturn target.copy(this.direction).multiplyScalar(directionDistance).add(this.origin);\r\n\t\t};\r\n\r\n\t\t_proto.distanceToPoint = function distanceToPoint(point) {\r\n\t\t\treturn Math.sqrt(this.distanceSqToPoint(point));\r\n\t\t};\r\n\r\n\t\t_proto.distanceSqToPoint = function distanceSqToPoint(point) {\r\n\t\t\tvar directionDistance = _vector$2.subVectors(point, this.origin).dot(this.direction); // point behind the ray\r\n\r\n\r\n\t\t\tif (directionDistance < 0) {\r\n\t\t\t\treturn this.origin.distanceToSquared(point);\r\n\t\t\t}\r\n\r\n\t\t\t_vector$2.copy(this.direction).multiplyScalar(directionDistance).add(this.origin);\r\n\r\n\t\t\treturn _vector$2.distanceToSquared(point);\r\n\t\t};\r\n\r\n\t\t_proto.distanceSqToSegment = function distanceSqToSegment(v0, v1, optionalPointOnRay, optionalPointOnSegment) {\r\n\t\t\t// from http://www.geometrictools.com/GTEngine/Include/Mathematics/GteDistRaySegment.h\r\n\t\t\t// It returns the min distance between the ray and the segment\r\n\t\t\t// defined by v0 and v1\r\n\t\t\t// It can also set two optional targets :\r\n\t\t\t// - The closest point on the ray\r\n\t\t\t// - The closest point on the segment\r\n\t\t\t_segCenter.copy(v0).add(v1).multiplyScalar(0.5);\r\n\r\n\t\t\t_segDir.copy(v1).sub(v0).normalize();\r\n\r\n\t\t\t_diff.copy(this.origin).sub(_segCenter);\r\n\r\n\t\t\tvar segExtent = v0.distanceTo(v1) * 0.5;\r\n\t\t\tvar a01 = -this.direction.dot(_segDir);\r\n\r\n\t\t\tvar b0 = _diff.dot(this.direction);\r\n\r\n\t\t\tvar b1 = -_diff.dot(_segDir);\r\n\r\n\t\t\tvar c = _diff.lengthSq();\r\n\r\n\t\t\tvar det = Math.abs(1 - a01 * a01);\r\n\t\t\tvar s0, s1, sqrDist, extDet;\r\n\r\n\t\t\tif (det > 0) {\r\n\t\t\t\t// The ray and segment are not parallel.\r\n\t\t\t\ts0 = a01 * b1 - b0;\r\n\t\t\t\ts1 = a01 * b0 - b1;\r\n\t\t\t\textDet = segExtent * det;\r\n\r\n\t\t\t\tif (s0 >= 0) {\r\n\t\t\t\t\tif (s1 >= -extDet) {\r\n\t\t\t\t\t\tif (s1 <= extDet) {\r\n\t\t\t\t\t\t\t// region 0\r\n\t\t\t\t\t\t\t// Minimum at interior points of ray and segment.\r\n\t\t\t\t\t\t\tvar invDet = 1 / det;\r\n\t\t\t\t\t\t\ts0 *= invDet;\r\n\t\t\t\t\t\t\ts1 *= invDet;\r\n\t\t\t\t\t\t\tsqrDist = s0 * (s0 + a01 * s1 + 2 * b0) + s1 * (a01 * s0 + s1 + 2 * b1) + c;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// region 1\r\n\t\t\t\t\t\t\ts1 = segExtent;\r\n\t\t\t\t\t\t\ts0 = Math.max(0, -(a01 * s1 + b0));\r\n\t\t\t\t\t\t\tsqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// region 5\r\n\t\t\t\t\t\ts1 = -segExtent;\r\n\t\t\t\t\t\ts0 = Math.max(0, -(a01 * s1 + b0));\r\n\t\t\t\t\t\tsqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (s1 <= -extDet) {\r\n\t\t\t\t\t\t// region 4\r\n\t\t\t\t\t\ts0 = Math.max(0, -(-a01 * segExtent + b0));\r\n\t\t\t\t\t\ts1 = s0 > 0 ? -segExtent : Math.min(Math.max(-segExtent, -b1), segExtent);\r\n\t\t\t\t\t\tsqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\r\n\t\t\t\t\t} else if (s1 <= extDet) {\r\n\t\t\t\t\t\t// region 3\r\n\t\t\t\t\t\ts0 = 0;\r\n\t\t\t\t\t\ts1 = Math.min(Math.max(-segExtent, -b1), segExtent);\r\n\t\t\t\t\t\tsqrDist = s1 * (s1 + 2 * b1) + c;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// region 2\r\n\t\t\t\t\t\ts0 = Math.max(0, -(a01 * segExtent + b0));\r\n\t\t\t\t\t\ts1 = s0 > 0 ? segExtent : Math.min(Math.max(-segExtent, -b1), segExtent);\r\n\t\t\t\t\t\tsqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// Ray and segment are parallel.\r\n\t\t\t\ts1 = a01 > 0 ? -segExtent : segExtent;\r\n\t\t\t\ts0 = Math.max(0, -(a01 * s1 + b0));\r\n\t\t\t\tsqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\r\n\t\t\t}\r\n\r\n\t\t\tif (optionalPointOnRay) {\r\n\t\t\t\toptionalPointOnRay.copy(this.direction).multiplyScalar(s0).add(this.origin);\r\n\t\t\t}\r\n\r\n\t\t\tif (optionalPointOnSegment) {\r\n\t\t\t\toptionalPointOnSegment.copy(_segDir).multiplyScalar(s1).add(_segCenter);\r\n\t\t\t}\r\n\r\n\t\t\treturn sqrDist;\r\n\t\t};\r\n\r\n\t\t_proto.intersectSphere = function intersectSphere(sphere, target) {\r\n\t\t\t_vector$2.subVectors(sphere.center, this.origin);\r\n\r\n\t\t\tvar tca = _vector$2.dot(this.direction);\r\n\r\n\t\t\tvar d2 = _vector$2.dot(_vector$2) - tca * tca;\r\n\t\t\tvar radius2 = sphere.radius * sphere.radius;\r\n\t\t\tif (d2 > radius2) return null;\r\n\t\t\tvar thc = Math.sqrt(radius2 - d2); // t0 = first intersect point - entrance on front of sphere\r\n\r\n\t\t\tvar t0 = tca - thc; // t1 = second intersect point - exit point on back of sphere\r\n\r\n\t\t\tvar t1 = tca + thc; // test to see if both t0 and t1 are behind the ray - if so, return null\r\n\r\n\t\t\tif (t0 < 0 && t1 < 0) return null; // test to see if t0 is behind the ray:\r\n\t\t\t// if it is, the ray is inside the sphere, so return the second exit point scaled by t1,\r\n\t\t\t// in order to always return an intersect point that is in front of the ray.\r\n\r\n\t\t\tif (t0 < 0) return this.at(t1, target); // else t0 is in front of the ray, so return the first collision point scaled by t0\r\n\r\n\t\t\treturn this.at(t0, target);\r\n\t\t};\r\n\r\n\t\t_proto.intersectsSphere = function intersectsSphere(sphere) {\r\n\t\t\treturn this.distanceSqToPoint(sphere.center) <= sphere.radius * sphere.radius;\r\n\t\t};\r\n\r\n\t\t_proto.distanceToPlane = function distanceToPlane(plane) {\r\n\t\t\tvar denominator = plane.normal.dot(this.direction);\r\n\r\n\t\t\tif (denominator === 0) {\r\n\t\t\t\t// line is coplanar, return origin\r\n\t\t\t\tif (plane.distanceToPoint(this.origin) === 0) {\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t} // Null is preferable to undefined since undefined means.... it is undefined\r\n\r\n\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\t\tvar t = -(this.origin.dot(plane.normal) + plane.constant) / denominator; // Return if the ray never intersects the plane\r\n\r\n\t\t\treturn t >= 0 ? t : null;\r\n\t\t};\r\n\r\n\t\t_proto.intersectPlane = function intersectPlane(plane, target) {\r\n\t\t\tvar t = this.distanceToPlane(plane);\r\n\r\n\t\t\tif (t === null) {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\t\treturn this.at(t, target);\r\n\t\t};\r\n\r\n\t\t_proto.intersectsPlane = function intersectsPlane(plane) {\r\n\t\t\t// check if the ray lies on the plane first\r\n\t\t\tvar distToPoint = plane.distanceToPoint(this.origin);\r\n\r\n\t\t\tif (distToPoint === 0) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tvar denominator = plane.normal.dot(this.direction);\r\n\r\n\t\t\tif (denominator * distToPoint < 0) {\r\n\t\t\t\treturn true;\r\n\t\t\t} // ray origin is behind the plane (and is pointing behind it)\r\n\r\n\r\n\t\t\treturn false;\r\n\t\t};\r\n\r\n\t\t_proto.intersectBox = function intersectBox(box, target) {\r\n\t\t\tvar tmin, tmax, tymin, tymax, tzmin, tzmax;\r\n\t\t\tvar invdirx = 1 / this.direction.x,\r\n\t\t\t\t\tinvdiry = 1 / this.direction.y,\r\n\t\t\t\t\tinvdirz = 1 / this.direction.z;\r\n\t\t\tvar origin = this.origin;\r\n\r\n\t\t\tif (invdirx >= 0) {\r\n\t\t\t\ttmin = (box.min.x - origin.x) * invdirx;\r\n\t\t\t\ttmax = (box.max.x - origin.x) * invdirx;\r\n\t\t\t} else {\r\n\t\t\t\ttmin = (box.max.x - origin.x) * invdirx;\r\n\t\t\t\ttmax = (box.min.x - origin.x) * invdirx;\r\n\t\t\t}\r\n\r\n\t\t\tif (invdiry >= 0) {\r\n\t\t\t\ttymin = (box.min.y - origin.y) * invdiry;\r\n\t\t\t\ttymax = (box.max.y - origin.y) * invdiry;\r\n\t\t\t} else {\r\n\t\t\t\ttymin = (box.max.y - origin.y) * invdiry;\r\n\t\t\t\ttymax = (box.min.y - origin.y) * invdiry;\r\n\t\t\t}\r\n\r\n\t\t\tif (tmin > tymax || tymin > tmax) return null; // These lines also handle the case where tmin or tmax is NaN\r\n\t\t\t// (result of 0 * Infinity). x !== x returns true if x is NaN\r\n\r\n\t\t\tif (tymin > tmin || tmin !== tmin) tmin = tymin;\r\n\t\t\tif (tymax < tmax || tmax !== tmax) tmax = tymax;\r\n\r\n\t\t\tif (invdirz >= 0) {\r\n\t\t\t\ttzmin = (box.min.z - origin.z) * invdirz;\r\n\t\t\t\ttzmax = (box.max.z - origin.z) * invdirz;\r\n\t\t\t} else {\r\n\t\t\t\ttzmin = (box.max.z - origin.z) * invdirz;\r\n\t\t\t\ttzmax = (box.min.z - origin.z) * invdirz;\r\n\t\t\t}\r\n\r\n\t\t\tif (tmin > tzmax || tzmin > tmax) return null;\r\n\t\t\tif (tzmin > tmin || tmin !== tmin) tmin = tzmin;\r\n\t\t\tif (tzmax < tmax || tmax !== tmax) tmax = tzmax; //return point closest to the ray (positive side)\r\n\r\n\t\t\tif (tmax < 0) return null;\r\n\t\t\treturn this.at(tmin >= 0 ? tmin : tmax, target);\r\n\t\t};\r\n\r\n\t\t_proto.intersectsBox = function intersectsBox(box) {\r\n\t\t\treturn this.intersectBox(box, _vector$2) !== null;\r\n\t\t};\r\n\r\n\t\t_proto.intersectTriangle = function intersectTriangle(a, b, c, backfaceCulling, target) {\r\n\t\t\t// Compute the offset origin, edges, and normal.\r\n\t\t\t// from http://www.geometrictools.com/GTEngine/Include/Mathematics/GteIntrRay3Triangle3.h\r\n\t\t\t_edge1.subVectors(b, a);\r\n\r\n\t\t\t_edge2.subVectors(c, a);\r\n\r\n\t\t\t_normal.crossVectors(_edge1, _edge2); // Solve Q + t*D = b1*E1 + b2*E2 (Q = kDiff, D = ray direction,\r\n\t\t\t// E1 = kEdge1, E2 = kEdge2, N = Cross(E1,E2)) by\r\n\t\t\t//\t |Dot(D,N)|*b1 = sign(Dot(D,N))*Dot(D,Cross(Q,E2))\r\n\t\t\t//\t |Dot(D,N)|*b2 = sign(Dot(D,N))*Dot(D,Cross(E1,Q))\r\n\t\t\t//\t |Dot(D,N)|*t = -sign(Dot(D,N))*Dot(Q,N)\r\n\r\n\r\n\t\t\tvar DdN = this.direction.dot(_normal);\r\n\t\t\tvar sign;\r\n\r\n\t\t\tif (DdN > 0) {\r\n\t\t\t\tif (backfaceCulling) return null;\r\n\t\t\t\tsign = 1;\r\n\t\t\t} else if (DdN < 0) {\r\n\t\t\t\tsign = -1;\r\n\t\t\t\tDdN = -DdN;\r\n\t\t\t} else {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\t\t_diff.subVectors(this.origin, a);\r\n\r\n\t\t\tvar DdQxE2 = sign * this.direction.dot(_edge2.crossVectors(_diff, _edge2)); // b1 < 0, no intersection\r\n\r\n\t\t\tif (DdQxE2 < 0) {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\t\tvar DdE1xQ = sign * this.direction.dot(_edge1.cross(_diff)); // b2 < 0, no intersection\r\n\r\n\t\t\tif (DdE1xQ < 0) {\r\n\t\t\t\treturn null;\r\n\t\t\t} // b1+b2 > 1, no intersection\r\n\r\n\r\n\t\t\tif (DdQxE2 + DdE1xQ > DdN) {\r\n\t\t\t\treturn null;\r\n\t\t\t} // Line intersects triangle, check if ray does.\r\n\r\n\r\n\t\t\tvar QdN = -sign * _diff.dot(_normal); // t < 0, no intersection\r\n\r\n\r\n\t\t\tif (QdN < 0) {\r\n\t\t\t\treturn null;\r\n\t\t\t} // Ray intersects triangle.\r\n\r\n\r\n\t\t\treturn this.at(QdN / DdN, target);\r\n\t\t};\r\n\r\n\t\t_proto.applyMatrix4 = function applyMatrix4(matrix4) {\r\n\t\t\tthis.origin.applyMatrix4(matrix4);\r\n\t\t\tthis.direction.transformDirection(matrix4);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.equals = function equals(ray) {\r\n\t\t\treturn ray.origin.equals(this.origin) && ray.direction.equals(this.direction);\r\n\t\t};\r\n\r\n\t\treturn Ray;\r\n\t}();\r\n\r\n\tvar Matrix4 = /*#__PURE__*/function () {\r\n\t\tfunction Matrix4() {\r\n\t\t\tObject.defineProperty(this, 'isMatrix4', {\r\n\t\t\t\tvalue: true\r\n\t\t\t});\r\n\t\t\tthis.elements = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\r\n\r\n\t\t\tif (arguments.length > 0) {\r\n\t\t\t\tconsole.error('THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar _proto = Matrix4.prototype;\r\n\r\n\t\t_proto.set = function set(n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44) {\r\n\t\t\tvar te = this.elements;\r\n\t\t\tte[0] = n11;\r\n\t\t\tte[4] = n12;\r\n\t\t\tte[8] = n13;\r\n\t\t\tte[12] = n14;\r\n\t\t\tte[1] = n21;\r\n\t\t\tte[5] = n22;\r\n\t\t\tte[9] = n23;\r\n\t\t\tte[13] = n24;\r\n\t\t\tte[2] = n31;\r\n\t\t\tte[6] = n32;\r\n\t\t\tte[10] = n33;\r\n\t\t\tte[14] = n34;\r\n\t\t\tte[3] = n41;\r\n\t\t\tte[7] = n42;\r\n\t\t\tte[11] = n43;\r\n\t\t\tte[15] = n44;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.identity = function identity() {\r\n\t\t\tthis.set(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.clone = function clone() {\r\n\t\t\treturn new Matrix4().fromArray(this.elements);\r\n\t\t};\r\n\r\n\t\t_proto.copy = function copy(m) {\r\n\t\t\tvar te = this.elements;\r\n\t\t\tvar me = m.elements;\r\n\t\t\tte[0] = me[0];\r\n\t\t\tte[1] = me[1];\r\n\t\t\tte[2] = me[2];\r\n\t\t\tte[3] = me[3];\r\n\t\t\tte[4] = me[4];\r\n\t\t\tte[5] = me[5];\r\n\t\t\tte[6] = me[6];\r\n\t\t\tte[7] = me[7];\r\n\t\t\tte[8] = me[8];\r\n\t\t\tte[9] = me[9];\r\n\t\t\tte[10] = me[10];\r\n\t\t\tte[11] = me[11];\r\n\t\t\tte[12] = me[12];\r\n\t\t\tte[13] = me[13];\r\n\t\t\tte[14] = me[14];\r\n\t\t\tte[15] = me[15];\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.copyPosition = function copyPosition(m) {\r\n\t\t\tvar te = this.elements,\r\n\t\t\t\t\tme = m.elements;\r\n\t\t\tte[12] = me[12];\r\n\t\t\tte[13] = me[13];\r\n\t\t\tte[14] = me[14];\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.extractBasis = function extractBasis(xAxis, yAxis, zAxis) {\r\n\t\t\txAxis.setFromMatrixColumn(this, 0);\r\n\t\t\tyAxis.setFromMatrixColumn(this, 1);\r\n\t\t\tzAxis.setFromMatrixColumn(this, 2);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.makeBasis = function makeBasis(xAxis, yAxis, zAxis) {\r\n\t\t\tthis.set(xAxis.x, yAxis.x, zAxis.x, 0, xAxis.y, yAxis.y, zAxis.y, 0, xAxis.z, yAxis.z, zAxis.z, 0, 0, 0, 0, 1);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.extractRotation = function extractRotation(m) {\r\n\t\t\t// this method does not support reflection matrices\r\n\t\t\tvar te = this.elements;\r\n\t\t\tvar me = m.elements;\r\n\r\n\t\t\tvar scaleX = 1 / _v1$1.setFromMatrixColumn(m, 0).length();\r\n\r\n\t\t\tvar scaleY = 1 / _v1$1.setFromMatrixColumn(m, 1).length();\r\n\r\n\t\t\tvar scaleZ = 1 / _v1$1.setFromMatrixColumn(m, 2).length();\r\n\r\n\t\t\tte[0] = me[0] * scaleX;\r\n\t\t\tte[1] = me[1] * scaleX;\r\n\t\t\tte[2] = me[2] * scaleX;\r\n\t\t\tte[3] = 0;\r\n\t\t\tte[4] = me[4] * scaleY;\r\n\t\t\tte[5] = me[5] * scaleY;\r\n\t\t\tte[6] = me[6] * scaleY;\r\n\t\t\tte[7] = 0;\r\n\t\t\tte[8] = me[8] * scaleZ;\r\n\t\t\tte[9] = me[9] * scaleZ;\r\n\t\t\tte[10] = me[10] * scaleZ;\r\n\t\t\tte[11] = 0;\r\n\t\t\tte[12] = 0;\r\n\t\t\tte[13] = 0;\r\n\t\t\tte[14] = 0;\r\n\t\t\tte[15] = 1;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.makeRotationFromEuler = function makeRotationFromEuler(euler) {\r\n\t\t\tif (!(euler && euler.isEuler)) {\r\n\t\t\t\tconsole.error('THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.');\r\n\t\t\t}\r\n\r\n\t\t\tvar te = this.elements;\r\n\t\t\tvar x = euler.x,\r\n\t\t\t\t\ty = euler.y,\r\n\t\t\t\t\tz = euler.z;\r\n\t\t\tvar a = Math.cos(x),\r\n\t\t\t\t\tb = Math.sin(x);\r\n\t\t\tvar c = Math.cos(y),\r\n\t\t\t\t\td = Math.sin(y);\r\n\t\t\tvar e = Math.cos(z),\r\n\t\t\t\t\tf = Math.sin(z);\r\n\r\n\t\t\tif (euler.order === 'XYZ') {\r\n\t\t\t\tvar ae = a * e,\r\n\t\t\t\t\t\taf = a * f,\r\n\t\t\t\t\t\tbe = b * e,\r\n\t\t\t\t\t\tbf = b * f;\r\n\t\t\t\tte[0] = c * e;\r\n\t\t\t\tte[4] = -c * f;\r\n\t\t\t\tte[8] = d;\r\n\t\t\t\tte[1] = af + be * d;\r\n\t\t\t\tte[5] = ae - bf * d;\r\n\t\t\t\tte[9] = -b * c;\r\n\t\t\t\tte[2] = bf - ae * d;\r\n\t\t\t\tte[6] = be + af * d;\r\n\t\t\t\tte[10] = a * c;\r\n\t\t\t} else if (euler.order === 'YXZ') {\r\n\t\t\t\tvar ce = c * e,\r\n\t\t\t\t\t\tcf = c * f,\r\n\t\t\t\t\t\tde = d * e,\r\n\t\t\t\t\t\tdf = d * f;\r\n\t\t\t\tte[0] = ce + df * b;\r\n\t\t\t\tte[4] = de * b - cf;\r\n\t\t\t\tte[8] = a * d;\r\n\t\t\t\tte[1] = a * f;\r\n\t\t\t\tte[5] = a * e;\r\n\t\t\t\tte[9] = -b;\r\n\t\t\t\tte[2] = cf * b - de;\r\n\t\t\t\tte[6] = df + ce * b;\r\n\t\t\t\tte[10] = a * c;\r\n\t\t\t} else if (euler.order === 'ZXY') {\r\n\t\t\t\tvar _ce = c * e,\r\n\t\t\t\t\t\t_cf = c * f,\r\n\t\t\t\t\t\t_de = d * e,\r\n\t\t\t\t\t\t_df = d * f;\r\n\r\n\t\t\t\tte[0] = _ce - _df * b;\r\n\t\t\t\tte[4] = -a * f;\r\n\t\t\t\tte[8] = _de + _cf * b;\r\n\t\t\t\tte[1] = _cf + _de * b;\r\n\t\t\t\tte[5] = a * e;\r\n\t\t\t\tte[9] = _df - _ce * b;\r\n\t\t\t\tte[2] = -a * d;\r\n\t\t\t\tte[6] = b;\r\n\t\t\t\tte[10] = a * c;\r\n\t\t\t} else if (euler.order === 'ZYX') {\r\n\t\t\t\tvar _ae = a * e,\r\n\t\t\t\t\t\t_af = a * f,\r\n\t\t\t\t\t\t_be = b * e,\r\n\t\t\t\t\t\t_bf = b * f;\r\n\r\n\t\t\t\tte[0] = c * e;\r\n\t\t\t\tte[4] = _be * d - _af;\r\n\t\t\t\tte[8] = _ae * d + _bf;\r\n\t\t\t\tte[1] = c * f;\r\n\t\t\t\tte[5] = _bf * d + _ae;\r\n\t\t\t\tte[9] = _af * d - _be;\r\n\t\t\t\tte[2] = -d;\r\n\t\t\t\tte[6] = b * c;\r\n\t\t\t\tte[10] = a * c;\r\n\t\t\t} else if (euler.order === 'YZX') {\r\n\t\t\t\tvar ac = a * c,\r\n\t\t\t\t\t\tad = a * d,\r\n\t\t\t\t\t\tbc = b * c,\r\n\t\t\t\t\t\tbd = b * d;\r\n\t\t\t\tte[0] = c * e;\r\n\t\t\t\tte[4] = bd - ac * f;\r\n\t\t\t\tte[8] = bc * f + ad;\r\n\t\t\t\tte[1] = f;\r\n\t\t\t\tte[5] = a * e;\r\n\t\t\t\tte[9] = -b * e;\r\n\t\t\t\tte[2] = -d * e;\r\n\t\t\t\tte[6] = ad * f + bc;\r\n\t\t\t\tte[10] = ac - bd * f;\r\n\t\t\t} else if (euler.order === 'XZY') {\r\n\t\t\t\tvar _ac = a * c,\r\n\t\t\t\t\t\t_ad = a * d,\r\n\t\t\t\t\t\t_bc = b * c,\r\n\t\t\t\t\t\t_bd = b * d;\r\n\r\n\t\t\t\tte[0] = c * e;\r\n\t\t\t\tte[4] = -f;\r\n\t\t\t\tte[8] = d * e;\r\n\t\t\t\tte[1] = _ac * f + _bd;\r\n\t\t\t\tte[5] = a * e;\r\n\t\t\t\tte[9] = _ad * f - _bc;\r\n\t\t\t\tte[2] = _bc * f - _ad;\r\n\t\t\t\tte[6] = b * e;\r\n\t\t\t\tte[10] = _bd * f + _ac;\r\n\t\t\t} // bottom row\r\n\r\n\r\n\t\t\tte[3] = 0;\r\n\t\t\tte[7] = 0;\r\n\t\t\tte[11] = 0; // last column\r\n\r\n\t\t\tte[12] = 0;\r\n\t\t\tte[13] = 0;\r\n\t\t\tte[14] = 0;\r\n\t\t\tte[15] = 1;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.makeRotationFromQuaternion = function makeRotationFromQuaternion(q) {\r\n\t\t\treturn this.compose(_zero, q, _one);\r\n\t\t};\r\n\r\n\t\t_proto.lookAt = function lookAt(eye, target, up) {\r\n\t\t\tvar te = this.elements;\r\n\r\n\t\t\t_z.subVectors(eye, target);\r\n\r\n\t\t\tif (_z.lengthSq() === 0) {\r\n\t\t\t\t// eye and target are in the same position\r\n\t\t\t\t_z.z = 1;\r\n\t\t\t}\r\n\r\n\t\t\t_z.normalize();\r\n\r\n\t\t\t_x.crossVectors(up, _z);\r\n\r\n\t\t\tif (_x.lengthSq() === 0) {\r\n\t\t\t\t// up and z are parallel\r\n\t\t\t\tif (Math.abs(up.z) === 1) {\r\n\t\t\t\t\t_z.x += 0.0001;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t_z.z += 0.0001;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t_z.normalize();\r\n\r\n\t\t\t\t_x.crossVectors(up, _z);\r\n\t\t\t}\r\n\r\n\t\t\t_x.normalize();\r\n\r\n\t\t\t_y.crossVectors(_z, _x);\r\n\r\n\t\t\tte[0] = _x.x;\r\n\t\t\tte[4] = _y.x;\r\n\t\t\tte[8] = _z.x;\r\n\t\t\tte[1] = _x.y;\r\n\t\t\tte[5] = _y.y;\r\n\t\t\tte[9] = _z.y;\r\n\t\t\tte[2] = _x.z;\r\n\t\t\tte[6] = _y.z;\r\n\t\t\tte[10] = _z.z;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.multiply = function multiply(m, n) {\r\n\t\t\tif (n !== undefined) {\r\n\t\t\t\tconsole.warn('THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead.');\r\n\t\t\t\treturn this.multiplyMatrices(m, n);\r\n\t\t\t}\r\n\r\n\t\t\treturn this.multiplyMatrices(this, m);\r\n\t\t};\r\n\r\n\t\t_proto.premultiply = function premultiply(m) {\r\n\t\t\treturn this.multiplyMatrices(m, this);\r\n\t\t};\r\n\r\n\t\t_proto.multiplyMatrices = function multiplyMatrices(a, b) {\r\n\t\t\tvar ae = a.elements;\r\n\t\t\tvar be = b.elements;\r\n\t\t\tvar te = this.elements;\r\n\t\t\tvar a11 = ae[0],\r\n\t\t\t\t\ta12 = ae[4],\r\n\t\t\t\t\ta13 = ae[8],\r\n\t\t\t\t\ta14 = ae[12];\r\n\t\t\tvar a21 = ae[1],\r\n\t\t\t\t\ta22 = ae[5],\r\n\t\t\t\t\ta23 = ae[9],\r\n\t\t\t\t\ta24 = ae[13];\r\n\t\t\tvar a31 = ae[2],\r\n\t\t\t\t\ta32 = ae[6],\r\n\t\t\t\t\ta33 = ae[10],\r\n\t\t\t\t\ta34 = ae[14];\r\n\t\t\tvar a41 = ae[3],\r\n\t\t\t\t\ta42 = ae[7],\r\n\t\t\t\t\ta43 = ae[11],\r\n\t\t\t\t\ta44 = ae[15];\r\n\t\t\tvar b11 = be[0],\r\n\t\t\t\t\tb12 = be[4],\r\n\t\t\t\t\tb13 = be[8],\r\n\t\t\t\t\tb14 = be[12];\r\n\t\t\tvar b21 = be[1],\r\n\t\t\t\t\tb22 = be[5],\r\n\t\t\t\t\tb23 = be[9],\r\n\t\t\t\t\tb24 = be[13];\r\n\t\t\tvar b31 = be[2],\r\n\t\t\t\t\tb32 = be[6],\r\n\t\t\t\t\tb33 = be[10],\r\n\t\t\t\t\tb34 = be[14];\r\n\t\t\tvar b41 = be[3],\r\n\t\t\t\t\tb42 = be[7],\r\n\t\t\t\t\tb43 = be[11],\r\n\t\t\t\t\tb44 = be[15];\r\n\t\t\tte[0] = a11 * b11 + a12 * b21 + a13 * b31 + a14 * b41;\r\n\t\t\tte[4] = a11 * b12 + a12 * b22 + a13 * b32 + a14 * b42;\r\n\t\t\tte[8] = a11 * b13 + a12 * b23 + a13 * b33 + a14 * b43;\r\n\t\t\tte[12] = a11 * b14 + a12 * b24 + a13 * b34 + a14 * b44;\r\n\t\t\tte[1] = a21 * b11 + a22 * b21 + a23 * b31 + a24 * b41;\r\n\t\t\tte[5] = a21 * b12 + a22 * b22 + a23 * b32 + a24 * b42;\r\n\t\t\tte[9] = a21 * b13 + a22 * b23 + a23 * b33 + a24 * b43;\r\n\t\t\tte[13] = a21 * b14 + a22 * b24 + a23 * b34 + a24 * b44;\r\n\t\t\tte[2] = a31 * b11 + a32 * b21 + a33 * b31 + a34 * b41;\r\n\t\t\tte[6] = a31 * b12 + a32 * b22 + a33 * b32 + a34 * b42;\r\n\t\t\tte[10] = a31 * b13 + a32 * b23 + a33 * b33 + a34 * b43;\r\n\t\t\tte[14] = a31 * b14 + a32 * b24 + a33 * b34 + a34 * b44;\r\n\t\t\tte[3] = a41 * b11 + a42 * b21 + a43 * b31 + a44 * b41;\r\n\t\t\tte[7] = a41 * b12 + a42 * b22 + a43 * b32 + a44 * b42;\r\n\t\t\tte[11] = a41 * b13 + a42 * b23 + a43 * b33 + a44 * b43;\r\n\t\t\tte[15] = a41 * b14 + a42 * b24 + a43 * b34 + a44 * b44;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.multiplyScalar = function multiplyScalar(s) {\r\n\t\t\tvar te = this.elements;\r\n\t\t\tte[0] *= s;\r\n\t\t\tte[4] *= s;\r\n\t\t\tte[8] *= s;\r\n\t\t\tte[12] *= s;\r\n\t\t\tte[1] *= s;\r\n\t\t\tte[5] *= s;\r\n\t\t\tte[9] *= s;\r\n\t\t\tte[13] *= s;\r\n\t\t\tte[2] *= s;\r\n\t\t\tte[6] *= s;\r\n\t\t\tte[10] *= s;\r\n\t\t\tte[14] *= s;\r\n\t\t\tte[3] *= s;\r\n\t\t\tte[7] *= s;\r\n\t\t\tte[11] *= s;\r\n\t\t\tte[15] *= s;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.determinant = function determinant() {\r\n\t\t\tvar te = this.elements;\r\n\t\t\tvar n11 = te[0],\r\n\t\t\t\t\tn12 = te[4],\r\n\t\t\t\t\tn13 = te[8],\r\n\t\t\t\t\tn14 = te[12];\r\n\t\t\tvar n21 = te[1],\r\n\t\t\t\t\tn22 = te[5],\r\n\t\t\t\t\tn23 = te[9],\r\n\t\t\t\t\tn24 = te[13];\r\n\t\t\tvar n31 = te[2],\r\n\t\t\t\t\tn32 = te[6],\r\n\t\t\t\t\tn33 = te[10],\r\n\t\t\t\t\tn34 = te[14];\r\n\t\t\tvar n41 = te[3],\r\n\t\t\t\t\tn42 = te[7],\r\n\t\t\t\t\tn43 = te[11],\r\n\t\t\t\t\tn44 = te[15]; //TODO: make this more efficient\r\n\t\t\t//( based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm )\r\n\r\n\t\t\treturn n41 * (+n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34) + n42 * (+n11 * n23 * n34 - n11 * n24 * n33 + n14 * n21 * n33 - n13 * n21 * n34 + n13 * n24 * n31 - n14 * n23 * n31) + n43 * (+n11 * n24 * n32 - n11 * n22 * n34 - n14 * n21 * n32 + n12 * n21 * n34 + n14 * n22 * n31 - n12 * n24 * n31) + n44 * (-n13 * n22 * n31 - n11 * n23 * n32 + n11 * n22 * n33 + n13 * n21 * n32 - n12 * n21 * n33 + n12 * n23 * n31);\r\n\t\t};\r\n\r\n\t\t_proto.transpose = function transpose() {\r\n\t\t\tvar te = this.elements;\r\n\t\t\tvar tmp;\r\n\t\t\ttmp = te[1];\r\n\t\t\tte[1] = te[4];\r\n\t\t\tte[4] = tmp;\r\n\t\t\ttmp = te[2];\r\n\t\t\tte[2] = te[8];\r\n\t\t\tte[8] = tmp;\r\n\t\t\ttmp = te[6];\r\n\t\t\tte[6] = te[9];\r\n\t\t\tte[9] = tmp;\r\n\t\t\ttmp = te[3];\r\n\t\t\tte[3] = te[12];\r\n\t\t\tte[12] = tmp;\r\n\t\t\ttmp = te[7];\r\n\t\t\tte[7] = te[13];\r\n\t\t\tte[13] = tmp;\r\n\t\t\ttmp = te[11];\r\n\t\t\tte[11] = te[14];\r\n\t\t\tte[14] = tmp;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setPosition = function setPosition(x, y, z) {\r\n\t\t\tvar te = this.elements;\r\n\r\n\t\t\tif (x.isVector3) {\r\n\t\t\t\tte[12] = x.x;\r\n\t\t\t\tte[13] = x.y;\r\n\t\t\t\tte[14] = x.z;\r\n\t\t\t} else {\r\n\t\t\t\tte[12] = x;\r\n\t\t\t\tte[13] = y;\r\n\t\t\t\tte[14] = z;\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.invert = function invert() {\r\n\t\t\t// based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm\r\n\t\t\tvar te = this.elements,\r\n\t\t\t\t\tn11 = te[0],\r\n\t\t\t\t\tn21 = te[1],\r\n\t\t\t\t\tn31 = te[2],\r\n\t\t\t\t\tn41 = te[3],\r\n\t\t\t\t\tn12 = te[4],\r\n\t\t\t\t\tn22 = te[5],\r\n\t\t\t\t\tn32 = te[6],\r\n\t\t\t\t\tn42 = te[7],\r\n\t\t\t\t\tn13 = te[8],\r\n\t\t\t\t\tn23 = te[9],\r\n\t\t\t\t\tn33 = te[10],\r\n\t\t\t\t\tn43 = te[11],\r\n\t\t\t\t\tn14 = te[12],\r\n\t\t\t\t\tn24 = te[13],\r\n\t\t\t\t\tn34 = te[14],\r\n\t\t\t\t\tn44 = te[15],\r\n\t\t\t\t\tt11 = n23 * n34 * n42 - n24 * n33 * n42 + n24 * n32 * n43 - n22 * n34 * n43 - n23 * n32 * n44 + n22 * n33 * n44,\r\n\t\t\t\t\tt12 = n14 * n33 * n42 - n13 * n34 * n42 - n14 * n32 * n43 + n12 * n34 * n43 + n13 * n32 * n44 - n12 * n33 * n44,\r\n\t\t\t\t\tt13 = n13 * n24 * n42 - n14 * n23 * n42 + n14 * n22 * n43 - n12 * n24 * n43 - n13 * n22 * n44 + n12 * n23 * n44,\r\n\t\t\t\t\tt14 = n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34;\r\n\t\t\tvar det = n11 * t11 + n21 * t12 + n31 * t13 + n41 * t14;\r\n\t\t\tif (det === 0) return this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\r\n\t\t\tvar detInv = 1 / det;\r\n\t\t\tte[0] = t11 * detInv;\r\n\t\t\tte[1] = (n24 * n33 * n41 - n23 * n34 * n41 - n24 * n31 * n43 + n21 * n34 * n43 + n23 * n31 * n44 - n21 * n33 * n44) * detInv;\r\n\t\t\tte[2] = (n22 * n34 * n41 - n24 * n32 * n41 + n24 * n31 * n42 - n21 * n34 * n42 - n22 * n31 * n44 + n21 * n32 * n44) * detInv;\r\n\t\t\tte[3] = (n23 * n32 * n41 - n22 * n33 * n41 - n23 * n31 * n42 + n21 * n33 * n42 + n22 * n31 * n43 - n21 * n32 * n43) * detInv;\r\n\t\t\tte[4] = t12 * detInv;\r\n\t\t\tte[5] = (n13 * n34 * n41 - n14 * n33 * n41 + n14 * n31 * n43 - n11 * n34 * n43 - n13 * n31 * n44 + n11 * n33 * n44) * detInv;\r\n\t\t\tte[6] = (n14 * n32 * n41 - n12 * n34 * n41 - n14 * n31 * n42 + n11 * n34 * n42 + n12 * n31 * n44 - n11 * n32 * n44) * detInv;\r\n\t\t\tte[7] = (n12 * n33 * n41 - n13 * n32 * n41 + n13 * n31 * n42 - n11 * n33 * n42 - n12 * n31 * n43 + n11 * n32 * n43) * detInv;\r\n\t\t\tte[8] = t13 * detInv;\r\n\t\t\tte[9] = (n14 * n23 * n41 - n13 * n24 * n41 - n14 * n21 * n43 + n11 * n24 * n43 + n13 * n21 * n44 - n11 * n23 * n44) * detInv;\r\n\t\t\tte[10] = (n12 * n24 * n41 - n14 * n22 * n41 + n14 * n21 * n42 - n11 * n24 * n42 - n12 * n21 * n44 + n11 * n22 * n44) * detInv;\r\n\t\t\tte[11] = (n13 * n22 * n41 - n12 * n23 * n41 - n13 * n21 * n42 + n11 * n23 * n42 + n12 * n21 * n43 - n11 * n22 * n43) * detInv;\r\n\t\t\tte[12] = t14 * detInv;\r\n\t\t\tte[13] = (n13 * n24 * n31 - n14 * n23 * n31 + n14 * n21 * n33 - n11 * n24 * n33 - n13 * n21 * n34 + n11 * n23 * n34) * detInv;\r\n\t\t\tte[14] = (n14 * n22 * n31 - n12 * n24 * n31 - n14 * n21 * n32 + n11 * n24 * n32 + n12 * n21 * n34 - n11 * n22 * n34) * detInv;\r\n\t\t\tte[15] = (n12 * n23 * n31 - n13 * n22 * n31 + n13 * n21 * n32 - n11 * n23 * n32 - n12 * n21 * n33 + n11 * n22 * n33) * detInv;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.scale = function scale(v) {\r\n\t\t\tvar te = this.elements;\r\n\t\t\tvar x = v.x,\r\n\t\t\t\t\ty = v.y,\r\n\t\t\t\t\tz = v.z;\r\n\t\t\tte[0] *= x;\r\n\t\t\tte[4] *= y;\r\n\t\t\tte[8] *= z;\r\n\t\t\tte[1] *= x;\r\n\t\t\tte[5] *= y;\r\n\t\t\tte[9] *= z;\r\n\t\t\tte[2] *= x;\r\n\t\t\tte[6] *= y;\r\n\t\t\tte[10] *= z;\r\n\t\t\tte[3] *= x;\r\n\t\t\tte[7] *= y;\r\n\t\t\tte[11] *= z;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.getMaxScaleOnAxis = function getMaxScaleOnAxis() {\r\n\t\t\tvar te = this.elements;\r\n\t\t\tvar scaleXSq = te[0] * te[0] + te[1] * te[1] + te[2] * te[2];\r\n\t\t\tvar scaleYSq = te[4] * te[4] + te[5] * te[5] + te[6] * te[6];\r\n\t\t\tvar scaleZSq = te[8] * te[8] + te[9] * te[9] + te[10] * te[10];\r\n\t\t\treturn Math.sqrt(Math.max(scaleXSq, scaleYSq, scaleZSq));\r\n\t\t};\r\n\r\n\t\t_proto.makeTranslation = function makeTranslation(x, y, z) {\r\n\t\t\tthis.set(1, 0, 0, x, 0, 1, 0, y, 0, 0, 1, z, 0, 0, 0, 1);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.makeRotationX = function makeRotationX(theta) {\r\n\t\t\tvar c = Math.cos(theta),\r\n\t\t\t\t\ts = Math.sin(theta);\r\n\t\t\tthis.set(1, 0, 0, 0, 0, c, -s, 0, 0, s, c, 0, 0, 0, 0, 1);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.makeRotationY = function makeRotationY(theta) {\r\n\t\t\tvar c = Math.cos(theta),\r\n\t\t\t\t\ts = Math.sin(theta);\r\n\t\t\tthis.set(c, 0, s, 0, 0, 1, 0, 0, -s, 0, c, 0, 0, 0, 0, 1);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.makeRotationZ = function makeRotationZ(theta) {\r\n\t\t\tvar c = Math.cos(theta),\r\n\t\t\t\t\ts = Math.sin(theta);\r\n\t\t\tthis.set(c, -s, 0, 0, s, c, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.makeRotationAxis = function makeRotationAxis(axis, angle) {\r\n\t\t\t// Based on http://www.gamedev.net/reference/articles/article1199.asp\r\n\t\t\tvar c = Math.cos(angle);\r\n\t\t\tvar s = Math.sin(angle);\r\n\t\t\tvar t = 1 - c;\r\n\t\t\tvar x = axis.x,\r\n\t\t\t\t\ty = axis.y,\r\n\t\t\t\t\tz = axis.z;\r\n\t\t\tvar tx = t * x,\r\n\t\t\t\t\tty = t * y;\r\n\t\t\tthis.set(tx * x + c, tx * y - s * z, tx * z + s * y, 0, tx * y + s * z, ty * y + c, ty * z - s * x, 0, tx * z - s * y, ty * z + s * x, t * z * z + c, 0, 0, 0, 0, 1);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.makeScale = function makeScale(x, y, z) {\r\n\t\t\tthis.set(x, 0, 0, 0, 0, y, 0, 0, 0, 0, z, 0, 0, 0, 0, 1);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.makeShear = function makeShear(x, y, z) {\r\n\t\t\tthis.set(1, y, z, 0, x, 1, z, 0, x, y, 1, 0, 0, 0, 0, 1);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.compose = function compose(position, quaternion, scale) {\r\n\t\t\tvar te = this.elements;\r\n\t\t\tvar x = quaternion._x,\r\n\t\t\t\t\ty = quaternion._y,\r\n\t\t\t\t\tz = quaternion._z,\r\n\t\t\t\t\tw = quaternion._w;\r\n\t\t\tvar x2 = x + x,\r\n\t\t\t\t\ty2 = y + y,\r\n\t\t\t\t\tz2 = z + z;\r\n\t\t\tvar xx = x * x2,\r\n\t\t\t\t\txy = x * y2,\r\n\t\t\t\t\txz = x * z2;\r\n\t\t\tvar yy = y * y2,\r\n\t\t\t\t\tyz = y * z2,\r\n\t\t\t\t\tzz = z * z2;\r\n\t\t\tvar wx = w * x2,\r\n\t\t\t\t\twy = w * y2,\r\n\t\t\t\t\twz = w * z2;\r\n\t\t\tvar sx = scale.x,\r\n\t\t\t\t\tsy = scale.y,\r\n\t\t\t\t\tsz = scale.z;\r\n\t\t\tte[0] = (1 - (yy + zz)) * sx;\r\n\t\t\tte[1] = (xy + wz) * sx;\r\n\t\t\tte[2] = (xz - wy) * sx;\r\n\t\t\tte[3] = 0;\r\n\t\t\tte[4] = (xy - wz) * sy;\r\n\t\t\tte[5] = (1 - (xx + zz)) * sy;\r\n\t\t\tte[6] = (yz + wx) * sy;\r\n\t\t\tte[7] = 0;\r\n\t\t\tte[8] = (xz + wy) * sz;\r\n\t\t\tte[9] = (yz - wx) * sz;\r\n\t\t\tte[10] = (1 - (xx + yy)) * sz;\r\n\t\t\tte[11] = 0;\r\n\t\t\tte[12] = position.x;\r\n\t\t\tte[13] = position.y;\r\n\t\t\tte[14] = position.z;\r\n\t\t\tte[15] = 1;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.decompose = function decompose(position, quaternion, scale) {\r\n\t\t\tvar te = this.elements;\r\n\r\n\t\t\tvar sx = _v1$1.set(te[0], te[1], te[2]).length();\r\n\r\n\t\t\tvar sy = _v1$1.set(te[4], te[5], te[6]).length();\r\n\r\n\t\t\tvar sz = _v1$1.set(te[8], te[9], te[10]).length(); // if determine is negative, we need to invert one scale\r\n\r\n\r\n\t\t\tvar det = this.determinant();\r\n\t\t\tif (det < 0) sx = -sx;\r\n\t\t\tposition.x = te[12];\r\n\t\t\tposition.y = te[13];\r\n\t\t\tposition.z = te[14]; // scale the rotation part\r\n\r\n\t\t\t_m1.copy(this);\r\n\r\n\t\t\tvar invSX = 1 / sx;\r\n\t\t\tvar invSY = 1 / sy;\r\n\t\t\tvar invSZ = 1 / sz;\r\n\t\t\t_m1.elements[0] *= invSX;\r\n\t\t\t_m1.elements[1] *= invSX;\r\n\t\t\t_m1.elements[2] *= invSX;\r\n\t\t\t_m1.elements[4] *= invSY;\r\n\t\t\t_m1.elements[5] *= invSY;\r\n\t\t\t_m1.elements[6] *= invSY;\r\n\t\t\t_m1.elements[8] *= invSZ;\r\n\t\t\t_m1.elements[9] *= invSZ;\r\n\t\t\t_m1.elements[10] *= invSZ;\r\n\t\t\tquaternion.setFromRotationMatrix(_m1);\r\n\t\t\tscale.x = sx;\r\n\t\t\tscale.y = sy;\r\n\t\t\tscale.z = sz;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.makePerspective = function makePerspective(left, right, top, bottom, near, far) {\r\n\t\t\tif (far === undefined) {\r\n\t\t\t\tconsole.warn('THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.');\r\n\t\t\t}\r\n\r\n\t\t\tvar te = this.elements;\r\n\t\t\tvar x = 2 * near / (right - left);\r\n\t\t\tvar y = 2 * near / (top - bottom);\r\n\t\t\tvar a = (right + left) / (right - left);\r\n\t\t\tvar b = (top + bottom) / (top - bottom);\r\n\t\t\tvar c = -(far + near) / (far - near);\r\n\t\t\tvar d = -2 * far * near / (far - near);\r\n\t\t\tte[0] = x;\r\n\t\t\tte[4] = 0;\r\n\t\t\tte[8] = a;\r\n\t\t\tte[12] = 0;\r\n\t\t\tte[1] = 0;\r\n\t\t\tte[5] = y;\r\n\t\t\tte[9] = b;\r\n\t\t\tte[13] = 0;\r\n\t\t\tte[2] = 0;\r\n\t\t\tte[6] = 0;\r\n\t\t\tte[10] = c;\r\n\t\t\tte[14] = d;\r\n\t\t\tte[3] = 0;\r\n\t\t\tte[7] = 0;\r\n\t\t\tte[11] = -1;\r\n\t\t\tte[15] = 0;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.makeOrthographic = function makeOrthographic(left, right, top, bottom, near, far) {\r\n\t\t\tvar te = this.elements;\r\n\t\t\tvar w = 1.0 / (right - left);\r\n\t\t\tvar h = 1.0 / (top - bottom);\r\n\t\t\tvar p = 1.0 / (far - near);\r\n\t\t\tvar x = (right + left) * w;\r\n\t\t\tvar y = (top + bottom) * h;\r\n\t\t\tvar z = (far + near) * p;\r\n\t\t\tte[0] = 2 * w;\r\n\t\t\tte[4] = 0;\r\n\t\t\tte[8] = 0;\r\n\t\t\tte[12] = -x;\r\n\t\t\tte[1] = 0;\r\n\t\t\tte[5] = 2 * h;\r\n\t\t\tte[9] = 0;\r\n\t\t\tte[13] = -y;\r\n\t\t\tte[2] = 0;\r\n\t\t\tte[6] = 0;\r\n\t\t\tte[10] = -2 * p;\r\n\t\t\tte[14] = -z;\r\n\t\t\tte[3] = 0;\r\n\t\t\tte[7] = 0;\r\n\t\t\tte[11] = 0;\r\n\t\t\tte[15] = 1;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.equals = function equals(matrix) {\r\n\t\t\tvar te = this.elements;\r\n\t\t\tvar me = matrix.elements;\r\n\r\n\t\t\tfor (var i = 0; i < 16; i++) {\r\n\t\t\t\tif (te[i] !== me[i]) return false;\r\n\t\t\t}\r\n\r\n\t\t\treturn true;\r\n\t\t};\r\n\r\n\t\t_proto.fromArray = function fromArray(array, offset) {\r\n\t\t\tif (offset === void 0) {\r\n\t\t\t\toffset = 0;\r\n\t\t\t}\r\n\r\n\t\t\tfor (var i = 0; i < 16; i++) {\r\n\t\t\t\tthis.elements[i] = array[i + offset];\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.toArray = function toArray(array, offset) {\r\n\t\t\tif (array === void 0) {\r\n\t\t\t\tarray = [];\r\n\t\t\t}\r\n\r\n\t\t\tif (offset === void 0) {\r\n\t\t\t\toffset = 0;\r\n\t\t\t}\r\n\r\n\t\t\tvar te = this.elements;\r\n\t\t\tarray[offset] = te[0];\r\n\t\t\tarray[offset + 1] = te[1];\r\n\t\t\tarray[offset + 2] = te[2];\r\n\t\t\tarray[offset + 3] = te[3];\r\n\t\t\tarray[offset + 4] = te[4];\r\n\t\t\tarray[offset + 5] = te[5];\r\n\t\t\tarray[offset + 6] = te[6];\r\n\t\t\tarray[offset + 7] = te[7];\r\n\t\t\tarray[offset + 8] = te[8];\r\n\t\t\tarray[offset + 9] = te[9];\r\n\t\t\tarray[offset + 10] = te[10];\r\n\t\t\tarray[offset + 11] = te[11];\r\n\t\t\tarray[offset + 12] = te[12];\r\n\t\t\tarray[offset + 13] = te[13];\r\n\t\t\tarray[offset + 14] = te[14];\r\n\t\t\tarray[offset + 15] = te[15];\r\n\t\t\treturn array;\r\n\t\t};\r\n\r\n\t\treturn Matrix4;\r\n\t}();\r\n\r\n\tvar _v1$1 = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _m1 = /*@__PURE__*/new Matrix4();\r\n\r\n\tvar _zero = /*@__PURE__*/new Vector3(0, 0, 0);\r\n\r\n\tvar _one = /*@__PURE__*/new Vector3(1, 1, 1);\r\n\r\n\tvar _x = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _y = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _z = /*@__PURE__*/new Vector3();\r\n\r\n\tvar Euler = /*#__PURE__*/function () {\r\n\t\tfunction Euler(x, y, z, order) {\r\n\t\t\tif (x === void 0) {\r\n\t\t\t\tx = 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (y === void 0) {\r\n\t\t\t\ty = 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (z === void 0) {\r\n\t\t\t\tz = 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (order === void 0) {\r\n\t\t\t\torder = Euler.DefaultOrder;\r\n\t\t\t}\r\n\r\n\t\t\tObject.defineProperty(this, 'isEuler', {\r\n\t\t\t\tvalue: true\r\n\t\t\t});\r\n\t\t\tthis._x = x;\r\n\t\t\tthis._y = y;\r\n\t\t\tthis._z = z;\r\n\t\t\tthis._order = order;\r\n\t\t}\r\n\r\n\t\tvar _proto = Euler.prototype;\r\n\r\n\t\t_proto.set = function set(x, y, z, order) {\r\n\t\t\tthis._x = x;\r\n\t\t\tthis._y = y;\r\n\t\t\tthis._z = z;\r\n\t\t\tthis._order = order || this._order;\r\n\r\n\t\t\tthis._onChangeCallback();\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.clone = function clone() {\r\n\t\t\treturn new this.constructor(this._x, this._y, this._z, this._order);\r\n\t\t};\r\n\r\n\t\t_proto.copy = function copy(euler) {\r\n\t\t\tthis._x = euler._x;\r\n\t\t\tthis._y = euler._y;\r\n\t\t\tthis._z = euler._z;\r\n\t\t\tthis._order = euler._order;\r\n\r\n\t\t\tthis._onChangeCallback();\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setFromRotationMatrix = function setFromRotationMatrix(m, order, update) {\r\n\t\t\tvar clamp = MathUtils.clamp; // assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\r\n\r\n\t\t\tvar te = m.elements;\r\n\t\t\tvar m11 = te[0],\r\n\t\t\t\t\tm12 = te[4],\r\n\t\t\t\t\tm13 = te[8];\r\n\t\t\tvar m21 = te[1],\r\n\t\t\t\t\tm22 = te[5],\r\n\t\t\t\t\tm23 = te[9];\r\n\t\t\tvar m31 = te[2],\r\n\t\t\t\t\tm32 = te[6],\r\n\t\t\t\t\tm33 = te[10];\r\n\t\t\torder = order || this._order;\r\n\r\n\t\t\tswitch (order) {\r\n\t\t\t\tcase 'XYZ':\r\n\t\t\t\t\tthis._y = Math.asin(clamp(m13, -1, 1));\r\n\r\n\t\t\t\t\tif (Math.abs(m13) < 0.9999999) {\r\n\t\t\t\t\t\tthis._x = Math.atan2(-m23, m33);\r\n\t\t\t\t\t\tthis._z = Math.atan2(-m12, m11);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis._x = Math.atan2(m32, m22);\r\n\t\t\t\t\t\tthis._z = 0;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'YXZ':\r\n\t\t\t\t\tthis._x = Math.asin(-clamp(m23, -1, 1));\r\n\r\n\t\t\t\t\tif (Math.abs(m23) < 0.9999999) {\r\n\t\t\t\t\t\tthis._y = Math.atan2(m13, m33);\r\n\t\t\t\t\t\tthis._z = Math.atan2(m21, m22);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis._y = Math.atan2(-m31, m11);\r\n\t\t\t\t\t\tthis._z = 0;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'ZXY':\r\n\t\t\t\t\tthis._x = Math.asin(clamp(m32, -1, 1));\r\n\r\n\t\t\t\t\tif (Math.abs(m32) < 0.9999999) {\r\n\t\t\t\t\t\tthis._y = Math.atan2(-m31, m33);\r\n\t\t\t\t\t\tthis._z = Math.atan2(-m12, m22);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis._y = 0;\r\n\t\t\t\t\t\tthis._z = Math.atan2(m21, m11);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'ZYX':\r\n\t\t\t\t\tthis._y = Math.asin(-clamp(m31, -1, 1));\r\n\r\n\t\t\t\t\tif (Math.abs(m31) < 0.9999999) {\r\n\t\t\t\t\t\tthis._x = Math.atan2(m32, m33);\r\n\t\t\t\t\t\tthis._z = Math.atan2(m21, m11);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis._x = 0;\r\n\t\t\t\t\t\tthis._z = Math.atan2(-m12, m22);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'YZX':\r\n\t\t\t\t\tthis._z = Math.asin(clamp(m21, -1, 1));\r\n\r\n\t\t\t\t\tif (Math.abs(m21) < 0.9999999) {\r\n\t\t\t\t\t\tthis._x = Math.atan2(-m23, m22);\r\n\t\t\t\t\t\tthis._y = Math.atan2(-m31, m11);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis._x = 0;\r\n\t\t\t\t\t\tthis._y = Math.atan2(m13, m33);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'XZY':\r\n\t\t\t\t\tthis._z = Math.asin(-clamp(m12, -1, 1));\r\n\r\n\t\t\t\t\tif (Math.abs(m12) < 0.9999999) {\r\n\t\t\t\t\t\tthis._x = Math.atan2(m32, m22);\r\n\t\t\t\t\t\tthis._y = Math.atan2(m13, m11);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis._x = Math.atan2(-m23, m33);\r\n\t\t\t\t\t\tthis._y = 0;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tconsole.warn('THREE.Euler: .setFromRotationMatrix() encountered an unknown order: ' + order);\r\n\t\t\t}\r\n\r\n\t\t\tthis._order = order;\r\n\t\t\tif (update !== false) this._onChangeCallback();\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setFromQuaternion = function setFromQuaternion(q, order, update) {\r\n\t\t\t_matrix.makeRotationFromQuaternion(q);\r\n\r\n\t\t\treturn this.setFromRotationMatrix(_matrix, order, update);\r\n\t\t};\r\n\r\n\t\t_proto.setFromVector3 = function setFromVector3(v, order) {\r\n\t\t\treturn this.set(v.x, v.y, v.z, order || this._order);\r\n\t\t};\r\n\r\n\t\t_proto.reorder = function reorder(newOrder) {\r\n\t\t\t// WARNING: this discards revolution information -bhouston\r\n\t\t\t_quaternion$1.setFromEuler(this);\r\n\r\n\t\t\treturn this.setFromQuaternion(_quaternion$1, newOrder);\r\n\t\t};\r\n\r\n\t\t_proto.equals = function equals(euler) {\r\n\t\t\treturn euler._x === this._x && euler._y === this._y && euler._z === this._z && euler._order === this._order;\r\n\t\t};\r\n\r\n\t\t_proto.fromArray = function fromArray(array) {\r\n\t\t\tthis._x = array[0];\r\n\t\t\tthis._y = array[1];\r\n\t\t\tthis._z = array[2];\r\n\t\t\tif (array[3] !== undefined) this._order = array[3];\r\n\r\n\t\t\tthis._onChangeCallback();\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.toArray = function toArray(array, offset) {\r\n\t\t\tif (array === void 0) {\r\n\t\t\t\tarray = [];\r\n\t\t\t}\r\n\r\n\t\t\tif (offset === void 0) {\r\n\t\t\t\toffset = 0;\r\n\t\t\t}\r\n\r\n\t\t\tarray[offset] = this._x;\r\n\t\t\tarray[offset + 1] = this._y;\r\n\t\t\tarray[offset + 2] = this._z;\r\n\t\t\tarray[offset + 3] = this._order;\r\n\t\t\treturn array;\r\n\t\t};\r\n\r\n\t\t_proto.toVector3 = function toVector3(optionalResult) {\r\n\t\t\tif (optionalResult) {\r\n\t\t\t\treturn optionalResult.set(this._x, this._y, this._z);\r\n\t\t\t} else {\r\n\t\t\t\treturn new Vector3(this._x, this._y, this._z);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t_proto._onChange = function _onChange(callback) {\r\n\t\t\tthis._onChangeCallback = callback;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto._onChangeCallback = function _onChangeCallback() {};\r\n\r\n\t\t_createClass(Euler, [{\r\n\t\t\tkey: \"x\",\r\n\t\t\tget: function get() {\r\n\t\t\t\treturn this._x;\r\n\t\t\t},\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tthis._x = value;\r\n\r\n\t\t\t\tthis._onChangeCallback();\r\n\t\t\t}\r\n\t\t}, {\r\n\t\t\tkey: \"y\",\r\n\t\t\tget: function get() {\r\n\t\t\t\treturn this._y;\r\n\t\t\t},\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tthis._y = value;\r\n\r\n\t\t\t\tthis._onChangeCallback();\r\n\t\t\t}\r\n\t\t}, {\r\n\t\t\tkey: \"z\",\r\n\t\t\tget: function get() {\r\n\t\t\t\treturn this._z;\r\n\t\t\t},\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tthis._z = value;\r\n\r\n\t\t\t\tthis._onChangeCallback();\r\n\t\t\t}\r\n\t\t}, {\r\n\t\t\tkey: \"order\",\r\n\t\t\tget: function get() {\r\n\t\t\t\treturn this._order;\r\n\t\t\t},\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tthis._order = value;\r\n\r\n\t\t\t\tthis._onChangeCallback();\r\n\t\t\t}\r\n\t\t}]);\r\n\r\n\t\treturn Euler;\r\n\t}();\r\n\r\n\tEuler.DefaultOrder = 'XYZ';\r\n\tEuler.RotationOrders = ['XYZ', 'YZX', 'ZXY', 'XZY', 'YXZ', 'ZYX'];\r\n\r\n\tvar _matrix = /*@__PURE__*/new Matrix4();\r\n\r\n\tvar _quaternion$1 = /*@__PURE__*/new Quaternion();\r\n\r\n\tvar Layers = /*#__PURE__*/function () {\r\n\t\tfunction Layers() {\r\n\t\t\tthis.mask = 1 | 0;\r\n\t\t}\r\n\r\n\t\tvar _proto = Layers.prototype;\r\n\r\n\t\t_proto.set = function set(channel) {\r\n\t\t\tthis.mask = 1 << channel | 0;\r\n\t\t};\r\n\r\n\t\t_proto.enable = function enable(channel) {\r\n\t\t\tthis.mask |= 1 << channel | 0;\r\n\t\t};\r\n\r\n\t\t_proto.enableAll = function enableAll() {\r\n\t\t\tthis.mask = 0xffffffff | 0;\r\n\t\t};\r\n\r\n\t\t_proto.toggle = function toggle(channel) {\r\n\t\t\tthis.mask ^= 1 << channel | 0;\r\n\t\t};\r\n\r\n\t\t_proto.disable = function disable(channel) {\r\n\t\t\tthis.mask &= ~(1 << channel | 0);\r\n\t\t};\r\n\r\n\t\t_proto.disableAll = function disableAll() {\r\n\t\t\tthis.mask = 0;\r\n\t\t};\r\n\r\n\t\t_proto.test = function test(layers) {\r\n\t\t\treturn (this.mask & layers.mask) !== 0;\r\n\t\t};\r\n\r\n\t\treturn Layers;\r\n\t}();\r\n\r\n\tvar _object3DId = 0;\r\n\r\n\tvar _v1$2 = new Vector3();\r\n\r\n\tvar _q1 = new Quaternion();\r\n\r\n\tvar _m1$1 = new Matrix4();\r\n\r\n\tvar _target = new Vector3();\r\n\r\n\tvar _position = new Vector3();\r\n\r\n\tvar _scale = new Vector3();\r\n\r\n\tvar _quaternion$2 = new Quaternion();\r\n\r\n\tvar _xAxis = new Vector3(1, 0, 0);\r\n\r\n\tvar _yAxis = new Vector3(0, 1, 0);\r\n\r\n\tvar _zAxis = new Vector3(0, 0, 1);\r\n\r\n\tvar _addedEvent = {\r\n\t\ttype: 'added'\r\n\t};\r\n\tvar _removedEvent = {\r\n\t\ttype: 'removed'\r\n\t};\r\n\r\n\tfunction Object3D() {\r\n\t\tObject.defineProperty(this, 'id', {\r\n\t\t\tvalue: _object3DId++\r\n\t\t});\r\n\t\tthis.uuid = MathUtils.generateUUID();\r\n\t\tthis.name = '';\r\n\t\tthis.type = 'Object3D';\r\n\t\tthis.parent = null;\r\n\t\tthis.children = [];\r\n\t\tthis.up = Object3D.DefaultUp.clone();\r\n\t\tvar position = new Vector3();\r\n\t\tvar rotation = new Euler();\r\n\t\tvar quaternion = new Quaternion();\r\n\t\tvar scale = new Vector3(1, 1, 1);\r\n\r\n\t\tfunction onRotationChange() {\r\n\t\t\tquaternion.setFromEuler(rotation, false);\r\n\t\t}\r\n\r\n\t\tfunction onQuaternionChange() {\r\n\t\t\trotation.setFromQuaternion(quaternion, undefined, false);\r\n\t\t}\r\n\r\n\t\trotation._onChange(onRotationChange);\r\n\r\n\t\tquaternion._onChange(onQuaternionChange);\r\n\r\n\t\tObject.defineProperties(this, {\r\n\t\t\tposition: {\r\n\t\t\t\tconfigurable: true,\r\n\t\t\t\tenumerable: true,\r\n\t\t\t\tvalue: position\r\n\t\t\t},\r\n\t\t\trotation: {\r\n\t\t\t\tconfigurable: true,\r\n\t\t\t\tenumerable: true,\r\n\t\t\t\tvalue: rotation\r\n\t\t\t},\r\n\t\t\tquaternion: {\r\n\t\t\t\tconfigurable: true,\r\n\t\t\t\tenumerable: true,\r\n\t\t\t\tvalue: quaternion\r\n\t\t\t},\r\n\t\t\tscale: {\r\n\t\t\t\tconfigurable: true,\r\n\t\t\t\tenumerable: true,\r\n\t\t\t\tvalue: scale\r\n\t\t\t},\r\n\t\t\tmodelViewMatrix: {\r\n\t\t\t\tvalue: new Matrix4()\r\n\t\t\t},\r\n\t\t\tnormalMatrix: {\r\n\t\t\t\tvalue: new Matrix3()\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.matrix = new Matrix4();\r\n\t\tthis.matrixWorld = new Matrix4();\r\n\t\tthis.matrixAutoUpdate = Object3D.DefaultMatrixAutoUpdate;\r\n\t\tthis.matrixWorldNeedsUpdate = false;\r\n\t\tthis.layers = new Layers();\r\n\t\tthis.visible = true;\r\n\t\tthis.castShadow = false;\r\n\t\tthis.receiveShadow = false;\r\n\t\tthis.frustumCulled = true;\r\n\t\tthis.renderOrder = 0;\r\n\t\tthis.animations = [];\r\n\t\tthis.userData = {};\r\n\t}\r\n\r\n\tObject3D.DefaultUp = new Vector3(0, 1, 0);\r\n\tObject3D.DefaultMatrixAutoUpdate = true;\r\n\tObject3D.prototype = Object.assign(Object.create(EventDispatcher.prototype), {\r\n\t\tconstructor: Object3D,\r\n\t\tisObject3D: true,\r\n\t\tonBeforeRender: function onBeforeRender() {},\r\n\t\tonAfterRender: function onAfterRender() {},\r\n\t\tapplyMatrix4: function applyMatrix4(matrix) {\r\n\t\t\tif (this.matrixAutoUpdate) this.updateMatrix();\r\n\t\t\tthis.matrix.premultiply(matrix);\r\n\t\t\tthis.matrix.decompose(this.position, this.quaternion, this.scale);\r\n\t\t},\r\n\t\tapplyQuaternion: function applyQuaternion(q) {\r\n\t\t\tthis.quaternion.premultiply(q);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tsetRotationFromAxisAngle: function setRotationFromAxisAngle(axis, angle) {\r\n\t\t\t// assumes axis is normalized\r\n\t\t\tthis.quaternion.setFromAxisAngle(axis, angle);\r\n\t\t},\r\n\t\tsetRotationFromEuler: function setRotationFromEuler(euler) {\r\n\t\t\tthis.quaternion.setFromEuler(euler, true);\r\n\t\t},\r\n\t\tsetRotationFromMatrix: function setRotationFromMatrix(m) {\r\n\t\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\r\n\t\t\tthis.quaternion.setFromRotationMatrix(m);\r\n\t\t},\r\n\t\tsetRotationFromQuaternion: function setRotationFromQuaternion(q) {\r\n\t\t\t// assumes q is normalized\r\n\t\t\tthis.quaternion.copy(q);\r\n\t\t},\r\n\t\trotateOnAxis: function rotateOnAxis(axis, angle) {\r\n\t\t\t// rotate object on axis in object space\r\n\t\t\t// axis is assumed to be normalized\r\n\t\t\t_q1.setFromAxisAngle(axis, angle);\r\n\r\n\t\t\tthis.quaternion.multiply(_q1);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\trotateOnWorldAxis: function rotateOnWorldAxis(axis, angle) {\r\n\t\t\t// rotate object on axis in world space\r\n\t\t\t// axis is assumed to be normalized\r\n\t\t\t// method assumes no rotated parent\r\n\t\t\t_q1.setFromAxisAngle(axis, angle);\r\n\r\n\t\t\tthis.quaternion.premultiply(_q1);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\trotateX: function rotateX(angle) {\r\n\t\t\treturn this.rotateOnAxis(_xAxis, angle);\r\n\t\t},\r\n\t\trotateY: function rotateY(angle) {\r\n\t\t\treturn this.rotateOnAxis(_yAxis, angle);\r\n\t\t},\r\n\t\trotateZ: function rotateZ(angle) {\r\n\t\t\treturn this.rotateOnAxis(_zAxis, angle);\r\n\t\t},\r\n\t\ttranslateOnAxis: function translateOnAxis(axis, distance) {\r\n\t\t\t// translate object by distance along axis in object space\r\n\t\t\t// axis is assumed to be normalized\r\n\t\t\t_v1$2.copy(axis).applyQuaternion(this.quaternion);\r\n\r\n\t\t\tthis.position.add(_v1$2.multiplyScalar(distance));\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\ttranslateX: function translateX(distance) {\r\n\t\t\treturn this.translateOnAxis(_xAxis, distance);\r\n\t\t},\r\n\t\ttranslateY: function translateY(distance) {\r\n\t\t\treturn this.translateOnAxis(_yAxis, distance);\r\n\t\t},\r\n\t\ttranslateZ: function translateZ(distance) {\r\n\t\t\treturn this.translateOnAxis(_zAxis, distance);\r\n\t\t},\r\n\t\tlocalToWorld: function localToWorld(vector) {\r\n\t\t\treturn vector.applyMatrix4(this.matrixWorld);\r\n\t\t},\r\n\t\tworldToLocal: function worldToLocal(vector) {\r\n\t\t\treturn vector.applyMatrix4(_m1$1.copy(this.matrixWorld).invert());\r\n\t\t},\r\n\t\tlookAt: function lookAt(x, y, z) {\r\n\t\t\t// This method does not support objects having non-uniformly-scaled parent(s)\r\n\t\t\tif (x.isVector3) {\r\n\t\t\t\t_target.copy(x);\r\n\t\t\t} else {\r\n\t\t\t\t_target.set(x, y, z);\r\n\t\t\t}\r\n\r\n\t\t\tvar parent = this.parent;\r\n\t\t\tthis.updateWorldMatrix(true, false);\r\n\r\n\t\t\t_position.setFromMatrixPosition(this.matrixWorld);\r\n\r\n\t\t\tif (this.isCamera || this.isLight) {\r\n\t\t\t\t_m1$1.lookAt(_position, _target, this.up);\r\n\t\t\t} else {\r\n\t\t\t\t_m1$1.lookAt(_target, _position, this.up);\r\n\t\t\t}\r\n\r\n\t\t\tthis.quaternion.setFromRotationMatrix(_m1$1);\r\n\r\n\t\t\tif (parent) {\r\n\t\t\t\t_m1$1.extractRotation(parent.matrixWorld);\r\n\r\n\t\t\t\t_q1.setFromRotationMatrix(_m1$1);\r\n\r\n\t\t\t\tthis.quaternion.premultiply(_q1.invert());\r\n\t\t\t}\r\n\t\t},\r\n\t\tadd: function add(object) {\r\n\t\t\tif (arguments.length > 1) {\r\n\t\t\t\tfor (var i = 0; i < arguments.length; i++) {\r\n\t\t\t\t\tthis.add(arguments[i]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn this;\r\n\t\t\t}\r\n\r\n\t\t\tif (object === this) {\r\n\t\t\t\tconsole.error(\"THREE.Object3D.add: object can't be added as a child of itself.\", object);\r\n\t\t\t\treturn this;\r\n\t\t\t}\r\n\r\n\t\t\tif (object && object.isObject3D) {\r\n\t\t\t\tif (object.parent !== null) {\r\n\t\t\t\t\tobject.parent.remove(object);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tobject.parent = this;\r\n\t\t\t\tthis.children.push(object);\r\n\t\t\t\tobject.dispatchEvent(_addedEvent);\r\n\t\t\t} else {\r\n\t\t\t\tconsole.error(\"THREE.Object3D.add: object not an instance of THREE.Object3D.\", object);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tremove: function remove(object) {\r\n\t\t\tif (arguments.length > 1) {\r\n\t\t\t\tfor (var i = 0; i < arguments.length; i++) {\r\n\t\t\t\t\tthis.remove(arguments[i]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn this;\r\n\t\t\t}\r\n\r\n\t\t\tvar index = this.children.indexOf(object);\r\n\r\n\t\t\tif (index !== -1) {\r\n\t\t\t\tobject.parent = null;\r\n\t\t\t\tthis.children.splice(index, 1);\r\n\t\t\t\tobject.dispatchEvent(_removedEvent);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tclear: function clear() {\r\n\t\t\tfor (var i = 0; i < this.children.length; i++) {\r\n\t\t\t\tvar object = this.children[i];\r\n\t\t\t\tobject.parent = null;\r\n\t\t\t\tobject.dispatchEvent(_removedEvent);\r\n\t\t\t}\r\n\r\n\t\t\tthis.children.length = 0;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tattach: function attach(object) {\r\n\t\t\t// adds object as a child of this, while maintaining the object's world transform\r\n\t\t\tthis.updateWorldMatrix(true, false);\r\n\r\n\t\t\t_m1$1.copy(this.matrixWorld).invert();\r\n\r\n\t\t\tif (object.parent !== null) {\r\n\t\t\t\tobject.parent.updateWorldMatrix(true, false);\r\n\r\n\t\t\t\t_m1$1.multiply(object.parent.matrixWorld);\r\n\t\t\t}\r\n\r\n\t\t\tobject.applyMatrix4(_m1$1);\r\n\t\t\tobject.updateWorldMatrix(false, false);\r\n\t\t\tthis.add(object);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tgetObjectById: function getObjectById(id) {\r\n\t\t\treturn this.getObjectByProperty('id', id);\r\n\t\t},\r\n\t\tgetObjectByName: function getObjectByName(name) {\r\n\t\t\treturn this.getObjectByProperty('name', name);\r\n\t\t},\r\n\t\tgetObjectByProperty: function getObjectByProperty(name, value) {\r\n\t\t\tif (this[name] === value) return this;\r\n\r\n\t\t\tfor (var i = 0, l = this.children.length; i < l; i++) {\r\n\t\t\t\tvar child = this.children[i];\r\n\t\t\t\tvar object = child.getObjectByProperty(name, value);\r\n\r\n\t\t\t\tif (object !== undefined) {\r\n\t\t\t\t\treturn object;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn undefined;\r\n\t\t},\r\n\t\tgetWorldPosition: function getWorldPosition(target) {\r\n\t\t\tif (target === undefined) {\r\n\t\t\t\tconsole.warn('THREE.Object3D: .getWorldPosition() target is now required');\r\n\t\t\t\ttarget = new Vector3();\r\n\t\t\t}\r\n\r\n\t\t\tthis.updateWorldMatrix(true, false);\r\n\t\t\treturn target.setFromMatrixPosition(this.matrixWorld);\r\n\t\t},\r\n\t\tgetWorldQuaternion: function getWorldQuaternion(target) {\r\n\t\t\tif (target === undefined) {\r\n\t\t\t\tconsole.warn('THREE.Object3D: .getWorldQuaternion() target is now required');\r\n\t\t\t\ttarget = new Quaternion();\r\n\t\t\t}\r\n\r\n\t\t\tthis.updateWorldMatrix(true, false);\r\n\t\t\tthis.matrixWorld.decompose(_position, target, _scale);\r\n\t\t\treturn target;\r\n\t\t},\r\n\t\tgetWorldScale: function getWorldScale(target) {\r\n\t\t\tif (target === undefined) {\r\n\t\t\t\tconsole.warn('THREE.Object3D: .getWorldScale() target is now required');\r\n\t\t\t\ttarget = new Vector3();\r\n\t\t\t}\r\n\r\n\t\t\tthis.updateWorldMatrix(true, false);\r\n\t\t\tthis.matrixWorld.decompose(_position, _quaternion$2, target);\r\n\t\t\treturn target;\r\n\t\t},\r\n\t\tgetWorldDirection: function getWorldDirection(target) {\r\n\t\t\tif (target === undefined) {\r\n\t\t\t\tconsole.warn('THREE.Object3D: .getWorldDirection() target is now required');\r\n\t\t\t\ttarget = new Vector3();\r\n\t\t\t}\r\n\r\n\t\t\tthis.updateWorldMatrix(true, false);\r\n\t\t\tvar e = this.matrixWorld.elements;\r\n\t\t\treturn target.set(e[8], e[9], e[10]).normalize();\r\n\t\t},\r\n\t\traycast: function raycast() {},\r\n\t\ttraverse: function traverse(callback) {\r\n\t\t\tcallback(this);\r\n\t\t\tvar children = this.children;\r\n\r\n\t\t\tfor (var i = 0, l = children.length; i < l; i++) {\r\n\t\t\t\tchildren[i].traverse(callback);\r\n\t\t\t}\r\n\t\t},\r\n\t\ttraverseVisible: function traverseVisible(callback) {\r\n\t\t\tif (this.visible === false) return;\r\n\t\t\tcallback(this);\r\n\t\t\tvar children = this.children;\r\n\r\n\t\t\tfor (var i = 0, l = children.length; i < l; i++) {\r\n\t\t\t\tchildren[i].traverseVisible(callback);\r\n\t\t\t}\r\n\t\t},\r\n\t\ttraverseAncestors: function traverseAncestors(callback) {\r\n\t\t\tvar parent = this.parent;\r\n\r\n\t\t\tif (parent !== null) {\r\n\t\t\t\tcallback(parent);\r\n\t\t\t\tparent.traverseAncestors(callback);\r\n\t\t\t}\r\n\t\t},\r\n\t\tupdateMatrix: function updateMatrix() {\r\n\t\t\tthis.matrix.compose(this.position, this.quaternion, this.scale);\r\n\t\t\tthis.matrixWorldNeedsUpdate = true;\r\n\t\t},\r\n\t\tupdateMatrixWorld: function updateMatrixWorld(force) {\r\n\t\t\tif (this.matrixAutoUpdate) this.updateMatrix();\r\n\r\n\t\t\tif (this.matrixWorldNeedsUpdate || force) {\r\n\t\t\t\tif (this.parent === null) {\r\n\t\t\t\t\tthis.matrixWorld.copy(this.matrix);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.matrixWorld.multiplyMatrices(this.parent.matrixWorld, this.matrix);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.matrixWorldNeedsUpdate = false;\r\n\t\t\t\tforce = true;\r\n\t\t\t} // update children\r\n\r\n\r\n\t\t\tvar children = this.children;\r\n\r\n\t\t\tfor (var i = 0, l = children.length; i < l; i++) {\r\n\t\t\t\tchildren[i].updateMatrixWorld(force);\r\n\t\t\t}\r\n\t\t},\r\n\t\tupdateWorldMatrix: function updateWorldMatrix(updateParents, updateChildren) {\r\n\t\t\tvar parent = this.parent;\r\n\r\n\t\t\tif (updateParents === true && parent !== null) {\r\n\t\t\t\tparent.updateWorldMatrix(true, false);\r\n\t\t\t}\r\n\r\n\t\t\tif (this.matrixAutoUpdate) this.updateMatrix();\r\n\r\n\t\t\tif (this.parent === null) {\r\n\t\t\t\tthis.matrixWorld.copy(this.matrix);\r\n\t\t\t} else {\r\n\t\t\t\tthis.matrixWorld.multiplyMatrices(this.parent.matrixWorld, this.matrix);\r\n\t\t\t} // update children\r\n\r\n\r\n\t\t\tif (updateChildren === true) {\r\n\t\t\t\tvar children = this.children;\r\n\r\n\t\t\t\tfor (var i = 0, l = children.length; i < l; i++) {\r\n\t\t\t\t\tchildren[i].updateWorldMatrix(false, true);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\ttoJSON: function toJSON(meta) {\r\n\t\t\t// meta is a string when called from JSON.stringify\r\n\t\t\tvar isRootObject = meta === undefined || typeof meta === 'string';\r\n\t\t\tvar output = {}; // meta is a hash used to collect geometries, materials.\r\n\t\t\t// not providing it implies that this is the root object\r\n\t\t\t// being serialized.\r\n\r\n\t\t\tif (isRootObject) {\r\n\t\t\t\t// initialize meta obj\r\n\t\t\t\tmeta = {\r\n\t\t\t\t\tgeometries: {},\r\n\t\t\t\t\tmaterials: {},\r\n\t\t\t\t\ttextures: {},\r\n\t\t\t\t\timages: {},\r\n\t\t\t\t\tshapes: {},\r\n\t\t\t\t\tskeletons: {},\r\n\t\t\t\t\tanimations: {}\r\n\t\t\t\t};\r\n\t\t\t\toutput.metadata = {\r\n\t\t\t\t\tversion: 4.5,\r\n\t\t\t\t\ttype: 'Object',\r\n\t\t\t\t\tgenerator: 'Object3D.toJSON'\r\n\t\t\t\t};\r\n\t\t\t} // standard Object3D serialization\r\n\r\n\r\n\t\t\tvar object = {};\r\n\t\t\tobject.uuid = this.uuid;\r\n\t\t\tobject.type = this.type;\r\n\t\t\tif (this.name !== '') object.name = this.name;\r\n\t\t\tif (this.castShadow === true) object.castShadow = true;\r\n\t\t\tif (this.receiveShadow === true) object.receiveShadow = true;\r\n\t\t\tif (this.visible === false) object.visible = false;\r\n\t\t\tif (this.frustumCulled === false) object.frustumCulled = false;\r\n\t\t\tif (this.renderOrder !== 0) object.renderOrder = this.renderOrder;\r\n\t\t\tif (JSON.stringify(this.userData) !== '{}') object.userData = this.userData;\r\n\t\t\tobject.layers = this.layers.mask;\r\n\t\t\tobject.matrix = this.matrix.toArray();\r\n\t\t\tif (this.matrixAutoUpdate === false) object.matrixAutoUpdate = false; // object specific properties\r\n\r\n\t\t\tif (this.isInstancedMesh) {\r\n\t\t\t\tobject.type = 'InstancedMesh';\r\n\t\t\t\tobject.count = this.count;\r\n\t\t\t\tobject.instanceMatrix = this.instanceMatrix.toJSON();\r\n\t\t\t} //\r\n\r\n\r\n\t\t\tfunction serialize(library, element) {\r\n\t\t\t\tif (library[element.uuid] === undefined) {\r\n\t\t\t\t\tlibrary[element.uuid] = element.toJSON(meta);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn element.uuid;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.isMesh || this.isLine || this.isPoints) {\r\n\t\t\t\tobject.geometry = serialize(meta.geometries, this.geometry);\r\n\t\t\t\tvar parameters = this.geometry.parameters;\r\n\r\n\t\t\t\tif (parameters !== undefined && parameters.shapes !== undefined) {\r\n\t\t\t\t\tvar shapes = parameters.shapes;\r\n\r\n\t\t\t\t\tif (Array.isArray(shapes)) {\r\n\t\t\t\t\t\tfor (var i = 0, l = shapes.length; i < l; i++) {\r\n\t\t\t\t\t\t\tvar shape = shapes[i];\r\n\t\t\t\t\t\t\tserialize(meta.shapes, shape);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tserialize(meta.shapes, shapes);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (this.isSkinnedMesh) {\r\n\t\t\t\tobject.bindMode = this.bindMode;\r\n\t\t\t\tobject.bindMatrix = this.bindMatrix.toArray();\r\n\r\n\t\t\t\tif (this.skeleton !== undefined) {\r\n\t\t\t\t\tserialize(meta.skeletons, this.skeleton);\r\n\t\t\t\t\tobject.skeleton = this.skeleton.uuid;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (this.material !== undefined) {\r\n\t\t\t\tif (Array.isArray(this.material)) {\r\n\t\t\t\t\tvar uuids = [];\r\n\r\n\t\t\t\t\tfor (var _i = 0, _l = this.material.length; _i < _l; _i++) {\r\n\t\t\t\t\t\tuuids.push(serialize(meta.materials, this.material[_i]));\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tobject.material = uuids;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tobject.material = serialize(meta.materials, this.material);\r\n\t\t\t\t}\r\n\t\t\t} //\r\n\r\n\r\n\t\t\tif (this.children.length > 0) {\r\n\t\t\t\tobject.children = [];\r\n\r\n\t\t\t\tfor (var _i2 = 0; _i2 < this.children.length; _i2++) {\r\n\t\t\t\t\tobject.children.push(this.children[_i2].toJSON(meta).object);\r\n\t\t\t\t}\r\n\t\t\t} //\r\n\r\n\r\n\t\t\tif (this.animations.length > 0) {\r\n\t\t\t\tobject.animations = [];\r\n\r\n\t\t\t\tfor (var _i3 = 0; _i3 < this.animations.length; _i3++) {\r\n\t\t\t\t\tvar animation = this.animations[_i3];\r\n\t\t\t\t\tobject.animations.push(serialize(meta.animations, animation));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (isRootObject) {\r\n\t\t\t\tvar geometries = extractFromCache(meta.geometries);\r\n\t\t\t\tvar materials = extractFromCache(meta.materials);\r\n\t\t\t\tvar textures = extractFromCache(meta.textures);\r\n\t\t\t\tvar images = extractFromCache(meta.images);\r\n\r\n\t\t\t\tvar _shapes = extractFromCache(meta.shapes);\r\n\r\n\t\t\t\tvar skeletons = extractFromCache(meta.skeletons);\r\n\t\t\t\tvar animations = extractFromCache(meta.animations);\r\n\t\t\t\tif (geometries.length > 0) output.geometries = geometries;\r\n\t\t\t\tif (materials.length > 0) output.materials = materials;\r\n\t\t\t\tif (textures.length > 0) output.textures = textures;\r\n\t\t\t\tif (images.length > 0) output.images = images;\r\n\t\t\t\tif (_shapes.length > 0) output.shapes = _shapes;\r\n\t\t\t\tif (skeletons.length > 0) output.skeletons = skeletons;\r\n\t\t\t\tif (animations.length > 0) output.animations = animations;\r\n\t\t\t}\r\n\r\n\t\t\toutput.object = object;\r\n\t\t\treturn output; // extract data from the cache hash\r\n\t\t\t// remove metadata on each item\r\n\t\t\t// and return as array\r\n\r\n\t\t\tfunction extractFromCache(cache) {\r\n\t\t\t\tvar values = [];\r\n\r\n\t\t\t\tfor (var key in cache) {\r\n\t\t\t\t\tvar data = cache[key];\r\n\t\t\t\t\tdelete data.metadata;\r\n\t\t\t\t\tvalues.push(data);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn values;\r\n\t\t\t}\r\n\t\t},\r\n\t\tclone: function clone(recursive) {\r\n\t\t\treturn new this.constructor().copy(this, recursive);\r\n\t\t},\r\n\t\tcopy: function copy(source, recursive) {\r\n\t\t\tif (recursive === void 0) {\r\n\t\t\t\trecursive = true;\r\n\t\t\t}\r\n\r\n\t\t\tthis.name = source.name;\r\n\t\t\tthis.up.copy(source.up);\r\n\t\t\tthis.position.copy(source.position);\r\n\t\t\tthis.rotation.order = source.rotation.order;\r\n\t\t\tthis.quaternion.copy(source.quaternion);\r\n\t\t\tthis.scale.copy(source.scale);\r\n\t\t\tthis.matrix.copy(source.matrix);\r\n\t\t\tthis.matrixWorld.copy(source.matrixWorld);\r\n\t\t\tthis.matrixAutoUpdate = source.matrixAutoUpdate;\r\n\t\t\tthis.matrixWorldNeedsUpdate = source.matrixWorldNeedsUpdate;\r\n\t\t\tthis.layers.mask = source.layers.mask;\r\n\t\t\tthis.visible = source.visible;\r\n\t\t\tthis.castShadow = source.castShadow;\r\n\t\t\tthis.receiveShadow = source.receiveShadow;\r\n\t\t\tthis.frustumCulled = source.frustumCulled;\r\n\t\t\tthis.renderOrder = source.renderOrder;\r\n\t\t\tthis.userData = JSON.parse(JSON.stringify(source.userData));\r\n\r\n\t\t\tif (recursive === true) {\r\n\t\t\t\tfor (var i = 0; i < source.children.length; i++) {\r\n\t\t\t\t\tvar child = source.children[i];\r\n\t\t\t\t\tthis.add(child.clone());\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t}\r\n\t});\r\n\r\n\tvar _vector1 = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _vector2 = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _normalMatrix = /*@__PURE__*/new Matrix3();\r\n\r\n\tvar Plane = /*#__PURE__*/function () {\r\n\t\tfunction Plane(normal, constant) {\r\n\t\t\tObject.defineProperty(this, 'isPlane', {\r\n\t\t\t\tvalue: true\r\n\t\t\t}); // normal is assumed to be normalized\r\n\r\n\t\t\tthis.normal = normal !== undefined ? normal : new Vector3(1, 0, 0);\r\n\t\t\tthis.constant = constant !== undefined ? constant : 0;\r\n\t\t}\r\n\r\n\t\tvar _proto = Plane.prototype;\r\n\r\n\t\t_proto.set = function set(normal, constant) {\r\n\t\t\tthis.normal.copy(normal);\r\n\t\t\tthis.constant = constant;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setComponents = function setComponents(x, y, z, w) {\r\n\t\t\tthis.normal.set(x, y, z);\r\n\t\t\tthis.constant = w;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setFromNormalAndCoplanarPoint = function setFromNormalAndCoplanarPoint(normal, point) {\r\n\t\t\tthis.normal.copy(normal);\r\n\t\t\tthis.constant = -point.dot(this.normal);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setFromCoplanarPoints = function setFromCoplanarPoints(a, b, c) {\r\n\t\t\tvar normal = _vector1.subVectors(c, b).cross(_vector2.subVectors(a, b)).normalize(); // Q: should an error be thrown if normal is zero (e.g. degenerate plane)?\r\n\r\n\r\n\t\t\tthis.setFromNormalAndCoplanarPoint(normal, a);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.clone = function clone() {\r\n\t\t\treturn new this.constructor().copy(this);\r\n\t\t};\r\n\r\n\t\t_proto.copy = function copy(plane) {\r\n\t\t\tthis.normal.copy(plane.normal);\r\n\t\t\tthis.constant = plane.constant;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.normalize = function normalize() {\r\n\t\t\t// Note: will lead to a divide by zero if the plane is invalid.\r\n\t\t\tvar inverseNormalLength = 1.0 / this.normal.length();\r\n\t\t\tthis.normal.multiplyScalar(inverseNormalLength);\r\n\t\t\tthis.constant *= inverseNormalLength;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.negate = function negate() {\r\n\t\t\tthis.constant *= -1;\r\n\t\t\tthis.normal.negate();\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.distanceToPoint = function distanceToPoint(point) {\r\n\t\t\treturn this.normal.dot(point) + this.constant;\r\n\t\t};\r\n\r\n\t\t_proto.distanceToSphere = function distanceToSphere(sphere) {\r\n\t\t\treturn this.distanceToPoint(sphere.center) - sphere.radius;\r\n\t\t};\r\n\r\n\t\t_proto.projectPoint = function projectPoint(point, target) {\r\n\t\t\tif (target === undefined) {\r\n\t\t\t\tconsole.warn('THREE.Plane: .projectPoint() target is now required');\r\n\t\t\t\ttarget = new Vector3();\r\n\t\t\t}\r\n\r\n\t\t\treturn target.copy(this.normal).multiplyScalar(-this.distanceToPoint(point)).add(point);\r\n\t\t};\r\n\r\n\t\t_proto.intersectLine = function intersectLine(line, target) {\r\n\t\t\tif (target === undefined) {\r\n\t\t\t\tconsole.warn('THREE.Plane: .intersectLine() target is now required');\r\n\t\t\t\ttarget = new Vector3();\r\n\t\t\t}\r\n\r\n\t\t\tvar direction = line.delta(_vector1);\r\n\t\t\tvar denominator = this.normal.dot(direction);\r\n\r\n\t\t\tif (denominator === 0) {\r\n\t\t\t\t// line is coplanar, return origin\r\n\t\t\t\tif (this.distanceToPoint(line.start) === 0) {\r\n\t\t\t\t\treturn target.copy(line.start);\r\n\t\t\t\t} // Unsure if this is the correct method to handle this case.\r\n\r\n\r\n\t\t\t\treturn undefined;\r\n\t\t\t}\r\n\r\n\t\t\tvar t = -(line.start.dot(this.normal) + this.constant) / denominator;\r\n\r\n\t\t\tif (t < 0 || t > 1) {\r\n\t\t\t\treturn undefined;\r\n\t\t\t}\r\n\r\n\t\t\treturn target.copy(direction).multiplyScalar(t).add(line.start);\r\n\t\t};\r\n\r\n\t\t_proto.intersectsLine = function intersectsLine(line) {\r\n\t\t\t// Note: this tests if a line intersects the plane, not whether it (or its end-points) are coplanar with it.\r\n\t\t\tvar startSign = this.distanceToPoint(line.start);\r\n\t\t\tvar endSign = this.distanceToPoint(line.end);\r\n\t\t\treturn startSign < 0 && endSign > 0 || endSign < 0 && startSign > 0;\r\n\t\t};\r\n\r\n\t\t_proto.intersectsBox = function intersectsBox(box) {\r\n\t\t\treturn box.intersectsPlane(this);\r\n\t\t};\r\n\r\n\t\t_proto.intersectsSphere = function intersectsSphere(sphere) {\r\n\t\t\treturn sphere.intersectsPlane(this);\r\n\t\t};\r\n\r\n\t\t_proto.coplanarPoint = function coplanarPoint(target) {\r\n\t\t\tif (target === undefined) {\r\n\t\t\t\tconsole.warn('THREE.Plane: .coplanarPoint() target is now required');\r\n\t\t\t\ttarget = new Vector3();\r\n\t\t\t}\r\n\r\n\t\t\treturn target.copy(this.normal).multiplyScalar(-this.constant);\r\n\t\t};\r\n\r\n\t\t_proto.applyMatrix4 = function applyMatrix4(matrix, optionalNormalMatrix) {\r\n\t\t\tvar normalMatrix = optionalNormalMatrix || _normalMatrix.getNormalMatrix(matrix);\r\n\r\n\t\t\tvar referencePoint = this.coplanarPoint(_vector1).applyMatrix4(matrix);\r\n\t\t\tvar normal = this.normal.applyMatrix3(normalMatrix).normalize();\r\n\t\t\tthis.constant = -referencePoint.dot(normal);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.translate = function translate(offset) {\r\n\t\t\tthis.constant -= offset.dot(this.normal);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.equals = function equals(plane) {\r\n\t\t\treturn plane.normal.equals(this.normal) && plane.constant === this.constant;\r\n\t\t};\r\n\r\n\t\treturn Plane;\r\n\t}();\r\n\r\n\tvar _v0$1 = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _v1$3 = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _v2$1 = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _v3 = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _vab = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _vac = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _vbc = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _vap = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _vbp = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _vcp = /*@__PURE__*/new Vector3();\r\n\r\n\tvar Triangle = /*#__PURE__*/function () {\r\n\t\tfunction Triangle(a, b, c) {\r\n\t\t\tthis.a = a !== undefined ? a : new Vector3();\r\n\t\t\tthis.b = b !== undefined ? b : new Vector3();\r\n\t\t\tthis.c = c !== undefined ? c : new Vector3();\r\n\t\t}\r\n\r\n\t\tTriangle.getNormal = function getNormal(a, b, c, target) {\r\n\t\t\tif (target === undefined) {\r\n\t\t\t\tconsole.warn('THREE.Triangle: .getNormal() target is now required');\r\n\t\t\t\ttarget = new Vector3();\r\n\t\t\t}\r\n\r\n\t\t\ttarget.subVectors(c, b);\r\n\r\n\t\t\t_v0$1.subVectors(a, b);\r\n\r\n\t\t\ttarget.cross(_v0$1);\r\n\t\t\tvar targetLengthSq = target.lengthSq();\r\n\r\n\t\t\tif (targetLengthSq > 0) {\r\n\t\t\t\treturn target.multiplyScalar(1 / Math.sqrt(targetLengthSq));\r\n\t\t\t}\r\n\r\n\t\t\treturn target.set(0, 0, 0);\r\n\t\t} // static/instance method to calculate barycentric coordinates\r\n\t\t// based on: http://www.blackpawn.com/texts/pointinpoly/default.html\r\n\t\t;\r\n\r\n\t\tTriangle.getBarycoord = function getBarycoord(point, a, b, c, target) {\r\n\t\t\t_v0$1.subVectors(c, a);\r\n\r\n\t\t\t_v1$3.subVectors(b, a);\r\n\r\n\t\t\t_v2$1.subVectors(point, a);\r\n\r\n\t\t\tvar dot00 = _v0$1.dot(_v0$1);\r\n\r\n\t\t\tvar dot01 = _v0$1.dot(_v1$3);\r\n\r\n\t\t\tvar dot02 = _v0$1.dot(_v2$1);\r\n\r\n\t\t\tvar dot11 = _v1$3.dot(_v1$3);\r\n\r\n\t\t\tvar dot12 = _v1$3.dot(_v2$1);\r\n\r\n\t\t\tvar denom = dot00 * dot11 - dot01 * dot01;\r\n\r\n\t\t\tif (target === undefined) {\r\n\t\t\t\tconsole.warn('THREE.Triangle: .getBarycoord() target is now required');\r\n\t\t\t\ttarget = new Vector3();\r\n\t\t\t} // collinear or singular triangle\r\n\r\n\r\n\t\t\tif (denom === 0) {\r\n\t\t\t\t// arbitrary location outside of triangle?\r\n\t\t\t\t// not sure if this is the best idea, maybe should be returning undefined\r\n\t\t\t\treturn target.set(-2, -1, -1);\r\n\t\t\t}\r\n\r\n\t\t\tvar invDenom = 1 / denom;\r\n\t\t\tvar u = (dot11 * dot02 - dot01 * dot12) * invDenom;\r\n\t\t\tvar v = (dot00 * dot12 - dot01 * dot02) * invDenom; // barycentric coordinates must always sum to 1\r\n\r\n\t\t\treturn target.set(1 - u - v, v, u);\r\n\t\t};\r\n\r\n\t\tTriangle.containsPoint = function containsPoint(point, a, b, c) {\r\n\t\t\tthis.getBarycoord(point, a, b, c, _v3);\r\n\t\t\treturn _v3.x >= 0 && _v3.y >= 0 && _v3.x + _v3.y <= 1;\r\n\t\t};\r\n\r\n\t\tTriangle.getUV = function getUV(point, p1, p2, p3, uv1, uv2, uv3, target) {\r\n\t\t\tthis.getBarycoord(point, p1, p2, p3, _v3);\r\n\t\t\ttarget.set(0, 0);\r\n\t\t\ttarget.addScaledVector(uv1, _v3.x);\r\n\t\t\ttarget.addScaledVector(uv2, _v3.y);\r\n\t\t\ttarget.addScaledVector(uv3, _v3.z);\r\n\t\t\treturn target;\r\n\t\t};\r\n\r\n\t\tTriangle.isFrontFacing = function isFrontFacing(a, b, c, direction) {\r\n\t\t\t_v0$1.subVectors(c, b);\r\n\r\n\t\t\t_v1$3.subVectors(a, b); // strictly front facing\r\n\r\n\r\n\t\t\treturn _v0$1.cross(_v1$3).dot(direction) < 0 ? true : false;\r\n\t\t};\r\n\r\n\t\tvar _proto = Triangle.prototype;\r\n\r\n\t\t_proto.set = function set(a, b, c) {\r\n\t\t\tthis.a.copy(a);\r\n\t\t\tthis.b.copy(b);\r\n\t\t\tthis.c.copy(c);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setFromPointsAndIndices = function setFromPointsAndIndices(points, i0, i1, i2) {\r\n\t\t\tthis.a.copy(points[i0]);\r\n\t\t\tthis.b.copy(points[i1]);\r\n\t\t\tthis.c.copy(points[i2]);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.clone = function clone() {\r\n\t\t\treturn new this.constructor().copy(this);\r\n\t\t};\r\n\r\n\t\t_proto.copy = function copy(triangle) {\r\n\t\t\tthis.a.copy(triangle.a);\r\n\t\t\tthis.b.copy(triangle.b);\r\n\t\t\tthis.c.copy(triangle.c);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.getArea = function getArea() {\r\n\t\t\t_v0$1.subVectors(this.c, this.b);\r\n\r\n\t\t\t_v1$3.subVectors(this.a, this.b);\r\n\r\n\t\t\treturn _v0$1.cross(_v1$3).length() * 0.5;\r\n\t\t};\r\n\r\n\t\t_proto.getMidpoint = function getMidpoint(target) {\r\n\t\t\tif (target === undefined) {\r\n\t\t\t\tconsole.warn('THREE.Triangle: .getMidpoint() target is now required');\r\n\t\t\t\ttarget = new Vector3();\r\n\t\t\t}\r\n\r\n\t\t\treturn target.addVectors(this.a, this.b).add(this.c).multiplyScalar(1 / 3);\r\n\t\t};\r\n\r\n\t\t_proto.getNormal = function getNormal(target) {\r\n\t\t\treturn Triangle.getNormal(this.a, this.b, this.c, target);\r\n\t\t};\r\n\r\n\t\t_proto.getPlane = function getPlane(target) {\r\n\t\t\tif (target === undefined) {\r\n\t\t\t\tconsole.warn('THREE.Triangle: .getPlane() target is now required');\r\n\t\t\t\ttarget = new Plane();\r\n\t\t\t}\r\n\r\n\t\t\treturn target.setFromCoplanarPoints(this.a, this.b, this.c);\r\n\t\t};\r\n\r\n\t\t_proto.getBarycoord = function getBarycoord(point, target) {\r\n\t\t\treturn Triangle.getBarycoord(point, this.a, this.b, this.c, target);\r\n\t\t};\r\n\r\n\t\t_proto.getUV = function getUV(point, uv1, uv2, uv3, target) {\r\n\t\t\treturn Triangle.getUV(point, this.a, this.b, this.c, uv1, uv2, uv3, target);\r\n\t\t};\r\n\r\n\t\t_proto.containsPoint = function containsPoint(point) {\r\n\t\t\treturn Triangle.containsPoint(point, this.a, this.b, this.c);\r\n\t\t};\r\n\r\n\t\t_proto.isFrontFacing = function isFrontFacing(direction) {\r\n\t\t\treturn Triangle.isFrontFacing(this.a, this.b, this.c, direction);\r\n\t\t};\r\n\r\n\t\t_proto.intersectsBox = function intersectsBox(box) {\r\n\t\t\treturn box.intersectsTriangle(this);\r\n\t\t};\r\n\r\n\t\t_proto.closestPointToPoint = function closestPointToPoint(p, target) {\r\n\t\t\tif (target === undefined) {\r\n\t\t\t\tconsole.warn('THREE.Triangle: .closestPointToPoint() target is now required');\r\n\t\t\t\ttarget = new Vector3();\r\n\t\t\t}\r\n\r\n\t\t\tvar a = this.a,\r\n\t\t\t\t\tb = this.b,\r\n\t\t\t\t\tc = this.c;\r\n\t\t\tvar v, w; // algorithm thanks to Real-Time Collision Detection by Christer Ericson,\r\n\t\t\t// published by Morgan Kaufmann Publishers, (c) 2005 Elsevier Inc.,\r\n\t\t\t// under the accompanying license; see chapter 5.1.5 for detailed explanation.\r\n\t\t\t// basically, we're distinguishing which of the voronoi regions of the triangle\r\n\t\t\t// the point lies in with the minimum amount of redundant computation.\r\n\r\n\t\t\t_vab.subVectors(b, a);\r\n\r\n\t\t\t_vac.subVectors(c, a);\r\n\r\n\t\t\t_vap.subVectors(p, a);\r\n\r\n\t\t\tvar d1 = _vab.dot(_vap);\r\n\r\n\t\t\tvar d2 = _vac.dot(_vap);\r\n\r\n\t\t\tif (d1 <= 0 && d2 <= 0) {\r\n\t\t\t\t// vertex region of A; barycentric coords (1, 0, 0)\r\n\t\t\t\treturn target.copy(a);\r\n\t\t\t}\r\n\r\n\t\t\t_vbp.subVectors(p, b);\r\n\r\n\t\t\tvar d3 = _vab.dot(_vbp);\r\n\r\n\t\t\tvar d4 = _vac.dot(_vbp);\r\n\r\n\t\t\tif (d3 >= 0 && d4 <= d3) {\r\n\t\t\t\t// vertex region of B; barycentric coords (0, 1, 0)\r\n\t\t\t\treturn target.copy(b);\r\n\t\t\t}\r\n\r\n\t\t\tvar vc = d1 * d4 - d3 * d2;\r\n\r\n\t\t\tif (vc <= 0 && d1 >= 0 && d3 <= 0) {\r\n\t\t\t\tv = d1 / (d1 - d3); // edge region of AB; barycentric coords (1-v, v, 0)\r\n\r\n\t\t\t\treturn target.copy(a).addScaledVector(_vab, v);\r\n\t\t\t}\r\n\r\n\t\t\t_vcp.subVectors(p, c);\r\n\r\n\t\t\tvar d5 = _vab.dot(_vcp);\r\n\r\n\t\t\tvar d6 = _vac.dot(_vcp);\r\n\r\n\t\t\tif (d6 >= 0 && d5 <= d6) {\r\n\t\t\t\t// vertex region of C; barycentric coords (0, 0, 1)\r\n\t\t\t\treturn target.copy(c);\r\n\t\t\t}\r\n\r\n\t\t\tvar vb = d5 * d2 - d1 * d6;\r\n\r\n\t\t\tif (vb <= 0 && d2 >= 0 && d6 <= 0) {\r\n\t\t\t\tw = d2 / (d2 - d6); // edge region of AC; barycentric coords (1-w, 0, w)\r\n\r\n\t\t\t\treturn target.copy(a).addScaledVector(_vac, w);\r\n\t\t\t}\r\n\r\n\t\t\tvar va = d3 * d6 - d5 * d4;\r\n\r\n\t\t\tif (va <= 0 && d4 - d3 >= 0 && d5 - d6 >= 0) {\r\n\t\t\t\t_vbc.subVectors(c, b);\r\n\r\n\t\t\t\tw = (d4 - d3) / (d4 - d3 + (d5 - d6)); // edge region of BC; barycentric coords (0, 1-w, w)\r\n\r\n\t\t\t\treturn target.copy(b).addScaledVector(_vbc, w); // edge region of BC\r\n\t\t\t} // face region\r\n\r\n\r\n\t\t\tvar denom = 1 / (va + vb + vc); // u = va * denom\r\n\r\n\t\t\tv = vb * denom;\r\n\t\t\tw = vc * denom;\r\n\t\t\treturn target.copy(a).addScaledVector(_vab, v).addScaledVector(_vac, w);\r\n\t\t};\r\n\r\n\t\t_proto.equals = function equals(triangle) {\r\n\t\t\treturn triangle.a.equals(this.a) && triangle.b.equals(this.b) && triangle.c.equals(this.c);\r\n\t\t};\r\n\r\n\t\treturn Triangle;\r\n\t}();\r\n\r\n\tvar _colorKeywords = {\r\n\t\t'aliceblue': 0xF0F8FF,\r\n\t\t'antiquewhite': 0xFAEBD7,\r\n\t\t'aqua': 0x00FFFF,\r\n\t\t'aquamarine': 0x7FFFD4,\r\n\t\t'azure': 0xF0FFFF,\r\n\t\t'beige': 0xF5F5DC,\r\n\t\t'bisque': 0xFFE4C4,\r\n\t\t'black': 0x000000,\r\n\t\t'blanchedalmond': 0xFFEBCD,\r\n\t\t'blue': 0x0000FF,\r\n\t\t'blueviolet': 0x8A2BE2,\r\n\t\t'brown': 0xA52A2A,\r\n\t\t'burlywood': 0xDEB887,\r\n\t\t'cadetblue': 0x5F9EA0,\r\n\t\t'chartreuse': 0x7FFF00,\r\n\t\t'chocolate': 0xD2691E,\r\n\t\t'coral': 0xFF7F50,\r\n\t\t'cornflowerblue': 0x6495ED,\r\n\t\t'cornsilk': 0xFFF8DC,\r\n\t\t'crimson': 0xDC143C,\r\n\t\t'cyan': 0x00FFFF,\r\n\t\t'darkblue': 0x00008B,\r\n\t\t'darkcyan': 0x008B8B,\r\n\t\t'darkgoldenrod': 0xB8860B,\r\n\t\t'darkgray': 0xA9A9A9,\r\n\t\t'darkgreen': 0x006400,\r\n\t\t'darkgrey': 0xA9A9A9,\r\n\t\t'darkkhaki': 0xBDB76B,\r\n\t\t'darkmagenta': 0x8B008B,\r\n\t\t'darkolivegreen': 0x556B2F,\r\n\t\t'darkorange': 0xFF8C00,\r\n\t\t'darkorchid': 0x9932CC,\r\n\t\t'darkred': 0x8B0000,\r\n\t\t'darksalmon': 0xE9967A,\r\n\t\t'darkseagreen': 0x8FBC8F,\r\n\t\t'darkslateblue': 0x483D8B,\r\n\t\t'darkslategray': 0x2F4F4F,\r\n\t\t'darkslategrey': 0x2F4F4F,\r\n\t\t'darkturquoise': 0x00CED1,\r\n\t\t'darkviolet': 0x9400D3,\r\n\t\t'deeppink': 0xFF1493,\r\n\t\t'deepskyblue': 0x00BFFF,\r\n\t\t'dimgray': 0x696969,\r\n\t\t'dimgrey': 0x696969,\r\n\t\t'dodgerblue': 0x1E90FF,\r\n\t\t'firebrick': 0xB22222,\r\n\t\t'floralwhite': 0xFFFAF0,\r\n\t\t'forestgreen': 0x228B22,\r\n\t\t'fuchsia': 0xFF00FF,\r\n\t\t'gainsboro': 0xDCDCDC,\r\n\t\t'ghostwhite': 0xF8F8FF,\r\n\t\t'gold': 0xFFD700,\r\n\t\t'goldenrod': 0xDAA520,\r\n\t\t'gray': 0x808080,\r\n\t\t'green': 0x008000,\r\n\t\t'greenyellow': 0xADFF2F,\r\n\t\t'grey': 0x808080,\r\n\t\t'honeydew': 0xF0FFF0,\r\n\t\t'hotpink': 0xFF69B4,\r\n\t\t'indianred': 0xCD5C5C,\r\n\t\t'indigo': 0x4B0082,\r\n\t\t'ivory': 0xFFFFF0,\r\n\t\t'khaki': 0xF0E68C,\r\n\t\t'lavender': 0xE6E6FA,\r\n\t\t'lavenderblush': 0xFFF0F5,\r\n\t\t'lawngreen': 0x7CFC00,\r\n\t\t'lemonchiffon': 0xFFFACD,\r\n\t\t'lightblue': 0xADD8E6,\r\n\t\t'lightcoral': 0xF08080,\r\n\t\t'lightcyan': 0xE0FFFF,\r\n\t\t'lightgoldenrodyellow': 0xFAFAD2,\r\n\t\t'lightgray': 0xD3D3D3,\r\n\t\t'lightgreen': 0x90EE90,\r\n\t\t'lightgrey': 0xD3D3D3,\r\n\t\t'lightpink': 0xFFB6C1,\r\n\t\t'lightsalmon': 0xFFA07A,\r\n\t\t'lightseagreen': 0x20B2AA,\r\n\t\t'lightskyblue': 0x87CEFA,\r\n\t\t'lightslategray': 0x778899,\r\n\t\t'lightslategrey': 0x778899,\r\n\t\t'lightsteelblue': 0xB0C4DE,\r\n\t\t'lightyellow': 0xFFFFE0,\r\n\t\t'lime': 0x00FF00,\r\n\t\t'limegreen': 0x32CD32,\r\n\t\t'linen': 0xFAF0E6,\r\n\t\t'magenta': 0xFF00FF,\r\n\t\t'maroon': 0x800000,\r\n\t\t'mediumaquamarine': 0x66CDAA,\r\n\t\t'mediumblue': 0x0000CD,\r\n\t\t'mediumorchid': 0xBA55D3,\r\n\t\t'mediumpurple': 0x9370DB,\r\n\t\t'mediumseagreen': 0x3CB371,\r\n\t\t'mediumslateblue': 0x7B68EE,\r\n\t\t'mediumspringgreen': 0x00FA9A,\r\n\t\t'mediumturquoise': 0x48D1CC,\r\n\t\t'mediumvioletred': 0xC71585,\r\n\t\t'midnightblue': 0x191970,\r\n\t\t'mintcream': 0xF5FFFA,\r\n\t\t'mistyrose': 0xFFE4E1,\r\n\t\t'moccasin': 0xFFE4B5,\r\n\t\t'navajowhite': 0xFFDEAD,\r\n\t\t'navy': 0x000080,\r\n\t\t'oldlace': 0xFDF5E6,\r\n\t\t'olive': 0x808000,\r\n\t\t'olivedrab': 0x6B8E23,\r\n\t\t'orange': 0xFFA500,\r\n\t\t'orangered': 0xFF4500,\r\n\t\t'orchid': 0xDA70D6,\r\n\t\t'palegoldenrod': 0xEEE8AA,\r\n\t\t'palegreen': 0x98FB98,\r\n\t\t'paleturquoise': 0xAFEEEE,\r\n\t\t'palevioletred': 0xDB7093,\r\n\t\t'papayawhip': 0xFFEFD5,\r\n\t\t'peachpuff': 0xFFDAB9,\r\n\t\t'peru': 0xCD853F,\r\n\t\t'pink': 0xFFC0CB,\r\n\t\t'plum': 0xDDA0DD,\r\n\t\t'powderblue': 0xB0E0E6,\r\n\t\t'purple': 0x800080,\r\n\t\t'rebeccapurple': 0x663399,\r\n\t\t'red': 0xFF0000,\r\n\t\t'rosybrown': 0xBC8F8F,\r\n\t\t'royalblue': 0x4169E1,\r\n\t\t'saddlebrown': 0x8B4513,\r\n\t\t'salmon': 0xFA8072,\r\n\t\t'sandybrown': 0xF4A460,\r\n\t\t'seagreen': 0x2E8B57,\r\n\t\t'seashell': 0xFFF5EE,\r\n\t\t'sienna': 0xA0522D,\r\n\t\t'silver': 0xC0C0C0,\r\n\t\t'skyblue': 0x87CEEB,\r\n\t\t'slateblue': 0x6A5ACD,\r\n\t\t'slategray': 0x708090,\r\n\t\t'slategrey': 0x708090,\r\n\t\t'snow': 0xFFFAFA,\r\n\t\t'springgreen': 0x00FF7F,\r\n\t\t'steelblue': 0x4682B4,\r\n\t\t'tan': 0xD2B48C,\r\n\t\t'teal': 0x008080,\r\n\t\t'thistle': 0xD8BFD8,\r\n\t\t'tomato': 0xFF6347,\r\n\t\t'turquoise': 0x40E0D0,\r\n\t\t'violet': 0xEE82EE,\r\n\t\t'wheat': 0xF5DEB3,\r\n\t\t'white': 0xFFFFFF,\r\n\t\t'whitesmoke': 0xF5F5F5,\r\n\t\t'yellow': 0xFFFF00,\r\n\t\t'yellowgreen': 0x9ACD32\r\n\t};\r\n\tvar _hslA = {\r\n\t\th: 0,\r\n\t\ts: 0,\r\n\t\tl: 0\r\n\t};\r\n\tvar _hslB = {\r\n\t\th: 0,\r\n\t\ts: 0,\r\n\t\tl: 0\r\n\t};\r\n\r\n\tfunction hue2rgb(p, q, t) {\r\n\t\tif (t < 0) t += 1;\r\n\t\tif (t > 1) t -= 1;\r\n\t\tif (t < 1 / 6) return p + (q - p) * 6 * t;\r\n\t\tif (t < 1 / 2) return q;\r\n\t\tif (t < 2 / 3) return p + (q - p) * 6 * (2 / 3 - t);\r\n\t\treturn p;\r\n\t}\r\n\r\n\tfunction SRGBToLinear(c) {\r\n\t\treturn c < 0.04045 ? c * 0.0773993808 : Math.pow(c * 0.9478672986 + 0.0521327014, 2.4);\r\n\t}\r\n\r\n\tfunction LinearToSRGB(c) {\r\n\t\treturn c < 0.0031308 ? c * 12.92 : 1.055 * Math.pow(c, 0.41666) - 0.055;\r\n\t}\r\n\r\n\tvar Color = /*#__PURE__*/function () {\r\n\t\tfunction Color(r, g, b) {\r\n\t\t\tObject.defineProperty(this, 'isColor', {\r\n\t\t\t\tvalue: true\r\n\t\t\t});\r\n\r\n\t\t\tif (g === undefined && b === undefined) {\r\n\t\t\t\t// r is THREE.Color, hex or string\r\n\t\t\t\treturn this.set(r);\r\n\t\t\t}\r\n\r\n\t\t\treturn this.setRGB(r, g, b);\r\n\t\t}\r\n\r\n\t\tvar _proto = Color.prototype;\r\n\r\n\t\t_proto.set = function set(value) {\r\n\t\t\tif (value && value.isColor) {\r\n\t\t\t\tthis.copy(value);\r\n\t\t\t} else if (typeof value === 'number') {\r\n\t\t\t\tthis.setHex(value);\r\n\t\t\t} else if (typeof value === 'string') {\r\n\t\t\t\tthis.setStyle(value);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setScalar = function setScalar(scalar) {\r\n\t\t\tthis.r = scalar;\r\n\t\t\tthis.g = scalar;\r\n\t\t\tthis.b = scalar;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setHex = function setHex(hex) {\r\n\t\t\thex = Math.floor(hex);\r\n\t\t\tthis.r = (hex >> 16 & 255) / 255;\r\n\t\t\tthis.g = (hex >> 8 & 255) / 255;\r\n\t\t\tthis.b = (hex & 255) / 255;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setRGB = function setRGB(r, g, b) {\r\n\t\t\tthis.r = r;\r\n\t\t\tthis.g = g;\r\n\t\t\tthis.b = b;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setHSL = function setHSL(h, s, l) {\r\n\t\t\t// h,s,l ranges are in 0.0 - 1.0\r\n\t\t\th = MathUtils.euclideanModulo(h, 1);\r\n\t\t\ts = MathUtils.clamp(s, 0, 1);\r\n\t\t\tl = MathUtils.clamp(l, 0, 1);\r\n\r\n\t\t\tif (s === 0) {\r\n\t\t\t\tthis.r = this.g = this.b = l;\r\n\t\t\t} else {\r\n\t\t\t\tvar p = l <= 0.5 ? l * (1 + s) : l + s - l * s;\r\n\t\t\t\tvar q = 2 * l - p;\r\n\t\t\t\tthis.r = hue2rgb(q, p, h + 1 / 3);\r\n\t\t\t\tthis.g = hue2rgb(q, p, h);\r\n\t\t\t\tthis.b = hue2rgb(q, p, h - 1 / 3);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setStyle = function setStyle(style) {\r\n\t\t\tfunction handleAlpha(string) {\r\n\t\t\t\tif (string === undefined) return;\r\n\r\n\t\t\t\tif (parseFloat(string) < 1) {\r\n\t\t\t\t\tconsole.warn('THREE.Color: Alpha component of ' + style + ' will be ignored.');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar m;\r\n\r\n\t\t\tif (m = /^((?:rgb|hsl)a?)\\(\\s*([^\\)]*)\\)/.exec(style)) {\r\n\t\t\t\t// rgb / hsl\r\n\t\t\t\tvar color;\r\n\t\t\t\tvar name = m[1];\r\n\t\t\t\tvar components = m[2];\r\n\r\n\t\t\t\tswitch (name) {\r\n\t\t\t\t\tcase 'rgb':\r\n\t\t\t\t\tcase 'rgba':\r\n\t\t\t\t\t\tif (color = /^(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(,\\s*([0-9]*\\.?[0-9]+)\\s*)?$/.exec(components)) {\r\n\t\t\t\t\t\t\t// rgb(255,0,0) rgba(255,0,0,0.5)\r\n\t\t\t\t\t\t\tthis.r = Math.min(255, parseInt(color[1], 10)) / 255;\r\n\t\t\t\t\t\t\tthis.g = Math.min(255, parseInt(color[2], 10)) / 255;\r\n\t\t\t\t\t\t\tthis.b = Math.min(255, parseInt(color[3], 10)) / 255;\r\n\t\t\t\t\t\t\thandleAlpha(color[5]);\r\n\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (color = /^(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(,\\s*([0-9]*\\.?[0-9]+)\\s*)?$/.exec(components)) {\r\n\t\t\t\t\t\t\t// rgb(100%,0%,0%) rgba(100%,0%,0%,0.5)\r\n\t\t\t\t\t\t\tthis.r = Math.min(100, parseInt(color[1], 10)) / 100;\r\n\t\t\t\t\t\t\tthis.g = Math.min(100, parseInt(color[2], 10)) / 100;\r\n\t\t\t\t\t\t\tthis.b = Math.min(100, parseInt(color[3], 10)) / 100;\r\n\t\t\t\t\t\t\thandleAlpha(color[5]);\r\n\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase 'hsl':\r\n\t\t\t\t\tcase 'hsla':\r\n\t\t\t\t\t\tif (color = /^([0-9]*\\.?[0-9]+)\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(,\\s*([0-9]*\\.?[0-9]+)\\s*)?$/.exec(components)) {\r\n\t\t\t\t\t\t\t// hsl(120,50%,50%) hsla(120,50%,50%,0.5)\r\n\t\t\t\t\t\t\tvar h = parseFloat(color[1]) / 360;\r\n\t\t\t\t\t\t\tvar s = parseInt(color[2], 10) / 100;\r\n\t\t\t\t\t\t\tvar l = parseInt(color[3], 10) / 100;\r\n\t\t\t\t\t\t\thandleAlpha(color[5]);\r\n\t\t\t\t\t\t\treturn this.setHSL(h, s, l);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t} else if (m = /^\\#([A-Fa-f0-9]+)$/.exec(style)) {\r\n\t\t\t\t// hex color\r\n\t\t\t\tvar hex = m[1];\r\n\t\t\t\tvar size = hex.length;\r\n\r\n\t\t\t\tif (size === 3) {\r\n\t\t\t\t\t// #ff0\r\n\t\t\t\t\tthis.r = parseInt(hex.charAt(0) + hex.charAt(0), 16) / 255;\r\n\t\t\t\t\tthis.g = parseInt(hex.charAt(1) + hex.charAt(1), 16) / 255;\r\n\t\t\t\t\tthis.b = parseInt(hex.charAt(2) + hex.charAt(2), 16) / 255;\r\n\t\t\t\t\treturn this;\r\n\t\t\t\t} else if (size === 6) {\r\n\t\t\t\t\t// #ff0000\r\n\t\t\t\t\tthis.r = parseInt(hex.charAt(0) + hex.charAt(1), 16) / 255;\r\n\t\t\t\t\tthis.g = parseInt(hex.charAt(2) + hex.charAt(3), 16) / 255;\r\n\t\t\t\t\tthis.b = parseInt(hex.charAt(4) + hex.charAt(5), 16) / 255;\r\n\t\t\t\t\treturn this;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (style && style.length > 0) {\r\n\t\t\t\treturn this.setColorName(style);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setColorName = function setColorName(style) {\r\n\t\t\t// color keywords\r\n\t\t\tvar hex = _colorKeywords[style];\r\n\r\n\t\t\tif (hex !== undefined) {\r\n\t\t\t\t// red\r\n\t\t\t\tthis.setHex(hex);\r\n\t\t\t} else {\r\n\t\t\t\t// unknown color\r\n\t\t\t\tconsole.warn('THREE.Color: Unknown color ' + style);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.clone = function clone() {\r\n\t\t\treturn new this.constructor(this.r, this.g, this.b);\r\n\t\t};\r\n\r\n\t\t_proto.copy = function copy(color) {\r\n\t\t\tthis.r = color.r;\r\n\t\t\tthis.g = color.g;\r\n\t\t\tthis.b = color.b;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.copyGammaToLinear = function copyGammaToLinear(color, gammaFactor) {\r\n\t\t\tif (gammaFactor === void 0) {\r\n\t\t\t\tgammaFactor = 2.0;\r\n\t\t\t}\r\n\r\n\t\t\tthis.r = Math.pow(color.r, gammaFactor);\r\n\t\t\tthis.g = Math.pow(color.g, gammaFactor);\r\n\t\t\tthis.b = Math.pow(color.b, gammaFactor);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.copyLinearToGamma = function copyLinearToGamma(color, gammaFactor) {\r\n\t\t\tif (gammaFactor === void 0) {\r\n\t\t\t\tgammaFactor = 2.0;\r\n\t\t\t}\r\n\r\n\t\t\tvar safeInverse = gammaFactor > 0 ? 1.0 / gammaFactor : 1.0;\r\n\t\t\tthis.r = Math.pow(color.r, safeInverse);\r\n\t\t\tthis.g = Math.pow(color.g, safeInverse);\r\n\t\t\tthis.b = Math.pow(color.b, safeInverse);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.convertGammaToLinear = function convertGammaToLinear(gammaFactor) {\r\n\t\t\tthis.copyGammaToLinear(this, gammaFactor);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.convertLinearToGamma = function convertLinearToGamma(gammaFactor) {\r\n\t\t\tthis.copyLinearToGamma(this, gammaFactor);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.copySRGBToLinear = function copySRGBToLinear(color) {\r\n\t\t\tthis.r = SRGBToLinear(color.r);\r\n\t\t\tthis.g = SRGBToLinear(color.g);\r\n\t\t\tthis.b = SRGBToLinear(color.b);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.copyLinearToSRGB = function copyLinearToSRGB(color) {\r\n\t\t\tthis.r = LinearToSRGB(color.r);\r\n\t\t\tthis.g = LinearToSRGB(color.g);\r\n\t\t\tthis.b = LinearToSRGB(color.b);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.convertSRGBToLinear = function convertSRGBToLinear() {\r\n\t\t\tthis.copySRGBToLinear(this);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.convertLinearToSRGB = function convertLinearToSRGB() {\r\n\t\t\tthis.copyLinearToSRGB(this);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.getHex = function getHex() {\r\n\t\t\treturn this.r * 255 << 16 ^ this.g * 255 << 8 ^ this.b * 255 << 0;\r\n\t\t};\r\n\r\n\t\t_proto.getHexString = function getHexString() {\r\n\t\t\treturn ('000000' + this.getHex().toString(16)).slice(-6);\r\n\t\t};\r\n\r\n\t\t_proto.getHSL = function getHSL(target) {\r\n\t\t\t// h,s,l ranges are in 0.0 - 1.0\r\n\t\t\tif (target === undefined) {\r\n\t\t\t\tconsole.warn('THREE.Color: .getHSL() target is now required');\r\n\t\t\t\ttarget = {\r\n\t\t\t\t\th: 0,\r\n\t\t\t\t\ts: 0,\r\n\t\t\t\t\tl: 0\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tvar r = this.r,\r\n\t\t\t\t\tg = this.g,\r\n\t\t\t\t\tb = this.b;\r\n\t\t\tvar max = Math.max(r, g, b);\r\n\t\t\tvar min = Math.min(r, g, b);\r\n\t\t\tvar hue, saturation;\r\n\t\t\tvar lightness = (min + max) / 2.0;\r\n\r\n\t\t\tif (min === max) {\r\n\t\t\t\thue = 0;\r\n\t\t\t\tsaturation = 0;\r\n\t\t\t} else {\r\n\t\t\t\tvar delta = max - min;\r\n\t\t\t\tsaturation = lightness <= 0.5 ? delta / (max + min) : delta / (2 - max - min);\r\n\r\n\t\t\t\tswitch (max) {\r\n\t\t\t\t\tcase r:\r\n\t\t\t\t\t\thue = (g - b) / delta + (g < b ? 6 : 0);\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase g:\r\n\t\t\t\t\t\thue = (b - r) / delta + 2;\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase b:\r\n\t\t\t\t\t\thue = (r - g) / delta + 4;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\thue /= 6;\r\n\t\t\t}\r\n\r\n\t\t\ttarget.h = hue;\r\n\t\t\ttarget.s = saturation;\r\n\t\t\ttarget.l = lightness;\r\n\t\t\treturn target;\r\n\t\t};\r\n\r\n\t\t_proto.getStyle = function getStyle() {\r\n\t\t\treturn 'rgb(' + (this.r * 255 | 0) + ',' + (this.g * 255 | 0) + ',' + (this.b * 255 | 0) + ')';\r\n\t\t};\r\n\r\n\t\t_proto.offsetHSL = function offsetHSL(h, s, l) {\r\n\t\t\tthis.getHSL(_hslA);\r\n\t\t\t_hslA.h += h;\r\n\t\t\t_hslA.s += s;\r\n\t\t\t_hslA.l += l;\r\n\t\t\tthis.setHSL(_hslA.h, _hslA.s, _hslA.l);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.add = function add(color) {\r\n\t\t\tthis.r += color.r;\r\n\t\t\tthis.g += color.g;\r\n\t\t\tthis.b += color.b;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.addColors = function addColors(color1, color2) {\r\n\t\t\tthis.r = color1.r + color2.r;\r\n\t\t\tthis.g = color1.g + color2.g;\r\n\t\t\tthis.b = color1.b + color2.b;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.addScalar = function addScalar(s) {\r\n\t\t\tthis.r += s;\r\n\t\t\tthis.g += s;\r\n\t\t\tthis.b += s;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.sub = function sub(color) {\r\n\t\t\tthis.r = Math.max(0, this.r - color.r);\r\n\t\t\tthis.g = Math.max(0, this.g - color.g);\r\n\t\t\tthis.b = Math.max(0, this.b - color.b);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.multiply = function multiply(color) {\r\n\t\t\tthis.r *= color.r;\r\n\t\t\tthis.g *= color.g;\r\n\t\t\tthis.b *= color.b;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.multiplyScalar = function multiplyScalar(s) {\r\n\t\t\tthis.r *= s;\r\n\t\t\tthis.g *= s;\r\n\t\t\tthis.b *= s;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.lerp = function lerp(color, alpha) {\r\n\t\t\tthis.r += (color.r - this.r) * alpha;\r\n\t\t\tthis.g += (color.g - this.g) * alpha;\r\n\t\t\tthis.b += (color.b - this.b) * alpha;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.lerpHSL = function lerpHSL(color, alpha) {\r\n\t\t\tthis.getHSL(_hslA);\r\n\t\t\tcolor.getHSL(_hslB);\r\n\t\t\tvar h = MathUtils.lerp(_hslA.h, _hslB.h, alpha);\r\n\t\t\tvar s = MathUtils.lerp(_hslA.s, _hslB.s, alpha);\r\n\t\t\tvar l = MathUtils.lerp(_hslA.l, _hslB.l, alpha);\r\n\t\t\tthis.setHSL(h, s, l);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.equals = function equals(c) {\r\n\t\t\treturn c.r === this.r && c.g === this.g && c.b === this.b;\r\n\t\t};\r\n\r\n\t\t_proto.fromArray = function fromArray(array, offset) {\r\n\t\t\tif (offset === void 0) {\r\n\t\t\t\toffset = 0;\r\n\t\t\t}\r\n\r\n\t\t\tthis.r = array[offset];\r\n\t\t\tthis.g = array[offset + 1];\r\n\t\t\tthis.b = array[offset + 2];\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.toArray = function toArray(array, offset) {\r\n\t\t\tif (array === void 0) {\r\n\t\t\t\tarray = [];\r\n\t\t\t}\r\n\r\n\t\t\tif (offset === void 0) {\r\n\t\t\t\toffset = 0;\r\n\t\t\t}\r\n\r\n\t\t\tarray[offset] = this.r;\r\n\t\t\tarray[offset + 1] = this.g;\r\n\t\t\tarray[offset + 2] = this.b;\r\n\t\t\treturn array;\r\n\t\t};\r\n\r\n\t\t_proto.fromBufferAttribute = function fromBufferAttribute(attribute, index) {\r\n\t\t\tthis.r = attribute.getX(index);\r\n\t\t\tthis.g = attribute.getY(index);\r\n\t\t\tthis.b = attribute.getZ(index);\r\n\r\n\t\t\tif (attribute.normalized === true) {\r\n\t\t\t\t// assuming Uint8Array\r\n\t\t\t\tthis.r /= 255;\r\n\t\t\t\tthis.g /= 255;\r\n\t\t\t\tthis.b /= 255;\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.toJSON = function toJSON() {\r\n\t\t\treturn this.getHex();\r\n\t\t};\r\n\r\n\t\treturn Color;\r\n\t}();\r\n\r\n\tColor.NAMES = _colorKeywords;\r\n\tColor.prototype.r = 1;\r\n\tColor.prototype.g = 1;\r\n\tColor.prototype.b = 1;\r\n\r\n\tvar Face3 = /*#__PURE__*/function () {\r\n\t\tfunction Face3(a, b, c, normal, color, materialIndex) {\r\n\t\t\tif (materialIndex === void 0) {\r\n\t\t\t\tmaterialIndex = 0;\r\n\t\t\t}\r\n\r\n\t\t\tthis.a = a;\r\n\t\t\tthis.b = b;\r\n\t\t\tthis.c = c;\r\n\t\t\tthis.normal = normal && normal.isVector3 ? normal : new Vector3();\r\n\t\t\tthis.vertexNormals = Array.isArray(normal) ? normal : [];\r\n\t\t\tthis.color = color && color.isColor ? color : new Color();\r\n\t\t\tthis.vertexColors = Array.isArray(color) ? color : [];\r\n\t\t\tthis.materialIndex = materialIndex;\r\n\t\t}\r\n\r\n\t\tvar _proto = Face3.prototype;\r\n\r\n\t\t_proto.clone = function clone() {\r\n\t\t\treturn new this.constructor().copy(this);\r\n\t\t};\r\n\r\n\t\t_proto.copy = function copy(source) {\r\n\t\t\tthis.a = source.a;\r\n\t\t\tthis.b = source.b;\r\n\t\t\tthis.c = source.c;\r\n\t\t\tthis.normal.copy(source.normal);\r\n\t\t\tthis.color.copy(source.color);\r\n\t\t\tthis.materialIndex = source.materialIndex;\r\n\r\n\t\t\tfor (var i = 0, il = source.vertexNormals.length; i < il; i++) {\r\n\t\t\t\tthis.vertexNormals[i] = source.vertexNormals[i].clone();\r\n\t\t\t}\r\n\r\n\t\t\tfor (var _i = 0, _il = source.vertexColors.length; _i < _il; _i++) {\r\n\t\t\t\tthis.vertexColors[_i] = source.vertexColors[_i].clone();\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\treturn Face3;\r\n\t}();\r\n\r\n\tvar materialId = 0;\r\n\r\n\tfunction Material() {\r\n\t\tObject.defineProperty(this, 'id', {\r\n\t\t\tvalue: materialId++\r\n\t\t});\r\n\t\tthis.uuid = MathUtils.generateUUID();\r\n\t\tthis.name = '';\r\n\t\tthis.type = 'Material';\r\n\t\tthis.fog = true;\r\n\t\tthis.blending = NormalBlending;\r\n\t\tthis.side = FrontSide;\r\n\t\tthis.flatShading = false;\r\n\t\tthis.vertexColors = false;\r\n\t\tthis.opacity = 1;\r\n\t\tthis.transparent = false;\r\n\t\tthis.blendSrc = SrcAlphaFactor;\r\n\t\tthis.blendDst = OneMinusSrcAlphaFactor;\r\n\t\tthis.blendEquation = AddEquation;\r\n\t\tthis.blendSrcAlpha = null;\r\n\t\tthis.blendDstAlpha = null;\r\n\t\tthis.blendEquationAlpha = null;\r\n\t\tthis.depthFunc = LessEqualDepth;\r\n\t\tthis.depthTest = true;\r\n\t\tthis.depthWrite = true;\r\n\t\tthis.stencilWriteMask = 0xff;\r\n\t\tthis.stencilFunc = AlwaysStencilFunc;\r\n\t\tthis.stencilRef = 0;\r\n\t\tthis.stencilFuncMask = 0xff;\r\n\t\tthis.stencilFail = KeepStencilOp;\r\n\t\tthis.stencilZFail = KeepStencilOp;\r\n\t\tthis.stencilZPass = KeepStencilOp;\r\n\t\tthis.stencilWrite = false;\r\n\t\tthis.clippingPlanes = null;\r\n\t\tthis.clipIntersection = false;\r\n\t\tthis.clipShadows = false;\r\n\t\tthis.shadowSide = null;\r\n\t\tthis.colorWrite = true;\r\n\t\tthis.precision = null; // override the renderer's default precision for this material\r\n\r\n\t\tthis.polygonOffset = false;\r\n\t\tthis.polygonOffsetFactor = 0;\r\n\t\tthis.polygonOffsetUnits = 0;\r\n\t\tthis.dithering = false;\r\n\t\tthis.alphaTest = 0;\r\n\t\tthis.premultipliedAlpha = false;\r\n\t\tthis.visible = true;\r\n\t\tthis.toneMapped = true;\r\n\t\tthis.userData = {};\r\n\t\tthis.version = 0;\r\n\t}\r\n\r\n\tMaterial.prototype = Object.assign(Object.create(EventDispatcher.prototype), {\r\n\t\tconstructor: Material,\r\n\t\tisMaterial: true,\r\n\t\tonBeforeCompile: function onBeforeCompile()\r\n\t\t/* shaderobject, renderer */\r\n\t\t{},\r\n\t\tcustomProgramCacheKey: function customProgramCacheKey() {\r\n\t\t\treturn this.onBeforeCompile.toString();\r\n\t\t},\r\n\t\tsetValues: function setValues(values) {\r\n\t\t\tif (values === undefined) return;\r\n\r\n\t\t\tfor (var key in values) {\r\n\t\t\t\tvar newValue = values[key];\r\n\r\n\t\t\t\tif (newValue === undefined) {\r\n\t\t\t\t\tconsole.warn(\"THREE.Material: '\" + key + \"' parameter is undefined.\");\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t} // for backward compatability if shading is set in the constructor\r\n\r\n\r\n\t\t\t\tif (key === 'shading') {\r\n\t\t\t\t\tconsole.warn('THREE.' + this.type + ': .shading has been removed. Use the boolean .flatShading instead.');\r\n\t\t\t\t\tthis.flatShading = newValue === FlatShading ? true : false;\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar currentValue = this[key];\r\n\r\n\t\t\t\tif (currentValue === undefined) {\r\n\t\t\t\t\tconsole.warn(\"THREE.\" + this.type + \": '\" + key + \"' is not a property of this material.\");\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (currentValue && currentValue.isColor) {\r\n\t\t\t\t\tcurrentValue.set(newValue);\r\n\t\t\t\t} else if (currentValue && currentValue.isVector3 && newValue && newValue.isVector3) {\r\n\t\t\t\t\tcurrentValue.copy(newValue);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis[key] = newValue;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\ttoJSON: function toJSON(meta) {\r\n\t\t\tvar isRoot = meta === undefined || typeof meta === 'string';\r\n\r\n\t\t\tif (isRoot) {\r\n\t\t\t\tmeta = {\r\n\t\t\t\t\ttextures: {},\r\n\t\t\t\t\timages: {}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tvar data = {\r\n\t\t\t\tmetadata: {\r\n\t\t\t\t\tversion: 4.5,\r\n\t\t\t\t\ttype: 'Material',\r\n\t\t\t\t\tgenerator: 'Material.toJSON'\r\n\t\t\t\t}\r\n\t\t\t}; // standard Material serialization\r\n\r\n\t\t\tdata.uuid = this.uuid;\r\n\t\t\tdata.type = this.type;\r\n\t\t\tif (this.name !== '') data.name = this.name;\r\n\t\t\tif (this.color && this.color.isColor) data.color = this.color.getHex();\r\n\t\t\tif (this.roughness !== undefined) data.roughness = this.roughness;\r\n\t\t\tif (this.metalness !== undefined) data.metalness = this.metalness;\r\n\t\t\tif (this.sheen && this.sheen.isColor) data.sheen = this.sheen.getHex();\r\n\t\t\tif (this.emissive && this.emissive.isColor) data.emissive = this.emissive.getHex();\r\n\t\t\tif (this.emissiveIntensity && this.emissiveIntensity !== 1) data.emissiveIntensity = this.emissiveIntensity;\r\n\t\t\tif (this.specular && this.specular.isColor) data.specular = this.specular.getHex();\r\n\t\t\tif (this.shininess !== undefined) data.shininess = this.shininess;\r\n\t\t\tif (this.clearcoat !== undefined) data.clearcoat = this.clearcoat;\r\n\t\t\tif (this.clearcoatRoughness !== undefined) data.clearcoatRoughness = this.clearcoatRoughness;\r\n\r\n\t\t\tif (this.clearcoatMap && this.clearcoatMap.isTexture) {\r\n\t\t\t\tdata.clearcoatMap = this.clearcoatMap.toJSON(meta).uuid;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.clearcoatRoughnessMap && this.clearcoatRoughnessMap.isTexture) {\r\n\t\t\t\tdata.clearcoatRoughnessMap = this.clearcoatRoughnessMap.toJSON(meta).uuid;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.clearcoatNormalMap && this.clearcoatNormalMap.isTexture) {\r\n\t\t\t\tdata.clearcoatNormalMap = this.clearcoatNormalMap.toJSON(meta).uuid;\r\n\t\t\t\tdata.clearcoatNormalScale = this.clearcoatNormalScale.toArray();\r\n\t\t\t}\r\n\r\n\t\t\tif (this.map && this.map.isTexture) data.map = this.map.toJSON(meta).uuid;\r\n\t\t\tif (this.matcap && this.matcap.isTexture) data.matcap = this.matcap.toJSON(meta).uuid;\r\n\t\t\tif (this.alphaMap && this.alphaMap.isTexture) data.alphaMap = this.alphaMap.toJSON(meta).uuid;\r\n\t\t\tif (this.lightMap && this.lightMap.isTexture) data.lightMap = this.lightMap.toJSON(meta).uuid;\r\n\r\n\t\t\tif (this.aoMap && this.aoMap.isTexture) {\r\n\t\t\t\tdata.aoMap = this.aoMap.toJSON(meta).uuid;\r\n\t\t\t\tdata.aoMapIntensity = this.aoMapIntensity;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.bumpMap && this.bumpMap.isTexture) {\r\n\t\t\t\tdata.bumpMap = this.bumpMap.toJSON(meta).uuid;\r\n\t\t\t\tdata.bumpScale = this.bumpScale;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.normalMap && this.normalMap.isTexture) {\r\n\t\t\t\tdata.normalMap = this.normalMap.toJSON(meta).uuid;\r\n\t\t\t\tdata.normalMapType = this.normalMapType;\r\n\t\t\t\tdata.normalScale = this.normalScale.toArray();\r\n\t\t\t}\r\n\r\n\t\t\tif (this.displacementMap && this.displacementMap.isTexture) {\r\n\t\t\t\tdata.displacementMap = this.displacementMap.toJSON(meta).uuid;\r\n\t\t\t\tdata.displacementScale = this.displacementScale;\r\n\t\t\t\tdata.displacementBias = this.displacementBias;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.roughnessMap && this.roughnessMap.isTexture) data.roughnessMap = this.roughnessMap.toJSON(meta).uuid;\r\n\t\t\tif (this.metalnessMap && this.metalnessMap.isTexture) data.metalnessMap = this.metalnessMap.toJSON(meta).uuid;\r\n\t\t\tif (this.emissiveMap && this.emissiveMap.isTexture) data.emissiveMap = this.emissiveMap.toJSON(meta).uuid;\r\n\t\t\tif (this.specularMap && this.specularMap.isTexture) data.specularMap = this.specularMap.toJSON(meta).uuid;\r\n\r\n\t\t\tif (this.envMap && this.envMap.isTexture) {\r\n\t\t\t\tdata.envMap = this.envMap.toJSON(meta).uuid;\r\n\t\t\t\tdata.reflectivity = this.reflectivity; // Scale behind envMap\r\n\r\n\t\t\t\tdata.refractionRatio = this.refractionRatio;\r\n\t\t\t\tif (this.combine !== undefined) data.combine = this.combine;\r\n\t\t\t\tif (this.envMapIntensity !== undefined) data.envMapIntensity = this.envMapIntensity;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.gradientMap && this.gradientMap.isTexture) {\r\n\t\t\t\tdata.gradientMap = this.gradientMap.toJSON(meta).uuid;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.size !== undefined) data.size = this.size;\r\n\t\t\tif (this.sizeAttenuation !== undefined) data.sizeAttenuation = this.sizeAttenuation;\r\n\t\t\tif (this.blending !== NormalBlending) data.blending = this.blending;\r\n\t\t\tif (this.flatShading === true) data.flatShading = this.flatShading;\r\n\t\t\tif (this.side !== FrontSide) data.side = this.side;\r\n\t\t\tif (this.vertexColors) data.vertexColors = true;\r\n\t\t\tif (this.opacity < 1) data.opacity = this.opacity;\r\n\t\t\tif (this.transparent === true) data.transparent = this.transparent;\r\n\t\t\tdata.depthFunc = this.depthFunc;\r\n\t\t\tdata.depthTest = this.depthTest;\r\n\t\t\tdata.depthWrite = this.depthWrite;\r\n\t\t\tdata.stencilWrite = this.stencilWrite;\r\n\t\t\tdata.stencilWriteMask = this.stencilWriteMask;\r\n\t\t\tdata.stencilFunc = this.stencilFunc;\r\n\t\t\tdata.stencilRef = this.stencilRef;\r\n\t\t\tdata.stencilFuncMask = this.stencilFuncMask;\r\n\t\t\tdata.stencilFail = this.stencilFail;\r\n\t\t\tdata.stencilZFail = this.stencilZFail;\r\n\t\t\tdata.stencilZPass = this.stencilZPass; // rotation (SpriteMaterial)\r\n\r\n\t\t\tif (this.rotation && this.rotation !== 0) data.rotation = this.rotation;\r\n\t\t\tif (this.polygonOffset === true) data.polygonOffset = true;\r\n\t\t\tif (this.polygonOffsetFactor !== 0) data.polygonOffsetFactor = this.polygonOffsetFactor;\r\n\t\t\tif (this.polygonOffsetUnits !== 0) data.polygonOffsetUnits = this.polygonOffsetUnits;\r\n\t\t\tif (this.linewidth && this.linewidth !== 1) data.linewidth = this.linewidth;\r\n\t\t\tif (this.dashSize !== undefined) data.dashSize = this.dashSize;\r\n\t\t\tif (this.gapSize !== undefined) data.gapSize = this.gapSize;\r\n\t\t\tif (this.scale !== undefined) data.scale = this.scale;\r\n\t\t\tif (this.dithering === true) data.dithering = true;\r\n\t\t\tif (this.alphaTest > 0) data.alphaTest = this.alphaTest;\r\n\t\t\tif (this.premultipliedAlpha === true) data.premultipliedAlpha = this.premultipliedAlpha;\r\n\t\t\tif (this.wireframe === true) data.wireframe = this.wireframe;\r\n\t\t\tif (this.wireframeLinewidth > 1) data.wireframeLinewidth = this.wireframeLinewidth;\r\n\t\t\tif (this.wireframeLinecap !== 'round') data.wireframeLinecap = this.wireframeLinecap;\r\n\t\t\tif (this.wireframeLinejoin !== 'round') data.wireframeLinejoin = this.wireframeLinejoin;\r\n\t\t\tif (this.morphTargets === true) data.morphTargets = true;\r\n\t\t\tif (this.morphNormals === true) data.morphNormals = true;\r\n\t\t\tif (this.skinning === true) data.skinning = true;\r\n\t\t\tif (this.visible === false) data.visible = false;\r\n\t\t\tif (this.toneMapped === false) data.toneMapped = false;\r\n\t\t\tif (JSON.stringify(this.userData) !== '{}') data.userData = this.userData; // TODO: Copied from Object3D.toJSON\r\n\r\n\t\t\tfunction extractFromCache(cache) {\r\n\t\t\t\tvar values = [];\r\n\r\n\t\t\t\tfor (var key in cache) {\r\n\t\t\t\t\tvar _data = cache[key];\r\n\t\t\t\t\tdelete _data.metadata;\r\n\t\t\t\t\tvalues.push(_data);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn values;\r\n\t\t\t}\r\n\r\n\t\t\tif (isRoot) {\r\n\t\t\t\tvar textures = extractFromCache(meta.textures);\r\n\t\t\t\tvar images = extractFromCache(meta.images);\r\n\t\t\t\tif (textures.length > 0) data.textures = textures;\r\n\t\t\t\tif (images.length > 0) data.images = images;\r\n\t\t\t}\r\n\r\n\t\t\treturn data;\r\n\t\t},\r\n\t\tclone: function clone() {\r\n\t\t\treturn new this.constructor().copy(this);\r\n\t\t},\r\n\t\tcopy: function copy(source) {\r\n\t\t\tthis.name = source.name;\r\n\t\t\tthis.fog = source.fog;\r\n\t\t\tthis.blending = source.blending;\r\n\t\t\tthis.side = source.side;\r\n\t\t\tthis.flatShading = source.flatShading;\r\n\t\t\tthis.vertexColors = source.vertexColors;\r\n\t\t\tthis.opacity = source.opacity;\r\n\t\t\tthis.transparent = source.transparent;\r\n\t\t\tthis.blendSrc = source.blendSrc;\r\n\t\t\tthis.blendDst = source.blendDst;\r\n\t\t\tthis.blendEquation = source.blendEquation;\r\n\t\t\tthis.blendSrcAlpha = source.blendSrcAlpha;\r\n\t\t\tthis.blendDstAlpha = source.blendDstAlpha;\r\n\t\t\tthis.blendEquationAlpha = source.blendEquationAlpha;\r\n\t\t\tthis.depthFunc = source.depthFunc;\r\n\t\t\tthis.depthTest = source.depthTest;\r\n\t\t\tthis.depthWrite = source.depthWrite;\r\n\t\t\tthis.stencilWriteMask = source.stencilWriteMask;\r\n\t\t\tthis.stencilFunc = source.stencilFunc;\r\n\t\t\tthis.stencilRef = source.stencilRef;\r\n\t\t\tthis.stencilFuncMask = source.stencilFuncMask;\r\n\t\t\tthis.stencilFail = source.stencilFail;\r\n\t\t\tthis.stencilZFail = source.stencilZFail;\r\n\t\t\tthis.stencilZPass = source.stencilZPass;\r\n\t\t\tthis.stencilWrite = source.stencilWrite;\r\n\t\t\tvar srcPlanes = source.clippingPlanes;\r\n\t\t\tvar dstPlanes = null;\r\n\r\n\t\t\tif (srcPlanes !== null) {\r\n\t\t\t\tvar n = srcPlanes.length;\r\n\t\t\t\tdstPlanes = new Array(n);\r\n\r\n\t\t\t\tfor (var i = 0; i !== n; ++i) {\r\n\t\t\t\t\tdstPlanes[i] = srcPlanes[i].clone();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.clippingPlanes = dstPlanes;\r\n\t\t\tthis.clipIntersection = source.clipIntersection;\r\n\t\t\tthis.clipShadows = source.clipShadows;\r\n\t\t\tthis.shadowSide = source.shadowSide;\r\n\t\t\tthis.colorWrite = source.colorWrite;\r\n\t\t\tthis.precision = source.precision;\r\n\t\t\tthis.polygonOffset = source.polygonOffset;\r\n\t\t\tthis.polygonOffsetFactor = source.polygonOffsetFactor;\r\n\t\t\tthis.polygonOffsetUnits = source.polygonOffsetUnits;\r\n\t\t\tthis.dithering = source.dithering;\r\n\t\t\tthis.alphaTest = source.alphaTest;\r\n\t\t\tthis.premultipliedAlpha = source.premultipliedAlpha;\r\n\t\t\tthis.visible = source.visible;\r\n\t\t\tthis.toneMapped = source.toneMapped;\r\n\t\t\tthis.userData = JSON.parse(JSON.stringify(source.userData));\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tdispose: function dispose() {\r\n\t\t\tthis.dispatchEvent({\r\n\t\t\t\ttype: 'dispose'\r\n\t\t\t});\r\n\t\t}\r\n\t});\r\n\tObject.defineProperty(Material.prototype, 'needsUpdate', {\r\n\t\tset: function set(value) {\r\n\t\t\tif (value === true) this.version++;\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t * parameters = {\r\n\t *\tcolor: ,\r\n\t *\topacity: ,\r\n\t *\tmap: new THREE.Texture( ),\r\n\t *\r\n\t *\tlightMap: new THREE.Texture( ),\r\n\t *\tlightMapIntensity: \r\n\t *\r\n\t *\taoMap: new THREE.Texture( ),\r\n\t *\taoMapIntensity: \r\n\t *\r\n\t *\tspecularMap: new THREE.Texture( ),\r\n\t *\r\n\t *\talphaMap: new THREE.Texture( ),\r\n\t *\r\n\t *\tenvMap: new THREE.CubeTexture( [posx, negx, posy, negy, posz, negz] ),\r\n\t *\tcombine: THREE.Multiply,\r\n\t *\treflectivity: ,\r\n\t *\trefractionRatio: ,\r\n\t *\r\n\t *\tdepthTest: ,\r\n\t *\tdepthWrite: ,\r\n\t *\r\n\t *\twireframe: ,\r\n\t *\twireframeLinewidth: ,\r\n\t *\r\n\t *\tskinning: ,\r\n\t *\tmorphTargets: \r\n\t * }\r\n\t */\r\n\r\n\tfunction MeshBasicMaterial(parameters) {\r\n\t\tMaterial.call(this);\r\n\t\tthis.type = 'MeshBasicMaterial';\r\n\t\tthis.color = new Color(0xffffff); // emissive\r\n\r\n\t\tthis.map = null;\r\n\t\tthis.lightMap = null;\r\n\t\tthis.lightMapIntensity = 1.0;\r\n\t\tthis.aoMap = null;\r\n\t\tthis.aoMapIntensity = 1.0;\r\n\t\tthis.specularMap = null;\r\n\t\tthis.alphaMap = null;\r\n\t\tthis.envMap = null;\r\n\t\tthis.combine = MultiplyOperation;\r\n\t\tthis.reflectivity = 1;\r\n\t\tthis.refractionRatio = 0.98;\r\n\t\tthis.wireframe = false;\r\n\t\tthis.wireframeLinewidth = 1;\r\n\t\tthis.wireframeLinecap = 'round';\r\n\t\tthis.wireframeLinejoin = 'round';\r\n\t\tthis.skinning = false;\r\n\t\tthis.morphTargets = false;\r\n\t\tthis.setValues(parameters);\r\n\t}\r\n\r\n\tMeshBasicMaterial.prototype = Object.create(Material.prototype);\r\n\tMeshBasicMaterial.prototype.constructor = MeshBasicMaterial;\r\n\tMeshBasicMaterial.prototype.isMeshBasicMaterial = true;\r\n\r\n\tMeshBasicMaterial.prototype.copy = function (source) {\r\n\t\tMaterial.prototype.copy.call(this, source);\r\n\t\tthis.color.copy(source.color);\r\n\t\tthis.map = source.map;\r\n\t\tthis.lightMap = source.lightMap;\r\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\r\n\t\tthis.aoMap = source.aoMap;\r\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\r\n\t\tthis.specularMap = source.specularMap;\r\n\t\tthis.alphaMap = source.alphaMap;\r\n\t\tthis.envMap = source.envMap;\r\n\t\tthis.combine = source.combine;\r\n\t\tthis.reflectivity = source.reflectivity;\r\n\t\tthis.refractionRatio = source.refractionRatio;\r\n\t\tthis.wireframe = source.wireframe;\r\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\r\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\r\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\r\n\t\tthis.skinning = source.skinning;\r\n\t\tthis.morphTargets = source.morphTargets;\r\n\t\treturn this;\r\n\t};\r\n\r\n\tvar _vector$3 = new Vector3();\r\n\r\n\tvar _vector2$1 = new Vector2();\r\n\r\n\tfunction BufferAttribute(array, itemSize, normalized) {\r\n\t\tif (Array.isArray(array)) {\r\n\t\t\tthrow new TypeError('THREE.BufferAttribute: array should be a Typed Array.');\r\n\t\t}\r\n\r\n\t\tthis.name = '';\r\n\t\tthis.array = array;\r\n\t\tthis.itemSize = itemSize;\r\n\t\tthis.count = array !== undefined ? array.length / itemSize : 0;\r\n\t\tthis.normalized = normalized === true;\r\n\t\tthis.usage = StaticDrawUsage;\r\n\t\tthis.updateRange = {\r\n\t\t\toffset: 0,\r\n\t\t\tcount: -1\r\n\t\t};\r\n\t\tthis.version = 0;\r\n\t}\r\n\r\n\tObject.defineProperty(BufferAttribute.prototype, 'needsUpdate', {\r\n\t\tset: function set(value) {\r\n\t\t\tif (value === true) this.version++;\r\n\t\t}\r\n\t});\r\n\tObject.assign(BufferAttribute.prototype, {\r\n\t\tisBufferAttribute: true,\r\n\t\tonUploadCallback: function onUploadCallback() {},\r\n\t\tsetUsage: function setUsage(value) {\r\n\t\t\tthis.usage = value;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tcopy: function copy(source) {\r\n\t\t\tthis.name = source.name;\r\n\t\t\tthis.array = new source.array.constructor(source.array);\r\n\t\t\tthis.itemSize = source.itemSize;\r\n\t\t\tthis.count = source.count;\r\n\t\t\tthis.normalized = source.normalized;\r\n\t\t\tthis.usage = source.usage;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tcopyAt: function copyAt(index1, attribute, index2) {\r\n\t\t\tindex1 *= this.itemSize;\r\n\t\t\tindex2 *= attribute.itemSize;\r\n\r\n\t\t\tfor (var i = 0, l = this.itemSize; i < l; i++) {\r\n\t\t\t\tthis.array[index1 + i] = attribute.array[index2 + i];\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tcopyArray: function copyArray(array) {\r\n\t\t\tthis.array.set(array);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tcopyColorsArray: function copyColorsArray(colors) {\r\n\t\t\tvar array = this.array;\r\n\t\t\tvar offset = 0;\r\n\r\n\t\t\tfor (var i = 0, l = colors.length; i < l; i++) {\r\n\t\t\t\tvar color = colors[i];\r\n\r\n\t\t\t\tif (color === undefined) {\r\n\t\t\t\t\tconsole.warn('THREE.BufferAttribute.copyColorsArray(): color is undefined', i);\r\n\t\t\t\t\tcolor = new Color();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tarray[offset++] = color.r;\r\n\t\t\t\tarray[offset++] = color.g;\r\n\t\t\t\tarray[offset++] = color.b;\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tcopyVector2sArray: function copyVector2sArray(vectors) {\r\n\t\t\tvar array = this.array;\r\n\t\t\tvar offset = 0;\r\n\r\n\t\t\tfor (var i = 0, l = vectors.length; i < l; i++) {\r\n\t\t\t\tvar vector = vectors[i];\r\n\r\n\t\t\t\tif (vector === undefined) {\r\n\t\t\t\t\tconsole.warn('THREE.BufferAttribute.copyVector2sArray(): vector is undefined', i);\r\n\t\t\t\t\tvector = new Vector2();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tarray[offset++] = vector.x;\r\n\t\t\t\tarray[offset++] = vector.y;\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tcopyVector3sArray: function copyVector3sArray(vectors) {\r\n\t\t\tvar array = this.array;\r\n\t\t\tvar offset = 0;\r\n\r\n\t\t\tfor (var i = 0, l = vectors.length; i < l; i++) {\r\n\t\t\t\tvar vector = vectors[i];\r\n\r\n\t\t\t\tif (vector === undefined) {\r\n\t\t\t\t\tconsole.warn('THREE.BufferAttribute.copyVector3sArray(): vector is undefined', i);\r\n\t\t\t\t\tvector = new Vector3();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tarray[offset++] = vector.x;\r\n\t\t\t\tarray[offset++] = vector.y;\r\n\t\t\t\tarray[offset++] = vector.z;\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tcopyVector4sArray: function copyVector4sArray(vectors) {\r\n\t\t\tvar array = this.array;\r\n\t\t\tvar offset = 0;\r\n\r\n\t\t\tfor (var i = 0, l = vectors.length; i < l; i++) {\r\n\t\t\t\tvar vector = vectors[i];\r\n\r\n\t\t\t\tif (vector === undefined) {\r\n\t\t\t\t\tconsole.warn('THREE.BufferAttribute.copyVector4sArray(): vector is undefined', i);\r\n\t\t\t\t\tvector = new Vector4();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tarray[offset++] = vector.x;\r\n\t\t\t\tarray[offset++] = vector.y;\r\n\t\t\t\tarray[offset++] = vector.z;\r\n\t\t\t\tarray[offset++] = vector.w;\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tapplyMatrix3: function applyMatrix3(m) {\r\n\t\t\tif (this.itemSize === 2) {\r\n\t\t\t\tfor (var i = 0, l = this.count; i < l; i++) {\r\n\t\t\t\t\t_vector2$1.fromBufferAttribute(this, i);\r\n\r\n\t\t\t\t\t_vector2$1.applyMatrix3(m);\r\n\r\n\t\t\t\t\tthis.setXY(i, _vector2$1.x, _vector2$1.y);\r\n\t\t\t\t}\r\n\t\t\t} else if (this.itemSize === 3) {\r\n\t\t\t\tfor (var _i = 0, _l = this.count; _i < _l; _i++) {\r\n\t\t\t\t\t_vector$3.fromBufferAttribute(this, _i);\r\n\r\n\t\t\t\t\t_vector$3.applyMatrix3(m);\r\n\r\n\t\t\t\t\tthis.setXYZ(_i, _vector$3.x, _vector$3.y, _vector$3.z);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tapplyMatrix4: function applyMatrix4(m) {\r\n\t\t\tfor (var i = 0, l = this.count; i < l; i++) {\r\n\t\t\t\t_vector$3.x = this.getX(i);\r\n\t\t\t\t_vector$3.y = this.getY(i);\r\n\t\t\t\t_vector$3.z = this.getZ(i);\r\n\r\n\t\t\t\t_vector$3.applyMatrix4(m);\r\n\r\n\t\t\t\tthis.setXYZ(i, _vector$3.x, _vector$3.y, _vector$3.z);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tapplyNormalMatrix: function applyNormalMatrix(m) {\r\n\t\t\tfor (var i = 0, l = this.count; i < l; i++) {\r\n\t\t\t\t_vector$3.x = this.getX(i);\r\n\t\t\t\t_vector$3.y = this.getY(i);\r\n\t\t\t\t_vector$3.z = this.getZ(i);\r\n\r\n\t\t\t\t_vector$3.applyNormalMatrix(m);\r\n\r\n\t\t\t\tthis.setXYZ(i, _vector$3.x, _vector$3.y, _vector$3.z);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\ttransformDirection: function transformDirection(m) {\r\n\t\t\tfor (var i = 0, l = this.count; i < l; i++) {\r\n\t\t\t\t_vector$3.x = this.getX(i);\r\n\t\t\t\t_vector$3.y = this.getY(i);\r\n\t\t\t\t_vector$3.z = this.getZ(i);\r\n\r\n\t\t\t\t_vector$3.transformDirection(m);\r\n\r\n\t\t\t\tthis.setXYZ(i, _vector$3.x, _vector$3.y, _vector$3.z);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tset: function set(value, offset) {\r\n\t\t\tif (offset === void 0) {\r\n\t\t\t\toffset = 0;\r\n\t\t\t}\r\n\r\n\t\t\tthis.array.set(value, offset);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tgetX: function getX(index) {\r\n\t\t\treturn this.array[index * this.itemSize];\r\n\t\t},\r\n\t\tsetX: function setX(index, x) {\r\n\t\t\tthis.array[index * this.itemSize] = x;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tgetY: function getY(index) {\r\n\t\t\treturn this.array[index * this.itemSize + 1];\r\n\t\t},\r\n\t\tsetY: function setY(index, y) {\r\n\t\t\tthis.array[index * this.itemSize + 1] = y;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tgetZ: function getZ(index) {\r\n\t\t\treturn this.array[index * this.itemSize + 2];\r\n\t\t},\r\n\t\tsetZ: function setZ(index, z) {\r\n\t\t\tthis.array[index * this.itemSize + 2] = z;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tgetW: function getW(index) {\r\n\t\t\treturn this.array[index * this.itemSize + 3];\r\n\t\t},\r\n\t\tsetW: function setW(index, w) {\r\n\t\t\tthis.array[index * this.itemSize + 3] = w;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tsetXY: function setXY(index, x, y) {\r\n\t\t\tindex *= this.itemSize;\r\n\t\t\tthis.array[index + 0] = x;\r\n\t\t\tthis.array[index + 1] = y;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tsetXYZ: function setXYZ(index, x, y, z) {\r\n\t\t\tindex *= this.itemSize;\r\n\t\t\tthis.array[index + 0] = x;\r\n\t\t\tthis.array[index + 1] = y;\r\n\t\t\tthis.array[index + 2] = z;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tsetXYZW: function setXYZW(index, x, y, z, w) {\r\n\t\t\tindex *= this.itemSize;\r\n\t\t\tthis.array[index + 0] = x;\r\n\t\t\tthis.array[index + 1] = y;\r\n\t\t\tthis.array[index + 2] = z;\r\n\t\t\tthis.array[index + 3] = w;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tonUpload: function onUpload(callback) {\r\n\t\t\tthis.onUploadCallback = callback;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tclone: function clone() {\r\n\t\t\treturn new this.constructor(this.array, this.itemSize).copy(this);\r\n\t\t},\r\n\t\ttoJSON: function toJSON() {\r\n\t\t\treturn {\r\n\t\t\t\titemSize: this.itemSize,\r\n\t\t\t\ttype: this.array.constructor.name,\r\n\t\t\t\tarray: Array.prototype.slice.call(this.array),\r\n\t\t\t\tnormalized: this.normalized\r\n\t\t\t};\r\n\t\t}\r\n\t}); //\r\n\r\n\tfunction Int8BufferAttribute(array, itemSize, normalized) {\r\n\t\tBufferAttribute.call(this, new Int8Array(array), itemSize, normalized);\r\n\t}\r\n\r\n\tInt8BufferAttribute.prototype = Object.create(BufferAttribute.prototype);\r\n\tInt8BufferAttribute.prototype.constructor = Int8BufferAttribute;\r\n\r\n\tfunction Uint8BufferAttribute(array, itemSize, normalized) {\r\n\t\tBufferAttribute.call(this, new Uint8Array(array), itemSize, normalized);\r\n\t}\r\n\r\n\tUint8BufferAttribute.prototype = Object.create(BufferAttribute.prototype);\r\n\tUint8BufferAttribute.prototype.constructor = Uint8BufferAttribute;\r\n\r\n\tfunction Uint8ClampedBufferAttribute(array, itemSize, normalized) {\r\n\t\tBufferAttribute.call(this, new Uint8ClampedArray(array), itemSize, normalized);\r\n\t}\r\n\r\n\tUint8ClampedBufferAttribute.prototype = Object.create(BufferAttribute.prototype);\r\n\tUint8ClampedBufferAttribute.prototype.constructor = Uint8ClampedBufferAttribute;\r\n\r\n\tfunction Int16BufferAttribute(array, itemSize, normalized) {\r\n\t\tBufferAttribute.call(this, new Int16Array(array), itemSize, normalized);\r\n\t}\r\n\r\n\tInt16BufferAttribute.prototype = Object.create(BufferAttribute.prototype);\r\n\tInt16BufferAttribute.prototype.constructor = Int16BufferAttribute;\r\n\r\n\tfunction Uint16BufferAttribute(array, itemSize, normalized) {\r\n\t\tBufferAttribute.call(this, new Uint16Array(array), itemSize, normalized);\r\n\t}\r\n\r\n\tUint16BufferAttribute.prototype = Object.create(BufferAttribute.prototype);\r\n\tUint16BufferAttribute.prototype.constructor = Uint16BufferAttribute;\r\n\r\n\tfunction Int32BufferAttribute(array, itemSize, normalized) {\r\n\t\tBufferAttribute.call(this, new Int32Array(array), itemSize, normalized);\r\n\t}\r\n\r\n\tInt32BufferAttribute.prototype = Object.create(BufferAttribute.prototype);\r\n\tInt32BufferAttribute.prototype.constructor = Int32BufferAttribute;\r\n\r\n\tfunction Uint32BufferAttribute(array, itemSize, normalized) {\r\n\t\tBufferAttribute.call(this, new Uint32Array(array), itemSize, normalized);\r\n\t}\r\n\r\n\tUint32BufferAttribute.prototype = Object.create(BufferAttribute.prototype);\r\n\tUint32BufferAttribute.prototype.constructor = Uint32BufferAttribute;\r\n\r\n\tfunction Float16BufferAttribute(array, itemSize, normalized) {\r\n\t\tBufferAttribute.call(this, new Uint16Array(array), itemSize, normalized);\r\n\t}\r\n\r\n\tFloat16BufferAttribute.prototype = Object.create(BufferAttribute.prototype);\r\n\tFloat16BufferAttribute.prototype.constructor = Float16BufferAttribute;\r\n\tFloat16BufferAttribute.prototype.isFloat16BufferAttribute = true;\r\n\r\n\tfunction Float32BufferAttribute(array, itemSize, normalized) {\r\n\t\tBufferAttribute.call(this, new Float32Array(array), itemSize, normalized);\r\n\t}\r\n\r\n\tFloat32BufferAttribute.prototype = Object.create(BufferAttribute.prototype);\r\n\tFloat32BufferAttribute.prototype.constructor = Float32BufferAttribute;\r\n\r\n\tfunction Float64BufferAttribute(array, itemSize, normalized) {\r\n\t\tBufferAttribute.call(this, new Float64Array(array), itemSize, normalized);\r\n\t}\r\n\r\n\tFloat64BufferAttribute.prototype = Object.create(BufferAttribute.prototype);\r\n\tFloat64BufferAttribute.prototype.constructor = Float64BufferAttribute; //\r\n\r\n\tvar DirectGeometry = /*#__PURE__*/function () {\r\n\t\tfunction DirectGeometry() {\r\n\t\t\tthis.vertices = [];\r\n\t\t\tthis.normals = [];\r\n\t\t\tthis.colors = [];\r\n\t\t\tthis.uvs = [];\r\n\t\t\tthis.uvs2 = [];\r\n\t\t\tthis.groups = [];\r\n\t\t\tthis.morphTargets = {};\r\n\t\t\tthis.skinWeights = [];\r\n\t\t\tthis.skinIndices = []; // this.lineDistances = [];\r\n\r\n\t\t\tthis.boundingBox = null;\r\n\t\t\tthis.boundingSphere = null; // update flags\r\n\r\n\t\t\tthis.verticesNeedUpdate = false;\r\n\t\t\tthis.normalsNeedUpdate = false;\r\n\t\t\tthis.colorsNeedUpdate = false;\r\n\t\t\tthis.uvsNeedUpdate = false;\r\n\t\t\tthis.groupsNeedUpdate = false;\r\n\t\t}\r\n\r\n\t\tvar _proto = DirectGeometry.prototype;\r\n\r\n\t\t_proto.computeGroups = function computeGroups(geometry) {\r\n\t\t\tvar groups = [];\r\n\t\t\tvar group, i;\r\n\t\t\tvar materialIndex = undefined;\r\n\t\t\tvar faces = geometry.faces;\r\n\r\n\t\t\tfor (i = 0; i < faces.length; i++) {\r\n\t\t\t\tvar face = faces[i]; // materials\r\n\r\n\t\t\t\tif (face.materialIndex !== materialIndex) {\r\n\t\t\t\t\tmaterialIndex = face.materialIndex;\r\n\r\n\t\t\t\t\tif (group !== undefined) {\r\n\t\t\t\t\t\tgroup.count = i * 3 - group.start;\r\n\t\t\t\t\t\tgroups.push(group);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tgroup = {\r\n\t\t\t\t\t\tstart: i * 3,\r\n\t\t\t\t\t\tmaterialIndex: materialIndex\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (group !== undefined) {\r\n\t\t\t\tgroup.count = i * 3 - group.start;\r\n\t\t\t\tgroups.push(group);\r\n\t\t\t}\r\n\r\n\t\t\tthis.groups = groups;\r\n\t\t};\r\n\r\n\t\t_proto.fromGeometry = function fromGeometry(geometry) {\r\n\t\t\tvar faces = geometry.faces;\r\n\t\t\tvar vertices = geometry.vertices;\r\n\t\t\tvar faceVertexUvs = geometry.faceVertexUvs;\r\n\t\t\tvar hasFaceVertexUv = faceVertexUvs[0] && faceVertexUvs[0].length > 0;\r\n\t\t\tvar hasFaceVertexUv2 = faceVertexUvs[1] && faceVertexUvs[1].length > 0; // morphs\r\n\r\n\t\t\tvar morphTargets = geometry.morphTargets;\r\n\t\t\tvar morphTargetsLength = morphTargets.length;\r\n\t\t\tvar morphTargetsPosition;\r\n\r\n\t\t\tif (morphTargetsLength > 0) {\r\n\t\t\t\tmorphTargetsPosition = [];\r\n\r\n\t\t\t\tfor (var i = 0; i < morphTargetsLength; i++) {\r\n\t\t\t\t\tmorphTargetsPosition[i] = {\r\n\t\t\t\t\t\tname: morphTargets[i].name,\r\n\t\t\t\t\t\tdata: []\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.morphTargets.position = morphTargetsPosition;\r\n\t\t\t}\r\n\r\n\t\t\tvar morphNormals = geometry.morphNormals;\r\n\t\t\tvar morphNormalsLength = morphNormals.length;\r\n\t\t\tvar morphTargetsNormal;\r\n\r\n\t\t\tif (morphNormalsLength > 0) {\r\n\t\t\t\tmorphTargetsNormal = [];\r\n\r\n\t\t\t\tfor (var _i = 0; _i < morphNormalsLength; _i++) {\r\n\t\t\t\t\tmorphTargetsNormal[_i] = {\r\n\t\t\t\t\t\tname: morphNormals[_i].name,\r\n\t\t\t\t\t\tdata: []\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.morphTargets.normal = morphTargetsNormal;\r\n\t\t\t} // skins\r\n\r\n\r\n\t\t\tvar skinIndices = geometry.skinIndices;\r\n\t\t\tvar skinWeights = geometry.skinWeights;\r\n\t\t\tvar hasSkinIndices = skinIndices.length === vertices.length;\r\n\t\t\tvar hasSkinWeights = skinWeights.length === vertices.length; //\r\n\r\n\t\t\tif (vertices.length > 0 && faces.length === 0) {\r\n\t\t\t\tconsole.error('THREE.DirectGeometry: Faceless geometries are not supported.');\r\n\t\t\t}\r\n\r\n\t\t\tfor (var _i2 = 0; _i2 < faces.length; _i2++) {\r\n\t\t\t\tvar face = faces[_i2];\r\n\t\t\t\tthis.vertices.push(vertices[face.a], vertices[face.b], vertices[face.c]);\r\n\t\t\t\tvar vertexNormals = face.vertexNormals;\r\n\r\n\t\t\t\tif (vertexNormals.length === 3) {\r\n\t\t\t\t\tthis.normals.push(vertexNormals[0], vertexNormals[1], vertexNormals[2]);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar normal = face.normal;\r\n\t\t\t\t\tthis.normals.push(normal, normal, normal);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar vertexColors = face.vertexColors;\r\n\r\n\t\t\t\tif (vertexColors.length === 3) {\r\n\t\t\t\t\tthis.colors.push(vertexColors[0], vertexColors[1], vertexColors[2]);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar color = face.color;\r\n\t\t\t\t\tthis.colors.push(color, color, color);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (hasFaceVertexUv === true) {\r\n\t\t\t\t\tvar vertexUvs = faceVertexUvs[0][_i2];\r\n\r\n\t\t\t\t\tif (vertexUvs !== undefined) {\r\n\t\t\t\t\t\tthis.uvs.push(vertexUvs[0], vertexUvs[1], vertexUvs[2]);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconsole.warn('THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ', _i2);\r\n\t\t\t\t\t\tthis.uvs.push(new Vector2(), new Vector2(), new Vector2());\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (hasFaceVertexUv2 === true) {\r\n\t\t\t\t\tvar _vertexUvs = faceVertexUvs[1][_i2];\r\n\r\n\t\t\t\t\tif (_vertexUvs !== undefined) {\r\n\t\t\t\t\t\tthis.uvs2.push(_vertexUvs[0], _vertexUvs[1], _vertexUvs[2]);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconsole.warn('THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ', _i2);\r\n\t\t\t\t\t\tthis.uvs2.push(new Vector2(), new Vector2(), new Vector2());\r\n\t\t\t\t\t}\r\n\t\t\t\t} // morphs\r\n\r\n\r\n\t\t\t\tfor (var j = 0; j < morphTargetsLength; j++) {\r\n\t\t\t\t\tvar morphTarget = morphTargets[j].vertices;\r\n\t\t\t\t\tmorphTargetsPosition[j].data.push(morphTarget[face.a], morphTarget[face.b], morphTarget[face.c]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfor (var _j = 0; _j < morphNormalsLength; _j++) {\r\n\t\t\t\t\tvar morphNormal = morphNormals[_j].vertexNormals[_i2];\r\n\r\n\t\t\t\t\tmorphTargetsNormal[_j].data.push(morphNormal.a, morphNormal.b, morphNormal.c);\r\n\t\t\t\t} // skins\r\n\r\n\r\n\t\t\t\tif (hasSkinIndices) {\r\n\t\t\t\t\tthis.skinIndices.push(skinIndices[face.a], skinIndices[face.b], skinIndices[face.c]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (hasSkinWeights) {\r\n\t\t\t\t\tthis.skinWeights.push(skinWeights[face.a], skinWeights[face.b], skinWeights[face.c]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.computeGroups(geometry);\r\n\t\t\tthis.verticesNeedUpdate = geometry.verticesNeedUpdate;\r\n\t\t\tthis.normalsNeedUpdate = geometry.normalsNeedUpdate;\r\n\t\t\tthis.colorsNeedUpdate = geometry.colorsNeedUpdate;\r\n\t\t\tthis.uvsNeedUpdate = geometry.uvsNeedUpdate;\r\n\t\t\tthis.groupsNeedUpdate = geometry.groupsNeedUpdate;\r\n\r\n\t\t\tif (geometry.boundingSphere !== null) {\r\n\t\t\t\tthis.boundingSphere = geometry.boundingSphere.clone();\r\n\t\t\t}\r\n\r\n\t\t\tif (geometry.boundingBox !== null) {\r\n\t\t\t\tthis.boundingBox = geometry.boundingBox.clone();\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\treturn DirectGeometry;\r\n\t}();\r\n\r\n\tfunction arrayMax(array) {\r\n\t\tif (array.length === 0) return -Infinity;\r\n\t\tvar max = array[0];\r\n\r\n\t\tfor (var i = 1, l = array.length; i < l; ++i) {\r\n\t\t\tif (array[i] > max) max = array[i];\r\n\t\t}\r\n\r\n\t\treturn max;\r\n\t}\r\n\r\n\tvar TYPED_ARRAYS = {\r\n\t\tInt8Array: Int8Array,\r\n\t\tUint8Array: Uint8Array,\r\n\t\t// Workaround for IE11 pre KB2929437. See #11440\r\n\t\tUint8ClampedArray: typeof Uint8ClampedArray !== 'undefined' ? Uint8ClampedArray : Uint8Array,\r\n\t\tInt16Array: Int16Array,\r\n\t\tUint16Array: Uint16Array,\r\n\t\tInt32Array: Int32Array,\r\n\t\tUint32Array: Uint32Array,\r\n\t\tFloat32Array: Float32Array,\r\n\t\tFloat64Array: Float64Array\r\n\t};\r\n\r\n\tfunction getTypedArray(type, buffer) {\r\n\t\treturn new TYPED_ARRAYS[type](buffer);\r\n\t}\r\n\r\n\tvar _bufferGeometryId = 1; // BufferGeometry uses odd numbers as Id\r\n\r\n\tvar _m1$2 = new Matrix4();\r\n\r\n\tvar _obj = new Object3D();\r\n\r\n\tvar _offset = new Vector3();\r\n\r\n\tvar _box$2 = new Box3();\r\n\r\n\tvar _boxMorphTargets = new Box3();\r\n\r\n\tvar _vector$4 = new Vector3();\r\n\r\n\tfunction BufferGeometry() {\r\n\t\tObject.defineProperty(this, 'id', {\r\n\t\t\tvalue: _bufferGeometryId += 2\r\n\t\t});\r\n\t\tthis.uuid = MathUtils.generateUUID();\r\n\t\tthis.name = '';\r\n\t\tthis.type = 'BufferGeometry';\r\n\t\tthis.index = null;\r\n\t\tthis.attributes = {};\r\n\t\tthis.morphAttributes = {};\r\n\t\tthis.morphTargetsRelative = false;\r\n\t\tthis.groups = [];\r\n\t\tthis.boundingBox = null;\r\n\t\tthis.boundingSphere = null;\r\n\t\tthis.drawRange = {\r\n\t\t\tstart: 0,\r\n\t\t\tcount: Infinity\r\n\t\t};\r\n\t\tthis.userData = {};\r\n\t}\r\n\r\n\tBufferGeometry.prototype = Object.assign(Object.create(EventDispatcher.prototype), {\r\n\t\tconstructor: BufferGeometry,\r\n\t\tisBufferGeometry: true,\r\n\t\tgetIndex: function getIndex() {\r\n\t\t\treturn this.index;\r\n\t\t},\r\n\t\tsetIndex: function setIndex(index) {\r\n\t\t\tif (Array.isArray(index)) {\r\n\t\t\t\tthis.index = new (arrayMax(index) > 65535 ? Uint32BufferAttribute : Uint16BufferAttribute)(index, 1);\r\n\t\t\t} else {\r\n\t\t\t\tthis.index = index;\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tgetAttribute: function getAttribute(name) {\r\n\t\t\treturn this.attributes[name];\r\n\t\t},\r\n\t\tsetAttribute: function setAttribute(name, attribute) {\r\n\t\t\tthis.attributes[name] = attribute;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tdeleteAttribute: function deleteAttribute(name) {\r\n\t\t\tdelete this.attributes[name];\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\thasAttribute: function hasAttribute(name) {\r\n\t\t\treturn this.attributes[name] !== undefined;\r\n\t\t},\r\n\t\taddGroup: function addGroup(start, count, materialIndex) {\r\n\t\t\tif (materialIndex === void 0) {\r\n\t\t\t\tmaterialIndex = 0;\r\n\t\t\t}\r\n\r\n\t\t\tthis.groups.push({\r\n\t\t\t\tstart: start,\r\n\t\t\t\tcount: count,\r\n\t\t\t\tmaterialIndex: materialIndex\r\n\t\t\t});\r\n\t\t},\r\n\t\tclearGroups: function clearGroups() {\r\n\t\t\tthis.groups = [];\r\n\t\t},\r\n\t\tsetDrawRange: function setDrawRange(start, count) {\r\n\t\t\tthis.drawRange.start = start;\r\n\t\t\tthis.drawRange.count = count;\r\n\t\t},\r\n\t\tapplyMatrix4: function applyMatrix4(matrix) {\r\n\t\t\tvar position = this.attributes.position;\r\n\r\n\t\t\tif (position !== undefined) {\r\n\t\t\t\tposition.applyMatrix4(matrix);\r\n\t\t\t\tposition.needsUpdate = true;\r\n\t\t\t}\r\n\r\n\t\t\tvar normal = this.attributes.normal;\r\n\r\n\t\t\tif (normal !== undefined) {\r\n\t\t\t\tvar normalMatrix = new Matrix3().getNormalMatrix(matrix);\r\n\t\t\t\tnormal.applyNormalMatrix(normalMatrix);\r\n\t\t\t\tnormal.needsUpdate = true;\r\n\t\t\t}\r\n\r\n\t\t\tvar tangent = this.attributes.tangent;\r\n\r\n\t\t\tif (tangent !== undefined) {\r\n\t\t\t\ttangent.transformDirection(matrix);\r\n\t\t\t\ttangent.needsUpdate = true;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.boundingBox !== null) {\r\n\t\t\t\tthis.computeBoundingBox();\r\n\t\t\t}\r\n\r\n\t\t\tif (this.boundingSphere !== null) {\r\n\t\t\t\tthis.computeBoundingSphere();\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\trotateX: function rotateX(angle) {\r\n\t\t\t// rotate geometry around world x-axis\r\n\t\t\t_m1$2.makeRotationX(angle);\r\n\r\n\t\t\tthis.applyMatrix4(_m1$2);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\trotateY: function rotateY(angle) {\r\n\t\t\t// rotate geometry around world y-axis\r\n\t\t\t_m1$2.makeRotationY(angle);\r\n\r\n\t\t\tthis.applyMatrix4(_m1$2);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\trotateZ: function rotateZ(angle) {\r\n\t\t\t// rotate geometry around world z-axis\r\n\t\t\t_m1$2.makeRotationZ(angle);\r\n\r\n\t\t\tthis.applyMatrix4(_m1$2);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\ttranslate: function translate(x, y, z) {\r\n\t\t\t// translate geometry\r\n\t\t\t_m1$2.makeTranslation(x, y, z);\r\n\r\n\t\t\tthis.applyMatrix4(_m1$2);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tscale: function scale(x, y, z) {\r\n\t\t\t// scale geometry\r\n\t\t\t_m1$2.makeScale(x, y, z);\r\n\r\n\t\t\tthis.applyMatrix4(_m1$2);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tlookAt: function lookAt(vector) {\r\n\t\t\t_obj.lookAt(vector);\r\n\r\n\t\t\t_obj.updateMatrix();\r\n\r\n\t\t\tthis.applyMatrix4(_obj.matrix);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tcenter: function center() {\r\n\t\t\tthis.computeBoundingBox();\r\n\t\t\tthis.boundingBox.getCenter(_offset).negate();\r\n\t\t\tthis.translate(_offset.x, _offset.y, _offset.z);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tsetFromObject: function setFromObject(object) {\r\n\t\t\t// console.log( 'THREE.BufferGeometry.setFromObject(). Converting', object, this );\r\n\t\t\tvar geometry = object.geometry;\r\n\r\n\t\t\tif (object.isPoints || object.isLine) {\r\n\t\t\t\tvar positions = new Float32BufferAttribute(geometry.vertices.length * 3, 3);\r\n\t\t\t\tvar colors = new Float32BufferAttribute(geometry.colors.length * 3, 3);\r\n\t\t\t\tthis.setAttribute('position', positions.copyVector3sArray(geometry.vertices));\r\n\t\t\t\tthis.setAttribute('color', colors.copyColorsArray(geometry.colors));\r\n\r\n\t\t\t\tif (geometry.lineDistances && geometry.lineDistances.length === geometry.vertices.length) {\r\n\t\t\t\t\tvar lineDistances = new Float32BufferAttribute(geometry.lineDistances.length, 1);\r\n\t\t\t\t\tthis.setAttribute('lineDistance', lineDistances.copyArray(geometry.lineDistances));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (geometry.boundingSphere !== null) {\r\n\t\t\t\t\tthis.boundingSphere = geometry.boundingSphere.clone();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (geometry.boundingBox !== null) {\r\n\t\t\t\t\tthis.boundingBox = geometry.boundingBox.clone();\r\n\t\t\t\t}\r\n\t\t\t} else if (object.isMesh) {\r\n\t\t\t\tif (geometry && geometry.isGeometry) {\r\n\t\t\t\t\tthis.fromGeometry(geometry);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tsetFromPoints: function setFromPoints(points) {\r\n\t\t\tvar position = [];\r\n\r\n\t\t\tfor (var i = 0, l = points.length; i < l; i++) {\r\n\t\t\t\tvar point = points[i];\r\n\t\t\t\tposition.push(point.x, point.y, point.z || 0);\r\n\t\t\t}\r\n\r\n\t\t\tthis.setAttribute('position', new Float32BufferAttribute(position, 3));\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tupdateFromObject: function updateFromObject(object) {\r\n\t\t\tvar geometry = object.geometry;\r\n\r\n\t\t\tif (object.isMesh) {\r\n\t\t\t\tvar direct = geometry.__directGeometry;\r\n\r\n\t\t\t\tif (geometry.elementsNeedUpdate === true) {\r\n\t\t\t\t\tdirect = undefined;\r\n\t\t\t\t\tgeometry.elementsNeedUpdate = false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (direct === undefined) {\r\n\t\t\t\t\treturn this.fromGeometry(geometry);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdirect.verticesNeedUpdate = geometry.verticesNeedUpdate;\r\n\t\t\t\tdirect.normalsNeedUpdate = geometry.normalsNeedUpdate;\r\n\t\t\t\tdirect.colorsNeedUpdate = geometry.colorsNeedUpdate;\r\n\t\t\t\tdirect.uvsNeedUpdate = geometry.uvsNeedUpdate;\r\n\t\t\t\tdirect.groupsNeedUpdate = geometry.groupsNeedUpdate;\r\n\t\t\t\tgeometry.verticesNeedUpdate = false;\r\n\t\t\t\tgeometry.normalsNeedUpdate = false;\r\n\t\t\t\tgeometry.colorsNeedUpdate = false;\r\n\t\t\t\tgeometry.uvsNeedUpdate = false;\r\n\t\t\t\tgeometry.groupsNeedUpdate = false;\r\n\t\t\t\tgeometry = direct;\r\n\t\t\t}\r\n\r\n\t\t\tif (geometry.verticesNeedUpdate === true) {\r\n\t\t\t\tvar attribute = this.attributes.position;\r\n\r\n\t\t\t\tif (attribute !== undefined) {\r\n\t\t\t\t\tattribute.copyVector3sArray(geometry.vertices);\r\n\t\t\t\t\tattribute.needsUpdate = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tgeometry.verticesNeedUpdate = false;\r\n\t\t\t}\r\n\r\n\t\t\tif (geometry.normalsNeedUpdate === true) {\r\n\t\t\t\tvar _attribute = this.attributes.normal;\r\n\r\n\t\t\t\tif (_attribute !== undefined) {\r\n\t\t\t\t\t_attribute.copyVector3sArray(geometry.normals);\r\n\r\n\t\t\t\t\t_attribute.needsUpdate = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tgeometry.normalsNeedUpdate = false;\r\n\t\t\t}\r\n\r\n\t\t\tif (geometry.colorsNeedUpdate === true) {\r\n\t\t\t\tvar _attribute2 = this.attributes.color;\r\n\r\n\t\t\t\tif (_attribute2 !== undefined) {\r\n\t\t\t\t\t_attribute2.copyColorsArray(geometry.colors);\r\n\r\n\t\t\t\t\t_attribute2.needsUpdate = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tgeometry.colorsNeedUpdate = false;\r\n\t\t\t}\r\n\r\n\t\t\tif (geometry.uvsNeedUpdate) {\r\n\t\t\t\tvar _attribute3 = this.attributes.uv;\r\n\r\n\t\t\t\tif (_attribute3 !== undefined) {\r\n\t\t\t\t\t_attribute3.copyVector2sArray(geometry.uvs);\r\n\r\n\t\t\t\t\t_attribute3.needsUpdate = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tgeometry.uvsNeedUpdate = false;\r\n\t\t\t}\r\n\r\n\t\t\tif (geometry.lineDistancesNeedUpdate) {\r\n\t\t\t\tvar _attribute4 = this.attributes.lineDistance;\r\n\r\n\t\t\t\tif (_attribute4 !== undefined) {\r\n\t\t\t\t\t_attribute4.copyArray(geometry.lineDistances);\r\n\r\n\t\t\t\t\t_attribute4.needsUpdate = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tgeometry.lineDistancesNeedUpdate = false;\r\n\t\t\t}\r\n\r\n\t\t\tif (geometry.groupsNeedUpdate) {\r\n\t\t\t\tgeometry.computeGroups(object.geometry);\r\n\t\t\t\tthis.groups = geometry.groups;\r\n\t\t\t\tgeometry.groupsNeedUpdate = false;\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tfromGeometry: function fromGeometry(geometry) {\r\n\t\t\tgeometry.__directGeometry = new DirectGeometry().fromGeometry(geometry);\r\n\t\t\treturn this.fromDirectGeometry(geometry.__directGeometry);\r\n\t\t},\r\n\t\tfromDirectGeometry: function fromDirectGeometry(geometry) {\r\n\t\t\tvar positions = new Float32Array(geometry.vertices.length * 3);\r\n\t\t\tthis.setAttribute('position', new BufferAttribute(positions, 3).copyVector3sArray(geometry.vertices));\r\n\r\n\t\t\tif (geometry.normals.length > 0) {\r\n\t\t\t\tvar normals = new Float32Array(geometry.normals.length * 3);\r\n\t\t\t\tthis.setAttribute('normal', new BufferAttribute(normals, 3).copyVector3sArray(geometry.normals));\r\n\t\t\t}\r\n\r\n\t\t\tif (geometry.colors.length > 0) {\r\n\t\t\t\tvar colors = new Float32Array(geometry.colors.length * 3);\r\n\t\t\t\tthis.setAttribute('color', new BufferAttribute(colors, 3).copyColorsArray(geometry.colors));\r\n\t\t\t}\r\n\r\n\t\t\tif (geometry.uvs.length > 0) {\r\n\t\t\t\tvar uvs = new Float32Array(geometry.uvs.length * 2);\r\n\t\t\t\tthis.setAttribute('uv', new BufferAttribute(uvs, 2).copyVector2sArray(geometry.uvs));\r\n\t\t\t}\r\n\r\n\t\t\tif (geometry.uvs2.length > 0) {\r\n\t\t\t\tvar uvs2 = new Float32Array(geometry.uvs2.length * 2);\r\n\t\t\t\tthis.setAttribute('uv2', new BufferAttribute(uvs2, 2).copyVector2sArray(geometry.uvs2));\r\n\t\t\t} // groups\r\n\r\n\r\n\t\t\tthis.groups = geometry.groups; // morphs\r\n\r\n\t\t\tfor (var name in geometry.morphTargets) {\r\n\t\t\t\tvar array = [];\r\n\t\t\t\tvar morphTargets = geometry.morphTargets[name];\r\n\r\n\t\t\t\tfor (var i = 0, l = morphTargets.length; i < l; i++) {\r\n\t\t\t\t\tvar morphTarget = morphTargets[i];\r\n\t\t\t\t\tvar attribute = new Float32BufferAttribute(morphTarget.data.length * 3, 3);\r\n\t\t\t\t\tattribute.name = morphTarget.name;\r\n\t\t\t\t\tarray.push(attribute.copyVector3sArray(morphTarget.data));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.morphAttributes[name] = array;\r\n\t\t\t} // skinning\r\n\r\n\r\n\t\t\tif (geometry.skinIndices.length > 0) {\r\n\t\t\t\tvar skinIndices = new Float32BufferAttribute(geometry.skinIndices.length * 4, 4);\r\n\t\t\t\tthis.setAttribute('skinIndex', skinIndices.copyVector4sArray(geometry.skinIndices));\r\n\t\t\t}\r\n\r\n\t\t\tif (geometry.skinWeights.length > 0) {\r\n\t\t\t\tvar skinWeights = new Float32BufferAttribute(geometry.skinWeights.length * 4, 4);\r\n\t\t\t\tthis.setAttribute('skinWeight', skinWeights.copyVector4sArray(geometry.skinWeights));\r\n\t\t\t} //\r\n\r\n\r\n\t\t\tif (geometry.boundingSphere !== null) {\r\n\t\t\t\tthis.boundingSphere = geometry.boundingSphere.clone();\r\n\t\t\t}\r\n\r\n\t\t\tif (geometry.boundingBox !== null) {\r\n\t\t\t\tthis.boundingBox = geometry.boundingBox.clone();\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tcomputeBoundingBox: function computeBoundingBox() {\r\n\t\t\tif (this.boundingBox === null) {\r\n\t\t\t\tthis.boundingBox = new Box3();\r\n\t\t\t}\r\n\r\n\t\t\tvar position = this.attributes.position;\r\n\t\t\tvar morphAttributesPosition = this.morphAttributes.position;\r\n\r\n\t\t\tif (position && position.isGLBufferAttribute) {\r\n\t\t\t\tconsole.error('THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box. Alternatively set \"mesh.frustumCulled\" to \"false\".', this);\r\n\t\t\t\tthis.boundingBox.set(new Vector3(-Infinity, -Infinity, -Infinity), new Vector3(+Infinity, +Infinity, +Infinity));\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (position !== undefined) {\r\n\t\t\t\tthis.boundingBox.setFromBufferAttribute(position); // process morph attributes if present\r\n\r\n\t\t\t\tif (morphAttributesPosition) {\r\n\t\t\t\t\tfor (var i = 0, il = morphAttributesPosition.length; i < il; i++) {\r\n\t\t\t\t\t\tvar morphAttribute = morphAttributesPosition[i];\r\n\r\n\t\t\t\t\t\t_box$2.setFromBufferAttribute(morphAttribute);\r\n\r\n\t\t\t\t\t\tif (this.morphTargetsRelative) {\r\n\t\t\t\t\t\t\t_vector$4.addVectors(this.boundingBox.min, _box$2.min);\r\n\r\n\t\t\t\t\t\t\tthis.boundingBox.expandByPoint(_vector$4);\r\n\r\n\t\t\t\t\t\t\t_vector$4.addVectors(this.boundingBox.max, _box$2.max);\r\n\r\n\t\t\t\t\t\t\tthis.boundingBox.expandByPoint(_vector$4);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tthis.boundingBox.expandByPoint(_box$2.min);\r\n\t\t\t\t\t\t\tthis.boundingBox.expandByPoint(_box$2.max);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tthis.boundingBox.makeEmpty();\r\n\t\t\t}\r\n\r\n\t\t\tif (isNaN(this.boundingBox.min.x) || isNaN(this.boundingBox.min.y) || isNaN(this.boundingBox.min.z)) {\r\n\t\t\t\tconsole.error('THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The \"position\" attribute is likely to have NaN values.', this);\r\n\t\t\t}\r\n\t\t},\r\n\t\tcomputeBoundingSphere: function computeBoundingSphere() {\r\n\t\t\tif (this.boundingSphere === null) {\r\n\t\t\t\tthis.boundingSphere = new Sphere();\r\n\t\t\t}\r\n\r\n\t\t\tvar position = this.attributes.position;\r\n\t\t\tvar morphAttributesPosition = this.morphAttributes.position;\r\n\r\n\t\t\tif (position && position.isGLBufferAttribute) {\r\n\t\t\t\tconsole.error('THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere. Alternatively set \"mesh.frustumCulled\" to \"false\".', this);\r\n\t\t\t\tthis.boundingSphere.set(new Vector3(), Infinity);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (position) {\r\n\t\t\t\t// first, find the center of the bounding sphere\r\n\t\t\t\tvar center = this.boundingSphere.center;\r\n\r\n\t\t\t\t_box$2.setFromBufferAttribute(position); // process morph attributes if present\r\n\r\n\r\n\t\t\t\tif (morphAttributesPosition) {\r\n\t\t\t\t\tfor (var i = 0, il = morphAttributesPosition.length; i < il; i++) {\r\n\t\t\t\t\t\tvar morphAttribute = morphAttributesPosition[i];\r\n\r\n\t\t\t\t\t\t_boxMorphTargets.setFromBufferAttribute(morphAttribute);\r\n\r\n\t\t\t\t\t\tif (this.morphTargetsRelative) {\r\n\t\t\t\t\t\t\t_vector$4.addVectors(_box$2.min, _boxMorphTargets.min);\r\n\r\n\t\t\t\t\t\t\t_box$2.expandByPoint(_vector$4);\r\n\r\n\t\t\t\t\t\t\t_vector$4.addVectors(_box$2.max, _boxMorphTargets.max);\r\n\r\n\t\t\t\t\t\t\t_box$2.expandByPoint(_vector$4);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t_box$2.expandByPoint(_boxMorphTargets.min);\r\n\r\n\t\t\t\t\t\t\t_box$2.expandByPoint(_boxMorphTargets.max);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t_box$2.getCenter(center); // second, try to find a boundingSphere with a radius smaller than the\r\n\t\t\t\t// boundingSphere of the boundingBox: sqrt(3) smaller in the best case\r\n\r\n\r\n\t\t\t\tvar maxRadiusSq = 0;\r\n\r\n\t\t\t\tfor (var _i = 0, _il = position.count; _i < _il; _i++) {\r\n\t\t\t\t\t_vector$4.fromBufferAttribute(position, _i);\r\n\r\n\t\t\t\t\tmaxRadiusSq = Math.max(maxRadiusSq, center.distanceToSquared(_vector$4));\r\n\t\t\t\t} // process morph attributes if present\r\n\r\n\r\n\t\t\t\tif (morphAttributesPosition) {\r\n\t\t\t\t\tfor (var _i2 = 0, _il2 = morphAttributesPosition.length; _i2 < _il2; _i2++) {\r\n\t\t\t\t\t\tvar _morphAttribute = morphAttributesPosition[_i2];\r\n\t\t\t\t\t\tvar morphTargetsRelative = this.morphTargetsRelative;\r\n\r\n\t\t\t\t\t\tfor (var j = 0, jl = _morphAttribute.count; j < jl; j++) {\r\n\t\t\t\t\t\t\t_vector$4.fromBufferAttribute(_morphAttribute, j);\r\n\r\n\t\t\t\t\t\t\tif (morphTargetsRelative) {\r\n\t\t\t\t\t\t\t\t_offset.fromBufferAttribute(position, j);\r\n\r\n\t\t\t\t\t\t\t\t_vector$4.add(_offset);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tmaxRadiusSq = Math.max(maxRadiusSq, center.distanceToSquared(_vector$4));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.boundingSphere.radius = Math.sqrt(maxRadiusSq);\r\n\r\n\t\t\t\tif (isNaN(this.boundingSphere.radius)) {\r\n\t\t\t\t\tconsole.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The \"position\" attribute is likely to have NaN values.', this);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tcomputeFaceNormals: function computeFaceNormals() {// backwards compatibility\r\n\t\t},\r\n\t\tcomputeVertexNormals: function computeVertexNormals() {\r\n\t\t\tvar index = this.index;\r\n\t\t\tvar positionAttribute = this.getAttribute('position');\r\n\r\n\t\t\tif (positionAttribute !== undefined) {\r\n\t\t\t\tvar normalAttribute = this.getAttribute('normal');\r\n\r\n\t\t\t\tif (normalAttribute === undefined) {\r\n\t\t\t\t\tnormalAttribute = new BufferAttribute(new Float32Array(positionAttribute.count * 3), 3);\r\n\t\t\t\t\tthis.setAttribute('normal', normalAttribute);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// reset existing normals to zero\r\n\t\t\t\t\tfor (var i = 0, il = normalAttribute.count; i < il; i++) {\r\n\t\t\t\t\t\tnormalAttribute.setXYZ(i, 0, 0, 0);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar pA = new Vector3(),\r\n\t\t\t\t\t\tpB = new Vector3(),\r\n\t\t\t\t\t\tpC = new Vector3();\r\n\t\t\t\tvar nA = new Vector3(),\r\n\t\t\t\t\t\tnB = new Vector3(),\r\n\t\t\t\t\t\tnC = new Vector3();\r\n\t\t\t\tvar cb = new Vector3(),\r\n\t\t\t\t\t\tab = new Vector3(); // indexed elements\r\n\r\n\t\t\t\tif (index) {\r\n\t\t\t\t\tfor (var _i3 = 0, _il3 = index.count; _i3 < _il3; _i3 += 3) {\r\n\t\t\t\t\t\tvar vA = index.getX(_i3 + 0);\r\n\t\t\t\t\t\tvar vB = index.getX(_i3 + 1);\r\n\t\t\t\t\t\tvar vC = index.getX(_i3 + 2);\r\n\t\t\t\t\t\tpA.fromBufferAttribute(positionAttribute, vA);\r\n\t\t\t\t\t\tpB.fromBufferAttribute(positionAttribute, vB);\r\n\t\t\t\t\t\tpC.fromBufferAttribute(positionAttribute, vC);\r\n\t\t\t\t\t\tcb.subVectors(pC, pB);\r\n\t\t\t\t\t\tab.subVectors(pA, pB);\r\n\t\t\t\t\t\tcb.cross(ab);\r\n\t\t\t\t\t\tnA.fromBufferAttribute(normalAttribute, vA);\r\n\t\t\t\t\t\tnB.fromBufferAttribute(normalAttribute, vB);\r\n\t\t\t\t\t\tnC.fromBufferAttribute(normalAttribute, vC);\r\n\t\t\t\t\t\tnA.add(cb);\r\n\t\t\t\t\t\tnB.add(cb);\r\n\t\t\t\t\t\tnC.add(cb);\r\n\t\t\t\t\t\tnormalAttribute.setXYZ(vA, nA.x, nA.y, nA.z);\r\n\t\t\t\t\t\tnormalAttribute.setXYZ(vB, nB.x, nB.y, nB.z);\r\n\t\t\t\t\t\tnormalAttribute.setXYZ(vC, nC.x, nC.y, nC.z);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// non-indexed elements (unconnected triangle soup)\r\n\t\t\t\t\tfor (var _i4 = 0, _il4 = positionAttribute.count; _i4 < _il4; _i4 += 3) {\r\n\t\t\t\t\t\tpA.fromBufferAttribute(positionAttribute, _i4 + 0);\r\n\t\t\t\t\t\tpB.fromBufferAttribute(positionAttribute, _i4 + 1);\r\n\t\t\t\t\t\tpC.fromBufferAttribute(positionAttribute, _i4 + 2);\r\n\t\t\t\t\t\tcb.subVectors(pC, pB);\r\n\t\t\t\t\t\tab.subVectors(pA, pB);\r\n\t\t\t\t\t\tcb.cross(ab);\r\n\t\t\t\t\t\tnormalAttribute.setXYZ(_i4 + 0, cb.x, cb.y, cb.z);\r\n\t\t\t\t\t\tnormalAttribute.setXYZ(_i4 + 1, cb.x, cb.y, cb.z);\r\n\t\t\t\t\t\tnormalAttribute.setXYZ(_i4 + 2, cb.x, cb.y, cb.z);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.normalizeNormals();\r\n\t\t\t\tnormalAttribute.needsUpdate = true;\r\n\t\t\t}\r\n\t\t},\r\n\t\tmerge: function merge(geometry, offset) {\r\n\t\t\tif (!(geometry && geometry.isBufferGeometry)) {\r\n\t\t\t\tconsole.error('THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.', geometry);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (offset === undefined) {\r\n\t\t\t\toffset = 0;\r\n\t\t\t\tconsole.warn('THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset=0. ' + 'Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge.');\r\n\t\t\t}\r\n\r\n\t\t\tvar attributes = this.attributes;\r\n\r\n\t\t\tfor (var key in attributes) {\r\n\t\t\t\tif (geometry.attributes[key] === undefined) continue;\r\n\t\t\t\tvar attribute1 = attributes[key];\r\n\t\t\t\tvar attributeArray1 = attribute1.array;\r\n\t\t\t\tvar attribute2 = geometry.attributes[key];\r\n\t\t\t\tvar attributeArray2 = attribute2.array;\r\n\t\t\t\tvar attributeOffset = attribute2.itemSize * offset;\r\n\t\t\t\tvar length = Math.min(attributeArray2.length, attributeArray1.length - attributeOffset);\r\n\r\n\t\t\t\tfor (var i = 0, j = attributeOffset; i < length; i++, j++) {\r\n\t\t\t\t\tattributeArray1[j] = attributeArray2[i];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tnormalizeNormals: function normalizeNormals() {\r\n\t\t\tvar normals = this.attributes.normal;\r\n\r\n\t\t\tfor (var i = 0, il = normals.count; i < il; i++) {\r\n\t\t\t\t_vector$4.fromBufferAttribute(normals, i);\r\n\r\n\t\t\t\t_vector$4.normalize();\r\n\r\n\t\t\t\tnormals.setXYZ(i, _vector$4.x, _vector$4.y, _vector$4.z);\r\n\t\t\t}\r\n\t\t},\r\n\t\ttoNonIndexed: function toNonIndexed() {\r\n\t\t\tfunction convertBufferAttribute(attribute, indices) {\r\n\t\t\t\tvar array = attribute.array;\r\n\t\t\t\tvar itemSize = attribute.itemSize;\r\n\t\t\t\tvar normalized = attribute.normalized;\r\n\t\t\t\tvar array2 = new array.constructor(indices.length * itemSize);\r\n\t\t\t\tvar index = 0,\r\n\t\t\t\t\t\tindex2 = 0;\r\n\r\n\t\t\t\tfor (var i = 0, l = indices.length; i < l; i++) {\r\n\t\t\t\t\tindex = indices[i] * itemSize;\r\n\r\n\t\t\t\t\tfor (var j = 0; j < itemSize; j++) {\r\n\t\t\t\t\t\tarray2[index2++] = array[index++];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn new BufferAttribute(array2, itemSize, normalized);\r\n\t\t\t} //\r\n\r\n\r\n\t\t\tif (this.index === null) {\r\n\t\t\t\tconsole.warn('THREE.BufferGeometry.toNonIndexed(): Geometry is already non-indexed.');\r\n\t\t\t\treturn this;\r\n\t\t\t}\r\n\r\n\t\t\tvar geometry2 = new BufferGeometry();\r\n\t\t\tvar indices = this.index.array;\r\n\t\t\tvar attributes = this.attributes; // attributes\r\n\r\n\t\t\tfor (var name in attributes) {\r\n\t\t\t\tvar attribute = attributes[name];\r\n\t\t\t\tvar newAttribute = convertBufferAttribute(attribute, indices);\r\n\t\t\t\tgeometry2.setAttribute(name, newAttribute);\r\n\t\t\t} // morph attributes\r\n\r\n\r\n\t\t\tvar morphAttributes = this.morphAttributes;\r\n\r\n\t\t\tfor (var _name in morphAttributes) {\r\n\t\t\t\tvar morphArray = [];\r\n\t\t\t\tvar morphAttribute = morphAttributes[_name]; // morphAttribute: array of Float32BufferAttributes\r\n\r\n\t\t\t\tfor (var i = 0, il = morphAttribute.length; i < il; i++) {\r\n\t\t\t\t\tvar _attribute5 = morphAttribute[i];\r\n\r\n\t\t\t\t\tvar _newAttribute = convertBufferAttribute(_attribute5, indices);\r\n\r\n\t\t\t\t\tmorphArray.push(_newAttribute);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tgeometry2.morphAttributes[_name] = morphArray;\r\n\t\t\t}\r\n\r\n\t\t\tgeometry2.morphTargetsRelative = this.morphTargetsRelative; // groups\r\n\r\n\t\t\tvar groups = this.groups;\r\n\r\n\t\t\tfor (var _i5 = 0, l = groups.length; _i5 < l; _i5++) {\r\n\t\t\t\tvar group = groups[_i5];\r\n\t\t\t\tgeometry2.addGroup(group.start, group.count, group.materialIndex);\r\n\t\t\t}\r\n\r\n\t\t\treturn geometry2;\r\n\t\t},\r\n\t\ttoJSON: function toJSON() {\r\n\t\t\tvar data = {\r\n\t\t\t\tmetadata: {\r\n\t\t\t\t\tversion: 4.5,\r\n\t\t\t\t\ttype: 'BufferGeometry',\r\n\t\t\t\t\tgenerator: 'BufferGeometry.toJSON'\r\n\t\t\t\t}\r\n\t\t\t}; // standard BufferGeometry serialization\r\n\r\n\t\t\tdata.uuid = this.uuid;\r\n\t\t\tdata.type = this.type;\r\n\t\t\tif (this.name !== '') data.name = this.name;\r\n\t\t\tif (Object.keys(this.userData).length > 0) data.userData = this.userData;\r\n\r\n\t\t\tif (this.parameters !== undefined) {\r\n\t\t\t\tvar parameters = this.parameters;\r\n\r\n\t\t\t\tfor (var key in parameters) {\r\n\t\t\t\t\tif (parameters[key] !== undefined) data[key] = parameters[key];\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn data;\r\n\t\t\t}\r\n\r\n\t\t\tdata.data = {\r\n\t\t\t\tattributes: {}\r\n\t\t\t};\r\n\t\t\tvar index = this.index;\r\n\r\n\t\t\tif (index !== null) {\r\n\t\t\t\tdata.data.index = {\r\n\t\t\t\t\ttype: index.array.constructor.name,\r\n\t\t\t\t\tarray: Array.prototype.slice.call(index.array)\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tvar attributes = this.attributes;\r\n\r\n\t\t\tfor (var _key in attributes) {\r\n\t\t\t\tvar attribute = attributes[_key];\r\n\t\t\t\tvar attributeData = attribute.toJSON(data.data);\r\n\t\t\t\tif (attribute.name !== '') attributeData.name = attribute.name;\r\n\t\t\t\tdata.data.attributes[_key] = attributeData;\r\n\t\t\t}\r\n\r\n\t\t\tvar morphAttributes = {};\r\n\t\t\tvar hasMorphAttributes = false;\r\n\r\n\t\t\tfor (var _key2 in this.morphAttributes) {\r\n\t\t\t\tvar attributeArray = this.morphAttributes[_key2];\r\n\t\t\t\tvar array = [];\r\n\r\n\t\t\t\tfor (var i = 0, il = attributeArray.length; i < il; i++) {\r\n\t\t\t\t\tvar _attribute6 = attributeArray[i];\r\n\r\n\t\t\t\t\tvar _attributeData = _attribute6.toJSON(data.data);\r\n\r\n\t\t\t\t\tif (_attribute6.name !== '') _attributeData.name = _attribute6.name;\r\n\t\t\t\t\tarray.push(_attributeData);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (array.length > 0) {\r\n\t\t\t\t\tmorphAttributes[_key2] = array;\r\n\t\t\t\t\thasMorphAttributes = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (hasMorphAttributes) {\r\n\t\t\t\tdata.data.morphAttributes = morphAttributes;\r\n\t\t\t\tdata.data.morphTargetsRelative = this.morphTargetsRelative;\r\n\t\t\t}\r\n\r\n\t\t\tvar groups = this.groups;\r\n\r\n\t\t\tif (groups.length > 0) {\r\n\t\t\t\tdata.data.groups = JSON.parse(JSON.stringify(groups));\r\n\t\t\t}\r\n\r\n\t\t\tvar boundingSphere = this.boundingSphere;\r\n\r\n\t\t\tif (boundingSphere !== null) {\r\n\t\t\t\tdata.data.boundingSphere = {\r\n\t\t\t\t\tcenter: boundingSphere.center.toArray(),\r\n\t\t\t\t\tradius: boundingSphere.radius\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn data;\r\n\t\t},\r\n\t\tclone: function clone() {\r\n\t\t\t/*\r\n\t\t\t // Handle primitives\r\n\t\t\t\t const parameters = this.parameters;\r\n\t\t\t\t if ( parameters !== undefined ) {\r\n\t\t\t\t const values = [];\r\n\t\t\t\t for ( const key in parameters ) {\r\n\t\t\t\t values.push( parameters[ key ] );\r\n\t\t\t\t }\r\n\t\t\t\t const geometry = Object.create( this.constructor.prototype );\r\n\t\t\t this.constructor.apply( geometry, values );\r\n\t\t\t return geometry;\r\n\t\t\t\t }\r\n\t\t\t\t return new this.constructor().copy( this );\r\n\t\t\t */\r\n\t\t\treturn new BufferGeometry().copy(this);\r\n\t\t},\r\n\t\tcopy: function copy(source) {\r\n\t\t\t// reset\r\n\t\t\tthis.index = null;\r\n\t\t\tthis.attributes = {};\r\n\t\t\tthis.morphAttributes = {};\r\n\t\t\tthis.groups = [];\r\n\t\t\tthis.boundingBox = null;\r\n\t\t\tthis.boundingSphere = null; // used for storing cloned, shared data\r\n\r\n\t\t\tvar data = {}; // name\r\n\r\n\t\t\tthis.name = source.name; // index\r\n\r\n\t\t\tvar index = source.index;\r\n\r\n\t\t\tif (index !== null) {\r\n\t\t\t\tthis.setIndex(index.clone(data));\r\n\t\t\t} // attributes\r\n\r\n\r\n\t\t\tvar attributes = source.attributes;\r\n\r\n\t\t\tfor (var name in attributes) {\r\n\t\t\t\tvar attribute = attributes[name];\r\n\t\t\t\tthis.setAttribute(name, attribute.clone(data));\r\n\t\t\t} // morph attributes\r\n\r\n\r\n\t\t\tvar morphAttributes = source.morphAttributes;\r\n\r\n\t\t\tfor (var _name2 in morphAttributes) {\r\n\t\t\t\tvar array = [];\r\n\t\t\t\tvar morphAttribute = morphAttributes[_name2]; // morphAttribute: array of Float32BufferAttributes\r\n\r\n\t\t\t\tfor (var i = 0, l = morphAttribute.length; i < l; i++) {\r\n\t\t\t\t\tarray.push(morphAttribute[i].clone(data));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.morphAttributes[_name2] = array;\r\n\t\t\t}\r\n\r\n\t\t\tthis.morphTargetsRelative = source.morphTargetsRelative; // groups\r\n\r\n\t\t\tvar groups = source.groups;\r\n\r\n\t\t\tfor (var _i6 = 0, _l = groups.length; _i6 < _l; _i6++) {\r\n\t\t\t\tvar group = groups[_i6];\r\n\t\t\t\tthis.addGroup(group.start, group.count, group.materialIndex);\r\n\t\t\t} // bounding box\r\n\r\n\r\n\t\t\tvar boundingBox = source.boundingBox;\r\n\r\n\t\t\tif (boundingBox !== null) {\r\n\t\t\t\tthis.boundingBox = boundingBox.clone();\r\n\t\t\t} // bounding sphere\r\n\r\n\r\n\t\t\tvar boundingSphere = source.boundingSphere;\r\n\r\n\t\t\tif (boundingSphere !== null) {\r\n\t\t\t\tthis.boundingSphere = boundingSphere.clone();\r\n\t\t\t} // draw range\r\n\r\n\r\n\t\t\tthis.drawRange.start = source.drawRange.start;\r\n\t\t\tthis.drawRange.count = source.drawRange.count; // user data\r\n\r\n\t\t\tthis.userData = source.userData;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tdispose: function dispose() {\r\n\t\t\tthis.dispatchEvent({\r\n\t\t\t\ttype: 'dispose'\r\n\t\t\t});\r\n\t\t}\r\n\t});\r\n\r\n\tvar _inverseMatrix = new Matrix4();\r\n\r\n\tvar _ray = new Ray();\r\n\r\n\tvar _sphere = new Sphere();\r\n\r\n\tvar _vA = new Vector3();\r\n\r\n\tvar _vB = new Vector3();\r\n\r\n\tvar _vC = new Vector3();\r\n\r\n\tvar _tempA = new Vector3();\r\n\r\n\tvar _tempB = new Vector3();\r\n\r\n\tvar _tempC = new Vector3();\r\n\r\n\tvar _morphA = new Vector3();\r\n\r\n\tvar _morphB = new Vector3();\r\n\r\n\tvar _morphC = new Vector3();\r\n\r\n\tvar _uvA = new Vector2();\r\n\r\n\tvar _uvB = new Vector2();\r\n\r\n\tvar _uvC = new Vector2();\r\n\r\n\tvar _intersectionPoint = new Vector3();\r\n\r\n\tvar _intersectionPointWorld = new Vector3();\r\n\r\n\tfunction Mesh(geometry, material) {\r\n\t\tObject3D.call(this);\r\n\t\tthis.type = 'Mesh';\r\n\t\tthis.geometry = geometry !== undefined ? geometry : new BufferGeometry();\r\n\t\tthis.material = material !== undefined ? material : new MeshBasicMaterial();\r\n\t\tthis.updateMorphTargets();\r\n\t}\r\n\r\n\tMesh.prototype = Object.assign(Object.create(Object3D.prototype), {\r\n\t\tconstructor: Mesh,\r\n\t\tisMesh: true,\r\n\t\tcopy: function copy(source) {\r\n\t\t\tObject3D.prototype.copy.call(this, source);\r\n\r\n\t\t\tif (source.morphTargetInfluences !== undefined) {\r\n\t\t\t\tthis.morphTargetInfluences = source.morphTargetInfluences.slice();\r\n\t\t\t}\r\n\r\n\t\t\tif (source.morphTargetDictionary !== undefined) {\r\n\t\t\t\tthis.morphTargetDictionary = Object.assign({}, source.morphTargetDictionary);\r\n\t\t\t}\r\n\r\n\t\t\tthis.material = source.material;\r\n\t\t\tthis.geometry = source.geometry;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tupdateMorphTargets: function updateMorphTargets() {\r\n\t\t\tvar geometry = this.geometry;\r\n\r\n\t\t\tif (geometry.isBufferGeometry) {\r\n\t\t\t\tvar morphAttributes = geometry.morphAttributes;\r\n\t\t\t\tvar keys = Object.keys(morphAttributes);\r\n\r\n\t\t\t\tif (keys.length > 0) {\r\n\t\t\t\t\tvar morphAttribute = morphAttributes[keys[0]];\r\n\r\n\t\t\t\t\tif (morphAttribute !== undefined) {\r\n\t\t\t\t\t\tthis.morphTargetInfluences = [];\r\n\t\t\t\t\t\tthis.morphTargetDictionary = {};\r\n\r\n\t\t\t\t\t\tfor (var m = 0, ml = morphAttribute.length; m < ml; m++) {\r\n\t\t\t\t\t\t\tvar name = morphAttribute[m].name || String(m);\r\n\t\t\t\t\t\t\tthis.morphTargetInfluences.push(0);\r\n\t\t\t\t\t\t\tthis.morphTargetDictionary[name] = m;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tvar morphTargets = geometry.morphTargets;\r\n\r\n\t\t\t\tif (morphTargets !== undefined && morphTargets.length > 0) {\r\n\t\t\t\t\tconsole.error('THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\traycast: function raycast(raycaster, intersects) {\r\n\t\t\tvar geometry = this.geometry;\r\n\t\t\tvar material = this.material;\r\n\t\t\tvar matrixWorld = this.matrixWorld;\r\n\t\t\tif (material === undefined) return; // Checking boundingSphere distance to ray\r\n\r\n\t\t\tif (geometry.boundingSphere === null) geometry.computeBoundingSphere();\r\n\r\n\t\t\t_sphere.copy(geometry.boundingSphere);\r\n\r\n\t\t\t_sphere.applyMatrix4(matrixWorld);\r\n\r\n\t\t\tif (raycaster.ray.intersectsSphere(_sphere) === false) return; //\r\n\r\n\t\t\t_inverseMatrix.copy(matrixWorld).invert();\r\n\r\n\t\t\t_ray.copy(raycaster.ray).applyMatrix4(_inverseMatrix); // Check boundingBox before continuing\r\n\r\n\r\n\t\t\tif (geometry.boundingBox !== null) {\r\n\t\t\t\tif (_ray.intersectsBox(geometry.boundingBox) === false) return;\r\n\t\t\t}\r\n\r\n\t\t\tvar intersection;\r\n\r\n\t\t\tif (geometry.isBufferGeometry) {\r\n\t\t\t\tvar index = geometry.index;\r\n\t\t\t\tvar position = geometry.attributes.position;\r\n\t\t\t\tvar morphPosition = geometry.morphAttributes.position;\r\n\t\t\t\tvar morphTargetsRelative = geometry.morphTargetsRelative;\r\n\t\t\t\tvar uv = geometry.attributes.uv;\r\n\t\t\t\tvar uv2 = geometry.attributes.uv2;\r\n\t\t\t\tvar groups = geometry.groups;\r\n\t\t\t\tvar drawRange = geometry.drawRange;\r\n\r\n\t\t\t\tif (index !== null) {\r\n\t\t\t\t\t// indexed buffer geometry\r\n\t\t\t\t\tif (Array.isArray(material)) {\r\n\t\t\t\t\t\tfor (var i = 0, il = groups.length; i < il; i++) {\r\n\t\t\t\t\t\t\tvar group = groups[i];\r\n\t\t\t\t\t\t\tvar groupMaterial = material[group.materialIndex];\r\n\t\t\t\t\t\t\tvar start = Math.max(group.start, drawRange.start);\r\n\t\t\t\t\t\t\tvar end = Math.min(group.start + group.count, drawRange.start + drawRange.count);\r\n\r\n\t\t\t\t\t\t\tfor (var j = start, jl = end; j < jl; j += 3) {\r\n\t\t\t\t\t\t\t\tvar a = index.getX(j);\r\n\t\t\t\t\t\t\t\tvar b = index.getX(j + 1);\r\n\t\t\t\t\t\t\t\tvar c = index.getX(j + 2);\r\n\t\t\t\t\t\t\t\tintersection = checkBufferGeometryIntersection(this, groupMaterial, raycaster, _ray, position, morphPosition, morphTargetsRelative, uv, uv2, a, b, c);\r\n\r\n\t\t\t\t\t\t\t\tif (intersection) {\r\n\t\t\t\t\t\t\t\t\tintersection.faceIndex = Math.floor(j / 3); // triangle number in indexed buffer semantics\r\n\r\n\t\t\t\t\t\t\t\t\tintersection.face.materialIndex = group.materialIndex;\r\n\t\t\t\t\t\t\t\t\tintersects.push(intersection);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvar _start = Math.max(0, drawRange.start);\r\n\r\n\t\t\t\t\t\tvar _end = Math.min(index.count, drawRange.start + drawRange.count);\r\n\r\n\t\t\t\t\t\tfor (var _i = _start, _il = _end; _i < _il; _i += 3) {\r\n\t\t\t\t\t\t\tvar _a = index.getX(_i);\r\n\r\n\t\t\t\t\t\t\tvar _b = index.getX(_i + 1);\r\n\r\n\t\t\t\t\t\t\tvar _c = index.getX(_i + 2);\r\n\r\n\t\t\t\t\t\t\tintersection = checkBufferGeometryIntersection(this, material, raycaster, _ray, position, morphPosition, morphTargetsRelative, uv, uv2, _a, _b, _c);\r\n\r\n\t\t\t\t\t\t\tif (intersection) {\r\n\t\t\t\t\t\t\t\tintersection.faceIndex = Math.floor(_i / 3); // triangle number in indexed buffer semantics\r\n\r\n\t\t\t\t\t\t\t\tintersects.push(intersection);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (position !== undefined) {\r\n\t\t\t\t\t// non-indexed buffer geometry\r\n\t\t\t\t\tif (Array.isArray(material)) {\r\n\t\t\t\t\t\tfor (var _i2 = 0, _il2 = groups.length; _i2 < _il2; _i2++) {\r\n\t\t\t\t\t\t\tvar _group = groups[_i2];\r\n\t\t\t\t\t\t\tvar _groupMaterial = material[_group.materialIndex];\r\n\r\n\t\t\t\t\t\t\tvar _start2 = Math.max(_group.start, drawRange.start);\r\n\r\n\t\t\t\t\t\t\tvar _end2 = Math.min(_group.start + _group.count, drawRange.start + drawRange.count);\r\n\r\n\t\t\t\t\t\t\tfor (var _j = _start2, _jl = _end2; _j < _jl; _j += 3) {\r\n\t\t\t\t\t\t\t\tvar _a2 = _j;\r\n\r\n\t\t\t\t\t\t\t\tvar _b2 = _j + 1;\r\n\r\n\t\t\t\t\t\t\t\tvar _c2 = _j + 2;\r\n\r\n\t\t\t\t\t\t\t\tintersection = checkBufferGeometryIntersection(this, _groupMaterial, raycaster, _ray, position, morphPosition, morphTargetsRelative, uv, uv2, _a2, _b2, _c2);\r\n\r\n\t\t\t\t\t\t\t\tif (intersection) {\r\n\t\t\t\t\t\t\t\t\tintersection.faceIndex = Math.floor(_j / 3); // triangle number in non-indexed buffer semantics\r\n\r\n\t\t\t\t\t\t\t\t\tintersection.face.materialIndex = _group.materialIndex;\r\n\t\t\t\t\t\t\t\t\tintersects.push(intersection);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvar _start3 = Math.max(0, drawRange.start);\r\n\r\n\t\t\t\t\t\tvar _end3 = Math.min(position.count, drawRange.start + drawRange.count);\r\n\r\n\t\t\t\t\t\tfor (var _i3 = _start3, _il3 = _end3; _i3 < _il3; _i3 += 3) {\r\n\t\t\t\t\t\t\tvar _a3 = _i3;\r\n\r\n\t\t\t\t\t\t\tvar _b3 = _i3 + 1;\r\n\r\n\t\t\t\t\t\t\tvar _c3 = _i3 + 2;\r\n\r\n\t\t\t\t\t\t\tintersection = checkBufferGeometryIntersection(this, material, raycaster, _ray, position, morphPosition, morphTargetsRelative, uv, uv2, _a3, _b3, _c3);\r\n\r\n\t\t\t\t\t\t\tif (intersection) {\r\n\t\t\t\t\t\t\t\tintersection.faceIndex = Math.floor(_i3 / 3); // triangle number in non-indexed buffer semantics\r\n\r\n\t\t\t\t\t\t\t\tintersects.push(intersection);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else if (geometry.isGeometry) {\r\n\t\t\t\tvar isMultiMaterial = Array.isArray(material);\r\n\t\t\t\tvar vertices = geometry.vertices;\r\n\t\t\t\tvar faces = geometry.faces;\r\n\t\t\t\tvar uvs;\r\n\t\t\t\tvar faceVertexUvs = geometry.faceVertexUvs[0];\r\n\t\t\t\tif (faceVertexUvs.length > 0) uvs = faceVertexUvs;\r\n\r\n\t\t\t\tfor (var f = 0, fl = faces.length; f < fl; f++) {\r\n\t\t\t\t\tvar face = faces[f];\r\n\t\t\t\t\tvar faceMaterial = isMultiMaterial ? material[face.materialIndex] : material;\r\n\t\t\t\t\tif (faceMaterial === undefined) continue;\r\n\t\t\t\t\tvar fvA = vertices[face.a];\r\n\t\t\t\t\tvar fvB = vertices[face.b];\r\n\t\t\t\t\tvar fvC = vertices[face.c];\r\n\t\t\t\t\tintersection = checkIntersection(this, faceMaterial, raycaster, _ray, fvA, fvB, fvC, _intersectionPoint);\r\n\r\n\t\t\t\t\tif (intersection) {\r\n\t\t\t\t\t\tif (uvs && uvs[f]) {\r\n\t\t\t\t\t\t\tvar uvs_f = uvs[f];\r\n\r\n\t\t\t\t\t\t\t_uvA.copy(uvs_f[0]);\r\n\r\n\t\t\t\t\t\t\t_uvB.copy(uvs_f[1]);\r\n\r\n\t\t\t\t\t\t\t_uvC.copy(uvs_f[2]);\r\n\r\n\t\t\t\t\t\t\tintersection.uv = Triangle.getUV(_intersectionPoint, fvA, fvB, fvC, _uvA, _uvB, _uvC, new Vector2());\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tintersection.face = face;\r\n\t\t\t\t\t\tintersection.faceIndex = f;\r\n\t\t\t\t\t\tintersects.push(intersection);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\tfunction checkIntersection(object, material, raycaster, ray, pA, pB, pC, point) {\r\n\t\tvar intersect;\r\n\r\n\t\tif (material.side === BackSide) {\r\n\t\t\tintersect = ray.intersectTriangle(pC, pB, pA, true, point);\r\n\t\t} else {\r\n\t\t\tintersect = ray.intersectTriangle(pA, pB, pC, material.side !== DoubleSide, point);\r\n\t\t}\r\n\r\n\t\tif (intersect === null) return null;\r\n\r\n\t\t_intersectionPointWorld.copy(point);\r\n\r\n\t\t_intersectionPointWorld.applyMatrix4(object.matrixWorld);\r\n\r\n\t\tvar distance = raycaster.ray.origin.distanceTo(_intersectionPointWorld);\r\n\t\tif (distance < raycaster.near || distance > raycaster.far) return null;\r\n\t\treturn {\r\n\t\t\tdistance: distance,\r\n\t\t\tpoint: _intersectionPointWorld.clone(),\r\n\t\t\tobject: object\r\n\t\t};\r\n\t}\r\n\r\n\tfunction checkBufferGeometryIntersection(object, material, raycaster, ray, position, morphPosition, morphTargetsRelative, uv, uv2, a, b, c) {\r\n\t\t_vA.fromBufferAttribute(position, a);\r\n\r\n\t\t_vB.fromBufferAttribute(position, b);\r\n\r\n\t\t_vC.fromBufferAttribute(position, c);\r\n\r\n\t\tvar morphInfluences = object.morphTargetInfluences;\r\n\r\n\t\tif (material.morphTargets && morphPosition && morphInfluences) {\r\n\t\t\t_morphA.set(0, 0, 0);\r\n\r\n\t\t\t_morphB.set(0, 0, 0);\r\n\r\n\t\t\t_morphC.set(0, 0, 0);\r\n\r\n\t\t\tfor (var i = 0, il = morphPosition.length; i < il; i++) {\r\n\t\t\t\tvar influence = morphInfluences[i];\r\n\t\t\t\tvar morphAttribute = morphPosition[i];\r\n\t\t\t\tif (influence === 0) continue;\r\n\r\n\t\t\t\t_tempA.fromBufferAttribute(morphAttribute, a);\r\n\r\n\t\t\t\t_tempB.fromBufferAttribute(morphAttribute, b);\r\n\r\n\t\t\t\t_tempC.fromBufferAttribute(morphAttribute, c);\r\n\r\n\t\t\t\tif (morphTargetsRelative) {\r\n\t\t\t\t\t_morphA.addScaledVector(_tempA, influence);\r\n\r\n\t\t\t\t\t_morphB.addScaledVector(_tempB, influence);\r\n\r\n\t\t\t\t\t_morphC.addScaledVector(_tempC, influence);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t_morphA.addScaledVector(_tempA.sub(_vA), influence);\r\n\r\n\t\t\t\t\t_morphB.addScaledVector(_tempB.sub(_vB), influence);\r\n\r\n\t\t\t\t\t_morphC.addScaledVector(_tempC.sub(_vC), influence);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t_vA.add(_morphA);\r\n\r\n\t\t\t_vB.add(_morphB);\r\n\r\n\t\t\t_vC.add(_morphC);\r\n\t\t}\r\n\r\n\t\tif (object.isSkinnedMesh) {\r\n\t\t\tobject.boneTransform(a, _vA);\r\n\t\t\tobject.boneTransform(b, _vB);\r\n\t\t\tobject.boneTransform(c, _vC);\r\n\t\t}\r\n\r\n\t\tvar intersection = checkIntersection(object, material, raycaster, ray, _vA, _vB, _vC, _intersectionPoint);\r\n\r\n\t\tif (intersection) {\r\n\t\t\tif (uv) {\r\n\t\t\t\t_uvA.fromBufferAttribute(uv, a);\r\n\r\n\t\t\t\t_uvB.fromBufferAttribute(uv, b);\r\n\r\n\t\t\t\t_uvC.fromBufferAttribute(uv, c);\r\n\r\n\t\t\t\tintersection.uv = Triangle.getUV(_intersectionPoint, _vA, _vB, _vC, _uvA, _uvB, _uvC, new Vector2());\r\n\t\t\t}\r\n\r\n\t\t\tif (uv2) {\r\n\t\t\t\t_uvA.fromBufferAttribute(uv2, a);\r\n\r\n\t\t\t\t_uvB.fromBufferAttribute(uv2, b);\r\n\r\n\t\t\t\t_uvC.fromBufferAttribute(uv2, c);\r\n\r\n\t\t\t\tintersection.uv2 = Triangle.getUV(_intersectionPoint, _vA, _vB, _vC, _uvA, _uvB, _uvC, new Vector2());\r\n\t\t\t}\r\n\r\n\t\t\tvar face = new Face3(a, b, c);\r\n\t\t\tTriangle.getNormal(_vA, _vB, _vC, face.normal);\r\n\t\t\tintersection.face = face;\r\n\t\t}\r\n\r\n\t\treturn intersection;\r\n\t}\r\n\r\n\tvar BoxBufferGeometry = /*#__PURE__*/function (_BufferGeometry) {\r\n\t\t_inheritsLoose(BoxBufferGeometry, _BufferGeometry);\r\n\r\n\t\tfunction BoxBufferGeometry(width, height, depth, widthSegments, heightSegments, depthSegments) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\tif (width === void 0) {\r\n\t\t\t\twidth = 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (height === void 0) {\r\n\t\t\t\theight = 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (depth === void 0) {\r\n\t\t\t\tdepth = 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (widthSegments === void 0) {\r\n\t\t\t\twidthSegments = 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (heightSegments === void 0) {\r\n\t\t\t\theightSegments = 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (depthSegments === void 0) {\r\n\t\t\t\tdepthSegments = 1;\r\n\t\t\t}\r\n\r\n\t\t\t_this = _BufferGeometry.call(this) || this;\r\n\t\t\t_this.type = 'BoxBufferGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\twidth: width,\r\n\t\t\t\theight: height,\r\n\t\t\t\tdepth: depth,\r\n\t\t\t\twidthSegments: widthSegments,\r\n\t\t\t\theightSegments: heightSegments,\r\n\t\t\t\tdepthSegments: depthSegments\r\n\t\t\t};\r\n\r\n\t\t\tvar scope = _assertThisInitialized(_this); // segments\r\n\r\n\r\n\t\t\twidthSegments = Math.floor(widthSegments);\r\n\t\t\theightSegments = Math.floor(heightSegments);\r\n\t\t\tdepthSegments = Math.floor(depthSegments); // buffers\r\n\r\n\t\t\tvar indices = [];\r\n\t\t\tvar vertices = [];\r\n\t\t\tvar normals = [];\r\n\t\t\tvar uvs = []; // helper variables\r\n\r\n\t\t\tvar numberOfVertices = 0;\r\n\t\t\tvar groupStart = 0; // build each side of the box geometry\r\n\r\n\t\t\tbuildPlane('z', 'y', 'x', -1, -1, depth, height, width, depthSegments, heightSegments, 0); // px\r\n\r\n\t\t\tbuildPlane('z', 'y', 'x', 1, -1, depth, height, -width, depthSegments, heightSegments, 1); // nx\r\n\r\n\t\t\tbuildPlane('x', 'z', 'y', 1, 1, width, depth, height, widthSegments, depthSegments, 2); // py\r\n\r\n\t\t\tbuildPlane('x', 'z', 'y', 1, -1, width, depth, -height, widthSegments, depthSegments, 3); // ny\r\n\r\n\t\t\tbuildPlane('x', 'y', 'z', 1, -1, width, height, depth, widthSegments, heightSegments, 4); // pz\r\n\r\n\t\t\tbuildPlane('x', 'y', 'z', -1, -1, width, height, -depth, widthSegments, heightSegments, 5); // nz\r\n\t\t\t// build geometry\r\n\r\n\t\t\t_this.setIndex(indices);\r\n\r\n\t\t\t_this.setAttribute('position', new Float32BufferAttribute(vertices, 3));\r\n\r\n\t\t\t_this.setAttribute('normal', new Float32BufferAttribute(normals, 3));\r\n\r\n\t\t\t_this.setAttribute('uv', new Float32BufferAttribute(uvs, 2));\r\n\r\n\t\t\tfunction buildPlane(u, v, w, udir, vdir, width, height, depth, gridX, gridY, materialIndex) {\r\n\t\t\t\tvar segmentWidth = width / gridX;\r\n\t\t\t\tvar segmentHeight = height / gridY;\r\n\t\t\t\tvar widthHalf = width / 2;\r\n\t\t\t\tvar heightHalf = height / 2;\r\n\t\t\t\tvar depthHalf = depth / 2;\r\n\t\t\t\tvar gridX1 = gridX + 1;\r\n\t\t\t\tvar gridY1 = gridY + 1;\r\n\t\t\t\tvar vertexCounter = 0;\r\n\t\t\t\tvar groupCount = 0;\r\n\t\t\t\tvar vector = new Vector3(); // generate vertices, normals and uvs\r\n\r\n\t\t\t\tfor (var iy = 0; iy < gridY1; iy++) {\r\n\t\t\t\t\tvar y = iy * segmentHeight - heightHalf;\r\n\r\n\t\t\t\t\tfor (var ix = 0; ix < gridX1; ix++) {\r\n\t\t\t\t\t\tvar x = ix * segmentWidth - widthHalf; // set values to correct vector component\r\n\r\n\t\t\t\t\t\tvector[u] = x * udir;\r\n\t\t\t\t\t\tvector[v] = y * vdir;\r\n\t\t\t\t\t\tvector[w] = depthHalf; // now apply vector to vertex buffer\r\n\r\n\t\t\t\t\t\tvertices.push(vector.x, vector.y, vector.z); // set values to correct vector component\r\n\r\n\t\t\t\t\t\tvector[u] = 0;\r\n\t\t\t\t\t\tvector[v] = 0;\r\n\t\t\t\t\t\tvector[w] = depth > 0 ? 1 : -1; // now apply vector to normal buffer\r\n\r\n\t\t\t\t\t\tnormals.push(vector.x, vector.y, vector.z); // uvs\r\n\r\n\t\t\t\t\t\tuvs.push(ix / gridX);\r\n\t\t\t\t\t\tuvs.push(1 - iy / gridY); // counters\r\n\r\n\t\t\t\t\t\tvertexCounter += 1;\r\n\t\t\t\t\t}\r\n\t\t\t\t} // indices\r\n\t\t\t\t// 1. you need three indices to draw a single face\r\n\t\t\t\t// 2. a single segment consists of two faces\r\n\t\t\t\t// 3. so we need to generate six (2*3) indices per segment\r\n\r\n\r\n\t\t\t\tfor (var _iy = 0; _iy < gridY; _iy++) {\r\n\t\t\t\t\tfor (var _ix = 0; _ix < gridX; _ix++) {\r\n\t\t\t\t\t\tvar a = numberOfVertices + _ix + gridX1 * _iy;\r\n\t\t\t\t\t\tvar b = numberOfVertices + _ix + gridX1 * (_iy + 1);\r\n\t\t\t\t\t\tvar c = numberOfVertices + (_ix + 1) + gridX1 * (_iy + 1);\r\n\t\t\t\t\t\tvar d = numberOfVertices + (_ix + 1) + gridX1 * _iy; // faces\r\n\r\n\t\t\t\t\t\tindices.push(a, b, d);\r\n\t\t\t\t\t\tindices.push(b, c, d); // increase counter\r\n\r\n\t\t\t\t\t\tgroupCount += 6;\r\n\t\t\t\t\t}\r\n\t\t\t\t} // add a group to the geometry. this will ensure multi material support\r\n\r\n\r\n\t\t\t\tscope.addGroup(groupStart, groupCount, materialIndex); // calculate new start value for groups\r\n\r\n\t\t\t\tgroupStart += groupCount; // update total number of vertices\r\n\r\n\t\t\t\tnumberOfVertices += vertexCounter;\r\n\t\t\t}\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn BoxBufferGeometry;\r\n\t}(BufferGeometry);\r\n\r\n\t/**\r\n\t * Uniform Utilities\r\n\t */\r\n\tfunction cloneUniforms(src) {\r\n\t\tvar dst = {};\r\n\r\n\t\tfor (var u in src) {\r\n\t\t\tdst[u] = {};\r\n\r\n\t\t\tfor (var p in src[u]) {\r\n\t\t\t\tvar property = src[u][p];\r\n\r\n\t\t\t\tif (property && (property.isColor || property.isMatrix3 || property.isMatrix4 || property.isVector2 || property.isVector3 || property.isVector4 || property.isTexture)) {\r\n\t\t\t\t\tdst[u][p] = property.clone();\r\n\t\t\t\t} else if (Array.isArray(property)) {\r\n\t\t\t\t\tdst[u][p] = property.slice();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdst[u][p] = property;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn dst;\r\n\t}\r\n\tfunction mergeUniforms(uniforms) {\r\n\t\tvar merged = {};\r\n\r\n\t\tfor (var u = 0; u < uniforms.length; u++) {\r\n\t\t\tvar tmp = cloneUniforms(uniforms[u]);\r\n\r\n\t\t\tfor (var p in tmp) {\r\n\t\t\t\tmerged[p] = tmp[p];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn merged;\r\n\t} // Legacy\r\n\r\n\tvar UniformsUtils = {\r\n\t\tclone: cloneUniforms,\r\n\t\tmerge: mergeUniforms\r\n\t};\r\n\r\n\tvar default_vertex = \"void main() {\\n\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n}\";\r\n\r\n\tvar default_fragment = \"void main() {\\n\\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\\n}\";\r\n\r\n\t/**\r\n\t * parameters = {\r\n\t *\tdefines: { \"label\" : \"value\" },\r\n\t *\tuniforms: { \"parameter1\": { value: 1.0 }, \"parameter2\": { value2: 2 } },\r\n\t *\r\n\t *\tfragmentShader: ,\r\n\t *\tvertexShader: ,\r\n\t *\r\n\t *\twireframe: ,\r\n\t *\twireframeLinewidth: ,\r\n\t *\r\n\t *\tlights: ,\r\n\t *\r\n\t *\tskinning: ,\r\n\t *\tmorphTargets: ,\r\n\t *\tmorphNormals: \r\n\t * }\r\n\t */\r\n\r\n\tfunction ShaderMaterial(parameters) {\r\n\t\tMaterial.call(this);\r\n\t\tthis.type = 'ShaderMaterial';\r\n\t\tthis.defines = {};\r\n\t\tthis.uniforms = {};\r\n\t\tthis.vertexShader = default_vertex;\r\n\t\tthis.fragmentShader = default_fragment;\r\n\t\tthis.linewidth = 1;\r\n\t\tthis.wireframe = false;\r\n\t\tthis.wireframeLinewidth = 1;\r\n\t\tthis.fog = false; // set to use scene fog\r\n\r\n\t\tthis.lights = false; // set to use scene lights\r\n\r\n\t\tthis.clipping = false; // set to use user-defined clipping planes\r\n\r\n\t\tthis.skinning = false; // set to use skinning attribute streams\r\n\r\n\t\tthis.morphTargets = false; // set to use morph targets\r\n\r\n\t\tthis.morphNormals = false; // set to use morph normals\r\n\r\n\t\tthis.extensions = {\r\n\t\t\tderivatives: false,\r\n\t\t\t// set to use derivatives\r\n\t\t\tfragDepth: false,\r\n\t\t\t// set to use fragment depth values\r\n\t\t\tdrawBuffers: false,\r\n\t\t\t// set to use draw buffers\r\n\t\t\tshaderTextureLOD: false // set to use shader texture LOD\r\n\r\n\t\t}; // When rendered geometry doesn't include these attributes but the material does,\r\n\t\t// use these default values in WebGL. This avoids errors when buffer data is missing.\r\n\r\n\t\tthis.defaultAttributeValues = {\r\n\t\t\t'color': [1, 1, 1],\r\n\t\t\t'uv': [0, 0],\r\n\t\t\t'uv2': [0, 0]\r\n\t\t};\r\n\t\tthis.index0AttributeName = undefined;\r\n\t\tthis.uniformsNeedUpdate = false;\r\n\t\tthis.glslVersion = null;\r\n\r\n\t\tif (parameters !== undefined) {\r\n\t\t\tif (parameters.attributes !== undefined) {\r\n\t\t\t\tconsole.error('THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead.');\r\n\t\t\t}\r\n\r\n\t\t\tthis.setValues(parameters);\r\n\t\t}\r\n\t}\r\n\r\n\tShaderMaterial.prototype = Object.create(Material.prototype);\r\n\tShaderMaterial.prototype.constructor = ShaderMaterial;\r\n\tShaderMaterial.prototype.isShaderMaterial = true;\r\n\r\n\tShaderMaterial.prototype.copy = function (source) {\r\n\t\tMaterial.prototype.copy.call(this, source);\r\n\t\tthis.fragmentShader = source.fragmentShader;\r\n\t\tthis.vertexShader = source.vertexShader;\r\n\t\tthis.uniforms = cloneUniforms(source.uniforms);\r\n\t\tthis.defines = Object.assign({}, source.defines);\r\n\t\tthis.wireframe = source.wireframe;\r\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\r\n\t\tthis.lights = source.lights;\r\n\t\tthis.clipping = source.clipping;\r\n\t\tthis.skinning = source.skinning;\r\n\t\tthis.morphTargets = source.morphTargets;\r\n\t\tthis.morphNormals = source.morphNormals;\r\n\t\tthis.extensions = Object.assign({}, source.extensions);\r\n\t\tthis.glslVersion = source.glslVersion;\r\n\t\treturn this;\r\n\t};\r\n\r\n\tShaderMaterial.prototype.toJSON = function (meta) {\r\n\t\tvar data = Material.prototype.toJSON.call(this, meta);\r\n\t\tdata.glslVersion = this.glslVersion;\r\n\t\tdata.uniforms = {};\r\n\r\n\t\tfor (var name in this.uniforms) {\r\n\t\t\tvar uniform = this.uniforms[name];\r\n\t\t\tvar value = uniform.value;\r\n\r\n\t\t\tif (value && value.isTexture) {\r\n\t\t\t\tdata.uniforms[name] = {\r\n\t\t\t\t\ttype: 't',\r\n\t\t\t\t\tvalue: value.toJSON(meta).uuid\r\n\t\t\t\t};\r\n\t\t\t} else if (value && value.isColor) {\r\n\t\t\t\tdata.uniforms[name] = {\r\n\t\t\t\t\ttype: 'c',\r\n\t\t\t\t\tvalue: value.getHex()\r\n\t\t\t\t};\r\n\t\t\t} else if (value && value.isVector2) {\r\n\t\t\t\tdata.uniforms[name] = {\r\n\t\t\t\t\ttype: 'v2',\r\n\t\t\t\t\tvalue: value.toArray()\r\n\t\t\t\t};\r\n\t\t\t} else if (value && value.isVector3) {\r\n\t\t\t\tdata.uniforms[name] = {\r\n\t\t\t\t\ttype: 'v3',\r\n\t\t\t\t\tvalue: value.toArray()\r\n\t\t\t\t};\r\n\t\t\t} else if (value && value.isVector4) {\r\n\t\t\t\tdata.uniforms[name] = {\r\n\t\t\t\t\ttype: 'v4',\r\n\t\t\t\t\tvalue: value.toArray()\r\n\t\t\t\t};\r\n\t\t\t} else if (value && value.isMatrix3) {\r\n\t\t\t\tdata.uniforms[name] = {\r\n\t\t\t\t\ttype: 'm3',\r\n\t\t\t\t\tvalue: value.toArray()\r\n\t\t\t\t};\r\n\t\t\t} else if (value && value.isMatrix4) {\r\n\t\t\t\tdata.uniforms[name] = {\r\n\t\t\t\t\ttype: 'm4',\r\n\t\t\t\t\tvalue: value.toArray()\r\n\t\t\t\t};\r\n\t\t\t} else {\r\n\t\t\t\tdata.uniforms[name] = {\r\n\t\t\t\t\tvalue: value\r\n\t\t\t\t}; // note: the array variants v2v, v3v, v4v, m4v and tv are not supported so far\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (Object.keys(this.defines).length > 0) data.defines = this.defines;\r\n\t\tdata.vertexShader = this.vertexShader;\r\n\t\tdata.fragmentShader = this.fragmentShader;\r\n\t\tvar extensions = {};\r\n\r\n\t\tfor (var key in this.extensions) {\r\n\t\t\tif (this.extensions[key] === true) extensions[key] = true;\r\n\t\t}\r\n\r\n\t\tif (Object.keys(extensions).length > 0) data.extensions = extensions;\r\n\t\treturn data;\r\n\t};\r\n\r\n\tfunction Camera() {\r\n\t\tObject3D.call(this);\r\n\t\tthis.type = 'Camera';\r\n\t\tthis.matrixWorldInverse = new Matrix4();\r\n\t\tthis.projectionMatrix = new Matrix4();\r\n\t\tthis.projectionMatrixInverse = new Matrix4();\r\n\t}\r\n\r\n\tCamera.prototype = Object.assign(Object.create(Object3D.prototype), {\r\n\t\tconstructor: Camera,\r\n\t\tisCamera: true,\r\n\t\tcopy: function copy(source, recursive) {\r\n\t\t\tObject3D.prototype.copy.call(this, source, recursive);\r\n\t\t\tthis.matrixWorldInverse.copy(source.matrixWorldInverse);\r\n\t\t\tthis.projectionMatrix.copy(source.projectionMatrix);\r\n\t\t\tthis.projectionMatrixInverse.copy(source.projectionMatrixInverse);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tgetWorldDirection: function getWorldDirection(target) {\r\n\t\t\tif (target === undefined) {\r\n\t\t\t\tconsole.warn('THREE.Camera: .getWorldDirection() target is now required');\r\n\t\t\t\ttarget = new Vector3();\r\n\t\t\t}\r\n\r\n\t\t\tthis.updateWorldMatrix(true, false);\r\n\t\t\tvar e = this.matrixWorld.elements;\r\n\t\t\treturn target.set(-e[8], -e[9], -e[10]).normalize();\r\n\t\t},\r\n\t\tupdateMatrixWorld: function updateMatrixWorld(force) {\r\n\t\t\tObject3D.prototype.updateMatrixWorld.call(this, force);\r\n\t\t\tthis.matrixWorldInverse.copy(this.matrixWorld).invert();\r\n\t\t},\r\n\t\tupdateWorldMatrix: function updateWorldMatrix(updateParents, updateChildren) {\r\n\t\t\tObject3D.prototype.updateWorldMatrix.call(this, updateParents, updateChildren);\r\n\t\t\tthis.matrixWorldInverse.copy(this.matrixWorld).invert();\r\n\t\t},\r\n\t\tclone: function clone() {\r\n\t\t\treturn new this.constructor().copy(this);\r\n\t\t}\r\n\t});\r\n\r\n\tfunction PerspectiveCamera(fov, aspect, near, far) {\r\n\t\tif (fov === void 0) {\r\n\t\t\tfov = 50;\r\n\t\t}\r\n\r\n\t\tif (aspect === void 0) {\r\n\t\t\taspect = 1;\r\n\t\t}\r\n\r\n\t\tif (near === void 0) {\r\n\t\t\tnear = 0.1;\r\n\t\t}\r\n\r\n\t\tif (far === void 0) {\r\n\t\t\tfar = 2000;\r\n\t\t}\r\n\r\n\t\tCamera.call(this);\r\n\t\tthis.type = 'PerspectiveCamera';\r\n\t\tthis.fov = fov;\r\n\t\tthis.zoom = 1;\r\n\t\tthis.near = near;\r\n\t\tthis.far = far;\r\n\t\tthis.focus = 10;\r\n\t\tthis.aspect = aspect;\r\n\t\tthis.view = null;\r\n\t\tthis.filmGauge = 35; // width of the film (default in millimeters)\r\n\r\n\t\tthis.filmOffset = 0; // horizontal film offset (same unit as gauge)\r\n\r\n\t\tthis.updateProjectionMatrix();\r\n\t}\r\n\r\n\tPerspectiveCamera.prototype = Object.assign(Object.create(Camera.prototype), {\r\n\t\tconstructor: PerspectiveCamera,\r\n\t\tisPerspectiveCamera: true,\r\n\t\tcopy: function copy(source, recursive) {\r\n\t\t\tCamera.prototype.copy.call(this, source, recursive);\r\n\t\t\tthis.fov = source.fov;\r\n\t\t\tthis.zoom = source.zoom;\r\n\t\t\tthis.near = source.near;\r\n\t\t\tthis.far = source.far;\r\n\t\t\tthis.focus = source.focus;\r\n\t\t\tthis.aspect = source.aspect;\r\n\t\t\tthis.view = source.view === null ? null : Object.assign({}, source.view);\r\n\t\t\tthis.filmGauge = source.filmGauge;\r\n\t\t\tthis.filmOffset = source.filmOffset;\r\n\t\t\treturn this;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Sets the FOV by focal length in respect to the current .filmGauge.\r\n\t\t *\r\n\t\t * The default film gauge is 35, so that the focal length can be specified for\r\n\t\t * a 35mm (full frame) camera.\r\n\t\t *\r\n\t\t * Values for focal length and film gauge must have the same unit.\r\n\t\t */\r\n\t\tsetFocalLength: function setFocalLength(focalLength) {\r\n\t\t\t// see http://www.bobatkins.com/photography/technical/field_of_view.html\r\n\t\t\tvar vExtentSlope = 0.5 * this.getFilmHeight() / focalLength;\r\n\t\t\tthis.fov = MathUtils.RAD2DEG * 2 * Math.atan(vExtentSlope);\r\n\t\t\tthis.updateProjectionMatrix();\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Calculates the focal length from the current .fov and .filmGauge.\r\n\t\t */\r\n\t\tgetFocalLength: function getFocalLength() {\r\n\t\t\tvar vExtentSlope = Math.tan(MathUtils.DEG2RAD * 0.5 * this.fov);\r\n\t\t\treturn 0.5 * this.getFilmHeight() / vExtentSlope;\r\n\t\t},\r\n\t\tgetEffectiveFOV: function getEffectiveFOV() {\r\n\t\t\treturn MathUtils.RAD2DEG * 2 * Math.atan(Math.tan(MathUtils.DEG2RAD * 0.5 * this.fov) / this.zoom);\r\n\t\t},\r\n\t\tgetFilmWidth: function getFilmWidth() {\r\n\t\t\t// film not completely covered in portrait format (aspect < 1)\r\n\t\t\treturn this.filmGauge * Math.min(this.aspect, 1);\r\n\t\t},\r\n\t\tgetFilmHeight: function getFilmHeight() {\r\n\t\t\t// film not completely covered in landscape format (aspect > 1)\r\n\t\t\treturn this.filmGauge / Math.max(this.aspect, 1);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Sets an offset in a larger frustum. This is useful for multi-window or\r\n\t\t * multi-monitor/multi-machine setups.\r\n\t\t *\r\n\t\t * For example, if you have 3x2 monitors and each monitor is 1920x1080 and\r\n\t\t * the monitors are in grid like this\r\n\t\t *\r\n\t\t *\t +---+---+---+\r\n\t\t *\t | A | B | C |\r\n\t\t *\t +---+---+---+\r\n\t\t *\t | D | E | F |\r\n\t\t *\t +---+---+---+\r\n\t\t *\r\n\t\t * then for each monitor you would call it like this\r\n\t\t *\r\n\t\t *\t const w = 1920;\r\n\t\t *\t const h = 1080;\r\n\t\t *\t const fullWidth = w * 3;\r\n\t\t *\t const fullHeight = h * 2;\r\n\t\t *\r\n\t\t *\t --A--\r\n\t\t *\t camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 0, w, h );\r\n\t\t *\t --B--\r\n\t\t *\t camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 0, w, h );\r\n\t\t *\t --C--\r\n\t\t *\t camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 0, w, h );\r\n\t\t *\t --D--\r\n\t\t *\t camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 1, w, h );\r\n\t\t *\t --E--\r\n\t\t *\t camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 1, w, h );\r\n\t\t *\t --F--\r\n\t\t *\t camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 1, w, h );\r\n\t\t *\r\n\t\t *\t Note there is no reason monitors have to be the same size or in a grid.\r\n\t\t */\r\n\t\tsetViewOffset: function setViewOffset(fullWidth, fullHeight, x, y, width, height) {\r\n\t\t\tthis.aspect = fullWidth / fullHeight;\r\n\r\n\t\t\tif (this.view === null) {\r\n\t\t\t\tthis.view = {\r\n\t\t\t\t\tenabled: true,\r\n\t\t\t\t\tfullWidth: 1,\r\n\t\t\t\t\tfullHeight: 1,\r\n\t\t\t\t\toffsetX: 0,\r\n\t\t\t\t\toffsetY: 0,\r\n\t\t\t\t\twidth: 1,\r\n\t\t\t\t\theight: 1\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tthis.view.enabled = true;\r\n\t\t\tthis.view.fullWidth = fullWidth;\r\n\t\t\tthis.view.fullHeight = fullHeight;\r\n\t\t\tthis.view.offsetX = x;\r\n\t\t\tthis.view.offsetY = y;\r\n\t\t\tthis.view.width = width;\r\n\t\t\tthis.view.height = height;\r\n\t\t\tthis.updateProjectionMatrix();\r\n\t\t},\r\n\t\tclearViewOffset: function clearViewOffset() {\r\n\t\t\tif (this.view !== null) {\r\n\t\t\t\tthis.view.enabled = false;\r\n\t\t\t}\r\n\r\n\t\t\tthis.updateProjectionMatrix();\r\n\t\t},\r\n\t\tupdateProjectionMatrix: function updateProjectionMatrix() {\r\n\t\t\tvar near = this.near;\r\n\t\t\tvar top = near * Math.tan(MathUtils.DEG2RAD * 0.5 * this.fov) / this.zoom;\r\n\t\t\tvar height = 2 * top;\r\n\t\t\tvar width = this.aspect * height;\r\n\t\t\tvar left = -0.5 * width;\r\n\t\t\tvar view = this.view;\r\n\r\n\t\t\tif (this.view !== null && this.view.enabled) {\r\n\t\t\t\tvar fullWidth = view.fullWidth,\r\n\t\t\t\t\t\tfullHeight = view.fullHeight;\r\n\t\t\t\tleft += view.offsetX * width / fullWidth;\r\n\t\t\t\ttop -= view.offsetY * height / fullHeight;\r\n\t\t\t\twidth *= view.width / fullWidth;\r\n\t\t\t\theight *= view.height / fullHeight;\r\n\t\t\t}\r\n\r\n\t\t\tvar skew = this.filmOffset;\r\n\t\t\tif (skew !== 0) left += near * skew / this.getFilmWidth();\r\n\t\t\tthis.projectionMatrix.makePerspective(left, left + width, top, top - height, near, this.far);\r\n\t\t\tthis.projectionMatrixInverse.copy(this.projectionMatrix).invert();\r\n\t\t},\r\n\t\ttoJSON: function toJSON(meta) {\r\n\t\t\tvar data = Object3D.prototype.toJSON.call(this, meta);\r\n\t\t\tdata.object.fov = this.fov;\r\n\t\t\tdata.object.zoom = this.zoom;\r\n\t\t\tdata.object.near = this.near;\r\n\t\t\tdata.object.far = this.far;\r\n\t\t\tdata.object.focus = this.focus;\r\n\t\t\tdata.object.aspect = this.aspect;\r\n\t\t\tif (this.view !== null) data.object.view = Object.assign({}, this.view);\r\n\t\t\tdata.object.filmGauge = this.filmGauge;\r\n\t\t\tdata.object.filmOffset = this.filmOffset;\r\n\t\t\treturn data;\r\n\t\t}\r\n\t});\r\n\r\n\tvar fov = 90,\r\n\t\t\taspect = 1;\r\n\r\n\tfunction CubeCamera(near, far, renderTarget) {\r\n\t\tObject3D.call(this);\r\n\t\tthis.type = 'CubeCamera';\r\n\r\n\t\tif (renderTarget.isWebGLCubeRenderTarget !== true) {\r\n\t\t\tconsole.error('THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.renderTarget = renderTarget;\r\n\t\tvar cameraPX = new PerspectiveCamera(fov, aspect, near, far);\r\n\t\tcameraPX.layers = this.layers;\r\n\t\tcameraPX.up.set(0, -1, 0);\r\n\t\tcameraPX.lookAt(new Vector3(1, 0, 0));\r\n\t\tthis.add(cameraPX);\r\n\t\tvar cameraNX = new PerspectiveCamera(fov, aspect, near, far);\r\n\t\tcameraNX.layers = this.layers;\r\n\t\tcameraNX.up.set(0, -1, 0);\r\n\t\tcameraNX.lookAt(new Vector3(-1, 0, 0));\r\n\t\tthis.add(cameraNX);\r\n\t\tvar cameraPY = new PerspectiveCamera(fov, aspect, near, far);\r\n\t\tcameraPY.layers = this.layers;\r\n\t\tcameraPY.up.set(0, 0, 1);\r\n\t\tcameraPY.lookAt(new Vector3(0, 1, 0));\r\n\t\tthis.add(cameraPY);\r\n\t\tvar cameraNY = new PerspectiveCamera(fov, aspect, near, far);\r\n\t\tcameraNY.layers = this.layers;\r\n\t\tcameraNY.up.set(0, 0, -1);\r\n\t\tcameraNY.lookAt(new Vector3(0, -1, 0));\r\n\t\tthis.add(cameraNY);\r\n\t\tvar cameraPZ = new PerspectiveCamera(fov, aspect, near, far);\r\n\t\tcameraPZ.layers = this.layers;\r\n\t\tcameraPZ.up.set(0, -1, 0);\r\n\t\tcameraPZ.lookAt(new Vector3(0, 0, 1));\r\n\t\tthis.add(cameraPZ);\r\n\t\tvar cameraNZ = new PerspectiveCamera(fov, aspect, near, far);\r\n\t\tcameraNZ.layers = this.layers;\r\n\t\tcameraNZ.up.set(0, -1, 0);\r\n\t\tcameraNZ.lookAt(new Vector3(0, 0, -1));\r\n\t\tthis.add(cameraNZ);\r\n\r\n\t\tthis.update = function (renderer, scene) {\r\n\t\t\tif (this.parent === null) this.updateMatrixWorld();\r\n\t\t\tvar currentXrEnabled = renderer.xr.enabled;\r\n\t\t\tvar currentRenderTarget = renderer.getRenderTarget();\r\n\t\t\trenderer.xr.enabled = false;\r\n\t\t\tvar generateMipmaps = renderTarget.texture.generateMipmaps;\r\n\t\t\trenderTarget.texture.generateMipmaps = false;\r\n\t\t\trenderer.setRenderTarget(renderTarget, 0);\r\n\t\t\trenderer.render(scene, cameraPX);\r\n\t\t\trenderer.setRenderTarget(renderTarget, 1);\r\n\t\t\trenderer.render(scene, cameraNX);\r\n\t\t\trenderer.setRenderTarget(renderTarget, 2);\r\n\t\t\trenderer.render(scene, cameraPY);\r\n\t\t\trenderer.setRenderTarget(renderTarget, 3);\r\n\t\t\trenderer.render(scene, cameraNY);\r\n\t\t\trenderer.setRenderTarget(renderTarget, 4);\r\n\t\t\trenderer.render(scene, cameraPZ);\r\n\t\t\trenderTarget.texture.generateMipmaps = generateMipmaps;\r\n\t\t\trenderer.setRenderTarget(renderTarget, 5);\r\n\t\t\trenderer.render(scene, cameraNZ);\r\n\t\t\trenderer.setRenderTarget(currentRenderTarget);\r\n\t\t\trenderer.xr.enabled = currentXrEnabled;\r\n\t\t};\r\n\t}\r\n\r\n\tCubeCamera.prototype = Object.create(Object3D.prototype);\r\n\tCubeCamera.prototype.constructor = CubeCamera;\r\n\r\n\tfunction CubeTexture(images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding) {\r\n\t\timages = images !== undefined ? images : [];\r\n\t\tmapping = mapping !== undefined ? mapping : CubeReflectionMapping;\r\n\t\tformat = format !== undefined ? format : RGBFormat;\r\n\t\tTexture.call(this, images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding);\r\n\t\tthis.flipY = false; // Why CubeTexture._needsFlipEnvMap is necessary:\r\n\t\t//\r\n\t\t// By convention -- likely based on the RenderMan spec from the 1990's -- cube maps are specified by WebGL (and three.js)\r\n\t\t// in a coordinate system in which positive-x is to the right when looking up the positive-z axis -- in other words,\r\n\t\t// in a left-handed coordinate system. By continuing this convention, preexisting cube maps continued to render correctly.\r\n\t\t// three.js uses a right-handed coordinate system. So environment maps used in three.js appear to have px and nx swapped\r\n\t\t// and the flag _needsFlipEnvMap controls this conversion. The flip is not required (and thus _needsFlipEnvMap is set to false)\r\n\t\t// when using WebGLCubeRenderTarget.texture as a cube texture.\r\n\r\n\t\tthis._needsFlipEnvMap = true;\r\n\t}\r\n\r\n\tCubeTexture.prototype = Object.create(Texture.prototype);\r\n\tCubeTexture.prototype.constructor = CubeTexture;\r\n\tCubeTexture.prototype.isCubeTexture = true;\r\n\tObject.defineProperty(CubeTexture.prototype, 'images', {\r\n\t\tget: function get() {\r\n\t\t\treturn this.image;\r\n\t\t},\r\n\t\tset: function set(value) {\r\n\t\t\tthis.image = value;\r\n\t\t}\r\n\t});\r\n\r\n\tfunction WebGLCubeRenderTarget(size, options, dummy) {\r\n\t\tif (Number.isInteger(options)) {\r\n\t\t\tconsole.warn('THREE.WebGLCubeRenderTarget: constructor signature is now WebGLCubeRenderTarget( size, options )');\r\n\t\t\toptions = dummy;\r\n\t\t}\r\n\r\n\t\tWebGLRenderTarget.call(this, size, size, options);\r\n\t\toptions = options || {};\r\n\t\tthis.texture = new CubeTexture(undefined, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.encoding);\r\n\t\tthis.texture._needsFlipEnvMap = false;\r\n\t}\r\n\r\n\tWebGLCubeRenderTarget.prototype = Object.create(WebGLRenderTarget.prototype);\r\n\tWebGLCubeRenderTarget.prototype.constructor = WebGLCubeRenderTarget;\r\n\tWebGLCubeRenderTarget.prototype.isWebGLCubeRenderTarget = true;\r\n\r\n\tWebGLCubeRenderTarget.prototype.fromEquirectangularTexture = function (renderer, texture) {\r\n\t\tthis.texture.type = texture.type;\r\n\t\tthis.texture.format = RGBAFormat; // see #18859\r\n\r\n\t\tthis.texture.encoding = texture.encoding;\r\n\t\tthis.texture.generateMipmaps = texture.generateMipmaps;\r\n\t\tthis.texture.minFilter = texture.minFilter;\r\n\t\tthis.texture.magFilter = texture.magFilter;\r\n\t\tvar shader = {\r\n\t\t\tuniforms: {\r\n\t\t\t\ttEquirect: {\r\n\t\t\t\t\tvalue: null\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tvertexShader:\r\n\t\t\t/* glsl */\r\n\t\t\t\"\\n\\n\\t\\t\\tvarying vec3 vWorldDirection;\\n\\n\\t\\t\\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\n\\n\\t\\t\\t\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\n\\n\\t\\t\\t}\\n\\n\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\n\\t\\t\\t\\t#include \\n\\t\\t\\t\\t#include \\n\\n\\t\\t\\t}\\n\\t\\t\",\r\n\t\t\tfragmentShader:\r\n\t\t\t/* glsl */\r\n\t\t\t\"\\n\\n\\t\\t\\tuniform sampler2D tEquirect;\\n\\n\\t\\t\\tvarying vec3 vWorldDirection;\\n\\n\\t\\t\\t#include \\n\\n\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\tvec3 direction = normalize( vWorldDirection );\\n\\n\\t\\t\\t\\tvec2 sampleUV = equirectUv( direction );\\n\\n\\t\\t\\t\\tgl_FragColor = texture2D( tEquirect, sampleUV );\\n\\n\\t\\t\\t}\\n\\t\\t\"\r\n\t\t};\r\n\t\tvar geometry = new BoxBufferGeometry(5, 5, 5);\r\n\t\tvar material = new ShaderMaterial({\r\n\t\t\tname: 'CubemapFromEquirect',\r\n\t\t\tuniforms: cloneUniforms(shader.uniforms),\r\n\t\t\tvertexShader: shader.vertexShader,\r\n\t\t\tfragmentShader: shader.fragmentShader,\r\n\t\t\tside: BackSide,\r\n\t\t\tblending: NoBlending\r\n\t\t});\r\n\t\tmaterial.uniforms.tEquirect.value = texture;\r\n\t\tvar mesh = new Mesh(geometry, material);\r\n\t\tvar currentMinFilter = texture.minFilter; // Avoid blurred poles\r\n\r\n\t\tif (texture.minFilter === LinearMipmapLinearFilter) texture.minFilter = LinearFilter;\r\n\t\tvar camera = new CubeCamera(1, 10, this);\r\n\t\tcamera.update(renderer, mesh);\r\n\t\ttexture.minFilter = currentMinFilter;\r\n\t\tmesh.geometry.dispose();\r\n\t\tmesh.material.dispose();\r\n\t\treturn this;\r\n\t};\r\n\r\n\tWebGLCubeRenderTarget.prototype.clear = function (renderer, color, depth, stencil) {\r\n\t\tvar currentRenderTarget = renderer.getRenderTarget();\r\n\r\n\t\tfor (var i = 0; i < 6; i++) {\r\n\t\t\trenderer.setRenderTarget(this, i);\r\n\t\t\trenderer.clear(color, depth, stencil);\r\n\t\t}\r\n\r\n\t\trenderer.setRenderTarget(currentRenderTarget);\r\n\t};\r\n\r\n\tfunction DataTexture(data, width, height, format, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, encoding) {\r\n\t\tTexture.call(this, null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding);\r\n\t\tthis.image = {\r\n\t\t\tdata: data || null,\r\n\t\t\twidth: width || 1,\r\n\t\t\theight: height || 1\r\n\t\t};\r\n\t\tthis.magFilter = magFilter !== undefined ? magFilter : NearestFilter;\r\n\t\tthis.minFilter = minFilter !== undefined ? minFilter : NearestFilter;\r\n\t\tthis.generateMipmaps = false;\r\n\t\tthis.flipY = false;\r\n\t\tthis.unpackAlignment = 1;\r\n\t\tthis.needsUpdate = true;\r\n\t}\r\n\r\n\tDataTexture.prototype = Object.create(Texture.prototype);\r\n\tDataTexture.prototype.constructor = DataTexture;\r\n\tDataTexture.prototype.isDataTexture = true;\r\n\r\n\tvar _sphere$1 = /*@__PURE__*/new Sphere();\r\n\r\n\tvar _vector$5 = /*@__PURE__*/new Vector3();\r\n\r\n\tvar Frustum = /*#__PURE__*/function () {\r\n\t\tfunction Frustum(p0, p1, p2, p3, p4, p5) {\r\n\t\t\tthis.planes = [p0 !== undefined ? p0 : new Plane(), p1 !== undefined ? p1 : new Plane(), p2 !== undefined ? p2 : new Plane(), p3 !== undefined ? p3 : new Plane(), p4 !== undefined ? p4 : new Plane(), p5 !== undefined ? p5 : new Plane()];\r\n\t\t}\r\n\r\n\t\tvar _proto = Frustum.prototype;\r\n\r\n\t\t_proto.set = function set(p0, p1, p2, p3, p4, p5) {\r\n\t\t\tvar planes = this.planes;\r\n\t\t\tplanes[0].copy(p0);\r\n\t\t\tplanes[1].copy(p1);\r\n\t\t\tplanes[2].copy(p2);\r\n\t\t\tplanes[3].copy(p3);\r\n\t\t\tplanes[4].copy(p4);\r\n\t\t\tplanes[5].copy(p5);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.clone = function clone() {\r\n\t\t\treturn new this.constructor().copy(this);\r\n\t\t};\r\n\r\n\t\t_proto.copy = function copy(frustum) {\r\n\t\t\tvar planes = this.planes;\r\n\r\n\t\t\tfor (var i = 0; i < 6; i++) {\r\n\t\t\t\tplanes[i].copy(frustum.planes[i]);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setFromProjectionMatrix = function setFromProjectionMatrix(m) {\r\n\t\t\tvar planes = this.planes;\r\n\t\t\tvar me = m.elements;\r\n\t\t\tvar me0 = me[0],\r\n\t\t\t\t\tme1 = me[1],\r\n\t\t\t\t\tme2 = me[2],\r\n\t\t\t\t\tme3 = me[3];\r\n\t\t\tvar me4 = me[4],\r\n\t\t\t\t\tme5 = me[5],\r\n\t\t\t\t\tme6 = me[6],\r\n\t\t\t\t\tme7 = me[7];\r\n\t\t\tvar me8 = me[8],\r\n\t\t\t\t\tme9 = me[9],\r\n\t\t\t\t\tme10 = me[10],\r\n\t\t\t\t\tme11 = me[11];\r\n\t\t\tvar me12 = me[12],\r\n\t\t\t\t\tme13 = me[13],\r\n\t\t\t\t\tme14 = me[14],\r\n\t\t\t\t\tme15 = me[15];\r\n\t\t\tplanes[0].setComponents(me3 - me0, me7 - me4, me11 - me8, me15 - me12).normalize();\r\n\t\t\tplanes[1].setComponents(me3 + me0, me7 + me4, me11 + me8, me15 + me12).normalize();\r\n\t\t\tplanes[2].setComponents(me3 + me1, me7 + me5, me11 + me9, me15 + me13).normalize();\r\n\t\t\tplanes[3].setComponents(me3 - me1, me7 - me5, me11 - me9, me15 - me13).normalize();\r\n\t\t\tplanes[4].setComponents(me3 - me2, me7 - me6, me11 - me10, me15 - me14).normalize();\r\n\t\t\tplanes[5].setComponents(me3 + me2, me7 + me6, me11 + me10, me15 + me14).normalize();\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.intersectsObject = function intersectsObject(object) {\r\n\t\t\tvar geometry = object.geometry;\r\n\t\t\tif (geometry.boundingSphere === null) geometry.computeBoundingSphere();\r\n\r\n\t\t\t_sphere$1.copy(geometry.boundingSphere).applyMatrix4(object.matrixWorld);\r\n\r\n\t\t\treturn this.intersectsSphere(_sphere$1);\r\n\t\t};\r\n\r\n\t\t_proto.intersectsSprite = function intersectsSprite(sprite) {\r\n\t\t\t_sphere$1.center.set(0, 0, 0);\r\n\r\n\t\t\t_sphere$1.radius = 0.7071067811865476;\r\n\r\n\t\t\t_sphere$1.applyMatrix4(sprite.matrixWorld);\r\n\r\n\t\t\treturn this.intersectsSphere(_sphere$1);\r\n\t\t};\r\n\r\n\t\t_proto.intersectsSphere = function intersectsSphere(sphere) {\r\n\t\t\tvar planes = this.planes;\r\n\t\t\tvar center = sphere.center;\r\n\t\t\tvar negRadius = -sphere.radius;\r\n\r\n\t\t\tfor (var i = 0; i < 6; i++) {\r\n\t\t\t\tvar distance = planes[i].distanceToPoint(center);\r\n\r\n\t\t\t\tif (distance < negRadius) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn true;\r\n\t\t};\r\n\r\n\t\t_proto.intersectsBox = function intersectsBox(box) {\r\n\t\t\tvar planes = this.planes;\r\n\r\n\t\t\tfor (var i = 0; i < 6; i++) {\r\n\t\t\t\tvar plane = planes[i]; // corner at max distance\r\n\r\n\t\t\t\t_vector$5.x = plane.normal.x > 0 ? box.max.x : box.min.x;\r\n\t\t\t\t_vector$5.y = plane.normal.y > 0 ? box.max.y : box.min.y;\r\n\t\t\t\t_vector$5.z = plane.normal.z > 0 ? box.max.z : box.min.z;\r\n\r\n\t\t\t\tif (plane.distanceToPoint(_vector$5) < 0) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn true;\r\n\t\t};\r\n\r\n\t\t_proto.containsPoint = function containsPoint(point) {\r\n\t\t\tvar planes = this.planes;\r\n\r\n\t\t\tfor (var i = 0; i < 6; i++) {\r\n\t\t\t\tif (planes[i].distanceToPoint(point) < 0) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn true;\r\n\t\t};\r\n\r\n\t\treturn Frustum;\r\n\t}();\r\n\r\n\tfunction WebGLAnimation() {\r\n\t\tvar context = null;\r\n\t\tvar isAnimating = false;\r\n\t\tvar animationLoop = null;\r\n\t\tvar requestId = null;\r\n\r\n\t\tfunction onAnimationFrame(time, frame) {\r\n\t\t\tanimationLoop(time, frame);\r\n\t\t\trequestId = context.requestAnimationFrame(onAnimationFrame);\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tstart: function start() {\r\n\t\t\t\tif (isAnimating === true) return;\r\n\t\t\t\tif (animationLoop === null) return;\r\n\t\t\t\trequestId = context.requestAnimationFrame(onAnimationFrame);\r\n\t\t\t\tisAnimating = true;\r\n\t\t\t},\r\n\t\t\tstop: function stop() {\r\n\t\t\t\tcontext.cancelAnimationFrame(requestId);\r\n\t\t\t\tisAnimating = false;\r\n\t\t\t},\r\n\t\t\tsetAnimationLoop: function setAnimationLoop(callback) {\r\n\t\t\t\tanimationLoop = callback;\r\n\t\t\t},\r\n\t\t\tsetContext: function setContext(value) {\r\n\t\t\t\tcontext = value;\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tfunction WebGLAttributes(gl, capabilities) {\r\n\t\tvar isWebGL2 = capabilities.isWebGL2;\r\n\t\tvar buffers = new WeakMap();\r\n\r\n\t\tfunction createBuffer(attribute, bufferType) {\r\n\t\t\tvar array = attribute.array;\r\n\t\t\tvar usage = attribute.usage;\r\n\t\t\tvar buffer = gl.createBuffer();\r\n\t\t\tgl.bindBuffer(bufferType, buffer);\r\n\t\t\tgl.bufferData(bufferType, array, usage);\r\n\t\t\tattribute.onUploadCallback();\r\n\t\t\tvar type = 5126;\r\n\r\n\t\t\tif (array instanceof Float32Array) {\r\n\t\t\t\ttype = 5126;\r\n\t\t\t} else if (array instanceof Float64Array) {\r\n\t\t\t\tconsole.warn('THREE.WebGLAttributes: Unsupported data buffer format: Float64Array.');\r\n\t\t\t} else if (array instanceof Uint16Array) {\r\n\t\t\t\tif (attribute.isFloat16BufferAttribute) {\r\n\t\t\t\t\tif (isWebGL2) {\r\n\t\t\t\t\t\ttype = 5131;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconsole.warn('THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.');\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttype = 5123;\r\n\t\t\t\t}\r\n\t\t\t} else if (array instanceof Int16Array) {\r\n\t\t\t\ttype = 5122;\r\n\t\t\t} else if (array instanceof Uint32Array) {\r\n\t\t\t\ttype = 5125;\r\n\t\t\t} else if (array instanceof Int32Array) {\r\n\t\t\t\ttype = 5124;\r\n\t\t\t} else if (array instanceof Int8Array) {\r\n\t\t\t\ttype = 5120;\r\n\t\t\t} else if (array instanceof Uint8Array) {\r\n\t\t\t\ttype = 5121;\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tbuffer: buffer,\r\n\t\t\t\ttype: type,\r\n\t\t\t\tbytesPerElement: array.BYTES_PER_ELEMENT,\r\n\t\t\t\tversion: attribute.version\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tfunction updateBuffer(buffer, attribute, bufferType) {\r\n\t\t\tvar array = attribute.array;\r\n\t\t\tvar updateRange = attribute.updateRange;\r\n\t\t\tgl.bindBuffer(bufferType, buffer);\r\n\r\n\t\t\tif (updateRange.count === -1) {\r\n\t\t\t\t// Not using update ranges\r\n\t\t\t\tgl.bufferSubData(bufferType, 0, array);\r\n\t\t\t} else {\r\n\t\t\t\tif (isWebGL2) {\r\n\t\t\t\t\tgl.bufferSubData(bufferType, updateRange.offset * array.BYTES_PER_ELEMENT, array, updateRange.offset, updateRange.count);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tgl.bufferSubData(bufferType, updateRange.offset * array.BYTES_PER_ELEMENT, array.subarray(updateRange.offset, updateRange.offset + updateRange.count));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tupdateRange.count = -1; // reset range\r\n\t\t\t}\r\n\t\t} //\r\n\r\n\r\n\t\tfunction get(attribute) {\r\n\t\t\tif (attribute.isInterleavedBufferAttribute) attribute = attribute.data;\r\n\t\t\treturn buffers.get(attribute);\r\n\t\t}\r\n\r\n\t\tfunction remove(attribute) {\r\n\t\t\tif (attribute.isInterleavedBufferAttribute) attribute = attribute.data;\r\n\t\t\tvar data = buffers.get(attribute);\r\n\r\n\t\t\tif (data) {\r\n\t\t\t\tgl.deleteBuffer(data.buffer);\r\n\t\t\t\tbuffers.delete(attribute);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction update(attribute, bufferType) {\r\n\t\t\tif (attribute.isGLBufferAttribute) {\r\n\t\t\t\tvar cached = buffers.get(attribute);\r\n\r\n\t\t\t\tif (!cached || cached.version < attribute.version) {\r\n\t\t\t\t\tbuffers.set(attribute, {\r\n\t\t\t\t\t\tbuffer: attribute.buffer,\r\n\t\t\t\t\t\ttype: attribute.type,\r\n\t\t\t\t\t\tbytesPerElement: attribute.elementSize,\r\n\t\t\t\t\t\tversion: attribute.version\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (attribute.isInterleavedBufferAttribute) attribute = attribute.data;\r\n\t\t\tvar data = buffers.get(attribute);\r\n\r\n\t\t\tif (data === undefined) {\r\n\t\t\t\tbuffers.set(attribute, createBuffer(attribute, bufferType));\r\n\t\t\t} else if (data.version < attribute.version) {\r\n\t\t\t\tupdateBuffer(data.buffer, attribute, bufferType);\r\n\t\t\t\tdata.version = attribute.version;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tget: get,\r\n\t\t\tremove: remove,\r\n\t\t\tupdate: update\r\n\t\t};\r\n\t}\r\n\r\n\tvar PlaneBufferGeometry = /*#__PURE__*/function (_BufferGeometry) {\r\n\t\t_inheritsLoose(PlaneBufferGeometry, _BufferGeometry);\r\n\r\n\t\tfunction PlaneBufferGeometry(width, height, widthSegments, heightSegments) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\tif (width === void 0) {\r\n\t\t\t\twidth = 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (height === void 0) {\r\n\t\t\t\theight = 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (widthSegments === void 0) {\r\n\t\t\t\twidthSegments = 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (heightSegments === void 0) {\r\n\t\t\t\theightSegments = 1;\r\n\t\t\t}\r\n\r\n\t\t\t_this = _BufferGeometry.call(this) || this;\r\n\t\t\t_this.type = 'PlaneBufferGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\twidth: width,\r\n\t\t\t\theight: height,\r\n\t\t\t\twidthSegments: widthSegments,\r\n\t\t\t\theightSegments: heightSegments\r\n\t\t\t};\r\n\t\t\tvar width_half = width / 2;\r\n\t\t\tvar height_half = height / 2;\r\n\t\t\tvar gridX = Math.floor(widthSegments);\r\n\t\t\tvar gridY = Math.floor(heightSegments);\r\n\t\t\tvar gridX1 = gridX + 1;\r\n\t\t\tvar gridY1 = gridY + 1;\r\n\t\t\tvar segment_width = width / gridX;\r\n\t\t\tvar segment_height = height / gridY; //\r\n\r\n\t\t\tvar indices = [];\r\n\t\t\tvar vertices = [];\r\n\t\t\tvar normals = [];\r\n\t\t\tvar uvs = [];\r\n\r\n\t\t\tfor (var iy = 0; iy < gridY1; iy++) {\r\n\t\t\t\tvar y = iy * segment_height - height_half;\r\n\r\n\t\t\t\tfor (var ix = 0; ix < gridX1; ix++) {\r\n\t\t\t\t\tvar x = ix * segment_width - width_half;\r\n\t\t\t\t\tvertices.push(x, -y, 0);\r\n\t\t\t\t\tnormals.push(0, 0, 1);\r\n\t\t\t\t\tuvs.push(ix / gridX);\r\n\t\t\t\t\tuvs.push(1 - iy / gridY);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfor (var _iy = 0; _iy < gridY; _iy++) {\r\n\t\t\t\tfor (var _ix = 0; _ix < gridX; _ix++) {\r\n\t\t\t\t\tvar a = _ix + gridX1 * _iy;\r\n\t\t\t\t\tvar b = _ix + gridX1 * (_iy + 1);\r\n\t\t\t\t\tvar c = _ix + 1 + gridX1 * (_iy + 1);\r\n\t\t\t\t\tvar d = _ix + 1 + gridX1 * _iy;\r\n\t\t\t\t\tindices.push(a, b, d);\r\n\t\t\t\t\tindices.push(b, c, d);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t_this.setIndex(indices);\r\n\r\n\t\t\t_this.setAttribute('position', new Float32BufferAttribute(vertices, 3));\r\n\r\n\t\t\t_this.setAttribute('normal', new Float32BufferAttribute(normals, 3));\r\n\r\n\t\t\t_this.setAttribute('uv', new Float32BufferAttribute(uvs, 2));\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn PlaneBufferGeometry;\r\n\t}(BufferGeometry);\r\n\r\n\tvar alphamap_fragment = \"#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\\n#endif\";\r\n\r\n\tvar alphamap_pars_fragment = \"#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\";\r\n\r\n\tvar alphatest_fragment = \"#ifdef ALPHATEST\\n\\tif ( diffuseColor.a < ALPHATEST ) discard;\\n#endif\";\r\n\r\n\tvar 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( STANDARD )\\n\\t\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\t\\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.specularRoughness );\\n\\t#endif\\n#endif\";\r\n\r\n\tvar aomap_pars_fragment = \"#ifdef USE_AOMAP\\n\\tuniform sampler2D aoMap;\\n\\tuniform float aoMapIntensity;\\n#endif\";\r\n\r\n\tvar begin_vertex = \"vec3 transformed = vec3( position );\";\r\n\r\n\tvar beginnormal_vertex = \"vec3 objectNormal = vec3( normal );\\n#ifdef USE_TANGENT\\n\\tvec3 objectTangent = vec3( tangent.xyz );\\n#endif\";\r\n\r\n\tvar 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}\\nvec3 F_Schlick_RoughnessDependent( const in vec3 F0, const in float dotNV, const in float roughness ) {\\n\\tfloat fresnel = exp2( ( -5.55473 * dotNV - 6.98316 ) * dotNV );\\n\\tvec3 Fr = max( vec3( 1.0 - roughness ), F0 ) - F0;\\n\\treturn Fr * fresnel + F0;\\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 vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\\n\\tfloat alpha = pow2( roughness );\\n\\tvec3 halfDir = normalize( incidentLight.direction + viewDir );\\n\\tfloat dotNL = saturate( dot( normal, incidentLight.direction ) );\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat dotNH = saturate( dot( 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 vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\\n\\tfloat dotNV = saturate( dot( normal, 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_RoughnessDependent( specularColor, dotNV, roughness );\\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}\\n#if defined( USE_SHEEN )\\nfloat D_Charlie(float roughness, float NoH) {\\n\\tfloat invAlpha = 1.0 / roughness;\\n\\tfloat cos2h = NoH * NoH;\\n\\tfloat sin2h = max(1.0 - cos2h, 0.0078125);\\treturn (2.0 + invAlpha) * pow(sin2h, invAlpha * 0.5) / (2.0 * PI);\\n}\\nfloat V_Neubelt(float NoV, float NoL) {\\n\\treturn saturate(1.0 / (4.0 * (NoL + NoV - NoL * NoV)));\\n}\\nvec3 BRDF_Specular_Sheen( const in float roughness, const in vec3 L, const in GeometricContext geometry, vec3 specularColor ) {\\n\\tvec3 N = geometry.normal;\\n\\tvec3 V = geometry.viewDir;\\n\\tvec3 H = normalize( V + L );\\n\\tfloat dotNH = saturate( dot( N, H ) );\\n\\treturn specularColor * D_Charlie( roughness, dotNH ) * V_Neubelt( dot(N, V), dot(N, L) );\\n}\\n#endif\";\r\n\r\n\tvar 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\";\r\n\r\n\tvar clipping_planes_fragment = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvec4 plane;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\\n\\t\\tplane = clippingPlanes[ i ];\\n\\t\\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\\t\\tbool clipped = true;\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t\\tif ( clipped ) discard;\\n\\t#endif\\n#endif\";\r\n\r\n\tvar clipping_planes_pars_fragment = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n\\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\\n#endif\";\r\n\r\n\tvar clipping_planes_pars_vertex = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n#endif\";\r\n\r\n\tvar clipping_planes_vertex = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvClipPosition = - mvPosition.xyz;\\n#endif\";\r\n\r\n\tvar color_fragment = \"#ifdef USE_COLOR\\n\\tdiffuseColor.rgb *= vColor;\\n#endif\";\r\n\r\n\tvar color_pars_fragment = \"#ifdef USE_COLOR\\n\\tvarying vec3 vColor;\\n#endif\";\r\n\r\n\tvar color_pars_vertex = \"#if defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\\n\\tvarying vec3 vColor;\\n#endif\";\r\n\r\n\tvar color_vertex = \"#if defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\\n\\tvColor = vec3( 1.0 );\\n#endif\\n#ifdef USE_COLOR\\n\\tvColor.xyz *= color.xyz;\\n#endif\\n#ifdef USE_INSTANCING_COLOR\\n\\tvColor.xyz *= instanceColor.xyz;\\n#endif\";\r\n\r\n\tvar common = \"#define PI 3.141592653589793\\n#define PI2 6.283185307179586\\n#define PI_HALF 1.5707963267948966\\n#define RECIPROCAL_PI 0.3183098861837907\\n#define RECIPROCAL_PI2 0.15915494309189535\\n#define EPSILON 1e-6\\n#ifndef saturate\\n#define saturate(a) clamp( a, 0.0, 1.0 )\\n#endif\\n#define whiteComplement(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}\\n#ifdef HIGH_PRECISION\\n\\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\\n#else\\n\\tfloat max3( vec3 v ) { return max( max( v.x, v.y ), v.z ); }\\n\\tfloat precisionSafeLength( vec3 v ) {\\n\\t\\tfloat maxComponent = max3( abs( v ) );\\n\\t\\treturn length( v / maxComponent ) * maxComponent;\\n\\t}\\n#endif\\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#ifdef CLEARCOAT\\n\\tvec3 clearcoatNormal;\\n#endif\\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}\\nbool isPerspectiveMatrix( mat4 m ) {\\n\\treturn m[ 2 ][ 3 ] == - 1.0;\\n}\\nvec2 equirectUv( in vec3 dir ) {\\n\\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\\n\\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\\n\\treturn vec2( u, v );\\n}\";\r\n\r\n\tvar cube_uv_reflection_fragment = \"#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t#define cubeUV_maxMipLevel 8.0\\n\\t#define cubeUV_minMipLevel 4.0\\n\\t#define cubeUV_maxTileSize 256.0\\n\\t#define cubeUV_minTileSize 16.0\\n\\tfloat getFace( vec3 direction ) {\\n\\t\\tvec3 absDirection = abs( direction );\\n\\t\\tfloat face = - 1.0;\\n\\t\\tif ( absDirection.x > absDirection.z ) {\\n\\t\\t\\tif ( absDirection.x > absDirection.y )\\n\\t\\t\\t\\tface = direction.x > 0.0 ? 0.0 : 3.0;\\n\\t\\t\\telse\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\t\\t} else {\\n\\t\\t\\tif ( absDirection.z > absDirection.y )\\n\\t\\t\\t\\tface = direction.z > 0.0 ? 2.0 : 5.0;\\n\\t\\t\\telse\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\t\\t}\\n\\t\\treturn face;\\n\\t}\\n\\tvec2 getUV( vec3 direction, float face ) {\\n\\t\\tvec2 uv;\\n\\t\\tif ( face == 0.0 ) {\\n\\t\\t\\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\\n\\t\\t} else if ( face == 1.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\\n\\t\\t} else if ( face == 2.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\\n\\t\\t} else if ( face == 3.0 ) {\\n\\t\\t\\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\\n\\t\\t} else if ( face == 4.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\\n\\t\\t} else {\\n\\t\\t\\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\\n\\t\\t}\\n\\t\\treturn 0.5 * ( uv + 1.0 );\\n\\t}\\n\\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\\n\\t\\tfloat face = getFace( direction );\\n\\t\\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\\n\\t\\tmipInt = max( mipInt, cubeUV_minMipLevel );\\n\\t\\tfloat faceSize = exp2( mipInt );\\n\\t\\tfloat texelSize = 1.0 / ( 3.0 * cubeUV_maxTileSize );\\n\\t\\tvec2 uv = getUV( direction, face ) * ( faceSize - 1.0 );\\n\\t\\tvec2 f = fract( uv );\\n\\t\\tuv += 0.5 - f;\\n\\t\\tif ( face > 2.0 ) {\\n\\t\\t\\tuv.y += faceSize;\\n\\t\\t\\tface -= 3.0;\\n\\t\\t}\\n\\t\\tuv.x += face * faceSize;\\n\\t\\tif ( mipInt < cubeUV_maxMipLevel ) {\\n\\t\\t\\tuv.y += 2.0 * cubeUV_maxTileSize;\\n\\t\\t}\\n\\t\\tuv.y += filterInt * 2.0 * cubeUV_minTileSize;\\n\\t\\tuv.x += 3.0 * max( 0.0, cubeUV_maxTileSize - 2.0 * faceSize );\\n\\t\\tuv *= texelSize;\\n\\t\\tvec3 tl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\n\\t\\tuv.x += texelSize;\\n\\t\\tvec3 tr = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\n\\t\\tuv.y += texelSize;\\n\\t\\tvec3 br = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\n\\t\\tuv.x -= texelSize;\\n\\t\\tvec3 bl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\n\\t\\tvec3 tm = mix( tl, tr, f.x );\\n\\t\\tvec3 bm = mix( bl, br, f.x );\\n\\t\\treturn mix( tm, bm, f.y );\\n\\t}\\n\\t#define r0 1.0\\n\\t#define v0 0.339\\n\\t#define m0 - 2.0\\n\\t#define r1 0.8\\n\\t#define v1 0.276\\n\\t#define m1 - 1.0\\n\\t#define r4 0.4\\n\\t#define v4 0.046\\n\\t#define m4 2.0\\n\\t#define r5 0.305\\n\\t#define v5 0.016\\n\\t#define m5 3.0\\n\\t#define r6 0.21\\n\\t#define v6 0.0038\\n\\t#define m6 4.0\\n\\tfloat roughnessToMip( float roughness ) {\\n\\t\\tfloat mip = 0.0;\\n\\t\\tif ( roughness >= r1 ) {\\n\\t\\t\\tmip = ( r0 - roughness ) * ( m1 - m0 ) / ( r0 - r1 ) + m0;\\n\\t\\t} else if ( roughness >= r4 ) {\\n\\t\\t\\tmip = ( r1 - roughness ) * ( m4 - m1 ) / ( r1 - r4 ) + m1;\\n\\t\\t} else if ( roughness >= r5 ) {\\n\\t\\t\\tmip = ( r4 - roughness ) * ( m5 - m4 ) / ( r4 - r5 ) + m4;\\n\\t\\t} else if ( roughness >= r6 ) {\\n\\t\\t\\tmip = ( r5 - roughness ) * ( m6 - m5 ) / ( r5 - r6 ) + m5;\\n\\t\\t} else {\\n\\t\\t\\tmip = - 2.0 * log2( 1.16 * roughness );\\t\\t}\\n\\t\\treturn mip;\\n\\t}\\n\\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\\n\\t\\tfloat mip = clamp( roughnessToMip( roughness ), m0, cubeUV_maxMipLevel );\\n\\t\\tfloat mipF = fract( mip );\\n\\t\\tfloat mipInt = floor( mip );\\n\\t\\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\\n\\t\\tif ( mipF == 0.0 ) {\\n\\t\\t\\treturn vec4( color0, 1.0 );\\n\\t\\t} else {\\n\\t\\t\\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\\n\\t\\t\\treturn vec4( mix( color0, color1, mipF ), 1.0 );\\n\\t\\t}\\n\\t}\\n#endif\";\r\n\r\n\tvar defaultnormal_vertex = \"vec3 transformedNormal = objectNormal;\\n#ifdef USE_INSTANCING\\n\\tmat3 m = mat3( instanceMatrix );\\n\\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\\n\\ttransformedNormal = m * transformedNormal;\\n#endif\\ntransformedNormal = normalMatrix * transformedNormal;\\n#ifdef FLIP_SIDED\\n\\ttransformedNormal = - transformedNormal;\\n#endif\\n#ifdef USE_TANGENT\\n\\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\n\\t#ifdef FLIP_SIDED\\n\\t\\ttransformedTangent = - transformedTangent;\\n\\t#endif\\n#endif\";\r\n\r\n\tvar displacementmap_pars_vertex = \"#ifdef USE_DISPLACEMENTMAP\\n\\tuniform sampler2D displacementMap;\\n\\tuniform float displacementScale;\\n\\tuniform float displacementBias;\\n#endif\";\r\n\r\n\tvar displacementmap_vertex = \"#ifdef USE_DISPLACEMENTMAP\\n\\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\\n#endif\";\r\n\r\n\tvar emissivemap_fragment = \"#ifdef USE_EMISSIVEMAP\\n\\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\\n\\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\\n\\ttotalEmissiveRadiance *= emissiveColor.rgb;\\n#endif\";\r\n\r\n\tvar emissivemap_pars_fragment = \"#ifdef USE_EMISSIVEMAP\\n\\tuniform sampler2D emissiveMap;\\n#endif\";\r\n\r\n\tvar encodings_fragment = \"gl_FragColor = linearToOutputTexel( gl_FragColor );\";\r\n\r\n\tvar 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 = clamp( floor( D ) / 255.0, 0.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}\";\r\n\r\n\tvar envmap_fragment = \"#ifdef USE_ENVMAP\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvec3 cameraToFrag;\\n\\t\\tif ( isOrthographic ) {\\n\\t\\t\\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\t\\t} else {\\n\\t\\t\\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\\n\\t\\t}\\n\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( cameraToFrag, 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_CUBE_UV )\\n\\t\\tvec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 );\\n\\t#else\\n\\t\\tvec4 envColor = vec4( 0.0 );\\n\\t#endif\\n\\t#ifndef ENVMAP_TYPE_CUBE_UV\\n\\t\\tenvColor = envMapTexelToLinear( envColor );\\n\\t#endif\\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\";\r\n\r\n\tvar envmap_common_pars_fragment = \"#ifdef USE_ENVMAP\\n\\tuniform float envMapIntensity;\\n\\tuniform float flipEnvMap;\\n\\tuniform int maxMipLevel;\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tuniform samplerCube envMap;\\n\\t#else\\n\\t\\tuniform sampler2D envMap;\\n\\t#endif\\n\\t\\n#endif\";\r\n\r\n\tvar envmap_pars_fragment = \"#ifdef USE_ENVMAP\\n\\tuniform float reflectivity;\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\\n\\t\\t#define ENV_WORLDPOS\\n\\t#endif\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t\\tuniform float refractionRatio;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t#endif\\n#endif\";\r\n\r\n\tvar envmap_pars_vertex = \"#ifdef USE_ENVMAP\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG )\\n\\t\\t#define ENV_WORLDPOS\\n\\t#endif\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\t\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t\\tuniform float refractionRatio;\\n\\t#endif\\n#endif\";\r\n\r\n\tvar envmap_vertex = \"#ifdef USE_ENVMAP\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvWorldPosition = worldPosition.xyz;\\n\\t#else\\n\\t\\tvec3 cameraToVertex;\\n\\t\\tif ( isOrthographic ) {\\n\\t\\t\\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\t\\t} else {\\n\\t\\t\\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\\n\\t\\t}\\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\";\r\n\r\n\tvar fog_vertex = \"#ifdef USE_FOG\\n\\tfogDepth = - mvPosition.z;\\n#endif\";\r\n\r\n\tvar fog_pars_vertex = \"#ifdef USE_FOG\\n\\tvarying float fogDepth;\\n#endif\";\r\n\r\n\tvar fog_fragment = \"#ifdef USE_FOG\\n\\t#ifdef FOG_EXP2\\n\\t\\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * fogDepth * fogDepth );\\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\";\r\n\r\n\tvar 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\";\r\n\r\n\tvar gradientmap_pars_fragment = \"#ifdef USE_GRADIENTMAP\\n\\tuniform sampler2D gradientMap;\\n#endif\\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\\n\\tfloat dotNL = dot( normal, lightDirection );\\n\\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\\n\\t#ifdef USE_GRADIENTMAP\\n\\t\\treturn texture2D( gradientMap, coord ).rgb;\\n\\t#else\\n\\t\\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\\n\\t#endif\\n}\";\r\n\r\n\tvar lightmap_fragment = \"#ifdef USE_LIGHTMAP\\n\\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\\n\\treflectedLight.indirectDiffuse += PI * lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\\n#endif\";\r\n\r\n\tvar lightmap_pars_fragment = \"#ifdef USE_LIGHTMAP\\n\\tuniform sampler2D lightMap;\\n\\tuniform float lightMapIntensity;\\n#endif\";\r\n\r\n\tvar lights_lambert_vertex = \"vec3 diffuse = vec3( 1.0 );\\nGeometricContext geometry;\\ngeometry.position = mvPosition.xyz;\\ngeometry.normal = normalize( transformedNormal );\\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : 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;\\nvIndirectFront += getAmbientLightIrradiance( ambientLightColor );\\nvIndirectFront += getLightProbeIrradiance( lightProbe, geometry );\\n#ifdef DOUBLE_SIDED\\n\\tvIndirectBack += getAmbientLightIrradiance( ambientLightColor );\\n\\tvIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry );\\n#endif\\n#if NUM_POINT_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\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\\t#pragma unroll_loop_end\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\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\\t#pragma unroll_loop_end\\n#endif\\n#if NUM_DIR_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\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\\t#pragma unroll_loop_end\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\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\\t#pragma unroll_loop_end\\n#endif\";\r\n\r\n\tvar lights_pars_begin = \"uniform bool receiveShadow;\\nuniform vec3 ambientLightColor;\\nuniform vec3 lightProbe[ 9 ];\\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\\n\\tfloat x = normal.x, y = normal.y, z = normal.z;\\n\\tvec3 result = shCoefficients[ 0 ] * 0.886227;\\n\\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\\n\\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\\n\\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\\n\\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\\n\\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\\n\\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\\n\\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\\n\\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\\n\\treturn result;\\n}\\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in GeometricContext geometry ) {\\n\\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\\n\\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\\n\\treturn irradiance;\\n}\\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};\\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};\\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};\\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\";\r\n\r\n\tvar envmap_physical_pars_fragment = \"#if defined( USE_ENVMAP )\\n\\t#ifdef ENVMAP_MODE_REFRACTION\\n\\t\\tuniform float refractionRatio;\\n\\t#endif\\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\\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 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 roughness, const in int maxMIPLevel ) {\\n\\t\\tfloat maxMIPLevelScalar = float( maxMIPLevel );\\n\\t\\tfloat sigma = PI * roughness * roughness / ( 1.0 + roughness );\\n\\t\\tfloat desiredMIPLevel = maxMIPLevelScalar + log2( sigma );\\n\\t\\treturn clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );\\n\\t}\\n\\tvec3 getLightProbeIndirectRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in int maxMIPLevel ) {\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvec3 reflectVec = reflect( -viewDir, normal );\\n\\t\\t\\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( -viewDir, normal, refractionRatio );\\n\\t\\t#endif\\n\\t\\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\\n\\t\\tfloat specularMIPLevel = getSpecularMIPLevel( roughness, 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\\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\\n\\t\\t#endif\\n\\t\\treturn envMapColor.rgb * envMapIntensity;\\n\\t}\\n#endif\";\r\n\r\n\tvar lights_toon_fragment = \"ToonMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\";\r\n\r\n\tvar lights_toon_pars_fragment = \"varying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\nstruct ToonMaterial {\\n\\tvec3 diffuseColor;\\n};\\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Toon\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Toon\\n#define Material_LightProbeLOD( material )\\t(0)\";\r\n\r\n\tvar lights_phong_fragment = \"BlinnPhongMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularColor = specular;\\nmaterial.specularShininess = shininess;\\nmaterial.specularStrength = specularStrength;\";\r\n\r\n\tvar lights_phong_pars_fragment = \"varying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\nstruct BlinnPhongMaterial {\\n\\tvec3 diffuseColor;\\n\\tvec3 specularColor;\\n\\tfloat specularShininess;\\n\\tfloat specularStrength;\\n};\\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial 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\\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)\";\r\n\r\n\tvar lights_physical_fragment = \"PhysicalMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\\nmaterial.specularRoughness = max( roughnessFactor, 0.0525 );material.specularRoughness += geometryRoughness;\\nmaterial.specularRoughness = min( material.specularRoughness, 1.0 );\\n#ifdef REFLECTIVITY\\n\\tmaterial.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\\n#else\\n\\tmaterial.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\\n#endif\\n#ifdef CLEARCOAT\\n\\tmaterial.clearcoat = clearcoat;\\n\\tmaterial.clearcoatRoughness = clearcoatRoughness;\\n\\t#ifdef USE_CLEARCOATMAP\\n\\t\\tmaterial.clearcoat *= texture2D( clearcoatMap, vUv ).x;\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\t\\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y;\\n\\t#endif\\n\\tmaterial.clearcoat = saturate( material.clearcoat );\\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\\n\\tmaterial.clearcoatRoughness += geometryRoughness;\\n\\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\\n#endif\\n#ifdef USE_SHEEN\\n\\tmaterial.sheenColor = sheen;\\n#endif\";\r\n\r\n\tvar lights_physical_pars_fragment = \"struct PhysicalMaterial {\\n\\tvec3 diffuseColor;\\n\\tfloat specularRoughness;\\n\\tvec3 specularColor;\\n#ifdef CLEARCOAT\\n\\tfloat clearcoat;\\n\\tfloat clearcoatRoughness;\\n#endif\\n#ifdef USE_SHEEN\\n\\tvec3 sheenColor;\\n#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(\t\t0, 1,\t\t0 ),\\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#ifdef CLEARCOAT\\n\\t\\tfloat ccDotNL = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\\n\\t\\tvec3 ccIrradiance = ccDotNL * directLight.color;\\n\\t\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\t\\tccIrradiance *= PI;\\n\\t\\t#endif\\n\\t\\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\\n\\t\\treflectedLight.directSpecular += ccIrradiance * material.clearcoat * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\\n\\t#else\\n\\t\\tfloat clearcoatDHR = 0.0;\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_Sheen(\\n\\t\\t\\tmaterial.specularRoughness,\\n\\t\\t\\tdirectLight.direction,\\n\\t\\t\\tgeometry,\\n\\t\\t\\tmaterial.sheenColor\\n\\t\\t);\\n\\t#else\\n\\t\\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.normal, material.specularColor, material.specularRoughness);\\n\\t#endif\\n\\treflectedLight.directDiffuse += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\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#ifdef CLEARCOAT\\n\\t\\tfloat ccDotNV = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\\n\\t\\treflectedLight.indirectSpecular += clearcoatRadiance * material.clearcoat * BRDF_Specular_GGX_Environment( geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\\n\\t\\tfloat ccDotNL = ccDotNV;\\n\\t\\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\\n\\t#else\\n\\t\\tfloat clearcoatDHR = 0.0;\\n\\t#endif\\n\\tfloat clearcoatInv = 1.0 - clearcoatDHR;\\n\\tvec3 singleScattering = vec3( 0.0 );\\n\\tvec3 multiScattering = vec3( 0.0 );\\n\\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\\n\\tBRDF_Specular_Multiscattering_Environment( geometry, material.specularColor, material.specularRoughness, singleScattering, multiScattering );\\n\\tvec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) );\\n\\treflectedLight.indirectSpecular += clearcoatInv * radiance * singleScattering;\\n\\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\\n\\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\\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\\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}\";\r\n\r\n\tvar lights_fragment_begin = \"\\nGeometricContext geometry;\\ngeometry.position = - vViewPosition;\\ngeometry.normal = normal;\\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\\n#ifdef CLEARCOAT\\n\\tgeometry.clearcoatNormal = clearcoatNormal;\\n#endif\\nIncidentLight directLight;\\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tPointLight pointLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLightShadow pointLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tpointLight = pointLights[ i ];\\n\\t\\tgetPointDirectLightIrradiance( pointLight, geometry, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\\n\\t\\tpointLightShadow = pointLightShadows[ i ];\\n\\t\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tSpotLight spotLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLightShadow spotLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tspotLight = spotLights[ i ];\\n\\t\\tgetSpotDirectLightIrradiance( spotLight, geometry, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\tspotLightShadow = spotLightShadows[ i ];\\n\\t\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tDirectionalLight directionalLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLightShadow directionalLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLights[ i ];\\n\\t\\tgetDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\\n\\t\\tdirectionalLightShadow = directionalLightShadows[ i ];\\n\\t\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\\n\\tRectAreaLight rectAreaLight;\\n\\t#pragma unroll_loop_start\\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\\t#pragma unroll_loop_end\\n#endif\\n#if defined( RE_IndirectDiffuse )\\n\\tvec3 iblIrradiance = vec3( 0.0 );\\n\\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\\n\\tirradiance += getLightProbeIrradiance( lightProbe, geometry );\\n\\t#if ( NUM_HEMI_LIGHTS > 0 )\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\t\\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t#endif\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tvec3 radiance = vec3( 0.0 );\\n\\tvec3 clearcoatRadiance = vec3( 0.0 );\\n#endif\";\r\n\r\n\tvar lights_fragment_maps = \"#if defined( RE_IndirectDiffuse )\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\\n\\t\\tvec3 lightMapIrradiance = lightMapTexelToLinear( lightMapTexel ).rgb * 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( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tiblIrradiance += getLightProbeIndirectIrradiance( geometry, maxMipLevel );\\n\\t#endif\\n#endif\\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\\n\\tradiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.normal, material.specularRoughness, maxMipLevel );\\n\\t#ifdef CLEARCOAT\\n\\t\\tclearcoatRadiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness, maxMipLevel );\\n\\t#endif\\n#endif\";\r\n\r\n\tvar 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, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\\n#endif\";\r\n\r\n\tvar logdepthbuf_fragment = \"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\n\\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\\n#endif\";\r\n\r\n\tvar logdepthbuf_pars_fragment = \"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\n\\tuniform float logDepthBufFC;\\n\\tvarying float vFragDepth;\\n\\tvarying float vIsPerspective;\\n#endif\";\r\n\r\n\tvar logdepthbuf_pars_vertex = \"#ifdef USE_LOGDEPTHBUF\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvarying float vFragDepth;\\n\\t\\tvarying float vIsPerspective;\\n\\t#else\\n\\t\\tuniform float logDepthBufFC;\\n\\t#endif\\n#endif\";\r\n\r\n\tvar logdepthbuf_vertex = \"#ifdef USE_LOGDEPTHBUF\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvFragDepth = 1.0 + gl_Position.w;\\n\\t\\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\\n\\t#else\\n\\t\\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\\n\\t\\t\\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\\n\\t\\t\\tgl_Position.z *= gl_Position.w;\\n\\t\\t}\\n\\t#endif\\n#endif\";\r\n\r\n\tvar map_fragment = \"#ifdef USE_MAP\\n\\tvec4 texelColor = texture2D( map, vUv );\\n\\ttexelColor = mapTexelToLinear( texelColor );\\n\\tdiffuseColor *= texelColor;\\n#endif\";\r\n\r\n\tvar map_pars_fragment = \"#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\";\r\n\r\n\tvar map_particle_fragment = \"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\\n#endif\\n#ifdef USE_MAP\\n\\tvec4 mapTexel = texture2D( map, uv );\\n\\tdiffuseColor *= mapTexelToLinear( mapTexel );\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\\n#endif\";\r\n\r\n\tvar map_particle_pars_fragment = \"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\tuniform mat3 uvTransform;\\n#endif\\n#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\";\r\n\r\n\tvar metalnessmap_fragment = \"float metalnessFactor = metalness;\\n#ifdef USE_METALNESSMAP\\n\\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\\n\\tmetalnessFactor *= texelMetalness.b;\\n#endif\";\r\n\r\n\tvar metalnessmap_pars_fragment = \"#ifdef USE_METALNESSMAP\\n\\tuniform sampler2D metalnessMap;\\n#endif\";\r\n\r\n\tvar morphnormal_vertex = \"#ifdef USE_MORPHNORMALS\\n\\tobjectNormal *= morphTargetBaseInfluence;\\n\\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\\n\\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\\n\\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\\n\\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\\n#endif\";\r\n\r\n\tvar morphtarget_pars_vertex = \"#ifdef USE_MORPHTARGETS\\n\\tuniform float morphTargetBaseInfluence;\\n\\t#ifndef USE_MORPHNORMALS\\n\\t\\tuniform float morphTargetInfluences[ 8 ];\\n\\t#else\\n\\t\\tuniform float morphTargetInfluences[ 4 ];\\n\\t#endif\\n#endif\";\r\n\r\n\tvar morphtarget_vertex = \"#ifdef USE_MORPHTARGETS\\n\\ttransformed *= morphTargetBaseInfluence;\\n\\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\\n\\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\\n\\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\\n\\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\\n\\t#ifndef USE_MORPHNORMALS\\n\\t\\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\\n\\t\\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\\n\\t\\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\\n\\t\\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\\n\\t#endif\\n#endif\";\r\n\r\n\tvar 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\\t#if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP )\\n\\t\\t\\tmat3 vTBN = mat3( tangent, bitangent, normal );\\n\\t\\t#endif\\n\\t#endif\\n#endif\\nvec3 geometryNormal = normal;\";\r\n\r\n\tvar normal_fragment_maps = \"#ifdef OBJECTSPACE_NORMALMAP\\n\\tnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\\n\\t#ifdef FLIP_SIDED\\n\\t\\tnormal = - normal;\\n\\t#endif\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\\n\\t#endif\\n\\tnormal = normalize( normalMatrix * normal );\\n#elif defined( TANGENTSPACE_NORMALMAP )\\n\\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\\n\\tmapN.xy *= normalScale;\\n\\t#ifdef USE_TANGENT\\n\\t\\tnormal = normalize( vTBN * mapN );\\n\\t#else\\n\\t\\tnormal = perturbNormal2Arb( -vViewPosition, normal, mapN );\\n\\t#endif\\n#elif defined( USE_BUMPMAP )\\n\\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );\\n#endif\";\r\n\r\n\tvar normalmap_pars_fragment = \"#ifdef USE_NORMALMAP\\n\\tuniform sampler2D normalMap;\\n\\tuniform vec2 normalScale;\\n#endif\\n#ifdef OBJECTSPACE_NORMALMAP\\n\\tuniform mat3 normalMatrix;\\n#endif\\n#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\\n\\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN ) {\\n\\t\\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\\n\\t\\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\\n\\t\\tvec2 st0 = dFdx( vUv.st );\\n\\t\\tvec2 st1 = dFdy( vUv.st );\\n\\t\\tfloat scale = sign( st1.t * st0.s - st0.t * st1.s );\\n\\t\\tvec3 S = normalize( ( q0 * st1.t - q1 * st0.t ) * scale );\\n\\t\\tvec3 T = normalize( ( - q0 * st1.s + q1 * st0.s ) * scale );\\n\\t\\tvec3 N = normalize( surf_norm );\\n\\t\\tmat3 tsn = mat3( S, T, N );\\n\\t\\tmapN.xy *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );\\n\\t\\treturn normalize( tsn * mapN );\\n\\t}\\n#endif\";\r\n\r\n\tvar clearcoat_normal_fragment_begin = \"#ifdef CLEARCOAT\\n\\tvec3 clearcoatNormal = geometryNormal;\\n#endif\";\r\n\r\n\tvar clearcoat_normal_fragment_maps = \"#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0;\\n\\tclearcoatMapN.xy *= clearcoatNormalScale;\\n\\t#ifdef USE_TANGENT\\n\\t\\tclearcoatNormal = normalize( vTBN * clearcoatMapN );\\n\\t#else\\n\\t\\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN );\\n\\t#endif\\n#endif\";\r\n\r\n\tvar clearcoat_pars_fragment = \"#ifdef USE_CLEARCOATMAP\\n\\tuniform sampler2D clearcoatMap;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tuniform sampler2D clearcoatRoughnessMap;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tuniform sampler2D clearcoatNormalMap;\\n\\tuniform vec2 clearcoatNormalScale;\\n#endif\";\r\n\r\n\tvar 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}\\nvec4 pack2HalfToRGBA( vec2 v ) {\\n\\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ));\\n\\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w);\\n}\\nvec2 unpackRGBATo2Half( vec4 v ) {\\n\\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\\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}\";\r\n\r\n\tvar premultiplied_alpha_fragment = \"#ifdef PREMULTIPLIED_ALPHA\\n\\tgl_FragColor.rgb *= gl_FragColor.a;\\n#endif\";\r\n\r\n\tvar project_vertex = \"vec4 mvPosition = vec4( transformed, 1.0 );\\n#ifdef USE_INSTANCING\\n\\tmvPosition = instanceMatrix * mvPosition;\\n#endif\\nmvPosition = modelViewMatrix * mvPosition;\\ngl_Position = projectionMatrix * mvPosition;\";\r\n\r\n\tvar dithering_fragment = \"#ifdef DITHERING\\n\\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\\n#endif\";\r\n\r\n\tvar dithering_pars_fragment = \"#ifdef 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\";\r\n\r\n\tvar roughnessmap_fragment = \"float roughnessFactor = roughness;\\n#ifdef USE_ROUGHNESSMAP\\n\\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\\n\\troughnessFactor *= texelRoughness.g;\\n#endif\";\r\n\r\n\tvar roughnessmap_pars_fragment = \"#ifdef USE_ROUGHNESSMAP\\n\\tuniform sampler2D roughnessMap;\\n#endif\";\r\n\r\n\tvar shadowmap_pars_fragment = \"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\\n\\t\\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\\n\\t}\\n\\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\\n\\t\\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\\n\\t}\\n\\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\\n\\t\\tfloat occlusion = 1.0;\\n\\t\\tvec2 distribution = texture2DDistribution( shadow, uv );\\n\\t\\tfloat hard_shadow = step( compare , distribution.x );\\n\\t\\tif (hard_shadow != 1.0 ) {\\n\\t\\t\\tfloat distance = compare - distribution.x ;\\n\\t\\t\\tfloat variance = max( 0.00000, distribution.y * distribution.y );\\n\\t\\t\\tfloat softness_probability = variance / (variance + distance * distance );\\t\\t\\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\\t\\t\\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\\n\\t\\t}\\n\\t\\treturn occlusion;\\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\\tfloat dx2 = dx0 / 2.0;\\n\\t\\t\\tfloat dy2 = dy0 / 2.0;\\n\\t\\t\\tfloat dx3 = dx1 / 2.0;\\n\\t\\t\\tfloat dy3 = dy1 / 2.0;\\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( dx2, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), 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( dx2, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), 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 / 17.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx = texelSize.x;\\n\\t\\t\\tfloat dy = texelSize.y;\\n\\t\\t\\tvec2 uv = shadowCoord.xy;\\n\\t\\t\\tvec2 f = fract( uv * shadowMapSize + 0.5 );\\n\\t\\t\\tuv -= f * texelSize;\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t\\t\ttexture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t\tf.x ),\\n\\t\\t\\t\\t\\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t\\t\ttexture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t\tf.x ),\\n\\t\\t\\t\\t\\t f.y )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\\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 ) || defined( SHADOWMAP_TYPE_VSM )\\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\";\r\n\r\n\tvar shadowmap_pars_vertex = \"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t#endif\\n#endif\";\r\n\r\n\tvar shadowmap_vertex = \"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\t\\tvec4 shadowWorldPosition;\\n\\t#endif\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n#endif\";\r\n\r\n\tvar shadowmask_pars_fragment = \"float getShadowMask() {\\n\\tfloat shadow = 1.0;\\n\\t#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLightShadow directionalLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLightShadow spotLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tspotLight = spotLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLightShadow pointLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tpointLight = pointLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#endif\\n\\treturn shadow;\\n}\";\r\n\r\n\tvar 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\";\r\n\r\n\tvar skinning_pars_vertex = \"#ifdef USE_SKINNING\\n\\tuniform mat4 bindMatrix;\\n\\tuniform mat4 bindMatrixInverse;\\n\\t#ifdef BONE_TEXTURE\\n\\t\\tuniform highp 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\";\r\n\r\n\tvar 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\";\r\n\r\n\tvar 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\";\r\n\r\n\tvar 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\";\r\n\r\n\tvar specularmap_pars_fragment = \"#ifdef USE_SPECULARMAP\\n\\tuniform sampler2D specularMap;\\n#endif\";\r\n\r\n\tvar tonemapping_fragment = \"#if defined( TONE_MAPPING )\\n\\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\\n#endif\";\r\n\r\n\tvar tonemapping_pars_fragment = \"#ifndef saturate\\n#define saturate(a) clamp( a, 0.0, 1.0 )\\n#endif\\nuniform float toneMappingExposure;\\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}\\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 RRTAndODTFit( vec3 v ) {\\n\\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\\n\\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\\n\\treturn a / b;\\n}\\nvec3 ACESFilmicToneMapping( vec3 color ) {\\n\\tconst mat3 ACESInputMat = mat3(\\n\\t\\tvec3( 0.59719, 0.07600, 0.02840 ),\\t\\tvec3( 0.35458, 0.90834, 0.13383 ),\\n\\t\\tvec3( 0.04823, 0.01566, 0.83777 )\\n\\t);\\n\\tconst mat3 ACESOutputMat = mat3(\\n\\t\\tvec3(\t1.60475, -0.10208, -0.00327 ),\\t\\tvec3( -0.53108,\t1.10813, -0.07276 ),\\n\\t\\tvec3( -0.07367, -0.00605,\t1.07602 )\\n\\t);\\n\\tcolor *= toneMappingExposure / 0.6;\\n\\tcolor = ACESInputMat * color;\\n\\tcolor = RRTAndODTFit( color );\\n\\tcolor = ACESOutputMat * color;\\n\\treturn saturate( color );\\n}\\nvec3 CustomToneMapping( vec3 color ) { return color; }\";\r\n\r\n\tvar transmissionmap_fragment = \"#ifdef USE_TRANSMISSIONMAP\\n\\ttotalTransmission *= texture2D( transmissionMap, vUv ).r;\\n#endif\";\r\n\r\n\tvar transmissionmap_pars_fragment = \"#ifdef USE_TRANSMISSIONMAP\\n\\tuniform sampler2D transmissionMap;\\n#endif\";\r\n\r\n\tvar uv_pars_fragment = \"#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\\n\\tvarying vec2 vUv;\\n#endif\";\r\n\r\n\tvar uv_pars_vertex = \"#ifdef USE_UV\\n\\t#ifdef UVS_VERTEX_ONLY\\n\\t\\tvec2 vUv;\\n\\t#else\\n\\t\\tvarying vec2 vUv;\\n\\t#endif\\n\\tuniform mat3 uvTransform;\\n#endif\";\r\n\r\n\tvar uv_vertex = \"#ifdef USE_UV\\n\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n#endif\";\r\n\r\n\tvar uv2_pars_fragment = \"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tvarying vec2 vUv2;\\n#endif\";\r\n\r\n\tvar uv2_pars_vertex = \"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tattribute vec2 uv2;\\n\\tvarying vec2 vUv2;\\n\\tuniform mat3 uv2Transform;\\n#endif\";\r\n\r\n\tvar uv2_vertex = \"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\\n#endif\";\r\n\r\n\tvar worldpos_vertex = \"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP )\\n\\tvec4 worldPosition = vec4( transformed, 1.0 );\\n\\t#ifdef USE_INSTANCING\\n\\t\\tworldPosition = instanceMatrix * worldPosition;\\n\\t#endif\\n\\tworldPosition = modelMatrix * worldPosition;\\n#endif\";\r\n\r\n\tvar background_frag = \"uniform sampler2D t2D;\\nvarying vec2 vUv;\\nvoid main() {\\n\\tvec4 texColor = texture2D( t2D, vUv );\\n\\tgl_FragColor = mapTexelToLinear( texColor );\\n\\t#include \\n\\t#include \\n}\";\r\n\r\n\tvar 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}\";\r\n\r\n\tvar cube_frag = \"#include \\nuniform float opacity;\\nvarying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvec3 vReflect = vWorldDirection;\\n\\t#include \\n\\tgl_FragColor = envColor;\\n\\tgl_FragColor.a *= opacity;\\n\\t#include \\n\\t#include \\n}\";\r\n\r\n\tvar cube_vert = \"varying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n\\tgl_Position.z = gl_Position.w;\\n}\";\r\n\r\n\tvar depth_frag = \"#if DEPTH_PACKING == 3200\\n\\tuniform float opacity;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tdiffuseColor.a = opacity;\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\\n\\t#elif DEPTH_PACKING == 3201\\n\\t\\tgl_FragColor = packDepthToRGBA( fragCoordZ );\\n\\t#endif\\n}\";\r\n\r\n\tvar depth_vert = \"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvHighPrecisionZW = gl_Position.zw;\\n}\";\r\n\r\n\tvar distanceRGBA_frag = \"#define DISTANCE\\nuniform vec3 referencePosition;\\nuniform float nearDistance;\\nuniform float farDistance;\\nvarying vec3 vWorldPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main () {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\tfloat dist = length( vWorldPosition - referencePosition );\\n\\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\\n\\tdist = saturate( dist );\\n\\tgl_FragColor = packDepthToRGBA( dist );\\n}\";\r\n\r\n\tvar distanceRGBA_vert = \"#define DISTANCE\\nvarying vec3 vWorldPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvWorldPosition = worldPosition.xyz;\\n}\";\r\n\r\n\tvar equirect_frag = \"uniform sampler2D tEquirect;\\nvarying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvec3 direction = normalize( vWorldDirection );\\n\\tvec2 sampleUV = equirectUv( direction );\\n\\tvec4 texColor = texture2D( tEquirect, sampleUV );\\n\\tgl_FragColor = mapTexelToLinear( texColor );\\n\\t#include \\n\\t#include \\n}\";\r\n\r\n\tvar equirect_vert = \"varying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n}\";\r\n\r\n\tvar linedashed_frag = \"uniform vec3 diffuse;\\nuniform float opacity;\\nuniform float dashSize;\\nuniform float totalSize;\\nvarying float vLineDistance;\\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\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 \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\r\n\r\n\tvar linedashed_vert = \"uniform float scale;\\nattribute float lineDistance;\\nvarying float vLineDistance;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvLineDistance = scale * lineDistance;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\r\n\r\n\tvar meshbasic_frag = \"uniform vec3 diffuse;\\nuniform float opacity;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\n\\t\\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\\n\\t\\treflectedLight.indirectDiffuse += lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\\n\\t#else\\n\\t\\treflectedLight.indirectDiffuse += vec3( 1.0 );\\n\\t#endif\\n\\t#include \\n\\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\\n\\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\\n\\t#include \\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\r\n\r\n\tvar meshbasic_vert = \"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#ifdef USE_ENVMAP\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\r\n\r\n\tvar 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 \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\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 \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\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 \\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 \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\t#include \\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\r\n\r\n\tvar 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 \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\r\n\r\n\tvar 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 \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\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 \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\r\n\r\n\tvar meshmatcap_vert = \"#define MATCAP\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#ifndef FLAT_SHADED\\n\\t\\tvNormal = normalize( transformedNormal );\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n}\";\r\n\r\n\tvar meshtoon_frag = \"#define TOON\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\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 \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\r\n\r\n\tvar meshtoon_vert = \"#define TOON\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\r\n\r\n\tvar meshphong_frag = \"#define PHONG\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform vec3 specular;\\nuniform float shininess;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\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 \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\n\\t#include \\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\r\n\r\n\tvar meshphong_vert = \"#define PHONG\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\r\n\r\n\tvar meshphysical_frag = \"#define STANDARD\\n#ifdef PHYSICAL\\n\\t#define REFLECTIVITY\\n\\t#define CLEARCOAT\\n\\t#define TRANSMISSION\\n#endif\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float opacity;\\n#ifdef TRANSMISSION\\n\\tuniform float transmission;\\n#endif\\n#ifdef REFLECTIVITY\\n\\tuniform float reflectivity;\\n#endif\\n#ifdef CLEARCOAT\\n\\tuniform float clearcoat;\\n\\tuniform float clearcoatRoughness;\\n#endif\\n#ifdef USE_SHEEN\\n\\tuniform vec3 sheen;\\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 \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\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#ifdef TRANSMISSION\\n\\t\\tfloat totalTransmission = transmission;\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\n\\t#ifdef TRANSMISSION\\n\\t\\tdiffuseColor.a *= mix( saturate( 1. - totalTransmission + linearToRelativeLuminance( reflectedLight.directSpecular + reflectedLight.indirectSpecular ) ), 1.0, metalness );\\n\\t#endif\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\r\n\r\n\tvar meshphysical_vert = \"#define STANDARD\\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 \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\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 \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\r\n\r\n\tvar normal_frag = \"#define NORMAL\\nuniform float opacity;\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_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 \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\\n}\";\r\n\r\n\tvar normal_vert = \"#define NORMAL\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_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 \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\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 \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\n\\tvViewPosition = - mvPosition.xyz;\\n#endif\\n}\";\r\n\r\n\tvar points_frag = \"uniform vec3 diffuse;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\r\n\r\n\tvar points_vert = \"uniform float size;\\nuniform float scale;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tgl_PointSize = size;\\n\\t#ifdef USE_SIZEATTENUATION\\n\\t\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\\t\\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\r\n\r\n\tvar shadow_frag = \"uniform vec3 color;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\r\n\r\n\tvar shadow_vert = \"#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\r\n\r\n\tvar sprite_frag = \"uniform vec3 diffuse;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\r\n\r\n\tvar sprite_vert = \"uniform float rotation;\\nuniform vec2 center;\\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\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 = isPerspectiveMatrix( projectionMatrix );\\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 \\n\\t#include \\n\\t#include \\n}\";\r\n\r\n\tvar ShaderChunk = {\r\n\t\talphamap_fragment: alphamap_fragment,\r\n\t\talphamap_pars_fragment: alphamap_pars_fragment,\r\n\t\talphatest_fragment: alphatest_fragment,\r\n\t\taomap_fragment: aomap_fragment,\r\n\t\taomap_pars_fragment: aomap_pars_fragment,\r\n\t\tbegin_vertex: begin_vertex,\r\n\t\tbeginnormal_vertex: beginnormal_vertex,\r\n\t\tbsdfs: bsdfs,\r\n\t\tbumpmap_pars_fragment: bumpmap_pars_fragment,\r\n\t\tclipping_planes_fragment: clipping_planes_fragment,\r\n\t\tclipping_planes_pars_fragment: clipping_planes_pars_fragment,\r\n\t\tclipping_planes_pars_vertex: clipping_planes_pars_vertex,\r\n\t\tclipping_planes_vertex: clipping_planes_vertex,\r\n\t\tcolor_fragment: color_fragment,\r\n\t\tcolor_pars_fragment: color_pars_fragment,\r\n\t\tcolor_pars_vertex: color_pars_vertex,\r\n\t\tcolor_vertex: color_vertex,\r\n\t\tcommon: common,\r\n\t\tcube_uv_reflection_fragment: cube_uv_reflection_fragment,\r\n\t\tdefaultnormal_vertex: defaultnormal_vertex,\r\n\t\tdisplacementmap_pars_vertex: displacementmap_pars_vertex,\r\n\t\tdisplacementmap_vertex: displacementmap_vertex,\r\n\t\temissivemap_fragment: emissivemap_fragment,\r\n\t\temissivemap_pars_fragment: emissivemap_pars_fragment,\r\n\t\tencodings_fragment: encodings_fragment,\r\n\t\tencodings_pars_fragment: encodings_pars_fragment,\r\n\t\tenvmap_fragment: envmap_fragment,\r\n\t\tenvmap_common_pars_fragment: envmap_common_pars_fragment,\r\n\t\tenvmap_pars_fragment: envmap_pars_fragment,\r\n\t\tenvmap_pars_vertex: envmap_pars_vertex,\r\n\t\tenvmap_physical_pars_fragment: envmap_physical_pars_fragment,\r\n\t\tenvmap_vertex: envmap_vertex,\r\n\t\tfog_vertex: fog_vertex,\r\n\t\tfog_pars_vertex: fog_pars_vertex,\r\n\t\tfog_fragment: fog_fragment,\r\n\t\tfog_pars_fragment: fog_pars_fragment,\r\n\t\tgradientmap_pars_fragment: gradientmap_pars_fragment,\r\n\t\tlightmap_fragment: lightmap_fragment,\r\n\t\tlightmap_pars_fragment: lightmap_pars_fragment,\r\n\t\tlights_lambert_vertex: lights_lambert_vertex,\r\n\t\tlights_pars_begin: lights_pars_begin,\r\n\t\tlights_toon_fragment: lights_toon_fragment,\r\n\t\tlights_toon_pars_fragment: lights_toon_pars_fragment,\r\n\t\tlights_phong_fragment: lights_phong_fragment,\r\n\t\tlights_phong_pars_fragment: lights_phong_pars_fragment,\r\n\t\tlights_physical_fragment: lights_physical_fragment,\r\n\t\tlights_physical_pars_fragment: lights_physical_pars_fragment,\r\n\t\tlights_fragment_begin: lights_fragment_begin,\r\n\t\tlights_fragment_maps: lights_fragment_maps,\r\n\t\tlights_fragment_end: lights_fragment_end,\r\n\t\tlogdepthbuf_fragment: logdepthbuf_fragment,\r\n\t\tlogdepthbuf_pars_fragment: logdepthbuf_pars_fragment,\r\n\t\tlogdepthbuf_pars_vertex: logdepthbuf_pars_vertex,\r\n\t\tlogdepthbuf_vertex: logdepthbuf_vertex,\r\n\t\tmap_fragment: map_fragment,\r\n\t\tmap_pars_fragment: map_pars_fragment,\r\n\t\tmap_particle_fragment: map_particle_fragment,\r\n\t\tmap_particle_pars_fragment: map_particle_pars_fragment,\r\n\t\tmetalnessmap_fragment: metalnessmap_fragment,\r\n\t\tmetalnessmap_pars_fragment: metalnessmap_pars_fragment,\r\n\t\tmorphnormal_vertex: morphnormal_vertex,\r\n\t\tmorphtarget_pars_vertex: morphtarget_pars_vertex,\r\n\t\tmorphtarget_vertex: morphtarget_vertex,\r\n\t\tnormal_fragment_begin: normal_fragment_begin,\r\n\t\tnormal_fragment_maps: normal_fragment_maps,\r\n\t\tnormalmap_pars_fragment: normalmap_pars_fragment,\r\n\t\tclearcoat_normal_fragment_begin: clearcoat_normal_fragment_begin,\r\n\t\tclearcoat_normal_fragment_maps: clearcoat_normal_fragment_maps,\r\n\t\tclearcoat_pars_fragment: clearcoat_pars_fragment,\r\n\t\tpacking: packing,\r\n\t\tpremultiplied_alpha_fragment: premultiplied_alpha_fragment,\r\n\t\tproject_vertex: project_vertex,\r\n\t\tdithering_fragment: dithering_fragment,\r\n\t\tdithering_pars_fragment: dithering_pars_fragment,\r\n\t\troughnessmap_fragment: roughnessmap_fragment,\r\n\t\troughnessmap_pars_fragment: roughnessmap_pars_fragment,\r\n\t\tshadowmap_pars_fragment: shadowmap_pars_fragment,\r\n\t\tshadowmap_pars_vertex: shadowmap_pars_vertex,\r\n\t\tshadowmap_vertex: shadowmap_vertex,\r\n\t\tshadowmask_pars_fragment: shadowmask_pars_fragment,\r\n\t\tskinbase_vertex: skinbase_vertex,\r\n\t\tskinning_pars_vertex: skinning_pars_vertex,\r\n\t\tskinning_vertex: skinning_vertex,\r\n\t\tskinnormal_vertex: skinnormal_vertex,\r\n\t\tspecularmap_fragment: specularmap_fragment,\r\n\t\tspecularmap_pars_fragment: specularmap_pars_fragment,\r\n\t\ttonemapping_fragment: tonemapping_fragment,\r\n\t\ttonemapping_pars_fragment: tonemapping_pars_fragment,\r\n\t\ttransmissionmap_fragment: transmissionmap_fragment,\r\n\t\ttransmissionmap_pars_fragment: transmissionmap_pars_fragment,\r\n\t\tuv_pars_fragment: uv_pars_fragment,\r\n\t\tuv_pars_vertex: uv_pars_vertex,\r\n\t\tuv_vertex: uv_vertex,\r\n\t\tuv2_pars_fragment: uv2_pars_fragment,\r\n\t\tuv2_pars_vertex: uv2_pars_vertex,\r\n\t\tuv2_vertex: uv2_vertex,\r\n\t\tworldpos_vertex: worldpos_vertex,\r\n\t\tbackground_frag: background_frag,\r\n\t\tbackground_vert: background_vert,\r\n\t\tcube_frag: cube_frag,\r\n\t\tcube_vert: cube_vert,\r\n\t\tdepth_frag: depth_frag,\r\n\t\tdepth_vert: depth_vert,\r\n\t\tdistanceRGBA_frag: distanceRGBA_frag,\r\n\t\tdistanceRGBA_vert: distanceRGBA_vert,\r\n\t\tequirect_frag: equirect_frag,\r\n\t\tequirect_vert: equirect_vert,\r\n\t\tlinedashed_frag: linedashed_frag,\r\n\t\tlinedashed_vert: linedashed_vert,\r\n\t\tmeshbasic_frag: meshbasic_frag,\r\n\t\tmeshbasic_vert: meshbasic_vert,\r\n\t\tmeshlambert_frag: meshlambert_frag,\r\n\t\tmeshlambert_vert: meshlambert_vert,\r\n\t\tmeshmatcap_frag: meshmatcap_frag,\r\n\t\tmeshmatcap_vert: meshmatcap_vert,\r\n\t\tmeshtoon_frag: meshtoon_frag,\r\n\t\tmeshtoon_vert: meshtoon_vert,\r\n\t\tmeshphong_frag: meshphong_frag,\r\n\t\tmeshphong_vert: meshphong_vert,\r\n\t\tmeshphysical_frag: meshphysical_frag,\r\n\t\tmeshphysical_vert: meshphysical_vert,\r\n\t\tnormal_frag: normal_frag,\r\n\t\tnormal_vert: normal_vert,\r\n\t\tpoints_frag: points_frag,\r\n\t\tpoints_vert: points_vert,\r\n\t\tshadow_frag: shadow_frag,\r\n\t\tshadow_vert: shadow_vert,\r\n\t\tsprite_frag: sprite_frag,\r\n\t\tsprite_vert: sprite_vert\r\n\t};\r\n\r\n\t/**\r\n\t * Uniforms library for shared webgl shaders\r\n\t */\r\n\r\n\tvar UniformsLib = {\r\n\t\tcommon: {\r\n\t\t\tdiffuse: {\r\n\t\t\t\tvalue: new Color(0xeeeeee)\r\n\t\t\t},\r\n\t\t\topacity: {\r\n\t\t\t\tvalue: 1.0\r\n\t\t\t},\r\n\t\t\tmap: {\r\n\t\t\t\tvalue: null\r\n\t\t\t},\r\n\t\t\tuvTransform: {\r\n\t\t\t\tvalue: new Matrix3()\r\n\t\t\t},\r\n\t\t\tuv2Transform: {\r\n\t\t\t\tvalue: new Matrix3()\r\n\t\t\t},\r\n\t\t\talphaMap: {\r\n\t\t\t\tvalue: null\r\n\t\t\t}\r\n\t\t},\r\n\t\tspecularmap: {\r\n\t\t\tspecularMap: {\r\n\t\t\t\tvalue: null\r\n\t\t\t}\r\n\t\t},\r\n\t\tenvmap: {\r\n\t\t\tenvMap: {\r\n\t\t\t\tvalue: null\r\n\t\t\t},\r\n\t\t\tflipEnvMap: {\r\n\t\t\t\tvalue: -1\r\n\t\t\t},\r\n\t\t\treflectivity: {\r\n\t\t\t\tvalue: 1.0\r\n\t\t\t},\r\n\t\t\trefractionRatio: {\r\n\t\t\t\tvalue: 0.98\r\n\t\t\t},\r\n\t\t\tmaxMipLevel: {\r\n\t\t\t\tvalue: 0\r\n\t\t\t}\r\n\t\t},\r\n\t\taomap: {\r\n\t\t\taoMap: {\r\n\t\t\t\tvalue: null\r\n\t\t\t},\r\n\t\t\taoMapIntensity: {\r\n\t\t\t\tvalue: 1\r\n\t\t\t}\r\n\t\t},\r\n\t\tlightmap: {\r\n\t\t\tlightMap: {\r\n\t\t\t\tvalue: null\r\n\t\t\t},\r\n\t\t\tlightMapIntensity: {\r\n\t\t\t\tvalue: 1\r\n\t\t\t}\r\n\t\t},\r\n\t\temissivemap: {\r\n\t\t\temissiveMap: {\r\n\t\t\t\tvalue: null\r\n\t\t\t}\r\n\t\t},\r\n\t\tbumpmap: {\r\n\t\t\tbumpMap: {\r\n\t\t\t\tvalue: null\r\n\t\t\t},\r\n\t\t\tbumpScale: {\r\n\t\t\t\tvalue: 1\r\n\t\t\t}\r\n\t\t},\r\n\t\tnormalmap: {\r\n\t\t\tnormalMap: {\r\n\t\t\t\tvalue: null\r\n\t\t\t},\r\n\t\t\tnormalScale: {\r\n\t\t\t\tvalue: new Vector2(1, 1)\r\n\t\t\t}\r\n\t\t},\r\n\t\tdisplacementmap: {\r\n\t\t\tdisplacementMap: {\r\n\t\t\t\tvalue: null\r\n\t\t\t},\r\n\t\t\tdisplacementScale: {\r\n\t\t\t\tvalue: 1\r\n\t\t\t},\r\n\t\t\tdisplacementBias: {\r\n\t\t\t\tvalue: 0\r\n\t\t\t}\r\n\t\t},\r\n\t\troughnessmap: {\r\n\t\t\troughnessMap: {\r\n\t\t\t\tvalue: null\r\n\t\t\t}\r\n\t\t},\r\n\t\tmetalnessmap: {\r\n\t\t\tmetalnessMap: {\r\n\t\t\t\tvalue: null\r\n\t\t\t}\r\n\t\t},\r\n\t\tgradientmap: {\r\n\t\t\tgradientMap: {\r\n\t\t\t\tvalue: null\r\n\t\t\t}\r\n\t\t},\r\n\t\tfog: {\r\n\t\t\tfogDensity: {\r\n\t\t\t\tvalue: 0.00025\r\n\t\t\t},\r\n\t\t\tfogNear: {\r\n\t\t\t\tvalue: 1\r\n\t\t\t},\r\n\t\t\tfogFar: {\r\n\t\t\t\tvalue: 2000\r\n\t\t\t},\r\n\t\t\tfogColor: {\r\n\t\t\t\tvalue: new Color(0xffffff)\r\n\t\t\t}\r\n\t\t},\r\n\t\tlights: {\r\n\t\t\tambientLightColor: {\r\n\t\t\t\tvalue: []\r\n\t\t\t},\r\n\t\t\tlightProbe: {\r\n\t\t\t\tvalue: []\r\n\t\t\t},\r\n\t\t\tdirectionalLights: {\r\n\t\t\t\tvalue: [],\r\n\t\t\t\tproperties: {\r\n\t\t\t\t\tdirection: {},\r\n\t\t\t\t\tcolor: {}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tdirectionalLightShadows: {\r\n\t\t\t\tvalue: [],\r\n\t\t\t\tproperties: {\r\n\t\t\t\t\tshadowBias: {},\r\n\t\t\t\t\tshadowNormalBias: {},\r\n\t\t\t\t\tshadowRadius: {},\r\n\t\t\t\t\tshadowMapSize: {}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tdirectionalShadowMap: {\r\n\t\t\t\tvalue: []\r\n\t\t\t},\r\n\t\t\tdirectionalShadowMatrix: {\r\n\t\t\t\tvalue: []\r\n\t\t\t},\r\n\t\t\tspotLights: {\r\n\t\t\t\tvalue: [],\r\n\t\t\t\tproperties: {\r\n\t\t\t\t\tcolor: {},\r\n\t\t\t\t\tposition: {},\r\n\t\t\t\t\tdirection: {},\r\n\t\t\t\t\tdistance: {},\r\n\t\t\t\t\tconeCos: {},\r\n\t\t\t\t\tpenumbraCos: {},\r\n\t\t\t\t\tdecay: {}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tspotLightShadows: {\r\n\t\t\t\tvalue: [],\r\n\t\t\t\tproperties: {\r\n\t\t\t\t\tshadowBias: {},\r\n\t\t\t\t\tshadowNormalBias: {},\r\n\t\t\t\t\tshadowRadius: {},\r\n\t\t\t\t\tshadowMapSize: {}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tspotShadowMap: {\r\n\t\t\t\tvalue: []\r\n\t\t\t},\r\n\t\t\tspotShadowMatrix: {\r\n\t\t\t\tvalue: []\r\n\t\t\t},\r\n\t\t\tpointLights: {\r\n\t\t\t\tvalue: [],\r\n\t\t\t\tproperties: {\r\n\t\t\t\t\tcolor: {},\r\n\t\t\t\t\tposition: {},\r\n\t\t\t\t\tdecay: {},\r\n\t\t\t\t\tdistance: {}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tpointLightShadows: {\r\n\t\t\t\tvalue: [],\r\n\t\t\t\tproperties: {\r\n\t\t\t\t\tshadowBias: {},\r\n\t\t\t\t\tshadowNormalBias: {},\r\n\t\t\t\t\tshadowRadius: {},\r\n\t\t\t\t\tshadowMapSize: {},\r\n\t\t\t\t\tshadowCameraNear: {},\r\n\t\t\t\t\tshadowCameraFar: {}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tpointShadowMap: {\r\n\t\t\t\tvalue: []\r\n\t\t\t},\r\n\t\t\tpointShadowMatrix: {\r\n\t\t\t\tvalue: []\r\n\t\t\t},\r\n\t\t\themisphereLights: {\r\n\t\t\t\tvalue: [],\r\n\t\t\t\tproperties: {\r\n\t\t\t\t\tdirection: {},\r\n\t\t\t\t\tskyColor: {},\r\n\t\t\t\t\tgroundColor: {}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t// TODO (abelnation): RectAreaLight BRDF data needs to be moved from example to main src\r\n\t\t\trectAreaLights: {\r\n\t\t\t\tvalue: [],\r\n\t\t\t\tproperties: {\r\n\t\t\t\t\tcolor: {},\r\n\t\t\t\t\tposition: {},\r\n\t\t\t\t\twidth: {},\r\n\t\t\t\t\theight: {}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tltc_1: {\r\n\t\t\t\tvalue: null\r\n\t\t\t},\r\n\t\t\tltc_2: {\r\n\t\t\t\tvalue: null\r\n\t\t\t}\r\n\t\t},\r\n\t\tpoints: {\r\n\t\t\tdiffuse: {\r\n\t\t\t\tvalue: new Color(0xeeeeee)\r\n\t\t\t},\r\n\t\t\topacity: {\r\n\t\t\t\tvalue: 1.0\r\n\t\t\t},\r\n\t\t\tsize: {\r\n\t\t\t\tvalue: 1.0\r\n\t\t\t},\r\n\t\t\tscale: {\r\n\t\t\t\tvalue: 1.0\r\n\t\t\t},\r\n\t\t\tmap: {\r\n\t\t\t\tvalue: null\r\n\t\t\t},\r\n\t\t\talphaMap: {\r\n\t\t\t\tvalue: null\r\n\t\t\t},\r\n\t\t\tuvTransform: {\r\n\t\t\t\tvalue: new Matrix3()\r\n\t\t\t}\r\n\t\t},\r\n\t\tsprite: {\r\n\t\t\tdiffuse: {\r\n\t\t\t\tvalue: new Color(0xeeeeee)\r\n\t\t\t},\r\n\t\t\topacity: {\r\n\t\t\t\tvalue: 1.0\r\n\t\t\t},\r\n\t\t\tcenter: {\r\n\t\t\t\tvalue: new Vector2(0.5, 0.5)\r\n\t\t\t},\r\n\t\t\trotation: {\r\n\t\t\t\tvalue: 0.0\r\n\t\t\t},\r\n\t\t\tmap: {\r\n\t\t\t\tvalue: null\r\n\t\t\t},\r\n\t\t\talphaMap: {\r\n\t\t\t\tvalue: null\r\n\t\t\t},\r\n\t\t\tuvTransform: {\r\n\t\t\t\tvalue: new Matrix3()\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tvar ShaderLib = {\r\n\t\tbasic: {\r\n\t\t\tuniforms: mergeUniforms([UniformsLib.common, UniformsLib.specularmap, UniformsLib.envmap, UniformsLib.aomap, UniformsLib.lightmap, UniformsLib.fog]),\r\n\t\t\tvertexShader: ShaderChunk.meshbasic_vert,\r\n\t\t\tfragmentShader: ShaderChunk.meshbasic_frag\r\n\t\t},\r\n\t\tlambert: {\r\n\t\t\tuniforms: mergeUniforms([UniformsLib.common, UniformsLib.specularmap, UniformsLib.envmap, UniformsLib.aomap, UniformsLib.lightmap, UniformsLib.emissivemap, UniformsLib.fog, UniformsLib.lights, {\r\n\t\t\t\temissive: {\r\n\t\t\t\t\tvalue: new Color(0x000000)\r\n\t\t\t\t}\r\n\t\t\t}]),\r\n\t\t\tvertexShader: ShaderChunk.meshlambert_vert,\r\n\t\t\tfragmentShader: ShaderChunk.meshlambert_frag\r\n\t\t},\r\n\t\tphong: {\r\n\t\t\tuniforms: mergeUniforms([UniformsLib.common, UniformsLib.specularmap, UniformsLib.envmap, UniformsLib.aomap, UniformsLib.lightmap, UniformsLib.emissivemap, UniformsLib.bumpmap, UniformsLib.normalmap, UniformsLib.displacementmap, UniformsLib.fog, UniformsLib.lights, {\r\n\t\t\t\temissive: {\r\n\t\t\t\t\tvalue: new Color(0x000000)\r\n\t\t\t\t},\r\n\t\t\t\tspecular: {\r\n\t\t\t\t\tvalue: new Color(0x111111)\r\n\t\t\t\t},\r\n\t\t\t\tshininess: {\r\n\t\t\t\t\tvalue: 30\r\n\t\t\t\t}\r\n\t\t\t}]),\r\n\t\t\tvertexShader: ShaderChunk.meshphong_vert,\r\n\t\t\tfragmentShader: ShaderChunk.meshphong_frag\r\n\t\t},\r\n\t\tstandard: {\r\n\t\t\tuniforms: mergeUniforms([UniformsLib.common, UniformsLib.envmap, UniformsLib.aomap, UniformsLib.lightmap, UniformsLib.emissivemap, UniformsLib.bumpmap, UniformsLib.normalmap, UniformsLib.displacementmap, UniformsLib.roughnessmap, UniformsLib.metalnessmap, UniformsLib.fog, UniformsLib.lights, {\r\n\t\t\t\temissive: {\r\n\t\t\t\t\tvalue: new Color(0x000000)\r\n\t\t\t\t},\r\n\t\t\t\troughness: {\r\n\t\t\t\t\tvalue: 1.0\r\n\t\t\t\t},\r\n\t\t\t\tmetalness: {\r\n\t\t\t\t\tvalue: 0.0\r\n\t\t\t\t},\r\n\t\t\t\tenvMapIntensity: {\r\n\t\t\t\t\tvalue: 1\r\n\t\t\t\t} // temporary\r\n\r\n\t\t\t}]),\r\n\t\t\tvertexShader: ShaderChunk.meshphysical_vert,\r\n\t\t\tfragmentShader: ShaderChunk.meshphysical_frag\r\n\t\t},\r\n\t\ttoon: {\r\n\t\t\tuniforms: mergeUniforms([UniformsLib.common, UniformsLib.aomap, UniformsLib.lightmap, UniformsLib.emissivemap, UniformsLib.bumpmap, UniformsLib.normalmap, UniformsLib.displacementmap, UniformsLib.gradientmap, UniformsLib.fog, UniformsLib.lights, {\r\n\t\t\t\temissive: {\r\n\t\t\t\t\tvalue: new Color(0x000000)\r\n\t\t\t\t}\r\n\t\t\t}]),\r\n\t\t\tvertexShader: ShaderChunk.meshtoon_vert,\r\n\t\t\tfragmentShader: ShaderChunk.meshtoon_frag\r\n\t\t},\r\n\t\tmatcap: {\r\n\t\t\tuniforms: mergeUniforms([UniformsLib.common, UniformsLib.bumpmap, UniformsLib.normalmap, UniformsLib.displacementmap, UniformsLib.fog, {\r\n\t\t\t\tmatcap: {\r\n\t\t\t\t\tvalue: null\r\n\t\t\t\t}\r\n\t\t\t}]),\r\n\t\t\tvertexShader: ShaderChunk.meshmatcap_vert,\r\n\t\t\tfragmentShader: ShaderChunk.meshmatcap_frag\r\n\t\t},\r\n\t\tpoints: {\r\n\t\t\tuniforms: mergeUniforms([UniformsLib.points, UniformsLib.fog]),\r\n\t\t\tvertexShader: ShaderChunk.points_vert,\r\n\t\t\tfragmentShader: ShaderChunk.points_frag\r\n\t\t},\r\n\t\tdashed: {\r\n\t\t\tuniforms: mergeUniforms([UniformsLib.common, UniformsLib.fog, {\r\n\t\t\t\tscale: {\r\n\t\t\t\t\tvalue: 1\r\n\t\t\t\t},\r\n\t\t\t\tdashSize: {\r\n\t\t\t\t\tvalue: 1\r\n\t\t\t\t},\r\n\t\t\t\ttotalSize: {\r\n\t\t\t\t\tvalue: 2\r\n\t\t\t\t}\r\n\t\t\t}]),\r\n\t\t\tvertexShader: ShaderChunk.linedashed_vert,\r\n\t\t\tfragmentShader: ShaderChunk.linedashed_frag\r\n\t\t},\r\n\t\tdepth: {\r\n\t\t\tuniforms: mergeUniforms([UniformsLib.common, UniformsLib.displacementmap]),\r\n\t\t\tvertexShader: ShaderChunk.depth_vert,\r\n\t\t\tfragmentShader: ShaderChunk.depth_frag\r\n\t\t},\r\n\t\tnormal: {\r\n\t\t\tuniforms: mergeUniforms([UniformsLib.common, UniformsLib.bumpmap, UniformsLib.normalmap, UniformsLib.displacementmap, {\r\n\t\t\t\topacity: {\r\n\t\t\t\t\tvalue: 1.0\r\n\t\t\t\t}\r\n\t\t\t}]),\r\n\t\t\tvertexShader: ShaderChunk.normal_vert,\r\n\t\t\tfragmentShader: ShaderChunk.normal_frag\r\n\t\t},\r\n\t\tsprite: {\r\n\t\t\tuniforms: mergeUniforms([UniformsLib.sprite, UniformsLib.fog]),\r\n\t\t\tvertexShader: ShaderChunk.sprite_vert,\r\n\t\t\tfragmentShader: ShaderChunk.sprite_frag\r\n\t\t},\r\n\t\tbackground: {\r\n\t\t\tuniforms: {\r\n\t\t\t\tuvTransform: {\r\n\t\t\t\t\tvalue: new Matrix3()\r\n\t\t\t\t},\r\n\t\t\t\tt2D: {\r\n\t\t\t\t\tvalue: null\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tvertexShader: ShaderChunk.background_vert,\r\n\t\t\tfragmentShader: ShaderChunk.background_frag\r\n\t\t},\r\n\r\n\t\t/* -------------------------------------------------------------------------\r\n\t\t//\tCube map shader\r\n\t\t ------------------------------------------------------------------------- */\r\n\t\tcube: {\r\n\t\t\tuniforms: mergeUniforms([UniformsLib.envmap, {\r\n\t\t\t\topacity: {\r\n\t\t\t\t\tvalue: 1.0\r\n\t\t\t\t}\r\n\t\t\t}]),\r\n\t\t\tvertexShader: ShaderChunk.cube_vert,\r\n\t\t\tfragmentShader: ShaderChunk.cube_frag\r\n\t\t},\r\n\t\tequirect: {\r\n\t\t\tuniforms: {\r\n\t\t\t\ttEquirect: {\r\n\t\t\t\t\tvalue: null\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tvertexShader: ShaderChunk.equirect_vert,\r\n\t\t\tfragmentShader: ShaderChunk.equirect_frag\r\n\t\t},\r\n\t\tdistanceRGBA: {\r\n\t\t\tuniforms: mergeUniforms([UniformsLib.common, UniformsLib.displacementmap, {\r\n\t\t\t\treferencePosition: {\r\n\t\t\t\t\tvalue: new Vector3()\r\n\t\t\t\t},\r\n\t\t\t\tnearDistance: {\r\n\t\t\t\t\tvalue: 1\r\n\t\t\t\t},\r\n\t\t\t\tfarDistance: {\r\n\t\t\t\t\tvalue: 1000\r\n\t\t\t\t}\r\n\t\t\t}]),\r\n\t\t\tvertexShader: ShaderChunk.distanceRGBA_vert,\r\n\t\t\tfragmentShader: ShaderChunk.distanceRGBA_frag\r\n\t\t},\r\n\t\tshadow: {\r\n\t\t\tuniforms: mergeUniforms([UniformsLib.lights, UniformsLib.fog, {\r\n\t\t\t\tcolor: {\r\n\t\t\t\t\tvalue: new Color(0x00000)\r\n\t\t\t\t},\r\n\t\t\t\topacity: {\r\n\t\t\t\t\tvalue: 1.0\r\n\t\t\t\t}\r\n\t\t\t}]),\r\n\t\t\tvertexShader: ShaderChunk.shadow_vert,\r\n\t\t\tfragmentShader: ShaderChunk.shadow_frag\r\n\t\t}\r\n\t};\r\n\tShaderLib.physical = {\r\n\t\tuniforms: mergeUniforms([ShaderLib.standard.uniforms, {\r\n\t\t\tclearcoat: {\r\n\t\t\t\tvalue: 0\r\n\t\t\t},\r\n\t\t\tclearcoatMap: {\r\n\t\t\t\tvalue: null\r\n\t\t\t},\r\n\t\t\tclearcoatRoughness: {\r\n\t\t\t\tvalue: 0\r\n\t\t\t},\r\n\t\t\tclearcoatRoughnessMap: {\r\n\t\t\t\tvalue: null\r\n\t\t\t},\r\n\t\t\tclearcoatNormalScale: {\r\n\t\t\t\tvalue: new Vector2(1, 1)\r\n\t\t\t},\r\n\t\t\tclearcoatNormalMap: {\r\n\t\t\t\tvalue: null\r\n\t\t\t},\r\n\t\t\tsheen: {\r\n\t\t\t\tvalue: new Color(0x000000)\r\n\t\t\t},\r\n\t\t\ttransmission: {\r\n\t\t\t\tvalue: 0\r\n\t\t\t},\r\n\t\t\ttransmissionMap: {\r\n\t\t\t\tvalue: null\r\n\t\t\t}\r\n\t\t}]),\r\n\t\tvertexShader: ShaderChunk.meshphysical_vert,\r\n\t\tfragmentShader: ShaderChunk.meshphysical_frag\r\n\t};\r\n\r\n\tfunction WebGLBackground(renderer, cubemaps, state, objects, premultipliedAlpha) {\r\n\t\tvar clearColor = new Color(0x000000);\r\n\t\tvar clearAlpha = 0;\r\n\t\tvar planeMesh;\r\n\t\tvar boxMesh;\r\n\t\tvar currentBackground = null;\r\n\t\tvar currentBackgroundVersion = 0;\r\n\t\tvar currentTonemapping = null;\r\n\r\n\t\tfunction render(renderList, scene, camera, forceClear) {\r\n\t\t\tvar background = scene.isScene === true ? scene.background : null;\r\n\r\n\t\t\tif (background && background.isTexture) {\r\n\t\t\t\tbackground = cubemaps.get(background);\r\n\t\t\t} // Ignore background in AR\r\n\t\t\t// TODO: Reconsider this.\r\n\r\n\r\n\t\t\tvar xr = renderer.xr;\r\n\t\t\tvar session = xr.getSession && xr.getSession();\r\n\r\n\t\t\tif (session && session.environmentBlendMode === 'additive') {\r\n\t\t\t\tbackground = null;\r\n\t\t\t}\r\n\r\n\t\t\tif (background === null) {\r\n\t\t\t\tsetClear(clearColor, clearAlpha);\r\n\t\t\t} else if (background && background.isColor) {\r\n\t\t\t\tsetClear(background, 1);\r\n\t\t\t\tforceClear = true;\r\n\t\t\t}\r\n\r\n\t\t\tif (renderer.autoClear || forceClear) {\r\n\t\t\t\trenderer.clear(renderer.autoClearColor, renderer.autoClearDepth, renderer.autoClearStencil);\r\n\t\t\t}\r\n\r\n\t\t\tif (background && (background.isCubeTexture || background.isWebGLCubeRenderTarget || background.mapping === CubeUVReflectionMapping)) {\r\n\t\t\t\tif (boxMesh === undefined) {\r\n\t\t\t\t\tboxMesh = new Mesh(new BoxBufferGeometry(1, 1, 1), new ShaderMaterial({\r\n\t\t\t\t\t\tname: 'BackgroundCubeMaterial',\r\n\t\t\t\t\t\tuniforms: cloneUniforms(ShaderLib.cube.uniforms),\r\n\t\t\t\t\t\tvertexShader: ShaderLib.cube.vertexShader,\r\n\t\t\t\t\t\tfragmentShader: ShaderLib.cube.fragmentShader,\r\n\t\t\t\t\t\tside: BackSide,\r\n\t\t\t\t\t\tdepthTest: false,\r\n\t\t\t\t\t\tdepthWrite: false,\r\n\t\t\t\t\t\tfog: false\r\n\t\t\t\t\t}));\r\n\t\t\t\t\tboxMesh.geometry.deleteAttribute('normal');\r\n\t\t\t\t\tboxMesh.geometry.deleteAttribute('uv');\r\n\r\n\t\t\t\t\tboxMesh.onBeforeRender = function (renderer, scene, camera) {\r\n\t\t\t\t\t\tthis.matrixWorld.copyPosition(camera.matrixWorld);\r\n\t\t\t\t\t}; // enable code injection for non-built-in material\r\n\r\n\r\n\t\t\t\t\tObject.defineProperty(boxMesh.material, 'envMap', {\r\n\t\t\t\t\t\tget: function get() {\r\n\t\t\t\t\t\t\treturn this.uniforms.envMap.value;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tobjects.update(boxMesh);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (background.isWebGLCubeRenderTarget) {\r\n\t\t\t\t\t// TODO Deprecate\r\n\t\t\t\t\tbackground = background.texture;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tboxMesh.material.uniforms.envMap.value = background;\r\n\t\t\t\tboxMesh.material.uniforms.flipEnvMap.value = background.isCubeTexture && background._needsFlipEnvMap ? -1 : 1;\r\n\r\n\t\t\t\tif (currentBackground !== background || currentBackgroundVersion !== background.version || currentTonemapping !== renderer.toneMapping) {\r\n\t\t\t\t\tboxMesh.material.needsUpdate = true;\r\n\t\t\t\t\tcurrentBackground = background;\r\n\t\t\t\t\tcurrentBackgroundVersion = background.version;\r\n\t\t\t\t\tcurrentTonemapping = renderer.toneMapping;\r\n\t\t\t\t} // push to the pre-sorted opaque render list\r\n\r\n\r\n\t\t\t\trenderList.unshift(boxMesh, boxMesh.geometry, boxMesh.material, 0, 0, null);\r\n\t\t\t} else if (background && background.isTexture) {\r\n\t\t\t\tif (planeMesh === undefined) {\r\n\t\t\t\t\tplaneMesh = new Mesh(new PlaneBufferGeometry(2, 2), new ShaderMaterial({\r\n\t\t\t\t\t\tname: 'BackgroundMaterial',\r\n\t\t\t\t\t\tuniforms: cloneUniforms(ShaderLib.background.uniforms),\r\n\t\t\t\t\t\tvertexShader: ShaderLib.background.vertexShader,\r\n\t\t\t\t\t\tfragmentShader: ShaderLib.background.fragmentShader,\r\n\t\t\t\t\t\tside: FrontSide,\r\n\t\t\t\t\t\tdepthTest: false,\r\n\t\t\t\t\t\tdepthWrite: false,\r\n\t\t\t\t\t\tfog: false\r\n\t\t\t\t\t}));\r\n\t\t\t\t\tplaneMesh.geometry.deleteAttribute('normal'); // enable code injection for non-built-in material\r\n\r\n\t\t\t\t\tObject.defineProperty(planeMesh.material, 'map', {\r\n\t\t\t\t\t\tget: function get() {\r\n\t\t\t\t\t\t\treturn this.uniforms.t2D.value;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tobjects.update(planeMesh);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tplaneMesh.material.uniforms.t2D.value = background;\r\n\r\n\t\t\t\tif (background.matrixAutoUpdate === true) {\r\n\t\t\t\t\tbackground.updateMatrix();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tplaneMesh.material.uniforms.uvTransform.value.copy(background.matrix);\r\n\r\n\t\t\t\tif (currentBackground !== background || currentBackgroundVersion !== background.version || currentTonemapping !== renderer.toneMapping) {\r\n\t\t\t\t\tplaneMesh.material.needsUpdate = true;\r\n\t\t\t\t\tcurrentBackground = background;\r\n\t\t\t\t\tcurrentBackgroundVersion = background.version;\r\n\t\t\t\t\tcurrentTonemapping = renderer.toneMapping;\r\n\t\t\t\t} // push to the pre-sorted opaque render list\r\n\r\n\r\n\t\t\t\trenderList.unshift(planeMesh, planeMesh.geometry, planeMesh.material, 0, 0, null);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction setClear(color, alpha) {\r\n\t\t\tstate.buffers.color.setClear(color.r, color.g, color.b, alpha, premultipliedAlpha);\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tgetClearColor: function getClearColor() {\r\n\t\t\t\treturn clearColor;\r\n\t\t\t},\r\n\t\t\tsetClearColor: function setClearColor(color, alpha) {\r\n\t\t\t\tif (alpha === void 0) {\r\n\t\t\t\t\talpha = 1;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tclearColor.set(color);\r\n\t\t\t\tclearAlpha = alpha;\r\n\t\t\t\tsetClear(clearColor, clearAlpha);\r\n\t\t\t},\r\n\t\t\tgetClearAlpha: function getClearAlpha() {\r\n\t\t\t\treturn clearAlpha;\r\n\t\t\t},\r\n\t\t\tsetClearAlpha: function setClearAlpha(alpha) {\r\n\t\t\t\tclearAlpha = alpha;\r\n\t\t\t\tsetClear(clearColor, clearAlpha);\r\n\t\t\t},\r\n\t\t\trender: render\r\n\t\t};\r\n\t}\r\n\r\n\tfunction WebGLBindingStates(gl, extensions, attributes, capabilities) {\r\n\t\tvar maxVertexAttributes = gl.getParameter(34921);\r\n\t\tvar extension = capabilities.isWebGL2 ? null : extensions.get('OES_vertex_array_object');\r\n\t\tvar vaoAvailable = capabilities.isWebGL2 || extension !== null;\r\n\t\tvar bindingStates = {};\r\n\t\tvar defaultState = createBindingState(null);\r\n\t\tvar currentState = defaultState;\r\n\r\n\t\tfunction setup(object, material, program, geometry, index) {\r\n\t\t\tvar updateBuffers = false;\r\n\r\n\t\t\tif (vaoAvailable) {\r\n\t\t\t\tvar state = getBindingState(geometry, program, material);\r\n\r\n\t\t\t\tif (currentState !== state) {\r\n\t\t\t\t\tcurrentState = state;\r\n\t\t\t\t\tbindVertexArrayObject(currentState.object);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tupdateBuffers = needsUpdate(geometry, index);\r\n\t\t\t\tif (updateBuffers) saveCache(geometry, index);\r\n\t\t\t} else {\r\n\t\t\t\tvar wireframe = material.wireframe === true;\r\n\r\n\t\t\t\tif (currentState.geometry !== geometry.id || currentState.program !== program.id || currentState.wireframe !== wireframe) {\r\n\t\t\t\t\tcurrentState.geometry = geometry.id;\r\n\t\t\t\t\tcurrentState.program = program.id;\r\n\t\t\t\t\tcurrentState.wireframe = wireframe;\r\n\t\t\t\t\tupdateBuffers = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (object.isInstancedMesh === true) {\r\n\t\t\t\tupdateBuffers = true;\r\n\t\t\t}\r\n\r\n\t\t\tif (index !== null) {\r\n\t\t\t\tattributes.update(index, 34963);\r\n\t\t\t}\r\n\r\n\t\t\tif (updateBuffers) {\r\n\t\t\t\tsetupVertexAttributes(object, material, program, geometry);\r\n\r\n\t\t\t\tif (index !== null) {\r\n\t\t\t\t\tgl.bindBuffer(34963, attributes.get(index).buffer);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction createVertexArrayObject() {\r\n\t\t\tif (capabilities.isWebGL2) return gl.createVertexArray();\r\n\t\t\treturn extension.createVertexArrayOES();\r\n\t\t}\r\n\r\n\t\tfunction bindVertexArrayObject(vao) {\r\n\t\t\tif (capabilities.isWebGL2) return gl.bindVertexArray(vao);\r\n\t\t\treturn extension.bindVertexArrayOES(vao);\r\n\t\t}\r\n\r\n\t\tfunction deleteVertexArrayObject(vao) {\r\n\t\t\tif (capabilities.isWebGL2) return gl.deleteVertexArray(vao);\r\n\t\t\treturn extension.deleteVertexArrayOES(vao);\r\n\t\t}\r\n\r\n\t\tfunction getBindingState(geometry, program, material) {\r\n\t\t\tvar wireframe = material.wireframe === true;\r\n\t\t\tvar programMap = bindingStates[geometry.id];\r\n\r\n\t\t\tif (programMap === undefined) {\r\n\t\t\t\tprogramMap = {};\r\n\t\t\t\tbindingStates[geometry.id] = programMap;\r\n\t\t\t}\r\n\r\n\t\t\tvar stateMap = programMap[program.id];\r\n\r\n\t\t\tif (stateMap === undefined) {\r\n\t\t\t\tstateMap = {};\r\n\t\t\t\tprogramMap[program.id] = stateMap;\r\n\t\t\t}\r\n\r\n\t\t\tvar state = stateMap[wireframe];\r\n\r\n\t\t\tif (state === undefined) {\r\n\t\t\t\tstate = createBindingState(createVertexArrayObject());\r\n\t\t\t\tstateMap[wireframe] = state;\r\n\t\t\t}\r\n\r\n\t\t\treturn state;\r\n\t\t}\r\n\r\n\t\tfunction createBindingState(vao) {\r\n\t\t\tvar newAttributes = [];\r\n\t\t\tvar enabledAttributes = [];\r\n\t\t\tvar attributeDivisors = [];\r\n\r\n\t\t\tfor (var i = 0; i < maxVertexAttributes; i++) {\r\n\t\t\t\tnewAttributes[i] = 0;\r\n\t\t\t\tenabledAttributes[i] = 0;\r\n\t\t\t\tattributeDivisors[i] = 0;\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\t// for backward compatibility on non-VAO support browser\r\n\t\t\t\tgeometry: null,\r\n\t\t\t\tprogram: null,\r\n\t\t\t\twireframe: false,\r\n\t\t\t\tnewAttributes: newAttributes,\r\n\t\t\t\tenabledAttributes: enabledAttributes,\r\n\t\t\t\tattributeDivisors: attributeDivisors,\r\n\t\t\t\tobject: vao,\r\n\t\t\t\tattributes: {},\r\n\t\t\t\tindex: null\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tfunction needsUpdate(geometry, index) {\r\n\t\t\tvar cachedAttributes = currentState.attributes;\r\n\t\t\tvar geometryAttributes = geometry.attributes;\r\n\t\t\tvar attributesNum = 0;\r\n\r\n\t\t\tfor (var key in geometryAttributes) {\r\n\t\t\t\tvar cachedAttribute = cachedAttributes[key];\r\n\t\t\t\tvar geometryAttribute = geometryAttributes[key];\r\n\t\t\t\tif (cachedAttribute === undefined) return true;\r\n\t\t\t\tif (cachedAttribute.attribute !== geometryAttribute) return true;\r\n\t\t\t\tif (cachedAttribute.data !== geometryAttribute.data) return true;\r\n\t\t\t\tattributesNum++;\r\n\t\t\t}\r\n\r\n\t\t\tif (currentState.attributesNum !== attributesNum) return true;\r\n\t\t\tif (currentState.index !== index) return true;\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tfunction saveCache(geometry, index) {\r\n\t\t\tvar cache = {};\r\n\t\t\tvar attributes = geometry.attributes;\r\n\t\t\tvar attributesNum = 0;\r\n\r\n\t\t\tfor (var key in attributes) {\r\n\t\t\t\tvar attribute = attributes[key];\r\n\t\t\t\tvar data = {};\r\n\t\t\t\tdata.attribute = attribute;\r\n\r\n\t\t\t\tif (attribute.data) {\r\n\t\t\t\t\tdata.data = attribute.data;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcache[key] = data;\r\n\t\t\t\tattributesNum++;\r\n\t\t\t}\r\n\r\n\t\t\tcurrentState.attributes = cache;\r\n\t\t\tcurrentState.attributesNum = attributesNum;\r\n\t\t\tcurrentState.index = index;\r\n\t\t}\r\n\r\n\t\tfunction initAttributes() {\r\n\t\t\tvar newAttributes = currentState.newAttributes;\r\n\r\n\t\t\tfor (var i = 0, il = newAttributes.length; i < il; i++) {\r\n\t\t\t\tnewAttributes[i] = 0;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction enableAttribute(attribute) {\r\n\t\t\tenableAttributeAndDivisor(attribute, 0);\r\n\t\t}\r\n\r\n\t\tfunction enableAttributeAndDivisor(attribute, meshPerAttribute) {\r\n\t\t\tvar newAttributes = currentState.newAttributes;\r\n\t\t\tvar enabledAttributes = currentState.enabledAttributes;\r\n\t\t\tvar attributeDivisors = currentState.attributeDivisors;\r\n\t\t\tnewAttributes[attribute] = 1;\r\n\r\n\t\t\tif (enabledAttributes[attribute] === 0) {\r\n\t\t\t\tgl.enableVertexAttribArray(attribute);\r\n\t\t\t\tenabledAttributes[attribute] = 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (attributeDivisors[attribute] !== meshPerAttribute) {\r\n\t\t\t\tvar _extension = capabilities.isWebGL2 ? gl : extensions.get('ANGLE_instanced_arrays');\r\n\r\n\t\t\t\t_extension[capabilities.isWebGL2 ? 'vertexAttribDivisor' : 'vertexAttribDivisorANGLE'](attribute, meshPerAttribute);\r\n\r\n\t\t\t\tattributeDivisors[attribute] = meshPerAttribute;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction disableUnusedAttributes() {\r\n\t\t\tvar newAttributes = currentState.newAttributes;\r\n\t\t\tvar enabledAttributes = currentState.enabledAttributes;\r\n\r\n\t\t\tfor (var i = 0, il = enabledAttributes.length; i < il; i++) {\r\n\t\t\t\tif (enabledAttributes[i] !== newAttributes[i]) {\r\n\t\t\t\t\tgl.disableVertexAttribArray(i);\r\n\t\t\t\t\tenabledAttributes[i] = 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction vertexAttribPointer(index, size, type, normalized, stride, offset) {\r\n\t\t\tif (capabilities.isWebGL2 === true && (type === 5124 || type === 5125)) {\r\n\t\t\t\tgl.vertexAttribIPointer(index, size, type, stride, offset);\r\n\t\t\t} else {\r\n\t\t\t\tgl.vertexAttribPointer(index, size, type, normalized, stride, offset);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction setupVertexAttributes(object, material, program, geometry) {\r\n\t\t\tif (capabilities.isWebGL2 === false && (object.isInstancedMesh || geometry.isInstancedBufferGeometry)) {\r\n\t\t\t\tif (extensions.get('ANGLE_instanced_arrays') === null) return;\r\n\t\t\t}\r\n\r\n\t\t\tinitAttributes();\r\n\t\t\tvar geometryAttributes = geometry.attributes;\r\n\t\t\tvar programAttributes = program.getAttributes();\r\n\t\t\tvar materialDefaultAttributeValues = material.defaultAttributeValues;\r\n\r\n\t\t\tfor (var name in programAttributes) {\r\n\t\t\t\tvar programAttribute = programAttributes[name];\r\n\r\n\t\t\t\tif (programAttribute >= 0) {\r\n\t\t\t\t\tvar geometryAttribute = geometryAttributes[name];\r\n\r\n\t\t\t\t\tif (geometryAttribute !== undefined) {\r\n\t\t\t\t\t\tvar normalized = geometryAttribute.normalized;\r\n\t\t\t\t\t\tvar size = geometryAttribute.itemSize;\r\n\t\t\t\t\t\tvar attribute = attributes.get(geometryAttribute); // TODO Attribute may not be available on context restore\r\n\r\n\t\t\t\t\t\tif (attribute === undefined) continue;\r\n\t\t\t\t\t\tvar buffer = attribute.buffer;\r\n\t\t\t\t\t\tvar type = attribute.type;\r\n\t\t\t\t\t\tvar bytesPerElement = attribute.bytesPerElement;\r\n\r\n\t\t\t\t\t\tif (geometryAttribute.isInterleavedBufferAttribute) {\r\n\t\t\t\t\t\t\tvar data = geometryAttribute.data;\r\n\t\t\t\t\t\t\tvar stride = data.stride;\r\n\t\t\t\t\t\t\tvar offset = geometryAttribute.offset;\r\n\r\n\t\t\t\t\t\t\tif (data && data.isInstancedInterleavedBuffer) {\r\n\t\t\t\t\t\t\t\tenableAttributeAndDivisor(programAttribute, data.meshPerAttribute);\r\n\r\n\t\t\t\t\t\t\t\tif (geometry._maxInstanceCount === undefined) {\r\n\t\t\t\t\t\t\t\t\tgeometry._maxInstanceCount = data.meshPerAttribute * data.count;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tenableAttribute(programAttribute);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tgl.bindBuffer(34962, buffer);\r\n\t\t\t\t\t\t\tvertexAttribPointer(programAttribute, size, type, normalized, stride * bytesPerElement, offset * bytesPerElement);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tif (geometryAttribute.isInstancedBufferAttribute) {\r\n\t\t\t\t\t\t\t\tenableAttributeAndDivisor(programAttribute, geometryAttribute.meshPerAttribute);\r\n\r\n\t\t\t\t\t\t\t\tif (geometry._maxInstanceCount === undefined) {\r\n\t\t\t\t\t\t\t\t\tgeometry._maxInstanceCount = geometryAttribute.meshPerAttribute * geometryAttribute.count;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tenableAttribute(programAttribute);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tgl.bindBuffer(34962, buffer);\r\n\t\t\t\t\t\t\tvertexAttribPointer(programAttribute, size, type, normalized, 0, 0);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (name === 'instanceMatrix') {\r\n\t\t\t\t\t\tvar _attribute = attributes.get(object.instanceMatrix); // TODO Attribute may not be available on context restore\r\n\r\n\r\n\t\t\t\t\t\tif (_attribute === undefined) continue;\r\n\t\t\t\t\t\tvar _buffer = _attribute.buffer;\r\n\t\t\t\t\t\tvar _type = _attribute.type;\r\n\t\t\t\t\t\tenableAttributeAndDivisor(programAttribute + 0, 1);\r\n\t\t\t\t\t\tenableAttributeAndDivisor(programAttribute + 1, 1);\r\n\t\t\t\t\t\tenableAttributeAndDivisor(programAttribute + 2, 1);\r\n\t\t\t\t\t\tenableAttributeAndDivisor(programAttribute + 3, 1);\r\n\t\t\t\t\t\tgl.bindBuffer(34962, _buffer);\r\n\t\t\t\t\t\tgl.vertexAttribPointer(programAttribute + 0, 4, _type, false, 64, 0);\r\n\t\t\t\t\t\tgl.vertexAttribPointer(programAttribute + 1, 4, _type, false, 64, 16);\r\n\t\t\t\t\t\tgl.vertexAttribPointer(programAttribute + 2, 4, _type, false, 64, 32);\r\n\t\t\t\t\t\tgl.vertexAttribPointer(programAttribute + 3, 4, _type, false, 64, 48);\r\n\t\t\t\t\t} else if (name === 'instanceColor') {\r\n\t\t\t\t\t\tvar _attribute2 = attributes.get(object.instanceColor); // TODO Attribute may not be available on context restore\r\n\r\n\r\n\t\t\t\t\t\tif (_attribute2 === undefined) continue;\r\n\t\t\t\t\t\tvar _buffer2 = _attribute2.buffer;\r\n\t\t\t\t\t\tvar _type2 = _attribute2.type;\r\n\t\t\t\t\t\tenableAttributeAndDivisor(programAttribute, 1);\r\n\t\t\t\t\t\tgl.bindBuffer(34962, _buffer2);\r\n\t\t\t\t\t\tgl.vertexAttribPointer(programAttribute, 3, _type2, false, 12, 0);\r\n\t\t\t\t\t} else if (materialDefaultAttributeValues !== undefined) {\r\n\t\t\t\t\t\tvar value = materialDefaultAttributeValues[name];\r\n\r\n\t\t\t\t\t\tif (value !== undefined) {\r\n\t\t\t\t\t\t\tswitch (value.length) {\r\n\t\t\t\t\t\t\t\tcase 2:\r\n\t\t\t\t\t\t\t\t\tgl.vertexAttrib2fv(programAttribute, value);\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\tcase 3:\r\n\t\t\t\t\t\t\t\t\tgl.vertexAttrib3fv(programAttribute, value);\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\tcase 4:\r\n\t\t\t\t\t\t\t\t\tgl.vertexAttrib4fv(programAttribute, value);\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\t\tgl.vertexAttrib1fv(programAttribute, value);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tdisableUnusedAttributes();\r\n\t\t}\r\n\r\n\t\tfunction dispose() {\r\n\t\t\treset();\r\n\r\n\t\t\tfor (var geometryId in bindingStates) {\r\n\t\t\t\tvar programMap = bindingStates[geometryId];\r\n\r\n\t\t\t\tfor (var programId in programMap) {\r\n\t\t\t\t\tvar stateMap = programMap[programId];\r\n\r\n\t\t\t\t\tfor (var wireframe in stateMap) {\r\n\t\t\t\t\t\tdeleteVertexArrayObject(stateMap[wireframe].object);\r\n\t\t\t\t\t\tdelete stateMap[wireframe];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tdelete programMap[programId];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdelete bindingStates[geometryId];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction releaseStatesOfGeometry(geometry) {\r\n\t\t\tif (bindingStates[geometry.id] === undefined) return;\r\n\t\t\tvar programMap = bindingStates[geometry.id];\r\n\r\n\t\t\tfor (var programId in programMap) {\r\n\t\t\t\tvar stateMap = programMap[programId];\r\n\r\n\t\t\t\tfor (var wireframe in stateMap) {\r\n\t\t\t\t\tdeleteVertexArrayObject(stateMap[wireframe].object);\r\n\t\t\t\t\tdelete stateMap[wireframe];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdelete programMap[programId];\r\n\t\t\t}\r\n\r\n\t\t\tdelete bindingStates[geometry.id];\r\n\t\t}\r\n\r\n\t\tfunction releaseStatesOfProgram(program) {\r\n\t\t\tfor (var geometryId in bindingStates) {\r\n\t\t\t\tvar programMap = bindingStates[geometryId];\r\n\t\t\t\tif (programMap[program.id] === undefined) continue;\r\n\t\t\t\tvar stateMap = programMap[program.id];\r\n\r\n\t\t\t\tfor (var wireframe in stateMap) {\r\n\t\t\t\t\tdeleteVertexArrayObject(stateMap[wireframe].object);\r\n\t\t\t\t\tdelete stateMap[wireframe];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdelete programMap[program.id];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction reset() {\r\n\t\t\tresetDefaultState();\r\n\t\t\tif (currentState === defaultState) return;\r\n\t\t\tcurrentState = defaultState;\r\n\t\t\tbindVertexArrayObject(currentState.object);\r\n\t\t} // for backward-compatilibity\r\n\r\n\r\n\t\tfunction resetDefaultState() {\r\n\t\t\tdefaultState.geometry = null;\r\n\t\t\tdefaultState.program = null;\r\n\t\t\tdefaultState.wireframe = false;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tsetup: setup,\r\n\t\t\treset: reset,\r\n\t\t\tresetDefaultState: resetDefaultState,\r\n\t\t\tdispose: dispose,\r\n\t\t\treleaseStatesOfGeometry: releaseStatesOfGeometry,\r\n\t\t\treleaseStatesOfProgram: releaseStatesOfProgram,\r\n\t\t\tinitAttributes: initAttributes,\r\n\t\t\tenableAttribute: enableAttribute,\r\n\t\t\tdisableUnusedAttributes: disableUnusedAttributes\r\n\t\t};\r\n\t}\r\n\r\n\tfunction WebGLBufferRenderer(gl, extensions, info, capabilities) {\r\n\t\tvar isWebGL2 = capabilities.isWebGL2;\r\n\t\tvar mode;\r\n\r\n\t\tfunction setMode(value) {\r\n\t\t\tmode = value;\r\n\t\t}\r\n\r\n\t\tfunction render(start, count) {\r\n\t\t\tgl.drawArrays(mode, start, count);\r\n\t\t\tinfo.update(count, mode, 1);\r\n\t\t}\r\n\r\n\t\tfunction renderInstances(start, count, primcount) {\r\n\t\t\tif (primcount === 0) return;\r\n\t\t\tvar extension, methodName;\r\n\r\n\t\t\tif (isWebGL2) {\r\n\t\t\t\textension = gl;\r\n\t\t\t\tmethodName = 'drawArraysInstanced';\r\n\t\t\t} else {\r\n\t\t\t\textension = extensions.get('ANGLE_instanced_arrays');\r\n\t\t\t\tmethodName = 'drawArraysInstancedANGLE';\r\n\r\n\t\t\t\tif (extension === null) {\r\n\t\t\t\t\tconsole.error('THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.');\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\textension[methodName](mode, start, count, primcount);\r\n\t\t\tinfo.update(count, mode, primcount);\r\n\t\t} //\r\n\r\n\r\n\t\tthis.setMode = setMode;\r\n\t\tthis.render = render;\r\n\t\tthis.renderInstances = renderInstances;\r\n\t}\r\n\r\n\tfunction WebGLCapabilities(gl, extensions, parameters) {\r\n\t\tvar maxAnisotropy;\r\n\r\n\t\tfunction getMaxAnisotropy() {\r\n\t\t\tif (maxAnisotropy !== undefined) return maxAnisotropy;\r\n\t\t\tvar extension = extensions.get('EXT_texture_filter_anisotropic');\r\n\r\n\t\t\tif (extension !== null) {\r\n\t\t\t\tmaxAnisotropy = gl.getParameter(extension.MAX_TEXTURE_MAX_ANISOTROPY_EXT);\r\n\t\t\t} else {\r\n\t\t\t\tmaxAnisotropy = 0;\r\n\t\t\t}\r\n\r\n\t\t\treturn maxAnisotropy;\r\n\t\t}\r\n\r\n\t\tfunction getMaxPrecision(precision) {\r\n\t\t\tif (precision === 'highp') {\r\n\t\t\t\tif (gl.getShaderPrecisionFormat(35633, 36338).precision > 0 && gl.getShaderPrecisionFormat(35632, 36338).precision > 0) {\r\n\t\t\t\t\treturn 'highp';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tprecision = 'mediump';\r\n\t\t\t}\r\n\r\n\t\t\tif (precision === 'mediump') {\r\n\t\t\t\tif (gl.getShaderPrecisionFormat(35633, 36337).precision > 0 && gl.getShaderPrecisionFormat(35632, 36337).precision > 0) {\r\n\t\t\t\t\treturn 'mediump';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn 'lowp';\r\n\t\t}\r\n\t\t/* eslint-disable no-undef */\r\n\r\n\r\n\t\tvar isWebGL2 = typeof WebGL2RenderingContext !== 'undefined' && gl instanceof WebGL2RenderingContext || typeof WebGL2ComputeRenderingContext !== 'undefined' && gl instanceof WebGL2ComputeRenderingContext;\r\n\t\t/* eslint-enable no-undef */\r\n\r\n\t\tvar precision = parameters.precision !== undefined ? parameters.precision : 'highp';\r\n\t\tvar maxPrecision = getMaxPrecision(precision);\r\n\r\n\t\tif (maxPrecision !== precision) {\r\n\t\t\tconsole.warn('THREE.WebGLRenderer:', precision, 'not supported, using', maxPrecision, 'instead.');\r\n\t\t\tprecision = maxPrecision;\r\n\t\t}\r\n\r\n\t\tvar logarithmicDepthBuffer = parameters.logarithmicDepthBuffer === true;\r\n\t\tvar maxTextures = gl.getParameter(34930);\r\n\t\tvar maxVertexTextures = gl.getParameter(35660);\r\n\t\tvar maxTextureSize = gl.getParameter(3379);\r\n\t\tvar maxCubemapSize = gl.getParameter(34076);\r\n\t\tvar maxAttributes = gl.getParameter(34921);\r\n\t\tvar maxVertexUniforms = gl.getParameter(36347);\r\n\t\tvar maxVaryings = gl.getParameter(36348);\r\n\t\tvar maxFragmentUniforms = gl.getParameter(36349);\r\n\t\tvar vertexTextures = maxVertexTextures > 0;\r\n\t\tvar floatFragmentTextures = isWebGL2 || !!extensions.get('OES_texture_float');\r\n\t\tvar floatVertexTextures = vertexTextures && floatFragmentTextures;\r\n\t\tvar maxSamples = isWebGL2 ? gl.getParameter(36183) : 0;\r\n\t\treturn {\r\n\t\t\tisWebGL2: isWebGL2,\r\n\t\t\tgetMaxAnisotropy: getMaxAnisotropy,\r\n\t\t\tgetMaxPrecision: getMaxPrecision,\r\n\t\t\tprecision: precision,\r\n\t\t\tlogarithmicDepthBuffer: logarithmicDepthBuffer,\r\n\t\t\tmaxTextures: maxTextures,\r\n\t\t\tmaxVertexTextures: maxVertexTextures,\r\n\t\t\tmaxTextureSize: maxTextureSize,\r\n\t\t\tmaxCubemapSize: maxCubemapSize,\r\n\t\t\tmaxAttributes: maxAttributes,\r\n\t\t\tmaxVertexUniforms: maxVertexUniforms,\r\n\t\t\tmaxVaryings: maxVaryings,\r\n\t\t\tmaxFragmentUniforms: maxFragmentUniforms,\r\n\t\t\tvertexTextures: vertexTextures,\r\n\t\t\tfloatFragmentTextures: floatFragmentTextures,\r\n\t\t\tfloatVertexTextures: floatVertexTextures,\r\n\t\t\tmaxSamples: maxSamples\r\n\t\t};\r\n\t}\r\n\r\n\tfunction WebGLClipping(properties) {\r\n\t\tvar scope = this;\r\n\t\tvar globalState = null,\r\n\t\t\t\tnumGlobalPlanes = 0,\r\n\t\t\t\tlocalClippingEnabled = false,\r\n\t\t\t\trenderingShadows = false;\r\n\t\tvar plane = new Plane(),\r\n\t\t\t\tviewNormalMatrix = new Matrix3(),\r\n\t\t\t\tuniform = {\r\n\t\t\tvalue: null,\r\n\t\t\tneedsUpdate: false\r\n\t\t};\r\n\t\tthis.uniform = uniform;\r\n\t\tthis.numPlanes = 0;\r\n\t\tthis.numIntersection = 0;\r\n\r\n\t\tthis.init = function (planes, enableLocalClipping, camera) {\r\n\t\t\tvar enabled = planes.length !== 0 || enableLocalClipping || // enable state of previous frame - the clipping code has to\r\n\t\t\t// run another frame in order to reset the state:\r\n\t\t\tnumGlobalPlanes !== 0 || localClippingEnabled;\r\n\t\t\tlocalClippingEnabled = enableLocalClipping;\r\n\t\t\tglobalState = projectPlanes(planes, camera, 0);\r\n\t\t\tnumGlobalPlanes = planes.length;\r\n\t\t\treturn enabled;\r\n\t\t};\r\n\r\n\t\tthis.beginShadows = function () {\r\n\t\t\trenderingShadows = true;\r\n\t\t\tprojectPlanes(null);\r\n\t\t};\r\n\r\n\t\tthis.endShadows = function () {\r\n\t\t\trenderingShadows = false;\r\n\t\t\tresetGlobalState();\r\n\t\t};\r\n\r\n\t\tthis.setState = function (material, camera, useCache) {\r\n\t\t\tvar planes = material.clippingPlanes,\r\n\t\t\t\t\tclipIntersection = material.clipIntersection,\r\n\t\t\t\t\tclipShadows = material.clipShadows;\r\n\t\t\tvar materialProperties = properties.get(material);\r\n\r\n\t\t\tif (!localClippingEnabled || planes === null || planes.length === 0 || renderingShadows && !clipShadows) {\r\n\t\t\t\t// there's no local clipping\r\n\t\t\t\tif (renderingShadows) {\r\n\t\t\t\t\t// there's no global clipping\r\n\t\t\t\t\tprojectPlanes(null);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tresetGlobalState();\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tvar nGlobal = renderingShadows ? 0 : numGlobalPlanes,\r\n\t\t\t\t\t\tlGlobal = nGlobal * 4;\r\n\t\t\t\tvar dstArray = materialProperties.clippingState || null;\r\n\t\t\t\tuniform.value = dstArray; // ensure unique state\r\n\r\n\t\t\t\tdstArray = projectPlanes(planes, camera, lGlobal, useCache);\r\n\r\n\t\t\t\tfor (var i = 0; i !== lGlobal; ++i) {\r\n\t\t\t\t\tdstArray[i] = globalState[i];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tmaterialProperties.clippingState = dstArray;\r\n\t\t\t\tthis.numIntersection = clipIntersection ? this.numPlanes : 0;\r\n\t\t\t\tthis.numPlanes += nGlobal;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tfunction resetGlobalState() {\r\n\t\t\tif (uniform.value !== globalState) {\r\n\t\t\t\tuniform.value = globalState;\r\n\t\t\t\tuniform.needsUpdate = numGlobalPlanes > 0;\r\n\t\t\t}\r\n\r\n\t\t\tscope.numPlanes = numGlobalPlanes;\r\n\t\t\tscope.numIntersection = 0;\r\n\t\t}\r\n\r\n\t\tfunction projectPlanes(planes, camera, dstOffset, skipTransform) {\r\n\t\t\tvar nPlanes = planes !== null ? planes.length : 0;\r\n\t\t\tvar dstArray = null;\r\n\r\n\t\t\tif (nPlanes !== 0) {\r\n\t\t\t\tdstArray = uniform.value;\r\n\r\n\t\t\t\tif (skipTransform !== true || dstArray === null) {\r\n\t\t\t\t\tvar flatSize = dstOffset + nPlanes * 4,\r\n\t\t\t\t\t\t\tviewMatrix = camera.matrixWorldInverse;\r\n\t\t\t\t\tviewNormalMatrix.getNormalMatrix(viewMatrix);\r\n\r\n\t\t\t\t\tif (dstArray === null || dstArray.length < flatSize) {\r\n\t\t\t\t\t\tdstArray = new Float32Array(flatSize);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfor (var i = 0, i4 = dstOffset; i !== nPlanes; ++i, i4 += 4) {\r\n\t\t\t\t\t\tplane.copy(planes[i]).applyMatrix4(viewMatrix, viewNormalMatrix);\r\n\t\t\t\t\t\tplane.normal.toArray(dstArray, i4);\r\n\t\t\t\t\t\tdstArray[i4 + 3] = plane.constant;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tuniform.value = dstArray;\r\n\t\t\t\tuniform.needsUpdate = true;\r\n\t\t\t}\r\n\r\n\t\t\tscope.numPlanes = nPlanes;\r\n\t\t\tscope.numIntersection = 0;\r\n\t\t\treturn dstArray;\r\n\t\t}\r\n\t}\r\n\r\n\tfunction WebGLCubeMaps(renderer) {\r\n\t\tvar cubemaps = new WeakMap();\r\n\r\n\t\tfunction mapTextureMapping(texture, mapping) {\r\n\t\t\tif (mapping === EquirectangularReflectionMapping) {\r\n\t\t\t\ttexture.mapping = CubeReflectionMapping;\r\n\t\t\t} else if (mapping === EquirectangularRefractionMapping) {\r\n\t\t\t\ttexture.mapping = CubeRefractionMapping;\r\n\t\t\t}\r\n\r\n\t\t\treturn texture;\r\n\t\t}\r\n\r\n\t\tfunction get(texture) {\r\n\t\t\tif (texture && texture.isTexture) {\r\n\t\t\t\tvar mapping = texture.mapping;\r\n\r\n\t\t\t\tif (mapping === EquirectangularReflectionMapping || mapping === EquirectangularRefractionMapping) {\r\n\t\t\t\t\tif (cubemaps.has(texture)) {\r\n\t\t\t\t\t\tvar cubemap = cubemaps.get(texture).texture;\r\n\t\t\t\t\t\treturn mapTextureMapping(cubemap, texture.mapping);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvar image = texture.image;\r\n\r\n\t\t\t\t\t\tif (image && image.height > 0) {\r\n\t\t\t\t\t\t\tvar currentRenderList = renderer.getRenderList();\r\n\t\t\t\t\t\t\tvar currentRenderTarget = renderer.getRenderTarget();\r\n\t\t\t\t\t\t\tvar currentRenderState = renderer.getRenderState();\r\n\t\t\t\t\t\t\tvar renderTarget = new WebGLCubeRenderTarget(image.height / 2);\r\n\t\t\t\t\t\t\trenderTarget.fromEquirectangularTexture(renderer, texture);\r\n\t\t\t\t\t\t\tcubemaps.set(texture, renderTarget);\r\n\t\t\t\t\t\t\trenderer.setRenderTarget(currentRenderTarget);\r\n\t\t\t\t\t\t\trenderer.setRenderList(currentRenderList);\r\n\t\t\t\t\t\t\trenderer.setRenderState(currentRenderState);\r\n\t\t\t\t\t\t\ttexture.addEventListener('dispose', onTextureDispose);\r\n\t\t\t\t\t\t\treturn mapTextureMapping(renderTarget.texture, texture.mapping);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// image not yet ready. try the conversion next frame\r\n\t\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn texture;\r\n\t\t}\r\n\r\n\t\tfunction onTextureDispose(event) {\r\n\t\t\tvar texture = event.target;\r\n\t\t\ttexture.removeEventListener('dispose', onTextureDispose);\r\n\t\t\tvar cubemap = cubemaps.get(texture);\r\n\r\n\t\t\tif (cubemap !== undefined) {\r\n\t\t\t\tcubemaps.delete(texture);\r\n\t\t\t\tcubemap.dispose();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction dispose() {\r\n\t\t\tcubemaps = new WeakMap();\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tget: get,\r\n\t\t\tdispose: dispose\r\n\t\t};\r\n\t}\r\n\r\n\tfunction WebGLExtensions(gl) {\r\n\t\tvar extensions = {};\r\n\t\treturn {\r\n\t\t\thas: function has(name) {\r\n\t\t\t\tif (extensions[name] !== undefined) {\r\n\t\t\t\t\treturn extensions[name] !== null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar extension;\r\n\r\n\t\t\t\tswitch (name) {\r\n\t\t\t\t\tcase 'WEBGL_depth_texture':\r\n\t\t\t\t\t\textension = gl.getExtension('WEBGL_depth_texture') || gl.getExtension('MOZ_WEBGL_depth_texture') || gl.getExtension('WEBKIT_WEBGL_depth_texture');\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase 'EXT_texture_filter_anisotropic':\r\n\t\t\t\t\t\textension = gl.getExtension('EXT_texture_filter_anisotropic') || gl.getExtension('MOZ_EXT_texture_filter_anisotropic') || gl.getExtension('WEBKIT_EXT_texture_filter_anisotropic');\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase 'WEBGL_compressed_texture_s3tc':\r\n\t\t\t\t\t\textension = gl.getExtension('WEBGL_compressed_texture_s3tc') || gl.getExtension('MOZ_WEBGL_compressed_texture_s3tc') || gl.getExtension('WEBKIT_WEBGL_compressed_texture_s3tc');\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase 'WEBGL_compressed_texture_pvrtc':\r\n\t\t\t\t\t\textension = gl.getExtension('WEBGL_compressed_texture_pvrtc') || gl.getExtension('WEBKIT_WEBGL_compressed_texture_pvrtc');\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\textension = gl.getExtension(name);\r\n\t\t\t\t}\r\n\r\n\t\t\t\textensions[name] = extension;\r\n\t\t\t\treturn extension !== null;\r\n\t\t\t},\r\n\t\t\tget: function get(name) {\r\n\t\t\t\tif (!this.has(name)) {\r\n\t\t\t\t\tconsole.warn('THREE.WebGLRenderer: ' + name + ' extension not supported.');\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn extensions[name];\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tfunction WebGLGeometries(gl, attributes, info, bindingStates) {\r\n\t\tvar geometries = new WeakMap();\r\n\t\tvar wireframeAttributes = new WeakMap();\r\n\r\n\t\tfunction onGeometryDispose(event) {\r\n\t\t\tvar geometry = event.target;\r\n\t\t\tvar buffergeometry = geometries.get(geometry);\r\n\r\n\t\t\tif (buffergeometry.index !== null) {\r\n\t\t\t\tattributes.remove(buffergeometry.index);\r\n\t\t\t}\r\n\r\n\t\t\tfor (var name in buffergeometry.attributes) {\r\n\t\t\t\tattributes.remove(buffergeometry.attributes[name]);\r\n\t\t\t}\r\n\r\n\t\t\tgeometry.removeEventListener('dispose', onGeometryDispose);\r\n\t\t\tgeometries.delete(geometry);\r\n\t\t\tvar attribute = wireframeAttributes.get(buffergeometry);\r\n\r\n\t\t\tif (attribute) {\r\n\t\t\t\tattributes.remove(attribute);\r\n\t\t\t\twireframeAttributes.delete(buffergeometry);\r\n\t\t\t}\r\n\r\n\t\t\tbindingStates.releaseStatesOfGeometry(buffergeometry);\r\n\r\n\t\t\tif (geometry.isInstancedBufferGeometry === true) {\r\n\t\t\t\tdelete geometry._maxInstanceCount;\r\n\t\t\t} //\r\n\r\n\r\n\t\t\tinfo.memory.geometries--;\r\n\t\t}\r\n\r\n\t\tfunction get(object, geometry) {\r\n\t\t\tvar buffergeometry = geometries.get(geometry);\r\n\t\t\tif (buffergeometry) return buffergeometry;\r\n\t\t\tgeometry.addEventListener('dispose', onGeometryDispose);\r\n\r\n\t\t\tif (geometry.isBufferGeometry) {\r\n\t\t\t\tbuffergeometry = geometry;\r\n\t\t\t} else if (geometry.isGeometry) {\r\n\t\t\t\tif (geometry._bufferGeometry === undefined) {\r\n\t\t\t\t\tgeometry._bufferGeometry = new BufferGeometry().setFromObject(object);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tbuffergeometry = geometry._bufferGeometry;\r\n\t\t\t}\r\n\r\n\t\t\tgeometries.set(geometry, buffergeometry);\r\n\t\t\tinfo.memory.geometries++;\r\n\t\t\treturn buffergeometry;\r\n\t\t}\r\n\r\n\t\tfunction update(geometry) {\r\n\t\t\tvar geometryAttributes = geometry.attributes; // Updating index buffer in VAO now. See WebGLBindingStates.\r\n\r\n\t\t\tfor (var name in geometryAttributes) {\r\n\t\t\t\tattributes.update(geometryAttributes[name], 34962);\r\n\t\t\t} // morph targets\r\n\r\n\r\n\t\t\tvar morphAttributes = geometry.morphAttributes;\r\n\r\n\t\t\tfor (var _name in morphAttributes) {\r\n\t\t\t\tvar array = morphAttributes[_name];\r\n\r\n\t\t\t\tfor (var i = 0, l = array.length; i < l; i++) {\r\n\t\t\t\t\tattributes.update(array[i], 34962);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction updateWireframeAttribute(geometry) {\r\n\t\t\tvar indices = [];\r\n\t\t\tvar geometryIndex = geometry.index;\r\n\t\t\tvar geometryPosition = geometry.attributes.position;\r\n\t\t\tvar version = 0;\r\n\r\n\t\t\tif (geometryIndex !== null) {\r\n\t\t\t\tvar array = geometryIndex.array;\r\n\t\t\t\tversion = geometryIndex.version;\r\n\r\n\t\t\t\tfor (var i = 0, l = array.length; i < l; i += 3) {\r\n\t\t\t\t\tvar a = array[i + 0];\r\n\t\t\t\t\tvar b = array[i + 1];\r\n\t\t\t\t\tvar c = array[i + 2];\r\n\t\t\t\t\tindices.push(a, b, b, c, c, a);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tvar _array = geometryPosition.array;\r\n\t\t\t\tversion = geometryPosition.version;\r\n\r\n\t\t\t\tfor (var _i = 0, _l = _array.length / 3 - 1; _i < _l; _i += 3) {\r\n\t\t\t\t\tvar _a = _i + 0;\r\n\r\n\t\t\t\t\tvar _b = _i + 1;\r\n\r\n\t\t\t\t\tvar _c = _i + 2;\r\n\r\n\t\t\t\t\tindices.push(_a, _b, _b, _c, _c, _a);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar attribute = new (arrayMax(indices) > 65535 ? Uint32BufferAttribute : Uint16BufferAttribute)(indices, 1);\r\n\t\t\tattribute.version = version; // Updating index buffer in VAO now. See WebGLBindingStates\r\n\t\t\t//\r\n\r\n\t\t\tvar previousAttribute = wireframeAttributes.get(geometry);\r\n\t\t\tif (previousAttribute) attributes.remove(previousAttribute); //\r\n\r\n\t\t\twireframeAttributes.set(geometry, attribute);\r\n\t\t}\r\n\r\n\t\tfunction getWireframeAttribute(geometry) {\r\n\t\t\tvar currentAttribute = wireframeAttributes.get(geometry);\r\n\r\n\t\t\tif (currentAttribute) {\r\n\t\t\t\tvar geometryIndex = geometry.index;\r\n\r\n\t\t\t\tif (geometryIndex !== null) {\r\n\t\t\t\t\t// if the attribute is obsolete, create a new one\r\n\t\t\t\t\tif (currentAttribute.version < geometryIndex.version) {\r\n\t\t\t\t\t\tupdateWireframeAttribute(geometry);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tupdateWireframeAttribute(geometry);\r\n\t\t\t}\r\n\r\n\t\t\treturn wireframeAttributes.get(geometry);\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tget: get,\r\n\t\t\tupdate: update,\r\n\t\t\tgetWireframeAttribute: getWireframeAttribute\r\n\t\t};\r\n\t}\r\n\r\n\tfunction WebGLIndexedBufferRenderer(gl, extensions, info, capabilities) {\r\n\t\tvar isWebGL2 = capabilities.isWebGL2;\r\n\t\tvar mode;\r\n\r\n\t\tfunction setMode(value) {\r\n\t\t\tmode = value;\r\n\t\t}\r\n\r\n\t\tvar type, bytesPerElement;\r\n\r\n\t\tfunction setIndex(value) {\r\n\t\t\ttype = value.type;\r\n\t\t\tbytesPerElement = value.bytesPerElement;\r\n\t\t}\r\n\r\n\t\tfunction render(start, count) {\r\n\t\t\tgl.drawElements(mode, count, type, start * bytesPerElement);\r\n\t\t\tinfo.update(count, mode, 1);\r\n\t\t}\r\n\r\n\t\tfunction renderInstances(start, count, primcount) {\r\n\t\t\tif (primcount === 0) return;\r\n\t\t\tvar extension, methodName;\r\n\r\n\t\t\tif (isWebGL2) {\r\n\t\t\t\textension = gl;\r\n\t\t\t\tmethodName = 'drawElementsInstanced';\r\n\t\t\t} else {\r\n\t\t\t\textension = extensions.get('ANGLE_instanced_arrays');\r\n\t\t\t\tmethodName = 'drawElementsInstancedANGLE';\r\n\r\n\t\t\t\tif (extension === null) {\r\n\t\t\t\t\tconsole.error('THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.');\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\textension[methodName](mode, count, type, start * bytesPerElement, primcount);\r\n\t\t\tinfo.update(count, mode, primcount);\r\n\t\t} //\r\n\r\n\r\n\t\tthis.setMode = setMode;\r\n\t\tthis.setIndex = setIndex;\r\n\t\tthis.render = render;\r\n\t\tthis.renderInstances = renderInstances;\r\n\t}\r\n\r\n\tfunction WebGLInfo(gl) {\r\n\t\tvar memory = {\r\n\t\t\tgeometries: 0,\r\n\t\t\ttextures: 0\r\n\t\t};\r\n\t\tvar render = {\r\n\t\t\tframe: 0,\r\n\t\t\tcalls: 0,\r\n\t\t\ttriangles: 0,\r\n\t\t\tpoints: 0,\r\n\t\t\tlines: 0\r\n\t\t};\r\n\r\n\t\tfunction update(count, mode, instanceCount) {\r\n\t\t\trender.calls++;\r\n\r\n\t\t\tswitch (mode) {\r\n\t\t\t\tcase 4:\r\n\t\t\t\t\trender.triangles += instanceCount * (count / 3);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 1:\r\n\t\t\t\t\trender.lines += instanceCount * (count / 2);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 3:\r\n\t\t\t\t\trender.lines += instanceCount * (count - 1);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 2:\r\n\t\t\t\t\trender.lines += instanceCount * count;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 0:\r\n\t\t\t\t\trender.points += instanceCount * count;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tconsole.error('THREE.WebGLInfo: Unknown draw mode:', mode);\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction reset() {\r\n\t\t\trender.frame++;\r\n\t\t\trender.calls = 0;\r\n\t\t\trender.triangles = 0;\r\n\t\t\trender.points = 0;\r\n\t\t\trender.lines = 0;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tmemory: memory,\r\n\t\t\trender: render,\r\n\t\t\tprograms: null,\r\n\t\t\tautoReset: true,\r\n\t\t\treset: reset,\r\n\t\t\tupdate: update\r\n\t\t};\r\n\t}\r\n\r\n\tfunction numericalSort(a, b) {\r\n\t\treturn a[0] - b[0];\r\n\t}\r\n\r\n\tfunction absNumericalSort(a, b) {\r\n\t\treturn Math.abs(b[1]) - Math.abs(a[1]);\r\n\t}\r\n\r\n\tfunction WebGLMorphtargets(gl) {\r\n\t\tvar influencesList = {};\r\n\t\tvar morphInfluences = new Float32Array(8);\r\n\t\tvar workInfluences = [];\r\n\r\n\t\tfor (var i = 0; i < 8; i++) {\r\n\t\t\tworkInfluences[i] = [i, 0];\r\n\t\t}\r\n\r\n\t\tfunction update(object, geometry, material, program) {\r\n\t\t\tvar objectInfluences = object.morphTargetInfluences; // When object doesn't have morph target influences defined, we treat it as a 0-length array\r\n\t\t\t// This is important to make sure we set up morphTargetBaseInfluence / morphTargetInfluences\r\n\r\n\t\t\tvar length = objectInfluences === undefined ? 0 : objectInfluences.length;\r\n\t\t\tvar influences = influencesList[geometry.id];\r\n\r\n\t\t\tif (influences === undefined) {\r\n\t\t\t\t// initialise list\r\n\t\t\t\tinfluences = [];\r\n\r\n\t\t\t\tfor (var _i = 0; _i < length; _i++) {\r\n\t\t\t\t\tinfluences[_i] = [_i, 0];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tinfluencesList[geometry.id] = influences;\r\n\t\t\t} // Collect influences\r\n\r\n\r\n\t\t\tfor (var _i2 = 0; _i2 < length; _i2++) {\r\n\t\t\t\tvar influence = influences[_i2];\r\n\t\t\t\tinfluence[0] = _i2;\r\n\t\t\t\tinfluence[1] = objectInfluences[_i2];\r\n\t\t\t}\r\n\r\n\t\t\tinfluences.sort(absNumericalSort);\r\n\r\n\t\t\tfor (var _i3 = 0; _i3 < 8; _i3++) {\r\n\t\t\t\tif (_i3 < length && influences[_i3][1]) {\r\n\t\t\t\t\tworkInfluences[_i3][0] = influences[_i3][0];\r\n\t\t\t\t\tworkInfluences[_i3][1] = influences[_i3][1];\r\n\t\t\t\t} else {\r\n\t\t\t\t\tworkInfluences[_i3][0] = Number.MAX_SAFE_INTEGER;\r\n\t\t\t\t\tworkInfluences[_i3][1] = 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tworkInfluences.sort(numericalSort);\r\n\t\t\tvar morphTargets = material.morphTargets && geometry.morphAttributes.position;\r\n\t\t\tvar morphNormals = material.morphNormals && geometry.morphAttributes.normal;\r\n\t\t\tvar morphInfluencesSum = 0;\r\n\r\n\t\t\tfor (var _i4 = 0; _i4 < 8; _i4++) {\r\n\t\t\t\tvar _influence = workInfluences[_i4];\r\n\t\t\t\tvar index = _influence[0];\r\n\t\t\t\tvar value = _influence[1];\r\n\r\n\t\t\t\tif (index !== Number.MAX_SAFE_INTEGER && value) {\r\n\t\t\t\t\tif (morphTargets && geometry.getAttribute('morphTarget' + _i4) !== morphTargets[index]) {\r\n\t\t\t\t\t\tgeometry.setAttribute('morphTarget' + _i4, morphTargets[index]);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (morphNormals && geometry.getAttribute('morphNormal' + _i4) !== morphNormals[index]) {\r\n\t\t\t\t\t\tgeometry.setAttribute('morphNormal' + _i4, morphNormals[index]);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tmorphInfluences[_i4] = value;\r\n\t\t\t\t\tmorphInfluencesSum += value;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (morphTargets && geometry.hasAttribute('morphTarget' + _i4) === true) {\r\n\t\t\t\t\t\tgeometry.deleteAttribute('morphTarget' + _i4);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (morphNormals && geometry.hasAttribute('morphNormal' + _i4) === true) {\r\n\t\t\t\t\t\tgeometry.deleteAttribute('morphNormal' + _i4);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tmorphInfluences[_i4] = 0;\r\n\t\t\t\t}\r\n\t\t\t} // GLSL shader uses formula baseinfluence * base + sum(target * influence)\r\n\t\t\t// This allows us to switch between absolute morphs and relative morphs without changing shader code\r\n\t\t\t// When baseinfluence = 1 - sum(influence), the above is equivalent to sum((target - base) * influence)\r\n\r\n\r\n\t\t\tvar morphBaseInfluence = geometry.morphTargetsRelative ? 1 : 1 - morphInfluencesSum;\r\n\t\t\tprogram.getUniforms().setValue(gl, 'morphTargetBaseInfluence', morphBaseInfluence);\r\n\t\t\tprogram.getUniforms().setValue(gl, 'morphTargetInfluences', morphInfluences);\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tupdate: update\r\n\t\t};\r\n\t}\r\n\r\n\tfunction WebGLObjects(gl, geometries, attributes, info) {\r\n\t\tvar updateMap = new WeakMap();\r\n\r\n\t\tfunction update(object) {\r\n\t\t\tvar frame = info.render.frame;\r\n\t\t\tvar geometry = object.geometry;\r\n\t\t\tvar buffergeometry = geometries.get(object, geometry); // Update once per frame\r\n\r\n\t\t\tif (updateMap.get(buffergeometry) !== frame) {\r\n\t\t\t\tif (geometry.isGeometry) {\r\n\t\t\t\t\tbuffergeometry.updateFromObject(object);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tgeometries.update(buffergeometry);\r\n\t\t\t\tupdateMap.set(buffergeometry, frame);\r\n\t\t\t}\r\n\r\n\t\t\tif (object.isInstancedMesh) {\r\n\t\t\t\tattributes.update(object.instanceMatrix, 34962);\r\n\r\n\t\t\t\tif (object.instanceColor !== null) {\r\n\t\t\t\t\tattributes.update(object.instanceColor, 34962);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn buffergeometry;\r\n\t\t}\r\n\r\n\t\tfunction dispose() {\r\n\t\t\tupdateMap = new WeakMap();\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tupdate: update,\r\n\t\t\tdispose: dispose\r\n\t\t};\r\n\t}\r\n\r\n\tfunction DataTexture2DArray(data, width, height, depth) {\r\n\t\tif (data === void 0) {\r\n\t\t\tdata = null;\r\n\t\t}\r\n\r\n\t\tif (width === void 0) {\r\n\t\t\twidth = 1;\r\n\t\t}\r\n\r\n\t\tif (height === void 0) {\r\n\t\t\theight = 1;\r\n\t\t}\r\n\r\n\t\tif (depth === void 0) {\r\n\t\t\tdepth = 1;\r\n\t\t}\r\n\r\n\t\tTexture.call(this, null);\r\n\t\tthis.image = {\r\n\t\t\tdata: data,\r\n\t\t\twidth: width,\r\n\t\t\theight: height,\r\n\t\t\tdepth: depth\r\n\t\t};\r\n\t\tthis.magFilter = NearestFilter;\r\n\t\tthis.minFilter = NearestFilter;\r\n\t\tthis.wrapR = ClampToEdgeWrapping;\r\n\t\tthis.generateMipmaps = false;\r\n\t\tthis.flipY = false;\r\n\t\tthis.needsUpdate = true;\r\n\t}\r\n\r\n\tDataTexture2DArray.prototype = Object.create(Texture.prototype);\r\n\tDataTexture2DArray.prototype.constructor = DataTexture2DArray;\r\n\tDataTexture2DArray.prototype.isDataTexture2DArray = true;\r\n\r\n\tfunction DataTexture3D(data, width, height, depth) {\r\n\t\tif (data === void 0) {\r\n\t\t\tdata = null;\r\n\t\t}\r\n\r\n\t\tif (width === void 0) {\r\n\t\t\twidth = 1;\r\n\t\t}\r\n\r\n\t\tif (height === void 0) {\r\n\t\t\theight = 1;\r\n\t\t}\r\n\r\n\t\tif (depth === void 0) {\r\n\t\t\tdepth = 1;\r\n\t\t}\r\n\r\n\t\t// We're going to add .setXXX() methods for setting properties later.\r\n\t\t// Users can still set in DataTexture3D directly.\r\n\t\t//\r\n\t\t//\tconst texture = new THREE.DataTexture3D( data, width, height, depth );\r\n\t\t// \ttexture.anisotropy = 16;\r\n\t\t//\r\n\t\t// See #14839\r\n\t\tTexture.call(this, null);\r\n\t\tthis.image = {\r\n\t\t\tdata: data,\r\n\t\t\twidth: width,\r\n\t\t\theight: height,\r\n\t\t\tdepth: depth\r\n\t\t};\r\n\t\tthis.magFilter = NearestFilter;\r\n\t\tthis.minFilter = NearestFilter;\r\n\t\tthis.wrapR = ClampToEdgeWrapping;\r\n\t\tthis.generateMipmaps = false;\r\n\t\tthis.flipY = false;\r\n\t\tthis.needsUpdate = true;\r\n\t}\r\n\r\n\tDataTexture3D.prototype = Object.create(Texture.prototype);\r\n\tDataTexture3D.prototype.constructor = DataTexture3D;\r\n\tDataTexture3D.prototype.isDataTexture3D = true;\r\n\r\n\t/**\r\n\t * Uniforms of a program.\r\n\t * Those form a tree structure with a special top-level container for the root,\r\n\t * which you get by calling 'new WebGLUniforms( gl, program )'.\r\n\t *\r\n\t *\r\n\t * Properties of inner nodes including the top-level container:\r\n\t *\r\n\t * .seq - array of nested uniforms\r\n\t * .map - nested uniforms by name\r\n\t *\r\n\t *\r\n\t * Methods of all nodes except the top-level container:\r\n\t *\r\n\t * .setValue( gl, value, [textures] )\r\n\t *\r\n\t * \t\tuploads a uniform value(s)\r\n\t *\t\tthe 'textures' parameter is needed for sampler uniforms\r\n\t *\r\n\t *\r\n\t * Static methods of the top-level container (textures factorizations):\r\n\t *\r\n\t * .upload( gl, seq, values, textures )\r\n\t *\r\n\t * \t\tsets uniforms in 'seq' to 'values[id].value'\r\n\t *\r\n\t * .seqWithValue( seq, values ) : filteredSeq\r\n\t *\r\n\t * \t\tfilters 'seq' entries with corresponding entry in values\r\n\t *\r\n\t *\r\n\t * Methods of the top-level container (textures factorizations):\r\n\t *\r\n\t * .setValue( gl, name, value, textures )\r\n\t *\r\n\t * \t\tsets uniform with\tname 'name' to 'value'\r\n\t *\r\n\t * .setOptional( gl, obj, prop )\r\n\t *\r\n\t * \t\tlike .set for an optional property of the object\r\n\t *\r\n\t */\r\n\tvar emptyTexture = new Texture();\r\n\tvar emptyTexture2dArray = new DataTexture2DArray();\r\n\tvar emptyTexture3d = new DataTexture3D();\r\n\tvar emptyCubeTexture = new CubeTexture(); // --- Utilities ---\r\n\t// Array Caches (provide typed arrays for temporary by size)\r\n\r\n\tvar arrayCacheF32 = [];\r\n\tvar arrayCacheI32 = []; // Float32Array caches used for uploading Matrix uniforms\r\n\r\n\tvar mat4array = new Float32Array(16);\r\n\tvar mat3array = new Float32Array(9);\r\n\tvar mat2array = new Float32Array(4); // Flattening for arrays of vectors and matrices\r\n\r\n\tfunction flatten(array, nBlocks, blockSize) {\r\n\t\tvar firstElem = array[0];\r\n\t\tif (firstElem <= 0 || firstElem > 0) return array; // unoptimized: ! isNaN( firstElem )\r\n\t\t// see http://jacksondunstan.com/articles/983\r\n\r\n\t\tvar n = nBlocks * blockSize;\r\n\t\tvar r = arrayCacheF32[n];\r\n\r\n\t\tif (r === undefined) {\r\n\t\t\tr = new Float32Array(n);\r\n\t\t\tarrayCacheF32[n] = r;\r\n\t\t}\r\n\r\n\t\tif (nBlocks !== 0) {\r\n\t\t\tfirstElem.toArray(r, 0);\r\n\r\n\t\t\tfor (var i = 1, offset = 0; i !== nBlocks; ++i) {\r\n\t\t\t\toffset += blockSize;\r\n\t\t\t\tarray[i].toArray(r, offset);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn r;\r\n\t}\r\n\r\n\tfunction arraysEqual(a, b) {\r\n\t\tif (a.length !== b.length) return false;\r\n\r\n\t\tfor (var i = 0, l = a.length; i < l; i++) {\r\n\t\t\tif (a[i] !== b[i]) return false;\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t}\r\n\r\n\tfunction copyArray(a, b) {\r\n\t\tfor (var i = 0, l = b.length; i < l; i++) {\r\n\t\t\ta[i] = b[i];\r\n\t\t}\r\n\t} // Texture unit allocation\r\n\r\n\r\n\tfunction allocTexUnits(textures, n) {\r\n\t\tvar r = arrayCacheI32[n];\r\n\r\n\t\tif (r === undefined) {\r\n\t\t\tr = new Int32Array(n);\r\n\t\t\tarrayCacheI32[n] = r;\r\n\t\t}\r\n\r\n\t\tfor (var i = 0; i !== n; ++i) {\r\n\t\t\tr[i] = textures.allocateTextureUnit();\r\n\t\t}\r\n\r\n\t\treturn r;\r\n\t} // --- Setters ---\r\n\t// Note: Defining these methods externally, because they come in a bunch\r\n\t// and this way their names minify.\r\n\t// Single scalar\r\n\r\n\r\n\tfunction setValueV1f(gl, v) {\r\n\t\tvar cache = this.cache;\r\n\t\tif (cache[0] === v) return;\r\n\t\tgl.uniform1f(this.addr, v);\r\n\t\tcache[0] = v;\r\n\t} // Single float vector (from flat array or THREE.VectorN)\r\n\r\n\r\n\tfunction setValueV2f(gl, v) {\r\n\t\tvar cache = this.cache;\r\n\r\n\t\tif (v.x !== undefined) {\r\n\t\t\tif (cache[0] !== v.x || cache[1] !== v.y) {\r\n\t\t\t\tgl.uniform2f(this.addr, v.x, v.y);\r\n\t\t\t\tcache[0] = v.x;\r\n\t\t\t\tcache[1] = v.y;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (arraysEqual(cache, v)) return;\r\n\t\t\tgl.uniform2fv(this.addr, v);\r\n\t\t\tcopyArray(cache, v);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction setValueV3f(gl, v) {\r\n\t\tvar cache = this.cache;\r\n\r\n\t\tif (v.x !== undefined) {\r\n\t\t\tif (cache[0] !== v.x || cache[1] !== v.y || cache[2] !== v.z) {\r\n\t\t\t\tgl.uniform3f(this.addr, v.x, v.y, v.z);\r\n\t\t\t\tcache[0] = v.x;\r\n\t\t\t\tcache[1] = v.y;\r\n\t\t\t\tcache[2] = v.z;\r\n\t\t\t}\r\n\t\t} else if (v.r !== undefined) {\r\n\t\t\tif (cache[0] !== v.r || cache[1] !== v.g || cache[2] !== v.b) {\r\n\t\t\t\tgl.uniform3f(this.addr, v.r, v.g, v.b);\r\n\t\t\t\tcache[0] = v.r;\r\n\t\t\t\tcache[1] = v.g;\r\n\t\t\t\tcache[2] = v.b;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (arraysEqual(cache, v)) return;\r\n\t\t\tgl.uniform3fv(this.addr, v);\r\n\t\t\tcopyArray(cache, v);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction setValueV4f(gl, v) {\r\n\t\tvar cache = this.cache;\r\n\r\n\t\tif (v.x !== undefined) {\r\n\t\t\tif (cache[0] !== v.x || cache[1] !== v.y || cache[2] !== v.z || cache[3] !== v.w) {\r\n\t\t\t\tgl.uniform4f(this.addr, v.x, v.y, v.z, v.w);\r\n\t\t\t\tcache[0] = v.x;\r\n\t\t\t\tcache[1] = v.y;\r\n\t\t\t\tcache[2] = v.z;\r\n\t\t\t\tcache[3] = v.w;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (arraysEqual(cache, v)) return;\r\n\t\t\tgl.uniform4fv(this.addr, v);\r\n\t\t\tcopyArray(cache, v);\r\n\t\t}\r\n\t} // Single matrix (from flat array or MatrixN)\r\n\r\n\r\n\tfunction setValueM2(gl, v) {\r\n\t\tvar cache = this.cache;\r\n\t\tvar elements = v.elements;\r\n\r\n\t\tif (elements === undefined) {\r\n\t\t\tif (arraysEqual(cache, v)) return;\r\n\t\t\tgl.uniformMatrix2fv(this.addr, false, v);\r\n\t\t\tcopyArray(cache, v);\r\n\t\t} else {\r\n\t\t\tif (arraysEqual(cache, elements)) return;\r\n\t\t\tmat2array.set(elements);\r\n\t\t\tgl.uniformMatrix2fv(this.addr, false, mat2array);\r\n\t\t\tcopyArray(cache, elements);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction setValueM3(gl, v) {\r\n\t\tvar cache = this.cache;\r\n\t\tvar elements = v.elements;\r\n\r\n\t\tif (elements === undefined) {\r\n\t\t\tif (arraysEqual(cache, v)) return;\r\n\t\t\tgl.uniformMatrix3fv(this.addr, false, v);\r\n\t\t\tcopyArray(cache, v);\r\n\t\t} else {\r\n\t\t\tif (arraysEqual(cache, elements)) return;\r\n\t\t\tmat3array.set(elements);\r\n\t\t\tgl.uniformMatrix3fv(this.addr, false, mat3array);\r\n\t\t\tcopyArray(cache, elements);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction setValueM4(gl, v) {\r\n\t\tvar cache = this.cache;\r\n\t\tvar elements = v.elements;\r\n\r\n\t\tif (elements === undefined) {\r\n\t\t\tif (arraysEqual(cache, v)) return;\r\n\t\t\tgl.uniformMatrix4fv(this.addr, false, v);\r\n\t\t\tcopyArray(cache, v);\r\n\t\t} else {\r\n\t\t\tif (arraysEqual(cache, elements)) return;\r\n\t\t\tmat4array.set(elements);\r\n\t\t\tgl.uniformMatrix4fv(this.addr, false, mat4array);\r\n\t\t\tcopyArray(cache, elements);\r\n\t\t}\r\n\t} // Single texture (2D / Cube)\r\n\r\n\r\n\tfunction setValueT1(gl, v, textures) {\r\n\t\tvar cache = this.cache;\r\n\t\tvar unit = textures.allocateTextureUnit();\r\n\r\n\t\tif (cache[0] !== unit) {\r\n\t\t\tgl.uniform1i(this.addr, unit);\r\n\t\t\tcache[0] = unit;\r\n\t\t}\r\n\r\n\t\ttextures.safeSetTexture2D(v || emptyTexture, unit);\r\n\t}\r\n\r\n\tfunction setValueT2DArray1(gl, v, textures) {\r\n\t\tvar cache = this.cache;\r\n\t\tvar unit = textures.allocateTextureUnit();\r\n\r\n\t\tif (cache[0] !== unit) {\r\n\t\t\tgl.uniform1i(this.addr, unit);\r\n\t\t\tcache[0] = unit;\r\n\t\t}\r\n\r\n\t\ttextures.setTexture2DArray(v || emptyTexture2dArray, unit);\r\n\t}\r\n\r\n\tfunction setValueT3D1(gl, v, textures) {\r\n\t\tvar cache = this.cache;\r\n\t\tvar unit = textures.allocateTextureUnit();\r\n\r\n\t\tif (cache[0] !== unit) {\r\n\t\t\tgl.uniform1i(this.addr, unit);\r\n\t\t\tcache[0] = unit;\r\n\t\t}\r\n\r\n\t\ttextures.setTexture3D(v || emptyTexture3d, unit);\r\n\t}\r\n\r\n\tfunction setValueT6(gl, v, textures) {\r\n\t\tvar cache = this.cache;\r\n\t\tvar unit = textures.allocateTextureUnit();\r\n\r\n\t\tif (cache[0] !== unit) {\r\n\t\t\tgl.uniform1i(this.addr, unit);\r\n\t\t\tcache[0] = unit;\r\n\t\t}\r\n\r\n\t\ttextures.safeSetTextureCube(v || emptyCubeTexture, unit);\r\n\t} // Integer / Boolean vectors or arrays thereof (always flat arrays)\r\n\r\n\r\n\tfunction setValueV1i(gl, v) {\r\n\t\tvar cache = this.cache;\r\n\t\tif (cache[0] === v) return;\r\n\t\tgl.uniform1i(this.addr, v);\r\n\t\tcache[0] = v;\r\n\t}\r\n\r\n\tfunction setValueV2i(gl, v) {\r\n\t\tvar cache = this.cache;\r\n\t\tif (arraysEqual(cache, v)) return;\r\n\t\tgl.uniform2iv(this.addr, v);\r\n\t\tcopyArray(cache, v);\r\n\t}\r\n\r\n\tfunction setValueV3i(gl, v) {\r\n\t\tvar cache = this.cache;\r\n\t\tif (arraysEqual(cache, v)) return;\r\n\t\tgl.uniform3iv(this.addr, v);\r\n\t\tcopyArray(cache, v);\r\n\t}\r\n\r\n\tfunction setValueV4i(gl, v) {\r\n\t\tvar cache = this.cache;\r\n\t\tif (arraysEqual(cache, v)) return;\r\n\t\tgl.uniform4iv(this.addr, v);\r\n\t\tcopyArray(cache, v);\r\n\t} // uint\r\n\r\n\r\n\tfunction setValueV1ui(gl, v) {\r\n\t\tvar cache = this.cache;\r\n\t\tif (cache[0] === v) return;\r\n\t\tgl.uniform1ui(this.addr, v);\r\n\t\tcache[0] = v;\r\n\t} // Helper to pick the right setter for the singular case\r\n\r\n\r\n\tfunction getSingularSetter(type) {\r\n\t\tswitch (type) {\r\n\t\t\tcase 0x1406:\r\n\t\t\t\treturn setValueV1f;\r\n\t\t\t// FLOAT\r\n\r\n\t\t\tcase 0x8b50:\r\n\t\t\t\treturn setValueV2f;\r\n\t\t\t// _VEC2\r\n\r\n\t\t\tcase 0x8b51:\r\n\t\t\t\treturn setValueV3f;\r\n\t\t\t// _VEC3\r\n\r\n\t\t\tcase 0x8b52:\r\n\t\t\t\treturn setValueV4f;\r\n\t\t\t// _VEC4\r\n\r\n\t\t\tcase 0x8b5a:\r\n\t\t\t\treturn setValueM2;\r\n\t\t\t// _MAT2\r\n\r\n\t\t\tcase 0x8b5b:\r\n\t\t\t\treturn setValueM3;\r\n\t\t\t// _MAT3\r\n\r\n\t\t\tcase 0x8b5c:\r\n\t\t\t\treturn setValueM4;\r\n\t\t\t// _MAT4\r\n\r\n\t\t\tcase 0x1404:\r\n\t\t\tcase 0x8b56:\r\n\t\t\t\treturn setValueV1i;\r\n\t\t\t// INT, BOOL\r\n\r\n\t\t\tcase 0x8b53:\r\n\t\t\tcase 0x8b57:\r\n\t\t\t\treturn setValueV2i;\r\n\t\t\t// _VEC2\r\n\r\n\t\t\tcase 0x8b54:\r\n\t\t\tcase 0x8b58:\r\n\t\t\t\treturn setValueV3i;\r\n\t\t\t// _VEC3\r\n\r\n\t\t\tcase 0x8b55:\r\n\t\t\tcase 0x8b59:\r\n\t\t\t\treturn setValueV4i;\r\n\t\t\t// _VEC4\r\n\r\n\t\t\tcase 0x1405:\r\n\t\t\t\treturn setValueV1ui;\r\n\t\t\t// UINT\r\n\r\n\t\t\tcase 0x8b5e: // SAMPLER_2D\r\n\r\n\t\t\tcase 0x8d66: // SAMPLER_EXTERNAL_OES\r\n\r\n\t\t\tcase 0x8dca: // INT_SAMPLER_2D\r\n\r\n\t\t\tcase 0x8dd2: // UNSIGNED_INT_SAMPLER_2D\r\n\r\n\t\t\tcase 0x8b62:\r\n\t\t\t\t// SAMPLER_2D_SHADOW\r\n\t\t\t\treturn setValueT1;\r\n\r\n\t\t\tcase 0x8b5f: // SAMPLER_3D\r\n\r\n\t\t\tcase 0x8dcb: // INT_SAMPLER_3D\r\n\r\n\t\t\tcase 0x8dd3:\r\n\t\t\t\t// UNSIGNED_INT_SAMPLER_3D\r\n\t\t\t\treturn setValueT3D1;\r\n\r\n\t\t\tcase 0x8b60: // SAMPLER_CUBE\r\n\r\n\t\t\tcase 0x8dcc: // INT_SAMPLER_CUBE\r\n\r\n\t\t\tcase 0x8dd4: // UNSIGNED_INT_SAMPLER_CUBE\r\n\r\n\t\t\tcase 0x8dc5:\r\n\t\t\t\t// SAMPLER_CUBE_SHADOW\r\n\t\t\t\treturn setValueT6;\r\n\r\n\t\t\tcase 0x8dc1: // SAMPLER_2D_ARRAY\r\n\r\n\t\t\tcase 0x8dcf: // INT_SAMPLER_2D_ARRAY\r\n\r\n\t\t\tcase 0x8dd7: // UNSIGNED_INT_SAMPLER_2D_ARRAY\r\n\r\n\t\t\tcase 0x8dc4:\r\n\t\t\t\t// SAMPLER_2D_ARRAY_SHADOW\r\n\t\t\t\treturn setValueT2DArray1;\r\n\t\t}\r\n\t} // Array of scalars\r\n\r\n\r\n\tfunction setValueV1fArray(gl, v) {\r\n\t\tgl.uniform1fv(this.addr, v);\r\n\t} // Integer / Boolean vectors or arrays thereof (always flat arrays)\r\n\r\n\r\n\tfunction setValueV1iArray(gl, v) {\r\n\t\tgl.uniform1iv(this.addr, v);\r\n\t}\r\n\r\n\tfunction setValueV2iArray(gl, v) {\r\n\t\tgl.uniform2iv(this.addr, v);\r\n\t}\r\n\r\n\tfunction setValueV3iArray(gl, v) {\r\n\t\tgl.uniform3iv(this.addr, v);\r\n\t}\r\n\r\n\tfunction setValueV4iArray(gl, v) {\r\n\t\tgl.uniform4iv(this.addr, v);\r\n\t} // Array of vectors (flat or from THREE classes)\r\n\r\n\r\n\tfunction setValueV2fArray(gl, v) {\r\n\t\tvar data = flatten(v, this.size, 2);\r\n\t\tgl.uniform2fv(this.addr, data);\r\n\t}\r\n\r\n\tfunction setValueV3fArray(gl, v) {\r\n\t\tvar data = flatten(v, this.size, 3);\r\n\t\tgl.uniform3fv(this.addr, data);\r\n\t}\r\n\r\n\tfunction setValueV4fArray(gl, v) {\r\n\t\tvar data = flatten(v, this.size, 4);\r\n\t\tgl.uniform4fv(this.addr, data);\r\n\t} // Array of matrices (flat or from THREE clases)\r\n\r\n\r\n\tfunction setValueM2Array(gl, v) {\r\n\t\tvar data = flatten(v, this.size, 4);\r\n\t\tgl.uniformMatrix2fv(this.addr, false, data);\r\n\t}\r\n\r\n\tfunction setValueM3Array(gl, v) {\r\n\t\tvar data = flatten(v, this.size, 9);\r\n\t\tgl.uniformMatrix3fv(this.addr, false, data);\r\n\t}\r\n\r\n\tfunction setValueM4Array(gl, v) {\r\n\t\tvar data = flatten(v, this.size, 16);\r\n\t\tgl.uniformMatrix4fv(this.addr, false, data);\r\n\t} // Array of textures (2D / Cube)\r\n\r\n\r\n\tfunction setValueT1Array(gl, v, textures) {\r\n\t\tvar n = v.length;\r\n\t\tvar units = allocTexUnits(textures, n);\r\n\t\tgl.uniform1iv(this.addr, units);\r\n\r\n\t\tfor (var i = 0; i !== n; ++i) {\r\n\t\t\ttextures.safeSetTexture2D(v[i] || emptyTexture, units[i]);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction setValueT6Array(gl, v, textures) {\r\n\t\tvar n = v.length;\r\n\t\tvar units = allocTexUnits(textures, n);\r\n\t\tgl.uniform1iv(this.addr, units);\r\n\r\n\t\tfor (var i = 0; i !== n; ++i) {\r\n\t\t\ttextures.safeSetTextureCube(v[i] || emptyCubeTexture, units[i]);\r\n\t\t}\r\n\t} // Helper to pick the right setter for a pure (bottom-level) array\r\n\r\n\r\n\tfunction getPureArraySetter(type) {\r\n\t\tswitch (type) {\r\n\t\t\tcase 0x1406:\r\n\t\t\t\treturn setValueV1fArray;\r\n\t\t\t// FLOAT\r\n\r\n\t\t\tcase 0x8b50:\r\n\t\t\t\treturn setValueV2fArray;\r\n\t\t\t// _VEC2\r\n\r\n\t\t\tcase 0x8b51:\r\n\t\t\t\treturn setValueV3fArray;\r\n\t\t\t// _VEC3\r\n\r\n\t\t\tcase 0x8b52:\r\n\t\t\t\treturn setValueV4fArray;\r\n\t\t\t// _VEC4\r\n\r\n\t\t\tcase 0x8b5a:\r\n\t\t\t\treturn setValueM2Array;\r\n\t\t\t// _MAT2\r\n\r\n\t\t\tcase 0x8b5b:\r\n\t\t\t\treturn setValueM3Array;\r\n\t\t\t// _MAT3\r\n\r\n\t\t\tcase 0x8b5c:\r\n\t\t\t\treturn setValueM4Array;\r\n\t\t\t// _MAT4\r\n\r\n\t\t\tcase 0x1404:\r\n\t\t\tcase 0x8b56:\r\n\t\t\t\treturn setValueV1iArray;\r\n\t\t\t// INT, BOOL\r\n\r\n\t\t\tcase 0x8b53:\r\n\t\t\tcase 0x8b57:\r\n\t\t\t\treturn setValueV2iArray;\r\n\t\t\t// _VEC2\r\n\r\n\t\t\tcase 0x8b54:\r\n\t\t\tcase 0x8b58:\r\n\t\t\t\treturn setValueV3iArray;\r\n\t\t\t// _VEC3\r\n\r\n\t\t\tcase 0x8b55:\r\n\t\t\tcase 0x8b59:\r\n\t\t\t\treturn setValueV4iArray;\r\n\t\t\t// _VEC4\r\n\r\n\t\t\tcase 0x8b5e: // SAMPLER_2D\r\n\r\n\t\t\tcase 0x8d66: // SAMPLER_EXTERNAL_OES\r\n\r\n\t\t\tcase 0x8dca: // INT_SAMPLER_2D\r\n\r\n\t\t\tcase 0x8dd2: // UNSIGNED_INT_SAMPLER_2D\r\n\r\n\t\t\tcase 0x8b62:\r\n\t\t\t\t// SAMPLER_2D_SHADOW\r\n\t\t\t\treturn setValueT1Array;\r\n\r\n\t\t\tcase 0x8b60: // SAMPLER_CUBE\r\n\r\n\t\t\tcase 0x8dcc: // INT_SAMPLER_CUBE\r\n\r\n\t\t\tcase 0x8dd4: // UNSIGNED_INT_SAMPLER_CUBE\r\n\r\n\t\t\tcase 0x8dc5:\r\n\t\t\t\t// SAMPLER_CUBE_SHADOW\r\n\t\t\t\treturn setValueT6Array;\r\n\t\t}\r\n\t} // --- Uniform Classes ---\r\n\r\n\r\n\tfunction SingleUniform(id, activeInfo, addr) {\r\n\t\tthis.id = id;\r\n\t\tthis.addr = addr;\r\n\t\tthis.cache = [];\r\n\t\tthis.setValue = getSingularSetter(activeInfo.type); // this.path = activeInfo.name; // DEBUG\r\n\t}\r\n\r\n\tfunction PureArrayUniform(id, activeInfo, addr) {\r\n\t\tthis.id = id;\r\n\t\tthis.addr = addr;\r\n\t\tthis.cache = [];\r\n\t\tthis.size = activeInfo.size;\r\n\t\tthis.setValue = getPureArraySetter(activeInfo.type); // this.path = activeInfo.name; // DEBUG\r\n\t}\r\n\r\n\tPureArrayUniform.prototype.updateCache = function (data) {\r\n\t\tvar cache = this.cache;\r\n\r\n\t\tif (data instanceof Float32Array && cache.length !== data.length) {\r\n\t\t\tthis.cache = new Float32Array(data.length);\r\n\t\t}\r\n\r\n\t\tcopyArray(cache, data);\r\n\t};\r\n\r\n\tfunction StructuredUniform(id) {\r\n\t\tthis.id = id;\r\n\t\tthis.seq = [];\r\n\t\tthis.map = {};\r\n\t}\r\n\r\n\tStructuredUniform.prototype.setValue = function (gl, value, textures) {\r\n\t\tvar seq = this.seq;\r\n\r\n\t\tfor (var i = 0, n = seq.length; i !== n; ++i) {\r\n\t\t\tvar u = seq[i];\r\n\t\t\tu.setValue(gl, value[u.id], textures);\r\n\t\t}\r\n\t}; // --- Top-level ---\r\n\t// Parser - builds up the property tree from the path strings\r\n\r\n\r\n\tvar RePathPart = /([\\w\\d_]+)(\\])?(\\[|\\.)?/g; // extracts\r\n\t// \t- the identifier (member name or array index)\r\n\t//\t- followed by an optional right bracket (found when array index)\r\n\t//\t- followed by an optional left bracket or dot (type of subscript)\r\n\t//\r\n\t// Note: These portions can be read in a non-overlapping fashion and\r\n\t// allow straightforward parsing of the hierarchy that WebGL encodes\r\n\t// in the uniform names.\r\n\r\n\tfunction addUniform(container, uniformObject) {\r\n\t\tcontainer.seq.push(uniformObject);\r\n\t\tcontainer.map[uniformObject.id] = uniformObject;\r\n\t}\r\n\r\n\tfunction parseUniform(activeInfo, addr, container) {\r\n\t\tvar path = activeInfo.name,\r\n\t\t\t\tpathLength = path.length; // reset RegExp object, because of the early exit of a previous run\r\n\r\n\t\tRePathPart.lastIndex = 0;\r\n\r\n\t\twhile (true) {\r\n\t\t\tvar match = RePathPart.exec(path),\r\n\t\t\t\t\tmatchEnd = RePathPart.lastIndex;\r\n\t\t\tvar id = match[1];\r\n\t\t\tvar idIsIndex = match[2] === ']',\r\n\t\t\t\t\tsubscript = match[3];\r\n\t\t\tif (idIsIndex) id = id | 0; // convert to integer\r\n\r\n\t\t\tif (subscript === undefined || subscript === '[' && matchEnd + 2 === pathLength) {\r\n\t\t\t\t// bare name or \"pure\" bottom-level array \"[0]\" suffix\r\n\t\t\t\taddUniform(container, subscript === undefined ? new SingleUniform(id, activeInfo, addr) : new PureArrayUniform(id, activeInfo, addr));\r\n\t\t\t\tbreak;\r\n\t\t\t} else {\r\n\t\t\t\t// step into inner node / create it in case it doesn't exist\r\n\t\t\t\tvar map = container.map;\r\n\t\t\t\tvar next = map[id];\r\n\r\n\t\t\t\tif (next === undefined) {\r\n\t\t\t\t\tnext = new StructuredUniform(id);\r\n\t\t\t\t\taddUniform(container, next);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcontainer = next;\r\n\t\t\t}\r\n\t\t}\r\n\t} // Root Container\r\n\r\n\r\n\tfunction WebGLUniforms(gl, program) {\r\n\t\tthis.seq = [];\r\n\t\tthis.map = {};\r\n\t\tvar n = gl.getProgramParameter(program, 35718);\r\n\r\n\t\tfor (var i = 0; i < n; ++i) {\r\n\t\t\tvar info = gl.getActiveUniform(program, i),\r\n\t\t\t\t\taddr = gl.getUniformLocation(program, info.name);\r\n\t\t\tparseUniform(info, addr, this);\r\n\t\t}\r\n\t}\r\n\r\n\tWebGLUniforms.prototype.setValue = function (gl, name, value, textures) {\r\n\t\tvar u = this.map[name];\r\n\t\tif (u !== undefined) u.setValue(gl, value, textures);\r\n\t};\r\n\r\n\tWebGLUniforms.prototype.setOptional = function (gl, object, name) {\r\n\t\tvar v = object[name];\r\n\t\tif (v !== undefined) this.setValue(gl, name, v);\r\n\t}; // Static interface\r\n\r\n\r\n\tWebGLUniforms.upload = function (gl, seq, values, textures) {\r\n\t\tfor (var i = 0, n = seq.length; i !== n; ++i) {\r\n\t\t\tvar u = seq[i],\r\n\t\t\t\t\tv = values[u.id];\r\n\r\n\t\t\tif (v.needsUpdate !== false) {\r\n\t\t\t\t// note: always updating when .needsUpdate is undefined\r\n\t\t\t\tu.setValue(gl, v.value, textures);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tWebGLUniforms.seqWithValue = function (seq, values) {\r\n\t\tvar r = [];\r\n\r\n\t\tfor (var i = 0, n = seq.length; i !== n; ++i) {\r\n\t\t\tvar u = seq[i];\r\n\t\t\tif (u.id in values) r.push(u);\r\n\t\t}\r\n\r\n\t\treturn r;\r\n\t};\r\n\r\n\tfunction WebGLShader(gl, type, string) {\r\n\t\tvar shader = gl.createShader(type);\r\n\t\tgl.shaderSource(shader, string);\r\n\t\tgl.compileShader(shader);\r\n\t\treturn shader;\r\n\t}\r\n\r\n\tvar programIdCount = 0;\r\n\r\n\tfunction addLineNumbers(string) {\r\n\t\tvar lines = string.split('\\n');\r\n\r\n\t\tfor (var i = 0; i < lines.length; i++) {\r\n\t\t\tlines[i] = i + 1 + ': ' + lines[i];\r\n\t\t}\r\n\r\n\t\treturn lines.join('\\n');\r\n\t}\r\n\r\n\tfunction getEncodingComponents(encoding) {\r\n\t\tswitch (encoding) {\r\n\t\t\tcase LinearEncoding:\r\n\t\t\t\treturn ['Linear', '( value )'];\r\n\r\n\t\t\tcase sRGBEncoding:\r\n\t\t\t\treturn ['sRGB', '( value )'];\r\n\r\n\t\t\tcase RGBEEncoding:\r\n\t\t\t\treturn ['RGBE', '( value )'];\r\n\r\n\t\t\tcase RGBM7Encoding:\r\n\t\t\t\treturn ['RGBM', '( value, 7.0 )'];\r\n\r\n\t\t\tcase RGBM16Encoding:\r\n\t\t\t\treturn ['RGBM', '( value, 16.0 )'];\r\n\r\n\t\t\tcase RGBDEncoding:\r\n\t\t\t\treturn ['RGBD', '( value, 256.0 )'];\r\n\r\n\t\t\tcase GammaEncoding:\r\n\t\t\t\treturn ['Gamma', '( value, float( GAMMA_FACTOR ) )'];\r\n\r\n\t\t\tcase LogLuvEncoding:\r\n\t\t\t\treturn ['LogLuv', '( value )'];\r\n\r\n\t\t\tdefault:\r\n\t\t\t\tconsole.warn('THREE.WebGLProgram: Unsupported encoding:', encoding);\r\n\t\t\t\treturn ['Linear', '( value )'];\r\n\t\t}\r\n\t}\r\n\r\n\tfunction getShaderErrors(gl, shader, type) {\r\n\t\tvar status = gl.getShaderParameter(shader, 35713);\r\n\t\tvar log = gl.getShaderInfoLog(shader).trim();\r\n\t\tif (status && log === '') return ''; // --enable-privileged-webgl-extension\r\n\t\t// console.log( '**' + type + '**', gl.getExtension( 'WEBGL_debug_shaders' ).getTranslatedShaderSource( shader ) );\r\n\r\n\t\tvar source = gl.getShaderSource(shader);\r\n\t\treturn 'THREE.WebGLShader: gl.getShaderInfoLog() ' + type + '\\n' + log + addLineNumbers(source);\r\n\t}\r\n\r\n\tfunction getTexelDecodingFunction(functionName, encoding) {\r\n\t\tvar components = getEncodingComponents(encoding);\r\n\t\treturn 'vec4 ' + functionName + '( vec4 value ) { return ' + components[0] + 'ToLinear' + components[1] + '; }';\r\n\t}\r\n\r\n\tfunction getTexelEncodingFunction(functionName, encoding) {\r\n\t\tvar components = getEncodingComponents(encoding);\r\n\t\treturn 'vec4 ' + functionName + '( vec4 value ) { return LinearTo' + components[0] + components[1] + '; }';\r\n\t}\r\n\r\n\tfunction getToneMappingFunction(functionName, toneMapping) {\r\n\t\tvar toneMappingName;\r\n\r\n\t\tswitch (toneMapping) {\r\n\t\t\tcase LinearToneMapping:\r\n\t\t\t\ttoneMappingName = 'Linear';\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase ReinhardToneMapping:\r\n\t\t\t\ttoneMappingName = 'Reinhard';\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase CineonToneMapping:\r\n\t\t\t\ttoneMappingName = 'OptimizedCineon';\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase ACESFilmicToneMapping:\r\n\t\t\t\ttoneMappingName = 'ACESFilmic';\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase CustomToneMapping:\r\n\t\t\t\ttoneMappingName = 'Custom';\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tdefault:\r\n\t\t\t\tconsole.warn('THREE.WebGLProgram: Unsupported toneMapping:', toneMapping);\r\n\t\t\t\ttoneMappingName = 'Linear';\r\n\t\t}\r\n\r\n\t\treturn 'vec3 ' + functionName + '( vec3 color ) { return ' + toneMappingName + 'ToneMapping( color ); }';\r\n\t}\r\n\r\n\tfunction generateExtensions(parameters) {\r\n\t\tvar chunks = [parameters.extensionDerivatives || parameters.envMapCubeUV || parameters.bumpMap || parameters.tangentSpaceNormalMap || parameters.clearcoatNormalMap || parameters.flatShading || parameters.shaderID === 'physical' ? '#extension GL_OES_standard_derivatives : enable' : '', (parameters.extensionFragDepth || parameters.logarithmicDepthBuffer) && parameters.rendererExtensionFragDepth ? '#extension GL_EXT_frag_depth : enable' : '', parameters.extensionDrawBuffers && parameters.rendererExtensionDrawBuffers ? '#extension GL_EXT_draw_buffers : require' : '', (parameters.extensionShaderTextureLOD || parameters.envMap) && parameters.rendererExtensionShaderTextureLod ? '#extension GL_EXT_shader_texture_lod : enable' : ''];\r\n\t\treturn chunks.filter(filterEmptyLine).join('\\n');\r\n\t}\r\n\r\n\tfunction generateDefines(defines) {\r\n\t\tvar chunks = [];\r\n\r\n\t\tfor (var name in defines) {\r\n\t\t\tvar value = defines[name];\r\n\t\t\tif (value === false) continue;\r\n\t\t\tchunks.push('#define ' + name + ' ' + value);\r\n\t\t}\r\n\r\n\t\treturn chunks.join('\\n');\r\n\t}\r\n\r\n\tfunction fetchAttributeLocations(gl, program) {\r\n\t\tvar attributes = {};\r\n\t\tvar n = gl.getProgramParameter(program, 35721);\r\n\r\n\t\tfor (var i = 0; i < n; i++) {\r\n\t\t\tvar info = gl.getActiveAttrib(program, i);\r\n\t\t\tvar name = info.name; // console.log( 'THREE.WebGLProgram: ACTIVE VERTEX ATTRIBUTE:', name, i );\r\n\r\n\t\t\tattributes[name] = gl.getAttribLocation(program, name);\r\n\t\t}\r\n\r\n\t\treturn attributes;\r\n\t}\r\n\r\n\tfunction filterEmptyLine(string) {\r\n\t\treturn string !== '';\r\n\t}\r\n\r\n\tfunction replaceLightNums(string, parameters) {\r\n\t\treturn string.replace(/NUM_DIR_LIGHTS/g, parameters.numDirLights).replace(/NUM_SPOT_LIGHTS/g, parameters.numSpotLights).replace(/NUM_RECT_AREA_LIGHTS/g, parameters.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g, parameters.numPointLights).replace(/NUM_HEMI_LIGHTS/g, parameters.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g, parameters.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS/g, parameters.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g, parameters.numPointLightShadows);\r\n\t}\r\n\r\n\tfunction replaceClippingPlaneNums(string, parameters) {\r\n\t\treturn string.replace(/NUM_CLIPPING_PLANES/g, parameters.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g, parameters.numClippingPlanes - parameters.numClipIntersection);\r\n\t} // Resolve Includes\r\n\r\n\r\n\tvar includePattern = /^[ \\t]*#include +<([\\w\\d./]+)>/gm;\r\n\r\n\tfunction resolveIncludes(string) {\r\n\t\treturn string.replace(includePattern, includeReplacer);\r\n\t}\r\n\r\n\tfunction includeReplacer(match, include) {\r\n\t\tvar string = ShaderChunk[include];\r\n\r\n\t\tif (string === undefined) {\r\n\t\t\tthrow new Error('Can not resolve #include <' + include + '>');\r\n\t\t}\r\n\r\n\t\treturn resolveIncludes(string);\r\n\t} // Unroll Loops\r\n\r\n\r\n\tvar deprecatedUnrollLoopPattern = /#pragma unroll_loop[\\s]+?for \\( int i \\= (\\d+)\\; i < (\\d+)\\; i \\+\\+ \\) \\{([\\s\\S]+?)(?=\\})\\}/g;\r\n\tvar unrollLoopPattern = /#pragma unroll_loop_start\\s+for\\s*\\(\\s*int\\s+i\\s*=\\s*(\\d+)\\s*;\\s*i\\s*<\\s*(\\d+)\\s*;\\s*i\\s*\\+\\+\\s*\\)\\s*{([\\s\\S]+?)}\\s+#pragma unroll_loop_end/g;\r\n\r\n\tfunction unrollLoops(string) {\r\n\t\treturn string.replace(unrollLoopPattern, loopReplacer).replace(deprecatedUnrollLoopPattern, deprecatedLoopReplacer);\r\n\t}\r\n\r\n\tfunction deprecatedLoopReplacer(match, start, end, snippet) {\r\n\t\tconsole.warn('WebGLProgram: #pragma unroll_loop shader syntax is deprecated. Please use #pragma unroll_loop_start syntax instead.');\r\n\t\treturn loopReplacer(match, start, end, snippet);\r\n\t}\r\n\r\n\tfunction loopReplacer(match, start, end, snippet) {\r\n\t\tvar string = '';\r\n\r\n\t\tfor (var i = parseInt(start); i < parseInt(end); i++) {\r\n\t\t\tstring += snippet.replace(/\\[\\s*i\\s*\\]/g, '[ ' + i + ' ]').replace(/UNROLLED_LOOP_INDEX/g, i);\r\n\t\t}\r\n\r\n\t\treturn string;\r\n\t} //\r\n\r\n\r\n\tfunction generatePrecision(parameters) {\r\n\t\tvar precisionstring = \"precision \" + parameters.precision + \" float;\\nprecision \" + parameters.precision + \" int;\";\r\n\r\n\t\tif (parameters.precision === \"highp\") {\r\n\t\t\tprecisionstring += \"\\n#define HIGH_PRECISION\";\r\n\t\t} else if (parameters.precision === \"mediump\") {\r\n\t\t\tprecisionstring += \"\\n#define MEDIUM_PRECISION\";\r\n\t\t} else if (parameters.precision === \"lowp\") {\r\n\t\t\tprecisionstring += \"\\n#define LOW_PRECISION\";\r\n\t\t}\r\n\r\n\t\treturn precisionstring;\r\n\t}\r\n\r\n\tfunction generateShadowMapTypeDefine(parameters) {\r\n\t\tvar shadowMapTypeDefine = 'SHADOWMAP_TYPE_BASIC';\r\n\r\n\t\tif (parameters.shadowMapType === PCFShadowMap) {\r\n\t\t\tshadowMapTypeDefine = 'SHADOWMAP_TYPE_PCF';\r\n\t\t} else if (parameters.shadowMapType === PCFSoftShadowMap) {\r\n\t\t\tshadowMapTypeDefine = 'SHADOWMAP_TYPE_PCF_SOFT';\r\n\t\t} else if (parameters.shadowMapType === VSMShadowMap) {\r\n\t\t\tshadowMapTypeDefine = 'SHADOWMAP_TYPE_VSM';\r\n\t\t}\r\n\r\n\t\treturn shadowMapTypeDefine;\r\n\t}\r\n\r\n\tfunction generateEnvMapTypeDefine(parameters) {\r\n\t\tvar envMapTypeDefine = 'ENVMAP_TYPE_CUBE';\r\n\r\n\t\tif (parameters.envMap) {\r\n\t\t\tswitch (parameters.envMapMode) {\r\n\t\t\t\tcase CubeReflectionMapping:\r\n\t\t\t\tcase CubeRefractionMapping:\r\n\t\t\t\t\tenvMapTypeDefine = 'ENVMAP_TYPE_CUBE';\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase CubeUVReflectionMapping:\r\n\t\t\t\tcase CubeUVRefractionMapping:\r\n\t\t\t\t\tenvMapTypeDefine = 'ENVMAP_TYPE_CUBE_UV';\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn envMapTypeDefine;\r\n\t}\r\n\r\n\tfunction generateEnvMapModeDefine(parameters) {\r\n\t\tvar envMapModeDefine = 'ENVMAP_MODE_REFLECTION';\r\n\r\n\t\tif (parameters.envMap) {\r\n\t\t\tswitch (parameters.envMapMode) {\r\n\t\t\t\tcase CubeRefractionMapping:\r\n\t\t\t\tcase CubeUVRefractionMapping:\r\n\t\t\t\t\tenvMapModeDefine = 'ENVMAP_MODE_REFRACTION';\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn envMapModeDefine;\r\n\t}\r\n\r\n\tfunction generateEnvMapBlendingDefine(parameters) {\r\n\t\tvar envMapBlendingDefine = 'ENVMAP_BLENDING_NONE';\r\n\r\n\t\tif (parameters.envMap) {\r\n\t\t\tswitch (parameters.combine) {\r\n\t\t\t\tcase MultiplyOperation:\r\n\t\t\t\t\tenvMapBlendingDefine = 'ENVMAP_BLENDING_MULTIPLY';\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase MixOperation:\r\n\t\t\t\t\tenvMapBlendingDefine = 'ENVMAP_BLENDING_MIX';\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase AddOperation:\r\n\t\t\t\t\tenvMapBlendingDefine = 'ENVMAP_BLENDING_ADD';\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn envMapBlendingDefine;\r\n\t}\r\n\r\n\tfunction WebGLProgram(renderer, cacheKey, parameters, bindingStates) {\r\n\t\tvar gl = renderer.getContext();\r\n\t\tvar defines = parameters.defines;\r\n\t\tvar vertexShader = parameters.vertexShader;\r\n\t\tvar fragmentShader = parameters.fragmentShader;\r\n\t\tvar shadowMapTypeDefine = generateShadowMapTypeDefine(parameters);\r\n\t\tvar envMapTypeDefine = generateEnvMapTypeDefine(parameters);\r\n\t\tvar envMapModeDefine = generateEnvMapModeDefine(parameters);\r\n\t\tvar envMapBlendingDefine = generateEnvMapBlendingDefine(parameters);\r\n\t\tvar gammaFactorDefine = renderer.gammaFactor > 0 ? renderer.gammaFactor : 1.0;\r\n\t\tvar customExtensions = parameters.isWebGL2 ? '' : generateExtensions(parameters);\r\n\t\tvar customDefines = generateDefines(defines);\r\n\t\tvar program = gl.createProgram();\r\n\t\tvar prefixVertex, prefixFragment;\r\n\t\tvar versionString = parameters.glslVersion ? '#version ' + parameters.glslVersion + \"\\n\" : '';\r\n\r\n\t\tif (parameters.isRawShaderMaterial) {\r\n\t\t\tprefixVertex = [customDefines].filter(filterEmptyLine).join('\\n');\r\n\r\n\t\t\tif (prefixVertex.length > 0) {\r\n\t\t\t\tprefixVertex += '\\n';\r\n\t\t\t}\r\n\r\n\t\t\tprefixFragment = [customExtensions, customDefines].filter(filterEmptyLine).join('\\n');\r\n\r\n\t\t\tif (prefixFragment.length > 0) {\r\n\t\t\t\tprefixFragment += '\\n';\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tprefixVertex = [generatePrecision(parameters), '#define SHADER_NAME ' + parameters.shaderName, customDefines, parameters.instancing ? '#define USE_INSTANCING' : '', parameters.instancingColor ? '#define USE_INSTANCING_COLOR' : '', parameters.supportsVertexTextures ? '#define VERTEX_TEXTURES' : '', '#define GAMMA_FACTOR ' + gammaFactorDefine, '#define MAX_BONES ' + parameters.maxBones, parameters.useFog && parameters.fog ? '#define USE_FOG' : '', parameters.useFog && parameters.fogExp2 ? '#define FOG_EXP2' : '', parameters.map ? '#define USE_MAP' : '', parameters.envMap ? '#define USE_ENVMAP' : '', parameters.envMap ? '#define ' + envMapModeDefine : '', parameters.lightMap ? '#define USE_LIGHTMAP' : '', parameters.aoMap ? '#define USE_AOMAP' : '', parameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '', parameters.bumpMap ? '#define USE_BUMPMAP' : '', parameters.normalMap ? '#define USE_NORMALMAP' : '', parameters.normalMap && parameters.objectSpaceNormalMap ? '#define OBJECTSPACE_NORMALMAP' : '', parameters.normalMap && parameters.tangentSpaceNormalMap ? '#define TANGENTSPACE_NORMALMAP' : '', parameters.clearcoatMap ? '#define USE_CLEARCOATMAP' : '', parameters.clearcoatRoughnessMap ? '#define USE_CLEARCOAT_ROUGHNESSMAP' : '', parameters.clearcoatNormalMap ? '#define USE_CLEARCOAT_NORMALMAP' : '', parameters.displacementMap && parameters.supportsVertexTextures ? '#define USE_DISPLACEMENTMAP' : '', parameters.specularMap ? '#define USE_SPECULARMAP' : '', parameters.roughnessMap ? '#define USE_ROUGHNESSMAP' : '', parameters.metalnessMap ? '#define USE_METALNESSMAP' : '', parameters.alphaMap ? '#define USE_ALPHAMAP' : '', parameters.transmissionMap ? '#define USE_TRANSMISSIONMAP' : '', parameters.vertexTangents ? '#define USE_TANGENT' : '', parameters.vertexColors ? '#define USE_COLOR' : '', parameters.vertexUvs ? '#define USE_UV' : '', parameters.uvsVertexOnly ? '#define UVS_VERTEX_ONLY' : '', parameters.flatShading ? '#define FLAT_SHADED' : '', parameters.skinning ? '#define USE_SKINNING' : '', parameters.useVertexTexture ? '#define BONE_TEXTURE' : '', parameters.morphTargets ? '#define USE_MORPHTARGETS' : '', parameters.morphNormals && parameters.flatShading === false ? '#define USE_MORPHNORMALS' : '', parameters.doubleSided ? '#define DOUBLE_SIDED' : '', parameters.flipSided ? '#define FLIP_SIDED' : '', parameters.shadowMapEnabled ? '#define USE_SHADOWMAP' : '', parameters.shadowMapEnabled ? '#define ' + shadowMapTypeDefine : '', parameters.sizeAttenuation ? '#define USE_SIZEATTENUATION' : '', parameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '', parameters.logarithmicDepthBuffer && parameters.rendererExtensionFragDepth ? '#define USE_LOGDEPTHBUF_EXT' : '', 'uniform mat4 modelMatrix;', 'uniform mat4 modelViewMatrix;', 'uniform mat4 projectionMatrix;', 'uniform mat4 viewMatrix;', 'uniform mat3 normalMatrix;', 'uniform vec3 cameraPosition;', 'uniform bool isOrthographic;', '#ifdef USE_INSTANCING', '\tattribute mat4 instanceMatrix;', '#endif', '#ifdef USE_INSTANCING_COLOR', '\tattribute vec3 instanceColor;', '#endif', '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(filterEmptyLine).join('\\n');\r\n\t\t\tprefixFragment = [customExtensions, generatePrecision(parameters), '#define SHADER_NAME ' + parameters.shaderName, customDefines, parameters.alphaTest ? '#define ALPHATEST ' + parameters.alphaTest + (parameters.alphaTest % 1 ? '' : '.0') : '', // add '.0' if integer\r\n\t\t\t'#define GAMMA_FACTOR ' + gammaFactorDefine, parameters.useFog && parameters.fog ? '#define USE_FOG' : '', parameters.useFog && parameters.fogExp2 ? '#define FOG_EXP2' : '', parameters.map ? '#define USE_MAP' : '', parameters.matcap ? '#define USE_MATCAP' : '', parameters.envMap ? '#define USE_ENVMAP' : '', parameters.envMap ? '#define ' + envMapTypeDefine : '', parameters.envMap ? '#define ' + envMapModeDefine : '', parameters.envMap ? '#define ' + envMapBlendingDefine : '', parameters.lightMap ? '#define USE_LIGHTMAP' : '', parameters.aoMap ? '#define USE_AOMAP' : '', parameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '', parameters.bumpMap ? '#define USE_BUMPMAP' : '', parameters.normalMap ? '#define USE_NORMALMAP' : '', parameters.normalMap && parameters.objectSpaceNormalMap ? '#define OBJECTSPACE_NORMALMAP' : '', parameters.normalMap && parameters.tangentSpaceNormalMap ? '#define TANGENTSPACE_NORMALMAP' : '', parameters.clearcoatMap ? '#define USE_CLEARCOATMAP' : '', parameters.clearcoatRoughnessMap ? '#define USE_CLEARCOAT_ROUGHNESSMAP' : '', parameters.clearcoatNormalMap ? '#define USE_CLEARCOAT_NORMALMAP' : '', parameters.specularMap ? '#define USE_SPECULARMAP' : '', parameters.roughnessMap ? '#define USE_ROUGHNESSMAP' : '', parameters.metalnessMap ? '#define USE_METALNESSMAP' : '', parameters.alphaMap ? '#define USE_ALPHAMAP' : '', parameters.sheen ? '#define USE_SHEEN' : '', parameters.transmissionMap ? '#define USE_TRANSMISSIONMAP' : '', parameters.vertexTangents ? '#define USE_TANGENT' : '', parameters.vertexColors || parameters.instancingColor ? '#define USE_COLOR' : '', parameters.vertexUvs ? '#define USE_UV' : '', parameters.uvsVertexOnly ? '#define UVS_VERTEX_ONLY' : '', parameters.gradientMap ? '#define USE_GRADIENTMAP' : '', parameters.flatShading ? '#define FLAT_SHADED' : '', parameters.doubleSided ? '#define DOUBLE_SIDED' : '', parameters.flipSided ? '#define FLIP_SIDED' : '', parameters.shadowMapEnabled ? '#define USE_SHADOWMAP' : '', parameters.shadowMapEnabled ? '#define ' + shadowMapTypeDefine : '', parameters.premultipliedAlpha ? '#define PREMULTIPLIED_ALPHA' : '', parameters.physicallyCorrectLights ? '#define PHYSICALLY_CORRECT_LIGHTS' : '', parameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '', parameters.logarithmicDepthBuffer && parameters.rendererExtensionFragDepth ? '#define USE_LOGDEPTHBUF_EXT' : '', (parameters.extensionShaderTextureLOD || parameters.envMap) && parameters.rendererExtensionShaderTextureLod ? '#define TEXTURE_LOD_EXT' : '', 'uniform mat4 viewMatrix;', 'uniform vec3 cameraPosition;', 'uniform bool isOrthographic;', parameters.toneMapping !== NoToneMapping ? '#define TONE_MAPPING' : '', parameters.toneMapping !== NoToneMapping ? ShaderChunk['tonemapping_pars_fragment'] : '', // this code is required here because it is used by the toneMapping() function defined below\r\n\t\t\tparameters.toneMapping !== NoToneMapping ? getToneMappingFunction('toneMapping', parameters.toneMapping) : '', parameters.dithering ? '#define DITHERING' : '', ShaderChunk['encodings_pars_fragment'], // this code is required here because it is used by the various encoding/decoding function defined below\r\n\t\t\tparameters.map ? getTexelDecodingFunction('mapTexelToLinear', parameters.mapEncoding) : '', parameters.matcap ? getTexelDecodingFunction('matcapTexelToLinear', parameters.matcapEncoding) : '', parameters.envMap ? getTexelDecodingFunction('envMapTexelToLinear', parameters.envMapEncoding) : '', parameters.emissiveMap ? getTexelDecodingFunction('emissiveMapTexelToLinear', parameters.emissiveMapEncoding) : '', parameters.lightMap ? getTexelDecodingFunction('lightMapTexelToLinear', parameters.lightMapEncoding) : '', getTexelEncodingFunction('linearToOutputTexel', parameters.outputEncoding), parameters.depthPacking ? '#define DEPTH_PACKING ' + parameters.depthPacking : '', '\\n'].filter(filterEmptyLine).join('\\n');\r\n\t\t}\r\n\r\n\t\tvertexShader = resolveIncludes(vertexShader);\r\n\t\tvertexShader = replaceLightNums(vertexShader, parameters);\r\n\t\tvertexShader = replaceClippingPlaneNums(vertexShader, parameters);\r\n\t\tfragmentShader = resolveIncludes(fragmentShader);\r\n\t\tfragmentShader = replaceLightNums(fragmentShader, parameters);\r\n\t\tfragmentShader = replaceClippingPlaneNums(fragmentShader, parameters);\r\n\t\tvertexShader = unrollLoops(vertexShader);\r\n\t\tfragmentShader = unrollLoops(fragmentShader);\r\n\r\n\t\tif (parameters.isWebGL2 && parameters.isRawShaderMaterial !== true) {\r\n\t\t\t// GLSL 3.0 conversion for built-in materials and ShaderMaterial\r\n\t\t\tversionString = '#version 300 es\\n';\r\n\t\t\tprefixVertex = ['#define attribute in', '#define varying out', '#define texture2D texture'].join('\\n') + '\\n' + prefixVertex;\r\n\t\t\tprefixFragment = ['#define varying in', parameters.glslVersion === GLSL3 ? '' : 'out highp vec4 pc_fragColor;', parameters.glslVersion === GLSL3 ? '' : '#define gl_FragColor pc_fragColor', '#define gl_FragDepthEXT gl_FragDepth', '#define texture2D texture', '#define textureCube texture', '#define texture2DProj textureProj', '#define texture2DLodEXT textureLod', '#define texture2DProjLodEXT textureProjLod', '#define textureCubeLodEXT textureLod', '#define texture2DGradEXT textureGrad', '#define texture2DProjGradEXT textureProjGrad', '#define textureCubeGradEXT textureGrad'].join('\\n') + '\\n' + prefixFragment;\r\n\t\t}\r\n\r\n\t\tvar vertexGlsl = versionString + prefixVertex + vertexShader;\r\n\t\tvar fragmentGlsl = versionString + prefixFragment + fragmentShader; // console.log( '*VERTEX*', vertexGlsl );\r\n\t\t// console.log( '*FRAGMENT*', fragmentGlsl );\r\n\r\n\t\tvar glVertexShader = WebGLShader(gl, 35633, vertexGlsl);\r\n\t\tvar glFragmentShader = WebGLShader(gl, 35632, fragmentGlsl);\r\n\t\tgl.attachShader(program, glVertexShader);\r\n\t\tgl.attachShader(program, glFragmentShader); // Force a particular attribute to index 0.\r\n\r\n\t\tif (parameters.index0AttributeName !== undefined) {\r\n\t\t\tgl.bindAttribLocation(program, 0, parameters.index0AttributeName);\r\n\t\t} else if (parameters.morphTargets === true) {\r\n\t\t\t// programs with morphTargets displace position out of attribute 0\r\n\t\t\tgl.bindAttribLocation(program, 0, 'position');\r\n\t\t}\r\n\r\n\t\tgl.linkProgram(program); // check for link errors\r\n\r\n\t\tif (renderer.debug.checkShaderErrors) {\r\n\t\t\tvar programLog = gl.getProgramInfoLog(program).trim();\r\n\t\t\tvar vertexLog = gl.getShaderInfoLog(glVertexShader).trim();\r\n\t\t\tvar fragmentLog = gl.getShaderInfoLog(glFragmentShader).trim();\r\n\t\t\tvar runnable = true;\r\n\t\t\tvar haveDiagnostics = true;\r\n\r\n\t\t\tif (gl.getProgramParameter(program, 35714) === false) {\r\n\t\t\t\trunnable = false;\r\n\t\t\t\tvar vertexErrors = getShaderErrors(gl, glVertexShader, 'vertex');\r\n\t\t\t\tvar fragmentErrors = getShaderErrors(gl, glFragmentShader, 'fragment');\r\n\t\t\t\tconsole.error('THREE.WebGLProgram: shader error: ', gl.getError(), '35715', gl.getProgramParameter(program, 35715), 'gl.getProgramInfoLog', programLog, vertexErrors, fragmentErrors);\r\n\t\t\t} else if (programLog !== '') {\r\n\t\t\t\tconsole.warn('THREE.WebGLProgram: gl.getProgramInfoLog()', programLog);\r\n\t\t\t} else if (vertexLog === '' || fragmentLog === '') {\r\n\t\t\t\thaveDiagnostics = false;\r\n\t\t\t}\r\n\r\n\t\t\tif (haveDiagnostics) {\r\n\t\t\t\tthis.diagnostics = {\r\n\t\t\t\t\trunnable: runnable,\r\n\t\t\t\t\tprogramLog: programLog,\r\n\t\t\t\t\tvertexShader: {\r\n\t\t\t\t\t\tlog: vertexLog,\r\n\t\t\t\t\t\tprefix: prefixVertex\r\n\t\t\t\t\t},\r\n\t\t\t\t\tfragmentShader: {\r\n\t\t\t\t\t\tlog: fragmentLog,\r\n\t\t\t\t\t\tprefix: prefixFragment\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t} // Clean up\r\n\t\t// Crashes in iOS9 and iOS10. #18402\r\n\t\t// gl.detachShader( program, glVertexShader );\r\n\t\t// gl.detachShader( program, glFragmentShader );\r\n\r\n\r\n\t\tgl.deleteShader(glVertexShader);\r\n\t\tgl.deleteShader(glFragmentShader); // set up caching for uniform locations\r\n\r\n\t\tvar cachedUniforms;\r\n\r\n\t\tthis.getUniforms = function () {\r\n\t\t\tif (cachedUniforms === undefined) {\r\n\t\t\t\tcachedUniforms = new WebGLUniforms(gl, program);\r\n\t\t\t}\r\n\r\n\t\t\treturn cachedUniforms;\r\n\t\t}; // set up caching for attribute locations\r\n\r\n\r\n\t\tvar cachedAttributes;\r\n\r\n\t\tthis.getAttributes = function () {\r\n\t\t\tif (cachedAttributes === undefined) {\r\n\t\t\t\tcachedAttributes = fetchAttributeLocations(gl, program);\r\n\t\t\t}\r\n\r\n\t\t\treturn cachedAttributes;\r\n\t\t}; // free resource\r\n\r\n\r\n\t\tthis.destroy = function () {\r\n\t\t\tbindingStates.releaseStatesOfProgram(this);\r\n\t\t\tgl.deleteProgram(program);\r\n\t\t\tthis.program = undefined;\r\n\t\t}; //\r\n\r\n\r\n\t\tthis.name = parameters.shaderName;\r\n\t\tthis.id = programIdCount++;\r\n\t\tthis.cacheKey = cacheKey;\r\n\t\tthis.usedTimes = 1;\r\n\t\tthis.program = program;\r\n\t\tthis.vertexShader = glVertexShader;\r\n\t\tthis.fragmentShader = glFragmentShader;\r\n\t\treturn this;\r\n\t}\r\n\r\n\tfunction WebGLPrograms(renderer, cubemaps, extensions, capabilities, bindingStates, clipping) {\r\n\t\tvar programs = [];\r\n\t\tvar isWebGL2 = capabilities.isWebGL2;\r\n\t\tvar logarithmicDepthBuffer = capabilities.logarithmicDepthBuffer;\r\n\t\tvar floatVertexTextures = capabilities.floatVertexTextures;\r\n\t\tvar maxVertexUniforms = capabilities.maxVertexUniforms;\r\n\t\tvar vertexTextures = capabilities.vertexTextures;\r\n\t\tvar precision = capabilities.precision;\r\n\t\tvar shaderIDs = {\r\n\t\t\tMeshDepthMaterial: 'depth',\r\n\t\t\tMeshDistanceMaterial: 'distanceRGBA',\r\n\t\t\tMeshNormalMaterial: 'normal',\r\n\t\t\tMeshBasicMaterial: 'basic',\r\n\t\t\tMeshLambertMaterial: 'lambert',\r\n\t\t\tMeshPhongMaterial: 'phong',\r\n\t\t\tMeshToonMaterial: 'toon',\r\n\t\t\tMeshStandardMaterial: 'physical',\r\n\t\t\tMeshPhysicalMaterial: 'physical',\r\n\t\t\tMeshMatcapMaterial: 'matcap',\r\n\t\t\tLineBasicMaterial: 'basic',\r\n\t\t\tLineDashedMaterial: 'dashed',\r\n\t\t\tPointsMaterial: 'points',\r\n\t\t\tShadowMaterial: 'shadow',\r\n\t\t\tSpriteMaterial: 'sprite'\r\n\t\t};\r\n\t\tvar parameterNames = [\"precision\", \"isWebGL2\", \"supportsVertexTextures\", \"outputEncoding\", \"instancing\", \"instancingColor\", \"map\", \"mapEncoding\", \"matcap\", \"matcapEncoding\", \"envMap\", \"envMapMode\", \"envMapEncoding\", \"envMapCubeUV\", \"lightMap\", \"lightMapEncoding\", \"aoMap\", \"emissiveMap\", \"emissiveMapEncoding\", \"bumpMap\", \"normalMap\", \"objectSpaceNormalMap\", \"tangentSpaceNormalMap\", \"clearcoatMap\", \"clearcoatRoughnessMap\", \"clearcoatNormalMap\", \"displacementMap\", \"specularMap\", \"roughnessMap\", \"metalnessMap\", \"gradientMap\", \"alphaMap\", \"combine\", \"vertexColors\", \"vertexTangents\", \"vertexUvs\", \"uvsVertexOnly\", \"fog\", \"useFog\", \"fogExp2\", \"flatShading\", \"sizeAttenuation\", \"logarithmicDepthBuffer\", \"skinning\", \"maxBones\", \"useVertexTexture\", \"morphTargets\", \"morphNormals\", \"maxMorphTargets\", \"maxMorphNormals\", \"premultipliedAlpha\", \"numDirLights\", \"numPointLights\", \"numSpotLights\", \"numHemiLights\", \"numRectAreaLights\", \"numDirLightShadows\", \"numPointLightShadows\", \"numSpotLightShadows\", \"shadowMapEnabled\", \"shadowMapType\", \"toneMapping\", 'physicallyCorrectLights', \"alphaTest\", \"doubleSided\", \"flipSided\", \"numClippingPlanes\", \"numClipIntersection\", \"depthPacking\", \"dithering\", \"sheen\", \"transmissionMap\"];\r\n\r\n\t\tfunction getMaxBones(object) {\r\n\t\t\tvar skeleton = object.skeleton;\r\n\t\t\tvar bones = skeleton.bones;\r\n\r\n\t\t\tif (floatVertexTextures) {\r\n\t\t\t\treturn 1024;\r\n\t\t\t} else {\r\n\t\t\t\t// default for when object is not specified\r\n\t\t\t\t// ( for example when prebuilding shader to be used with multiple objects )\r\n\t\t\t\t//\r\n\t\t\t\t//\t- leave some extra space for other uniforms\r\n\t\t\t\t//\t- limit here is ANGLE's 254 max uniform vectors\r\n\t\t\t\t//\t\t(up to 54 should be safe)\r\n\t\t\t\tvar nVertexUniforms = maxVertexUniforms;\r\n\t\t\t\tvar nVertexMatrices = Math.floor((nVertexUniforms - 20) / 4);\r\n\t\t\t\tvar maxBones = Math.min(nVertexMatrices, bones.length);\r\n\r\n\t\t\t\tif (maxBones < bones.length) {\r\n\t\t\t\t\tconsole.warn('THREE.WebGLRenderer: Skeleton has ' + bones.length + ' bones. This GPU supports ' + maxBones + '.');\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn maxBones;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction getTextureEncodingFromMap(map) {\r\n\t\t\tvar encoding;\r\n\r\n\t\t\tif (!map) {\r\n\t\t\t\tencoding = LinearEncoding;\r\n\t\t\t} else if (map.isTexture) {\r\n\t\t\t\tencoding = map.encoding;\r\n\t\t\t} else if (map.isWebGLRenderTarget) {\r\n\t\t\t\tconsole.warn(\"THREE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead.\");\r\n\t\t\t\tencoding = map.texture.encoding;\r\n\t\t\t}\r\n\r\n\t\t\treturn encoding;\r\n\t\t}\r\n\r\n\t\tfunction getParameters(material, lights, shadows, scene, object) {\r\n\t\t\tvar fog = scene.fog;\r\n\t\t\tvar environment = material.isMeshStandardMaterial ? scene.environment : null;\r\n\t\t\tvar envMap = cubemaps.get(material.envMap || environment);\r\n\t\t\tvar shaderID = shaderIDs[material.type]; // heuristics to create shader parameters according to lights in the scene\r\n\t\t\t// (not to blow over maxLights budget)\r\n\r\n\t\t\tvar maxBones = object.isSkinnedMesh ? getMaxBones(object) : 0;\r\n\r\n\t\t\tif (material.precision !== null) {\r\n\t\t\t\tprecision = capabilities.getMaxPrecision(material.precision);\r\n\r\n\t\t\t\tif (precision !== material.precision) {\r\n\t\t\t\t\tconsole.warn('THREE.WebGLProgram.getParameters:', material.precision, 'not supported, using', precision, 'instead.');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar vertexShader, fragmentShader;\r\n\r\n\t\t\tif (shaderID) {\r\n\t\t\t\tvar shader = ShaderLib[shaderID];\r\n\t\t\t\tvertexShader = shader.vertexShader;\r\n\t\t\t\tfragmentShader = shader.fragmentShader;\r\n\t\t\t} else {\r\n\t\t\t\tvertexShader = material.vertexShader;\r\n\t\t\t\tfragmentShader = material.fragmentShader;\r\n\t\t\t}\r\n\r\n\t\t\tvar currentRenderTarget = renderer.getRenderTarget();\r\n\t\t\tvar parameters = {\r\n\t\t\t\tisWebGL2: isWebGL2,\r\n\t\t\t\tshaderID: shaderID,\r\n\t\t\t\tshaderName: material.type,\r\n\t\t\t\tvertexShader: vertexShader,\r\n\t\t\t\tfragmentShader: fragmentShader,\r\n\t\t\t\tdefines: material.defines,\r\n\t\t\t\tisRawShaderMaterial: material.isRawShaderMaterial === true,\r\n\t\t\t\tglslVersion: material.glslVersion,\r\n\t\t\t\tprecision: precision,\r\n\t\t\t\tinstancing: object.isInstancedMesh === true,\r\n\t\t\t\tinstancingColor: object.isInstancedMesh === true && object.instanceColor !== null,\r\n\t\t\t\tsupportsVertexTextures: vertexTextures,\r\n\t\t\t\toutputEncoding: currentRenderTarget !== null ? getTextureEncodingFromMap(currentRenderTarget.texture) : renderer.outputEncoding,\r\n\t\t\t\tmap: !!material.map,\r\n\t\t\t\tmapEncoding: getTextureEncodingFromMap(material.map),\r\n\t\t\t\tmatcap: !!material.matcap,\r\n\t\t\t\tmatcapEncoding: getTextureEncodingFromMap(material.matcap),\r\n\t\t\t\tenvMap: !!envMap,\r\n\t\t\t\tenvMapMode: envMap && envMap.mapping,\r\n\t\t\t\tenvMapEncoding: getTextureEncodingFromMap(envMap),\r\n\t\t\t\tenvMapCubeUV: !!envMap && (envMap.mapping === CubeUVReflectionMapping || envMap.mapping === CubeUVRefractionMapping),\r\n\t\t\t\tlightMap: !!material.lightMap,\r\n\t\t\t\tlightMapEncoding: getTextureEncodingFromMap(material.lightMap),\r\n\t\t\t\taoMap: !!material.aoMap,\r\n\t\t\t\temissiveMap: !!material.emissiveMap,\r\n\t\t\t\temissiveMapEncoding: getTextureEncodingFromMap(material.emissiveMap),\r\n\t\t\t\tbumpMap: !!material.bumpMap,\r\n\t\t\t\tnormalMap: !!material.normalMap,\r\n\t\t\t\tobjectSpaceNormalMap: material.normalMapType === ObjectSpaceNormalMap,\r\n\t\t\t\ttangentSpaceNormalMap: material.normalMapType === TangentSpaceNormalMap,\r\n\t\t\t\tclearcoatMap: !!material.clearcoatMap,\r\n\t\t\t\tclearcoatRoughnessMap: !!material.clearcoatRoughnessMap,\r\n\t\t\t\tclearcoatNormalMap: !!material.clearcoatNormalMap,\r\n\t\t\t\tdisplacementMap: !!material.displacementMap,\r\n\t\t\t\troughnessMap: !!material.roughnessMap,\r\n\t\t\t\tmetalnessMap: !!material.metalnessMap,\r\n\t\t\t\tspecularMap: !!material.specularMap,\r\n\t\t\t\talphaMap: !!material.alphaMap,\r\n\t\t\t\tgradientMap: !!material.gradientMap,\r\n\t\t\t\tsheen: !!material.sheen,\r\n\t\t\t\ttransmissionMap: !!material.transmissionMap,\r\n\t\t\t\tcombine: material.combine,\r\n\t\t\t\tvertexTangents: material.normalMap && material.vertexTangents,\r\n\t\t\t\tvertexColors: material.vertexColors,\r\n\t\t\t\tvertexUvs: !!material.map || !!material.bumpMap || !!material.normalMap || !!material.specularMap || !!material.alphaMap || !!material.emissiveMap || !!material.roughnessMap || !!material.metalnessMap || !!material.clearcoatMap || !!material.clearcoatRoughnessMap || !!material.clearcoatNormalMap || !!material.displacementMap || !!material.transmissionMap,\r\n\t\t\t\tuvsVertexOnly: !(!!material.map || !!material.bumpMap || !!material.normalMap || !!material.specularMap || !!material.alphaMap || !!material.emissiveMap || !!material.roughnessMap || !!material.metalnessMap || !!material.clearcoatNormalMap || !!material.transmissionMap) && !!material.displacementMap,\r\n\t\t\t\tfog: !!fog,\r\n\t\t\t\tuseFog: material.fog,\r\n\t\t\t\tfogExp2: fog && fog.isFogExp2,\r\n\t\t\t\tflatShading: material.flatShading,\r\n\t\t\t\tsizeAttenuation: material.sizeAttenuation,\r\n\t\t\t\tlogarithmicDepthBuffer: logarithmicDepthBuffer,\r\n\t\t\t\tskinning: material.skinning && maxBones > 0,\r\n\t\t\t\tmaxBones: maxBones,\r\n\t\t\t\tuseVertexTexture: floatVertexTextures,\r\n\t\t\t\tmorphTargets: material.morphTargets,\r\n\t\t\t\tmorphNormals: material.morphNormals,\r\n\t\t\t\tmaxMorphTargets: renderer.maxMorphTargets,\r\n\t\t\t\tmaxMorphNormals: renderer.maxMorphNormals,\r\n\t\t\t\tnumDirLights: lights.directional.length,\r\n\t\t\t\tnumPointLights: lights.point.length,\r\n\t\t\t\tnumSpotLights: lights.spot.length,\r\n\t\t\t\tnumRectAreaLights: lights.rectArea.length,\r\n\t\t\t\tnumHemiLights: lights.hemi.length,\r\n\t\t\t\tnumDirLightShadows: lights.directionalShadowMap.length,\r\n\t\t\t\tnumPointLightShadows: lights.pointShadowMap.length,\r\n\t\t\t\tnumSpotLightShadows: lights.spotShadowMap.length,\r\n\t\t\t\tnumClippingPlanes: clipping.numPlanes,\r\n\t\t\t\tnumClipIntersection: clipping.numIntersection,\r\n\t\t\t\tdithering: material.dithering,\r\n\t\t\t\tshadowMapEnabled: renderer.shadowMap.enabled && shadows.length > 0,\r\n\t\t\t\tshadowMapType: renderer.shadowMap.type,\r\n\t\t\t\ttoneMapping: material.toneMapped ? renderer.toneMapping : NoToneMapping,\r\n\t\t\t\tphysicallyCorrectLights: renderer.physicallyCorrectLights,\r\n\t\t\t\tpremultipliedAlpha: material.premultipliedAlpha,\r\n\t\t\t\talphaTest: material.alphaTest,\r\n\t\t\t\tdoubleSided: material.side === DoubleSide,\r\n\t\t\t\tflipSided: material.side === BackSide,\r\n\t\t\t\tdepthPacking: material.depthPacking !== undefined ? material.depthPacking : false,\r\n\t\t\t\tindex0AttributeName: material.index0AttributeName,\r\n\t\t\t\textensionDerivatives: material.extensions && material.extensions.derivatives,\r\n\t\t\t\textensionFragDepth: material.extensions && material.extensions.fragDepth,\r\n\t\t\t\textensionDrawBuffers: material.extensions && material.extensions.drawBuffers,\r\n\t\t\t\textensionShaderTextureLOD: material.extensions && material.extensions.shaderTextureLOD,\r\n\t\t\t\trendererExtensionFragDepth: isWebGL2 || extensions.has('EXT_frag_depth'),\r\n\t\t\t\trendererExtensionDrawBuffers: isWebGL2 || extensions.has('WEBGL_draw_buffers'),\r\n\t\t\t\trendererExtensionShaderTextureLod: isWebGL2 || extensions.has('EXT_shader_texture_lod'),\r\n\t\t\t\tcustomProgramCacheKey: material.customProgramCacheKey()\r\n\t\t\t};\r\n\t\t\treturn parameters;\r\n\t\t}\r\n\r\n\t\tfunction getProgramCacheKey(parameters) {\r\n\t\t\tvar array = [];\r\n\r\n\t\t\tif (parameters.shaderID) {\r\n\t\t\t\tarray.push(parameters.shaderID);\r\n\t\t\t} else {\r\n\t\t\t\tarray.push(parameters.fragmentShader);\r\n\t\t\t\tarray.push(parameters.vertexShader);\r\n\t\t\t}\r\n\r\n\t\t\tif (parameters.defines !== undefined) {\r\n\t\t\t\tfor (var name in parameters.defines) {\r\n\t\t\t\t\tarray.push(name);\r\n\t\t\t\t\tarray.push(parameters.defines[name]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (parameters.isRawShaderMaterial === false) {\r\n\t\t\t\tfor (var i = 0; i < parameterNames.length; i++) {\r\n\t\t\t\t\tarray.push(parameters[parameterNames[i]]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tarray.push(renderer.outputEncoding);\r\n\t\t\t\tarray.push(renderer.gammaFactor);\r\n\t\t\t}\r\n\r\n\t\t\tarray.push(parameters.customProgramCacheKey);\r\n\t\t\treturn array.join();\r\n\t\t}\r\n\r\n\t\tfunction getUniforms(material) {\r\n\t\t\tvar shaderID = shaderIDs[material.type];\r\n\t\t\tvar uniforms;\r\n\r\n\t\t\tif (shaderID) {\r\n\t\t\t\tvar shader = ShaderLib[shaderID];\r\n\t\t\t\tuniforms = UniformsUtils.clone(shader.uniforms);\r\n\t\t\t} else {\r\n\t\t\t\tuniforms = material.uniforms;\r\n\t\t\t}\r\n\r\n\t\t\treturn uniforms;\r\n\t\t}\r\n\r\n\t\tfunction acquireProgram(parameters, cacheKey) {\r\n\t\t\tvar program; // Check if code has been already compiled\r\n\r\n\t\t\tfor (var p = 0, pl = programs.length; p < pl; p++) {\r\n\t\t\t\tvar preexistingProgram = programs[p];\r\n\r\n\t\t\t\tif (preexistingProgram.cacheKey === cacheKey) {\r\n\t\t\t\t\tprogram = preexistingProgram;\r\n\t\t\t\t\t++program.usedTimes;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (program === undefined) {\r\n\t\t\t\tprogram = new WebGLProgram(renderer, cacheKey, parameters, bindingStates);\r\n\t\t\t\tprograms.push(program);\r\n\t\t\t}\r\n\r\n\t\t\treturn program;\r\n\t\t}\r\n\r\n\t\tfunction releaseProgram(program) {\r\n\t\t\tif (--program.usedTimes === 0) {\r\n\t\t\t\t// Remove from unordered set\r\n\t\t\t\tvar i = programs.indexOf(program);\r\n\t\t\t\tprograms[i] = programs[programs.length - 1];\r\n\t\t\t\tprograms.pop(); // Free WebGL resources\r\n\r\n\t\t\t\tprogram.destroy();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tgetParameters: getParameters,\r\n\t\t\tgetProgramCacheKey: getProgramCacheKey,\r\n\t\t\tgetUniforms: getUniforms,\r\n\t\t\tacquireProgram: acquireProgram,\r\n\t\t\treleaseProgram: releaseProgram,\r\n\t\t\t// Exposed for resource monitoring & error feedback via renderer.info:\r\n\t\t\tprograms: programs\r\n\t\t};\r\n\t}\r\n\r\n\tfunction WebGLProperties() {\r\n\t\tvar properties = new WeakMap();\r\n\r\n\t\tfunction get(object) {\r\n\t\t\tvar map = properties.get(object);\r\n\r\n\t\t\tif (map === undefined) {\r\n\t\t\t\tmap = {};\r\n\t\t\t\tproperties.set(object, map);\r\n\t\t\t}\r\n\r\n\t\t\treturn map;\r\n\t\t}\r\n\r\n\t\tfunction remove(object) {\r\n\t\t\tproperties.delete(object);\r\n\t\t}\r\n\r\n\t\tfunction update(object, key, value) {\r\n\t\t\tproperties.get(object)[key] = value;\r\n\t\t}\r\n\r\n\t\tfunction dispose() {\r\n\t\t\tproperties = new WeakMap();\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tget: get,\r\n\t\t\tremove: remove,\r\n\t\t\tupdate: update,\r\n\t\t\tdispose: dispose\r\n\t\t};\r\n\t}\r\n\r\n\tfunction painterSortStable(a, b) {\r\n\t\tif (a.groupOrder !== b.groupOrder) {\r\n\t\t\treturn a.groupOrder - b.groupOrder;\r\n\t\t} else if (a.renderOrder !== b.renderOrder) {\r\n\t\t\treturn a.renderOrder - b.renderOrder;\r\n\t\t} else if (a.program !== b.program) {\r\n\t\t\treturn a.program.id - b.program.id;\r\n\t\t} else if (a.material.id !== b.material.id) {\r\n\t\t\treturn a.material.id - b.material.id;\r\n\t\t} else if (a.z !== b.z) {\r\n\t\t\treturn a.z - b.z;\r\n\t\t} else {\r\n\t\t\treturn a.id - b.id;\r\n\t\t}\r\n\t}\r\n\r\n\tfunction reversePainterSortStable(a, b) {\r\n\t\tif (a.groupOrder !== b.groupOrder) {\r\n\t\t\treturn a.groupOrder - b.groupOrder;\r\n\t\t} else if (a.renderOrder !== b.renderOrder) {\r\n\t\t\treturn a.renderOrder - b.renderOrder;\r\n\t\t} else if (a.z !== b.z) {\r\n\t\t\treturn b.z - a.z;\r\n\t\t} else {\r\n\t\t\treturn a.id - b.id;\r\n\t\t}\r\n\t}\r\n\r\n\tfunction WebGLRenderList(properties) {\r\n\t\tvar renderItems = [];\r\n\t\tvar renderItemsIndex = 0;\r\n\t\tvar opaque = [];\r\n\t\tvar transparent = [];\r\n\t\tvar defaultProgram = {\r\n\t\t\tid: -1\r\n\t\t};\r\n\r\n\t\tfunction init() {\r\n\t\t\trenderItemsIndex = 0;\r\n\t\t\topaque.length = 0;\r\n\t\t\ttransparent.length = 0;\r\n\t\t}\r\n\r\n\t\tfunction getNextRenderItem(object, geometry, material, groupOrder, z, group) {\r\n\t\t\tvar renderItem = renderItems[renderItemsIndex];\r\n\t\t\tvar materialProperties = properties.get(material);\r\n\r\n\t\t\tif (renderItem === undefined) {\r\n\t\t\t\trenderItem = {\r\n\t\t\t\t\tid: object.id,\r\n\t\t\t\t\tobject: object,\r\n\t\t\t\t\tgeometry: geometry,\r\n\t\t\t\t\tmaterial: material,\r\n\t\t\t\t\tprogram: materialProperties.program || defaultProgram,\r\n\t\t\t\t\tgroupOrder: groupOrder,\r\n\t\t\t\t\trenderOrder: object.renderOrder,\r\n\t\t\t\t\tz: z,\r\n\t\t\t\t\tgroup: group\r\n\t\t\t\t};\r\n\t\t\t\trenderItems[renderItemsIndex] = renderItem;\r\n\t\t\t} else {\r\n\t\t\t\trenderItem.id = object.id;\r\n\t\t\t\trenderItem.object = object;\r\n\t\t\t\trenderItem.geometry = geometry;\r\n\t\t\t\trenderItem.material = material;\r\n\t\t\t\trenderItem.program = materialProperties.program || defaultProgram;\r\n\t\t\t\trenderItem.groupOrder = groupOrder;\r\n\t\t\t\trenderItem.renderOrder = object.renderOrder;\r\n\t\t\t\trenderItem.z = z;\r\n\t\t\t\trenderItem.group = group;\r\n\t\t\t}\r\n\r\n\t\t\trenderItemsIndex++;\r\n\t\t\treturn renderItem;\r\n\t\t}\r\n\r\n\t\tfunction push(object, geometry, material, groupOrder, z, group) {\r\n\t\t\tvar renderItem = getNextRenderItem(object, geometry, material, groupOrder, z, group);\r\n\t\t\t(material.transparent === true ? transparent : opaque).push(renderItem);\r\n\t\t}\r\n\r\n\t\tfunction unshift(object, geometry, material, groupOrder, z, group) {\r\n\t\t\tvar renderItem = getNextRenderItem(object, geometry, material, groupOrder, z, group);\r\n\t\t\t(material.transparent === true ? transparent : opaque).unshift(renderItem);\r\n\t\t}\r\n\r\n\t\tfunction sort(customOpaqueSort, customTransparentSort) {\r\n\t\t\tif (opaque.length > 1) opaque.sort(customOpaqueSort || painterSortStable);\r\n\t\t\tif (transparent.length > 1) transparent.sort(customTransparentSort || reversePainterSortStable);\r\n\t\t}\r\n\r\n\t\tfunction finish() {\r\n\t\t\t// Clear references from inactive renderItems in the list\r\n\t\t\tfor (var i = renderItemsIndex, il = renderItems.length; i < il; i++) {\r\n\t\t\t\tvar renderItem = renderItems[i];\r\n\t\t\t\tif (renderItem.id === null) break;\r\n\t\t\t\trenderItem.id = null;\r\n\t\t\t\trenderItem.object = null;\r\n\t\t\t\trenderItem.geometry = null;\r\n\t\t\t\trenderItem.material = null;\r\n\t\t\t\trenderItem.program = null;\r\n\t\t\t\trenderItem.group = null;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\topaque: opaque,\r\n\t\t\ttransparent: transparent,\r\n\t\t\tinit: init,\r\n\t\t\tpush: push,\r\n\t\t\tunshift: unshift,\r\n\t\t\tfinish: finish,\r\n\t\t\tsort: sort\r\n\t\t};\r\n\t}\r\n\r\n\tfunction WebGLRenderLists(properties) {\r\n\t\tvar lists = new WeakMap();\r\n\r\n\t\tfunction get(scene, camera) {\r\n\t\t\tvar cameras = lists.get(scene);\r\n\t\t\tvar list;\r\n\r\n\t\t\tif (cameras === undefined) {\r\n\t\t\t\tlist = new WebGLRenderList(properties);\r\n\t\t\t\tlists.set(scene, new WeakMap());\r\n\t\t\t\tlists.get(scene).set(camera, list);\r\n\t\t\t} else {\r\n\t\t\t\tlist = cameras.get(camera);\r\n\r\n\t\t\t\tif (list === undefined) {\r\n\t\t\t\t\tlist = new WebGLRenderList(properties);\r\n\t\t\t\t\tcameras.set(camera, list);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn list;\r\n\t\t}\r\n\r\n\t\tfunction dispose() {\r\n\t\t\tlists = new WeakMap();\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tget: get,\r\n\t\t\tdispose: dispose\r\n\t\t};\r\n\t}\r\n\r\n\tfunction UniformsCache() {\r\n\t\tvar lights = {};\r\n\t\treturn {\r\n\t\t\tget: function get(light) {\r\n\t\t\t\tif (lights[light.id] !== undefined) {\r\n\t\t\t\t\treturn lights[light.id];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar uniforms;\r\n\r\n\t\t\t\tswitch (light.type) {\r\n\t\t\t\t\tcase 'DirectionalLight':\r\n\t\t\t\t\t\tuniforms = {\r\n\t\t\t\t\t\t\tdirection: new Vector3(),\r\n\t\t\t\t\t\t\tcolor: new Color()\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase 'SpotLight':\r\n\t\t\t\t\t\tuniforms = {\r\n\t\t\t\t\t\t\tposition: new Vector3(),\r\n\t\t\t\t\t\t\tdirection: new Vector3(),\r\n\t\t\t\t\t\t\tcolor: new Color(),\r\n\t\t\t\t\t\t\tdistance: 0,\r\n\t\t\t\t\t\t\tconeCos: 0,\r\n\t\t\t\t\t\t\tpenumbraCos: 0,\r\n\t\t\t\t\t\t\tdecay: 0\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase 'PointLight':\r\n\t\t\t\t\t\tuniforms = {\r\n\t\t\t\t\t\t\tposition: new Vector3(),\r\n\t\t\t\t\t\t\tcolor: new Color(),\r\n\t\t\t\t\t\t\tdistance: 0,\r\n\t\t\t\t\t\t\tdecay: 0\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase 'HemisphereLight':\r\n\t\t\t\t\t\tuniforms = {\r\n\t\t\t\t\t\t\tdirection: new Vector3(),\r\n\t\t\t\t\t\t\tskyColor: new Color(),\r\n\t\t\t\t\t\t\tgroundColor: new Color()\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase 'RectAreaLight':\r\n\t\t\t\t\t\tuniforms = {\r\n\t\t\t\t\t\t\tcolor: new Color(),\r\n\t\t\t\t\t\t\tposition: new Vector3(),\r\n\t\t\t\t\t\t\thalfWidth: new Vector3(),\r\n\t\t\t\t\t\t\thalfHeight: new Vector3()\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlights[light.id] = uniforms;\r\n\t\t\t\treturn uniforms;\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tfunction ShadowUniformsCache() {\r\n\t\tvar lights = {};\r\n\t\treturn {\r\n\t\t\tget: function get(light) {\r\n\t\t\t\tif (lights[light.id] !== undefined) {\r\n\t\t\t\t\treturn lights[light.id];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar uniforms;\r\n\r\n\t\t\t\tswitch (light.type) {\r\n\t\t\t\t\tcase 'DirectionalLight':\r\n\t\t\t\t\t\tuniforms = {\r\n\t\t\t\t\t\t\tshadowBias: 0,\r\n\t\t\t\t\t\t\tshadowNormalBias: 0,\r\n\t\t\t\t\t\t\tshadowRadius: 1,\r\n\t\t\t\t\t\t\tshadowMapSize: new Vector2()\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase 'SpotLight':\r\n\t\t\t\t\t\tuniforms = {\r\n\t\t\t\t\t\t\tshadowBias: 0,\r\n\t\t\t\t\t\t\tshadowNormalBias: 0,\r\n\t\t\t\t\t\t\tshadowRadius: 1,\r\n\t\t\t\t\t\t\tshadowMapSize: new Vector2()\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase 'PointLight':\r\n\t\t\t\t\t\tuniforms = {\r\n\t\t\t\t\t\t\tshadowBias: 0,\r\n\t\t\t\t\t\t\tshadowNormalBias: 0,\r\n\t\t\t\t\t\t\tshadowRadius: 1,\r\n\t\t\t\t\t\t\tshadowMapSize: new Vector2(),\r\n\t\t\t\t\t\t\tshadowCameraNear: 1,\r\n\t\t\t\t\t\t\tshadowCameraFar: 1000\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t// TODO (abelnation): set RectAreaLight shadow uniforms\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlights[light.id] = uniforms;\r\n\t\t\t\treturn uniforms;\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tvar nextVersion = 0;\r\n\r\n\tfunction shadowCastingLightsFirst(lightA, lightB) {\r\n\t\treturn (lightB.castShadow ? 1 : 0) - (lightA.castShadow ? 1 : 0);\r\n\t}\r\n\r\n\tfunction WebGLLights(extensions, capabilities) {\r\n\t\tvar cache = new UniformsCache();\r\n\t\tvar shadowCache = ShadowUniformsCache();\r\n\t\tvar state = {\r\n\t\t\tversion: 0,\r\n\t\t\thash: {\r\n\t\t\t\tdirectionalLength: -1,\r\n\t\t\t\tpointLength: -1,\r\n\t\t\t\tspotLength: -1,\r\n\t\t\t\trectAreaLength: -1,\r\n\t\t\t\themiLength: -1,\r\n\t\t\t\tnumDirectionalShadows: -1,\r\n\t\t\t\tnumPointShadows: -1,\r\n\t\t\t\tnumSpotShadows: -1\r\n\t\t\t},\r\n\t\t\tambient: [0, 0, 0],\r\n\t\t\tprobe: [],\r\n\t\t\tdirectional: [],\r\n\t\t\tdirectionalShadow: [],\r\n\t\t\tdirectionalShadowMap: [],\r\n\t\t\tdirectionalShadowMatrix: [],\r\n\t\t\tspot: [],\r\n\t\t\tspotShadow: [],\r\n\t\t\tspotShadowMap: [],\r\n\t\t\tspotShadowMatrix: [],\r\n\t\t\trectArea: [],\r\n\t\t\trectAreaLTC1: null,\r\n\t\t\trectAreaLTC2: null,\r\n\t\t\tpoint: [],\r\n\t\t\tpointShadow: [],\r\n\t\t\tpointShadowMap: [],\r\n\t\t\tpointShadowMatrix: [],\r\n\t\t\themi: []\r\n\t\t};\r\n\r\n\t\tfor (var i = 0; i < 9; i++) {\r\n\t\t\tstate.probe.push(new Vector3());\r\n\t\t}\r\n\r\n\t\tvar vector3 = new Vector3();\r\n\t\tvar matrix4 = new Matrix4();\r\n\t\tvar matrix42 = new Matrix4();\r\n\r\n\t\tfunction setup(lights, shadows, camera) {\r\n\t\t\tvar r = 0,\r\n\t\t\t\t\tg = 0,\r\n\t\t\t\t\tb = 0;\r\n\r\n\t\t\tfor (var _i = 0; _i < 9; _i++) {\r\n\t\t\t\tstate.probe[_i].set(0, 0, 0);\r\n\t\t\t}\r\n\r\n\t\t\tvar directionalLength = 0;\r\n\t\t\tvar pointLength = 0;\r\n\t\t\tvar spotLength = 0;\r\n\t\t\tvar rectAreaLength = 0;\r\n\t\t\tvar hemiLength = 0;\r\n\t\t\tvar numDirectionalShadows = 0;\r\n\t\t\tvar numPointShadows = 0;\r\n\t\t\tvar numSpotShadows = 0;\r\n\t\t\tvar viewMatrix = camera.matrixWorldInverse;\r\n\t\t\tlights.sort(shadowCastingLightsFirst);\r\n\r\n\t\t\tfor (var _i2 = 0, l = lights.length; _i2 < l; _i2++) {\r\n\t\t\t\tvar light = lights[_i2];\r\n\t\t\t\tvar color = light.color;\r\n\t\t\t\tvar intensity = light.intensity;\r\n\t\t\t\tvar distance = light.distance;\r\n\t\t\t\tvar shadowMap = light.shadow && light.shadow.map ? light.shadow.map.texture : null;\r\n\r\n\t\t\t\tif (light.isAmbientLight) {\r\n\t\t\t\t\tr += color.r * intensity;\r\n\t\t\t\t\tg += color.g * intensity;\r\n\t\t\t\t\tb += color.b * intensity;\r\n\t\t\t\t} else if (light.isLightProbe) {\r\n\t\t\t\t\tfor (var j = 0; j < 9; j++) {\r\n\t\t\t\t\t\tstate.probe[j].addScaledVector(light.sh.coefficients[j], intensity);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (light.isDirectionalLight) {\r\n\t\t\t\t\tvar uniforms = cache.get(light);\r\n\t\t\t\t\tuniforms.color.copy(light.color).multiplyScalar(light.intensity);\r\n\t\t\t\t\tuniforms.direction.setFromMatrixPosition(light.matrixWorld);\r\n\t\t\t\t\tvector3.setFromMatrixPosition(light.target.matrixWorld);\r\n\t\t\t\t\tuniforms.direction.sub(vector3);\r\n\t\t\t\t\tuniforms.direction.transformDirection(viewMatrix);\r\n\r\n\t\t\t\t\tif (light.castShadow) {\r\n\t\t\t\t\t\tvar shadow = light.shadow;\r\n\t\t\t\t\t\tvar shadowUniforms = shadowCache.get(light);\r\n\t\t\t\t\t\tshadowUniforms.shadowBias = shadow.bias;\r\n\t\t\t\t\t\tshadowUniforms.shadowNormalBias = shadow.normalBias;\r\n\t\t\t\t\t\tshadowUniforms.shadowRadius = shadow.radius;\r\n\t\t\t\t\t\tshadowUniforms.shadowMapSize = shadow.mapSize;\r\n\t\t\t\t\t\tstate.directionalShadow[directionalLength] = shadowUniforms;\r\n\t\t\t\t\t\tstate.directionalShadowMap[directionalLength] = shadowMap;\r\n\t\t\t\t\t\tstate.directionalShadowMatrix[directionalLength] = light.shadow.matrix;\r\n\t\t\t\t\t\tnumDirectionalShadows++;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tstate.directional[directionalLength] = uniforms;\r\n\t\t\t\t\tdirectionalLength++;\r\n\t\t\t\t} else if (light.isSpotLight) {\r\n\t\t\t\t\tvar _uniforms = cache.get(light);\r\n\r\n\t\t\t\t\t_uniforms.position.setFromMatrixPosition(light.matrixWorld);\r\n\r\n\t\t\t\t\t_uniforms.position.applyMatrix4(viewMatrix);\r\n\r\n\t\t\t\t\t_uniforms.color.copy(color).multiplyScalar(intensity);\r\n\r\n\t\t\t\t\t_uniforms.distance = distance;\r\n\r\n\t\t\t\t\t_uniforms.direction.setFromMatrixPosition(light.matrixWorld);\r\n\r\n\t\t\t\t\tvector3.setFromMatrixPosition(light.target.matrixWorld);\r\n\r\n\t\t\t\t\t_uniforms.direction.sub(vector3);\r\n\r\n\t\t\t\t\t_uniforms.direction.transformDirection(viewMatrix);\r\n\r\n\t\t\t\t\t_uniforms.coneCos = Math.cos(light.angle);\r\n\t\t\t\t\t_uniforms.penumbraCos = Math.cos(light.angle * (1 - light.penumbra));\r\n\t\t\t\t\t_uniforms.decay = light.decay;\r\n\r\n\t\t\t\t\tif (light.castShadow) {\r\n\t\t\t\t\t\tvar _shadow = light.shadow;\r\n\r\n\t\t\t\t\t\tvar _shadowUniforms = shadowCache.get(light);\r\n\r\n\t\t\t\t\t\t_shadowUniforms.shadowBias = _shadow.bias;\r\n\t\t\t\t\t\t_shadowUniforms.shadowNormalBias = _shadow.normalBias;\r\n\t\t\t\t\t\t_shadowUniforms.shadowRadius = _shadow.radius;\r\n\t\t\t\t\t\t_shadowUniforms.shadowMapSize = _shadow.mapSize;\r\n\t\t\t\t\t\tstate.spotShadow[spotLength] = _shadowUniforms;\r\n\t\t\t\t\t\tstate.spotShadowMap[spotLength] = shadowMap;\r\n\t\t\t\t\t\tstate.spotShadowMatrix[spotLength] = light.shadow.matrix;\r\n\t\t\t\t\t\tnumSpotShadows++;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tstate.spot[spotLength] = _uniforms;\r\n\t\t\t\t\tspotLength++;\r\n\t\t\t\t} else if (light.isRectAreaLight) {\r\n\t\t\t\t\tvar _uniforms2 = cache.get(light); // (a) intensity is the total visible light emitted\r\n\t\t\t\t\t//uniforms.color.copy( color ).multiplyScalar( intensity / ( light.width * light.height * Math.PI ) );\r\n\t\t\t\t\t// (b) intensity is the brightness of the light\r\n\r\n\r\n\t\t\t\t\t_uniforms2.color.copy(color).multiplyScalar(intensity);\r\n\r\n\t\t\t\t\t_uniforms2.position.setFromMatrixPosition(light.matrixWorld);\r\n\r\n\t\t\t\t\t_uniforms2.position.applyMatrix4(viewMatrix); // extract local rotation of light to derive width/height half vectors\r\n\r\n\r\n\t\t\t\t\tmatrix42.identity();\r\n\t\t\t\t\tmatrix4.copy(light.matrixWorld);\r\n\t\t\t\t\tmatrix4.premultiply(viewMatrix);\r\n\t\t\t\t\tmatrix42.extractRotation(matrix4);\r\n\r\n\t\t\t\t\t_uniforms2.halfWidth.set(light.width * 0.5, 0.0, 0.0);\r\n\r\n\t\t\t\t\t_uniforms2.halfHeight.set(0.0, light.height * 0.5, 0.0);\r\n\r\n\t\t\t\t\t_uniforms2.halfWidth.applyMatrix4(matrix42);\r\n\r\n\t\t\t\t\t_uniforms2.halfHeight.applyMatrix4(matrix42); // TODO (abelnation): RectAreaLight distance?\r\n\t\t\t\t\t// uniforms.distance = distance;\r\n\r\n\r\n\t\t\t\t\tstate.rectArea[rectAreaLength] = _uniforms2;\r\n\t\t\t\t\trectAreaLength++;\r\n\t\t\t\t} else if (light.isPointLight) {\r\n\t\t\t\t\tvar _uniforms3 = cache.get(light);\r\n\r\n\t\t\t\t\t_uniforms3.position.setFromMatrixPosition(light.matrixWorld);\r\n\r\n\t\t\t\t\t_uniforms3.position.applyMatrix4(viewMatrix);\r\n\r\n\t\t\t\t\t_uniforms3.color.copy(light.color).multiplyScalar(light.intensity);\r\n\r\n\t\t\t\t\t_uniforms3.distance = light.distance;\r\n\t\t\t\t\t_uniforms3.decay = light.decay;\r\n\r\n\t\t\t\t\tif (light.castShadow) {\r\n\t\t\t\t\t\tvar _shadow2 = light.shadow;\r\n\r\n\t\t\t\t\t\tvar _shadowUniforms2 = shadowCache.get(light);\r\n\r\n\t\t\t\t\t\t_shadowUniforms2.shadowBias = _shadow2.bias;\r\n\t\t\t\t\t\t_shadowUniforms2.shadowNormalBias = _shadow2.normalBias;\r\n\t\t\t\t\t\t_shadowUniforms2.shadowRadius = _shadow2.radius;\r\n\t\t\t\t\t\t_shadowUniforms2.shadowMapSize = _shadow2.mapSize;\r\n\t\t\t\t\t\t_shadowUniforms2.shadowCameraNear = _shadow2.camera.near;\r\n\t\t\t\t\t\t_shadowUniforms2.shadowCameraFar = _shadow2.camera.far;\r\n\t\t\t\t\t\tstate.pointShadow[pointLength] = _shadowUniforms2;\r\n\t\t\t\t\t\tstate.pointShadowMap[pointLength] = shadowMap;\r\n\t\t\t\t\t\tstate.pointShadowMatrix[pointLength] = light.shadow.matrix;\r\n\t\t\t\t\t\tnumPointShadows++;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tstate.point[pointLength] = _uniforms3;\r\n\t\t\t\t\tpointLength++;\r\n\t\t\t\t} else if (light.isHemisphereLight) {\r\n\t\t\t\t\tvar _uniforms4 = cache.get(light);\r\n\r\n\t\t\t\t\t_uniforms4.direction.setFromMatrixPosition(light.matrixWorld);\r\n\r\n\t\t\t\t\t_uniforms4.direction.transformDirection(viewMatrix);\r\n\r\n\t\t\t\t\t_uniforms4.direction.normalize();\r\n\r\n\t\t\t\t\t_uniforms4.skyColor.copy(light.color).multiplyScalar(intensity);\r\n\r\n\t\t\t\t\t_uniforms4.groundColor.copy(light.groundColor).multiplyScalar(intensity);\r\n\r\n\t\t\t\t\tstate.hemi[hemiLength] = _uniforms4;\r\n\t\t\t\t\themiLength++;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (rectAreaLength > 0) {\r\n\t\t\t\tif (capabilities.isWebGL2) {\r\n\t\t\t\t\t// WebGL 2\r\n\t\t\t\t\tstate.rectAreaLTC1 = UniformsLib.LTC_FLOAT_1;\r\n\t\t\t\t\tstate.rectAreaLTC2 = UniformsLib.LTC_FLOAT_2;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// WebGL 1\r\n\t\t\t\t\tif (extensions.has('OES_texture_float_linear') === true) {\r\n\t\t\t\t\t\tstate.rectAreaLTC1 = UniformsLib.LTC_FLOAT_1;\r\n\t\t\t\t\t\tstate.rectAreaLTC2 = UniformsLib.LTC_FLOAT_2;\r\n\t\t\t\t\t} else if (extensions.has('OES_texture_half_float_linear') === true) {\r\n\t\t\t\t\t\tstate.rectAreaLTC1 = UniformsLib.LTC_HALF_1;\r\n\t\t\t\t\t\tstate.rectAreaLTC2 = UniformsLib.LTC_HALF_2;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconsole.error('THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tstate.ambient[0] = r;\r\n\t\t\tstate.ambient[1] = g;\r\n\t\t\tstate.ambient[2] = b;\r\n\t\t\tvar hash = state.hash;\r\n\r\n\t\t\tif (hash.directionalLength !== directionalLength || hash.pointLength !== pointLength || hash.spotLength !== spotLength || hash.rectAreaLength !== rectAreaLength || hash.hemiLength !== hemiLength || hash.numDirectionalShadows !== numDirectionalShadows || hash.numPointShadows !== numPointShadows || hash.numSpotShadows !== numSpotShadows) {\r\n\t\t\t\tstate.directional.length = directionalLength;\r\n\t\t\t\tstate.spot.length = spotLength;\r\n\t\t\t\tstate.rectArea.length = rectAreaLength;\r\n\t\t\t\tstate.point.length = pointLength;\r\n\t\t\t\tstate.hemi.length = hemiLength;\r\n\t\t\t\tstate.directionalShadow.length = numDirectionalShadows;\r\n\t\t\t\tstate.directionalShadowMap.length = numDirectionalShadows;\r\n\t\t\t\tstate.pointShadow.length = numPointShadows;\r\n\t\t\t\tstate.pointShadowMap.length = numPointShadows;\r\n\t\t\t\tstate.spotShadow.length = numSpotShadows;\r\n\t\t\t\tstate.spotShadowMap.length = numSpotShadows;\r\n\t\t\t\tstate.directionalShadowMatrix.length = numDirectionalShadows;\r\n\t\t\t\tstate.pointShadowMatrix.length = numPointShadows;\r\n\t\t\t\tstate.spotShadowMatrix.length = numSpotShadows;\r\n\t\t\t\thash.directionalLength = directionalLength;\r\n\t\t\t\thash.pointLength = pointLength;\r\n\t\t\t\thash.spotLength = spotLength;\r\n\t\t\t\thash.rectAreaLength = rectAreaLength;\r\n\t\t\t\thash.hemiLength = hemiLength;\r\n\t\t\t\thash.numDirectionalShadows = numDirectionalShadows;\r\n\t\t\t\thash.numPointShadows = numPointShadows;\r\n\t\t\t\thash.numSpotShadows = numSpotShadows;\r\n\t\t\t\tstate.version = nextVersion++;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tsetup: setup,\r\n\t\t\tstate: state\r\n\t\t};\r\n\t}\r\n\r\n\tfunction WebGLRenderState(extensions, capabilities) {\r\n\t\tvar lights = new WebGLLights(extensions, capabilities);\r\n\t\tvar lightsArray = [];\r\n\t\tvar shadowsArray = [];\r\n\r\n\t\tfunction init() {\r\n\t\t\tlightsArray.length = 0;\r\n\t\t\tshadowsArray.length = 0;\r\n\t\t}\r\n\r\n\t\tfunction pushLight(light) {\r\n\t\t\tlightsArray.push(light);\r\n\t\t}\r\n\r\n\t\tfunction pushShadow(shadowLight) {\r\n\t\t\tshadowsArray.push(shadowLight);\r\n\t\t}\r\n\r\n\t\tfunction setupLights(camera) {\r\n\t\t\tlights.setup(lightsArray, shadowsArray, camera);\r\n\t\t}\r\n\r\n\t\tvar state = {\r\n\t\t\tlightsArray: lightsArray,\r\n\t\t\tshadowsArray: shadowsArray,\r\n\t\t\tlights: lights\r\n\t\t};\r\n\t\treturn {\r\n\t\t\tinit: init,\r\n\t\t\tstate: state,\r\n\t\t\tsetupLights: setupLights,\r\n\t\t\tpushLight: pushLight,\r\n\t\t\tpushShadow: pushShadow\r\n\t\t};\r\n\t}\r\n\r\n\tfunction WebGLRenderStates(extensions, capabilities) {\r\n\t\tvar renderStates = new WeakMap();\r\n\r\n\t\tfunction get(scene, camera) {\r\n\t\t\tvar renderState;\r\n\r\n\t\t\tif (renderStates.has(scene) === false) {\r\n\t\t\t\trenderState = new WebGLRenderState(extensions, capabilities);\r\n\t\t\t\trenderStates.set(scene, new WeakMap());\r\n\t\t\t\trenderStates.get(scene).set(camera, renderState);\r\n\t\t\t} else {\r\n\t\t\t\tif (renderStates.get(scene).has(camera) === false) {\r\n\t\t\t\t\trenderState = new WebGLRenderState(extensions, capabilities);\r\n\t\t\t\t\trenderStates.get(scene).set(camera, renderState);\r\n\t\t\t\t} else {\r\n\t\t\t\t\trenderState = renderStates.get(scene).get(camera);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn renderState;\r\n\t\t}\r\n\r\n\t\tfunction dispose() {\r\n\t\t\trenderStates = new WeakMap();\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tget: get,\r\n\t\t\tdispose: dispose\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * parameters = {\r\n\t *\r\n\t *\topacity: ,\r\n\t *\r\n\t *\tmap: new THREE.Texture( ),\r\n\t *\r\n\t *\talphaMap: new THREE.Texture( ),\r\n\t *\r\n\t *\tdisplacementMap: new THREE.Texture( ),\r\n\t *\tdisplacementScale: ,\r\n\t *\tdisplacementBias: ,\r\n\t *\r\n\t *\twireframe: ,\r\n\t *\twireframeLinewidth: \r\n\t * }\r\n\t */\r\n\r\n\tfunction MeshDepthMaterial(parameters) {\r\n\t\tMaterial.call(this);\r\n\t\tthis.type = 'MeshDepthMaterial';\r\n\t\tthis.depthPacking = BasicDepthPacking;\r\n\t\tthis.skinning = false;\r\n\t\tthis.morphTargets = false;\r\n\t\tthis.map = null;\r\n\t\tthis.alphaMap = null;\r\n\t\tthis.displacementMap = null;\r\n\t\tthis.displacementScale = 1;\r\n\t\tthis.displacementBias = 0;\r\n\t\tthis.wireframe = false;\r\n\t\tthis.wireframeLinewidth = 1;\r\n\t\tthis.fog = false;\r\n\t\tthis.setValues(parameters);\r\n\t}\r\n\r\n\tMeshDepthMaterial.prototype = Object.create(Material.prototype);\r\n\tMeshDepthMaterial.prototype.constructor = MeshDepthMaterial;\r\n\tMeshDepthMaterial.prototype.isMeshDepthMaterial = true;\r\n\r\n\tMeshDepthMaterial.prototype.copy = function (source) {\r\n\t\tMaterial.prototype.copy.call(this, source);\r\n\t\tthis.depthPacking = source.depthPacking;\r\n\t\tthis.skinning = source.skinning;\r\n\t\tthis.morphTargets = source.morphTargets;\r\n\t\tthis.map = source.map;\r\n\t\tthis.alphaMap = source.alphaMap;\r\n\t\tthis.displacementMap = source.displacementMap;\r\n\t\tthis.displacementScale = source.displacementScale;\r\n\t\tthis.displacementBias = source.displacementBias;\r\n\t\tthis.wireframe = source.wireframe;\r\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\r\n\t\treturn this;\r\n\t};\r\n\r\n\t/**\r\n\t * parameters = {\r\n\t *\r\n\t *\treferencePosition: ,\r\n\t *\tnearDistance: ,\r\n\t *\tfarDistance: ,\r\n\t *\r\n\t *\tskinning: ,\r\n\t *\tmorphTargets: ,\r\n\t *\r\n\t *\tmap: new THREE.Texture( ),\r\n\t *\r\n\t *\talphaMap: new THREE.Texture( ),\r\n\t *\r\n\t *\tdisplacementMap: new THREE.Texture( ),\r\n\t *\tdisplacementScale: ,\r\n\t *\tdisplacementBias: \r\n\t *\r\n\t * }\r\n\t */\r\n\r\n\tfunction MeshDistanceMaterial(parameters) {\r\n\t\tMaterial.call(this);\r\n\t\tthis.type = 'MeshDistanceMaterial';\r\n\t\tthis.referencePosition = new Vector3();\r\n\t\tthis.nearDistance = 1;\r\n\t\tthis.farDistance = 1000;\r\n\t\tthis.skinning = false;\r\n\t\tthis.morphTargets = false;\r\n\t\tthis.map = null;\r\n\t\tthis.alphaMap = null;\r\n\t\tthis.displacementMap = null;\r\n\t\tthis.displacementScale = 1;\r\n\t\tthis.displacementBias = 0;\r\n\t\tthis.fog = false;\r\n\t\tthis.setValues(parameters);\r\n\t}\r\n\r\n\tMeshDistanceMaterial.prototype = Object.create(Material.prototype);\r\n\tMeshDistanceMaterial.prototype.constructor = MeshDistanceMaterial;\r\n\tMeshDistanceMaterial.prototype.isMeshDistanceMaterial = true;\r\n\r\n\tMeshDistanceMaterial.prototype.copy = function (source) {\r\n\t\tMaterial.prototype.copy.call(this, source);\r\n\t\tthis.referencePosition.copy(source.referencePosition);\r\n\t\tthis.nearDistance = source.nearDistance;\r\n\t\tthis.farDistance = source.farDistance;\r\n\t\tthis.skinning = source.skinning;\r\n\t\tthis.morphTargets = source.morphTargets;\r\n\t\tthis.map = source.map;\r\n\t\tthis.alphaMap = source.alphaMap;\r\n\t\tthis.displacementMap = source.displacementMap;\r\n\t\tthis.displacementScale = source.displacementScale;\r\n\t\tthis.displacementBias = source.displacementBias;\r\n\t\treturn this;\r\n\t};\r\n\r\n\tvar vsm_frag = \"uniform sampler2D shadow_pass;\\nuniform vec2 resolution;\\nuniform float radius;\\n#include \\nvoid main() {\\n\\tfloat mean = 0.0;\\n\\tfloat squared_mean = 0.0;\\n\\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy ) / resolution ) );\\n\\tfor ( float i = -1.0; i < 1.0 ; i += SAMPLE_RATE) {\\n\\t\\t#ifdef HORIZONAL_PASS\\n\\t\\t\\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( i, 0.0 ) * radius ) / resolution ) );\\n\\t\\t\\tmean += distribution.x;\\n\\t\\t\\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\\n\\t\\t#else\\n\\t\\t\\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, i ) * radius ) / resolution ) );\\n\\t\\t\\tmean += depth;\\n\\t\\t\\tsquared_mean += depth * depth;\\n\\t\\t#endif\\n\\t}\\n\\tmean = mean * HALF_SAMPLE_RATE;\\n\\tsquared_mean = squared_mean * HALF_SAMPLE_RATE;\\n\\tfloat std_dev = sqrt( squared_mean - mean * mean );\\n\\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\\n}\";\r\n\r\n\tvar vsm_vert = \"void main() {\\n\\tgl_Position = vec4( position, 1.0 );\\n}\";\r\n\r\n\tfunction WebGLShadowMap(_renderer, _objects, maxTextureSize) {\r\n\t\tvar _frustum = new Frustum();\r\n\r\n\t\tvar _shadowMapSize = new Vector2(),\r\n\t\t\t\t_viewportSize = new Vector2(),\r\n\t\t\t\t_viewport = new Vector4(),\r\n\t\t\t\t_depthMaterials = [],\r\n\t\t\t\t_distanceMaterials = [],\r\n\t\t\t\t_materialCache = {};\r\n\r\n\t\tvar shadowSide = {\r\n\t\t\t0: BackSide,\r\n\t\t\t1: FrontSide,\r\n\t\t\t2: DoubleSide\r\n\t\t};\r\n\t\tvar shadowMaterialVertical = new ShaderMaterial({\r\n\t\t\tdefines: {\r\n\t\t\t\tSAMPLE_RATE: 2.0 / 8.0,\r\n\t\t\t\tHALF_SAMPLE_RATE: 1.0 / 8.0\r\n\t\t\t},\r\n\t\t\tuniforms: {\r\n\t\t\t\tshadow_pass: {\r\n\t\t\t\t\tvalue: null\r\n\t\t\t\t},\r\n\t\t\t\tresolution: {\r\n\t\t\t\t\tvalue: new Vector2()\r\n\t\t\t\t},\r\n\t\t\t\tradius: {\r\n\t\t\t\t\tvalue: 4.0\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tvertexShader: vsm_vert,\r\n\t\t\tfragmentShader: vsm_frag\r\n\t\t});\r\n\t\tvar shadowMaterialHorizonal = shadowMaterialVertical.clone();\r\n\t\tshadowMaterialHorizonal.defines.HORIZONAL_PASS = 1;\r\n\t\tvar fullScreenTri = new BufferGeometry();\r\n\t\tfullScreenTri.setAttribute(\"position\", new BufferAttribute(new Float32Array([-1, -1, 0.5, 3, -1, 0.5, -1, 3, 0.5]), 3));\r\n\t\tvar fullScreenMesh = new Mesh(fullScreenTri, shadowMaterialVertical);\r\n\t\tvar scope = this;\r\n\t\tthis.enabled = false;\r\n\t\tthis.autoUpdate = true;\r\n\t\tthis.needsUpdate = false;\r\n\t\tthis.type = PCFShadowMap;\r\n\r\n\t\tthis.render = function (lights, scene, camera) {\r\n\t\t\tif (scope.enabled === false) return;\r\n\t\t\tif (scope.autoUpdate === false && scope.needsUpdate === false) return;\r\n\t\t\tif (lights.length === 0) return;\r\n\r\n\t\t\tvar currentRenderTarget = _renderer.getRenderTarget();\r\n\r\n\t\t\tvar activeCubeFace = _renderer.getActiveCubeFace();\r\n\r\n\t\t\tvar activeMipmapLevel = _renderer.getActiveMipmapLevel();\r\n\r\n\t\t\tvar _state = _renderer.state; // Set GL state for depth map.\r\n\r\n\t\t\t_state.setBlending(NoBlending);\r\n\r\n\t\t\t_state.buffers.color.setClear(1, 1, 1, 1);\r\n\r\n\t\t\t_state.buffers.depth.setTest(true);\r\n\r\n\t\t\t_state.setScissorTest(false); // render depth map\r\n\r\n\r\n\t\t\tfor (var i = 0, il = lights.length; i < il; i++) {\r\n\t\t\t\tvar light = lights[i];\r\n\t\t\t\tvar shadow = light.shadow;\r\n\r\n\t\t\t\tif (shadow === undefined) {\r\n\t\t\t\t\tconsole.warn('THREE.WebGLShadowMap:', light, 'has no shadow.');\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (shadow.autoUpdate === false && shadow.needsUpdate === false) continue;\r\n\r\n\t\t\t\t_shadowMapSize.copy(shadow.mapSize);\r\n\r\n\t\t\t\tvar shadowFrameExtents = shadow.getFrameExtents();\r\n\r\n\t\t\t\t_shadowMapSize.multiply(shadowFrameExtents);\r\n\r\n\t\t\t\t_viewportSize.copy(shadow.mapSize);\r\n\r\n\t\t\t\tif (_shadowMapSize.x > maxTextureSize || _shadowMapSize.y > maxTextureSize) {\r\n\t\t\t\t\tif (_shadowMapSize.x > maxTextureSize) {\r\n\t\t\t\t\t\t_viewportSize.x = Math.floor(maxTextureSize / shadowFrameExtents.x);\r\n\t\t\t\t\t\t_shadowMapSize.x = _viewportSize.x * shadowFrameExtents.x;\r\n\t\t\t\t\t\tshadow.mapSize.x = _viewportSize.x;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (_shadowMapSize.y > maxTextureSize) {\r\n\t\t\t\t\t\t_viewportSize.y = Math.floor(maxTextureSize / shadowFrameExtents.y);\r\n\t\t\t\t\t\t_shadowMapSize.y = _viewportSize.y * shadowFrameExtents.y;\r\n\t\t\t\t\t\tshadow.mapSize.y = _viewportSize.y;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (shadow.map === null && !shadow.isPointLightShadow && this.type === VSMShadowMap) {\r\n\t\t\t\t\tvar pars = {\r\n\t\t\t\t\t\tminFilter: LinearFilter,\r\n\t\t\t\t\t\tmagFilter: LinearFilter,\r\n\t\t\t\t\t\tformat: RGBAFormat\r\n\t\t\t\t\t};\r\n\t\t\t\t\tshadow.map = new WebGLRenderTarget(_shadowMapSize.x, _shadowMapSize.y, pars);\r\n\t\t\t\t\tshadow.map.texture.name = light.name + \".shadowMap\";\r\n\t\t\t\t\tshadow.mapPass = new WebGLRenderTarget(_shadowMapSize.x, _shadowMapSize.y, pars);\r\n\t\t\t\t\tshadow.camera.updateProjectionMatrix();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (shadow.map === null) {\r\n\t\t\t\t\tvar _pars = {\r\n\t\t\t\t\t\tminFilter: NearestFilter,\r\n\t\t\t\t\t\tmagFilter: NearestFilter,\r\n\t\t\t\t\t\tformat: RGBAFormat\r\n\t\t\t\t\t};\r\n\t\t\t\t\tshadow.map = new WebGLRenderTarget(_shadowMapSize.x, _shadowMapSize.y, _pars);\r\n\t\t\t\t\tshadow.map.texture.name = light.name + \".shadowMap\";\r\n\t\t\t\t\tshadow.camera.updateProjectionMatrix();\r\n\t\t\t\t}\r\n\r\n\t\t\t\t_renderer.setRenderTarget(shadow.map);\r\n\r\n\t\t\t\t_renderer.clear();\r\n\r\n\t\t\t\tvar viewportCount = shadow.getViewportCount();\r\n\r\n\t\t\t\tfor (var vp = 0; vp < viewportCount; vp++) {\r\n\t\t\t\t\tvar viewport = shadow.getViewport(vp);\r\n\r\n\t\t\t\t\t_viewport.set(_viewportSize.x * viewport.x, _viewportSize.y * viewport.y, _viewportSize.x * viewport.z, _viewportSize.y * viewport.w);\r\n\r\n\t\t\t\t\t_state.viewport(_viewport);\r\n\r\n\t\t\t\t\tshadow.updateMatrices(light, vp);\r\n\t\t\t\t\t_frustum = shadow.getFrustum();\r\n\t\t\t\t\trenderObject(scene, camera, shadow.camera, light, this.type);\r\n\t\t\t\t} // do blur pass for VSM\r\n\r\n\r\n\t\t\t\tif (!shadow.isPointLightShadow && this.type === VSMShadowMap) {\r\n\t\t\t\t\tVSMPass(shadow, camera);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tshadow.needsUpdate = false;\r\n\t\t\t}\r\n\r\n\t\t\tscope.needsUpdate = false;\r\n\r\n\t\t\t_renderer.setRenderTarget(currentRenderTarget, activeCubeFace, activeMipmapLevel);\r\n\t\t};\r\n\r\n\t\tfunction VSMPass(shadow, camera) {\r\n\t\t\tvar geometry = _objects.update(fullScreenMesh); // vertical pass\r\n\r\n\r\n\t\t\tshadowMaterialVertical.uniforms.shadow_pass.value = shadow.map.texture;\r\n\t\t\tshadowMaterialVertical.uniforms.resolution.value = shadow.mapSize;\r\n\t\t\tshadowMaterialVertical.uniforms.radius.value = shadow.radius;\r\n\r\n\t\t\t_renderer.setRenderTarget(shadow.mapPass);\r\n\r\n\t\t\t_renderer.clear();\r\n\r\n\t\t\t_renderer.renderBufferDirect(camera, null, geometry, shadowMaterialVertical, fullScreenMesh, null); // horizonal pass\r\n\r\n\r\n\t\t\tshadowMaterialHorizonal.uniforms.shadow_pass.value = shadow.mapPass.texture;\r\n\t\t\tshadowMaterialHorizonal.uniforms.resolution.value = shadow.mapSize;\r\n\t\t\tshadowMaterialHorizonal.uniforms.radius.value = shadow.radius;\r\n\r\n\t\t\t_renderer.setRenderTarget(shadow.map);\r\n\r\n\t\t\t_renderer.clear();\r\n\r\n\t\t\t_renderer.renderBufferDirect(camera, null, geometry, shadowMaterialHorizonal, fullScreenMesh, null);\r\n\t\t}\r\n\r\n\t\tfunction getDepthMaterialVariant(useMorphing, useSkinning, useInstancing) {\r\n\t\t\tvar index = useMorphing << 0 | useSkinning << 1 | useInstancing << 2;\r\n\t\t\tvar material = _depthMaterials[index];\r\n\r\n\t\t\tif (material === undefined) {\r\n\t\t\t\tmaterial = new MeshDepthMaterial({\r\n\t\t\t\t\tdepthPacking: RGBADepthPacking,\r\n\t\t\t\t\tmorphTargets: useMorphing,\r\n\t\t\t\t\tskinning: useSkinning\r\n\t\t\t\t});\r\n\t\t\t\t_depthMaterials[index] = material;\r\n\t\t\t}\r\n\r\n\t\t\treturn material;\r\n\t\t}\r\n\r\n\t\tfunction getDistanceMaterialVariant(useMorphing, useSkinning, useInstancing) {\r\n\t\t\tvar index = useMorphing << 0 | useSkinning << 1 | useInstancing << 2;\r\n\t\t\tvar material = _distanceMaterials[index];\r\n\r\n\t\t\tif (material === undefined) {\r\n\t\t\t\tmaterial = new MeshDistanceMaterial({\r\n\t\t\t\t\tmorphTargets: useMorphing,\r\n\t\t\t\t\tskinning: useSkinning\r\n\t\t\t\t});\r\n\t\t\t\t_distanceMaterials[index] = material;\r\n\t\t\t}\r\n\r\n\t\t\treturn material;\r\n\t\t}\r\n\r\n\t\tfunction getDepthMaterial(object, geometry, material, light, shadowCameraNear, shadowCameraFar, type) {\r\n\t\t\tvar result = null;\r\n\t\t\tvar getMaterialVariant = getDepthMaterialVariant;\r\n\t\t\tvar customMaterial = object.customDepthMaterial;\r\n\r\n\t\t\tif (light.isPointLight === true) {\r\n\t\t\t\tgetMaterialVariant = getDistanceMaterialVariant;\r\n\t\t\t\tcustomMaterial = object.customDistanceMaterial;\r\n\t\t\t}\r\n\r\n\t\t\tif (customMaterial === undefined) {\r\n\t\t\t\tvar useMorphing = false;\r\n\r\n\t\t\t\tif (material.morphTargets === true) {\r\n\t\t\t\t\tuseMorphing = geometry.morphAttributes && geometry.morphAttributes.position && geometry.morphAttributes.position.length > 0;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar useSkinning = false;\r\n\r\n\t\t\t\tif (object.isSkinnedMesh === true) {\r\n\t\t\t\t\tif (material.skinning === true) {\r\n\t\t\t\t\t\tuseSkinning = true;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconsole.warn('THREE.WebGLShadowMap: THREE.SkinnedMesh with material.skinning set to false:', object);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar useInstancing = object.isInstancedMesh === true;\r\n\t\t\t\tresult = getMaterialVariant(useMorphing, useSkinning, useInstancing);\r\n\t\t\t} else {\r\n\t\t\t\tresult = customMaterial;\r\n\t\t\t}\r\n\r\n\t\t\tif (_renderer.localClippingEnabled && material.clipShadows === true && material.clippingPlanes.length !== 0) {\r\n\t\t\t\t// in this case we need a unique material instance reflecting the\r\n\t\t\t\t// appropriate state\r\n\t\t\t\tvar keyA = result.uuid,\r\n\t\t\t\t\t\tkeyB = material.uuid;\r\n\t\t\t\tvar materialsForVariant = _materialCache[keyA];\r\n\r\n\t\t\t\tif (materialsForVariant === undefined) {\r\n\t\t\t\t\tmaterialsForVariant = {};\r\n\t\t\t\t\t_materialCache[keyA] = materialsForVariant;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar cachedMaterial = materialsForVariant[keyB];\r\n\r\n\t\t\t\tif (cachedMaterial === undefined) {\r\n\t\t\t\t\tcachedMaterial = result.clone();\r\n\t\t\t\t\tmaterialsForVariant[keyB] = cachedMaterial;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tresult = cachedMaterial;\r\n\t\t\t}\r\n\r\n\t\t\tresult.visible = material.visible;\r\n\t\t\tresult.wireframe = material.wireframe;\r\n\r\n\t\t\tif (type === VSMShadowMap) {\r\n\t\t\t\tresult.side = material.shadowSide !== null ? material.shadowSide : material.side;\r\n\t\t\t} else {\r\n\t\t\t\tresult.side = material.shadowSide !== null ? material.shadowSide : shadowSide[material.side];\r\n\t\t\t}\r\n\r\n\t\t\tresult.clipShadows = material.clipShadows;\r\n\t\t\tresult.clippingPlanes = material.clippingPlanes;\r\n\t\t\tresult.clipIntersection = material.clipIntersection;\r\n\t\t\tresult.wireframeLinewidth = material.wireframeLinewidth;\r\n\t\t\tresult.linewidth = material.linewidth;\r\n\r\n\t\t\tif (light.isPointLight === true && result.isMeshDistanceMaterial === true) {\r\n\t\t\t\tresult.referencePosition.setFromMatrixPosition(light.matrixWorld);\r\n\t\t\t\tresult.nearDistance = shadowCameraNear;\r\n\t\t\t\tresult.farDistance = shadowCameraFar;\r\n\t\t\t}\r\n\r\n\t\t\treturn result;\r\n\t\t}\r\n\r\n\t\tfunction renderObject(object, camera, shadowCamera, light, type) {\r\n\t\t\tif (object.visible === false) return;\r\n\t\t\tvar visible = object.layers.test(camera.layers);\r\n\r\n\t\t\tif (visible && (object.isMesh || object.isLine || object.isPoints)) {\r\n\t\t\t\tif ((object.castShadow || object.receiveShadow && type === VSMShadowMap) && (!object.frustumCulled || _frustum.intersectsObject(object))) {\r\n\t\t\t\t\tobject.modelViewMatrix.multiplyMatrices(shadowCamera.matrixWorldInverse, object.matrixWorld);\r\n\r\n\t\t\t\t\tvar geometry = _objects.update(object);\r\n\r\n\t\t\t\t\tvar material = object.material;\r\n\r\n\t\t\t\t\tif (Array.isArray(material)) {\r\n\t\t\t\t\t\tvar groups = geometry.groups;\r\n\r\n\t\t\t\t\t\tfor (var k = 0, kl = groups.length; k < kl; k++) {\r\n\t\t\t\t\t\t\tvar group = groups[k];\r\n\t\t\t\t\t\t\tvar groupMaterial = material[group.materialIndex];\r\n\r\n\t\t\t\t\t\t\tif (groupMaterial && groupMaterial.visible) {\r\n\t\t\t\t\t\t\t\tvar depthMaterial = getDepthMaterial(object, geometry, groupMaterial, light, shadowCamera.near, shadowCamera.far, type);\r\n\r\n\t\t\t\t\t\t\t\t_renderer.renderBufferDirect(shadowCamera, null, geometry, depthMaterial, object, group);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (material.visible) {\r\n\t\t\t\t\t\tvar _depthMaterial = getDepthMaterial(object, geometry, material, light, shadowCamera.near, shadowCamera.far, type);\r\n\r\n\t\t\t\t\t\t_renderer.renderBufferDirect(shadowCamera, null, geometry, _depthMaterial, object, null);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar children = object.children;\r\n\r\n\t\t\tfor (var i = 0, l = children.length; i < l; i++) {\r\n\t\t\t\trenderObject(children[i], camera, shadowCamera, light, type);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfunction WebGLState(gl, extensions, capabilities) {\r\n\t\tvar _equationToGL, _factorToGL;\r\n\r\n\t\tvar isWebGL2 = capabilities.isWebGL2;\r\n\r\n\t\tfunction ColorBuffer() {\r\n\t\t\tvar locked = false;\r\n\t\t\tvar color = new Vector4();\r\n\t\t\tvar currentColorMask = null;\r\n\t\t\tvar currentColorClear = new Vector4(0, 0, 0, 0);\r\n\t\t\treturn {\r\n\t\t\t\tsetMask: function setMask(colorMask) {\r\n\t\t\t\t\tif (currentColorMask !== colorMask && !locked) {\r\n\t\t\t\t\t\tgl.colorMask(colorMask, colorMask, colorMask, colorMask);\r\n\t\t\t\t\t\tcurrentColorMask = colorMask;\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tsetLocked: function setLocked(lock) {\r\n\t\t\t\t\tlocked = lock;\r\n\t\t\t\t},\r\n\t\t\t\tsetClear: function setClear(r, g, b, a, premultipliedAlpha) {\r\n\t\t\t\t\tif (premultipliedAlpha === true) {\r\n\t\t\t\t\t\tr *= a;\r\n\t\t\t\t\t\tg *= a;\r\n\t\t\t\t\t\tb *= a;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tcolor.set(r, g, b, a);\r\n\r\n\t\t\t\t\tif (currentColorClear.equals(color) === false) {\r\n\t\t\t\t\t\tgl.clearColor(r, g, b, a);\r\n\t\t\t\t\t\tcurrentColorClear.copy(color);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\treset: function reset() {\r\n\t\t\t\t\tlocked = false;\r\n\t\t\t\t\tcurrentColorMask = null;\r\n\t\t\t\t\tcurrentColorClear.set(-1, 0, 0, 0); // set to invalid state\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tfunction DepthBuffer() {\r\n\t\t\tvar locked = false;\r\n\t\t\tvar currentDepthMask = null;\r\n\t\t\tvar currentDepthFunc = null;\r\n\t\t\tvar currentDepthClear = null;\r\n\t\t\treturn {\r\n\t\t\t\tsetTest: function setTest(depthTest) {\r\n\t\t\t\t\tif (depthTest) {\r\n\t\t\t\t\t\tenable(2929);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdisable(2929);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tsetMask: function setMask(depthMask) {\r\n\t\t\t\t\tif (currentDepthMask !== depthMask && !locked) {\r\n\t\t\t\t\t\tgl.depthMask(depthMask);\r\n\t\t\t\t\t\tcurrentDepthMask = depthMask;\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tsetFunc: function setFunc(depthFunc) {\r\n\t\t\t\t\tif (currentDepthFunc !== depthFunc) {\r\n\t\t\t\t\t\tif (depthFunc) {\r\n\t\t\t\t\t\t\tswitch (depthFunc) {\r\n\t\t\t\t\t\t\t\tcase NeverDepth:\r\n\t\t\t\t\t\t\t\t\tgl.depthFunc(512);\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\tcase AlwaysDepth:\r\n\t\t\t\t\t\t\t\t\tgl.depthFunc(519);\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\tcase LessDepth:\r\n\t\t\t\t\t\t\t\t\tgl.depthFunc(513);\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\tcase LessEqualDepth:\r\n\t\t\t\t\t\t\t\t\tgl.depthFunc(515);\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\tcase EqualDepth:\r\n\t\t\t\t\t\t\t\t\tgl.depthFunc(514);\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\tcase GreaterEqualDepth:\r\n\t\t\t\t\t\t\t\t\tgl.depthFunc(518);\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\tcase GreaterDepth:\r\n\t\t\t\t\t\t\t\t\tgl.depthFunc(516);\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\tcase NotEqualDepth:\r\n\t\t\t\t\t\t\t\t\tgl.depthFunc(517);\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\t\tgl.depthFunc(515);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tgl.depthFunc(515);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tcurrentDepthFunc = depthFunc;\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tsetLocked: function setLocked(lock) {\r\n\t\t\t\t\tlocked = lock;\r\n\t\t\t\t},\r\n\t\t\t\tsetClear: function setClear(depth) {\r\n\t\t\t\t\tif (currentDepthClear !== depth) {\r\n\t\t\t\t\t\tgl.clearDepth(depth);\r\n\t\t\t\t\t\tcurrentDepthClear = depth;\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\treset: function reset() {\r\n\t\t\t\t\tlocked = false;\r\n\t\t\t\t\tcurrentDepthMask = null;\r\n\t\t\t\t\tcurrentDepthFunc = null;\r\n\t\t\t\t\tcurrentDepthClear = null;\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tfunction StencilBuffer() {\r\n\t\t\tvar locked = false;\r\n\t\t\tvar currentStencilMask = null;\r\n\t\t\tvar currentStencilFunc = null;\r\n\t\t\tvar currentStencilRef = null;\r\n\t\t\tvar currentStencilFuncMask = null;\r\n\t\t\tvar currentStencilFail = null;\r\n\t\t\tvar currentStencilZFail = null;\r\n\t\t\tvar currentStencilZPass = null;\r\n\t\t\tvar currentStencilClear = null;\r\n\t\t\treturn {\r\n\t\t\t\tsetTest: function setTest(stencilTest) {\r\n\t\t\t\t\tif (!locked) {\r\n\t\t\t\t\t\tif (stencilTest) {\r\n\t\t\t\t\t\t\tenable(2960);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tdisable(2960);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tsetMask: function setMask(stencilMask) {\r\n\t\t\t\t\tif (currentStencilMask !== stencilMask && !locked) {\r\n\t\t\t\t\t\tgl.stencilMask(stencilMask);\r\n\t\t\t\t\t\tcurrentStencilMask = stencilMask;\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tsetFunc: function setFunc(stencilFunc, stencilRef, stencilMask) {\r\n\t\t\t\t\tif (currentStencilFunc !== stencilFunc || currentStencilRef !== stencilRef || currentStencilFuncMask !== stencilMask) {\r\n\t\t\t\t\t\tgl.stencilFunc(stencilFunc, stencilRef, stencilMask);\r\n\t\t\t\t\t\tcurrentStencilFunc = stencilFunc;\r\n\t\t\t\t\t\tcurrentStencilRef = stencilRef;\r\n\t\t\t\t\t\tcurrentStencilFuncMask = stencilMask;\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tsetOp: function setOp(stencilFail, stencilZFail, stencilZPass) {\r\n\t\t\t\t\tif (currentStencilFail !== stencilFail || currentStencilZFail !== stencilZFail || currentStencilZPass !== stencilZPass) {\r\n\t\t\t\t\t\tgl.stencilOp(stencilFail, stencilZFail, stencilZPass);\r\n\t\t\t\t\t\tcurrentStencilFail = stencilFail;\r\n\t\t\t\t\t\tcurrentStencilZFail = stencilZFail;\r\n\t\t\t\t\t\tcurrentStencilZPass = stencilZPass;\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tsetLocked: function setLocked(lock) {\r\n\t\t\t\t\tlocked = lock;\r\n\t\t\t\t},\r\n\t\t\t\tsetClear: function setClear(stencil) {\r\n\t\t\t\t\tif (currentStencilClear !== stencil) {\r\n\t\t\t\t\t\tgl.clearStencil(stencil);\r\n\t\t\t\t\t\tcurrentStencilClear = stencil;\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\treset: function reset() {\r\n\t\t\t\t\tlocked = false;\r\n\t\t\t\t\tcurrentStencilMask = null;\r\n\t\t\t\t\tcurrentStencilFunc = null;\r\n\t\t\t\t\tcurrentStencilRef = null;\r\n\t\t\t\t\tcurrentStencilFuncMask = null;\r\n\t\t\t\t\tcurrentStencilFail = null;\r\n\t\t\t\t\tcurrentStencilZFail = null;\r\n\t\t\t\t\tcurrentStencilZPass = null;\r\n\t\t\t\t\tcurrentStencilClear = null;\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t} //\r\n\r\n\r\n\t\tvar colorBuffer = new ColorBuffer();\r\n\t\tvar depthBuffer = new DepthBuffer();\r\n\t\tvar stencilBuffer = new StencilBuffer();\r\n\t\tvar enabledCapabilities = {};\r\n\t\tvar currentProgram = null;\r\n\t\tvar currentBlendingEnabled = null;\r\n\t\tvar currentBlending = null;\r\n\t\tvar currentBlendEquation = null;\r\n\t\tvar currentBlendSrc = null;\r\n\t\tvar currentBlendDst = null;\r\n\t\tvar currentBlendEquationAlpha = null;\r\n\t\tvar currentBlendSrcAlpha = null;\r\n\t\tvar currentBlendDstAlpha = null;\r\n\t\tvar currentPremultipledAlpha = false;\r\n\t\tvar currentFlipSided = null;\r\n\t\tvar currentCullFace = null;\r\n\t\tvar currentLineWidth = null;\r\n\t\tvar currentPolygonOffsetFactor = null;\r\n\t\tvar currentPolygonOffsetUnits = null;\r\n\t\tvar maxTextures = gl.getParameter(35661);\r\n\t\tvar lineWidthAvailable = false;\r\n\t\tvar version = 0;\r\n\t\tvar glVersion = gl.getParameter(7938);\r\n\r\n\t\tif (glVersion.indexOf('WebGL') !== -1) {\r\n\t\t\tversion = parseFloat(/^WebGL\\ ([0-9])/.exec(glVersion)[1]);\r\n\t\t\tlineWidthAvailable = version >= 1.0;\r\n\t\t} else if (glVersion.indexOf('OpenGL ES') !== -1) {\r\n\t\t\tversion = parseFloat(/^OpenGL\\ ES\\ ([0-9])/.exec(glVersion)[1]);\r\n\t\t\tlineWidthAvailable = version >= 2.0;\r\n\t\t}\r\n\r\n\t\tvar currentTextureSlot = null;\r\n\t\tvar currentBoundTextures = {};\r\n\t\tvar currentScissor = new Vector4();\r\n\t\tvar currentViewport = new Vector4();\r\n\r\n\t\tfunction createTexture(type, target, count) {\r\n\t\t\tvar data = new Uint8Array(4); // 4 is required to match default unpack alignment of 4.\r\n\r\n\t\t\tvar texture = gl.createTexture();\r\n\t\t\tgl.bindTexture(type, texture);\r\n\t\t\tgl.texParameteri(type, 10241, 9728);\r\n\t\t\tgl.texParameteri(type, 10240, 9728);\r\n\r\n\t\t\tfor (var i = 0; i < count; i++) {\r\n\t\t\t\tgl.texImage2D(target + i, 0, 6408, 1, 1, 0, 6408, 5121, data);\r\n\t\t\t}\r\n\r\n\t\t\treturn texture;\r\n\t\t}\r\n\r\n\t\tvar emptyTextures = {};\r\n\t\temptyTextures[3553] = createTexture(3553, 3553, 1);\r\n\t\temptyTextures[34067] = createTexture(34067, 34069, 6); // init\r\n\r\n\t\tcolorBuffer.setClear(0, 0, 0, 1);\r\n\t\tdepthBuffer.setClear(1);\r\n\t\tstencilBuffer.setClear(0);\r\n\t\tenable(2929);\r\n\t\tdepthBuffer.setFunc(LessEqualDepth);\r\n\t\tsetFlipSided(false);\r\n\t\tsetCullFace(CullFaceBack);\r\n\t\tenable(2884);\r\n\t\tsetBlending(NoBlending); //\r\n\r\n\t\tfunction enable(id) {\r\n\t\t\tif (enabledCapabilities[id] !== true) {\r\n\t\t\t\tgl.enable(id);\r\n\t\t\t\tenabledCapabilities[id] = true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction disable(id) {\r\n\t\t\tif (enabledCapabilities[id] !== false) {\r\n\t\t\t\tgl.disable(id);\r\n\t\t\t\tenabledCapabilities[id] = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction useProgram(program) {\r\n\t\t\tif (currentProgram !== program) {\r\n\t\t\t\tgl.useProgram(program);\r\n\t\t\t\tcurrentProgram = program;\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar equationToGL = (_equationToGL = {}, _equationToGL[AddEquation] = 32774, _equationToGL[SubtractEquation] = 32778, _equationToGL[ReverseSubtractEquation] = 32779, _equationToGL);\r\n\r\n\t\tif (isWebGL2) {\r\n\t\t\tequationToGL[MinEquation] = 32775;\r\n\t\t\tequationToGL[MaxEquation] = 32776;\r\n\t\t} else {\r\n\t\t\tvar extension = extensions.get('EXT_blend_minmax');\r\n\r\n\t\t\tif (extension !== null) {\r\n\t\t\t\tequationToGL[MinEquation] = extension.MIN_EXT;\r\n\t\t\t\tequationToGL[MaxEquation] = extension.MAX_EXT;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar factorToGL = (_factorToGL = {}, _factorToGL[ZeroFactor] = 0, _factorToGL[OneFactor] = 1, _factorToGL[SrcColorFactor] = 768, _factorToGL[SrcAlphaFactor] = 770, _factorToGL[SrcAlphaSaturateFactor] = 776, _factorToGL[DstColorFactor] = 774, _factorToGL[DstAlphaFactor] = 772, _factorToGL[OneMinusSrcColorFactor] = 769, _factorToGL[OneMinusSrcAlphaFactor] = 771, _factorToGL[OneMinusDstColorFactor] = 775, _factorToGL[OneMinusDstAlphaFactor] = 773, _factorToGL);\r\n\r\n\t\tfunction setBlending(blending, blendEquation, blendSrc, blendDst, blendEquationAlpha, blendSrcAlpha, blendDstAlpha, premultipliedAlpha) {\r\n\t\t\tif (blending === NoBlending) {\r\n\t\t\t\tif (currentBlendingEnabled) {\r\n\t\t\t\t\tdisable(3042);\r\n\t\t\t\t\tcurrentBlendingEnabled = false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (!currentBlendingEnabled) {\r\n\t\t\t\tenable(3042);\r\n\t\t\t\tcurrentBlendingEnabled = true;\r\n\t\t\t}\r\n\r\n\t\t\tif (blending !== CustomBlending) {\r\n\t\t\t\tif (blending !== currentBlending || premultipliedAlpha !== currentPremultipledAlpha) {\r\n\t\t\t\t\tif (currentBlendEquation !== AddEquation || currentBlendEquationAlpha !== AddEquation) {\r\n\t\t\t\t\t\tgl.blendEquation(32774);\r\n\t\t\t\t\t\tcurrentBlendEquation = AddEquation;\r\n\t\t\t\t\t\tcurrentBlendEquationAlpha = AddEquation;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (premultipliedAlpha) {\r\n\t\t\t\t\t\tswitch (blending) {\r\n\t\t\t\t\t\t\tcase NormalBlending:\r\n\t\t\t\t\t\t\t\tgl.blendFuncSeparate(1, 771, 1, 771);\r\n\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\tcase AdditiveBlending:\r\n\t\t\t\t\t\t\t\tgl.blendFunc(1, 1);\r\n\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\tcase SubtractiveBlending:\r\n\t\t\t\t\t\t\t\tgl.blendFuncSeparate(0, 0, 769, 771);\r\n\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\tcase MultiplyBlending:\r\n\t\t\t\t\t\t\t\tgl.blendFuncSeparate(0, 768, 0, 770);\r\n\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\tconsole.error('THREE.WebGLState: Invalid blending: ', blending);\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tswitch (blending) {\r\n\t\t\t\t\t\t\tcase NormalBlending:\r\n\t\t\t\t\t\t\t\tgl.blendFuncSeparate(770, 771, 1, 771);\r\n\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\tcase AdditiveBlending:\r\n\t\t\t\t\t\t\t\tgl.blendFunc(770, 1);\r\n\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\tcase SubtractiveBlending:\r\n\t\t\t\t\t\t\t\tgl.blendFunc(0, 769);\r\n\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\tcase MultiplyBlending:\r\n\t\t\t\t\t\t\t\tgl.blendFunc(0, 768);\r\n\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\tconsole.error('THREE.WebGLState: Invalid blending: ', blending);\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tcurrentBlendSrc = null;\r\n\t\t\t\t\tcurrentBlendDst = null;\r\n\t\t\t\t\tcurrentBlendSrcAlpha = null;\r\n\t\t\t\t\tcurrentBlendDstAlpha = null;\r\n\t\t\t\t\tcurrentBlending = blending;\r\n\t\t\t\t\tcurrentPremultipledAlpha = premultipliedAlpha;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn;\r\n\t\t\t} // custom blending\r\n\r\n\r\n\t\t\tblendEquationAlpha = blendEquationAlpha || blendEquation;\r\n\t\t\tblendSrcAlpha = blendSrcAlpha || blendSrc;\r\n\t\t\tblendDstAlpha = blendDstAlpha || blendDst;\r\n\r\n\t\t\tif (blendEquation !== currentBlendEquation || blendEquationAlpha !== currentBlendEquationAlpha) {\r\n\t\t\t\tgl.blendEquationSeparate(equationToGL[blendEquation], equationToGL[blendEquationAlpha]);\r\n\t\t\t\tcurrentBlendEquation = blendEquation;\r\n\t\t\t\tcurrentBlendEquationAlpha = blendEquationAlpha;\r\n\t\t\t}\r\n\r\n\t\t\tif (blendSrc !== currentBlendSrc || blendDst !== currentBlendDst || blendSrcAlpha !== currentBlendSrcAlpha || blendDstAlpha !== currentBlendDstAlpha) {\r\n\t\t\t\tgl.blendFuncSeparate(factorToGL[blendSrc], factorToGL[blendDst], factorToGL[blendSrcAlpha], factorToGL[blendDstAlpha]);\r\n\t\t\t\tcurrentBlendSrc = blendSrc;\r\n\t\t\t\tcurrentBlendDst = blendDst;\r\n\t\t\t\tcurrentBlendSrcAlpha = blendSrcAlpha;\r\n\t\t\t\tcurrentBlendDstAlpha = blendDstAlpha;\r\n\t\t\t}\r\n\r\n\t\t\tcurrentBlending = blending;\r\n\t\t\tcurrentPremultipledAlpha = null;\r\n\t\t}\r\n\r\n\t\tfunction setMaterial(material, frontFaceCW) {\r\n\t\t\tmaterial.side === DoubleSide ? disable(2884) : enable(2884);\r\n\t\t\tvar flipSided = material.side === BackSide;\r\n\t\t\tif (frontFaceCW) flipSided = !flipSided;\r\n\t\t\tsetFlipSided(flipSided);\r\n\t\t\tmaterial.blending === NormalBlending && material.transparent === false ? setBlending(NoBlending) : setBlending(material.blending, material.blendEquation, material.blendSrc, material.blendDst, material.blendEquationAlpha, material.blendSrcAlpha, material.blendDstAlpha, material.premultipliedAlpha);\r\n\t\t\tdepthBuffer.setFunc(material.depthFunc);\r\n\t\t\tdepthBuffer.setTest(material.depthTest);\r\n\t\t\tdepthBuffer.setMask(material.depthWrite);\r\n\t\t\tcolorBuffer.setMask(material.colorWrite);\r\n\t\t\tvar stencilWrite = material.stencilWrite;\r\n\t\t\tstencilBuffer.setTest(stencilWrite);\r\n\r\n\t\t\tif (stencilWrite) {\r\n\t\t\t\tstencilBuffer.setMask(material.stencilWriteMask);\r\n\t\t\t\tstencilBuffer.setFunc(material.stencilFunc, material.stencilRef, material.stencilFuncMask);\r\n\t\t\t\tstencilBuffer.setOp(material.stencilFail, material.stencilZFail, material.stencilZPass);\r\n\t\t\t}\r\n\r\n\t\t\tsetPolygonOffset(material.polygonOffset, material.polygonOffsetFactor, material.polygonOffsetUnits);\r\n\t\t} //\r\n\r\n\r\n\t\tfunction setFlipSided(flipSided) {\r\n\t\t\tif (currentFlipSided !== flipSided) {\r\n\t\t\t\tif (flipSided) {\r\n\t\t\t\t\tgl.frontFace(2304);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tgl.frontFace(2305);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcurrentFlipSided = flipSided;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction setCullFace(cullFace) {\r\n\t\t\tif (cullFace !== CullFaceNone) {\r\n\t\t\t\tenable(2884);\r\n\r\n\t\t\t\tif (cullFace !== currentCullFace) {\r\n\t\t\t\t\tif (cullFace === CullFaceBack) {\r\n\t\t\t\t\t\tgl.cullFace(1029);\r\n\t\t\t\t\t} else if (cullFace === CullFaceFront) {\r\n\t\t\t\t\t\tgl.cullFace(1028);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tgl.cullFace(1032);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tdisable(2884);\r\n\t\t\t}\r\n\r\n\t\t\tcurrentCullFace = cullFace;\r\n\t\t}\r\n\r\n\t\tfunction setLineWidth(width) {\r\n\t\t\tif (width !== currentLineWidth) {\r\n\t\t\t\tif (lineWidthAvailable) gl.lineWidth(width);\r\n\t\t\t\tcurrentLineWidth = width;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction setPolygonOffset(polygonOffset, factor, units) {\r\n\t\t\tif (polygonOffset) {\r\n\t\t\t\tenable(32823);\r\n\r\n\t\t\t\tif (currentPolygonOffsetFactor !== factor || currentPolygonOffsetUnits !== units) {\r\n\t\t\t\t\tgl.polygonOffset(factor, units);\r\n\t\t\t\t\tcurrentPolygonOffsetFactor = factor;\r\n\t\t\t\t\tcurrentPolygonOffsetUnits = units;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tdisable(32823);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction setScissorTest(scissorTest) {\r\n\t\t\tif (scissorTest) {\r\n\t\t\t\tenable(3089);\r\n\t\t\t} else {\r\n\t\t\t\tdisable(3089);\r\n\t\t\t}\r\n\t\t} // texture\r\n\r\n\r\n\t\tfunction activeTexture(webglSlot) {\r\n\t\t\tif (webglSlot === undefined) webglSlot = 33984 + maxTextures - 1;\r\n\r\n\t\t\tif (currentTextureSlot !== webglSlot) {\r\n\t\t\t\tgl.activeTexture(webglSlot);\r\n\t\t\t\tcurrentTextureSlot = webglSlot;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction bindTexture(webglType, webglTexture) {\r\n\t\t\tif (currentTextureSlot === null) {\r\n\t\t\t\tactiveTexture();\r\n\t\t\t}\r\n\r\n\t\t\tvar boundTexture = currentBoundTextures[currentTextureSlot];\r\n\r\n\t\t\tif (boundTexture === undefined) {\r\n\t\t\t\tboundTexture = {\r\n\t\t\t\t\ttype: undefined,\r\n\t\t\t\t\ttexture: undefined\r\n\t\t\t\t};\r\n\t\t\t\tcurrentBoundTextures[currentTextureSlot] = boundTexture;\r\n\t\t\t}\r\n\r\n\t\t\tif (boundTexture.type !== webglType || boundTexture.texture !== webglTexture) {\r\n\t\t\t\tgl.bindTexture(webglType, webglTexture || emptyTextures[webglType]);\r\n\t\t\t\tboundTexture.type = webglType;\r\n\t\t\t\tboundTexture.texture = webglTexture;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction unbindTexture() {\r\n\t\t\tvar boundTexture = currentBoundTextures[currentTextureSlot];\r\n\r\n\t\t\tif (boundTexture !== undefined && boundTexture.type !== undefined) {\r\n\t\t\t\tgl.bindTexture(boundTexture.type, null);\r\n\t\t\t\tboundTexture.type = undefined;\r\n\t\t\t\tboundTexture.texture = undefined;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction compressedTexImage2D() {\r\n\t\t\ttry {\r\n\t\t\t\tgl.compressedTexImage2D.apply(gl, arguments);\r\n\t\t\t} catch (error) {\r\n\t\t\t\tconsole.error('THREE.WebGLState:', error);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction texImage2D() {\r\n\t\t\ttry {\r\n\t\t\t\tgl.texImage2D.apply(gl, arguments);\r\n\t\t\t} catch (error) {\r\n\t\t\t\tconsole.error('THREE.WebGLState:', error);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction texImage3D() {\r\n\t\t\ttry {\r\n\t\t\t\tgl.texImage3D.apply(gl, arguments);\r\n\t\t\t} catch (error) {\r\n\t\t\t\tconsole.error('THREE.WebGLState:', error);\r\n\t\t\t}\r\n\t\t} //\r\n\r\n\r\n\t\tfunction scissor(scissor) {\r\n\t\t\tif (currentScissor.equals(scissor) === false) {\r\n\t\t\t\tgl.scissor(scissor.x, scissor.y, scissor.z, scissor.w);\r\n\t\t\t\tcurrentScissor.copy(scissor);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction viewport(viewport) {\r\n\t\t\tif (currentViewport.equals(viewport) === false) {\r\n\t\t\t\tgl.viewport(viewport.x, viewport.y, viewport.z, viewport.w);\r\n\t\t\t\tcurrentViewport.copy(viewport);\r\n\t\t\t}\r\n\t\t} //\r\n\r\n\r\n\t\tfunction reset() {\r\n\t\t\tenabledCapabilities = {};\r\n\t\t\tcurrentTextureSlot = null;\r\n\t\t\tcurrentBoundTextures = {};\r\n\t\t\tcurrentProgram = null;\r\n\t\t\tcurrentBlendingEnabled = null;\r\n\t\t\tcurrentBlending = null;\r\n\t\t\tcurrentBlendEquation = null;\r\n\t\t\tcurrentBlendSrc = null;\r\n\t\t\tcurrentBlendDst = null;\r\n\t\t\tcurrentBlendEquationAlpha = null;\r\n\t\t\tcurrentBlendSrcAlpha = null;\r\n\t\t\tcurrentBlendDstAlpha = null;\r\n\t\t\tcurrentPremultipledAlpha = false;\r\n\t\t\tcurrentFlipSided = null;\r\n\t\t\tcurrentCullFace = null;\r\n\t\t\tcurrentLineWidth = null;\r\n\t\t\tcurrentPolygonOffsetFactor = null;\r\n\t\t\tcurrentPolygonOffsetUnits = null;\r\n\t\t\tcolorBuffer.reset();\r\n\t\t\tdepthBuffer.reset();\r\n\t\t\tstencilBuffer.reset();\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tbuffers: {\r\n\t\t\t\tcolor: colorBuffer,\r\n\t\t\t\tdepth: depthBuffer,\r\n\t\t\t\tstencil: stencilBuffer\r\n\t\t\t},\r\n\t\t\tenable: enable,\r\n\t\t\tdisable: disable,\r\n\t\t\tuseProgram: useProgram,\r\n\t\t\tsetBlending: setBlending,\r\n\t\t\tsetMaterial: setMaterial,\r\n\t\t\tsetFlipSided: setFlipSided,\r\n\t\t\tsetCullFace: setCullFace,\r\n\t\t\tsetLineWidth: setLineWidth,\r\n\t\t\tsetPolygonOffset: setPolygonOffset,\r\n\t\t\tsetScissorTest: setScissorTest,\r\n\t\t\tactiveTexture: activeTexture,\r\n\t\t\tbindTexture: bindTexture,\r\n\t\t\tunbindTexture: unbindTexture,\r\n\t\t\tcompressedTexImage2D: compressedTexImage2D,\r\n\t\t\ttexImage2D: texImage2D,\r\n\t\t\ttexImage3D: texImage3D,\r\n\t\t\tscissor: scissor,\r\n\t\t\tviewport: viewport,\r\n\t\t\treset: reset\r\n\t\t};\r\n\t}\r\n\r\n\tfunction WebGLTextures(_gl, extensions, state, properties, capabilities, utils, info) {\r\n\t\tvar _wrappingToGL, _filterToGL;\r\n\r\n\t\tvar isWebGL2 = capabilities.isWebGL2;\r\n\t\tvar maxTextures = capabilities.maxTextures;\r\n\t\tvar maxCubemapSize = capabilities.maxCubemapSize;\r\n\t\tvar maxTextureSize = capabilities.maxTextureSize;\r\n\t\tvar maxSamples = capabilities.maxSamples;\r\n\r\n\t\tvar _videoTextures = new WeakMap();\r\n\r\n\t\tvar _canvas; // cordova iOS (as of 5.0) still uses UIWebView, which provides OffscreenCanvas,\r\n\t\t// also OffscreenCanvas.getContext(\"webgl\"), but not OffscreenCanvas.getContext(\"2d\")!\r\n\t\t// Some implementations may only implement OffscreenCanvas partially (e.g. lacking 2d).\r\n\r\n\r\n\t\tvar useOffscreenCanvas = false;\r\n\r\n\t\ttry {\r\n\t\t\tuseOffscreenCanvas = typeof OffscreenCanvas !== 'undefined' && new OffscreenCanvas(1, 1).getContext(\"2d\") !== null;\r\n\t\t} catch (err) {// Ignore any errors\r\n\t\t}\r\n\r\n\t\tfunction createCanvas(width, height) {\r\n\t\t\t// Use OffscreenCanvas when available. Specially needed in web workers\r\n\t\t\treturn useOffscreenCanvas ? new OffscreenCanvas(width, height) : document.createElementNS('http://www.w3.org/1999/xhtml', 'canvas');\r\n\t\t}\r\n\r\n\t\tfunction resizeImage(image, needsPowerOfTwo, needsNewCanvas, maxSize) {\r\n\t\t\tvar scale = 1; // handle case if texture exceeds max size\r\n\r\n\t\t\tif (image.width > maxSize || image.height > maxSize) {\r\n\t\t\t\tscale = maxSize / Math.max(image.width, image.height);\r\n\t\t\t} // only perform resize if necessary\r\n\r\n\r\n\t\t\tif (scale < 1 || needsPowerOfTwo === true) {\r\n\t\t\t\t// only perform resize for certain image types\r\n\t\t\t\tif (typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement || typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement || typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap) {\r\n\t\t\t\t\tvar floor = needsPowerOfTwo ? MathUtils.floorPowerOfTwo : Math.floor;\r\n\t\t\t\t\tvar width = floor(scale * image.width);\r\n\t\t\t\t\tvar height = floor(scale * image.height);\r\n\t\t\t\t\tif (_canvas === undefined) _canvas = createCanvas(width, height); // cube textures can't reuse the same canvas\r\n\r\n\t\t\t\t\tvar canvas = needsNewCanvas ? createCanvas(width, height) : _canvas;\r\n\t\t\t\t\tcanvas.width = width;\r\n\t\t\t\t\tcanvas.height = height;\r\n\t\t\t\t\tvar context = canvas.getContext('2d');\r\n\t\t\t\t\tcontext.drawImage(image, 0, 0, width, height);\r\n\t\t\t\t\tconsole.warn('THREE.WebGLRenderer: Texture has been resized from (' + image.width + 'x' + image.height + ') to (' + width + 'x' + height + ').');\r\n\t\t\t\t\treturn canvas;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif ('data' in image) {\r\n\t\t\t\t\t\tconsole.warn('THREE.WebGLRenderer: Image in DataTexture is too big (' + image.width + 'x' + image.height + ').');\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn image;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn image;\r\n\t\t}\r\n\r\n\t\tfunction isPowerOfTwo(image) {\r\n\t\t\treturn MathUtils.isPowerOfTwo(image.width) && MathUtils.isPowerOfTwo(image.height);\r\n\t\t}\r\n\r\n\t\tfunction textureNeedsPowerOfTwo(texture) {\r\n\t\t\tif (isWebGL2) return false;\r\n\t\t\treturn texture.wrapS !== ClampToEdgeWrapping || texture.wrapT !== ClampToEdgeWrapping || texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter;\r\n\t\t}\r\n\r\n\t\tfunction textureNeedsGenerateMipmaps(texture, supportsMips) {\r\n\t\t\treturn texture.generateMipmaps && supportsMips && texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter;\r\n\t\t}\r\n\r\n\t\tfunction generateMipmap(target, texture, width, height) {\r\n\t\t\t_gl.generateMipmap(target);\r\n\r\n\t\t\tvar textureProperties = properties.get(texture); // Note: Math.log( x ) * Math.LOG2E used instead of Math.log2( x ) which is not supported by IE11\r\n\r\n\t\t\ttextureProperties.__maxMipLevel = Math.log(Math.max(width, height)) * Math.LOG2E;\r\n\t\t}\r\n\r\n\t\tfunction getInternalFormat(internalFormatName, glFormat, glType) {\r\n\t\t\tif (isWebGL2 === false) return glFormat;\r\n\r\n\t\t\tif (internalFormatName !== null) {\r\n\t\t\t\tif (_gl[internalFormatName] !== undefined) return _gl[internalFormatName];\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format \\'' + internalFormatName + '\\'');\r\n\t\t\t}\r\n\r\n\t\t\tvar internalFormat = glFormat;\r\n\r\n\t\t\tif (glFormat === 6403) {\r\n\t\t\t\tif (glType === 5126) internalFormat = 33326;\r\n\t\t\t\tif (glType === 5131) internalFormat = 33325;\r\n\t\t\t\tif (glType === 5121) internalFormat = 33321;\r\n\t\t\t}\r\n\r\n\t\t\tif (glFormat === 6407) {\r\n\t\t\t\tif (glType === 5126) internalFormat = 34837;\r\n\t\t\t\tif (glType === 5131) internalFormat = 34843;\r\n\t\t\t\tif (glType === 5121) internalFormat = 32849;\r\n\t\t\t}\r\n\r\n\t\t\tif (glFormat === 6408) {\r\n\t\t\t\tif (glType === 5126) internalFormat = 34836;\r\n\t\t\t\tif (glType === 5131) internalFormat = 34842;\r\n\t\t\t\tif (glType === 5121) internalFormat = 32856;\r\n\t\t\t}\r\n\r\n\t\t\tif (internalFormat === 33325 || internalFormat === 33326 || internalFormat === 34842 || internalFormat === 34836) {\r\n\t\t\t\textensions.get('EXT_color_buffer_float');\r\n\t\t\t}\r\n\r\n\t\t\treturn internalFormat;\r\n\t\t} // Fallback filters for non-power-of-2 textures\r\n\r\n\r\n\t\tfunction filterFallback(f) {\r\n\t\t\tif (f === NearestFilter || f === NearestMipmapNearestFilter || f === NearestMipmapLinearFilter) {\r\n\t\t\t\treturn 9728;\r\n\t\t\t}\r\n\r\n\t\t\treturn 9729;\r\n\t\t} //\r\n\r\n\r\n\t\tfunction onTextureDispose(event) {\r\n\t\t\tvar texture = event.target;\r\n\t\t\ttexture.removeEventListener('dispose', onTextureDispose);\r\n\t\t\tdeallocateTexture(texture);\r\n\r\n\t\t\tif (texture.isVideoTexture) {\r\n\t\t\t\t_videoTextures.delete(texture);\r\n\t\t\t}\r\n\r\n\t\t\tinfo.memory.textures--;\r\n\t\t}\r\n\r\n\t\tfunction onRenderTargetDispose(event) {\r\n\t\t\tvar renderTarget = event.target;\r\n\t\t\trenderTarget.removeEventListener('dispose', onRenderTargetDispose);\r\n\t\t\tdeallocateRenderTarget(renderTarget);\r\n\t\t\tinfo.memory.textures--;\r\n\t\t} //\r\n\r\n\r\n\t\tfunction deallocateTexture(texture) {\r\n\t\t\tvar textureProperties = properties.get(texture);\r\n\t\t\tif (textureProperties.__webglInit === undefined) return;\r\n\r\n\t\t\t_gl.deleteTexture(textureProperties.__webglTexture);\r\n\r\n\t\t\tproperties.remove(texture);\r\n\t\t}\r\n\r\n\t\tfunction deallocateRenderTarget(renderTarget) {\r\n\t\t\tvar renderTargetProperties = properties.get(renderTarget);\r\n\t\t\tvar textureProperties = properties.get(renderTarget.texture);\r\n\t\t\tif (!renderTarget) return;\r\n\r\n\t\t\tif (textureProperties.__webglTexture !== undefined) {\r\n\t\t\t\t_gl.deleteTexture(textureProperties.__webglTexture);\r\n\t\t\t}\r\n\r\n\t\t\tif (renderTarget.depthTexture) {\r\n\t\t\t\trenderTarget.depthTexture.dispose();\r\n\t\t\t}\r\n\r\n\t\t\tif (renderTarget.isWebGLCubeRenderTarget) {\r\n\t\t\t\tfor (var i = 0; i < 6; i++) {\r\n\t\t\t\t\t_gl.deleteFramebuffer(renderTargetProperties.__webglFramebuffer[i]);\r\n\r\n\t\t\t\t\tif (renderTargetProperties.__webglDepthbuffer) _gl.deleteRenderbuffer(renderTargetProperties.__webglDepthbuffer[i]);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t_gl.deleteFramebuffer(renderTargetProperties.__webglFramebuffer);\r\n\r\n\t\t\t\tif (renderTargetProperties.__webglDepthbuffer) _gl.deleteRenderbuffer(renderTargetProperties.__webglDepthbuffer);\r\n\t\t\t\tif (renderTargetProperties.__webglMultisampledFramebuffer) _gl.deleteFramebuffer(renderTargetProperties.__webglMultisampledFramebuffer);\r\n\t\t\t\tif (renderTargetProperties.__webglColorRenderbuffer) _gl.deleteRenderbuffer(renderTargetProperties.__webglColorRenderbuffer);\r\n\t\t\t\tif (renderTargetProperties.__webglDepthRenderbuffer) _gl.deleteRenderbuffer(renderTargetProperties.__webglDepthRenderbuffer);\r\n\t\t\t}\r\n\r\n\t\t\tproperties.remove(renderTarget.texture);\r\n\t\t\tproperties.remove(renderTarget);\r\n\t\t} //\r\n\r\n\r\n\t\tvar textureUnits = 0;\r\n\r\n\t\tfunction resetTextureUnits() {\r\n\t\t\ttextureUnits = 0;\r\n\t\t}\r\n\r\n\t\tfunction allocateTextureUnit() {\r\n\t\t\tvar textureUnit = textureUnits;\r\n\r\n\t\t\tif (textureUnit >= maxTextures) {\r\n\t\t\t\tconsole.warn('THREE.WebGLTextures: Trying to use ' + textureUnit + ' texture units while this GPU supports only ' + maxTextures);\r\n\t\t\t}\r\n\r\n\t\t\ttextureUnits += 1;\r\n\t\t\treturn textureUnit;\r\n\t\t} //\r\n\r\n\r\n\t\tfunction setTexture2D(texture, slot) {\r\n\t\t\tvar textureProperties = properties.get(texture);\r\n\t\t\tif (texture.isVideoTexture) updateVideoTexture(texture);\r\n\r\n\t\t\tif (texture.version > 0 && textureProperties.__version !== texture.version) {\r\n\t\t\t\tvar image = texture.image;\r\n\r\n\t\t\t\tif (image === undefined) {\r\n\t\t\t\t\tconsole.warn('THREE.WebGLRenderer: Texture marked for update but image is undefined');\r\n\t\t\t\t} else if (image.complete === false) {\r\n\t\t\t\t\tconsole.warn('THREE.WebGLRenderer: Texture marked for update but image is incomplete');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tuploadTexture(textureProperties, texture, slot);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tstate.activeTexture(33984 + slot);\r\n\t\t\tstate.bindTexture(3553, textureProperties.__webglTexture);\r\n\t\t}\r\n\r\n\t\tfunction setTexture2DArray(texture, slot) {\r\n\t\t\tvar textureProperties = properties.get(texture);\r\n\r\n\t\t\tif (texture.version > 0 && textureProperties.__version !== texture.version) {\r\n\t\t\t\tuploadTexture(textureProperties, texture, slot);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tstate.activeTexture(33984 + slot);\r\n\t\t\tstate.bindTexture(35866, textureProperties.__webglTexture);\r\n\t\t}\r\n\r\n\t\tfunction setTexture3D(texture, slot) {\r\n\t\t\tvar textureProperties = properties.get(texture);\r\n\r\n\t\t\tif (texture.version > 0 && textureProperties.__version !== texture.version) {\r\n\t\t\t\tuploadTexture(textureProperties, texture, slot);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tstate.activeTexture(33984 + slot);\r\n\t\t\tstate.bindTexture(32879, textureProperties.__webglTexture);\r\n\t\t}\r\n\r\n\t\tfunction setTextureCube(texture, slot) {\r\n\t\t\tvar textureProperties = properties.get(texture);\r\n\r\n\t\t\tif (texture.version > 0 && textureProperties.__version !== texture.version) {\r\n\t\t\t\tuploadCubeTexture(textureProperties, texture, slot);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tstate.activeTexture(33984 + slot);\r\n\t\t\tstate.bindTexture(34067, textureProperties.__webglTexture);\r\n\t\t}\r\n\r\n\t\tvar wrappingToGL = (_wrappingToGL = {}, _wrappingToGL[RepeatWrapping] = 10497, _wrappingToGL[ClampToEdgeWrapping] = 33071, _wrappingToGL[MirroredRepeatWrapping] = 33648, _wrappingToGL);\r\n\t\tvar filterToGL = (_filterToGL = {}, _filterToGL[NearestFilter] = 9728, _filterToGL[NearestMipmapNearestFilter] = 9984, _filterToGL[NearestMipmapLinearFilter] = 9986, _filterToGL[LinearFilter] = 9729, _filterToGL[LinearMipmapNearestFilter] = 9985, _filterToGL[LinearMipmapLinearFilter] = 9987, _filterToGL);\r\n\r\n\t\tfunction setTextureParameters(textureType, texture, supportsMips) {\r\n\t\t\tif (supportsMips) {\r\n\t\t\t\t_gl.texParameteri(textureType, 10242, wrappingToGL[texture.wrapS]);\r\n\r\n\t\t\t\t_gl.texParameteri(textureType, 10243, wrappingToGL[texture.wrapT]);\r\n\r\n\t\t\t\tif (textureType === 32879 || textureType === 35866) {\r\n\t\t\t\t\t_gl.texParameteri(textureType, 32882, wrappingToGL[texture.wrapR]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t_gl.texParameteri(textureType, 10240, filterToGL[texture.magFilter]);\r\n\r\n\t\t\t\t_gl.texParameteri(textureType, 10241, filterToGL[texture.minFilter]);\r\n\t\t\t} else {\r\n\t\t\t\t_gl.texParameteri(textureType, 10242, 33071);\r\n\r\n\t\t\t\t_gl.texParameteri(textureType, 10243, 33071);\r\n\r\n\t\t\t\tif (textureType === 32879 || textureType === 35866) {\r\n\t\t\t\t\t_gl.texParameteri(textureType, 32882, 33071);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (texture.wrapS !== ClampToEdgeWrapping || texture.wrapT !== ClampToEdgeWrapping) {\r\n\t\t\t\t\tconsole.warn('THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping.');\r\n\t\t\t\t}\r\n\r\n\t\t\t\t_gl.texParameteri(textureType, 10240, filterFallback(texture.magFilter));\r\n\r\n\t\t\t\t_gl.texParameteri(textureType, 10241, filterFallback(texture.minFilter));\r\n\r\n\t\t\t\tif (texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter) {\r\n\t\t\t\t\tconsole.warn('THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar extension = extensions.get('EXT_texture_filter_anisotropic');\r\n\r\n\t\t\tif (extension) {\r\n\t\t\t\tif (texture.type === FloatType && extensions.get('OES_texture_float_linear') === null) return;\r\n\t\t\t\tif (texture.type === HalfFloatType && (isWebGL2 || extensions.get('OES_texture_half_float_linear')) === null) return;\r\n\r\n\t\t\t\tif (texture.anisotropy > 1 || properties.get(texture).__currentAnisotropy) {\r\n\t\t\t\t\t_gl.texParameterf(textureType, extension.TEXTURE_MAX_ANISOTROPY_EXT, Math.min(texture.anisotropy, capabilities.getMaxAnisotropy()));\r\n\r\n\t\t\t\t\tproperties.get(texture).__currentAnisotropy = texture.anisotropy;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction initTexture(textureProperties, texture) {\r\n\t\t\tif (textureProperties.__webglInit === undefined) {\r\n\t\t\t\ttextureProperties.__webglInit = true;\r\n\t\t\t\ttexture.addEventListener('dispose', onTextureDispose);\r\n\t\t\t\ttextureProperties.__webglTexture = _gl.createTexture();\r\n\t\t\t\tinfo.memory.textures++;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction uploadTexture(textureProperties, texture, slot) {\r\n\t\t\tvar textureType = 3553;\r\n\t\t\tif (texture.isDataTexture2DArray) textureType = 35866;\r\n\t\t\tif (texture.isDataTexture3D) textureType = 32879;\r\n\t\t\tinitTexture(textureProperties, texture);\r\n\t\t\tstate.activeTexture(33984 + slot);\r\n\t\t\tstate.bindTexture(textureType, textureProperties.__webglTexture);\r\n\r\n\t\t\t_gl.pixelStorei(37440, texture.flipY);\r\n\r\n\t\t\t_gl.pixelStorei(37441, texture.premultiplyAlpha);\r\n\r\n\t\t\t_gl.pixelStorei(3317, texture.unpackAlignment);\r\n\r\n\t\t\tvar needsPowerOfTwo = textureNeedsPowerOfTwo(texture) && isPowerOfTwo(texture.image) === false;\r\n\t\t\tvar image = resizeImage(texture.image, needsPowerOfTwo, false, maxTextureSize);\r\n\t\t\tvar supportsMips = isPowerOfTwo(image) || isWebGL2,\r\n\t\t\t\t\tglFormat = utils.convert(texture.format);\r\n\t\t\tvar glType = utils.convert(texture.type),\r\n\t\t\t\t\tglInternalFormat = getInternalFormat(texture.internalFormat, glFormat, glType);\r\n\t\t\tsetTextureParameters(textureType, texture, supportsMips);\r\n\t\t\tvar mipmap;\r\n\t\t\tvar mipmaps = texture.mipmaps;\r\n\r\n\t\t\tif (texture.isDepthTexture) {\r\n\t\t\t\t// populate depth texture with dummy data\r\n\t\t\t\tglInternalFormat = 6402;\r\n\r\n\t\t\t\tif (isWebGL2) {\r\n\t\t\t\t\tif (texture.type === FloatType) {\r\n\t\t\t\t\t\tglInternalFormat = 36012;\r\n\t\t\t\t\t} else if (texture.type === UnsignedIntType) {\r\n\t\t\t\t\t\tglInternalFormat = 33190;\r\n\t\t\t\t\t} else if (texture.type === UnsignedInt248Type) {\r\n\t\t\t\t\t\tglInternalFormat = 35056;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tglInternalFormat = 33189; // WebGL2 requires sized internalformat for glTexImage2D\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (texture.type === FloatType) {\r\n\t\t\t\t\t\tconsole.error('WebGLRenderer: Floating point depth texture requires WebGL2.');\r\n\t\t\t\t\t}\r\n\t\t\t\t} // validation checks for WebGL 1\r\n\r\n\r\n\t\t\t\tif (texture.format === DepthFormat && glInternalFormat === 6402) {\r\n\t\t\t\t\t// The error INVALID_OPERATION is generated by texImage2D if format and internalformat are\r\n\t\t\t\t\t// DEPTH_COMPONENT and type is not UNSIGNED_SHORT or UNSIGNED_INT\r\n\t\t\t\t\t// (https://www.khronos.org/registry/webgl/extensions/WEBGL_depth_texture/)\r\n\t\t\t\t\tif (texture.type !== UnsignedShortType && texture.type !== UnsignedIntType) {\r\n\t\t\t\t\t\tconsole.warn('THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture.');\r\n\t\t\t\t\t\ttexture.type = UnsignedShortType;\r\n\t\t\t\t\t\tglType = utils.convert(texture.type);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (texture.format === DepthStencilFormat && glInternalFormat === 6402) {\r\n\t\t\t\t\t// Depth stencil textures need the DEPTH_STENCIL internal format\r\n\t\t\t\t\t// (https://www.khronos.org/registry/webgl/extensions/WEBGL_depth_texture/)\r\n\t\t\t\t\tglInternalFormat = 34041; // The error INVALID_OPERATION is generated by texImage2D if format and internalformat are\r\n\t\t\t\t\t// DEPTH_STENCIL and type is not UNSIGNED_INT_24_8_WEBGL.\r\n\t\t\t\t\t// (https://www.khronos.org/registry/webgl/extensions/WEBGL_depth_texture/)\r\n\r\n\t\t\t\t\tif (texture.type !== UnsignedInt248Type) {\r\n\t\t\t\t\t\tconsole.warn('THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture.');\r\n\t\t\t\t\t\ttexture.type = UnsignedInt248Type;\r\n\t\t\t\t\t\tglType = utils.convert(texture.type);\r\n\t\t\t\t\t}\r\n\t\t\t\t} //\r\n\r\n\r\n\t\t\t\tstate.texImage2D(3553, 0, glInternalFormat, image.width, image.height, 0, glFormat, glType, null);\r\n\t\t\t} else if (texture.isDataTexture) {\r\n\t\t\t\t// use manually created mipmaps if available\r\n\t\t\t\t// if there are no manual mipmaps\r\n\t\t\t\t// set 0 level mipmap and then use GL to generate other mipmap levels\r\n\t\t\t\tif (mipmaps.length > 0 && supportsMips) {\r\n\t\t\t\t\tfor (var i = 0, il = mipmaps.length; i < il; i++) {\r\n\t\t\t\t\t\tmipmap = mipmaps[i];\r\n\t\t\t\t\t\tstate.texImage2D(3553, i, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\ttexture.generateMipmaps = false;\r\n\t\t\t\t\ttextureProperties.__maxMipLevel = mipmaps.length - 1;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tstate.texImage2D(3553, 0, glInternalFormat, image.width, image.height, 0, glFormat, glType, image.data);\r\n\t\t\t\t\ttextureProperties.__maxMipLevel = 0;\r\n\t\t\t\t}\r\n\t\t\t} else if (texture.isCompressedTexture) {\r\n\t\t\t\tfor (var _i = 0, _il = mipmaps.length; _i < _il; _i++) {\r\n\t\t\t\t\tmipmap = mipmaps[_i];\r\n\r\n\t\t\t\t\tif (texture.format !== RGBAFormat && texture.format !== RGBFormat) {\r\n\t\t\t\t\t\tif (glFormat !== null) {\r\n\t\t\t\t\t\t\tstate.compressedTexImage2D(3553, _i, glInternalFormat, mipmap.width, mipmap.height, 0, mipmap.data);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tconsole.warn('THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tstate.texImage2D(3553, _i, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttextureProperties.__maxMipLevel = mipmaps.length - 1;\r\n\t\t\t} else if (texture.isDataTexture2DArray) {\r\n\t\t\t\tstate.texImage3D(35866, 0, glInternalFormat, image.width, image.height, image.depth, 0, glFormat, glType, image.data);\r\n\t\t\t\ttextureProperties.__maxMipLevel = 0;\r\n\t\t\t} else if (texture.isDataTexture3D) {\r\n\t\t\t\tstate.texImage3D(32879, 0, glInternalFormat, image.width, image.height, image.depth, 0, glFormat, glType, image.data);\r\n\t\t\t\ttextureProperties.__maxMipLevel = 0;\r\n\t\t\t} else {\r\n\t\t\t\t// regular Texture (image, video, canvas)\r\n\t\t\t\t// use manually created mipmaps if available\r\n\t\t\t\t// if there are no manual mipmaps\r\n\t\t\t\t// set 0 level mipmap and then use GL to generate other mipmap levels\r\n\t\t\t\tif (mipmaps.length > 0 && supportsMips) {\r\n\t\t\t\t\tfor (var _i2 = 0, _il2 = mipmaps.length; _i2 < _il2; _i2++) {\r\n\t\t\t\t\t\tmipmap = mipmaps[_i2];\r\n\t\t\t\t\t\tstate.texImage2D(3553, _i2, glInternalFormat, glFormat, glType, mipmap);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\ttexture.generateMipmaps = false;\r\n\t\t\t\t\ttextureProperties.__maxMipLevel = mipmaps.length - 1;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tstate.texImage2D(3553, 0, glInternalFormat, glFormat, glType, image);\r\n\t\t\t\t\ttextureProperties.__maxMipLevel = 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (textureNeedsGenerateMipmaps(texture, supportsMips)) {\r\n\t\t\t\tgenerateMipmap(textureType, texture, image.width, image.height);\r\n\t\t\t}\r\n\r\n\t\t\ttextureProperties.__version = texture.version;\r\n\t\t\tif (texture.onUpdate) texture.onUpdate(texture);\r\n\t\t}\r\n\r\n\t\tfunction uploadCubeTexture(textureProperties, texture, slot) {\r\n\t\t\tif (texture.image.length !== 6) return;\r\n\t\t\tinitTexture(textureProperties, texture);\r\n\t\t\tstate.activeTexture(33984 + slot);\r\n\t\t\tstate.bindTexture(34067, textureProperties.__webglTexture);\r\n\r\n\t\t\t_gl.pixelStorei(37440, texture.flipY);\r\n\r\n\t\t\tvar isCompressed = texture && (texture.isCompressedTexture || texture.image[0].isCompressedTexture);\r\n\t\t\tvar isDataTexture = texture.image[0] && texture.image[0].isDataTexture;\r\n\t\t\tvar cubeImage = [];\r\n\r\n\t\t\tfor (var i = 0; i < 6; i++) {\r\n\t\t\t\tif (!isCompressed && !isDataTexture) {\r\n\t\t\t\t\tcubeImage[i] = resizeImage(texture.image[i], false, true, maxCubemapSize);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcubeImage[i] = isDataTexture ? texture.image[i].image : texture.image[i];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar image = cubeImage[0],\r\n\t\t\t\t\tsupportsMips = isPowerOfTwo(image) || isWebGL2,\r\n\t\t\t\t\tglFormat = utils.convert(texture.format),\r\n\t\t\t\t\tglType = utils.convert(texture.type),\r\n\t\t\t\t\tglInternalFormat = getInternalFormat(texture.internalFormat, glFormat, glType);\r\n\t\t\tsetTextureParameters(34067, texture, supportsMips);\r\n\t\t\tvar mipmaps;\r\n\r\n\t\t\tif (isCompressed) {\r\n\t\t\t\tfor (var _i3 = 0; _i3 < 6; _i3++) {\r\n\t\t\t\t\tmipmaps = cubeImage[_i3].mipmaps;\r\n\r\n\t\t\t\t\tfor (var j = 0; j < mipmaps.length; j++) {\r\n\t\t\t\t\t\tvar mipmap = mipmaps[j];\r\n\r\n\t\t\t\t\t\tif (texture.format !== RGBAFormat && texture.format !== RGBFormat) {\r\n\t\t\t\t\t\t\tif (glFormat !== null) {\r\n\t\t\t\t\t\t\t\tstate.compressedTexImage2D(34069 + _i3, j, glInternalFormat, mipmap.width, mipmap.height, 0, mipmap.data);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tconsole.warn('THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tstate.texImage2D(34069 + _i3, j, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttextureProperties.__maxMipLevel = mipmaps.length - 1;\r\n\t\t\t} else {\r\n\t\t\t\tmipmaps = texture.mipmaps;\r\n\r\n\t\t\t\tfor (var _i4 = 0; _i4 < 6; _i4++) {\r\n\t\t\t\t\tif (isDataTexture) {\r\n\t\t\t\t\t\tstate.texImage2D(34069 + _i4, 0, glInternalFormat, cubeImage[_i4].width, cubeImage[_i4].height, 0, glFormat, glType, cubeImage[_i4].data);\r\n\r\n\t\t\t\t\t\tfor (var _j = 0; _j < mipmaps.length; _j++) {\r\n\t\t\t\t\t\t\tvar _mipmap = mipmaps[_j];\r\n\t\t\t\t\t\t\tvar mipmapImage = _mipmap.image[_i4].image;\r\n\t\t\t\t\t\t\tstate.texImage2D(34069 + _i4, _j + 1, glInternalFormat, mipmapImage.width, mipmapImage.height, 0, glFormat, glType, mipmapImage.data);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tstate.texImage2D(34069 + _i4, 0, glInternalFormat, glFormat, glType, cubeImage[_i4]);\r\n\r\n\t\t\t\t\t\tfor (var _j2 = 0; _j2 < mipmaps.length; _j2++) {\r\n\t\t\t\t\t\t\tvar _mipmap2 = mipmaps[_j2];\r\n\t\t\t\t\t\t\tstate.texImage2D(34069 + _i4, _j2 + 1, glInternalFormat, glFormat, glType, _mipmap2.image[_i4]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttextureProperties.__maxMipLevel = mipmaps.length;\r\n\t\t\t}\r\n\r\n\t\t\tif (textureNeedsGenerateMipmaps(texture, supportsMips)) {\r\n\t\t\t\t// We assume images for cube map have the same size.\r\n\t\t\t\tgenerateMipmap(34067, texture, image.width, image.height);\r\n\t\t\t}\r\n\r\n\t\t\ttextureProperties.__version = texture.version;\r\n\t\t\tif (texture.onUpdate) texture.onUpdate(texture);\r\n\t\t} // Render targets\r\n\t\t// Setup storage for target texture and bind it to correct framebuffer\r\n\r\n\r\n\t\tfunction setupFrameBufferTexture(framebuffer, renderTarget, attachment, textureTarget) {\r\n\t\t\tvar glFormat = utils.convert(renderTarget.texture.format);\r\n\t\t\tvar glType = utils.convert(renderTarget.texture.type);\r\n\t\t\tvar glInternalFormat = getInternalFormat(renderTarget.texture.internalFormat, glFormat, glType);\r\n\t\t\tstate.texImage2D(textureTarget, 0, glInternalFormat, renderTarget.width, renderTarget.height, 0, glFormat, glType, null);\r\n\r\n\t\t\t_gl.bindFramebuffer(36160, framebuffer);\r\n\r\n\t\t\t_gl.framebufferTexture2D(36160, attachment, textureTarget, properties.get(renderTarget.texture).__webglTexture, 0);\r\n\r\n\t\t\t_gl.bindFramebuffer(36160, null);\r\n\t\t} // Setup storage for internal depth/stencil buffers and bind to correct framebuffer\r\n\r\n\r\n\t\tfunction setupRenderBufferStorage(renderbuffer, renderTarget, isMultisample) {\r\n\t\t\t_gl.bindRenderbuffer(36161, renderbuffer);\r\n\r\n\t\t\tif (renderTarget.depthBuffer && !renderTarget.stencilBuffer) {\r\n\t\t\t\tvar glInternalFormat = 33189;\r\n\r\n\t\t\t\tif (isMultisample) {\r\n\t\t\t\t\tvar depthTexture = renderTarget.depthTexture;\r\n\r\n\t\t\t\t\tif (depthTexture && depthTexture.isDepthTexture) {\r\n\t\t\t\t\t\tif (depthTexture.type === FloatType) {\r\n\t\t\t\t\t\t\tglInternalFormat = 36012;\r\n\t\t\t\t\t\t} else if (depthTexture.type === UnsignedIntType) {\r\n\t\t\t\t\t\t\tglInternalFormat = 33190;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar samples = getRenderTargetSamples(renderTarget);\r\n\r\n\t\t\t\t\t_gl.renderbufferStorageMultisample(36161, samples, glInternalFormat, renderTarget.width, renderTarget.height);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t_gl.renderbufferStorage(36161, glInternalFormat, renderTarget.width, renderTarget.height);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t_gl.framebufferRenderbuffer(36160, 36096, 36161, renderbuffer);\r\n\t\t\t} else if (renderTarget.depthBuffer && renderTarget.stencilBuffer) {\r\n\t\t\t\tif (isMultisample) {\r\n\t\t\t\t\tvar _samples = getRenderTargetSamples(renderTarget);\r\n\r\n\t\t\t\t\t_gl.renderbufferStorageMultisample(36161, _samples, 35056, renderTarget.width, renderTarget.height);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t_gl.renderbufferStorage(36161, 34041, renderTarget.width, renderTarget.height);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t_gl.framebufferRenderbuffer(36160, 33306, 36161, renderbuffer);\r\n\t\t\t} else {\r\n\t\t\t\tvar glFormat = utils.convert(renderTarget.texture.format);\r\n\t\t\t\tvar glType = utils.convert(renderTarget.texture.type);\r\n\r\n\t\t\t\tvar _glInternalFormat = getInternalFormat(renderTarget.texture.internalFormat, glFormat, glType);\r\n\r\n\t\t\t\tif (isMultisample) {\r\n\t\t\t\t\tvar _samples2 = getRenderTargetSamples(renderTarget);\r\n\r\n\t\t\t\t\t_gl.renderbufferStorageMultisample(36161, _samples2, _glInternalFormat, renderTarget.width, renderTarget.height);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t_gl.renderbufferStorage(36161, _glInternalFormat, renderTarget.width, renderTarget.height);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t_gl.bindRenderbuffer(36161, null);\r\n\t\t} // Setup resources for a Depth Texture for a FBO (needs an extension)\r\n\r\n\r\n\t\tfunction setupDepthTexture(framebuffer, renderTarget) {\r\n\t\t\tvar isCube = renderTarget && renderTarget.isWebGLCubeRenderTarget;\r\n\t\t\tif (isCube) throw new Error('Depth Texture with cube render targets is not supported');\r\n\r\n\t\t\t_gl.bindFramebuffer(36160, framebuffer);\r\n\r\n\t\t\tif (!(renderTarget.depthTexture && renderTarget.depthTexture.isDepthTexture)) {\r\n\t\t\t\tthrow new Error('renderTarget.depthTexture must be an instance of THREE.DepthTexture');\r\n\t\t\t} // upload an empty depth texture with framebuffer size\r\n\r\n\r\n\t\t\tif (!properties.get(renderTarget.depthTexture).__webglTexture || renderTarget.depthTexture.image.width !== renderTarget.width || renderTarget.depthTexture.image.height !== renderTarget.height) {\r\n\t\t\t\trenderTarget.depthTexture.image.width = renderTarget.width;\r\n\t\t\t\trenderTarget.depthTexture.image.height = renderTarget.height;\r\n\t\t\t\trenderTarget.depthTexture.needsUpdate = true;\r\n\t\t\t}\r\n\r\n\t\t\tsetTexture2D(renderTarget.depthTexture, 0);\r\n\r\n\t\t\tvar webglDepthTexture = properties.get(renderTarget.depthTexture).__webglTexture;\r\n\r\n\t\t\tif (renderTarget.depthTexture.format === DepthFormat) {\r\n\t\t\t\t_gl.framebufferTexture2D(36160, 36096, 3553, webglDepthTexture, 0);\r\n\t\t\t} else if (renderTarget.depthTexture.format === DepthStencilFormat) {\r\n\t\t\t\t_gl.framebufferTexture2D(36160, 33306, 3553, webglDepthTexture, 0);\r\n\t\t\t} else {\r\n\t\t\t\tthrow new Error('Unknown depthTexture format');\r\n\t\t\t}\r\n\t\t} // Setup GL resources for a non-texture depth buffer\r\n\r\n\r\n\t\tfunction setupDepthRenderbuffer(renderTarget) {\r\n\t\t\tvar renderTargetProperties = properties.get(renderTarget);\r\n\t\t\tvar isCube = renderTarget.isWebGLCubeRenderTarget === true;\r\n\r\n\t\t\tif (renderTarget.depthTexture) {\r\n\t\t\t\tif (isCube) throw new Error('target.depthTexture not supported in Cube render targets');\r\n\t\t\t\tsetupDepthTexture(renderTargetProperties.__webglFramebuffer, renderTarget);\r\n\t\t\t} else {\r\n\t\t\t\tif (isCube) {\r\n\t\t\t\t\trenderTargetProperties.__webglDepthbuffer = [];\r\n\r\n\t\t\t\t\tfor (var i = 0; i < 6; i++) {\r\n\t\t\t\t\t\t_gl.bindFramebuffer(36160, renderTargetProperties.__webglFramebuffer[i]);\r\n\r\n\t\t\t\t\t\trenderTargetProperties.__webglDepthbuffer[i] = _gl.createRenderbuffer();\r\n\t\t\t\t\t\tsetupRenderBufferStorage(renderTargetProperties.__webglDepthbuffer[i], renderTarget, false);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t_gl.bindFramebuffer(36160, renderTargetProperties.__webglFramebuffer);\r\n\r\n\t\t\t\t\trenderTargetProperties.__webglDepthbuffer = _gl.createRenderbuffer();\r\n\t\t\t\t\tsetupRenderBufferStorage(renderTargetProperties.__webglDepthbuffer, renderTarget, false);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t_gl.bindFramebuffer(36160, null);\r\n\t\t} // Set up GL resources for the render target\r\n\r\n\r\n\t\tfunction setupRenderTarget(renderTarget) {\r\n\t\t\tvar renderTargetProperties = properties.get(renderTarget);\r\n\t\t\tvar textureProperties = properties.get(renderTarget.texture);\r\n\t\t\trenderTarget.addEventListener('dispose', onRenderTargetDispose);\r\n\t\t\ttextureProperties.__webglTexture = _gl.createTexture();\r\n\t\t\tinfo.memory.textures++;\r\n\t\t\tvar isCube = renderTarget.isWebGLCubeRenderTarget === true;\r\n\t\t\tvar isMultisample = renderTarget.isWebGLMultisampleRenderTarget === true;\r\n\t\t\tvar supportsMips = isPowerOfTwo(renderTarget) || isWebGL2; // Handles WebGL2 RGBFormat fallback - #18858\r\n\r\n\t\t\tif (isWebGL2 && renderTarget.texture.format === RGBFormat && (renderTarget.texture.type === FloatType || renderTarget.texture.type === HalfFloatType)) {\r\n\t\t\t\trenderTarget.texture.format = RGBAFormat;\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderer: Rendering to textures with RGB format is not supported. Using RGBA format instead.');\r\n\t\t\t} // Setup framebuffer\r\n\r\n\r\n\t\t\tif (isCube) {\r\n\t\t\t\trenderTargetProperties.__webglFramebuffer = [];\r\n\r\n\t\t\t\tfor (var i = 0; i < 6; i++) {\r\n\t\t\t\t\trenderTargetProperties.__webglFramebuffer[i] = _gl.createFramebuffer();\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\trenderTargetProperties.__webglFramebuffer = _gl.createFramebuffer();\r\n\r\n\t\t\t\tif (isMultisample) {\r\n\t\t\t\t\tif (isWebGL2) {\r\n\t\t\t\t\t\trenderTargetProperties.__webglMultisampledFramebuffer = _gl.createFramebuffer();\r\n\t\t\t\t\t\trenderTargetProperties.__webglColorRenderbuffer = _gl.createRenderbuffer();\r\n\r\n\t\t\t\t\t\t_gl.bindRenderbuffer(36161, renderTargetProperties.__webglColorRenderbuffer);\r\n\r\n\t\t\t\t\t\tvar glFormat = utils.convert(renderTarget.texture.format);\r\n\t\t\t\t\t\tvar glType = utils.convert(renderTarget.texture.type);\r\n\t\t\t\t\t\tvar glInternalFormat = getInternalFormat(renderTarget.texture.internalFormat, glFormat, glType);\r\n\t\t\t\t\t\tvar samples = getRenderTargetSamples(renderTarget);\r\n\r\n\t\t\t\t\t\t_gl.renderbufferStorageMultisample(36161, samples, glInternalFormat, renderTarget.width, renderTarget.height);\r\n\r\n\t\t\t\t\t\t_gl.bindFramebuffer(36160, renderTargetProperties.__webglMultisampledFramebuffer);\r\n\r\n\t\t\t\t\t\t_gl.framebufferRenderbuffer(36160, 36064, 36161, renderTargetProperties.__webglColorRenderbuffer);\r\n\r\n\t\t\t\t\t\t_gl.bindRenderbuffer(36161, null);\r\n\r\n\t\t\t\t\t\tif (renderTarget.depthBuffer) {\r\n\t\t\t\t\t\t\trenderTargetProperties.__webglDepthRenderbuffer = _gl.createRenderbuffer();\r\n\t\t\t\t\t\t\tsetupRenderBufferStorage(renderTargetProperties.__webglDepthRenderbuffer, renderTarget, true);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t_gl.bindFramebuffer(36160, null);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconsole.warn('THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} // Setup color buffer\r\n\r\n\r\n\t\t\tif (isCube) {\r\n\t\t\t\tstate.bindTexture(34067, textureProperties.__webglTexture);\r\n\t\t\t\tsetTextureParameters(34067, renderTarget.texture, supportsMips);\r\n\r\n\t\t\t\tfor (var _i5 = 0; _i5 < 6; _i5++) {\r\n\t\t\t\t\tsetupFrameBufferTexture(renderTargetProperties.__webglFramebuffer[_i5], renderTarget, 36064, 34069 + _i5);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (textureNeedsGenerateMipmaps(renderTarget.texture, supportsMips)) {\r\n\t\t\t\t\tgenerateMipmap(34067, renderTarget.texture, renderTarget.width, renderTarget.height);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tstate.bindTexture(34067, null);\r\n\t\t\t} else {\r\n\t\t\t\tstate.bindTexture(3553, textureProperties.__webglTexture);\r\n\t\t\t\tsetTextureParameters(3553, renderTarget.texture, supportsMips);\r\n\t\t\t\tsetupFrameBufferTexture(renderTargetProperties.__webglFramebuffer, renderTarget, 36064, 3553);\r\n\r\n\t\t\t\tif (textureNeedsGenerateMipmaps(renderTarget.texture, supportsMips)) {\r\n\t\t\t\t\tgenerateMipmap(3553, renderTarget.texture, renderTarget.width, renderTarget.height);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tstate.bindTexture(3553, null);\r\n\t\t\t} // Setup depth and stencil buffers\r\n\r\n\r\n\t\t\tif (renderTarget.depthBuffer) {\r\n\t\t\t\tsetupDepthRenderbuffer(renderTarget);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction updateRenderTargetMipmap(renderTarget) {\r\n\t\t\tvar texture = renderTarget.texture;\r\n\t\t\tvar supportsMips = isPowerOfTwo(renderTarget) || isWebGL2;\r\n\r\n\t\t\tif (textureNeedsGenerateMipmaps(texture, supportsMips)) {\r\n\t\t\t\tvar target = renderTarget.isWebGLCubeRenderTarget ? 34067 : 3553;\r\n\r\n\t\t\t\tvar webglTexture = properties.get(texture).__webglTexture;\r\n\r\n\t\t\t\tstate.bindTexture(target, webglTexture);\r\n\t\t\t\tgenerateMipmap(target, texture, renderTarget.width, renderTarget.height);\r\n\t\t\t\tstate.bindTexture(target, null);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction updateMultisampleRenderTarget(renderTarget) {\r\n\t\t\tif (renderTarget.isWebGLMultisampleRenderTarget) {\r\n\t\t\t\tif (isWebGL2) {\r\n\t\t\t\t\tvar renderTargetProperties = properties.get(renderTarget);\r\n\r\n\t\t\t\t\t_gl.bindFramebuffer(36008, renderTargetProperties.__webglMultisampledFramebuffer);\r\n\r\n\t\t\t\t\t_gl.bindFramebuffer(36009, renderTargetProperties.__webglFramebuffer);\r\n\r\n\t\t\t\t\tvar width = renderTarget.width;\r\n\t\t\t\t\tvar height = renderTarget.height;\r\n\t\t\t\t\tvar mask = 16384;\r\n\t\t\t\t\tif (renderTarget.depthBuffer) mask |= 256;\r\n\t\t\t\t\tif (renderTarget.stencilBuffer) mask |= 1024;\r\n\r\n\t\t\t\t\t_gl.blitFramebuffer(0, 0, width, height, 0, 0, width, height, mask, 9728);\r\n\r\n\t\t\t\t\t_gl.bindFramebuffer(36160, renderTargetProperties.__webglMultisampledFramebuffer); // see #18905\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.warn('THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction getRenderTargetSamples(renderTarget) {\r\n\t\t\treturn isWebGL2 && renderTarget.isWebGLMultisampleRenderTarget ? Math.min(maxSamples, renderTarget.samples) : 0;\r\n\t\t}\r\n\r\n\t\tfunction updateVideoTexture(texture) {\r\n\t\t\tvar frame = info.render.frame; // Check the last frame we updated the VideoTexture\r\n\r\n\t\t\tif (_videoTextures.get(texture) !== frame) {\r\n\t\t\t\t_videoTextures.set(texture, frame);\r\n\r\n\t\t\t\ttexture.update();\r\n\t\t\t}\r\n\t\t} // backwards compatibility\r\n\r\n\r\n\t\tvar warnedTexture2D = false;\r\n\t\tvar warnedTextureCube = false;\r\n\r\n\t\tfunction safeSetTexture2D(texture, slot) {\r\n\t\t\tif (texture && texture.isWebGLRenderTarget) {\r\n\t\t\t\tif (warnedTexture2D === false) {\r\n\t\t\t\t\tconsole.warn(\"THREE.WebGLTextures.safeSetTexture2D: don't use render targets as textures. Use their .texture property instead.\");\r\n\t\t\t\t\twarnedTexture2D = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttexture = texture.texture;\r\n\t\t\t}\r\n\r\n\t\t\tsetTexture2D(texture, slot);\r\n\t\t}\r\n\r\n\t\tfunction safeSetTextureCube(texture, slot) {\r\n\t\t\tif (texture && texture.isWebGLCubeRenderTarget) {\r\n\t\t\t\tif (warnedTextureCube === false) {\r\n\t\t\t\t\tconsole.warn(\"THREE.WebGLTextures.safeSetTextureCube: don't use cube render targets as textures. Use their .texture property instead.\");\r\n\t\t\t\t\twarnedTextureCube = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttexture = texture.texture;\r\n\t\t\t}\r\n\r\n\t\t\tsetTextureCube(texture, slot);\r\n\t\t} //\r\n\r\n\r\n\t\tthis.allocateTextureUnit = allocateTextureUnit;\r\n\t\tthis.resetTextureUnits = resetTextureUnits;\r\n\t\tthis.setTexture2D = setTexture2D;\r\n\t\tthis.setTexture2DArray = setTexture2DArray;\r\n\t\tthis.setTexture3D = setTexture3D;\r\n\t\tthis.setTextureCube = setTextureCube;\r\n\t\tthis.setupRenderTarget = setupRenderTarget;\r\n\t\tthis.updateRenderTargetMipmap = updateRenderTargetMipmap;\r\n\t\tthis.updateMultisampleRenderTarget = updateMultisampleRenderTarget;\r\n\t\tthis.safeSetTexture2D = safeSetTexture2D;\r\n\t\tthis.safeSetTextureCube = safeSetTextureCube;\r\n\t}\r\n\r\n\tfunction WebGLUtils(gl, extensions, capabilities) {\r\n\t\tvar isWebGL2 = capabilities.isWebGL2;\r\n\r\n\t\tfunction convert(p) {\r\n\t\t\tvar extension;\r\n\t\t\tif (p === UnsignedByteType) return 5121;\r\n\t\t\tif (p === UnsignedShort4444Type) return 32819;\r\n\t\t\tif (p === UnsignedShort5551Type) return 32820;\r\n\t\t\tif (p === UnsignedShort565Type) return 33635;\r\n\t\t\tif (p === ByteType) return 5120;\r\n\t\t\tif (p === ShortType) return 5122;\r\n\t\t\tif (p === UnsignedShortType) return 5123;\r\n\t\t\tif (p === IntType) return 5124;\r\n\t\t\tif (p === UnsignedIntType) return 5125;\r\n\t\t\tif (p === FloatType) return 5126;\r\n\r\n\t\t\tif (p === HalfFloatType) {\r\n\t\t\t\tif (isWebGL2) return 5131;\r\n\t\t\t\textension = extensions.get('OES_texture_half_float');\r\n\r\n\t\t\t\tif (extension !== null) {\r\n\t\t\t\t\treturn extension.HALF_FLOAT_OES;\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (p === AlphaFormat) return 6406;\r\n\t\t\tif (p === RGBFormat) return 6407;\r\n\t\t\tif (p === RGBAFormat) return 6408;\r\n\t\t\tif (p === LuminanceFormat) return 6409;\r\n\t\t\tif (p === LuminanceAlphaFormat) return 6410;\r\n\t\t\tif (p === DepthFormat) return 6402;\r\n\t\t\tif (p === DepthStencilFormat) return 34041;\r\n\t\t\tif (p === RedFormat) return 6403; // WebGL2 formats.\r\n\r\n\t\t\tif (p === RedIntegerFormat) return 36244;\r\n\t\t\tif (p === RGFormat) return 33319;\r\n\t\t\tif (p === RGIntegerFormat) return 33320;\r\n\t\t\tif (p === RGBIntegerFormat) return 36248;\r\n\t\t\tif (p === RGBAIntegerFormat) return 36249;\r\n\r\n\t\t\tif (p === RGB_S3TC_DXT1_Format || p === RGBA_S3TC_DXT1_Format || p === RGBA_S3TC_DXT3_Format || p === RGBA_S3TC_DXT5_Format) {\r\n\t\t\t\textension = extensions.get('WEBGL_compressed_texture_s3tc');\r\n\r\n\t\t\t\tif (extension !== null) {\r\n\t\t\t\t\tif (p === RGB_S3TC_DXT1_Format) return extension.COMPRESSED_RGB_S3TC_DXT1_EXT;\r\n\t\t\t\t\tif (p === RGBA_S3TC_DXT1_Format) return extension.COMPRESSED_RGBA_S3TC_DXT1_EXT;\r\n\t\t\t\t\tif (p === RGBA_S3TC_DXT3_Format) return extension.COMPRESSED_RGBA_S3TC_DXT3_EXT;\r\n\t\t\t\t\tif (p === RGBA_S3TC_DXT5_Format) return extension.COMPRESSED_RGBA_S3TC_DXT5_EXT;\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (p === RGB_PVRTC_4BPPV1_Format || p === RGB_PVRTC_2BPPV1_Format || p === RGBA_PVRTC_4BPPV1_Format || p === RGBA_PVRTC_2BPPV1_Format) {\r\n\t\t\t\textension = extensions.get('WEBGL_compressed_texture_pvrtc');\r\n\r\n\t\t\t\tif (extension !== null) {\r\n\t\t\t\t\tif (p === RGB_PVRTC_4BPPV1_Format) return extension.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;\r\n\t\t\t\t\tif (p === RGB_PVRTC_2BPPV1_Format) return extension.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;\r\n\t\t\t\t\tif (p === RGBA_PVRTC_4BPPV1_Format) return extension.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;\r\n\t\t\t\t\tif (p === RGBA_PVRTC_2BPPV1_Format) return extension.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG;\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (p === RGB_ETC1_Format) {\r\n\t\t\t\textension = extensions.get('WEBGL_compressed_texture_etc1');\r\n\r\n\t\t\t\tif (extension !== null) {\r\n\t\t\t\t\treturn extension.COMPRESSED_RGB_ETC1_WEBGL;\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (p === RGB_ETC2_Format || p === RGBA_ETC2_EAC_Format) {\r\n\t\t\t\textension = extensions.get('WEBGL_compressed_texture_etc');\r\n\r\n\t\t\t\tif (extension !== null) {\r\n\t\t\t\t\tif (p === RGB_ETC2_Format) return extension.COMPRESSED_RGB8_ETC2;\r\n\t\t\t\t\tif (p === RGBA_ETC2_EAC_Format) return extension.COMPRESSED_RGBA8_ETC2_EAC;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (p === RGBA_ASTC_4x4_Format || p === RGBA_ASTC_5x4_Format || p === RGBA_ASTC_5x5_Format || p === RGBA_ASTC_6x5_Format || p === RGBA_ASTC_6x6_Format || p === RGBA_ASTC_8x5_Format || p === RGBA_ASTC_8x6_Format || p === RGBA_ASTC_8x8_Format || p === RGBA_ASTC_10x5_Format || p === RGBA_ASTC_10x6_Format || p === RGBA_ASTC_10x8_Format || p === RGBA_ASTC_10x10_Format || p === RGBA_ASTC_12x10_Format || p === RGBA_ASTC_12x12_Format || p === SRGB8_ALPHA8_ASTC_4x4_Format || p === SRGB8_ALPHA8_ASTC_5x4_Format || p === SRGB8_ALPHA8_ASTC_5x5_Format || p === SRGB8_ALPHA8_ASTC_6x5_Format || p === SRGB8_ALPHA8_ASTC_6x6_Format || p === SRGB8_ALPHA8_ASTC_8x5_Format || p === SRGB8_ALPHA8_ASTC_8x6_Format || p === SRGB8_ALPHA8_ASTC_8x8_Format || p === SRGB8_ALPHA8_ASTC_10x5_Format || p === SRGB8_ALPHA8_ASTC_10x6_Format || p === SRGB8_ALPHA8_ASTC_10x8_Format || p === SRGB8_ALPHA8_ASTC_10x10_Format || p === SRGB8_ALPHA8_ASTC_12x10_Format || p === SRGB8_ALPHA8_ASTC_12x12_Format) {\r\n\t\t\t\textension = extensions.get('WEBGL_compressed_texture_astc');\r\n\r\n\t\t\t\tif (extension !== null) {\r\n\t\t\t\t\t// TODO Complete?\r\n\t\t\t\t\treturn p;\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (p === RGBA_BPTC_Format) {\r\n\t\t\t\textension = extensions.get('EXT_texture_compression_bptc');\r\n\r\n\t\t\t\tif (extension !== null) {\r\n\t\t\t\t\t// TODO Complete?\r\n\t\t\t\t\treturn p;\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (p === UnsignedInt248Type) {\r\n\t\t\t\tif (isWebGL2) return 34042;\r\n\t\t\t\textension = extensions.get('WEBGL_depth_texture');\r\n\r\n\t\t\t\tif (extension !== null) {\r\n\t\t\t\t\treturn extension.UNSIGNED_INT_24_8_WEBGL;\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tconvert: convert\r\n\t\t};\r\n\t}\r\n\r\n\tfunction ArrayCamera(array) {\r\n\t\tif (array === void 0) {\r\n\t\t\tarray = [];\r\n\t\t}\r\n\r\n\t\tPerspectiveCamera.call(this);\r\n\t\tthis.cameras = array;\r\n\t}\r\n\r\n\tArrayCamera.prototype = Object.assign(Object.create(PerspectiveCamera.prototype), {\r\n\t\tconstructor: ArrayCamera,\r\n\t\tisArrayCamera: true\r\n\t});\r\n\r\n\tfunction Group() {\r\n\t\tObject3D.call(this);\r\n\t\tthis.type = 'Group';\r\n\t}\r\n\r\n\tGroup.prototype = Object.assign(Object.create(Object3D.prototype), {\r\n\t\tconstructor: Group,\r\n\t\tisGroup: true\r\n\t});\r\n\r\n\tfunction WebXRController() {\r\n\t\tthis._targetRay = null;\r\n\t\tthis._grip = null;\r\n\t\tthis._hand = null;\r\n\t}\r\n\r\n\tObject.assign(WebXRController.prototype, {\r\n\t\tconstructor: WebXRController,\r\n\t\tgetHandSpace: function getHandSpace() {\r\n\t\t\tif (this._hand === null) {\r\n\t\t\t\tthis._hand = new Group();\r\n\t\t\t\tthis._hand.matrixAutoUpdate = false;\r\n\t\t\t\tthis._hand.visible = false;\r\n\t\t\t\tthis._hand.joints = [];\r\n\t\t\t\tthis._hand.inputState = {\r\n\t\t\t\t\tpinching: false\r\n\t\t\t\t};\r\n\r\n\t\t\t\tif (window.XRHand) {\r\n\t\t\t\t\tfor (var i = 0; i <= window.XRHand.LITTLE_PHALANX_TIP; i++) {\r\n\t\t\t\t\t\t// The transform of this joint will be updated with the joint pose on each frame\r\n\t\t\t\t\t\tvar joint = new Group();\r\n\t\t\t\t\t\tjoint.matrixAutoUpdate = false;\r\n\t\t\t\t\t\tjoint.visible = false;\r\n\r\n\t\t\t\t\t\tthis._hand.joints.push(joint); // ??\r\n\r\n\r\n\t\t\t\t\t\tthis._hand.add(joint);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn this._hand;\r\n\t\t},\r\n\t\tgetTargetRaySpace: function getTargetRaySpace() {\r\n\t\t\tif (this._targetRay === null) {\r\n\t\t\t\tthis._targetRay = new Group();\r\n\t\t\t\tthis._targetRay.matrixAutoUpdate = false;\r\n\t\t\t\tthis._targetRay.visible = false;\r\n\t\t\t}\r\n\r\n\t\t\treturn this._targetRay;\r\n\t\t},\r\n\t\tgetGripSpace: function getGripSpace() {\r\n\t\t\tif (this._grip === null) {\r\n\t\t\t\tthis._grip = new Group();\r\n\t\t\t\tthis._grip.matrixAutoUpdate = false;\r\n\t\t\t\tthis._grip.visible = false;\r\n\t\t\t}\r\n\r\n\t\t\treturn this._grip;\r\n\t\t},\r\n\t\tdispatchEvent: function dispatchEvent(event) {\r\n\t\t\tif (this._targetRay !== null) {\r\n\t\t\t\tthis._targetRay.dispatchEvent(event);\r\n\t\t\t}\r\n\r\n\t\t\tif (this._grip !== null) {\r\n\t\t\t\tthis._grip.dispatchEvent(event);\r\n\t\t\t}\r\n\r\n\t\t\tif (this._hand !== null) {\r\n\t\t\t\tthis._hand.dispatchEvent(event);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tdisconnect: function disconnect(inputSource) {\r\n\t\t\tthis.dispatchEvent({\r\n\t\t\t\ttype: 'disconnected',\r\n\t\t\t\tdata: inputSource\r\n\t\t\t});\r\n\r\n\t\t\tif (this._targetRay !== null) {\r\n\t\t\t\tthis._targetRay.visible = false;\r\n\t\t\t}\r\n\r\n\t\t\tif (this._grip !== null) {\r\n\t\t\t\tthis._grip.visible = false;\r\n\t\t\t}\r\n\r\n\t\t\tif (this._hand !== null) {\r\n\t\t\t\tthis._hand.visible = false;\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tupdate: function update(inputSource, frame, referenceSpace) {\r\n\t\t\tvar inputPose = null;\r\n\t\t\tvar gripPose = null;\r\n\t\t\tvar handPose = null;\r\n\t\t\tvar targetRay = this._targetRay;\r\n\t\t\tvar grip = this._grip;\r\n\t\t\tvar hand = this._hand;\r\n\r\n\t\t\tif (inputSource && frame.session.visibilityState !== 'visible-blurred') {\r\n\t\t\t\tif (hand && inputSource.hand) {\r\n\t\t\t\t\thandPose = true;\r\n\r\n\t\t\t\t\tfor (var i = 0; i <= window.XRHand.LITTLE_PHALANX_TIP; i++) {\r\n\t\t\t\t\t\tif (inputSource.hand[i]) {\r\n\t\t\t\t\t\t\t// Update the joints groups with the XRJoint poses\r\n\t\t\t\t\t\t\tvar jointPose = frame.getJointPose(inputSource.hand[i], referenceSpace);\r\n\t\t\t\t\t\t\tvar joint = hand.joints[i];\r\n\r\n\t\t\t\t\t\t\tif (jointPose !== null) {\r\n\t\t\t\t\t\t\t\tjoint.matrix.fromArray(jointPose.transform.matrix);\r\n\t\t\t\t\t\t\t\tjoint.matrix.decompose(joint.position, joint.rotation, joint.scale);\r\n\t\t\t\t\t\t\t\tjoint.jointRadius = jointPose.radius;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tjoint.visible = jointPose !== null; // Custom events\r\n\t\t\t\t\t\t\t// Check pinch\r\n\r\n\t\t\t\t\t\t\tvar indexTip = hand.joints[window.XRHand.INDEX_PHALANX_TIP];\r\n\t\t\t\t\t\t\tvar thumbTip = hand.joints[window.XRHand.THUMB_PHALANX_TIP];\r\n\t\t\t\t\t\t\tvar distance = indexTip.position.distanceTo(thumbTip.position);\r\n\t\t\t\t\t\t\tvar distanceToPinch = 0.02;\r\n\t\t\t\t\t\t\tvar threshold = 0.005;\r\n\r\n\t\t\t\t\t\t\tif (hand.inputState.pinching && distance > distanceToPinch + threshold) {\r\n\t\t\t\t\t\t\t\thand.inputState.pinching = false;\r\n\t\t\t\t\t\t\t\tthis.dispatchEvent({\r\n\t\t\t\t\t\t\t\t\ttype: \"pinchend\",\r\n\t\t\t\t\t\t\t\t\thandedness: inputSource.handedness,\r\n\t\t\t\t\t\t\t\t\ttarget: this\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t} else if (!hand.inputState.pinching && distance <= distanceToPinch - threshold) {\r\n\t\t\t\t\t\t\t\thand.inputState.pinching = true;\r\n\t\t\t\t\t\t\t\tthis.dispatchEvent({\r\n\t\t\t\t\t\t\t\t\ttype: \"pinchstart\",\r\n\t\t\t\t\t\t\t\t\thandedness: inputSource.handedness,\r\n\t\t\t\t\t\t\t\t\ttarget: this\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (targetRay !== null) {\r\n\t\t\t\t\t\tinputPose = frame.getPose(inputSource.targetRaySpace, referenceSpace);\r\n\r\n\t\t\t\t\t\tif (inputPose !== null) {\r\n\t\t\t\t\t\t\ttargetRay.matrix.fromArray(inputPose.transform.matrix);\r\n\t\t\t\t\t\t\ttargetRay.matrix.decompose(targetRay.position, targetRay.rotation, targetRay.scale);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (grip !== null && inputSource.gripSpace) {\r\n\t\t\t\t\t\tgripPose = frame.getPose(inputSource.gripSpace, referenceSpace);\r\n\r\n\t\t\t\t\t\tif (gripPose !== null) {\r\n\t\t\t\t\t\t\tgrip.matrix.fromArray(gripPose.transform.matrix);\r\n\t\t\t\t\t\t\tgrip.matrix.decompose(grip.position, grip.rotation, grip.scale);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (targetRay !== null) {\r\n\t\t\t\ttargetRay.visible = inputPose !== null;\r\n\t\t\t}\r\n\r\n\t\t\tif (grip !== null) {\r\n\t\t\t\tgrip.visible = gripPose !== null;\r\n\t\t\t}\r\n\r\n\t\t\tif (hand !== null) {\r\n\t\t\t\thand.visible = handPose !== null;\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t}\r\n\t});\r\n\r\n\tfunction WebXRManager(renderer, gl) {\r\n\t\tvar scope = this;\r\n\t\tvar session = null;\r\n\t\tvar framebufferScaleFactor = 1.0;\r\n\t\tvar referenceSpace = null;\r\n\t\tvar referenceSpaceType = 'local-floor';\r\n\t\tvar pose = null;\r\n\t\tvar controllers = [];\r\n\t\tvar inputSourcesMap = new Map(); //\r\n\r\n\t\tvar cameraL = new PerspectiveCamera();\r\n\t\tcameraL.layers.enable(1);\r\n\t\tcameraL.viewport = new Vector4();\r\n\t\tvar cameraR = new PerspectiveCamera();\r\n\t\tcameraR.layers.enable(2);\r\n\t\tcameraR.viewport = new Vector4();\r\n\t\tvar cameras = [cameraL, cameraR];\r\n\t\tvar cameraVR = new ArrayCamera();\r\n\t\tcameraVR.layers.enable(1);\r\n\t\tcameraVR.layers.enable(2);\r\n\t\tvar _currentDepthNear = null;\r\n\t\tvar _currentDepthFar = null; //\r\n\r\n\t\tthis.enabled = false;\r\n\t\tthis.isPresenting = false;\r\n\r\n\t\tthis.getController = function (index) {\r\n\t\t\tvar controller = controllers[index];\r\n\r\n\t\t\tif (controller === undefined) {\r\n\t\t\t\tcontroller = new WebXRController();\r\n\t\t\t\tcontrollers[index] = controller;\r\n\t\t\t}\r\n\r\n\t\t\treturn controller.getTargetRaySpace();\r\n\t\t};\r\n\r\n\t\tthis.getControllerGrip = function (index) {\r\n\t\t\tvar controller = controllers[index];\r\n\r\n\t\t\tif (controller === undefined) {\r\n\t\t\t\tcontroller = new WebXRController();\r\n\t\t\t\tcontrollers[index] = controller;\r\n\t\t\t}\r\n\r\n\t\t\treturn controller.getGripSpace();\r\n\t\t};\r\n\r\n\t\tthis.getHand = function (index) {\r\n\t\t\tvar controller = controllers[index];\r\n\r\n\t\t\tif (controller === undefined) {\r\n\t\t\t\tcontroller = new WebXRController();\r\n\t\t\t\tcontrollers[index] = controller;\r\n\t\t\t}\r\n\r\n\t\t\treturn controller.getHandSpace();\r\n\t\t}; //\r\n\r\n\r\n\t\tfunction onSessionEvent(event) {\r\n\t\t\tvar controller = inputSourcesMap.get(event.inputSource);\r\n\r\n\t\t\tif (controller) {\r\n\t\t\t\tcontroller.dispatchEvent({\r\n\t\t\t\t\ttype: event.type,\r\n\t\t\t\t\tdata: event.inputSource\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction onSessionEnd() {\r\n\t\t\tinputSourcesMap.forEach(function (controller, inputSource) {\r\n\t\t\t\tcontroller.disconnect(inputSource);\r\n\t\t\t});\r\n\t\t\tinputSourcesMap.clear(); //\r\n\r\n\t\t\trenderer.setFramebuffer(null);\r\n\t\t\trenderer.setRenderTarget(renderer.getRenderTarget()); // Hack #15830\r\n\r\n\t\t\tanimation.stop();\r\n\t\t\tscope.isPresenting = false;\r\n\t\t\tscope.dispatchEvent({\r\n\t\t\t\ttype: 'sessionend'\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction onRequestReferenceSpace(value) {\r\n\t\t\treferenceSpace = value;\r\n\t\t\tanimation.setContext(session);\r\n\t\t\tanimation.start();\r\n\t\t\tscope.isPresenting = true;\r\n\t\t\tscope.dispatchEvent({\r\n\t\t\t\ttype: 'sessionstart'\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.setFramebufferScaleFactor = function (value) {\r\n\t\t\tframebufferScaleFactor = value;\r\n\r\n\t\t\tif (scope.isPresenting === true) {\r\n\t\t\t\tconsole.warn('THREE.WebXRManager: Cannot change framebuffer scale while presenting.');\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tthis.setReferenceSpaceType = function (value) {\r\n\t\t\treferenceSpaceType = value;\r\n\r\n\t\t\tif (scope.isPresenting === true) {\r\n\t\t\t\tconsole.warn('THREE.WebXRManager: Cannot change reference space type while presenting.');\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tthis.getReferenceSpace = function () {\r\n\t\t\treturn referenceSpace;\r\n\t\t};\r\n\r\n\t\tthis.getSession = function () {\r\n\t\t\treturn session;\r\n\t\t};\r\n\r\n\t\tthis.setSession = function (value) {\r\n\t\t\tsession = value;\r\n\r\n\t\t\tif (session !== null) {\r\n\t\t\t\tsession.addEventListener('select', onSessionEvent);\r\n\t\t\t\tsession.addEventListener('selectstart', onSessionEvent);\r\n\t\t\t\tsession.addEventListener('selectend', onSessionEvent);\r\n\t\t\t\tsession.addEventListener('squeeze', onSessionEvent);\r\n\t\t\t\tsession.addEventListener('squeezestart', onSessionEvent);\r\n\t\t\t\tsession.addEventListener('squeezeend', onSessionEvent);\r\n\t\t\t\tsession.addEventListener('end', onSessionEnd);\r\n\t\t\t\tvar attributes = gl.getContextAttributes();\r\n\r\n\t\t\t\tif (attributes.xrCompatible !== true) {\r\n\t\t\t\t\tgl.makeXRCompatible();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar layerInit = {\r\n\t\t\t\t\tantialias: attributes.antialias,\r\n\t\t\t\t\talpha: attributes.alpha,\r\n\t\t\t\t\tdepth: attributes.depth,\r\n\t\t\t\t\tstencil: attributes.stencil,\r\n\t\t\t\t\tframebufferScaleFactor: framebufferScaleFactor\r\n\t\t\t\t}; // eslint-disable-next-line no-undef\r\n\r\n\t\t\t\tvar baseLayer = new XRWebGLLayer(session, gl, layerInit);\r\n\t\t\t\tsession.updateRenderState({\r\n\t\t\t\t\tbaseLayer: baseLayer\r\n\t\t\t\t});\r\n\t\t\t\tsession.requestReferenceSpace(referenceSpaceType).then(onRequestReferenceSpace); //\r\n\r\n\t\t\t\tsession.addEventListener('inputsourceschange', updateInputSources);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tfunction updateInputSources(event) {\r\n\t\t\tvar inputSources = session.inputSources; // Assign inputSources to available controllers\r\n\r\n\t\t\tfor (var i = 0; i < controllers.length; i++) {\r\n\t\t\t\tinputSourcesMap.set(inputSources[i], controllers[i]);\r\n\t\t\t} // Notify disconnected\r\n\r\n\r\n\t\t\tfor (var _i = 0; _i < event.removed.length; _i++) {\r\n\t\t\t\tvar inputSource = event.removed[_i];\r\n\t\t\t\tvar controller = inputSourcesMap.get(inputSource);\r\n\r\n\t\t\t\tif (controller) {\r\n\t\t\t\t\tcontroller.dispatchEvent({\r\n\t\t\t\t\t\ttype: 'disconnected',\r\n\t\t\t\t\t\tdata: inputSource\r\n\t\t\t\t\t});\r\n\t\t\t\t\tinputSourcesMap.delete(inputSource);\r\n\t\t\t\t}\r\n\t\t\t} // Notify connected\r\n\r\n\r\n\t\t\tfor (var _i2 = 0; _i2 < event.added.length; _i2++) {\r\n\t\t\t\tvar _inputSource = event.added[_i2];\r\n\r\n\t\t\t\tvar _controller = inputSourcesMap.get(_inputSource);\r\n\r\n\t\t\t\tif (_controller) {\r\n\t\t\t\t\t_controller.dispatchEvent({\r\n\t\t\t\t\t\ttype: 'connected',\r\n\t\t\t\t\t\tdata: _inputSource\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} //\r\n\r\n\r\n\t\tvar cameraLPos = new Vector3();\r\n\t\tvar cameraRPos = new Vector3();\r\n\t\t/**\r\n\t\t * Assumes 2 cameras that are parallel and share an X-axis, and that\r\n\t\t * the cameras' projection and world matrices have already been set.\r\n\t\t * And that near and far planes are identical for both cameras.\r\n\t\t * Visualization of this technique: https://computergraphics.stackexchange.com/a/4765\r\n\t\t */\r\n\r\n\t\tfunction setProjectionFromUnion(camera, cameraL, cameraR) {\r\n\t\t\tcameraLPos.setFromMatrixPosition(cameraL.matrixWorld);\r\n\t\t\tcameraRPos.setFromMatrixPosition(cameraR.matrixWorld);\r\n\t\t\tvar ipd = cameraLPos.distanceTo(cameraRPos);\r\n\t\t\tvar projL = cameraL.projectionMatrix.elements;\r\n\t\t\tvar projR = cameraR.projectionMatrix.elements; // VR systems will have identical far and near planes, and\r\n\t\t\t// most likely identical top and bottom frustum extents.\r\n\t\t\t// Use the left camera for these values.\r\n\r\n\t\t\tvar near = projL[14] / (projL[10] - 1);\r\n\t\t\tvar far = projL[14] / (projL[10] + 1);\r\n\t\t\tvar topFov = (projL[9] + 1) / projL[5];\r\n\t\t\tvar bottomFov = (projL[9] - 1) / projL[5];\r\n\t\t\tvar leftFov = (projL[8] - 1) / projL[0];\r\n\t\t\tvar rightFov = (projR[8] + 1) / projR[0];\r\n\t\t\tvar left = near * leftFov;\r\n\t\t\tvar right = near * rightFov; // Calculate the new camera's position offset from the\r\n\t\t\t// left camera. xOffset should be roughly half `ipd`.\r\n\r\n\t\t\tvar zOffset = ipd / (-leftFov + rightFov);\r\n\t\t\tvar xOffset = zOffset * -leftFov; // TODO: Better way to apply this offset?\r\n\r\n\t\t\tcameraL.matrixWorld.decompose(camera.position, camera.quaternion, camera.scale);\r\n\t\t\tcamera.translateX(xOffset);\r\n\t\t\tcamera.translateZ(zOffset);\r\n\t\t\tcamera.matrixWorld.compose(camera.position, camera.quaternion, camera.scale);\r\n\t\t\tcamera.matrixWorldInverse.copy(camera.matrixWorld).invert(); // Find the union of the frustum values of the cameras and scale\r\n\t\t\t// the values so that the near plane's position does not change in world space,\r\n\t\t\t// although must now be relative to the new union camera.\r\n\r\n\t\t\tvar near2 = near + zOffset;\r\n\t\t\tvar far2 = far + zOffset;\r\n\t\t\tvar left2 = left - xOffset;\r\n\t\t\tvar right2 = right + (ipd - xOffset);\r\n\t\t\tvar top2 = topFov * far / far2 * near2;\r\n\t\t\tvar bottom2 = bottomFov * far / far2 * near2;\r\n\t\t\tcamera.projectionMatrix.makePerspective(left2, right2, top2, bottom2, near2, far2);\r\n\t\t}\r\n\r\n\t\tfunction updateCamera(camera, parent) {\r\n\t\t\tif (parent === null) {\r\n\t\t\t\tcamera.matrixWorld.copy(camera.matrix);\r\n\t\t\t} else {\r\n\t\t\t\tcamera.matrixWorld.multiplyMatrices(parent.matrixWorld, camera.matrix);\r\n\t\t\t}\r\n\r\n\t\t\tcamera.matrixWorldInverse.copy(camera.matrixWorld).invert();\r\n\t\t}\r\n\r\n\t\tthis.getCamera = function (camera) {\r\n\t\t\tcameraVR.near = cameraR.near = cameraL.near = camera.near;\r\n\t\t\tcameraVR.far = cameraR.far = cameraL.far = camera.far;\r\n\r\n\t\t\tif (_currentDepthNear !== cameraVR.near || _currentDepthFar !== cameraVR.far) {\r\n\t\t\t\t// Note that the new renderState won't apply until the next frame. See #18320\r\n\t\t\t\tsession.updateRenderState({\r\n\t\t\t\t\tdepthNear: cameraVR.near,\r\n\t\t\t\t\tdepthFar: cameraVR.far\r\n\t\t\t\t});\r\n\t\t\t\t_currentDepthNear = cameraVR.near;\r\n\t\t\t\t_currentDepthFar = cameraVR.far;\r\n\t\t\t}\r\n\r\n\t\t\tvar parent = camera.parent;\r\n\t\t\tvar cameras = cameraVR.cameras;\r\n\t\t\tupdateCamera(cameraVR, parent);\r\n\r\n\t\t\tfor (var i = 0; i < cameras.length; i++) {\r\n\t\t\t\tupdateCamera(cameras[i], parent);\r\n\t\t\t} // update camera and its children\r\n\r\n\r\n\t\t\tcamera.matrixWorld.copy(cameraVR.matrixWorld);\r\n\t\t\tvar children = camera.children;\r\n\r\n\t\t\tfor (var _i3 = 0, l = children.length; _i3 < l; _i3++) {\r\n\t\t\t\tchildren[_i3].updateMatrixWorld(true);\r\n\t\t\t} // update projection matrix for proper view frustum culling\r\n\r\n\r\n\t\t\tif (cameras.length === 2) {\r\n\t\t\t\tsetProjectionFromUnion(cameraVR, cameraL, cameraR);\r\n\t\t\t} else {\r\n\t\t\t\t// assume single camera setup (AR)\r\n\t\t\t\tcameraVR.projectionMatrix.copy(cameraL.projectionMatrix);\r\n\t\t\t}\r\n\r\n\t\t\treturn cameraVR;\r\n\t\t}; // Animation Loop\r\n\r\n\r\n\t\tvar onAnimationFrameCallback = null;\r\n\r\n\t\tfunction onAnimationFrame(time, frame) {\r\n\t\t\tpose = frame.getViewerPose(referenceSpace);\r\n\r\n\t\t\tif (pose !== null) {\r\n\t\t\t\tvar views = pose.views;\r\n\t\t\t\tvar baseLayer = session.renderState.baseLayer;\r\n\t\t\t\trenderer.setFramebuffer(baseLayer.framebuffer);\r\n\t\t\t\tvar cameraVRNeedsUpdate = false; // check if it's necessary to rebuild cameraVR's camera list\r\n\r\n\t\t\t\tif (views.length !== cameraVR.cameras.length) {\r\n\t\t\t\t\tcameraVR.cameras.length = 0;\r\n\t\t\t\t\tcameraVRNeedsUpdate = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfor (var i = 0; i < views.length; i++) {\r\n\t\t\t\t\tvar view = views[i];\r\n\t\t\t\t\tvar viewport = baseLayer.getViewport(view);\r\n\t\t\t\t\tvar camera = cameras[i];\r\n\t\t\t\t\tcamera.matrix.fromArray(view.transform.matrix);\r\n\t\t\t\t\tcamera.projectionMatrix.fromArray(view.projectionMatrix);\r\n\t\t\t\t\tcamera.viewport.set(viewport.x, viewport.y, viewport.width, viewport.height);\r\n\r\n\t\t\t\t\tif (i === 0) {\r\n\t\t\t\t\t\tcameraVR.matrix.copy(camera.matrix);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (cameraVRNeedsUpdate === true) {\r\n\t\t\t\t\t\tcameraVR.cameras.push(camera);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} //\r\n\r\n\r\n\t\t\tvar inputSources = session.inputSources;\r\n\r\n\t\t\tfor (var _i4 = 0; _i4 < controllers.length; _i4++) {\r\n\t\t\t\tvar controller = controllers[_i4];\r\n\t\t\t\tvar inputSource = inputSources[_i4];\r\n\t\t\t\tcontroller.update(inputSource, frame, referenceSpace);\r\n\t\t\t}\r\n\r\n\t\t\tif (onAnimationFrameCallback) onAnimationFrameCallback(time, frame);\r\n\t\t}\r\n\r\n\t\tvar animation = new WebGLAnimation();\r\n\t\tanimation.setAnimationLoop(onAnimationFrame);\r\n\r\n\t\tthis.setAnimationLoop = function (callback) {\r\n\t\t\tonAnimationFrameCallback = callback;\r\n\t\t};\r\n\r\n\t\tthis.dispose = function () {};\r\n\t}\r\n\r\n\tObject.assign(WebXRManager.prototype, EventDispatcher.prototype);\r\n\r\n\tfunction WebGLMaterials(properties) {\r\n\t\tfunction refreshFogUniforms(uniforms, fog) {\r\n\t\t\tuniforms.fogColor.value.copy(fog.color);\r\n\r\n\t\t\tif (fog.isFog) {\r\n\t\t\t\tuniforms.fogNear.value = fog.near;\r\n\t\t\t\tuniforms.fogFar.value = fog.far;\r\n\t\t\t} else if (fog.isFogExp2) {\r\n\t\t\t\tuniforms.fogDensity.value = fog.density;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction refreshMaterialUniforms(uniforms, material, pixelRatio, height) {\r\n\t\t\tif (material.isMeshBasicMaterial) {\r\n\t\t\t\trefreshUniformsCommon(uniforms, material);\r\n\t\t\t} else if (material.isMeshLambertMaterial) {\r\n\t\t\t\trefreshUniformsCommon(uniforms, material);\r\n\t\t\t\trefreshUniformsLambert(uniforms, material);\r\n\t\t\t} else if (material.isMeshToonMaterial) {\r\n\t\t\t\trefreshUniformsCommon(uniforms, material);\r\n\t\t\t\trefreshUniformsToon(uniforms, material);\r\n\t\t\t} else if (material.isMeshPhongMaterial) {\r\n\t\t\t\trefreshUniformsCommon(uniforms, material);\r\n\t\t\t\trefreshUniformsPhong(uniforms, material);\r\n\t\t\t} else if (material.isMeshStandardMaterial) {\r\n\t\t\t\trefreshUniformsCommon(uniforms, material);\r\n\r\n\t\t\t\tif (material.isMeshPhysicalMaterial) {\r\n\t\t\t\t\trefreshUniformsPhysical(uniforms, material);\r\n\t\t\t\t} else {\r\n\t\t\t\t\trefreshUniformsStandard(uniforms, material);\r\n\t\t\t\t}\r\n\t\t\t} else if (material.isMeshMatcapMaterial) {\r\n\t\t\t\trefreshUniformsCommon(uniforms, material);\r\n\t\t\t\trefreshUniformsMatcap(uniforms, material);\r\n\t\t\t} else if (material.isMeshDepthMaterial) {\r\n\t\t\t\trefreshUniformsCommon(uniforms, material);\r\n\t\t\t\trefreshUniformsDepth(uniforms, material);\r\n\t\t\t} else if (material.isMeshDistanceMaterial) {\r\n\t\t\t\trefreshUniformsCommon(uniforms, material);\r\n\t\t\t\trefreshUniformsDistance(uniforms, material);\r\n\t\t\t} else if (material.isMeshNormalMaterial) {\r\n\t\t\t\trefreshUniformsCommon(uniforms, material);\r\n\t\t\t\trefreshUniformsNormal(uniforms, material);\r\n\t\t\t} else if (material.isLineBasicMaterial) {\r\n\t\t\t\trefreshUniformsLine(uniforms, material);\r\n\r\n\t\t\t\tif (material.isLineDashedMaterial) {\r\n\t\t\t\t\trefreshUniformsDash(uniforms, material);\r\n\t\t\t\t}\r\n\t\t\t} else if (material.isPointsMaterial) {\r\n\t\t\t\trefreshUniformsPoints(uniforms, material, pixelRatio, height);\r\n\t\t\t} else if (material.isSpriteMaterial) {\r\n\t\t\t\trefreshUniformsSprites(uniforms, material);\r\n\t\t\t} else if (material.isShadowMaterial) {\r\n\t\t\t\tuniforms.color.value.copy(material.color);\r\n\t\t\t\tuniforms.opacity.value = material.opacity;\r\n\t\t\t} else if (material.isShaderMaterial) {\r\n\t\t\t\tmaterial.uniformsNeedUpdate = false; // #15581\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction refreshUniformsCommon(uniforms, material) {\r\n\t\t\tuniforms.opacity.value = material.opacity;\r\n\r\n\t\t\tif (material.color) {\r\n\t\t\t\tuniforms.diffuse.value.copy(material.color);\r\n\t\t\t}\r\n\r\n\t\t\tif (material.emissive) {\r\n\t\t\t\tuniforms.emissive.value.copy(material.emissive).multiplyScalar(material.emissiveIntensity);\r\n\t\t\t}\r\n\r\n\t\t\tif (material.map) {\r\n\t\t\t\tuniforms.map.value = material.map;\r\n\t\t\t}\r\n\r\n\t\t\tif (material.alphaMap) {\r\n\t\t\t\tuniforms.alphaMap.value = material.alphaMap;\r\n\t\t\t}\r\n\r\n\t\t\tif (material.specularMap) {\r\n\t\t\t\tuniforms.specularMap.value = material.specularMap;\r\n\t\t\t}\r\n\r\n\t\t\tvar envMap = properties.get(material).envMap;\r\n\r\n\t\t\tif (envMap) {\r\n\t\t\t\tuniforms.envMap.value = envMap;\r\n\t\t\t\tuniforms.flipEnvMap.value = envMap.isCubeTexture && envMap._needsFlipEnvMap ? -1 : 1;\r\n\t\t\t\tuniforms.reflectivity.value = material.reflectivity;\r\n\t\t\t\tuniforms.refractionRatio.value = material.refractionRatio;\r\n\r\n\t\t\t\tvar maxMipLevel = properties.get(envMap).__maxMipLevel;\r\n\r\n\t\t\t\tif (maxMipLevel !== undefined) {\r\n\t\t\t\t\tuniforms.maxMipLevel.value = maxMipLevel;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (material.lightMap) {\r\n\t\t\t\tuniforms.lightMap.value = material.lightMap;\r\n\t\t\t\tuniforms.lightMapIntensity.value = material.lightMapIntensity;\r\n\t\t\t}\r\n\r\n\t\t\tif (material.aoMap) {\r\n\t\t\t\tuniforms.aoMap.value = material.aoMap;\r\n\t\t\t\tuniforms.aoMapIntensity.value = material.aoMapIntensity;\r\n\t\t\t} // uv repeat and offset setting priorities\r\n\t\t\t// 1. color map\r\n\t\t\t// 2. specular map\r\n\t\t\t// 3. displacementMap map\r\n\t\t\t// 4. normal map\r\n\t\t\t// 5. bump map\r\n\t\t\t// 6. roughnessMap map\r\n\t\t\t// 7. metalnessMap map\r\n\t\t\t// 8. alphaMap map\r\n\t\t\t// 9. emissiveMap map\r\n\t\t\t// 10. clearcoat map\r\n\t\t\t// 11. clearcoat normal map\r\n\t\t\t// 12. clearcoat roughnessMap map\r\n\r\n\r\n\t\t\tvar uvScaleMap;\r\n\r\n\t\t\tif (material.map) {\r\n\t\t\t\tuvScaleMap = material.map;\r\n\t\t\t} else if (material.specularMap) {\r\n\t\t\t\tuvScaleMap = material.specularMap;\r\n\t\t\t} else if (material.displacementMap) {\r\n\t\t\t\tuvScaleMap = material.displacementMap;\r\n\t\t\t} else if (material.normalMap) {\r\n\t\t\t\tuvScaleMap = material.normalMap;\r\n\t\t\t} else if (material.bumpMap) {\r\n\t\t\t\tuvScaleMap = material.bumpMap;\r\n\t\t\t} else if (material.roughnessMap) {\r\n\t\t\t\tuvScaleMap = material.roughnessMap;\r\n\t\t\t} else if (material.metalnessMap) {\r\n\t\t\t\tuvScaleMap = material.metalnessMap;\r\n\t\t\t} else if (material.alphaMap) {\r\n\t\t\t\tuvScaleMap = material.alphaMap;\r\n\t\t\t} else if (material.emissiveMap) {\r\n\t\t\t\tuvScaleMap = material.emissiveMap;\r\n\t\t\t} else if (material.clearcoatMap) {\r\n\t\t\t\tuvScaleMap = material.clearcoatMap;\r\n\t\t\t} else if (material.clearcoatNormalMap) {\r\n\t\t\t\tuvScaleMap = material.clearcoatNormalMap;\r\n\t\t\t} else if (material.clearcoatRoughnessMap) {\r\n\t\t\t\tuvScaleMap = material.clearcoatRoughnessMap;\r\n\t\t\t}\r\n\r\n\t\t\tif (uvScaleMap !== undefined) {\r\n\t\t\t\t// backwards compatibility\r\n\t\t\t\tif (uvScaleMap.isWebGLRenderTarget) {\r\n\t\t\t\t\tuvScaleMap = uvScaleMap.texture;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (uvScaleMap.matrixAutoUpdate === true) {\r\n\t\t\t\t\tuvScaleMap.updateMatrix();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tuniforms.uvTransform.value.copy(uvScaleMap.matrix);\r\n\t\t\t} // uv repeat and offset setting priorities for uv2\r\n\t\t\t// 1. ao map\r\n\t\t\t// 2. light map\r\n\r\n\r\n\t\t\tvar uv2ScaleMap;\r\n\r\n\t\t\tif (material.aoMap) {\r\n\t\t\t\tuv2ScaleMap = material.aoMap;\r\n\t\t\t} else if (material.lightMap) {\r\n\t\t\t\tuv2ScaleMap = material.lightMap;\r\n\t\t\t}\r\n\r\n\t\t\tif (uv2ScaleMap !== undefined) {\r\n\t\t\t\t// backwards compatibility\r\n\t\t\t\tif (uv2ScaleMap.isWebGLRenderTarget) {\r\n\t\t\t\t\tuv2ScaleMap = uv2ScaleMap.texture;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (uv2ScaleMap.matrixAutoUpdate === true) {\r\n\t\t\t\t\tuv2ScaleMap.updateMatrix();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tuniforms.uv2Transform.value.copy(uv2ScaleMap.matrix);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction refreshUniformsLine(uniforms, material) {\r\n\t\t\tuniforms.diffuse.value.copy(material.color);\r\n\t\t\tuniforms.opacity.value = material.opacity;\r\n\t\t}\r\n\r\n\t\tfunction refreshUniformsDash(uniforms, material) {\r\n\t\t\tuniforms.dashSize.value = material.dashSize;\r\n\t\t\tuniforms.totalSize.value = material.dashSize + material.gapSize;\r\n\t\t\tuniforms.scale.value = material.scale;\r\n\t\t}\r\n\r\n\t\tfunction refreshUniformsPoints(uniforms, material, pixelRatio, height) {\r\n\t\t\tuniforms.diffuse.value.copy(material.color);\r\n\t\t\tuniforms.opacity.value = material.opacity;\r\n\t\t\tuniforms.size.value = material.size * pixelRatio;\r\n\t\t\tuniforms.scale.value = height * 0.5;\r\n\r\n\t\t\tif (material.map) {\r\n\t\t\t\tuniforms.map.value = material.map;\r\n\t\t\t}\r\n\r\n\t\t\tif (material.alphaMap) {\r\n\t\t\t\tuniforms.alphaMap.value = material.alphaMap;\r\n\t\t\t} // uv repeat and offset setting priorities\r\n\t\t\t// 1. color map\r\n\t\t\t// 2. alpha map\r\n\r\n\r\n\t\t\tvar uvScaleMap;\r\n\r\n\t\t\tif (material.map) {\r\n\t\t\t\tuvScaleMap = material.map;\r\n\t\t\t} else if (material.alphaMap) {\r\n\t\t\t\tuvScaleMap = material.alphaMap;\r\n\t\t\t}\r\n\r\n\t\t\tif (uvScaleMap !== undefined) {\r\n\t\t\t\tif (uvScaleMap.matrixAutoUpdate === true) {\r\n\t\t\t\t\tuvScaleMap.updateMatrix();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tuniforms.uvTransform.value.copy(uvScaleMap.matrix);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction refreshUniformsSprites(uniforms, material) {\r\n\t\t\tuniforms.diffuse.value.copy(material.color);\r\n\t\t\tuniforms.opacity.value = material.opacity;\r\n\t\t\tuniforms.rotation.value = material.rotation;\r\n\r\n\t\t\tif (material.map) {\r\n\t\t\t\tuniforms.map.value = material.map;\r\n\t\t\t}\r\n\r\n\t\t\tif (material.alphaMap) {\r\n\t\t\t\tuniforms.alphaMap.value = material.alphaMap;\r\n\t\t\t} // uv repeat and offset setting priorities\r\n\t\t\t// 1. color map\r\n\t\t\t// 2. alpha map\r\n\r\n\r\n\t\t\tvar uvScaleMap;\r\n\r\n\t\t\tif (material.map) {\r\n\t\t\t\tuvScaleMap = material.map;\r\n\t\t\t} else if (material.alphaMap) {\r\n\t\t\t\tuvScaleMap = material.alphaMap;\r\n\t\t\t}\r\n\r\n\t\t\tif (uvScaleMap !== undefined) {\r\n\t\t\t\tif (uvScaleMap.matrixAutoUpdate === true) {\r\n\t\t\t\t\tuvScaleMap.updateMatrix();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tuniforms.uvTransform.value.copy(uvScaleMap.matrix);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction refreshUniformsLambert(uniforms, material) {\r\n\t\t\tif (material.emissiveMap) {\r\n\t\t\t\tuniforms.emissiveMap.value = material.emissiveMap;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction refreshUniformsPhong(uniforms, material) {\r\n\t\t\tuniforms.specular.value.copy(material.specular);\r\n\t\t\tuniforms.shininess.value = Math.max(material.shininess, 1e-4); // to prevent pow( 0.0, 0.0 )\r\n\r\n\t\t\tif (material.emissiveMap) {\r\n\t\t\t\tuniforms.emissiveMap.value = material.emissiveMap;\r\n\t\t\t}\r\n\r\n\t\t\tif (material.bumpMap) {\r\n\t\t\t\tuniforms.bumpMap.value = material.bumpMap;\r\n\t\t\t\tuniforms.bumpScale.value = material.bumpScale;\r\n\t\t\t\tif (material.side === BackSide) uniforms.bumpScale.value *= -1;\r\n\t\t\t}\r\n\r\n\t\t\tif (material.normalMap) {\r\n\t\t\t\tuniforms.normalMap.value = material.normalMap;\r\n\t\t\t\tuniforms.normalScale.value.copy(material.normalScale);\r\n\t\t\t\tif (material.side === BackSide) uniforms.normalScale.value.negate();\r\n\t\t\t}\r\n\r\n\t\t\tif (material.displacementMap) {\r\n\t\t\t\tuniforms.displacementMap.value = material.displacementMap;\r\n\t\t\t\tuniforms.displacementScale.value = material.displacementScale;\r\n\t\t\t\tuniforms.displacementBias.value = material.displacementBias;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction refreshUniformsToon(uniforms, material) {\r\n\t\t\tif (material.gradientMap) {\r\n\t\t\t\tuniforms.gradientMap.value = material.gradientMap;\r\n\t\t\t}\r\n\r\n\t\t\tif (material.emissiveMap) {\r\n\t\t\t\tuniforms.emissiveMap.value = material.emissiveMap;\r\n\t\t\t}\r\n\r\n\t\t\tif (material.bumpMap) {\r\n\t\t\t\tuniforms.bumpMap.value = material.bumpMap;\r\n\t\t\t\tuniforms.bumpScale.value = material.bumpScale;\r\n\t\t\t\tif (material.side === BackSide) uniforms.bumpScale.value *= -1;\r\n\t\t\t}\r\n\r\n\t\t\tif (material.normalMap) {\r\n\t\t\t\tuniforms.normalMap.value = material.normalMap;\r\n\t\t\t\tuniforms.normalScale.value.copy(material.normalScale);\r\n\t\t\t\tif (material.side === BackSide) uniforms.normalScale.value.negate();\r\n\t\t\t}\r\n\r\n\t\t\tif (material.displacementMap) {\r\n\t\t\t\tuniforms.displacementMap.value = material.displacementMap;\r\n\t\t\t\tuniforms.displacementScale.value = material.displacementScale;\r\n\t\t\t\tuniforms.displacementBias.value = material.displacementBias;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction refreshUniformsStandard(uniforms, material) {\r\n\t\t\tuniforms.roughness.value = material.roughness;\r\n\t\t\tuniforms.metalness.value = material.metalness;\r\n\r\n\t\t\tif (material.roughnessMap) {\r\n\t\t\t\tuniforms.roughnessMap.value = material.roughnessMap;\r\n\t\t\t}\r\n\r\n\t\t\tif (material.metalnessMap) {\r\n\t\t\t\tuniforms.metalnessMap.value = material.metalnessMap;\r\n\t\t\t}\r\n\r\n\t\t\tif (material.emissiveMap) {\r\n\t\t\t\tuniforms.emissiveMap.value = material.emissiveMap;\r\n\t\t\t}\r\n\r\n\t\t\tif (material.bumpMap) {\r\n\t\t\t\tuniforms.bumpMap.value = material.bumpMap;\r\n\t\t\t\tuniforms.bumpScale.value = material.bumpScale;\r\n\t\t\t\tif (material.side === BackSide) uniforms.bumpScale.value *= -1;\r\n\t\t\t}\r\n\r\n\t\t\tif (material.normalMap) {\r\n\t\t\t\tuniforms.normalMap.value = material.normalMap;\r\n\t\t\t\tuniforms.normalScale.value.copy(material.normalScale);\r\n\t\t\t\tif (material.side === BackSide) uniforms.normalScale.value.negate();\r\n\t\t\t}\r\n\r\n\t\t\tif (material.displacementMap) {\r\n\t\t\t\tuniforms.displacementMap.value = material.displacementMap;\r\n\t\t\t\tuniforms.displacementScale.value = material.displacementScale;\r\n\t\t\t\tuniforms.displacementBias.value = material.displacementBias;\r\n\t\t\t}\r\n\r\n\t\t\tvar envMap = properties.get(material).envMap;\r\n\r\n\t\t\tif (envMap) {\r\n\t\t\t\t//uniforms.envMap.value = material.envMap; // part of uniforms common\r\n\t\t\t\tuniforms.envMapIntensity.value = material.envMapIntensity;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction refreshUniformsPhysical(uniforms, material) {\r\n\t\t\trefreshUniformsStandard(uniforms, material);\r\n\t\t\tuniforms.reflectivity.value = material.reflectivity; // also part of uniforms common\r\n\r\n\t\t\tuniforms.clearcoat.value = material.clearcoat;\r\n\t\t\tuniforms.clearcoatRoughness.value = material.clearcoatRoughness;\r\n\t\t\tif (material.sheen) uniforms.sheen.value.copy(material.sheen);\r\n\r\n\t\t\tif (material.clearcoatMap) {\r\n\t\t\t\tuniforms.clearcoatMap.value = material.clearcoatMap;\r\n\t\t\t}\r\n\r\n\t\t\tif (material.clearcoatRoughnessMap) {\r\n\t\t\t\tuniforms.clearcoatRoughnessMap.value = material.clearcoatRoughnessMap;\r\n\t\t\t}\r\n\r\n\t\t\tif (material.clearcoatNormalMap) {\r\n\t\t\t\tuniforms.clearcoatNormalScale.value.copy(material.clearcoatNormalScale);\r\n\t\t\t\tuniforms.clearcoatNormalMap.value = material.clearcoatNormalMap;\r\n\r\n\t\t\t\tif (material.side === BackSide) {\r\n\t\t\t\t\tuniforms.clearcoatNormalScale.value.negate();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tuniforms.transmission.value = material.transmission;\r\n\r\n\t\t\tif (material.transmissionMap) {\r\n\t\t\t\tuniforms.transmissionMap.value = material.transmissionMap;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction refreshUniformsMatcap(uniforms, material) {\r\n\t\t\tif (material.matcap) {\r\n\t\t\t\tuniforms.matcap.value = material.matcap;\r\n\t\t\t}\r\n\r\n\t\t\tif (material.bumpMap) {\r\n\t\t\t\tuniforms.bumpMap.value = material.bumpMap;\r\n\t\t\t\tuniforms.bumpScale.value = material.bumpScale;\r\n\t\t\t\tif (material.side === BackSide) uniforms.bumpScale.value *= -1;\r\n\t\t\t}\r\n\r\n\t\t\tif (material.normalMap) {\r\n\t\t\t\tuniforms.normalMap.value = material.normalMap;\r\n\t\t\t\tuniforms.normalScale.value.copy(material.normalScale);\r\n\t\t\t\tif (material.side === BackSide) uniforms.normalScale.value.negate();\r\n\t\t\t}\r\n\r\n\t\t\tif (material.displacementMap) {\r\n\t\t\t\tuniforms.displacementMap.value = material.displacementMap;\r\n\t\t\t\tuniforms.displacementScale.value = material.displacementScale;\r\n\t\t\t\tuniforms.displacementBias.value = material.displacementBias;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction refreshUniformsDepth(uniforms, material) {\r\n\t\t\tif (material.displacementMap) {\r\n\t\t\t\tuniforms.displacementMap.value = material.displacementMap;\r\n\t\t\t\tuniforms.displacementScale.value = material.displacementScale;\r\n\t\t\t\tuniforms.displacementBias.value = material.displacementBias;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction refreshUniformsDistance(uniforms, material) {\r\n\t\t\tif (material.displacementMap) {\r\n\t\t\t\tuniforms.displacementMap.value = material.displacementMap;\r\n\t\t\t\tuniforms.displacementScale.value = material.displacementScale;\r\n\t\t\t\tuniforms.displacementBias.value = material.displacementBias;\r\n\t\t\t}\r\n\r\n\t\t\tuniforms.referencePosition.value.copy(material.referencePosition);\r\n\t\t\tuniforms.nearDistance.value = material.nearDistance;\r\n\t\t\tuniforms.farDistance.value = material.farDistance;\r\n\t\t}\r\n\r\n\t\tfunction refreshUniformsNormal(uniforms, material) {\r\n\t\t\tif (material.bumpMap) {\r\n\t\t\t\tuniforms.bumpMap.value = material.bumpMap;\r\n\t\t\t\tuniforms.bumpScale.value = material.bumpScale;\r\n\t\t\t\tif (material.side === BackSide) uniforms.bumpScale.value *= -1;\r\n\t\t\t}\r\n\r\n\t\t\tif (material.normalMap) {\r\n\t\t\t\tuniforms.normalMap.value = material.normalMap;\r\n\t\t\t\tuniforms.normalScale.value.copy(material.normalScale);\r\n\t\t\t\tif (material.side === BackSide) uniforms.normalScale.value.negate();\r\n\t\t\t}\r\n\r\n\t\t\tif (material.displacementMap) {\r\n\t\t\t\tuniforms.displacementMap.value = material.displacementMap;\r\n\t\t\t\tuniforms.displacementScale.value = material.displacementScale;\r\n\t\t\t\tuniforms.displacementBias.value = material.displacementBias;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\trefreshFogUniforms: refreshFogUniforms,\r\n\t\t\trefreshMaterialUniforms: refreshMaterialUniforms\r\n\t\t};\r\n\t}\r\n\r\n\tfunction createCanvasElement() {\r\n\t\tvar canvas = document.createElementNS('http://www.w3.org/1999/xhtml', 'canvas');\r\n\t\tcanvas.style.display = 'block';\r\n\t\treturn canvas;\r\n\t}\r\n\r\n\tfunction WebGLRenderer(parameters) {\r\n\t\tparameters = parameters || {};\r\n\r\n\t\tvar _canvas = parameters.canvas !== undefined ? parameters.canvas : createCanvasElement(),\r\n\t\t\t\t_context = parameters.context !== undefined ? parameters.context : null,\r\n\t\t\t\t_alpha = parameters.alpha !== undefined ? parameters.alpha : false,\r\n\t\t\t\t_depth = parameters.depth !== undefined ? parameters.depth : true,\r\n\t\t\t\t_stencil = parameters.stencil !== undefined ? parameters.stencil : true,\r\n\t\t\t\t_antialias = parameters.antialias !== undefined ? parameters.antialias : false,\r\n\t\t\t\t_premultipliedAlpha = parameters.premultipliedAlpha !== undefined ? parameters.premultipliedAlpha : true,\r\n\t\t\t\t_preserveDrawingBuffer = parameters.preserveDrawingBuffer !== undefined ? parameters.preserveDrawingBuffer : false,\r\n\t\t\t\t_powerPreference = parameters.powerPreference !== undefined ? parameters.powerPreference : 'default',\r\n\t\t\t\t_failIfMajorPerformanceCaveat = parameters.failIfMajorPerformanceCaveat !== undefined ? parameters.failIfMajorPerformanceCaveat : false;\r\n\r\n\t\tvar currentRenderList = null;\r\n\t\tvar currentRenderState = null; // public properties\r\n\r\n\t\tthis.domElement = _canvas; // Debug configuration container\r\n\r\n\t\tthis.debug = {\r\n\t\t\t/**\r\n\t\t\t * Enables error checking and reporting when shader programs are being compiled\r\n\t\t\t * @type {boolean}\r\n\t\t\t */\r\n\t\t\tcheckShaderErrors: true\r\n\t\t}; // clearing\r\n\r\n\t\tthis.autoClear = true;\r\n\t\tthis.autoClearColor = true;\r\n\t\tthis.autoClearDepth = true;\r\n\t\tthis.autoClearStencil = true; // scene graph\r\n\r\n\t\tthis.sortObjects = true; // user-defined clipping\r\n\r\n\t\tthis.clippingPlanes = [];\r\n\t\tthis.localClippingEnabled = false; // physically based shading\r\n\r\n\t\tthis.gammaFactor = 2.0; // for backwards compatibility\r\n\r\n\t\tthis.outputEncoding = LinearEncoding; // physical lights\r\n\r\n\t\tthis.physicallyCorrectLights = false; // tone mapping\r\n\r\n\t\tthis.toneMapping = NoToneMapping;\r\n\t\tthis.toneMappingExposure = 1.0; // morphs\r\n\r\n\t\tthis.maxMorphTargets = 8;\r\n\t\tthis.maxMorphNormals = 4; // internal properties\r\n\r\n\t\tvar _this = this;\r\n\r\n\t\tvar _isContextLost = false; // internal state cache\r\n\r\n\t\tvar _framebuffer = null;\r\n\t\tvar _currentActiveCubeFace = 0;\r\n\t\tvar _currentActiveMipmapLevel = 0;\r\n\t\tvar _currentRenderTarget = null;\r\n\t\tvar _currentFramebuffer = null;\r\n\r\n\t\tvar _currentMaterialId = -1;\r\n\r\n\t\tvar _currentCamera = null;\r\n\t\tvar _currentArrayCamera = null;\r\n\r\n\t\tvar _currentViewport = new Vector4();\r\n\r\n\t\tvar _currentScissor = new Vector4();\r\n\r\n\t\tvar _currentScissorTest = null; //\r\n\r\n\t\tvar _width = _canvas.width;\r\n\t\tvar _height = _canvas.height;\r\n\t\tvar _pixelRatio = 1;\r\n\t\tvar _opaqueSort = null;\r\n\t\tvar _transparentSort = null;\r\n\r\n\t\tvar _viewport = new Vector4(0, 0, _width, _height);\r\n\r\n\t\tvar _scissor = new Vector4(0, 0, _width, _height);\r\n\r\n\t\tvar _scissorTest = false; // frustum\r\n\r\n\t\tvar _frustum = new Frustum(); // clipping\r\n\r\n\r\n\t\tvar _clippingEnabled = false;\r\n\t\tvar _localClippingEnabled = false; // camera matrices cache\r\n\r\n\t\tvar _projScreenMatrix = new Matrix4();\r\n\r\n\t\tvar _vector3 = new Vector3();\r\n\r\n\t\tvar _emptyScene = {\r\n\t\t\tbackground: null,\r\n\t\t\tfog: null,\r\n\t\t\tenvironment: null,\r\n\t\t\toverrideMaterial: null,\r\n\t\t\tisScene: true\r\n\t\t};\r\n\r\n\t\tfunction getTargetPixelRatio() {\r\n\t\t\treturn _currentRenderTarget === null ? _pixelRatio : 1;\r\n\t\t} // initialize\r\n\r\n\r\n\t\tvar _gl = _context;\r\n\r\n\t\tfunction getContext(contextNames, contextAttributes) {\r\n\t\t\tfor (var i = 0; i < contextNames.length; i++) {\r\n\t\t\t\tvar contextName = contextNames[i];\r\n\r\n\t\t\t\tvar context = _canvas.getContext(contextName, contextAttributes);\r\n\r\n\t\t\t\tif (context !== null) return context;\r\n\t\t\t}\r\n\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tvar contextAttributes = {\r\n\t\t\t\talpha: _alpha,\r\n\t\t\t\tdepth: _depth,\r\n\t\t\t\tstencil: _stencil,\r\n\t\t\t\tantialias: _antialias,\r\n\t\t\t\tpremultipliedAlpha: _premultipliedAlpha,\r\n\t\t\t\tpreserveDrawingBuffer: _preserveDrawingBuffer,\r\n\t\t\t\tpowerPreference: _powerPreference,\r\n\t\t\t\tfailIfMajorPerformanceCaveat: _failIfMajorPerformanceCaveat\r\n\t\t\t}; // event listeners must be registered before WebGL context is created, see #12753\r\n\r\n\t\t\t_canvas.addEventListener('webglcontextlost', onContextLost, false);\r\n\r\n\t\t\t_canvas.addEventListener('webglcontextrestored', onContextRestore, false);\r\n\r\n\t\t\tif (_gl === null) {\r\n\t\t\t\tvar contextNames = ['webgl2', 'webgl', 'experimental-webgl'];\r\n\r\n\t\t\t\tif (_this.isWebGL1Renderer === true) {\r\n\t\t\t\t\tcontextNames.shift();\r\n\t\t\t\t}\r\n\r\n\t\t\t\t_gl = getContext(contextNames, contextAttributes);\r\n\r\n\t\t\t\tif (_gl === null) {\r\n\t\t\t\t\tif (getContext(contextNames)) {\r\n\t\t\t\t\t\tthrow new Error('Error creating WebGL context with your selected attributes.');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthrow new Error('Error creating WebGL context.');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} // Some experimental-webgl implementations do not have getShaderPrecisionFormat\r\n\r\n\r\n\t\t\tif (_gl.getShaderPrecisionFormat === undefined) {\r\n\t\t\t\t_gl.getShaderPrecisionFormat = function () {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\t'rangeMin': 1,\r\n\t\t\t\t\t\t'rangeMax': 1,\r\n\t\t\t\t\t\t'precision': 1\r\n\t\t\t\t\t};\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error('THREE.WebGLRenderer: ' + error.message);\r\n\t\t\tthrow error;\r\n\t\t}\r\n\r\n\t\tvar extensions, capabilities, state, info;\r\n\t\tvar properties, textures, cubemaps, attributes, geometries, objects;\r\n\t\tvar programCache, materials, renderLists, renderStates, clipping;\r\n\t\tvar background, morphtargets, bufferRenderer, indexedBufferRenderer;\r\n\t\tvar utils, bindingStates;\r\n\r\n\t\tfunction initGLContext() {\r\n\t\t\textensions = new WebGLExtensions(_gl);\r\n\t\t\tcapabilities = new WebGLCapabilities(_gl, extensions, parameters);\r\n\r\n\t\t\tif (capabilities.isWebGL2 === false) {\r\n\t\t\t\textensions.get('WEBGL_depth_texture');\r\n\t\t\t\textensions.get('OES_texture_float');\r\n\t\t\t\textensions.get('OES_texture_half_float');\r\n\t\t\t\textensions.get('OES_texture_half_float_linear');\r\n\t\t\t\textensions.get('OES_standard_derivatives');\r\n\t\t\t\textensions.get('OES_element_index_uint');\r\n\t\t\t\textensions.get('OES_vertex_array_object');\r\n\t\t\t\textensions.get('ANGLE_instanced_arrays');\r\n\t\t\t}\r\n\r\n\t\t\textensions.get('OES_texture_float_linear');\r\n\t\t\tutils = new WebGLUtils(_gl, extensions, capabilities);\r\n\t\t\tstate = new WebGLState(_gl, extensions, capabilities);\r\n\t\t\tstate.scissor(_currentScissor.copy(_scissor).multiplyScalar(_pixelRatio).floor());\r\n\t\t\tstate.viewport(_currentViewport.copy(_viewport).multiplyScalar(_pixelRatio).floor());\r\n\t\t\tinfo = new WebGLInfo(_gl);\r\n\t\t\tproperties = new WebGLProperties();\r\n\t\t\ttextures = new WebGLTextures(_gl, extensions, state, properties, capabilities, utils, info);\r\n\t\t\tcubemaps = new WebGLCubeMaps(_this);\r\n\t\t\tattributes = new WebGLAttributes(_gl, capabilities);\r\n\t\t\tbindingStates = new WebGLBindingStates(_gl, extensions, attributes, capabilities);\r\n\t\t\tgeometries = new WebGLGeometries(_gl, attributes, info, bindingStates);\r\n\t\t\tobjects = new WebGLObjects(_gl, geometries, attributes, info);\r\n\t\t\tmorphtargets = new WebGLMorphtargets(_gl);\r\n\t\t\tclipping = new WebGLClipping(properties);\r\n\t\t\tprogramCache = new WebGLPrograms(_this, cubemaps, extensions, capabilities, bindingStates, clipping);\r\n\t\t\tmaterials = new WebGLMaterials(properties);\r\n\t\t\trenderLists = new WebGLRenderLists(properties);\r\n\t\t\trenderStates = new WebGLRenderStates(extensions, capabilities);\r\n\t\t\tbackground = new WebGLBackground(_this, cubemaps, state, objects, _premultipliedAlpha);\r\n\t\t\tbufferRenderer = new WebGLBufferRenderer(_gl, extensions, info, capabilities);\r\n\t\t\tindexedBufferRenderer = new WebGLIndexedBufferRenderer(_gl, extensions, info, capabilities);\r\n\t\t\tinfo.programs = programCache.programs;\r\n\t\t\t_this.capabilities = capabilities;\r\n\t\t\t_this.extensions = extensions;\r\n\t\t\t_this.properties = properties;\r\n\t\t\t_this.renderLists = renderLists;\r\n\t\t\t_this.state = state;\r\n\t\t\t_this.info = info;\r\n\t\t}\r\n\r\n\t\tinitGLContext(); // xr\r\n\r\n\t\tvar xr = new WebXRManager(_this, _gl);\r\n\t\tthis.xr = xr; // shadow map\r\n\r\n\t\tvar shadowMap = new WebGLShadowMap(_this, objects, capabilities.maxTextureSize);\r\n\t\tthis.shadowMap = shadowMap; // API\r\n\r\n\t\tthis.getContext = function () {\r\n\t\t\treturn _gl;\r\n\t\t};\r\n\r\n\t\tthis.getContextAttributes = function () {\r\n\t\t\treturn _gl.getContextAttributes();\r\n\t\t};\r\n\r\n\t\tthis.forceContextLoss = function () {\r\n\t\t\tvar extension = extensions.get('WEBGL_lose_context');\r\n\t\t\tif (extension) extension.loseContext();\r\n\t\t};\r\n\r\n\t\tthis.forceContextRestore = function () {\r\n\t\t\tvar extension = extensions.get('WEBGL_lose_context');\r\n\t\t\tif (extension) extension.restoreContext();\r\n\t\t};\r\n\r\n\t\tthis.getPixelRatio = function () {\r\n\t\t\treturn _pixelRatio;\r\n\t\t};\r\n\r\n\t\tthis.setPixelRatio = function (value) {\r\n\t\t\tif (value === undefined) return;\r\n\t\t\t_pixelRatio = value;\r\n\t\t\tthis.setSize(_width, _height, false);\r\n\t\t};\r\n\r\n\t\tthis.getSize = function (target) {\r\n\t\t\tif (target === undefined) {\r\n\t\t\t\tconsole.warn('WebGLRenderer: .getsize() now requires a Vector2 as an argument');\r\n\t\t\t\ttarget = new Vector2();\r\n\t\t\t}\r\n\r\n\t\t\treturn target.set(_width, _height);\r\n\t\t};\r\n\r\n\t\tthis.setSize = function (width, height, updateStyle) {\r\n\t\t\tif (xr.isPresenting) {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderer: Can\\'t change size while VR device is presenting.');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t_width = width;\r\n\t\t\t_height = height;\r\n\t\t\t_canvas.width = Math.floor(width * _pixelRatio);\r\n\t\t\t_canvas.height = Math.floor(height * _pixelRatio);\r\n\r\n\t\t\tif (updateStyle !== false) {\r\n\t\t\t\t_canvas.style.width = width + 'px';\r\n\t\t\t\t_canvas.style.height = height + 'px';\r\n\t\t\t}\r\n\r\n\t\t\tthis.setViewport(0, 0, width, height);\r\n\t\t};\r\n\r\n\t\tthis.getDrawingBufferSize = function (target) {\r\n\t\t\tif (target === undefined) {\r\n\t\t\t\tconsole.warn('WebGLRenderer: .getdrawingBufferSize() now requires a Vector2 as an argument');\r\n\t\t\t\ttarget = new Vector2();\r\n\t\t\t}\r\n\r\n\t\t\treturn target.set(_width * _pixelRatio, _height * _pixelRatio).floor();\r\n\t\t};\r\n\r\n\t\tthis.setDrawingBufferSize = function (width, height, pixelRatio) {\r\n\t\t\t_width = width;\r\n\t\t\t_height = height;\r\n\t\t\t_pixelRatio = pixelRatio;\r\n\t\t\t_canvas.width = Math.floor(width * pixelRatio);\r\n\t\t\t_canvas.height = Math.floor(height * pixelRatio);\r\n\t\t\tthis.setViewport(0, 0, width, height);\r\n\t\t};\r\n\r\n\t\tthis.getCurrentViewport = function (target) {\r\n\t\t\tif (target === undefined) {\r\n\t\t\t\tconsole.warn('WebGLRenderer: .getCurrentViewport() now requires a Vector4 as an argument');\r\n\t\t\t\ttarget = new Vector4();\r\n\t\t\t}\r\n\r\n\t\t\treturn target.copy(_currentViewport);\r\n\t\t};\r\n\r\n\t\tthis.getViewport = function (target) {\r\n\t\t\treturn target.copy(_viewport);\r\n\t\t};\r\n\r\n\t\tthis.setViewport = function (x, y, width, height) {\r\n\t\t\tif (x.isVector4) {\r\n\t\t\t\t_viewport.set(x.x, x.y, x.z, x.w);\r\n\t\t\t} else {\r\n\t\t\t\t_viewport.set(x, y, width, height);\r\n\t\t\t}\r\n\r\n\t\t\tstate.viewport(_currentViewport.copy(_viewport).multiplyScalar(_pixelRatio).floor());\r\n\t\t};\r\n\r\n\t\tthis.getScissor = function (target) {\r\n\t\t\treturn target.copy(_scissor);\r\n\t\t};\r\n\r\n\t\tthis.setScissor = function (x, y, width, height) {\r\n\t\t\tif (x.isVector4) {\r\n\t\t\t\t_scissor.set(x.x, x.y, x.z, x.w);\r\n\t\t\t} else {\r\n\t\t\t\t_scissor.set(x, y, width, height);\r\n\t\t\t}\r\n\r\n\t\t\tstate.scissor(_currentScissor.copy(_scissor).multiplyScalar(_pixelRatio).floor());\r\n\t\t};\r\n\r\n\t\tthis.getScissorTest = function () {\r\n\t\t\treturn _scissorTest;\r\n\t\t};\r\n\r\n\t\tthis.setScissorTest = function (boolean) {\r\n\t\t\tstate.setScissorTest(_scissorTest = boolean);\r\n\t\t};\r\n\r\n\t\tthis.setOpaqueSort = function (method) {\r\n\t\t\t_opaqueSort = method;\r\n\t\t};\r\n\r\n\t\tthis.setTransparentSort = function (method) {\r\n\t\t\t_transparentSort = method;\r\n\t\t}; // Clearing\r\n\r\n\r\n\t\tthis.getClearColor = function () {\r\n\t\t\treturn background.getClearColor();\r\n\t\t};\r\n\r\n\t\tthis.setClearColor = function () {\r\n\t\t\tbackground.setClearColor.apply(background, arguments);\r\n\t\t};\r\n\r\n\t\tthis.getClearAlpha = function () {\r\n\t\t\treturn background.getClearAlpha();\r\n\t\t};\r\n\r\n\t\tthis.setClearAlpha = function () {\r\n\t\t\tbackground.setClearAlpha.apply(background, arguments);\r\n\t\t};\r\n\r\n\t\tthis.clear = function (color, depth, stencil) {\r\n\t\t\tvar bits = 0;\r\n\t\t\tif (color === undefined || color) bits |= 16384;\r\n\t\t\tif (depth === undefined || depth) bits |= 256;\r\n\t\t\tif (stencil === undefined || stencil) bits |= 1024;\r\n\r\n\t\t\t_gl.clear(bits);\r\n\t\t};\r\n\r\n\t\tthis.clearColor = function () {\r\n\t\t\tthis.clear(true, false, false);\r\n\t\t};\r\n\r\n\t\tthis.clearDepth = function () {\r\n\t\t\tthis.clear(false, true, false);\r\n\t\t};\r\n\r\n\t\tthis.clearStencil = function () {\r\n\t\t\tthis.clear(false, false, true);\r\n\t\t}; //\r\n\r\n\r\n\t\tthis.dispose = function () {\r\n\t\t\t_canvas.removeEventListener('webglcontextlost', onContextLost, false);\r\n\r\n\t\t\t_canvas.removeEventListener('webglcontextrestored', onContextRestore, false);\r\n\r\n\t\t\trenderLists.dispose();\r\n\t\t\trenderStates.dispose();\r\n\t\t\tproperties.dispose();\r\n\t\t\tcubemaps.dispose();\r\n\t\t\tobjects.dispose();\r\n\t\t\tbindingStates.dispose();\r\n\t\t\txr.dispose();\r\n\t\t\tanimation.stop();\r\n\t\t}; // Events\r\n\r\n\r\n\t\tfunction onContextLost(event) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tconsole.log('THREE.WebGLRenderer: Context Lost.');\r\n\t\t\t_isContextLost = true;\r\n\t\t}\r\n\r\n\t\tfunction onContextRestore()\r\n\t\t/* event */\r\n\t\t{\r\n\t\t\tconsole.log('THREE.WebGLRenderer: Context Restored.');\r\n\t\t\t_isContextLost = false;\r\n\t\t\tinitGLContext();\r\n\t\t}\r\n\r\n\t\tfunction onMaterialDispose(event) {\r\n\t\t\tvar material = event.target;\r\n\t\t\tmaterial.removeEventListener('dispose', onMaterialDispose);\r\n\t\t\tdeallocateMaterial(material);\r\n\t\t} // Buffer deallocation\r\n\r\n\r\n\t\tfunction deallocateMaterial(material) {\r\n\t\t\treleaseMaterialProgramReference(material);\r\n\t\t\tproperties.remove(material);\r\n\t\t}\r\n\r\n\t\tfunction releaseMaterialProgramReference(material) {\r\n\t\t\tvar programInfo = properties.get(material).program;\r\n\r\n\t\t\tif (programInfo !== undefined) {\r\n\t\t\t\tprogramCache.releaseProgram(programInfo);\r\n\t\t\t}\r\n\t\t} // Buffer rendering\r\n\r\n\r\n\t\tfunction renderObjectImmediate(object, program) {\r\n\t\t\tobject.render(function (object) {\r\n\t\t\t\t_this.renderBufferImmediate(object, program);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.renderBufferImmediate = function (object, program) {\r\n\t\t\tbindingStates.initAttributes();\r\n\t\t\tvar buffers = properties.get(object);\r\n\t\t\tif (object.hasPositions && !buffers.position) buffers.position = _gl.createBuffer();\r\n\t\t\tif (object.hasNormals && !buffers.normal) buffers.normal = _gl.createBuffer();\r\n\t\t\tif (object.hasUvs && !buffers.uv) buffers.uv = _gl.createBuffer();\r\n\t\t\tif (object.hasColors && !buffers.color) buffers.color = _gl.createBuffer();\r\n\t\t\tvar programAttributes = program.getAttributes();\r\n\r\n\t\t\tif (object.hasPositions) {\r\n\t\t\t\t_gl.bindBuffer(34962, buffers.position);\r\n\r\n\t\t\t\t_gl.bufferData(34962, object.positionArray, 35048);\r\n\r\n\t\t\t\tbindingStates.enableAttribute(programAttributes.position);\r\n\r\n\t\t\t\t_gl.vertexAttribPointer(programAttributes.position, 3, 5126, false, 0, 0);\r\n\t\t\t}\r\n\r\n\t\t\tif (object.hasNormals) {\r\n\t\t\t\t_gl.bindBuffer(34962, buffers.normal);\r\n\r\n\t\t\t\t_gl.bufferData(34962, object.normalArray, 35048);\r\n\r\n\t\t\t\tbindingStates.enableAttribute(programAttributes.normal);\r\n\r\n\t\t\t\t_gl.vertexAttribPointer(programAttributes.normal, 3, 5126, false, 0, 0);\r\n\t\t\t}\r\n\r\n\t\t\tif (object.hasUvs) {\r\n\t\t\t\t_gl.bindBuffer(34962, buffers.uv);\r\n\r\n\t\t\t\t_gl.bufferData(34962, object.uvArray, 35048);\r\n\r\n\t\t\t\tbindingStates.enableAttribute(programAttributes.uv);\r\n\r\n\t\t\t\t_gl.vertexAttribPointer(programAttributes.uv, 2, 5126, false, 0, 0);\r\n\t\t\t}\r\n\r\n\t\t\tif (object.hasColors) {\r\n\t\t\t\t_gl.bindBuffer(34962, buffers.color);\r\n\r\n\t\t\t\t_gl.bufferData(34962, object.colorArray, 35048);\r\n\r\n\t\t\t\tbindingStates.enableAttribute(programAttributes.color);\r\n\r\n\t\t\t\t_gl.vertexAttribPointer(programAttributes.color, 3, 5126, false, 0, 0);\r\n\t\t\t}\r\n\r\n\t\t\tbindingStates.disableUnusedAttributes();\r\n\r\n\t\t\t_gl.drawArrays(4, 0, object.count);\r\n\r\n\t\t\tobject.count = 0;\r\n\t\t};\r\n\r\n\t\tthis.renderBufferDirect = function (camera, scene, geometry, material, object, group) {\r\n\t\t\tif (scene === null) scene = _emptyScene; // renderBufferDirect second parameter used to be fog (could be null)\r\n\r\n\t\t\tvar frontFaceCW = object.isMesh && object.matrixWorld.determinant() < 0;\r\n\t\t\tvar program = setProgram(camera, scene, material, object);\r\n\t\t\tstate.setMaterial(material, frontFaceCW); //\r\n\r\n\t\t\tvar index = geometry.index;\r\n\t\t\tvar position = geometry.attributes.position; //\r\n\r\n\t\t\tif (index === null) {\r\n\t\t\t\tif (position === undefined || position.count === 0) return;\r\n\t\t\t} else if (index.count === 0) {\r\n\t\t\t\treturn;\r\n\t\t\t} //\r\n\r\n\r\n\t\t\tvar rangeFactor = 1;\r\n\r\n\t\t\tif (material.wireframe === true) {\r\n\t\t\t\tindex = geometries.getWireframeAttribute(geometry);\r\n\t\t\t\trangeFactor = 2;\r\n\t\t\t}\r\n\r\n\t\t\tif (material.morphTargets || material.morphNormals) {\r\n\t\t\t\tmorphtargets.update(object, geometry, material, program);\r\n\t\t\t}\r\n\r\n\t\t\tbindingStates.setup(object, material, program, geometry, index);\r\n\t\t\tvar attribute;\r\n\t\t\tvar renderer = bufferRenderer;\r\n\r\n\t\t\tif (index !== null) {\r\n\t\t\t\tattribute = attributes.get(index);\r\n\t\t\t\trenderer = indexedBufferRenderer;\r\n\t\t\t\trenderer.setIndex(attribute);\r\n\t\t\t} //\r\n\r\n\r\n\t\t\tvar dataCount = index !== null ? index.count : position.count;\r\n\t\t\tvar rangeStart = geometry.drawRange.start * rangeFactor;\r\n\t\t\tvar rangeCount = geometry.drawRange.count * rangeFactor;\r\n\t\t\tvar groupStart = group !== null ? group.start * rangeFactor : 0;\r\n\t\t\tvar groupCount = group !== null ? group.count * rangeFactor : Infinity;\r\n\t\t\tvar drawStart = Math.max(rangeStart, groupStart);\r\n\t\t\tvar drawEnd = Math.min(dataCount, rangeStart + rangeCount, groupStart + groupCount) - 1;\r\n\t\t\tvar drawCount = Math.max(0, drawEnd - drawStart + 1);\r\n\t\t\tif (drawCount === 0) return; //\r\n\r\n\t\t\tif (object.isMesh) {\r\n\t\t\t\tif (material.wireframe === true) {\r\n\t\t\t\t\tstate.setLineWidth(material.wireframeLinewidth * getTargetPixelRatio());\r\n\t\t\t\t\trenderer.setMode(1);\r\n\t\t\t\t} else {\r\n\t\t\t\t\trenderer.setMode(4);\r\n\t\t\t\t}\r\n\t\t\t} else if (object.isLine) {\r\n\t\t\t\tvar lineWidth = material.linewidth;\r\n\t\t\t\tif (lineWidth === undefined) lineWidth = 1; // Not using Line*Material\r\n\r\n\t\t\t\tstate.setLineWidth(lineWidth * getTargetPixelRatio());\r\n\r\n\t\t\t\tif (object.isLineSegments) {\r\n\t\t\t\t\trenderer.setMode(1);\r\n\t\t\t\t} else if (object.isLineLoop) {\r\n\t\t\t\t\trenderer.setMode(2);\r\n\t\t\t\t} else {\r\n\t\t\t\t\trenderer.setMode(3);\r\n\t\t\t\t}\r\n\t\t\t} else if (object.isPoints) {\r\n\t\t\t\trenderer.setMode(0);\r\n\t\t\t} else if (object.isSprite) {\r\n\t\t\t\trenderer.setMode(4);\r\n\t\t\t}\r\n\r\n\t\t\tif (object.isInstancedMesh) {\r\n\t\t\t\trenderer.renderInstances(drawStart, drawCount, object.count);\r\n\t\t\t} else if (geometry.isInstancedBufferGeometry) {\r\n\t\t\t\tvar instanceCount = Math.min(geometry.instanceCount, geometry._maxInstanceCount);\r\n\t\t\t\trenderer.renderInstances(drawStart, drawCount, instanceCount);\r\n\t\t\t} else {\r\n\t\t\t\trenderer.render(drawStart, drawCount);\r\n\t\t\t}\r\n\t\t}; // Compile\r\n\r\n\r\n\t\tthis.compile = function (scene, camera) {\r\n\t\t\tcurrentRenderState = renderStates.get(scene, camera);\r\n\t\t\tcurrentRenderState.init();\r\n\t\t\tscene.traverseVisible(function (object) {\r\n\t\t\t\tif (object.isLight && object.layers.test(camera.layers)) {\r\n\t\t\t\t\tcurrentRenderState.pushLight(object);\r\n\r\n\t\t\t\t\tif (object.castShadow) {\r\n\t\t\t\t\t\tcurrentRenderState.pushShadow(object);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tcurrentRenderState.setupLights(camera);\r\n\t\t\tvar compiled = new WeakMap();\r\n\t\t\tscene.traverse(function (object) {\r\n\t\t\t\tvar material = object.material;\r\n\r\n\t\t\t\tif (material) {\r\n\t\t\t\t\tif (Array.isArray(material)) {\r\n\t\t\t\t\t\tfor (var i = 0; i < material.length; i++) {\r\n\t\t\t\t\t\t\tvar material2 = material[i];\r\n\r\n\t\t\t\t\t\t\tif (compiled.has(material2) === false) {\r\n\t\t\t\t\t\t\t\tinitMaterial(material2, scene, object);\r\n\t\t\t\t\t\t\t\tcompiled.set(material2);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (compiled.has(material) === false) {\r\n\t\t\t\t\t\tinitMaterial(material, scene, object);\r\n\t\t\t\t\t\tcompiled.set(material);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}; // Animation Loop\r\n\r\n\r\n\t\tvar onAnimationFrameCallback = null;\r\n\r\n\t\tfunction onAnimationFrame(time) {\r\n\t\t\tif (xr.isPresenting) return;\r\n\t\t\tif (onAnimationFrameCallback) onAnimationFrameCallback(time);\r\n\t\t}\r\n\r\n\t\tvar animation = new WebGLAnimation();\r\n\t\tanimation.setAnimationLoop(onAnimationFrame);\r\n\t\tif (typeof window !== 'undefined') animation.setContext(window);\r\n\r\n\t\tthis.setAnimationLoop = function (callback) {\r\n\t\t\tonAnimationFrameCallback = callback;\r\n\t\t\txr.setAnimationLoop(callback);\r\n\t\t\tcallback === null ? animation.stop() : animation.start();\r\n\t\t}; // Rendering\r\n\r\n\r\n\t\tthis.render = function (scene, camera) {\r\n\t\t\tvar renderTarget, forceClear;\r\n\r\n\t\t\tif (arguments[2] !== undefined) {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderer.render(): the renderTarget argument has been removed. Use .setRenderTarget() instead.');\r\n\t\t\t\trenderTarget = arguments[2];\r\n\t\t\t}\r\n\r\n\t\t\tif (arguments[3] !== undefined) {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderer.render(): the forceClear argument has been removed. Use .clear() instead.');\r\n\t\t\t\tforceClear = arguments[3];\r\n\t\t\t}\r\n\r\n\t\t\tif (camera !== undefined && camera.isCamera !== true) {\r\n\t\t\t\tconsole.error('THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (_isContextLost === true) return; // reset caching for this frame\r\n\r\n\t\t\tbindingStates.resetDefaultState();\r\n\t\t\t_currentMaterialId = -1;\r\n\t\t\t_currentCamera = null; // update scene graph\r\n\r\n\t\t\tif (scene.autoUpdate === true) scene.updateMatrixWorld(); // update camera matrices and frustum\r\n\r\n\t\t\tif (camera.parent === null) camera.updateMatrixWorld();\r\n\r\n\t\t\tif (xr.enabled === true && xr.isPresenting === true) {\r\n\t\t\t\tcamera = xr.getCamera(camera);\r\n\t\t\t} //\r\n\r\n\r\n\t\t\tif (scene.isScene === true) scene.onBeforeRender(_this, scene, camera, renderTarget || _currentRenderTarget);\r\n\t\t\tcurrentRenderState = renderStates.get(scene, camera);\r\n\t\t\tcurrentRenderState.init();\r\n\r\n\t\t\t_projScreenMatrix.multiplyMatrices(camera.projectionMatrix, camera.matrixWorldInverse);\r\n\r\n\t\t\t_frustum.setFromProjectionMatrix(_projScreenMatrix);\r\n\r\n\t\t\t_localClippingEnabled = this.localClippingEnabled;\r\n\t\t\t_clippingEnabled = clipping.init(this.clippingPlanes, _localClippingEnabled, camera);\r\n\t\t\tcurrentRenderList = renderLists.get(scene, camera);\r\n\t\t\tcurrentRenderList.init();\r\n\t\t\tprojectObject(scene, camera, 0, _this.sortObjects);\r\n\t\t\tcurrentRenderList.finish();\r\n\r\n\t\t\tif (_this.sortObjects === true) {\r\n\t\t\t\tcurrentRenderList.sort(_opaqueSort, _transparentSort);\r\n\t\t\t} //\r\n\r\n\r\n\t\t\tif (_clippingEnabled === true) clipping.beginShadows();\r\n\t\t\tvar shadowsArray = currentRenderState.state.shadowsArray;\r\n\t\t\tshadowMap.render(shadowsArray, scene, camera);\r\n\t\t\tcurrentRenderState.setupLights(camera);\r\n\t\t\tif (_clippingEnabled === true) clipping.endShadows(); //\r\n\r\n\t\t\tif (this.info.autoReset === true) this.info.reset();\r\n\r\n\t\t\tif (renderTarget !== undefined) {\r\n\t\t\t\tthis.setRenderTarget(renderTarget);\r\n\t\t\t} //\r\n\r\n\r\n\t\t\tbackground.render(currentRenderList, scene, camera, forceClear); // render scene\r\n\r\n\t\t\tvar opaqueObjects = currentRenderList.opaque;\r\n\t\t\tvar transparentObjects = currentRenderList.transparent;\r\n\t\t\tif (opaqueObjects.length > 0) renderObjects(opaqueObjects, scene, camera);\r\n\t\t\tif (transparentObjects.length > 0) renderObjects(transparentObjects, scene, camera); //\r\n\r\n\t\t\tif (scene.isScene === true) scene.onAfterRender(_this, scene, camera); //\r\n\r\n\t\t\tif (_currentRenderTarget !== null) {\r\n\t\t\t\t// Generate mipmap if we're using any kind of mipmap filtering\r\n\t\t\t\ttextures.updateRenderTargetMipmap(_currentRenderTarget); // resolve multisample renderbuffers to a single-sample texture if necessary\r\n\r\n\t\t\t\ttextures.updateMultisampleRenderTarget(_currentRenderTarget);\r\n\t\t\t} // Ensure depth buffer writing is enabled so it can be cleared on next render\r\n\r\n\r\n\t\t\tstate.buffers.depth.setTest(true);\r\n\t\t\tstate.buffers.depth.setMask(true);\r\n\t\t\tstate.buffers.color.setMask(true);\r\n\t\t\tstate.setPolygonOffset(false); // _gl.finish();\r\n\r\n\t\t\tcurrentRenderList = null;\r\n\t\t\tcurrentRenderState = null;\r\n\t\t};\r\n\r\n\t\tfunction projectObject(object, camera, groupOrder, sortObjects) {\r\n\t\t\tif (object.visible === false) return;\r\n\t\t\tvar visible = object.layers.test(camera.layers);\r\n\r\n\t\t\tif (visible) {\r\n\t\t\t\tif (object.isGroup) {\r\n\t\t\t\t\tgroupOrder = object.renderOrder;\r\n\t\t\t\t} else if (object.isLOD) {\r\n\t\t\t\t\tif (object.autoUpdate === true) object.update(camera);\r\n\t\t\t\t} else if (object.isLight) {\r\n\t\t\t\t\tcurrentRenderState.pushLight(object);\r\n\r\n\t\t\t\t\tif (object.castShadow) {\r\n\t\t\t\t\t\tcurrentRenderState.pushShadow(object);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (object.isSprite) {\r\n\t\t\t\t\tif (!object.frustumCulled || _frustum.intersectsSprite(object)) {\r\n\t\t\t\t\t\tif (sortObjects) {\r\n\t\t\t\t\t\t\t_vector3.setFromMatrixPosition(object.matrixWorld).applyMatrix4(_projScreenMatrix);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar geometry = objects.update(object);\r\n\t\t\t\t\t\tvar material = object.material;\r\n\r\n\t\t\t\t\t\tif (material.visible) {\r\n\t\t\t\t\t\t\tcurrentRenderList.push(object, geometry, material, groupOrder, _vector3.z, null);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (object.isImmediateRenderObject) {\r\n\t\t\t\t\tif (sortObjects) {\r\n\t\t\t\t\t\t_vector3.setFromMatrixPosition(object.matrixWorld).applyMatrix4(_projScreenMatrix);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tcurrentRenderList.push(object, null, object.material, groupOrder, _vector3.z, null);\r\n\t\t\t\t} else if (object.isMesh || object.isLine || object.isPoints) {\r\n\t\t\t\t\tif (object.isSkinnedMesh) {\r\n\t\t\t\t\t\t// update skeleton only once in a frame\r\n\t\t\t\t\t\tif (object.skeleton.frame !== info.render.frame) {\r\n\t\t\t\t\t\t\tobject.skeleton.update();\r\n\t\t\t\t\t\t\tobject.skeleton.frame = info.render.frame;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (!object.frustumCulled || _frustum.intersectsObject(object)) {\r\n\t\t\t\t\t\tif (sortObjects) {\r\n\t\t\t\t\t\t\t_vector3.setFromMatrixPosition(object.matrixWorld).applyMatrix4(_projScreenMatrix);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar _geometry = objects.update(object);\r\n\r\n\t\t\t\t\t\tvar _material = object.material;\r\n\r\n\t\t\t\t\t\tif (Array.isArray(_material)) {\r\n\t\t\t\t\t\t\tvar groups = _geometry.groups;\r\n\r\n\t\t\t\t\t\t\tfor (var i = 0, l = groups.length; i < l; i++) {\r\n\t\t\t\t\t\t\t\tvar group = groups[i];\r\n\t\t\t\t\t\t\t\tvar groupMaterial = _material[group.materialIndex];\r\n\r\n\t\t\t\t\t\t\t\tif (groupMaterial && groupMaterial.visible) {\r\n\t\t\t\t\t\t\t\t\tcurrentRenderList.push(object, _geometry, groupMaterial, groupOrder, _vector3.z, group);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else if (_material.visible) {\r\n\t\t\t\t\t\t\tcurrentRenderList.push(object, _geometry, _material, groupOrder, _vector3.z, null);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar children = object.children;\r\n\r\n\t\t\tfor (var _i = 0, _l = children.length; _i < _l; _i++) {\r\n\t\t\t\tprojectObject(children[_i], camera, groupOrder, sortObjects);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction renderObjects(renderList, scene, camera) {\r\n\t\t\tvar overrideMaterial = scene.isScene === true ? scene.overrideMaterial : null;\r\n\r\n\t\t\tfor (var i = 0, l = renderList.length; i < l; i++) {\r\n\t\t\t\tvar renderItem = renderList[i];\r\n\t\t\t\tvar object = renderItem.object;\r\n\t\t\t\tvar geometry = renderItem.geometry;\r\n\t\t\t\tvar material = overrideMaterial === null ? renderItem.material : overrideMaterial;\r\n\t\t\t\tvar group = renderItem.group;\r\n\r\n\t\t\t\tif (camera.isArrayCamera) {\r\n\t\t\t\t\t_currentArrayCamera = camera;\r\n\t\t\t\t\tvar cameras = camera.cameras;\r\n\r\n\t\t\t\t\tfor (var j = 0, jl = cameras.length; j < jl; j++) {\r\n\t\t\t\t\t\tvar camera2 = cameras[j];\r\n\r\n\t\t\t\t\t\tif (object.layers.test(camera2.layers)) {\r\n\t\t\t\t\t\t\tstate.viewport(_currentViewport.copy(camera2.viewport));\r\n\t\t\t\t\t\t\tcurrentRenderState.setupLights(camera2);\r\n\t\t\t\t\t\t\trenderObject(object, scene, camera2, geometry, material, group);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t_currentArrayCamera = null;\r\n\t\t\t\t\trenderObject(object, scene, camera, geometry, material, group);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction renderObject(object, scene, camera, geometry, material, group) {\r\n\t\t\tobject.onBeforeRender(_this, scene, camera, geometry, material, group);\r\n\t\t\tcurrentRenderState = renderStates.get(scene, _currentArrayCamera || camera);\r\n\t\t\tobject.modelViewMatrix.multiplyMatrices(camera.matrixWorldInverse, object.matrixWorld);\r\n\t\t\tobject.normalMatrix.getNormalMatrix(object.modelViewMatrix);\r\n\r\n\t\t\tif (object.isImmediateRenderObject) {\r\n\t\t\t\tvar program = setProgram(camera, scene, material, object);\r\n\t\t\t\tstate.setMaterial(material);\r\n\t\t\t\tbindingStates.reset();\r\n\t\t\t\trenderObjectImmediate(object, program);\r\n\t\t\t} else {\r\n\t\t\t\t_this.renderBufferDirect(camera, scene, geometry, material, object, group);\r\n\t\t\t}\r\n\r\n\t\t\tobject.onAfterRender(_this, scene, camera, geometry, material, group);\r\n\t\t\tcurrentRenderState = renderStates.get(scene, _currentArrayCamera || camera);\r\n\t\t}\r\n\r\n\t\tfunction initMaterial(material, scene, object) {\r\n\t\t\tif (scene.isScene !== true) scene = _emptyScene; // scene could be a Mesh, Line, Points, ...\r\n\r\n\t\t\tvar materialProperties = properties.get(material);\r\n\t\t\tvar lights = currentRenderState.state.lights;\r\n\t\t\tvar shadowsArray = currentRenderState.state.shadowsArray;\r\n\t\t\tvar lightsStateVersion = lights.state.version;\r\n\t\t\tvar parameters = programCache.getParameters(material, lights.state, shadowsArray, scene, object);\r\n\t\t\tvar programCacheKey = programCache.getProgramCacheKey(parameters);\r\n\t\t\tvar program = materialProperties.program;\r\n\t\t\tvar programChange = true;\r\n\r\n\t\t\tif (program === undefined) {\r\n\t\t\t\t// new material\r\n\t\t\t\tmaterial.addEventListener('dispose', onMaterialDispose);\r\n\t\t\t} else if (program.cacheKey !== programCacheKey) {\r\n\t\t\t\t// changed glsl or parameters\r\n\t\t\t\treleaseMaterialProgramReference(material);\r\n\t\t\t} else if (materialProperties.lightsStateVersion !== lightsStateVersion) {\r\n\t\t\t\tprogramChange = false;\r\n\t\t\t} else if (parameters.shaderID !== undefined) {\r\n\t\t\t\t// same glsl and uniform list, envMap still needs the update here to avoid a frame-late effect\r\n\t\t\t\tvar environment = material.isMeshStandardMaterial ? scene.environment : null;\r\n\t\t\t\tmaterialProperties.envMap = cubemaps.get(material.envMap || environment);\r\n\t\t\t\treturn;\r\n\t\t\t} else {\r\n\t\t\t\t// only rebuild uniform list\r\n\t\t\t\tprogramChange = false;\r\n\t\t\t}\r\n\r\n\t\t\tif (programChange) {\r\n\t\t\t\tparameters.uniforms = programCache.getUniforms(material);\r\n\t\t\t\tmaterial.onBeforeCompile(parameters, _this);\r\n\t\t\t\tprogram = programCache.acquireProgram(parameters, programCacheKey);\r\n\t\t\t\tmaterialProperties.program = program;\r\n\t\t\t\tmaterialProperties.uniforms = parameters.uniforms;\r\n\t\t\t\tmaterialProperties.outputEncoding = parameters.outputEncoding;\r\n\t\t\t}\r\n\r\n\t\t\tvar uniforms = materialProperties.uniforms;\r\n\r\n\t\t\tif (!material.isShaderMaterial && !material.isRawShaderMaterial || material.clipping === true) {\r\n\t\t\t\tmaterialProperties.numClippingPlanes = clipping.numPlanes;\r\n\t\t\t\tmaterialProperties.numIntersection = clipping.numIntersection;\r\n\t\t\t\tuniforms.clippingPlanes = clipping.uniform;\r\n\t\t\t}\r\n\r\n\t\t\tmaterialProperties.environment = material.isMeshStandardMaterial ? scene.environment : null;\r\n\t\t\tmaterialProperties.fog = scene.fog;\r\n\t\t\tmaterialProperties.envMap = cubemaps.get(material.envMap || materialProperties.environment); // store the light setup it was created for\r\n\r\n\t\t\tmaterialProperties.needsLights = materialNeedsLights(material);\r\n\t\t\tmaterialProperties.lightsStateVersion = lightsStateVersion;\r\n\r\n\t\t\tif (materialProperties.needsLights) {\r\n\t\t\t\t// wire up the material to this renderer's lighting state\r\n\t\t\t\tuniforms.ambientLightColor.value = lights.state.ambient;\r\n\t\t\t\tuniforms.lightProbe.value = lights.state.probe;\r\n\t\t\t\tuniforms.directionalLights.value = lights.state.directional;\r\n\t\t\t\tuniforms.directionalLightShadows.value = lights.state.directionalShadow;\r\n\t\t\t\tuniforms.spotLights.value = lights.state.spot;\r\n\t\t\t\tuniforms.spotLightShadows.value = lights.state.spotShadow;\r\n\t\t\t\tuniforms.rectAreaLights.value = lights.state.rectArea;\r\n\t\t\t\tuniforms.ltc_1.value = lights.state.rectAreaLTC1;\r\n\t\t\t\tuniforms.ltc_2.value = lights.state.rectAreaLTC2;\r\n\t\t\t\tuniforms.pointLights.value = lights.state.point;\r\n\t\t\t\tuniforms.pointLightShadows.value = lights.state.pointShadow;\r\n\t\t\t\tuniforms.hemisphereLights.value = lights.state.hemi;\r\n\t\t\t\tuniforms.directionalShadowMap.value = lights.state.directionalShadowMap;\r\n\t\t\t\tuniforms.directionalShadowMatrix.value = lights.state.directionalShadowMatrix;\r\n\t\t\t\tuniforms.spotShadowMap.value = lights.state.spotShadowMap;\r\n\t\t\t\tuniforms.spotShadowMatrix.value = lights.state.spotShadowMatrix;\r\n\t\t\t\tuniforms.pointShadowMap.value = lights.state.pointShadowMap;\r\n\t\t\t\tuniforms.pointShadowMatrix.value = lights.state.pointShadowMatrix; // TODO (abelnation): add area lights shadow info to uniforms\r\n\t\t\t}\r\n\r\n\t\t\tvar progUniforms = materialProperties.program.getUniforms();\r\n\t\t\tvar uniformsList = WebGLUniforms.seqWithValue(progUniforms.seq, uniforms);\r\n\t\t\tmaterialProperties.uniformsList = uniformsList;\r\n\t\t}\r\n\r\n\t\tfunction setProgram(camera, scene, material, object) {\r\n\t\t\tif (scene.isScene !== true) scene = _emptyScene; // scene could be a Mesh, Line, Points, ...\r\n\r\n\t\t\ttextures.resetTextureUnits();\r\n\t\t\tvar fog = scene.fog;\r\n\t\t\tvar environment = material.isMeshStandardMaterial ? scene.environment : null;\r\n\t\t\tvar encoding = _currentRenderTarget === null ? _this.outputEncoding : _currentRenderTarget.texture.encoding;\r\n\t\t\tvar envMap = cubemaps.get(material.envMap || environment);\r\n\t\t\tvar materialProperties = properties.get(material);\r\n\t\t\tvar lights = currentRenderState.state.lights;\r\n\r\n\t\t\tif (_clippingEnabled === true) {\r\n\t\t\t\tif (_localClippingEnabled === true || camera !== _currentCamera) {\r\n\t\t\t\t\tvar useCache = camera === _currentCamera && material.id === _currentMaterialId; // we might want to call this function with some ClippingGroup\r\n\t\t\t\t\t// object instead of the material, once it becomes feasible\r\n\t\t\t\t\t// (#8465, #8379)\r\n\r\n\t\t\t\t\tclipping.setState(material, camera, useCache);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (material.version === materialProperties.__version) {\r\n\t\t\t\tif (material.fog && materialProperties.fog !== fog) {\r\n\t\t\t\t\tinitMaterial(material, scene, object);\r\n\t\t\t\t} else if (materialProperties.environment !== environment) {\r\n\t\t\t\t\tinitMaterial(material, scene, object);\r\n\t\t\t\t} else if (materialProperties.needsLights && materialProperties.lightsStateVersion !== lights.state.version) {\r\n\t\t\t\t\tinitMaterial(material, scene, object);\r\n\t\t\t\t} else if (materialProperties.numClippingPlanes !== undefined && (materialProperties.numClippingPlanes !== clipping.numPlanes || materialProperties.numIntersection !== clipping.numIntersection)) {\r\n\t\t\t\t\tinitMaterial(material, scene, object);\r\n\t\t\t\t} else if (materialProperties.outputEncoding !== encoding) {\r\n\t\t\t\t\tinitMaterial(material, scene, object);\r\n\t\t\t\t} else if (materialProperties.envMap !== envMap) {\r\n\t\t\t\t\tinitMaterial(material, scene, object);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tinitMaterial(material, scene, object);\r\n\t\t\t\tmaterialProperties.__version = material.version;\r\n\t\t\t}\r\n\r\n\t\t\tvar refreshProgram = false;\r\n\t\t\tvar refreshMaterial = false;\r\n\t\t\tvar refreshLights = false;\r\n\t\t\tvar program = materialProperties.program,\r\n\t\t\t\t\tp_uniforms = program.getUniforms(),\r\n\t\t\t\t\tm_uniforms = materialProperties.uniforms;\r\n\r\n\t\t\tif (state.useProgram(program.program)) {\r\n\t\t\t\trefreshProgram = true;\r\n\t\t\t\trefreshMaterial = true;\r\n\t\t\t\trefreshLights = true;\r\n\t\t\t}\r\n\r\n\t\t\tif (material.id !== _currentMaterialId) {\r\n\t\t\t\t_currentMaterialId = material.id;\r\n\t\t\t\trefreshMaterial = true;\r\n\t\t\t}\r\n\r\n\t\t\tif (refreshProgram || _currentCamera !== camera) {\r\n\t\t\t\tp_uniforms.setValue(_gl, 'projectionMatrix', camera.projectionMatrix);\r\n\r\n\t\t\t\tif (capabilities.logarithmicDepthBuffer) {\r\n\t\t\t\t\tp_uniforms.setValue(_gl, 'logDepthBufFC', 2.0 / (Math.log(camera.far + 1.0) / Math.LN2));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (_currentCamera !== camera) {\r\n\t\t\t\t\t_currentCamera = camera; // lighting uniforms depend on the camera so enforce an update\r\n\t\t\t\t\t// now, in case this material supports lights - or later, when\r\n\t\t\t\t\t// the next material that does gets activated:\r\n\r\n\t\t\t\t\trefreshMaterial = true; // set to true on material change\r\n\r\n\t\t\t\t\trefreshLights = true; // remains set until update done\r\n\t\t\t\t} // load material specific uniforms\r\n\t\t\t\t// (shader material also gets them for the sake of genericity)\r\n\r\n\r\n\t\t\t\tif (material.isShaderMaterial || material.isMeshPhongMaterial || material.isMeshToonMaterial || material.isMeshStandardMaterial || material.envMap) {\r\n\t\t\t\t\tvar uCamPos = p_uniforms.map.cameraPosition;\r\n\r\n\t\t\t\t\tif (uCamPos !== undefined) {\r\n\t\t\t\t\t\tuCamPos.setValue(_gl, _vector3.setFromMatrixPosition(camera.matrixWorld));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (material.isMeshPhongMaterial || material.isMeshToonMaterial || material.isMeshLambertMaterial || material.isMeshBasicMaterial || material.isMeshStandardMaterial || material.isShaderMaterial) {\r\n\t\t\t\t\tp_uniforms.setValue(_gl, 'isOrthographic', camera.isOrthographicCamera === true);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (material.isMeshPhongMaterial || material.isMeshToonMaterial || material.isMeshLambertMaterial || material.isMeshBasicMaterial || material.isMeshStandardMaterial || material.isShaderMaterial || material.isShadowMaterial || material.skinning) {\r\n\t\t\t\t\tp_uniforms.setValue(_gl, 'viewMatrix', camera.matrixWorldInverse);\r\n\t\t\t\t}\r\n\t\t\t} // skinning uniforms must be set even if material didn't change\r\n\t\t\t// auto-setting of texture unit for bone texture must go before other textures\r\n\t\t\t// otherwise textures used for skinning can take over texture units reserved for other material textures\r\n\r\n\r\n\t\t\tif (material.skinning) {\r\n\t\t\t\tp_uniforms.setOptional(_gl, object, 'bindMatrix');\r\n\t\t\t\tp_uniforms.setOptional(_gl, object, 'bindMatrixInverse');\r\n\t\t\t\tvar skeleton = object.skeleton;\r\n\r\n\t\t\t\tif (skeleton) {\r\n\t\t\t\t\tvar bones = skeleton.bones;\r\n\r\n\t\t\t\t\tif (capabilities.floatVertexTextures) {\r\n\t\t\t\t\t\tif (skeleton.boneTexture === null) {\r\n\t\t\t\t\t\t\t// layout (1 matrix = 4 pixels)\r\n\t\t\t\t\t\t\t//\t\t\tRGBA RGBA RGBA RGBA (=> column1, column2, column3, column4)\r\n\t\t\t\t\t\t\t//\twith\t8x8\tpixel texture max\t 16 bones * 4 pixels =\t(8 * 8)\r\n\t\t\t\t\t\t\t//\t\t\t 16x16 pixel texture max\t 64 bones * 4 pixels = (16 * 16)\r\n\t\t\t\t\t\t\t//\t\t\t 32x32 pixel texture max\t256 bones * 4 pixels = (32 * 32)\r\n\t\t\t\t\t\t\t//\t\t\t 64x64 pixel texture max 1024 bones * 4 pixels = (64 * 64)\r\n\t\t\t\t\t\t\tvar size = Math.sqrt(bones.length * 4); // 4 pixels needed for 1 matrix\r\n\r\n\t\t\t\t\t\t\tsize = MathUtils.ceilPowerOfTwo(size);\r\n\t\t\t\t\t\t\tsize = Math.max(size, 4);\r\n\t\t\t\t\t\t\tvar boneMatrices = new Float32Array(size * size * 4); // 4 floats per RGBA pixel\r\n\r\n\t\t\t\t\t\t\tboneMatrices.set(skeleton.boneMatrices); // copy current values\r\n\r\n\t\t\t\t\t\t\tvar boneTexture = new DataTexture(boneMatrices, size, size, RGBAFormat, FloatType);\r\n\t\t\t\t\t\t\tskeleton.boneMatrices = boneMatrices;\r\n\t\t\t\t\t\t\tskeleton.boneTexture = boneTexture;\r\n\t\t\t\t\t\t\tskeleton.boneTextureSize = size;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tp_uniforms.setValue(_gl, 'boneTexture', skeleton.boneTexture, textures);\r\n\t\t\t\t\t\tp_uniforms.setValue(_gl, 'boneTextureSize', skeleton.boneTextureSize);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tp_uniforms.setOptional(_gl, skeleton, 'boneMatrices');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (refreshMaterial || materialProperties.receiveShadow !== object.receiveShadow) {\r\n\t\t\t\tmaterialProperties.receiveShadow = object.receiveShadow;\r\n\t\t\t\tp_uniforms.setValue(_gl, 'receiveShadow', object.receiveShadow);\r\n\t\t\t}\r\n\r\n\t\t\tif (refreshMaterial) {\r\n\t\t\t\tp_uniforms.setValue(_gl, 'toneMappingExposure', _this.toneMappingExposure);\r\n\r\n\t\t\t\tif (materialProperties.needsLights) {\r\n\t\t\t\t\t// the current material requires lighting info\r\n\t\t\t\t\t// note: all lighting uniforms are always set correctly\r\n\t\t\t\t\t// they simply reference the renderer's state for their\r\n\t\t\t\t\t// values\r\n\t\t\t\t\t//\r\n\t\t\t\t\t// use the current material's .needsUpdate flags to set\r\n\t\t\t\t\t// the GL state when required\r\n\t\t\t\t\tmarkUniformsLightsNeedsUpdate(m_uniforms, refreshLights);\r\n\t\t\t\t} // refresh uniforms common to several materials\r\n\r\n\r\n\t\t\t\tif (fog && material.fog) {\r\n\t\t\t\t\tmaterials.refreshFogUniforms(m_uniforms, fog);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tmaterials.refreshMaterialUniforms(m_uniforms, material, _pixelRatio, _height);\r\n\t\t\t\tWebGLUniforms.upload(_gl, materialProperties.uniformsList, m_uniforms, textures);\r\n\t\t\t}\r\n\r\n\t\t\tif (material.isShaderMaterial && material.uniformsNeedUpdate === true) {\r\n\t\t\t\tWebGLUniforms.upload(_gl, materialProperties.uniformsList, m_uniforms, textures);\r\n\t\t\t\tmaterial.uniformsNeedUpdate = false;\r\n\t\t\t}\r\n\r\n\t\t\tif (material.isSpriteMaterial) {\r\n\t\t\t\tp_uniforms.setValue(_gl, 'center', object.center);\r\n\t\t\t} // common matrices\r\n\r\n\r\n\t\t\tp_uniforms.setValue(_gl, 'modelViewMatrix', object.modelViewMatrix);\r\n\t\t\tp_uniforms.setValue(_gl, 'normalMatrix', object.normalMatrix);\r\n\t\t\tp_uniforms.setValue(_gl, 'modelMatrix', object.matrixWorld);\r\n\t\t\treturn program;\r\n\t\t} // If uniforms are marked as clean, they don't need to be loaded to the GPU.\r\n\r\n\r\n\t\tfunction markUniformsLightsNeedsUpdate(uniforms, value) {\r\n\t\t\tuniforms.ambientLightColor.needsUpdate = value;\r\n\t\t\tuniforms.lightProbe.needsUpdate = value;\r\n\t\t\tuniforms.directionalLights.needsUpdate = value;\r\n\t\t\tuniforms.directionalLightShadows.needsUpdate = value;\r\n\t\t\tuniforms.pointLights.needsUpdate = value;\r\n\t\t\tuniforms.pointLightShadows.needsUpdate = value;\r\n\t\t\tuniforms.spotLights.needsUpdate = value;\r\n\t\t\tuniforms.spotLightShadows.needsUpdate = value;\r\n\t\t\tuniforms.rectAreaLights.needsUpdate = value;\r\n\t\t\tuniforms.hemisphereLights.needsUpdate = value;\r\n\t\t}\r\n\r\n\t\tfunction materialNeedsLights(material) {\r\n\t\t\treturn material.isMeshLambertMaterial || material.isMeshToonMaterial || material.isMeshPhongMaterial || material.isMeshStandardMaterial || material.isShadowMaterial || material.isShaderMaterial && material.lights === true;\r\n\t\t} //\r\n\r\n\r\n\t\tthis.setFramebuffer = function (value) {\r\n\t\t\tif (_framebuffer !== value && _currentRenderTarget === null) _gl.bindFramebuffer(36160, value);\r\n\t\t\t_framebuffer = value;\r\n\t\t};\r\n\r\n\t\tthis.getActiveCubeFace = function () {\r\n\t\t\treturn _currentActiveCubeFace;\r\n\t\t};\r\n\r\n\t\tthis.getActiveMipmapLevel = function () {\r\n\t\t\treturn _currentActiveMipmapLevel;\r\n\t\t};\r\n\r\n\t\tthis.getRenderList = function () {\r\n\t\t\treturn currentRenderList;\r\n\t\t};\r\n\r\n\t\tthis.setRenderList = function (renderList) {\r\n\t\t\tcurrentRenderList = renderList;\r\n\t\t};\r\n\r\n\t\tthis.getRenderState = function () {\r\n\t\t\treturn currentRenderState;\r\n\t\t};\r\n\r\n\t\tthis.setRenderState = function (renderState) {\r\n\t\t\tcurrentRenderState = renderState;\r\n\t\t};\r\n\r\n\t\tthis.getRenderTarget = function () {\r\n\t\t\treturn _currentRenderTarget;\r\n\t\t};\r\n\r\n\t\tthis.setRenderTarget = function (renderTarget, activeCubeFace, activeMipmapLevel) {\r\n\t\t\tif (activeCubeFace === void 0) {\r\n\t\t\t\tactiveCubeFace = 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (activeMipmapLevel === void 0) {\r\n\t\t\t\tactiveMipmapLevel = 0;\r\n\t\t\t}\r\n\r\n\t\t\t_currentRenderTarget = renderTarget;\r\n\t\t\t_currentActiveCubeFace = activeCubeFace;\r\n\t\t\t_currentActiveMipmapLevel = activeMipmapLevel;\r\n\r\n\t\t\tif (renderTarget && properties.get(renderTarget).__webglFramebuffer === undefined) {\r\n\t\t\t\ttextures.setupRenderTarget(renderTarget);\r\n\t\t\t}\r\n\r\n\t\t\tvar framebuffer = _framebuffer;\r\n\t\t\tvar isCube = false;\r\n\r\n\t\t\tif (renderTarget) {\r\n\t\t\t\tvar __webglFramebuffer = properties.get(renderTarget).__webglFramebuffer;\r\n\r\n\t\t\t\tif (renderTarget.isWebGLCubeRenderTarget) {\r\n\t\t\t\t\tframebuffer = __webglFramebuffer[activeCubeFace];\r\n\t\t\t\t\tisCube = true;\r\n\t\t\t\t} else if (renderTarget.isWebGLMultisampleRenderTarget) {\r\n\t\t\t\t\tframebuffer = properties.get(renderTarget).__webglMultisampledFramebuffer;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tframebuffer = __webglFramebuffer;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t_currentViewport.copy(renderTarget.viewport);\r\n\r\n\t\t\t\t_currentScissor.copy(renderTarget.scissor);\r\n\r\n\t\t\t\t_currentScissorTest = renderTarget.scissorTest;\r\n\t\t\t} else {\r\n\t\t\t\t_currentViewport.copy(_viewport).multiplyScalar(_pixelRatio).floor();\r\n\r\n\t\t\t\t_currentScissor.copy(_scissor).multiplyScalar(_pixelRatio).floor();\r\n\r\n\t\t\t\t_currentScissorTest = _scissorTest;\r\n\t\t\t}\r\n\r\n\t\t\tif (_currentFramebuffer !== framebuffer) {\r\n\t\t\t\t_gl.bindFramebuffer(36160, framebuffer);\r\n\r\n\t\t\t\t_currentFramebuffer = framebuffer;\r\n\t\t\t}\r\n\r\n\t\t\tstate.viewport(_currentViewport);\r\n\t\t\tstate.scissor(_currentScissor);\r\n\t\t\tstate.setScissorTest(_currentScissorTest);\r\n\r\n\t\t\tif (isCube) {\r\n\t\t\t\tvar textureProperties = properties.get(renderTarget.texture);\r\n\r\n\t\t\t\t_gl.framebufferTexture2D(36160, 36064, 34069 + activeCubeFace, textureProperties.__webglTexture, activeMipmapLevel);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tthis.readRenderTargetPixels = function (renderTarget, x, y, width, height, buffer, activeCubeFaceIndex) {\r\n\t\t\tif (!(renderTarget && renderTarget.isWebGLRenderTarget)) {\r\n\t\t\t\tconsole.error('THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar framebuffer = properties.get(renderTarget).__webglFramebuffer;\r\n\r\n\t\t\tif (renderTarget.isWebGLCubeRenderTarget && activeCubeFaceIndex !== undefined) {\r\n\t\t\t\tframebuffer = framebuffer[activeCubeFaceIndex];\r\n\t\t\t}\r\n\r\n\t\t\tif (framebuffer) {\r\n\t\t\t\tvar restore = false;\r\n\r\n\t\t\t\tif (framebuffer !== _currentFramebuffer) {\r\n\t\t\t\t\t_gl.bindFramebuffer(36160, framebuffer);\r\n\r\n\t\t\t\t\trestore = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttry {\r\n\t\t\t\t\tvar texture = renderTarget.texture;\r\n\t\t\t\t\tvar textureFormat = texture.format;\r\n\t\t\t\t\tvar textureType = texture.type;\r\n\r\n\t\t\t\t\tif (textureFormat !== RGBAFormat && utils.convert(textureFormat) !== _gl.getParameter(35739)) {\r\n\t\t\t\t\t\tconsole.error('THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.');\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (textureType !== UnsignedByteType && utils.convert(textureType) !== _gl.getParameter(35738) && // IE11, Edge and Chrome Mac < 52 (#9513)\r\n\t\t\t\t\t!(textureType === FloatType && (capabilities.isWebGL2 || extensions.get('OES_texture_float') || extensions.get('WEBGL_color_buffer_float'))) && // Chrome Mac >= 52 and Firefox\r\n\t\t\t\t\t!(textureType === HalfFloatType && (capabilities.isWebGL2 ? extensions.get('EXT_color_buffer_float') : extensions.get('EXT_color_buffer_half_float')))) {\r\n\t\t\t\t\t\tconsole.error('THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.');\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (_gl.checkFramebufferStatus(36160) === 36053) {\r\n\t\t\t\t\t\t// the following if statement ensures valid read requests (no out-of-bounds pixels, see #8604)\r\n\t\t\t\t\t\tif (x >= 0 && x <= renderTarget.width - width && y >= 0 && y <= renderTarget.height - height) {\r\n\t\t\t\t\t\t\t_gl.readPixels(x, y, width, height, utils.convert(textureFormat), utils.convert(textureType), buffer);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconsole.error('THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.');\r\n\t\t\t\t\t}\r\n\t\t\t\t} finally {\r\n\t\t\t\t\tif (restore) {\r\n\t\t\t\t\t\t_gl.bindFramebuffer(36160, _currentFramebuffer);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tthis.copyFramebufferToTexture = function (position, texture, level) {\r\n\t\t\tif (level === void 0) {\r\n\t\t\t\tlevel = 0;\r\n\t\t\t}\r\n\r\n\t\t\tvar levelScale = Math.pow(2, -level);\r\n\t\t\tvar width = Math.floor(texture.image.width * levelScale);\r\n\t\t\tvar height = Math.floor(texture.image.height * levelScale);\r\n\t\t\tvar glFormat = utils.convert(texture.format);\r\n\t\t\ttextures.setTexture2D(texture, 0);\r\n\r\n\t\t\t_gl.copyTexImage2D(3553, level, glFormat, position.x, position.y, width, height, 0);\r\n\r\n\t\t\tstate.unbindTexture();\r\n\t\t};\r\n\r\n\t\tthis.copyTextureToTexture = function (position, srcTexture, dstTexture, level) {\r\n\t\t\tif (level === void 0) {\r\n\t\t\t\tlevel = 0;\r\n\t\t\t}\r\n\r\n\t\t\tvar width = srcTexture.image.width;\r\n\t\t\tvar height = srcTexture.image.height;\r\n\t\t\tvar glFormat = utils.convert(dstTexture.format);\r\n\t\t\tvar glType = utils.convert(dstTexture.type);\r\n\t\t\ttextures.setTexture2D(dstTexture, 0); // As another texture upload may have changed pixelStorei\r\n\t\t\t// parameters, make sure they are correct for the dstTexture\r\n\r\n\t\t\t_gl.pixelStorei(37440, dstTexture.flipY);\r\n\r\n\t\t\t_gl.pixelStorei(37441, dstTexture.premultiplyAlpha);\r\n\r\n\t\t\t_gl.pixelStorei(3317, dstTexture.unpackAlignment);\r\n\r\n\t\t\tif (srcTexture.isDataTexture) {\r\n\t\t\t\t_gl.texSubImage2D(3553, level, position.x, position.y, width, height, glFormat, glType, srcTexture.image.data);\r\n\t\t\t} else {\r\n\t\t\t\tif (srcTexture.isCompressedTexture) {\r\n\t\t\t\t\t_gl.compressedTexSubImage2D(3553, level, position.x, position.y, srcTexture.mipmaps[0].width, srcTexture.mipmaps[0].height, glFormat, srcTexture.mipmaps[0].data);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t_gl.texSubImage2D(3553, level, position.x, position.y, glFormat, glType, srcTexture.image);\r\n\t\t\t\t}\r\n\t\t\t} // Generate mipmaps only when copying level 0\r\n\r\n\r\n\t\t\tif (level === 0 && dstTexture.generateMipmaps) _gl.generateMipmap(3553);\r\n\t\t\tstate.unbindTexture();\r\n\t\t};\r\n\r\n\t\tthis.initTexture = function (texture) {\r\n\t\t\ttextures.setTexture2D(texture, 0);\r\n\t\t\tstate.unbindTexture();\r\n\t\t};\r\n\r\n\t\tif (typeof __THREE_DEVTOOLS__ !== 'undefined') {\r\n\t\t\t__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent('observe', {\r\n\t\t\t\tdetail: this\r\n\t\t\t})); // eslint-disable-line no-undef\r\n\r\n\t\t}\r\n\t}\r\n\r\n\tfunction WebGL1Renderer(parameters) {\r\n\t\tWebGLRenderer.call(this, parameters);\r\n\t}\r\n\r\n\tWebGL1Renderer.prototype = Object.assign(Object.create(WebGLRenderer.prototype), {\r\n\t\tconstructor: WebGL1Renderer,\r\n\t\tisWebGL1Renderer: true\r\n\t});\r\n\r\n\tvar FogExp2 = /*#__PURE__*/function () {\r\n\t\tfunction FogExp2(color, density) {\r\n\t\t\tObject.defineProperty(this, 'isFogExp2', {\r\n\t\t\t\tvalue: true\r\n\t\t\t});\r\n\t\t\tthis.name = '';\r\n\t\t\tthis.color = new Color(color);\r\n\t\t\tthis.density = density !== undefined ? density : 0.00025;\r\n\t\t}\r\n\r\n\t\tvar _proto = FogExp2.prototype;\r\n\r\n\t\t_proto.clone = function clone() {\r\n\t\t\treturn new FogExp2(this.color, this.density);\r\n\t\t};\r\n\r\n\t\t_proto.toJSON = function toJSON()\r\n\t\t/* meta */\r\n\t\t{\r\n\t\t\treturn {\r\n\t\t\t\ttype: 'FogExp2',\r\n\t\t\t\tcolor: this.color.getHex(),\r\n\t\t\t\tdensity: this.density\r\n\t\t\t};\r\n\t\t};\r\n\r\n\t\treturn FogExp2;\r\n\t}();\r\n\r\n\tvar Fog = /*#__PURE__*/function () {\r\n\t\tfunction Fog(color, near, far) {\r\n\t\t\tObject.defineProperty(this, 'isFog', {\r\n\t\t\t\tvalue: true\r\n\t\t\t});\r\n\t\t\tthis.name = '';\r\n\t\t\tthis.color = new Color(color);\r\n\t\t\tthis.near = near !== undefined ? near : 1;\r\n\t\t\tthis.far = far !== undefined ? far : 1000;\r\n\t\t}\r\n\r\n\t\tvar _proto = Fog.prototype;\r\n\r\n\t\t_proto.clone = function clone() {\r\n\t\t\treturn new Fog(this.color, this.near, this.far);\r\n\t\t};\r\n\r\n\t\t_proto.toJSON = function toJSON()\r\n\t\t/* meta */\r\n\t\t{\r\n\t\t\treturn {\r\n\t\t\t\ttype: 'Fog',\r\n\t\t\t\tcolor: this.color.getHex(),\r\n\t\t\t\tnear: this.near,\r\n\t\t\t\tfar: this.far\r\n\t\t\t};\r\n\t\t};\r\n\r\n\t\treturn Fog;\r\n\t}();\r\n\r\n\tvar Scene = /*#__PURE__*/function (_Object3D) {\r\n\t\t_inheritsLoose(Scene, _Object3D);\r\n\r\n\t\tfunction Scene() {\r\n\t\t\tvar _this;\r\n\r\n\t\t\t_this = _Object3D.call(this) || this;\r\n\t\t\tObject.defineProperty(_assertThisInitialized(_this), 'isScene', {\r\n\t\t\t\tvalue: true\r\n\t\t\t});\r\n\t\t\t_this.type = 'Scene';\r\n\t\t\t_this.background = null;\r\n\t\t\t_this.environment = null;\r\n\t\t\t_this.fog = null;\r\n\t\t\t_this.overrideMaterial = null;\r\n\t\t\t_this.autoUpdate = true; // checked by the renderer\r\n\r\n\t\t\tif (typeof __THREE_DEVTOOLS__ !== 'undefined') {\r\n\t\t\t\t__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent('observe', {\r\n\t\t\t\t\tdetail: _assertThisInitialized(_this)\r\n\t\t\t\t})); // eslint-disable-line no-undef\r\n\r\n\t\t\t}\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\tvar _proto = Scene.prototype;\r\n\r\n\t\t_proto.copy = function copy(source, recursive) {\r\n\t\t\t_Object3D.prototype.copy.call(this, source, recursive);\r\n\r\n\t\t\tif (source.background !== null) this.background = source.background.clone();\r\n\t\t\tif (source.environment !== null) this.environment = source.environment.clone();\r\n\t\t\tif (source.fog !== null) this.fog = source.fog.clone();\r\n\t\t\tif (source.overrideMaterial !== null) this.overrideMaterial = source.overrideMaterial.clone();\r\n\t\t\tthis.autoUpdate = source.autoUpdate;\r\n\t\t\tthis.matrixAutoUpdate = source.matrixAutoUpdate;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.toJSON = function toJSON(meta) {\r\n\t\t\tvar data = _Object3D.prototype.toJSON.call(this, meta);\r\n\r\n\t\t\tif (this.background !== null) data.object.background = this.background.toJSON(meta);\r\n\t\t\tif (this.environment !== null) data.object.environment = this.environment.toJSON(meta);\r\n\t\t\tif (this.fog !== null) data.object.fog = this.fog.toJSON();\r\n\t\t\treturn data;\r\n\t\t};\r\n\r\n\t\treturn Scene;\r\n\t}(Object3D);\r\n\r\n\tfunction InterleavedBuffer(array, stride) {\r\n\t\tthis.array = array;\r\n\t\tthis.stride = stride;\r\n\t\tthis.count = array !== undefined ? array.length / stride : 0;\r\n\t\tthis.usage = StaticDrawUsage;\r\n\t\tthis.updateRange = {\r\n\t\t\toffset: 0,\r\n\t\t\tcount: -1\r\n\t\t};\r\n\t\tthis.version = 0;\r\n\t\tthis.uuid = MathUtils.generateUUID();\r\n\t}\r\n\r\n\tObject.defineProperty(InterleavedBuffer.prototype, 'needsUpdate', {\r\n\t\tset: function set(value) {\r\n\t\t\tif (value === true) this.version++;\r\n\t\t}\r\n\t});\r\n\tObject.assign(InterleavedBuffer.prototype, {\r\n\t\tisInterleavedBuffer: true,\r\n\t\tonUploadCallback: function onUploadCallback() {},\r\n\t\tsetUsage: function setUsage(value) {\r\n\t\t\tthis.usage = value;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tcopy: function copy(source) {\r\n\t\t\tthis.array = new source.array.constructor(source.array);\r\n\t\t\tthis.count = source.count;\r\n\t\t\tthis.stride = source.stride;\r\n\t\t\tthis.usage = source.usage;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tcopyAt: function copyAt(index1, attribute, index2) {\r\n\t\t\tindex1 *= this.stride;\r\n\t\t\tindex2 *= attribute.stride;\r\n\r\n\t\t\tfor (var i = 0, l = this.stride; i < l; i++) {\r\n\t\t\t\tthis.array[index1 + i] = attribute.array[index2 + i];\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tset: function set(value, offset) {\r\n\t\t\tif (offset === void 0) {\r\n\t\t\t\toffset = 0;\r\n\t\t\t}\r\n\r\n\t\t\tthis.array.set(value, offset);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tclone: function clone(data) {\r\n\t\t\tif (data.arrayBuffers === undefined) {\r\n\t\t\t\tdata.arrayBuffers = {};\r\n\t\t\t}\r\n\r\n\t\t\tif (this.array.buffer._uuid === undefined) {\r\n\t\t\t\tthis.array.buffer._uuid = MathUtils.generateUUID();\r\n\t\t\t}\r\n\r\n\t\t\tif (data.arrayBuffers[this.array.buffer._uuid] === undefined) {\r\n\t\t\t\tdata.arrayBuffers[this.array.buffer._uuid] = this.array.slice(0).buffer;\r\n\t\t\t}\r\n\r\n\t\t\tvar array = new this.array.constructor(data.arrayBuffers[this.array.buffer._uuid]);\r\n\t\t\tvar ib = new InterleavedBuffer(array, this.stride);\r\n\t\t\tib.setUsage(this.usage);\r\n\t\t\treturn ib;\r\n\t\t},\r\n\t\tonUpload: function onUpload(callback) {\r\n\t\t\tthis.onUploadCallback = callback;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\ttoJSON: function toJSON(data) {\r\n\t\t\tif (data.arrayBuffers === undefined) {\r\n\t\t\t\tdata.arrayBuffers = {};\r\n\t\t\t} // generate UUID for array buffer if necessary\r\n\r\n\r\n\t\t\tif (this.array.buffer._uuid === undefined) {\r\n\t\t\t\tthis.array.buffer._uuid = MathUtils.generateUUID();\r\n\t\t\t}\r\n\r\n\t\t\tif (data.arrayBuffers[this.array.buffer._uuid] === undefined) {\r\n\t\t\t\tdata.arrayBuffers[this.array.buffer._uuid] = Array.prototype.slice.call(new Uint32Array(this.array.buffer));\r\n\t\t\t} //\r\n\r\n\r\n\t\t\treturn {\r\n\t\t\t\tuuid: this.uuid,\r\n\t\t\t\tbuffer: this.array.buffer._uuid,\r\n\t\t\t\ttype: this.array.constructor.name,\r\n\t\t\t\tstride: this.stride\r\n\t\t\t};\r\n\t\t}\r\n\t});\r\n\r\n\tvar _vector$6 = new Vector3();\r\n\r\n\tfunction InterleavedBufferAttribute(interleavedBuffer, itemSize, offset, normalized) {\r\n\t\tthis.name = '';\r\n\t\tthis.data = interleavedBuffer;\r\n\t\tthis.itemSize = itemSize;\r\n\t\tthis.offset = offset;\r\n\t\tthis.normalized = normalized === true;\r\n\t}\r\n\r\n\tObject.defineProperties(InterleavedBufferAttribute.prototype, {\r\n\t\tcount: {\r\n\t\t\tget: function get() {\r\n\t\t\t\treturn this.data.count;\r\n\t\t\t}\r\n\t\t},\r\n\t\tarray: {\r\n\t\t\tget: function get() {\r\n\t\t\t\treturn this.data.array;\r\n\t\t\t}\r\n\t\t},\r\n\t\tneedsUpdate: {\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tthis.data.needsUpdate = value;\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\tObject.assign(InterleavedBufferAttribute.prototype, {\r\n\t\tisInterleavedBufferAttribute: true,\r\n\t\tapplyMatrix4: function applyMatrix4(m) {\r\n\t\t\tfor (var i = 0, l = this.data.count; i < l; i++) {\r\n\t\t\t\t_vector$6.x = this.getX(i);\r\n\t\t\t\t_vector$6.y = this.getY(i);\r\n\t\t\t\t_vector$6.z = this.getZ(i);\r\n\r\n\t\t\t\t_vector$6.applyMatrix4(m);\r\n\r\n\t\t\t\tthis.setXYZ(i, _vector$6.x, _vector$6.y, _vector$6.z);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tsetX: function setX(index, x) {\r\n\t\t\tthis.data.array[index * this.data.stride + this.offset] = x;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tsetY: function setY(index, y) {\r\n\t\t\tthis.data.array[index * this.data.stride + this.offset + 1] = y;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tsetZ: function setZ(index, z) {\r\n\t\t\tthis.data.array[index * this.data.stride + this.offset + 2] = z;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tsetW: function setW(index, w) {\r\n\t\t\tthis.data.array[index * this.data.stride + this.offset + 3] = w;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tgetX: function getX(index) {\r\n\t\t\treturn this.data.array[index * this.data.stride + this.offset];\r\n\t\t},\r\n\t\tgetY: function getY(index) {\r\n\t\t\treturn this.data.array[index * this.data.stride + this.offset + 1];\r\n\t\t},\r\n\t\tgetZ: function getZ(index) {\r\n\t\t\treturn this.data.array[index * this.data.stride + this.offset + 2];\r\n\t\t},\r\n\t\tgetW: function getW(index) {\r\n\t\t\treturn this.data.array[index * this.data.stride + this.offset + 3];\r\n\t\t},\r\n\t\tsetXY: function setXY(index, x, y) {\r\n\t\t\tindex = index * this.data.stride + this.offset;\r\n\t\t\tthis.data.array[index + 0] = x;\r\n\t\t\tthis.data.array[index + 1] = y;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tsetXYZ: function setXYZ(index, x, y, z) {\r\n\t\t\tindex = index * this.data.stride + this.offset;\r\n\t\t\tthis.data.array[index + 0] = x;\r\n\t\t\tthis.data.array[index + 1] = y;\r\n\t\t\tthis.data.array[index + 2] = z;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tsetXYZW: function setXYZW(index, x, y, z, w) {\r\n\t\t\tindex = index * this.data.stride + this.offset;\r\n\t\t\tthis.data.array[index + 0] = x;\r\n\t\t\tthis.data.array[index + 1] = y;\r\n\t\t\tthis.data.array[index + 2] = z;\r\n\t\t\tthis.data.array[index + 3] = w;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tclone: function clone(data) {\r\n\t\t\tif (data === undefined) {\r\n\t\t\t\tconsole.log('THREE.InterleavedBufferAttribute.clone(): Cloning an interlaved buffer attribute will deinterleave buffer data.');\r\n\t\t\t\tvar array = [];\r\n\r\n\t\t\t\tfor (var i = 0; i < this.count; i++) {\r\n\t\t\t\t\tvar index = i * this.data.stride + this.offset;\r\n\r\n\t\t\t\t\tfor (var j = 0; j < this.itemSize; j++) {\r\n\t\t\t\t\t\tarray.push(this.data.array[index + j]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn new BufferAttribute(new this.array.constructor(array), this.itemSize, this.normalized);\r\n\t\t\t} else {\r\n\t\t\t\tif (data.interleavedBuffers === undefined) {\r\n\t\t\t\t\tdata.interleavedBuffers = {};\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (data.interleavedBuffers[this.data.uuid] === undefined) {\r\n\t\t\t\t\tdata.interleavedBuffers[this.data.uuid] = this.data.clone(data);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn new InterleavedBufferAttribute(data.interleavedBuffers[this.data.uuid], this.itemSize, this.offset, this.normalized);\r\n\t\t\t}\r\n\t\t},\r\n\t\ttoJSON: function toJSON(data) {\r\n\t\t\tif (data === undefined) {\r\n\t\t\t\tconsole.log('THREE.InterleavedBufferAttribute.toJSON(): Serializing an interlaved buffer attribute will deinterleave buffer data.');\r\n\t\t\t\tvar array = [];\r\n\r\n\t\t\t\tfor (var i = 0; i < this.count; i++) {\r\n\t\t\t\t\tvar index = i * this.data.stride + this.offset;\r\n\r\n\t\t\t\t\tfor (var j = 0; j < this.itemSize; j++) {\r\n\t\t\t\t\t\tarray.push(this.data.array[index + j]);\r\n\t\t\t\t\t}\r\n\t\t\t\t} // deinterleave data and save it as an ordinary buffer attribute for now\r\n\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\titemSize: this.itemSize,\r\n\t\t\t\t\ttype: this.array.constructor.name,\r\n\t\t\t\t\tarray: array,\r\n\t\t\t\t\tnormalized: this.normalized\r\n\t\t\t\t};\r\n\t\t\t} else {\r\n\t\t\t\t// save as true interlaved attribtue\r\n\t\t\t\tif (data.interleavedBuffers === undefined) {\r\n\t\t\t\t\tdata.interleavedBuffers = {};\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (data.interleavedBuffers[this.data.uuid] === undefined) {\r\n\t\t\t\t\tdata.interleavedBuffers[this.data.uuid] = this.data.toJSON(data);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tisInterleavedBufferAttribute: true,\r\n\t\t\t\t\titemSize: this.itemSize,\r\n\t\t\t\t\tdata: this.data.uuid,\r\n\t\t\t\t\toffset: this.offset,\r\n\t\t\t\t\tnormalized: this.normalized\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t * parameters = {\r\n\t *\tcolor: ,\r\n\t *\tmap: new THREE.Texture( ),\r\n\t *\talphaMap: new THREE.Texture( ),\r\n\t *\trotation: ,\r\n\t *\tsizeAttenuation: \r\n\t * }\r\n\t */\r\n\r\n\tfunction SpriteMaterial(parameters) {\r\n\t\tMaterial.call(this);\r\n\t\tthis.type = 'SpriteMaterial';\r\n\t\tthis.color = new Color(0xffffff);\r\n\t\tthis.map = null;\r\n\t\tthis.alphaMap = null;\r\n\t\tthis.rotation = 0;\r\n\t\tthis.sizeAttenuation = true;\r\n\t\tthis.transparent = true;\r\n\t\tthis.setValues(parameters);\r\n\t}\r\n\r\n\tSpriteMaterial.prototype = Object.create(Material.prototype);\r\n\tSpriteMaterial.prototype.constructor = SpriteMaterial;\r\n\tSpriteMaterial.prototype.isSpriteMaterial = true;\r\n\r\n\tSpriteMaterial.prototype.copy = function (source) {\r\n\t\tMaterial.prototype.copy.call(this, source);\r\n\t\tthis.color.copy(source.color);\r\n\t\tthis.map = source.map;\r\n\t\tthis.alphaMap = source.alphaMap;\r\n\t\tthis.rotation = source.rotation;\r\n\t\tthis.sizeAttenuation = source.sizeAttenuation;\r\n\t\treturn this;\r\n\t};\r\n\r\n\tvar _geometry;\r\n\r\n\tvar _intersectPoint = new Vector3();\r\n\r\n\tvar _worldScale = new Vector3();\r\n\r\n\tvar _mvPosition = new Vector3();\r\n\r\n\tvar _alignedPosition = new Vector2();\r\n\r\n\tvar _rotatedPosition = new Vector2();\r\n\r\n\tvar _viewWorldMatrix = new Matrix4();\r\n\r\n\tvar _vA$1 = new Vector3();\r\n\r\n\tvar _vB$1 = new Vector3();\r\n\r\n\tvar _vC$1 = new Vector3();\r\n\r\n\tvar _uvA$1 = new Vector2();\r\n\r\n\tvar _uvB$1 = new Vector2();\r\n\r\n\tvar _uvC$1 = new Vector2();\r\n\r\n\tfunction Sprite(material) {\r\n\t\tObject3D.call(this);\r\n\t\tthis.type = 'Sprite';\r\n\r\n\t\tif (_geometry === undefined) {\r\n\t\t\t_geometry = new BufferGeometry();\r\n\t\t\tvar float32Array = new Float32Array([-0.5, -0.5, 0, 0, 0, 0.5, -0.5, 0, 1, 0, 0.5, 0.5, 0, 1, 1, -0.5, 0.5, 0, 0, 1]);\r\n\t\t\tvar interleavedBuffer = new InterleavedBuffer(float32Array, 5);\r\n\r\n\t\t\t_geometry.setIndex([0, 1, 2, 0, 2, 3]);\r\n\r\n\t\t\t_geometry.setAttribute('position', new InterleavedBufferAttribute(interleavedBuffer, 3, 0, false));\r\n\r\n\t\t\t_geometry.setAttribute('uv', new InterleavedBufferAttribute(interleavedBuffer, 2, 3, false));\r\n\t\t}\r\n\r\n\t\tthis.geometry = _geometry;\r\n\t\tthis.material = material !== undefined ? material : new SpriteMaterial();\r\n\t\tthis.center = new Vector2(0.5, 0.5);\r\n\t}\r\n\r\n\tSprite.prototype = Object.assign(Object.create(Object3D.prototype), {\r\n\t\tconstructor: Sprite,\r\n\t\tisSprite: true,\r\n\t\traycast: function raycast(raycaster, intersects) {\r\n\t\t\tif (raycaster.camera === null) {\r\n\t\t\t\tconsole.error('THREE.Sprite: \"Raycaster.camera\" needs to be set in order to raycast against sprites.');\r\n\t\t\t}\r\n\r\n\t\t\t_worldScale.setFromMatrixScale(this.matrixWorld);\r\n\r\n\t\t\t_viewWorldMatrix.copy(raycaster.camera.matrixWorld);\r\n\r\n\t\t\tthis.modelViewMatrix.multiplyMatrices(raycaster.camera.matrixWorldInverse, this.matrixWorld);\r\n\r\n\t\t\t_mvPosition.setFromMatrixPosition(this.modelViewMatrix);\r\n\r\n\t\t\tif (raycaster.camera.isPerspectiveCamera && this.material.sizeAttenuation === false) {\r\n\t\t\t\t_worldScale.multiplyScalar(-_mvPosition.z);\r\n\t\t\t}\r\n\r\n\t\t\tvar rotation = this.material.rotation;\r\n\t\t\tvar sin, cos;\r\n\r\n\t\t\tif (rotation !== 0) {\r\n\t\t\t\tcos = Math.cos(rotation);\r\n\t\t\t\tsin = Math.sin(rotation);\r\n\t\t\t}\r\n\r\n\t\t\tvar center = this.center;\r\n\t\t\ttransformVertex(_vA$1.set(-0.5, -0.5, 0), _mvPosition, center, _worldScale, sin, cos);\r\n\t\t\ttransformVertex(_vB$1.set(0.5, -0.5, 0), _mvPosition, center, _worldScale, sin, cos);\r\n\t\t\ttransformVertex(_vC$1.set(0.5, 0.5, 0), _mvPosition, center, _worldScale, sin, cos);\r\n\r\n\t\t\t_uvA$1.set(0, 0);\r\n\r\n\t\t\t_uvB$1.set(1, 0);\r\n\r\n\t\t\t_uvC$1.set(1, 1); // check first triangle\r\n\r\n\r\n\t\t\tvar intersect = raycaster.ray.intersectTriangle(_vA$1, _vB$1, _vC$1, false, _intersectPoint);\r\n\r\n\t\t\tif (intersect === null) {\r\n\t\t\t\t// check second triangle\r\n\t\t\t\ttransformVertex(_vB$1.set(-0.5, 0.5, 0), _mvPosition, center, _worldScale, sin, cos);\r\n\r\n\t\t\t\t_uvB$1.set(0, 1);\r\n\r\n\t\t\t\tintersect = raycaster.ray.intersectTriangle(_vA$1, _vC$1, _vB$1, false, _intersectPoint);\r\n\r\n\t\t\t\tif (intersect === null) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar distance = raycaster.ray.origin.distanceTo(_intersectPoint);\r\n\t\t\tif (distance < raycaster.near || distance > raycaster.far) return;\r\n\t\t\tintersects.push({\r\n\t\t\t\tdistance: distance,\r\n\t\t\t\tpoint: _intersectPoint.clone(),\r\n\t\t\t\tuv: Triangle.getUV(_intersectPoint, _vA$1, _vB$1, _vC$1, _uvA$1, _uvB$1, _uvC$1, new Vector2()),\r\n\t\t\t\tface: null,\r\n\t\t\t\tobject: this\r\n\t\t\t});\r\n\t\t},\r\n\t\tcopy: function copy(source) {\r\n\t\t\tObject3D.prototype.copy.call(this, source);\r\n\t\t\tif (source.center !== undefined) this.center.copy(source.center);\r\n\t\t\tthis.material = source.material;\r\n\t\t\treturn this;\r\n\t\t}\r\n\t});\r\n\r\n\tfunction transformVertex(vertexPosition, mvPosition, center, scale, sin, cos) {\r\n\t\t// compute position in camera space\r\n\t\t_alignedPosition.subVectors(vertexPosition, center).addScalar(0.5).multiply(scale); // to check if rotation is not zero\r\n\r\n\r\n\t\tif (sin !== undefined) {\r\n\t\t\t_rotatedPosition.x = cos * _alignedPosition.x - sin * _alignedPosition.y;\r\n\t\t\t_rotatedPosition.y = sin * _alignedPosition.x + cos * _alignedPosition.y;\r\n\t\t} else {\r\n\t\t\t_rotatedPosition.copy(_alignedPosition);\r\n\t\t}\r\n\r\n\t\tvertexPosition.copy(mvPosition);\r\n\t\tvertexPosition.x += _rotatedPosition.x;\r\n\t\tvertexPosition.y += _rotatedPosition.y; // transform to world space\r\n\r\n\t\tvertexPosition.applyMatrix4(_viewWorldMatrix);\r\n\t}\r\n\r\n\tvar _v1$4 = new Vector3();\r\n\r\n\tvar _v2$2 = new Vector3();\r\n\r\n\tfunction LOD() {\r\n\t\tObject3D.call(this);\r\n\t\tthis._currentLevel = 0;\r\n\t\tthis.type = 'LOD';\r\n\t\tObject.defineProperties(this, {\r\n\t\t\tlevels: {\r\n\t\t\t\tenumerable: true,\r\n\t\t\t\tvalue: []\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.autoUpdate = true;\r\n\t}\r\n\r\n\tLOD.prototype = Object.assign(Object.create(Object3D.prototype), {\r\n\t\tconstructor: LOD,\r\n\t\tisLOD: true,\r\n\t\tcopy: function copy(source) {\r\n\t\t\tObject3D.prototype.copy.call(this, source, false);\r\n\t\t\tvar levels = source.levels;\r\n\r\n\t\t\tfor (var i = 0, l = levels.length; i < l; i++) {\r\n\t\t\t\tvar level = levels[i];\r\n\t\t\t\tthis.addLevel(level.object.clone(), level.distance);\r\n\t\t\t}\r\n\r\n\t\t\tthis.autoUpdate = source.autoUpdate;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\taddLevel: function addLevel(object, distance) {\r\n\t\t\tif (distance === void 0) {\r\n\t\t\t\tdistance = 0;\r\n\t\t\t}\r\n\r\n\t\t\tdistance = Math.abs(distance);\r\n\t\t\tvar levels = this.levels;\r\n\t\t\tvar l;\r\n\r\n\t\t\tfor (l = 0; l < levels.length; l++) {\r\n\t\t\t\tif (distance < levels[l].distance) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tlevels.splice(l, 0, {\r\n\t\t\t\tdistance: distance,\r\n\t\t\t\tobject: object\r\n\t\t\t});\r\n\t\t\tthis.add(object);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tgetCurrentLevel: function getCurrentLevel() {\r\n\t\t\treturn this._currentLevel;\r\n\t\t},\r\n\t\tgetObjectForDistance: function getObjectForDistance(distance) {\r\n\t\t\tvar levels = this.levels;\r\n\r\n\t\t\tif (levels.length > 0) {\r\n\t\t\t\tvar i, l;\r\n\r\n\t\t\t\tfor (i = 1, l = levels.length; i < l; i++) {\r\n\t\t\t\t\tif (distance < levels[i].distance) {\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn levels[i - 1].object;\r\n\t\t\t}\r\n\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\traycast: function raycast(raycaster, intersects) {\r\n\t\t\tvar levels = this.levels;\r\n\r\n\t\t\tif (levels.length > 0) {\r\n\t\t\t\t_v1$4.setFromMatrixPosition(this.matrixWorld);\r\n\r\n\t\t\t\tvar distance = raycaster.ray.origin.distanceTo(_v1$4);\r\n\t\t\t\tthis.getObjectForDistance(distance).raycast(raycaster, intersects);\r\n\t\t\t}\r\n\t\t},\r\n\t\tupdate: function update(camera) {\r\n\t\t\tvar levels = this.levels;\r\n\r\n\t\t\tif (levels.length > 1) {\r\n\t\t\t\t_v1$4.setFromMatrixPosition(camera.matrixWorld);\r\n\r\n\t\t\t\t_v2$2.setFromMatrixPosition(this.matrixWorld);\r\n\r\n\t\t\t\tvar distance = _v1$4.distanceTo(_v2$2) / camera.zoom;\r\n\t\t\t\tlevels[0].object.visible = true;\r\n\t\t\t\tvar i, l;\r\n\r\n\t\t\t\tfor (i = 1, l = levels.length; i < l; i++) {\r\n\t\t\t\t\tif (distance >= levels[i].distance) {\r\n\t\t\t\t\t\tlevels[i - 1].object.visible = false;\r\n\t\t\t\t\t\tlevels[i].object.visible = true;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._currentLevel = i - 1;\r\n\r\n\t\t\t\tfor (; i < l; i++) {\r\n\t\t\t\t\tlevels[i].object.visible = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\ttoJSON: function toJSON(meta) {\r\n\t\t\tvar data = Object3D.prototype.toJSON.call(this, meta);\r\n\t\t\tif (this.autoUpdate === false) data.object.autoUpdate = false;\r\n\t\t\tdata.object.levels = [];\r\n\t\t\tvar levels = this.levels;\r\n\r\n\t\t\tfor (var i = 0, l = levels.length; i < l; i++) {\r\n\t\t\t\tvar level = levels[i];\r\n\t\t\t\tdata.object.levels.push({\r\n\t\t\t\t\tobject: level.object.uuid,\r\n\t\t\t\t\tdistance: level.distance\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\treturn data;\r\n\t\t}\r\n\t});\r\n\r\n\tfunction SkinnedMesh(geometry, material) {\r\n\t\tif (geometry && geometry.isGeometry) {\r\n\t\t\tconsole.error('THREE.SkinnedMesh no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.');\r\n\t\t}\r\n\r\n\t\tMesh.call(this, geometry, material);\r\n\t\tthis.type = 'SkinnedMesh';\r\n\t\tthis.bindMode = 'attached';\r\n\t\tthis.bindMatrix = new Matrix4();\r\n\t\tthis.bindMatrixInverse = new Matrix4();\r\n\t}\r\n\r\n\tSkinnedMesh.prototype = Object.assign(Object.create(Mesh.prototype), {\r\n\t\tconstructor: SkinnedMesh,\r\n\t\tisSkinnedMesh: true,\r\n\t\tcopy: function copy(source) {\r\n\t\t\tMesh.prototype.copy.call(this, source);\r\n\t\t\tthis.bindMode = source.bindMode;\r\n\t\t\tthis.bindMatrix.copy(source.bindMatrix);\r\n\t\t\tthis.bindMatrixInverse.copy(source.bindMatrixInverse);\r\n\t\t\tthis.skeleton = source.skeleton;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tbind: function bind(skeleton, bindMatrix) {\r\n\t\t\tthis.skeleton = skeleton;\r\n\r\n\t\t\tif (bindMatrix === undefined) {\r\n\t\t\t\tthis.updateMatrixWorld(true);\r\n\t\t\t\tthis.skeleton.calculateInverses();\r\n\t\t\t\tbindMatrix = this.matrixWorld;\r\n\t\t\t}\r\n\r\n\t\t\tthis.bindMatrix.copy(bindMatrix);\r\n\t\t\tthis.bindMatrixInverse.copy(bindMatrix).invert();\r\n\t\t},\r\n\t\tpose: function pose() {\r\n\t\t\tthis.skeleton.pose();\r\n\t\t},\r\n\t\tnormalizeSkinWeights: function normalizeSkinWeights() {\r\n\t\t\tvar vector = new Vector4();\r\n\t\t\tvar skinWeight = this.geometry.attributes.skinWeight;\r\n\r\n\t\t\tfor (var i = 0, l = skinWeight.count; i < l; i++) {\r\n\t\t\t\tvector.x = skinWeight.getX(i);\r\n\t\t\t\tvector.y = skinWeight.getY(i);\r\n\t\t\t\tvector.z = skinWeight.getZ(i);\r\n\t\t\t\tvector.w = skinWeight.getW(i);\r\n\t\t\t\tvar scale = 1.0 / vector.manhattanLength();\r\n\r\n\t\t\t\tif (scale !== Infinity) {\r\n\t\t\t\t\tvector.multiplyScalar(scale);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvector.set(1, 0, 0, 0); // do something reasonable\r\n\t\t\t\t}\r\n\r\n\t\t\t\tskinWeight.setXYZW(i, vector.x, vector.y, vector.z, vector.w);\r\n\t\t\t}\r\n\t\t},\r\n\t\tupdateMatrixWorld: function updateMatrixWorld(force) {\r\n\t\t\tMesh.prototype.updateMatrixWorld.call(this, force);\r\n\r\n\t\t\tif (this.bindMode === 'attached') {\r\n\t\t\t\tthis.bindMatrixInverse.copy(this.matrixWorld).invert();\r\n\t\t\t} else if (this.bindMode === 'detached') {\r\n\t\t\t\tthis.bindMatrixInverse.copy(this.bindMatrix).invert();\r\n\t\t\t} else {\r\n\t\t\t\tconsole.warn('THREE.SkinnedMesh: Unrecognized bindMode: ' + this.bindMode);\r\n\t\t\t}\r\n\t\t},\r\n\t\tboneTransform: function () {\r\n\t\t\tvar basePosition = new Vector3();\r\n\t\t\tvar skinIndex = new Vector4();\r\n\t\t\tvar skinWeight = new Vector4();\r\n\t\t\tvar vector = new Vector3();\r\n\t\t\tvar matrix = new Matrix4();\r\n\t\t\treturn function (index, target) {\r\n\t\t\t\tvar skeleton = this.skeleton;\r\n\t\t\t\tvar geometry = this.geometry;\r\n\t\t\t\tskinIndex.fromBufferAttribute(geometry.attributes.skinIndex, index);\r\n\t\t\t\tskinWeight.fromBufferAttribute(geometry.attributes.skinWeight, index);\r\n\t\t\t\tbasePosition.fromBufferAttribute(geometry.attributes.position, index).applyMatrix4(this.bindMatrix);\r\n\t\t\t\ttarget.set(0, 0, 0);\r\n\r\n\t\t\t\tfor (var i = 0; i < 4; i++) {\r\n\t\t\t\t\tvar weight = skinWeight.getComponent(i);\r\n\r\n\t\t\t\t\tif (weight !== 0) {\r\n\t\t\t\t\t\tvar boneIndex = skinIndex.getComponent(i);\r\n\t\t\t\t\t\tmatrix.multiplyMatrices(skeleton.bones[boneIndex].matrixWorld, skeleton.boneInverses[boneIndex]);\r\n\t\t\t\t\t\ttarget.addScaledVector(vector.copy(basePosition).applyMatrix4(matrix), weight);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn target.applyMatrix4(this.bindMatrixInverse);\r\n\t\t\t};\r\n\t\t}()\r\n\t});\r\n\r\n\tfunction Bone() {\r\n\t\tObject3D.call(this);\r\n\t\tthis.type = 'Bone';\r\n\t}\r\n\r\n\tBone.prototype = Object.assign(Object.create(Object3D.prototype), {\r\n\t\tconstructor: Bone,\r\n\t\tisBone: true\r\n\t});\r\n\r\n\tvar _offsetMatrix = new Matrix4();\r\n\r\n\tvar _identityMatrix = new Matrix4();\r\n\r\n\tfunction Skeleton(bones, boneInverses) {\r\n\t\tif (bones === void 0) {\r\n\t\t\tbones = [];\r\n\t\t}\r\n\r\n\t\tif (boneInverses === void 0) {\r\n\t\t\tboneInverses = [];\r\n\t\t}\r\n\r\n\t\tthis.uuid = MathUtils.generateUUID();\r\n\t\tthis.bones = bones.slice(0);\r\n\t\tthis.boneInverses = boneInverses;\r\n\t\tthis.boneMatrices = null;\r\n\t\tthis.boneTexture = null;\r\n\t\tthis.boneTextureSize = 0;\r\n\t\tthis.frame = -1;\r\n\t\tthis.init();\r\n\t}\r\n\r\n\tObject.assign(Skeleton.prototype, {\r\n\t\tinit: function init() {\r\n\t\t\tvar bones = this.bones;\r\n\t\t\tvar boneInverses = this.boneInverses;\r\n\t\t\tthis.boneMatrices = new Float32Array(bones.length * 16); // calculate inverse bone matrices if necessary\r\n\r\n\t\t\tif (boneInverses.length === 0) {\r\n\t\t\t\tthis.calculateInverses();\r\n\t\t\t} else {\r\n\t\t\t\t// handle special case\r\n\t\t\t\tif (bones.length !== boneInverses.length) {\r\n\t\t\t\t\tconsole.warn('THREE.Skeleton: Number of inverse bone matrices does not match amount of bones.');\r\n\t\t\t\t\tthis.boneInverses = [];\r\n\r\n\t\t\t\t\tfor (var i = 0, il = this.bones.length; i < il; i++) {\r\n\t\t\t\t\t\tthis.boneInverses.push(new Matrix4());\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tcalculateInverses: function calculateInverses() {\r\n\t\t\tthis.boneInverses.length = 0;\r\n\r\n\t\t\tfor (var i = 0, il = this.bones.length; i < il; i++) {\r\n\t\t\t\tvar inverse = new Matrix4();\r\n\r\n\t\t\t\tif (this.bones[i]) {\r\n\t\t\t\t\tinverse.copy(this.bones[i].matrixWorld).invert();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.boneInverses.push(inverse);\r\n\t\t\t}\r\n\t\t},\r\n\t\tpose: function pose() {\r\n\t\t\t// recover the bind-time world matrices\r\n\t\t\tfor (var i = 0, il = this.bones.length; i < il; i++) {\r\n\t\t\t\tvar bone = this.bones[i];\r\n\r\n\t\t\t\tif (bone) {\r\n\t\t\t\t\tbone.matrixWorld.copy(this.boneInverses[i]).invert();\r\n\t\t\t\t}\r\n\t\t\t} // compute the local matrices, positions, rotations and scales\r\n\r\n\r\n\t\t\tfor (var _i = 0, _il = this.bones.length; _i < _il; _i++) {\r\n\t\t\t\tvar _bone = this.bones[_i];\r\n\r\n\t\t\t\tif (_bone) {\r\n\t\t\t\t\tif (_bone.parent && _bone.parent.isBone) {\r\n\t\t\t\t\t\t_bone.matrix.copy(_bone.parent.matrixWorld).invert();\r\n\r\n\t\t\t\t\t\t_bone.matrix.multiply(_bone.matrixWorld);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t_bone.matrix.copy(_bone.matrixWorld);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t_bone.matrix.decompose(_bone.position, _bone.quaternion, _bone.scale);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tupdate: function update() {\r\n\t\t\tvar bones = this.bones;\r\n\t\t\tvar boneInverses = this.boneInverses;\r\n\t\t\tvar boneMatrices = this.boneMatrices;\r\n\t\t\tvar boneTexture = this.boneTexture; // flatten bone matrices to array\r\n\r\n\t\t\tfor (var i = 0, il = bones.length; i < il; i++) {\r\n\t\t\t\t// compute the offset between the current and the original transform\r\n\t\t\t\tvar matrix = bones[i] ? bones[i].matrixWorld : _identityMatrix;\r\n\r\n\t\t\t\t_offsetMatrix.multiplyMatrices(matrix, boneInverses[i]);\r\n\r\n\t\t\t\t_offsetMatrix.toArray(boneMatrices, i * 16);\r\n\t\t\t}\r\n\r\n\t\t\tif (boneTexture !== null) {\r\n\t\t\t\tboneTexture.needsUpdate = true;\r\n\t\t\t}\r\n\t\t},\r\n\t\tclone: function clone() {\r\n\t\t\treturn new Skeleton(this.bones, this.boneInverses);\r\n\t\t},\r\n\t\tgetBoneByName: function getBoneByName(name) {\r\n\t\t\tfor (var i = 0, il = this.bones.length; i < il; i++) {\r\n\t\t\t\tvar bone = this.bones[i];\r\n\r\n\t\t\t\tif (bone.name === name) {\r\n\t\t\t\t\treturn bone;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn undefined;\r\n\t\t},\r\n\t\tdispose: function dispose() {\r\n\t\t\tif (this.boneTexture !== null) {\r\n\t\t\t\tthis.boneTexture.dispose();\r\n\t\t\t\tthis.boneTexture = null;\r\n\t\t\t}\r\n\t\t},\r\n\t\tfromJSON: function fromJSON(json, bones) {\r\n\t\t\tthis.uuid = json.uuid;\r\n\r\n\t\t\tfor (var i = 0, l = json.bones.length; i < l; i++) {\r\n\t\t\t\tvar uuid = json.bones[i];\r\n\t\t\t\tvar bone = bones[uuid];\r\n\r\n\t\t\t\tif (bone === undefined) {\r\n\t\t\t\t\tconsole.warn('THREE.Skeleton: No bone found with UUID:', uuid);\r\n\t\t\t\t\tbone = new Bone();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.bones.push(bone);\r\n\t\t\t\tthis.boneInverses.push(new Matrix4().fromArray(json.boneInverses[i]));\r\n\t\t\t}\r\n\r\n\t\t\tthis.init();\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\ttoJSON: function toJSON() {\r\n\t\t\tvar data = {\r\n\t\t\t\tmetadata: {\r\n\t\t\t\t\tversion: 4.5,\r\n\t\t\t\t\ttype: 'Skeleton',\r\n\t\t\t\t\tgenerator: 'Skeleton.toJSON'\r\n\t\t\t\t},\r\n\t\t\t\tbones: [],\r\n\t\t\t\tboneInverses: []\r\n\t\t\t};\r\n\t\t\tdata.uuid = this.uuid;\r\n\t\t\tvar bones = this.bones;\r\n\t\t\tvar boneInverses = this.boneInverses;\r\n\r\n\t\t\tfor (var i = 0, l = bones.length; i < l; i++) {\r\n\t\t\t\tvar bone = bones[i];\r\n\t\t\t\tdata.bones.push(bone.uuid);\r\n\t\t\t\tvar boneInverse = boneInverses[i];\r\n\t\t\t\tdata.boneInverses.push(boneInverse.toArray());\r\n\t\t\t}\r\n\r\n\t\t\treturn data;\r\n\t\t}\r\n\t});\r\n\r\n\tvar _instanceLocalMatrix = new Matrix4();\r\n\r\n\tvar _instanceWorldMatrix = new Matrix4();\r\n\r\n\tvar _instanceIntersects = [];\r\n\r\n\tvar _mesh = new Mesh();\r\n\r\n\tfunction InstancedMesh(geometry, material, count) {\r\n\t\tMesh.call(this, geometry, material);\r\n\t\tthis.instanceMatrix = new BufferAttribute(new Float32Array(count * 16), 16);\r\n\t\tthis.instanceColor = null;\r\n\t\tthis.count = count;\r\n\t\tthis.frustumCulled = false;\r\n\t}\r\n\r\n\tInstancedMesh.prototype = Object.assign(Object.create(Mesh.prototype), {\r\n\t\tconstructor: InstancedMesh,\r\n\t\tisInstancedMesh: true,\r\n\t\tcopy: function copy(source) {\r\n\t\t\tMesh.prototype.copy.call(this, source);\r\n\t\t\tthis.instanceMatrix.copy(source.instanceMatrix);\r\n\t\t\tthis.count = source.count;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tgetColorAt: function getColorAt(index, color) {\r\n\t\t\tcolor.fromArray(this.instanceColor.array, index * 3);\r\n\t\t},\r\n\t\tgetMatrixAt: function getMatrixAt(index, matrix) {\r\n\t\t\tmatrix.fromArray(this.instanceMatrix.array, index * 16);\r\n\t\t},\r\n\t\traycast: function raycast(raycaster, intersects) {\r\n\t\t\tvar matrixWorld = this.matrixWorld;\r\n\t\t\tvar raycastTimes = this.count;\r\n\t\t\t_mesh.geometry = this.geometry;\r\n\t\t\t_mesh.material = this.material;\r\n\t\t\tif (_mesh.material === undefined) return;\r\n\r\n\t\t\tfor (var instanceId = 0; instanceId < raycastTimes; instanceId++) {\r\n\t\t\t\t// calculate the world matrix for each instance\r\n\t\t\t\tthis.getMatrixAt(instanceId, _instanceLocalMatrix);\r\n\r\n\t\t\t\t_instanceWorldMatrix.multiplyMatrices(matrixWorld, _instanceLocalMatrix); // the mesh represents this single instance\r\n\r\n\r\n\t\t\t\t_mesh.matrixWorld = _instanceWorldMatrix;\r\n\r\n\t\t\t\t_mesh.raycast(raycaster, _instanceIntersects); // process the result of raycast\r\n\r\n\r\n\t\t\t\tfor (var i = 0, l = _instanceIntersects.length; i < l; i++) {\r\n\t\t\t\t\tvar intersect = _instanceIntersects[i];\r\n\t\t\t\t\tintersect.instanceId = instanceId;\r\n\t\t\t\t\tintersect.object = this;\r\n\t\t\t\t\tintersects.push(intersect);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t_instanceIntersects.length = 0;\r\n\t\t\t}\r\n\t\t},\r\n\t\tsetColorAt: function setColorAt(index, color) {\r\n\t\t\tif (this.instanceColor === null) {\r\n\t\t\t\tthis.instanceColor = new BufferAttribute(new Float32Array(this.count * 3), 3);\r\n\t\t\t}\r\n\r\n\t\t\tcolor.toArray(this.instanceColor.array, index * 3);\r\n\t\t},\r\n\t\tsetMatrixAt: function setMatrixAt(index, matrix) {\r\n\t\t\tmatrix.toArray(this.instanceMatrix.array, index * 16);\r\n\t\t},\r\n\t\tupdateMorphTargets: function updateMorphTargets() {}\r\n\t});\r\n\r\n\t/**\r\n\t * parameters = {\r\n\t *\tcolor: ,\r\n\t *\topacity: ,\r\n\t *\r\n\t *\tlinewidth: ,\r\n\t *\tlinecap: \"round\",\r\n\t *\tlinejoin: \"round\"\r\n\t * }\r\n\t */\r\n\r\n\tfunction LineBasicMaterial(parameters) {\r\n\t\tMaterial.call(this);\r\n\t\tthis.type = 'LineBasicMaterial';\r\n\t\tthis.color = new Color(0xffffff);\r\n\t\tthis.linewidth = 1;\r\n\t\tthis.linecap = 'round';\r\n\t\tthis.linejoin = 'round';\r\n\t\tthis.morphTargets = false;\r\n\t\tthis.setValues(parameters);\r\n\t}\r\n\r\n\tLineBasicMaterial.prototype = Object.create(Material.prototype);\r\n\tLineBasicMaterial.prototype.constructor = LineBasicMaterial;\r\n\tLineBasicMaterial.prototype.isLineBasicMaterial = true;\r\n\r\n\tLineBasicMaterial.prototype.copy = function (source) {\r\n\t\tMaterial.prototype.copy.call(this, source);\r\n\t\tthis.color.copy(source.color);\r\n\t\tthis.linewidth = source.linewidth;\r\n\t\tthis.linecap = source.linecap;\r\n\t\tthis.linejoin = source.linejoin;\r\n\t\tthis.morphTargets = source.morphTargets;\r\n\t\treturn this;\r\n\t};\r\n\r\n\tvar _start = new Vector3();\r\n\r\n\tvar _end = new Vector3();\r\n\r\n\tvar _inverseMatrix$1 = new Matrix4();\r\n\r\n\tvar _ray$1 = new Ray();\r\n\r\n\tvar _sphere$2 = new Sphere();\r\n\r\n\tfunction Line(geometry, material, mode) {\r\n\t\tif (mode === 1) {\r\n\t\t\tconsole.error('THREE.Line: parameter THREE.LinePieces no longer supported. Use THREE.LineSegments instead.');\r\n\t\t}\r\n\r\n\t\tObject3D.call(this);\r\n\t\tthis.type = 'Line';\r\n\t\tthis.geometry = geometry !== undefined ? geometry : new BufferGeometry();\r\n\t\tthis.material = material !== undefined ? material : new LineBasicMaterial();\r\n\t\tthis.updateMorphTargets();\r\n\t}\r\n\r\n\tLine.prototype = Object.assign(Object.create(Object3D.prototype), {\r\n\t\tconstructor: Line,\r\n\t\tisLine: true,\r\n\t\tcopy: function copy(source) {\r\n\t\t\tObject3D.prototype.copy.call(this, source);\r\n\t\t\tthis.material = source.material;\r\n\t\t\tthis.geometry = source.geometry;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tcomputeLineDistances: function computeLineDistances() {\r\n\t\t\tvar geometry = this.geometry;\r\n\r\n\t\t\tif (geometry.isBufferGeometry) {\r\n\t\t\t\t// we assume non-indexed geometry\r\n\t\t\t\tif (geometry.index === null) {\r\n\t\t\t\t\tvar positionAttribute = geometry.attributes.position;\r\n\t\t\t\t\tvar lineDistances = [0];\r\n\r\n\t\t\t\t\tfor (var i = 1, l = positionAttribute.count; i < l; i++) {\r\n\t\t\t\t\t\t_start.fromBufferAttribute(positionAttribute, i - 1);\r\n\r\n\t\t\t\t\t\t_end.fromBufferAttribute(positionAttribute, i);\r\n\r\n\t\t\t\t\t\tlineDistances[i] = lineDistances[i - 1];\r\n\t\t\t\t\t\tlineDistances[i] += _start.distanceTo(_end);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tgeometry.setAttribute('lineDistance', new Float32BufferAttribute(lineDistances, 1));\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.warn('THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.');\r\n\t\t\t\t}\r\n\t\t\t} else if (geometry.isGeometry) {\r\n\t\t\t\tvar vertices = geometry.vertices;\r\n\t\t\t\tvar _lineDistances = geometry.lineDistances;\r\n\t\t\t\t_lineDistances[0] = 0;\r\n\r\n\t\t\t\tfor (var _i = 1, _l = vertices.length; _i < _l; _i++) {\r\n\t\t\t\t\t_lineDistances[_i] = _lineDistances[_i - 1];\r\n\t\t\t\t\t_lineDistances[_i] += vertices[_i - 1].distanceTo(vertices[_i]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\traycast: function raycast(raycaster, intersects) {\r\n\t\t\tvar geometry = this.geometry;\r\n\t\t\tvar matrixWorld = this.matrixWorld;\r\n\t\t\tvar threshold = raycaster.params.Line.threshold; // Checking boundingSphere distance to ray\r\n\r\n\t\t\tif (geometry.boundingSphere === null) geometry.computeBoundingSphere();\r\n\r\n\t\t\t_sphere$2.copy(geometry.boundingSphere);\r\n\r\n\t\t\t_sphere$2.applyMatrix4(matrixWorld);\r\n\r\n\t\t\t_sphere$2.radius += threshold;\r\n\t\t\tif (raycaster.ray.intersectsSphere(_sphere$2) === false) return; //\r\n\r\n\t\t\t_inverseMatrix$1.copy(matrixWorld).invert();\r\n\r\n\t\t\t_ray$1.copy(raycaster.ray).applyMatrix4(_inverseMatrix$1);\r\n\r\n\t\t\tvar localThreshold = threshold / ((this.scale.x + this.scale.y + this.scale.z) / 3);\r\n\t\t\tvar localThresholdSq = localThreshold * localThreshold;\r\n\t\t\tvar vStart = new Vector3();\r\n\t\t\tvar vEnd = new Vector3();\r\n\t\t\tvar interSegment = new Vector3();\r\n\t\t\tvar interRay = new Vector3();\r\n\t\t\tvar step = this.isLineSegments ? 2 : 1;\r\n\r\n\t\t\tif (geometry.isBufferGeometry) {\r\n\t\t\t\tvar index = geometry.index;\r\n\t\t\t\tvar attributes = geometry.attributes;\r\n\t\t\t\tvar positionAttribute = attributes.position;\r\n\r\n\t\t\t\tif (index !== null) {\r\n\t\t\t\t\tvar indices = index.array;\r\n\r\n\t\t\t\t\tfor (var i = 0, l = indices.length - 1; i < l; i += step) {\r\n\t\t\t\t\t\tvar a = indices[i];\r\n\t\t\t\t\t\tvar b = indices[i + 1];\r\n\t\t\t\t\t\tvStart.fromBufferAttribute(positionAttribute, a);\r\n\t\t\t\t\t\tvEnd.fromBufferAttribute(positionAttribute, b);\r\n\r\n\t\t\t\t\t\tvar distSq = _ray$1.distanceSqToSegment(vStart, vEnd, interRay, interSegment);\r\n\r\n\t\t\t\t\t\tif (distSq > localThresholdSq) continue;\r\n\t\t\t\t\t\tinterRay.applyMatrix4(this.matrixWorld); //Move back to world space for distance calculation\r\n\r\n\t\t\t\t\t\tvar distance = raycaster.ray.origin.distanceTo(interRay);\r\n\t\t\t\t\t\tif (distance < raycaster.near || distance > raycaster.far) continue;\r\n\t\t\t\t\t\tintersects.push({\r\n\t\t\t\t\t\t\tdistance: distance,\r\n\t\t\t\t\t\t\t// What do we want? intersection point on the ray or on the segment??\r\n\t\t\t\t\t\t\t// point: raycaster.ray.at( distance ),\r\n\t\t\t\t\t\t\tpoint: interSegment.clone().applyMatrix4(this.matrixWorld),\r\n\t\t\t\t\t\t\tindex: i,\r\n\t\t\t\t\t\t\tface: null,\r\n\t\t\t\t\t\t\tfaceIndex: null,\r\n\t\t\t\t\t\t\tobject: this\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tfor (var _i2 = 0, _l2 = positionAttribute.count - 1; _i2 < _l2; _i2 += step) {\r\n\t\t\t\t\t\tvStart.fromBufferAttribute(positionAttribute, _i2);\r\n\t\t\t\t\t\tvEnd.fromBufferAttribute(positionAttribute, _i2 + 1);\r\n\r\n\t\t\t\t\t\tvar _distSq = _ray$1.distanceSqToSegment(vStart, vEnd, interRay, interSegment);\r\n\r\n\t\t\t\t\t\tif (_distSq > localThresholdSq) continue;\r\n\t\t\t\t\t\tinterRay.applyMatrix4(this.matrixWorld); //Move back to world space for distance calculation\r\n\r\n\t\t\t\t\t\tvar _distance = raycaster.ray.origin.distanceTo(interRay);\r\n\r\n\t\t\t\t\t\tif (_distance < raycaster.near || _distance > raycaster.far) continue;\r\n\t\t\t\t\t\tintersects.push({\r\n\t\t\t\t\t\t\tdistance: _distance,\r\n\t\t\t\t\t\t\t// What do we want? intersection point on the ray or on the segment??\r\n\t\t\t\t\t\t\t// point: raycaster.ray.at( distance ),\r\n\t\t\t\t\t\t\tpoint: interSegment.clone().applyMatrix4(this.matrixWorld),\r\n\t\t\t\t\t\t\tindex: _i2,\r\n\t\t\t\t\t\t\tface: null,\r\n\t\t\t\t\t\t\tfaceIndex: null,\r\n\t\t\t\t\t\t\tobject: this\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else if (geometry.isGeometry) {\r\n\t\t\t\tvar vertices = geometry.vertices;\r\n\t\t\t\tvar nbVertices = vertices.length;\r\n\r\n\t\t\t\tfor (var _i3 = 0; _i3 < nbVertices - 1; _i3 += step) {\r\n\t\t\t\t\tvar _distSq2 = _ray$1.distanceSqToSegment(vertices[_i3], vertices[_i3 + 1], interRay, interSegment);\r\n\r\n\t\t\t\t\tif (_distSq2 > localThresholdSq) continue;\r\n\t\t\t\t\tinterRay.applyMatrix4(this.matrixWorld); //Move back to world space for distance calculation\r\n\r\n\t\t\t\t\tvar _distance2 = raycaster.ray.origin.distanceTo(interRay);\r\n\r\n\t\t\t\t\tif (_distance2 < raycaster.near || _distance2 > raycaster.far) continue;\r\n\t\t\t\t\tintersects.push({\r\n\t\t\t\t\t\tdistance: _distance2,\r\n\t\t\t\t\t\t// What do we want? intersection point on the ray or on the segment??\r\n\t\t\t\t\t\t// point: raycaster.ray.at( distance ),\r\n\t\t\t\t\t\tpoint: interSegment.clone().applyMatrix4(this.matrixWorld),\r\n\t\t\t\t\t\tindex: _i3,\r\n\t\t\t\t\t\tface: null,\r\n\t\t\t\t\t\tfaceIndex: null,\r\n\t\t\t\t\t\tobject: this\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tupdateMorphTargets: function updateMorphTargets() {\r\n\t\t\tvar geometry = this.geometry;\r\n\r\n\t\t\tif (geometry.isBufferGeometry) {\r\n\t\t\t\tvar morphAttributes = geometry.morphAttributes;\r\n\t\t\t\tvar keys = Object.keys(morphAttributes);\r\n\r\n\t\t\t\tif (keys.length > 0) {\r\n\t\t\t\t\tvar morphAttribute = morphAttributes[keys[0]];\r\n\r\n\t\t\t\t\tif (morphAttribute !== undefined) {\r\n\t\t\t\t\t\tthis.morphTargetInfluences = [];\r\n\t\t\t\t\t\tthis.morphTargetDictionary = {};\r\n\r\n\t\t\t\t\t\tfor (var m = 0, ml = morphAttribute.length; m < ml; m++) {\r\n\t\t\t\t\t\t\tvar name = morphAttribute[m].name || String(m);\r\n\t\t\t\t\t\t\tthis.morphTargetInfluences.push(0);\r\n\t\t\t\t\t\t\tthis.morphTargetDictionary[name] = m;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tvar morphTargets = geometry.morphTargets;\r\n\r\n\t\t\t\tif (morphTargets !== undefined && morphTargets.length > 0) {\r\n\t\t\t\t\tconsole.error('THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\tvar _start$1 = new Vector3();\r\n\r\n\tvar _end$1 = new Vector3();\r\n\r\n\tfunction LineSegments(geometry, material) {\r\n\t\tLine.call(this, geometry, material);\r\n\t\tthis.type = 'LineSegments';\r\n\t}\r\n\r\n\tLineSegments.prototype = Object.assign(Object.create(Line.prototype), {\r\n\t\tconstructor: LineSegments,\r\n\t\tisLineSegments: true,\r\n\t\tcomputeLineDistances: function computeLineDistances() {\r\n\t\t\tvar geometry = this.geometry;\r\n\r\n\t\t\tif (geometry.isBufferGeometry) {\r\n\t\t\t\t// we assume non-indexed geometry\r\n\t\t\t\tif (geometry.index === null) {\r\n\t\t\t\t\tvar positionAttribute = geometry.attributes.position;\r\n\t\t\t\t\tvar lineDistances = [];\r\n\r\n\t\t\t\t\tfor (var i = 0, l = positionAttribute.count; i < l; i += 2) {\r\n\t\t\t\t\t\t_start$1.fromBufferAttribute(positionAttribute, i);\r\n\r\n\t\t\t\t\t\t_end$1.fromBufferAttribute(positionAttribute, i + 1);\r\n\r\n\t\t\t\t\t\tlineDistances[i] = i === 0 ? 0 : lineDistances[i - 1];\r\n\t\t\t\t\t\tlineDistances[i + 1] = lineDistances[i] + _start$1.distanceTo(_end$1);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tgeometry.setAttribute('lineDistance', new Float32BufferAttribute(lineDistances, 1));\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.warn('THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.');\r\n\t\t\t\t}\r\n\t\t\t} else if (geometry.isGeometry) {\r\n\t\t\t\tvar vertices = geometry.vertices;\r\n\t\t\t\tvar _lineDistances = geometry.lineDistances;\r\n\r\n\t\t\t\tfor (var _i = 0, _l = vertices.length; _i < _l; _i += 2) {\r\n\t\t\t\t\t_start$1.copy(vertices[_i]);\r\n\r\n\t\t\t\t\t_end$1.copy(vertices[_i + 1]);\r\n\r\n\t\t\t\t\t_lineDistances[_i] = _i === 0 ? 0 : _lineDistances[_i - 1];\r\n\t\t\t\t\t_lineDistances[_i + 1] = _lineDistances[_i] + _start$1.distanceTo(_end$1);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t}\r\n\t});\r\n\r\n\tfunction LineLoop(geometry, material) {\r\n\t\tLine.call(this, geometry, material);\r\n\t\tthis.type = 'LineLoop';\r\n\t}\r\n\r\n\tLineLoop.prototype = Object.assign(Object.create(Line.prototype), {\r\n\t\tconstructor: LineLoop,\r\n\t\tisLineLoop: true\r\n\t});\r\n\r\n\t/**\r\n\t * parameters = {\r\n\t *\tcolor: ,\r\n\t *\topacity: ,\r\n\t *\tmap: new THREE.Texture( ),\r\n\t *\talphaMap: new THREE.Texture( ),\r\n\t *\r\n\t *\tsize: ,\r\n\t *\tsizeAttenuation: \r\n\t *\r\n\t *\tmorphTargets: \r\n\t * }\r\n\t */\r\n\r\n\tfunction PointsMaterial(parameters) {\r\n\t\tMaterial.call(this);\r\n\t\tthis.type = 'PointsMaterial';\r\n\t\tthis.color = new Color(0xffffff);\r\n\t\tthis.map = null;\r\n\t\tthis.alphaMap = null;\r\n\t\tthis.size = 1;\r\n\t\tthis.sizeAttenuation = true;\r\n\t\tthis.morphTargets = false;\r\n\t\tthis.setValues(parameters);\r\n\t}\r\n\r\n\tPointsMaterial.prototype = Object.create(Material.prototype);\r\n\tPointsMaterial.prototype.constructor = PointsMaterial;\r\n\tPointsMaterial.prototype.isPointsMaterial = true;\r\n\r\n\tPointsMaterial.prototype.copy = function (source) {\r\n\t\tMaterial.prototype.copy.call(this, source);\r\n\t\tthis.color.copy(source.color);\r\n\t\tthis.map = source.map;\r\n\t\tthis.alphaMap = source.alphaMap;\r\n\t\tthis.size = source.size;\r\n\t\tthis.sizeAttenuation = source.sizeAttenuation;\r\n\t\tthis.morphTargets = source.morphTargets;\r\n\t\treturn this;\r\n\t};\r\n\r\n\tvar _inverseMatrix$2 = new Matrix4();\r\n\r\n\tvar _ray$2 = new Ray();\r\n\r\n\tvar _sphere$3 = new Sphere();\r\n\r\n\tvar _position$1 = new Vector3();\r\n\r\n\tfunction Points(geometry, material) {\r\n\t\tObject3D.call(this);\r\n\t\tthis.type = 'Points';\r\n\t\tthis.geometry = geometry !== undefined ? geometry : new BufferGeometry();\r\n\t\tthis.material = material !== undefined ? material : new PointsMaterial();\r\n\t\tthis.updateMorphTargets();\r\n\t}\r\n\r\n\tPoints.prototype = Object.assign(Object.create(Object3D.prototype), {\r\n\t\tconstructor: Points,\r\n\t\tisPoints: true,\r\n\t\tcopy: function copy(source) {\r\n\t\t\tObject3D.prototype.copy.call(this, source);\r\n\t\t\tthis.material = source.material;\r\n\t\t\tthis.geometry = source.geometry;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\traycast: function raycast(raycaster, intersects) {\r\n\t\t\tvar geometry = this.geometry;\r\n\t\t\tvar matrixWorld = this.matrixWorld;\r\n\t\t\tvar threshold = raycaster.params.Points.threshold; // Checking boundingSphere distance to ray\r\n\r\n\t\t\tif (geometry.boundingSphere === null) geometry.computeBoundingSphere();\r\n\r\n\t\t\t_sphere$3.copy(geometry.boundingSphere);\r\n\r\n\t\t\t_sphere$3.applyMatrix4(matrixWorld);\r\n\r\n\t\t\t_sphere$3.radius += threshold;\r\n\t\t\tif (raycaster.ray.intersectsSphere(_sphere$3) === false) return; //\r\n\r\n\t\t\t_inverseMatrix$2.copy(matrixWorld).invert();\r\n\r\n\t\t\t_ray$2.copy(raycaster.ray).applyMatrix4(_inverseMatrix$2);\r\n\r\n\t\t\tvar localThreshold = threshold / ((this.scale.x + this.scale.y + this.scale.z) / 3);\r\n\t\t\tvar localThresholdSq = localThreshold * localThreshold;\r\n\r\n\t\t\tif (geometry.isBufferGeometry) {\r\n\t\t\t\tvar index = geometry.index;\r\n\t\t\t\tvar attributes = geometry.attributes;\r\n\t\t\t\tvar positionAttribute = attributes.position;\r\n\r\n\t\t\t\tif (index !== null) {\r\n\t\t\t\t\tvar indices = index.array;\r\n\r\n\t\t\t\t\tfor (var i = 0, il = indices.length; i < il; i++) {\r\n\t\t\t\t\t\tvar a = indices[i];\r\n\r\n\t\t\t\t\t\t_position$1.fromBufferAttribute(positionAttribute, a);\r\n\r\n\t\t\t\t\t\ttestPoint(_position$1, a, localThresholdSq, matrixWorld, raycaster, intersects, this);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tfor (var _i = 0, l = positionAttribute.count; _i < l; _i++) {\r\n\t\t\t\t\t\t_position$1.fromBufferAttribute(positionAttribute, _i);\r\n\r\n\t\t\t\t\t\ttestPoint(_position$1, _i, localThresholdSq, matrixWorld, raycaster, intersects, this);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tvar vertices = geometry.vertices;\r\n\r\n\t\t\t\tfor (var _i2 = 0, _l = vertices.length; _i2 < _l; _i2++) {\r\n\t\t\t\t\ttestPoint(vertices[_i2], _i2, localThresholdSq, matrixWorld, raycaster, intersects, this);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tupdateMorphTargets: function updateMorphTargets() {\r\n\t\t\tvar geometry = this.geometry;\r\n\r\n\t\t\tif (geometry.isBufferGeometry) {\r\n\t\t\t\tvar morphAttributes = geometry.morphAttributes;\r\n\t\t\t\tvar keys = Object.keys(morphAttributes);\r\n\r\n\t\t\t\tif (keys.length > 0) {\r\n\t\t\t\t\tvar morphAttribute = morphAttributes[keys[0]];\r\n\r\n\t\t\t\t\tif (morphAttribute !== undefined) {\r\n\t\t\t\t\t\tthis.morphTargetInfluences = [];\r\n\t\t\t\t\t\tthis.morphTargetDictionary = {};\r\n\r\n\t\t\t\t\t\tfor (var m = 0, ml = morphAttribute.length; m < ml; m++) {\r\n\t\t\t\t\t\t\tvar name = morphAttribute[m].name || String(m);\r\n\t\t\t\t\t\t\tthis.morphTargetInfluences.push(0);\r\n\t\t\t\t\t\t\tthis.morphTargetDictionary[name] = m;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tvar morphTargets = geometry.morphTargets;\r\n\r\n\t\t\t\tif (morphTargets !== undefined && morphTargets.length > 0) {\r\n\t\t\t\t\tconsole.error('THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\tfunction testPoint(point, index, localThresholdSq, matrixWorld, raycaster, intersects, object) {\r\n\t\tvar rayPointDistanceSq = _ray$2.distanceSqToPoint(point);\r\n\r\n\t\tif (rayPointDistanceSq < localThresholdSq) {\r\n\t\t\tvar intersectPoint = new Vector3();\r\n\r\n\t\t\t_ray$2.closestPointToPoint(point, intersectPoint);\r\n\r\n\t\t\tintersectPoint.applyMatrix4(matrixWorld);\r\n\t\t\tvar distance = raycaster.ray.origin.distanceTo(intersectPoint);\r\n\t\t\tif (distance < raycaster.near || distance > raycaster.far) return;\r\n\t\t\tintersects.push({\r\n\t\t\t\tdistance: distance,\r\n\t\t\t\tdistanceToRay: Math.sqrt(rayPointDistanceSq),\r\n\t\t\t\tpoint: intersectPoint,\r\n\t\t\t\tindex: index,\r\n\t\t\t\tface: null,\r\n\t\t\t\tobject: object\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tfunction VideoTexture(video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy) {\r\n\t\tTexture.call(this, video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy);\r\n\t\tthis.format = format !== undefined ? format : RGBFormat;\r\n\t\tthis.minFilter = minFilter !== undefined ? minFilter : LinearFilter;\r\n\t\tthis.magFilter = magFilter !== undefined ? magFilter : LinearFilter;\r\n\t\tthis.generateMipmaps = false;\r\n\t\tvar scope = this;\r\n\r\n\t\tfunction updateVideo() {\r\n\t\t\tscope.needsUpdate = true;\r\n\t\t\tvideo.requestVideoFrameCallback(updateVideo);\r\n\t\t}\r\n\r\n\t\tif ('requestVideoFrameCallback' in video) {\r\n\t\t\tvideo.requestVideoFrameCallback(updateVideo);\r\n\t\t}\r\n\t}\r\n\r\n\tVideoTexture.prototype = Object.assign(Object.create(Texture.prototype), {\r\n\t\tconstructor: VideoTexture,\r\n\t\tclone: function clone() {\r\n\t\t\treturn new this.constructor(this.image).copy(this);\r\n\t\t},\r\n\t\tisVideoTexture: true,\r\n\t\tupdate: function update() {\r\n\t\t\tvar video = this.image;\r\n\t\t\tvar hasVideoFrameCallback = ('requestVideoFrameCallback' in video);\r\n\r\n\t\t\tif (hasVideoFrameCallback === false && video.readyState >= video.HAVE_CURRENT_DATA) {\r\n\t\t\t\tthis.needsUpdate = true;\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\tfunction CompressedTexture(mipmaps, width, height, format, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, encoding) {\r\n\t\tTexture.call(this, null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding);\r\n\t\tthis.image = {\r\n\t\t\twidth: width,\r\n\t\t\theight: height\r\n\t\t};\r\n\t\tthis.mipmaps = mipmaps; // no flipping for cube textures\r\n\t\t// (also flipping doesn't work for compressed textures )\r\n\r\n\t\tthis.flipY = false; // can't generate mipmaps for compressed textures\r\n\t\t// mips must be embedded in DDS files\r\n\r\n\t\tthis.generateMipmaps = false;\r\n\t}\r\n\r\n\tCompressedTexture.prototype = Object.create(Texture.prototype);\r\n\tCompressedTexture.prototype.constructor = CompressedTexture;\r\n\tCompressedTexture.prototype.isCompressedTexture = true;\r\n\r\n\tfunction CanvasTexture(canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy) {\r\n\t\tTexture.call(this, canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy);\r\n\t\tthis.needsUpdate = true;\r\n\t}\r\n\r\n\tCanvasTexture.prototype = Object.create(Texture.prototype);\r\n\tCanvasTexture.prototype.constructor = CanvasTexture;\r\n\tCanvasTexture.prototype.isCanvasTexture = true;\r\n\r\n\tfunction DepthTexture(width, height, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, format) {\r\n\t\tformat = format !== undefined ? format : DepthFormat;\r\n\r\n\t\tif (format !== DepthFormat && format !== DepthStencilFormat) {\r\n\t\t\tthrow new Error('DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat');\r\n\t\t}\r\n\r\n\t\tif (type === undefined && format === DepthFormat) type = UnsignedShortType;\r\n\t\tif (type === undefined && format === DepthStencilFormat) type = UnsignedInt248Type;\r\n\t\tTexture.call(this, null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy);\r\n\t\tthis.image = {\r\n\t\t\twidth: width,\r\n\t\t\theight: height\r\n\t\t};\r\n\t\tthis.magFilter = magFilter !== undefined ? magFilter : NearestFilter;\r\n\t\tthis.minFilter = minFilter !== undefined ? minFilter : NearestFilter;\r\n\t\tthis.flipY = false;\r\n\t\tthis.generateMipmaps = false;\r\n\t}\r\n\r\n\tDepthTexture.prototype = Object.create(Texture.prototype);\r\n\tDepthTexture.prototype.constructor = DepthTexture;\r\n\tDepthTexture.prototype.isDepthTexture = true;\r\n\r\n\tvar _geometryId = 0; // Geometry uses even numbers as Id\r\n\r\n\tvar _m1$3 = new Matrix4();\r\n\r\n\tvar _obj$1 = new Object3D();\r\n\r\n\tvar _offset$1 = new Vector3();\r\n\r\n\tfunction Geometry() {\r\n\t\tObject.defineProperty(this, 'id', {\r\n\t\t\tvalue: _geometryId += 2\r\n\t\t});\r\n\t\tthis.uuid = MathUtils.generateUUID();\r\n\t\tthis.name = '';\r\n\t\tthis.type = 'Geometry';\r\n\t\tthis.vertices = [];\r\n\t\tthis.colors = [];\r\n\t\tthis.faces = [];\r\n\t\tthis.faceVertexUvs = [[]];\r\n\t\tthis.morphTargets = [];\r\n\t\tthis.morphNormals = [];\r\n\t\tthis.skinWeights = [];\r\n\t\tthis.skinIndices = [];\r\n\t\tthis.lineDistances = [];\r\n\t\tthis.boundingBox = null;\r\n\t\tthis.boundingSphere = null; // update flags\r\n\r\n\t\tthis.elementsNeedUpdate = false;\r\n\t\tthis.verticesNeedUpdate = false;\r\n\t\tthis.uvsNeedUpdate = false;\r\n\t\tthis.normalsNeedUpdate = false;\r\n\t\tthis.colorsNeedUpdate = false;\r\n\t\tthis.lineDistancesNeedUpdate = false;\r\n\t\tthis.groupsNeedUpdate = false;\r\n\t}\r\n\r\n\tGeometry.prototype = Object.assign(Object.create(EventDispatcher.prototype), {\r\n\t\tconstructor: Geometry,\r\n\t\tisGeometry: true,\r\n\t\tapplyMatrix4: function applyMatrix4(matrix) {\r\n\t\t\tvar normalMatrix = new Matrix3().getNormalMatrix(matrix);\r\n\r\n\t\t\tfor (var i = 0, il = this.vertices.length; i < il; i++) {\r\n\t\t\t\tvar vertex = this.vertices[i];\r\n\t\t\t\tvertex.applyMatrix4(matrix);\r\n\t\t\t}\r\n\r\n\t\t\tfor (var _i = 0, _il = this.faces.length; _i < _il; _i++) {\r\n\t\t\t\tvar face = this.faces[_i];\r\n\t\t\t\tface.normal.applyMatrix3(normalMatrix).normalize();\r\n\r\n\t\t\t\tfor (var j = 0, jl = face.vertexNormals.length; j < jl; j++) {\r\n\t\t\t\t\tface.vertexNormals[j].applyMatrix3(normalMatrix).normalize();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (this.boundingBox !== null) {\r\n\t\t\t\tthis.computeBoundingBox();\r\n\t\t\t}\r\n\r\n\t\t\tif (this.boundingSphere !== null) {\r\n\t\t\t\tthis.computeBoundingSphere();\r\n\t\t\t}\r\n\r\n\t\t\tthis.verticesNeedUpdate = true;\r\n\t\t\tthis.normalsNeedUpdate = true;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\trotateX: function rotateX(angle) {\r\n\t\t\t// rotate geometry around world x-axis\r\n\t\t\t_m1$3.makeRotationX(angle);\r\n\r\n\t\t\tthis.applyMatrix4(_m1$3);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\trotateY: function rotateY(angle) {\r\n\t\t\t// rotate geometry around world y-axis\r\n\t\t\t_m1$3.makeRotationY(angle);\r\n\r\n\t\t\tthis.applyMatrix4(_m1$3);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\trotateZ: function rotateZ(angle) {\r\n\t\t\t// rotate geometry around world z-axis\r\n\t\t\t_m1$3.makeRotationZ(angle);\r\n\r\n\t\t\tthis.applyMatrix4(_m1$3);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\ttranslate: function translate(x, y, z) {\r\n\t\t\t// translate geometry\r\n\t\t\t_m1$3.makeTranslation(x, y, z);\r\n\r\n\t\t\tthis.applyMatrix4(_m1$3);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tscale: function scale(x, y, z) {\r\n\t\t\t// scale geometry\r\n\t\t\t_m1$3.makeScale(x, y, z);\r\n\r\n\t\t\tthis.applyMatrix4(_m1$3);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tlookAt: function lookAt(vector) {\r\n\t\t\t_obj$1.lookAt(vector);\r\n\r\n\t\t\t_obj$1.updateMatrix();\r\n\r\n\t\t\tthis.applyMatrix4(_obj$1.matrix);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tfromBufferGeometry: function fromBufferGeometry(geometry) {\r\n\t\t\tvar scope = this;\r\n\t\t\tvar index = geometry.index !== null ? geometry.index : undefined;\r\n\t\t\tvar attributes = geometry.attributes;\r\n\r\n\t\t\tif (attributes.position === undefined) {\r\n\t\t\t\tconsole.error('THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion.');\r\n\t\t\t\treturn this;\r\n\t\t\t}\r\n\r\n\t\t\tvar position = attributes.position;\r\n\t\t\tvar normal = attributes.normal;\r\n\t\t\tvar color = attributes.color;\r\n\t\t\tvar uv = attributes.uv;\r\n\t\t\tvar uv2 = attributes.uv2;\r\n\t\t\tif (uv2 !== undefined) this.faceVertexUvs[1] = [];\r\n\r\n\t\t\tfor (var i = 0; i < position.count; i++) {\r\n\t\t\t\tscope.vertices.push(new Vector3().fromBufferAttribute(position, i));\r\n\r\n\t\t\t\tif (color !== undefined) {\r\n\t\t\t\t\tscope.colors.push(new Color().fromBufferAttribute(color, i));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction addFace(a, b, c, materialIndex) {\r\n\t\t\t\tvar vertexColors = color === undefined ? [] : [scope.colors[a].clone(), scope.colors[b].clone(), scope.colors[c].clone()];\r\n\t\t\t\tvar vertexNormals = normal === undefined ? [] : [new Vector3().fromBufferAttribute(normal, a), new Vector3().fromBufferAttribute(normal, b), new Vector3().fromBufferAttribute(normal, c)];\r\n\t\t\t\tvar face = new Face3(a, b, c, vertexNormals, vertexColors, materialIndex);\r\n\t\t\t\tscope.faces.push(face);\r\n\r\n\t\t\t\tif (uv !== undefined) {\r\n\t\t\t\t\tscope.faceVertexUvs[0].push([new Vector2().fromBufferAttribute(uv, a), new Vector2().fromBufferAttribute(uv, b), new Vector2().fromBufferAttribute(uv, c)]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (uv2 !== undefined) {\r\n\t\t\t\t\tscope.faceVertexUvs[1].push([new Vector2().fromBufferAttribute(uv2, a), new Vector2().fromBufferAttribute(uv2, b), new Vector2().fromBufferAttribute(uv2, c)]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar groups = geometry.groups;\r\n\r\n\t\t\tif (groups.length > 0) {\r\n\t\t\t\tfor (var _i2 = 0; _i2 < groups.length; _i2++) {\r\n\t\t\t\t\tvar group = groups[_i2];\r\n\t\t\t\t\tvar start = group.start;\r\n\t\t\t\t\tvar count = group.count;\r\n\r\n\t\t\t\t\tfor (var j = start, jl = start + count; j < jl; j += 3) {\r\n\t\t\t\t\t\tif (index !== undefined) {\r\n\t\t\t\t\t\t\taddFace(index.getX(j), index.getX(j + 1), index.getX(j + 2), group.materialIndex);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\taddFace(j, j + 1, j + 2, group.materialIndex);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tif (index !== undefined) {\r\n\t\t\t\t\tfor (var _i3 = 0; _i3 < index.count; _i3 += 3) {\r\n\t\t\t\t\t\taddFace(index.getX(_i3), index.getX(_i3 + 1), index.getX(_i3 + 2));\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tfor (var _i4 = 0; _i4 < position.count; _i4 += 3) {\r\n\t\t\t\t\t\taddFace(_i4, _i4 + 1, _i4 + 2);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.computeFaceNormals();\r\n\r\n\t\t\tif (geometry.boundingBox !== null) {\r\n\t\t\t\tthis.boundingBox = geometry.boundingBox.clone();\r\n\t\t\t}\r\n\r\n\t\t\tif (geometry.boundingSphere !== null) {\r\n\t\t\t\tthis.boundingSphere = geometry.boundingSphere.clone();\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tcenter: function center() {\r\n\t\t\tthis.computeBoundingBox();\r\n\t\t\tthis.boundingBox.getCenter(_offset$1).negate();\r\n\t\t\tthis.translate(_offset$1.x, _offset$1.y, _offset$1.z);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tnormalize: function normalize() {\r\n\t\t\tthis.computeBoundingSphere();\r\n\t\t\tvar center = this.boundingSphere.center;\r\n\t\t\tvar radius = this.boundingSphere.radius;\r\n\t\t\tvar s = radius === 0 ? 1 : 1.0 / radius;\r\n\t\t\tvar matrix = new Matrix4();\r\n\t\t\tmatrix.set(s, 0, 0, -s * center.x, 0, s, 0, -s * center.y, 0, 0, s, -s * center.z, 0, 0, 0, 1);\r\n\t\t\tthis.applyMatrix4(matrix);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tcomputeFaceNormals: function computeFaceNormals() {\r\n\t\t\tvar cb = new Vector3(),\r\n\t\t\t\t\tab = new Vector3();\r\n\r\n\t\t\tfor (var f = 0, fl = this.faces.length; f < fl; f++) {\r\n\t\t\t\tvar face = this.faces[f];\r\n\t\t\t\tvar vA = this.vertices[face.a];\r\n\t\t\t\tvar vB = this.vertices[face.b];\r\n\t\t\t\tvar vC = this.vertices[face.c];\r\n\t\t\t\tcb.subVectors(vC, vB);\r\n\t\t\t\tab.subVectors(vA, vB);\r\n\t\t\t\tcb.cross(ab);\r\n\t\t\t\tcb.normalize();\r\n\t\t\t\tface.normal.copy(cb);\r\n\t\t\t}\r\n\t\t},\r\n\t\tcomputeVertexNormals: function computeVertexNormals(areaWeighted) {\r\n\t\t\tif (areaWeighted === void 0) {\r\n\t\t\t\tareaWeighted = true;\r\n\t\t\t}\r\n\r\n\t\t\tvar vertices = new Array(this.vertices.length);\r\n\r\n\t\t\tfor (var v = 0, vl = this.vertices.length; v < vl; v++) {\r\n\t\t\t\tvertices[v] = new Vector3();\r\n\t\t\t}\r\n\r\n\t\t\tif (areaWeighted) {\r\n\t\t\t\t// vertex normals weighted by triangle areas\r\n\t\t\t\t// http://www.iquilezles.org/www/articles/normals/normals.htm\r\n\t\t\t\tvar cb = new Vector3(),\r\n\t\t\t\t\t\tab = new Vector3();\r\n\r\n\t\t\t\tfor (var f = 0, fl = this.faces.length; f < fl; f++) {\r\n\t\t\t\t\tvar face = this.faces[f];\r\n\t\t\t\t\tvar vA = this.vertices[face.a];\r\n\t\t\t\t\tvar vB = this.vertices[face.b];\r\n\t\t\t\t\tvar vC = this.vertices[face.c];\r\n\t\t\t\t\tcb.subVectors(vC, vB);\r\n\t\t\t\t\tab.subVectors(vA, vB);\r\n\t\t\t\t\tcb.cross(ab);\r\n\t\t\t\t\tvertices[face.a].add(cb);\r\n\t\t\t\t\tvertices[face.b].add(cb);\r\n\t\t\t\t\tvertices[face.c].add(cb);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tthis.computeFaceNormals();\r\n\r\n\t\t\t\tfor (var _f = 0, _fl = this.faces.length; _f < _fl; _f++) {\r\n\t\t\t\t\tvar _face = this.faces[_f];\r\n\r\n\t\t\t\t\tvertices[_face.a].add(_face.normal);\r\n\r\n\t\t\t\t\tvertices[_face.b].add(_face.normal);\r\n\r\n\t\t\t\t\tvertices[_face.c].add(_face.normal);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfor (var _v = 0, _vl = this.vertices.length; _v < _vl; _v++) {\r\n\t\t\t\tvertices[_v].normalize();\r\n\t\t\t}\r\n\r\n\t\t\tfor (var _f2 = 0, _fl2 = this.faces.length; _f2 < _fl2; _f2++) {\r\n\t\t\t\tvar _face2 = this.faces[_f2];\r\n\t\t\t\tvar vertexNormals = _face2.vertexNormals;\r\n\r\n\t\t\t\tif (vertexNormals.length === 3) {\r\n\t\t\t\t\tvertexNormals[0].copy(vertices[_face2.a]);\r\n\t\t\t\t\tvertexNormals[1].copy(vertices[_face2.b]);\r\n\t\t\t\t\tvertexNormals[2].copy(vertices[_face2.c]);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvertexNormals[0] = vertices[_face2.a].clone();\r\n\t\t\t\t\tvertexNormals[1] = vertices[_face2.b].clone();\r\n\t\t\t\t\tvertexNormals[2] = vertices[_face2.c].clone();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (this.faces.length > 0) {\r\n\t\t\t\tthis.normalsNeedUpdate = true;\r\n\t\t\t}\r\n\t\t},\r\n\t\tcomputeFlatVertexNormals: function computeFlatVertexNormals() {\r\n\t\t\tthis.computeFaceNormals();\r\n\r\n\t\t\tfor (var f = 0, fl = this.faces.length; f < fl; f++) {\r\n\t\t\t\tvar face = this.faces[f];\r\n\t\t\t\tvar vertexNormals = face.vertexNormals;\r\n\r\n\t\t\t\tif (vertexNormals.length === 3) {\r\n\t\t\t\t\tvertexNormals[0].copy(face.normal);\r\n\t\t\t\t\tvertexNormals[1].copy(face.normal);\r\n\t\t\t\t\tvertexNormals[2].copy(face.normal);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvertexNormals[0] = face.normal.clone();\r\n\t\t\t\t\tvertexNormals[1] = face.normal.clone();\r\n\t\t\t\t\tvertexNormals[2] = face.normal.clone();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (this.faces.length > 0) {\r\n\t\t\t\tthis.normalsNeedUpdate = true;\r\n\t\t\t}\r\n\t\t},\r\n\t\tcomputeMorphNormals: function computeMorphNormals() {\r\n\t\t\t// save original normals\r\n\t\t\t// - create temp variables on first access\r\n\t\t\t//\t otherwise just copy (for faster repeated calls)\r\n\t\t\tfor (var f = 0, fl = this.faces.length; f < fl; f++) {\r\n\t\t\t\tvar face = this.faces[f];\r\n\r\n\t\t\t\tif (!face.__originalFaceNormal) {\r\n\t\t\t\t\tface.__originalFaceNormal = face.normal.clone();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tface.__originalFaceNormal.copy(face.normal);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!face.__originalVertexNormals) face.__originalVertexNormals = [];\r\n\r\n\t\t\t\tfor (var i = 0, il = face.vertexNormals.length; i < il; i++) {\r\n\t\t\t\t\tif (!face.__originalVertexNormals[i]) {\r\n\t\t\t\t\t\tface.__originalVertexNormals[i] = face.vertexNormals[i].clone();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tface.__originalVertexNormals[i].copy(face.vertexNormals[i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} // use temp geometry to compute face and vertex normals for each morph\r\n\r\n\r\n\t\t\tvar tmpGeo = new Geometry();\r\n\t\t\ttmpGeo.faces = this.faces;\r\n\r\n\t\t\tfor (var _i5 = 0, _il2 = this.morphTargets.length; _i5 < _il2; _i5++) {\r\n\t\t\t\t// create on first access\r\n\t\t\t\tif (!this.morphNormals[_i5]) {\r\n\t\t\t\t\tthis.morphNormals[_i5] = {};\r\n\t\t\t\t\tthis.morphNormals[_i5].faceNormals = [];\r\n\t\t\t\t\tthis.morphNormals[_i5].vertexNormals = [];\r\n\t\t\t\t\tvar dstNormalsFace = this.morphNormals[_i5].faceNormals;\r\n\t\t\t\t\tvar dstNormalsVertex = this.morphNormals[_i5].vertexNormals;\r\n\r\n\t\t\t\t\tfor (var _f3 = 0, _fl3 = this.faces.length; _f3 < _fl3; _f3++) {\r\n\t\t\t\t\t\tvar faceNormal = new Vector3();\r\n\t\t\t\t\t\tvar vertexNormals = {\r\n\t\t\t\t\t\t\ta: new Vector3(),\r\n\t\t\t\t\t\t\tb: new Vector3(),\r\n\t\t\t\t\t\t\tc: new Vector3()\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tdstNormalsFace.push(faceNormal);\r\n\t\t\t\t\t\tdstNormalsVertex.push(vertexNormals);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar morphNormals = this.morphNormals[_i5]; // set vertices to morph target\r\n\r\n\t\t\t\ttmpGeo.vertices = this.morphTargets[_i5].vertices; // compute morph normals\r\n\r\n\t\t\t\ttmpGeo.computeFaceNormals();\r\n\t\t\t\ttmpGeo.computeVertexNormals(); // store morph normals\r\n\r\n\t\t\t\tfor (var _f4 = 0, _fl4 = this.faces.length; _f4 < _fl4; _f4++) {\r\n\t\t\t\t\tvar _face3 = this.faces[_f4];\r\n\t\t\t\t\tvar _faceNormal = morphNormals.faceNormals[_f4];\r\n\t\t\t\t\tvar _vertexNormals = morphNormals.vertexNormals[_f4];\r\n\r\n\t\t\t\t\t_faceNormal.copy(_face3.normal);\r\n\r\n\t\t\t\t\t_vertexNormals.a.copy(_face3.vertexNormals[0]);\r\n\r\n\t\t\t\t\t_vertexNormals.b.copy(_face3.vertexNormals[1]);\r\n\r\n\t\t\t\t\t_vertexNormals.c.copy(_face3.vertexNormals[2]);\r\n\t\t\t\t}\r\n\t\t\t} // restore original normals\r\n\r\n\r\n\t\t\tfor (var _f5 = 0, _fl5 = this.faces.length; _f5 < _fl5; _f5++) {\r\n\t\t\t\tvar _face4 = this.faces[_f5];\r\n\t\t\t\t_face4.normal = _face4.__originalFaceNormal;\r\n\t\t\t\t_face4.vertexNormals = _face4.__originalVertexNormals;\r\n\t\t\t}\r\n\t\t},\r\n\t\tcomputeBoundingBox: function computeBoundingBox() {\r\n\t\t\tif (this.boundingBox === null) {\r\n\t\t\t\tthis.boundingBox = new Box3();\r\n\t\t\t}\r\n\r\n\t\t\tthis.boundingBox.setFromPoints(this.vertices);\r\n\t\t},\r\n\t\tcomputeBoundingSphere: function computeBoundingSphere() {\r\n\t\t\tif (this.boundingSphere === null) {\r\n\t\t\t\tthis.boundingSphere = new Sphere();\r\n\t\t\t}\r\n\r\n\t\t\tthis.boundingSphere.setFromPoints(this.vertices);\r\n\t\t},\r\n\t\tmerge: function merge(geometry, matrix, materialIndexOffset) {\r\n\t\t\tif (materialIndexOffset === void 0) {\r\n\t\t\t\tmaterialIndexOffset = 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (!(geometry && geometry.isGeometry)) {\r\n\t\t\t\tconsole.error('THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.', geometry);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar normalMatrix;\r\n\t\t\tvar vertexOffset = this.vertices.length,\r\n\t\t\t\t\tvertices1 = this.vertices,\r\n\t\t\t\t\tvertices2 = geometry.vertices,\r\n\t\t\t\t\tfaces1 = this.faces,\r\n\t\t\t\t\tfaces2 = geometry.faces,\r\n\t\t\t\t\tcolors1 = this.colors,\r\n\t\t\t\t\tcolors2 = geometry.colors;\r\n\r\n\t\t\tif (matrix !== undefined) {\r\n\t\t\t\tnormalMatrix = new Matrix3().getNormalMatrix(matrix);\r\n\t\t\t} // vertices\r\n\r\n\r\n\t\t\tfor (var i = 0, il = vertices2.length; i < il; i++) {\r\n\t\t\t\tvar vertex = vertices2[i];\r\n\t\t\t\tvar vertexCopy = vertex.clone();\r\n\t\t\t\tif (matrix !== undefined) vertexCopy.applyMatrix4(matrix);\r\n\t\t\t\tvertices1.push(vertexCopy);\r\n\t\t\t} // colors\r\n\r\n\r\n\t\t\tfor (var _i6 = 0, _il3 = colors2.length; _i6 < _il3; _i6++) {\r\n\t\t\t\tcolors1.push(colors2[_i6].clone());\r\n\t\t\t} // faces\r\n\r\n\r\n\t\t\tfor (var _i7 = 0, _il4 = faces2.length; _i7 < _il4; _i7++) {\r\n\t\t\t\tvar face = faces2[_i7];\r\n\t\t\t\tvar normal = void 0,\r\n\t\t\t\t\t\tcolor = void 0;\r\n\t\t\t\tvar faceVertexNormals = face.vertexNormals,\r\n\t\t\t\t\t\tfaceVertexColors = face.vertexColors;\r\n\t\t\t\tvar faceCopy = new Face3(face.a + vertexOffset, face.b + vertexOffset, face.c + vertexOffset);\r\n\t\t\t\tfaceCopy.normal.copy(face.normal);\r\n\r\n\t\t\t\tif (normalMatrix !== undefined) {\r\n\t\t\t\t\tfaceCopy.normal.applyMatrix3(normalMatrix).normalize();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfor (var j = 0, jl = faceVertexNormals.length; j < jl; j++) {\r\n\t\t\t\t\tnormal = faceVertexNormals[j].clone();\r\n\r\n\t\t\t\t\tif (normalMatrix !== undefined) {\r\n\t\t\t\t\t\tnormal.applyMatrix3(normalMatrix).normalize();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfaceCopy.vertexNormals.push(normal);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfaceCopy.color.copy(face.color);\r\n\r\n\t\t\t\tfor (var _j = 0, _jl = faceVertexColors.length; _j < _jl; _j++) {\r\n\t\t\t\t\tcolor = faceVertexColors[_j];\r\n\t\t\t\t\tfaceCopy.vertexColors.push(color.clone());\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfaceCopy.materialIndex = face.materialIndex + materialIndexOffset;\r\n\t\t\t\tfaces1.push(faceCopy);\r\n\t\t\t} // uvs\r\n\r\n\r\n\t\t\tfor (var _i8 = 0, _il5 = geometry.faceVertexUvs.length; _i8 < _il5; _i8++) {\r\n\t\t\t\tvar faceVertexUvs2 = geometry.faceVertexUvs[_i8];\r\n\t\t\t\tif (this.faceVertexUvs[_i8] === undefined) this.faceVertexUvs[_i8] = [];\r\n\r\n\t\t\t\tfor (var _j2 = 0, _jl2 = faceVertexUvs2.length; _j2 < _jl2; _j2++) {\r\n\t\t\t\t\tvar uvs2 = faceVertexUvs2[_j2],\r\n\t\t\t\t\t\t\tuvsCopy = [];\r\n\r\n\t\t\t\t\tfor (var k = 0, kl = uvs2.length; k < kl; k++) {\r\n\t\t\t\t\t\tuvsCopy.push(uvs2[k].clone());\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.faceVertexUvs[_i8].push(uvsCopy);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tmergeMesh: function mergeMesh(mesh) {\r\n\t\t\tif (!(mesh && mesh.isMesh)) {\r\n\t\t\t\tconsole.error('THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.', mesh);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (mesh.matrixAutoUpdate) mesh.updateMatrix();\r\n\t\t\tthis.merge(mesh.geometry, mesh.matrix);\r\n\t\t},\r\n\r\n\t\t/*\r\n\t\t * Checks for duplicate vertices with hashmap.\r\n\t\t * Duplicated vertices are removed\r\n\t\t * and faces' vertices are updated.\r\n\t\t */\r\n\t\tmergeVertices: function mergeVertices(precisionPoints) {\r\n\t\t\tif (precisionPoints === void 0) {\r\n\t\t\t\tprecisionPoints = 4;\r\n\t\t\t}\r\n\r\n\t\t\tvar verticesMap = {}; // Hashmap for looking up vertices by position coordinates (and making sure they are unique)\r\n\r\n\t\t\tvar unique = [],\r\n\t\t\t\t\tchanges = [];\r\n\t\t\tvar precision = Math.pow(10, precisionPoints);\r\n\r\n\t\t\tfor (var i = 0, il = this.vertices.length; i < il; i++) {\r\n\t\t\t\tvar v = this.vertices[i];\r\n\t\t\t\tvar key = Math.round(v.x * precision) + '_' + Math.round(v.y * precision) + '_' + Math.round(v.z * precision);\r\n\r\n\t\t\t\tif (verticesMap[key] === undefined) {\r\n\t\t\t\t\tverticesMap[key] = i;\r\n\t\t\t\t\tunique.push(this.vertices[i]);\r\n\t\t\t\t\tchanges[i] = unique.length - 1;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t//console.log('Duplicate vertex found. ', i, ' could be using ', verticesMap[key]);\r\n\t\t\t\t\tchanges[i] = changes[verticesMap[key]];\r\n\t\t\t\t}\r\n\t\t\t} // if faces are completely degenerate after merging vertices, we\r\n\t\t\t// have to remove them from the geometry.\r\n\r\n\r\n\t\t\tvar faceIndicesToRemove = [];\r\n\r\n\t\t\tfor (var _i9 = 0, _il6 = this.faces.length; _i9 < _il6; _i9++) {\r\n\t\t\t\tvar face = this.faces[_i9];\r\n\t\t\t\tface.a = changes[face.a];\r\n\t\t\t\tface.b = changes[face.b];\r\n\t\t\t\tface.c = changes[face.c];\r\n\t\t\t\tvar indices = [face.a, face.b, face.c]; // if any duplicate vertices are found in a Face3\r\n\t\t\t\t// we have to remove the face as nothing can be saved\r\n\r\n\t\t\t\tfor (var n = 0; n < 3; n++) {\r\n\t\t\t\t\tif (indices[n] === indices[(n + 1) % 3]) {\r\n\t\t\t\t\t\tfaceIndicesToRemove.push(_i9);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfor (var _i10 = faceIndicesToRemove.length - 1; _i10 >= 0; _i10--) {\r\n\t\t\t\tvar idx = faceIndicesToRemove[_i10];\r\n\t\t\t\tthis.faces.splice(idx, 1);\r\n\r\n\t\t\t\tfor (var j = 0, jl = this.faceVertexUvs.length; j < jl; j++) {\r\n\t\t\t\t\tthis.faceVertexUvs[j].splice(idx, 1);\r\n\t\t\t\t}\r\n\t\t\t} // Use unique set of vertices\r\n\r\n\r\n\t\t\tvar diff = this.vertices.length - unique.length;\r\n\t\t\tthis.vertices = unique;\r\n\t\t\treturn diff;\r\n\t\t},\r\n\t\tsetFromPoints: function setFromPoints(points) {\r\n\t\t\tthis.vertices = [];\r\n\r\n\t\t\tfor (var i = 0, l = points.length; i < l; i++) {\r\n\t\t\t\tvar point = points[i];\r\n\t\t\t\tthis.vertices.push(new Vector3(point.x, point.y, point.z || 0));\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tsortFacesByMaterialIndex: function sortFacesByMaterialIndex() {\r\n\t\t\tvar faces = this.faces;\r\n\t\t\tvar length = faces.length; // tag faces\r\n\r\n\t\t\tfor (var i = 0; i < length; i++) {\r\n\t\t\t\tfaces[i]._id = i;\r\n\t\t\t} // sort faces\r\n\r\n\r\n\t\t\tfunction materialIndexSort(a, b) {\r\n\t\t\t\treturn a.materialIndex - b.materialIndex;\r\n\t\t\t}\r\n\r\n\t\t\tfaces.sort(materialIndexSort); // sort uvs\r\n\r\n\t\t\tvar uvs1 = this.faceVertexUvs[0];\r\n\t\t\tvar uvs2 = this.faceVertexUvs[1];\r\n\t\t\tvar newUvs1, newUvs2;\r\n\t\t\tif (uvs1 && uvs1.length === length) newUvs1 = [];\r\n\t\t\tif (uvs2 && uvs2.length === length) newUvs2 = [];\r\n\r\n\t\t\tfor (var _i11 = 0; _i11 < length; _i11++) {\r\n\t\t\t\tvar id = faces[_i11]._id;\r\n\t\t\t\tif (newUvs1) newUvs1.push(uvs1[id]);\r\n\t\t\t\tif (newUvs2) newUvs2.push(uvs2[id]);\r\n\t\t\t}\r\n\r\n\t\t\tif (newUvs1) this.faceVertexUvs[0] = newUvs1;\r\n\t\t\tif (newUvs2) this.faceVertexUvs[1] = newUvs2;\r\n\t\t},\r\n\t\ttoJSON: function toJSON() {\r\n\t\t\tvar data = {\r\n\t\t\t\tmetadata: {\r\n\t\t\t\t\tversion: 4.5,\r\n\t\t\t\t\ttype: 'Geometry',\r\n\t\t\t\t\tgenerator: 'Geometry.toJSON'\r\n\t\t\t\t}\r\n\t\t\t}; // standard Geometry serialization\r\n\r\n\t\t\tdata.uuid = this.uuid;\r\n\t\t\tdata.type = this.type;\r\n\t\t\tif (this.name !== '') data.name = this.name;\r\n\r\n\t\t\tif (this.parameters !== undefined) {\r\n\t\t\t\tvar parameters = this.parameters;\r\n\r\n\t\t\t\tfor (var key in parameters) {\r\n\t\t\t\t\tif (parameters[key] !== undefined) data[key] = parameters[key];\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn data;\r\n\t\t\t}\r\n\r\n\t\t\tvar vertices = [];\r\n\r\n\t\t\tfor (var i = 0; i < this.vertices.length; i++) {\r\n\t\t\t\tvar vertex = this.vertices[i];\r\n\t\t\t\tvertices.push(vertex.x, vertex.y, vertex.z);\r\n\t\t\t}\r\n\r\n\t\t\tvar faces = [];\r\n\t\t\tvar normals = [];\r\n\t\t\tvar normalsHash = {};\r\n\t\t\tvar colors = [];\r\n\t\t\tvar colorsHash = {};\r\n\t\t\tvar uvs = [];\r\n\t\t\tvar uvsHash = {};\r\n\r\n\t\t\tfor (var _i12 = 0; _i12 < this.faces.length; _i12++) {\r\n\t\t\t\tvar face = this.faces[_i12];\r\n\t\t\t\tvar hasMaterial = true;\r\n\t\t\t\tvar hasFaceUv = false; // deprecated\r\n\r\n\t\t\t\tvar hasFaceVertexUv = this.faceVertexUvs[0][_i12] !== undefined;\r\n\t\t\t\tvar hasFaceNormal = face.normal.length() > 0;\r\n\t\t\t\tvar hasFaceVertexNormal = face.vertexNormals.length > 0;\r\n\t\t\t\tvar hasFaceColor = face.color.r !== 1 || face.color.g !== 1 || face.color.b !== 1;\r\n\t\t\t\tvar hasFaceVertexColor = face.vertexColors.length > 0;\r\n\t\t\t\tvar faceType = 0;\r\n\t\t\t\tfaceType = setBit(faceType, 0, 0); // isQuad\r\n\r\n\t\t\t\tfaceType = setBit(faceType, 1, hasMaterial);\r\n\t\t\t\tfaceType = setBit(faceType, 2, hasFaceUv);\r\n\t\t\t\tfaceType = setBit(faceType, 3, hasFaceVertexUv);\r\n\t\t\t\tfaceType = setBit(faceType, 4, hasFaceNormal);\r\n\t\t\t\tfaceType = setBit(faceType, 5, hasFaceVertexNormal);\r\n\t\t\t\tfaceType = setBit(faceType, 6, hasFaceColor);\r\n\t\t\t\tfaceType = setBit(faceType, 7, hasFaceVertexColor);\r\n\t\t\t\tfaces.push(faceType);\r\n\t\t\t\tfaces.push(face.a, face.b, face.c);\r\n\t\t\t\tfaces.push(face.materialIndex);\r\n\r\n\t\t\t\tif (hasFaceVertexUv) {\r\n\t\t\t\t\tvar faceVertexUvs = this.faceVertexUvs[0][_i12];\r\n\t\t\t\t\tfaces.push(getUvIndex(faceVertexUvs[0]), getUvIndex(faceVertexUvs[1]), getUvIndex(faceVertexUvs[2]));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (hasFaceNormal) {\r\n\t\t\t\t\tfaces.push(getNormalIndex(face.normal));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (hasFaceVertexNormal) {\r\n\t\t\t\t\tvar vertexNormals = face.vertexNormals;\r\n\t\t\t\t\tfaces.push(getNormalIndex(vertexNormals[0]), getNormalIndex(vertexNormals[1]), getNormalIndex(vertexNormals[2]));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (hasFaceColor) {\r\n\t\t\t\t\tfaces.push(getColorIndex(face.color));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (hasFaceVertexColor) {\r\n\t\t\t\t\tvar vertexColors = face.vertexColors;\r\n\t\t\t\t\tfaces.push(getColorIndex(vertexColors[0]), getColorIndex(vertexColors[1]), getColorIndex(vertexColors[2]));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction setBit(value, position, enabled) {\r\n\t\t\t\treturn enabled ? value | 1 << position : value & ~(1 << position);\r\n\t\t\t}\r\n\r\n\t\t\tfunction getNormalIndex(normal) {\r\n\t\t\t\tvar hash = normal.x.toString() + normal.y.toString() + normal.z.toString();\r\n\r\n\t\t\t\tif (normalsHash[hash] !== undefined) {\r\n\t\t\t\t\treturn normalsHash[hash];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tnormalsHash[hash] = normals.length / 3;\r\n\t\t\t\tnormals.push(normal.x, normal.y, normal.z);\r\n\t\t\t\treturn normalsHash[hash];\r\n\t\t\t}\r\n\r\n\t\t\tfunction getColorIndex(color) {\r\n\t\t\t\tvar hash = color.r.toString() + color.g.toString() + color.b.toString();\r\n\r\n\t\t\t\tif (colorsHash[hash] !== undefined) {\r\n\t\t\t\t\treturn colorsHash[hash];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcolorsHash[hash] = colors.length;\r\n\t\t\t\tcolors.push(color.getHex());\r\n\t\t\t\treturn colorsHash[hash];\r\n\t\t\t}\r\n\r\n\t\t\tfunction getUvIndex(uv) {\r\n\t\t\t\tvar hash = uv.x.toString() + uv.y.toString();\r\n\r\n\t\t\t\tif (uvsHash[hash] !== undefined) {\r\n\t\t\t\t\treturn uvsHash[hash];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tuvsHash[hash] = uvs.length / 2;\r\n\t\t\t\tuvs.push(uv.x, uv.y);\r\n\t\t\t\treturn uvsHash[hash];\r\n\t\t\t}\r\n\r\n\t\t\tdata.data = {};\r\n\t\t\tdata.data.vertices = vertices;\r\n\t\t\tdata.data.normals = normals;\r\n\t\t\tif (colors.length > 0) data.data.colors = colors;\r\n\t\t\tif (uvs.length > 0) data.data.uvs = [uvs]; // temporal backward compatibility\r\n\r\n\t\t\tdata.data.faces = faces;\r\n\t\t\treturn data;\r\n\t\t},\r\n\t\tclone: function clone() {\r\n\t\t\t/*\r\n\t\t\t // Handle primitives\r\n\t\t\t\t const parameters = this.parameters;\r\n\t\t\t\t if ( parameters !== undefined ) {\r\n\t\t\t\t const values = [];\r\n\t\t\t\t for ( const key in parameters ) {\r\n\t\t\t\t values.push( parameters[ key ] );\r\n\t\t\t\t }\r\n\t\t\t\t const geometry = Object.create( this.constructor.prototype );\r\n\t\t\t this.constructor.apply( geometry, values );\r\n\t\t\t return geometry;\r\n\t\t\t\t }\r\n\t\t\t\t return new this.constructor().copy( this );\r\n\t\t\t */\r\n\t\t\treturn new Geometry().copy(this);\r\n\t\t},\r\n\t\tcopy: function copy(source) {\r\n\t\t\t// reset\r\n\t\t\tthis.vertices = [];\r\n\t\t\tthis.colors = [];\r\n\t\t\tthis.faces = [];\r\n\t\t\tthis.faceVertexUvs = [[]];\r\n\t\t\tthis.morphTargets = [];\r\n\t\t\tthis.morphNormals = [];\r\n\t\t\tthis.skinWeights = [];\r\n\t\t\tthis.skinIndices = [];\r\n\t\t\tthis.lineDistances = [];\r\n\t\t\tthis.boundingBox = null;\r\n\t\t\tthis.boundingSphere = null; // name\r\n\r\n\t\t\tthis.name = source.name; // vertices\r\n\r\n\t\t\tvar vertices = source.vertices;\r\n\r\n\t\t\tfor (var i = 0, il = vertices.length; i < il; i++) {\r\n\t\t\t\tthis.vertices.push(vertices[i].clone());\r\n\t\t\t} // colors\r\n\r\n\r\n\t\t\tvar colors = source.colors;\r\n\r\n\t\t\tfor (var _i13 = 0, _il7 = colors.length; _i13 < _il7; _i13++) {\r\n\t\t\t\tthis.colors.push(colors[_i13].clone());\r\n\t\t\t} // faces\r\n\r\n\r\n\t\t\tvar faces = source.faces;\r\n\r\n\t\t\tfor (var _i14 = 0, _il8 = faces.length; _i14 < _il8; _i14++) {\r\n\t\t\t\tthis.faces.push(faces[_i14].clone());\r\n\t\t\t} // face vertex uvs\r\n\r\n\r\n\t\t\tfor (var _i15 = 0, _il9 = source.faceVertexUvs.length; _i15 < _il9; _i15++) {\r\n\t\t\t\tvar faceVertexUvs = source.faceVertexUvs[_i15];\r\n\r\n\t\t\t\tif (this.faceVertexUvs[_i15] === undefined) {\r\n\t\t\t\t\tthis.faceVertexUvs[_i15] = [];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfor (var j = 0, jl = faceVertexUvs.length; j < jl; j++) {\r\n\t\t\t\t\tvar uvs = faceVertexUvs[j],\r\n\t\t\t\t\t\t\tuvsCopy = [];\r\n\r\n\t\t\t\t\tfor (var k = 0, kl = uvs.length; k < kl; k++) {\r\n\t\t\t\t\t\tvar uv = uvs[k];\r\n\t\t\t\t\t\tuvsCopy.push(uv.clone());\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.faceVertexUvs[_i15].push(uvsCopy);\r\n\t\t\t\t}\r\n\t\t\t} // morph targets\r\n\r\n\r\n\t\t\tvar morphTargets = source.morphTargets;\r\n\r\n\t\t\tfor (var _i16 = 0, _il10 = morphTargets.length; _i16 < _il10; _i16++) {\r\n\t\t\t\tvar morphTarget = {};\r\n\t\t\t\tmorphTarget.name = morphTargets[_i16].name; // vertices\r\n\r\n\t\t\t\tif (morphTargets[_i16].vertices !== undefined) {\r\n\t\t\t\t\tmorphTarget.vertices = [];\r\n\r\n\t\t\t\t\tfor (var _j3 = 0, _jl3 = morphTargets[_i16].vertices.length; _j3 < _jl3; _j3++) {\r\n\t\t\t\t\t\tmorphTarget.vertices.push(morphTargets[_i16].vertices[_j3].clone());\r\n\t\t\t\t\t}\r\n\t\t\t\t} // normals\r\n\r\n\r\n\t\t\t\tif (morphTargets[_i16].normals !== undefined) {\r\n\t\t\t\t\tmorphTarget.normals = [];\r\n\r\n\t\t\t\t\tfor (var _j4 = 0, _jl4 = morphTargets[_i16].normals.length; _j4 < _jl4; _j4++) {\r\n\t\t\t\t\t\tmorphTarget.normals.push(morphTargets[_i16].normals[_j4].clone());\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.morphTargets.push(morphTarget);\r\n\t\t\t} // morph normals\r\n\r\n\r\n\t\t\tvar morphNormals = source.morphNormals;\r\n\r\n\t\t\tfor (var _i17 = 0, _il11 = morphNormals.length; _i17 < _il11; _i17++) {\r\n\t\t\t\tvar morphNormal = {}; // vertex normals\r\n\r\n\t\t\t\tif (morphNormals[_i17].vertexNormals !== undefined) {\r\n\t\t\t\t\tmorphNormal.vertexNormals = [];\r\n\r\n\t\t\t\t\tfor (var _j5 = 0, _jl5 = morphNormals[_i17].vertexNormals.length; _j5 < _jl5; _j5++) {\r\n\t\t\t\t\t\tvar srcVertexNormal = morphNormals[_i17].vertexNormals[_j5];\r\n\t\t\t\t\t\tvar destVertexNormal = {};\r\n\t\t\t\t\t\tdestVertexNormal.a = srcVertexNormal.a.clone();\r\n\t\t\t\t\t\tdestVertexNormal.b = srcVertexNormal.b.clone();\r\n\t\t\t\t\t\tdestVertexNormal.c = srcVertexNormal.c.clone();\r\n\t\t\t\t\t\tmorphNormal.vertexNormals.push(destVertexNormal);\r\n\t\t\t\t\t}\r\n\t\t\t\t} // face normals\r\n\r\n\r\n\t\t\t\tif (morphNormals[_i17].faceNormals !== undefined) {\r\n\t\t\t\t\tmorphNormal.faceNormals = [];\r\n\r\n\t\t\t\t\tfor (var _j6 = 0, _jl6 = morphNormals[_i17].faceNormals.length; _j6 < _jl6; _j6++) {\r\n\t\t\t\t\t\tmorphNormal.faceNormals.push(morphNormals[_i17].faceNormals[_j6].clone());\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.morphNormals.push(morphNormal);\r\n\t\t\t} // skin weights\r\n\r\n\r\n\t\t\tvar skinWeights = source.skinWeights;\r\n\r\n\t\t\tfor (var _i18 = 0, _il12 = skinWeights.length; _i18 < _il12; _i18++) {\r\n\t\t\t\tthis.skinWeights.push(skinWeights[_i18].clone());\r\n\t\t\t} // skin indices\r\n\r\n\r\n\t\t\tvar skinIndices = source.skinIndices;\r\n\r\n\t\t\tfor (var _i19 = 0, _il13 = skinIndices.length; _i19 < _il13; _i19++) {\r\n\t\t\t\tthis.skinIndices.push(skinIndices[_i19].clone());\r\n\t\t\t} // line distances\r\n\r\n\r\n\t\t\tvar lineDistances = source.lineDistances;\r\n\r\n\t\t\tfor (var _i20 = 0, _il14 = lineDistances.length; _i20 < _il14; _i20++) {\r\n\t\t\t\tthis.lineDistances.push(lineDistances[_i20]);\r\n\t\t\t} // bounding box\r\n\r\n\r\n\t\t\tvar boundingBox = source.boundingBox;\r\n\r\n\t\t\tif (boundingBox !== null) {\r\n\t\t\t\tthis.boundingBox = boundingBox.clone();\r\n\t\t\t} // bounding sphere\r\n\r\n\r\n\t\t\tvar boundingSphere = source.boundingSphere;\r\n\r\n\t\t\tif (boundingSphere !== null) {\r\n\t\t\t\tthis.boundingSphere = boundingSphere.clone();\r\n\t\t\t} // update flags\r\n\r\n\r\n\t\t\tthis.elementsNeedUpdate = source.elementsNeedUpdate;\r\n\t\t\tthis.verticesNeedUpdate = source.verticesNeedUpdate;\r\n\t\t\tthis.uvsNeedUpdate = source.uvsNeedUpdate;\r\n\t\t\tthis.normalsNeedUpdate = source.normalsNeedUpdate;\r\n\t\t\tthis.colorsNeedUpdate = source.colorsNeedUpdate;\r\n\t\t\tthis.lineDistancesNeedUpdate = source.lineDistancesNeedUpdate;\r\n\t\t\tthis.groupsNeedUpdate = source.groupsNeedUpdate;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tdispose: function dispose() {\r\n\t\t\tthis.dispatchEvent({\r\n\t\t\t\ttype: 'dispose'\r\n\t\t\t});\r\n\t\t}\r\n\t});\r\n\r\n\tvar BoxGeometry = /*#__PURE__*/function (_Geometry) {\r\n\t\t_inheritsLoose(BoxGeometry, _Geometry);\r\n\r\n\t\tfunction BoxGeometry(width, height, depth, widthSegments, heightSegments, depthSegments) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\t_this = _Geometry.call(this) || this;\r\n\t\t\t_this.type = 'BoxGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\twidth: width,\r\n\t\t\t\theight: height,\r\n\t\t\t\tdepth: depth,\r\n\t\t\t\twidthSegments: widthSegments,\r\n\t\t\t\theightSegments: heightSegments,\r\n\t\t\t\tdepthSegments: depthSegments\r\n\t\t\t};\r\n\r\n\t\t\t_this.fromBufferGeometry(new BoxBufferGeometry(width, height, depth, widthSegments, heightSegments, depthSegments));\r\n\r\n\t\t\t_this.mergeVertices();\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn BoxGeometry;\r\n\t}(Geometry);\r\n\r\n\tvar CircleBufferGeometry = /*#__PURE__*/function (_BufferGeometry) {\r\n\t\t_inheritsLoose(CircleBufferGeometry, _BufferGeometry);\r\n\r\n\t\tfunction CircleBufferGeometry(radius, segments, thetaStart, thetaLength) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\tif (radius === void 0) {\r\n\t\t\t\tradius = 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (segments === void 0) {\r\n\t\t\t\tsegments = 8;\r\n\t\t\t}\r\n\r\n\t\t\tif (thetaStart === void 0) {\r\n\t\t\t\tthetaStart = 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (thetaLength === void 0) {\r\n\t\t\t\tthetaLength = Math.PI * 2;\r\n\t\t\t}\r\n\r\n\t\t\t_this = _BufferGeometry.call(this) || this;\r\n\t\t\t_this.type = 'CircleBufferGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\tradius: radius,\r\n\t\t\t\tsegments: segments,\r\n\t\t\t\tthetaStart: thetaStart,\r\n\t\t\t\tthetaLength: thetaLength\r\n\t\t\t};\r\n\t\t\tsegments = Math.max(3, segments); // buffers\r\n\r\n\t\t\tvar indices = [];\r\n\t\t\tvar vertices = [];\r\n\t\t\tvar normals = [];\r\n\t\t\tvar uvs = []; // helper variables\r\n\r\n\t\t\tvar vertex = new Vector3();\r\n\t\t\tvar uv = new Vector2(); // center point\r\n\r\n\t\t\tvertices.push(0, 0, 0);\r\n\t\t\tnormals.push(0, 0, 1);\r\n\t\t\tuvs.push(0.5, 0.5);\r\n\r\n\t\t\tfor (var s = 0, i = 3; s <= segments; s++, i += 3) {\r\n\t\t\t\tvar segment = thetaStart + s / segments * thetaLength; // vertex\r\n\r\n\t\t\t\tvertex.x = radius * Math.cos(segment);\r\n\t\t\t\tvertex.y = radius * Math.sin(segment);\r\n\t\t\t\tvertices.push(vertex.x, vertex.y, vertex.z); // normal\r\n\r\n\t\t\t\tnormals.push(0, 0, 1); // uvs\r\n\r\n\t\t\t\tuv.x = (vertices[i] / radius + 1) / 2;\r\n\t\t\t\tuv.y = (vertices[i + 1] / radius + 1) / 2;\r\n\t\t\t\tuvs.push(uv.x, uv.y);\r\n\t\t\t} // indices\r\n\r\n\r\n\t\t\tfor (var _i = 1; _i <= segments; _i++) {\r\n\t\t\t\tindices.push(_i, _i + 1, 0);\r\n\t\t\t} // build geometry\r\n\r\n\r\n\t\t\t_this.setIndex(indices);\r\n\r\n\t\t\t_this.setAttribute('position', new Float32BufferAttribute(vertices, 3));\r\n\r\n\t\t\t_this.setAttribute('normal', new Float32BufferAttribute(normals, 3));\r\n\r\n\t\t\t_this.setAttribute('uv', new Float32BufferAttribute(uvs, 2));\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn CircleBufferGeometry;\r\n\t}(BufferGeometry);\r\n\r\n\tvar CircleGeometry = /*#__PURE__*/function (_Geometry) {\r\n\t\t_inheritsLoose(CircleGeometry, _Geometry);\r\n\r\n\t\tfunction CircleGeometry(radius, segments, thetaStart, thetaLength) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\t_this = _Geometry.call(this) || this;\r\n\t\t\t_this.type = 'CircleGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\tradius: radius,\r\n\t\t\t\tsegments: segments,\r\n\t\t\t\tthetaStart: thetaStart,\r\n\t\t\t\tthetaLength: thetaLength\r\n\t\t\t};\r\n\r\n\t\t\t_this.fromBufferGeometry(new CircleBufferGeometry(radius, segments, thetaStart, thetaLength));\r\n\r\n\t\t\t_this.mergeVertices();\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn CircleGeometry;\r\n\t}(Geometry);\r\n\r\n\tvar CylinderBufferGeometry = /*#__PURE__*/function (_BufferGeometry) {\r\n\t\t_inheritsLoose(CylinderBufferGeometry, _BufferGeometry);\r\n\r\n\t\tfunction CylinderBufferGeometry(radiusTop, radiusBottom, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\tif (radiusTop === void 0) {\r\n\t\t\t\tradiusTop = 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (radiusBottom === void 0) {\r\n\t\t\t\tradiusBottom = 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (height === void 0) {\r\n\t\t\t\theight = 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (radialSegments === void 0) {\r\n\t\t\t\tradialSegments = 8;\r\n\t\t\t}\r\n\r\n\t\t\tif (heightSegments === void 0) {\r\n\t\t\t\theightSegments = 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (openEnded === void 0) {\r\n\t\t\t\topenEnded = false;\r\n\t\t\t}\r\n\r\n\t\t\tif (thetaStart === void 0) {\r\n\t\t\t\tthetaStart = 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (thetaLength === void 0) {\r\n\t\t\t\tthetaLength = Math.PI * 2;\r\n\t\t\t}\r\n\r\n\t\t\t_this = _BufferGeometry.call(this) || this;\r\n\t\t\t_this.type = 'CylinderBufferGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\tradiusTop: radiusTop,\r\n\t\t\t\tradiusBottom: radiusBottom,\r\n\t\t\t\theight: height,\r\n\t\t\t\tradialSegments: radialSegments,\r\n\t\t\t\theightSegments: heightSegments,\r\n\t\t\t\topenEnded: openEnded,\r\n\t\t\t\tthetaStart: thetaStart,\r\n\t\t\t\tthetaLength: thetaLength\r\n\t\t\t};\r\n\r\n\t\t\tvar scope = _assertThisInitialized(_this);\r\n\r\n\t\t\tradialSegments = Math.floor(radialSegments);\r\n\t\t\theightSegments = Math.floor(heightSegments); // buffers\r\n\r\n\t\t\tvar indices = [];\r\n\t\t\tvar vertices = [];\r\n\t\t\tvar normals = [];\r\n\t\t\tvar uvs = []; // helper variables\r\n\r\n\t\t\tvar index = 0;\r\n\t\t\tvar indexArray = [];\r\n\t\t\tvar halfHeight = height / 2;\r\n\t\t\tvar groupStart = 0; // generate geometry\r\n\r\n\t\t\tgenerateTorso();\r\n\r\n\t\t\tif (openEnded === false) {\r\n\t\t\t\tif (radiusTop > 0) generateCap(true);\r\n\t\t\t\tif (radiusBottom > 0) generateCap(false);\r\n\t\t\t} // build geometry\r\n\r\n\r\n\t\t\t_this.setIndex(indices);\r\n\r\n\t\t\t_this.setAttribute('position', new Float32BufferAttribute(vertices, 3));\r\n\r\n\t\t\t_this.setAttribute('normal', new Float32BufferAttribute(normals, 3));\r\n\r\n\t\t\t_this.setAttribute('uv', new Float32BufferAttribute(uvs, 2));\r\n\r\n\t\t\tfunction generateTorso() {\r\n\t\t\t\tvar normal = new Vector3();\r\n\t\t\t\tvar vertex = new Vector3();\r\n\t\t\t\tvar groupCount = 0; // this will be used to calculate the normal\r\n\r\n\t\t\t\tvar slope = (radiusBottom - radiusTop) / height; // generate vertices, normals and uvs\r\n\r\n\t\t\t\tfor (var y = 0; y <= heightSegments; y++) {\r\n\t\t\t\t\tvar indexRow = [];\r\n\t\t\t\t\tvar v = y / heightSegments; // calculate the radius of the current row\r\n\r\n\t\t\t\t\tvar radius = v * (radiusBottom - radiusTop) + radiusTop;\r\n\r\n\t\t\t\t\tfor (var x = 0; x <= radialSegments; x++) {\r\n\t\t\t\t\t\tvar u = x / radialSegments;\r\n\t\t\t\t\t\tvar theta = u * thetaLength + thetaStart;\r\n\t\t\t\t\t\tvar sinTheta = Math.sin(theta);\r\n\t\t\t\t\t\tvar cosTheta = Math.cos(theta); // vertex\r\n\r\n\t\t\t\t\t\tvertex.x = radius * sinTheta;\r\n\t\t\t\t\t\tvertex.y = -v * height + halfHeight;\r\n\t\t\t\t\t\tvertex.z = radius * cosTheta;\r\n\t\t\t\t\t\tvertices.push(vertex.x, vertex.y, vertex.z); // normal\r\n\r\n\t\t\t\t\t\tnormal.set(sinTheta, slope, cosTheta).normalize();\r\n\t\t\t\t\t\tnormals.push(normal.x, normal.y, normal.z); // uv\r\n\r\n\t\t\t\t\t\tuvs.push(u, 1 - v); // save index of vertex in respective row\r\n\r\n\t\t\t\t\t\tindexRow.push(index++);\r\n\t\t\t\t\t} // now save vertices of the row in our index array\r\n\r\n\r\n\t\t\t\t\tindexArray.push(indexRow);\r\n\t\t\t\t} // generate indices\r\n\r\n\r\n\t\t\t\tfor (var _x = 0; _x < radialSegments; _x++) {\r\n\t\t\t\t\tfor (var _y = 0; _y < heightSegments; _y++) {\r\n\t\t\t\t\t\t// we use the index array to access the correct indices\r\n\t\t\t\t\t\tvar a = indexArray[_y][_x];\r\n\t\t\t\t\t\tvar b = indexArray[_y + 1][_x];\r\n\t\t\t\t\t\tvar c = indexArray[_y + 1][_x + 1];\r\n\t\t\t\t\t\tvar d = indexArray[_y][_x + 1]; // faces\r\n\r\n\t\t\t\t\t\tindices.push(a, b, d);\r\n\t\t\t\t\t\tindices.push(b, c, d); // update group counter\r\n\r\n\t\t\t\t\t\tgroupCount += 6;\r\n\t\t\t\t\t}\r\n\t\t\t\t} // add a group to the geometry. this will ensure multi material support\r\n\r\n\r\n\t\t\t\tscope.addGroup(groupStart, groupCount, 0); // calculate new start value for groups\r\n\r\n\t\t\t\tgroupStart += groupCount;\r\n\t\t\t}\r\n\r\n\t\t\tfunction generateCap(top) {\r\n\t\t\t\t// save the index of the first center vertex\r\n\t\t\t\tvar centerIndexStart = index;\r\n\t\t\t\tvar uv = new Vector2();\r\n\t\t\t\tvar vertex = new Vector3();\r\n\t\t\t\tvar groupCount = 0;\r\n\t\t\t\tvar radius = top === true ? radiusTop : radiusBottom;\r\n\t\t\t\tvar sign = top === true ? 1 : -1; // first we generate the center vertex data of the cap.\r\n\t\t\t\t// because the geometry needs one set of uvs per face,\r\n\t\t\t\t// we must generate a center vertex per face/segment\r\n\r\n\t\t\t\tfor (var x = 1; x <= radialSegments; x++) {\r\n\t\t\t\t\t// vertex\r\n\t\t\t\t\tvertices.push(0, halfHeight * sign, 0); // normal\r\n\r\n\t\t\t\t\tnormals.push(0, sign, 0); // uv\r\n\r\n\t\t\t\t\tuvs.push(0.5, 0.5); // increase index\r\n\r\n\t\t\t\t\tindex++;\r\n\t\t\t\t} // save the index of the last center vertex\r\n\r\n\r\n\t\t\t\tvar centerIndexEnd = index; // now we generate the surrounding vertices, normals and uvs\r\n\r\n\t\t\t\tfor (var _x2 = 0; _x2 <= radialSegments; _x2++) {\r\n\t\t\t\t\tvar u = _x2 / radialSegments;\r\n\t\t\t\t\tvar theta = u * thetaLength + thetaStart;\r\n\t\t\t\t\tvar cosTheta = Math.cos(theta);\r\n\t\t\t\t\tvar sinTheta = Math.sin(theta); // vertex\r\n\r\n\t\t\t\t\tvertex.x = radius * sinTheta;\r\n\t\t\t\t\tvertex.y = halfHeight * sign;\r\n\t\t\t\t\tvertex.z = radius * cosTheta;\r\n\t\t\t\t\tvertices.push(vertex.x, vertex.y, vertex.z); // normal\r\n\r\n\t\t\t\t\tnormals.push(0, sign, 0); // uv\r\n\r\n\t\t\t\t\tuv.x = cosTheta * 0.5 + 0.5;\r\n\t\t\t\t\tuv.y = sinTheta * 0.5 * sign + 0.5;\r\n\t\t\t\t\tuvs.push(uv.x, uv.y); // increase index\r\n\r\n\t\t\t\t\tindex++;\r\n\t\t\t\t} // generate indices\r\n\r\n\r\n\t\t\t\tfor (var _x3 = 0; _x3 < radialSegments; _x3++) {\r\n\t\t\t\t\tvar c = centerIndexStart + _x3;\r\n\t\t\t\t\tvar i = centerIndexEnd + _x3;\r\n\r\n\t\t\t\t\tif (top === true) {\r\n\t\t\t\t\t\t// face top\r\n\t\t\t\t\t\tindices.push(i, i + 1, c);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// face bottom\r\n\t\t\t\t\t\tindices.push(i + 1, i, c);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tgroupCount += 3;\r\n\t\t\t\t} // add a group to the geometry. this will ensure multi material support\r\n\r\n\r\n\t\t\t\tscope.addGroup(groupStart, groupCount, top === true ? 1 : 2); // calculate new start value for groups\r\n\r\n\t\t\t\tgroupStart += groupCount;\r\n\t\t\t}\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn CylinderBufferGeometry;\r\n\t}(BufferGeometry);\r\n\r\n\tvar CylinderGeometry = /*#__PURE__*/function (_Geometry) {\r\n\t\t_inheritsLoose(CylinderGeometry, _Geometry);\r\n\r\n\t\tfunction CylinderGeometry(radiusTop, radiusBottom, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\t_this = _Geometry.call(this) || this;\r\n\t\t\t_this.type = 'CylinderGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\tradiusTop: radiusTop,\r\n\t\t\t\tradiusBottom: radiusBottom,\r\n\t\t\t\theight: height,\r\n\t\t\t\tradialSegments: radialSegments,\r\n\t\t\t\theightSegments: heightSegments,\r\n\t\t\t\topenEnded: openEnded,\r\n\t\t\t\tthetaStart: thetaStart,\r\n\t\t\t\tthetaLength: thetaLength\r\n\t\t\t};\r\n\r\n\t\t\t_this.fromBufferGeometry(new CylinderBufferGeometry(radiusTop, radiusBottom, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength));\r\n\r\n\t\t\t_this.mergeVertices();\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn CylinderGeometry;\r\n\t}(Geometry);\r\n\r\n\tvar ConeGeometry = /*#__PURE__*/function (_CylinderGeometry) {\r\n\t\t_inheritsLoose(ConeGeometry, _CylinderGeometry);\r\n\r\n\t\tfunction ConeGeometry(radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\t_this = _CylinderGeometry.call(this, 0, radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength) || this;\r\n\t\t\t_this.type = 'ConeGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\tradius: radius,\r\n\t\t\t\theight: height,\r\n\t\t\t\tradialSegments: radialSegments,\r\n\t\t\t\theightSegments: heightSegments,\r\n\t\t\t\topenEnded: openEnded,\r\n\t\t\t\tthetaStart: thetaStart,\r\n\t\t\t\tthetaLength: thetaLength\r\n\t\t\t};\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn ConeGeometry;\r\n\t}(CylinderGeometry);\r\n\r\n\tvar ConeBufferGeometry = /*#__PURE__*/function (_CylinderBufferGeomet) {\r\n\t\t_inheritsLoose(ConeBufferGeometry, _CylinderBufferGeomet);\r\n\r\n\t\tfunction ConeBufferGeometry(radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\tif (radius === void 0) {\r\n\t\t\t\tradius = 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (height === void 0) {\r\n\t\t\t\theight = 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (radialSegments === void 0) {\r\n\t\t\t\tradialSegments = 8;\r\n\t\t\t}\r\n\r\n\t\t\tif (heightSegments === void 0) {\r\n\t\t\t\theightSegments = 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (openEnded === void 0) {\r\n\t\t\t\topenEnded = false;\r\n\t\t\t}\r\n\r\n\t\t\tif (thetaStart === void 0) {\r\n\t\t\t\tthetaStart = 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (thetaLength === void 0) {\r\n\t\t\t\tthetaLength = Math.PI * 2;\r\n\t\t\t}\r\n\r\n\t\t\t_this = _CylinderBufferGeomet.call(this, 0, radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength) || this;\r\n\t\t\t_this.type = 'ConeBufferGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\tradius: radius,\r\n\t\t\t\theight: height,\r\n\t\t\t\tradialSegments: radialSegments,\r\n\t\t\t\theightSegments: heightSegments,\r\n\t\t\t\topenEnded: openEnded,\r\n\t\t\t\tthetaStart: thetaStart,\r\n\t\t\t\tthetaLength: thetaLength\r\n\t\t\t};\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn ConeBufferGeometry;\r\n\t}(CylinderBufferGeometry);\r\n\r\n\tvar PolyhedronBufferGeometry = /*#__PURE__*/function (_BufferGeometry) {\r\n\t\t_inheritsLoose(PolyhedronBufferGeometry, _BufferGeometry);\r\n\r\n\t\tfunction PolyhedronBufferGeometry(vertices, indices, radius, detail) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\tif (radius === void 0) {\r\n\t\t\t\tradius = 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (detail === void 0) {\r\n\t\t\t\tdetail = 0;\r\n\t\t\t}\r\n\r\n\t\t\t_this = _BufferGeometry.call(this) || this;\r\n\t\t\t_this.type = 'PolyhedronBufferGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\tvertices: vertices,\r\n\t\t\t\tindices: indices,\r\n\t\t\t\tradius: radius,\r\n\t\t\t\tdetail: detail\r\n\t\t\t}; // default buffer data\r\n\r\n\t\t\tvar vertexBuffer = [];\r\n\t\t\tvar uvBuffer = []; // the subdivision creates the vertex buffer data\r\n\r\n\t\t\tsubdivide(detail); // all vertices should lie on a conceptual sphere with a given radius\r\n\r\n\t\t\tapplyRadius(radius); // finally, create the uv data\r\n\r\n\t\t\tgenerateUVs(); // build non-indexed geometry\r\n\r\n\t\t\t_this.setAttribute('position', new Float32BufferAttribute(vertexBuffer, 3));\r\n\r\n\t\t\t_this.setAttribute('normal', new Float32BufferAttribute(vertexBuffer.slice(), 3));\r\n\r\n\t\t\t_this.setAttribute('uv', new Float32BufferAttribute(uvBuffer, 2));\r\n\r\n\t\t\tif (detail === 0) {\r\n\t\t\t\t_this.computeVertexNormals(); // flat normals\r\n\r\n\t\t\t} else {\r\n\t\t\t\t_this.normalizeNormals(); // smooth normals\r\n\r\n\t\t\t} // helper functions\r\n\r\n\r\n\t\t\tfunction subdivide(detail) {\r\n\t\t\t\tvar a = new Vector3();\r\n\t\t\t\tvar b = new Vector3();\r\n\t\t\t\tvar c = new Vector3(); // iterate over all faces and apply a subdivison with the given detail value\r\n\r\n\t\t\t\tfor (var i = 0; i < indices.length; i += 3) {\r\n\t\t\t\t\t// get the vertices of the face\r\n\t\t\t\t\tgetVertexByIndex(indices[i + 0], a);\r\n\t\t\t\t\tgetVertexByIndex(indices[i + 1], b);\r\n\t\t\t\t\tgetVertexByIndex(indices[i + 2], c); // perform subdivision\r\n\r\n\t\t\t\t\tsubdivideFace(a, b, c, detail);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction subdivideFace(a, b, c, detail) {\r\n\t\t\t\tvar cols = detail + 1; // we use this multidimensional array as a data structure for creating the subdivision\r\n\r\n\t\t\t\tvar v = []; // construct all of the vertices for this subdivision\r\n\r\n\t\t\t\tfor (var i = 0; i <= cols; i++) {\r\n\t\t\t\t\tv[i] = [];\r\n\t\t\t\t\tvar aj = a.clone().lerp(c, i / cols);\r\n\t\t\t\t\tvar bj = b.clone().lerp(c, i / cols);\r\n\t\t\t\t\tvar rows = cols - i;\r\n\r\n\t\t\t\t\tfor (var j = 0; j <= rows; j++) {\r\n\t\t\t\t\t\tif (j === 0 && i === cols) {\r\n\t\t\t\t\t\t\tv[i][j] = aj;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tv[i][j] = aj.clone().lerp(bj, j / rows);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} // construct all of the faces\r\n\r\n\r\n\t\t\t\tfor (var _i = 0; _i < cols; _i++) {\r\n\t\t\t\t\tfor (var _j = 0; _j < 2 * (cols - _i) - 1; _j++) {\r\n\t\t\t\t\t\tvar k = Math.floor(_j / 2);\r\n\r\n\t\t\t\t\t\tif (_j % 2 === 0) {\r\n\t\t\t\t\t\t\tpushVertex(v[_i][k + 1]);\r\n\t\t\t\t\t\t\tpushVertex(v[_i + 1][k]);\r\n\t\t\t\t\t\t\tpushVertex(v[_i][k]);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tpushVertex(v[_i][k + 1]);\r\n\t\t\t\t\t\t\tpushVertex(v[_i + 1][k + 1]);\r\n\t\t\t\t\t\t\tpushVertex(v[_i + 1][k]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction applyRadius(radius) {\r\n\t\t\t\tvar vertex = new Vector3(); // iterate over the entire buffer and apply the radius to each vertex\r\n\r\n\t\t\t\tfor (var i = 0; i < vertexBuffer.length; i += 3) {\r\n\t\t\t\t\tvertex.x = vertexBuffer[i + 0];\r\n\t\t\t\t\tvertex.y = vertexBuffer[i + 1];\r\n\t\t\t\t\tvertex.z = vertexBuffer[i + 2];\r\n\t\t\t\t\tvertex.normalize().multiplyScalar(radius);\r\n\t\t\t\t\tvertexBuffer[i + 0] = vertex.x;\r\n\t\t\t\t\tvertexBuffer[i + 1] = vertex.y;\r\n\t\t\t\t\tvertexBuffer[i + 2] = vertex.z;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction generateUVs() {\r\n\t\t\t\tvar vertex = new Vector3();\r\n\r\n\t\t\t\tfor (var i = 0; i < vertexBuffer.length; i += 3) {\r\n\t\t\t\t\tvertex.x = vertexBuffer[i + 0];\r\n\t\t\t\t\tvertex.y = vertexBuffer[i + 1];\r\n\t\t\t\t\tvertex.z = vertexBuffer[i + 2];\r\n\t\t\t\t\tvar u = azimuth(vertex) / 2 / Math.PI + 0.5;\r\n\t\t\t\t\tvar v = inclination(vertex) / Math.PI + 0.5;\r\n\t\t\t\t\tuvBuffer.push(u, 1 - v);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcorrectUVs();\r\n\t\t\t\tcorrectSeam();\r\n\t\t\t}\r\n\r\n\t\t\tfunction correctSeam() {\r\n\t\t\t\t// handle case when face straddles the seam, see #3269\r\n\t\t\t\tfor (var i = 0; i < uvBuffer.length; i += 6) {\r\n\t\t\t\t\t// uv data of a single face\r\n\t\t\t\t\tvar x0 = uvBuffer[i + 0];\r\n\t\t\t\t\tvar x1 = uvBuffer[i + 2];\r\n\t\t\t\t\tvar x2 = uvBuffer[i + 4];\r\n\t\t\t\t\tvar max = Math.max(x0, x1, x2);\r\n\t\t\t\t\tvar min = Math.min(x0, x1, x2); // 0.9 is somewhat arbitrary\r\n\r\n\t\t\t\t\tif (max > 0.9 && min < 0.1) {\r\n\t\t\t\t\t\tif (x0 < 0.2) uvBuffer[i + 0] += 1;\r\n\t\t\t\t\t\tif (x1 < 0.2) uvBuffer[i + 2] += 1;\r\n\t\t\t\t\t\tif (x2 < 0.2) uvBuffer[i + 4] += 1;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction pushVertex(vertex) {\r\n\t\t\t\tvertexBuffer.push(vertex.x, vertex.y, vertex.z);\r\n\t\t\t}\r\n\r\n\t\t\tfunction getVertexByIndex(index, vertex) {\r\n\t\t\t\tvar stride = index * 3;\r\n\t\t\t\tvertex.x = vertices[stride + 0];\r\n\t\t\t\tvertex.y = vertices[stride + 1];\r\n\t\t\t\tvertex.z = vertices[stride + 2];\r\n\t\t\t}\r\n\r\n\t\t\tfunction correctUVs() {\r\n\t\t\t\tvar a = new Vector3();\r\n\t\t\t\tvar b = new Vector3();\r\n\t\t\t\tvar c = new Vector3();\r\n\t\t\t\tvar centroid = new Vector3();\r\n\t\t\t\tvar uvA = new Vector2();\r\n\t\t\t\tvar uvB = new Vector2();\r\n\t\t\t\tvar uvC = new Vector2();\r\n\r\n\t\t\t\tfor (var i = 0, j = 0; i < vertexBuffer.length; i += 9, j += 6) {\r\n\t\t\t\t\ta.set(vertexBuffer[i + 0], vertexBuffer[i + 1], vertexBuffer[i + 2]);\r\n\t\t\t\t\tb.set(vertexBuffer[i + 3], vertexBuffer[i + 4], vertexBuffer[i + 5]);\r\n\t\t\t\t\tc.set(vertexBuffer[i + 6], vertexBuffer[i + 7], vertexBuffer[i + 8]);\r\n\t\t\t\t\tuvA.set(uvBuffer[j + 0], uvBuffer[j + 1]);\r\n\t\t\t\t\tuvB.set(uvBuffer[j + 2], uvBuffer[j + 3]);\r\n\t\t\t\t\tuvC.set(uvBuffer[j + 4], uvBuffer[j + 5]);\r\n\t\t\t\t\tcentroid.copy(a).add(b).add(c).divideScalar(3);\r\n\t\t\t\t\tvar azi = azimuth(centroid);\r\n\t\t\t\t\tcorrectUV(uvA, j + 0, a, azi);\r\n\t\t\t\t\tcorrectUV(uvB, j + 2, b, azi);\r\n\t\t\t\t\tcorrectUV(uvC, j + 4, c, azi);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction correctUV(uv, stride, vector, azimuth) {\r\n\t\t\t\tif (azimuth < 0 && uv.x === 1) {\r\n\t\t\t\t\tuvBuffer[stride] = uv.x - 1;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (vector.x === 0 && vector.z === 0) {\r\n\t\t\t\t\tuvBuffer[stride] = azimuth / 2 / Math.PI + 0.5;\r\n\t\t\t\t}\r\n\t\t\t} // Angle around the Y axis, counter-clockwise when looking from above.\r\n\r\n\r\n\t\t\tfunction azimuth(vector) {\r\n\t\t\t\treturn Math.atan2(vector.z, -vector.x);\r\n\t\t\t} // Angle above the XZ plane.\r\n\r\n\r\n\t\t\tfunction inclination(vector) {\r\n\t\t\t\treturn Math.atan2(-vector.y, Math.sqrt(vector.x * vector.x + vector.z * vector.z));\r\n\t\t\t}\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn PolyhedronBufferGeometry;\r\n\t}(BufferGeometry);\r\n\r\n\tvar DodecahedronBufferGeometry = /*#__PURE__*/function (_PolyhedronBufferGeom) {\r\n\t\t_inheritsLoose(DodecahedronBufferGeometry, _PolyhedronBufferGeom);\r\n\r\n\t\tfunction DodecahedronBufferGeometry(radius, detail) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\tif (radius === void 0) {\r\n\t\t\t\tradius = 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (detail === void 0) {\r\n\t\t\t\tdetail = 0;\r\n\t\t\t}\r\n\r\n\t\t\tvar t = (1 + Math.sqrt(5)) / 2;\r\n\t\t\tvar r = 1 / t;\r\n\t\t\tvar vertices = [// (±1, ±1, ±1)\r\n\t\t\t-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, ±1/φ, ±φ)\r\n\t\t\t0, -r, -t, 0, -r, t, 0, r, -t, 0, r, t, // (±1/φ, ±φ, 0)\r\n\t\t\t-r, -t, 0, -r, t, 0, r, -t, 0, r, t, 0, // (±φ, 0, ±1/φ)\r\n\t\t\t-t, 0, -r, t, 0, -r, -t, 0, r, t, 0, r];\r\n\t\t\tvar indices = [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];\r\n\t\t\t_this = _PolyhedronBufferGeom.call(this, vertices, indices, radius, detail) || this;\r\n\t\t\t_this.type = 'DodecahedronBufferGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\tradius: radius,\r\n\t\t\t\tdetail: detail\r\n\t\t\t};\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn DodecahedronBufferGeometry;\r\n\t}(PolyhedronBufferGeometry);\r\n\r\n\tvar DodecahedronGeometry = /*#__PURE__*/function (_Geometry) {\r\n\t\t_inheritsLoose(DodecahedronGeometry, _Geometry);\r\n\r\n\t\tfunction DodecahedronGeometry(radius, detail) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\t_this = _Geometry.call(this) || this;\r\n\t\t\t_this.type = 'DodecahedronGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\tradius: radius,\r\n\t\t\t\tdetail: detail\r\n\t\t\t};\r\n\r\n\t\t\t_this.fromBufferGeometry(new DodecahedronBufferGeometry(radius, detail));\r\n\r\n\t\t\t_this.mergeVertices();\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn DodecahedronGeometry;\r\n\t}(Geometry);\r\n\r\n\tvar _v0$2 = new Vector3();\r\n\r\n\tvar _v1$5 = new Vector3();\r\n\r\n\tvar _normal$1 = new Vector3();\r\n\r\n\tvar _triangle = new Triangle();\r\n\r\n\tvar EdgesGeometry = /*#__PURE__*/function (_BufferGeometry) {\r\n\t\t_inheritsLoose(EdgesGeometry, _BufferGeometry);\r\n\r\n\t\tfunction EdgesGeometry(geometry, thresholdAngle) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\t_this = _BufferGeometry.call(this) || this;\r\n\t\t\t_this.type = 'EdgesGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\tthresholdAngle: thresholdAngle\r\n\t\t\t};\r\n\t\t\tthresholdAngle = thresholdAngle !== undefined ? thresholdAngle : 1;\r\n\r\n\t\t\tif (geometry.isGeometry) {\r\n\t\t\t\tgeometry = new BufferGeometry().fromGeometry(geometry);\r\n\t\t\t}\r\n\r\n\t\t\tvar precisionPoints = 4;\r\n\t\t\tvar precision = Math.pow(10, precisionPoints);\r\n\t\t\tvar thresholdDot = Math.cos(MathUtils.DEG2RAD * thresholdAngle);\r\n\t\t\tvar indexAttr = geometry.getIndex();\r\n\t\t\tvar positionAttr = geometry.getAttribute('position');\r\n\t\t\tvar indexCount = indexAttr ? indexAttr.count : positionAttr.count;\r\n\t\t\tvar indexArr = [0, 0, 0];\r\n\t\t\tvar vertKeys = ['a', 'b', 'c'];\r\n\t\t\tvar hashes = new Array(3);\r\n\t\t\tvar edgeData = {};\r\n\t\t\tvar vertices = [];\r\n\r\n\t\t\tfor (var i = 0; i < indexCount; i += 3) {\r\n\t\t\t\tif (indexAttr) {\r\n\t\t\t\t\tindexArr[0] = indexAttr.getX(i);\r\n\t\t\t\t\tindexArr[1] = indexAttr.getX(i + 1);\r\n\t\t\t\t\tindexArr[2] = indexAttr.getX(i + 2);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tindexArr[0] = i;\r\n\t\t\t\t\tindexArr[1] = i + 1;\r\n\t\t\t\t\tindexArr[2] = i + 2;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar a = _triangle.a,\r\n\t\t\t\t\t\tb = _triangle.b,\r\n\t\t\t\t\t\tc = _triangle.c;\r\n\t\t\t\ta.fromBufferAttribute(positionAttr, indexArr[0]);\r\n\t\t\t\tb.fromBufferAttribute(positionAttr, indexArr[1]);\r\n\t\t\t\tc.fromBufferAttribute(positionAttr, indexArr[2]);\r\n\r\n\t\t\t\t_triangle.getNormal(_normal$1); // create hashes for the edge from the vertices\r\n\r\n\r\n\t\t\t\thashes[0] = Math.round(a.x * precision) + \",\" + Math.round(a.y * precision) + \",\" + Math.round(a.z * precision);\r\n\t\t\t\thashes[1] = Math.round(b.x * precision) + \",\" + Math.round(b.y * precision) + \",\" + Math.round(b.z * precision);\r\n\t\t\t\thashes[2] = Math.round(c.x * precision) + \",\" + Math.round(c.y * precision) + \",\" + Math.round(c.z * precision); // skip degenerate triangles\r\n\r\n\t\t\t\tif (hashes[0] === hashes[1] || hashes[1] === hashes[2] || hashes[2] === hashes[0]) {\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t} // iterate over every edge\r\n\r\n\r\n\t\t\t\tfor (var j = 0; j < 3; j++) {\r\n\t\t\t\t\t// get the first and next vertex making up the edge\r\n\t\t\t\t\tvar jNext = (j + 1) % 3;\r\n\t\t\t\t\tvar vecHash0 = hashes[j];\r\n\t\t\t\t\tvar vecHash1 = hashes[jNext];\r\n\t\t\t\t\tvar v0 = _triangle[vertKeys[j]];\r\n\t\t\t\t\tvar v1 = _triangle[vertKeys[jNext]];\r\n\t\t\t\t\tvar hash = vecHash0 + \"_\" + vecHash1;\r\n\t\t\t\t\tvar reverseHash = vecHash1 + \"_\" + vecHash0;\r\n\r\n\t\t\t\t\tif (reverseHash in edgeData && edgeData[reverseHash]) {\r\n\t\t\t\t\t\t// if we found a sibling edge add it into the vertex array if\r\n\t\t\t\t\t\t// it meets the angle threshold and delete the edge from the map.\r\n\t\t\t\t\t\tif (_normal$1.dot(edgeData[reverseHash].normal) <= thresholdDot) {\r\n\t\t\t\t\t\t\tvertices.push(v0.x, v0.y, v0.z);\r\n\t\t\t\t\t\t\tvertices.push(v1.x, v1.y, v1.z);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tedgeData[reverseHash] = null;\r\n\t\t\t\t\t} else if (!(hash in edgeData)) {\r\n\t\t\t\t\t\t// if we've already got an edge here then skip adding a new one\r\n\t\t\t\t\t\tedgeData[hash] = {\r\n\t\t\t\t\t\t\tindex0: indexArr[j],\r\n\t\t\t\t\t\t\tindex1: indexArr[jNext],\r\n\t\t\t\t\t\t\tnormal: _normal$1.clone()\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} // iterate over all remaining, unmatched edges and add them to the vertex array\r\n\r\n\r\n\t\t\tfor (var key in edgeData) {\r\n\t\t\t\tif (edgeData[key]) {\r\n\t\t\t\t\tvar _edgeData$key = edgeData[key],\r\n\t\t\t\t\t\t\tindex0 = _edgeData$key.index0,\r\n\t\t\t\t\t\t\tindex1 = _edgeData$key.index1;\r\n\r\n\t\t\t\t\t_v0$2.fromBufferAttribute(positionAttr, index0);\r\n\r\n\t\t\t\t\t_v1$5.fromBufferAttribute(positionAttr, index1);\r\n\r\n\t\t\t\t\tvertices.push(_v0$2.x, _v0$2.y, _v0$2.z);\r\n\t\t\t\t\tvertices.push(_v1$5.x, _v1$5.y, _v1$5.z);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t_this.setAttribute('position', new Float32BufferAttribute(vertices, 3));\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn EdgesGeometry;\r\n\t}(BufferGeometry);\r\n\r\n\t/**\r\n\t * Port from https://github.com/mapbox/earcut (v2.2.2)\r\n\t */\r\n\tvar Earcut = {\r\n\t\ttriangulate: function triangulate(data, holeIndices, dim) {\r\n\t\t\tdim = dim || 2;\r\n\t\t\tvar hasHoles = holeIndices && holeIndices.length;\r\n\t\t\tvar outerLen = hasHoles ? holeIndices[0] * dim : data.length;\r\n\t\t\tvar outerNode = linkedList(data, 0, outerLen, dim, true);\r\n\t\t\tvar triangles = [];\r\n\t\t\tif (!outerNode || outerNode.next === outerNode.prev) return triangles;\r\n\t\t\tvar minX, minY, maxX, maxY, x, y, invSize;\r\n\t\t\tif (hasHoles) outerNode = eliminateHoles(data, holeIndices, outerNode, dim); // if the shape is not too simple, we'll use z-order curve hash later; calculate polygon bbox\r\n\r\n\t\t\tif (data.length > 80 * dim) {\r\n\t\t\t\tminX = maxX = data[0];\r\n\t\t\t\tminY = maxY = data[1];\r\n\r\n\t\t\t\tfor (var i = dim; i < outerLen; i += dim) {\r\n\t\t\t\t\tx = data[i];\r\n\t\t\t\t\ty = data[i + 1];\r\n\t\t\t\t\tif (x < minX) minX = x;\r\n\t\t\t\t\tif (y < minY) minY = y;\r\n\t\t\t\t\tif (x > maxX) maxX = x;\r\n\t\t\t\t\tif (y > maxY) maxY = y;\r\n\t\t\t\t} // minX, minY and invSize are later used to transform coords into integers for z-order calculation\r\n\r\n\r\n\t\t\t\tinvSize = Math.max(maxX - minX, maxY - minY);\r\n\t\t\t\tinvSize = invSize !== 0 ? 1 / invSize : 0;\r\n\t\t\t}\r\n\r\n\t\t\tearcutLinked(outerNode, triangles, dim, minX, minY, invSize);\r\n\t\t\treturn triangles;\r\n\t\t}\r\n\t}; // create a circular doubly linked list from polygon points in the specified winding order\r\n\r\n\tfunction linkedList(data, start, end, dim, clockwise) {\r\n\t\tvar i, last;\r\n\r\n\t\tif (clockwise === signedArea(data, start, end, dim) > 0) {\r\n\t\t\tfor (i = start; i < end; i += dim) {\r\n\t\t\t\tlast = insertNode(i, data[i], data[i + 1], last);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tfor (i = end - dim; i >= start; i -= dim) {\r\n\t\t\t\tlast = insertNode(i, data[i], data[i + 1], last);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (last && equals(last, last.next)) {\r\n\t\t\tremoveNode(last);\r\n\t\t\tlast = last.next;\r\n\t\t}\r\n\r\n\t\treturn last;\r\n\t} // eliminate colinear or duplicate points\r\n\r\n\r\n\tfunction filterPoints(start, end) {\r\n\t\tif (!start) return start;\r\n\t\tif (!end) end = start;\r\n\t\tvar p = start,\r\n\t\t\t\tagain;\r\n\r\n\t\tdo {\r\n\t\t\tagain = false;\r\n\r\n\t\t\tif (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) {\r\n\t\t\t\tremoveNode(p);\r\n\t\t\t\tp = end = p.prev;\r\n\t\t\t\tif (p === p.next) break;\r\n\t\t\t\tagain = true;\r\n\t\t\t} else {\r\n\t\t\t\tp = p.next;\r\n\t\t\t}\r\n\t\t} while (again || p !== end);\r\n\r\n\t\treturn end;\r\n\t} // main ear slicing loop which triangulates a polygon (given as a linked list)\r\n\r\n\r\n\tfunction earcutLinked(ear, triangles, dim, minX, minY, invSize, pass) {\r\n\t\tif (!ear) return; // interlink polygon nodes in z-order\r\n\r\n\t\tif (!pass && invSize) indexCurve(ear, minX, minY, invSize);\r\n\t\tvar stop = ear,\r\n\t\t\t\tprev,\r\n\t\t\t\tnext; // iterate through ears, slicing them one by one\r\n\r\n\t\twhile (ear.prev !== ear.next) {\r\n\t\t\tprev = ear.prev;\r\n\t\t\tnext = ear.next;\r\n\r\n\t\t\tif (invSize ? isEarHashed(ear, minX, minY, invSize) : isEar(ear)) {\r\n\t\t\t\t// cut off the triangle\r\n\t\t\t\ttriangles.push(prev.i / dim);\r\n\t\t\t\ttriangles.push(ear.i / dim);\r\n\t\t\t\ttriangles.push(next.i / dim);\r\n\t\t\t\tremoveNode(ear); // skipping the next vertex leads to less sliver triangles\r\n\r\n\t\t\t\tear = next.next;\r\n\t\t\t\tstop = next.next;\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tear = next; // if we looped through the whole remaining polygon and can't find any more ears\r\n\r\n\t\t\tif (ear === stop) {\r\n\t\t\t\t// try filtering points and slicing again\r\n\t\t\t\tif (!pass) {\r\n\t\t\t\t\tearcutLinked(filterPoints(ear), triangles, dim, minX, minY, invSize, 1); // if this didn't work, try curing all small self-intersections locally\r\n\t\t\t\t} else if (pass === 1) {\r\n\t\t\t\t\tear = cureLocalIntersections(filterPoints(ear), triangles, dim);\r\n\t\t\t\t\tearcutLinked(ear, triangles, dim, minX, minY, invSize, 2); // as a last resort, try splitting the remaining polygon into two\r\n\t\t\t\t} else if (pass === 2) {\r\n\t\t\t\t\tsplitEarcut(ear, triangles, dim, minX, minY, invSize);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t} // check whether a polygon node forms a valid ear with adjacent nodes\r\n\r\n\r\n\tfunction isEar(ear) {\r\n\t\tvar a = ear.prev,\r\n\t\t\t\tb = ear,\r\n\t\t\t\tc = ear.next;\r\n\t\tif (area(a, b, c) >= 0) return false; // reflex, can't be an ear\r\n\t\t// now make sure we don't have other points inside the potential ear\r\n\r\n\t\tvar p = ear.next.next;\r\n\r\n\t\twhile (p !== ear.prev) {\r\n\t\t\tif (pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false;\r\n\t\t\tp = p.next;\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t}\r\n\r\n\tfunction isEarHashed(ear, minX, minY, invSize) {\r\n\t\tvar a = ear.prev,\r\n\t\t\t\tb = ear,\r\n\t\t\t\tc = ear.next;\r\n\t\tif (area(a, b, c) >= 0) return false; // reflex, can't be an ear\r\n\t\t// triangle bbox; min & max are calculated like this for speed\r\n\r\n\t\tvar minTX = a.x < b.x ? a.x < c.x ? a.x : c.x : b.x < c.x ? b.x : c.x,\r\n\t\t\t\tminTY = a.y < b.y ? a.y < c.y ? a.y : c.y : b.y < c.y ? b.y : c.y,\r\n\t\t\t\tmaxTX = a.x > b.x ? a.x > c.x ? a.x : c.x : b.x > c.x ? b.x : c.x,\r\n\t\t\t\tmaxTY = a.y > b.y ? a.y > c.y ? a.y : c.y : b.y > c.y ? b.y : c.y; // z-order range for the current triangle bbox;\r\n\r\n\t\tvar minZ = zOrder(minTX, minTY, minX, minY, invSize),\r\n\t\t\t\tmaxZ = zOrder(maxTX, maxTY, minX, minY, invSize);\r\n\t\tvar p = ear.prevZ,\r\n\t\t\t\tn = ear.nextZ; // look for points inside the triangle in both directions\r\n\r\n\t\twhile (p && p.z >= minZ && n && n.z <= maxZ) {\r\n\t\t\tif (p !== ear.prev && p !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false;\r\n\t\t\tp = p.prevZ;\r\n\t\t\tif (n !== ear.prev && n !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) && area(n.prev, n, n.next) >= 0) return false;\r\n\t\t\tn = n.nextZ;\r\n\t\t} // look for remaining points in decreasing z-order\r\n\r\n\r\n\t\twhile (p && p.z >= minZ) {\r\n\t\t\tif (p !== ear.prev && p !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false;\r\n\t\t\tp = p.prevZ;\r\n\t\t} // look for remaining points in increasing z-order\r\n\r\n\r\n\t\twhile (n && n.z <= maxZ) {\r\n\t\t\tif (n !== ear.prev && n !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) && area(n.prev, n, n.next) >= 0) return false;\r\n\t\t\tn = n.nextZ;\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t} // go through all polygon nodes and cure small local self-intersections\r\n\r\n\r\n\tfunction cureLocalIntersections(start, triangles, dim) {\r\n\t\tvar p = start;\r\n\r\n\t\tdo {\r\n\t\t\tvar a = p.prev,\r\n\t\t\t\t\tb = p.next.next;\r\n\r\n\t\t\tif (!equals(a, b) && intersects(a, p, p.next, b) && locallyInside(a, b) && locallyInside(b, a)) {\r\n\t\t\t\ttriangles.push(a.i / dim);\r\n\t\t\t\ttriangles.push(p.i / dim);\r\n\t\t\t\ttriangles.push(b.i / dim); // remove two nodes involved\r\n\r\n\t\t\t\tremoveNode(p);\r\n\t\t\t\tremoveNode(p.next);\r\n\t\t\t\tp = start = b;\r\n\t\t\t}\r\n\r\n\t\t\tp = p.next;\r\n\t\t} while (p !== start);\r\n\r\n\t\treturn filterPoints(p);\r\n\t} // try splitting polygon into two and triangulate them independently\r\n\r\n\r\n\tfunction splitEarcut(start, triangles, dim, minX, minY, invSize) {\r\n\t\t// look for a valid diagonal that divides the polygon into two\r\n\t\tvar a = start;\r\n\r\n\t\tdo {\r\n\t\t\tvar b = a.next.next;\r\n\r\n\t\t\twhile (b !== a.prev) {\r\n\t\t\t\tif (a.i !== b.i && isValidDiagonal(a, b)) {\r\n\t\t\t\t\t// split the polygon in two by the diagonal\r\n\t\t\t\t\tvar c = splitPolygon(a, b); // filter colinear points around the cuts\r\n\r\n\t\t\t\t\ta = filterPoints(a, a.next);\r\n\t\t\t\t\tc = filterPoints(c, c.next); // run earcut on each half\r\n\r\n\t\t\t\t\tearcutLinked(a, triangles, dim, minX, minY, invSize);\r\n\t\t\t\t\tearcutLinked(c, triangles, dim, minX, minY, invSize);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tb = b.next;\r\n\t\t\t}\r\n\r\n\t\t\ta = a.next;\r\n\t\t} while (a !== start);\r\n\t} // link every hole into the outer loop, producing a single-ring polygon without holes\r\n\r\n\r\n\tfunction eliminateHoles(data, holeIndices, outerNode, dim) {\r\n\t\tvar queue = [];\r\n\t\tvar i, len, start, end, list;\r\n\r\n\t\tfor (i = 0, len = holeIndices.length; i < len; i++) {\r\n\t\t\tstart = holeIndices[i] * dim;\r\n\t\t\tend = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\r\n\t\t\tlist = linkedList(data, start, end, dim, false);\r\n\t\t\tif (list === list.next) list.steiner = true;\r\n\t\t\tqueue.push(getLeftmost(list));\r\n\t\t}\r\n\r\n\t\tqueue.sort(compareX); // process holes from left to right\r\n\r\n\t\tfor (i = 0; i < queue.length; i++) {\r\n\t\t\teliminateHole(queue[i], outerNode);\r\n\t\t\touterNode = filterPoints(outerNode, outerNode.next);\r\n\t\t}\r\n\r\n\t\treturn outerNode;\r\n\t}\r\n\r\n\tfunction compareX(a, b) {\r\n\t\treturn a.x - b.x;\r\n\t} // find a bridge between vertices that connects hole with an outer ring and and link it\r\n\r\n\r\n\tfunction eliminateHole(hole, outerNode) {\r\n\t\touterNode = findHoleBridge(hole, outerNode);\r\n\r\n\t\tif (outerNode) {\r\n\t\t\tvar b = splitPolygon(outerNode, hole); // filter collinear points around the cuts\r\n\r\n\t\t\tfilterPoints(outerNode, outerNode.next);\r\n\t\t\tfilterPoints(b, b.next);\r\n\t\t}\r\n\t} // David Eberly's algorithm for finding a bridge between hole and outer polygon\r\n\r\n\r\n\tfunction findHoleBridge(hole, outerNode) {\r\n\t\tvar p = outerNode;\r\n\t\tvar hx = hole.x;\r\n\t\tvar hy = hole.y;\r\n\t\tvar qx = -Infinity,\r\n\t\t\t\tm; // find a segment intersected by a ray from the hole's leftmost point to the left;\r\n\t\t// segment's endpoint with lesser x will be potential connection point\r\n\r\n\t\tdo {\r\n\t\t\tif (hy <= p.y && hy >= p.next.y && p.next.y !== p.y) {\r\n\t\t\t\tvar x = p.x + (hy - p.y) * (p.next.x - p.x) / (p.next.y - p.y);\r\n\r\n\t\t\t\tif (x <= hx && x > qx) {\r\n\t\t\t\t\tqx = x;\r\n\r\n\t\t\t\t\tif (x === hx) {\r\n\t\t\t\t\t\tif (hy === p.y) return p;\r\n\t\t\t\t\t\tif (hy === p.next.y) return p.next;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tm = p.x < p.next.x ? p : p.next;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tp = p.next;\r\n\t\t} while (p !== outerNode);\r\n\r\n\t\tif (!m) return null;\r\n\t\tif (hx === qx) return m; // hole touches outer segment; pick leftmost endpoint\r\n\t\t// look for points inside the triangle of hole point, segment intersection and endpoint;\r\n\t\t// if there are no points found, we have a valid connection;\r\n\t\t// otherwise choose the point of the minimum angle with the ray as connection point\r\n\r\n\t\tvar stop = m,\r\n\t\t\t\tmx = m.x,\r\n\t\t\t\tmy = m.y;\r\n\t\tvar tanMin = Infinity,\r\n\t\t\t\ttan;\r\n\t\tp = m;\r\n\r\n\t\tdo {\r\n\t\t\tif (hx >= p.x && p.x >= mx && hx !== p.x && pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)) {\r\n\t\t\t\ttan = Math.abs(hy - p.y) / (hx - p.x); // tangential\r\n\r\n\t\t\t\tif (locallyInside(p, hole) && (tan < tanMin || tan === tanMin && (p.x > m.x || p.x === m.x && sectorContainsSector(m, p)))) {\r\n\t\t\t\t\tm = p;\r\n\t\t\t\t\ttanMin = tan;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tp = p.next;\r\n\t\t} while (p !== stop);\r\n\r\n\t\treturn m;\r\n\t} // whether sector in vertex m contains sector in vertex p in the same coordinates\r\n\r\n\r\n\tfunction sectorContainsSector(m, p) {\r\n\t\treturn area(m.prev, m, p.prev) < 0 && area(p.next, m, m.next) < 0;\r\n\t} // interlink polygon nodes in z-order\r\n\r\n\r\n\tfunction indexCurve(start, minX, minY, invSize) {\r\n\t\tvar p = start;\r\n\r\n\t\tdo {\r\n\t\t\tif (p.z === null) p.z = zOrder(p.x, p.y, minX, minY, invSize);\r\n\t\t\tp.prevZ = p.prev;\r\n\t\t\tp.nextZ = p.next;\r\n\t\t\tp = p.next;\r\n\t\t} while (p !== start);\r\n\r\n\t\tp.prevZ.nextZ = null;\r\n\t\tp.prevZ = null;\r\n\t\tsortLinked(p);\r\n\t} // Simon Tatham's linked list merge sort algorithm\r\n\t// http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html\r\n\r\n\r\n\tfunction sortLinked(list) {\r\n\t\tvar i,\r\n\t\t\t\tp,\r\n\t\t\t\tq,\r\n\t\t\t\te,\r\n\t\t\t\ttail,\r\n\t\t\t\tnumMerges,\r\n\t\t\t\tpSize,\r\n\t\t\t\tqSize,\r\n\t\t\t\tinSize = 1;\r\n\r\n\t\tdo {\r\n\t\t\tp = list;\r\n\t\t\tlist = null;\r\n\t\t\ttail = null;\r\n\t\t\tnumMerges = 0;\r\n\r\n\t\t\twhile (p) {\r\n\t\t\t\tnumMerges++;\r\n\t\t\t\tq = p;\r\n\t\t\t\tpSize = 0;\r\n\r\n\t\t\t\tfor (i = 0; i < inSize; i++) {\r\n\t\t\t\t\tpSize++;\r\n\t\t\t\t\tq = q.nextZ;\r\n\t\t\t\t\tif (!q) break;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tqSize = inSize;\r\n\r\n\t\t\t\twhile (pSize > 0 || qSize > 0 && q) {\r\n\t\t\t\t\tif (pSize !== 0 && (qSize === 0 || !q || p.z <= q.z)) {\r\n\t\t\t\t\t\te = p;\r\n\t\t\t\t\t\tp = p.nextZ;\r\n\t\t\t\t\t\tpSize--;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\te = q;\r\n\t\t\t\t\t\tq = q.nextZ;\r\n\t\t\t\t\t\tqSize--;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (tail) tail.nextZ = e;else list = e;\r\n\t\t\t\t\te.prevZ = tail;\r\n\t\t\t\t\ttail = e;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tp = q;\r\n\t\t\t}\r\n\r\n\t\t\ttail.nextZ = null;\r\n\t\t\tinSize *= 2;\r\n\t\t} while (numMerges > 1);\r\n\r\n\t\treturn list;\r\n\t} // z-order of a point given coords and inverse of the longer side of data bbox\r\n\r\n\r\n\tfunction zOrder(x, y, minX, minY, invSize) {\r\n\t\t// coords are transformed into non-negative 15-bit integer range\r\n\t\tx = 32767 * (x - minX) * invSize;\r\n\t\ty = 32767 * (y - minY) * invSize;\r\n\t\tx = (x | x << 8) & 0x00FF00FF;\r\n\t\tx = (x | x << 4) & 0x0F0F0F0F;\r\n\t\tx = (x | x << 2) & 0x33333333;\r\n\t\tx = (x | x << 1) & 0x55555555;\r\n\t\ty = (y | y << 8) & 0x00FF00FF;\r\n\t\ty = (y | y << 4) & 0x0F0F0F0F;\r\n\t\ty = (y | y << 2) & 0x33333333;\r\n\t\ty = (y | y << 1) & 0x55555555;\r\n\t\treturn x | y << 1;\r\n\t} // find the leftmost node of a polygon ring\r\n\r\n\r\n\tfunction getLeftmost(start) {\r\n\t\tvar p = start,\r\n\t\t\t\tleftmost = start;\r\n\r\n\t\tdo {\r\n\t\t\tif (p.x < leftmost.x || p.x === leftmost.x && p.y < leftmost.y) leftmost = p;\r\n\t\t\tp = p.next;\r\n\t\t} while (p !== start);\r\n\r\n\t\treturn leftmost;\r\n\t} // check if a point lies within a convex triangle\r\n\r\n\r\n\tfunction pointInTriangle(ax, ay, bx, by, cx, cy, px, py) {\r\n\t\treturn (cx - px) * (ay - py) - (ax - px) * (cy - py) >= 0 && (ax - px) * (by - py) - (bx - px) * (ay - py) >= 0 && (bx - px) * (cy - py) - (cx - px) * (by - py) >= 0;\r\n\t} // check if a diagonal between two polygon nodes is valid (lies in polygon interior)\r\n\r\n\r\n\tfunction isValidDiagonal(a, b) {\r\n\t\treturn a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) && ( // dones't intersect other edges\r\n\t\tlocallyInside(a, b) && locallyInside(b, a) && middleInside(a, b) && ( // locally visible\r\n\t\tarea(a.prev, a, b.prev) || area(a, b.prev, b)) || // does not create opposite-facing sectors\r\n\t\tequals(a, b) && area(a.prev, a, a.next) > 0 && area(b.prev, b, b.next) > 0); // special zero-length case\r\n\t} // signed area of a triangle\r\n\r\n\r\n\tfunction area(p, q, r) {\r\n\t\treturn (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);\r\n\t} // check if two points are equal\r\n\r\n\r\n\tfunction equals(p1, p2) {\r\n\t\treturn p1.x === p2.x && p1.y === p2.y;\r\n\t} // check if two segments intersect\r\n\r\n\r\n\tfunction intersects(p1, q1, p2, q2) {\r\n\t\tvar o1 = sign(area(p1, q1, p2));\r\n\t\tvar o2 = sign(area(p1, q1, q2));\r\n\t\tvar o3 = sign(area(p2, q2, p1));\r\n\t\tvar o4 = sign(area(p2, q2, q1));\r\n\t\tif (o1 !== o2 && o3 !== o4) return true; // general case\r\n\r\n\t\tif (o1 === 0 && onSegment(p1, p2, q1)) return true; // p1, q1 and p2 are collinear and p2 lies on p1q1\r\n\r\n\t\tif (o2 === 0 && onSegment(p1, q2, q1)) return true; // p1, q1 and q2 are collinear and q2 lies on p1q1\r\n\r\n\t\tif (o3 === 0 && onSegment(p2, p1, q2)) return true; // p2, q2 and p1 are collinear and p1 lies on p2q2\r\n\r\n\t\tif (o4 === 0 && onSegment(p2, q1, q2)) return true; // p2, q2 and q1 are collinear and q1 lies on p2q2\r\n\r\n\t\treturn false;\r\n\t} // for collinear points p, q, r, check if point q lies on segment pr\r\n\r\n\r\n\tfunction onSegment(p, q, r) {\r\n\t\treturn q.x <= Math.max(p.x, r.x) && q.x >= Math.min(p.x, r.x) && q.y <= Math.max(p.y, r.y) && q.y >= Math.min(p.y, r.y);\r\n\t}\r\n\r\n\tfunction sign(num) {\r\n\t\treturn num > 0 ? 1 : num < 0 ? -1 : 0;\r\n\t} // check if a polygon diagonal intersects any polygon segments\r\n\r\n\r\n\tfunction intersectsPolygon(a, b) {\r\n\t\tvar p = a;\r\n\r\n\t\tdo {\r\n\t\t\tif (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i && intersects(p, p.next, a, b)) return true;\r\n\t\t\tp = p.next;\r\n\t\t} while (p !== a);\r\n\r\n\t\treturn false;\r\n\t} // check if a polygon diagonal is locally inside the polygon\r\n\r\n\r\n\tfunction locallyInside(a, b) {\r\n\t\treturn area(a.prev, a, a.next) < 0 ? area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 : area(a, b, a.prev) < 0 || area(a, a.next, b) < 0;\r\n\t} // check if the middle point of a polygon diagonal is inside the polygon\r\n\r\n\r\n\tfunction middleInside(a, b) {\r\n\t\tvar p = a,\r\n\t\t\t\tinside = false;\r\n\t\tvar px = (a.x + b.x) / 2,\r\n\t\t\t\tpy = (a.y + b.y) / 2;\r\n\r\n\t\tdo {\r\n\t\t\tif (p.y > py !== p.next.y > py && p.next.y !== p.y && px < (p.next.x - p.x) * (py - p.y) / (p.next.y - p.y) + p.x) inside = !inside;\r\n\t\t\tp = p.next;\r\n\t\t} while (p !== a);\r\n\r\n\t\treturn inside;\r\n\t} // link two polygon vertices with a bridge; if the vertices belong to the same ring, it splits polygon into two;\r\n\t// if one belongs to the outer ring and another to a hole, it merges it into a single ring\r\n\r\n\r\n\tfunction splitPolygon(a, b) {\r\n\t\tvar a2 = new Node(a.i, a.x, a.y),\r\n\t\t\t\tb2 = new Node(b.i, b.x, b.y),\r\n\t\t\t\tan = a.next,\r\n\t\t\t\tbp = b.prev;\r\n\t\ta.next = b;\r\n\t\tb.prev = a;\r\n\t\ta2.next = an;\r\n\t\tan.prev = a2;\r\n\t\tb2.next = a2;\r\n\t\ta2.prev = b2;\r\n\t\tbp.next = b2;\r\n\t\tb2.prev = bp;\r\n\t\treturn b2;\r\n\t} // create a node and optionally link it with previous one (in a circular doubly linked list)\r\n\r\n\r\n\tfunction insertNode(i, x, y, last) {\r\n\t\tvar p = new Node(i, x, y);\r\n\r\n\t\tif (!last) {\r\n\t\t\tp.prev = p;\r\n\t\t\tp.next = p;\r\n\t\t} else {\r\n\t\t\tp.next = last.next;\r\n\t\t\tp.prev = last;\r\n\t\t\tlast.next.prev = p;\r\n\t\t\tlast.next = p;\r\n\t\t}\r\n\r\n\t\treturn p;\r\n\t}\r\n\r\n\tfunction removeNode(p) {\r\n\t\tp.next.prev = p.prev;\r\n\t\tp.prev.next = p.next;\r\n\t\tif (p.prevZ) p.prevZ.nextZ = p.nextZ;\r\n\t\tif (p.nextZ) p.nextZ.prevZ = p.prevZ;\r\n\t}\r\n\r\n\tfunction Node(i, x, y) {\r\n\t\t// vertex index in coordinates array\r\n\t\tthis.i = i; // vertex coordinates\r\n\r\n\t\tthis.x = x;\r\n\t\tthis.y = y; // previous and next vertex nodes in a polygon ring\r\n\r\n\t\tthis.prev = null;\r\n\t\tthis.next = null; // z-order curve value\r\n\r\n\t\tthis.z = null; // previous and next nodes in z-order\r\n\r\n\t\tthis.prevZ = null;\r\n\t\tthis.nextZ = null; // indicates whether this is a steiner point\r\n\r\n\t\tthis.steiner = false;\r\n\t}\r\n\r\n\tfunction signedArea(data, start, end, dim) {\r\n\t\tvar sum = 0;\r\n\r\n\t\tfor (var i = start, j = end - dim; i < end; i += dim) {\r\n\t\t\tsum += (data[j] - data[i]) * (data[i + 1] + data[j + 1]);\r\n\t\t\tj = i;\r\n\t\t}\r\n\r\n\t\treturn sum;\r\n\t}\r\n\r\n\tvar ShapeUtils = {\r\n\t\t// calculate area of the contour polygon\r\n\t\tarea: function area(contour) {\r\n\t\t\tvar n = contour.length;\r\n\t\t\tvar a = 0.0;\r\n\r\n\t\t\tfor (var p = n - 1, q = 0; q < n; p = q++) {\r\n\t\t\t\ta += contour[p].x * contour[q].y - contour[q].x * contour[p].y;\r\n\t\t\t}\r\n\r\n\t\t\treturn a * 0.5;\r\n\t\t},\r\n\t\tisClockWise: function isClockWise(pts) {\r\n\t\t\treturn ShapeUtils.area(pts) < 0;\r\n\t\t},\r\n\t\ttriangulateShape: function triangulateShape(contour, holes) {\r\n\t\t\tvar vertices = []; // flat array of vertices like [ x0,y0, x1,y1, x2,y2, ... ]\r\n\r\n\t\t\tvar holeIndices = []; // array of hole indices\r\n\r\n\t\t\tvar faces = []; // final array of vertex indices like [ [ a,b,d ], [ b,c,d ] ]\r\n\r\n\t\t\tremoveDupEndPts(contour);\r\n\t\t\taddContour(vertices, contour); //\r\n\r\n\t\t\tvar holeIndex = contour.length;\r\n\t\t\tholes.forEach(removeDupEndPts);\r\n\r\n\t\t\tfor (var i = 0; i < holes.length; i++) {\r\n\t\t\t\tholeIndices.push(holeIndex);\r\n\t\t\t\tholeIndex += holes[i].length;\r\n\t\t\t\taddContour(vertices, holes[i]);\r\n\t\t\t} //\r\n\r\n\r\n\t\t\tvar triangles = Earcut.triangulate(vertices, holeIndices); //\r\n\r\n\t\t\tfor (var _i = 0; _i < triangles.length; _i += 3) {\r\n\t\t\t\tfaces.push(triangles.slice(_i, _i + 3));\r\n\t\t\t}\r\n\r\n\t\t\treturn faces;\r\n\t\t}\r\n\t};\r\n\r\n\tfunction removeDupEndPts(points) {\r\n\t\tvar l = points.length;\r\n\r\n\t\tif (l > 2 && points[l - 1].equals(points[0])) {\r\n\t\t\tpoints.pop();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction addContour(vertices, contour) {\r\n\t\tfor (var i = 0; i < contour.length; i++) {\r\n\t\t\tvertices.push(contour[i].x);\r\n\t\t\tvertices.push(contour[i].y);\r\n\t\t}\r\n\t}\r\n\r\n\tvar ExtrudeBufferGeometry = /*#__PURE__*/function (_BufferGeometry) {\r\n\t\t_inheritsLoose(ExtrudeBufferGeometry, _BufferGeometry);\r\n\r\n\t\tfunction ExtrudeBufferGeometry(shapes, options) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\t_this = _BufferGeometry.call(this) || this;\r\n\t\t\t_this.type = 'ExtrudeBufferGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\tshapes: shapes,\r\n\t\t\t\toptions: options\r\n\t\t\t};\r\n\t\t\tshapes = Array.isArray(shapes) ? shapes : [shapes];\r\n\r\n\t\t\tvar scope = _assertThisInitialized(_this);\r\n\r\n\t\t\tvar verticesArray = [];\r\n\t\t\tvar uvArray = [];\r\n\r\n\t\t\tfor (var i = 0, l = shapes.length; i < l; i++) {\r\n\t\t\t\tvar shape = shapes[i];\r\n\t\t\t\taddShape(shape);\r\n\t\t\t} // build geometry\r\n\r\n\r\n\t\t\t_this.setAttribute('position', new Float32BufferAttribute(verticesArray, 3));\r\n\r\n\t\t\t_this.setAttribute('uv', new Float32BufferAttribute(uvArray, 2));\r\n\r\n\t\t\t_this.computeVertexNormals(); // functions\r\n\r\n\r\n\t\t\tfunction addShape(shape) {\r\n\t\t\t\tvar placeholder = []; // options\r\n\r\n\t\t\t\tvar curveSegments = options.curveSegments !== undefined ? options.curveSegments : 12;\r\n\t\t\t\tvar steps = options.steps !== undefined ? options.steps : 1;\r\n\t\t\t\tvar depth = options.depth !== undefined ? options.depth : 100;\r\n\t\t\t\tvar bevelEnabled = options.bevelEnabled !== undefined ? options.bevelEnabled : true;\r\n\t\t\t\tvar bevelThickness = options.bevelThickness !== undefined ? options.bevelThickness : 6;\r\n\t\t\t\tvar bevelSize = options.bevelSize !== undefined ? options.bevelSize : bevelThickness - 2;\r\n\t\t\t\tvar bevelOffset = options.bevelOffset !== undefined ? options.bevelOffset : 0;\r\n\t\t\t\tvar bevelSegments = options.bevelSegments !== undefined ? options.bevelSegments : 3;\r\n\t\t\t\tvar extrudePath = options.extrudePath;\r\n\t\t\t\tvar uvgen = options.UVGenerator !== undefined ? options.UVGenerator : WorldUVGenerator; // deprecated options\r\n\r\n\t\t\t\tif (options.amount !== undefined) {\r\n\t\t\t\t\tconsole.warn('THREE.ExtrudeBufferGeometry: amount has been renamed to depth.');\r\n\t\t\t\t\tdepth = options.amount;\r\n\t\t\t\t} //\r\n\r\n\r\n\t\t\t\tvar extrudePts,\r\n\t\t\t\t\t\textrudeByPath = false;\r\n\t\t\t\tvar splineTube, binormal, normal, position2;\r\n\r\n\t\t\t\tif (extrudePath) {\r\n\t\t\t\t\textrudePts = extrudePath.getSpacedPoints(steps);\r\n\t\t\t\t\textrudeByPath = true;\r\n\t\t\t\t\tbevelEnabled = false; // bevels not supported for path extrusion\r\n\t\t\t\t\t// SETUP TNB variables\r\n\t\t\t\t\t// TODO1 - have a .isClosed in spline?\r\n\r\n\t\t\t\t\tsplineTube = extrudePath.computeFrenetFrames(steps, false); // console.log(splineTube, 'splineTube', splineTube.normals.length, 'steps', steps, 'extrudePts', extrudePts.length);\r\n\r\n\t\t\t\t\tbinormal = new Vector3();\r\n\t\t\t\t\tnormal = new Vector3();\r\n\t\t\t\t\tposition2 = new Vector3();\r\n\t\t\t\t} // Safeguards if bevels are not enabled\r\n\r\n\r\n\t\t\t\tif (!bevelEnabled) {\r\n\t\t\t\t\tbevelSegments = 0;\r\n\t\t\t\t\tbevelThickness = 0;\r\n\t\t\t\t\tbevelSize = 0;\r\n\t\t\t\t\tbevelOffset = 0;\r\n\t\t\t\t} // Variables initialization\r\n\r\n\r\n\t\t\t\tvar shapePoints = shape.extractPoints(curveSegments);\r\n\t\t\t\tvar vertices = shapePoints.shape;\r\n\t\t\t\tvar holes = shapePoints.holes;\r\n\t\t\t\tvar reverse = !ShapeUtils.isClockWise(vertices);\r\n\r\n\t\t\t\tif (reverse) {\r\n\t\t\t\t\tvertices = vertices.reverse(); // Maybe we should also check if holes are in the opposite direction, just to be safe ...\r\n\r\n\t\t\t\t\tfor (var h = 0, hl = holes.length; h < hl; h++) {\r\n\t\t\t\t\t\tvar ahole = holes[h];\r\n\r\n\t\t\t\t\t\tif (ShapeUtils.isClockWise(ahole)) {\r\n\t\t\t\t\t\t\tholes[h] = ahole.reverse();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar faces = ShapeUtils.triangulateShape(vertices, holes);\r\n\t\t\t\t/* Vertices */\r\n\r\n\t\t\t\tvar contour = vertices; // vertices has all points but contour has only points of circumference\r\n\r\n\t\t\t\tfor (var _h = 0, _hl = holes.length; _h < _hl; _h++) {\r\n\t\t\t\t\tvar _ahole = holes[_h];\r\n\t\t\t\t\tvertices = vertices.concat(_ahole);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfunction scalePt2(pt, vec, size) {\r\n\t\t\t\t\tif (!vec) console.error(\"THREE.ExtrudeGeometry: vec does not exist\");\r\n\t\t\t\t\treturn vec.clone().multiplyScalar(size).add(pt);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar vlen = vertices.length,\r\n\t\t\t\t\t\tflen = faces.length; // Find directions for point movement\r\n\r\n\t\t\t\tfunction getBevelVec(inPt, inPrev, inNext) {\r\n\t\t\t\t\t// computes for inPt the corresponding point inPt' on a new contour\r\n\t\t\t\t\t//\t shifted by 1 unit (length of normalized vector) to the left\r\n\t\t\t\t\t// if we walk along contour clockwise, this new contour is outside the old one\r\n\t\t\t\t\t//\r\n\t\t\t\t\t// inPt' is the intersection of the two lines parallel to the two\r\n\t\t\t\t\t//\tadjacent edges of inPt at a distance of 1 unit on the left side.\r\n\t\t\t\t\tvar v_trans_x, v_trans_y, shrink_by; // resulting translation vector for inPt\r\n\t\t\t\t\t// good reading for geometry algorithms (here: line-line intersection)\r\n\t\t\t\t\t// http://geomalgorithms.com/a05-_intersect-1.html\r\n\r\n\t\t\t\t\tvar v_prev_x = inPt.x - inPrev.x,\r\n\t\t\t\t\t\t\tv_prev_y = inPt.y - inPrev.y;\r\n\t\t\t\t\tvar v_next_x = inNext.x - inPt.x,\r\n\t\t\t\t\t\t\tv_next_y = inNext.y - inPt.y;\r\n\t\t\t\t\tvar v_prev_lensq = v_prev_x * v_prev_x + v_prev_y * v_prev_y; // check for collinear edges\r\n\r\n\t\t\t\t\tvar collinear0 = v_prev_x * v_next_y - v_prev_y * v_next_x;\r\n\r\n\t\t\t\t\tif (Math.abs(collinear0) > Number.EPSILON) {\r\n\t\t\t\t\t\t// not collinear\r\n\t\t\t\t\t\t// length of vectors for normalizing\r\n\t\t\t\t\t\tvar v_prev_len = Math.sqrt(v_prev_lensq);\r\n\t\t\t\t\t\tvar v_next_len = Math.sqrt(v_next_x * v_next_x + v_next_y * v_next_y); // shift adjacent points by unit vectors to the left\r\n\r\n\t\t\t\t\t\tvar ptPrevShift_x = inPrev.x - v_prev_y / v_prev_len;\r\n\t\t\t\t\t\tvar ptPrevShift_y = inPrev.y + v_prev_x / v_prev_len;\r\n\t\t\t\t\t\tvar ptNextShift_x = inNext.x - v_next_y / v_next_len;\r\n\t\t\t\t\t\tvar ptNextShift_y = inNext.y + v_next_x / v_next_len; // scaling factor for v_prev to intersection point\r\n\r\n\t\t\t\t\t\tvar sf = ((ptNextShift_x - ptPrevShift_x) * v_next_y - (ptNextShift_y - ptPrevShift_y) * v_next_x) / (v_prev_x * v_next_y - v_prev_y * v_next_x); // vector from inPt to intersection point\r\n\r\n\t\t\t\t\t\tv_trans_x = ptPrevShift_x + v_prev_x * sf - inPt.x;\r\n\t\t\t\t\t\tv_trans_y = ptPrevShift_y + v_prev_y * sf - inPt.y; // Don't normalize!, otherwise sharp corners become ugly\r\n\t\t\t\t\t\t//\tbut prevent crazy spikes\r\n\r\n\t\t\t\t\t\tvar v_trans_lensq = v_trans_x * v_trans_x + v_trans_y * v_trans_y;\r\n\r\n\t\t\t\t\t\tif (v_trans_lensq <= 2) {\r\n\t\t\t\t\t\t\treturn new Vector2(v_trans_x, v_trans_y);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tshrink_by = Math.sqrt(v_trans_lensq / 2);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// handle special case of collinear edges\r\n\t\t\t\t\t\tvar direction_eq = false; // assumes: opposite\r\n\r\n\t\t\t\t\t\tif (v_prev_x > Number.EPSILON) {\r\n\t\t\t\t\t\t\tif (v_next_x > Number.EPSILON) {\r\n\t\t\t\t\t\t\t\tdirection_eq = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tif (v_prev_x < -Number.EPSILON) {\r\n\t\t\t\t\t\t\t\tif (v_next_x < -Number.EPSILON) {\r\n\t\t\t\t\t\t\t\t\tdirection_eq = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tif (Math.sign(v_prev_y) === Math.sign(v_next_y)) {\r\n\t\t\t\t\t\t\t\t\tdirection_eq = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (direction_eq) {\r\n\t\t\t\t\t\t\t// console.log(\"Warning: lines are a straight sequence\");\r\n\t\t\t\t\t\t\tv_trans_x = -v_prev_y;\r\n\t\t\t\t\t\t\tv_trans_y = v_prev_x;\r\n\t\t\t\t\t\t\tshrink_by = Math.sqrt(v_prev_lensq);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// console.log(\"Warning: lines are a straight spike\");\r\n\t\t\t\t\t\t\tv_trans_x = v_prev_x;\r\n\t\t\t\t\t\t\tv_trans_y = v_prev_y;\r\n\t\t\t\t\t\t\tshrink_by = Math.sqrt(v_prev_lensq / 2);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn new Vector2(v_trans_x / shrink_by, v_trans_y / shrink_by);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar contourMovements = [];\r\n\r\n\t\t\t\tfor (var _i = 0, il = contour.length, j = il - 1, k = _i + 1; _i < il; _i++, j++, k++) {\r\n\t\t\t\t\tif (j === il) j = 0;\r\n\t\t\t\t\tif (k === il) k = 0; //\t(j)---(i)---(k)\r\n\t\t\t\t\t// console.log('i,j,k', i, j , k)\r\n\r\n\t\t\t\t\tcontourMovements[_i] = getBevelVec(contour[_i], contour[j], contour[k]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar holesMovements = [];\r\n\t\t\t\tvar oneHoleMovements,\r\n\t\t\t\t\t\tverticesMovements = contourMovements.concat();\r\n\r\n\t\t\t\tfor (var _h2 = 0, _hl2 = holes.length; _h2 < _hl2; _h2++) {\r\n\t\t\t\t\tvar _ahole2 = holes[_h2];\r\n\t\t\t\t\toneHoleMovements = [];\r\n\r\n\t\t\t\t\tfor (var _i2 = 0, _il = _ahole2.length, _j = _il - 1, _k = _i2 + 1; _i2 < _il; _i2++, _j++, _k++) {\r\n\t\t\t\t\t\tif (_j === _il) _j = 0;\r\n\t\t\t\t\t\tif (_k === _il) _k = 0; //\t(j)---(i)---(k)\r\n\r\n\t\t\t\t\t\toneHoleMovements[_i2] = getBevelVec(_ahole2[_i2], _ahole2[_j], _ahole2[_k]);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tholesMovements.push(oneHoleMovements);\r\n\t\t\t\t\tverticesMovements = verticesMovements.concat(oneHoleMovements);\r\n\t\t\t\t} // Loop bevelSegments, 1 for the front, 1 for the back\r\n\r\n\r\n\t\t\t\tfor (var b = 0; b < bevelSegments; b++) {\r\n\t\t\t\t\t//for ( b = bevelSegments; b > 0; b -- ) {\r\n\t\t\t\t\tvar t = b / bevelSegments;\r\n\t\t\t\t\tvar z = bevelThickness * Math.cos(t * Math.PI / 2);\r\n\r\n\t\t\t\t\tvar _bs = bevelSize * Math.sin(t * Math.PI / 2) + bevelOffset; // contract shape\r\n\r\n\r\n\t\t\t\t\tfor (var _i3 = 0, _il2 = contour.length; _i3 < _il2; _i3++) {\r\n\t\t\t\t\t\tvar vert = scalePt2(contour[_i3], contourMovements[_i3], _bs);\r\n\t\t\t\t\t\tv(vert.x, vert.y, -z);\r\n\t\t\t\t\t} // expand holes\r\n\r\n\r\n\t\t\t\t\tfor (var _h3 = 0, _hl3 = holes.length; _h3 < _hl3; _h3++) {\r\n\t\t\t\t\t\tvar _ahole3 = holes[_h3];\r\n\t\t\t\t\t\toneHoleMovements = holesMovements[_h3];\r\n\r\n\t\t\t\t\t\tfor (var _i4 = 0, _il3 = _ahole3.length; _i4 < _il3; _i4++) {\r\n\t\t\t\t\t\t\tvar _vert = scalePt2(_ahole3[_i4], oneHoleMovements[_i4], _bs);\r\n\r\n\t\t\t\t\t\t\tv(_vert.x, _vert.y, -z);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar bs = bevelSize + bevelOffset; // Back facing vertices\r\n\r\n\t\t\t\tfor (var _i5 = 0; _i5 < vlen; _i5++) {\r\n\t\t\t\t\tvar _vert2 = bevelEnabled ? scalePt2(vertices[_i5], verticesMovements[_i5], bs) : vertices[_i5];\r\n\r\n\t\t\t\t\tif (!extrudeByPath) {\r\n\t\t\t\t\t\tv(_vert2.x, _vert2.y, 0);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// v( vert.x, vert.y + extrudePts[ 0 ].y, extrudePts[ 0 ].x );\r\n\t\t\t\t\t\tnormal.copy(splineTube.normals[0]).multiplyScalar(_vert2.x);\r\n\t\t\t\t\t\tbinormal.copy(splineTube.binormals[0]).multiplyScalar(_vert2.y);\r\n\t\t\t\t\t\tposition2.copy(extrudePts[0]).add(normal).add(binormal);\r\n\t\t\t\t\t\tv(position2.x, position2.y, position2.z);\r\n\t\t\t\t\t}\r\n\t\t\t\t} // Add stepped vertices...\r\n\t\t\t\t// Including front facing vertices\r\n\r\n\r\n\t\t\t\tfor (var s = 1; s <= steps; s++) {\r\n\t\t\t\t\tfor (var _i6 = 0; _i6 < vlen; _i6++) {\r\n\t\t\t\t\t\tvar _vert3 = bevelEnabled ? scalePt2(vertices[_i6], verticesMovements[_i6], bs) : vertices[_i6];\r\n\r\n\t\t\t\t\t\tif (!extrudeByPath) {\r\n\t\t\t\t\t\t\tv(_vert3.x, _vert3.y, depth / steps * s);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// v( vert.x, vert.y + extrudePts[ s - 1 ].y, extrudePts[ s - 1 ].x );\r\n\t\t\t\t\t\t\tnormal.copy(splineTube.normals[s]).multiplyScalar(_vert3.x);\r\n\t\t\t\t\t\t\tbinormal.copy(splineTube.binormals[s]).multiplyScalar(_vert3.y);\r\n\t\t\t\t\t\t\tposition2.copy(extrudePts[s]).add(normal).add(binormal);\r\n\t\t\t\t\t\t\tv(position2.x, position2.y, position2.z);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} // Add bevel segments planes\r\n\t\t\t\t//for ( b = 1; b <= bevelSegments; b ++ ) {\r\n\r\n\r\n\t\t\t\tfor (var _b = bevelSegments - 1; _b >= 0; _b--) {\r\n\t\t\t\t\tvar _t = _b / bevelSegments;\r\n\r\n\t\t\t\t\tvar _z = bevelThickness * Math.cos(_t * Math.PI / 2);\r\n\r\n\t\t\t\t\tvar _bs2 = bevelSize * Math.sin(_t * Math.PI / 2) + bevelOffset; // contract shape\r\n\r\n\r\n\t\t\t\t\tfor (var _i7 = 0, _il4 = contour.length; _i7 < _il4; _i7++) {\r\n\t\t\t\t\t\tvar _vert4 = scalePt2(contour[_i7], contourMovements[_i7], _bs2);\r\n\r\n\t\t\t\t\t\tv(_vert4.x, _vert4.y, depth + _z);\r\n\t\t\t\t\t} // expand holes\r\n\r\n\r\n\t\t\t\t\tfor (var _h4 = 0, _hl4 = holes.length; _h4 < _hl4; _h4++) {\r\n\t\t\t\t\t\tvar _ahole4 = holes[_h4];\r\n\t\t\t\t\t\toneHoleMovements = holesMovements[_h4];\r\n\r\n\t\t\t\t\t\tfor (var _i8 = 0, _il5 = _ahole4.length; _i8 < _il5; _i8++) {\r\n\t\t\t\t\t\t\tvar _vert5 = scalePt2(_ahole4[_i8], oneHoleMovements[_i8], _bs2);\r\n\r\n\t\t\t\t\t\t\tif (!extrudeByPath) {\r\n\t\t\t\t\t\t\t\tv(_vert5.x, _vert5.y, depth + _z);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tv(_vert5.x, _vert5.y + extrudePts[steps - 1].y, extrudePts[steps - 1].x + _z);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t/* Faces */\r\n\t\t\t\t// Top and bottom faces\r\n\r\n\r\n\t\t\t\tbuildLidFaces(); // Sides faces\r\n\r\n\t\t\t\tbuildSideFaces(); /////\tInternal functions\r\n\r\n\t\t\t\tfunction buildLidFaces() {\r\n\t\t\t\t\tvar start = verticesArray.length / 3;\r\n\r\n\t\t\t\t\tif (bevelEnabled) {\r\n\t\t\t\t\t\tvar layer = 0; // steps + 1\r\n\r\n\t\t\t\t\t\tvar offset = vlen * layer; // Bottom faces\r\n\r\n\t\t\t\t\t\tfor (var _i9 = 0; _i9 < flen; _i9++) {\r\n\t\t\t\t\t\t\tvar face = faces[_i9];\r\n\t\t\t\t\t\t\tf3(face[2] + offset, face[1] + offset, face[0] + offset);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tlayer = steps + bevelSegments * 2;\r\n\t\t\t\t\t\toffset = vlen * layer; // Top faces\r\n\r\n\t\t\t\t\t\tfor (var _i10 = 0; _i10 < flen; _i10++) {\r\n\t\t\t\t\t\t\tvar _face = faces[_i10];\r\n\t\t\t\t\t\t\tf3(_face[0] + offset, _face[1] + offset, _face[2] + offset);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// Bottom faces\r\n\t\t\t\t\t\tfor (var _i11 = 0; _i11 < flen; _i11++) {\r\n\t\t\t\t\t\t\tvar _face2 = faces[_i11];\r\n\t\t\t\t\t\t\tf3(_face2[2], _face2[1], _face2[0]);\r\n\t\t\t\t\t\t} // Top faces\r\n\r\n\r\n\t\t\t\t\t\tfor (var _i12 = 0; _i12 < flen; _i12++) {\r\n\t\t\t\t\t\t\tvar _face3 = faces[_i12];\r\n\t\t\t\t\t\t\tf3(_face3[0] + vlen * steps, _face3[1] + vlen * steps, _face3[2] + vlen * steps);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tscope.addGroup(start, verticesArray.length / 3 - start, 0);\r\n\t\t\t\t} // Create faces for the z-sides of the shape\r\n\r\n\r\n\t\t\t\tfunction buildSideFaces() {\r\n\t\t\t\t\tvar start = verticesArray.length / 3;\r\n\t\t\t\t\tvar layeroffset = 0;\r\n\t\t\t\t\tsidewalls(contour, layeroffset);\r\n\t\t\t\t\tlayeroffset += contour.length;\r\n\r\n\t\t\t\t\tfor (var _h5 = 0, _hl5 = holes.length; _h5 < _hl5; _h5++) {\r\n\t\t\t\t\t\tvar _ahole5 = holes[_h5];\r\n\t\t\t\t\t\tsidewalls(_ahole5, layeroffset); //, true\r\n\r\n\t\t\t\t\t\tlayeroffset += _ahole5.length;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tscope.addGroup(start, verticesArray.length / 3 - start, 1);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfunction sidewalls(contour, layeroffset) {\r\n\t\t\t\t\tvar i = contour.length;\r\n\r\n\t\t\t\t\twhile (--i >= 0) {\r\n\t\t\t\t\t\tvar _j2 = i;\r\n\r\n\t\t\t\t\t\tvar _k2 = i - 1;\r\n\r\n\t\t\t\t\t\tif (_k2 < 0) _k2 = contour.length - 1; //console.log('b', i,j, i-1, k,vertices.length);\r\n\r\n\t\t\t\t\t\tfor (var _s = 0, sl = steps + bevelSegments * 2; _s < sl; _s++) {\r\n\t\t\t\t\t\t\tvar slen1 = vlen * _s;\r\n\t\t\t\t\t\t\tvar slen2 = vlen * (_s + 1);\r\n\r\n\t\t\t\t\t\t\tvar a = layeroffset + _j2 + slen1,\r\n\t\t\t\t\t\t\t\t\t_b2 = layeroffset + _k2 + slen1,\r\n\t\t\t\t\t\t\t\t\tc = layeroffset + _k2 + slen2,\r\n\t\t\t\t\t\t\t\t\td = layeroffset + _j2 + slen2;\r\n\r\n\t\t\t\t\t\t\tf4(a, _b2, c, d);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfunction v(x, y, z) {\r\n\t\t\t\t\tplaceholder.push(x);\r\n\t\t\t\t\tplaceholder.push(y);\r\n\t\t\t\t\tplaceholder.push(z);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfunction f3(a, b, c) {\r\n\t\t\t\t\taddVertex(a);\r\n\t\t\t\t\taddVertex(b);\r\n\t\t\t\t\taddVertex(c);\r\n\t\t\t\t\tvar nextIndex = verticesArray.length / 3;\r\n\t\t\t\t\tvar uvs = uvgen.generateTopUV(scope, verticesArray, nextIndex - 3, nextIndex - 2, nextIndex - 1);\r\n\t\t\t\t\taddUV(uvs[0]);\r\n\t\t\t\t\taddUV(uvs[1]);\r\n\t\t\t\t\taddUV(uvs[2]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfunction f4(a, b, c, d) {\r\n\t\t\t\t\taddVertex(a);\r\n\t\t\t\t\taddVertex(b);\r\n\t\t\t\t\taddVertex(d);\r\n\t\t\t\t\taddVertex(b);\r\n\t\t\t\t\taddVertex(c);\r\n\t\t\t\t\taddVertex(d);\r\n\t\t\t\t\tvar nextIndex = verticesArray.length / 3;\r\n\t\t\t\t\tvar uvs = uvgen.generateSideWallUV(scope, verticesArray, nextIndex - 6, nextIndex - 3, nextIndex - 2, nextIndex - 1);\r\n\t\t\t\t\taddUV(uvs[0]);\r\n\t\t\t\t\taddUV(uvs[1]);\r\n\t\t\t\t\taddUV(uvs[3]);\r\n\t\t\t\t\taddUV(uvs[1]);\r\n\t\t\t\t\taddUV(uvs[2]);\r\n\t\t\t\t\taddUV(uvs[3]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfunction addVertex(index) {\r\n\t\t\t\t\tverticesArray.push(placeholder[index * 3 + 0]);\r\n\t\t\t\t\tverticesArray.push(placeholder[index * 3 + 1]);\r\n\t\t\t\t\tverticesArray.push(placeholder[index * 3 + 2]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfunction addUV(vector2) {\r\n\t\t\t\t\tuvArray.push(vector2.x);\r\n\t\t\t\t\tuvArray.push(vector2.y);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\tvar _proto = ExtrudeBufferGeometry.prototype;\r\n\r\n\t\t_proto.toJSON = function toJSON() {\r\n\t\t\tvar data = BufferGeometry.prototype.toJSON.call(this);\r\n\t\t\tvar shapes = this.parameters.shapes;\r\n\t\t\tvar options = this.parameters.options;\r\n\t\t\treturn _toJSON(shapes, options, data);\r\n\t\t};\r\n\r\n\t\treturn ExtrudeBufferGeometry;\r\n\t}(BufferGeometry);\r\n\r\n\tvar WorldUVGenerator = {\r\n\t\tgenerateTopUV: function generateTopUV(geometry, vertices, indexA, indexB, indexC) {\r\n\t\t\tvar a_x = vertices[indexA * 3];\r\n\t\t\tvar a_y = vertices[indexA * 3 + 1];\r\n\t\t\tvar b_x = vertices[indexB * 3];\r\n\t\t\tvar b_y = vertices[indexB * 3 + 1];\r\n\t\t\tvar c_x = vertices[indexC * 3];\r\n\t\t\tvar c_y = vertices[indexC * 3 + 1];\r\n\t\t\treturn [new Vector2(a_x, a_y), new Vector2(b_x, b_y), new Vector2(c_x, c_y)];\r\n\t\t},\r\n\t\tgenerateSideWallUV: function generateSideWallUV(geometry, vertices, indexA, indexB, indexC, indexD) {\r\n\t\t\tvar a_x = vertices[indexA * 3];\r\n\t\t\tvar a_y = vertices[indexA * 3 + 1];\r\n\t\t\tvar a_z = vertices[indexA * 3 + 2];\r\n\t\t\tvar b_x = vertices[indexB * 3];\r\n\t\t\tvar b_y = vertices[indexB * 3 + 1];\r\n\t\t\tvar b_z = vertices[indexB * 3 + 2];\r\n\t\t\tvar c_x = vertices[indexC * 3];\r\n\t\t\tvar c_y = vertices[indexC * 3 + 1];\r\n\t\t\tvar c_z = vertices[indexC * 3 + 2];\r\n\t\t\tvar d_x = vertices[indexD * 3];\r\n\t\t\tvar d_y = vertices[indexD * 3 + 1];\r\n\t\t\tvar d_z = vertices[indexD * 3 + 2];\r\n\r\n\t\t\tif (Math.abs(a_y - b_y) < 0.01) {\r\n\t\t\t\treturn [new Vector2(a_x, 1 - a_z), new Vector2(b_x, 1 - b_z), new Vector2(c_x, 1 - c_z), new Vector2(d_x, 1 - d_z)];\r\n\t\t\t} else {\r\n\t\t\t\treturn [new Vector2(a_y, 1 - a_z), new Vector2(b_y, 1 - b_z), new Vector2(c_y, 1 - c_z), new Vector2(d_y, 1 - d_z)];\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tfunction _toJSON(shapes, options, data) {\r\n\t\tdata.shapes = [];\r\n\r\n\t\tif (Array.isArray(shapes)) {\r\n\t\t\tfor (var i = 0, l = shapes.length; i < l; i++) {\r\n\t\t\t\tvar shape = shapes[i];\r\n\t\t\t\tdata.shapes.push(shape.uuid);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tdata.shapes.push(shapes.uuid);\r\n\t\t}\r\n\r\n\t\tif (options.extrudePath !== undefined) data.options.extrudePath = options.extrudePath.toJSON();\r\n\t\treturn data;\r\n\t}\r\n\r\n\tvar ExtrudeGeometry = /*#__PURE__*/function (_Geometry) {\r\n\t\t_inheritsLoose(ExtrudeGeometry, _Geometry);\r\n\r\n\t\tfunction ExtrudeGeometry(shapes, options) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\t_this = _Geometry.call(this) || this;\r\n\t\t\t_this.type = 'ExtrudeGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\tshapes: shapes,\r\n\t\t\t\toptions: options\r\n\t\t\t};\r\n\r\n\t\t\t_this.fromBufferGeometry(new ExtrudeBufferGeometry(shapes, options));\r\n\r\n\t\t\t_this.mergeVertices();\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\tvar _proto = ExtrudeGeometry.prototype;\r\n\r\n\t\t_proto.toJSON = function toJSON() {\r\n\t\t\tvar data = _Geometry.prototype.toJSON.call(this);\r\n\r\n\t\t\tvar shapes = this.parameters.shapes;\r\n\t\t\tvar options = this.parameters.options;\r\n\t\t\treturn _toJSON$1(shapes, options, data);\r\n\t\t};\r\n\r\n\t\treturn ExtrudeGeometry;\r\n\t}(Geometry);\r\n\r\n\tfunction _toJSON$1(shapes, options, data) {\r\n\t\tdata.shapes = [];\r\n\r\n\t\tif (Array.isArray(shapes)) {\r\n\t\t\tfor (var i = 0, l = shapes.length; i < l; i++) {\r\n\t\t\t\tvar shape = shapes[i];\r\n\t\t\t\tdata.shapes.push(shape.uuid);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tdata.shapes.push(shapes.uuid);\r\n\t\t}\r\n\r\n\t\tif (options.extrudePath !== undefined) data.options.extrudePath = options.extrudePath.toJSON();\r\n\t\treturn data;\r\n\t}\r\n\r\n\tvar IcosahedronBufferGeometry = /*#__PURE__*/function (_PolyhedronBufferGeom) {\r\n\t\t_inheritsLoose(IcosahedronBufferGeometry, _PolyhedronBufferGeom);\r\n\r\n\t\tfunction IcosahedronBufferGeometry(radius, detail) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\tif (radius === void 0) {\r\n\t\t\t\tradius = 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (detail === void 0) {\r\n\t\t\t\tdetail = 0;\r\n\t\t\t}\r\n\r\n\t\t\tvar t = (1 + Math.sqrt(5)) / 2;\r\n\t\t\tvar vertices = [-1, t, 0, 1, t, 0, -1, -t, 0, 1, -t, 0, 0, -1, t, 0, 1, t, 0, -1, -t, 0, 1, -t, t, 0, -1, t, 0, 1, -t, 0, -1, -t, 0, 1];\r\n\t\t\tvar indices = [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];\r\n\t\t\t_this = _PolyhedronBufferGeom.call(this, vertices, indices, radius, detail) || this;\r\n\t\t\t_this.type = 'IcosahedronBufferGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\tradius: radius,\r\n\t\t\t\tdetail: detail\r\n\t\t\t};\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn IcosahedronBufferGeometry;\r\n\t}(PolyhedronBufferGeometry);\r\n\r\n\tvar IcosahedronGeometry = /*#__PURE__*/function (_Geometry) {\r\n\t\t_inheritsLoose(IcosahedronGeometry, _Geometry);\r\n\r\n\t\tfunction IcosahedronGeometry(radius, detail) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\t_this = _Geometry.call(this) || this;\r\n\t\t\t_this.type = 'IcosahedronGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\tradius: radius,\r\n\t\t\t\tdetail: detail\r\n\t\t\t};\r\n\r\n\t\t\t_this.fromBufferGeometry(new IcosahedronBufferGeometry(radius, detail));\r\n\r\n\t\t\t_this.mergeVertices();\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn IcosahedronGeometry;\r\n\t}(Geometry);\r\n\r\n\tvar LatheBufferGeometry = /*#__PURE__*/function (_BufferGeometry) {\r\n\t\t_inheritsLoose(LatheBufferGeometry, _BufferGeometry);\r\n\r\n\t\tfunction LatheBufferGeometry(points, segments, phiStart, phiLength) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\tif (segments === void 0) {\r\n\t\t\t\tsegments = 12;\r\n\t\t\t}\r\n\r\n\t\t\tif (phiStart === void 0) {\r\n\t\t\t\tphiStart = 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (phiLength === void 0) {\r\n\t\t\t\tphiLength = Math.PI * 2;\r\n\t\t\t}\r\n\r\n\t\t\t_this = _BufferGeometry.call(this) || this;\r\n\t\t\t_this.type = 'LatheBufferGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\tpoints: points,\r\n\t\t\t\tsegments: segments,\r\n\t\t\t\tphiStart: phiStart,\r\n\t\t\t\tphiLength: phiLength\r\n\t\t\t};\r\n\t\t\tsegments = Math.floor(segments); // clamp phiLength so it's in range of [ 0, 2PI ]\r\n\r\n\t\t\tphiLength = MathUtils.clamp(phiLength, 0, Math.PI * 2); // buffers\r\n\r\n\t\t\tvar indices = [];\r\n\t\t\tvar vertices = [];\r\n\t\t\tvar uvs = []; // helper variables\r\n\r\n\t\t\tvar inverseSegments = 1.0 / segments;\r\n\t\t\tvar vertex = new Vector3();\r\n\t\t\tvar uv = new Vector2(); // generate vertices and uvs\r\n\r\n\t\t\tfor (var i = 0; i <= segments; i++) {\r\n\t\t\t\tvar phi = phiStart + i * inverseSegments * phiLength;\r\n\t\t\t\tvar sin = Math.sin(phi);\r\n\t\t\t\tvar cos = Math.cos(phi);\r\n\r\n\t\t\t\tfor (var j = 0; j <= points.length - 1; j++) {\r\n\t\t\t\t\t// vertex\r\n\t\t\t\t\tvertex.x = points[j].x * sin;\r\n\t\t\t\t\tvertex.y = points[j].y;\r\n\t\t\t\t\tvertex.z = points[j].x * cos;\r\n\t\t\t\t\tvertices.push(vertex.x, vertex.y, vertex.z); // uv\r\n\r\n\t\t\t\t\tuv.x = i / segments;\r\n\t\t\t\t\tuv.y = j / (points.length - 1);\r\n\t\t\t\t\tuvs.push(uv.x, uv.y);\r\n\t\t\t\t}\r\n\t\t\t} // indices\r\n\r\n\r\n\t\t\tfor (var _i = 0; _i < segments; _i++) {\r\n\t\t\t\tfor (var _j = 0; _j < points.length - 1; _j++) {\r\n\t\t\t\t\tvar base = _j + _i * points.length;\r\n\t\t\t\t\tvar a = base;\r\n\t\t\t\t\tvar b = base + points.length;\r\n\t\t\t\t\tvar c = base + points.length + 1;\r\n\t\t\t\t\tvar d = base + 1; // faces\r\n\r\n\t\t\t\t\tindices.push(a, b, d);\r\n\t\t\t\t\tindices.push(b, c, d);\r\n\t\t\t\t}\r\n\t\t\t} // build geometry\r\n\r\n\r\n\t\t\t_this.setIndex(indices);\r\n\r\n\t\t\t_this.setAttribute('position', new Float32BufferAttribute(vertices, 3));\r\n\r\n\t\t\t_this.setAttribute('uv', new Float32BufferAttribute(uvs, 2)); // generate normals\r\n\r\n\r\n\t\t\t_this.computeVertexNormals(); // if the geometry is closed, we need to average the normals along the seam.\r\n\t\t\t// because the corresponding vertices are identical (but still have different UVs).\r\n\r\n\r\n\t\t\tif (phiLength === Math.PI * 2) {\r\n\t\t\t\tvar normals = _this.attributes.normal.array;\r\n\t\t\t\tvar n1 = new Vector3();\r\n\t\t\t\tvar n2 = new Vector3();\r\n\t\t\t\tvar n = new Vector3(); // this is the buffer offset for the last line of vertices\r\n\r\n\t\t\t\tvar _base = segments * points.length * 3;\r\n\r\n\t\t\t\tfor (var _i2 = 0, _j2 = 0; _i2 < points.length; _i2++, _j2 += 3) {\r\n\t\t\t\t\t// select the normal of the vertex in the first line\r\n\t\t\t\t\tn1.x = normals[_j2 + 0];\r\n\t\t\t\t\tn1.y = normals[_j2 + 1];\r\n\t\t\t\t\tn1.z = normals[_j2 + 2]; // select the normal of the vertex in the last line\r\n\r\n\t\t\t\t\tn2.x = normals[_base + _j2 + 0];\r\n\t\t\t\t\tn2.y = normals[_base + _j2 + 1];\r\n\t\t\t\t\tn2.z = normals[_base + _j2 + 2]; // average normals\r\n\r\n\t\t\t\t\tn.addVectors(n1, n2).normalize(); // assign the new values to both normals\r\n\r\n\t\t\t\t\tnormals[_j2 + 0] = normals[_base + _j2 + 0] = n.x;\r\n\t\t\t\t\tnormals[_j2 + 1] = normals[_base + _j2 + 1] = n.y;\r\n\t\t\t\t\tnormals[_j2 + 2] = normals[_base + _j2 + 2] = n.z;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn LatheBufferGeometry;\r\n\t}(BufferGeometry);\r\n\r\n\tvar LatheGeometry = /*#__PURE__*/function (_Geometry) {\r\n\t\t_inheritsLoose(LatheGeometry, _Geometry);\r\n\r\n\t\tfunction LatheGeometry(points, segments, phiStart, phiLength) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\t_this = _Geometry.call(this) || this;\r\n\t\t\t_this.type = 'LatheGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\tpoints: points,\r\n\t\t\t\tsegments: segments,\r\n\t\t\t\tphiStart: phiStart,\r\n\t\t\t\tphiLength: phiLength\r\n\t\t\t};\r\n\r\n\t\t\t_this.fromBufferGeometry(new LatheBufferGeometry(points, segments, phiStart, phiLength));\r\n\r\n\t\t\t_this.mergeVertices();\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn LatheGeometry;\r\n\t}(Geometry);\r\n\r\n\tvar OctahedronBufferGeometry = /*#__PURE__*/function (_PolyhedronBufferGeom) {\r\n\t\t_inheritsLoose(OctahedronBufferGeometry, _PolyhedronBufferGeom);\r\n\r\n\t\tfunction OctahedronBufferGeometry(radius, detail) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\tif (radius === void 0) {\r\n\t\t\t\tradius = 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (detail === void 0) {\r\n\t\t\t\tdetail = 0;\r\n\t\t\t}\r\n\r\n\t\t\tvar vertices = [1, 0, 0, -1, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 1, 0, 0, -1];\r\n\t\t\tvar indices = [0, 2, 4, 0, 4, 3, 0, 3, 5, 0, 5, 2, 1, 2, 5, 1, 5, 3, 1, 3, 4, 1, 4, 2];\r\n\t\t\t_this = _PolyhedronBufferGeom.call(this, vertices, indices, radius, detail) || this;\r\n\t\t\t_this.type = 'OctahedronBufferGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\tradius: radius,\r\n\t\t\t\tdetail: detail\r\n\t\t\t};\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn OctahedronBufferGeometry;\r\n\t}(PolyhedronBufferGeometry);\r\n\r\n\tvar OctahedronGeometry = /*#__PURE__*/function (_Geometry) {\r\n\t\t_inheritsLoose(OctahedronGeometry, _Geometry);\r\n\r\n\t\tfunction OctahedronGeometry(radius, detail) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\t_this = _Geometry.call(this) || this;\r\n\t\t\t_this.type = 'OctahedronGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\tradius: radius,\r\n\t\t\t\tdetail: detail\r\n\t\t\t};\r\n\r\n\t\t\t_this.fromBufferGeometry(new OctahedronBufferGeometry(radius, detail));\r\n\r\n\t\t\t_this.mergeVertices();\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn OctahedronGeometry;\r\n\t}(Geometry);\r\n\r\n\t/**\r\n\t * Parametric Surfaces Geometry\r\n\t * based on the brilliant article by @prideout https://prideout.net/blog/old/blog/index.html@p=44.html\r\n\t */\r\n\r\n\tfunction ParametricBufferGeometry(func, slices, stacks) {\r\n\t\tBufferGeometry.call(this);\r\n\t\tthis.type = 'ParametricBufferGeometry';\r\n\t\tthis.parameters = {\r\n\t\t\tfunc: func,\r\n\t\t\tslices: slices,\r\n\t\t\tstacks: stacks\r\n\t\t}; // buffers\r\n\r\n\t\tvar indices = [];\r\n\t\tvar vertices = [];\r\n\t\tvar normals = [];\r\n\t\tvar uvs = [];\r\n\t\tvar EPS = 0.00001;\r\n\t\tvar normal = new Vector3();\r\n\t\tvar p0 = new Vector3(),\r\n\t\t\t\tp1 = new Vector3();\r\n\t\tvar pu = new Vector3(),\r\n\t\t\t\tpv = new Vector3();\r\n\r\n\t\tif (func.length < 3) {\r\n\t\t\tconsole.error('THREE.ParametricGeometry: Function must now modify a Vector3 as third parameter.');\r\n\t\t} // generate vertices, normals and uvs\r\n\r\n\r\n\t\tvar sliceCount = slices + 1;\r\n\r\n\t\tfor (var i = 0; i <= stacks; i++) {\r\n\t\t\tvar v = i / stacks;\r\n\r\n\t\t\tfor (var j = 0; j <= slices; j++) {\r\n\t\t\t\tvar u = j / slices; // vertex\r\n\r\n\t\t\t\tfunc(u, v, p0);\r\n\t\t\t\tvertices.push(p0.x, p0.y, p0.z); // normal\r\n\t\t\t\t// approximate tangent vectors via finite differences\r\n\r\n\t\t\t\tif (u - EPS >= 0) {\r\n\t\t\t\t\tfunc(u - EPS, v, p1);\r\n\t\t\t\t\tpu.subVectors(p0, p1);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tfunc(u + EPS, v, p1);\r\n\t\t\t\t\tpu.subVectors(p1, p0);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (v - EPS >= 0) {\r\n\t\t\t\t\tfunc(u, v - EPS, p1);\r\n\t\t\t\t\tpv.subVectors(p0, p1);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tfunc(u, v + EPS, p1);\r\n\t\t\t\t\tpv.subVectors(p1, p0);\r\n\t\t\t\t} // cross product of tangent vectors returns surface normal\r\n\r\n\r\n\t\t\t\tnormal.crossVectors(pu, pv).normalize();\r\n\t\t\t\tnormals.push(normal.x, normal.y, normal.z); // uv\r\n\r\n\t\t\t\tuvs.push(u, v);\r\n\t\t\t}\r\n\t\t} // generate indices\r\n\r\n\r\n\t\tfor (var _i = 0; _i < stacks; _i++) {\r\n\t\t\tfor (var _j = 0; _j < slices; _j++) {\r\n\t\t\t\tvar a = _i * sliceCount + _j;\r\n\t\t\t\tvar b = _i * sliceCount + _j + 1;\r\n\t\t\t\tvar c = (_i + 1) * sliceCount + _j + 1;\r\n\t\t\t\tvar d = (_i + 1) * sliceCount + _j; // faces one and two\r\n\r\n\t\t\t\tindices.push(a, b, d);\r\n\t\t\t\tindices.push(b, c, d);\r\n\t\t\t}\r\n\t\t} // build geometry\r\n\r\n\r\n\t\tthis.setIndex(indices);\r\n\t\tthis.setAttribute('position', new Float32BufferAttribute(vertices, 3));\r\n\t\tthis.setAttribute('normal', new Float32BufferAttribute(normals, 3));\r\n\t\tthis.setAttribute('uv', new Float32BufferAttribute(uvs, 2));\r\n\t}\r\n\r\n\tParametricBufferGeometry.prototype = Object.create(BufferGeometry.prototype);\r\n\tParametricBufferGeometry.prototype.constructor = ParametricBufferGeometry;\r\n\r\n\t/**\r\n\t * Parametric Surfaces Geometry\r\n\t * based on the brilliant article by @prideout https://prideout.net/blog/old/blog/index.html@p=44.html\r\n\t */\r\n\r\n\tfunction ParametricGeometry(func, slices, stacks) {\r\n\t\tGeometry.call(this);\r\n\t\tthis.type = 'ParametricGeometry';\r\n\t\tthis.parameters = {\r\n\t\t\tfunc: func,\r\n\t\t\tslices: slices,\r\n\t\t\tstacks: stacks\r\n\t\t};\r\n\t\tthis.fromBufferGeometry(new ParametricBufferGeometry(func, slices, stacks));\r\n\t\tthis.mergeVertices();\r\n\t}\r\n\r\n\tParametricGeometry.prototype = Object.create(Geometry.prototype);\r\n\tParametricGeometry.prototype.constructor = ParametricGeometry;\r\n\r\n\tvar PlaneGeometry = /*#__PURE__*/function (_Geometry) {\r\n\t\t_inheritsLoose(PlaneGeometry, _Geometry);\r\n\r\n\t\tfunction PlaneGeometry(width, height, widthSegments, heightSegments) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\t_this = _Geometry.call(this) || this;\r\n\t\t\t_this.type = 'PlaneGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\twidth: width,\r\n\t\t\t\theight: height,\r\n\t\t\t\twidthSegments: widthSegments,\r\n\t\t\t\theightSegments: heightSegments\r\n\t\t\t};\r\n\r\n\t\t\t_this.fromBufferGeometry(new PlaneBufferGeometry(width, height, widthSegments, heightSegments));\r\n\r\n\t\t\t_this.mergeVertices();\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn PlaneGeometry;\r\n\t}(Geometry);\r\n\r\n\tvar PolyhedronGeometry = /*#__PURE__*/function (_Geometry) {\r\n\t\t_inheritsLoose(PolyhedronGeometry, _Geometry);\r\n\r\n\t\tfunction PolyhedronGeometry(vertices, indices, radius, detail) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\t_this = _Geometry.call(this) || this;\r\n\t\t\t_this.type = 'PolyhedronGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\tvertices: vertices,\r\n\t\t\t\tindices: indices,\r\n\t\t\t\tradius: radius,\r\n\t\t\t\tdetail: detail\r\n\t\t\t};\r\n\r\n\t\t\t_this.fromBufferGeometry(new PolyhedronBufferGeometry(vertices, indices, radius, detail));\r\n\r\n\t\t\t_this.mergeVertices();\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn PolyhedronGeometry;\r\n\t}(Geometry);\r\n\r\n\tvar RingBufferGeometry = /*#__PURE__*/function (_BufferGeometry) {\r\n\t\t_inheritsLoose(RingBufferGeometry, _BufferGeometry);\r\n\r\n\t\tfunction RingBufferGeometry(innerRadius, outerRadius, thetaSegments, phiSegments, thetaStart, thetaLength) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\tif (innerRadius === void 0) {\r\n\t\t\t\tinnerRadius = 0.5;\r\n\t\t\t}\r\n\r\n\t\t\tif (outerRadius === void 0) {\r\n\t\t\t\touterRadius = 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (thetaSegments === void 0) {\r\n\t\t\t\tthetaSegments = 8;\r\n\t\t\t}\r\n\r\n\t\t\tif (phiSegments === void 0) {\r\n\t\t\t\tphiSegments = 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (thetaStart === void 0) {\r\n\t\t\t\tthetaStart = 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (thetaLength === void 0) {\r\n\t\t\t\tthetaLength = Math.PI * 2;\r\n\t\t\t}\r\n\r\n\t\t\t_this = _BufferGeometry.call(this) || this;\r\n\t\t\t_this.type = 'RingBufferGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\tinnerRadius: innerRadius,\r\n\t\t\t\touterRadius: outerRadius,\r\n\t\t\t\tthetaSegments: thetaSegments,\r\n\t\t\t\tphiSegments: phiSegments,\r\n\t\t\t\tthetaStart: thetaStart,\r\n\t\t\t\tthetaLength: thetaLength\r\n\t\t\t};\r\n\t\t\tthetaSegments = Math.max(3, thetaSegments);\r\n\t\t\tphiSegments = Math.max(1, phiSegments); // buffers\r\n\r\n\t\t\tvar indices = [];\r\n\t\t\tvar vertices = [];\r\n\t\t\tvar normals = [];\r\n\t\t\tvar uvs = []; // some helper variables\r\n\r\n\t\t\tvar radius = innerRadius;\r\n\t\t\tvar radiusStep = (outerRadius - innerRadius) / phiSegments;\r\n\t\t\tvar vertex = new Vector3();\r\n\t\t\tvar uv = new Vector2(); // generate vertices, normals and uvs\r\n\r\n\t\t\tfor (var j = 0; j <= phiSegments; j++) {\r\n\t\t\t\tfor (var i = 0; i <= thetaSegments; i++) {\r\n\t\t\t\t\t// values are generate from the inside of the ring to the outside\r\n\t\t\t\t\tvar segment = thetaStart + i / thetaSegments * thetaLength; // vertex\r\n\r\n\t\t\t\t\tvertex.x = radius * Math.cos(segment);\r\n\t\t\t\t\tvertex.y = radius * Math.sin(segment);\r\n\t\t\t\t\tvertices.push(vertex.x, vertex.y, vertex.z); // normal\r\n\r\n\t\t\t\t\tnormals.push(0, 0, 1); // uv\r\n\r\n\t\t\t\t\tuv.x = (vertex.x / outerRadius + 1) / 2;\r\n\t\t\t\t\tuv.y = (vertex.y / outerRadius + 1) / 2;\r\n\t\t\t\t\tuvs.push(uv.x, uv.y);\r\n\t\t\t\t} // increase the radius for next row of vertices\r\n\r\n\r\n\t\t\t\tradius += radiusStep;\r\n\t\t\t} // indices\r\n\r\n\r\n\t\t\tfor (var _j = 0; _j < phiSegments; _j++) {\r\n\t\t\t\tvar thetaSegmentLevel = _j * (thetaSegments + 1);\r\n\r\n\t\t\t\tfor (var _i = 0; _i < thetaSegments; _i++) {\r\n\t\t\t\t\tvar _segment = _i + thetaSegmentLevel;\r\n\r\n\t\t\t\t\tvar a = _segment;\r\n\t\t\t\t\tvar b = _segment + thetaSegments + 1;\r\n\t\t\t\t\tvar c = _segment + thetaSegments + 2;\r\n\t\t\t\t\tvar d = _segment + 1; // faces\r\n\r\n\t\t\t\t\tindices.push(a, b, d);\r\n\t\t\t\t\tindices.push(b, c, d);\r\n\t\t\t\t}\r\n\t\t\t} // build geometry\r\n\r\n\r\n\t\t\t_this.setIndex(indices);\r\n\r\n\t\t\t_this.setAttribute('position', new Float32BufferAttribute(vertices, 3));\r\n\r\n\t\t\t_this.setAttribute('normal', new Float32BufferAttribute(normals, 3));\r\n\r\n\t\t\t_this.setAttribute('uv', new Float32BufferAttribute(uvs, 2));\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn RingBufferGeometry;\r\n\t}(BufferGeometry);\r\n\r\n\tvar RingGeometry = /*#__PURE__*/function (_Geometry) {\r\n\t\t_inheritsLoose(RingGeometry, _Geometry);\r\n\r\n\t\tfunction RingGeometry(innerRadius, outerRadius, thetaSegments, phiSegments, thetaStart, thetaLength) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\t_this = _Geometry.call(this) || this;\r\n\t\t\t_this.type = 'RingGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\tinnerRadius: innerRadius,\r\n\t\t\t\touterRadius: outerRadius,\r\n\t\t\t\tthetaSegments: thetaSegments,\r\n\t\t\t\tphiSegments: phiSegments,\r\n\t\t\t\tthetaStart: thetaStart,\r\n\t\t\t\tthetaLength: thetaLength\r\n\t\t\t};\r\n\r\n\t\t\t_this.fromBufferGeometry(new RingBufferGeometry(innerRadius, outerRadius, thetaSegments, phiSegments, thetaStart, thetaLength));\r\n\r\n\t\t\t_this.mergeVertices();\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn RingGeometry;\r\n\t}(Geometry);\r\n\r\n\tvar ShapeBufferGeometry = /*#__PURE__*/function (_BufferGeometry) {\r\n\t\t_inheritsLoose(ShapeBufferGeometry, _BufferGeometry);\r\n\r\n\t\tfunction ShapeBufferGeometry(shapes, curveSegments) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\tif (curveSegments === void 0) {\r\n\t\t\t\tcurveSegments = 12;\r\n\t\t\t}\r\n\r\n\t\t\t_this = _BufferGeometry.call(this) || this;\r\n\t\t\t_this.type = 'ShapeBufferGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\tshapes: shapes,\r\n\t\t\t\tcurveSegments: curveSegments\r\n\t\t\t}; // buffers\r\n\r\n\t\t\tvar indices = [];\r\n\t\t\tvar vertices = [];\r\n\t\t\tvar normals = [];\r\n\t\t\tvar uvs = []; // helper variables\r\n\r\n\t\t\tvar groupStart = 0;\r\n\t\t\tvar groupCount = 0; // allow single and array values for \"shapes\" parameter\r\n\r\n\t\t\tif (Array.isArray(shapes) === false) {\r\n\t\t\t\taddShape(shapes);\r\n\t\t\t} else {\r\n\t\t\t\tfor (var i = 0; i < shapes.length; i++) {\r\n\t\t\t\t\taddShape(shapes[i]);\r\n\r\n\t\t\t\t\t_this.addGroup(groupStart, groupCount, i); // enables MultiMaterial support\r\n\r\n\r\n\t\t\t\t\tgroupStart += groupCount;\r\n\t\t\t\t\tgroupCount = 0;\r\n\t\t\t\t}\r\n\t\t\t} // build geometry\r\n\r\n\r\n\t\t\t_this.setIndex(indices);\r\n\r\n\t\t\t_this.setAttribute('position', new Float32BufferAttribute(vertices, 3));\r\n\r\n\t\t\t_this.setAttribute('normal', new Float32BufferAttribute(normals, 3));\r\n\r\n\t\t\t_this.setAttribute('uv', new Float32BufferAttribute(uvs, 2)); // helper functions\r\n\r\n\r\n\t\t\tfunction addShape(shape) {\r\n\t\t\t\tvar indexOffset = vertices.length / 3;\r\n\t\t\t\tvar points = shape.extractPoints(curveSegments);\r\n\t\t\t\tvar shapeVertices = points.shape;\r\n\t\t\t\tvar shapeHoles = points.holes; // check direction of vertices\r\n\r\n\t\t\t\tif (ShapeUtils.isClockWise(shapeVertices) === false) {\r\n\t\t\t\t\tshapeVertices = shapeVertices.reverse();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfor (var _i = 0, l = shapeHoles.length; _i < l; _i++) {\r\n\t\t\t\t\tvar shapeHole = shapeHoles[_i];\r\n\r\n\t\t\t\t\tif (ShapeUtils.isClockWise(shapeHole) === true) {\r\n\t\t\t\t\t\tshapeHoles[_i] = shapeHole.reverse();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar faces = ShapeUtils.triangulateShape(shapeVertices, shapeHoles); // join vertices of inner and outer paths to a single array\r\n\r\n\t\t\t\tfor (var _i2 = 0, _l = shapeHoles.length; _i2 < _l; _i2++) {\r\n\t\t\t\t\tvar _shapeHole = shapeHoles[_i2];\r\n\t\t\t\t\tshapeVertices = shapeVertices.concat(_shapeHole);\r\n\t\t\t\t} // vertices, normals, uvs\r\n\r\n\r\n\t\t\t\tfor (var _i3 = 0, _l2 = shapeVertices.length; _i3 < _l2; _i3++) {\r\n\t\t\t\t\tvar vertex = shapeVertices[_i3];\r\n\t\t\t\t\tvertices.push(vertex.x, vertex.y, 0);\r\n\t\t\t\t\tnormals.push(0, 0, 1);\r\n\t\t\t\t\tuvs.push(vertex.x, vertex.y); // world uvs\r\n\t\t\t\t} // incides\r\n\r\n\r\n\t\t\t\tfor (var _i4 = 0, _l3 = faces.length; _i4 < _l3; _i4++) {\r\n\t\t\t\t\tvar face = faces[_i4];\r\n\t\t\t\t\tvar a = face[0] + indexOffset;\r\n\t\t\t\t\tvar b = face[1] + indexOffset;\r\n\t\t\t\t\tvar c = face[2] + indexOffset;\r\n\t\t\t\t\tindices.push(a, b, c);\r\n\t\t\t\t\tgroupCount += 3;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\tvar _proto = ShapeBufferGeometry.prototype;\r\n\r\n\t\t_proto.toJSON = function toJSON() {\r\n\t\t\tvar data = BufferGeometry.prototype.toJSON.call(this);\r\n\t\t\tvar shapes = this.parameters.shapes;\r\n\t\t\treturn _toJSON$2(shapes, data);\r\n\t\t};\r\n\r\n\t\treturn ShapeBufferGeometry;\r\n\t}(BufferGeometry);\r\n\r\n\tfunction _toJSON$2(shapes, data) {\r\n\t\tdata.shapes = [];\r\n\r\n\t\tif (Array.isArray(shapes)) {\r\n\t\t\tfor (var i = 0, l = shapes.length; i < l; i++) {\r\n\t\t\t\tvar shape = shapes[i];\r\n\t\t\t\tdata.shapes.push(shape.uuid);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tdata.shapes.push(shapes.uuid);\r\n\t\t}\r\n\r\n\t\treturn data;\r\n\t}\r\n\r\n\tvar ShapeGeometry = /*#__PURE__*/function (_Geometry) {\r\n\t\t_inheritsLoose(ShapeGeometry, _Geometry);\r\n\r\n\t\tfunction ShapeGeometry(shapes, curveSegments) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\t_this = _Geometry.call(this) || this;\r\n\t\t\t_this.type = 'ShapeGeometry';\r\n\r\n\t\t\tif (typeof curveSegments === 'object') {\r\n\t\t\t\tconsole.warn('THREE.ShapeGeometry: Options parameter has been removed.');\r\n\t\t\t\tcurveSegments = curveSegments.curveSegments;\r\n\t\t\t}\r\n\r\n\t\t\t_this.parameters = {\r\n\t\t\t\tshapes: shapes,\r\n\t\t\t\tcurveSegments: curveSegments\r\n\t\t\t};\r\n\r\n\t\t\t_this.fromBufferGeometry(new ShapeBufferGeometry(shapes, curveSegments));\r\n\r\n\t\t\t_this.mergeVertices();\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\tvar _proto = ShapeGeometry.prototype;\r\n\r\n\t\t_proto.toJSON = function toJSON() {\r\n\t\t\tvar data = Geometry.prototype.toJSON.call(this);\r\n\t\t\tvar shapes = this.parameters.shapes;\r\n\t\t\treturn _toJSON$3(shapes, data);\r\n\t\t};\r\n\r\n\t\treturn ShapeGeometry;\r\n\t}(Geometry);\r\n\r\n\tfunction _toJSON$3(shapes, data) {\r\n\t\tdata.shapes = [];\r\n\r\n\t\tif (Array.isArray(shapes)) {\r\n\t\t\tfor (var i = 0, l = shapes.length; i < l; i++) {\r\n\t\t\t\tvar shape = shapes[i];\r\n\t\t\t\tdata.shapes.push(shape.uuid);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tdata.shapes.push(shapes.uuid);\r\n\t\t}\r\n\r\n\t\treturn data;\r\n\t}\r\n\r\n\tvar SphereBufferGeometry = /*#__PURE__*/function (_BufferGeometry) {\r\n\t\t_inheritsLoose(SphereBufferGeometry, _BufferGeometry);\r\n\r\n\t\tfunction SphereBufferGeometry(radius, widthSegments, heightSegments, phiStart, phiLength, thetaStart, thetaLength) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\tif (radius === void 0) {\r\n\t\t\t\tradius = 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (widthSegments === void 0) {\r\n\t\t\t\twidthSegments = 8;\r\n\t\t\t}\r\n\r\n\t\t\tif (heightSegments === void 0) {\r\n\t\t\t\theightSegments = 6;\r\n\t\t\t}\r\n\r\n\t\t\tif (phiStart === void 0) {\r\n\t\t\t\tphiStart = 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (phiLength === void 0) {\r\n\t\t\t\tphiLength = Math.PI * 2;\r\n\t\t\t}\r\n\r\n\t\t\tif (thetaStart === void 0) {\r\n\t\t\t\tthetaStart = 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (thetaLength === void 0) {\r\n\t\t\t\tthetaLength = Math.PI;\r\n\t\t\t}\r\n\r\n\t\t\t_this = _BufferGeometry.call(this) || this;\r\n\t\t\t_this.type = 'SphereBufferGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\tradius: radius,\r\n\t\t\t\twidthSegments: widthSegments,\r\n\t\t\t\theightSegments: heightSegments,\r\n\t\t\t\tphiStart: phiStart,\r\n\t\t\t\tphiLength: phiLength,\r\n\t\t\t\tthetaStart: thetaStart,\r\n\t\t\t\tthetaLength: thetaLength\r\n\t\t\t};\r\n\t\t\twidthSegments = Math.max(3, Math.floor(widthSegments));\r\n\t\t\theightSegments = Math.max(2, Math.floor(heightSegments));\r\n\t\t\tvar thetaEnd = Math.min(thetaStart + thetaLength, Math.PI);\r\n\t\t\tvar index = 0;\r\n\t\t\tvar grid = [];\r\n\t\t\tvar vertex = new Vector3();\r\n\t\t\tvar normal = new Vector3(); // buffers\r\n\r\n\t\t\tvar indices = [];\r\n\t\t\tvar vertices = [];\r\n\t\t\tvar normals = [];\r\n\t\t\tvar uvs = []; // generate vertices, normals and uvs\r\n\r\n\t\t\tfor (var iy = 0; iy <= heightSegments; iy++) {\r\n\t\t\t\tvar verticesRow = [];\r\n\t\t\t\tvar v = iy / heightSegments; // special case for the poles\r\n\r\n\t\t\t\tvar uOffset = 0;\r\n\r\n\t\t\t\tif (iy == 0 && thetaStart == 0) {\r\n\t\t\t\t\tuOffset = 0.5 / widthSegments;\r\n\t\t\t\t} else if (iy == heightSegments && thetaEnd == Math.PI) {\r\n\t\t\t\t\tuOffset = -0.5 / widthSegments;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfor (var ix = 0; ix <= widthSegments; ix++) {\r\n\t\t\t\t\tvar u = ix / widthSegments; // vertex\r\n\r\n\t\t\t\t\tvertex.x = -radius * Math.cos(phiStart + u * phiLength) * Math.sin(thetaStart + v * thetaLength);\r\n\t\t\t\t\tvertex.y = radius * Math.cos(thetaStart + v * thetaLength);\r\n\t\t\t\t\tvertex.z = radius * Math.sin(phiStart + u * phiLength) * Math.sin(thetaStart + v * thetaLength);\r\n\t\t\t\t\tvertices.push(vertex.x, vertex.y, vertex.z); // normal\r\n\r\n\t\t\t\t\tnormal.copy(vertex).normalize();\r\n\t\t\t\t\tnormals.push(normal.x, normal.y, normal.z); // uv\r\n\r\n\t\t\t\t\tuvs.push(u + uOffset, 1 - v);\r\n\t\t\t\t\tverticesRow.push(index++);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tgrid.push(verticesRow);\r\n\t\t\t} // indices\r\n\r\n\r\n\t\t\tfor (var _iy = 0; _iy < heightSegments; _iy++) {\r\n\t\t\t\tfor (var _ix = 0; _ix < widthSegments; _ix++) {\r\n\t\t\t\t\tvar a = grid[_iy][_ix + 1];\r\n\t\t\t\t\tvar b = grid[_iy][_ix];\r\n\t\t\t\t\tvar c = grid[_iy + 1][_ix];\r\n\t\t\t\t\tvar d = grid[_iy + 1][_ix + 1];\r\n\t\t\t\t\tif (_iy !== 0 || thetaStart > 0) indices.push(a, b, d);\r\n\t\t\t\t\tif (_iy !== heightSegments - 1 || thetaEnd < Math.PI) indices.push(b, c, d);\r\n\t\t\t\t}\r\n\t\t\t} // build geometry\r\n\r\n\r\n\t\t\t_this.setIndex(indices);\r\n\r\n\t\t\t_this.setAttribute('position', new Float32BufferAttribute(vertices, 3));\r\n\r\n\t\t\t_this.setAttribute('normal', new Float32BufferAttribute(normals, 3));\r\n\r\n\t\t\t_this.setAttribute('uv', new Float32BufferAttribute(uvs, 2));\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn SphereBufferGeometry;\r\n\t}(BufferGeometry);\r\n\r\n\tvar SphereGeometry = /*#__PURE__*/function (_Geometry) {\r\n\t\t_inheritsLoose(SphereGeometry, _Geometry);\r\n\r\n\t\tfunction SphereGeometry(radius, widthSegments, heightSegments, phiStart, phiLength, thetaStart, thetaLength) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\t_this = _Geometry.call(this) || this;\r\n\t\t\t_this.type = 'SphereGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\tradius: radius,\r\n\t\t\t\twidthSegments: widthSegments,\r\n\t\t\t\theightSegments: heightSegments,\r\n\t\t\t\tphiStart: phiStart,\r\n\t\t\t\tphiLength: phiLength,\r\n\t\t\t\tthetaStart: thetaStart,\r\n\t\t\t\tthetaLength: thetaLength\r\n\t\t\t};\r\n\r\n\t\t\t_this.fromBufferGeometry(new SphereBufferGeometry(radius, widthSegments, heightSegments, phiStart, phiLength, thetaStart, thetaLength));\r\n\r\n\t\t\t_this.mergeVertices();\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn SphereGeometry;\r\n\t}(Geometry);\r\n\r\n\tvar TetrahedronBufferGeometry = /*#__PURE__*/function (_PolyhedronBufferGeom) {\r\n\t\t_inheritsLoose(TetrahedronBufferGeometry, _PolyhedronBufferGeom);\r\n\r\n\t\tfunction TetrahedronBufferGeometry(radius, detail) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\tif (radius === void 0) {\r\n\t\t\t\tradius = 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (detail === void 0) {\r\n\t\t\t\tdetail = 0;\r\n\t\t\t}\r\n\r\n\t\t\tvar vertices = [1, 1, 1, -1, -1, 1, -1, 1, -1, 1, -1, -1];\r\n\t\t\tvar indices = [2, 1, 0, 0, 3, 2, 1, 3, 0, 2, 3, 1];\r\n\t\t\t_this = _PolyhedronBufferGeom.call(this, vertices, indices, radius, detail) || this;\r\n\t\t\t_this.type = 'TetrahedronBufferGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\tradius: radius,\r\n\t\t\t\tdetail: detail\r\n\t\t\t};\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn TetrahedronBufferGeometry;\r\n\t}(PolyhedronBufferGeometry);\r\n\r\n\tvar TetrahedronGeometry = /*#__PURE__*/function (_Geometry) {\r\n\t\t_inheritsLoose(TetrahedronGeometry, _Geometry);\r\n\r\n\t\tfunction TetrahedronGeometry(radius, detail) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\t_this = _Geometry.call(this) || this;\r\n\t\t\t_this.type = 'TetrahedronGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\tradius: radius,\r\n\t\t\t\tdetail: detail\r\n\t\t\t};\r\n\r\n\t\t\t_this.fromBufferGeometry(new TetrahedronBufferGeometry(radius, detail));\r\n\r\n\t\t\t_this.mergeVertices();\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn TetrahedronGeometry;\r\n\t}(Geometry);\r\n\r\n\tvar TextBufferGeometry = /*#__PURE__*/function (_ExtrudeBufferGeometr) {\r\n\t\t_inheritsLoose(TextBufferGeometry, _ExtrudeBufferGeometr);\r\n\r\n\t\tfunction TextBufferGeometry(text, parameters) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\tif (parameters === void 0) {\r\n\t\t\t\tparameters = {};\r\n\t\t\t}\r\n\r\n\t\t\tvar font = parameters.font;\r\n\r\n\t\t\tif (!(font && font.isFont)) {\r\n\t\t\t\tconsole.error('THREE.TextGeometry: font parameter is not an instance of THREE.Font.');\r\n\t\t\t\treturn new BufferGeometry() || _assertThisInitialized(_this);\r\n\t\t\t}\r\n\r\n\t\t\tvar shapes = font.generateShapes(text, parameters.size); // translate parameters to ExtrudeGeometry API\r\n\r\n\t\t\tparameters.depth = parameters.height !== undefined ? parameters.height : 50; // defaults\r\n\r\n\t\t\tif (parameters.bevelThickness === undefined) parameters.bevelThickness = 10;\r\n\t\t\tif (parameters.bevelSize === undefined) parameters.bevelSize = 8;\r\n\t\t\tif (parameters.bevelEnabled === undefined) parameters.bevelEnabled = false;\r\n\t\t\t_this = _ExtrudeBufferGeometr.call(this, shapes, parameters) || this;\r\n\t\t\t_this.type = 'TextBufferGeometry';\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn TextBufferGeometry;\r\n\t}(ExtrudeBufferGeometry);\r\n\r\n\tvar TextGeometry = /*#__PURE__*/function (_Geometry) {\r\n\t\t_inheritsLoose(TextGeometry, _Geometry);\r\n\r\n\t\tfunction TextGeometry(text, parameters) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\t_this = _Geometry.call(this) || this;\r\n\t\t\t_this.type = 'TextGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\ttext: text,\r\n\t\t\t\tparameters: parameters\r\n\t\t\t};\r\n\r\n\t\t\t_this.fromBufferGeometry(new TextBufferGeometry(text, parameters));\r\n\r\n\t\t\t_this.mergeVertices();\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn TextGeometry;\r\n\t}(Geometry);\r\n\r\n\tvar TorusBufferGeometry = /*#__PURE__*/function (_BufferGeometry) {\r\n\t\t_inheritsLoose(TorusBufferGeometry, _BufferGeometry);\r\n\r\n\t\tfunction TorusBufferGeometry(radius, tube, radialSegments, tubularSegments, arc) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\tif (radius === void 0) {\r\n\t\t\t\tradius = 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (tube === void 0) {\r\n\t\t\t\ttube = 0.4;\r\n\t\t\t}\r\n\r\n\t\t\tif (radialSegments === void 0) {\r\n\t\t\t\tradialSegments = 8;\r\n\t\t\t}\r\n\r\n\t\t\tif (tubularSegments === void 0) {\r\n\t\t\t\ttubularSegments = 6;\r\n\t\t\t}\r\n\r\n\t\t\tif (arc === void 0) {\r\n\t\t\t\tarc = Math.PI * 2;\r\n\t\t\t}\r\n\r\n\t\t\t_this = _BufferGeometry.call(this) || this;\r\n\t\t\t_this.type = 'TorusBufferGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\tradius: radius,\r\n\t\t\t\ttube: tube,\r\n\t\t\t\tradialSegments: radialSegments,\r\n\t\t\t\ttubularSegments: tubularSegments,\r\n\t\t\t\tarc: arc\r\n\t\t\t};\r\n\t\t\tradialSegments = Math.floor(radialSegments);\r\n\t\t\ttubularSegments = Math.floor(tubularSegments); // buffers\r\n\r\n\t\t\tvar indices = [];\r\n\t\t\tvar vertices = [];\r\n\t\t\tvar normals = [];\r\n\t\t\tvar uvs = []; // helper variables\r\n\r\n\t\t\tvar center = new Vector3();\r\n\t\t\tvar vertex = new Vector3();\r\n\t\t\tvar normal = new Vector3(); // generate vertices, normals and uvs\r\n\r\n\t\t\tfor (var j = 0; j <= radialSegments; j++) {\r\n\t\t\t\tfor (var i = 0; i <= tubularSegments; i++) {\r\n\t\t\t\t\tvar u = i / tubularSegments * arc;\r\n\t\t\t\t\tvar v = j / radialSegments * Math.PI * 2; // vertex\r\n\r\n\t\t\t\t\tvertex.x = (radius + tube * Math.cos(v)) * Math.cos(u);\r\n\t\t\t\t\tvertex.y = (radius + tube * Math.cos(v)) * Math.sin(u);\r\n\t\t\t\t\tvertex.z = tube * Math.sin(v);\r\n\t\t\t\t\tvertices.push(vertex.x, vertex.y, vertex.z); // normal\r\n\r\n\t\t\t\t\tcenter.x = radius * Math.cos(u);\r\n\t\t\t\t\tcenter.y = radius * Math.sin(u);\r\n\t\t\t\t\tnormal.subVectors(vertex, center).normalize();\r\n\t\t\t\t\tnormals.push(normal.x, normal.y, normal.z); // uv\r\n\r\n\t\t\t\t\tuvs.push(i / tubularSegments);\r\n\t\t\t\t\tuvs.push(j / radialSegments);\r\n\t\t\t\t}\r\n\t\t\t} // generate indices\r\n\r\n\r\n\t\t\tfor (var _j = 1; _j <= radialSegments; _j++) {\r\n\t\t\t\tfor (var _i = 1; _i <= tubularSegments; _i++) {\r\n\t\t\t\t\t// indices\r\n\t\t\t\t\tvar a = (tubularSegments + 1) * _j + _i - 1;\r\n\t\t\t\t\tvar b = (tubularSegments + 1) * (_j - 1) + _i - 1;\r\n\t\t\t\t\tvar c = (tubularSegments + 1) * (_j - 1) + _i;\r\n\t\t\t\t\tvar d = (tubularSegments + 1) * _j + _i; // faces\r\n\r\n\t\t\t\t\tindices.push(a, b, d);\r\n\t\t\t\t\tindices.push(b, c, d);\r\n\t\t\t\t}\r\n\t\t\t} // build geometry\r\n\r\n\r\n\t\t\t_this.setIndex(indices);\r\n\r\n\t\t\t_this.setAttribute('position', new Float32BufferAttribute(vertices, 3));\r\n\r\n\t\t\t_this.setAttribute('normal', new Float32BufferAttribute(normals, 3));\r\n\r\n\t\t\t_this.setAttribute('uv', new Float32BufferAttribute(uvs, 2));\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn TorusBufferGeometry;\r\n\t}(BufferGeometry);\r\n\r\n\tvar TorusGeometry = /*#__PURE__*/function (_Geometry) {\r\n\t\t_inheritsLoose(TorusGeometry, _Geometry);\r\n\r\n\t\tfunction TorusGeometry(radius, tube, radialSegments, tubularSegments, arc) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\t_this = _Geometry.call(this) || this;\r\n\t\t\t_this.type = 'TorusGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\tradius: radius,\r\n\t\t\t\ttube: tube,\r\n\t\t\t\tradialSegments: radialSegments,\r\n\t\t\t\ttubularSegments: tubularSegments,\r\n\t\t\t\tarc: arc\r\n\t\t\t};\r\n\r\n\t\t\t_this.fromBufferGeometry(new TorusBufferGeometry(radius, tube, radialSegments, tubularSegments, arc));\r\n\r\n\t\t\t_this.mergeVertices();\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn TorusGeometry;\r\n\t}(Geometry);\r\n\r\n\tvar TorusKnotBufferGeometry = /*#__PURE__*/function (_BufferGeometry) {\r\n\t\t_inheritsLoose(TorusKnotBufferGeometry, _BufferGeometry);\r\n\r\n\t\tfunction TorusKnotBufferGeometry(radius, tube, tubularSegments, radialSegments, p, q) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\tif (radius === void 0) {\r\n\t\t\t\tradius = 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (tube === void 0) {\r\n\t\t\t\ttube = 0.4;\r\n\t\t\t}\r\n\r\n\t\t\tif (tubularSegments === void 0) {\r\n\t\t\t\ttubularSegments = 64;\r\n\t\t\t}\r\n\r\n\t\t\tif (radialSegments === void 0) {\r\n\t\t\t\tradialSegments = 8;\r\n\t\t\t}\r\n\r\n\t\t\tif (p === void 0) {\r\n\t\t\t\tp = 2;\r\n\t\t\t}\r\n\r\n\t\t\tif (q === void 0) {\r\n\t\t\t\tq = 3;\r\n\t\t\t}\r\n\r\n\t\t\t_this = _BufferGeometry.call(this) || this;\r\n\t\t\t_this.type = 'TorusKnotBufferGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\tradius: radius,\r\n\t\t\t\ttube: tube,\r\n\t\t\t\ttubularSegments: tubularSegments,\r\n\t\t\t\tradialSegments: radialSegments,\r\n\t\t\t\tp: p,\r\n\t\t\t\tq: q\r\n\t\t\t};\r\n\t\t\ttubularSegments = Math.floor(tubularSegments);\r\n\t\t\tradialSegments = Math.floor(radialSegments); // buffers\r\n\r\n\t\t\tvar indices = [];\r\n\t\t\tvar vertices = [];\r\n\t\t\tvar normals = [];\r\n\t\t\tvar uvs = []; // helper variables\r\n\r\n\t\t\tvar vertex = new Vector3();\r\n\t\t\tvar normal = new Vector3();\r\n\t\t\tvar P1 = new Vector3();\r\n\t\t\tvar P2 = new Vector3();\r\n\t\t\tvar B = new Vector3();\r\n\t\t\tvar T = new Vector3();\r\n\t\t\tvar N = new Vector3(); // generate vertices, normals and uvs\r\n\r\n\t\t\tfor (var i = 0; i <= tubularSegments; ++i) {\r\n\t\t\t\t// the radian \"u\" is used to calculate the position on the torus curve of the current tubular segement\r\n\t\t\t\tvar u = i / tubularSegments * p * Math.PI * 2; // now we calculate two points. P1 is our current position on the curve, P2 is a little farther ahead.\r\n\t\t\t\t// these points are used to create a special \"coordinate space\", which is necessary to calculate the correct vertex positions\r\n\r\n\t\t\t\tcalculatePositionOnCurve(u, p, q, radius, P1);\r\n\t\t\t\tcalculatePositionOnCurve(u + 0.01, p, q, radius, P2); // calculate orthonormal basis\r\n\r\n\t\t\t\tT.subVectors(P2, P1);\r\n\t\t\t\tN.addVectors(P2, P1);\r\n\t\t\t\tB.crossVectors(T, N);\r\n\t\t\t\tN.crossVectors(B, T); // normalize B, N. T can be ignored, we don't use it\r\n\r\n\t\t\t\tB.normalize();\r\n\t\t\t\tN.normalize();\r\n\r\n\t\t\t\tfor (var j = 0; j <= radialSegments; ++j) {\r\n\t\t\t\t\t// now calculate the vertices. they are nothing more than an extrusion of the torus curve.\r\n\t\t\t\t\t// because we extrude a shape in the xy-plane, there is no need to calculate a z-value.\r\n\t\t\t\t\tvar v = j / radialSegments * Math.PI * 2;\r\n\t\t\t\t\tvar cx = -tube * Math.cos(v);\r\n\t\t\t\t\tvar cy = tube * Math.sin(v); // now calculate the final vertex position.\r\n\t\t\t\t\t// first we orient the extrusion with our basis vectos, then we add it to the current position on the curve\r\n\r\n\t\t\t\t\tvertex.x = P1.x + (cx * N.x + cy * B.x);\r\n\t\t\t\t\tvertex.y = P1.y + (cx * N.y + cy * B.y);\r\n\t\t\t\t\tvertex.z = P1.z + (cx * N.z + cy * B.z);\r\n\t\t\t\t\tvertices.push(vertex.x, vertex.y, vertex.z); // normal (P1 is always the center/origin of the extrusion, thus we can use it to calculate the normal)\r\n\r\n\t\t\t\t\tnormal.subVectors(vertex, P1).normalize();\r\n\t\t\t\t\tnormals.push(normal.x, normal.y, normal.z); // uv\r\n\r\n\t\t\t\t\tuvs.push(i / tubularSegments);\r\n\t\t\t\t\tuvs.push(j / radialSegments);\r\n\t\t\t\t}\r\n\t\t\t} // generate indices\r\n\r\n\r\n\t\t\tfor (var _j = 1; _j <= tubularSegments; _j++) {\r\n\t\t\t\tfor (var _i = 1; _i <= radialSegments; _i++) {\r\n\t\t\t\t\t// indices\r\n\t\t\t\t\tvar a = (radialSegments + 1) * (_j - 1) + (_i - 1);\r\n\t\t\t\t\tvar b = (radialSegments + 1) * _j + (_i - 1);\r\n\t\t\t\t\tvar c = (radialSegments + 1) * _j + _i;\r\n\t\t\t\t\tvar d = (radialSegments + 1) * (_j - 1) + _i; // faces\r\n\r\n\t\t\t\t\tindices.push(a, b, d);\r\n\t\t\t\t\tindices.push(b, c, d);\r\n\t\t\t\t}\r\n\t\t\t} // build geometry\r\n\r\n\r\n\t\t\t_this.setIndex(indices);\r\n\r\n\t\t\t_this.setAttribute('position', new Float32BufferAttribute(vertices, 3));\r\n\r\n\t\t\t_this.setAttribute('normal', new Float32BufferAttribute(normals, 3));\r\n\r\n\t\t\t_this.setAttribute('uv', new Float32BufferAttribute(uvs, 2)); // this function calculates the current position on the torus curve\r\n\r\n\r\n\t\t\tfunction calculatePositionOnCurve(u, p, q, radius, position) {\r\n\t\t\t\tvar cu = Math.cos(u);\r\n\t\t\t\tvar su = Math.sin(u);\r\n\t\t\t\tvar quOverP = q / p * u;\r\n\t\t\t\tvar cs = Math.cos(quOverP);\r\n\t\t\t\tposition.x = radius * (2 + cs) * 0.5 * cu;\r\n\t\t\t\tposition.y = radius * (2 + cs) * su * 0.5;\r\n\t\t\t\tposition.z = radius * Math.sin(quOverP) * 0.5;\r\n\t\t\t}\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn TorusKnotBufferGeometry;\r\n\t}(BufferGeometry);\r\n\r\n\tvar TorusKnotGeometry = /*#__PURE__*/function (_Geometry) {\r\n\t\t_inheritsLoose(TorusKnotGeometry, _Geometry);\r\n\r\n\t\tfunction TorusKnotGeometry(radius, tube, tubularSegments, radialSegments, p, q, heightScale) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\t_this = _Geometry.call(this) || this;\r\n\t\t\t_this.type = 'TorusKnotGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\tradius: radius,\r\n\t\t\t\ttube: tube,\r\n\t\t\t\ttubularSegments: tubularSegments,\r\n\t\t\t\tradialSegments: radialSegments,\r\n\t\t\t\tp: p,\r\n\t\t\t\tq: q\r\n\t\t\t};\r\n\t\t\tif (heightScale !== undefined) console.warn('THREE.TorusKnotGeometry: heightScale has been deprecated. Use .scale( x, y, z ) instead.');\r\n\r\n\t\t\t_this.fromBufferGeometry(new TorusKnotBufferGeometry(radius, tube, tubularSegments, radialSegments, p, q));\r\n\r\n\t\t\t_this.mergeVertices();\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn TorusKnotGeometry;\r\n\t}(Geometry);\r\n\r\n\tvar TubeBufferGeometry = /*#__PURE__*/function (_BufferGeometry) {\r\n\t\t_inheritsLoose(TubeBufferGeometry, _BufferGeometry);\r\n\r\n\t\tfunction TubeBufferGeometry(path, tubularSegments, radius, radialSegments, closed) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\tif (tubularSegments === void 0) {\r\n\t\t\t\ttubularSegments = 64;\r\n\t\t\t}\r\n\r\n\t\t\tif (radius === void 0) {\r\n\t\t\t\tradius = 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (radialSegments === void 0) {\r\n\t\t\t\tradialSegments = 8;\r\n\t\t\t}\r\n\r\n\t\t\tif (closed === void 0) {\r\n\t\t\t\tclosed = false;\r\n\t\t\t}\r\n\r\n\t\t\t_this = _BufferGeometry.call(this) || this;\r\n\t\t\t_this.type = 'TubeBufferGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\tpath: path,\r\n\t\t\t\ttubularSegments: tubularSegments,\r\n\t\t\t\tradius: radius,\r\n\t\t\t\tradialSegments: radialSegments,\r\n\t\t\t\tclosed: closed\r\n\t\t\t};\r\n\t\t\tvar frames = path.computeFrenetFrames(tubularSegments, closed); // expose internals\r\n\r\n\t\t\t_this.tangents = frames.tangents;\r\n\t\t\t_this.normals = frames.normals;\r\n\t\t\t_this.binormals = frames.binormals; // helper variables\r\n\r\n\t\t\tvar vertex = new Vector3();\r\n\t\t\tvar normal = new Vector3();\r\n\t\t\tvar uv = new Vector2();\r\n\t\t\tvar P = new Vector3(); // buffer\r\n\r\n\t\t\tvar vertices = [];\r\n\t\t\tvar normals = [];\r\n\t\t\tvar uvs = [];\r\n\t\t\tvar indices = []; // create buffer data\r\n\r\n\t\t\tgenerateBufferData(); // build geometry\r\n\r\n\t\t\t_this.setIndex(indices);\r\n\r\n\t\t\t_this.setAttribute('position', new Float32BufferAttribute(vertices, 3));\r\n\r\n\t\t\t_this.setAttribute('normal', new Float32BufferAttribute(normals, 3));\r\n\r\n\t\t\t_this.setAttribute('uv', new Float32BufferAttribute(uvs, 2)); // functions\r\n\r\n\r\n\t\t\tfunction generateBufferData() {\r\n\t\t\t\tfor (var i = 0; i < tubularSegments; i++) {\r\n\t\t\t\t\tgenerateSegment(i);\r\n\t\t\t\t} // if the geometry is not closed, generate the last row of vertices and normals\r\n\t\t\t\t// at the regular position on the given path\r\n\t\t\t\t//\r\n\t\t\t\t// if the geometry is closed, duplicate the first row of vertices and normals (uvs will differ)\r\n\r\n\r\n\t\t\t\tgenerateSegment(closed === false ? tubularSegments : 0); // uvs are generated in a separate function.\r\n\t\t\t\t// this makes it easy compute correct values for closed geometries\r\n\r\n\t\t\t\tgenerateUVs(); // finally create faces\r\n\r\n\t\t\t\tgenerateIndices();\r\n\t\t\t}\r\n\r\n\t\t\tfunction generateSegment(i) {\r\n\t\t\t\t// we use getPointAt to sample evenly distributed points from the given path\r\n\t\t\t\tP = path.getPointAt(i / tubularSegments, P); // retrieve corresponding normal and binormal\r\n\r\n\t\t\t\tvar N = frames.normals[i];\r\n\t\t\t\tvar B = frames.binormals[i]; // generate normals and vertices for the current segment\r\n\r\n\t\t\t\tfor (var j = 0; j <= radialSegments; j++) {\r\n\t\t\t\t\tvar v = j / radialSegments * Math.PI * 2;\r\n\t\t\t\t\tvar sin = Math.sin(v);\r\n\t\t\t\t\tvar cos = -Math.cos(v); // normal\r\n\r\n\t\t\t\t\tnormal.x = cos * N.x + sin * B.x;\r\n\t\t\t\t\tnormal.y = cos * N.y + sin * B.y;\r\n\t\t\t\t\tnormal.z = cos * N.z + sin * B.z;\r\n\t\t\t\t\tnormal.normalize();\r\n\t\t\t\t\tnormals.push(normal.x, normal.y, normal.z); // vertex\r\n\r\n\t\t\t\t\tvertex.x = P.x + radius * normal.x;\r\n\t\t\t\t\tvertex.y = P.y + radius * normal.y;\r\n\t\t\t\t\tvertex.z = P.z + radius * normal.z;\r\n\t\t\t\t\tvertices.push(vertex.x, vertex.y, vertex.z);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction generateIndices() {\r\n\t\t\t\tfor (var j = 1; j <= tubularSegments; j++) {\r\n\t\t\t\t\tfor (var i = 1; i <= radialSegments; i++) {\r\n\t\t\t\t\t\tvar a = (radialSegments + 1) * (j - 1) + (i - 1);\r\n\t\t\t\t\t\tvar b = (radialSegments + 1) * j + (i - 1);\r\n\t\t\t\t\t\tvar c = (radialSegments + 1) * j + i;\r\n\t\t\t\t\t\tvar d = (radialSegments + 1) * (j - 1) + i; // faces\r\n\r\n\t\t\t\t\t\tindices.push(a, b, d);\r\n\t\t\t\t\t\tindices.push(b, c, d);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction generateUVs() {\r\n\t\t\t\tfor (var i = 0; i <= tubularSegments; i++) {\r\n\t\t\t\t\tfor (var j = 0; j <= radialSegments; j++) {\r\n\t\t\t\t\t\tuv.x = i / tubularSegments;\r\n\t\t\t\t\t\tuv.y = j / radialSegments;\r\n\t\t\t\t\t\tuvs.push(uv.x, uv.y);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\tvar _proto = TubeBufferGeometry.prototype;\r\n\r\n\t\t_proto.toJSON = function toJSON() {\r\n\t\t\tvar data = BufferGeometry.prototype.toJSON.call(this);\r\n\t\t\tdata.path = this.parameters.path.toJSON();\r\n\t\t\treturn data;\r\n\t\t};\r\n\r\n\t\treturn TubeBufferGeometry;\r\n\t}(BufferGeometry);\r\n\r\n\tvar TubeGeometry = /*#__PURE__*/function (_Geometry) {\r\n\t\t_inheritsLoose(TubeGeometry, _Geometry);\r\n\r\n\t\tfunction TubeGeometry(path, tubularSegments, radius, radialSegments, closed, taper) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\t_this = _Geometry.call(this) || this;\r\n\t\t\t_this.type = 'TubeGeometry';\r\n\t\t\t_this.parameters = {\r\n\t\t\t\tpath: path,\r\n\t\t\t\ttubularSegments: tubularSegments,\r\n\t\t\t\tradius: radius,\r\n\t\t\t\tradialSegments: radialSegments,\r\n\t\t\t\tclosed: closed\r\n\t\t\t};\r\n\t\t\tif (taper !== undefined) console.warn('THREE.TubeGeometry: taper has been removed.');\r\n\t\t\tvar bufferGeometry = new TubeBufferGeometry(path, tubularSegments, radius, radialSegments, closed); // expose internals\r\n\r\n\t\t\t_this.tangents = bufferGeometry.tangents;\r\n\t\t\t_this.normals = bufferGeometry.normals;\r\n\t\t\t_this.binormals = bufferGeometry.binormals; // create geometry\r\n\r\n\t\t\t_this.fromBufferGeometry(bufferGeometry);\r\n\r\n\t\t\t_this.mergeVertices();\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn TubeGeometry;\r\n\t}(Geometry);\r\n\r\n\tvar WireframeGeometry = /*#__PURE__*/function (_BufferGeometry) {\r\n\t\t_inheritsLoose(WireframeGeometry, _BufferGeometry);\r\n\r\n\t\tfunction WireframeGeometry(geometry) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\t_this = _BufferGeometry.call(this) || this;\r\n\t\t\t_this.type = 'WireframeGeometry'; // buffer\r\n\r\n\t\t\tvar vertices = []; // helper variables\r\n\r\n\t\t\tvar edge = [0, 0],\r\n\t\t\t\t\tedges = {};\r\n\t\t\tvar keys = ['a', 'b', 'c']; // different logic for Geometry and BufferGeometry\r\n\r\n\t\t\tif (geometry && geometry.isGeometry) {\r\n\t\t\t\t// create a data structure that contains all edges without duplicates\r\n\t\t\t\tvar faces = geometry.faces;\r\n\r\n\t\t\t\tfor (var i = 0, l = faces.length; i < l; i++) {\r\n\t\t\t\t\tvar face = faces[i];\r\n\r\n\t\t\t\t\tfor (var j = 0; j < 3; j++) {\r\n\t\t\t\t\t\tvar edge1 = face[keys[j]];\r\n\t\t\t\t\t\tvar edge2 = face[keys[(j + 1) % 3]];\r\n\t\t\t\t\t\tedge[0] = Math.min(edge1, edge2); // sorting prevents duplicates\r\n\r\n\t\t\t\t\t\tedge[1] = Math.max(edge1, edge2);\r\n\t\t\t\t\t\tvar key = edge[0] + ',' + edge[1];\r\n\r\n\t\t\t\t\t\tif (edges[key] === undefined) {\r\n\t\t\t\t\t\t\tedges[key] = {\r\n\t\t\t\t\t\t\t\tindex1: edge[0],\r\n\t\t\t\t\t\t\t\tindex2: edge[1]\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} // generate vertices\r\n\r\n\r\n\t\t\t\tfor (var _key in edges) {\r\n\t\t\t\t\tvar e = edges[_key];\r\n\t\t\t\t\tvar vertex = geometry.vertices[e.index1];\r\n\t\t\t\t\tvertices.push(vertex.x, vertex.y, vertex.z);\r\n\t\t\t\t\tvertex = geometry.vertices[e.index2];\r\n\t\t\t\t\tvertices.push(vertex.x, vertex.y, vertex.z);\r\n\t\t\t\t}\r\n\t\t\t} else if (geometry && geometry.isBufferGeometry) {\r\n\t\t\t\tvar _vertex = new Vector3();\r\n\r\n\t\t\t\tif (geometry.index !== null) {\r\n\t\t\t\t\t// indexed BufferGeometry\r\n\t\t\t\t\tvar position = geometry.attributes.position;\r\n\t\t\t\t\tvar indices = geometry.index;\r\n\t\t\t\t\tvar groups = geometry.groups;\r\n\r\n\t\t\t\t\tif (groups.length === 0) {\r\n\t\t\t\t\t\tgroups = [{\r\n\t\t\t\t\t\t\tstart: 0,\r\n\t\t\t\t\t\t\tcount: indices.count,\r\n\t\t\t\t\t\t\tmaterialIndex: 0\r\n\t\t\t\t\t\t}];\r\n\t\t\t\t\t} // create a data structure that contains all eges without duplicates\r\n\r\n\r\n\t\t\t\t\tfor (var o = 0, ol = groups.length; o < ol; ++o) {\r\n\t\t\t\t\t\tvar group = groups[o];\r\n\t\t\t\t\t\tvar start = group.start;\r\n\t\t\t\t\t\tvar count = group.count;\r\n\r\n\t\t\t\t\t\tfor (var _i = start, _l = start + count; _i < _l; _i += 3) {\r\n\t\t\t\t\t\t\tfor (var _j = 0; _j < 3; _j++) {\r\n\t\t\t\t\t\t\t\tvar _edge = indices.getX(_i + _j);\r\n\r\n\t\t\t\t\t\t\t\tvar _edge2 = indices.getX(_i + (_j + 1) % 3);\r\n\r\n\t\t\t\t\t\t\t\tedge[0] = Math.min(_edge, _edge2); // sorting prevents duplicates\r\n\r\n\t\t\t\t\t\t\t\tedge[1] = Math.max(_edge, _edge2);\r\n\r\n\t\t\t\t\t\t\t\tvar _key2 = edge[0] + ',' + edge[1];\r\n\r\n\t\t\t\t\t\t\t\tif (edges[_key2] === undefined) {\r\n\t\t\t\t\t\t\t\t\tedges[_key2] = {\r\n\t\t\t\t\t\t\t\t\t\tindex1: edge[0],\r\n\t\t\t\t\t\t\t\t\t\tindex2: edge[1]\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} // generate vertices\r\n\r\n\r\n\t\t\t\t\tfor (var _key3 in edges) {\r\n\t\t\t\t\t\tvar _e = edges[_key3];\r\n\r\n\t\t\t\t\t\t_vertex.fromBufferAttribute(position, _e.index1);\r\n\r\n\t\t\t\t\t\tvertices.push(_vertex.x, _vertex.y, _vertex.z);\r\n\r\n\t\t\t\t\t\t_vertex.fromBufferAttribute(position, _e.index2);\r\n\r\n\t\t\t\t\t\tvertices.push(_vertex.x, _vertex.y, _vertex.z);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// non-indexed BufferGeometry\r\n\t\t\t\t\tvar _position = geometry.attributes.position;\r\n\r\n\t\t\t\t\tfor (var _i2 = 0, _l2 = _position.count / 3; _i2 < _l2; _i2++) {\r\n\t\t\t\t\t\tfor (var _j2 = 0; _j2 < 3; _j2++) {\r\n\t\t\t\t\t\t\t// three edges per triangle, an edge is represented as (index1, index2)\r\n\t\t\t\t\t\t\t// e.g. the first triangle has the following edges: (0,1),(1,2),(2,0)\r\n\t\t\t\t\t\t\tvar index1 = 3 * _i2 + _j2;\r\n\r\n\t\t\t\t\t\t\t_vertex.fromBufferAttribute(_position, index1);\r\n\r\n\t\t\t\t\t\t\tvertices.push(_vertex.x, _vertex.y, _vertex.z);\r\n\t\t\t\t\t\t\tvar index2 = 3 * _i2 + (_j2 + 1) % 3;\r\n\r\n\t\t\t\t\t\t\t_vertex.fromBufferAttribute(_position, index2);\r\n\r\n\t\t\t\t\t\t\tvertices.push(_vertex.x, _vertex.y, _vertex.z);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} // build geometry\r\n\r\n\r\n\t\t\t_this.setAttribute('position', new Float32BufferAttribute(vertices, 3));\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn WireframeGeometry;\r\n\t}(BufferGeometry);\r\n\r\n\tvar Geometries = /*#__PURE__*/Object.freeze({\r\n\t\t__proto__: null,\r\n\t\tBoxGeometry: BoxGeometry,\r\n\t\tBoxBufferGeometry: BoxBufferGeometry,\r\n\t\tCircleGeometry: CircleGeometry,\r\n\t\tCircleBufferGeometry: CircleBufferGeometry,\r\n\t\tConeGeometry: ConeGeometry,\r\n\t\tConeBufferGeometry: ConeBufferGeometry,\r\n\t\tCylinderGeometry: CylinderGeometry,\r\n\t\tCylinderBufferGeometry: CylinderBufferGeometry,\r\n\t\tDodecahedronGeometry: DodecahedronGeometry,\r\n\t\tDodecahedronBufferGeometry: DodecahedronBufferGeometry,\r\n\t\tEdgesGeometry: EdgesGeometry,\r\n\t\tExtrudeGeometry: ExtrudeGeometry,\r\n\t\tExtrudeBufferGeometry: ExtrudeBufferGeometry,\r\n\t\tIcosahedronGeometry: IcosahedronGeometry,\r\n\t\tIcosahedronBufferGeometry: IcosahedronBufferGeometry,\r\n\t\tLatheGeometry: LatheGeometry,\r\n\t\tLatheBufferGeometry: LatheBufferGeometry,\r\n\t\tOctahedronGeometry: OctahedronGeometry,\r\n\t\tOctahedronBufferGeometry: OctahedronBufferGeometry,\r\n\t\tParametricGeometry: ParametricGeometry,\r\n\t\tParametricBufferGeometry: ParametricBufferGeometry,\r\n\t\tPlaneGeometry: PlaneGeometry,\r\n\t\tPlaneBufferGeometry: PlaneBufferGeometry,\r\n\t\tPolyhedronGeometry: PolyhedronGeometry,\r\n\t\tPolyhedronBufferGeometry: PolyhedronBufferGeometry,\r\n\t\tRingGeometry: RingGeometry,\r\n\t\tRingBufferGeometry: RingBufferGeometry,\r\n\t\tShapeGeometry: ShapeGeometry,\r\n\t\tShapeBufferGeometry: ShapeBufferGeometry,\r\n\t\tSphereGeometry: SphereGeometry,\r\n\t\tSphereBufferGeometry: SphereBufferGeometry,\r\n\t\tTetrahedronGeometry: TetrahedronGeometry,\r\n\t\tTetrahedronBufferGeometry: TetrahedronBufferGeometry,\r\n\t\tTextGeometry: TextGeometry,\r\n\t\tTextBufferGeometry: TextBufferGeometry,\r\n\t\tTorusGeometry: TorusGeometry,\r\n\t\tTorusBufferGeometry: TorusBufferGeometry,\r\n\t\tTorusKnotGeometry: TorusKnotGeometry,\r\n\t\tTorusKnotBufferGeometry: TorusKnotBufferGeometry,\r\n\t\tTubeGeometry: TubeGeometry,\r\n\t\tTubeBufferGeometry: TubeBufferGeometry,\r\n\t\tWireframeGeometry: WireframeGeometry\r\n\t});\r\n\r\n\t/**\r\n\t * parameters = {\r\n\t *\tcolor: \r\n\t * }\r\n\t */\r\n\r\n\tfunction ShadowMaterial(parameters) {\r\n\t\tMaterial.call(this);\r\n\t\tthis.type = 'ShadowMaterial';\r\n\t\tthis.color = new Color(0x000000);\r\n\t\tthis.transparent = true;\r\n\t\tthis.setValues(parameters);\r\n\t}\r\n\r\n\tShadowMaterial.prototype = Object.create(Material.prototype);\r\n\tShadowMaterial.prototype.constructor = ShadowMaterial;\r\n\tShadowMaterial.prototype.isShadowMaterial = true;\r\n\r\n\tShadowMaterial.prototype.copy = function (source) {\r\n\t\tMaterial.prototype.copy.call(this, source);\r\n\t\tthis.color.copy(source.color);\r\n\t\treturn this;\r\n\t};\r\n\r\n\tfunction RawShaderMaterial(parameters) {\r\n\t\tShaderMaterial.call(this, parameters);\r\n\t\tthis.type = 'RawShaderMaterial';\r\n\t}\r\n\r\n\tRawShaderMaterial.prototype = Object.create(ShaderMaterial.prototype);\r\n\tRawShaderMaterial.prototype.constructor = RawShaderMaterial;\r\n\tRawShaderMaterial.prototype.isRawShaderMaterial = true;\r\n\r\n\t/**\r\n\t * parameters = {\r\n\t *\tcolor: ,\r\n\t *\troughness: ,\r\n\t *\tmetalness: ,\r\n\t *\topacity: ,\r\n\t *\r\n\t *\tmap: new THREE.Texture( ),\r\n\t *\r\n\t *\tlightMap: new THREE.Texture( ),\r\n\t *\tlightMapIntensity: \r\n\t *\r\n\t *\taoMap: new THREE.Texture( ),\r\n\t *\taoMapIntensity: \r\n\t *\r\n\t *\temissive: ,\r\n\t *\temissiveIntensity: \r\n\t *\temissiveMap: new THREE.Texture( ),\r\n\t *\r\n\t *\tbumpMap: new THREE.Texture( ),\r\n\t *\tbumpScale: ,\r\n\t *\r\n\t *\tnormalMap: new THREE.Texture( ),\r\n\t *\tnormalMapType: THREE.TangentSpaceNormalMap,\r\n\t *\tnormalScale: ,\r\n\t *\r\n\t *\tdisplacementMap: new THREE.Texture( ),\r\n\t *\tdisplacementScale: ,\r\n\t *\tdisplacementBias: ,\r\n\t *\r\n\t *\troughnessMap: new THREE.Texture( ),\r\n\t *\r\n\t *\tmetalnessMap: new THREE.Texture( ),\r\n\t *\r\n\t *\talphaMap: new THREE.Texture( ),\r\n\t *\r\n\t *\tenvMap: new THREE.CubeTexture( [posx, negx, posy, negy, posz, negz] ),\r\n\t *\tenvMapIntensity: \r\n\t *\r\n\t *\trefractionRatio: ,\r\n\t *\r\n\t *\twireframe: ,\r\n\t *\twireframeLinewidth: ,\r\n\t *\r\n\t *\tskinning: ,\r\n\t *\tmorphTargets: ,\r\n\t *\tmorphNormals: \r\n\t * }\r\n\t */\r\n\r\n\tfunction MeshStandardMaterial(parameters) {\r\n\t\tMaterial.call(this);\r\n\t\tthis.defines = {\r\n\t\t\t'STANDARD': ''\r\n\t\t};\r\n\t\tthis.type = 'MeshStandardMaterial';\r\n\t\tthis.color = new Color(0xffffff); // diffuse\r\n\r\n\t\tthis.roughness = 1.0;\r\n\t\tthis.metalness = 0.0;\r\n\t\tthis.map = null;\r\n\t\tthis.lightMap = null;\r\n\t\tthis.lightMapIntensity = 1.0;\r\n\t\tthis.aoMap = null;\r\n\t\tthis.aoMapIntensity = 1.0;\r\n\t\tthis.emissive = new Color(0x000000);\r\n\t\tthis.emissiveIntensity = 1.0;\r\n\t\tthis.emissiveMap = null;\r\n\t\tthis.bumpMap = null;\r\n\t\tthis.bumpScale = 1;\r\n\t\tthis.normalMap = null;\r\n\t\tthis.normalMapType = TangentSpaceNormalMap;\r\n\t\tthis.normalScale = new Vector2(1, 1);\r\n\t\tthis.displacementMap = null;\r\n\t\tthis.displacementScale = 1;\r\n\t\tthis.displacementBias = 0;\r\n\t\tthis.roughnessMap = null;\r\n\t\tthis.metalnessMap = null;\r\n\t\tthis.alphaMap = null;\r\n\t\tthis.envMap = null;\r\n\t\tthis.envMapIntensity = 1.0;\r\n\t\tthis.refractionRatio = 0.98;\r\n\t\tthis.wireframe = false;\r\n\t\tthis.wireframeLinewidth = 1;\r\n\t\tthis.wireframeLinecap = 'round';\r\n\t\tthis.wireframeLinejoin = 'round';\r\n\t\tthis.skinning = false;\r\n\t\tthis.morphTargets = false;\r\n\t\tthis.morphNormals = false;\r\n\t\tthis.vertexTangents = false;\r\n\t\tthis.setValues(parameters);\r\n\t}\r\n\r\n\tMeshStandardMaterial.prototype = Object.create(Material.prototype);\r\n\tMeshStandardMaterial.prototype.constructor = MeshStandardMaterial;\r\n\tMeshStandardMaterial.prototype.isMeshStandardMaterial = true;\r\n\r\n\tMeshStandardMaterial.prototype.copy = function (source) {\r\n\t\tMaterial.prototype.copy.call(this, source);\r\n\t\tthis.defines = {\r\n\t\t\t'STANDARD': ''\r\n\t\t};\r\n\t\tthis.color.copy(source.color);\r\n\t\tthis.roughness = source.roughness;\r\n\t\tthis.metalness = source.metalness;\r\n\t\tthis.map = source.map;\r\n\t\tthis.lightMap = source.lightMap;\r\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\r\n\t\tthis.aoMap = source.aoMap;\r\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\r\n\t\tthis.emissive.copy(source.emissive);\r\n\t\tthis.emissiveMap = source.emissiveMap;\r\n\t\tthis.emissiveIntensity = source.emissiveIntensity;\r\n\t\tthis.bumpMap = source.bumpMap;\r\n\t\tthis.bumpScale = source.bumpScale;\r\n\t\tthis.normalMap = source.normalMap;\r\n\t\tthis.normalMapType = source.normalMapType;\r\n\t\tthis.normalScale.copy(source.normalScale);\r\n\t\tthis.displacementMap = source.displacementMap;\r\n\t\tthis.displacementScale = source.displacementScale;\r\n\t\tthis.displacementBias = source.displacementBias;\r\n\t\tthis.roughnessMap = source.roughnessMap;\r\n\t\tthis.metalnessMap = source.metalnessMap;\r\n\t\tthis.alphaMap = source.alphaMap;\r\n\t\tthis.envMap = source.envMap;\r\n\t\tthis.envMapIntensity = source.envMapIntensity;\r\n\t\tthis.refractionRatio = source.refractionRatio;\r\n\t\tthis.wireframe = source.wireframe;\r\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\r\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\r\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\r\n\t\tthis.skinning = source.skinning;\r\n\t\tthis.morphTargets = source.morphTargets;\r\n\t\tthis.morphNormals = source.morphNormals;\r\n\t\tthis.vertexTangents = source.vertexTangents;\r\n\t\treturn this;\r\n\t};\r\n\r\n\t/**\r\n\t * parameters = {\r\n\t *\tclearcoat: ,\r\n\t *\tclearcoatMap: new THREE.Texture( ),\r\n\t *\tclearcoatRoughness: ,\r\n\t *\tclearcoatRoughnessMap: new THREE.Texture( ),\r\n\t *\tclearcoatNormalScale: ,\r\n\t *\tclearcoatNormalMap: new THREE.Texture( ),\r\n\t *\r\n\t *\treflectivity: ,\r\n\t *\tior: ,\r\n\t *\r\n\t *\tsheen: ,\r\n\t *\r\n\t *\ttransmission: ,\r\n\t *\ttransmissionMap: new THREE.Texture( )\r\n\t * }\r\n\t */\r\n\r\n\tfunction MeshPhysicalMaterial(parameters) {\r\n\t\tMeshStandardMaterial.call(this);\r\n\t\tthis.defines = {\r\n\t\t\t'STANDARD': '',\r\n\t\t\t'PHYSICAL': ''\r\n\t\t};\r\n\t\tthis.type = 'MeshPhysicalMaterial';\r\n\t\tthis.clearcoat = 0.0;\r\n\t\tthis.clearcoatMap = null;\r\n\t\tthis.clearcoatRoughness = 0.0;\r\n\t\tthis.clearcoatRoughnessMap = null;\r\n\t\tthis.clearcoatNormalScale = new Vector2(1, 1);\r\n\t\tthis.clearcoatNormalMap = null;\r\n\t\tthis.reflectivity = 0.5; // maps to F0 = 0.04\r\n\r\n\t\tObject.defineProperty(this, 'ior', {\r\n\t\t\tget: function get() {\r\n\t\t\t\treturn (1 + 0.4 * this.reflectivity) / (1 - 0.4 * this.reflectivity);\r\n\t\t\t},\r\n\t\t\tset: function set(ior) {\r\n\t\t\t\tthis.reflectivity = MathUtils.clamp(2.5 * (ior - 1) / (ior + 1), 0, 1);\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.sheen = null; // null will disable sheen bsdf\r\n\r\n\t\tthis.transmission = 0.0;\r\n\t\tthis.transmissionMap = null;\r\n\t\tthis.setValues(parameters);\r\n\t}\r\n\r\n\tMeshPhysicalMaterial.prototype = Object.create(MeshStandardMaterial.prototype);\r\n\tMeshPhysicalMaterial.prototype.constructor = MeshPhysicalMaterial;\r\n\tMeshPhysicalMaterial.prototype.isMeshPhysicalMaterial = true;\r\n\r\n\tMeshPhysicalMaterial.prototype.copy = function (source) {\r\n\t\tMeshStandardMaterial.prototype.copy.call(this, source);\r\n\t\tthis.defines = {\r\n\t\t\t'STANDARD': '',\r\n\t\t\t'PHYSICAL': ''\r\n\t\t};\r\n\t\tthis.clearcoat = source.clearcoat;\r\n\t\tthis.clearcoatMap = source.clearcoatMap;\r\n\t\tthis.clearcoatRoughness = source.clearcoatRoughness;\r\n\t\tthis.clearcoatRoughnessMap = source.clearcoatRoughnessMap;\r\n\t\tthis.clearcoatNormalMap = source.clearcoatNormalMap;\r\n\t\tthis.clearcoatNormalScale.copy(source.clearcoatNormalScale);\r\n\t\tthis.reflectivity = source.reflectivity;\r\n\r\n\t\tif (source.sheen) {\r\n\t\t\tthis.sheen = (this.sheen || new Color()).copy(source.sheen);\r\n\t\t} else {\r\n\t\t\tthis.sheen = null;\r\n\t\t}\r\n\r\n\t\tthis.transmission = source.transmission;\r\n\t\tthis.transmissionMap = source.transmissionMap;\r\n\t\treturn this;\r\n\t};\r\n\r\n\t/**\r\n\t * parameters = {\r\n\t *\tcolor: ,\r\n\t *\tspecular: ,\r\n\t *\tshininess: ,\r\n\t *\topacity: ,\r\n\t *\r\n\t *\tmap: new THREE.Texture( ),\r\n\t *\r\n\t *\tlightMap: new THREE.Texture( ),\r\n\t *\tlightMapIntensity: \r\n\t *\r\n\t *\taoMap: new THREE.Texture( ),\r\n\t *\taoMapIntensity: \r\n\t *\r\n\t *\temissive: ,\r\n\t *\temissiveIntensity: \r\n\t *\temissiveMap: new THREE.Texture( ),\r\n\t *\r\n\t *\tbumpMap: new THREE.Texture( ),\r\n\t *\tbumpScale: ,\r\n\t *\r\n\t *\tnormalMap: new THREE.Texture( ),\r\n\t *\tnormalMapType: THREE.TangentSpaceNormalMap,\r\n\t *\tnormalScale: ,\r\n\t *\r\n\t *\tdisplacementMap: new THREE.Texture( ),\r\n\t *\tdisplacementScale: ,\r\n\t *\tdisplacementBias: ,\r\n\t *\r\n\t *\tspecularMap: new THREE.Texture( ),\r\n\t *\r\n\t *\talphaMap: new THREE.Texture( ),\r\n\t *\r\n\t *\tenvMap: new THREE.CubeTexture( [posx, negx, posy, negy, posz, negz] ),\r\n\t *\tcombine: THREE.MultiplyOperation,\r\n\t *\treflectivity: ,\r\n\t *\trefractionRatio: ,\r\n\t *\r\n\t *\twireframe: ,\r\n\t *\twireframeLinewidth: ,\r\n\t *\r\n\t *\tskinning: ,\r\n\t *\tmorphTargets: ,\r\n\t *\tmorphNormals: \r\n\t * }\r\n\t */\r\n\r\n\tfunction MeshPhongMaterial(parameters) {\r\n\t\tMaterial.call(this);\r\n\t\tthis.type = 'MeshPhongMaterial';\r\n\t\tthis.color = new Color(0xffffff); // diffuse\r\n\r\n\t\tthis.specular = new Color(0x111111);\r\n\t\tthis.shininess = 30;\r\n\t\tthis.map = null;\r\n\t\tthis.lightMap = null;\r\n\t\tthis.lightMapIntensity = 1.0;\r\n\t\tthis.aoMap = null;\r\n\t\tthis.aoMapIntensity = 1.0;\r\n\t\tthis.emissive = new Color(0x000000);\r\n\t\tthis.emissiveIntensity = 1.0;\r\n\t\tthis.emissiveMap = null;\r\n\t\tthis.bumpMap = null;\r\n\t\tthis.bumpScale = 1;\r\n\t\tthis.normalMap = null;\r\n\t\tthis.normalMapType = TangentSpaceNormalMap;\r\n\t\tthis.normalScale = new Vector2(1, 1);\r\n\t\tthis.displacementMap = null;\r\n\t\tthis.displacementScale = 1;\r\n\t\tthis.displacementBias = 0;\r\n\t\tthis.specularMap = null;\r\n\t\tthis.alphaMap = null;\r\n\t\tthis.envMap = null;\r\n\t\tthis.combine = MultiplyOperation;\r\n\t\tthis.reflectivity = 1;\r\n\t\tthis.refractionRatio = 0.98;\r\n\t\tthis.wireframe = false;\r\n\t\tthis.wireframeLinewidth = 1;\r\n\t\tthis.wireframeLinecap = 'round';\r\n\t\tthis.wireframeLinejoin = 'round';\r\n\t\tthis.skinning = false;\r\n\t\tthis.morphTargets = false;\r\n\t\tthis.morphNormals = false;\r\n\t\tthis.setValues(parameters);\r\n\t}\r\n\r\n\tMeshPhongMaterial.prototype = Object.create(Material.prototype);\r\n\tMeshPhongMaterial.prototype.constructor = MeshPhongMaterial;\r\n\tMeshPhongMaterial.prototype.isMeshPhongMaterial = true;\r\n\r\n\tMeshPhongMaterial.prototype.copy = function (source) {\r\n\t\tMaterial.prototype.copy.call(this, source);\r\n\t\tthis.color.copy(source.color);\r\n\t\tthis.specular.copy(source.specular);\r\n\t\tthis.shininess = source.shininess;\r\n\t\tthis.map = source.map;\r\n\t\tthis.lightMap = source.lightMap;\r\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\r\n\t\tthis.aoMap = source.aoMap;\r\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\r\n\t\tthis.emissive.copy(source.emissive);\r\n\t\tthis.emissiveMap = source.emissiveMap;\r\n\t\tthis.emissiveIntensity = source.emissiveIntensity;\r\n\t\tthis.bumpMap = source.bumpMap;\r\n\t\tthis.bumpScale = source.bumpScale;\r\n\t\tthis.normalMap = source.normalMap;\r\n\t\tthis.normalMapType = source.normalMapType;\r\n\t\tthis.normalScale.copy(source.normalScale);\r\n\t\tthis.displacementMap = source.displacementMap;\r\n\t\tthis.displacementScale = source.displacementScale;\r\n\t\tthis.displacementBias = source.displacementBias;\r\n\t\tthis.specularMap = source.specularMap;\r\n\t\tthis.alphaMap = source.alphaMap;\r\n\t\tthis.envMap = source.envMap;\r\n\t\tthis.combine = source.combine;\r\n\t\tthis.reflectivity = source.reflectivity;\r\n\t\tthis.refractionRatio = source.refractionRatio;\r\n\t\tthis.wireframe = source.wireframe;\r\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\r\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\r\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\r\n\t\tthis.skinning = source.skinning;\r\n\t\tthis.morphTargets = source.morphTargets;\r\n\t\tthis.morphNormals = source.morphNormals;\r\n\t\treturn this;\r\n\t};\r\n\r\n\t/**\r\n\t * parameters = {\r\n\t *\tcolor: ,\r\n\t *\r\n\t *\tmap: new THREE.Texture( ),\r\n\t *\tgradientMap: new THREE.Texture( ),\r\n\t *\r\n\t *\tlightMap: new THREE.Texture( ),\r\n\t *\tlightMapIntensity: \r\n\t *\r\n\t *\taoMap: new THREE.Texture( ),\r\n\t *\taoMapIntensity: \r\n\t *\r\n\t *\temissive: ,\r\n\t *\temissiveIntensity: \r\n\t *\temissiveMap: new THREE.Texture( ),\r\n\t *\r\n\t *\tbumpMap: new THREE.Texture( ),\r\n\t *\tbumpScale: ,\r\n\t *\r\n\t *\tnormalMap: new THREE.Texture( ),\r\n\t *\tnormalMapType: THREE.TangentSpaceNormalMap,\r\n\t *\tnormalScale: ,\r\n\t *\r\n\t *\tdisplacementMap: new THREE.Texture( ),\r\n\t *\tdisplacementScale: ,\r\n\t *\tdisplacementBias: ,\r\n\t *\r\n\t *\talphaMap: new THREE.Texture( ),\r\n\t *\r\n\t *\twireframe: ,\r\n\t *\twireframeLinewidth: ,\r\n\t *\r\n\t *\tskinning: ,\r\n\t *\tmorphTargets: ,\r\n\t *\tmorphNormals: \r\n\t * }\r\n\t */\r\n\r\n\tfunction MeshToonMaterial(parameters) {\r\n\t\tMaterial.call(this);\r\n\t\tthis.defines = {\r\n\t\t\t'TOON': ''\r\n\t\t};\r\n\t\tthis.type = 'MeshToonMaterial';\r\n\t\tthis.color = new Color(0xffffff);\r\n\t\tthis.map = null;\r\n\t\tthis.gradientMap = null;\r\n\t\tthis.lightMap = null;\r\n\t\tthis.lightMapIntensity = 1.0;\r\n\t\tthis.aoMap = null;\r\n\t\tthis.aoMapIntensity = 1.0;\r\n\t\tthis.emissive = new Color(0x000000);\r\n\t\tthis.emissiveIntensity = 1.0;\r\n\t\tthis.emissiveMap = null;\r\n\t\tthis.bumpMap = null;\r\n\t\tthis.bumpScale = 1;\r\n\t\tthis.normalMap = null;\r\n\t\tthis.normalMapType = TangentSpaceNormalMap;\r\n\t\tthis.normalScale = new Vector2(1, 1);\r\n\t\tthis.displacementMap = null;\r\n\t\tthis.displacementScale = 1;\r\n\t\tthis.displacementBias = 0;\r\n\t\tthis.alphaMap = null;\r\n\t\tthis.wireframe = false;\r\n\t\tthis.wireframeLinewidth = 1;\r\n\t\tthis.wireframeLinecap = 'round';\r\n\t\tthis.wireframeLinejoin = 'round';\r\n\t\tthis.skinning = false;\r\n\t\tthis.morphTargets = false;\r\n\t\tthis.morphNormals = false;\r\n\t\tthis.setValues(parameters);\r\n\t}\r\n\r\n\tMeshToonMaterial.prototype = Object.create(Material.prototype);\r\n\tMeshToonMaterial.prototype.constructor = MeshToonMaterial;\r\n\tMeshToonMaterial.prototype.isMeshToonMaterial = true;\r\n\r\n\tMeshToonMaterial.prototype.copy = function (source) {\r\n\t\tMaterial.prototype.copy.call(this, source);\r\n\t\tthis.color.copy(source.color);\r\n\t\tthis.map = source.map;\r\n\t\tthis.gradientMap = source.gradientMap;\r\n\t\tthis.lightMap = source.lightMap;\r\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\r\n\t\tthis.aoMap = source.aoMap;\r\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\r\n\t\tthis.emissive.copy(source.emissive);\r\n\t\tthis.emissiveMap = source.emissiveMap;\r\n\t\tthis.emissiveIntensity = source.emissiveIntensity;\r\n\t\tthis.bumpMap = source.bumpMap;\r\n\t\tthis.bumpScale = source.bumpScale;\r\n\t\tthis.normalMap = source.normalMap;\r\n\t\tthis.normalMapType = source.normalMapType;\r\n\t\tthis.normalScale.copy(source.normalScale);\r\n\t\tthis.displacementMap = source.displacementMap;\r\n\t\tthis.displacementScale = source.displacementScale;\r\n\t\tthis.displacementBias = source.displacementBias;\r\n\t\tthis.alphaMap = source.alphaMap;\r\n\t\tthis.wireframe = source.wireframe;\r\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\r\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\r\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\r\n\t\tthis.skinning = source.skinning;\r\n\t\tthis.morphTargets = source.morphTargets;\r\n\t\tthis.morphNormals = source.morphNormals;\r\n\t\treturn this;\r\n\t};\r\n\r\n\t/**\r\n\t * parameters = {\r\n\t *\topacity: ,\r\n\t *\r\n\t *\tbumpMap: new THREE.Texture( ),\r\n\t *\tbumpScale: ,\r\n\t *\r\n\t *\tnormalMap: new THREE.Texture( ),\r\n\t *\tnormalMapType: THREE.TangentSpaceNormalMap,\r\n\t *\tnormalScale: ,\r\n\t *\r\n\t *\tdisplacementMap: new THREE.Texture( ),\r\n\t *\tdisplacementScale: ,\r\n\t *\tdisplacementBias: ,\r\n\t *\r\n\t *\twireframe: ,\r\n\t *\twireframeLinewidth: \r\n\t *\r\n\t *\tskinning: ,\r\n\t *\tmorphTargets: ,\r\n\t *\tmorphNormals: \r\n\t * }\r\n\t */\r\n\r\n\tfunction MeshNormalMaterial(parameters) {\r\n\t\tMaterial.call(this);\r\n\t\tthis.type = 'MeshNormalMaterial';\r\n\t\tthis.bumpMap = null;\r\n\t\tthis.bumpScale = 1;\r\n\t\tthis.normalMap = null;\r\n\t\tthis.normalMapType = TangentSpaceNormalMap;\r\n\t\tthis.normalScale = new Vector2(1, 1);\r\n\t\tthis.displacementMap = null;\r\n\t\tthis.displacementScale = 1;\r\n\t\tthis.displacementBias = 0;\r\n\t\tthis.wireframe = false;\r\n\t\tthis.wireframeLinewidth = 1;\r\n\t\tthis.fog = false;\r\n\t\tthis.skinning = false;\r\n\t\tthis.morphTargets = false;\r\n\t\tthis.morphNormals = false;\r\n\t\tthis.setValues(parameters);\r\n\t}\r\n\r\n\tMeshNormalMaterial.prototype = Object.create(Material.prototype);\r\n\tMeshNormalMaterial.prototype.constructor = MeshNormalMaterial;\r\n\tMeshNormalMaterial.prototype.isMeshNormalMaterial = true;\r\n\r\n\tMeshNormalMaterial.prototype.copy = function (source) {\r\n\t\tMaterial.prototype.copy.call(this, source);\r\n\t\tthis.bumpMap = source.bumpMap;\r\n\t\tthis.bumpScale = source.bumpScale;\r\n\t\tthis.normalMap = source.normalMap;\r\n\t\tthis.normalMapType = source.normalMapType;\r\n\t\tthis.normalScale.copy(source.normalScale);\r\n\t\tthis.displacementMap = source.displacementMap;\r\n\t\tthis.displacementScale = source.displacementScale;\r\n\t\tthis.displacementBias = source.displacementBias;\r\n\t\tthis.wireframe = source.wireframe;\r\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\r\n\t\tthis.skinning = source.skinning;\r\n\t\tthis.morphTargets = source.morphTargets;\r\n\t\tthis.morphNormals = source.morphNormals;\r\n\t\treturn this;\r\n\t};\r\n\r\n\t/**\r\n\t * parameters = {\r\n\t *\tcolor: ,\r\n\t *\topacity: ,\r\n\t *\r\n\t *\tmap: new THREE.Texture( ),\r\n\t *\r\n\t *\tlightMap: new THREE.Texture( ),\r\n\t *\tlightMapIntensity: \r\n\t *\r\n\t *\taoMap: new THREE.Texture( ),\r\n\t *\taoMapIntensity: \r\n\t *\r\n\t *\temissive: ,\r\n\t *\temissiveIntensity: \r\n\t *\temissiveMap: new THREE.Texture( ),\r\n\t *\r\n\t *\tspecularMap: new THREE.Texture( ),\r\n\t *\r\n\t *\talphaMap: new THREE.Texture( ),\r\n\t *\r\n\t *\tenvMap: new THREE.CubeTexture( [posx, negx, posy, negy, posz, negz] ),\r\n\t *\tcombine: THREE.Multiply,\r\n\t *\treflectivity: ,\r\n\t *\trefractionRatio: ,\r\n\t *\r\n\t *\twireframe: ,\r\n\t *\twireframeLinewidth: ,\r\n\t *\r\n\t *\tskinning: ,\r\n\t *\tmorphTargets: ,\r\n\t *\tmorphNormals: \r\n\t * }\r\n\t */\r\n\r\n\tfunction MeshLambertMaterial(parameters) {\r\n\t\tMaterial.call(this);\r\n\t\tthis.type = 'MeshLambertMaterial';\r\n\t\tthis.color = new Color(0xffffff); // diffuse\r\n\r\n\t\tthis.map = null;\r\n\t\tthis.lightMap = null;\r\n\t\tthis.lightMapIntensity = 1.0;\r\n\t\tthis.aoMap = null;\r\n\t\tthis.aoMapIntensity = 1.0;\r\n\t\tthis.emissive = new Color(0x000000);\r\n\t\tthis.emissiveIntensity = 1.0;\r\n\t\tthis.emissiveMap = null;\r\n\t\tthis.specularMap = null;\r\n\t\tthis.alphaMap = null;\r\n\t\tthis.envMap = null;\r\n\t\tthis.combine = MultiplyOperation;\r\n\t\tthis.reflectivity = 1;\r\n\t\tthis.refractionRatio = 0.98;\r\n\t\tthis.wireframe = false;\r\n\t\tthis.wireframeLinewidth = 1;\r\n\t\tthis.wireframeLinecap = 'round';\r\n\t\tthis.wireframeLinejoin = 'round';\r\n\t\tthis.skinning = false;\r\n\t\tthis.morphTargets = false;\r\n\t\tthis.morphNormals = false;\r\n\t\tthis.setValues(parameters);\r\n\t}\r\n\r\n\tMeshLambertMaterial.prototype = Object.create(Material.prototype);\r\n\tMeshLambertMaterial.prototype.constructor = MeshLambertMaterial;\r\n\tMeshLambertMaterial.prototype.isMeshLambertMaterial = true;\r\n\r\n\tMeshLambertMaterial.prototype.copy = function (source) {\r\n\t\tMaterial.prototype.copy.call(this, source);\r\n\t\tthis.color.copy(source.color);\r\n\t\tthis.map = source.map;\r\n\t\tthis.lightMap = source.lightMap;\r\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\r\n\t\tthis.aoMap = source.aoMap;\r\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\r\n\t\tthis.emissive.copy(source.emissive);\r\n\t\tthis.emissiveMap = source.emissiveMap;\r\n\t\tthis.emissiveIntensity = source.emissiveIntensity;\r\n\t\tthis.specularMap = source.specularMap;\r\n\t\tthis.alphaMap = source.alphaMap;\r\n\t\tthis.envMap = source.envMap;\r\n\t\tthis.combine = source.combine;\r\n\t\tthis.reflectivity = source.reflectivity;\r\n\t\tthis.refractionRatio = source.refractionRatio;\r\n\t\tthis.wireframe = source.wireframe;\r\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\r\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\r\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\r\n\t\tthis.skinning = source.skinning;\r\n\t\tthis.morphTargets = source.morphTargets;\r\n\t\tthis.morphNormals = source.morphNormals;\r\n\t\treturn this;\r\n\t};\r\n\r\n\t/**\r\n\t * parameters = {\r\n\t *\tcolor: ,\r\n\t *\topacity: ,\r\n\t *\r\n\t *\tmatcap: new THREE.Texture( ),\r\n\t *\r\n\t *\tmap: new THREE.Texture( ),\r\n\t *\r\n\t *\tbumpMap: new THREE.Texture( ),\r\n\t *\tbumpScale: ,\r\n\t *\r\n\t *\tnormalMap: new THREE.Texture( ),\r\n\t *\tnormalMapType: THREE.TangentSpaceNormalMap,\r\n\t *\tnormalScale: ,\r\n\t *\r\n\t *\tdisplacementMap: new THREE.Texture( ),\r\n\t *\tdisplacementScale: ,\r\n\t *\tdisplacementBias: ,\r\n\t *\r\n\t *\talphaMap: new THREE.Texture( ),\r\n\t *\r\n\t *\tskinning: ,\r\n\t *\tmorphTargets: ,\r\n\t *\tmorphNormals: \r\n\t * }\r\n\t */\r\n\r\n\tfunction MeshMatcapMaterial(parameters) {\r\n\t\tMaterial.call(this);\r\n\t\tthis.defines = {\r\n\t\t\t'MATCAP': ''\r\n\t\t};\r\n\t\tthis.type = 'MeshMatcapMaterial';\r\n\t\tthis.color = new Color(0xffffff); // diffuse\r\n\r\n\t\tthis.matcap = null;\r\n\t\tthis.map = null;\r\n\t\tthis.bumpMap = null;\r\n\t\tthis.bumpScale = 1;\r\n\t\tthis.normalMap = null;\r\n\t\tthis.normalMapType = TangentSpaceNormalMap;\r\n\t\tthis.normalScale = new Vector2(1, 1);\r\n\t\tthis.displacementMap = null;\r\n\t\tthis.displacementScale = 1;\r\n\t\tthis.displacementBias = 0;\r\n\t\tthis.alphaMap = null;\r\n\t\tthis.skinning = false;\r\n\t\tthis.morphTargets = false;\r\n\t\tthis.morphNormals = false;\r\n\t\tthis.setValues(parameters);\r\n\t}\r\n\r\n\tMeshMatcapMaterial.prototype = Object.create(Material.prototype);\r\n\tMeshMatcapMaterial.prototype.constructor = MeshMatcapMaterial;\r\n\tMeshMatcapMaterial.prototype.isMeshMatcapMaterial = true;\r\n\r\n\tMeshMatcapMaterial.prototype.copy = function (source) {\r\n\t\tMaterial.prototype.copy.call(this, source);\r\n\t\tthis.defines = {\r\n\t\t\t'MATCAP': ''\r\n\t\t};\r\n\t\tthis.color.copy(source.color);\r\n\t\tthis.matcap = source.matcap;\r\n\t\tthis.map = source.map;\r\n\t\tthis.bumpMap = source.bumpMap;\r\n\t\tthis.bumpScale = source.bumpScale;\r\n\t\tthis.normalMap = source.normalMap;\r\n\t\tthis.normalMapType = source.normalMapType;\r\n\t\tthis.normalScale.copy(source.normalScale);\r\n\t\tthis.displacementMap = source.displacementMap;\r\n\t\tthis.displacementScale = source.displacementScale;\r\n\t\tthis.displacementBias = source.displacementBias;\r\n\t\tthis.alphaMap = source.alphaMap;\r\n\t\tthis.skinning = source.skinning;\r\n\t\tthis.morphTargets = source.morphTargets;\r\n\t\tthis.morphNormals = source.morphNormals;\r\n\t\treturn this;\r\n\t};\r\n\r\n\t/**\r\n\t * parameters = {\r\n\t *\tcolor: ,\r\n\t *\topacity: ,\r\n\t *\r\n\t *\tlinewidth: ,\r\n\t *\r\n\t *\tscale: ,\r\n\t *\tdashSize: ,\r\n\t *\tgapSize: \r\n\t * }\r\n\t */\r\n\r\n\tfunction LineDashedMaterial(parameters) {\r\n\t\tLineBasicMaterial.call(this);\r\n\t\tthis.type = 'LineDashedMaterial';\r\n\t\tthis.scale = 1;\r\n\t\tthis.dashSize = 3;\r\n\t\tthis.gapSize = 1;\r\n\t\tthis.setValues(parameters);\r\n\t}\r\n\r\n\tLineDashedMaterial.prototype = Object.create(LineBasicMaterial.prototype);\r\n\tLineDashedMaterial.prototype.constructor = LineDashedMaterial;\r\n\tLineDashedMaterial.prototype.isLineDashedMaterial = true;\r\n\r\n\tLineDashedMaterial.prototype.copy = function (source) {\r\n\t\tLineBasicMaterial.prototype.copy.call(this, source);\r\n\t\tthis.scale = source.scale;\r\n\t\tthis.dashSize = source.dashSize;\r\n\t\tthis.gapSize = source.gapSize;\r\n\t\treturn this;\r\n\t};\r\n\r\n\tvar Materials = /*#__PURE__*/Object.freeze({\r\n\t\t__proto__: null,\r\n\t\tShadowMaterial: ShadowMaterial,\r\n\t\tSpriteMaterial: SpriteMaterial,\r\n\t\tRawShaderMaterial: RawShaderMaterial,\r\n\t\tShaderMaterial: ShaderMaterial,\r\n\t\tPointsMaterial: PointsMaterial,\r\n\t\tMeshPhysicalMaterial: MeshPhysicalMaterial,\r\n\t\tMeshStandardMaterial: MeshStandardMaterial,\r\n\t\tMeshPhongMaterial: MeshPhongMaterial,\r\n\t\tMeshToonMaterial: MeshToonMaterial,\r\n\t\tMeshNormalMaterial: MeshNormalMaterial,\r\n\t\tMeshLambertMaterial: MeshLambertMaterial,\r\n\t\tMeshDepthMaterial: MeshDepthMaterial,\r\n\t\tMeshDistanceMaterial: MeshDistanceMaterial,\r\n\t\tMeshBasicMaterial: MeshBasicMaterial,\r\n\t\tMeshMatcapMaterial: MeshMatcapMaterial,\r\n\t\tLineDashedMaterial: LineDashedMaterial,\r\n\t\tLineBasicMaterial: LineBasicMaterial,\r\n\t\tMaterial: Material\r\n\t});\r\n\r\n\tvar AnimationUtils = {\r\n\t\t// same as Array.prototype.slice, but also works on typed arrays\r\n\t\tarraySlice: function arraySlice(array, from, to) {\r\n\t\t\tif (AnimationUtils.isTypedArray(array)) {\r\n\t\t\t\t// in ios9 array.subarray(from, undefined) will return empty array\r\n\t\t\t\t// but array.subarray(from) or array.subarray(from, len) is correct\r\n\t\t\t\treturn new array.constructor(array.subarray(from, to !== undefined ? to : array.length));\r\n\t\t\t}\r\n\r\n\t\t\treturn array.slice(from, to);\r\n\t\t},\r\n\t\t// converts an array to a specific type\r\n\t\tconvertArray: function convertArray(array, type, forceClone) {\r\n\t\t\tif (!array || // let 'undefined' and 'null' pass\r\n\t\t\t!forceClone && array.constructor === type) return array;\r\n\r\n\t\t\tif (typeof type.BYTES_PER_ELEMENT === 'number') {\r\n\t\t\t\treturn new type(array); // create typed array\r\n\t\t\t}\r\n\r\n\t\t\treturn Array.prototype.slice.call(array); // create Array\r\n\t\t},\r\n\t\tisTypedArray: function isTypedArray(object) {\r\n\t\t\treturn ArrayBuffer.isView(object) && !(object instanceof DataView);\r\n\t\t},\r\n\t\t// returns an array by which times and values can be sorted\r\n\t\tgetKeyframeOrder: function getKeyframeOrder(times) {\r\n\t\t\tfunction compareTime(i, j) {\r\n\t\t\t\treturn times[i] - times[j];\r\n\t\t\t}\r\n\r\n\t\t\tvar n = times.length;\r\n\t\t\tvar result = new Array(n);\r\n\r\n\t\t\tfor (var i = 0; i !== n; ++i) {\r\n\t\t\t\tresult[i] = i;\r\n\t\t\t}\r\n\r\n\t\t\tresult.sort(compareTime);\r\n\t\t\treturn result;\r\n\t\t},\r\n\t\t// uses the array previously returned by 'getKeyframeOrder' to sort data\r\n\t\tsortedArray: function sortedArray(values, stride, order) {\r\n\t\t\tvar nValues = values.length;\r\n\t\t\tvar result = new values.constructor(nValues);\r\n\r\n\t\t\tfor (var i = 0, dstOffset = 0; dstOffset !== nValues; ++i) {\r\n\t\t\t\tvar srcOffset = order[i] * stride;\r\n\r\n\t\t\t\tfor (var j = 0; j !== stride; ++j) {\r\n\t\t\t\t\tresult[dstOffset++] = values[srcOffset + j];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn result;\r\n\t\t},\r\n\t\t// function for parsing AOS keyframe formats\r\n\t\tflattenJSON: function flattenJSON(jsonKeys, times, values, valuePropertyName) {\r\n\t\t\tvar i = 1,\r\n\t\t\t\t\tkey = jsonKeys[0];\r\n\r\n\t\t\twhile (key !== undefined && key[valuePropertyName] === undefined) {\r\n\t\t\t\tkey = jsonKeys[i++];\r\n\t\t\t}\r\n\r\n\t\t\tif (key === undefined) return; // no data\r\n\r\n\t\t\tvar value = key[valuePropertyName];\r\n\t\t\tif (value === undefined) return; // no data\r\n\r\n\t\t\tif (Array.isArray(value)) {\r\n\t\t\t\tdo {\r\n\t\t\t\t\tvalue = key[valuePropertyName];\r\n\r\n\t\t\t\t\tif (value !== undefined) {\r\n\t\t\t\t\t\ttimes.push(key.time);\r\n\t\t\t\t\t\tvalues.push.apply(values, value); // push all elements\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tkey = jsonKeys[i++];\r\n\t\t\t\t} while (key !== undefined);\r\n\t\t\t} else if (value.toArray !== undefined) {\r\n\t\t\t\t// ...assume THREE.Math-ish\r\n\t\t\t\tdo {\r\n\t\t\t\t\tvalue = key[valuePropertyName];\r\n\r\n\t\t\t\t\tif (value !== undefined) {\r\n\t\t\t\t\t\ttimes.push(key.time);\r\n\t\t\t\t\t\tvalue.toArray(values, values.length);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tkey = jsonKeys[i++];\r\n\t\t\t\t} while (key !== undefined);\r\n\t\t\t} else {\r\n\t\t\t\t// otherwise push as-is\r\n\t\t\t\tdo {\r\n\t\t\t\t\tvalue = key[valuePropertyName];\r\n\r\n\t\t\t\t\tif (value !== undefined) {\r\n\t\t\t\t\t\ttimes.push(key.time);\r\n\t\t\t\t\t\tvalues.push(value);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tkey = jsonKeys[i++];\r\n\t\t\t\t} while (key !== undefined);\r\n\t\t\t}\r\n\t\t},\r\n\t\tsubclip: function subclip(sourceClip, name, startFrame, endFrame, fps) {\r\n\t\t\tif (fps === void 0) {\r\n\t\t\t\tfps = 30;\r\n\t\t\t}\r\n\r\n\t\t\tvar clip = sourceClip.clone();\r\n\t\t\tclip.name = name;\r\n\t\t\tvar tracks = [];\r\n\r\n\t\t\tfor (var i = 0; i < clip.tracks.length; ++i) {\r\n\t\t\t\tvar track = clip.tracks[i];\r\n\t\t\t\tvar valueSize = track.getValueSize();\r\n\t\t\t\tvar times = [];\r\n\t\t\t\tvar values = [];\r\n\r\n\t\t\t\tfor (var j = 0; j < track.times.length; ++j) {\r\n\t\t\t\t\tvar frame = track.times[j] * fps;\r\n\t\t\t\t\tif (frame < startFrame || frame >= endFrame) continue;\r\n\t\t\t\t\ttimes.push(track.times[j]);\r\n\r\n\t\t\t\t\tfor (var k = 0; k < valueSize; ++k) {\r\n\t\t\t\t\t\tvalues.push(track.values[j * valueSize + k]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (times.length === 0) continue;\r\n\t\t\t\ttrack.times = AnimationUtils.convertArray(times, track.times.constructor);\r\n\t\t\t\ttrack.values = AnimationUtils.convertArray(values, track.values.constructor);\r\n\t\t\t\ttracks.push(track);\r\n\t\t\t}\r\n\r\n\t\t\tclip.tracks = tracks; // find minimum .times value across all tracks in the trimmed clip\r\n\r\n\t\t\tvar minStartTime = Infinity;\r\n\r\n\t\t\tfor (var _i = 0; _i < clip.tracks.length; ++_i) {\r\n\t\t\t\tif (minStartTime > clip.tracks[_i].times[0]) {\r\n\t\t\t\t\tminStartTime = clip.tracks[_i].times[0];\r\n\t\t\t\t}\r\n\t\t\t} // shift all tracks such that clip begins at t=0\r\n\r\n\r\n\t\t\tfor (var _i2 = 0; _i2 < clip.tracks.length; ++_i2) {\r\n\t\t\t\tclip.tracks[_i2].shift(-1 * minStartTime);\r\n\t\t\t}\r\n\r\n\t\t\tclip.resetDuration();\r\n\t\t\treturn clip;\r\n\t\t},\r\n\t\tmakeClipAdditive: function makeClipAdditive(targetClip, referenceFrame, referenceClip, fps) {\r\n\t\t\tif (referenceFrame === void 0) {\r\n\t\t\t\treferenceFrame = 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (referenceClip === void 0) {\r\n\t\t\t\treferenceClip = targetClip;\r\n\t\t\t}\r\n\r\n\t\t\tif (fps === void 0) {\r\n\t\t\t\tfps = 30;\r\n\t\t\t}\r\n\r\n\t\t\tif (fps <= 0) fps = 30;\r\n\t\t\tvar numTracks = referenceClip.tracks.length;\r\n\t\t\tvar referenceTime = referenceFrame / fps; // Make each track's values relative to the values at the reference frame\r\n\r\n\t\t\tvar _loop = function _loop(i) {\r\n\t\t\t\tvar referenceTrack = referenceClip.tracks[i];\r\n\t\t\t\tvar referenceTrackType = referenceTrack.ValueTypeName; // Skip this track if it's non-numeric\r\n\r\n\t\t\t\tif (referenceTrackType === 'bool' || referenceTrackType === 'string') return \"continue\"; // Find the track in the target clip whose name and type matches the reference track\r\n\r\n\t\t\t\tvar targetTrack = targetClip.tracks.find(function (track) {\r\n\t\t\t\t\treturn track.name === referenceTrack.name && track.ValueTypeName === referenceTrackType;\r\n\t\t\t\t});\r\n\t\t\t\tif (targetTrack === undefined) return \"continue\";\r\n\t\t\t\tvar referenceOffset = 0;\r\n\t\t\t\tvar referenceValueSize = referenceTrack.getValueSize();\r\n\r\n\t\t\t\tif (referenceTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline) {\r\n\t\t\t\t\treferenceOffset = referenceValueSize / 3;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar targetOffset = 0;\r\n\t\t\t\tvar targetValueSize = targetTrack.getValueSize();\r\n\r\n\t\t\t\tif (targetTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline) {\r\n\t\t\t\t\ttargetOffset = targetValueSize / 3;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar lastIndex = referenceTrack.times.length - 1;\r\n\t\t\t\tvar referenceValue = void 0; // Find the value to subtract out of the track\r\n\r\n\t\t\t\tif (referenceTime <= referenceTrack.times[0]) {\r\n\t\t\t\t\t// Reference frame is earlier than the first keyframe, so just use the first keyframe\r\n\t\t\t\t\tvar startIndex = referenceOffset;\r\n\t\t\t\t\tvar endIndex = referenceValueSize - referenceOffset;\r\n\t\t\t\t\treferenceValue = AnimationUtils.arraySlice(referenceTrack.values, startIndex, endIndex);\r\n\t\t\t\t} else if (referenceTime >= referenceTrack.times[lastIndex]) {\r\n\t\t\t\t\t// Reference frame is after the last keyframe, so just use the last keyframe\r\n\t\t\t\t\tvar _startIndex = lastIndex * referenceValueSize + referenceOffset;\r\n\r\n\t\t\t\t\tvar _endIndex = _startIndex + referenceValueSize - referenceOffset;\r\n\r\n\t\t\t\t\treferenceValue = AnimationUtils.arraySlice(referenceTrack.values, _startIndex, _endIndex);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Interpolate to the reference value\r\n\t\t\t\t\tvar interpolant = referenceTrack.createInterpolant();\r\n\t\t\t\t\tvar _startIndex2 = referenceOffset;\r\n\r\n\t\t\t\t\tvar _endIndex2 = referenceValueSize - referenceOffset;\r\n\r\n\t\t\t\t\tinterpolant.evaluate(referenceTime);\r\n\t\t\t\t\treferenceValue = AnimationUtils.arraySlice(interpolant.resultBuffer, _startIndex2, _endIndex2);\r\n\t\t\t\t} // Conjugate the quaternion\r\n\r\n\r\n\t\t\t\tif (referenceTrackType === 'quaternion') {\r\n\t\t\t\t\tvar referenceQuat = new Quaternion().fromArray(referenceValue).normalize().conjugate();\r\n\t\t\t\t\treferenceQuat.toArray(referenceValue);\r\n\t\t\t\t} // Subtract the reference value from all of the track values\r\n\r\n\r\n\t\t\t\tvar numTimes = targetTrack.times.length;\r\n\r\n\t\t\t\tfor (var j = 0; j < numTimes; ++j) {\r\n\t\t\t\t\tvar valueStart = j * targetValueSize + targetOffset;\r\n\r\n\t\t\t\t\tif (referenceTrackType === 'quaternion') {\r\n\t\t\t\t\t\t// Multiply the conjugate for quaternion track types\r\n\t\t\t\t\t\tQuaternion.multiplyQuaternionsFlat(targetTrack.values, valueStart, referenceValue, 0, targetTrack.values, valueStart);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvar valueEnd = targetValueSize - targetOffset * 2; // Subtract each value for all other numeric track types\r\n\r\n\t\t\t\t\t\tfor (var k = 0; k < valueEnd; ++k) {\r\n\t\t\t\t\t\t\ttargetTrack.values[valueStart + k] -= referenceValue[k];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tfor (var i = 0; i < numTracks; ++i) {\r\n\t\t\t\tvar _ret = _loop(i);\r\n\r\n\t\t\t\tif (_ret === \"continue\") continue;\r\n\t\t\t}\r\n\r\n\t\t\ttargetClip.blendMode = AdditiveAnimationBlendMode;\r\n\t\t\treturn targetClip;\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Abstract base class of interpolants over parametric samples.\r\n\t *\r\n\t * The parameter domain is one dimensional, typically the time or a path\r\n\t * along a curve defined by the data.\r\n\t *\r\n\t * The sample values can have any dimensionality and derived classes may\r\n\t * apply special interpretations to the data.\r\n\t *\r\n\t * This class provides the interval seek in a Template Method, deferring\r\n\t * the actual interpolation to derived classes.\r\n\t *\r\n\t * Time complexity is O(1) for linear access crossing at most two points\r\n\t * and O(log N) for random access, where N is the number of positions.\r\n\t *\r\n\t * References:\r\n\t *\r\n\t * \t\thttp://www.oodesign.com/template-method-pattern.html\r\n\t *\r\n\t */\r\n\tfunction Interpolant(parameterPositions, sampleValues, sampleSize, resultBuffer) {\r\n\t\tthis.parameterPositions = parameterPositions;\r\n\t\tthis._cachedIndex = 0;\r\n\t\tthis.resultBuffer = resultBuffer !== undefined ? resultBuffer : new sampleValues.constructor(sampleSize);\r\n\t\tthis.sampleValues = sampleValues;\r\n\t\tthis.valueSize = sampleSize;\r\n\t}\r\n\r\n\tObject.assign(Interpolant.prototype, {\r\n\t\tevaluate: function evaluate(t) {\r\n\t\t\tvar pp = this.parameterPositions;\r\n\t\t\tvar i1 = this._cachedIndex,\r\n\t\t\t\t\tt1 = pp[i1],\r\n\t\t\t\t\tt0 = pp[i1 - 1];\r\n\r\n\t\t\tvalidate_interval: {\r\n\t\t\t\tseek: {\r\n\t\t\t\t\tvar right;\r\n\r\n\t\t\t\t\tlinear_scan: {\r\n\t\t\t\t\t\t//- See http://jsperf.com/comparison-to-undefined/3\r\n\t\t\t\t\t\t//- slower code:\r\n\t\t\t\t\t\t//-\r\n\t\t\t\t\t\t//- \t\t\t\tif ( t >= t1 || t1 === undefined ) {\r\n\t\t\t\t\t\tforward_scan: if (!(t < t1)) {\r\n\t\t\t\t\t\t\tfor (var giveUpAt = i1 + 2;;) {\r\n\t\t\t\t\t\t\t\tif (t1 === undefined) {\r\n\t\t\t\t\t\t\t\t\tif (t < t0) break forward_scan; // after end\r\n\r\n\t\t\t\t\t\t\t\t\ti1 = pp.length;\r\n\t\t\t\t\t\t\t\t\tthis._cachedIndex = i1;\r\n\t\t\t\t\t\t\t\t\treturn this.afterEnd_(i1 - 1, t, t0);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (i1 === giveUpAt) break; // this loop\r\n\r\n\t\t\t\t\t\t\t\tt0 = t1;\r\n\t\t\t\t\t\t\t\tt1 = pp[++i1];\r\n\r\n\t\t\t\t\t\t\t\tif (t < t1) {\r\n\t\t\t\t\t\t\t\t\t// we have arrived at the sought interval\r\n\t\t\t\t\t\t\t\t\tbreak seek;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} // prepare binary search on the right side of the index\r\n\r\n\r\n\t\t\t\t\t\t\tright = pp.length;\r\n\t\t\t\t\t\t\tbreak linear_scan;\r\n\t\t\t\t\t\t} //- slower code:\r\n\t\t\t\t\t\t//-\t\t\t\t\tif ( t < t0 || t0 === undefined ) {\r\n\r\n\r\n\t\t\t\t\t\tif (!(t >= t0)) {\r\n\t\t\t\t\t\t\t// looping?\r\n\t\t\t\t\t\t\tvar t1global = pp[1];\r\n\r\n\t\t\t\t\t\t\tif (t < t1global) {\r\n\t\t\t\t\t\t\t\ti1 = 2; // + 1, using the scan for the details\r\n\r\n\t\t\t\t\t\t\t\tt0 = t1global;\r\n\t\t\t\t\t\t\t} // linear reverse scan\r\n\r\n\r\n\t\t\t\t\t\t\tfor (var _giveUpAt = i1 - 2;;) {\r\n\t\t\t\t\t\t\t\tif (t0 === undefined) {\r\n\t\t\t\t\t\t\t\t\t// before start\r\n\t\t\t\t\t\t\t\t\tthis._cachedIndex = 0;\r\n\t\t\t\t\t\t\t\t\treturn this.beforeStart_(0, t, t1);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (i1 === _giveUpAt) break; // this loop\r\n\r\n\t\t\t\t\t\t\t\tt1 = t0;\r\n\t\t\t\t\t\t\t\tt0 = pp[--i1 - 1];\r\n\r\n\t\t\t\t\t\t\t\tif (t >= t0) {\r\n\t\t\t\t\t\t\t\t\t// we have arrived at the sought interval\r\n\t\t\t\t\t\t\t\t\tbreak seek;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} // prepare binary search on the left side of the index\r\n\r\n\r\n\t\t\t\t\t\t\tright = i1;\r\n\t\t\t\t\t\t\ti1 = 0;\r\n\t\t\t\t\t\t\tbreak linear_scan;\r\n\t\t\t\t\t\t} // the interval is valid\r\n\r\n\r\n\t\t\t\t\t\tbreak validate_interval;\r\n\t\t\t\t\t} // linear scan\r\n\t\t\t\t\t// binary search\r\n\r\n\r\n\t\t\t\t\twhile (i1 < right) {\r\n\t\t\t\t\t\tvar mid = i1 + right >>> 1;\r\n\r\n\t\t\t\t\t\tif (t < pp[mid]) {\r\n\t\t\t\t\t\t\tright = mid;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\ti1 = mid + 1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tt1 = pp[i1];\r\n\t\t\t\t\tt0 = pp[i1 - 1]; // check boundary cases, again\r\n\r\n\t\t\t\t\tif (t0 === undefined) {\r\n\t\t\t\t\t\tthis._cachedIndex = 0;\r\n\t\t\t\t\t\treturn this.beforeStart_(0, t, t1);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (t1 === undefined) {\r\n\t\t\t\t\t\ti1 = pp.length;\r\n\t\t\t\t\t\tthis._cachedIndex = i1;\r\n\t\t\t\t\t\treturn this.afterEnd_(i1 - 1, t0, t);\r\n\t\t\t\t\t}\r\n\t\t\t\t} // seek\r\n\r\n\r\n\t\t\t\tthis._cachedIndex = i1;\r\n\t\t\t\tthis.intervalChanged_(i1, t0, t1);\r\n\t\t\t} // validate_interval\r\n\r\n\r\n\t\t\treturn this.interpolate_(i1, t0, t, t1);\r\n\t\t},\r\n\t\tsettings: null,\r\n\t\t// optional, subclass-specific settings structure\r\n\t\t// Note: The indirection allows central control of many interpolants.\r\n\t\t// --- Protected interface\r\n\t\tDefaultSettings_: {},\r\n\t\tgetSettings_: function getSettings_() {\r\n\t\t\treturn this.settings || this.DefaultSettings_;\r\n\t\t},\r\n\t\tcopySampleValue_: function copySampleValue_(index) {\r\n\t\t\t// copies a sample value to the result buffer\r\n\t\t\tvar result = this.resultBuffer,\r\n\t\t\t\t\tvalues = this.sampleValues,\r\n\t\t\t\t\tstride = this.valueSize,\r\n\t\t\t\t\toffset = index * stride;\r\n\r\n\t\t\tfor (var i = 0; i !== stride; ++i) {\r\n\t\t\t\tresult[i] = values[offset + i];\r\n\t\t\t}\r\n\r\n\t\t\treturn result;\r\n\t\t},\r\n\t\t// Template methods for derived classes:\r\n\t\tinterpolate_: function interpolate_()\r\n\t\t/* i1, t0, t, t1 */\r\n\t\t{\r\n\t\t\tthrow new Error('call to abstract method'); // implementations shall return this.resultBuffer\r\n\t\t},\r\n\t\tintervalChanged_: function intervalChanged_()\r\n\t\t/* i1, t0, t1 */\r\n\t\t{// empty\r\n\t\t}\r\n\t}); // DECLARE ALIAS AFTER assign prototype\r\n\r\n\tObject.assign(Interpolant.prototype, {\r\n\t\t//( 0, t, t0 ), returns this.resultBuffer\r\n\t\tbeforeStart_: Interpolant.prototype.copySampleValue_,\r\n\t\t//( N-1, tN-1, t ), returns this.resultBuffer\r\n\t\tafterEnd_: Interpolant.prototype.copySampleValue_\r\n\t});\r\n\r\n\t/**\r\n\t * Fast and simple cubic spline interpolant.\r\n\t *\r\n\t * It was derived from a Hermitian construction setting the first derivative\r\n\t * at each sample position to the linear slope between neighboring positions\r\n\t * over their parameter interval.\r\n\t */\r\n\r\n\tfunction CubicInterpolant(parameterPositions, sampleValues, sampleSize, resultBuffer) {\r\n\t\tInterpolant.call(this, parameterPositions, sampleValues, sampleSize, resultBuffer);\r\n\t\tthis._weightPrev = -0;\r\n\t\tthis._offsetPrev = -0;\r\n\t\tthis._weightNext = -0;\r\n\t\tthis._offsetNext = -0;\r\n\t}\r\n\r\n\tCubicInterpolant.prototype = Object.assign(Object.create(Interpolant.prototype), {\r\n\t\tconstructor: CubicInterpolant,\r\n\t\tDefaultSettings_: {\r\n\t\t\tendingStart: ZeroCurvatureEnding,\r\n\t\t\tendingEnd: ZeroCurvatureEnding\r\n\t\t},\r\n\t\tintervalChanged_: function intervalChanged_(i1, t0, t1) {\r\n\t\t\tvar pp = this.parameterPositions;\r\n\t\t\tvar iPrev = i1 - 2,\r\n\t\t\t\t\tiNext = i1 + 1,\r\n\t\t\t\t\ttPrev = pp[iPrev],\r\n\t\t\t\t\ttNext = pp[iNext];\r\n\r\n\t\t\tif (tPrev === undefined) {\r\n\t\t\t\tswitch (this.getSettings_().endingStart) {\r\n\t\t\t\t\tcase ZeroSlopeEnding:\r\n\t\t\t\t\t\t// f'(t0) = 0\r\n\t\t\t\t\t\tiPrev = i1;\r\n\t\t\t\t\t\ttPrev = 2 * t0 - t1;\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase WrapAroundEnding:\r\n\t\t\t\t\t\t// use the other end of the curve\r\n\t\t\t\t\t\tiPrev = pp.length - 2;\r\n\t\t\t\t\t\ttPrev = t0 + pp[iPrev] - pp[iPrev + 1];\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t// ZeroCurvatureEnding\r\n\t\t\t\t\t\t// f''(t0) = 0 a.k.a. Natural Spline\r\n\t\t\t\t\t\tiPrev = i1;\r\n\t\t\t\t\t\ttPrev = t1;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (tNext === undefined) {\r\n\t\t\t\tswitch (this.getSettings_().endingEnd) {\r\n\t\t\t\t\tcase ZeroSlopeEnding:\r\n\t\t\t\t\t\t// f'(tN) = 0\r\n\t\t\t\t\t\tiNext = i1;\r\n\t\t\t\t\t\ttNext = 2 * t1 - t0;\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase WrapAroundEnding:\r\n\t\t\t\t\t\t// use the other end of the curve\r\n\t\t\t\t\t\tiNext = 1;\r\n\t\t\t\t\t\ttNext = t1 + pp[1] - pp[0];\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t// ZeroCurvatureEnding\r\n\t\t\t\t\t\t// f''(tN) = 0, a.k.a. Natural Spline\r\n\t\t\t\t\t\tiNext = i1 - 1;\r\n\t\t\t\t\t\ttNext = t0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar halfDt = (t1 - t0) * 0.5,\r\n\t\t\t\t\tstride = this.valueSize;\r\n\t\t\tthis._weightPrev = halfDt / (t0 - tPrev);\r\n\t\t\tthis._weightNext = halfDt / (tNext - t1);\r\n\t\t\tthis._offsetPrev = iPrev * stride;\r\n\t\t\tthis._offsetNext = iNext * stride;\r\n\t\t},\r\n\t\tinterpolate_: function interpolate_(i1, t0, t, t1) {\r\n\t\t\tvar result = this.resultBuffer,\r\n\t\t\t\t\tvalues = this.sampleValues,\r\n\t\t\t\t\tstride = this.valueSize,\r\n\t\t\t\t\to1 = i1 * stride,\r\n\t\t\t\t\to0 = o1 - stride,\r\n\t\t\t\t\toP = this._offsetPrev,\r\n\t\t\t\t\toN = this._offsetNext,\r\n\t\t\t\t\twP = this._weightPrev,\r\n\t\t\t\t\twN = this._weightNext,\r\n\t\t\t\t\tp = (t - t0) / (t1 - t0),\r\n\t\t\t\t\tpp = p * p,\r\n\t\t\t\t\tppp = pp * p; // evaluate polynomials\r\n\r\n\t\t\tvar sP = -wP * ppp + 2 * wP * pp - wP * p;\r\n\t\t\tvar s0 = (1 + wP) * ppp + (-1.5 - 2 * wP) * pp + (-0.5 + wP) * p + 1;\r\n\t\t\tvar s1 = (-1 - wN) * ppp + (1.5 + wN) * pp + 0.5 * p;\r\n\t\t\tvar sN = wN * ppp - wN * pp; // combine data linearly\r\n\r\n\t\t\tfor (var i = 0; i !== stride; ++i) {\r\n\t\t\t\tresult[i] = sP * values[oP + i] + s0 * values[o0 + i] + s1 * values[o1 + i] + sN * values[oN + i];\r\n\t\t\t}\r\n\r\n\t\t\treturn result;\r\n\t\t}\r\n\t});\r\n\r\n\tfunction LinearInterpolant(parameterPositions, sampleValues, sampleSize, resultBuffer) {\r\n\t\tInterpolant.call(this, parameterPositions, sampleValues, sampleSize, resultBuffer);\r\n\t}\r\n\r\n\tLinearInterpolant.prototype = Object.assign(Object.create(Interpolant.prototype), {\r\n\t\tconstructor: LinearInterpolant,\r\n\t\tinterpolate_: function interpolate_(i1, t0, t, t1) {\r\n\t\t\tvar result = this.resultBuffer,\r\n\t\t\t\t\tvalues = this.sampleValues,\r\n\t\t\t\t\tstride = this.valueSize,\r\n\t\t\t\t\toffset1 = i1 * stride,\r\n\t\t\t\t\toffset0 = offset1 - stride,\r\n\t\t\t\t\tweight1 = (t - t0) / (t1 - t0),\r\n\t\t\t\t\tweight0 = 1 - weight1;\r\n\r\n\t\t\tfor (var i = 0; i !== stride; ++i) {\r\n\t\t\t\tresult[i] = values[offset0 + i] * weight0 + values[offset1 + i] * weight1;\r\n\t\t\t}\r\n\r\n\t\t\treturn result;\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t *\r\n\t * Interpolant that evaluates to the sample value at the position preceeding\r\n\t * the parameter.\r\n\t */\r\n\r\n\tfunction DiscreteInterpolant(parameterPositions, sampleValues, sampleSize, resultBuffer) {\r\n\t\tInterpolant.call(this, parameterPositions, sampleValues, sampleSize, resultBuffer);\r\n\t}\r\n\r\n\tDiscreteInterpolant.prototype = Object.assign(Object.create(Interpolant.prototype), {\r\n\t\tconstructor: DiscreteInterpolant,\r\n\t\tinterpolate_: function interpolate_(i1\r\n\t\t/*, t0, t, t1 */\r\n\t\t) {\r\n\t\t\treturn this.copySampleValue_(i1 - 1);\r\n\t\t}\r\n\t});\r\n\r\n\tfunction KeyframeTrack(name, times, values, interpolation) {\r\n\t\tif (name === undefined) throw new Error('THREE.KeyframeTrack: track name is undefined');\r\n\t\tif (times === undefined || times.length === 0) throw new Error('THREE.KeyframeTrack: no keyframes in track named ' + name);\r\n\t\tthis.name = name;\r\n\t\tthis.times = AnimationUtils.convertArray(times, this.TimeBufferType);\r\n\t\tthis.values = AnimationUtils.convertArray(values, this.ValueBufferType);\r\n\t\tthis.setInterpolation(interpolation || this.DefaultInterpolation);\r\n\t} // Static methods\r\n\r\n\r\n\tObject.assign(KeyframeTrack, {\r\n\t\t// Serialization (in static context, because of constructor invocation\r\n\t\t// and automatic invocation of .toJSON):\r\n\t\ttoJSON: function toJSON(track) {\r\n\t\t\tvar trackType = track.constructor;\r\n\t\t\tvar json; // derived classes can define a static toJSON method\r\n\r\n\t\t\tif (trackType.toJSON !== undefined) {\r\n\t\t\t\tjson = trackType.toJSON(track);\r\n\t\t\t} else {\r\n\t\t\t\t// by default, we assume the data can be serialized as-is\r\n\t\t\t\tjson = {\r\n\t\t\t\t\t'name': track.name,\r\n\t\t\t\t\t'times': AnimationUtils.convertArray(track.times, Array),\r\n\t\t\t\t\t'values': AnimationUtils.convertArray(track.values, Array)\r\n\t\t\t\t};\r\n\t\t\t\tvar interpolation = track.getInterpolation();\r\n\r\n\t\t\t\tif (interpolation !== track.DefaultInterpolation) {\r\n\t\t\t\t\tjson.interpolation = interpolation;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tjson.type = track.ValueTypeName; // mandatory\r\n\r\n\t\t\treturn json;\r\n\t\t}\r\n\t});\r\n\tObject.assign(KeyframeTrack.prototype, {\r\n\t\tconstructor: KeyframeTrack,\r\n\t\tTimeBufferType: Float32Array,\r\n\t\tValueBufferType: Float32Array,\r\n\t\tDefaultInterpolation: InterpolateLinear,\r\n\t\tInterpolantFactoryMethodDiscrete: function InterpolantFactoryMethodDiscrete(result) {\r\n\t\t\treturn new DiscreteInterpolant(this.times, this.values, this.getValueSize(), result);\r\n\t\t},\r\n\t\tInterpolantFactoryMethodLinear: function InterpolantFactoryMethodLinear(result) {\r\n\t\t\treturn new LinearInterpolant(this.times, this.values, this.getValueSize(), result);\r\n\t\t},\r\n\t\tInterpolantFactoryMethodSmooth: function InterpolantFactoryMethodSmooth(result) {\r\n\t\t\treturn new CubicInterpolant(this.times, this.values, this.getValueSize(), result);\r\n\t\t},\r\n\t\tsetInterpolation: function setInterpolation(interpolation) {\r\n\t\t\tvar factoryMethod;\r\n\r\n\t\t\tswitch (interpolation) {\r\n\t\t\t\tcase InterpolateDiscrete:\r\n\t\t\t\t\tfactoryMethod = this.InterpolantFactoryMethodDiscrete;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase InterpolateLinear:\r\n\t\t\t\t\tfactoryMethod = this.InterpolantFactoryMethodLinear;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase InterpolateSmooth:\r\n\t\t\t\t\tfactoryMethod = this.InterpolantFactoryMethodSmooth;\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tif (factoryMethod === undefined) {\r\n\t\t\t\tvar message = \"unsupported interpolation for \" + this.ValueTypeName + \" keyframe track named \" + this.name;\r\n\r\n\t\t\t\tif (this.createInterpolant === undefined) {\r\n\t\t\t\t\t// fall back to default, unless the default itself is messed up\r\n\t\t\t\t\tif (interpolation !== this.DefaultInterpolation) {\r\n\t\t\t\t\t\tthis.setInterpolation(this.DefaultInterpolation);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthrow new Error(message); // fatal, in this case\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconsole.warn('THREE.KeyframeTrack:', message);\r\n\t\t\t\treturn this;\r\n\t\t\t}\r\n\r\n\t\t\tthis.createInterpolant = factoryMethod;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tgetInterpolation: function getInterpolation() {\r\n\t\t\tswitch (this.createInterpolant) {\r\n\t\t\t\tcase this.InterpolantFactoryMethodDiscrete:\r\n\t\t\t\t\treturn InterpolateDiscrete;\r\n\r\n\t\t\t\tcase this.InterpolantFactoryMethodLinear:\r\n\t\t\t\t\treturn InterpolateLinear;\r\n\r\n\t\t\t\tcase this.InterpolantFactoryMethodSmooth:\r\n\t\t\t\t\treturn InterpolateSmooth;\r\n\t\t\t}\r\n\t\t},\r\n\t\tgetValueSize: function getValueSize() {\r\n\t\t\treturn this.values.length / this.times.length;\r\n\t\t},\r\n\t\t// move all keyframes either forwards or backwards in time\r\n\t\tshift: function shift(timeOffset) {\r\n\t\t\tif (timeOffset !== 0.0) {\r\n\t\t\t\tvar times = this.times;\r\n\r\n\t\t\t\tfor (var i = 0, n = times.length; i !== n; ++i) {\r\n\t\t\t\t\ttimes[i] += timeOffset;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\t// scale all keyframe times by a factor (useful for frame <-> seconds conversions)\r\n\t\tscale: function scale(timeScale) {\r\n\t\t\tif (timeScale !== 1.0) {\r\n\t\t\t\tvar times = this.times;\r\n\r\n\t\t\t\tfor (var i = 0, n = times.length; i !== n; ++i) {\r\n\t\t\t\t\ttimes[i] *= timeScale;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\t// removes keyframes before and after animation without changing any values within the range [startTime, endTime].\r\n\t\t// IMPORTANT: We do not shift around keys to the start of the track time, because for interpolated keys this will change their values\r\n\t\ttrim: function trim(startTime, endTime) {\r\n\t\t\tvar times = this.times,\r\n\t\t\t\t\tnKeys = times.length;\r\n\t\t\tvar from = 0,\r\n\t\t\t\t\tto = nKeys - 1;\r\n\r\n\t\t\twhile (from !== nKeys && times[from] < startTime) {\r\n\t\t\t\t++from;\r\n\t\t\t}\r\n\r\n\t\t\twhile (to !== -1 && times[to] > endTime) {\r\n\t\t\t\t--to;\r\n\t\t\t}\r\n\r\n\t\t\t++to; // inclusive -> exclusive bound\r\n\r\n\t\t\tif (from !== 0 || to !== nKeys) {\r\n\t\t\t\t// empty tracks are forbidden, so keep at least one keyframe\r\n\t\t\t\tif (from >= to) {\r\n\t\t\t\t\tto = Math.max(to, 1);\r\n\t\t\t\t\tfrom = to - 1;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar stride = this.getValueSize();\r\n\t\t\t\tthis.times = AnimationUtils.arraySlice(times, from, to);\r\n\t\t\t\tthis.values = AnimationUtils.arraySlice(this.values, from * stride, to * stride);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\t// ensure we do not get a GarbageInGarbageOut situation, make sure tracks are at least minimally viable\r\n\t\tvalidate: function validate() {\r\n\t\t\tvar valid = true;\r\n\t\t\tvar valueSize = this.getValueSize();\r\n\r\n\t\t\tif (valueSize - Math.floor(valueSize) !== 0) {\r\n\t\t\t\tconsole.error('THREE.KeyframeTrack: Invalid value size in track.', this);\r\n\t\t\t\tvalid = false;\r\n\t\t\t}\r\n\r\n\t\t\tvar times = this.times,\r\n\t\t\t\t\tvalues = this.values,\r\n\t\t\t\t\tnKeys = times.length;\r\n\r\n\t\t\tif (nKeys === 0) {\r\n\t\t\t\tconsole.error('THREE.KeyframeTrack: Track is empty.', this);\r\n\t\t\t\tvalid = false;\r\n\t\t\t}\r\n\r\n\t\t\tvar prevTime = null;\r\n\r\n\t\t\tfor (var i = 0; i !== nKeys; i++) {\r\n\t\t\t\tvar currTime = times[i];\r\n\r\n\t\t\t\tif (typeof currTime === 'number' && isNaN(currTime)) {\r\n\t\t\t\t\tconsole.error('THREE.KeyframeTrack: Time is not a valid number.', this, i, currTime);\r\n\t\t\t\t\tvalid = false;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (prevTime !== null && prevTime > currTime) {\r\n\t\t\t\t\tconsole.error('THREE.KeyframeTrack: Out of order keys.', this, i, currTime, prevTime);\r\n\t\t\t\t\tvalid = false;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tprevTime = currTime;\r\n\t\t\t}\r\n\r\n\t\t\tif (values !== undefined) {\r\n\t\t\t\tif (AnimationUtils.isTypedArray(values)) {\r\n\t\t\t\t\tfor (var _i = 0, n = values.length; _i !== n; ++_i) {\r\n\t\t\t\t\t\tvar value = values[_i];\r\n\r\n\t\t\t\t\t\tif (isNaN(value)) {\r\n\t\t\t\t\t\t\tconsole.error('THREE.KeyframeTrack: Value is not a valid number.', this, _i, value);\r\n\t\t\t\t\t\t\tvalid = false;\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn valid;\r\n\t\t},\r\n\t\t// removes equivalent sequential keys as common in morph target sequences\r\n\t\t// (0,0,0,0,1,1,1,0,0,0,0,0,0,0) --> (0,0,1,1,0,0)\r\n\t\toptimize: function optimize() {\r\n\t\t\t// times or values may be shared with other tracks, so overwriting is unsafe\r\n\t\t\tvar times = AnimationUtils.arraySlice(this.times),\r\n\t\t\t\t\tvalues = AnimationUtils.arraySlice(this.values),\r\n\t\t\t\t\tstride = this.getValueSize(),\r\n\t\t\t\t\tsmoothInterpolation = this.getInterpolation() === InterpolateSmooth,\r\n\t\t\t\t\tlastIndex = times.length - 1;\r\n\t\t\tvar writeIndex = 1;\r\n\r\n\t\t\tfor (var i = 1; i < lastIndex; ++i) {\r\n\t\t\t\tvar keep = false;\r\n\t\t\t\tvar time = times[i];\r\n\t\t\t\tvar timeNext = times[i + 1]; // remove adjacent keyframes scheduled at the same time\r\n\r\n\t\t\t\tif (time !== timeNext && (i !== 1 || time !== time[0])) {\r\n\t\t\t\t\tif (!smoothInterpolation) {\r\n\t\t\t\t\t\t// remove unnecessary keyframes same as their neighbors\r\n\t\t\t\t\t\tvar offset = i * stride,\r\n\t\t\t\t\t\t\t\toffsetP = offset - stride,\r\n\t\t\t\t\t\t\t\toffsetN = offset + stride;\r\n\r\n\t\t\t\t\t\tfor (var j = 0; j !== stride; ++j) {\r\n\t\t\t\t\t\t\tvar value = values[offset + j];\r\n\r\n\t\t\t\t\t\t\tif (value !== values[offsetP + j] || value !== values[offsetN + j]) {\r\n\t\t\t\t\t\t\t\tkeep = true;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tkeep = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t} // in-place compaction\r\n\r\n\r\n\t\t\t\tif (keep) {\r\n\t\t\t\t\tif (i !== writeIndex) {\r\n\t\t\t\t\t\ttimes[writeIndex] = times[i];\r\n\t\t\t\t\t\tvar readOffset = i * stride,\r\n\t\t\t\t\t\t\t\twriteOffset = writeIndex * stride;\r\n\r\n\t\t\t\t\t\tfor (var _j = 0; _j !== stride; ++_j) {\r\n\t\t\t\t\t\t\tvalues[writeOffset + _j] = values[readOffset + _j];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t++writeIndex;\r\n\t\t\t\t}\r\n\t\t\t} // flush last keyframe (compaction looks ahead)\r\n\r\n\r\n\t\t\tif (lastIndex > 0) {\r\n\t\t\t\ttimes[writeIndex] = times[lastIndex];\r\n\r\n\t\t\t\tfor (var _readOffset = lastIndex * stride, _writeOffset = writeIndex * stride, _j2 = 0; _j2 !== stride; ++_j2) {\r\n\t\t\t\t\tvalues[_writeOffset + _j2] = values[_readOffset + _j2];\r\n\t\t\t\t}\r\n\r\n\t\t\t\t++writeIndex;\r\n\t\t\t}\r\n\r\n\t\t\tif (writeIndex !== times.length) {\r\n\t\t\t\tthis.times = AnimationUtils.arraySlice(times, 0, writeIndex);\r\n\t\t\t\tthis.values = AnimationUtils.arraySlice(values, 0, writeIndex * stride);\r\n\t\t\t} else {\r\n\t\t\t\tthis.times = times;\r\n\t\t\t\tthis.values = values;\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tclone: function clone() {\r\n\t\t\tvar times = AnimationUtils.arraySlice(this.times, 0);\r\n\t\t\tvar values = AnimationUtils.arraySlice(this.values, 0);\r\n\t\t\tvar TypedKeyframeTrack = this.constructor;\r\n\t\t\tvar track = new TypedKeyframeTrack(this.name, times, values); // Interpolant argument to constructor is not saved, so copy the factory method directly.\r\n\r\n\t\t\ttrack.createInterpolant = this.createInterpolant;\r\n\t\t\treturn track;\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t * A Track of Boolean keyframe values.\r\n\t */\r\n\r\n\tfunction BooleanKeyframeTrack(name, times, values) {\r\n\t\tKeyframeTrack.call(this, name, times, values);\r\n\t}\r\n\r\n\tBooleanKeyframeTrack.prototype = Object.assign(Object.create(KeyframeTrack.prototype), {\r\n\t\tconstructor: BooleanKeyframeTrack,\r\n\t\tValueTypeName: 'bool',\r\n\t\tValueBufferType: Array,\r\n\t\tDefaultInterpolation: InterpolateDiscrete,\r\n\t\tInterpolantFactoryMethodLinear: undefined,\r\n\t\tInterpolantFactoryMethodSmooth: undefined // Note: Actually this track could have a optimized / compressed\r\n\t\t// representation of a single value and a custom interpolant that\r\n\t\t// computes \"firstValue ^ isOdd( index )\".\r\n\r\n\t});\r\n\r\n\t/**\r\n\t * A Track of keyframe values that represent color.\r\n\t */\r\n\r\n\tfunction ColorKeyframeTrack(name, times, values, interpolation) {\r\n\t\tKeyframeTrack.call(this, name, times, values, interpolation);\r\n\t}\r\n\r\n\tColorKeyframeTrack.prototype = Object.assign(Object.create(KeyframeTrack.prototype), {\r\n\t\tconstructor: ColorKeyframeTrack,\r\n\t\tValueTypeName: 'color' // ValueBufferType is inherited\r\n\t\t// DefaultInterpolation is inherited\r\n\t\t// Note: Very basic implementation and nothing special yet.\r\n\t\t// However, this is the place for color space parameterization.\r\n\r\n\t});\r\n\r\n\t/**\r\n\t * A Track of numeric keyframe values.\r\n\t */\r\n\r\n\tfunction NumberKeyframeTrack(name, times, values, interpolation) {\r\n\t\tKeyframeTrack.call(this, name, times, values, interpolation);\r\n\t}\r\n\r\n\tNumberKeyframeTrack.prototype = Object.assign(Object.create(KeyframeTrack.prototype), {\r\n\t\tconstructor: NumberKeyframeTrack,\r\n\t\tValueTypeName: 'number' // ValueBufferType is inherited\r\n\t\t// DefaultInterpolation is inherited\r\n\r\n\t});\r\n\r\n\t/**\r\n\t * Spherical linear unit quaternion interpolant.\r\n\t */\r\n\r\n\tfunction QuaternionLinearInterpolant(parameterPositions, sampleValues, sampleSize, resultBuffer) {\r\n\t\tInterpolant.call(this, parameterPositions, sampleValues, sampleSize, resultBuffer);\r\n\t}\r\n\r\n\tQuaternionLinearInterpolant.prototype = Object.assign(Object.create(Interpolant.prototype), {\r\n\t\tconstructor: QuaternionLinearInterpolant,\r\n\t\tinterpolate_: function interpolate_(i1, t0, t, t1) {\r\n\t\t\tvar result = this.resultBuffer,\r\n\t\t\t\t\tvalues = this.sampleValues,\r\n\t\t\t\t\tstride = this.valueSize,\r\n\t\t\t\t\talpha = (t - t0) / (t1 - t0);\r\n\t\t\tvar offset = i1 * stride;\r\n\r\n\t\t\tfor (var end = offset + stride; offset !== end; offset += 4) {\r\n\t\t\t\tQuaternion.slerpFlat(result, 0, values, offset - stride, values, offset, alpha);\r\n\t\t\t}\r\n\r\n\t\t\treturn result;\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t * A Track of quaternion keyframe values.\r\n\t */\r\n\r\n\tfunction QuaternionKeyframeTrack(name, times, values, interpolation) {\r\n\t\tKeyframeTrack.call(this, name, times, values, interpolation);\r\n\t}\r\n\r\n\tQuaternionKeyframeTrack.prototype = Object.assign(Object.create(KeyframeTrack.prototype), {\r\n\t\tconstructor: QuaternionKeyframeTrack,\r\n\t\tValueTypeName: 'quaternion',\r\n\t\t// ValueBufferType is inherited\r\n\t\tDefaultInterpolation: InterpolateLinear,\r\n\t\tInterpolantFactoryMethodLinear: function InterpolantFactoryMethodLinear(result) {\r\n\t\t\treturn new QuaternionLinearInterpolant(this.times, this.values, this.getValueSize(), result);\r\n\t\t},\r\n\t\tInterpolantFactoryMethodSmooth: undefined // not yet implemented\r\n\r\n\t});\r\n\r\n\t/**\r\n\t * A Track that interpolates Strings\r\n\t */\r\n\r\n\tfunction StringKeyframeTrack(name, times, values, interpolation) {\r\n\t\tKeyframeTrack.call(this, name, times, values, interpolation);\r\n\t}\r\n\r\n\tStringKeyframeTrack.prototype = Object.assign(Object.create(KeyframeTrack.prototype), {\r\n\t\tconstructor: StringKeyframeTrack,\r\n\t\tValueTypeName: 'string',\r\n\t\tValueBufferType: Array,\r\n\t\tDefaultInterpolation: InterpolateDiscrete,\r\n\t\tInterpolantFactoryMethodLinear: undefined,\r\n\t\tInterpolantFactoryMethodSmooth: undefined\r\n\t});\r\n\r\n\t/**\r\n\t * A Track of vectored keyframe values.\r\n\t */\r\n\r\n\tfunction VectorKeyframeTrack(name, times, values, interpolation) {\r\n\t\tKeyframeTrack.call(this, name, times, values, interpolation);\r\n\t}\r\n\r\n\tVectorKeyframeTrack.prototype = Object.assign(Object.create(KeyframeTrack.prototype), {\r\n\t\tconstructor: VectorKeyframeTrack,\r\n\t\tValueTypeName: 'vector' // ValueBufferType is inherited\r\n\t\t// DefaultInterpolation is inherited\r\n\r\n\t});\r\n\r\n\tfunction AnimationClip(name, duration, tracks, blendMode) {\r\n\t\tthis.name = name;\r\n\t\tthis.tracks = tracks;\r\n\t\tthis.duration = duration !== undefined ? duration : -1;\r\n\t\tthis.blendMode = blendMode !== undefined ? blendMode : NormalAnimationBlendMode;\r\n\t\tthis.uuid = MathUtils.generateUUID(); // this means it should figure out its duration by scanning the tracks\r\n\r\n\t\tif (this.duration < 0) {\r\n\t\t\tthis.resetDuration();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction getTrackTypeForValueTypeName(typeName) {\r\n\t\tswitch (typeName.toLowerCase()) {\r\n\t\t\tcase 'scalar':\r\n\t\t\tcase 'double':\r\n\t\t\tcase 'float':\r\n\t\t\tcase 'number':\r\n\t\t\tcase 'integer':\r\n\t\t\t\treturn NumberKeyframeTrack;\r\n\r\n\t\t\tcase 'vector':\r\n\t\t\tcase 'vector2':\r\n\t\t\tcase 'vector3':\r\n\t\t\tcase 'vector4':\r\n\t\t\t\treturn VectorKeyframeTrack;\r\n\r\n\t\t\tcase 'color':\r\n\t\t\t\treturn ColorKeyframeTrack;\r\n\r\n\t\t\tcase 'quaternion':\r\n\t\t\t\treturn QuaternionKeyframeTrack;\r\n\r\n\t\t\tcase 'bool':\r\n\t\t\tcase 'boolean':\r\n\t\t\t\treturn BooleanKeyframeTrack;\r\n\r\n\t\t\tcase 'string':\r\n\t\t\t\treturn StringKeyframeTrack;\r\n\t\t}\r\n\r\n\t\tthrow new Error('THREE.KeyframeTrack: Unsupported typeName: ' + typeName);\r\n\t}\r\n\r\n\tfunction parseKeyframeTrack(json) {\r\n\t\tif (json.type === undefined) {\r\n\t\t\tthrow new Error('THREE.KeyframeTrack: track type undefined, can not parse');\r\n\t\t}\r\n\r\n\t\tvar trackType = getTrackTypeForValueTypeName(json.type);\r\n\r\n\t\tif (json.times === undefined) {\r\n\t\t\tvar times = [],\r\n\t\t\t\t\tvalues = [];\r\n\t\t\tAnimationUtils.flattenJSON(json.keys, times, values, 'value');\r\n\t\t\tjson.times = times;\r\n\t\t\tjson.values = values;\r\n\t\t} // derived classes can define a static parse method\r\n\r\n\r\n\t\tif (trackType.parse !== undefined) {\r\n\t\t\treturn trackType.parse(json);\r\n\t\t} else {\r\n\t\t\t// by default, we assume a constructor compatible with the base\r\n\t\t\treturn new trackType(json.name, json.times, json.values, json.interpolation);\r\n\t\t}\r\n\t}\r\n\r\n\tObject.assign(AnimationClip, {\r\n\t\tparse: function parse(json) {\r\n\t\t\tvar tracks = [],\r\n\t\t\t\t\tjsonTracks = json.tracks,\r\n\t\t\t\t\tframeTime = 1.0 / (json.fps || 1.0);\r\n\r\n\t\t\tfor (var i = 0, n = jsonTracks.length; i !== n; ++i) {\r\n\t\t\t\ttracks.push(parseKeyframeTrack(jsonTracks[i]).scale(frameTime));\r\n\t\t\t}\r\n\r\n\t\t\tvar clip = new AnimationClip(json.name, json.duration, tracks, json.blendMode);\r\n\t\t\tclip.uuid = json.uuid;\r\n\t\t\treturn clip;\r\n\t\t},\r\n\t\ttoJSON: function toJSON(clip) {\r\n\t\t\tvar tracks = [],\r\n\t\t\t\t\tclipTracks = clip.tracks;\r\n\t\t\tvar json = {\r\n\t\t\t\t'name': clip.name,\r\n\t\t\t\t'duration': clip.duration,\r\n\t\t\t\t'tracks': tracks,\r\n\t\t\t\t'uuid': clip.uuid,\r\n\t\t\t\t'blendMode': clip.blendMode\r\n\t\t\t};\r\n\r\n\t\t\tfor (var i = 0, n = clipTracks.length; i !== n; ++i) {\r\n\t\t\t\ttracks.push(KeyframeTrack.toJSON(clipTracks[i]));\r\n\t\t\t}\r\n\r\n\t\t\treturn json;\r\n\t\t},\r\n\t\tCreateFromMorphTargetSequence: function CreateFromMorphTargetSequence(name, morphTargetSequence, fps, noLoop) {\r\n\t\t\tvar numMorphTargets = morphTargetSequence.length;\r\n\t\t\tvar tracks = [];\r\n\r\n\t\t\tfor (var i = 0; i < numMorphTargets; i++) {\r\n\t\t\t\tvar times = [];\r\n\t\t\t\tvar values = [];\r\n\t\t\t\ttimes.push((i + numMorphTargets - 1) % numMorphTargets, i, (i + 1) % numMorphTargets);\r\n\t\t\t\tvalues.push(0, 1, 0);\r\n\t\t\t\tvar order = AnimationUtils.getKeyframeOrder(times);\r\n\t\t\t\ttimes = AnimationUtils.sortedArray(times, 1, order);\r\n\t\t\t\tvalues = AnimationUtils.sortedArray(values, 1, order); // if there is a key at the first frame, duplicate it as the\r\n\t\t\t\t// last frame as well for perfect loop.\r\n\r\n\t\t\t\tif (!noLoop && times[0] === 0) {\r\n\t\t\t\t\ttimes.push(numMorphTargets);\r\n\t\t\t\t\tvalues.push(values[0]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttracks.push(new NumberKeyframeTrack('.morphTargetInfluences[' + morphTargetSequence[i].name + ']', times, values).scale(1.0 / fps));\r\n\t\t\t}\r\n\r\n\t\t\treturn new AnimationClip(name, -1, tracks);\r\n\t\t},\r\n\t\tfindByName: function findByName(objectOrClipArray, name) {\r\n\t\t\tvar clipArray = objectOrClipArray;\r\n\r\n\t\t\tif (!Array.isArray(objectOrClipArray)) {\r\n\t\t\t\tvar o = objectOrClipArray;\r\n\t\t\t\tclipArray = o.geometry && o.geometry.animations || o.animations;\r\n\t\t\t}\r\n\r\n\t\t\tfor (var i = 0; i < clipArray.length; i++) {\r\n\t\t\t\tif (clipArray[i].name === name) {\r\n\t\t\t\t\treturn clipArray[i];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\tCreateClipsFromMorphTargetSequences: function CreateClipsFromMorphTargetSequences(morphTargets, fps, noLoop) {\r\n\t\t\tvar animationToMorphTargets = {}; // tested with https://regex101.com/ on trick sequences\r\n\t\t\t// such flamingo_flyA_003, flamingo_run1_003, crdeath0059\r\n\r\n\t\t\tvar pattern = /^([\\w-]*?)([\\d]+)$/; // sort morph target names into animation groups based\r\n\t\t\t// patterns like Walk_001, Walk_002, Run_001, Run_002\r\n\r\n\t\t\tfor (var i = 0, il = morphTargets.length; i < il; i++) {\r\n\t\t\t\tvar morphTarget = morphTargets[i];\r\n\t\t\t\tvar parts = morphTarget.name.match(pattern);\r\n\r\n\t\t\t\tif (parts && parts.length > 1) {\r\n\t\t\t\t\tvar name = parts[1];\r\n\t\t\t\t\tvar animationMorphTargets = animationToMorphTargets[name];\r\n\r\n\t\t\t\t\tif (!animationMorphTargets) {\r\n\t\t\t\t\t\tanimationToMorphTargets[name] = animationMorphTargets = [];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tanimationMorphTargets.push(morphTarget);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar clips = [];\r\n\r\n\t\t\tfor (var _name in animationToMorphTargets) {\r\n\t\t\t\tclips.push(AnimationClip.CreateFromMorphTargetSequence(_name, animationToMorphTargets[_name], fps, noLoop));\r\n\t\t\t}\r\n\r\n\t\t\treturn clips;\r\n\t\t},\r\n\t\t// parse the animation.hierarchy format\r\n\t\tparseAnimation: function parseAnimation(animation, bones) {\r\n\t\t\tif (!animation) {\r\n\t\t\t\tconsole.error('THREE.AnimationClip: No animation in JSONLoader data.');\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\t\tvar addNonemptyTrack = function addNonemptyTrack(trackType, trackName, animationKeys, propertyName, destTracks) {\r\n\t\t\t\t// only return track if there are actually keys.\r\n\t\t\t\tif (animationKeys.length !== 0) {\r\n\t\t\t\t\tvar times = [];\r\n\t\t\t\t\tvar values = [];\r\n\t\t\t\t\tAnimationUtils.flattenJSON(animationKeys, times, values, propertyName); // empty keys are filtered out, so check again\r\n\r\n\t\t\t\t\tif (times.length !== 0) {\r\n\t\t\t\t\t\tdestTracks.push(new trackType(trackName, times, values));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tvar tracks = [];\r\n\t\t\tvar clipName = animation.name || 'default';\r\n\t\t\tvar fps = animation.fps || 30;\r\n\t\t\tvar blendMode = animation.blendMode; // automatic length determination in AnimationClip.\r\n\r\n\t\t\tvar duration = animation.length || -1;\r\n\t\t\tvar hierarchyTracks = animation.hierarchy || [];\r\n\r\n\t\t\tfor (var h = 0; h < hierarchyTracks.length; h++) {\r\n\t\t\t\tvar animationKeys = hierarchyTracks[h].keys; // skip empty tracks\r\n\r\n\t\t\t\tif (!animationKeys || animationKeys.length === 0) continue; // process morph targets\r\n\r\n\t\t\t\tif (animationKeys[0].morphTargets) {\r\n\t\t\t\t\t// figure out all morph targets used in this track\r\n\t\t\t\t\tvar morphTargetNames = {};\r\n\t\t\t\t\tvar k = void 0;\r\n\r\n\t\t\t\t\tfor (k = 0; k < animationKeys.length; k++) {\r\n\t\t\t\t\t\tif (animationKeys[k].morphTargets) {\r\n\t\t\t\t\t\t\tfor (var m = 0; m < animationKeys[k].morphTargets.length; m++) {\r\n\t\t\t\t\t\t\t\tmorphTargetNames[animationKeys[k].morphTargets[m]] = -1;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} // create a track for each morph target with all zero\r\n\t\t\t\t\t// morphTargetInfluences except for the keys in which\r\n\t\t\t\t\t// the morphTarget is named.\r\n\r\n\r\n\t\t\t\t\tfor (var morphTargetName in morphTargetNames) {\r\n\t\t\t\t\t\tvar times = [];\r\n\t\t\t\t\t\tvar values = [];\r\n\r\n\t\t\t\t\t\tfor (var _m = 0; _m !== animationKeys[k].morphTargets.length; ++_m) {\r\n\t\t\t\t\t\t\tvar animationKey = animationKeys[k];\r\n\t\t\t\t\t\t\ttimes.push(animationKey.time);\r\n\t\t\t\t\t\t\tvalues.push(animationKey.morphTarget === morphTargetName ? 1 : 0);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\ttracks.push(new NumberKeyframeTrack('.morphTargetInfluence[' + morphTargetName + ']', times, values));\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tduration = morphTargetNames.length * (fps || 1.0);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// ...assume skeletal animation\r\n\t\t\t\t\tvar boneName = '.bones[' + bones[h].name + ']';\r\n\t\t\t\t\taddNonemptyTrack(VectorKeyframeTrack, boneName + '.position', animationKeys, 'pos', tracks);\r\n\t\t\t\t\taddNonemptyTrack(QuaternionKeyframeTrack, boneName + '.quaternion', animationKeys, 'rot', tracks);\r\n\t\t\t\t\taddNonemptyTrack(VectorKeyframeTrack, boneName + '.scale', animationKeys, 'scl', tracks);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (tracks.length === 0) {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\t\tvar clip = new AnimationClip(clipName, duration, tracks, blendMode);\r\n\t\t\treturn clip;\r\n\t\t}\r\n\t});\r\n\tObject.assign(AnimationClip.prototype, {\r\n\t\tresetDuration: function resetDuration() {\r\n\t\t\tvar tracks = this.tracks;\r\n\t\t\tvar duration = 0;\r\n\r\n\t\t\tfor (var i = 0, n = tracks.length; i !== n; ++i) {\r\n\t\t\t\tvar track = this.tracks[i];\r\n\t\t\t\tduration = Math.max(duration, track.times[track.times.length - 1]);\r\n\t\t\t}\r\n\r\n\t\t\tthis.duration = duration;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\ttrim: function trim() {\r\n\t\t\tfor (var i = 0; i < this.tracks.length; i++) {\r\n\t\t\t\tthis.tracks[i].trim(0, this.duration);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tvalidate: function validate() {\r\n\t\t\tvar valid = true;\r\n\r\n\t\t\tfor (var i = 0; i < this.tracks.length; i++) {\r\n\t\t\t\tvalid = valid && this.tracks[i].validate();\r\n\t\t\t}\r\n\r\n\t\t\treturn valid;\r\n\t\t},\r\n\t\toptimize: function optimize() {\r\n\t\t\tfor (var i = 0; i < this.tracks.length; i++) {\r\n\t\t\t\tthis.tracks[i].optimize();\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tclone: function clone() {\r\n\t\t\tvar tracks = [];\r\n\r\n\t\t\tfor (var i = 0; i < this.tracks.length; i++) {\r\n\t\t\t\ttracks.push(this.tracks[i].clone());\r\n\t\t\t}\r\n\r\n\t\t\treturn new AnimationClip(this.name, this.duration, tracks, this.blendMode);\r\n\t\t},\r\n\t\ttoJSON: function toJSON() {\r\n\t\t\treturn AnimationClip.toJSON(this);\r\n\t\t}\r\n\t});\r\n\r\n\tvar Cache = {\r\n\t\tenabled: false,\r\n\t\tfiles: {},\r\n\t\tadd: function add(key, file) {\r\n\t\t\tif (this.enabled === false) return; // console.log( 'THREE.Cache', 'Adding key:', key );\r\n\r\n\t\t\tthis.files[key] = file;\r\n\t\t},\r\n\t\tget: function get(key) {\r\n\t\t\tif (this.enabled === false) return; // console.log( 'THREE.Cache', 'Checking key:', key );\r\n\r\n\t\t\treturn this.files[key];\r\n\t\t},\r\n\t\tremove: function remove(key) {\r\n\t\t\tdelete this.files[key];\r\n\t\t},\r\n\t\tclear: function clear() {\r\n\t\t\tthis.files = {};\r\n\t\t}\r\n\t};\r\n\r\n\tfunction LoadingManager(onLoad, onProgress, onError) {\r\n\t\tvar scope = this;\r\n\t\tvar isLoading = false;\r\n\t\tvar itemsLoaded = 0;\r\n\t\tvar itemsTotal = 0;\r\n\t\tvar urlModifier = undefined;\r\n\t\tvar handlers = []; // Refer to #5689 for the reason why we don't set .onStart\r\n\t\t// in the constructor\r\n\r\n\t\tthis.onStart = undefined;\r\n\t\tthis.onLoad = onLoad;\r\n\t\tthis.onProgress = onProgress;\r\n\t\tthis.onError = onError;\r\n\r\n\t\tthis.itemStart = function (url) {\r\n\t\t\titemsTotal++;\r\n\r\n\t\t\tif (isLoading === false) {\r\n\t\t\t\tif (scope.onStart !== undefined) {\r\n\t\t\t\t\tscope.onStart(url, itemsLoaded, itemsTotal);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tisLoading = true;\r\n\t\t};\r\n\r\n\t\tthis.itemEnd = function (url) {\r\n\t\t\titemsLoaded++;\r\n\r\n\t\t\tif (scope.onProgress !== undefined) {\r\n\t\t\t\tscope.onProgress(url, itemsLoaded, itemsTotal);\r\n\t\t\t}\r\n\r\n\t\t\tif (itemsLoaded === itemsTotal) {\r\n\t\t\t\tisLoading = false;\r\n\r\n\t\t\t\tif (scope.onLoad !== undefined) {\r\n\t\t\t\t\tscope.onLoad();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tthis.itemError = function (url) {\r\n\t\t\tif (scope.onError !== undefined) {\r\n\t\t\t\tscope.onError(url);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tthis.resolveURL = function (url) {\r\n\t\t\tif (urlModifier) {\r\n\t\t\t\treturn urlModifier(url);\r\n\t\t\t}\r\n\r\n\t\t\treturn url;\r\n\t\t};\r\n\r\n\t\tthis.setURLModifier = function (transform) {\r\n\t\t\turlModifier = transform;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\tthis.addHandler = function (regex, loader) {\r\n\t\t\thandlers.push(regex, loader);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\tthis.removeHandler = function (regex) {\r\n\t\t\tvar index = handlers.indexOf(regex);\r\n\r\n\t\t\tif (index !== -1) {\r\n\t\t\t\thandlers.splice(index, 2);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\tthis.getHandler = function (file) {\r\n\t\t\tfor (var i = 0, l = handlers.length; i < l; i += 2) {\r\n\t\t\t\tvar regex = handlers[i];\r\n\t\t\t\tvar loader = handlers[i + 1];\r\n\t\t\t\tif (regex.global) regex.lastIndex = 0; // see #17920\r\n\r\n\t\t\t\tif (regex.test(file)) {\r\n\t\t\t\t\treturn loader;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn null;\r\n\t\t};\r\n\t}\r\n\r\n\tvar DefaultLoadingManager = new LoadingManager();\r\n\r\n\tfunction Loader(manager) {\r\n\t\tthis.manager = manager !== undefined ? manager : DefaultLoadingManager;\r\n\t\tthis.crossOrigin = 'anonymous';\r\n\t\tthis.withCredentials = false;\r\n\t\tthis.path = '';\r\n\t\tthis.resourcePath = '';\r\n\t\tthis.requestHeader = {};\r\n\t}\r\n\r\n\tObject.assign(Loader.prototype, {\r\n\t\tload: function load()\r\n\t\t/* url, onLoad, onProgress, onError */\r\n\t\t{},\r\n\t\tloadAsync: function loadAsync(url, onProgress) {\r\n\t\t\tvar scope = this;\r\n\t\t\treturn new Promise(function (resolve, reject) {\r\n\t\t\t\tscope.load(url, resolve, onProgress, reject);\r\n\t\t\t});\r\n\t\t},\r\n\t\tparse: function parse()\r\n\t\t/* data */\r\n\t\t{},\r\n\t\tsetCrossOrigin: function setCrossOrigin(crossOrigin) {\r\n\t\t\tthis.crossOrigin = crossOrigin;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tsetWithCredentials: function setWithCredentials(value) {\r\n\t\t\tthis.withCredentials = value;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tsetPath: function setPath(path) {\r\n\t\t\tthis.path = path;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tsetResourcePath: function setResourcePath(resourcePath) {\r\n\t\t\tthis.resourcePath = resourcePath;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tsetRequestHeader: function setRequestHeader(requestHeader) {\r\n\t\t\tthis.requestHeader = requestHeader;\r\n\t\t\treturn this;\r\n\t\t}\r\n\t});\r\n\r\n\tvar loading = {};\r\n\r\n\tfunction FileLoader(manager) {\r\n\t\tLoader.call(this, manager);\r\n\t}\r\n\r\n\tFileLoader.prototype = Object.assign(Object.create(Loader.prototype), {\r\n\t\tconstructor: FileLoader,\r\n\t\tload: function load(url, onLoad, onProgress, onError) {\r\n\t\t\tif (url === undefined) url = '';\r\n\t\t\tif (this.path !== undefined) url = this.path + url;\r\n\t\t\turl = this.manager.resolveURL(url);\r\n\t\t\tvar scope = this;\r\n\t\t\tvar cached = Cache.get(url);\r\n\r\n\t\t\tif (cached !== undefined) {\r\n\t\t\t\tscope.manager.itemStart(url);\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\tif (onLoad) onLoad(cached);\r\n\t\t\t\t\tscope.manager.itemEnd(url);\r\n\t\t\t\t}, 0);\r\n\t\t\t\treturn cached;\r\n\t\t\t} // Check if request is duplicate\r\n\r\n\r\n\t\t\tif (loading[url] !== undefined) {\r\n\t\t\t\tloading[url].push({\r\n\t\t\t\t\tonLoad: onLoad,\r\n\t\t\t\t\tonProgress: onProgress,\r\n\t\t\t\t\tonError: onError\r\n\t\t\t\t});\r\n\t\t\t\treturn;\r\n\t\t\t} // Check for data: URI\r\n\r\n\r\n\t\t\tvar dataUriRegex = /^data:(.*?)(;base64)?,(.*)$/;\r\n\t\t\tvar dataUriRegexResult = url.match(dataUriRegex);\r\n\t\t\tvar request; // Safari can not handle Data URIs through XMLHttpRequest so process manually\r\n\r\n\t\t\tif (dataUriRegexResult) {\r\n\t\t\t\tvar mimeType = dataUriRegexResult[1];\r\n\t\t\t\tvar isBase64 = !!dataUriRegexResult[2];\r\n\t\t\t\tvar data = dataUriRegexResult[3];\r\n\t\t\t\tdata = decodeURIComponent(data);\r\n\t\t\t\tif (isBase64) data = atob(data);\r\n\r\n\t\t\t\ttry {\r\n\t\t\t\t\tvar response;\r\n\t\t\t\t\tvar responseType = (this.responseType || '').toLowerCase();\r\n\r\n\t\t\t\t\tswitch (responseType) {\r\n\t\t\t\t\t\tcase 'arraybuffer':\r\n\t\t\t\t\t\tcase 'blob':\r\n\t\t\t\t\t\t\tvar view = new Uint8Array(data.length);\r\n\r\n\t\t\t\t\t\t\tfor (var i = 0; i < data.length; i++) {\r\n\t\t\t\t\t\t\t\tview[i] = data.charCodeAt(i);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (responseType === 'blob') {\r\n\t\t\t\t\t\t\t\tresponse = new Blob([view.buffer], {\r\n\t\t\t\t\t\t\t\t\ttype: mimeType\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tresponse = view.buffer;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 'document':\r\n\t\t\t\t\t\t\tvar parser = new DOMParser();\r\n\t\t\t\t\t\t\tresponse = parser.parseFromString(data, mimeType);\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 'json':\r\n\t\t\t\t\t\t\tresponse = JSON.parse(data);\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t// 'text' or other\r\n\t\t\t\t\t\t\tresponse = data;\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t} // Wait for next browser tick like standard XMLHttpRequest event dispatching does\r\n\r\n\r\n\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\tif (onLoad) onLoad(response);\r\n\t\t\t\t\t\tscope.manager.itemEnd(url);\r\n\t\t\t\t\t}, 0);\r\n\t\t\t\t} catch (error) {\r\n\t\t\t\t\t// Wait for next browser tick like standard XMLHttpRequest event dispatching does\r\n\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\tif (onError) onError(error);\r\n\t\t\t\t\t\tscope.manager.itemError(url);\r\n\t\t\t\t\t\tscope.manager.itemEnd(url);\r\n\t\t\t\t\t}, 0);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// Initialise array for duplicate requests\r\n\t\t\t\tloading[url] = [];\r\n\t\t\t\tloading[url].push({\r\n\t\t\t\t\tonLoad: onLoad,\r\n\t\t\t\t\tonProgress: onProgress,\r\n\t\t\t\t\tonError: onError\r\n\t\t\t\t});\r\n\t\t\t\trequest = new XMLHttpRequest();\r\n\t\t\t\trequest.open('GET', url, true);\r\n\t\t\t\trequest.addEventListener('load', function (event) {\r\n\t\t\t\t\tvar response = this.response;\r\n\t\t\t\t\tvar callbacks = loading[url];\r\n\t\t\t\t\tdelete loading[url];\r\n\r\n\t\t\t\t\tif (this.status === 200 || this.status === 0) {\r\n\t\t\t\t\t\t// Some browsers return HTTP Status 0 when using non-http protocol\r\n\t\t\t\t\t\t// e.g. 'file://' or 'data://'. Handle as success.\r\n\t\t\t\t\t\tif (this.status === 0) console.warn('THREE.FileLoader: HTTP Status 0 received.'); // Add to cache only on HTTP success, so that we do not cache\r\n\t\t\t\t\t\t// error response bodies as proper responses to requests.\r\n\r\n\t\t\t\t\t\tCache.add(url, response);\r\n\r\n\t\t\t\t\t\tfor (var _i = 0, il = callbacks.length; _i < il; _i++) {\r\n\t\t\t\t\t\t\tvar callback = callbacks[_i];\r\n\t\t\t\t\t\t\tif (callback.onLoad) callback.onLoad(response);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tscope.manager.itemEnd(url);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tfor (var _i2 = 0, _il = callbacks.length; _i2 < _il; _i2++) {\r\n\t\t\t\t\t\t\tvar _callback = callbacks[_i2];\r\n\t\t\t\t\t\t\tif (_callback.onError) _callback.onError(event);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tscope.manager.itemError(url);\r\n\t\t\t\t\t\tscope.manager.itemEnd(url);\r\n\t\t\t\t\t}\r\n\t\t\t\t}, false);\r\n\t\t\t\trequest.addEventListener('progress', function (event) {\r\n\t\t\t\t\tvar callbacks = loading[url];\r\n\r\n\t\t\t\t\tfor (var _i3 = 0, il = callbacks.length; _i3 < il; _i3++) {\r\n\t\t\t\t\t\tvar callback = callbacks[_i3];\r\n\t\t\t\t\t\tif (callback.onProgress) callback.onProgress(event);\r\n\t\t\t\t\t}\r\n\t\t\t\t}, false);\r\n\t\t\t\trequest.addEventListener('error', function (event) {\r\n\t\t\t\t\tvar callbacks = loading[url];\r\n\t\t\t\t\tdelete loading[url];\r\n\r\n\t\t\t\t\tfor (var _i4 = 0, il = callbacks.length; _i4 < il; _i4++) {\r\n\t\t\t\t\t\tvar callback = callbacks[_i4];\r\n\t\t\t\t\t\tif (callback.onError) callback.onError(event);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tscope.manager.itemError(url);\r\n\t\t\t\t\tscope.manager.itemEnd(url);\r\n\t\t\t\t}, false);\r\n\t\t\t\trequest.addEventListener('abort', function (event) {\r\n\t\t\t\t\tvar callbacks = loading[url];\r\n\t\t\t\t\tdelete loading[url];\r\n\r\n\t\t\t\t\tfor (var _i5 = 0, il = callbacks.length; _i5 < il; _i5++) {\r\n\t\t\t\t\t\tvar callback = callbacks[_i5];\r\n\t\t\t\t\t\tif (callback.onError) callback.onError(event);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tscope.manager.itemError(url);\r\n\t\t\t\t\tscope.manager.itemEnd(url);\r\n\t\t\t\t}, false);\r\n\t\t\t\tif (this.responseType !== undefined) request.responseType = this.responseType;\r\n\t\t\t\tif (this.withCredentials !== undefined) request.withCredentials = this.withCredentials;\r\n\t\t\t\tif (request.overrideMimeType) request.overrideMimeType(this.mimeType !== undefined ? this.mimeType : 'text/plain');\r\n\r\n\t\t\t\tfor (var header in this.requestHeader) {\r\n\t\t\t\t\trequest.setRequestHeader(header, this.requestHeader[header]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\trequest.send(null);\r\n\t\t\t}\r\n\r\n\t\t\tscope.manager.itemStart(url);\r\n\t\t\treturn request;\r\n\t\t},\r\n\t\tsetResponseType: function setResponseType(value) {\r\n\t\t\tthis.responseType = value;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tsetMimeType: function setMimeType(value) {\r\n\t\t\tthis.mimeType = value;\r\n\t\t\treturn this;\r\n\t\t}\r\n\t});\r\n\r\n\tfunction AnimationLoader(manager) {\r\n\t\tLoader.call(this, manager);\r\n\t}\r\n\r\n\tAnimationLoader.prototype = Object.assign(Object.create(Loader.prototype), {\r\n\t\tconstructor: AnimationLoader,\r\n\t\tload: function load(url, onLoad, onProgress, onError) {\r\n\t\t\tvar scope = this;\r\n\t\t\tvar loader = new FileLoader(scope.manager);\r\n\t\t\tloader.setPath(scope.path);\r\n\t\t\tloader.setRequestHeader(scope.requestHeader);\r\n\t\t\tloader.setWithCredentials(scope.withCredentials);\r\n\t\t\tloader.load(url, function (text) {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tonLoad(scope.parse(JSON.parse(text)));\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\tif (onError) {\r\n\t\t\t\t\t\tonError(e);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconsole.error(e);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tscope.manager.itemError(url);\r\n\t\t\t\t}\r\n\t\t\t}, onProgress, onError);\r\n\t\t},\r\n\t\tparse: function parse(json) {\r\n\t\t\tvar animations = [];\r\n\r\n\t\t\tfor (var i = 0; i < json.length; i++) {\r\n\t\t\t\tvar clip = AnimationClip.parse(json[i]);\r\n\t\t\t\tanimations.push(clip);\r\n\t\t\t}\r\n\r\n\t\t\treturn animations;\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t * Abstract Base class to block based textures loader (dds, pvr, ...)\r\n\t *\r\n\t * Sub classes have to implement the parse() method which will be used in load().\r\n\t */\r\n\r\n\tfunction CompressedTextureLoader(manager) {\r\n\t\tLoader.call(this, manager);\r\n\t}\r\n\r\n\tCompressedTextureLoader.prototype = Object.assign(Object.create(Loader.prototype), {\r\n\t\tconstructor: CompressedTextureLoader,\r\n\t\tload: function load(url, onLoad, onProgress, onError) {\r\n\t\t\tvar scope = this;\r\n\t\t\tvar images = [];\r\n\t\t\tvar texture = new CompressedTexture();\r\n\t\t\ttexture.image = images;\r\n\t\t\tvar loader = new FileLoader(this.manager);\r\n\t\t\tloader.setPath(this.path);\r\n\t\t\tloader.setResponseType('arraybuffer');\r\n\t\t\tloader.setRequestHeader(this.requestHeader);\r\n\t\t\tloader.setWithCredentials(scope.withCredentials);\r\n\t\t\tvar loaded = 0;\r\n\r\n\t\t\tfunction loadTexture(i) {\r\n\t\t\t\tloader.load(url[i], function (buffer) {\r\n\t\t\t\t\tvar texDatas = scope.parse(buffer, true);\r\n\t\t\t\t\timages[i] = {\r\n\t\t\t\t\t\twidth: texDatas.width,\r\n\t\t\t\t\t\theight: texDatas.height,\r\n\t\t\t\t\t\tformat: texDatas.format,\r\n\t\t\t\t\t\tmipmaps: texDatas.mipmaps\r\n\t\t\t\t\t};\r\n\t\t\t\t\tloaded += 1;\r\n\r\n\t\t\t\t\tif (loaded === 6) {\r\n\t\t\t\t\t\tif (texDatas.mipmapCount === 1) texture.minFilter = LinearFilter;\r\n\t\t\t\t\t\ttexture.format = texDatas.format;\r\n\t\t\t\t\t\ttexture.needsUpdate = true;\r\n\t\t\t\t\t\tif (onLoad) onLoad(texture);\r\n\t\t\t\t\t}\r\n\t\t\t\t}, onProgress, onError);\r\n\t\t\t}\r\n\r\n\t\t\tif (Array.isArray(url)) {\r\n\t\t\t\tfor (var i = 0, il = url.length; i < il; ++i) {\r\n\t\t\t\t\tloadTexture(i);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// compressed cubemap texture stored in a single DDS file\r\n\t\t\t\tloader.load(url, function (buffer) {\r\n\t\t\t\t\tvar texDatas = scope.parse(buffer, true);\r\n\r\n\t\t\t\t\tif (texDatas.isCubemap) {\r\n\t\t\t\t\t\tvar faces = texDatas.mipmaps.length / texDatas.mipmapCount;\r\n\r\n\t\t\t\t\t\tfor (var f = 0; f < faces; f++) {\r\n\t\t\t\t\t\t\timages[f] = {\r\n\t\t\t\t\t\t\t\tmipmaps: []\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\tfor (var _i = 0; _i < texDatas.mipmapCount; _i++) {\r\n\t\t\t\t\t\t\t\timages[f].mipmaps.push(texDatas.mipmaps[f * texDatas.mipmapCount + _i]);\r\n\t\t\t\t\t\t\t\timages[f].format = texDatas.format;\r\n\t\t\t\t\t\t\t\timages[f].width = texDatas.width;\r\n\t\t\t\t\t\t\t\timages[f].height = texDatas.height;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\ttexture.image.width = texDatas.width;\r\n\t\t\t\t\t\ttexture.image.height = texDatas.height;\r\n\t\t\t\t\t\ttexture.mipmaps = texDatas.mipmaps;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (texDatas.mipmapCount === 1) {\r\n\t\t\t\t\t\ttexture.minFilter = LinearFilter;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\ttexture.format = texDatas.format;\r\n\t\t\t\t\ttexture.needsUpdate = true;\r\n\t\t\t\t\tif (onLoad) onLoad(texture);\r\n\t\t\t\t}, onProgress, onError);\r\n\t\t\t}\r\n\r\n\t\t\treturn texture;\r\n\t\t}\r\n\t});\r\n\r\n\tfunction ImageLoader(manager) {\r\n\t\tLoader.call(this, manager);\r\n\t}\r\n\r\n\tImageLoader.prototype = Object.assign(Object.create(Loader.prototype), {\r\n\t\tconstructor: ImageLoader,\r\n\t\tload: function load(url, onLoad, onProgress, onError) {\r\n\t\t\tif (this.path !== undefined) url = this.path + url;\r\n\t\t\turl = this.manager.resolveURL(url);\r\n\t\t\tvar scope = this;\r\n\t\t\tvar cached = Cache.get(url);\r\n\r\n\t\t\tif (cached !== undefined) {\r\n\t\t\t\tscope.manager.itemStart(url);\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\tif (onLoad) onLoad(cached);\r\n\t\t\t\t\tscope.manager.itemEnd(url);\r\n\t\t\t\t}, 0);\r\n\t\t\t\treturn cached;\r\n\t\t\t}\r\n\r\n\t\t\tvar image = document.createElementNS('http://www.w3.org/1999/xhtml', 'img');\r\n\r\n\t\t\tfunction onImageLoad() {\r\n\t\t\t\timage.removeEventListener('load', onImageLoad, false);\r\n\t\t\t\timage.removeEventListener('error', onImageError, false);\r\n\t\t\t\tCache.add(url, this);\r\n\t\t\t\tif (onLoad) onLoad(this);\r\n\t\t\t\tscope.manager.itemEnd(url);\r\n\t\t\t}\r\n\r\n\t\t\tfunction onImageError(event) {\r\n\t\t\t\timage.removeEventListener('load', onImageLoad, false);\r\n\t\t\t\timage.removeEventListener('error', onImageError, false);\r\n\t\t\t\tif (onError) onError(event);\r\n\t\t\t\tscope.manager.itemError(url);\r\n\t\t\t\tscope.manager.itemEnd(url);\r\n\t\t\t}\r\n\r\n\t\t\timage.addEventListener('load', onImageLoad, false);\r\n\t\t\timage.addEventListener('error', onImageError, false);\r\n\r\n\t\t\tif (url.substr(0, 5) !== 'data:') {\r\n\t\t\t\tif (this.crossOrigin !== undefined) image.crossOrigin = this.crossOrigin;\r\n\t\t\t}\r\n\r\n\t\t\tscope.manager.itemStart(url);\r\n\t\t\timage.src = url;\r\n\t\t\treturn image;\r\n\t\t}\r\n\t});\r\n\r\n\tfunction CubeTextureLoader(manager) {\r\n\t\tLoader.call(this, manager);\r\n\t}\r\n\r\n\tCubeTextureLoader.prototype = Object.assign(Object.create(Loader.prototype), {\r\n\t\tconstructor: CubeTextureLoader,\r\n\t\tload: function load(urls, onLoad, onProgress, onError) {\r\n\t\t\tvar texture = new CubeTexture();\r\n\t\t\tvar loader = new ImageLoader(this.manager);\r\n\t\t\tloader.setCrossOrigin(this.crossOrigin);\r\n\t\t\tloader.setPath(this.path);\r\n\t\t\tvar loaded = 0;\r\n\r\n\t\t\tfunction loadTexture(i) {\r\n\t\t\t\tloader.load(urls[i], function (image) {\r\n\t\t\t\t\ttexture.images[i] = image;\r\n\t\t\t\t\tloaded++;\r\n\r\n\t\t\t\t\tif (loaded === 6) {\r\n\t\t\t\t\t\ttexture.needsUpdate = true;\r\n\t\t\t\t\t\tif (onLoad) onLoad(texture);\r\n\t\t\t\t\t}\r\n\t\t\t\t}, undefined, onError);\r\n\t\t\t}\r\n\r\n\t\t\tfor (var i = 0; i < urls.length; ++i) {\r\n\t\t\t\tloadTexture(i);\r\n\t\t\t}\r\n\r\n\t\t\treturn texture;\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t * Abstract Base class to load generic binary textures formats (rgbe, hdr, ...)\r\n\t *\r\n\t * Sub classes have to implement the parse() method which will be used in load().\r\n\t */\r\n\r\n\tfunction DataTextureLoader(manager) {\r\n\t\tLoader.call(this, manager);\r\n\t}\r\n\r\n\tDataTextureLoader.prototype = Object.assign(Object.create(Loader.prototype), {\r\n\t\tconstructor: DataTextureLoader,\r\n\t\tload: function load(url, onLoad, onProgress, onError) {\r\n\t\t\tvar scope = this;\r\n\t\t\tvar texture = new DataTexture();\r\n\t\t\tvar loader = new FileLoader(this.manager);\r\n\t\t\tloader.setResponseType('arraybuffer');\r\n\t\t\tloader.setRequestHeader(this.requestHeader);\r\n\t\t\tloader.setPath(this.path);\r\n\t\t\tloader.setWithCredentials(scope.withCredentials);\r\n\t\t\tloader.load(url, function (buffer) {\r\n\t\t\t\tvar texData = scope.parse(buffer);\r\n\t\t\t\tif (!texData) return;\r\n\r\n\t\t\t\tif (texData.image !== undefined) {\r\n\t\t\t\t\ttexture.image = texData.image;\r\n\t\t\t\t} else if (texData.data !== undefined) {\r\n\t\t\t\t\ttexture.image.width = texData.width;\r\n\t\t\t\t\ttexture.image.height = texData.height;\r\n\t\t\t\t\ttexture.image.data = texData.data;\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttexture.wrapS = texData.wrapS !== undefined ? texData.wrapS : ClampToEdgeWrapping;\r\n\t\t\t\ttexture.wrapT = texData.wrapT !== undefined ? texData.wrapT : ClampToEdgeWrapping;\r\n\t\t\t\ttexture.magFilter = texData.magFilter !== undefined ? texData.magFilter : LinearFilter;\r\n\t\t\t\ttexture.minFilter = texData.minFilter !== undefined ? texData.minFilter : LinearFilter;\r\n\t\t\t\ttexture.anisotropy = texData.anisotropy !== undefined ? texData.anisotropy : 1;\r\n\r\n\t\t\t\tif (texData.format !== undefined) {\r\n\t\t\t\t\ttexture.format = texData.format;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (texData.type !== undefined) {\r\n\t\t\t\t\ttexture.type = texData.type;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (texData.mipmaps !== undefined) {\r\n\t\t\t\t\ttexture.mipmaps = texData.mipmaps;\r\n\t\t\t\t\ttexture.minFilter = LinearMipmapLinearFilter; // presumably...\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (texData.mipmapCount === 1) {\r\n\t\t\t\t\ttexture.minFilter = LinearFilter;\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttexture.needsUpdate = true;\r\n\t\t\t\tif (onLoad) onLoad(texture, texData);\r\n\t\t\t}, onProgress, onError);\r\n\t\t\treturn texture;\r\n\t\t}\r\n\t});\r\n\r\n\tfunction TextureLoader(manager) {\r\n\t\tLoader.call(this, manager);\r\n\t}\r\n\r\n\tTextureLoader.prototype = Object.assign(Object.create(Loader.prototype), {\r\n\t\tconstructor: TextureLoader,\r\n\t\tload: function load(url, onLoad, onProgress, onError) {\r\n\t\t\tvar texture = new Texture();\r\n\t\t\tvar loader = new ImageLoader(this.manager);\r\n\t\t\tloader.setCrossOrigin(this.crossOrigin);\r\n\t\t\tloader.setPath(this.path);\r\n\t\t\tloader.load(url, function (image) {\r\n\t\t\t\ttexture.image = image; // JPEGs can't have an alpha channel, so memory can be saved by storing them as RGB.\r\n\r\n\t\t\t\tvar isJPEG = url.search(/\\.jpe?g($|\\?)/i) > 0 || url.search(/^data\\:image\\/jpeg/) === 0;\r\n\t\t\t\ttexture.format = isJPEG ? RGBFormat : RGBAFormat;\r\n\t\t\t\ttexture.needsUpdate = true;\r\n\r\n\t\t\t\tif (onLoad !== undefined) {\r\n\t\t\t\t\tonLoad(texture);\r\n\t\t\t\t}\r\n\t\t\t}, onProgress, onError);\r\n\t\t\treturn texture;\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t * Extensible curve object.\r\n\t *\r\n\t * Some common of curve methods:\r\n\t * .getPoint( t, optionalTarget ), .getTangent( t, optionalTarget )\r\n\t * .getPointAt( u, optionalTarget ), .getTangentAt( u, optionalTarget )\r\n\t * .getPoints(), .getSpacedPoints()\r\n\t * .getLength()\r\n\t * .updateArcLengths()\r\n\t *\r\n\t * This following curves inherit from THREE.Curve:\r\n\t *\r\n\t * -- 2D curves --\r\n\t * THREE.ArcCurve\r\n\t * THREE.CubicBezierCurve\r\n\t * THREE.EllipseCurve\r\n\t * THREE.LineCurve\r\n\t * THREE.QuadraticBezierCurve\r\n\t * THREE.SplineCurve\r\n\t *\r\n\t * -- 3D curves --\r\n\t * THREE.CatmullRomCurve3\r\n\t * THREE.CubicBezierCurve3\r\n\t * THREE.LineCurve3\r\n\t * THREE.QuadraticBezierCurve3\r\n\t *\r\n\t * A series of curves can be represented as a THREE.CurvePath.\r\n\t *\r\n\t **/\r\n\r\n\tfunction Curve() {\r\n\t\tthis.type = 'Curve';\r\n\t\tthis.arcLengthDivisions = 200;\r\n\t}\r\n\r\n\tObject.assign(Curve.prototype, {\r\n\t\t// Virtual base class method to overwrite and implement in subclasses\r\n\t\t//\t- t [0 .. 1]\r\n\t\tgetPoint: function getPoint()\r\n\t\t/* t, optionalTarget */\r\n\t\t{\r\n\t\t\tconsole.warn('THREE.Curve: .getPoint() not implemented.');\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\t// Get point at relative position in curve according to arc length\r\n\t\t// - u [0 .. 1]\r\n\t\tgetPointAt: function getPointAt(u, optionalTarget) {\r\n\t\t\tvar t = this.getUtoTmapping(u);\r\n\t\t\treturn this.getPoint(t, optionalTarget);\r\n\t\t},\r\n\t\t// Get sequence of points using getPoint( t )\r\n\t\tgetPoints: function getPoints(divisions) {\r\n\t\t\tif (divisions === void 0) {\r\n\t\t\t\tdivisions = 5;\r\n\t\t\t}\r\n\r\n\t\t\tvar points = [];\r\n\r\n\t\t\tfor (var d = 0; d <= divisions; d++) {\r\n\t\t\t\tpoints.push(this.getPoint(d / divisions));\r\n\t\t\t}\r\n\r\n\t\t\treturn points;\r\n\t\t},\r\n\t\t// Get sequence of points using getPointAt( u )\r\n\t\tgetSpacedPoints: function getSpacedPoints(divisions) {\r\n\t\t\tif (divisions === void 0) {\r\n\t\t\t\tdivisions = 5;\r\n\t\t\t}\r\n\r\n\t\t\tvar points = [];\r\n\r\n\t\t\tfor (var d = 0; d <= divisions; d++) {\r\n\t\t\t\tpoints.push(this.getPointAt(d / divisions));\r\n\t\t\t}\r\n\r\n\t\t\treturn points;\r\n\t\t},\r\n\t\t// Get total curve arc length\r\n\t\tgetLength: function getLength() {\r\n\t\t\tvar lengths = this.getLengths();\r\n\t\t\treturn lengths[lengths.length - 1];\r\n\t\t},\r\n\t\t// Get list of cumulative segment lengths\r\n\t\tgetLengths: function getLengths(divisions) {\r\n\t\t\tif (divisions === undefined) divisions = this.arcLengthDivisions;\r\n\r\n\t\t\tif (this.cacheArcLengths && this.cacheArcLengths.length === divisions + 1 && !this.needsUpdate) {\r\n\t\t\t\treturn this.cacheArcLengths;\r\n\t\t\t}\r\n\r\n\t\t\tthis.needsUpdate = false;\r\n\t\t\tvar cache = [];\r\n\t\t\tvar current,\r\n\t\t\t\t\tlast = this.getPoint(0);\r\n\t\t\tvar sum = 0;\r\n\t\t\tcache.push(0);\r\n\r\n\t\t\tfor (var p = 1; p <= divisions; p++) {\r\n\t\t\t\tcurrent = this.getPoint(p / divisions);\r\n\t\t\t\tsum += current.distanceTo(last);\r\n\t\t\t\tcache.push(sum);\r\n\t\t\t\tlast = current;\r\n\t\t\t}\r\n\r\n\t\t\tthis.cacheArcLengths = cache;\r\n\t\t\treturn cache; // { sums: cache, sum: sum }; Sum is in the last element.\r\n\t\t},\r\n\t\tupdateArcLengths: function updateArcLengths() {\r\n\t\t\tthis.needsUpdate = true;\r\n\t\t\tthis.getLengths();\r\n\t\t},\r\n\t\t// Given u ( 0 .. 1 ), get a t to find p. This gives you points which are equidistant\r\n\t\tgetUtoTmapping: function getUtoTmapping(u, distance) {\r\n\t\t\tvar arcLengths = this.getLengths();\r\n\t\t\tvar i = 0;\r\n\t\t\tvar il = arcLengths.length;\r\n\t\t\tvar targetArcLength; // The targeted u distance value to get\r\n\r\n\t\t\tif (distance) {\r\n\t\t\t\ttargetArcLength = distance;\r\n\t\t\t} else {\r\n\t\t\t\ttargetArcLength = u * arcLengths[il - 1];\r\n\t\t\t} // binary search for the index with largest value smaller than target u distance\r\n\r\n\r\n\t\t\tvar low = 0,\r\n\t\t\t\t\thigh = il - 1,\r\n\t\t\t\t\tcomparison;\r\n\r\n\t\t\twhile (low <= high) {\r\n\t\t\t\ti = Math.floor(low + (high - low) / 2); // less likely to overflow, though probably not issue here, JS doesn't really have integers, all numbers are floats\r\n\r\n\t\t\t\tcomparison = arcLengths[i] - targetArcLength;\r\n\r\n\t\t\t\tif (comparison < 0) {\r\n\t\t\t\t\tlow = i + 1;\r\n\t\t\t\t} else if (comparison > 0) {\r\n\t\t\t\t\thigh = i - 1;\r\n\t\t\t\t} else {\r\n\t\t\t\t\thigh = i;\r\n\t\t\t\t\tbreak; // DONE\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\ti = high;\r\n\r\n\t\t\tif (arcLengths[i] === targetArcLength) {\r\n\t\t\t\treturn i / (il - 1);\r\n\t\t\t} // we could get finer grain at lengths, or use simple interpolation between two points\r\n\r\n\r\n\t\t\tvar lengthBefore = arcLengths[i];\r\n\t\t\tvar lengthAfter = arcLengths[i + 1];\r\n\t\t\tvar segmentLength = lengthAfter - lengthBefore; // determine where we are between the 'before' and 'after' points\r\n\r\n\t\t\tvar segmentFraction = (targetArcLength - lengthBefore) / segmentLength; // add that fractional amount to t\r\n\r\n\t\t\tvar t = (i + segmentFraction) / (il - 1);\r\n\t\t\treturn t;\r\n\t\t},\r\n\t\t// Returns a unit vector tangent at t\r\n\t\t// In case any sub curve does not implement its tangent derivation,\r\n\t\t// 2 points a small delta apart will be used to find its gradient\r\n\t\t// which seems to give a reasonable approximation\r\n\t\tgetTangent: function getTangent(t, optionalTarget) {\r\n\t\t\tvar delta = 0.0001;\r\n\t\t\tvar t1 = t - delta;\r\n\t\t\tvar t2 = t + delta; // Capping in case of danger\r\n\r\n\t\t\tif (t1 < 0) t1 = 0;\r\n\t\t\tif (t2 > 1) t2 = 1;\r\n\t\t\tvar pt1 = this.getPoint(t1);\r\n\t\t\tvar pt2 = this.getPoint(t2);\r\n\t\t\tvar tangent = optionalTarget || (pt1.isVector2 ? new Vector2() : new Vector3());\r\n\t\t\ttangent.copy(pt2).sub(pt1).normalize();\r\n\t\t\treturn tangent;\r\n\t\t},\r\n\t\tgetTangentAt: function getTangentAt(u, optionalTarget) {\r\n\t\t\tvar t = this.getUtoTmapping(u);\r\n\t\t\treturn this.getTangent(t, optionalTarget);\r\n\t\t},\r\n\t\tcomputeFrenetFrames: function computeFrenetFrames(segments, closed) {\r\n\t\t\t// see http://www.cs.indiana.edu/pub/techreports/TR425.pdf\r\n\t\t\tvar normal = new Vector3();\r\n\t\t\tvar tangents = [];\r\n\t\t\tvar normals = [];\r\n\t\t\tvar binormals = [];\r\n\t\t\tvar vec = new Vector3();\r\n\t\t\tvar mat = new Matrix4(); // compute the tangent vectors for each segment on the curve\r\n\r\n\t\t\tfor (var i = 0; i <= segments; i++) {\r\n\t\t\t\tvar u = i / segments;\r\n\t\t\t\ttangents[i] = this.getTangentAt(u, new Vector3());\r\n\t\t\t\ttangents[i].normalize();\r\n\t\t\t} // select an initial normal vector perpendicular to the first tangent vector,\r\n\t\t\t// and in the direction of the minimum tangent xyz component\r\n\r\n\r\n\t\t\tnormals[0] = new Vector3();\r\n\t\t\tbinormals[0] = new Vector3();\r\n\t\t\tvar min = Number.MAX_VALUE;\r\n\t\t\tvar tx = Math.abs(tangents[0].x);\r\n\t\t\tvar ty = Math.abs(tangents[0].y);\r\n\t\t\tvar tz = Math.abs(tangents[0].z);\r\n\r\n\t\t\tif (tx <= min) {\r\n\t\t\t\tmin = tx;\r\n\t\t\t\tnormal.set(1, 0, 0);\r\n\t\t\t}\r\n\r\n\t\t\tif (ty <= min) {\r\n\t\t\t\tmin = ty;\r\n\t\t\t\tnormal.set(0, 1, 0);\r\n\t\t\t}\r\n\r\n\t\t\tif (tz <= min) {\r\n\t\t\t\tnormal.set(0, 0, 1);\r\n\t\t\t}\r\n\r\n\t\t\tvec.crossVectors(tangents[0], normal).normalize();\r\n\t\t\tnormals[0].crossVectors(tangents[0], vec);\r\n\t\t\tbinormals[0].crossVectors(tangents[0], normals[0]); // compute the slowly-varying normal and binormal vectors for each segment on the curve\r\n\r\n\t\t\tfor (var _i = 1; _i <= segments; _i++) {\r\n\t\t\t\tnormals[_i] = normals[_i - 1].clone();\r\n\t\t\t\tbinormals[_i] = binormals[_i - 1].clone();\r\n\t\t\t\tvec.crossVectors(tangents[_i - 1], tangents[_i]);\r\n\r\n\t\t\t\tif (vec.length() > Number.EPSILON) {\r\n\t\t\t\t\tvec.normalize();\r\n\t\t\t\t\tvar theta = Math.acos(MathUtils.clamp(tangents[_i - 1].dot(tangents[_i]), -1, 1)); // clamp for floating pt errors\r\n\r\n\t\t\t\t\tnormals[_i].applyMatrix4(mat.makeRotationAxis(vec, theta));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tbinormals[_i].crossVectors(tangents[_i], normals[_i]);\r\n\t\t\t} // if the curve is closed, postprocess the vectors so the first and last normal vectors are the same\r\n\r\n\r\n\t\t\tif (closed === true) {\r\n\t\t\t\tvar _theta = Math.acos(MathUtils.clamp(normals[0].dot(normals[segments]), -1, 1));\r\n\r\n\t\t\t\t_theta /= segments;\r\n\r\n\t\t\t\tif (tangents[0].dot(vec.crossVectors(normals[0], normals[segments])) > 0) {\r\n\t\t\t\t\t_theta = -_theta;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfor (var _i2 = 1; _i2 <= segments; _i2++) {\r\n\t\t\t\t\t// twist a little...\r\n\t\t\t\t\tnormals[_i2].applyMatrix4(mat.makeRotationAxis(tangents[_i2], _theta * _i2));\r\n\r\n\t\t\t\t\tbinormals[_i2].crossVectors(tangents[_i2], normals[_i2]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\ttangents: tangents,\r\n\t\t\t\tnormals: normals,\r\n\t\t\t\tbinormals: binormals\r\n\t\t\t};\r\n\t\t},\r\n\t\tclone: function clone() {\r\n\t\t\treturn new this.constructor().copy(this);\r\n\t\t},\r\n\t\tcopy: function copy(source) {\r\n\t\t\tthis.arcLengthDivisions = source.arcLengthDivisions;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\ttoJSON: function toJSON() {\r\n\t\t\tvar data = {\r\n\t\t\t\tmetadata: {\r\n\t\t\t\t\tversion: 4.5,\r\n\t\t\t\t\ttype: 'Curve',\r\n\t\t\t\t\tgenerator: 'Curve.toJSON'\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\tdata.arcLengthDivisions = this.arcLengthDivisions;\r\n\t\t\tdata.type = this.type;\r\n\t\t\treturn data;\r\n\t\t},\r\n\t\tfromJSON: function fromJSON(json) {\r\n\t\t\tthis.arcLengthDivisions = json.arcLengthDivisions;\r\n\t\t\treturn this;\r\n\t\t}\r\n\t});\r\n\r\n\tfunction EllipseCurve(aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation) {\r\n\t\tCurve.call(this);\r\n\t\tthis.type = 'EllipseCurve';\r\n\t\tthis.aX = aX || 0;\r\n\t\tthis.aY = aY || 0;\r\n\t\tthis.xRadius = xRadius || 1;\r\n\t\tthis.yRadius = yRadius || 1;\r\n\t\tthis.aStartAngle = aStartAngle || 0;\r\n\t\tthis.aEndAngle = aEndAngle || 2 * Math.PI;\r\n\t\tthis.aClockwise = aClockwise || false;\r\n\t\tthis.aRotation = aRotation || 0;\r\n\t}\r\n\r\n\tEllipseCurve.prototype = Object.create(Curve.prototype);\r\n\tEllipseCurve.prototype.constructor = EllipseCurve;\r\n\tEllipseCurve.prototype.isEllipseCurve = true;\r\n\r\n\tEllipseCurve.prototype.getPoint = function (t, optionalTarget) {\r\n\t\tvar point = optionalTarget || new Vector2();\r\n\t\tvar twoPi = Math.PI * 2;\r\n\t\tvar deltaAngle = this.aEndAngle - this.aStartAngle;\r\n\t\tvar samePoints = Math.abs(deltaAngle) < Number.EPSILON; // ensures that deltaAngle is 0 .. 2 PI\r\n\r\n\t\twhile (deltaAngle < 0) {\r\n\t\t\tdeltaAngle += twoPi;\r\n\t\t}\r\n\r\n\t\twhile (deltaAngle > twoPi) {\r\n\t\t\tdeltaAngle -= twoPi;\r\n\t\t}\r\n\r\n\t\tif (deltaAngle < Number.EPSILON) {\r\n\t\t\tif (samePoints) {\r\n\t\t\t\tdeltaAngle = 0;\r\n\t\t\t} else {\r\n\t\t\t\tdeltaAngle = twoPi;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.aClockwise === true && !samePoints) {\r\n\t\t\tif (deltaAngle === twoPi) {\r\n\t\t\t\tdeltaAngle = -twoPi;\r\n\t\t\t} else {\r\n\t\t\t\tdeltaAngle = deltaAngle - twoPi;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar angle = this.aStartAngle + t * deltaAngle;\r\n\t\tvar x = this.aX + this.xRadius * Math.cos(angle);\r\n\t\tvar y = this.aY + this.yRadius * Math.sin(angle);\r\n\r\n\t\tif (this.aRotation !== 0) {\r\n\t\t\tvar cos = Math.cos(this.aRotation);\r\n\t\t\tvar sin = Math.sin(this.aRotation);\r\n\t\t\tvar tx = x - this.aX;\r\n\t\t\tvar ty = y - this.aY; // Rotate the point about the center of the ellipse.\r\n\r\n\t\t\tx = tx * cos - ty * sin + this.aX;\r\n\t\t\ty = tx * sin + ty * cos + this.aY;\r\n\t\t}\r\n\r\n\t\treturn point.set(x, y);\r\n\t};\r\n\r\n\tEllipseCurve.prototype.copy = function (source) {\r\n\t\tCurve.prototype.copy.call(this, source);\r\n\t\tthis.aX = source.aX;\r\n\t\tthis.aY = source.aY;\r\n\t\tthis.xRadius = source.xRadius;\r\n\t\tthis.yRadius = source.yRadius;\r\n\t\tthis.aStartAngle = source.aStartAngle;\r\n\t\tthis.aEndAngle = source.aEndAngle;\r\n\t\tthis.aClockwise = source.aClockwise;\r\n\t\tthis.aRotation = source.aRotation;\r\n\t\treturn this;\r\n\t};\r\n\r\n\tEllipseCurve.prototype.toJSON = function () {\r\n\t\tvar data = Curve.prototype.toJSON.call(this);\r\n\t\tdata.aX = this.aX;\r\n\t\tdata.aY = this.aY;\r\n\t\tdata.xRadius = this.xRadius;\r\n\t\tdata.yRadius = this.yRadius;\r\n\t\tdata.aStartAngle = this.aStartAngle;\r\n\t\tdata.aEndAngle = this.aEndAngle;\r\n\t\tdata.aClockwise = this.aClockwise;\r\n\t\tdata.aRotation = this.aRotation;\r\n\t\treturn data;\r\n\t};\r\n\r\n\tEllipseCurve.prototype.fromJSON = function (json) {\r\n\t\tCurve.prototype.fromJSON.call(this, json);\r\n\t\tthis.aX = json.aX;\r\n\t\tthis.aY = json.aY;\r\n\t\tthis.xRadius = json.xRadius;\r\n\t\tthis.yRadius = json.yRadius;\r\n\t\tthis.aStartAngle = json.aStartAngle;\r\n\t\tthis.aEndAngle = json.aEndAngle;\r\n\t\tthis.aClockwise = json.aClockwise;\r\n\t\tthis.aRotation = json.aRotation;\r\n\t\treturn this;\r\n\t};\r\n\r\n\tfunction ArcCurve(aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise) {\r\n\t\tEllipseCurve.call(this, aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise);\r\n\t\tthis.type = 'ArcCurve';\r\n\t}\r\n\r\n\tArcCurve.prototype = Object.create(EllipseCurve.prototype);\r\n\tArcCurve.prototype.constructor = ArcCurve;\r\n\tArcCurve.prototype.isArcCurve = true;\r\n\r\n\t/**\r\n\t * Centripetal CatmullRom Curve - which is useful for avoiding\r\n\t * cusps and self-intersections in non-uniform catmull rom curves.\r\n\t * http://www.cemyuksel.com/research/catmullrom_param/catmullrom.pdf\r\n\t *\r\n\t * curve.type accepts centripetal(default), chordal and catmullrom\r\n\t * curve.tension is used for catmullrom which defaults to 0.5\r\n\t */\r\n\r\n\t/*\r\n\tBased on an optimized c++ solution in\r\n\t - http://stackoverflow.com/questions/9489736/catmull-rom-curve-with-no-cusps-and-no-self-intersections/\r\n\t - http://ideone.com/NoEbVM\r\n\r\n\tThis CubicPoly class could be used for reusing some variables and calculations,\r\n\tbut for three.js curve use, it could be possible inlined and flatten into a single function call\r\n\twhich can be placed in CurveUtils.\r\n\t*/\r\n\r\n\tfunction CubicPoly() {\r\n\t\tvar c0 = 0,\r\n\t\t\t\tc1 = 0,\r\n\t\t\t\tc2 = 0,\r\n\t\t\t\tc3 = 0;\r\n\t\t/*\r\n\t\t * Compute coefficients for a cubic polynomial\r\n\t\t *\t p(s) = c0 + c1*s + c2*s^2 + c3*s^3\r\n\t\t * such that\r\n\t\t *\t p(0) = x0, p(1) = x1\r\n\t\t *\tand\r\n\t\t *\t p'(0) = t0, p'(1) = t1.\r\n\t\t */\r\n\r\n\t\tfunction init(x0, x1, t0, t1) {\r\n\t\t\tc0 = x0;\r\n\t\t\tc1 = t0;\r\n\t\t\tc2 = -3 * x0 + 3 * x1 - 2 * t0 - t1;\r\n\t\t\tc3 = 2 * x0 - 2 * x1 + t0 + t1;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tinitCatmullRom: function initCatmullRom(x0, x1, x2, x3, tension) {\r\n\t\t\t\tinit(x1, x2, tension * (x2 - x0), tension * (x3 - x1));\r\n\t\t\t},\r\n\t\t\tinitNonuniformCatmullRom: function initNonuniformCatmullRom(x0, x1, x2, x3, dt0, dt1, dt2) {\r\n\t\t\t\t// compute tangents when parameterized in [t1,t2]\r\n\t\t\t\tvar t1 = (x1 - x0) / dt0 - (x2 - x0) / (dt0 + dt1) + (x2 - x1) / dt1;\r\n\t\t\t\tvar t2 = (x2 - x1) / dt1 - (x3 - x1) / (dt1 + dt2) + (x3 - x2) / dt2; // rescale tangents for parametrization in [0,1]\r\n\r\n\t\t\t\tt1 *= dt1;\r\n\t\t\t\tt2 *= dt1;\r\n\t\t\t\tinit(x1, x2, t1, t2);\r\n\t\t\t},\r\n\t\t\tcalc: function calc(t) {\r\n\t\t\t\tvar t2 = t * t;\r\n\t\t\t\tvar t3 = t2 * t;\r\n\t\t\t\treturn c0 + c1 * t + c2 * t2 + c3 * t3;\r\n\t\t\t}\r\n\t\t};\r\n\t} //\r\n\r\n\r\n\tvar tmp = new Vector3();\r\n\tvar px = new CubicPoly(),\r\n\t\t\tpy = new CubicPoly(),\r\n\t\t\tpz = new CubicPoly();\r\n\r\n\tfunction CatmullRomCurve3(points, closed, curveType, tension) {\r\n\t\tif (points === void 0) {\r\n\t\t\tpoints = [];\r\n\t\t}\r\n\r\n\t\tif (closed === void 0) {\r\n\t\t\tclosed = false;\r\n\t\t}\r\n\r\n\t\tif (curveType === void 0) {\r\n\t\t\tcurveType = 'centripetal';\r\n\t\t}\r\n\r\n\t\tif (tension === void 0) {\r\n\t\t\ttension = 0.5;\r\n\t\t}\r\n\r\n\t\tCurve.call(this);\r\n\t\tthis.type = 'CatmullRomCurve3';\r\n\t\tthis.points = points;\r\n\t\tthis.closed = closed;\r\n\t\tthis.curveType = curveType;\r\n\t\tthis.tension = tension;\r\n\t}\r\n\r\n\tCatmullRomCurve3.prototype = Object.create(Curve.prototype);\r\n\tCatmullRomCurve3.prototype.constructor = CatmullRomCurve3;\r\n\tCatmullRomCurve3.prototype.isCatmullRomCurve3 = true;\r\n\r\n\tCatmullRomCurve3.prototype.getPoint = function (t, optionalTarget) {\r\n\t\tif (optionalTarget === void 0) {\r\n\t\t\toptionalTarget = new Vector3();\r\n\t\t}\r\n\r\n\t\tvar point = optionalTarget;\r\n\t\tvar points = this.points;\r\n\t\tvar l = points.length;\r\n\t\tvar p = (l - (this.closed ? 0 : 1)) * t;\r\n\t\tvar intPoint = Math.floor(p);\r\n\t\tvar weight = p - intPoint;\r\n\r\n\t\tif (this.closed) {\r\n\t\t\tintPoint += intPoint > 0 ? 0 : (Math.floor(Math.abs(intPoint) / l) + 1) * l;\r\n\t\t} else if (weight === 0 && intPoint === l - 1) {\r\n\t\t\tintPoint = l - 2;\r\n\t\t\tweight = 1;\r\n\t\t}\r\n\r\n\t\tvar p0, p3; // 4 points (p1 & p2 defined below)\r\n\r\n\t\tif (this.closed || intPoint > 0) {\r\n\t\t\tp0 = points[(intPoint - 1) % l];\r\n\t\t} else {\r\n\t\t\t// extrapolate first point\r\n\t\t\ttmp.subVectors(points[0], points[1]).add(points[0]);\r\n\t\t\tp0 = tmp;\r\n\t\t}\r\n\r\n\t\tvar p1 = points[intPoint % l];\r\n\t\tvar p2 = points[(intPoint + 1) % l];\r\n\r\n\t\tif (this.closed || intPoint + 2 < l) {\r\n\t\t\tp3 = points[(intPoint + 2) % l];\r\n\t\t} else {\r\n\t\t\t// extrapolate last point\r\n\t\t\ttmp.subVectors(points[l - 1], points[l - 2]).add(points[l - 1]);\r\n\t\t\tp3 = tmp;\r\n\t\t}\r\n\r\n\t\tif (this.curveType === 'centripetal' || this.curveType === 'chordal') {\r\n\t\t\t// init Centripetal / Chordal Catmull-Rom\r\n\t\t\tvar pow = this.curveType === 'chordal' ? 0.5 : 0.25;\r\n\t\t\tvar dt0 = Math.pow(p0.distanceToSquared(p1), pow);\r\n\t\t\tvar dt1 = Math.pow(p1.distanceToSquared(p2), pow);\r\n\t\t\tvar dt2 = Math.pow(p2.distanceToSquared(p3), pow); // safety check for repeated points\r\n\r\n\t\t\tif (dt1 < 1e-4) dt1 = 1.0;\r\n\t\t\tif (dt0 < 1e-4) dt0 = dt1;\r\n\t\t\tif (dt2 < 1e-4) dt2 = dt1;\r\n\t\t\tpx.initNonuniformCatmullRom(p0.x, p1.x, p2.x, p3.x, dt0, dt1, dt2);\r\n\t\t\tpy.initNonuniformCatmullRom(p0.y, p1.y, p2.y, p3.y, dt0, dt1, dt2);\r\n\t\t\tpz.initNonuniformCatmullRom(p0.z, p1.z, p2.z, p3.z, dt0, dt1, dt2);\r\n\t\t} else if (this.curveType === 'catmullrom') {\r\n\t\t\tpx.initCatmullRom(p0.x, p1.x, p2.x, p3.x, this.tension);\r\n\t\t\tpy.initCatmullRom(p0.y, p1.y, p2.y, p3.y, this.tension);\r\n\t\t\tpz.initCatmullRom(p0.z, p1.z, p2.z, p3.z, this.tension);\r\n\t\t}\r\n\r\n\t\tpoint.set(px.calc(weight), py.calc(weight), pz.calc(weight));\r\n\t\treturn point;\r\n\t};\r\n\r\n\tCatmullRomCurve3.prototype.copy = function (source) {\r\n\t\tCurve.prototype.copy.call(this, source);\r\n\t\tthis.points = [];\r\n\r\n\t\tfor (var i = 0, l = source.points.length; i < l; i++) {\r\n\t\t\tvar point = source.points[i];\r\n\t\t\tthis.points.push(point.clone());\r\n\t\t}\r\n\r\n\t\tthis.closed = source.closed;\r\n\t\tthis.curveType = source.curveType;\r\n\t\tthis.tension = source.tension;\r\n\t\treturn this;\r\n\t};\r\n\r\n\tCatmullRomCurve3.prototype.toJSON = function () {\r\n\t\tvar data = Curve.prototype.toJSON.call(this);\r\n\t\tdata.points = [];\r\n\r\n\t\tfor (var i = 0, l = this.points.length; i < l; i++) {\r\n\t\t\tvar point = this.points[i];\r\n\t\t\tdata.points.push(point.toArray());\r\n\t\t}\r\n\r\n\t\tdata.closed = this.closed;\r\n\t\tdata.curveType = this.curveType;\r\n\t\tdata.tension = this.tension;\r\n\t\treturn data;\r\n\t};\r\n\r\n\tCatmullRomCurve3.prototype.fromJSON = function (json) {\r\n\t\tCurve.prototype.fromJSON.call(this, json);\r\n\t\tthis.points = [];\r\n\r\n\t\tfor (var i = 0, l = json.points.length; i < l; i++) {\r\n\t\t\tvar point = json.points[i];\r\n\t\t\tthis.points.push(new Vector3().fromArray(point));\r\n\t\t}\r\n\r\n\t\tthis.closed = json.closed;\r\n\t\tthis.curveType = json.curveType;\r\n\t\tthis.tension = json.tension;\r\n\t\treturn this;\r\n\t};\r\n\r\n\t/**\r\n\t * Bezier Curves formulas obtained from\r\n\t * http://en.wikipedia.org/wiki/Bézier_curve\r\n\t */\r\n\tfunction CatmullRom(t, p0, p1, p2, p3) {\r\n\t\tvar v0 = (p2 - p0) * 0.5;\r\n\t\tvar v1 = (p3 - p1) * 0.5;\r\n\t\tvar t2 = t * t;\r\n\t\tvar t3 = t * t2;\r\n\t\treturn (2 * p1 - 2 * p2 + v0 + v1) * t3 + (-3 * p1 + 3 * p2 - 2 * v0 - v1) * t2 + v0 * t + p1;\r\n\t} //\r\n\r\n\r\n\tfunction QuadraticBezierP0(t, p) {\r\n\t\tvar k = 1 - t;\r\n\t\treturn k * k * p;\r\n\t}\r\n\r\n\tfunction QuadraticBezierP1(t, p) {\r\n\t\treturn 2 * (1 - t) * t * p;\r\n\t}\r\n\r\n\tfunction QuadraticBezierP2(t, p) {\r\n\t\treturn t * t * p;\r\n\t}\r\n\r\n\tfunction QuadraticBezier(t, p0, p1, p2) {\r\n\t\treturn QuadraticBezierP0(t, p0) + QuadraticBezierP1(t, p1) + QuadraticBezierP2(t, p2);\r\n\t} //\r\n\r\n\r\n\tfunction CubicBezierP0(t, p) {\r\n\t\tvar k = 1 - t;\r\n\t\treturn k * k * k * p;\r\n\t}\r\n\r\n\tfunction CubicBezierP1(t, p) {\r\n\t\tvar k = 1 - t;\r\n\t\treturn 3 * k * k * t * p;\r\n\t}\r\n\r\n\tfunction CubicBezierP2(t, p) {\r\n\t\treturn 3 * (1 - t) * t * t * p;\r\n\t}\r\n\r\n\tfunction CubicBezierP3(t, p) {\r\n\t\treturn t * t * t * p;\r\n\t}\r\n\r\n\tfunction CubicBezier(t, p0, p1, p2, p3) {\r\n\t\treturn CubicBezierP0(t, p0) + CubicBezierP1(t, p1) + CubicBezierP2(t, p2) + CubicBezierP3(t, p3);\r\n\t}\r\n\r\n\tfunction CubicBezierCurve(v0, v1, v2, v3) {\r\n\t\tif (v0 === void 0) {\r\n\t\t\tv0 = new Vector2();\r\n\t\t}\r\n\r\n\t\tif (v1 === void 0) {\r\n\t\t\tv1 = new Vector2();\r\n\t\t}\r\n\r\n\t\tif (v2 === void 0) {\r\n\t\t\tv2 = new Vector2();\r\n\t\t}\r\n\r\n\t\tif (v3 === void 0) {\r\n\t\t\tv3 = new Vector2();\r\n\t\t}\r\n\r\n\t\tCurve.call(this);\r\n\t\tthis.type = 'CubicBezierCurve';\r\n\t\tthis.v0 = v0;\r\n\t\tthis.v1 = v1;\r\n\t\tthis.v2 = v2;\r\n\t\tthis.v3 = v3;\r\n\t}\r\n\r\n\tCubicBezierCurve.prototype = Object.create(Curve.prototype);\r\n\tCubicBezierCurve.prototype.constructor = CubicBezierCurve;\r\n\tCubicBezierCurve.prototype.isCubicBezierCurve = true;\r\n\r\n\tCubicBezierCurve.prototype.getPoint = function (t, optionalTarget) {\r\n\t\tif (optionalTarget === void 0) {\r\n\t\t\toptionalTarget = new Vector2();\r\n\t\t}\r\n\r\n\t\tvar point = optionalTarget;\r\n\t\tvar v0 = this.v0,\r\n\t\t\t\tv1 = this.v1,\r\n\t\t\t\tv2 = this.v2,\r\n\t\t\t\tv3 = this.v3;\r\n\t\tpoint.set(CubicBezier(t, v0.x, v1.x, v2.x, v3.x), CubicBezier(t, v0.y, v1.y, v2.y, v3.y));\r\n\t\treturn point;\r\n\t};\r\n\r\n\tCubicBezierCurve.prototype.copy = function (source) {\r\n\t\tCurve.prototype.copy.call(this, source);\r\n\t\tthis.v0.copy(source.v0);\r\n\t\tthis.v1.copy(source.v1);\r\n\t\tthis.v2.copy(source.v2);\r\n\t\tthis.v3.copy(source.v3);\r\n\t\treturn this;\r\n\t};\r\n\r\n\tCubicBezierCurve.prototype.toJSON = function () {\r\n\t\tvar data = Curve.prototype.toJSON.call(this);\r\n\t\tdata.v0 = this.v0.toArray();\r\n\t\tdata.v1 = this.v1.toArray();\r\n\t\tdata.v2 = this.v2.toArray();\r\n\t\tdata.v3 = this.v3.toArray();\r\n\t\treturn data;\r\n\t};\r\n\r\n\tCubicBezierCurve.prototype.fromJSON = function (json) {\r\n\t\tCurve.prototype.fromJSON.call(this, json);\r\n\t\tthis.v0.fromArray(json.v0);\r\n\t\tthis.v1.fromArray(json.v1);\r\n\t\tthis.v2.fromArray(json.v2);\r\n\t\tthis.v3.fromArray(json.v3);\r\n\t\treturn this;\r\n\t};\r\n\r\n\tfunction CubicBezierCurve3(v0, v1, v2, v3) {\r\n\t\tif (v0 === void 0) {\r\n\t\t\tv0 = new Vector3();\r\n\t\t}\r\n\r\n\t\tif (v1 === void 0) {\r\n\t\t\tv1 = new Vector3();\r\n\t\t}\r\n\r\n\t\tif (v2 === void 0) {\r\n\t\t\tv2 = new Vector3();\r\n\t\t}\r\n\r\n\t\tif (v3 === void 0) {\r\n\t\t\tv3 = new Vector3();\r\n\t\t}\r\n\r\n\t\tCurve.call(this);\r\n\t\tthis.type = 'CubicBezierCurve3';\r\n\t\tthis.v0 = v0;\r\n\t\tthis.v1 = v1;\r\n\t\tthis.v2 = v2;\r\n\t\tthis.v3 = v3;\r\n\t}\r\n\r\n\tCubicBezierCurve3.prototype = Object.create(Curve.prototype);\r\n\tCubicBezierCurve3.prototype.constructor = CubicBezierCurve3;\r\n\tCubicBezierCurve3.prototype.isCubicBezierCurve3 = true;\r\n\r\n\tCubicBezierCurve3.prototype.getPoint = function (t, optionalTarget) {\r\n\t\tif (optionalTarget === void 0) {\r\n\t\t\toptionalTarget = new Vector3();\r\n\t\t}\r\n\r\n\t\tvar point = optionalTarget;\r\n\t\tvar v0 = this.v0,\r\n\t\t\t\tv1 = this.v1,\r\n\t\t\t\tv2 = this.v2,\r\n\t\t\t\tv3 = this.v3;\r\n\t\tpoint.set(CubicBezier(t, v0.x, v1.x, v2.x, v3.x), CubicBezier(t, v0.y, v1.y, v2.y, v3.y), CubicBezier(t, v0.z, v1.z, v2.z, v3.z));\r\n\t\treturn point;\r\n\t};\r\n\r\n\tCubicBezierCurve3.prototype.copy = function (source) {\r\n\t\tCurve.prototype.copy.call(this, source);\r\n\t\tthis.v0.copy(source.v0);\r\n\t\tthis.v1.copy(source.v1);\r\n\t\tthis.v2.copy(source.v2);\r\n\t\tthis.v3.copy(source.v3);\r\n\t\treturn this;\r\n\t};\r\n\r\n\tCubicBezierCurve3.prototype.toJSON = function () {\r\n\t\tvar data = Curve.prototype.toJSON.call(this);\r\n\t\tdata.v0 = this.v0.toArray();\r\n\t\tdata.v1 = this.v1.toArray();\r\n\t\tdata.v2 = this.v2.toArray();\r\n\t\tdata.v3 = this.v3.toArray();\r\n\t\treturn data;\r\n\t};\r\n\r\n\tCubicBezierCurve3.prototype.fromJSON = function (json) {\r\n\t\tCurve.prototype.fromJSON.call(this, json);\r\n\t\tthis.v0.fromArray(json.v0);\r\n\t\tthis.v1.fromArray(json.v1);\r\n\t\tthis.v2.fromArray(json.v2);\r\n\t\tthis.v3.fromArray(json.v3);\r\n\t\treturn this;\r\n\t};\r\n\r\n\tfunction LineCurve(v1, v2) {\r\n\t\tif (v1 === void 0) {\r\n\t\t\tv1 = new Vector2();\r\n\t\t}\r\n\r\n\t\tif (v2 === void 0) {\r\n\t\t\tv2 = new Vector2();\r\n\t\t}\r\n\r\n\t\tCurve.call(this);\r\n\t\tthis.type = 'LineCurve';\r\n\t\tthis.v1 = v1;\r\n\t\tthis.v2 = v2;\r\n\t}\r\n\r\n\tLineCurve.prototype = Object.create(Curve.prototype);\r\n\tLineCurve.prototype.constructor = LineCurve;\r\n\tLineCurve.prototype.isLineCurve = true;\r\n\r\n\tLineCurve.prototype.getPoint = function (t, optionalTarget) {\r\n\t\tif (optionalTarget === void 0) {\r\n\t\t\toptionalTarget = new Vector2();\r\n\t\t}\r\n\r\n\t\tvar point = optionalTarget;\r\n\r\n\t\tif (t === 1) {\r\n\t\t\tpoint.copy(this.v2);\r\n\t\t} else {\r\n\t\t\tpoint.copy(this.v2).sub(this.v1);\r\n\t\t\tpoint.multiplyScalar(t).add(this.v1);\r\n\t\t}\r\n\r\n\t\treturn point;\r\n\t}; // Line curve is linear, so we can overwrite default getPointAt\r\n\r\n\r\n\tLineCurve.prototype.getPointAt = function (u, optionalTarget) {\r\n\t\treturn this.getPoint(u, optionalTarget);\r\n\t};\r\n\r\n\tLineCurve.prototype.getTangent = function (t, optionalTarget) {\r\n\t\tvar tangent = optionalTarget || new Vector2();\r\n\t\ttangent.copy(this.v2).sub(this.v1).normalize();\r\n\t\treturn tangent;\r\n\t};\r\n\r\n\tLineCurve.prototype.copy = function (source) {\r\n\t\tCurve.prototype.copy.call(this, source);\r\n\t\tthis.v1.copy(source.v1);\r\n\t\tthis.v2.copy(source.v2);\r\n\t\treturn this;\r\n\t};\r\n\r\n\tLineCurve.prototype.toJSON = function () {\r\n\t\tvar data = Curve.prototype.toJSON.call(this);\r\n\t\tdata.v1 = this.v1.toArray();\r\n\t\tdata.v2 = this.v2.toArray();\r\n\t\treturn data;\r\n\t};\r\n\r\n\tLineCurve.prototype.fromJSON = function (json) {\r\n\t\tCurve.prototype.fromJSON.call(this, json);\r\n\t\tthis.v1.fromArray(json.v1);\r\n\t\tthis.v2.fromArray(json.v2);\r\n\t\treturn this;\r\n\t};\r\n\r\n\tfunction LineCurve3(v1, v2) {\r\n\t\tif (v1 === void 0) {\r\n\t\t\tv1 = new Vector3();\r\n\t\t}\r\n\r\n\t\tif (v2 === void 0) {\r\n\t\t\tv2 = new Vector3();\r\n\t\t}\r\n\r\n\t\tCurve.call(this);\r\n\t\tthis.type = 'LineCurve3';\r\n\t\tthis.v1 = v1;\r\n\t\tthis.v2 = v2;\r\n\t}\r\n\r\n\tLineCurve3.prototype = Object.create(Curve.prototype);\r\n\tLineCurve3.prototype.constructor = LineCurve3;\r\n\tLineCurve3.prototype.isLineCurve3 = true;\r\n\r\n\tLineCurve3.prototype.getPoint = function (t, optionalTarget) {\r\n\t\tif (optionalTarget === void 0) {\r\n\t\t\toptionalTarget = new Vector3();\r\n\t\t}\r\n\r\n\t\tvar point = optionalTarget;\r\n\r\n\t\tif (t === 1) {\r\n\t\t\tpoint.copy(this.v2);\r\n\t\t} else {\r\n\t\t\tpoint.copy(this.v2).sub(this.v1);\r\n\t\t\tpoint.multiplyScalar(t).add(this.v1);\r\n\t\t}\r\n\r\n\t\treturn point;\r\n\t}; // Line curve is linear, so we can overwrite default getPointAt\r\n\r\n\r\n\tLineCurve3.prototype.getPointAt = function (u, optionalTarget) {\r\n\t\treturn this.getPoint(u, optionalTarget);\r\n\t};\r\n\r\n\tLineCurve3.prototype.copy = function (source) {\r\n\t\tCurve.prototype.copy.call(this, source);\r\n\t\tthis.v1.copy(source.v1);\r\n\t\tthis.v2.copy(source.v2);\r\n\t\treturn this;\r\n\t};\r\n\r\n\tLineCurve3.prototype.toJSON = function () {\r\n\t\tvar data = Curve.prototype.toJSON.call(this);\r\n\t\tdata.v1 = this.v1.toArray();\r\n\t\tdata.v2 = this.v2.toArray();\r\n\t\treturn data;\r\n\t};\r\n\r\n\tLineCurve3.prototype.fromJSON = function (json) {\r\n\t\tCurve.prototype.fromJSON.call(this, json);\r\n\t\tthis.v1.fromArray(json.v1);\r\n\t\tthis.v2.fromArray(json.v2);\r\n\t\treturn this;\r\n\t};\r\n\r\n\tfunction QuadraticBezierCurve(v0, v1, v2) {\r\n\t\tif (v0 === void 0) {\r\n\t\t\tv0 = new Vector2();\r\n\t\t}\r\n\r\n\t\tif (v1 === void 0) {\r\n\t\t\tv1 = new Vector2();\r\n\t\t}\r\n\r\n\t\tif (v2 === void 0) {\r\n\t\t\tv2 = new Vector2();\r\n\t\t}\r\n\r\n\t\tCurve.call(this);\r\n\t\tthis.type = 'QuadraticBezierCurve';\r\n\t\tthis.v0 = v0;\r\n\t\tthis.v1 = v1;\r\n\t\tthis.v2 = v2;\r\n\t}\r\n\r\n\tQuadraticBezierCurve.prototype = Object.create(Curve.prototype);\r\n\tQuadraticBezierCurve.prototype.constructor = QuadraticBezierCurve;\r\n\tQuadraticBezierCurve.prototype.isQuadraticBezierCurve = true;\r\n\r\n\tQuadraticBezierCurve.prototype.getPoint = function (t, optionalTarget) {\r\n\t\tif (optionalTarget === void 0) {\r\n\t\t\toptionalTarget = new Vector2();\r\n\t\t}\r\n\r\n\t\tvar point = optionalTarget;\r\n\t\tvar v0 = this.v0,\r\n\t\t\t\tv1 = this.v1,\r\n\t\t\t\tv2 = this.v2;\r\n\t\tpoint.set(QuadraticBezier(t, v0.x, v1.x, v2.x), QuadraticBezier(t, v0.y, v1.y, v2.y));\r\n\t\treturn point;\r\n\t};\r\n\r\n\tQuadraticBezierCurve.prototype.copy = function (source) {\r\n\t\tCurve.prototype.copy.call(this, source);\r\n\t\tthis.v0.copy(source.v0);\r\n\t\tthis.v1.copy(source.v1);\r\n\t\tthis.v2.copy(source.v2);\r\n\t\treturn this;\r\n\t};\r\n\r\n\tQuadraticBezierCurve.prototype.toJSON = function () {\r\n\t\tvar data = Curve.prototype.toJSON.call(this);\r\n\t\tdata.v0 = this.v0.toArray();\r\n\t\tdata.v1 = this.v1.toArray();\r\n\t\tdata.v2 = this.v2.toArray();\r\n\t\treturn data;\r\n\t};\r\n\r\n\tQuadraticBezierCurve.prototype.fromJSON = function (json) {\r\n\t\tCurve.prototype.fromJSON.call(this, json);\r\n\t\tthis.v0.fromArray(json.v0);\r\n\t\tthis.v1.fromArray(json.v1);\r\n\t\tthis.v2.fromArray(json.v2);\r\n\t\treturn this;\r\n\t};\r\n\r\n\tfunction QuadraticBezierCurve3(v0, v1, v2) {\r\n\t\tif (v0 === void 0) {\r\n\t\t\tv0 = new Vector3();\r\n\t\t}\r\n\r\n\t\tif (v1 === void 0) {\r\n\t\t\tv1 = new Vector3();\r\n\t\t}\r\n\r\n\t\tif (v2 === void 0) {\r\n\t\t\tv2 = new Vector3();\r\n\t\t}\r\n\r\n\t\tCurve.call(this);\r\n\t\tthis.type = 'QuadraticBezierCurve3';\r\n\t\tthis.v0 = v0;\r\n\t\tthis.v1 = v1;\r\n\t\tthis.v2 = v2;\r\n\t}\r\n\r\n\tQuadraticBezierCurve3.prototype = Object.create(Curve.prototype);\r\n\tQuadraticBezierCurve3.prototype.constructor = QuadraticBezierCurve3;\r\n\tQuadraticBezierCurve3.prototype.isQuadraticBezierCurve3 = true;\r\n\r\n\tQuadraticBezierCurve3.prototype.getPoint = function (t, optionalTarget) {\r\n\t\tif (optionalTarget === void 0) {\r\n\t\t\toptionalTarget = new Vector3();\r\n\t\t}\r\n\r\n\t\tvar point = optionalTarget;\r\n\t\tvar v0 = this.v0,\r\n\t\t\t\tv1 = this.v1,\r\n\t\t\t\tv2 = this.v2;\r\n\t\tpoint.set(QuadraticBezier(t, v0.x, v1.x, v2.x), QuadraticBezier(t, v0.y, v1.y, v2.y), QuadraticBezier(t, v0.z, v1.z, v2.z));\r\n\t\treturn point;\r\n\t};\r\n\r\n\tQuadraticBezierCurve3.prototype.copy = function (source) {\r\n\t\tCurve.prototype.copy.call(this, source);\r\n\t\tthis.v0.copy(source.v0);\r\n\t\tthis.v1.copy(source.v1);\r\n\t\tthis.v2.copy(source.v2);\r\n\t\treturn this;\r\n\t};\r\n\r\n\tQuadraticBezierCurve3.prototype.toJSON = function () {\r\n\t\tvar data = Curve.prototype.toJSON.call(this);\r\n\t\tdata.v0 = this.v0.toArray();\r\n\t\tdata.v1 = this.v1.toArray();\r\n\t\tdata.v2 = this.v2.toArray();\r\n\t\treturn data;\r\n\t};\r\n\r\n\tQuadraticBezierCurve3.prototype.fromJSON = function (json) {\r\n\t\tCurve.prototype.fromJSON.call(this, json);\r\n\t\tthis.v0.fromArray(json.v0);\r\n\t\tthis.v1.fromArray(json.v1);\r\n\t\tthis.v2.fromArray(json.v2);\r\n\t\treturn this;\r\n\t};\r\n\r\n\tfunction SplineCurve(points) {\r\n\t\tif (points === void 0) {\r\n\t\t\tpoints = [];\r\n\t\t}\r\n\r\n\t\tCurve.call(this);\r\n\t\tthis.type = 'SplineCurve';\r\n\t\tthis.points = points;\r\n\t}\r\n\r\n\tSplineCurve.prototype = Object.create(Curve.prototype);\r\n\tSplineCurve.prototype.constructor = SplineCurve;\r\n\tSplineCurve.prototype.isSplineCurve = true;\r\n\r\n\tSplineCurve.prototype.getPoint = function (t, optionalTarget) {\r\n\t\tif (optionalTarget === void 0) {\r\n\t\t\toptionalTarget = new Vector2();\r\n\t\t}\r\n\r\n\t\tvar point = optionalTarget;\r\n\t\tvar points = this.points;\r\n\t\tvar p = (points.length - 1) * t;\r\n\t\tvar intPoint = Math.floor(p);\r\n\t\tvar weight = p - intPoint;\r\n\t\tvar p0 = points[intPoint === 0 ? intPoint : intPoint - 1];\r\n\t\tvar p1 = points[intPoint];\r\n\t\tvar p2 = points[intPoint > points.length - 2 ? points.length - 1 : intPoint + 1];\r\n\t\tvar p3 = points[intPoint > points.length - 3 ? points.length - 1 : intPoint + 2];\r\n\t\tpoint.set(CatmullRom(weight, p0.x, p1.x, p2.x, p3.x), CatmullRom(weight, p0.y, p1.y, p2.y, p3.y));\r\n\t\treturn point;\r\n\t};\r\n\r\n\tSplineCurve.prototype.copy = function (source) {\r\n\t\tCurve.prototype.copy.call(this, source);\r\n\t\tthis.points = [];\r\n\r\n\t\tfor (var i = 0, l = source.points.length; i < l; i++) {\r\n\t\t\tvar point = source.points[i];\r\n\t\t\tthis.points.push(point.clone());\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t};\r\n\r\n\tSplineCurve.prototype.toJSON = function () {\r\n\t\tvar data = Curve.prototype.toJSON.call(this);\r\n\t\tdata.points = [];\r\n\r\n\t\tfor (var i = 0, l = this.points.length; i < l; i++) {\r\n\t\t\tvar point = this.points[i];\r\n\t\t\tdata.points.push(point.toArray());\r\n\t\t}\r\n\r\n\t\treturn data;\r\n\t};\r\n\r\n\tSplineCurve.prototype.fromJSON = function (json) {\r\n\t\tCurve.prototype.fromJSON.call(this, json);\r\n\t\tthis.points = [];\r\n\r\n\t\tfor (var i = 0, l = json.points.length; i < l; i++) {\r\n\t\t\tvar point = json.points[i];\r\n\t\t\tthis.points.push(new Vector2().fromArray(point));\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t};\r\n\r\n\tvar Curves = /*#__PURE__*/Object.freeze({\r\n\t\t__proto__: null,\r\n\t\tArcCurve: ArcCurve,\r\n\t\tCatmullRomCurve3: CatmullRomCurve3,\r\n\t\tCubicBezierCurve: CubicBezierCurve,\r\n\t\tCubicBezierCurve3: CubicBezierCurve3,\r\n\t\tEllipseCurve: EllipseCurve,\r\n\t\tLineCurve: LineCurve,\r\n\t\tLineCurve3: LineCurve3,\r\n\t\tQuadraticBezierCurve: QuadraticBezierCurve,\r\n\t\tQuadraticBezierCurve3: QuadraticBezierCurve3,\r\n\t\tSplineCurve: SplineCurve\r\n\t});\r\n\r\n\t/**************************************************************\r\n\t *\tCurved Path - a curve path is simply a array of connected\r\n\t *\tcurves, but retains the api of a curve\r\n\t **************************************************************/\r\n\r\n\tfunction CurvePath() {\r\n\t\tCurve.call(this);\r\n\t\tthis.type = 'CurvePath';\r\n\t\tthis.curves = [];\r\n\t\tthis.autoClose = false; // Automatically closes the path\r\n\t}\r\n\r\n\tCurvePath.prototype = Object.assign(Object.create(Curve.prototype), {\r\n\t\tconstructor: CurvePath,\r\n\t\tadd: function add(curve) {\r\n\t\t\tthis.curves.push(curve);\r\n\t\t},\r\n\t\tclosePath: function closePath() {\r\n\t\t\t// Add a line curve if start and end of lines are not connected\r\n\t\t\tvar startPoint = this.curves[0].getPoint(0);\r\n\t\t\tvar endPoint = this.curves[this.curves.length - 1].getPoint(1);\r\n\r\n\t\t\tif (!startPoint.equals(endPoint)) {\r\n\t\t\t\tthis.curves.push(new LineCurve(endPoint, startPoint));\r\n\t\t\t}\r\n\t\t},\r\n\t\t// To get accurate point with reference to\r\n\t\t// entire path distance at time t,\r\n\t\t// following has to be done:\r\n\t\t// 1. Length of each sub path have to be known\r\n\t\t// 2. Locate and identify type of curve\r\n\t\t// 3. Get t for the curve\r\n\t\t// 4. Return curve.getPointAt(t')\r\n\t\tgetPoint: function getPoint(t) {\r\n\t\t\tvar d = t * this.getLength();\r\n\t\t\tvar curveLengths = this.getCurveLengths();\r\n\t\t\tvar i = 0; // To think about boundaries points.\r\n\r\n\t\t\twhile (i < curveLengths.length) {\r\n\t\t\t\tif (curveLengths[i] >= d) {\r\n\t\t\t\t\tvar diff = curveLengths[i] - d;\r\n\t\t\t\t\tvar curve = this.curves[i];\r\n\t\t\t\t\tvar segmentLength = curve.getLength();\r\n\t\t\t\t\tvar u = segmentLength === 0 ? 0 : 1 - diff / segmentLength;\r\n\t\t\t\t\treturn curve.getPointAt(u);\r\n\t\t\t\t}\r\n\r\n\t\t\t\ti++;\r\n\t\t\t}\r\n\r\n\t\t\treturn null; // loop where sum != 0, sum > d , sum+1 1 && !points[points.length - 1].equals(points[0])) {\r\n\t\t\t\tpoints.push(points[0]);\r\n\t\t\t}\r\n\r\n\t\t\treturn points;\r\n\t\t},\r\n\t\tcopy: function copy(source) {\r\n\t\t\tCurve.prototype.copy.call(this, source);\r\n\t\t\tthis.curves = [];\r\n\r\n\t\t\tfor (var i = 0, l = source.curves.length; i < l; i++) {\r\n\t\t\t\tvar curve = source.curves[i];\r\n\t\t\t\tthis.curves.push(curve.clone());\r\n\t\t\t}\r\n\r\n\t\t\tthis.autoClose = source.autoClose;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\ttoJSON: function toJSON() {\r\n\t\t\tvar data = Curve.prototype.toJSON.call(this);\r\n\t\t\tdata.autoClose = this.autoClose;\r\n\t\t\tdata.curves = [];\r\n\r\n\t\t\tfor (var i = 0, l = this.curves.length; i < l; i++) {\r\n\t\t\t\tvar curve = this.curves[i];\r\n\t\t\t\tdata.curves.push(curve.toJSON());\r\n\t\t\t}\r\n\r\n\t\t\treturn data;\r\n\t\t},\r\n\t\tfromJSON: function fromJSON(json) {\r\n\t\t\tCurve.prototype.fromJSON.call(this, json);\r\n\t\t\tthis.autoClose = json.autoClose;\r\n\t\t\tthis.curves = [];\r\n\r\n\t\t\tfor (var i = 0, l = json.curves.length; i < l; i++) {\r\n\t\t\t\tvar curve = json.curves[i];\r\n\t\t\t\tthis.curves.push(new Curves[curve.type]().fromJSON(curve));\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t}\r\n\t});\r\n\r\n\tfunction Path(points) {\r\n\t\tCurvePath.call(this);\r\n\t\tthis.type = 'Path';\r\n\t\tthis.currentPoint = new Vector2();\r\n\r\n\t\tif (points) {\r\n\t\t\tthis.setFromPoints(points);\r\n\t\t}\r\n\t}\r\n\r\n\tPath.prototype = Object.assign(Object.create(CurvePath.prototype), {\r\n\t\tconstructor: Path,\r\n\t\tsetFromPoints: function setFromPoints(points) {\r\n\t\t\tthis.moveTo(points[0].x, points[0].y);\r\n\r\n\t\t\tfor (var i = 1, l = points.length; i < l; i++) {\r\n\t\t\t\tthis.lineTo(points[i].x, points[i].y);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tmoveTo: function moveTo(x, y) {\r\n\t\t\tthis.currentPoint.set(x, y); // TODO consider referencing vectors instead of copying?\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tlineTo: function lineTo(x, y) {\r\n\t\t\tvar curve = new LineCurve(this.currentPoint.clone(), new Vector2(x, y));\r\n\t\t\tthis.curves.push(curve);\r\n\t\t\tthis.currentPoint.set(x, y);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tquadraticCurveTo: function quadraticCurveTo(aCPx, aCPy, aX, aY) {\r\n\t\t\tvar curve = new QuadraticBezierCurve(this.currentPoint.clone(), new Vector2(aCPx, aCPy), new Vector2(aX, aY));\r\n\t\t\tthis.curves.push(curve);\r\n\t\t\tthis.currentPoint.set(aX, aY);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tbezierCurveTo: function bezierCurveTo(aCP1x, aCP1y, aCP2x, aCP2y, aX, aY) {\r\n\t\t\tvar curve = new CubicBezierCurve(this.currentPoint.clone(), new Vector2(aCP1x, aCP1y), new Vector2(aCP2x, aCP2y), new Vector2(aX, aY));\r\n\t\t\tthis.curves.push(curve);\r\n\t\t\tthis.currentPoint.set(aX, aY);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tsplineThru: function splineThru(pts\r\n\t\t/*Array of Vector*/\r\n\t\t) {\r\n\t\t\tvar npts = [this.currentPoint.clone()].concat(pts);\r\n\t\t\tvar curve = new SplineCurve(npts);\r\n\t\t\tthis.curves.push(curve);\r\n\t\t\tthis.currentPoint.copy(pts[pts.length - 1]);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tarc: function arc(aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise) {\r\n\t\t\tvar x0 = this.currentPoint.x;\r\n\t\t\tvar y0 = this.currentPoint.y;\r\n\t\t\tthis.absarc(aX + x0, aY + y0, aRadius, aStartAngle, aEndAngle, aClockwise);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tabsarc: function absarc(aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise) {\r\n\t\t\tthis.absellipse(aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tellipse: function ellipse(aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation) {\r\n\t\t\tvar x0 = this.currentPoint.x;\r\n\t\t\tvar y0 = this.currentPoint.y;\r\n\t\t\tthis.absellipse(aX + x0, aY + y0, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tabsellipse: function absellipse(aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation) {\r\n\t\t\tvar curve = new EllipseCurve(aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation);\r\n\r\n\t\t\tif (this.curves.length > 0) {\r\n\t\t\t\t// if a previous curve is present, attempt to join\r\n\t\t\t\tvar firstPoint = curve.getPoint(0);\r\n\r\n\t\t\t\tif (!firstPoint.equals(this.currentPoint)) {\r\n\t\t\t\t\tthis.lineTo(firstPoint.x, firstPoint.y);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.curves.push(curve);\r\n\t\t\tvar lastPoint = curve.getPoint(1);\r\n\t\t\tthis.currentPoint.copy(lastPoint);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tcopy: function copy(source) {\r\n\t\t\tCurvePath.prototype.copy.call(this, source);\r\n\t\t\tthis.currentPoint.copy(source.currentPoint);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\ttoJSON: function toJSON() {\r\n\t\t\tvar data = CurvePath.prototype.toJSON.call(this);\r\n\t\t\tdata.currentPoint = this.currentPoint.toArray();\r\n\t\t\treturn data;\r\n\t\t},\r\n\t\tfromJSON: function fromJSON(json) {\r\n\t\t\tCurvePath.prototype.fromJSON.call(this, json);\r\n\t\t\tthis.currentPoint.fromArray(json.currentPoint);\r\n\t\t\treturn this;\r\n\t\t}\r\n\t});\r\n\r\n\tfunction Shape(points) {\r\n\t\tPath.call(this, points);\r\n\t\tthis.uuid = MathUtils.generateUUID();\r\n\t\tthis.type = 'Shape';\r\n\t\tthis.holes = [];\r\n\t}\r\n\r\n\tShape.prototype = Object.assign(Object.create(Path.prototype), {\r\n\t\tconstructor: Shape,\r\n\t\tgetPointsHoles: function getPointsHoles(divisions) {\r\n\t\t\tvar holesPts = [];\r\n\r\n\t\t\tfor (var i = 0, l = this.holes.length; i < l; i++) {\r\n\t\t\t\tholesPts[i] = this.holes[i].getPoints(divisions);\r\n\t\t\t}\r\n\r\n\t\t\treturn holesPts;\r\n\t\t},\r\n\t\t// get points of shape and holes (keypoints based on segments parameter)\r\n\t\textractPoints: function extractPoints(divisions) {\r\n\t\t\treturn {\r\n\t\t\t\tshape: this.getPoints(divisions),\r\n\t\t\t\tholes: this.getPointsHoles(divisions)\r\n\t\t\t};\r\n\t\t},\r\n\t\tcopy: function copy(source) {\r\n\t\t\tPath.prototype.copy.call(this, source);\r\n\t\t\tthis.holes = [];\r\n\r\n\t\t\tfor (var i = 0, l = source.holes.length; i < l; i++) {\r\n\t\t\t\tvar hole = source.holes[i];\r\n\t\t\t\tthis.holes.push(hole.clone());\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\ttoJSON: function toJSON() {\r\n\t\t\tvar data = Path.prototype.toJSON.call(this);\r\n\t\t\tdata.uuid = this.uuid;\r\n\t\t\tdata.holes = [];\r\n\r\n\t\t\tfor (var i = 0, l = this.holes.length; i < l; i++) {\r\n\t\t\t\tvar hole = this.holes[i];\r\n\t\t\t\tdata.holes.push(hole.toJSON());\r\n\t\t\t}\r\n\r\n\t\t\treturn data;\r\n\t\t},\r\n\t\tfromJSON: function fromJSON(json) {\r\n\t\t\tPath.prototype.fromJSON.call(this, json);\r\n\t\t\tthis.uuid = json.uuid;\r\n\t\t\tthis.holes = [];\r\n\r\n\t\t\tfor (var i = 0, l = json.holes.length; i < l; i++) {\r\n\t\t\t\tvar hole = json.holes[i];\r\n\t\t\t\tthis.holes.push(new Path().fromJSON(hole));\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t}\r\n\t});\r\n\r\n\tfunction Light(color, intensity) {\r\n\t\tif (intensity === void 0) {\r\n\t\t\tintensity = 1;\r\n\t\t}\r\n\r\n\t\tObject3D.call(this);\r\n\t\tthis.type = 'Light';\r\n\t\tthis.color = new Color(color);\r\n\t\tthis.intensity = intensity;\r\n\t}\r\n\r\n\tLight.prototype = Object.assign(Object.create(Object3D.prototype), {\r\n\t\tconstructor: Light,\r\n\t\tisLight: true,\r\n\t\tcopy: function copy(source) {\r\n\t\t\tObject3D.prototype.copy.call(this, source);\r\n\t\t\tthis.color.copy(source.color);\r\n\t\t\tthis.intensity = source.intensity;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\ttoJSON: function toJSON(meta) {\r\n\t\t\tvar data = Object3D.prototype.toJSON.call(this, meta);\r\n\t\t\tdata.object.color = this.color.getHex();\r\n\t\t\tdata.object.intensity = this.intensity;\r\n\t\t\tif (this.groundColor !== undefined) data.object.groundColor = this.groundColor.getHex();\r\n\t\t\tif (this.distance !== undefined) data.object.distance = this.distance;\r\n\t\t\tif (this.angle !== undefined) data.object.angle = this.angle;\r\n\t\t\tif (this.decay !== undefined) data.object.decay = this.decay;\r\n\t\t\tif (this.penumbra !== undefined) data.object.penumbra = this.penumbra;\r\n\t\t\tif (this.shadow !== undefined) data.object.shadow = this.shadow.toJSON();\r\n\t\t\treturn data;\r\n\t\t}\r\n\t});\r\n\r\n\tfunction HemisphereLight(skyColor, groundColor, intensity) {\r\n\t\tLight.call(this, skyColor, intensity);\r\n\t\tthis.type = 'HemisphereLight';\r\n\t\tthis.position.copy(Object3D.DefaultUp);\r\n\t\tthis.updateMatrix();\r\n\t\tthis.groundColor = new Color(groundColor);\r\n\t}\r\n\r\n\tHemisphereLight.prototype = Object.assign(Object.create(Light.prototype), {\r\n\t\tconstructor: HemisphereLight,\r\n\t\tisHemisphereLight: true,\r\n\t\tcopy: function copy(source) {\r\n\t\t\tLight.prototype.copy.call(this, source);\r\n\t\t\tthis.groundColor.copy(source.groundColor);\r\n\t\t\treturn this;\r\n\t\t}\r\n\t});\r\n\r\n\tfunction LightShadow(camera) {\r\n\t\tthis.camera = camera;\r\n\t\tthis.bias = 0;\r\n\t\tthis.normalBias = 0;\r\n\t\tthis.radius = 1;\r\n\t\tthis.mapSize = new Vector2(512, 512);\r\n\t\tthis.map = null;\r\n\t\tthis.mapPass = null;\r\n\t\tthis.matrix = new Matrix4();\r\n\t\tthis.autoUpdate = true;\r\n\t\tthis.needsUpdate = false;\r\n\t\tthis._frustum = new Frustum();\r\n\t\tthis._frameExtents = new Vector2(1, 1);\r\n\t\tthis._viewportCount = 1;\r\n\t\tthis._viewports = [new Vector4(0, 0, 1, 1)];\r\n\t}\r\n\r\n\tObject.assign(LightShadow.prototype, {\r\n\t\t_projScreenMatrix: new Matrix4(),\r\n\t\t_lightPositionWorld: new Vector3(),\r\n\t\t_lookTarget: new Vector3(),\r\n\t\tgetViewportCount: function getViewportCount() {\r\n\t\t\treturn this._viewportCount;\r\n\t\t},\r\n\t\tgetFrustum: function getFrustum() {\r\n\t\t\treturn this._frustum;\r\n\t\t},\r\n\t\tupdateMatrices: function updateMatrices(light) {\r\n\t\t\tvar shadowCamera = this.camera,\r\n\t\t\t\t\tshadowMatrix = this.matrix,\r\n\t\t\t\t\tprojScreenMatrix = this._projScreenMatrix,\r\n\t\t\t\t\tlookTarget = this._lookTarget,\r\n\t\t\t\t\tlightPositionWorld = this._lightPositionWorld;\r\n\t\t\tlightPositionWorld.setFromMatrixPosition(light.matrixWorld);\r\n\t\t\tshadowCamera.position.copy(lightPositionWorld);\r\n\t\t\tlookTarget.setFromMatrixPosition(light.target.matrixWorld);\r\n\t\t\tshadowCamera.lookAt(lookTarget);\r\n\t\t\tshadowCamera.updateMatrixWorld();\r\n\t\t\tprojScreenMatrix.multiplyMatrices(shadowCamera.projectionMatrix, shadowCamera.matrixWorldInverse);\r\n\r\n\t\t\tthis._frustum.setFromProjectionMatrix(projScreenMatrix);\r\n\r\n\t\t\tshadowMatrix.set(0.5, 0.0, 0.0, 0.5, 0.0, 0.5, 0.0, 0.5, 0.0, 0.0, 0.5, 0.5, 0.0, 0.0, 0.0, 1.0);\r\n\t\t\tshadowMatrix.multiply(shadowCamera.projectionMatrix);\r\n\t\t\tshadowMatrix.multiply(shadowCamera.matrixWorldInverse);\r\n\t\t},\r\n\t\tgetViewport: function getViewport(viewportIndex) {\r\n\t\t\treturn this._viewports[viewportIndex];\r\n\t\t},\r\n\t\tgetFrameExtents: function getFrameExtents() {\r\n\t\t\treturn this._frameExtents;\r\n\t\t},\r\n\t\tcopy: function copy(source) {\r\n\t\t\tthis.camera = source.camera.clone();\r\n\t\t\tthis.bias = source.bias;\r\n\t\t\tthis.radius = source.radius;\r\n\t\t\tthis.mapSize.copy(source.mapSize);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tclone: function clone() {\r\n\t\t\treturn new this.constructor().copy(this);\r\n\t\t},\r\n\t\ttoJSON: function toJSON() {\r\n\t\t\tvar object = {};\r\n\t\t\tif (this.bias !== 0) object.bias = this.bias;\r\n\t\t\tif (this.normalBias !== 0) object.normalBias = this.normalBias;\r\n\t\t\tif (this.radius !== 1) object.radius = this.radius;\r\n\t\t\tif (this.mapSize.x !== 512 || this.mapSize.y !== 512) object.mapSize = this.mapSize.toArray();\r\n\t\t\tobject.camera = this.camera.toJSON(false).object;\r\n\t\t\tdelete object.camera.matrix;\r\n\t\t\treturn object;\r\n\t\t}\r\n\t});\r\n\r\n\tfunction SpotLightShadow() {\r\n\t\tLightShadow.call(this, new PerspectiveCamera(50, 1, 0.5, 500));\r\n\t\tthis.focus = 1;\r\n\t}\r\n\r\n\tSpotLightShadow.prototype = Object.assign(Object.create(LightShadow.prototype), {\r\n\t\tconstructor: SpotLightShadow,\r\n\t\tisSpotLightShadow: true,\r\n\t\tupdateMatrices: function updateMatrices(light) {\r\n\t\t\tvar camera = this.camera;\r\n\t\t\tvar fov = MathUtils.RAD2DEG * 2 * light.angle * this.focus;\r\n\t\t\tvar aspect = this.mapSize.width / this.mapSize.height;\r\n\t\t\tvar far = light.distance || camera.far;\r\n\r\n\t\t\tif (fov !== camera.fov || aspect !== camera.aspect || far !== camera.far) {\r\n\t\t\t\tcamera.fov = fov;\r\n\t\t\t\tcamera.aspect = aspect;\r\n\t\t\t\tcamera.far = far;\r\n\t\t\t\tcamera.updateProjectionMatrix();\r\n\t\t\t}\r\n\r\n\t\t\tLightShadow.prototype.updateMatrices.call(this, light);\r\n\t\t}\r\n\t});\r\n\r\n\tfunction SpotLight(color, intensity, distance, angle, penumbra, decay) {\r\n\t\tLight.call(this, color, intensity);\r\n\t\tthis.type = 'SpotLight';\r\n\t\tthis.position.copy(Object3D.DefaultUp);\r\n\t\tthis.updateMatrix();\r\n\t\tthis.target = new Object3D();\r\n\t\tObject.defineProperty(this, 'power', {\r\n\t\t\tget: function get() {\r\n\t\t\t\t// intensity = power per solid angle.\r\n\t\t\t\t// ref: equation (17) from https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf\r\n\t\t\t\treturn this.intensity * Math.PI;\r\n\t\t\t},\r\n\t\t\tset: function set(power) {\r\n\t\t\t\t// intensity = power per solid angle.\r\n\t\t\t\t// ref: equation (17) from https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf\r\n\t\t\t\tthis.intensity = power / Math.PI;\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.distance = distance !== undefined ? distance : 0;\r\n\t\tthis.angle = angle !== undefined ? angle : Math.PI / 3;\r\n\t\tthis.penumbra = penumbra !== undefined ? penumbra : 0;\r\n\t\tthis.decay = decay !== undefined ? decay : 1; // for physically correct lights, should be 2.\r\n\r\n\t\tthis.shadow = new SpotLightShadow();\r\n\t}\r\n\r\n\tSpotLight.prototype = Object.assign(Object.create(Light.prototype), {\r\n\t\tconstructor: SpotLight,\r\n\t\tisSpotLight: true,\r\n\t\tcopy: function copy(source) {\r\n\t\t\tLight.prototype.copy.call(this, source);\r\n\t\t\tthis.distance = source.distance;\r\n\t\t\tthis.angle = source.angle;\r\n\t\t\tthis.penumbra = source.penumbra;\r\n\t\t\tthis.decay = source.decay;\r\n\t\t\tthis.target = source.target.clone();\r\n\t\t\tthis.shadow = source.shadow.clone();\r\n\t\t\treturn this;\r\n\t\t}\r\n\t});\r\n\r\n\tfunction PointLightShadow() {\r\n\t\tLightShadow.call(this, new PerspectiveCamera(90, 1, 0.5, 500));\r\n\t\tthis._frameExtents = new Vector2(4, 2);\r\n\t\tthis._viewportCount = 6;\r\n\t\tthis._viewports = [// These viewports map a cube-map onto a 2D texture with the\r\n\t\t// following orientation:\r\n\t\t//\r\n\t\t//\txzXZ\r\n\t\t//\t y Y\r\n\t\t//\r\n\t\t// X - Positive x direction\r\n\t\t// x - Negative x direction\r\n\t\t// Y - Positive y direction\r\n\t\t// y - Negative y direction\r\n\t\t// Z - Positive z direction\r\n\t\t// z - Negative z direction\r\n\t\t// positive X\r\n\t\tnew Vector4(2, 1, 1, 1), // negative X\r\n\t\tnew Vector4(0, 1, 1, 1), // positive Z\r\n\t\tnew Vector4(3, 1, 1, 1), // negative Z\r\n\t\tnew Vector4(1, 1, 1, 1), // positive Y\r\n\t\tnew Vector4(3, 0, 1, 1), // negative Y\r\n\t\tnew Vector4(1, 0, 1, 1)];\r\n\t\tthis._cubeDirections = [new Vector3(1, 0, 0), new Vector3(-1, 0, 0), new Vector3(0, 0, 1), new Vector3(0, 0, -1), new Vector3(0, 1, 0), new Vector3(0, -1, 0)];\r\n\t\tthis._cubeUps = [new Vector3(0, 1, 0), new Vector3(0, 1, 0), new Vector3(0, 1, 0), new Vector3(0, 1, 0), new Vector3(0, 0, 1), new Vector3(0, 0, -1)];\r\n\t}\r\n\r\n\tPointLightShadow.prototype = Object.assign(Object.create(LightShadow.prototype), {\r\n\t\tconstructor: PointLightShadow,\r\n\t\tisPointLightShadow: true,\r\n\t\tupdateMatrices: function updateMatrices(light, viewportIndex) {\r\n\t\t\tif (viewportIndex === void 0) {\r\n\t\t\t\tviewportIndex = 0;\r\n\t\t\t}\r\n\r\n\t\t\tvar camera = this.camera,\r\n\t\t\t\t\tshadowMatrix = this.matrix,\r\n\t\t\t\t\tlightPositionWorld = this._lightPositionWorld,\r\n\t\t\t\t\tlookTarget = this._lookTarget,\r\n\t\t\t\t\tprojScreenMatrix = this._projScreenMatrix;\r\n\t\t\tlightPositionWorld.setFromMatrixPosition(light.matrixWorld);\r\n\t\t\tcamera.position.copy(lightPositionWorld);\r\n\t\t\tlookTarget.copy(camera.position);\r\n\t\t\tlookTarget.add(this._cubeDirections[viewportIndex]);\r\n\t\t\tcamera.up.copy(this._cubeUps[viewportIndex]);\r\n\t\t\tcamera.lookAt(lookTarget);\r\n\t\t\tcamera.updateMatrixWorld();\r\n\t\t\tshadowMatrix.makeTranslation(-lightPositionWorld.x, -lightPositionWorld.y, -lightPositionWorld.z);\r\n\t\t\tprojScreenMatrix.multiplyMatrices(camera.projectionMatrix, camera.matrixWorldInverse);\r\n\r\n\t\t\tthis._frustum.setFromProjectionMatrix(projScreenMatrix);\r\n\t\t}\r\n\t});\r\n\r\n\tfunction PointLight(color, intensity, distance, decay) {\r\n\t\tLight.call(this, color, intensity);\r\n\t\tthis.type = 'PointLight';\r\n\t\tObject.defineProperty(this, 'power', {\r\n\t\t\tget: function get() {\r\n\t\t\t\t// intensity = power per solid angle.\r\n\t\t\t\t// ref: equation (15) from https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf\r\n\t\t\t\treturn this.intensity * 4 * Math.PI;\r\n\t\t\t},\r\n\t\t\tset: function set(power) {\r\n\t\t\t\t// intensity = power per solid angle.\r\n\t\t\t\t// ref: equation (15) from https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf\r\n\t\t\t\tthis.intensity = power / (4 * Math.PI);\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.distance = distance !== undefined ? distance : 0;\r\n\t\tthis.decay = decay !== undefined ? decay : 1; // for physically correct lights, should be 2.\r\n\r\n\t\tthis.shadow = new PointLightShadow();\r\n\t}\r\n\r\n\tPointLight.prototype = Object.assign(Object.create(Light.prototype), {\r\n\t\tconstructor: PointLight,\r\n\t\tisPointLight: true,\r\n\t\tcopy: function copy(source) {\r\n\t\t\tLight.prototype.copy.call(this, source);\r\n\t\t\tthis.distance = source.distance;\r\n\t\t\tthis.decay = source.decay;\r\n\t\t\tthis.shadow = source.shadow.clone();\r\n\t\t\treturn this;\r\n\t\t}\r\n\t});\r\n\r\n\tfunction OrthographicCamera(left, right, top, bottom, near, far) {\r\n\t\tCamera.call(this);\r\n\t\tthis.type = 'OrthographicCamera';\r\n\t\tthis.zoom = 1;\r\n\t\tthis.view = null;\r\n\t\tthis.left = left !== undefined ? left : -1;\r\n\t\tthis.right = right !== undefined ? right : 1;\r\n\t\tthis.top = top !== undefined ? top : 1;\r\n\t\tthis.bottom = bottom !== undefined ? bottom : -1;\r\n\t\tthis.near = near !== undefined ? near : 0.1;\r\n\t\tthis.far = far !== undefined ? far : 2000;\r\n\t\tthis.updateProjectionMatrix();\r\n\t}\r\n\r\n\tOrthographicCamera.prototype = Object.assign(Object.create(Camera.prototype), {\r\n\t\tconstructor: OrthographicCamera,\r\n\t\tisOrthographicCamera: true,\r\n\t\tcopy: function copy(source, recursive) {\r\n\t\t\tCamera.prototype.copy.call(this, source, recursive);\r\n\t\t\tthis.left = source.left;\r\n\t\t\tthis.right = source.right;\r\n\t\t\tthis.top = source.top;\r\n\t\t\tthis.bottom = source.bottom;\r\n\t\t\tthis.near = source.near;\r\n\t\t\tthis.far = source.far;\r\n\t\t\tthis.zoom = source.zoom;\r\n\t\t\tthis.view = source.view === null ? null : Object.assign({}, source.view);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tsetViewOffset: function setViewOffset(fullWidth, fullHeight, x, y, width, height) {\r\n\t\t\tif (this.view === null) {\r\n\t\t\t\tthis.view = {\r\n\t\t\t\t\tenabled: true,\r\n\t\t\t\t\tfullWidth: 1,\r\n\t\t\t\t\tfullHeight: 1,\r\n\t\t\t\t\toffsetX: 0,\r\n\t\t\t\t\toffsetY: 0,\r\n\t\t\t\t\twidth: 1,\r\n\t\t\t\t\theight: 1\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tthis.view.enabled = true;\r\n\t\t\tthis.view.fullWidth = fullWidth;\r\n\t\t\tthis.view.fullHeight = fullHeight;\r\n\t\t\tthis.view.offsetX = x;\r\n\t\t\tthis.view.offsetY = y;\r\n\t\t\tthis.view.width = width;\r\n\t\t\tthis.view.height = height;\r\n\t\t\tthis.updateProjectionMatrix();\r\n\t\t},\r\n\t\tclearViewOffset: function clearViewOffset() {\r\n\t\t\tif (this.view !== null) {\r\n\t\t\t\tthis.view.enabled = false;\r\n\t\t\t}\r\n\r\n\t\t\tthis.updateProjectionMatrix();\r\n\t\t},\r\n\t\tupdateProjectionMatrix: function updateProjectionMatrix() {\r\n\t\t\tvar dx = (this.right - this.left) / (2 * this.zoom);\r\n\t\t\tvar dy = (this.top - this.bottom) / (2 * this.zoom);\r\n\t\t\tvar cx = (this.right + this.left) / 2;\r\n\t\t\tvar cy = (this.top + this.bottom) / 2;\r\n\t\t\tvar left = cx - dx;\r\n\t\t\tvar right = cx + dx;\r\n\t\t\tvar top = cy + dy;\r\n\t\t\tvar bottom = cy - dy;\r\n\r\n\t\t\tif (this.view !== null && this.view.enabled) {\r\n\t\t\t\tvar scaleW = (this.right - this.left) / this.view.fullWidth / this.zoom;\r\n\t\t\t\tvar scaleH = (this.top - this.bottom) / this.view.fullHeight / this.zoom;\r\n\t\t\t\tleft += scaleW * this.view.offsetX;\r\n\t\t\t\tright = left + scaleW * this.view.width;\r\n\t\t\t\ttop -= scaleH * this.view.offsetY;\r\n\t\t\t\tbottom = top - scaleH * this.view.height;\r\n\t\t\t}\r\n\r\n\t\t\tthis.projectionMatrix.makeOrthographic(left, right, top, bottom, this.near, this.far);\r\n\t\t\tthis.projectionMatrixInverse.copy(this.projectionMatrix).invert();\r\n\t\t},\r\n\t\ttoJSON: function toJSON(meta) {\r\n\t\t\tvar data = Object3D.prototype.toJSON.call(this, meta);\r\n\t\t\tdata.object.zoom = this.zoom;\r\n\t\t\tdata.object.left = this.left;\r\n\t\t\tdata.object.right = this.right;\r\n\t\t\tdata.object.top = this.top;\r\n\t\t\tdata.object.bottom = this.bottom;\r\n\t\t\tdata.object.near = this.near;\r\n\t\t\tdata.object.far = this.far;\r\n\t\t\tif (this.view !== null) data.object.view = Object.assign({}, this.view);\r\n\t\t\treturn data;\r\n\t\t}\r\n\t});\r\n\r\n\tfunction DirectionalLightShadow() {\r\n\t\tLightShadow.call(this, new OrthographicCamera(-5, 5, 5, -5, 0.5, 500));\r\n\t}\r\n\r\n\tDirectionalLightShadow.prototype = Object.assign(Object.create(LightShadow.prototype), {\r\n\t\tconstructor: DirectionalLightShadow,\r\n\t\tisDirectionalLightShadow: true,\r\n\t\tupdateMatrices: function updateMatrices(light) {\r\n\t\t\tLightShadow.prototype.updateMatrices.call(this, light);\r\n\t\t}\r\n\t});\r\n\r\n\tfunction DirectionalLight(color, intensity) {\r\n\t\tLight.call(this, color, intensity);\r\n\t\tthis.type = 'DirectionalLight';\r\n\t\tthis.position.copy(Object3D.DefaultUp);\r\n\t\tthis.updateMatrix();\r\n\t\tthis.target = new Object3D();\r\n\t\tthis.shadow = new DirectionalLightShadow();\r\n\t}\r\n\r\n\tDirectionalLight.prototype = Object.assign(Object.create(Light.prototype), {\r\n\t\tconstructor: DirectionalLight,\r\n\t\tisDirectionalLight: true,\r\n\t\tcopy: function copy(source) {\r\n\t\t\tLight.prototype.copy.call(this, source);\r\n\t\t\tthis.target = source.target.clone();\r\n\t\t\tthis.shadow = source.shadow.clone();\r\n\t\t\treturn this;\r\n\t\t}\r\n\t});\r\n\r\n\tfunction AmbientLight(color, intensity) {\r\n\t\tLight.call(this, color, intensity);\r\n\t\tthis.type = 'AmbientLight';\r\n\t}\r\n\r\n\tAmbientLight.prototype = Object.assign(Object.create(Light.prototype), {\r\n\t\tconstructor: AmbientLight,\r\n\t\tisAmbientLight: true\r\n\t});\r\n\r\n\tfunction RectAreaLight(color, intensity, width, height) {\r\n\t\tLight.call(this, color, intensity);\r\n\t\tthis.type = 'RectAreaLight';\r\n\t\tthis.width = width !== undefined ? width : 10;\r\n\t\tthis.height = height !== undefined ? height : 10;\r\n\t}\r\n\r\n\tRectAreaLight.prototype = Object.assign(Object.create(Light.prototype), {\r\n\t\tconstructor: RectAreaLight,\r\n\t\tisRectAreaLight: true,\r\n\t\tcopy: function copy(source) {\r\n\t\t\tLight.prototype.copy.call(this, source);\r\n\t\t\tthis.width = source.width;\r\n\t\t\tthis.height = source.height;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\ttoJSON: function toJSON(meta) {\r\n\t\t\tvar data = Light.prototype.toJSON.call(this, meta);\r\n\t\t\tdata.object.width = this.width;\r\n\t\t\tdata.object.height = this.height;\r\n\t\t\treturn data;\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t * Primary reference:\r\n\t *\t https://graphics.stanford.edu/papers/envmap/envmap.pdf\r\n\t *\r\n\t * Secondary reference:\r\n\t *\t https://www.ppsloan.org/publications/StupidSH36.pdf\r\n\t */\r\n\t// 3-band SH defined by 9 coefficients\r\n\r\n\tvar SphericalHarmonics3 = /*#__PURE__*/function () {\r\n\t\tfunction SphericalHarmonics3() {\r\n\t\t\tObject.defineProperty(this, 'isSphericalHarmonics3', {\r\n\t\t\t\tvalue: true\r\n\t\t\t});\r\n\t\t\tthis.coefficients = [];\r\n\r\n\t\t\tfor (var i = 0; i < 9; i++) {\r\n\t\t\t\tthis.coefficients.push(new Vector3());\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar _proto = SphericalHarmonics3.prototype;\r\n\r\n\t\t_proto.set = function set(coefficients) {\r\n\t\t\tfor (var i = 0; i < 9; i++) {\r\n\t\t\t\tthis.coefficients[i].copy(coefficients[i]);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.zero = function zero() {\r\n\t\t\tfor (var i = 0; i < 9; i++) {\r\n\t\t\t\tthis.coefficients[i].set(0, 0, 0);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t} // get the radiance in the direction of the normal\r\n\t\t// target is a Vector3\r\n\t\t;\r\n\r\n\t\t_proto.getAt = function getAt(normal, target) {\r\n\t\t\t// normal is assumed to be unit length\r\n\t\t\tvar x = normal.x,\r\n\t\t\t\t\ty = normal.y,\r\n\t\t\t\t\tz = normal.z;\r\n\t\t\tvar coeff = this.coefficients; // band 0\r\n\r\n\t\t\ttarget.copy(coeff[0]).multiplyScalar(0.282095); // band 1\r\n\r\n\t\t\ttarget.addScaledVector(coeff[1], 0.488603 * y);\r\n\t\t\ttarget.addScaledVector(coeff[2], 0.488603 * z);\r\n\t\t\ttarget.addScaledVector(coeff[3], 0.488603 * x); // band 2\r\n\r\n\t\t\ttarget.addScaledVector(coeff[4], 1.092548 * (x * y));\r\n\t\t\ttarget.addScaledVector(coeff[5], 1.092548 * (y * z));\r\n\t\t\ttarget.addScaledVector(coeff[6], 0.315392 * (3.0 * z * z - 1.0));\r\n\t\t\ttarget.addScaledVector(coeff[7], 1.092548 * (x * z));\r\n\t\t\ttarget.addScaledVector(coeff[8], 0.546274 * (x * x - y * y));\r\n\t\t\treturn target;\r\n\t\t} // get the irradiance (radiance convolved with cosine lobe) in the direction of the normal\r\n\t\t// target is a Vector3\r\n\t\t// https://graphics.stanford.edu/papers/envmap/envmap.pdf\r\n\t\t;\r\n\r\n\t\t_proto.getIrradianceAt = function getIrradianceAt(normal, target) {\r\n\t\t\t// normal is assumed to be unit length\r\n\t\t\tvar x = normal.x,\r\n\t\t\t\t\ty = normal.y,\r\n\t\t\t\t\tz = normal.z;\r\n\t\t\tvar coeff = this.coefficients; // band 0\r\n\r\n\t\t\ttarget.copy(coeff[0]).multiplyScalar(0.886227); // π * 0.282095\r\n\t\t\t// band 1\r\n\r\n\t\t\ttarget.addScaledVector(coeff[1], 2.0 * 0.511664 * y); // ( 2 * π / 3 ) * 0.488603\r\n\r\n\t\t\ttarget.addScaledVector(coeff[2], 2.0 * 0.511664 * z);\r\n\t\t\ttarget.addScaledVector(coeff[3], 2.0 * 0.511664 * x); // band 2\r\n\r\n\t\t\ttarget.addScaledVector(coeff[4], 2.0 * 0.429043 * x * y); // ( π / 4 ) * 1.092548\r\n\r\n\t\t\ttarget.addScaledVector(coeff[5], 2.0 * 0.429043 * y * z);\r\n\t\t\ttarget.addScaledVector(coeff[6], 0.743125 * z * z - 0.247708); // ( π / 4 ) * 0.315392 * 3\r\n\r\n\t\t\ttarget.addScaledVector(coeff[7], 2.0 * 0.429043 * x * z);\r\n\t\t\ttarget.addScaledVector(coeff[8], 0.429043 * (x * x - y * y)); // ( π / 4 ) * 0.546274\r\n\r\n\t\t\treturn target;\r\n\t\t};\r\n\r\n\t\t_proto.add = function add(sh) {\r\n\t\t\tfor (var i = 0; i < 9; i++) {\r\n\t\t\t\tthis.coefficients[i].add(sh.coefficients[i]);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.addScaledSH = function addScaledSH(sh, s) {\r\n\t\t\tfor (var i = 0; i < 9; i++) {\r\n\t\t\t\tthis.coefficients[i].addScaledVector(sh.coefficients[i], s);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.scale = function scale(s) {\r\n\t\t\tfor (var i = 0; i < 9; i++) {\r\n\t\t\t\tthis.coefficients[i].multiplyScalar(s);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.lerp = function lerp(sh, alpha) {\r\n\t\t\tfor (var i = 0; i < 9; i++) {\r\n\t\t\t\tthis.coefficients[i].lerp(sh.coefficients[i], alpha);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.equals = function equals(sh) {\r\n\t\t\tfor (var i = 0; i < 9; i++) {\r\n\t\t\t\tif (!this.coefficients[i].equals(sh.coefficients[i])) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn true;\r\n\t\t};\r\n\r\n\t\t_proto.copy = function copy(sh) {\r\n\t\t\treturn this.set(sh.coefficients);\r\n\t\t};\r\n\r\n\t\t_proto.clone = function clone() {\r\n\t\t\treturn new this.constructor().copy(this);\r\n\t\t};\r\n\r\n\t\t_proto.fromArray = function fromArray(array, offset) {\r\n\t\t\tif (offset === void 0) {\r\n\t\t\t\toffset = 0;\r\n\t\t\t}\r\n\r\n\t\t\tvar coefficients = this.coefficients;\r\n\r\n\t\t\tfor (var i = 0; i < 9; i++) {\r\n\t\t\t\tcoefficients[i].fromArray(array, offset + i * 3);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.toArray = function toArray(array, offset) {\r\n\t\t\tif (array === void 0) {\r\n\t\t\t\tarray = [];\r\n\t\t\t}\r\n\r\n\t\t\tif (offset === void 0) {\r\n\t\t\t\toffset = 0;\r\n\t\t\t}\r\n\r\n\t\t\tvar coefficients = this.coefficients;\r\n\r\n\t\t\tfor (var i = 0; i < 9; i++) {\r\n\t\t\t\tcoefficients[i].toArray(array, offset + i * 3);\r\n\t\t\t}\r\n\r\n\t\t\treturn array;\r\n\t\t} // evaluate the basis functions\r\n\t\t// shBasis is an Array[ 9 ]\r\n\t\t;\r\n\r\n\t\tSphericalHarmonics3.getBasisAt = function getBasisAt(normal, shBasis) {\r\n\t\t\t// normal is assumed to be unit length\r\n\t\t\tvar x = normal.x,\r\n\t\t\t\t\ty = normal.y,\r\n\t\t\t\t\tz = normal.z; // band 0\r\n\r\n\t\t\tshBasis[0] = 0.282095; // band 1\r\n\r\n\t\t\tshBasis[1] = 0.488603 * y;\r\n\t\t\tshBasis[2] = 0.488603 * z;\r\n\t\t\tshBasis[3] = 0.488603 * x; // band 2\r\n\r\n\t\t\tshBasis[4] = 1.092548 * x * y;\r\n\t\t\tshBasis[5] = 1.092548 * y * z;\r\n\t\t\tshBasis[6] = 0.315392 * (3 * z * z - 1);\r\n\t\t\tshBasis[7] = 1.092548 * x * z;\r\n\t\t\tshBasis[8] = 0.546274 * (x * x - y * y);\r\n\t\t};\r\n\r\n\t\treturn SphericalHarmonics3;\r\n\t}();\r\n\r\n\tfunction LightProbe(sh, intensity) {\r\n\t\tLight.call(this, undefined, intensity);\r\n\t\tthis.type = 'LightProbe';\r\n\t\tthis.sh = sh !== undefined ? sh : new SphericalHarmonics3();\r\n\t}\r\n\r\n\tLightProbe.prototype = Object.assign(Object.create(Light.prototype), {\r\n\t\tconstructor: LightProbe,\r\n\t\tisLightProbe: true,\r\n\t\tcopy: function copy(source) {\r\n\t\t\tLight.prototype.copy.call(this, source);\r\n\t\t\tthis.sh.copy(source.sh);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tfromJSON: function fromJSON(json) {\r\n\t\t\tthis.intensity = json.intensity; // TODO: Move this bit to Light.fromJSON();\r\n\r\n\t\t\tthis.sh.fromArray(json.sh);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\ttoJSON: function toJSON(meta) {\r\n\t\t\tvar data = Light.prototype.toJSON.call(this, meta);\r\n\t\t\tdata.object.sh = this.sh.toArray();\r\n\t\t\treturn data;\r\n\t\t}\r\n\t});\r\n\r\n\tfunction MaterialLoader(manager) {\r\n\t\tLoader.call(this, manager);\r\n\t\tthis.textures = {};\r\n\t}\r\n\r\n\tMaterialLoader.prototype = Object.assign(Object.create(Loader.prototype), {\r\n\t\tconstructor: MaterialLoader,\r\n\t\tload: function load(url, onLoad, onProgress, onError) {\r\n\t\t\tvar scope = this;\r\n\t\t\tvar loader = new FileLoader(scope.manager);\r\n\t\t\tloader.setPath(scope.path);\r\n\t\t\tloader.setRequestHeader(scope.requestHeader);\r\n\t\t\tloader.setWithCredentials(scope.withCredentials);\r\n\t\t\tloader.load(url, function (text) {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tonLoad(scope.parse(JSON.parse(text)));\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\tif (onError) {\r\n\t\t\t\t\t\tonError(e);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconsole.error(e);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tscope.manager.itemError(url);\r\n\t\t\t\t}\r\n\t\t\t}, onProgress, onError);\r\n\t\t},\r\n\t\tparse: function parse(json) {\r\n\t\t\tvar textures = this.textures;\r\n\r\n\t\t\tfunction getTexture(name) {\r\n\t\t\t\tif (textures[name] === undefined) {\r\n\t\t\t\t\tconsole.warn('THREE.MaterialLoader: Undefined texture', name);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn textures[name];\r\n\t\t\t}\r\n\r\n\t\t\tvar material = new Materials[json.type]();\r\n\t\t\tif (json.uuid !== undefined) material.uuid = json.uuid;\r\n\t\t\tif (json.name !== undefined) material.name = json.name;\r\n\t\t\tif (json.color !== undefined && material.color !== undefined) material.color.setHex(json.color);\r\n\t\t\tif (json.roughness !== undefined) material.roughness = json.roughness;\r\n\t\t\tif (json.metalness !== undefined) material.metalness = json.metalness;\r\n\t\t\tif (json.sheen !== undefined) material.sheen = new Color().setHex(json.sheen);\r\n\t\t\tif (json.emissive !== undefined && material.emissive !== undefined) material.emissive.setHex(json.emissive);\r\n\t\t\tif (json.specular !== undefined && material.specular !== undefined) material.specular.setHex(json.specular);\r\n\t\t\tif (json.shininess !== undefined) material.shininess = json.shininess;\r\n\t\t\tif (json.clearcoat !== undefined) material.clearcoat = json.clearcoat;\r\n\t\t\tif (json.clearcoatRoughness !== undefined) material.clearcoatRoughness = json.clearcoatRoughness;\r\n\t\t\tif (json.fog !== undefined) material.fog = json.fog;\r\n\t\t\tif (json.flatShading !== undefined) material.flatShading = json.flatShading;\r\n\t\t\tif (json.blending !== undefined) material.blending = json.blending;\r\n\t\t\tif (json.combine !== undefined) material.combine = json.combine;\r\n\t\t\tif (json.side !== undefined) material.side = json.side;\r\n\t\t\tif (json.opacity !== undefined) material.opacity = json.opacity;\r\n\t\t\tif (json.transparent !== undefined) material.transparent = json.transparent;\r\n\t\t\tif (json.alphaTest !== undefined) material.alphaTest = json.alphaTest;\r\n\t\t\tif (json.depthTest !== undefined) material.depthTest = json.depthTest;\r\n\t\t\tif (json.depthWrite !== undefined) material.depthWrite = json.depthWrite;\r\n\t\t\tif (json.colorWrite !== undefined) material.colorWrite = json.colorWrite;\r\n\t\t\tif (json.stencilWrite !== undefined) material.stencilWrite = json.stencilWrite;\r\n\t\t\tif (json.stencilWriteMask !== undefined) material.stencilWriteMask = json.stencilWriteMask;\r\n\t\t\tif (json.stencilFunc !== undefined) material.stencilFunc = json.stencilFunc;\r\n\t\t\tif (json.stencilRef !== undefined) material.stencilRef = json.stencilRef;\r\n\t\t\tif (json.stencilFuncMask !== undefined) material.stencilFuncMask = json.stencilFuncMask;\r\n\t\t\tif (json.stencilFail !== undefined) material.stencilFail = json.stencilFail;\r\n\t\t\tif (json.stencilZFail !== undefined) material.stencilZFail = json.stencilZFail;\r\n\t\t\tif (json.stencilZPass !== undefined) material.stencilZPass = json.stencilZPass;\r\n\t\t\tif (json.wireframe !== undefined) material.wireframe = json.wireframe;\r\n\t\t\tif (json.wireframeLinewidth !== undefined) material.wireframeLinewidth = json.wireframeLinewidth;\r\n\t\t\tif (json.wireframeLinecap !== undefined) material.wireframeLinecap = json.wireframeLinecap;\r\n\t\t\tif (json.wireframeLinejoin !== undefined) material.wireframeLinejoin = json.wireframeLinejoin;\r\n\t\t\tif (json.rotation !== undefined) material.rotation = json.rotation;\r\n\t\t\tif (json.linewidth !== 1) material.linewidth = json.linewidth;\r\n\t\t\tif (json.dashSize !== undefined) material.dashSize = json.dashSize;\r\n\t\t\tif (json.gapSize !== undefined) material.gapSize = json.gapSize;\r\n\t\t\tif (json.scale !== undefined) material.scale = json.scale;\r\n\t\t\tif (json.polygonOffset !== undefined) material.polygonOffset = json.polygonOffset;\r\n\t\t\tif (json.polygonOffsetFactor !== undefined) material.polygonOffsetFactor = json.polygonOffsetFactor;\r\n\t\t\tif (json.polygonOffsetUnits !== undefined) material.polygonOffsetUnits = json.polygonOffsetUnits;\r\n\t\t\tif (json.skinning !== undefined) material.skinning = json.skinning;\r\n\t\t\tif (json.morphTargets !== undefined) material.morphTargets = json.morphTargets;\r\n\t\t\tif (json.morphNormals !== undefined) material.morphNormals = json.morphNormals;\r\n\t\t\tif (json.dithering !== undefined) material.dithering = json.dithering;\r\n\t\t\tif (json.vertexTangents !== undefined) material.vertexTangents = json.vertexTangents;\r\n\t\t\tif (json.visible !== undefined) material.visible = json.visible;\r\n\t\t\tif (json.toneMapped !== undefined) material.toneMapped = json.toneMapped;\r\n\t\t\tif (json.userData !== undefined) material.userData = json.userData;\r\n\r\n\t\t\tif (json.vertexColors !== undefined) {\r\n\t\t\t\tif (typeof json.vertexColors === 'number') {\r\n\t\t\t\t\tmaterial.vertexColors = json.vertexColors > 0 ? true : false;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tmaterial.vertexColors = json.vertexColors;\r\n\t\t\t\t}\r\n\t\t\t} // Shader Material\r\n\r\n\r\n\t\t\tif (json.uniforms !== undefined) {\r\n\t\t\t\tfor (var name in json.uniforms) {\r\n\t\t\t\t\tvar uniform = json.uniforms[name];\r\n\t\t\t\t\tmaterial.uniforms[name] = {};\r\n\r\n\t\t\t\t\tswitch (uniform.type) {\r\n\t\t\t\t\t\tcase 't':\r\n\t\t\t\t\t\t\tmaterial.uniforms[name].value = getTexture(uniform.value);\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 'c':\r\n\t\t\t\t\t\t\tmaterial.uniforms[name].value = new Color().setHex(uniform.value);\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 'v2':\r\n\t\t\t\t\t\t\tmaterial.uniforms[name].value = new Vector2().fromArray(uniform.value);\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 'v3':\r\n\t\t\t\t\t\t\tmaterial.uniforms[name].value = new Vector3().fromArray(uniform.value);\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 'v4':\r\n\t\t\t\t\t\t\tmaterial.uniforms[name].value = new Vector4().fromArray(uniform.value);\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 'm3':\r\n\t\t\t\t\t\t\tmaterial.uniforms[name].value = new Matrix3().fromArray(uniform.value);\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 'm4':\r\n\t\t\t\t\t\t\tmaterial.uniforms[name].value = new Matrix4().fromArray(uniform.value);\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\tmaterial.uniforms[name].value = uniform.value;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (json.defines !== undefined) material.defines = json.defines;\r\n\t\t\tif (json.vertexShader !== undefined) material.vertexShader = json.vertexShader;\r\n\t\t\tif (json.fragmentShader !== undefined) material.fragmentShader = json.fragmentShader;\r\n\r\n\t\t\tif (json.extensions !== undefined) {\r\n\t\t\t\tfor (var key in json.extensions) {\r\n\t\t\t\t\tmaterial.extensions[key] = json.extensions[key];\r\n\t\t\t\t}\r\n\t\t\t} // Deprecated\r\n\r\n\r\n\t\t\tif (json.shading !== undefined) material.flatShading = json.shading === 1; // THREE.FlatShading\r\n\t\t\t// for PointsMaterial\r\n\r\n\t\t\tif (json.size !== undefined) material.size = json.size;\r\n\t\t\tif (json.sizeAttenuation !== undefined) material.sizeAttenuation = json.sizeAttenuation; // maps\r\n\r\n\t\t\tif (json.map !== undefined) material.map = getTexture(json.map);\r\n\t\t\tif (json.matcap !== undefined) material.matcap = getTexture(json.matcap);\r\n\t\t\tif (json.alphaMap !== undefined) material.alphaMap = getTexture(json.alphaMap);\r\n\t\t\tif (json.bumpMap !== undefined) material.bumpMap = getTexture(json.bumpMap);\r\n\t\t\tif (json.bumpScale !== undefined) material.bumpScale = json.bumpScale;\r\n\t\t\tif (json.normalMap !== undefined) material.normalMap = getTexture(json.normalMap);\r\n\t\t\tif (json.normalMapType !== undefined) material.normalMapType = json.normalMapType;\r\n\r\n\t\t\tif (json.normalScale !== undefined) {\r\n\t\t\t\tvar normalScale = json.normalScale;\r\n\r\n\t\t\t\tif (Array.isArray(normalScale) === false) {\r\n\t\t\t\t\t// Blender exporter used to export a scalar. See #7459\r\n\t\t\t\t\tnormalScale = [normalScale, normalScale];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tmaterial.normalScale = new Vector2().fromArray(normalScale);\r\n\t\t\t}\r\n\r\n\t\t\tif (json.displacementMap !== undefined) material.displacementMap = getTexture(json.displacementMap);\r\n\t\t\tif (json.displacementScale !== undefined) material.displacementScale = json.displacementScale;\r\n\t\t\tif (json.displacementBias !== undefined) material.displacementBias = json.displacementBias;\r\n\t\t\tif (json.roughnessMap !== undefined) material.roughnessMap = getTexture(json.roughnessMap);\r\n\t\t\tif (json.metalnessMap !== undefined) material.metalnessMap = getTexture(json.metalnessMap);\r\n\t\t\tif (json.emissiveMap !== undefined) material.emissiveMap = getTexture(json.emissiveMap);\r\n\t\t\tif (json.emissiveIntensity !== undefined) material.emissiveIntensity = json.emissiveIntensity;\r\n\t\t\tif (json.specularMap !== undefined) material.specularMap = getTexture(json.specularMap);\r\n\t\t\tif (json.envMap !== undefined) material.envMap = getTexture(json.envMap);\r\n\t\t\tif (json.envMapIntensity !== undefined) material.envMapIntensity = json.envMapIntensity;\r\n\t\t\tif (json.reflectivity !== undefined) material.reflectivity = json.reflectivity;\r\n\t\t\tif (json.refractionRatio !== undefined) material.refractionRatio = json.refractionRatio;\r\n\t\t\tif (json.lightMap !== undefined) material.lightMap = getTexture(json.lightMap);\r\n\t\t\tif (json.lightMapIntensity !== undefined) material.lightMapIntensity = json.lightMapIntensity;\r\n\t\t\tif (json.aoMap !== undefined) material.aoMap = getTexture(json.aoMap);\r\n\t\t\tif (json.aoMapIntensity !== undefined) material.aoMapIntensity = json.aoMapIntensity;\r\n\t\t\tif (json.gradientMap !== undefined) material.gradientMap = getTexture(json.gradientMap);\r\n\t\t\tif (json.clearcoatMap !== undefined) material.clearcoatMap = getTexture(json.clearcoatMap);\r\n\t\t\tif (json.clearcoatRoughnessMap !== undefined) material.clearcoatRoughnessMap = getTexture(json.clearcoatRoughnessMap);\r\n\t\t\tif (json.clearcoatNormalMap !== undefined) material.clearcoatNormalMap = getTexture(json.clearcoatNormalMap);\r\n\t\t\tif (json.clearcoatNormalScale !== undefined) material.clearcoatNormalScale = new Vector2().fromArray(json.clearcoatNormalScale);\r\n\t\t\tif (json.transmission !== undefined) material.transmission = json.transmission;\r\n\t\t\tif (json.transmissionMap !== undefined) material.transmissionMap = getTexture(json.transmissionMap);\r\n\t\t\treturn material;\r\n\t\t},\r\n\t\tsetTextures: function setTextures(value) {\r\n\t\t\tthis.textures = value;\r\n\t\t\treturn this;\r\n\t\t}\r\n\t});\r\n\r\n\tvar LoaderUtils = {\r\n\t\tdecodeText: function decodeText(array) {\r\n\t\t\tif (typeof TextDecoder !== 'undefined') {\r\n\t\t\t\treturn new TextDecoder().decode(array);\r\n\t\t\t} // Avoid the String.fromCharCode.apply(null, array) shortcut, which\r\n\t\t\t// throws a \"maximum call stack size exceeded\" error for large arrays.\r\n\r\n\r\n\t\t\tvar s = '';\r\n\r\n\t\t\tfor (var i = 0, il = array.length; i < il; i++) {\r\n\t\t\t\t// Implicitly assumes little-endian.\r\n\t\t\t\ts += String.fromCharCode(array[i]);\r\n\t\t\t}\r\n\r\n\t\t\ttry {\r\n\t\t\t\t// merges multi-byte utf-8 characters.\r\n\t\t\t\treturn decodeURIComponent(escape(s));\r\n\t\t\t} catch (e) {\r\n\t\t\t\t// see #16358\r\n\t\t\t\treturn s;\r\n\t\t\t}\r\n\t\t},\r\n\t\textractUrlBase: function extractUrlBase(url) {\r\n\t\t\tvar index = url.lastIndexOf('/');\r\n\t\t\tif (index === -1) return './';\r\n\t\t\treturn url.substr(0, index + 1);\r\n\t\t}\r\n\t};\r\n\r\n\tfunction InstancedBufferGeometry() {\r\n\t\tBufferGeometry.call(this);\r\n\t\tthis.type = 'InstancedBufferGeometry';\r\n\t\tthis.instanceCount = Infinity;\r\n\t}\r\n\r\n\tInstancedBufferGeometry.prototype = Object.assign(Object.create(BufferGeometry.prototype), {\r\n\t\tconstructor: InstancedBufferGeometry,\r\n\t\tisInstancedBufferGeometry: true,\r\n\t\tcopy: function copy(source) {\r\n\t\t\tBufferGeometry.prototype.copy.call(this, source);\r\n\t\t\tthis.instanceCount = source.instanceCount;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tclone: function clone() {\r\n\t\t\treturn new this.constructor().copy(this);\r\n\t\t},\r\n\t\ttoJSON: function toJSON() {\r\n\t\t\tvar data = BufferGeometry.prototype.toJSON.call(this);\r\n\t\t\tdata.instanceCount = this.instanceCount;\r\n\t\t\tdata.isInstancedBufferGeometry = true;\r\n\t\t\treturn data;\r\n\t\t}\r\n\t});\r\n\r\n\tfunction InstancedBufferAttribute(array, itemSize, normalized, meshPerAttribute) {\r\n\t\tif (typeof normalized === 'number') {\r\n\t\t\tmeshPerAttribute = normalized;\r\n\t\t\tnormalized = false;\r\n\t\t\tconsole.error('THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument.');\r\n\t\t}\r\n\r\n\t\tBufferAttribute.call(this, array, itemSize, normalized);\r\n\t\tthis.meshPerAttribute = meshPerAttribute || 1;\r\n\t}\r\n\r\n\tInstancedBufferAttribute.prototype = Object.assign(Object.create(BufferAttribute.prototype), {\r\n\t\tconstructor: InstancedBufferAttribute,\r\n\t\tisInstancedBufferAttribute: true,\r\n\t\tcopy: function copy(source) {\r\n\t\t\tBufferAttribute.prototype.copy.call(this, source);\r\n\t\t\tthis.meshPerAttribute = source.meshPerAttribute;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\ttoJSON: function toJSON() {\r\n\t\t\tvar data = BufferAttribute.prototype.toJSON.call(this);\r\n\t\t\tdata.meshPerAttribute = this.meshPerAttribute;\r\n\t\t\tdata.isInstancedBufferAttribute = true;\r\n\t\t\treturn data;\r\n\t\t}\r\n\t});\r\n\r\n\tfunction BufferGeometryLoader(manager) {\r\n\t\tLoader.call(this, manager);\r\n\t}\r\n\r\n\tBufferGeometryLoader.prototype = Object.assign(Object.create(Loader.prototype), {\r\n\t\tconstructor: BufferGeometryLoader,\r\n\t\tload: function load(url, onLoad, onProgress, onError) {\r\n\t\t\tvar scope = this;\r\n\t\t\tvar loader = new FileLoader(scope.manager);\r\n\t\t\tloader.setPath(scope.path);\r\n\t\t\tloader.setRequestHeader(scope.requestHeader);\r\n\t\t\tloader.setWithCredentials(scope.withCredentials);\r\n\t\t\tloader.load(url, function (text) {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tonLoad(scope.parse(JSON.parse(text)));\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\tif (onError) {\r\n\t\t\t\t\t\tonError(e);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconsole.error(e);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tscope.manager.itemError(url);\r\n\t\t\t\t}\r\n\t\t\t}, onProgress, onError);\r\n\t\t},\r\n\t\tparse: function parse(json) {\r\n\t\t\tvar interleavedBufferMap = {};\r\n\t\t\tvar arrayBufferMap = {};\r\n\r\n\t\t\tfunction getInterleavedBuffer(json, uuid) {\r\n\t\t\t\tif (interleavedBufferMap[uuid] !== undefined) return interleavedBufferMap[uuid];\r\n\t\t\t\tvar interleavedBuffers = json.interleavedBuffers;\r\n\t\t\t\tvar interleavedBuffer = interleavedBuffers[uuid];\r\n\t\t\t\tvar buffer = getArrayBuffer(json, interleavedBuffer.buffer);\r\n\t\t\t\tvar array = getTypedArray(interleavedBuffer.type, buffer);\r\n\t\t\t\tvar ib = new InterleavedBuffer(array, interleavedBuffer.stride);\r\n\t\t\t\tib.uuid = interleavedBuffer.uuid;\r\n\t\t\t\tinterleavedBufferMap[uuid] = ib;\r\n\t\t\t\treturn ib;\r\n\t\t\t}\r\n\r\n\t\t\tfunction getArrayBuffer(json, uuid) {\r\n\t\t\t\tif (arrayBufferMap[uuid] !== undefined) return arrayBufferMap[uuid];\r\n\t\t\t\tvar arrayBuffers = json.arrayBuffers;\r\n\t\t\t\tvar arrayBuffer = arrayBuffers[uuid];\r\n\t\t\t\tvar ab = new Uint32Array(arrayBuffer).buffer;\r\n\t\t\t\tarrayBufferMap[uuid] = ab;\r\n\t\t\t\treturn ab;\r\n\t\t\t}\r\n\r\n\t\t\tvar geometry = json.isInstancedBufferGeometry ? new InstancedBufferGeometry() : new BufferGeometry();\r\n\t\t\tvar index = json.data.index;\r\n\r\n\t\t\tif (index !== undefined) {\r\n\t\t\t\tvar typedArray = getTypedArray(index.type, index.array);\r\n\t\t\t\tgeometry.setIndex(new BufferAttribute(typedArray, 1));\r\n\t\t\t}\r\n\r\n\t\t\tvar attributes = json.data.attributes;\r\n\r\n\t\t\tfor (var key in attributes) {\r\n\t\t\t\tvar attribute = attributes[key];\r\n\t\t\t\tvar bufferAttribute = void 0;\r\n\r\n\t\t\t\tif (attribute.isInterleavedBufferAttribute) {\r\n\t\t\t\t\tvar interleavedBuffer = getInterleavedBuffer(json.data, attribute.data);\r\n\t\t\t\t\tbufferAttribute = new InterleavedBufferAttribute(interleavedBuffer, attribute.itemSize, attribute.offset, attribute.normalized);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar _typedArray = getTypedArray(attribute.type, attribute.array);\r\n\r\n\t\t\t\t\tvar bufferAttributeConstr = attribute.isInstancedBufferAttribute ? InstancedBufferAttribute : BufferAttribute;\r\n\t\t\t\t\tbufferAttribute = new bufferAttributeConstr(_typedArray, attribute.itemSize, attribute.normalized);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (attribute.name !== undefined) bufferAttribute.name = attribute.name;\r\n\t\t\t\tgeometry.setAttribute(key, bufferAttribute);\r\n\t\t\t}\r\n\r\n\t\t\tvar morphAttributes = json.data.morphAttributes;\r\n\r\n\t\t\tif (morphAttributes) {\r\n\t\t\t\tfor (var _key in morphAttributes) {\r\n\t\t\t\t\tvar attributeArray = morphAttributes[_key];\r\n\t\t\t\t\tvar array = [];\r\n\r\n\t\t\t\t\tfor (var i = 0, il = attributeArray.length; i < il; i++) {\r\n\t\t\t\t\t\tvar _attribute = attributeArray[i];\r\n\r\n\t\t\t\t\t\tvar _bufferAttribute = void 0;\r\n\r\n\t\t\t\t\t\tif (_attribute.isInterleavedBufferAttribute) {\r\n\t\t\t\t\t\t\tvar _interleavedBuffer = getInterleavedBuffer(json.data, _attribute.data);\r\n\r\n\t\t\t\t\t\t\t_bufferAttribute = new InterleavedBufferAttribute(_interleavedBuffer, _attribute.itemSize, _attribute.offset, _attribute.normalized);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tvar _typedArray2 = getTypedArray(_attribute.type, _attribute.array);\r\n\r\n\t\t\t\t\t\t\t_bufferAttribute = new BufferAttribute(_typedArray2, _attribute.itemSize, _attribute.normalized);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (_attribute.name !== undefined) _bufferAttribute.name = _attribute.name;\r\n\t\t\t\t\t\tarray.push(_bufferAttribute);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tgeometry.morphAttributes[_key] = array;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar morphTargetsRelative = json.data.morphTargetsRelative;\r\n\r\n\t\t\tif (morphTargetsRelative) {\r\n\t\t\t\tgeometry.morphTargetsRelative = true;\r\n\t\t\t}\r\n\r\n\t\t\tvar groups = json.data.groups || json.data.drawcalls || json.data.offsets;\r\n\r\n\t\t\tif (groups !== undefined) {\r\n\t\t\t\tfor (var _i = 0, n = groups.length; _i !== n; ++_i) {\r\n\t\t\t\t\tvar group = groups[_i];\r\n\t\t\t\t\tgeometry.addGroup(group.start, group.count, group.materialIndex);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar boundingSphere = json.data.boundingSphere;\r\n\r\n\t\t\tif (boundingSphere !== undefined) {\r\n\t\t\t\tvar center = new Vector3();\r\n\r\n\t\t\t\tif (boundingSphere.center !== undefined) {\r\n\t\t\t\t\tcenter.fromArray(boundingSphere.center);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tgeometry.boundingSphere = new Sphere(center, boundingSphere.radius);\r\n\t\t\t}\r\n\r\n\t\t\tif (json.name) geometry.name = json.name;\r\n\t\t\tif (json.userData) geometry.userData = json.userData;\r\n\t\t\treturn geometry;\r\n\t\t}\r\n\t});\r\n\r\n\tvar ObjectLoader = /*#__PURE__*/function (_Loader) {\r\n\t\t_inheritsLoose(ObjectLoader, _Loader);\r\n\r\n\t\tfunction ObjectLoader(manager) {\r\n\t\t\treturn _Loader.call(this, manager) || this;\r\n\t\t}\r\n\r\n\t\tvar _proto = ObjectLoader.prototype;\r\n\r\n\t\t_proto.load = function load(url, onLoad, onProgress, onError) {\r\n\t\t\tvar scope = this;\r\n\t\t\tvar path = this.path === '' ? LoaderUtils.extractUrlBase(url) : this.path;\r\n\t\t\tthis.resourcePath = this.resourcePath || path;\r\n\t\t\tvar loader = new FileLoader(this.manager);\r\n\t\t\tloader.setPath(this.path);\r\n\t\t\tloader.setRequestHeader(this.requestHeader);\r\n\t\t\tloader.setWithCredentials(this.withCredentials);\r\n\t\t\tloader.load(url, function (text) {\r\n\t\t\t\tvar json = null;\r\n\r\n\t\t\t\ttry {\r\n\t\t\t\t\tjson = JSON.parse(text);\r\n\t\t\t\t} catch (error) {\r\n\t\t\t\t\tif (onError !== undefined) onError(error);\r\n\t\t\t\t\tconsole.error('THREE:ObjectLoader: Can\\'t parse ' + url + '.', error.message);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar metadata = json.metadata;\r\n\r\n\t\t\t\tif (metadata === undefined || metadata.type === undefined || metadata.type.toLowerCase() === 'geometry') {\r\n\t\t\t\t\tconsole.error('THREE.ObjectLoader: Can\\'t load ' + url);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tscope.parse(json, onLoad);\r\n\t\t\t}, onProgress, onError);\r\n\t\t};\r\n\r\n\t\t_proto.parse = function parse(json, onLoad) {\r\n\t\t\tvar animations = this.parseAnimations(json.animations);\r\n\t\t\tvar shapes = this.parseShapes(json.shapes);\r\n\t\t\tvar geometries = this.parseGeometries(json.geometries, shapes);\r\n\t\t\tvar images = this.parseImages(json.images, function () {\r\n\t\t\t\tif (onLoad !== undefined) onLoad(object);\r\n\t\t\t});\r\n\t\t\tvar textures = this.parseTextures(json.textures, images);\r\n\t\t\tvar materials = this.parseMaterials(json.materials, textures);\r\n\t\t\tvar object = this.parseObject(json.object, geometries, materials, animations);\r\n\t\t\tvar skeletons = this.parseSkeletons(json.skeletons, object);\r\n\t\t\tthis.bindSkeletons(object, skeletons); //\r\n\r\n\t\t\tif (onLoad !== undefined) {\r\n\t\t\t\tvar hasImages = false;\r\n\r\n\t\t\t\tfor (var uuid in images) {\r\n\t\t\t\t\tif (images[uuid] instanceof HTMLImageElement) {\r\n\t\t\t\t\t\thasImages = true;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (hasImages === false) onLoad(object);\r\n\t\t\t}\r\n\r\n\t\t\treturn object;\r\n\t\t};\r\n\r\n\t\t_proto.parseShapes = function parseShapes(json) {\r\n\t\t\tvar shapes = {};\r\n\r\n\t\t\tif (json !== undefined) {\r\n\t\t\t\tfor (var i = 0, l = json.length; i < l; i++) {\r\n\t\t\t\t\tvar shape = new Shape().fromJSON(json[i]);\r\n\t\t\t\t\tshapes[shape.uuid] = shape;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn shapes;\r\n\t\t};\r\n\r\n\t\t_proto.parseSkeletons = function parseSkeletons(json, object) {\r\n\t\t\tvar skeletons = {};\r\n\t\t\tvar bones = {}; // generate bone lookup table\r\n\r\n\t\t\tobject.traverse(function (child) {\r\n\t\t\t\tif (child.isBone) bones[child.uuid] = child;\r\n\t\t\t}); // create skeletons\r\n\r\n\t\t\tif (json !== undefined) {\r\n\t\t\t\tfor (var i = 0, l = json.length; i < l; i++) {\r\n\t\t\t\t\tvar skeleton = new Skeleton().fromJSON(json[i], bones);\r\n\t\t\t\t\tskeletons[skeleton.uuid] = skeleton;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn skeletons;\r\n\t\t};\r\n\r\n\t\t_proto.parseGeometries = function parseGeometries(json, shapes) {\r\n\t\t\tvar geometries = {};\r\n\t\t\tvar geometryShapes;\r\n\r\n\t\t\tif (json !== undefined) {\r\n\t\t\t\tvar bufferGeometryLoader = new BufferGeometryLoader();\r\n\r\n\t\t\t\tfor (var i = 0, l = json.length; i < l; i++) {\r\n\t\t\t\t\tvar geometry = void 0;\r\n\t\t\t\t\tvar data = json[i];\r\n\r\n\t\t\t\t\tswitch (data.type) {\r\n\t\t\t\t\t\tcase 'PlaneGeometry':\r\n\t\t\t\t\t\tcase 'PlaneBufferGeometry':\r\n\t\t\t\t\t\t\tgeometry = new Geometries[data.type](data.width, data.height, data.widthSegments, data.heightSegments);\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 'BoxGeometry':\r\n\t\t\t\t\t\tcase 'BoxBufferGeometry':\r\n\t\t\t\t\t\tcase 'CubeGeometry':\r\n\t\t\t\t\t\t\t// backwards compatible\r\n\t\t\t\t\t\t\tgeometry = new Geometries[data.type](data.width, data.height, data.depth, data.widthSegments, data.heightSegments, data.depthSegments);\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 'CircleGeometry':\r\n\t\t\t\t\t\tcase 'CircleBufferGeometry':\r\n\t\t\t\t\t\t\tgeometry = new Geometries[data.type](data.radius, data.segments, data.thetaStart, data.thetaLength);\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 'CylinderGeometry':\r\n\t\t\t\t\t\tcase 'CylinderBufferGeometry':\r\n\t\t\t\t\t\t\tgeometry = new Geometries[data.type](data.radiusTop, data.radiusBottom, data.height, data.radialSegments, data.heightSegments, data.openEnded, data.thetaStart, data.thetaLength);\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 'ConeGeometry':\r\n\t\t\t\t\t\tcase 'ConeBufferGeometry':\r\n\t\t\t\t\t\t\tgeometry = new Geometries[data.type](data.radius, data.height, data.radialSegments, data.heightSegments, data.openEnded, data.thetaStart, data.thetaLength);\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 'SphereGeometry':\r\n\t\t\t\t\t\tcase 'SphereBufferGeometry':\r\n\t\t\t\t\t\t\tgeometry = new Geometries[data.type](data.radius, data.widthSegments, data.heightSegments, data.phiStart, data.phiLength, data.thetaStart, data.thetaLength);\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 'DodecahedronGeometry':\r\n\t\t\t\t\t\tcase 'DodecahedronBufferGeometry':\r\n\t\t\t\t\t\tcase 'IcosahedronGeometry':\r\n\t\t\t\t\t\tcase 'IcosahedronBufferGeometry':\r\n\t\t\t\t\t\tcase 'OctahedronGeometry':\r\n\t\t\t\t\t\tcase 'OctahedronBufferGeometry':\r\n\t\t\t\t\t\tcase 'TetrahedronGeometry':\r\n\t\t\t\t\t\tcase 'TetrahedronBufferGeometry':\r\n\t\t\t\t\t\t\tgeometry = new Geometries[data.type](data.radius, data.detail);\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 'RingGeometry':\r\n\t\t\t\t\t\tcase 'RingBufferGeometry':\r\n\t\t\t\t\t\t\tgeometry = new Geometries[data.type](data.innerRadius, data.outerRadius, data.thetaSegments, data.phiSegments, data.thetaStart, data.thetaLength);\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 'TorusGeometry':\r\n\t\t\t\t\t\tcase 'TorusBufferGeometry':\r\n\t\t\t\t\t\t\tgeometry = new Geometries[data.type](data.radius, data.tube, data.radialSegments, data.tubularSegments, data.arc);\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 'TorusKnotGeometry':\r\n\t\t\t\t\t\tcase 'TorusKnotBufferGeometry':\r\n\t\t\t\t\t\t\tgeometry = new Geometries[data.type](data.radius, data.tube, data.tubularSegments, data.radialSegments, data.p, data.q);\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 'TubeGeometry':\r\n\t\t\t\t\t\tcase 'TubeBufferGeometry':\r\n\t\t\t\t\t\t\t// This only works for built-in curves (e.g. CatmullRomCurve3).\r\n\t\t\t\t\t\t\t// User defined curves or instances of CurvePath will not be deserialized.\r\n\t\t\t\t\t\t\tgeometry = new Geometries[data.type](new Curves[data.path.type]().fromJSON(data.path), data.tubularSegments, data.radius, data.radialSegments, data.closed);\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 'LatheGeometry':\r\n\t\t\t\t\t\tcase 'LatheBufferGeometry':\r\n\t\t\t\t\t\t\tgeometry = new Geometries[data.type](data.points, data.segments, data.phiStart, data.phiLength);\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 'PolyhedronGeometry':\r\n\t\t\t\t\t\tcase 'PolyhedronBufferGeometry':\r\n\t\t\t\t\t\t\tgeometry = new Geometries[data.type](data.vertices, data.indices, data.radius, data.details);\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 'ShapeGeometry':\r\n\t\t\t\t\t\tcase 'ShapeBufferGeometry':\r\n\t\t\t\t\t\t\tgeometryShapes = [];\r\n\r\n\t\t\t\t\t\t\tfor (var j = 0, jl = data.shapes.length; j < jl; j++) {\r\n\t\t\t\t\t\t\t\tvar shape = shapes[data.shapes[j]];\r\n\t\t\t\t\t\t\t\tgeometryShapes.push(shape);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tgeometry = new Geometries[data.type](geometryShapes, data.curveSegments);\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 'ExtrudeGeometry':\r\n\t\t\t\t\t\tcase 'ExtrudeBufferGeometry':\r\n\t\t\t\t\t\t\tgeometryShapes = [];\r\n\r\n\t\t\t\t\t\t\tfor (var _j = 0, _jl = data.shapes.length; _j < _jl; _j++) {\r\n\t\t\t\t\t\t\t\tvar _shape = shapes[data.shapes[_j]];\r\n\t\t\t\t\t\t\t\tgeometryShapes.push(_shape);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tvar extrudePath = data.options.extrudePath;\r\n\r\n\t\t\t\t\t\t\tif (extrudePath !== undefined) {\r\n\t\t\t\t\t\t\t\tdata.options.extrudePath = new Curves[extrudePath.type]().fromJSON(extrudePath);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tgeometry = new Geometries[data.type](geometryShapes, data.options);\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 'BufferGeometry':\r\n\t\t\t\t\t\tcase 'InstancedBufferGeometry':\r\n\t\t\t\t\t\t\tgeometry = bufferGeometryLoader.parse(data);\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 'Geometry':\r\n\t\t\t\t\t\t\tconsole.error('THREE.ObjectLoader: Loading \"Geometry\" is not supported anymore.');\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\tconsole.warn('THREE.ObjectLoader: Unsupported geometry type \"' + data.type + '\"');\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tgeometry.uuid = data.uuid;\r\n\t\t\t\t\tif (data.name !== undefined) geometry.name = data.name;\r\n\t\t\t\t\tif (geometry.isBufferGeometry === true && data.userData !== undefined) geometry.userData = data.userData;\r\n\t\t\t\t\tgeometries[data.uuid] = geometry;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn geometries;\r\n\t\t};\r\n\r\n\t\t_proto.parseMaterials = function parseMaterials(json, textures) {\r\n\t\t\tvar cache = {}; // MultiMaterial\r\n\r\n\t\t\tvar materials = {};\r\n\r\n\t\t\tif (json !== undefined) {\r\n\t\t\t\tvar loader = new MaterialLoader();\r\n\t\t\t\tloader.setTextures(textures);\r\n\r\n\t\t\t\tfor (var i = 0, l = json.length; i < l; i++) {\r\n\t\t\t\t\tvar data = json[i];\r\n\r\n\t\t\t\t\tif (data.type === 'MultiMaterial') {\r\n\t\t\t\t\t\t// Deprecated\r\n\t\t\t\t\t\tvar array = [];\r\n\r\n\t\t\t\t\t\tfor (var j = 0; j < data.materials.length; j++) {\r\n\t\t\t\t\t\t\tvar material = data.materials[j];\r\n\r\n\t\t\t\t\t\t\tif (cache[material.uuid] === undefined) {\r\n\t\t\t\t\t\t\t\tcache[material.uuid] = loader.parse(material);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tarray.push(cache[material.uuid]);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tmaterials[data.uuid] = array;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (cache[data.uuid] === undefined) {\r\n\t\t\t\t\t\t\tcache[data.uuid] = loader.parse(data);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tmaterials[data.uuid] = cache[data.uuid];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn materials;\r\n\t\t};\r\n\r\n\t\t_proto.parseAnimations = function parseAnimations(json) {\r\n\t\t\tvar animations = {};\r\n\r\n\t\t\tif (json !== undefined) {\r\n\t\t\t\tfor (var i = 0; i < json.length; i++) {\r\n\t\t\t\t\tvar data = json[i];\r\n\t\t\t\t\tvar clip = AnimationClip.parse(data);\r\n\t\t\t\t\tanimations[clip.uuid] = clip;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn animations;\r\n\t\t};\r\n\r\n\t\t_proto.parseImages = function parseImages(json, onLoad) {\r\n\t\t\tvar scope = this;\r\n\t\t\tvar images = {};\r\n\t\t\tvar loader;\r\n\r\n\t\t\tfunction loadImage(url) {\r\n\t\t\t\tscope.manager.itemStart(url);\r\n\t\t\t\treturn loader.load(url, function () {\r\n\t\t\t\t\tscope.manager.itemEnd(url);\r\n\t\t\t\t}, undefined, function () {\r\n\t\t\t\t\tscope.manager.itemError(url);\r\n\t\t\t\t\tscope.manager.itemEnd(url);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction deserializeImage(image) {\r\n\t\t\t\tif (typeof image === 'string') {\r\n\t\t\t\t\tvar url = image;\r\n\t\t\t\t\tvar path = /^(\\/\\/)|([a-z]+:(\\/\\/)?)/i.test(url) ? url : scope.resourcePath + url;\r\n\t\t\t\t\treturn loadImage(path);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (image.data) {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tdata: getTypedArray(image.type, image.data),\r\n\t\t\t\t\t\t\twidth: image.width,\r\n\t\t\t\t\t\t\theight: image.height\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (json !== undefined && json.length > 0) {\r\n\t\t\t\tvar manager = new LoadingManager(onLoad);\r\n\t\t\t\tloader = new ImageLoader(manager);\r\n\t\t\t\tloader.setCrossOrigin(this.crossOrigin);\r\n\r\n\t\t\t\tfor (var i = 0, il = json.length; i < il; i++) {\r\n\t\t\t\t\tvar image = json[i];\r\n\t\t\t\t\tvar url = image.url;\r\n\r\n\t\t\t\t\tif (Array.isArray(url)) {\r\n\t\t\t\t\t\t// load array of images e.g CubeTexture\r\n\t\t\t\t\t\timages[image.uuid] = [];\r\n\r\n\t\t\t\t\t\tfor (var j = 0, jl = url.length; j < jl; j++) {\r\n\t\t\t\t\t\t\tvar currentUrl = url[j];\r\n\t\t\t\t\t\t\tvar deserializedImage = deserializeImage(currentUrl);\r\n\r\n\t\t\t\t\t\t\tif (deserializedImage !== null) {\r\n\t\t\t\t\t\t\t\tif (deserializedImage instanceof HTMLImageElement) {\r\n\t\t\t\t\t\t\t\t\timages[image.uuid].push(deserializedImage);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t// special case: handle array of data textures for cube textures\r\n\t\t\t\t\t\t\t\t\timages[image.uuid].push(new DataTexture(deserializedImage.data, deserializedImage.width, deserializedImage.height));\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// load single image\r\n\t\t\t\t\t\tvar _deserializedImage = deserializeImage(image.url);\r\n\r\n\t\t\t\t\t\tif (_deserializedImage !== null) {\r\n\t\t\t\t\t\t\timages[image.uuid] = _deserializedImage;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn images;\r\n\t\t};\r\n\r\n\t\t_proto.parseTextures = function parseTextures(json, images) {\r\n\t\t\tfunction parseConstant(value, type) {\r\n\t\t\t\tif (typeof value === 'number') return value;\r\n\t\t\t\tconsole.warn('THREE.ObjectLoader.parseTexture: Constant should be in numeric form.', value);\r\n\t\t\t\treturn type[value];\r\n\t\t\t}\r\n\r\n\t\t\tvar textures = {};\r\n\r\n\t\t\tif (json !== undefined) {\r\n\t\t\t\tfor (var i = 0, l = json.length; i < l; i++) {\r\n\t\t\t\t\tvar data = json[i];\r\n\r\n\t\t\t\t\tif (data.image === undefined) {\r\n\t\t\t\t\t\tconsole.warn('THREE.ObjectLoader: No \"image\" specified for', data.uuid);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (images[data.image] === undefined) {\r\n\t\t\t\t\t\tconsole.warn('THREE.ObjectLoader: Undefined image', data.image);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar texture = void 0;\r\n\t\t\t\t\tvar image = images[data.image];\r\n\r\n\t\t\t\t\tif (Array.isArray(image)) {\r\n\t\t\t\t\t\ttexture = new CubeTexture(image);\r\n\t\t\t\t\t\tif (image.length === 6) texture.needsUpdate = true;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (image && image.data) {\r\n\t\t\t\t\t\t\ttexture = new DataTexture(image.data, image.width, image.height);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\ttexture = new Texture(image);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (image) texture.needsUpdate = true; // textures can have undefined image data\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\ttexture.uuid = data.uuid;\r\n\t\t\t\t\tif (data.name !== undefined) texture.name = data.name;\r\n\t\t\t\t\tif (data.mapping !== undefined) texture.mapping = parseConstant(data.mapping, TEXTURE_MAPPING);\r\n\t\t\t\t\tif (data.offset !== undefined) texture.offset.fromArray(data.offset);\r\n\t\t\t\t\tif (data.repeat !== undefined) texture.repeat.fromArray(data.repeat);\r\n\t\t\t\t\tif (data.center !== undefined) texture.center.fromArray(data.center);\r\n\t\t\t\t\tif (data.rotation !== undefined) texture.rotation = data.rotation;\r\n\r\n\t\t\t\t\tif (data.wrap !== undefined) {\r\n\t\t\t\t\t\ttexture.wrapS = parseConstant(data.wrap[0], TEXTURE_WRAPPING);\r\n\t\t\t\t\t\ttexture.wrapT = parseConstant(data.wrap[1], TEXTURE_WRAPPING);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (data.format !== undefined) texture.format = data.format;\r\n\t\t\t\t\tif (data.type !== undefined) texture.type = data.type;\r\n\t\t\t\t\tif (data.encoding !== undefined) texture.encoding = data.encoding;\r\n\t\t\t\t\tif (data.minFilter !== undefined) texture.minFilter = parseConstant(data.minFilter, TEXTURE_FILTER);\r\n\t\t\t\t\tif (data.magFilter !== undefined) texture.magFilter = parseConstant(data.magFilter, TEXTURE_FILTER);\r\n\t\t\t\t\tif (data.anisotropy !== undefined) texture.anisotropy = data.anisotropy;\r\n\t\t\t\t\tif (data.flipY !== undefined) texture.flipY = data.flipY;\r\n\t\t\t\t\tif (data.premultiplyAlpha !== undefined) texture.premultiplyAlpha = data.premultiplyAlpha;\r\n\t\t\t\t\tif (data.unpackAlignment !== undefined) texture.unpackAlignment = data.unpackAlignment;\r\n\t\t\t\t\ttextures[data.uuid] = texture;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn textures;\r\n\t\t};\r\n\r\n\t\t_proto.parseObject = function parseObject(data, geometries, materials, animations) {\r\n\t\t\tvar object;\r\n\r\n\t\t\tfunction getGeometry(name) {\r\n\t\t\t\tif (geometries[name] === undefined) {\r\n\t\t\t\t\tconsole.warn('THREE.ObjectLoader: Undefined geometry', name);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn geometries[name];\r\n\t\t\t}\r\n\r\n\t\t\tfunction getMaterial(name) {\r\n\t\t\t\tif (name === undefined) return undefined;\r\n\r\n\t\t\t\tif (Array.isArray(name)) {\r\n\t\t\t\t\tvar array = [];\r\n\r\n\t\t\t\t\tfor (var i = 0, l = name.length; i < l; i++) {\r\n\t\t\t\t\t\tvar uuid = name[i];\r\n\r\n\t\t\t\t\t\tif (materials[uuid] === undefined) {\r\n\t\t\t\t\t\t\tconsole.warn('THREE.ObjectLoader: Undefined material', uuid);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tarray.push(materials[uuid]);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn array;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (materials[name] === undefined) {\r\n\t\t\t\t\tconsole.warn('THREE.ObjectLoader: Undefined material', name);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn materials[name];\r\n\t\t\t}\r\n\r\n\t\t\tvar geometry, material;\r\n\r\n\t\t\tswitch (data.type) {\r\n\t\t\t\tcase 'Scene':\r\n\t\t\t\t\tobject = new Scene();\r\n\r\n\t\t\t\t\tif (data.background !== undefined) {\r\n\t\t\t\t\t\tif (Number.isInteger(data.background)) {\r\n\t\t\t\t\t\t\tobject.background = new Color(data.background);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (data.fog !== undefined) {\r\n\t\t\t\t\t\tif (data.fog.type === 'Fog') {\r\n\t\t\t\t\t\t\tobject.fog = new Fog(data.fog.color, data.fog.near, data.fog.far);\r\n\t\t\t\t\t\t} else if (data.fog.type === 'FogExp2') {\r\n\t\t\t\t\t\t\tobject.fog = new FogExp2(data.fog.color, data.fog.density);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'PerspectiveCamera':\r\n\t\t\t\t\tobject = new PerspectiveCamera(data.fov, data.aspect, data.near, data.far);\r\n\t\t\t\t\tif (data.focus !== undefined) object.focus = data.focus;\r\n\t\t\t\t\tif (data.zoom !== undefined) object.zoom = data.zoom;\r\n\t\t\t\t\tif (data.filmGauge !== undefined) object.filmGauge = data.filmGauge;\r\n\t\t\t\t\tif (data.filmOffset !== undefined) object.filmOffset = data.filmOffset;\r\n\t\t\t\t\tif (data.view !== undefined) object.view = Object.assign({}, data.view);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'OrthographicCamera':\r\n\t\t\t\t\tobject = new OrthographicCamera(data.left, data.right, data.top, data.bottom, data.near, data.far);\r\n\t\t\t\t\tif (data.zoom !== undefined) object.zoom = data.zoom;\r\n\t\t\t\t\tif (data.view !== undefined) object.view = Object.assign({}, data.view);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'AmbientLight':\r\n\t\t\t\t\tobject = new AmbientLight(data.color, data.intensity);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'DirectionalLight':\r\n\t\t\t\t\tobject = new DirectionalLight(data.color, data.intensity);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'PointLight':\r\n\t\t\t\t\tobject = new PointLight(data.color, data.intensity, data.distance, data.decay);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'RectAreaLight':\r\n\t\t\t\t\tobject = new RectAreaLight(data.color, data.intensity, data.width, data.height);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'SpotLight':\r\n\t\t\t\t\tobject = new SpotLight(data.color, data.intensity, data.distance, data.angle, data.penumbra, data.decay);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'HemisphereLight':\r\n\t\t\t\t\tobject = new HemisphereLight(data.color, data.groundColor, data.intensity);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'LightProbe':\r\n\t\t\t\t\tobject = new LightProbe().fromJSON(data);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'SkinnedMesh':\r\n\t\t\t\t\tgeometry = getGeometry(data.geometry);\r\n\t\t\t\t\tmaterial = getMaterial(data.material);\r\n\t\t\t\t\tobject = new SkinnedMesh(geometry, material);\r\n\t\t\t\t\tif (data.bindMode !== undefined) object.bindMode = data.bindMode;\r\n\t\t\t\t\tif (data.bindMatrix !== undefined) object.bindMatrix.fromArray(data.bindMatrix);\r\n\t\t\t\t\tif (data.skeleton !== undefined) object.skeleton = data.skeleton;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'Mesh':\r\n\t\t\t\t\tgeometry = getGeometry(data.geometry);\r\n\t\t\t\t\tmaterial = getMaterial(data.material);\r\n\t\t\t\t\tobject = new Mesh(geometry, material);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'InstancedMesh':\r\n\t\t\t\t\tgeometry = getGeometry(data.geometry);\r\n\t\t\t\t\tmaterial = getMaterial(data.material);\r\n\t\t\t\t\tvar count = data.count;\r\n\t\t\t\t\tvar instanceMatrix = data.instanceMatrix;\r\n\t\t\t\t\tobject = new InstancedMesh(geometry, material, count);\r\n\t\t\t\t\tobject.instanceMatrix = new BufferAttribute(new Float32Array(instanceMatrix.array), 16);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'LOD':\r\n\t\t\t\t\tobject = new LOD();\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'Line':\r\n\t\t\t\t\tobject = new Line(getGeometry(data.geometry), getMaterial(data.material), data.mode);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'LineLoop':\r\n\t\t\t\t\tobject = new LineLoop(getGeometry(data.geometry), getMaterial(data.material));\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'LineSegments':\r\n\t\t\t\t\tobject = new LineSegments(getGeometry(data.geometry), getMaterial(data.material));\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'PointCloud':\r\n\t\t\t\tcase 'Points':\r\n\t\t\t\t\tobject = new Points(getGeometry(data.geometry), getMaterial(data.material));\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'Sprite':\r\n\t\t\t\t\tobject = new Sprite(getMaterial(data.material));\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'Group':\r\n\t\t\t\t\tobject = new Group();\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'Bone':\r\n\t\t\t\t\tobject = new Bone();\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tobject = new Object3D();\r\n\t\t\t}\r\n\r\n\t\t\tobject.uuid = data.uuid;\r\n\t\t\tif (data.name !== undefined) object.name = data.name;\r\n\r\n\t\t\tif (data.matrix !== undefined) {\r\n\t\t\t\tobject.matrix.fromArray(data.matrix);\r\n\t\t\t\tif (data.matrixAutoUpdate !== undefined) object.matrixAutoUpdate = data.matrixAutoUpdate;\r\n\t\t\t\tif (object.matrixAutoUpdate) object.matrix.decompose(object.position, object.quaternion, object.scale);\r\n\t\t\t} else {\r\n\t\t\t\tif (data.position !== undefined) object.position.fromArray(data.position);\r\n\t\t\t\tif (data.rotation !== undefined) object.rotation.fromArray(data.rotation);\r\n\t\t\t\tif (data.quaternion !== undefined) object.quaternion.fromArray(data.quaternion);\r\n\t\t\t\tif (data.scale !== undefined) object.scale.fromArray(data.scale);\r\n\t\t\t}\r\n\r\n\t\t\tif (data.castShadow !== undefined) object.castShadow = data.castShadow;\r\n\t\t\tif (data.receiveShadow !== undefined) object.receiveShadow = data.receiveShadow;\r\n\r\n\t\t\tif (data.shadow) {\r\n\t\t\t\tif (data.shadow.bias !== undefined) object.shadow.bias = data.shadow.bias;\r\n\t\t\t\tif (data.shadow.normalBias !== undefined) object.shadow.normalBias = data.shadow.normalBias;\r\n\t\t\t\tif (data.shadow.radius !== undefined) object.shadow.radius = data.shadow.radius;\r\n\t\t\t\tif (data.shadow.mapSize !== undefined) object.shadow.mapSize.fromArray(data.shadow.mapSize);\r\n\t\t\t\tif (data.shadow.camera !== undefined) object.shadow.camera = this.parseObject(data.shadow.camera);\r\n\t\t\t}\r\n\r\n\t\t\tif (data.visible !== undefined) object.visible = data.visible;\r\n\t\t\tif (data.frustumCulled !== undefined) object.frustumCulled = data.frustumCulled;\r\n\t\t\tif (data.renderOrder !== undefined) object.renderOrder = data.renderOrder;\r\n\t\t\tif (data.userData !== undefined) object.userData = data.userData;\r\n\t\t\tif (data.layers !== undefined) object.layers.mask = data.layers;\r\n\r\n\t\t\tif (data.children !== undefined) {\r\n\t\t\t\tvar children = data.children;\r\n\r\n\t\t\t\tfor (var i = 0; i < children.length; i++) {\r\n\t\t\t\t\tobject.add(this.parseObject(children[i], geometries, materials, animations));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (data.animations !== undefined) {\r\n\t\t\t\tvar objectAnimations = data.animations;\r\n\r\n\t\t\t\tfor (var _i = 0; _i < objectAnimations.length; _i++) {\r\n\t\t\t\t\tvar uuid = objectAnimations[_i];\r\n\t\t\t\t\tobject.animations.push(animations[uuid]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (data.type === 'LOD') {\r\n\t\t\t\tif (data.autoUpdate !== undefined) object.autoUpdate = data.autoUpdate;\r\n\t\t\t\tvar levels = data.levels;\r\n\r\n\t\t\t\tfor (var l = 0; l < levels.length; l++) {\r\n\t\t\t\t\tvar level = levels[l];\r\n\t\t\t\t\tvar child = object.getObjectByProperty('uuid', level.object);\r\n\r\n\t\t\t\t\tif (child !== undefined) {\r\n\t\t\t\t\t\tobject.addLevel(child, level.distance);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn object;\r\n\t\t};\r\n\r\n\t\t_proto.bindSkeletons = function bindSkeletons(object, skeletons) {\r\n\t\t\tif (Object.keys(skeletons).length === 0) return;\r\n\t\t\tobject.traverse(function (child) {\r\n\t\t\t\tif (child.isSkinnedMesh === true && child.skeleton !== undefined) {\r\n\t\t\t\t\tvar skeleton = skeletons[child.skeleton];\r\n\r\n\t\t\t\t\tif (skeleton === undefined) {\r\n\t\t\t\t\t\tconsole.warn('THREE.ObjectLoader: No skeleton found with UUID:', child.skeleton);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tchild.bind(skeleton, child.bindMatrix);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\t/* DEPRECATED */\r\n\t\t;\r\n\r\n\t\t_proto.setTexturePath = function setTexturePath(value) {\r\n\t\t\tconsole.warn('THREE.ObjectLoader: .setTexturePath() has been renamed to .setResourcePath().');\r\n\t\t\treturn this.setResourcePath(value);\r\n\t\t};\r\n\r\n\t\treturn ObjectLoader;\r\n\t}(Loader);\r\n\r\n\tvar TEXTURE_MAPPING = {\r\n\t\tUVMapping: UVMapping,\r\n\t\tCubeReflectionMapping: CubeReflectionMapping,\r\n\t\tCubeRefractionMapping: CubeRefractionMapping,\r\n\t\tEquirectangularReflectionMapping: EquirectangularReflectionMapping,\r\n\t\tEquirectangularRefractionMapping: EquirectangularRefractionMapping,\r\n\t\tCubeUVReflectionMapping: CubeUVReflectionMapping,\r\n\t\tCubeUVRefractionMapping: CubeUVRefractionMapping\r\n\t};\r\n\tvar TEXTURE_WRAPPING = {\r\n\t\tRepeatWrapping: RepeatWrapping,\r\n\t\tClampToEdgeWrapping: ClampToEdgeWrapping,\r\n\t\tMirroredRepeatWrapping: MirroredRepeatWrapping\r\n\t};\r\n\tvar TEXTURE_FILTER = {\r\n\t\tNearestFilter: NearestFilter,\r\n\t\tNearestMipmapNearestFilter: NearestMipmapNearestFilter,\r\n\t\tNearestMipmapLinearFilter: NearestMipmapLinearFilter,\r\n\t\tLinearFilter: LinearFilter,\r\n\t\tLinearMipmapNearestFilter: LinearMipmapNearestFilter,\r\n\t\tLinearMipmapLinearFilter: LinearMipmapLinearFilter\r\n\t};\r\n\r\n\tfunction ImageBitmapLoader(manager) {\r\n\t\tif (typeof createImageBitmap === 'undefined') {\r\n\t\t\tconsole.warn('THREE.ImageBitmapLoader: createImageBitmap() not supported.');\r\n\t\t}\r\n\r\n\t\tif (typeof fetch === 'undefined') {\r\n\t\t\tconsole.warn('THREE.ImageBitmapLoader: fetch() not supported.');\r\n\t\t}\r\n\r\n\t\tLoader.call(this, manager);\r\n\t\tthis.options = {\r\n\t\t\tpremultiplyAlpha: 'none'\r\n\t\t};\r\n\t}\r\n\r\n\tImageBitmapLoader.prototype = Object.assign(Object.create(Loader.prototype), {\r\n\t\tconstructor: ImageBitmapLoader,\r\n\t\tisImageBitmapLoader: true,\r\n\t\tsetOptions: function setOptions(options) {\r\n\t\t\tthis.options = options;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tload: function load(url, onLoad, onProgress, onError) {\r\n\t\t\tif (url === undefined) url = '';\r\n\t\t\tif (this.path !== undefined) url = this.path + url;\r\n\t\t\turl = this.manager.resolveURL(url);\r\n\t\t\tvar scope = this;\r\n\t\t\tvar cached = Cache.get(url);\r\n\r\n\t\t\tif (cached !== undefined) {\r\n\t\t\t\tscope.manager.itemStart(url);\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\tif (onLoad) onLoad(cached);\r\n\t\t\t\t\tscope.manager.itemEnd(url);\r\n\t\t\t\t}, 0);\r\n\t\t\t\treturn cached;\r\n\t\t\t}\r\n\r\n\t\t\tvar fetchOptions = {};\r\n\t\t\tfetchOptions.credentials = this.crossOrigin === 'anonymous' ? 'same-origin' : 'include';\r\n\t\t\tfetch(url, fetchOptions).then(function (res) {\r\n\t\t\t\treturn res.blob();\r\n\t\t\t}).then(function (blob) {\r\n\t\t\t\treturn createImageBitmap(blob, scope.options);\r\n\t\t\t}).then(function (imageBitmap) {\r\n\t\t\t\tCache.add(url, imageBitmap);\r\n\t\t\t\tif (onLoad) onLoad(imageBitmap);\r\n\t\t\t\tscope.manager.itemEnd(url);\r\n\t\t\t}).catch(function (e) {\r\n\t\t\t\tif (onError) onError(e);\r\n\t\t\t\tscope.manager.itemError(url);\r\n\t\t\t\tscope.manager.itemEnd(url);\r\n\t\t\t});\r\n\t\t\tscope.manager.itemStart(url);\r\n\t\t}\r\n\t});\r\n\r\n\tfunction ShapePath() {\r\n\t\tthis.type = 'ShapePath';\r\n\t\tthis.color = new Color();\r\n\t\tthis.subPaths = [];\r\n\t\tthis.currentPath = null;\r\n\t}\r\n\r\n\tObject.assign(ShapePath.prototype, {\r\n\t\tmoveTo: function moveTo(x, y) {\r\n\t\t\tthis.currentPath = new Path();\r\n\t\t\tthis.subPaths.push(this.currentPath);\r\n\t\t\tthis.currentPath.moveTo(x, y);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tlineTo: function lineTo(x, y) {\r\n\t\t\tthis.currentPath.lineTo(x, y);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tquadraticCurveTo: function quadraticCurveTo(aCPx, aCPy, aX, aY) {\r\n\t\t\tthis.currentPath.quadraticCurveTo(aCPx, aCPy, aX, aY);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tbezierCurveTo: function bezierCurveTo(aCP1x, aCP1y, aCP2x, aCP2y, aX, aY) {\r\n\t\t\tthis.currentPath.bezierCurveTo(aCP1x, aCP1y, aCP2x, aCP2y, aX, aY);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tsplineThru: function splineThru(pts) {\r\n\t\t\tthis.currentPath.splineThru(pts);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\ttoShapes: function toShapes(isCCW, noHoles) {\r\n\t\t\tfunction toShapesNoHoles(inSubpaths) {\r\n\t\t\t\tvar shapes = [];\r\n\r\n\t\t\t\tfor (var i = 0, l = inSubpaths.length; i < l; i++) {\r\n\t\t\t\t\tvar _tmpPath = inSubpaths[i];\r\n\r\n\t\t\t\t\tvar _tmpShape = new Shape();\r\n\r\n\t\t\t\t\t_tmpShape.curves = _tmpPath.curves;\r\n\t\t\t\t\tshapes.push(_tmpShape);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn shapes;\r\n\t\t\t}\r\n\r\n\t\t\tfunction isPointInsidePolygon(inPt, inPolygon) {\r\n\t\t\t\tvar polyLen = inPolygon.length; // inPt on polygon contour => immediate success\t\tor\r\n\t\t\t\t// toggling of inside/outside at every single! intersection point of an edge\r\n\t\t\t\t//\twith the horizontal line through inPt, left of inPt\r\n\t\t\t\t//\tnot counting lowerY endpoints of edges and whole edges on that line\r\n\r\n\t\t\t\tvar inside = false;\r\n\r\n\t\t\t\tfor (var p = polyLen - 1, q = 0; q < polyLen; p = q++) {\r\n\t\t\t\t\tvar edgeLowPt = inPolygon[p];\r\n\t\t\t\t\tvar edgeHighPt = inPolygon[q];\r\n\t\t\t\t\tvar edgeDx = edgeHighPt.x - edgeLowPt.x;\r\n\t\t\t\t\tvar edgeDy = edgeHighPt.y - edgeLowPt.y;\r\n\r\n\t\t\t\t\tif (Math.abs(edgeDy) > Number.EPSILON) {\r\n\t\t\t\t\t\t// not parallel\r\n\t\t\t\t\t\tif (edgeDy < 0) {\r\n\t\t\t\t\t\t\tedgeLowPt = inPolygon[q];\r\n\t\t\t\t\t\t\tedgeDx = -edgeDx;\r\n\t\t\t\t\t\t\tedgeHighPt = inPolygon[p];\r\n\t\t\t\t\t\t\tedgeDy = -edgeDy;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (inPt.y < edgeLowPt.y || inPt.y > edgeHighPt.y) continue;\r\n\r\n\t\t\t\t\t\tif (inPt.y === edgeLowPt.y) {\r\n\t\t\t\t\t\t\tif (inPt.x === edgeLowPt.x) return true; // inPt is on contour ?\r\n\t\t\t\t\t\t\t// continue;\t\t\t\t// no intersection or edgeLowPt => doesn't count !!!\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tvar perpEdge = edgeDy * (inPt.x - edgeLowPt.x) - edgeDx * (inPt.y - edgeLowPt.y);\r\n\t\t\t\t\t\t\tif (perpEdge === 0) return true; // inPt is on contour ?\r\n\r\n\t\t\t\t\t\t\tif (perpEdge < 0) continue;\r\n\t\t\t\t\t\t\tinside = !inside; // true intersection left of inPt\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// parallel or collinear\r\n\t\t\t\t\t\tif (inPt.y !== edgeLowPt.y) continue; // parallel\r\n\t\t\t\t\t\t// edge lies on the same horizontal line as inPt\r\n\r\n\t\t\t\t\t\tif (edgeHighPt.x <= inPt.x && inPt.x <= edgeLowPt.x || edgeLowPt.x <= inPt.x && inPt.x <= edgeHighPt.x) return true; // inPt: Point on contour !\r\n\t\t\t\t\t\t// continue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn inside;\r\n\t\t\t}\r\n\r\n\t\t\tvar isClockWise = ShapeUtils.isClockWise;\r\n\t\t\tvar subPaths = this.subPaths;\r\n\t\t\tif (subPaths.length === 0) return [];\r\n\t\t\tif (noHoles === true) return toShapesNoHoles(subPaths);\r\n\t\t\tvar solid, tmpPath, tmpShape;\r\n\t\t\tvar shapes = [];\r\n\r\n\t\t\tif (subPaths.length === 1) {\r\n\t\t\t\ttmpPath = subPaths[0];\r\n\t\t\t\ttmpShape = new Shape();\r\n\t\t\t\ttmpShape.curves = tmpPath.curves;\r\n\t\t\t\tshapes.push(tmpShape);\r\n\t\t\t\treturn shapes;\r\n\t\t\t}\r\n\r\n\t\t\tvar holesFirst = !isClockWise(subPaths[0].getPoints());\r\n\t\t\tholesFirst = isCCW ? !holesFirst : holesFirst; // console.log(\"Holes first\", holesFirst);\r\n\r\n\t\t\tvar betterShapeHoles = [];\r\n\t\t\tvar newShapes = [];\r\n\t\t\tvar newShapeHoles = [];\r\n\t\t\tvar mainIdx = 0;\r\n\t\t\tvar tmpPoints;\r\n\t\t\tnewShapes[mainIdx] = undefined;\r\n\t\t\tnewShapeHoles[mainIdx] = [];\r\n\r\n\t\t\tfor (var i = 0, l = subPaths.length; i < l; i++) {\r\n\t\t\t\ttmpPath = subPaths[i];\r\n\t\t\t\ttmpPoints = tmpPath.getPoints();\r\n\t\t\t\tsolid = isClockWise(tmpPoints);\r\n\t\t\t\tsolid = isCCW ? !solid : solid;\r\n\r\n\t\t\t\tif (solid) {\r\n\t\t\t\t\tif (!holesFirst && newShapes[mainIdx]) mainIdx++;\r\n\t\t\t\t\tnewShapes[mainIdx] = {\r\n\t\t\t\t\t\ts: new Shape(),\r\n\t\t\t\t\t\tp: tmpPoints\r\n\t\t\t\t\t};\r\n\t\t\t\t\tnewShapes[mainIdx].s.curves = tmpPath.curves;\r\n\t\t\t\t\tif (holesFirst) mainIdx++;\r\n\t\t\t\t\tnewShapeHoles[mainIdx] = []; //console.log('cw', i);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tnewShapeHoles[mainIdx].push({\r\n\t\t\t\t\t\th: tmpPath,\r\n\t\t\t\t\t\tp: tmpPoints[0]\r\n\t\t\t\t\t}); //console.log('ccw', i);\r\n\t\t\t\t}\r\n\t\t\t} // only Holes? -> probably all Shapes with wrong orientation\r\n\r\n\r\n\t\t\tif (!newShapes[0]) return toShapesNoHoles(subPaths);\r\n\r\n\t\t\tif (newShapes.length > 1) {\r\n\t\t\t\tvar ambiguous = false;\r\n\t\t\t\tvar toChange = [];\r\n\r\n\t\t\t\tfor (var sIdx = 0, sLen = newShapes.length; sIdx < sLen; sIdx++) {\r\n\t\t\t\t\tbetterShapeHoles[sIdx] = [];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfor (var _sIdx = 0, _sLen = newShapes.length; _sIdx < _sLen; _sIdx++) {\r\n\t\t\t\t\tvar sho = newShapeHoles[_sIdx];\r\n\r\n\t\t\t\t\tfor (var hIdx = 0; hIdx < sho.length; hIdx++) {\r\n\t\t\t\t\t\tvar ho = sho[hIdx];\r\n\t\t\t\t\t\tvar hole_unassigned = true;\r\n\r\n\t\t\t\t\t\tfor (var s2Idx = 0; s2Idx < newShapes.length; s2Idx++) {\r\n\t\t\t\t\t\t\tif (isPointInsidePolygon(ho.p, newShapes[s2Idx].p)) {\r\n\t\t\t\t\t\t\t\tif (_sIdx !== s2Idx) toChange.push({\r\n\t\t\t\t\t\t\t\t\tfroms: _sIdx,\r\n\t\t\t\t\t\t\t\t\ttos: s2Idx,\r\n\t\t\t\t\t\t\t\t\thole: hIdx\r\n\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\tif (hole_unassigned) {\r\n\t\t\t\t\t\t\t\t\thole_unassigned = false;\r\n\t\t\t\t\t\t\t\t\tbetterShapeHoles[s2Idx].push(ho);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tambiguous = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (hole_unassigned) {\r\n\t\t\t\t\t\t\tbetterShapeHoles[_sIdx].push(ho);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} // console.log(\"ambiguous: \", ambiguous);\r\n\r\n\r\n\t\t\t\tif (toChange.length > 0) {\r\n\t\t\t\t\t// console.log(\"to change: \", toChange);\r\n\t\t\t\t\tif (!ambiguous) newShapeHoles = betterShapeHoles;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar tmpHoles;\r\n\r\n\t\t\tfor (var _i = 0, il = newShapes.length; _i < il; _i++) {\r\n\t\t\t\ttmpShape = newShapes[_i].s;\r\n\t\t\t\tshapes.push(tmpShape);\r\n\t\t\t\ttmpHoles = newShapeHoles[_i];\r\n\r\n\t\t\t\tfor (var j = 0, jl = tmpHoles.length; j < jl; j++) {\r\n\t\t\t\t\ttmpShape.holes.push(tmpHoles[j].h);\r\n\t\t\t\t}\r\n\t\t\t} //console.log(\"shape\", shapes);\r\n\r\n\r\n\t\t\treturn shapes;\r\n\t\t}\r\n\t});\r\n\r\n\tfunction Font(data) {\r\n\t\tthis.type = 'Font';\r\n\t\tthis.data = data;\r\n\t}\r\n\r\n\tObject.assign(Font.prototype, {\r\n\t\tisFont: true,\r\n\t\tgenerateShapes: function generateShapes(text, size) {\r\n\t\t\tif (size === void 0) {\r\n\t\t\t\tsize = 100;\r\n\t\t\t}\r\n\r\n\t\t\tvar shapes = [];\r\n\t\t\tvar paths = createPaths(text, size, this.data);\r\n\r\n\t\t\tfor (var p = 0, pl = paths.length; p < pl; p++) {\r\n\t\t\t\tArray.prototype.push.apply(shapes, paths[p].toShapes());\r\n\t\t\t}\r\n\r\n\t\t\treturn shapes;\r\n\t\t}\r\n\t});\r\n\r\n\tfunction createPaths(text, size, data) {\r\n\t\tvar chars = Array.from ? Array.from(text) : String(text).split(''); // workaround for IE11, see #13988\r\n\r\n\t\tvar scale = size / data.resolution;\r\n\t\tvar line_height = (data.boundingBox.yMax - data.boundingBox.yMin + data.underlineThickness) * scale;\r\n\t\tvar paths = [];\r\n\t\tvar offsetX = 0,\r\n\t\t\t\toffsetY = 0;\r\n\r\n\t\tfor (var i = 0; i < chars.length; i++) {\r\n\t\t\tvar char = chars[i];\r\n\r\n\t\t\tif (char === '\\n') {\r\n\t\t\t\toffsetX = 0;\r\n\t\t\t\toffsetY -= line_height;\r\n\t\t\t} else {\r\n\t\t\t\tvar ret = createPath(char, scale, offsetX, offsetY, data);\r\n\t\t\t\toffsetX += ret.offsetX;\r\n\t\t\t\tpaths.push(ret.path);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn paths;\r\n\t}\r\n\r\n\tfunction createPath(char, scale, offsetX, offsetY, data) {\r\n\t\tvar glyph = data.glyphs[char] || data.glyphs['?'];\r\n\r\n\t\tif (!glyph) {\r\n\t\t\tconsole.error('THREE.Font: character \"' + char + '\" does not exists in font family ' + data.familyName + '.');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar path = new ShapePath();\r\n\t\tvar x, y, cpx, cpy, cpx1, cpy1, cpx2, cpy2;\r\n\r\n\t\tif (glyph.o) {\r\n\t\t\tvar outline = glyph._cachedOutline || (glyph._cachedOutline = glyph.o.split(' '));\r\n\r\n\t\t\tfor (var i = 0, l = outline.length; i < l;) {\r\n\t\t\t\tvar action = outline[i++];\r\n\r\n\t\t\t\tswitch (action) {\r\n\t\t\t\t\tcase 'm':\r\n\t\t\t\t\t\t// moveTo\r\n\t\t\t\t\t\tx = outline[i++] * scale + offsetX;\r\n\t\t\t\t\t\ty = outline[i++] * scale + offsetY;\r\n\t\t\t\t\t\tpath.moveTo(x, y);\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase 'l':\r\n\t\t\t\t\t\t// lineTo\r\n\t\t\t\t\t\tx = outline[i++] * scale + offsetX;\r\n\t\t\t\t\t\ty = outline[i++] * scale + offsetY;\r\n\t\t\t\t\t\tpath.lineTo(x, y);\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase 'q':\r\n\t\t\t\t\t\t// quadraticCurveTo\r\n\t\t\t\t\t\tcpx = outline[i++] * scale + offsetX;\r\n\t\t\t\t\t\tcpy = outline[i++] * scale + offsetY;\r\n\t\t\t\t\t\tcpx1 = outline[i++] * scale + offsetX;\r\n\t\t\t\t\t\tcpy1 = outline[i++] * scale + offsetY;\r\n\t\t\t\t\t\tpath.quadraticCurveTo(cpx1, cpy1, cpx, cpy);\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase 'b':\r\n\t\t\t\t\t\t// bezierCurveTo\r\n\t\t\t\t\t\tcpx = outline[i++] * scale + offsetX;\r\n\t\t\t\t\t\tcpy = outline[i++] * scale + offsetY;\r\n\t\t\t\t\t\tcpx1 = outline[i++] * scale + offsetX;\r\n\t\t\t\t\t\tcpy1 = outline[i++] * scale + offsetY;\r\n\t\t\t\t\t\tcpx2 = outline[i++] * scale + offsetX;\r\n\t\t\t\t\t\tcpy2 = outline[i++] * scale + offsetY;\r\n\t\t\t\t\t\tpath.bezierCurveTo(cpx1, cpy1, cpx2, cpy2, cpx, cpy);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\toffsetX: glyph.ha * scale,\r\n\t\t\tpath: path\r\n\t\t};\r\n\t}\r\n\r\n\tfunction FontLoader(manager) {\r\n\t\tLoader.call(this, manager);\r\n\t}\r\n\r\n\tFontLoader.prototype = Object.assign(Object.create(Loader.prototype), {\r\n\t\tconstructor: FontLoader,\r\n\t\tload: function load(url, onLoad, onProgress, onError) {\r\n\t\t\tvar scope = this;\r\n\t\t\tvar loader = new FileLoader(this.manager);\r\n\t\t\tloader.setPath(this.path);\r\n\t\t\tloader.setRequestHeader(this.requestHeader);\r\n\t\t\tloader.setWithCredentials(scope.withCredentials);\r\n\t\t\tloader.load(url, function (text) {\r\n\t\t\t\tvar json;\r\n\r\n\t\t\t\ttry {\r\n\t\t\t\t\tjson = JSON.parse(text);\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\tconsole.warn('THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead.');\r\n\t\t\t\t\tjson = JSON.parse(text.substring(65, text.length - 2));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar font = scope.parse(json);\r\n\t\t\t\tif (onLoad) onLoad(font);\r\n\t\t\t}, onProgress, onError);\r\n\t\t},\r\n\t\tparse: function parse(json) {\r\n\t\t\treturn new Font(json);\r\n\t\t}\r\n\t});\r\n\r\n\tvar _context;\r\n\r\n\tvar AudioContext = {\r\n\t\tgetContext: function getContext() {\r\n\t\t\tif (_context === undefined) {\r\n\t\t\t\t_context = new (window.AudioContext || window.webkitAudioContext)();\r\n\t\t\t}\r\n\r\n\t\t\treturn _context;\r\n\t\t},\r\n\t\tsetContext: function setContext(value) {\r\n\t\t\t_context = value;\r\n\t\t}\r\n\t};\r\n\r\n\tfunction AudioLoader(manager) {\r\n\t\tLoader.call(this, manager);\r\n\t}\r\n\r\n\tAudioLoader.prototype = Object.assign(Object.create(Loader.prototype), {\r\n\t\tconstructor: AudioLoader,\r\n\t\tload: function load(url, onLoad, onProgress, onError) {\r\n\t\t\tvar scope = this;\r\n\t\t\tvar loader = new FileLoader(scope.manager);\r\n\t\t\tloader.setResponseType('arraybuffer');\r\n\t\t\tloader.setPath(scope.path);\r\n\t\t\tloader.setRequestHeader(scope.requestHeader);\r\n\t\t\tloader.setWithCredentials(scope.withCredentials);\r\n\t\t\tloader.load(url, function (buffer) {\r\n\t\t\t\ttry {\r\n\t\t\t\t\t// Create a copy of the buffer. The `decodeAudioData` method\r\n\t\t\t\t\t// detaches the buffer when complete, preventing reuse.\r\n\t\t\t\t\tvar bufferCopy = buffer.slice(0);\r\n\t\t\t\t\tvar context = AudioContext.getContext();\r\n\t\t\t\t\tcontext.decodeAudioData(bufferCopy, function (audioBuffer) {\r\n\t\t\t\t\t\tonLoad(audioBuffer);\r\n\t\t\t\t\t});\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\tif (onError) {\r\n\t\t\t\t\t\tonError(e);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconsole.error(e);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tscope.manager.itemError(url);\r\n\t\t\t\t}\r\n\t\t\t}, onProgress, onError);\r\n\t\t}\r\n\t});\r\n\r\n\tfunction HemisphereLightProbe(skyColor, groundColor, intensity) {\r\n\t\tLightProbe.call(this, undefined, intensity);\r\n\t\tvar color1 = new Color().set(skyColor);\r\n\t\tvar color2 = new Color().set(groundColor);\r\n\t\tvar sky = new Vector3(color1.r, color1.g, color1.b);\r\n\t\tvar ground = new Vector3(color2.r, color2.g, color2.b); // without extra factor of PI in the shader, should = 1 / Math.sqrt( Math.PI );\r\n\r\n\t\tvar c0 = Math.sqrt(Math.PI);\r\n\t\tvar c1 = c0 * Math.sqrt(0.75);\r\n\t\tthis.sh.coefficients[0].copy(sky).add(ground).multiplyScalar(c0);\r\n\t\tthis.sh.coefficients[1].copy(sky).sub(ground).multiplyScalar(c1);\r\n\t}\r\n\r\n\tHemisphereLightProbe.prototype = Object.assign(Object.create(LightProbe.prototype), {\r\n\t\tconstructor: HemisphereLightProbe,\r\n\t\tisHemisphereLightProbe: true,\r\n\t\tcopy: function copy(source) {\r\n\t\t\t// modifying colors not currently supported\r\n\t\t\tLightProbe.prototype.copy.call(this, source);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\ttoJSON: function toJSON(meta) {\r\n\t\t\tvar data = LightProbe.prototype.toJSON.call(this, meta); // data.sh = this.sh.toArray(); // todo\r\n\r\n\t\t\treturn data;\r\n\t\t}\r\n\t});\r\n\r\n\tfunction AmbientLightProbe(color, intensity) {\r\n\t\tLightProbe.call(this, undefined, intensity);\r\n\t\tvar color1 = new Color().set(color); // without extra factor of PI in the shader, would be 2 / Math.sqrt( Math.PI );\r\n\r\n\t\tthis.sh.coefficients[0].set(color1.r, color1.g, color1.b).multiplyScalar(2 * Math.sqrt(Math.PI));\r\n\t}\r\n\r\n\tAmbientLightProbe.prototype = Object.assign(Object.create(LightProbe.prototype), {\r\n\t\tconstructor: AmbientLightProbe,\r\n\t\tisAmbientLightProbe: true,\r\n\t\tcopy: function copy(source) {\r\n\t\t\t// modifying color not currently supported\r\n\t\t\tLightProbe.prototype.copy.call(this, source);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\ttoJSON: function toJSON(meta) {\r\n\t\t\tvar data = LightProbe.prototype.toJSON.call(this, meta); // data.sh = this.sh.toArray(); // todo\r\n\r\n\t\t\treturn data;\r\n\t\t}\r\n\t});\r\n\r\n\tvar _eyeRight = new Matrix4();\r\n\r\n\tvar _eyeLeft = new Matrix4();\r\n\r\n\tfunction StereoCamera() {\r\n\t\tthis.type = 'StereoCamera';\r\n\t\tthis.aspect = 1;\r\n\t\tthis.eyeSep = 0.064;\r\n\t\tthis.cameraL = new PerspectiveCamera();\r\n\t\tthis.cameraL.layers.enable(1);\r\n\t\tthis.cameraL.matrixAutoUpdate = false;\r\n\t\tthis.cameraR = new PerspectiveCamera();\r\n\t\tthis.cameraR.layers.enable(2);\r\n\t\tthis.cameraR.matrixAutoUpdate = false;\r\n\t\tthis._cache = {\r\n\t\t\tfocus: null,\r\n\t\t\tfov: null,\r\n\t\t\taspect: null,\r\n\t\t\tnear: null,\r\n\t\t\tfar: null,\r\n\t\t\tzoom: null,\r\n\t\t\teyeSep: null\r\n\t\t};\r\n\t}\r\n\r\n\tObject.assign(StereoCamera.prototype, {\r\n\t\tupdate: function update(camera) {\r\n\t\t\tvar cache = this._cache;\r\n\t\t\tvar needsUpdate = cache.focus !== camera.focus || cache.fov !== camera.fov || cache.aspect !== camera.aspect * this.aspect || cache.near !== camera.near || cache.far !== camera.far || cache.zoom !== camera.zoom || cache.eyeSep !== this.eyeSep;\r\n\r\n\t\t\tif (needsUpdate) {\r\n\t\t\t\tcache.focus = camera.focus;\r\n\t\t\t\tcache.fov = camera.fov;\r\n\t\t\t\tcache.aspect = camera.aspect * this.aspect;\r\n\t\t\t\tcache.near = camera.near;\r\n\t\t\t\tcache.far = camera.far;\r\n\t\t\t\tcache.zoom = camera.zoom;\r\n\t\t\t\tcache.eyeSep = this.eyeSep; // Off-axis stereoscopic effect based on\r\n\t\t\t\t// http://paulbourke.net/stereographics/stereorender/\r\n\r\n\t\t\t\tvar projectionMatrix = camera.projectionMatrix.clone();\r\n\t\t\t\tvar eyeSepHalf = cache.eyeSep / 2;\r\n\t\t\t\tvar eyeSepOnProjection = eyeSepHalf * cache.near / cache.focus;\r\n\t\t\t\tvar ymax = cache.near * Math.tan(MathUtils.DEG2RAD * cache.fov * 0.5) / cache.zoom;\r\n\t\t\t\tvar xmin, xmax; // translate xOffset\r\n\r\n\t\t\t\t_eyeLeft.elements[12] = -eyeSepHalf;\r\n\t\t\t\t_eyeRight.elements[12] = eyeSepHalf; // for left eye\r\n\r\n\t\t\t\txmin = -ymax * cache.aspect + eyeSepOnProjection;\r\n\t\t\t\txmax = ymax * cache.aspect + eyeSepOnProjection;\r\n\t\t\t\tprojectionMatrix.elements[0] = 2 * cache.near / (xmax - xmin);\r\n\t\t\t\tprojectionMatrix.elements[8] = (xmax + xmin) / (xmax - xmin);\r\n\t\t\t\tthis.cameraL.projectionMatrix.copy(projectionMatrix); // for right eye\r\n\r\n\t\t\t\txmin = -ymax * cache.aspect - eyeSepOnProjection;\r\n\t\t\t\txmax = ymax * cache.aspect - eyeSepOnProjection;\r\n\t\t\t\tprojectionMatrix.elements[0] = 2 * cache.near / (xmax - xmin);\r\n\t\t\t\tprojectionMatrix.elements[8] = (xmax + xmin) / (xmax - xmin);\r\n\t\t\t\tthis.cameraR.projectionMatrix.copy(projectionMatrix);\r\n\t\t\t}\r\n\r\n\t\t\tthis.cameraL.matrixWorld.copy(camera.matrixWorld).multiply(_eyeLeft);\r\n\t\t\tthis.cameraR.matrixWorld.copy(camera.matrixWorld).multiply(_eyeRight);\r\n\t\t}\r\n\t});\r\n\r\n\tvar Clock = /*#__PURE__*/function () {\r\n\t\tfunction Clock(autoStart) {\r\n\t\t\tthis.autoStart = autoStart !== undefined ? autoStart : true;\r\n\t\t\tthis.startTime = 0;\r\n\t\t\tthis.oldTime = 0;\r\n\t\t\tthis.elapsedTime = 0;\r\n\t\t\tthis.running = false;\r\n\t\t}\r\n\r\n\t\tvar _proto = Clock.prototype;\r\n\r\n\t\t_proto.start = function start() {\r\n\t\t\tthis.startTime = now();\r\n\t\t\tthis.oldTime = this.startTime;\r\n\t\t\tthis.elapsedTime = 0;\r\n\t\t\tthis.running = true;\r\n\t\t};\r\n\r\n\t\t_proto.stop = function stop() {\r\n\t\t\tthis.getElapsedTime();\r\n\t\t\tthis.running = false;\r\n\t\t\tthis.autoStart = false;\r\n\t\t};\r\n\r\n\t\t_proto.getElapsedTime = function getElapsedTime() {\r\n\t\t\tthis.getDelta();\r\n\t\t\treturn this.elapsedTime;\r\n\t\t};\r\n\r\n\t\t_proto.getDelta = function getDelta() {\r\n\t\t\tvar diff = 0;\r\n\r\n\t\t\tif (this.autoStart && !this.running) {\r\n\t\t\t\tthis.start();\r\n\t\t\t\treturn 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.running) {\r\n\t\t\t\tvar newTime = now();\r\n\t\t\t\tdiff = (newTime - this.oldTime) / 1000;\r\n\t\t\t\tthis.oldTime = newTime;\r\n\t\t\t\tthis.elapsedTime += diff;\r\n\t\t\t}\r\n\r\n\t\t\treturn diff;\r\n\t\t};\r\n\r\n\t\treturn Clock;\r\n\t}();\r\n\r\n\tfunction now() {\r\n\t\treturn (typeof performance === 'undefined' ? Date : performance).now(); // see #10732\r\n\t}\r\n\r\n\tvar _position$2 = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _quaternion$3 = /*@__PURE__*/new Quaternion();\r\n\r\n\tvar _scale$1 = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _orientation = /*@__PURE__*/new Vector3();\r\n\r\n\tvar AudioListener = /*#__PURE__*/function (_Object3D) {\r\n\t\t_inheritsLoose(AudioListener, _Object3D);\r\n\r\n\t\tfunction AudioListener() {\r\n\t\t\tvar _this;\r\n\r\n\t\t\t_this = _Object3D.call(this) || this;\r\n\t\t\t_this.type = 'AudioListener';\r\n\t\t\t_this.context = AudioContext.getContext();\r\n\t\t\t_this.gain = _this.context.createGain();\r\n\r\n\t\t\t_this.gain.connect(_this.context.destination);\r\n\r\n\t\t\t_this.filter = null;\r\n\t\t\t_this.timeDelta = 0; // private\r\n\r\n\t\t\t_this._clock = new Clock();\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\tvar _proto = AudioListener.prototype;\r\n\r\n\t\t_proto.getInput = function getInput() {\r\n\t\t\treturn this.gain;\r\n\t\t};\r\n\r\n\t\t_proto.removeFilter = function removeFilter() {\r\n\t\t\tif (this.filter !== null) {\r\n\t\t\t\tthis.gain.disconnect(this.filter);\r\n\t\t\t\tthis.filter.disconnect(this.context.destination);\r\n\t\t\t\tthis.gain.connect(this.context.destination);\r\n\t\t\t\tthis.filter = null;\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.getFilter = function getFilter() {\r\n\t\t\treturn this.filter;\r\n\t\t};\r\n\r\n\t\t_proto.setFilter = function setFilter(value) {\r\n\t\t\tif (this.filter !== null) {\r\n\t\t\t\tthis.gain.disconnect(this.filter);\r\n\t\t\t\tthis.filter.disconnect(this.context.destination);\r\n\t\t\t} else {\r\n\t\t\t\tthis.gain.disconnect(this.context.destination);\r\n\t\t\t}\r\n\r\n\t\t\tthis.filter = value;\r\n\t\t\tthis.gain.connect(this.filter);\r\n\t\t\tthis.filter.connect(this.context.destination);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.getMasterVolume = function getMasterVolume() {\r\n\t\t\treturn this.gain.gain.value;\r\n\t\t};\r\n\r\n\t\t_proto.setMasterVolume = function setMasterVolume(value) {\r\n\t\t\tthis.gain.gain.setTargetAtTime(value, this.context.currentTime, 0.01);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.updateMatrixWorld = function updateMatrixWorld(force) {\r\n\t\t\t_Object3D.prototype.updateMatrixWorld.call(this, force);\r\n\r\n\t\t\tvar listener = this.context.listener;\r\n\t\t\tvar up = this.up;\r\n\t\t\tthis.timeDelta = this._clock.getDelta();\r\n\t\t\tthis.matrixWorld.decompose(_position$2, _quaternion$3, _scale$1);\r\n\r\n\t\t\t_orientation.set(0, 0, -1).applyQuaternion(_quaternion$3);\r\n\r\n\t\t\tif (listener.positionX) {\r\n\t\t\t\t// code path for Chrome (see #14393)\r\n\t\t\t\tvar endTime = this.context.currentTime + this.timeDelta;\r\n\t\t\t\tlistener.positionX.linearRampToValueAtTime(_position$2.x, endTime);\r\n\t\t\t\tlistener.positionY.linearRampToValueAtTime(_position$2.y, endTime);\r\n\t\t\t\tlistener.positionZ.linearRampToValueAtTime(_position$2.z, endTime);\r\n\t\t\t\tlistener.forwardX.linearRampToValueAtTime(_orientation.x, endTime);\r\n\t\t\t\tlistener.forwardY.linearRampToValueAtTime(_orientation.y, endTime);\r\n\t\t\t\tlistener.forwardZ.linearRampToValueAtTime(_orientation.z, endTime);\r\n\t\t\t\tlistener.upX.linearRampToValueAtTime(up.x, endTime);\r\n\t\t\t\tlistener.upY.linearRampToValueAtTime(up.y, endTime);\r\n\t\t\t\tlistener.upZ.linearRampToValueAtTime(up.z, endTime);\r\n\t\t\t} else {\r\n\t\t\t\tlistener.setPosition(_position$2.x, _position$2.y, _position$2.z);\r\n\t\t\t\tlistener.setOrientation(_orientation.x, _orientation.y, _orientation.z, up.x, up.y, up.z);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\treturn AudioListener;\r\n\t}(Object3D);\r\n\r\n\tvar Audio = /*#__PURE__*/function (_Object3D) {\r\n\t\t_inheritsLoose(Audio, _Object3D);\r\n\r\n\t\tfunction Audio(listener) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\t_this = _Object3D.call(this) || this;\r\n\t\t\t_this.type = 'Audio';\r\n\t\t\t_this.listener = listener;\r\n\t\t\t_this.context = listener.context;\r\n\t\t\t_this.gain = _this.context.createGain();\r\n\r\n\t\t\t_this.gain.connect(listener.getInput());\r\n\r\n\t\t\t_this.autoplay = false;\r\n\t\t\t_this.buffer = null;\r\n\t\t\t_this.detune = 0;\r\n\t\t\t_this.loop = false;\r\n\t\t\t_this.loopStart = 0;\r\n\t\t\t_this.loopEnd = 0;\r\n\t\t\t_this.offset = 0;\r\n\t\t\t_this.duration = undefined;\r\n\t\t\t_this.playbackRate = 1;\r\n\t\t\t_this.isPlaying = false;\r\n\t\t\t_this.hasPlaybackControl = true;\r\n\t\t\t_this.source = null;\r\n\t\t\t_this.sourceType = 'empty';\r\n\t\t\t_this._startedAt = 0;\r\n\t\t\t_this._progress = 0;\r\n\t\t\t_this._connected = false;\r\n\t\t\t_this.filters = [];\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\tvar _proto = Audio.prototype;\r\n\r\n\t\t_proto.getOutput = function getOutput() {\r\n\t\t\treturn this.gain;\r\n\t\t};\r\n\r\n\t\t_proto.setNodeSource = function setNodeSource(audioNode) {\r\n\t\t\tthis.hasPlaybackControl = false;\r\n\t\t\tthis.sourceType = 'audioNode';\r\n\t\t\tthis.source = audioNode;\r\n\t\t\tthis.connect();\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setMediaElementSource = function setMediaElementSource(mediaElement) {\r\n\t\t\tthis.hasPlaybackControl = false;\r\n\t\t\tthis.sourceType = 'mediaNode';\r\n\t\t\tthis.source = this.context.createMediaElementSource(mediaElement);\r\n\t\t\tthis.connect();\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setMediaStreamSource = function setMediaStreamSource(mediaStream) {\r\n\t\t\tthis.hasPlaybackControl = false;\r\n\t\t\tthis.sourceType = 'mediaStreamNode';\r\n\t\t\tthis.source = this.context.createMediaStreamSource(mediaStream);\r\n\t\t\tthis.connect();\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setBuffer = function setBuffer(audioBuffer) {\r\n\t\t\tthis.buffer = audioBuffer;\r\n\t\t\tthis.sourceType = 'buffer';\r\n\t\t\tif (this.autoplay) this.play();\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.play = function play(delay) {\r\n\t\t\tif (delay === void 0) {\r\n\t\t\t\tdelay = 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.isPlaying === true) {\r\n\t\t\t\tconsole.warn('THREE.Audio: Audio is already playing.');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.hasPlaybackControl === false) {\r\n\t\t\t\tconsole.warn('THREE.Audio: this Audio has no playback control.');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tthis._startedAt = this.context.currentTime + delay;\r\n\t\t\tvar source = this.context.createBufferSource();\r\n\t\t\tsource.buffer = this.buffer;\r\n\t\t\tsource.loop = this.loop;\r\n\t\t\tsource.loopStart = this.loopStart;\r\n\t\t\tsource.loopEnd = this.loopEnd;\r\n\t\t\tsource.onended = this.onEnded.bind(this);\r\n\t\t\tsource.start(this._startedAt, this._progress + this.offset, this.duration);\r\n\t\t\tthis.isPlaying = true;\r\n\t\t\tthis.source = source;\r\n\t\t\tthis.setDetune(this.detune);\r\n\t\t\tthis.setPlaybackRate(this.playbackRate);\r\n\t\t\treturn this.connect();\r\n\t\t};\r\n\r\n\t\t_proto.pause = function pause() {\r\n\t\t\tif (this.hasPlaybackControl === false) {\r\n\t\t\t\tconsole.warn('THREE.Audio: this Audio has no playback control.');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.isPlaying === true) {\r\n\t\t\t\t// update current progress\r\n\t\t\t\tthis._progress += Math.max(this.context.currentTime - this._startedAt, 0) * this.playbackRate;\r\n\r\n\t\t\t\tif (this.loop === true) {\r\n\t\t\t\t\t// ensure _progress does not exceed duration with looped audios\r\n\t\t\t\t\tthis._progress = this._progress % (this.duration || this.buffer.duration);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.source.stop();\r\n\t\t\t\tthis.source.onended = null;\r\n\t\t\t\tthis.isPlaying = false;\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.stop = function stop() {\r\n\t\t\tif (this.hasPlaybackControl === false) {\r\n\t\t\t\tconsole.warn('THREE.Audio: this Audio has no playback control.');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tthis._progress = 0;\r\n\t\t\tthis.source.stop();\r\n\t\t\tthis.source.onended = null;\r\n\t\t\tthis.isPlaying = false;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.connect = function connect() {\r\n\t\t\tif (this.filters.length > 0) {\r\n\t\t\t\tthis.source.connect(this.filters[0]);\r\n\r\n\t\t\t\tfor (var i = 1, l = this.filters.length; i < l; i++) {\r\n\t\t\t\t\tthis.filters[i - 1].connect(this.filters[i]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.filters[this.filters.length - 1].connect(this.getOutput());\r\n\t\t\t} else {\r\n\t\t\t\tthis.source.connect(this.getOutput());\r\n\t\t\t}\r\n\r\n\t\t\tthis._connected = true;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.disconnect = function disconnect() {\r\n\t\t\tif (this.filters.length > 0) {\r\n\t\t\t\tthis.source.disconnect(this.filters[0]);\r\n\r\n\t\t\t\tfor (var i = 1, l = this.filters.length; i < l; i++) {\r\n\t\t\t\t\tthis.filters[i - 1].disconnect(this.filters[i]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.filters[this.filters.length - 1].disconnect(this.getOutput());\r\n\t\t\t} else {\r\n\t\t\t\tthis.source.disconnect(this.getOutput());\r\n\t\t\t}\r\n\r\n\t\t\tthis._connected = false;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.getFilters = function getFilters() {\r\n\t\t\treturn this.filters;\r\n\t\t};\r\n\r\n\t\t_proto.setFilters = function setFilters(value) {\r\n\t\t\tif (!value) value = [];\r\n\r\n\t\t\tif (this._connected === true) {\r\n\t\t\t\tthis.disconnect();\r\n\t\t\t\tthis.filters = value.slice();\r\n\t\t\t\tthis.connect();\r\n\t\t\t} else {\r\n\t\t\t\tthis.filters = value.slice();\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setDetune = function setDetune(value) {\r\n\t\t\tthis.detune = value;\r\n\t\t\tif (this.source.detune === undefined) return; // only set detune when available\r\n\r\n\t\t\tif (this.isPlaying === true) {\r\n\t\t\t\tthis.source.detune.setTargetAtTime(this.detune, this.context.currentTime, 0.01);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.getDetune = function getDetune() {\r\n\t\t\treturn this.detune;\r\n\t\t};\r\n\r\n\t\t_proto.getFilter = function getFilter() {\r\n\t\t\treturn this.getFilters()[0];\r\n\t\t};\r\n\r\n\t\t_proto.setFilter = function setFilter(filter) {\r\n\t\t\treturn this.setFilters(filter ? [filter] : []);\r\n\t\t};\r\n\r\n\t\t_proto.setPlaybackRate = function setPlaybackRate(value) {\r\n\t\t\tif (this.hasPlaybackControl === false) {\r\n\t\t\t\tconsole.warn('THREE.Audio: this Audio has no playback control.');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tthis.playbackRate = value;\r\n\r\n\t\t\tif (this.isPlaying === true) {\r\n\t\t\t\tthis.source.playbackRate.setTargetAtTime(this.playbackRate, this.context.currentTime, 0.01);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.getPlaybackRate = function getPlaybackRate() {\r\n\t\t\treturn this.playbackRate;\r\n\t\t};\r\n\r\n\t\t_proto.onEnded = function onEnded() {\r\n\t\t\tthis.isPlaying = false;\r\n\t\t};\r\n\r\n\t\t_proto.getLoop = function getLoop() {\r\n\t\t\tif (this.hasPlaybackControl === false) {\r\n\t\t\t\tconsole.warn('THREE.Audio: this Audio has no playback control.');\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\treturn this.loop;\r\n\t\t};\r\n\r\n\t\t_proto.setLoop = function setLoop(value) {\r\n\t\t\tif (this.hasPlaybackControl === false) {\r\n\t\t\t\tconsole.warn('THREE.Audio: this Audio has no playback control.');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tthis.loop = value;\r\n\r\n\t\t\tif (this.isPlaying === true) {\r\n\t\t\t\tthis.source.loop = this.loop;\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setLoopStart = function setLoopStart(value) {\r\n\t\t\tthis.loopStart = value;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setLoopEnd = function setLoopEnd(value) {\r\n\t\t\tthis.loopEnd = value;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.getVolume = function getVolume() {\r\n\t\t\treturn this.gain.gain.value;\r\n\t\t};\r\n\r\n\t\t_proto.setVolume = function setVolume(value) {\r\n\t\t\tthis.gain.gain.setTargetAtTime(value, this.context.currentTime, 0.01);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\treturn Audio;\r\n\t}(Object3D);\r\n\r\n\tvar _position$3 = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _quaternion$4 = /*@__PURE__*/new Quaternion();\r\n\r\n\tvar _scale$2 = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _orientation$1 = /*@__PURE__*/new Vector3();\r\n\r\n\tvar PositionalAudio = /*#__PURE__*/function (_Audio) {\r\n\t\t_inheritsLoose(PositionalAudio, _Audio);\r\n\r\n\t\tfunction PositionalAudio(listener) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\t_this = _Audio.call(this, listener) || this;\r\n\t\t\t_this.panner = _this.context.createPanner();\r\n\t\t\t_this.panner.panningModel = 'HRTF';\r\n\r\n\t\t\t_this.panner.connect(_this.gain);\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\tvar _proto = PositionalAudio.prototype;\r\n\r\n\t\t_proto.getOutput = function getOutput() {\r\n\t\t\treturn this.panner;\r\n\t\t};\r\n\r\n\t\t_proto.getRefDistance = function getRefDistance() {\r\n\t\t\treturn this.panner.refDistance;\r\n\t\t};\r\n\r\n\t\t_proto.setRefDistance = function setRefDistance(value) {\r\n\t\t\tthis.panner.refDistance = value;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.getRolloffFactor = function getRolloffFactor() {\r\n\t\t\treturn this.panner.rolloffFactor;\r\n\t\t};\r\n\r\n\t\t_proto.setRolloffFactor = function setRolloffFactor(value) {\r\n\t\t\tthis.panner.rolloffFactor = value;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.getDistanceModel = function getDistanceModel() {\r\n\t\t\treturn this.panner.distanceModel;\r\n\t\t};\r\n\r\n\t\t_proto.setDistanceModel = function setDistanceModel(value) {\r\n\t\t\tthis.panner.distanceModel = value;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.getMaxDistance = function getMaxDistance() {\r\n\t\t\treturn this.panner.maxDistance;\r\n\t\t};\r\n\r\n\t\t_proto.setMaxDistance = function setMaxDistance(value) {\r\n\t\t\tthis.panner.maxDistance = value;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setDirectionalCone = function setDirectionalCone(coneInnerAngle, coneOuterAngle, coneOuterGain) {\r\n\t\t\tthis.panner.coneInnerAngle = coneInnerAngle;\r\n\t\t\tthis.panner.coneOuterAngle = coneOuterAngle;\r\n\t\t\tthis.panner.coneOuterGain = coneOuterGain;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.updateMatrixWorld = function updateMatrixWorld(force) {\r\n\t\t\t_Audio.prototype.updateMatrixWorld.call(this, force);\r\n\r\n\t\t\tif (this.hasPlaybackControl === true && this.isPlaying === false) return;\r\n\t\t\tthis.matrixWorld.decompose(_position$3, _quaternion$4, _scale$2);\r\n\r\n\t\t\t_orientation$1.set(0, 0, 1).applyQuaternion(_quaternion$4);\r\n\r\n\t\t\tvar panner = this.panner;\r\n\r\n\t\t\tif (panner.positionX) {\r\n\t\t\t\t// code path for Chrome and Firefox (see #14393)\r\n\t\t\t\tvar endTime = this.context.currentTime + this.listener.timeDelta;\r\n\t\t\t\tpanner.positionX.linearRampToValueAtTime(_position$3.x, endTime);\r\n\t\t\t\tpanner.positionY.linearRampToValueAtTime(_position$3.y, endTime);\r\n\t\t\t\tpanner.positionZ.linearRampToValueAtTime(_position$3.z, endTime);\r\n\t\t\t\tpanner.orientationX.linearRampToValueAtTime(_orientation$1.x, endTime);\r\n\t\t\t\tpanner.orientationY.linearRampToValueAtTime(_orientation$1.y, endTime);\r\n\t\t\t\tpanner.orientationZ.linearRampToValueAtTime(_orientation$1.z, endTime);\r\n\t\t\t} else {\r\n\t\t\t\tpanner.setPosition(_position$3.x, _position$3.y, _position$3.z);\r\n\t\t\t\tpanner.setOrientation(_orientation$1.x, _orientation$1.y, _orientation$1.z);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\treturn PositionalAudio;\r\n\t}(Audio);\r\n\r\n\tvar AudioAnalyser = /*#__PURE__*/function () {\r\n\t\tfunction AudioAnalyser(audio, fftSize) {\r\n\t\t\tif (fftSize === void 0) {\r\n\t\t\t\tfftSize = 2048;\r\n\t\t\t}\r\n\r\n\t\t\tthis.analyser = audio.context.createAnalyser();\r\n\t\t\tthis.analyser.fftSize = fftSize;\r\n\t\t\tthis.data = new Uint8Array(this.analyser.frequencyBinCount);\r\n\t\t\taudio.getOutput().connect(this.analyser);\r\n\t\t}\r\n\r\n\t\tvar _proto = AudioAnalyser.prototype;\r\n\r\n\t\t_proto.getFrequencyData = function getFrequencyData() {\r\n\t\t\tthis.analyser.getByteFrequencyData(this.data);\r\n\t\t\treturn this.data;\r\n\t\t};\r\n\r\n\t\t_proto.getAverageFrequency = function getAverageFrequency() {\r\n\t\t\tvar value = 0;\r\n\t\t\tvar data = this.getFrequencyData();\r\n\r\n\t\t\tfor (var i = 0; i < data.length; i++) {\r\n\t\t\t\tvalue += data[i];\r\n\t\t\t}\r\n\r\n\t\t\treturn value / data.length;\r\n\t\t};\r\n\r\n\t\treturn AudioAnalyser;\r\n\t}();\r\n\r\n\tfunction PropertyMixer(binding, typeName, valueSize) {\r\n\t\tthis.binding = binding;\r\n\t\tthis.valueSize = valueSize;\r\n\t\tvar mixFunction, mixFunctionAdditive, setIdentity; // buffer layout: [ incoming | accu0 | accu1 | orig | addAccu | (optional work) ]\r\n\t\t//\r\n\t\t// interpolators can use .buffer as their .result\r\n\t\t// the data then goes to 'incoming'\r\n\t\t//\r\n\t\t// 'accu0' and 'accu1' are used frame-interleaved for\r\n\t\t// the cumulative result and are compared to detect\r\n\t\t// changes\r\n\t\t//\r\n\t\t// 'orig' stores the original state of the property\r\n\t\t//\r\n\t\t// 'add' is used for additive cumulative results\r\n\t\t//\r\n\t\t// 'work' is optional and is only present for quaternion types. It is used\r\n\t\t// to store intermediate quaternion multiplication results\r\n\r\n\t\tswitch (typeName) {\r\n\t\t\tcase 'quaternion':\r\n\t\t\t\tmixFunction = this._slerp;\r\n\t\t\t\tmixFunctionAdditive = this._slerpAdditive;\r\n\t\t\t\tsetIdentity = this._setAdditiveIdentityQuaternion;\r\n\t\t\t\tthis.buffer = new Float64Array(valueSize * 6);\r\n\t\t\t\tthis._workIndex = 5;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'string':\r\n\t\t\tcase 'bool':\r\n\t\t\t\tmixFunction = this._select; // Use the regular mix function and for additive on these types,\r\n\t\t\t\t// additive is not relevant for non-numeric types\r\n\r\n\t\t\t\tmixFunctionAdditive = this._select;\r\n\t\t\t\tsetIdentity = this._setAdditiveIdentityOther;\r\n\t\t\t\tthis.buffer = new Array(valueSize * 5);\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tdefault:\r\n\t\t\t\tmixFunction = this._lerp;\r\n\t\t\t\tmixFunctionAdditive = this._lerpAdditive;\r\n\t\t\t\tsetIdentity = this._setAdditiveIdentityNumeric;\r\n\t\t\t\tthis.buffer = new Float64Array(valueSize * 5);\r\n\t\t}\r\n\r\n\t\tthis._mixBufferRegion = mixFunction;\r\n\t\tthis._mixBufferRegionAdditive = mixFunctionAdditive;\r\n\t\tthis._setIdentity = setIdentity;\r\n\t\tthis._origIndex = 3;\r\n\t\tthis._addIndex = 4;\r\n\t\tthis.cumulativeWeight = 0;\r\n\t\tthis.cumulativeWeightAdditive = 0;\r\n\t\tthis.useCount = 0;\r\n\t\tthis.referenceCount = 0;\r\n\t}\r\n\r\n\tObject.assign(PropertyMixer.prototype, {\r\n\t\t// accumulate data in the 'incoming' region into 'accu'\r\n\t\taccumulate: function accumulate(accuIndex, weight) {\r\n\t\t\t// note: happily accumulating nothing when weight = 0, the caller knows\r\n\t\t\t// the weight and shouldn't have made the call in the first place\r\n\t\t\tvar buffer = this.buffer,\r\n\t\t\t\t\tstride = this.valueSize,\r\n\t\t\t\t\toffset = accuIndex * stride + stride;\r\n\t\t\tvar currentWeight = this.cumulativeWeight;\r\n\r\n\t\t\tif (currentWeight === 0) {\r\n\t\t\t\t// accuN := incoming * weight\r\n\t\t\t\tfor (var i = 0; i !== stride; ++i) {\r\n\t\t\t\t\tbuffer[offset + i] = buffer[i];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcurrentWeight = weight;\r\n\t\t\t} else {\r\n\t\t\t\t// accuN := accuN + incoming * weight\r\n\t\t\t\tcurrentWeight += weight;\r\n\t\t\t\tvar mix = weight / currentWeight;\r\n\r\n\t\t\t\tthis._mixBufferRegion(buffer, offset, 0, mix, stride);\r\n\t\t\t}\r\n\r\n\t\t\tthis.cumulativeWeight = currentWeight;\r\n\t\t},\r\n\t\t// accumulate data in the 'incoming' region into 'add'\r\n\t\taccumulateAdditive: function accumulateAdditive(weight) {\r\n\t\t\tvar buffer = this.buffer,\r\n\t\t\t\t\tstride = this.valueSize,\r\n\t\t\t\t\toffset = stride * this._addIndex;\r\n\r\n\t\t\tif (this.cumulativeWeightAdditive === 0) {\r\n\t\t\t\t// add = identity\r\n\t\t\t\tthis._setIdentity();\r\n\t\t\t} // add := add + incoming * weight\r\n\r\n\r\n\t\t\tthis._mixBufferRegionAdditive(buffer, offset, 0, weight, stride);\r\n\r\n\t\t\tthis.cumulativeWeightAdditive += weight;\r\n\t\t},\r\n\t\t// apply the state of 'accu' to the binding when accus differ\r\n\t\tapply: function apply(accuIndex) {\r\n\t\t\tvar stride = this.valueSize,\r\n\t\t\t\t\tbuffer = this.buffer,\r\n\t\t\t\t\toffset = accuIndex * stride + stride,\r\n\t\t\t\t\tweight = this.cumulativeWeight,\r\n\t\t\t\t\tweightAdditive = this.cumulativeWeightAdditive,\r\n\t\t\t\t\tbinding = this.binding;\r\n\t\t\tthis.cumulativeWeight = 0;\r\n\t\t\tthis.cumulativeWeightAdditive = 0;\r\n\r\n\t\t\tif (weight < 1) {\r\n\t\t\t\t// accuN := accuN + original * ( 1 - cumulativeWeight )\r\n\t\t\t\tvar originalValueOffset = stride * this._origIndex;\r\n\r\n\t\t\t\tthis._mixBufferRegion(buffer, offset, originalValueOffset, 1 - weight, stride);\r\n\t\t\t}\r\n\r\n\t\t\tif (weightAdditive > 0) {\r\n\t\t\t\t// accuN := accuN + additive accuN\r\n\t\t\t\tthis._mixBufferRegionAdditive(buffer, offset, this._addIndex * stride, 1, stride);\r\n\t\t\t}\r\n\r\n\t\t\tfor (var i = stride, e = stride + stride; i !== e; ++i) {\r\n\t\t\t\tif (buffer[i] !== buffer[i + stride]) {\r\n\t\t\t\t\t// value has changed -> update scene graph\r\n\t\t\t\t\tbinding.setValue(buffer, offset);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\t// remember the state of the bound property and copy it to both accus\r\n\t\tsaveOriginalState: function saveOriginalState() {\r\n\t\t\tvar binding = this.binding;\r\n\t\t\tvar buffer = this.buffer,\r\n\t\t\t\t\tstride = this.valueSize,\r\n\t\t\t\t\toriginalValueOffset = stride * this._origIndex;\r\n\t\t\tbinding.getValue(buffer, originalValueOffset); // accu[0..1] := orig -- initially detect changes against the original\r\n\r\n\t\t\tfor (var i = stride, e = originalValueOffset; i !== e; ++i) {\r\n\t\t\t\tbuffer[i] = buffer[originalValueOffset + i % stride];\r\n\t\t\t} // Add to identity for additive\r\n\r\n\r\n\t\t\tthis._setIdentity();\r\n\r\n\t\t\tthis.cumulativeWeight = 0;\r\n\t\t\tthis.cumulativeWeightAdditive = 0;\r\n\t\t},\r\n\t\t// apply the state previously taken via 'saveOriginalState' to the binding\r\n\t\trestoreOriginalState: function restoreOriginalState() {\r\n\t\t\tvar originalValueOffset = this.valueSize * 3;\r\n\t\t\tthis.binding.setValue(this.buffer, originalValueOffset);\r\n\t\t},\r\n\t\t_setAdditiveIdentityNumeric: function _setAdditiveIdentityNumeric() {\r\n\t\t\tvar startIndex = this._addIndex * this.valueSize;\r\n\t\t\tvar endIndex = startIndex + this.valueSize;\r\n\r\n\t\t\tfor (var i = startIndex; i < endIndex; i++) {\r\n\t\t\t\tthis.buffer[i] = 0;\r\n\t\t\t}\r\n\t\t},\r\n\t\t_setAdditiveIdentityQuaternion: function _setAdditiveIdentityQuaternion() {\r\n\t\t\tthis._setAdditiveIdentityNumeric();\r\n\r\n\t\t\tthis.buffer[this._addIndex * this.valueSize + 3] = 1;\r\n\t\t},\r\n\t\t_setAdditiveIdentityOther: function _setAdditiveIdentityOther() {\r\n\t\t\tvar startIndex = this._origIndex * this.valueSize;\r\n\t\t\tvar targetIndex = this._addIndex * this.valueSize;\r\n\r\n\t\t\tfor (var i = 0; i < this.valueSize; i++) {\r\n\t\t\t\tthis.buffer[targetIndex + i] = this.buffer[startIndex + i];\r\n\t\t\t}\r\n\t\t},\r\n\t\t// mix functions\r\n\t\t_select: function _select(buffer, dstOffset, srcOffset, t, stride) {\r\n\t\t\tif (t >= 0.5) {\r\n\t\t\t\tfor (var i = 0; i !== stride; ++i) {\r\n\t\t\t\t\tbuffer[dstOffset + i] = buffer[srcOffset + i];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\t_slerp: function _slerp(buffer, dstOffset, srcOffset, t) {\r\n\t\t\tQuaternion.slerpFlat(buffer, dstOffset, buffer, dstOffset, buffer, srcOffset, t);\r\n\t\t},\r\n\t\t_slerpAdditive: function _slerpAdditive(buffer, dstOffset, srcOffset, t, stride) {\r\n\t\t\tvar workOffset = this._workIndex * stride; // Store result in intermediate buffer offset\r\n\r\n\t\t\tQuaternion.multiplyQuaternionsFlat(buffer, workOffset, buffer, dstOffset, buffer, srcOffset); // Slerp to the intermediate result\r\n\r\n\t\t\tQuaternion.slerpFlat(buffer, dstOffset, buffer, dstOffset, buffer, workOffset, t);\r\n\t\t},\r\n\t\t_lerp: function _lerp(buffer, dstOffset, srcOffset, t, stride) {\r\n\t\t\tvar s = 1 - t;\r\n\r\n\t\t\tfor (var i = 0; i !== stride; ++i) {\r\n\t\t\t\tvar j = dstOffset + i;\r\n\t\t\t\tbuffer[j] = buffer[j] * s + buffer[srcOffset + i] * t;\r\n\t\t\t}\r\n\t\t},\r\n\t\t_lerpAdditive: function _lerpAdditive(buffer, dstOffset, srcOffset, t, stride) {\r\n\t\t\tfor (var i = 0; i !== stride; ++i) {\r\n\t\t\t\tvar j = dstOffset + i;\r\n\t\t\t\tbuffer[j] = buffer[j] + buffer[srcOffset + i] * t;\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t// Characters [].:/ are reserved for track binding syntax.\r\n\tvar _RESERVED_CHARS_RE = '\\\\[\\\\]\\\\.:\\\\/';\r\n\r\n\tvar _reservedRe = new RegExp('[' + _RESERVED_CHARS_RE + ']', 'g'); // Attempts to allow node names from any language. ES5's `\\w` regexp matches\r\n\t// only latin characters, and the unicode \\p{L} is not yet supported. So\r\n\t// instead, we exclude reserved characters and match everything else.\r\n\r\n\r\n\tvar _wordChar = '[^' + _RESERVED_CHARS_RE + ']';\r\n\r\n\tvar _wordCharOrDot = '[^' + _RESERVED_CHARS_RE.replace('\\\\.', '') + ']'; // Parent directories, delimited by '/' or ':'. Currently unused, but must\r\n\t// be matched to parse the rest of the track name.\r\n\r\n\r\n\tvar _directoryRe = /((?:WC+[\\/:])*)/.source.replace('WC', _wordChar); // Target node. May contain word characters (a-zA-Z0-9_) and '.' or '-'.\r\n\r\n\r\n\tvar _nodeRe = /(WCOD+)?/.source.replace('WCOD', _wordCharOrDot); // Object on target node, and accessor. May not contain reserved\r\n\t// characters. Accessor may contain any character except closing bracket.\r\n\r\n\r\n\tvar _objectRe = /(?:\\.(WC+)(?:\\[(.+)\\])?)?/.source.replace('WC', _wordChar); // Property and accessor. May not contain reserved characters. Accessor may\r\n\t// contain any non-bracket characters.\r\n\r\n\r\n\tvar _propertyRe = /\\.(WC+)(?:\\[(.+)\\])?/.source.replace('WC', _wordChar);\r\n\r\n\tvar _trackRe = new RegExp('' + '^' + _directoryRe + _nodeRe + _objectRe + _propertyRe + '$');\r\n\r\n\tvar _supportedObjectNames = ['material', 'materials', 'bones'];\r\n\r\n\tfunction Composite(targetGroup, path, optionalParsedPath) {\r\n\t\tvar parsedPath = optionalParsedPath || PropertyBinding.parseTrackName(path);\r\n\t\tthis._targetGroup = targetGroup;\r\n\t\tthis._bindings = targetGroup.subscribe_(path, parsedPath);\r\n\t}\r\n\r\n\tObject.assign(Composite.prototype, {\r\n\t\tgetValue: function getValue(array, offset) {\r\n\t\t\tthis.bind(); // bind all binding\r\n\r\n\t\t\tvar firstValidIndex = this._targetGroup.nCachedObjects_,\r\n\t\t\t\t\tbinding = this._bindings[firstValidIndex]; // and only call .getValue on the first\r\n\r\n\t\t\tif (binding !== undefined) binding.getValue(array, offset);\r\n\t\t},\r\n\t\tsetValue: function setValue(array, offset) {\r\n\t\t\tvar bindings = this._bindings;\r\n\r\n\t\t\tfor (var i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++i) {\r\n\t\t\t\tbindings[i].setValue(array, offset);\r\n\t\t\t}\r\n\t\t},\r\n\t\tbind: function bind() {\r\n\t\t\tvar bindings = this._bindings;\r\n\r\n\t\t\tfor (var i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++i) {\r\n\t\t\t\tbindings[i].bind();\r\n\t\t\t}\r\n\t\t},\r\n\t\tunbind: function unbind() {\r\n\t\t\tvar bindings = this._bindings;\r\n\r\n\t\t\tfor (var i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++i) {\r\n\t\t\t\tbindings[i].unbind();\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\tfunction PropertyBinding(rootNode, path, parsedPath) {\r\n\t\tthis.path = path;\r\n\t\tthis.parsedPath = parsedPath || PropertyBinding.parseTrackName(path);\r\n\t\tthis.node = PropertyBinding.findNode(rootNode, this.parsedPath.nodeName) || rootNode;\r\n\t\tthis.rootNode = rootNode;\r\n\t}\r\n\r\n\tObject.assign(PropertyBinding, {\r\n\t\tComposite: Composite,\r\n\t\tcreate: function create(root, path, parsedPath) {\r\n\t\t\tif (!(root && root.isAnimationObjectGroup)) {\r\n\t\t\t\treturn new PropertyBinding(root, path, parsedPath);\r\n\t\t\t} else {\r\n\t\t\t\treturn new PropertyBinding.Composite(root, path, parsedPath);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Replaces spaces with underscores and removes unsupported characters from\r\n\t\t * node names, to ensure compatibility with parseTrackName().\r\n\t\t *\r\n\t\t * @param {string} name Node name to be sanitized.\r\n\t\t * @return {string}\r\n\t\t */\r\n\t\tsanitizeNodeName: function sanitizeNodeName(name) {\r\n\t\t\treturn name.replace(/\\s/g, '_').replace(_reservedRe, '');\r\n\t\t},\r\n\t\tparseTrackName: function parseTrackName(trackName) {\r\n\t\t\tvar matches = _trackRe.exec(trackName);\r\n\r\n\t\t\tif (!matches) {\r\n\t\t\t\tthrow new Error('PropertyBinding: Cannot parse trackName: ' + trackName);\r\n\t\t\t}\r\n\r\n\t\t\tvar results = {\r\n\t\t\t\t// directoryName: matches[ 1 ], // (tschw) currently unused\r\n\t\t\t\tnodeName: matches[2],\r\n\t\t\t\tobjectName: matches[3],\r\n\t\t\t\tobjectIndex: matches[4],\r\n\t\t\t\tpropertyName: matches[5],\r\n\t\t\t\t// required\r\n\t\t\t\tpropertyIndex: matches[6]\r\n\t\t\t};\r\n\t\t\tvar lastDot = results.nodeName && results.nodeName.lastIndexOf('.');\r\n\r\n\t\t\tif (lastDot !== undefined && lastDot !== -1) {\r\n\t\t\t\tvar objectName = results.nodeName.substring(lastDot + 1); // Object names must be checked against an allowlist. Otherwise, there\r\n\t\t\t\t// is no way to parse 'foo.bar.baz': 'baz' must be a property, but\r\n\t\t\t\t// 'bar' could be the objectName, or part of a nodeName (which can\r\n\t\t\t\t// include '.' characters).\r\n\r\n\t\t\t\tif (_supportedObjectNames.indexOf(objectName) !== -1) {\r\n\t\t\t\t\tresults.nodeName = results.nodeName.substring(0, lastDot);\r\n\t\t\t\t\tresults.objectName = objectName;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (results.propertyName === null || results.propertyName.length === 0) {\r\n\t\t\t\tthrow new Error('PropertyBinding: can not parse propertyName from trackName: ' + trackName);\r\n\t\t\t}\r\n\r\n\t\t\treturn results;\r\n\t\t},\r\n\t\tfindNode: function findNode(root, nodeName) {\r\n\t\t\tif (!nodeName || nodeName === \"\" || nodeName === \".\" || nodeName === -1 || nodeName === root.name || nodeName === root.uuid) {\r\n\t\t\t\treturn root;\r\n\t\t\t} // search into skeleton bones.\r\n\r\n\r\n\t\t\tif (root.skeleton) {\r\n\t\t\t\tvar bone = root.skeleton.getBoneByName(nodeName);\r\n\r\n\t\t\t\tif (bone !== undefined) {\r\n\t\t\t\t\treturn bone;\r\n\t\t\t\t}\r\n\t\t\t} // search into node subtree.\r\n\r\n\r\n\t\t\tif (root.children) {\r\n\t\t\t\tvar searchNodeSubtree = function searchNodeSubtree(children) {\r\n\t\t\t\t\tfor (var i = 0; i < children.length; i++) {\r\n\t\t\t\t\t\tvar childNode = children[i];\r\n\r\n\t\t\t\t\t\tif (childNode.name === nodeName || childNode.uuid === nodeName) {\r\n\t\t\t\t\t\t\treturn childNode;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar result = searchNodeSubtree(childNode.children);\r\n\t\t\t\t\t\tif (result) return result;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t};\r\n\r\n\t\t\t\tvar subTreeNode = searchNodeSubtree(root.children);\r\n\r\n\t\t\t\tif (subTreeNode) {\r\n\t\t\t\t\treturn subTreeNode;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn null;\r\n\t\t}\r\n\t});\r\n\tObject.assign(PropertyBinding.prototype, {\r\n\t\t// prototype, continued\r\n\t\t// these are used to \"bind\" a nonexistent property\r\n\t\t_getValue_unavailable: function _getValue_unavailable() {},\r\n\t\t_setValue_unavailable: function _setValue_unavailable() {},\r\n\t\tBindingType: {\r\n\t\t\tDirect: 0,\r\n\t\t\tEntireArray: 1,\r\n\t\t\tArrayElement: 2,\r\n\t\t\tHasFromToArray: 3\r\n\t\t},\r\n\t\tVersioning: {\r\n\t\t\tNone: 0,\r\n\t\t\tNeedsUpdate: 1,\r\n\t\t\tMatrixWorldNeedsUpdate: 2\r\n\t\t},\r\n\t\tGetterByBindingType: [function getValue_direct(buffer, offset) {\r\n\t\t\tbuffer[offset] = this.node[this.propertyName];\r\n\t\t}, function getValue_array(buffer, offset) {\r\n\t\t\tvar source = this.resolvedProperty;\r\n\r\n\t\t\tfor (var i = 0, n = source.length; i !== n; ++i) {\r\n\t\t\t\tbuffer[offset++] = source[i];\r\n\t\t\t}\r\n\t\t}, function getValue_arrayElement(buffer, offset) {\r\n\t\t\tbuffer[offset] = this.resolvedProperty[this.propertyIndex];\r\n\t\t}, function getValue_toArray(buffer, offset) {\r\n\t\t\tthis.resolvedProperty.toArray(buffer, offset);\r\n\t\t}],\r\n\t\tSetterByBindingTypeAndVersioning: [[// Direct\r\n\t\tfunction setValue_direct(buffer, offset) {\r\n\t\t\tthis.targetObject[this.propertyName] = buffer[offset];\r\n\t\t}, function setValue_direct_setNeedsUpdate(buffer, offset) {\r\n\t\t\tthis.targetObject[this.propertyName] = buffer[offset];\r\n\t\t\tthis.targetObject.needsUpdate = true;\r\n\t\t}, function setValue_direct_setMatrixWorldNeedsUpdate(buffer, offset) {\r\n\t\t\tthis.targetObject[this.propertyName] = buffer[offset];\r\n\t\t\tthis.targetObject.matrixWorldNeedsUpdate = true;\r\n\t\t}], [// EntireArray\r\n\t\tfunction setValue_array(buffer, offset) {\r\n\t\t\tvar dest = this.resolvedProperty;\r\n\r\n\t\t\tfor (var i = 0, n = dest.length; i !== n; ++i) {\r\n\t\t\t\tdest[i] = buffer[offset++];\r\n\t\t\t}\r\n\t\t}, function setValue_array_setNeedsUpdate(buffer, offset) {\r\n\t\t\tvar dest = this.resolvedProperty;\r\n\r\n\t\t\tfor (var i = 0, n = dest.length; i !== n; ++i) {\r\n\t\t\t\tdest[i] = buffer[offset++];\r\n\t\t\t}\r\n\r\n\t\t\tthis.targetObject.needsUpdate = true;\r\n\t\t}, function setValue_array_setMatrixWorldNeedsUpdate(buffer, offset) {\r\n\t\t\tvar dest = this.resolvedProperty;\r\n\r\n\t\t\tfor (var i = 0, n = dest.length; i !== n; ++i) {\r\n\t\t\t\tdest[i] = buffer[offset++];\r\n\t\t\t}\r\n\r\n\t\t\tthis.targetObject.matrixWorldNeedsUpdate = true;\r\n\t\t}], [// ArrayElement\r\n\t\tfunction setValue_arrayElement(buffer, offset) {\r\n\t\t\tthis.resolvedProperty[this.propertyIndex] = buffer[offset];\r\n\t\t}, function setValue_arrayElement_setNeedsUpdate(buffer, offset) {\r\n\t\t\tthis.resolvedProperty[this.propertyIndex] = buffer[offset];\r\n\t\t\tthis.targetObject.needsUpdate = true;\r\n\t\t}, function setValue_arrayElement_setMatrixWorldNeedsUpdate(buffer, offset) {\r\n\t\t\tthis.resolvedProperty[this.propertyIndex] = buffer[offset];\r\n\t\t\tthis.targetObject.matrixWorldNeedsUpdate = true;\r\n\t\t}], [// HasToFromArray\r\n\t\tfunction setValue_fromArray(buffer, offset) {\r\n\t\t\tthis.resolvedProperty.fromArray(buffer, offset);\r\n\t\t}, function setValue_fromArray_setNeedsUpdate(buffer, offset) {\r\n\t\t\tthis.resolvedProperty.fromArray(buffer, offset);\r\n\t\t\tthis.targetObject.needsUpdate = true;\r\n\t\t}, function setValue_fromArray_setMatrixWorldNeedsUpdate(buffer, offset) {\r\n\t\t\tthis.resolvedProperty.fromArray(buffer, offset);\r\n\t\t\tthis.targetObject.matrixWorldNeedsUpdate = true;\r\n\t\t}]],\r\n\t\tgetValue: function getValue_unbound(targetArray, offset) {\r\n\t\t\tthis.bind();\r\n\t\t\tthis.getValue(targetArray, offset); // Note: This class uses a State pattern on a per-method basis:\r\n\t\t\t// 'bind' sets 'this.getValue' / 'setValue' and shadows the\r\n\t\t\t// prototype version of these methods with one that represents\r\n\t\t\t// the bound state. When the property is not found, the methods\r\n\t\t\t// become no-ops.\r\n\t\t},\r\n\t\tsetValue: function getValue_unbound(sourceArray, offset) {\r\n\t\t\tthis.bind();\r\n\t\t\tthis.setValue(sourceArray, offset);\r\n\t\t},\r\n\t\t// create getter / setter pair for a property in the scene graph\r\n\t\tbind: function bind() {\r\n\t\t\tvar targetObject = this.node;\r\n\t\t\tvar parsedPath = this.parsedPath;\r\n\t\t\tvar objectName = parsedPath.objectName;\r\n\t\t\tvar propertyName = parsedPath.propertyName;\r\n\t\t\tvar propertyIndex = parsedPath.propertyIndex;\r\n\r\n\t\t\tif (!targetObject) {\r\n\t\t\t\ttargetObject = PropertyBinding.findNode(this.rootNode, parsedPath.nodeName) || this.rootNode;\r\n\t\t\t\tthis.node = targetObject;\r\n\t\t\t} // set fail state so we can just 'return' on error\r\n\r\n\r\n\t\t\tthis.getValue = this._getValue_unavailable;\r\n\t\t\tthis.setValue = this._setValue_unavailable; // ensure there is a value node\r\n\r\n\t\t\tif (!targetObject) {\r\n\t\t\t\tconsole.error('THREE.PropertyBinding: Trying to update node for track: ' + this.path + ' but it wasn\\'t found.');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (objectName) {\r\n\t\t\t\tvar objectIndex = parsedPath.objectIndex; // special cases were we need to reach deeper into the hierarchy to get the face materials....\r\n\r\n\t\t\t\tswitch (objectName) {\r\n\t\t\t\t\tcase 'materials':\r\n\t\t\t\t\t\tif (!targetObject.material) {\r\n\t\t\t\t\t\t\tconsole.error('THREE.PropertyBinding: Can not bind to material as node does not have a material.', this);\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (!targetObject.material.materials) {\r\n\t\t\t\t\t\t\tconsole.error('THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.', this);\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\ttargetObject = targetObject.material.materials;\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase 'bones':\r\n\t\t\t\t\t\tif (!targetObject.skeleton) {\r\n\t\t\t\t\t\t\tconsole.error('THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.', this);\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t} // potential future optimization: skip this if propertyIndex is already an integer\r\n\t\t\t\t\t\t// and convert the integer string to a true integer.\r\n\r\n\r\n\t\t\t\t\t\ttargetObject = targetObject.skeleton.bones; // support resolving morphTarget names into indices.\r\n\r\n\t\t\t\t\t\tfor (var i = 0; i < targetObject.length; i++) {\r\n\t\t\t\t\t\t\tif (targetObject[i].name === objectIndex) {\r\n\t\t\t\t\t\t\t\tobjectIndex = i;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tif (targetObject[objectName] === undefined) {\r\n\t\t\t\t\t\t\tconsole.error('THREE.PropertyBinding: Can not bind to objectName of node undefined.', this);\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\ttargetObject = targetObject[objectName];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (objectIndex !== undefined) {\r\n\t\t\t\t\tif (targetObject[objectIndex] === undefined) {\r\n\t\t\t\t\t\tconsole.error('THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.', this, targetObject);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\ttargetObject = targetObject[objectIndex];\r\n\t\t\t\t}\r\n\t\t\t} // resolve property\r\n\r\n\r\n\t\t\tvar nodeProperty = targetObject[propertyName];\r\n\r\n\t\t\tif (nodeProperty === undefined) {\r\n\t\t\t\tvar nodeName = parsedPath.nodeName;\r\n\t\t\t\tconsole.error('THREE.PropertyBinding: Trying to update property for track: ' + nodeName + '.' + propertyName + ' but it wasn\\'t found.', targetObject);\r\n\t\t\t\treturn;\r\n\t\t\t} // determine versioning scheme\r\n\r\n\r\n\t\t\tvar versioning = this.Versioning.None;\r\n\t\t\tthis.targetObject = targetObject;\r\n\r\n\t\t\tif (targetObject.needsUpdate !== undefined) {\r\n\t\t\t\t// material\r\n\t\t\t\tversioning = this.Versioning.NeedsUpdate;\r\n\t\t\t} else if (targetObject.matrixWorldNeedsUpdate !== undefined) {\r\n\t\t\t\t// node transform\r\n\t\t\t\tversioning = this.Versioning.MatrixWorldNeedsUpdate;\r\n\t\t\t} // determine how the property gets bound\r\n\r\n\r\n\t\t\tvar bindingType = this.BindingType.Direct;\r\n\r\n\t\t\tif (propertyIndex !== undefined) {\r\n\t\t\t\t// access a sub element of the property array (only primitives are supported right now)\r\n\t\t\t\tif (propertyName === \"morphTargetInfluences\") {\r\n\t\t\t\t\t// potential optimization, skip this if propertyIndex is already an integer, and convert the integer string to a true integer.\r\n\t\t\t\t\t// support resolving morphTarget names into indices.\r\n\t\t\t\t\tif (!targetObject.geometry) {\r\n\t\t\t\t\t\tconsole.error('THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.', this);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (targetObject.geometry.isBufferGeometry) {\r\n\t\t\t\t\t\tif (!targetObject.geometry.morphAttributes) {\r\n\t\t\t\t\t\t\tconsole.error('THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.', this);\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (targetObject.morphTargetDictionary[propertyIndex] !== undefined) {\r\n\t\t\t\t\t\t\tpropertyIndex = targetObject.morphTargetDictionary[propertyIndex];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconsole.error('THREE.PropertyBinding: Can not bind to morphTargetInfluences on THREE.Geometry. Use THREE.BufferGeometry instead.', this);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tbindingType = this.BindingType.ArrayElement;\r\n\t\t\t\tthis.resolvedProperty = nodeProperty;\r\n\t\t\t\tthis.propertyIndex = propertyIndex;\r\n\t\t\t} else if (nodeProperty.fromArray !== undefined && nodeProperty.toArray !== undefined) {\r\n\t\t\t\t// must use copy for Object3D.Euler/Quaternion\r\n\t\t\t\tbindingType = this.BindingType.HasFromToArray;\r\n\t\t\t\tthis.resolvedProperty = nodeProperty;\r\n\t\t\t} else if (Array.isArray(nodeProperty)) {\r\n\t\t\t\tbindingType = this.BindingType.EntireArray;\r\n\t\t\t\tthis.resolvedProperty = nodeProperty;\r\n\t\t\t} else {\r\n\t\t\t\tthis.propertyName = propertyName;\r\n\t\t\t} // select getter / setter\r\n\r\n\r\n\t\t\tthis.getValue = this.GetterByBindingType[bindingType];\r\n\t\t\tthis.setValue = this.SetterByBindingTypeAndVersioning[bindingType][versioning];\r\n\t\t},\r\n\t\tunbind: function unbind() {\r\n\t\t\tthis.node = null; // back to the prototype version of getValue / setValue\r\n\t\t\t// note: avoiding to mutate the shape of 'this' via 'delete'\r\n\r\n\t\t\tthis.getValue = this._getValue_unbound;\r\n\t\t\tthis.setValue = this._setValue_unbound;\r\n\t\t}\r\n\t}); // DECLARE ALIAS AFTER assign prototype\r\n\r\n\tObject.assign(PropertyBinding.prototype, {\r\n\t\t// initial state of these methods that calls 'bind'\r\n\t\t_getValue_unbound: PropertyBinding.prototype.getValue,\r\n\t\t_setValue_unbound: PropertyBinding.prototype.setValue\r\n\t});\r\n\r\n\t/**\r\n\t *\r\n\t * A group of objects that receives a shared animation state.\r\n\t *\r\n\t * Usage:\r\n\t *\r\n\t *\t- Add objects you would otherwise pass as 'root' to the\r\n\t *\t\tconstructor or the .clipAction method of AnimationMixer.\r\n\t *\r\n\t *\t- Instead pass this object as 'root'.\r\n\t *\r\n\t *\t- You can also add and remove objects later when the mixer\r\n\t *\t\tis running.\r\n\t *\r\n\t * Note:\r\n\t *\r\n\t *\t\tObjects of this class appear as one object to the mixer,\r\n\t *\t\tso cache control of the individual objects must be done\r\n\t *\t\ton the group.\r\n\t *\r\n\t * Limitation:\r\n\t *\r\n\t *\t- The animated properties must be compatible among the\r\n\t *\t\tall objects in the group.\r\n\t *\r\n\t *\t- A single property can either be controlled through a\r\n\t *\t\ttarget group or directly, but not both.\r\n\t */\r\n\r\n\tfunction AnimationObjectGroup() {\r\n\t\tthis.uuid = MathUtils.generateUUID(); // cached objects followed by the active ones\r\n\r\n\t\tthis._objects = Array.prototype.slice.call(arguments);\r\n\t\tthis.nCachedObjects_ = 0; // threshold\r\n\t\t// note: read by PropertyBinding.Composite\r\n\r\n\t\tvar indices = {};\r\n\t\tthis._indicesByUUID = indices; // for bookkeeping\r\n\r\n\t\tfor (var i = 0, n = arguments.length; i !== n; ++i) {\r\n\t\t\tindices[arguments[i].uuid] = i;\r\n\t\t}\r\n\r\n\t\tthis._paths = []; // inside: string\r\n\r\n\t\tthis._parsedPaths = []; // inside: { we don't care, here }\r\n\r\n\t\tthis._bindings = []; // inside: Array< PropertyBinding >\r\n\r\n\t\tthis._bindingsIndicesByPath = {}; // inside: indices in these arrays\r\n\r\n\t\tvar scope = this;\r\n\t\tthis.stats = {\r\n\t\t\tobjects: {\r\n\t\t\t\tget total() {\r\n\t\t\t\t\treturn scope._objects.length;\r\n\t\t\t\t},\r\n\r\n\t\t\t\tget inUse() {\r\n\t\t\t\t\treturn this.total - scope.nCachedObjects_;\r\n\t\t\t\t}\r\n\r\n\t\t\t},\r\n\r\n\t\t\tget bindingsPerObject() {\r\n\t\t\t\treturn scope._bindings.length;\r\n\t\t\t}\r\n\r\n\t\t};\r\n\t}\r\n\r\n\tObject.assign(AnimationObjectGroup.prototype, {\r\n\t\tisAnimationObjectGroup: true,\r\n\t\tadd: function add() {\r\n\t\t\tvar objects = this._objects,\r\n\t\t\t\t\tindicesByUUID = this._indicesByUUID,\r\n\t\t\t\t\tpaths = this._paths,\r\n\t\t\t\t\tparsedPaths = this._parsedPaths,\r\n\t\t\t\t\tbindings = this._bindings,\r\n\t\t\t\t\tnBindings = bindings.length;\r\n\t\t\tvar knownObject = undefined,\r\n\t\t\t\t\tnObjects = objects.length,\r\n\t\t\t\t\tnCachedObjects = this.nCachedObjects_;\r\n\r\n\t\t\tfor (var i = 0, n = arguments.length; i !== n; ++i) {\r\n\t\t\t\tvar object = arguments[i],\r\n\t\t\t\t\t\tuuid = object.uuid;\r\n\t\t\t\tvar index = indicesByUUID[uuid];\r\n\r\n\t\t\t\tif (index === undefined) {\r\n\t\t\t\t\t// unknown object -> add it to the ACTIVE region\r\n\t\t\t\t\tindex = nObjects++;\r\n\t\t\t\t\tindicesByUUID[uuid] = index;\r\n\t\t\t\t\tobjects.push(object); // accounting is done, now do the same for all bindings\r\n\r\n\t\t\t\t\tfor (var j = 0, m = nBindings; j !== m; ++j) {\r\n\t\t\t\t\t\tbindings[j].push(new PropertyBinding(object, paths[j], parsedPaths[j]));\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (index < nCachedObjects) {\r\n\t\t\t\t\tknownObject = objects[index]; // move existing object to the ACTIVE region\r\n\r\n\t\t\t\t\tvar firstActiveIndex = --nCachedObjects,\r\n\t\t\t\t\t\t\tlastCachedObject = objects[firstActiveIndex];\r\n\t\t\t\t\tindicesByUUID[lastCachedObject.uuid] = index;\r\n\t\t\t\t\tobjects[index] = lastCachedObject;\r\n\t\t\t\t\tindicesByUUID[uuid] = firstActiveIndex;\r\n\t\t\t\t\tobjects[firstActiveIndex] = object; // accounting is done, now do the same for all bindings\r\n\r\n\t\t\t\t\tfor (var _j = 0, _m = nBindings; _j !== _m; ++_j) {\r\n\t\t\t\t\t\tvar bindingsForPath = bindings[_j],\r\n\t\t\t\t\t\t\t\tlastCached = bindingsForPath[firstActiveIndex];\r\n\t\t\t\t\t\tvar binding = bindingsForPath[index];\r\n\t\t\t\t\t\tbindingsForPath[index] = lastCached;\r\n\r\n\t\t\t\t\t\tif (binding === undefined) {\r\n\t\t\t\t\t\t\t// since we do not bother to create new bindings\r\n\t\t\t\t\t\t\t// for objects that are cached, the binding may\r\n\t\t\t\t\t\t\t// or may not exist\r\n\t\t\t\t\t\t\tbinding = new PropertyBinding(object, paths[_j], parsedPaths[_j]);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tbindingsForPath[firstActiveIndex] = binding;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (objects[index] !== knownObject) {\r\n\t\t\t\t\tconsole.error('THREE.AnimationObjectGroup: Different objects with the same UUID ' + 'detected. Clean the caches or recreate your infrastructure when reloading scenes.');\r\n\t\t\t\t} // else the object is already where we want it to be\r\n\r\n\t\t\t} // for arguments\r\n\r\n\r\n\t\t\tthis.nCachedObjects_ = nCachedObjects;\r\n\t\t},\r\n\t\tremove: function remove() {\r\n\t\t\tvar objects = this._objects,\r\n\t\t\t\t\tindicesByUUID = this._indicesByUUID,\r\n\t\t\t\t\tbindings = this._bindings,\r\n\t\t\t\t\tnBindings = bindings.length;\r\n\t\t\tvar nCachedObjects = this.nCachedObjects_;\r\n\r\n\t\t\tfor (var i = 0, n = arguments.length; i !== n; ++i) {\r\n\t\t\t\tvar object = arguments[i],\r\n\t\t\t\t\t\tuuid = object.uuid,\r\n\t\t\t\t\t\tindex = indicesByUUID[uuid];\r\n\r\n\t\t\t\tif (index !== undefined && index >= nCachedObjects) {\r\n\t\t\t\t\t// move existing object into the CACHED region\r\n\t\t\t\t\tvar lastCachedIndex = nCachedObjects++,\r\n\t\t\t\t\t\t\tfirstActiveObject = objects[lastCachedIndex];\r\n\t\t\t\t\tindicesByUUID[firstActiveObject.uuid] = index;\r\n\t\t\t\t\tobjects[index] = firstActiveObject;\r\n\t\t\t\t\tindicesByUUID[uuid] = lastCachedIndex;\r\n\t\t\t\t\tobjects[lastCachedIndex] = object; // accounting is done, now do the same for all bindings\r\n\r\n\t\t\t\t\tfor (var j = 0, m = nBindings; j !== m; ++j) {\r\n\t\t\t\t\t\tvar bindingsForPath = bindings[j],\r\n\t\t\t\t\t\t\t\tfirstActive = bindingsForPath[lastCachedIndex],\r\n\t\t\t\t\t\t\t\tbinding = bindingsForPath[index];\r\n\t\t\t\t\t\tbindingsForPath[index] = firstActive;\r\n\t\t\t\t\t\tbindingsForPath[lastCachedIndex] = binding;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} // for arguments\r\n\r\n\r\n\t\t\tthis.nCachedObjects_ = nCachedObjects;\r\n\t\t},\r\n\t\t// remove & forget\r\n\t\tuncache: function uncache() {\r\n\t\t\tvar objects = this._objects,\r\n\t\t\t\t\tindicesByUUID = this._indicesByUUID,\r\n\t\t\t\t\tbindings = this._bindings,\r\n\t\t\t\t\tnBindings = bindings.length;\r\n\t\t\tvar nCachedObjects = this.nCachedObjects_,\r\n\t\t\t\t\tnObjects = objects.length;\r\n\r\n\t\t\tfor (var i = 0, n = arguments.length; i !== n; ++i) {\r\n\t\t\t\tvar object = arguments[i],\r\n\t\t\t\t\t\tuuid = object.uuid,\r\n\t\t\t\t\t\tindex = indicesByUUID[uuid];\r\n\r\n\t\t\t\tif (index !== undefined) {\r\n\t\t\t\t\tdelete indicesByUUID[uuid];\r\n\r\n\t\t\t\t\tif (index < nCachedObjects) {\r\n\t\t\t\t\t\t// object is cached, shrink the CACHED region\r\n\t\t\t\t\t\tvar firstActiveIndex = --nCachedObjects,\r\n\t\t\t\t\t\t\t\tlastCachedObject = objects[firstActiveIndex],\r\n\t\t\t\t\t\t\t\tlastIndex = --nObjects,\r\n\t\t\t\t\t\t\t\tlastObject = objects[lastIndex]; // last cached object takes this object's place\r\n\r\n\t\t\t\t\t\tindicesByUUID[lastCachedObject.uuid] = index;\r\n\t\t\t\t\t\tobjects[index] = lastCachedObject; // last object goes to the activated slot and pop\r\n\r\n\t\t\t\t\t\tindicesByUUID[lastObject.uuid] = firstActiveIndex;\r\n\t\t\t\t\t\tobjects[firstActiveIndex] = lastObject;\r\n\t\t\t\t\t\tobjects.pop(); // accounting is done, now do the same for all bindings\r\n\r\n\t\t\t\t\t\tfor (var j = 0, m = nBindings; j !== m; ++j) {\r\n\t\t\t\t\t\t\tvar bindingsForPath = bindings[j],\r\n\t\t\t\t\t\t\t\t\tlastCached = bindingsForPath[firstActiveIndex],\r\n\t\t\t\t\t\t\t\t\tlast = bindingsForPath[lastIndex];\r\n\t\t\t\t\t\t\tbindingsForPath[index] = lastCached;\r\n\t\t\t\t\t\t\tbindingsForPath[firstActiveIndex] = last;\r\n\t\t\t\t\t\t\tbindingsForPath.pop();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// object is active, just swap with the last and pop\r\n\t\t\t\t\t\tvar _lastIndex = --nObjects,\r\n\t\t\t\t\t\t\t\t_lastObject = objects[_lastIndex];\r\n\r\n\t\t\t\t\t\tif (_lastIndex > 0) {\r\n\t\t\t\t\t\t\tindicesByUUID[_lastObject.uuid] = index;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tobjects[index] = _lastObject;\r\n\t\t\t\t\t\tobjects.pop(); // accounting is done, now do the same for all bindings\r\n\r\n\t\t\t\t\t\tfor (var _j2 = 0, _m2 = nBindings; _j2 !== _m2; ++_j2) {\r\n\t\t\t\t\t\t\tvar _bindingsForPath = bindings[_j2];\r\n\t\t\t\t\t\t\t_bindingsForPath[index] = _bindingsForPath[_lastIndex];\r\n\r\n\t\t\t\t\t\t\t_bindingsForPath.pop();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} // cached or active\r\n\r\n\t\t\t\t} // if object is known\r\n\r\n\t\t\t} // for arguments\r\n\r\n\r\n\t\t\tthis.nCachedObjects_ = nCachedObjects;\r\n\t\t},\r\n\t\t// Internal interface used by befriended PropertyBinding.Composite:\r\n\t\tsubscribe_: function subscribe_(path, parsedPath) {\r\n\t\t\t// returns an array of bindings for the given path that is changed\r\n\t\t\t// according to the contained objects in the group\r\n\t\t\tvar indicesByPath = this._bindingsIndicesByPath;\r\n\t\t\tvar index = indicesByPath[path];\r\n\t\t\tvar bindings = this._bindings;\r\n\t\t\tif (index !== undefined) return bindings[index];\r\n\t\t\tvar paths = this._paths,\r\n\t\t\t\t\tparsedPaths = this._parsedPaths,\r\n\t\t\t\t\tobjects = this._objects,\r\n\t\t\t\t\tnObjects = objects.length,\r\n\t\t\t\t\tnCachedObjects = this.nCachedObjects_,\r\n\t\t\t\t\tbindingsForPath = new Array(nObjects);\r\n\t\t\tindex = bindings.length;\r\n\t\t\tindicesByPath[path] = index;\r\n\t\t\tpaths.push(path);\r\n\t\t\tparsedPaths.push(parsedPath);\r\n\t\t\tbindings.push(bindingsForPath);\r\n\r\n\t\t\tfor (var i = nCachedObjects, n = objects.length; i !== n; ++i) {\r\n\t\t\t\tvar object = objects[i];\r\n\t\t\t\tbindingsForPath[i] = new PropertyBinding(object, path, parsedPath);\r\n\t\t\t}\r\n\r\n\t\t\treturn bindingsForPath;\r\n\t\t},\r\n\t\tunsubscribe_: function unsubscribe_(path) {\r\n\t\t\t// tells the group to forget about a property path and no longer\r\n\t\t\t// update the array previously obtained with 'subscribe_'\r\n\t\t\tvar indicesByPath = this._bindingsIndicesByPath,\r\n\t\t\t\t\tindex = indicesByPath[path];\r\n\r\n\t\t\tif (index !== undefined) {\r\n\t\t\t\tvar paths = this._paths,\r\n\t\t\t\t\t\tparsedPaths = this._parsedPaths,\r\n\t\t\t\t\t\tbindings = this._bindings,\r\n\t\t\t\t\t\tlastBindingsIndex = bindings.length - 1,\r\n\t\t\t\t\t\tlastBindings = bindings[lastBindingsIndex],\r\n\t\t\t\t\t\tlastBindingsPath = path[lastBindingsIndex];\r\n\t\t\t\tindicesByPath[lastBindingsPath] = index;\r\n\t\t\t\tbindings[index] = lastBindings;\r\n\t\t\t\tbindings.pop();\r\n\t\t\t\tparsedPaths[index] = parsedPaths[lastBindingsIndex];\r\n\t\t\t\tparsedPaths.pop();\r\n\t\t\t\tpaths[index] = paths[lastBindingsIndex];\r\n\t\t\t\tpaths.pop();\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\tvar AnimationAction = /*#__PURE__*/function () {\r\n\t\tfunction AnimationAction(mixer, clip, localRoot, blendMode) {\r\n\t\t\tif (localRoot === void 0) {\r\n\t\t\t\tlocalRoot = null;\r\n\t\t\t}\r\n\r\n\t\t\tif (blendMode === void 0) {\r\n\t\t\t\tblendMode = clip.blendMode;\r\n\t\t\t}\r\n\r\n\t\t\tthis._mixer = mixer;\r\n\t\t\tthis._clip = clip;\r\n\t\t\tthis._localRoot = localRoot;\r\n\t\t\tthis.blendMode = blendMode;\r\n\t\t\tvar tracks = clip.tracks,\r\n\t\t\t\t\tnTracks = tracks.length,\r\n\t\t\t\t\tinterpolants = new Array(nTracks);\r\n\t\t\tvar interpolantSettings = {\r\n\t\t\t\tendingStart: ZeroCurvatureEnding,\r\n\t\t\t\tendingEnd: ZeroCurvatureEnding\r\n\t\t\t};\r\n\r\n\t\t\tfor (var i = 0; i !== nTracks; ++i) {\r\n\t\t\t\tvar interpolant = tracks[i].createInterpolant(null);\r\n\t\t\t\tinterpolants[i] = interpolant;\r\n\t\t\t\tinterpolant.settings = interpolantSettings;\r\n\t\t\t}\r\n\r\n\t\t\tthis._interpolantSettings = interpolantSettings;\r\n\t\t\tthis._interpolants = interpolants; // bound by the mixer\r\n\t\t\t// inside: PropertyMixer (managed by the mixer)\r\n\r\n\t\t\tthis._propertyBindings = new Array(nTracks);\r\n\t\t\tthis._cacheIndex = null; // for the memory manager\r\n\r\n\t\t\tthis._byClipCacheIndex = null; // for the memory manager\r\n\r\n\t\t\tthis._timeScaleInterpolant = null;\r\n\t\t\tthis._weightInterpolant = null;\r\n\t\t\tthis.loop = LoopRepeat;\r\n\t\t\tthis._loopCount = -1; // global mixer time when the action is to be started\r\n\t\t\t// it's set back to 'null' upon start of the action\r\n\r\n\t\t\tthis._startTime = null; // scaled local time of the action\r\n\t\t\t// gets clamped or wrapped to 0..clip.duration according to loop\r\n\r\n\t\t\tthis.time = 0;\r\n\t\t\tthis.timeScale = 1;\r\n\t\t\tthis._effectiveTimeScale = 1;\r\n\t\t\tthis.weight = 1;\r\n\t\t\tthis._effectiveWeight = 1;\r\n\t\t\tthis.repetitions = Infinity; // no. of repetitions when looping\r\n\r\n\t\t\tthis.paused = false; // true -> zero effective time scale\r\n\r\n\t\t\tthis.enabled = true; // false -> zero effective weight\r\n\r\n\t\t\tthis.clampWhenFinished = false; // keep feeding the last frame?\r\n\r\n\t\t\tthis.zeroSlopeAtStart = true; // for smooth interpolation w/o separate\r\n\r\n\t\t\tthis.zeroSlopeAtEnd = true; // clips for start, loop and end\r\n\t\t} // State & Scheduling\r\n\r\n\r\n\t\tvar _proto = AnimationAction.prototype;\r\n\r\n\t\t_proto.play = function play() {\r\n\t\t\tthis._mixer._activateAction(this);\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.stop = function stop() {\r\n\t\t\tthis._mixer._deactivateAction(this);\r\n\r\n\t\t\treturn this.reset();\r\n\t\t};\r\n\r\n\t\t_proto.reset = function reset() {\r\n\t\t\tthis.paused = false;\r\n\t\t\tthis.enabled = true;\r\n\t\t\tthis.time = 0; // restart clip\r\n\r\n\t\t\tthis._loopCount = -1; // forget previous loops\r\n\r\n\t\t\tthis._startTime = null; // forget scheduling\r\n\r\n\t\t\treturn this.stopFading().stopWarping();\r\n\t\t};\r\n\r\n\t\t_proto.isRunning = function isRunning() {\r\n\t\t\treturn this.enabled && !this.paused && this.timeScale !== 0 && this._startTime === null && this._mixer._isActiveAction(this);\r\n\t\t} // return true when play has been called\r\n\t\t;\r\n\r\n\t\t_proto.isScheduled = function isScheduled() {\r\n\t\t\treturn this._mixer._isActiveAction(this);\r\n\t\t};\r\n\r\n\t\t_proto.startAt = function startAt(time) {\r\n\t\t\tthis._startTime = time;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setLoop = function setLoop(mode, repetitions) {\r\n\t\t\tthis.loop = mode;\r\n\t\t\tthis.repetitions = repetitions;\r\n\t\t\treturn this;\r\n\t\t} // Weight\r\n\t\t// set the weight stopping any scheduled fading\r\n\t\t// although .enabled = false yields an effective weight of zero, this\r\n\t\t// method does *not* change .enabled, because it would be confusing\r\n\t\t;\r\n\r\n\t\t_proto.setEffectiveWeight = function setEffectiveWeight(weight) {\r\n\t\t\tthis.weight = weight; // note: same logic as when updated at runtime\r\n\r\n\t\t\tthis._effectiveWeight = this.enabled ? weight : 0;\r\n\t\t\treturn this.stopFading();\r\n\t\t} // return the weight considering fading and .enabled\r\n\t\t;\r\n\r\n\t\t_proto.getEffectiveWeight = function getEffectiveWeight() {\r\n\t\t\treturn this._effectiveWeight;\r\n\t\t};\r\n\r\n\t\t_proto.fadeIn = function fadeIn(duration) {\r\n\t\t\treturn this._scheduleFading(duration, 0, 1);\r\n\t\t};\r\n\r\n\t\t_proto.fadeOut = function fadeOut(duration) {\r\n\t\t\treturn this._scheduleFading(duration, 1, 0);\r\n\t\t};\r\n\r\n\t\t_proto.crossFadeFrom = function crossFadeFrom(fadeOutAction, duration, warp) {\r\n\t\t\tfadeOutAction.fadeOut(duration);\r\n\t\t\tthis.fadeIn(duration);\r\n\r\n\t\t\tif (warp) {\r\n\t\t\t\tvar fadeInDuration = this._clip.duration,\r\n\t\t\t\t\t\tfadeOutDuration = fadeOutAction._clip.duration,\r\n\t\t\t\t\t\tstartEndRatio = fadeOutDuration / fadeInDuration,\r\n\t\t\t\t\t\tendStartRatio = fadeInDuration / fadeOutDuration;\r\n\t\t\t\tfadeOutAction.warp(1.0, startEndRatio, duration);\r\n\t\t\t\tthis.warp(endStartRatio, 1.0, duration);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.crossFadeTo = function crossFadeTo(fadeInAction, duration, warp) {\r\n\t\t\treturn fadeInAction.crossFadeFrom(this, duration, warp);\r\n\t\t};\r\n\r\n\t\t_proto.stopFading = function stopFading() {\r\n\t\t\tvar weightInterpolant = this._weightInterpolant;\r\n\r\n\t\t\tif (weightInterpolant !== null) {\r\n\t\t\t\tthis._weightInterpolant = null;\r\n\r\n\t\t\t\tthis._mixer._takeBackControlInterpolant(weightInterpolant);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t} // Time Scale Control\r\n\t\t// set the time scale stopping any scheduled warping\r\n\t\t// although .paused = true yields an effective time scale of zero, this\r\n\t\t// method does *not* change .paused, because it would be confusing\r\n\t\t;\r\n\r\n\t\t_proto.setEffectiveTimeScale = function setEffectiveTimeScale(timeScale) {\r\n\t\t\tthis.timeScale = timeScale;\r\n\t\t\tthis._effectiveTimeScale = this.paused ? 0 : timeScale;\r\n\t\t\treturn this.stopWarping();\r\n\t\t} // return the time scale considering warping and .paused\r\n\t\t;\r\n\r\n\t\t_proto.getEffectiveTimeScale = function getEffectiveTimeScale() {\r\n\t\t\treturn this._effectiveTimeScale;\r\n\t\t};\r\n\r\n\t\t_proto.setDuration = function setDuration(duration) {\r\n\t\t\tthis.timeScale = this._clip.duration / duration;\r\n\t\t\treturn this.stopWarping();\r\n\t\t};\r\n\r\n\t\t_proto.syncWith = function syncWith(action) {\r\n\t\t\tthis.time = action.time;\r\n\t\t\tthis.timeScale = action.timeScale;\r\n\t\t\treturn this.stopWarping();\r\n\t\t};\r\n\r\n\t\t_proto.halt = function halt(duration) {\r\n\t\t\treturn this.warp(this._effectiveTimeScale, 0, duration);\r\n\t\t};\r\n\r\n\t\t_proto.warp = function warp(startTimeScale, endTimeScale, duration) {\r\n\t\t\tvar mixer = this._mixer,\r\n\t\t\t\t\tnow = mixer.time,\r\n\t\t\t\t\ttimeScale = this.timeScale;\r\n\t\t\tvar interpolant = this._timeScaleInterpolant;\r\n\r\n\t\t\tif (interpolant === null) {\r\n\t\t\t\tinterpolant = mixer._lendControlInterpolant();\r\n\t\t\t\tthis._timeScaleInterpolant = interpolant;\r\n\t\t\t}\r\n\r\n\t\t\tvar times = interpolant.parameterPositions,\r\n\t\t\t\t\tvalues = interpolant.sampleValues;\r\n\t\t\ttimes[0] = now;\r\n\t\t\ttimes[1] = now + duration;\r\n\t\t\tvalues[0] = startTimeScale / timeScale;\r\n\t\t\tvalues[1] = endTimeScale / timeScale;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.stopWarping = function stopWarping() {\r\n\t\t\tvar timeScaleInterpolant = this._timeScaleInterpolant;\r\n\r\n\t\t\tif (timeScaleInterpolant !== null) {\r\n\t\t\t\tthis._timeScaleInterpolant = null;\r\n\r\n\t\t\t\tthis._mixer._takeBackControlInterpolant(timeScaleInterpolant);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t} // Object Accessors\r\n\t\t;\r\n\r\n\t\t_proto.getMixer = function getMixer() {\r\n\t\t\treturn this._mixer;\r\n\t\t};\r\n\r\n\t\t_proto.getClip = function getClip() {\r\n\t\t\treturn this._clip;\r\n\t\t};\r\n\r\n\t\t_proto.getRoot = function getRoot() {\r\n\t\t\treturn this._localRoot || this._mixer._root;\r\n\t\t} // Interna\r\n\t\t;\r\n\r\n\t\t_proto._update = function _update(time, deltaTime, timeDirection, accuIndex) {\r\n\t\t\t// called by the mixer\r\n\t\t\tif (!this.enabled) {\r\n\t\t\t\t// call ._updateWeight() to update ._effectiveWeight\r\n\t\t\t\tthis._updateWeight(time);\r\n\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar startTime = this._startTime;\r\n\r\n\t\t\tif (startTime !== null) {\r\n\t\t\t\t// check for scheduled start of action\r\n\t\t\t\tvar timeRunning = (time - startTime) * timeDirection;\r\n\r\n\t\t\t\tif (timeRunning < 0 || timeDirection === 0) {\r\n\t\t\t\t\treturn; // yet to come / don't decide when delta = 0\r\n\t\t\t\t} // start\r\n\r\n\r\n\t\t\t\tthis._startTime = null; // unschedule\r\n\r\n\t\t\t\tdeltaTime = timeDirection * timeRunning;\r\n\t\t\t} // apply time scale and advance time\r\n\r\n\r\n\t\t\tdeltaTime *= this._updateTimeScale(time);\r\n\r\n\t\t\tvar clipTime = this._updateTime(deltaTime); // note: _updateTime may disable the action resulting in\r\n\t\t\t// an effective weight of 0\r\n\r\n\r\n\t\t\tvar weight = this._updateWeight(time);\r\n\r\n\t\t\tif (weight > 0) {\r\n\t\t\t\tvar _interpolants = this._interpolants;\r\n\t\t\t\tvar propertyMixers = this._propertyBindings;\r\n\r\n\t\t\t\tswitch (this.blendMode) {\r\n\t\t\t\t\tcase AdditiveAnimationBlendMode:\r\n\t\t\t\t\t\tfor (var j = 0, m = _interpolants.length; j !== m; ++j) {\r\n\t\t\t\t\t\t\t_interpolants[j].evaluate(clipTime);\r\n\r\n\t\t\t\t\t\t\tpropertyMixers[j].accumulateAdditive(weight);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase NormalAnimationBlendMode:\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tfor (var _j = 0, _m = _interpolants.length; _j !== _m; ++_j) {\r\n\t\t\t\t\t\t\t_interpolants[_j].evaluate(clipTime);\r\n\r\n\t\t\t\t\t\t\tpropertyMixers[_j].accumulate(accuIndex, weight);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t_proto._updateWeight = function _updateWeight(time) {\r\n\t\t\tvar weight = 0;\r\n\r\n\t\t\tif (this.enabled) {\r\n\t\t\t\tweight = this.weight;\r\n\t\t\t\tvar interpolant = this._weightInterpolant;\r\n\r\n\t\t\t\tif (interpolant !== null) {\r\n\t\t\t\t\tvar interpolantValue = interpolant.evaluate(time)[0];\r\n\t\t\t\t\tweight *= interpolantValue;\r\n\r\n\t\t\t\t\tif (time > interpolant.parameterPositions[1]) {\r\n\t\t\t\t\t\tthis.stopFading();\r\n\r\n\t\t\t\t\t\tif (interpolantValue === 0) {\r\n\t\t\t\t\t\t\t// faded out, disable\r\n\t\t\t\t\t\t\tthis.enabled = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis._effectiveWeight = weight;\r\n\t\t\treturn weight;\r\n\t\t};\r\n\r\n\t\t_proto._updateTimeScale = function _updateTimeScale(time) {\r\n\t\t\tvar timeScale = 0;\r\n\r\n\t\t\tif (!this.paused) {\r\n\t\t\t\ttimeScale = this.timeScale;\r\n\t\t\t\tvar interpolant = this._timeScaleInterpolant;\r\n\r\n\t\t\t\tif (interpolant !== null) {\r\n\t\t\t\t\tvar interpolantValue = interpolant.evaluate(time)[0];\r\n\t\t\t\t\ttimeScale *= interpolantValue;\r\n\r\n\t\t\t\t\tif (time > interpolant.parameterPositions[1]) {\r\n\t\t\t\t\t\tthis.stopWarping();\r\n\r\n\t\t\t\t\t\tif (timeScale === 0) {\r\n\t\t\t\t\t\t\t// motion has halted, pause\r\n\t\t\t\t\t\t\tthis.paused = true;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// warp done - apply final time scale\r\n\t\t\t\t\t\t\tthis.timeScale = timeScale;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis._effectiveTimeScale = timeScale;\r\n\t\t\treturn timeScale;\r\n\t\t};\r\n\r\n\t\t_proto._updateTime = function _updateTime(deltaTime) {\r\n\t\t\tvar duration = this._clip.duration;\r\n\t\t\tvar loop = this.loop;\r\n\t\t\tvar time = this.time + deltaTime;\r\n\t\t\tvar loopCount = this._loopCount;\r\n\t\t\tvar pingPong = loop === LoopPingPong;\r\n\r\n\t\t\tif (deltaTime === 0) {\r\n\t\t\t\tif (loopCount === -1) return time;\r\n\t\t\t\treturn pingPong && (loopCount & 1) === 1 ? duration - time : time;\r\n\t\t\t}\r\n\r\n\t\t\tif (loop === LoopOnce) {\r\n\t\t\t\tif (loopCount === -1) {\r\n\t\t\t\t\t// just started\r\n\t\t\t\t\tthis._loopCount = 0;\r\n\r\n\t\t\t\t\tthis._setEndings(true, true, false);\r\n\t\t\t\t}\r\n\r\n\t\t\t\thandle_stop: {\r\n\t\t\t\t\tif (time >= duration) {\r\n\t\t\t\t\t\ttime = duration;\r\n\t\t\t\t\t} else if (time < 0) {\r\n\t\t\t\t\t\ttime = 0;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.time = time;\r\n\t\t\t\t\t\tbreak handle_stop;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (this.clampWhenFinished) this.paused = true;else this.enabled = false;\r\n\t\t\t\t\tthis.time = time;\r\n\r\n\t\t\t\t\tthis._mixer.dispatchEvent({\r\n\t\t\t\t\t\ttype: 'finished',\r\n\t\t\t\t\t\taction: this,\r\n\t\t\t\t\t\tdirection: deltaTime < 0 ? -1 : 1\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// repetitive Repeat or PingPong\r\n\t\t\t\tif (loopCount === -1) {\r\n\t\t\t\t\t// just started\r\n\t\t\t\t\tif (deltaTime >= 0) {\r\n\t\t\t\t\t\tloopCount = 0;\r\n\r\n\t\t\t\t\t\tthis._setEndings(true, this.repetitions === 0, pingPong);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// when looping in reverse direction, the initial\r\n\t\t\t\t\t\t// transition through zero counts as a repetition,\r\n\t\t\t\t\t\t// so leave loopCount at -1\r\n\t\t\t\t\t\tthis._setEndings(this.repetitions === 0, true, pingPong);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (time >= duration || time < 0) {\r\n\t\t\t\t\t// wrap around\r\n\t\t\t\t\tvar loopDelta = Math.floor(time / duration); // signed\r\n\r\n\t\t\t\t\ttime -= duration * loopDelta;\r\n\t\t\t\t\tloopCount += Math.abs(loopDelta);\r\n\t\t\t\t\tvar pending = this.repetitions - loopCount;\r\n\r\n\t\t\t\t\tif (pending <= 0) {\r\n\t\t\t\t\t\t// have to stop (switch state, clamp time, fire event)\r\n\t\t\t\t\t\tif (this.clampWhenFinished) this.paused = true;else this.enabled = false;\r\n\t\t\t\t\t\ttime = deltaTime > 0 ? duration : 0;\r\n\t\t\t\t\t\tthis.time = time;\r\n\r\n\t\t\t\t\t\tthis._mixer.dispatchEvent({\r\n\t\t\t\t\t\t\ttype: 'finished',\r\n\t\t\t\t\t\t\taction: this,\r\n\t\t\t\t\t\t\tdirection: deltaTime > 0 ? 1 : -1\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// keep running\r\n\t\t\t\t\t\tif (pending === 1) {\r\n\t\t\t\t\t\t\t// entering the last round\r\n\t\t\t\t\t\t\tvar atStart = deltaTime < 0;\r\n\r\n\t\t\t\t\t\t\tthis._setEndings(atStart, !atStart, pingPong);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tthis._setEndings(false, false, pingPong);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthis._loopCount = loopCount;\r\n\t\t\t\t\t\tthis.time = time;\r\n\r\n\t\t\t\t\t\tthis._mixer.dispatchEvent({\r\n\t\t\t\t\t\t\ttype: 'loop',\r\n\t\t\t\t\t\t\taction: this,\r\n\t\t\t\t\t\t\tloopDelta: loopDelta\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.time = time;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (pingPong && (loopCount & 1) === 1) {\r\n\t\t\t\t\t// invert time for the \"pong round\"\r\n\t\t\t\t\treturn duration - time;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn time;\r\n\t\t};\r\n\r\n\t\t_proto._setEndings = function _setEndings(atStart, atEnd, pingPong) {\r\n\t\t\tvar settings = this._interpolantSettings;\r\n\r\n\t\t\tif (pingPong) {\r\n\t\t\t\tsettings.endingStart = ZeroSlopeEnding;\r\n\t\t\t\tsettings.endingEnd = ZeroSlopeEnding;\r\n\t\t\t} else {\r\n\t\t\t\t// assuming for LoopOnce atStart == atEnd == true\r\n\t\t\t\tif (atStart) {\r\n\t\t\t\t\tsettings.endingStart = this.zeroSlopeAtStart ? ZeroSlopeEnding : ZeroCurvatureEnding;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tsettings.endingStart = WrapAroundEnding;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (atEnd) {\r\n\t\t\t\t\tsettings.endingEnd = this.zeroSlopeAtEnd ? ZeroSlopeEnding : ZeroCurvatureEnding;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tsettings.endingEnd = WrapAroundEnding;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t_proto._scheduleFading = function _scheduleFading(duration, weightNow, weightThen) {\r\n\t\t\tvar mixer = this._mixer,\r\n\t\t\t\t\tnow = mixer.time;\r\n\t\t\tvar interpolant = this._weightInterpolant;\r\n\r\n\t\t\tif (interpolant === null) {\r\n\t\t\t\tinterpolant = mixer._lendControlInterpolant();\r\n\t\t\t\tthis._weightInterpolant = interpolant;\r\n\t\t\t}\r\n\r\n\t\t\tvar times = interpolant.parameterPositions,\r\n\t\t\t\t\tvalues = interpolant.sampleValues;\r\n\t\t\ttimes[0] = now;\r\n\t\t\tvalues[0] = weightNow;\r\n\t\t\ttimes[1] = now + duration;\r\n\t\t\tvalues[1] = weightThen;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\treturn AnimationAction;\r\n\t}();\r\n\r\n\tfunction AnimationMixer(root) {\r\n\t\tthis._root = root;\r\n\r\n\t\tthis._initMemoryManager();\r\n\r\n\t\tthis._accuIndex = 0;\r\n\t\tthis.time = 0;\r\n\t\tthis.timeScale = 1.0;\r\n\t}\r\n\r\n\tAnimationMixer.prototype = Object.assign(Object.create(EventDispatcher.prototype), {\r\n\t\tconstructor: AnimationMixer,\r\n\t\t_bindAction: function _bindAction(action, prototypeAction) {\r\n\t\t\tvar root = action._localRoot || this._root,\r\n\t\t\t\t\ttracks = action._clip.tracks,\r\n\t\t\t\t\tnTracks = tracks.length,\r\n\t\t\t\t\tbindings = action._propertyBindings,\r\n\t\t\t\t\tinterpolants = action._interpolants,\r\n\t\t\t\t\trootUuid = root.uuid,\r\n\t\t\t\t\tbindingsByRoot = this._bindingsByRootAndName;\r\n\t\t\tvar bindingsByName = bindingsByRoot[rootUuid];\r\n\r\n\t\t\tif (bindingsByName === undefined) {\r\n\t\t\t\tbindingsByName = {};\r\n\t\t\t\tbindingsByRoot[rootUuid] = bindingsByName;\r\n\t\t\t}\r\n\r\n\t\t\tfor (var i = 0; i !== nTracks; ++i) {\r\n\t\t\t\tvar track = tracks[i],\r\n\t\t\t\t\t\ttrackName = track.name;\r\n\t\t\t\tvar binding = bindingsByName[trackName];\r\n\r\n\t\t\t\tif (binding !== undefined) {\r\n\t\t\t\t\tbindings[i] = binding;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tbinding = bindings[i];\r\n\r\n\t\t\t\t\tif (binding !== undefined) {\r\n\t\t\t\t\t\t// existing binding, make sure the cache knows\r\n\t\t\t\t\t\tif (binding._cacheIndex === null) {\r\n\t\t\t\t\t\t\t++binding.referenceCount;\r\n\r\n\t\t\t\t\t\t\tthis._addInactiveBinding(binding, rootUuid, trackName);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar path = prototypeAction && prototypeAction._propertyBindings[i].binding.parsedPath;\r\n\t\t\t\t\tbinding = new PropertyMixer(PropertyBinding.create(root, trackName, path), track.ValueTypeName, track.getValueSize());\r\n\t\t\t\t\t++binding.referenceCount;\r\n\r\n\t\t\t\t\tthis._addInactiveBinding(binding, rootUuid, trackName);\r\n\r\n\t\t\t\t\tbindings[i] = binding;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tinterpolants[i].resultBuffer = binding.buffer;\r\n\t\t\t}\r\n\t\t},\r\n\t\t_activateAction: function _activateAction(action) {\r\n\t\t\tif (!this._isActiveAction(action)) {\r\n\t\t\t\tif (action._cacheIndex === null) {\r\n\t\t\t\t\t// this action has been forgotten by the cache, but the user\r\n\t\t\t\t\t// appears to be still using it -> rebind\r\n\t\t\t\t\tvar rootUuid = (action._localRoot || this._root).uuid,\r\n\t\t\t\t\t\t\tclipUuid = action._clip.uuid,\r\n\t\t\t\t\t\t\tactionsForClip = this._actionsByClip[clipUuid];\r\n\r\n\t\t\t\t\tthis._bindAction(action, actionsForClip && actionsForClip.knownActions[0]);\r\n\r\n\t\t\t\t\tthis._addInactiveAction(action, clipUuid, rootUuid);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar bindings = action._propertyBindings; // increment reference counts / sort out state\r\n\r\n\t\t\t\tfor (var i = 0, n = bindings.length; i !== n; ++i) {\r\n\t\t\t\t\tvar binding = bindings[i];\r\n\r\n\t\t\t\t\tif (binding.useCount++ === 0) {\r\n\t\t\t\t\t\tthis._lendBinding(binding);\r\n\r\n\t\t\t\t\t\tbinding.saveOriginalState();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._lendAction(action);\r\n\t\t\t}\r\n\t\t},\r\n\t\t_deactivateAction: function _deactivateAction(action) {\r\n\t\t\tif (this._isActiveAction(action)) {\r\n\t\t\t\tvar bindings = action._propertyBindings; // decrement reference counts / sort out state\r\n\r\n\t\t\t\tfor (var i = 0, n = bindings.length; i !== n; ++i) {\r\n\t\t\t\t\tvar binding = bindings[i];\r\n\r\n\t\t\t\t\tif (--binding.useCount === 0) {\r\n\t\t\t\t\t\tbinding.restoreOriginalState();\r\n\r\n\t\t\t\t\t\tthis._takeBackBinding(binding);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._takeBackAction(action);\r\n\t\t\t}\r\n\t\t},\r\n\t\t// Memory manager\r\n\t\t_initMemoryManager: function _initMemoryManager() {\r\n\t\t\tthis._actions = []; // 'nActiveActions' followed by inactive ones\r\n\r\n\t\t\tthis._nActiveActions = 0;\r\n\t\t\tthis._actionsByClip = {}; // inside:\r\n\t\t\t// {\r\n\t\t\t// \tknownActions: Array< AnimationAction > - used as prototypes\r\n\t\t\t// \tactionByRoot: AnimationAction - lookup\r\n\t\t\t// }\r\n\r\n\t\t\tthis._bindings = []; // 'nActiveBindings' followed by inactive ones\r\n\r\n\t\t\tthis._nActiveBindings = 0;\r\n\t\t\tthis._bindingsByRootAndName = {}; // inside: Map< name, PropertyMixer >\r\n\r\n\t\t\tthis._controlInterpolants = []; // same game as above\r\n\r\n\t\t\tthis._nActiveControlInterpolants = 0;\r\n\t\t\tvar scope = this;\r\n\t\t\tthis.stats = {\r\n\t\t\t\tactions: {\r\n\t\t\t\t\tget total() {\r\n\t\t\t\t\t\treturn scope._actions.length;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tget inUse() {\r\n\t\t\t\t\t\treturn scope._nActiveActions;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t},\r\n\t\t\t\tbindings: {\r\n\t\t\t\t\tget total() {\r\n\t\t\t\t\t\treturn scope._bindings.length;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tget inUse() {\r\n\t\t\t\t\t\treturn scope._nActiveBindings;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t},\r\n\t\t\t\tcontrolInterpolants: {\r\n\t\t\t\t\tget total() {\r\n\t\t\t\t\t\treturn scope._controlInterpolants.length;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tget inUse() {\r\n\t\t\t\t\t\treturn scope._nActiveControlInterpolants;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t},\r\n\t\t// Memory management for AnimationAction objects\r\n\t\t_isActiveAction: function _isActiveAction(action) {\r\n\t\t\tvar index = action._cacheIndex;\r\n\t\t\treturn index !== null && index < this._nActiveActions;\r\n\t\t},\r\n\t\t_addInactiveAction: function _addInactiveAction(action, clipUuid, rootUuid) {\r\n\t\t\tvar actions = this._actions,\r\n\t\t\t\t\tactionsByClip = this._actionsByClip;\r\n\t\t\tvar actionsForClip = actionsByClip[clipUuid];\r\n\r\n\t\t\tif (actionsForClip === undefined) {\r\n\t\t\t\tactionsForClip = {\r\n\t\t\t\t\tknownActions: [action],\r\n\t\t\t\t\tactionByRoot: {}\r\n\t\t\t\t};\r\n\t\t\t\taction._byClipCacheIndex = 0;\r\n\t\t\t\tactionsByClip[clipUuid] = actionsForClip;\r\n\t\t\t} else {\r\n\t\t\t\tvar knownActions = actionsForClip.knownActions;\r\n\t\t\t\taction._byClipCacheIndex = knownActions.length;\r\n\t\t\t\tknownActions.push(action);\r\n\t\t\t}\r\n\r\n\t\t\taction._cacheIndex = actions.length;\r\n\t\t\tactions.push(action);\r\n\t\t\tactionsForClip.actionByRoot[rootUuid] = action;\r\n\t\t},\r\n\t\t_removeInactiveAction: function _removeInactiveAction(action) {\r\n\t\t\tvar actions = this._actions,\r\n\t\t\t\t\tlastInactiveAction = actions[actions.length - 1],\r\n\t\t\t\t\tcacheIndex = action._cacheIndex;\r\n\t\t\tlastInactiveAction._cacheIndex = cacheIndex;\r\n\t\t\tactions[cacheIndex] = lastInactiveAction;\r\n\t\t\tactions.pop();\r\n\t\t\taction._cacheIndex = null;\r\n\t\t\tvar clipUuid = action._clip.uuid,\r\n\t\t\t\t\tactionsByClip = this._actionsByClip,\r\n\t\t\t\t\tactionsForClip = actionsByClip[clipUuid],\r\n\t\t\t\t\tknownActionsForClip = actionsForClip.knownActions,\r\n\t\t\t\t\tlastKnownAction = knownActionsForClip[knownActionsForClip.length - 1],\r\n\t\t\t\t\tbyClipCacheIndex = action._byClipCacheIndex;\r\n\t\t\tlastKnownAction._byClipCacheIndex = byClipCacheIndex;\r\n\t\t\tknownActionsForClip[byClipCacheIndex] = lastKnownAction;\r\n\t\t\tknownActionsForClip.pop();\r\n\t\t\taction._byClipCacheIndex = null;\r\n\t\t\tvar actionByRoot = actionsForClip.actionByRoot,\r\n\t\t\t\t\trootUuid = (action._localRoot || this._root).uuid;\r\n\t\t\tdelete actionByRoot[rootUuid];\r\n\r\n\t\t\tif (knownActionsForClip.length === 0) {\r\n\t\t\t\tdelete actionsByClip[clipUuid];\r\n\t\t\t}\r\n\r\n\t\t\tthis._removeInactiveBindingsForAction(action);\r\n\t\t},\r\n\t\t_removeInactiveBindingsForAction: function _removeInactiveBindingsForAction(action) {\r\n\t\t\tvar bindings = action._propertyBindings;\r\n\r\n\t\t\tfor (var i = 0, n = bindings.length; i !== n; ++i) {\r\n\t\t\t\tvar binding = bindings[i];\r\n\r\n\t\t\t\tif (--binding.referenceCount === 0) {\r\n\t\t\t\t\tthis._removeInactiveBinding(binding);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\t_lendAction: function _lendAction(action) {\r\n\t\t\t// [ active actions |\tinactive actions\t]\r\n\t\t\t// [\tactive actions >| inactive actions ]\r\n\t\t\t//\t\t\t\t\t\t\t\t s\t\t\t\ta\r\n\t\t\t//\t\t\t\t\t\t\t\t\t<-swap->\r\n\t\t\t//\t\t\t\t\t\t\t\t a\t\t\t\ts\r\n\t\t\tvar actions = this._actions,\r\n\t\t\t\t\tprevIndex = action._cacheIndex,\r\n\t\t\t\t\tlastActiveIndex = this._nActiveActions++,\r\n\t\t\t\t\tfirstInactiveAction = actions[lastActiveIndex];\r\n\t\t\taction._cacheIndex = lastActiveIndex;\r\n\t\t\tactions[lastActiveIndex] = action;\r\n\t\t\tfirstInactiveAction._cacheIndex = prevIndex;\r\n\t\t\tactions[prevIndex] = firstInactiveAction;\r\n\t\t},\r\n\t\t_takeBackAction: function _takeBackAction(action) {\r\n\t\t\t// [\tactive actions\t| inactive actions ]\r\n\t\t\t// [ active actions |< inactive actions\t]\r\n\t\t\t//\t\t\t\ta\t\t\t\ts\r\n\t\t\t//\t\t\t\t <-swap->\r\n\t\t\t//\t\t\t\ts\t\t\t\ta\r\n\t\t\tvar actions = this._actions,\r\n\t\t\t\t\tprevIndex = action._cacheIndex,\r\n\t\t\t\t\tfirstInactiveIndex = --this._nActiveActions,\r\n\t\t\t\t\tlastActiveAction = actions[firstInactiveIndex];\r\n\t\t\taction._cacheIndex = firstInactiveIndex;\r\n\t\t\tactions[firstInactiveIndex] = action;\r\n\t\t\tlastActiveAction._cacheIndex = prevIndex;\r\n\t\t\tactions[prevIndex] = lastActiveAction;\r\n\t\t},\r\n\t\t// Memory management for PropertyMixer objects\r\n\t\t_addInactiveBinding: function _addInactiveBinding(binding, rootUuid, trackName) {\r\n\t\t\tvar bindingsByRoot = this._bindingsByRootAndName,\r\n\t\t\t\t\tbindings = this._bindings;\r\n\t\t\tvar bindingByName = bindingsByRoot[rootUuid];\r\n\r\n\t\t\tif (bindingByName === undefined) {\r\n\t\t\t\tbindingByName = {};\r\n\t\t\t\tbindingsByRoot[rootUuid] = bindingByName;\r\n\t\t\t}\r\n\r\n\t\t\tbindingByName[trackName] = binding;\r\n\t\t\tbinding._cacheIndex = bindings.length;\r\n\t\t\tbindings.push(binding);\r\n\t\t},\r\n\t\t_removeInactiveBinding: function _removeInactiveBinding(binding) {\r\n\t\t\tvar bindings = this._bindings,\r\n\t\t\t\t\tpropBinding = binding.binding,\r\n\t\t\t\t\trootUuid = propBinding.rootNode.uuid,\r\n\t\t\t\t\ttrackName = propBinding.path,\r\n\t\t\t\t\tbindingsByRoot = this._bindingsByRootAndName,\r\n\t\t\t\t\tbindingByName = bindingsByRoot[rootUuid],\r\n\t\t\t\t\tlastInactiveBinding = bindings[bindings.length - 1],\r\n\t\t\t\t\tcacheIndex = binding._cacheIndex;\r\n\t\t\tlastInactiveBinding._cacheIndex = cacheIndex;\r\n\t\t\tbindings[cacheIndex] = lastInactiveBinding;\r\n\t\t\tbindings.pop();\r\n\t\t\tdelete bindingByName[trackName];\r\n\r\n\t\t\tif (Object.keys(bindingByName).length === 0) {\r\n\t\t\t\tdelete bindingsByRoot[rootUuid];\r\n\t\t\t}\r\n\t\t},\r\n\t\t_lendBinding: function _lendBinding(binding) {\r\n\t\t\tvar bindings = this._bindings,\r\n\t\t\t\t\tprevIndex = binding._cacheIndex,\r\n\t\t\t\t\tlastActiveIndex = this._nActiveBindings++,\r\n\t\t\t\t\tfirstInactiveBinding = bindings[lastActiveIndex];\r\n\t\t\tbinding._cacheIndex = lastActiveIndex;\r\n\t\t\tbindings[lastActiveIndex] = binding;\r\n\t\t\tfirstInactiveBinding._cacheIndex = prevIndex;\r\n\t\t\tbindings[prevIndex] = firstInactiveBinding;\r\n\t\t},\r\n\t\t_takeBackBinding: function _takeBackBinding(binding) {\r\n\t\t\tvar bindings = this._bindings,\r\n\t\t\t\t\tprevIndex = binding._cacheIndex,\r\n\t\t\t\t\tfirstInactiveIndex = --this._nActiveBindings,\r\n\t\t\t\t\tlastActiveBinding = bindings[firstInactiveIndex];\r\n\t\t\tbinding._cacheIndex = firstInactiveIndex;\r\n\t\t\tbindings[firstInactiveIndex] = binding;\r\n\t\t\tlastActiveBinding._cacheIndex = prevIndex;\r\n\t\t\tbindings[prevIndex] = lastActiveBinding;\r\n\t\t},\r\n\t\t// Memory management of Interpolants for weight and time scale\r\n\t\t_lendControlInterpolant: function _lendControlInterpolant() {\r\n\t\t\tvar interpolants = this._controlInterpolants,\r\n\t\t\t\t\tlastActiveIndex = this._nActiveControlInterpolants++;\r\n\t\t\tvar interpolant = interpolants[lastActiveIndex];\r\n\r\n\t\t\tif (interpolant === undefined) {\r\n\t\t\t\tinterpolant = new LinearInterpolant(new Float32Array(2), new Float32Array(2), 1, this._controlInterpolantsResultBuffer);\r\n\t\t\t\tinterpolant.__cacheIndex = lastActiveIndex;\r\n\t\t\t\tinterpolants[lastActiveIndex] = interpolant;\r\n\t\t\t}\r\n\r\n\t\t\treturn interpolant;\r\n\t\t},\r\n\t\t_takeBackControlInterpolant: function _takeBackControlInterpolant(interpolant) {\r\n\t\t\tvar interpolants = this._controlInterpolants,\r\n\t\t\t\t\tprevIndex = interpolant.__cacheIndex,\r\n\t\t\t\t\tfirstInactiveIndex = --this._nActiveControlInterpolants,\r\n\t\t\t\t\tlastActiveInterpolant = interpolants[firstInactiveIndex];\r\n\t\t\tinterpolant.__cacheIndex = firstInactiveIndex;\r\n\t\t\tinterpolants[firstInactiveIndex] = interpolant;\r\n\t\t\tlastActiveInterpolant.__cacheIndex = prevIndex;\r\n\t\t\tinterpolants[prevIndex] = lastActiveInterpolant;\r\n\t\t},\r\n\t\t_controlInterpolantsResultBuffer: new Float32Array(1),\r\n\t\t// return an action for a clip optionally using a custom root target\r\n\t\t// object (this method allocates a lot of dynamic memory in case a\r\n\t\t// previously unknown clip/root combination is specified)\r\n\t\tclipAction: function clipAction(clip, optionalRoot, blendMode) {\r\n\t\t\tvar root = optionalRoot || this._root,\r\n\t\t\t\t\trootUuid = root.uuid;\r\n\t\t\tvar clipObject = typeof clip === 'string' ? AnimationClip.findByName(root, clip) : clip;\r\n\t\t\tvar clipUuid = clipObject !== null ? clipObject.uuid : clip;\r\n\t\t\tvar actionsForClip = this._actionsByClip[clipUuid];\r\n\t\t\tvar prototypeAction = null;\r\n\r\n\t\t\tif (blendMode === undefined) {\r\n\t\t\t\tif (clipObject !== null) {\r\n\t\t\t\t\tblendMode = clipObject.blendMode;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tblendMode = NormalAnimationBlendMode;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (actionsForClip !== undefined) {\r\n\t\t\t\tvar existingAction = actionsForClip.actionByRoot[rootUuid];\r\n\r\n\t\t\t\tif (existingAction !== undefined && existingAction.blendMode === blendMode) {\r\n\t\t\t\t\treturn existingAction;\r\n\t\t\t\t} // we know the clip, so we don't have to parse all\r\n\t\t\t\t// the bindings again but can just copy\r\n\r\n\r\n\t\t\t\tprototypeAction = actionsForClip.knownActions[0]; // also, take the clip from the prototype action\r\n\r\n\t\t\t\tif (clipObject === null) clipObject = prototypeAction._clip;\r\n\t\t\t} // clip must be known when specified via string\r\n\r\n\r\n\t\t\tif (clipObject === null) return null; // allocate all resources required to run it\r\n\r\n\t\t\tvar newAction = new AnimationAction(this, clipObject, optionalRoot, blendMode);\r\n\r\n\t\t\tthis._bindAction(newAction, prototypeAction); // and make the action known to the memory manager\r\n\r\n\r\n\t\t\tthis._addInactiveAction(newAction, clipUuid, rootUuid);\r\n\r\n\t\t\treturn newAction;\r\n\t\t},\r\n\t\t// get an existing action\r\n\t\texistingAction: function existingAction(clip, optionalRoot) {\r\n\t\t\tvar root = optionalRoot || this._root,\r\n\t\t\t\t\trootUuid = root.uuid,\r\n\t\t\t\t\tclipObject = typeof clip === 'string' ? AnimationClip.findByName(root, clip) : clip,\r\n\t\t\t\t\tclipUuid = clipObject ? clipObject.uuid : clip,\r\n\t\t\t\t\tactionsForClip = this._actionsByClip[clipUuid];\r\n\r\n\t\t\tif (actionsForClip !== undefined) {\r\n\t\t\t\treturn actionsForClip.actionByRoot[rootUuid] || null;\r\n\t\t\t}\r\n\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\t// deactivates all previously scheduled actions\r\n\t\tstopAllAction: function stopAllAction() {\r\n\t\t\tvar actions = this._actions,\r\n\t\t\t\t\tnActions = this._nActiveActions;\r\n\r\n\t\t\tfor (var i = nActions - 1; i >= 0; --i) {\r\n\t\t\t\tactions[i].stop();\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\t// advance the time and update apply the animation\r\n\t\tupdate: function update(deltaTime) {\r\n\t\t\tdeltaTime *= this.timeScale;\r\n\t\t\tvar actions = this._actions,\r\n\t\t\t\t\tnActions = this._nActiveActions,\r\n\t\t\t\t\ttime = this.time += deltaTime,\r\n\t\t\t\t\ttimeDirection = Math.sign(deltaTime),\r\n\t\t\t\t\taccuIndex = this._accuIndex ^= 1; // run active actions\r\n\r\n\t\t\tfor (var i = 0; i !== nActions; ++i) {\r\n\t\t\t\tvar action = actions[i];\r\n\r\n\t\t\t\taction._update(time, deltaTime, timeDirection, accuIndex);\r\n\t\t\t} // update scene graph\r\n\r\n\r\n\t\t\tvar bindings = this._bindings,\r\n\t\t\t\t\tnBindings = this._nActiveBindings;\r\n\r\n\t\t\tfor (var _i = 0; _i !== nBindings; ++_i) {\r\n\t\t\t\tbindings[_i].apply(accuIndex);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\t// Allows you to seek to a specific time in an animation.\r\n\t\tsetTime: function setTime(timeInSeconds) {\r\n\t\t\tthis.time = 0; // Zero out time attribute for AnimationMixer object;\r\n\r\n\t\t\tfor (var i = 0; i < this._actions.length; i++) {\r\n\t\t\t\tthis._actions[i].time = 0; // Zero out time attribute for all associated AnimationAction objects.\r\n\t\t\t}\r\n\r\n\t\t\treturn this.update(timeInSeconds); // Update used to set exact time. Returns \"this\" AnimationMixer object.\r\n\t\t},\r\n\t\t// return this mixer's root target object\r\n\t\tgetRoot: function getRoot() {\r\n\t\t\treturn this._root;\r\n\t\t},\r\n\t\t// free all resources specific to a particular clip\r\n\t\tuncacheClip: function uncacheClip(clip) {\r\n\t\t\tvar actions = this._actions,\r\n\t\t\t\t\tclipUuid = clip.uuid,\r\n\t\t\t\t\tactionsByClip = this._actionsByClip,\r\n\t\t\t\t\tactionsForClip = actionsByClip[clipUuid];\r\n\r\n\t\t\tif (actionsForClip !== undefined) {\r\n\t\t\t\t// note: just calling _removeInactiveAction would mess up the\r\n\t\t\t\t// iteration state and also require updating the state we can\r\n\t\t\t\t// just throw away\r\n\t\t\t\tvar actionsToRemove = actionsForClip.knownActions;\r\n\r\n\t\t\t\tfor (var i = 0, n = actionsToRemove.length; i !== n; ++i) {\r\n\t\t\t\t\tvar action = actionsToRemove[i];\r\n\r\n\t\t\t\t\tthis._deactivateAction(action);\r\n\r\n\t\t\t\t\tvar cacheIndex = action._cacheIndex,\r\n\t\t\t\t\t\t\tlastInactiveAction = actions[actions.length - 1];\r\n\t\t\t\t\taction._cacheIndex = null;\r\n\t\t\t\t\taction._byClipCacheIndex = null;\r\n\t\t\t\t\tlastInactiveAction._cacheIndex = cacheIndex;\r\n\t\t\t\t\tactions[cacheIndex] = lastInactiveAction;\r\n\t\t\t\t\tactions.pop();\r\n\r\n\t\t\t\t\tthis._removeInactiveBindingsForAction(action);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdelete actionsByClip[clipUuid];\r\n\t\t\t}\r\n\t\t},\r\n\t\t// free all resources specific to a particular root target object\r\n\t\tuncacheRoot: function uncacheRoot(root) {\r\n\t\t\tvar rootUuid = root.uuid,\r\n\t\t\t\t\tactionsByClip = this._actionsByClip;\r\n\r\n\t\t\tfor (var clipUuid in actionsByClip) {\r\n\t\t\t\tvar actionByRoot = actionsByClip[clipUuid].actionByRoot,\r\n\t\t\t\t\t\taction = actionByRoot[rootUuid];\r\n\r\n\t\t\t\tif (action !== undefined) {\r\n\t\t\t\t\tthis._deactivateAction(action);\r\n\r\n\t\t\t\t\tthis._removeInactiveAction(action);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar bindingsByRoot = this._bindingsByRootAndName,\r\n\t\t\t\t\tbindingByName = bindingsByRoot[rootUuid];\r\n\r\n\t\t\tif (bindingByName !== undefined) {\r\n\t\t\t\tfor (var trackName in bindingByName) {\r\n\t\t\t\t\tvar binding = bindingByName[trackName];\r\n\t\t\t\t\tbinding.restoreOriginalState();\r\n\r\n\t\t\t\t\tthis._removeInactiveBinding(binding);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\t// remove a targeted clip from the cache\r\n\t\tuncacheAction: function uncacheAction(clip, optionalRoot) {\r\n\t\t\tvar action = this.existingAction(clip, optionalRoot);\r\n\r\n\t\t\tif (action !== null) {\r\n\t\t\t\tthis._deactivateAction(action);\r\n\r\n\t\t\t\tthis._removeInactiveAction(action);\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\tvar Uniform = /*#__PURE__*/function () {\r\n\t\tfunction Uniform(value) {\r\n\t\t\tif (typeof value === 'string') {\r\n\t\t\t\tconsole.warn('THREE.Uniform: Type parameter is no longer needed.');\r\n\t\t\t\tvalue = arguments[1];\r\n\t\t\t}\r\n\r\n\t\t\tthis.value = value;\r\n\t\t}\r\n\r\n\t\tvar _proto = Uniform.prototype;\r\n\r\n\t\t_proto.clone = function clone() {\r\n\t\t\treturn new Uniform(this.value.clone === undefined ? this.value : this.value.clone());\r\n\t\t};\r\n\r\n\t\treturn Uniform;\r\n\t}();\r\n\r\n\tfunction InstancedInterleavedBuffer(array, stride, meshPerAttribute) {\r\n\t\tInterleavedBuffer.call(this, array, stride);\r\n\t\tthis.meshPerAttribute = meshPerAttribute || 1;\r\n\t}\r\n\r\n\tInstancedInterleavedBuffer.prototype = Object.assign(Object.create(InterleavedBuffer.prototype), {\r\n\t\tconstructor: InstancedInterleavedBuffer,\r\n\t\tisInstancedInterleavedBuffer: true,\r\n\t\tcopy: function copy(source) {\r\n\t\t\tInterleavedBuffer.prototype.copy.call(this, source);\r\n\t\t\tthis.meshPerAttribute = source.meshPerAttribute;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tclone: function clone(data) {\r\n\t\t\tvar ib = InterleavedBuffer.prototype.clone.call(this, data);\r\n\t\t\tib.meshPerAttribute = this.meshPerAttribute;\r\n\t\t\treturn ib;\r\n\t\t},\r\n\t\ttoJSON: function toJSON(data) {\r\n\t\t\tvar json = InterleavedBuffer.prototype.toJSON.call(this, data);\r\n\t\t\tjson.isInstancedInterleavedBuffer = true;\r\n\t\t\tjson.meshPerAttribute = this.meshPerAttribute;\r\n\t\t\treturn json;\r\n\t\t}\r\n\t});\r\n\r\n\tfunction GLBufferAttribute(buffer, type, itemSize, elementSize, count) {\r\n\t\tthis.buffer = buffer;\r\n\t\tthis.type = type;\r\n\t\tthis.itemSize = itemSize;\r\n\t\tthis.elementSize = elementSize;\r\n\t\tthis.count = count;\r\n\t\tthis.version = 0;\r\n\t}\r\n\r\n\tObject.defineProperty(GLBufferAttribute.prototype, 'needsUpdate', {\r\n\t\tset: function set(value) {\r\n\t\t\tif (value === true) this.version++;\r\n\t\t}\r\n\t});\r\n\tObject.assign(GLBufferAttribute.prototype, {\r\n\t\tisGLBufferAttribute: true,\r\n\t\tsetBuffer: function setBuffer(buffer) {\r\n\t\t\tthis.buffer = buffer;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tsetType: function setType(type, elementSize) {\r\n\t\t\tthis.type = type;\r\n\t\t\tthis.elementSize = elementSize;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tsetItemSize: function setItemSize(itemSize) {\r\n\t\t\tthis.itemSize = itemSize;\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tsetCount: function setCount(count) {\r\n\t\t\tthis.count = count;\r\n\t\t\treturn this;\r\n\t\t}\r\n\t});\r\n\r\n\tfunction Raycaster(origin, direction, near, far) {\r\n\t\tthis.ray = new Ray(origin, direction); // direction is assumed to be normalized (for accurate distance calculations)\r\n\r\n\t\tthis.near = near || 0;\r\n\t\tthis.far = far || Infinity;\r\n\t\tthis.camera = null;\r\n\t\tthis.layers = new Layers();\r\n\t\tthis.params = {\r\n\t\t\tMesh: {},\r\n\t\t\tLine: {\r\n\t\t\t\tthreshold: 1\r\n\t\t\t},\r\n\t\t\tLOD: {},\r\n\t\t\tPoints: {\r\n\t\t\t\tthreshold: 1\r\n\t\t\t},\r\n\t\t\tSprite: {}\r\n\t\t};\r\n\t\tObject.defineProperties(this.params, {\r\n\t\t\tPointCloud: {\r\n\t\t\t\tget: function get() {\r\n\t\t\t\t\tconsole.warn('THREE.Raycaster: params.PointCloud has been renamed to params.Points.');\r\n\t\t\t\t\treturn this.Points;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tfunction ascSort(a, b) {\r\n\t\treturn a.distance - b.distance;\r\n\t}\r\n\r\n\tfunction _intersectObject(object, raycaster, intersects, recursive) {\r\n\t\tif (object.layers.test(raycaster.layers)) {\r\n\t\t\tobject.raycast(raycaster, intersects);\r\n\t\t}\r\n\r\n\t\tif (recursive === true) {\r\n\t\t\tvar children = object.children;\r\n\r\n\t\t\tfor (var i = 0, l = children.length; i < l; i++) {\r\n\t\t\t\t_intersectObject(children[i], raycaster, intersects, true);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tObject.assign(Raycaster.prototype, {\r\n\t\tset: function set(origin, direction) {\r\n\t\t\t// direction is assumed to be normalized (for accurate distance calculations)\r\n\t\t\tthis.ray.set(origin, direction);\r\n\t\t},\r\n\t\tsetFromCamera: function setFromCamera(coords, camera) {\r\n\t\t\tif (camera && camera.isPerspectiveCamera) {\r\n\t\t\t\tthis.ray.origin.setFromMatrixPosition(camera.matrixWorld);\r\n\t\t\t\tthis.ray.direction.set(coords.x, coords.y, 0.5).unproject(camera).sub(this.ray.origin).normalize();\r\n\t\t\t\tthis.camera = camera;\r\n\t\t\t} else if (camera && camera.isOrthographicCamera) {\r\n\t\t\t\tthis.ray.origin.set(coords.x, coords.y, (camera.near + camera.far) / (camera.near - camera.far)).unproject(camera); // set origin in plane of camera\r\n\r\n\t\t\t\tthis.ray.direction.set(0, 0, -1).transformDirection(camera.matrixWorld);\r\n\t\t\t\tthis.camera = camera;\r\n\t\t\t} else {\r\n\t\t\t\tconsole.error('THREE.Raycaster: Unsupported camera type.');\r\n\t\t\t}\r\n\t\t},\r\n\t\tintersectObject: function intersectObject(object, recursive, optionalTarget) {\r\n\t\t\tvar intersects = optionalTarget || [];\r\n\r\n\t\t\t_intersectObject(object, this, intersects, recursive);\r\n\r\n\t\t\tintersects.sort(ascSort);\r\n\t\t\treturn intersects;\r\n\t\t},\r\n\t\tintersectObjects: function intersectObjects(objects, recursive, optionalTarget) {\r\n\t\t\tvar intersects = optionalTarget || [];\r\n\r\n\t\t\tif (Array.isArray(objects) === false) {\r\n\t\t\t\tconsole.warn('THREE.Raycaster.intersectObjects: objects is not an Array.');\r\n\t\t\t\treturn intersects;\r\n\t\t\t}\r\n\r\n\t\t\tfor (var i = 0, l = objects.length; i < l; i++) {\r\n\t\t\t\t_intersectObject(objects[i], this, intersects, recursive);\r\n\t\t\t}\r\n\r\n\t\t\tintersects.sort(ascSort);\r\n\t\t\treturn intersects;\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t * Ref: https://en.wikipedia.org/wiki/Spherical_coordinate_system\r\n\t *\r\n\t * The polar angle (phi) is measured from the positive y-axis. The positive y-axis is up.\r\n\t * The azimuthal angle (theta) is measured from the positive z-axis.\r\n\t */\r\n\r\n\tvar Spherical = /*#__PURE__*/function () {\r\n\t\tfunction Spherical(radius, phi, theta) {\r\n\t\t\tif (radius === void 0) {\r\n\t\t\t\tradius = 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (phi === void 0) {\r\n\t\t\t\tphi = 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (theta === void 0) {\r\n\t\t\t\ttheta = 0;\r\n\t\t\t}\r\n\r\n\t\t\tthis.radius = radius;\r\n\t\t\tthis.phi = phi; // polar angle\r\n\r\n\t\t\tthis.theta = theta; // azimuthal angle\r\n\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\tvar _proto = Spherical.prototype;\r\n\r\n\t\t_proto.set = function set(radius, phi, theta) {\r\n\t\t\tthis.radius = radius;\r\n\t\t\tthis.phi = phi;\r\n\t\t\tthis.theta = theta;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.clone = function clone() {\r\n\t\t\treturn new this.constructor().copy(this);\r\n\t\t};\r\n\r\n\t\t_proto.copy = function copy(other) {\r\n\t\t\tthis.radius = other.radius;\r\n\t\t\tthis.phi = other.phi;\r\n\t\t\tthis.theta = other.theta;\r\n\t\t\treturn this;\r\n\t\t} // restrict phi to be betwee EPS and PI-EPS\r\n\t\t;\r\n\r\n\t\t_proto.makeSafe = function makeSafe() {\r\n\t\t\tvar EPS = 0.000001;\r\n\t\t\tthis.phi = Math.max(EPS, Math.min(Math.PI - EPS, this.phi));\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setFromVector3 = function setFromVector3(v) {\r\n\t\t\treturn this.setFromCartesianCoords(v.x, v.y, v.z);\r\n\t\t};\r\n\r\n\t\t_proto.setFromCartesianCoords = function setFromCartesianCoords(x, y, z) {\r\n\t\t\tthis.radius = Math.sqrt(x * x + y * y + z * z);\r\n\r\n\t\t\tif (this.radius === 0) {\r\n\t\t\t\tthis.theta = 0;\r\n\t\t\t\tthis.phi = 0;\r\n\t\t\t} else {\r\n\t\t\t\tthis.theta = Math.atan2(x, z);\r\n\t\t\t\tthis.phi = Math.acos(MathUtils.clamp(y / this.radius, -1, 1));\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\treturn Spherical;\r\n\t}();\r\n\r\n\t/**\r\n\t * Ref: https://en.wikipedia.org/wiki/Cylindrical_coordinate_system\r\n\t */\r\n\tvar Cylindrical = /*#__PURE__*/function () {\r\n\t\tfunction Cylindrical(radius, theta, y) {\r\n\t\t\tthis.radius = radius !== undefined ? radius : 1.0; // distance from the origin to a point in the x-z plane\r\n\r\n\t\t\tthis.theta = theta !== undefined ? theta : 0; // counterclockwise angle in the x-z plane measured in radians from the positive z-axis\r\n\r\n\t\t\tthis.y = y !== undefined ? y : 0; // height above the x-z plane\r\n\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\tvar _proto = Cylindrical.prototype;\r\n\r\n\t\t_proto.set = function set(radius, theta, y) {\r\n\t\t\tthis.radius = radius;\r\n\t\t\tthis.theta = theta;\r\n\t\t\tthis.y = y;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.clone = function clone() {\r\n\t\t\treturn new this.constructor().copy(this);\r\n\t\t};\r\n\r\n\t\t_proto.copy = function copy(other) {\r\n\t\t\tthis.radius = other.radius;\r\n\t\t\tthis.theta = other.theta;\r\n\t\t\tthis.y = other.y;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setFromVector3 = function setFromVector3(v) {\r\n\t\t\treturn this.setFromCartesianCoords(v.x, v.y, v.z);\r\n\t\t};\r\n\r\n\t\t_proto.setFromCartesianCoords = function setFromCartesianCoords(x, y, z) {\r\n\t\t\tthis.radius = Math.sqrt(x * x + z * z);\r\n\t\t\tthis.theta = Math.atan2(x, z);\r\n\t\t\tthis.y = y;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\treturn Cylindrical;\r\n\t}();\r\n\r\n\tvar _vector$7 = /*@__PURE__*/new Vector2();\r\n\r\n\tvar Box2 = /*#__PURE__*/function () {\r\n\t\tfunction Box2(min, max) {\r\n\t\t\tObject.defineProperty(this, 'isBox2', {\r\n\t\t\t\tvalue: true\r\n\t\t\t});\r\n\t\t\tthis.min = min !== undefined ? min : new Vector2(+Infinity, +Infinity);\r\n\t\t\tthis.max = max !== undefined ? max : new Vector2(-Infinity, -Infinity);\r\n\t\t}\r\n\r\n\t\tvar _proto = Box2.prototype;\r\n\r\n\t\t_proto.set = function set(min, max) {\r\n\t\t\tthis.min.copy(min);\r\n\t\t\tthis.max.copy(max);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setFromPoints = function setFromPoints(points) {\r\n\t\t\tthis.makeEmpty();\r\n\r\n\t\t\tfor (var i = 0, il = points.length; i < il; i++) {\r\n\t\t\t\tthis.expandByPoint(points[i]);\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.setFromCenterAndSize = function setFromCenterAndSize(center, size) {\r\n\t\t\tvar halfSize = _vector$7.copy(size).multiplyScalar(0.5);\r\n\r\n\t\t\tthis.min.copy(center).sub(halfSize);\r\n\t\t\tthis.max.copy(center).add(halfSize);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.clone = function clone() {\r\n\t\t\treturn new this.constructor().copy(this);\r\n\t\t};\r\n\r\n\t\t_proto.copy = function copy(box) {\r\n\t\t\tthis.min.copy(box.min);\r\n\t\t\tthis.max.copy(box.max);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.makeEmpty = function makeEmpty() {\r\n\t\t\tthis.min.x = this.min.y = +Infinity;\r\n\t\t\tthis.max.x = this.max.y = -Infinity;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.isEmpty = function isEmpty() {\r\n\t\t\t// this is a more robust check for empty than ( volume <= 0 ) because volume can get positive with two negative axes\r\n\t\t\treturn this.max.x < this.min.x || this.max.y < this.min.y;\r\n\t\t};\r\n\r\n\t\t_proto.getCenter = function getCenter(target) {\r\n\t\t\tif (target === undefined) {\r\n\t\t\t\tconsole.warn('THREE.Box2: .getCenter() target is now required');\r\n\t\t\t\ttarget = new Vector2();\r\n\t\t\t}\r\n\r\n\t\t\treturn this.isEmpty() ? target.set(0, 0) : target.addVectors(this.min, this.max).multiplyScalar(0.5);\r\n\t\t};\r\n\r\n\t\t_proto.getSize = function getSize(target) {\r\n\t\t\tif (target === undefined) {\r\n\t\t\t\tconsole.warn('THREE.Box2: .getSize() target is now required');\r\n\t\t\t\ttarget = new Vector2();\r\n\t\t\t}\r\n\r\n\t\t\treturn this.isEmpty() ? target.set(0, 0) : target.subVectors(this.max, this.min);\r\n\t\t};\r\n\r\n\t\t_proto.expandByPoint = function expandByPoint(point) {\r\n\t\t\tthis.min.min(point);\r\n\t\t\tthis.max.max(point);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.expandByVector = function expandByVector(vector) {\r\n\t\t\tthis.min.sub(vector);\r\n\t\t\tthis.max.add(vector);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.expandByScalar = function expandByScalar(scalar) {\r\n\t\t\tthis.min.addScalar(-scalar);\r\n\t\t\tthis.max.addScalar(scalar);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.containsPoint = function containsPoint(point) {\r\n\t\t\treturn point.x < this.min.x || point.x > this.max.x || point.y < this.min.y || point.y > this.max.y ? false : true;\r\n\t\t};\r\n\r\n\t\t_proto.containsBox = function containsBox(box) {\r\n\t\t\treturn this.min.x <= box.min.x && box.max.x <= this.max.x && this.min.y <= box.min.y && box.max.y <= this.max.y;\r\n\t\t};\r\n\r\n\t\t_proto.getParameter = function getParameter(point, target) {\r\n\t\t\t// This can potentially have a divide by zero if the box\r\n\t\t\t// has a size dimension of 0.\r\n\t\t\tif (target === undefined) {\r\n\t\t\t\tconsole.warn('THREE.Box2: .getParameter() target is now required');\r\n\t\t\t\ttarget = new Vector2();\r\n\t\t\t}\r\n\r\n\t\t\treturn target.set((point.x - this.min.x) / (this.max.x - this.min.x), (point.y - this.min.y) / (this.max.y - this.min.y));\r\n\t\t};\r\n\r\n\t\t_proto.intersectsBox = function intersectsBox(box) {\r\n\t\t\t// using 4 splitting planes to rule out intersections\r\n\t\t\treturn box.max.x < this.min.x || box.min.x > this.max.x || box.max.y < this.min.y || box.min.y > this.max.y ? false : true;\r\n\t\t};\r\n\r\n\t\t_proto.clampPoint = function clampPoint(point, target) {\r\n\t\t\tif (target === undefined) {\r\n\t\t\t\tconsole.warn('THREE.Box2: .clampPoint() target is now required');\r\n\t\t\t\ttarget = new Vector2();\r\n\t\t\t}\r\n\r\n\t\t\treturn target.copy(point).clamp(this.min, this.max);\r\n\t\t};\r\n\r\n\t\t_proto.distanceToPoint = function distanceToPoint(point) {\r\n\t\t\tvar clampedPoint = _vector$7.copy(point).clamp(this.min, this.max);\r\n\r\n\t\t\treturn clampedPoint.sub(point).length();\r\n\t\t};\r\n\r\n\t\t_proto.intersect = function intersect(box) {\r\n\t\t\tthis.min.max(box.min);\r\n\t\t\tthis.max.min(box.max);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.union = function union(box) {\r\n\t\t\tthis.min.min(box.min);\r\n\t\t\tthis.max.max(box.max);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.translate = function translate(offset) {\r\n\t\t\tthis.min.add(offset);\r\n\t\t\tthis.max.add(offset);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.equals = function equals(box) {\r\n\t\t\treturn box.min.equals(this.min) && box.max.equals(this.max);\r\n\t\t};\r\n\r\n\t\treturn Box2;\r\n\t}();\r\n\r\n\tvar _startP = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _startEnd = /*@__PURE__*/new Vector3();\r\n\r\n\tvar Line3 = /*#__PURE__*/function () {\r\n\t\tfunction Line3(start, end) {\r\n\t\t\tthis.start = start !== undefined ? start : new Vector3();\r\n\t\t\tthis.end = end !== undefined ? end : new Vector3();\r\n\t\t}\r\n\r\n\t\tvar _proto = Line3.prototype;\r\n\r\n\t\t_proto.set = function set(start, end) {\r\n\t\t\tthis.start.copy(start);\r\n\t\t\tthis.end.copy(end);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.clone = function clone() {\r\n\t\t\treturn new this.constructor().copy(this);\r\n\t\t};\r\n\r\n\t\t_proto.copy = function copy(line) {\r\n\t\t\tthis.start.copy(line.start);\r\n\t\t\tthis.end.copy(line.end);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.getCenter = function getCenter(target) {\r\n\t\t\tif (target === undefined) {\r\n\t\t\t\tconsole.warn('THREE.Line3: .getCenter() target is now required');\r\n\t\t\t\ttarget = new Vector3();\r\n\t\t\t}\r\n\r\n\t\t\treturn target.addVectors(this.start, this.end).multiplyScalar(0.5);\r\n\t\t};\r\n\r\n\t\t_proto.delta = function delta(target) {\r\n\t\t\tif (target === undefined) {\r\n\t\t\t\tconsole.warn('THREE.Line3: .delta() target is now required');\r\n\t\t\t\ttarget = new Vector3();\r\n\t\t\t}\r\n\r\n\t\t\treturn target.subVectors(this.end, this.start);\r\n\t\t};\r\n\r\n\t\t_proto.distanceSq = function distanceSq() {\r\n\t\t\treturn this.start.distanceToSquared(this.end);\r\n\t\t};\r\n\r\n\t\t_proto.distance = function distance() {\r\n\t\t\treturn this.start.distanceTo(this.end);\r\n\t\t};\r\n\r\n\t\t_proto.at = function at(t, target) {\r\n\t\t\tif (target === undefined) {\r\n\t\t\t\tconsole.warn('THREE.Line3: .at() target is now required');\r\n\t\t\t\ttarget = new Vector3();\r\n\t\t\t}\r\n\r\n\t\t\treturn this.delta(target).multiplyScalar(t).add(this.start);\r\n\t\t};\r\n\r\n\t\t_proto.closestPointToPointParameter = function closestPointToPointParameter(point, clampToLine) {\r\n\t\t\t_startP.subVectors(point, this.start);\r\n\r\n\t\t\t_startEnd.subVectors(this.end, this.start);\r\n\r\n\t\t\tvar startEnd2 = _startEnd.dot(_startEnd);\r\n\r\n\t\t\tvar startEnd_startP = _startEnd.dot(_startP);\r\n\r\n\t\t\tvar t = startEnd_startP / startEnd2;\r\n\r\n\t\t\tif (clampToLine) {\r\n\t\t\t\tt = MathUtils.clamp(t, 0, 1);\r\n\t\t\t}\r\n\r\n\t\t\treturn t;\r\n\t\t};\r\n\r\n\t\t_proto.closestPointToPoint = function closestPointToPoint(point, clampToLine, target) {\r\n\t\t\tvar t = this.closestPointToPointParameter(point, clampToLine);\r\n\r\n\t\t\tif (target === undefined) {\r\n\t\t\t\tconsole.warn('THREE.Line3: .closestPointToPoint() target is now required');\r\n\t\t\t\ttarget = new Vector3();\r\n\t\t\t}\r\n\r\n\t\t\treturn this.delta(target).multiplyScalar(t).add(this.start);\r\n\t\t};\r\n\r\n\t\t_proto.applyMatrix4 = function applyMatrix4(matrix) {\r\n\t\t\tthis.start.applyMatrix4(matrix);\r\n\t\t\tthis.end.applyMatrix4(matrix);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.equals = function equals(line) {\r\n\t\t\treturn line.start.equals(this.start) && line.end.equals(this.end);\r\n\t\t};\r\n\r\n\t\treturn Line3;\r\n\t}();\r\n\r\n\tfunction ImmediateRenderObject(material) {\r\n\t\tObject3D.call(this);\r\n\t\tthis.material = material;\r\n\r\n\t\tthis.render = function ()\r\n\t\t/* renderCallback */\r\n\t\t{};\r\n\r\n\t\tthis.hasPositions = false;\r\n\t\tthis.hasNormals = false;\r\n\t\tthis.hasColors = false;\r\n\t\tthis.hasUvs = false;\r\n\t\tthis.positionArray = null;\r\n\t\tthis.normalArray = null;\r\n\t\tthis.colorArray = null;\r\n\t\tthis.uvArray = null;\r\n\t\tthis.count = 0;\r\n\t}\r\n\r\n\tImmediateRenderObject.prototype = Object.create(Object3D.prototype);\r\n\tImmediateRenderObject.prototype.constructor = ImmediateRenderObject;\r\n\tImmediateRenderObject.prototype.isImmediateRenderObject = true;\r\n\r\n\tvar _vector$8 = /*@__PURE__*/new Vector3();\r\n\r\n\tvar SpotLightHelper = /*#__PURE__*/function (_Object3D) {\r\n\t\t_inheritsLoose(SpotLightHelper, _Object3D);\r\n\r\n\t\tfunction SpotLightHelper(light, color) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\t_this = _Object3D.call(this) || this;\r\n\t\t\t_this.light = light;\r\n\r\n\t\t\t_this.light.updateMatrixWorld();\r\n\r\n\t\t\t_this.matrix = light.matrixWorld;\r\n\t\t\t_this.matrixAutoUpdate = false;\r\n\t\t\t_this.color = color;\r\n\t\t\tvar geometry = new BufferGeometry();\r\n\t\t\tvar positions = [0, 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];\r\n\r\n\t\t\tfor (var i = 0, j = 1, l = 32; i < l; i++, j++) {\r\n\t\t\t\tvar p1 = i / l * Math.PI * 2;\r\n\t\t\t\tvar p2 = j / l * Math.PI * 2;\r\n\t\t\t\tpositions.push(Math.cos(p1), Math.sin(p1), 1, Math.cos(p2), Math.sin(p2), 1);\r\n\t\t\t}\r\n\r\n\t\t\tgeometry.setAttribute('position', new Float32BufferAttribute(positions, 3));\r\n\t\t\tvar material = new LineBasicMaterial({\r\n\t\t\t\tfog: false,\r\n\t\t\t\ttoneMapped: false\r\n\t\t\t});\r\n\t\t\t_this.cone = new LineSegments(geometry, material);\r\n\r\n\t\t\t_this.add(_this.cone);\r\n\r\n\t\t\t_this.update();\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\tvar _proto = SpotLightHelper.prototype;\r\n\r\n\t\t_proto.dispose = function dispose() {\r\n\t\t\tthis.cone.geometry.dispose();\r\n\t\t\tthis.cone.material.dispose();\r\n\t\t};\r\n\r\n\t\t_proto.update = function update() {\r\n\t\t\tthis.light.updateMatrixWorld();\r\n\t\t\tvar coneLength = this.light.distance ? this.light.distance : 1000;\r\n\t\t\tvar coneWidth = coneLength * Math.tan(this.light.angle);\r\n\t\t\tthis.cone.scale.set(coneWidth, coneWidth, coneLength);\r\n\r\n\t\t\t_vector$8.setFromMatrixPosition(this.light.target.matrixWorld);\r\n\r\n\t\t\tthis.cone.lookAt(_vector$8);\r\n\r\n\t\t\tif (this.color !== undefined) {\r\n\t\t\t\tthis.cone.material.color.set(this.color);\r\n\t\t\t} else {\r\n\t\t\t\tthis.cone.material.color.copy(this.light.color);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\treturn SpotLightHelper;\r\n\t}(Object3D);\r\n\r\n\tvar _vector$9 = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _boneMatrix = /*@__PURE__*/new Matrix4();\r\n\r\n\tvar _matrixWorldInv = /*@__PURE__*/new Matrix4();\r\n\r\n\tvar SkeletonHelper = /*#__PURE__*/function (_LineSegments) {\r\n\t\t_inheritsLoose(SkeletonHelper, _LineSegments);\r\n\r\n\t\tfunction SkeletonHelper(object) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\tvar bones = getBoneList(object);\r\n\t\t\tvar geometry = new BufferGeometry();\r\n\t\t\tvar vertices = [];\r\n\t\t\tvar colors = [];\r\n\t\t\tvar color1 = new Color(0, 0, 1);\r\n\t\t\tvar color2 = new Color(0, 1, 0);\r\n\r\n\t\t\tfor (var i = 0; i < bones.length; i++) {\r\n\t\t\t\tvar bone = bones[i];\r\n\r\n\t\t\t\tif (bone.parent && bone.parent.isBone) {\r\n\t\t\t\t\tvertices.push(0, 0, 0);\r\n\t\t\t\t\tvertices.push(0, 0, 0);\r\n\t\t\t\t\tcolors.push(color1.r, color1.g, color1.b);\r\n\t\t\t\t\tcolors.push(color2.r, color2.g, color2.b);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tgeometry.setAttribute('position', new Float32BufferAttribute(vertices, 3));\r\n\t\t\tgeometry.setAttribute('color', new Float32BufferAttribute(colors, 3));\r\n\t\t\tvar material = new LineBasicMaterial({\r\n\t\t\t\tvertexColors: true,\r\n\t\t\t\tdepthTest: false,\r\n\t\t\t\tdepthWrite: false,\r\n\t\t\t\ttoneMapped: false,\r\n\t\t\t\ttransparent: true\r\n\t\t\t});\r\n\t\t\t_this = _LineSegments.call(this, geometry, material) || this;\r\n\t\t\t_this.type = 'SkeletonHelper';\r\n\t\t\t_this.isSkeletonHelper = true;\r\n\t\t\t_this.root = object;\r\n\t\t\t_this.bones = bones;\r\n\t\t\t_this.matrix = object.matrixWorld;\r\n\t\t\t_this.matrixAutoUpdate = false;\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\tvar _proto = SkeletonHelper.prototype;\r\n\r\n\t\t_proto.updateMatrixWorld = function updateMatrixWorld(force) {\r\n\t\t\tvar bones = this.bones;\r\n\t\t\tvar geometry = this.geometry;\r\n\t\t\tvar position = geometry.getAttribute('position');\r\n\r\n\t\t\t_matrixWorldInv.copy(this.root.matrixWorld).invert();\r\n\r\n\t\t\tfor (var i = 0, j = 0; i < bones.length; i++) {\r\n\t\t\t\tvar bone = bones[i];\r\n\r\n\t\t\t\tif (bone.parent && bone.parent.isBone) {\r\n\t\t\t\t\t_boneMatrix.multiplyMatrices(_matrixWorldInv, bone.matrixWorld);\r\n\r\n\t\t\t\t\t_vector$9.setFromMatrixPosition(_boneMatrix);\r\n\r\n\t\t\t\t\tposition.setXYZ(j, _vector$9.x, _vector$9.y, _vector$9.z);\r\n\r\n\t\t\t\t\t_boneMatrix.multiplyMatrices(_matrixWorldInv, bone.parent.matrixWorld);\r\n\r\n\t\t\t\t\t_vector$9.setFromMatrixPosition(_boneMatrix);\r\n\r\n\t\t\t\t\tposition.setXYZ(j + 1, _vector$9.x, _vector$9.y, _vector$9.z);\r\n\t\t\t\t\tj += 2;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tgeometry.getAttribute('position').needsUpdate = true;\r\n\r\n\t\t\t_LineSegments.prototype.updateMatrixWorld.call(this, force);\r\n\t\t};\r\n\r\n\t\treturn SkeletonHelper;\r\n\t}(LineSegments);\r\n\r\n\tfunction getBoneList(object) {\r\n\t\tvar boneList = [];\r\n\r\n\t\tif (object && object.isBone) {\r\n\t\t\tboneList.push(object);\r\n\t\t}\r\n\r\n\t\tfor (var i = 0; i < object.children.length; i++) {\r\n\t\t\tboneList.push.apply(boneList, getBoneList(object.children[i]));\r\n\t\t}\r\n\r\n\t\treturn boneList;\r\n\t}\r\n\r\n\tvar PointLightHelper = /*#__PURE__*/function (_Mesh) {\r\n\t\t_inheritsLoose(PointLightHelper, _Mesh);\r\n\r\n\t\tfunction PointLightHelper(light, sphereSize, color) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\tvar geometry = new SphereBufferGeometry(sphereSize, 4, 2);\r\n\t\t\tvar material = new MeshBasicMaterial({\r\n\t\t\t\twireframe: true,\r\n\t\t\t\tfog: false,\r\n\t\t\t\ttoneMapped: false\r\n\t\t\t});\r\n\t\t\t_this = _Mesh.call(this, geometry, material) || this;\r\n\t\t\t_this.light = light;\r\n\r\n\t\t\t_this.light.updateMatrixWorld();\r\n\r\n\t\t\t_this.color = color;\r\n\t\t\t_this.type = 'PointLightHelper';\r\n\t\t\t_this.matrix = _this.light.matrixWorld;\r\n\t\t\t_this.matrixAutoUpdate = false;\r\n\r\n\t\t\t_this.update();\r\n\t\t\t/*\r\n\t\t\t// TODO: delete this comment?\r\n\t\t\tconst distanceGeometry = new THREE.IcosahedronBufferGeometry( 1, 2 );\r\n\t\t\tconst distanceMaterial = new THREE.MeshBasicMaterial( { color: hexColor, fog: false, wireframe: true, opacity: 0.1, transparent: true } );\r\n\t\t\tthis.lightSphere = new THREE.Mesh( bulbGeometry, bulbMaterial );\r\n\t\t\tthis.lightDistance = new THREE.Mesh( distanceGeometry, distanceMaterial );\r\n\t\t\tconst d = light.distance;\r\n\t\t\tif ( d === 0.0 ) {\r\n\t\t\t\tthis.lightDistance.visible = false;\r\n\t\t\t} else {\r\n\t\t\t\tthis.lightDistance.scale.set( d, d, d );\r\n\t\t\t}\r\n\t\t\tthis.add( this.lightDistance );\r\n\t\t\t*/\r\n\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\tvar _proto = PointLightHelper.prototype;\r\n\r\n\t\t_proto.dispose = function dispose() {\r\n\t\t\tthis.geometry.dispose();\r\n\t\t\tthis.material.dispose();\r\n\t\t};\r\n\r\n\t\t_proto.update = function update() {\r\n\t\t\tif (this.color !== undefined) {\r\n\t\t\t\tthis.material.color.set(this.color);\r\n\t\t\t} else {\r\n\t\t\t\tthis.material.color.copy(this.light.color);\r\n\t\t\t}\r\n\t\t\t/*\r\n\t\t\tconst d = this.light.distance;\r\n\t\t\t\tif ( d === 0.0 ) {\r\n\t\t\t\t\tthis.lightDistance.visible = false;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.lightDistance.visible = true;\r\n\t\t\t\tthis.lightDistance.scale.set( d, d, d );\r\n\t\t\t\t}\r\n\t\t\t*/\r\n\r\n\t\t};\r\n\r\n\t\treturn PointLightHelper;\r\n\t}(Mesh);\r\n\r\n\tvar _vector$a = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _color1 = /*@__PURE__*/new Color();\r\n\r\n\tvar _color2 = /*@__PURE__*/new Color();\r\n\r\n\tvar HemisphereLightHelper = /*#__PURE__*/function (_Object3D) {\r\n\t\t_inheritsLoose(HemisphereLightHelper, _Object3D);\r\n\r\n\t\tfunction HemisphereLightHelper(light, size, color) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\t_this = _Object3D.call(this) || this;\r\n\t\t\t_this.light = light;\r\n\r\n\t\t\t_this.light.updateMatrixWorld();\r\n\r\n\t\t\t_this.matrix = light.matrixWorld;\r\n\t\t\t_this.matrixAutoUpdate = false;\r\n\t\t\t_this.color = color;\r\n\t\t\tvar geometry = new OctahedronBufferGeometry(size);\r\n\t\t\tgeometry.rotateY(Math.PI * 0.5);\r\n\t\t\t_this.material = new MeshBasicMaterial({\r\n\t\t\t\twireframe: true,\r\n\t\t\t\tfog: false,\r\n\t\t\t\ttoneMapped: false\r\n\t\t\t});\r\n\t\t\tif (_this.color === undefined) _this.material.vertexColors = true;\r\n\t\t\tvar position = geometry.getAttribute('position');\r\n\t\t\tvar colors = new Float32Array(position.count * 3);\r\n\t\t\tgeometry.setAttribute('color', new BufferAttribute(colors, 3));\r\n\r\n\t\t\t_this.add(new Mesh(geometry, _this.material));\r\n\r\n\t\t\t_this.update();\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\tvar _proto = HemisphereLightHelper.prototype;\r\n\r\n\t\t_proto.dispose = function dispose() {\r\n\t\t\tthis.children[0].geometry.dispose();\r\n\t\t\tthis.children[0].material.dispose();\r\n\t\t};\r\n\r\n\t\t_proto.update = function update() {\r\n\t\t\tvar mesh = this.children[0];\r\n\r\n\t\t\tif (this.color !== undefined) {\r\n\t\t\t\tthis.material.color.set(this.color);\r\n\t\t\t} else {\r\n\t\t\t\tvar colors = mesh.geometry.getAttribute('color');\r\n\r\n\t\t\t\t_color1.copy(this.light.color);\r\n\r\n\t\t\t\t_color2.copy(this.light.groundColor);\r\n\r\n\t\t\t\tfor (var i = 0, l = colors.count; i < l; i++) {\r\n\t\t\t\t\tvar color = i < l / 2 ? _color1 : _color2;\r\n\t\t\t\t\tcolors.setXYZ(i, color.r, color.g, color.b);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcolors.needsUpdate = true;\r\n\t\t\t}\r\n\r\n\t\t\tmesh.lookAt(_vector$a.setFromMatrixPosition(this.light.matrixWorld).negate());\r\n\t\t};\r\n\r\n\t\treturn HemisphereLightHelper;\r\n\t}(Object3D);\r\n\r\n\tvar GridHelper = /*#__PURE__*/function (_LineSegments) {\r\n\t\t_inheritsLoose(GridHelper, _LineSegments);\r\n\r\n\t\tfunction GridHelper(size, divisions, color1, color2) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\tif (size === void 0) {\r\n\t\t\t\tsize = 10;\r\n\t\t\t}\r\n\r\n\t\t\tif (divisions === void 0) {\r\n\t\t\t\tdivisions = 10;\r\n\t\t\t}\r\n\r\n\t\t\tif (color1 === void 0) {\r\n\t\t\t\tcolor1 = 0x444444;\r\n\t\t\t}\r\n\r\n\t\t\tif (color2 === void 0) {\r\n\t\t\t\tcolor2 = 0x888888;\r\n\t\t\t}\r\n\r\n\t\t\tcolor1 = new Color(color1);\r\n\t\t\tcolor2 = new Color(color2);\r\n\t\t\tvar center = divisions / 2;\r\n\t\t\tvar step = size / divisions;\r\n\t\t\tvar halfSize = size / 2;\r\n\t\t\tvar vertices = [],\r\n\t\t\t\t\tcolors = [];\r\n\r\n\t\t\tfor (var i = 0, j = 0, k = -halfSize; i <= divisions; i++, k += step) {\r\n\t\t\t\tvertices.push(-halfSize, 0, k, halfSize, 0, k);\r\n\t\t\t\tvertices.push(k, 0, -halfSize, k, 0, halfSize);\r\n\t\t\t\tvar color = i === center ? color1 : color2;\r\n\t\t\t\tcolor.toArray(colors, j);\r\n\t\t\t\tj += 3;\r\n\t\t\t\tcolor.toArray(colors, j);\r\n\t\t\t\tj += 3;\r\n\t\t\t\tcolor.toArray(colors, j);\r\n\t\t\t\tj += 3;\r\n\t\t\t\tcolor.toArray(colors, j);\r\n\t\t\t\tj += 3;\r\n\t\t\t}\r\n\r\n\t\t\tvar geometry = new BufferGeometry();\r\n\t\t\tgeometry.setAttribute('position', new Float32BufferAttribute(vertices, 3));\r\n\t\t\tgeometry.setAttribute('color', new Float32BufferAttribute(colors, 3));\r\n\t\t\tvar material = new LineBasicMaterial({\r\n\t\t\t\tvertexColors: true,\r\n\t\t\t\ttoneMapped: false\r\n\t\t\t});\r\n\t\t\t_this = _LineSegments.call(this, geometry, material) || this;\r\n\t\t\t_this.type = 'GridHelper';\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn GridHelper;\r\n\t}(LineSegments);\r\n\r\n\tvar PolarGridHelper = /*#__PURE__*/function (_LineSegments) {\r\n\t\t_inheritsLoose(PolarGridHelper, _LineSegments);\r\n\r\n\t\tfunction PolarGridHelper(radius, radials, circles, divisions, color1, color2) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\tif (radius === void 0) {\r\n\t\t\t\tradius = 10;\r\n\t\t\t}\r\n\r\n\t\t\tif (radials === void 0) {\r\n\t\t\t\tradials = 16;\r\n\t\t\t}\r\n\r\n\t\t\tif (circles === void 0) {\r\n\t\t\t\tcircles = 8;\r\n\t\t\t}\r\n\r\n\t\t\tif (divisions === void 0) {\r\n\t\t\t\tdivisions = 64;\r\n\t\t\t}\r\n\r\n\t\t\tif (color1 === void 0) {\r\n\t\t\t\tcolor1 = 0x444444;\r\n\t\t\t}\r\n\r\n\t\t\tif (color2 === void 0) {\r\n\t\t\t\tcolor2 = 0x888888;\r\n\t\t\t}\r\n\r\n\t\t\tcolor1 = new Color(color1);\r\n\t\t\tcolor2 = new Color(color2);\r\n\t\t\tvar vertices = [];\r\n\t\t\tvar colors = []; // create the radials\r\n\r\n\t\t\tfor (var i = 0; i <= radials; i++) {\r\n\t\t\t\tvar v = i / radials * (Math.PI * 2);\r\n\t\t\t\tvar x = Math.sin(v) * radius;\r\n\t\t\t\tvar z = Math.cos(v) * radius;\r\n\t\t\t\tvertices.push(0, 0, 0);\r\n\t\t\t\tvertices.push(x, 0, z);\r\n\t\t\t\tvar color = i & 1 ? color1 : color2;\r\n\t\t\t\tcolors.push(color.r, color.g, color.b);\r\n\t\t\t\tcolors.push(color.r, color.g, color.b);\r\n\t\t\t} // create the circles\r\n\r\n\r\n\t\t\tfor (var _i = 0; _i <= circles; _i++) {\r\n\t\t\t\tvar _color = _i & 1 ? color1 : color2;\r\n\r\n\t\t\t\tvar r = radius - radius / circles * _i;\r\n\r\n\t\t\t\tfor (var j = 0; j < divisions; j++) {\r\n\t\t\t\t\t// first vertex\r\n\t\t\t\t\tvar _v = j / divisions * (Math.PI * 2);\r\n\r\n\t\t\t\t\tvar _x = Math.sin(_v) * r;\r\n\r\n\t\t\t\t\tvar _z = Math.cos(_v) * r;\r\n\r\n\t\t\t\t\tvertices.push(_x, 0, _z);\r\n\t\t\t\t\tcolors.push(_color.r, _color.g, _color.b); // second vertex\r\n\r\n\t\t\t\t\t_v = (j + 1) / divisions * (Math.PI * 2);\r\n\t\t\t\t\t_x = Math.sin(_v) * r;\r\n\t\t\t\t\t_z = Math.cos(_v) * r;\r\n\t\t\t\t\tvertices.push(_x, 0, _z);\r\n\t\t\t\t\tcolors.push(_color.r, _color.g, _color.b);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar geometry = new BufferGeometry();\r\n\t\t\tgeometry.setAttribute('position', new Float32BufferAttribute(vertices, 3));\r\n\t\t\tgeometry.setAttribute('color', new Float32BufferAttribute(colors, 3));\r\n\t\t\tvar material = new LineBasicMaterial({\r\n\t\t\t\tvertexColors: true,\r\n\t\t\t\ttoneMapped: false\r\n\t\t\t});\r\n\t\t\t_this = _LineSegments.call(this, geometry, material) || this;\r\n\t\t\t_this.type = 'PolarGridHelper';\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn PolarGridHelper;\r\n\t}(LineSegments);\r\n\r\n\tvar _v1$6 = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _v2$3 = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _v3$1 = /*@__PURE__*/new Vector3();\r\n\r\n\tvar DirectionalLightHelper = /*#__PURE__*/function (_Object3D) {\r\n\t\t_inheritsLoose(DirectionalLightHelper, _Object3D);\r\n\r\n\t\tfunction DirectionalLightHelper(light, size, color) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\t_this = _Object3D.call(this) || this;\r\n\t\t\t_this.light = light;\r\n\r\n\t\t\t_this.light.updateMatrixWorld();\r\n\r\n\t\t\t_this.matrix = light.matrixWorld;\r\n\t\t\t_this.matrixAutoUpdate = false;\r\n\t\t\t_this.color = color;\r\n\t\t\tif (size === undefined) size = 1;\r\n\t\t\tvar geometry = new BufferGeometry();\r\n\t\t\tgeometry.setAttribute('position', new Float32BufferAttribute([-size, size, 0, size, size, 0, size, -size, 0, -size, -size, 0, -size, size, 0], 3));\r\n\t\t\tvar material = new LineBasicMaterial({\r\n\t\t\t\tfog: false,\r\n\t\t\t\ttoneMapped: false\r\n\t\t\t});\r\n\t\t\t_this.lightPlane = new Line(geometry, material);\r\n\r\n\t\t\t_this.add(_this.lightPlane);\r\n\r\n\t\t\tgeometry = new BufferGeometry();\r\n\t\t\tgeometry.setAttribute('position', new Float32BufferAttribute([0, 0, 0, 0, 0, 1], 3));\r\n\t\t\t_this.targetLine = new Line(geometry, material);\r\n\r\n\t\t\t_this.add(_this.targetLine);\r\n\r\n\t\t\t_this.update();\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\tvar _proto = DirectionalLightHelper.prototype;\r\n\r\n\t\t_proto.dispose = function dispose() {\r\n\t\t\tthis.lightPlane.geometry.dispose();\r\n\t\t\tthis.lightPlane.material.dispose();\r\n\t\t\tthis.targetLine.geometry.dispose();\r\n\t\t\tthis.targetLine.material.dispose();\r\n\t\t};\r\n\r\n\t\t_proto.update = function update() {\r\n\t\t\t_v1$6.setFromMatrixPosition(this.light.matrixWorld);\r\n\r\n\t\t\t_v2$3.setFromMatrixPosition(this.light.target.matrixWorld);\r\n\r\n\t\t\t_v3$1.subVectors(_v2$3, _v1$6);\r\n\r\n\t\t\tthis.lightPlane.lookAt(_v2$3);\r\n\r\n\t\t\tif (this.color !== undefined) {\r\n\t\t\t\tthis.lightPlane.material.color.set(this.color);\r\n\t\t\t\tthis.targetLine.material.color.set(this.color);\r\n\t\t\t} else {\r\n\t\t\t\tthis.lightPlane.material.color.copy(this.light.color);\r\n\t\t\t\tthis.targetLine.material.color.copy(this.light.color);\r\n\t\t\t}\r\n\r\n\t\t\tthis.targetLine.lookAt(_v2$3);\r\n\t\t\tthis.targetLine.scale.z = _v3$1.length();\r\n\t\t};\r\n\r\n\t\treturn DirectionalLightHelper;\r\n\t}(Object3D);\r\n\r\n\tvar _vector$b = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _camera = /*@__PURE__*/new Camera();\r\n\t/**\r\n\t *\t- shows frustum, line of sight and up of the camera\r\n\t *\t- suitable for fast updates\r\n\t * \t- based on frustum visualization in lightgl.js shadowmap example\r\n\t *\t\thttp://evanw.github.com/lightgl.js/tests/shadowmap.html\r\n\t */\r\n\r\n\r\n\tvar CameraHelper = /*#__PURE__*/function (_LineSegments) {\r\n\t\t_inheritsLoose(CameraHelper, _LineSegments);\r\n\r\n\t\tfunction CameraHelper(camera) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\tvar geometry = new BufferGeometry();\r\n\t\t\tvar material = new LineBasicMaterial({\r\n\t\t\t\tcolor: 0xffffff,\r\n\t\t\t\tvertexColors: true,\r\n\t\t\t\ttoneMapped: false\r\n\t\t\t});\r\n\t\t\tvar vertices = [];\r\n\t\t\tvar colors = [];\r\n\t\t\tvar pointMap = {}; // colors\r\n\r\n\t\t\tvar colorFrustum = new Color(0xffaa00);\r\n\t\t\tvar colorCone = new Color(0xff0000);\r\n\t\t\tvar colorUp = new Color(0x00aaff);\r\n\t\t\tvar colorTarget = new Color(0xffffff);\r\n\t\t\tvar colorCross = new Color(0x333333); // near\r\n\r\n\t\t\taddLine('n1', 'n2', colorFrustum);\r\n\t\t\taddLine('n2', 'n4', colorFrustum);\r\n\t\t\taddLine('n4', 'n3', colorFrustum);\r\n\t\t\taddLine('n3', 'n1', colorFrustum); // far\r\n\r\n\t\t\taddLine('f1', 'f2', colorFrustum);\r\n\t\t\taddLine('f2', 'f4', colorFrustum);\r\n\t\t\taddLine('f4', 'f3', colorFrustum);\r\n\t\t\taddLine('f3', 'f1', colorFrustum); // sides\r\n\r\n\t\t\taddLine('n1', 'f1', colorFrustum);\r\n\t\t\taddLine('n2', 'f2', colorFrustum);\r\n\t\t\taddLine('n3', 'f3', colorFrustum);\r\n\t\t\taddLine('n4', 'f4', colorFrustum); // cone\r\n\r\n\t\t\taddLine('p', 'n1', colorCone);\r\n\t\t\taddLine('p', 'n2', colorCone);\r\n\t\t\taddLine('p', 'n3', colorCone);\r\n\t\t\taddLine('p', 'n4', colorCone); // up\r\n\r\n\t\t\taddLine('u1', 'u2', colorUp);\r\n\t\t\taddLine('u2', 'u3', colorUp);\r\n\t\t\taddLine('u3', 'u1', colorUp); // target\r\n\r\n\t\t\taddLine('c', 't', colorTarget);\r\n\t\t\taddLine('p', 'c', colorCross); // cross\r\n\r\n\t\t\taddLine('cn1', 'cn2', colorCross);\r\n\t\t\taddLine('cn3', 'cn4', colorCross);\r\n\t\t\taddLine('cf1', 'cf2', colorCross);\r\n\t\t\taddLine('cf3', 'cf4', colorCross);\r\n\r\n\t\t\tfunction addLine(a, b, color) {\r\n\t\t\t\taddPoint(a, color);\r\n\t\t\t\taddPoint(b, color);\r\n\t\t\t}\r\n\r\n\t\t\tfunction addPoint(id, color) {\r\n\t\t\t\tvertices.push(0, 0, 0);\r\n\t\t\t\tcolors.push(color.r, color.g, color.b);\r\n\r\n\t\t\t\tif (pointMap[id] === undefined) {\r\n\t\t\t\t\tpointMap[id] = [];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tpointMap[id].push(vertices.length / 3 - 1);\r\n\t\t\t}\r\n\r\n\t\t\tgeometry.setAttribute('position', new Float32BufferAttribute(vertices, 3));\r\n\t\t\tgeometry.setAttribute('color', new Float32BufferAttribute(colors, 3));\r\n\t\t\t_this = _LineSegments.call(this, geometry, material) || this;\r\n\t\t\t_this.type = 'CameraHelper';\r\n\t\t\t_this.camera = camera;\r\n\t\t\tif (_this.camera.updateProjectionMatrix) _this.camera.updateProjectionMatrix();\r\n\t\t\t_this.matrix = camera.matrixWorld;\r\n\t\t\t_this.matrixAutoUpdate = false;\r\n\t\t\t_this.pointMap = pointMap;\r\n\r\n\t\t\t_this.update();\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\tvar _proto = CameraHelper.prototype;\r\n\r\n\t\t_proto.update = function update() {\r\n\t\t\tvar geometry = this.geometry;\r\n\t\t\tvar pointMap = this.pointMap;\r\n\t\t\tvar w = 1,\r\n\t\t\t\t\th = 1; // we need just camera projection matrix inverse\r\n\t\t\t// world matrix must be identity\r\n\r\n\t\t\t_camera.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse); // center / target\r\n\r\n\r\n\t\t\tsetPoint('c', pointMap, geometry, _camera, 0, 0, -1);\r\n\t\t\tsetPoint('t', pointMap, geometry, _camera, 0, 0, 1); // near\r\n\r\n\t\t\tsetPoint('n1', pointMap, geometry, _camera, -w, -h, -1);\r\n\t\t\tsetPoint('n2', pointMap, geometry, _camera, w, -h, -1);\r\n\t\t\tsetPoint('n3', pointMap, geometry, _camera, -w, h, -1);\r\n\t\t\tsetPoint('n4', pointMap, geometry, _camera, w, h, -1); // far\r\n\r\n\t\t\tsetPoint('f1', pointMap, geometry, _camera, -w, -h, 1);\r\n\t\t\tsetPoint('f2', pointMap, geometry, _camera, w, -h, 1);\r\n\t\t\tsetPoint('f3', pointMap, geometry, _camera, -w, h, 1);\r\n\t\t\tsetPoint('f4', pointMap, geometry, _camera, w, h, 1); // up\r\n\r\n\t\t\tsetPoint('u1', pointMap, geometry, _camera, w * 0.7, h * 1.1, -1);\r\n\t\t\tsetPoint('u2', pointMap, geometry, _camera, -w * 0.7, h * 1.1, -1);\r\n\t\t\tsetPoint('u3', pointMap, geometry, _camera, 0, h * 2, -1); // cross\r\n\r\n\t\t\tsetPoint('cf1', pointMap, geometry, _camera, -w, 0, 1);\r\n\t\t\tsetPoint('cf2', pointMap, geometry, _camera, w, 0, 1);\r\n\t\t\tsetPoint('cf3', pointMap, geometry, _camera, 0, -h, 1);\r\n\t\t\tsetPoint('cf4', pointMap, geometry, _camera, 0, h, 1);\r\n\t\t\tsetPoint('cn1', pointMap, geometry, _camera, -w, 0, -1);\r\n\t\t\tsetPoint('cn2', pointMap, geometry, _camera, w, 0, -1);\r\n\t\t\tsetPoint('cn3', pointMap, geometry, _camera, 0, -h, -1);\r\n\t\t\tsetPoint('cn4', pointMap, geometry, _camera, 0, h, -1);\r\n\t\t\tgeometry.getAttribute('position').needsUpdate = true;\r\n\t\t};\r\n\r\n\t\treturn CameraHelper;\r\n\t}(LineSegments);\r\n\r\n\tfunction setPoint(point, pointMap, geometry, camera, x, y, z) {\r\n\t\t_vector$b.set(x, y, z).unproject(camera);\r\n\r\n\t\tvar points = pointMap[point];\r\n\r\n\t\tif (points !== undefined) {\r\n\t\t\tvar position = geometry.getAttribute('position');\r\n\r\n\t\t\tfor (var i = 0, l = points.length; i < l; i++) {\r\n\t\t\t\tposition.setXYZ(points[i], _vector$b.x, _vector$b.y, _vector$b.z);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tvar _box$3 = /*@__PURE__*/new Box3();\r\n\r\n\tvar BoxHelper = /*#__PURE__*/function (_LineSegments) {\r\n\t\t_inheritsLoose(BoxHelper, _LineSegments);\r\n\r\n\t\tfunction BoxHelper(object, color) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\tif (color === void 0) {\r\n\t\t\t\tcolor = 0xffff00;\r\n\t\t\t}\r\n\r\n\t\t\tvar indices = new 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]);\r\n\t\t\tvar positions = new Float32Array(8 * 3);\r\n\t\t\tvar geometry = new BufferGeometry();\r\n\t\t\tgeometry.setIndex(new BufferAttribute(indices, 1));\r\n\t\t\tgeometry.setAttribute('position', new BufferAttribute(positions, 3));\r\n\t\t\t_this = _LineSegments.call(this, geometry, new LineBasicMaterial({\r\n\t\t\t\tcolor: color,\r\n\t\t\t\ttoneMapped: false\r\n\t\t\t})) || this;\r\n\t\t\t_this.object = object;\r\n\t\t\t_this.type = 'BoxHelper';\r\n\t\t\t_this.matrixAutoUpdate = false;\r\n\r\n\t\t\t_this.update();\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\tvar _proto = BoxHelper.prototype;\r\n\r\n\t\t_proto.update = function update(object) {\r\n\t\t\tif (object !== undefined) {\r\n\t\t\t\tconsole.warn('THREE.BoxHelper: .update() has no longer arguments.');\r\n\t\t\t}\r\n\r\n\t\t\tif (this.object !== undefined) {\r\n\t\t\t\t_box$3.setFromObject(this.object);\r\n\t\t\t}\r\n\r\n\t\t\tif (_box$3.isEmpty()) return;\r\n\t\t\tvar min = _box$3.min;\r\n\t\t\tvar max = _box$3.max;\r\n\t\t\t/*\r\n\t\t\t\t5____4\r\n\t\t\t1/___0/|\r\n\t\t\t| 6__|_7\r\n\t\t\t2/___3/\r\n\t\t\t\t0: max.x, max.y, max.z\r\n\t\t\t1: min.x, max.y, max.z\r\n\t\t\t2: min.x, min.y, max.z\r\n\t\t\t3: max.x, min.y, max.z\r\n\t\t\t4: max.x, max.y, min.z\r\n\t\t\t5: min.x, max.y, min.z\r\n\t\t\t6: min.x, min.y, min.z\r\n\t\t\t7: max.x, min.y, min.z\r\n\t\t\t*/\r\n\r\n\t\t\tvar position = this.geometry.attributes.position;\r\n\t\t\tvar array = position.array;\r\n\t\t\tarray[0] = max.x;\r\n\t\t\tarray[1] = max.y;\r\n\t\t\tarray[2] = max.z;\r\n\t\t\tarray[3] = min.x;\r\n\t\t\tarray[4] = max.y;\r\n\t\t\tarray[5] = max.z;\r\n\t\t\tarray[6] = min.x;\r\n\t\t\tarray[7] = min.y;\r\n\t\t\tarray[8] = max.z;\r\n\t\t\tarray[9] = max.x;\r\n\t\t\tarray[10] = min.y;\r\n\t\t\tarray[11] = max.z;\r\n\t\t\tarray[12] = max.x;\r\n\t\t\tarray[13] = max.y;\r\n\t\t\tarray[14] = min.z;\r\n\t\t\tarray[15] = min.x;\r\n\t\t\tarray[16] = max.y;\r\n\t\t\tarray[17] = min.z;\r\n\t\t\tarray[18] = min.x;\r\n\t\t\tarray[19] = min.y;\r\n\t\t\tarray[20] = min.z;\r\n\t\t\tarray[21] = max.x;\r\n\t\t\tarray[22] = min.y;\r\n\t\t\tarray[23] = min.z;\r\n\t\t\tposition.needsUpdate = true;\r\n\t\t\tthis.geometry.computeBoundingSphere();\r\n\t\t};\r\n\r\n\t\t_proto.setFromObject = function setFromObject(object) {\r\n\t\t\tthis.object = object;\r\n\t\t\tthis.update();\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\t_proto.copy = function copy(source) {\r\n\t\t\tLineSegments.prototype.copy.call(this, source);\r\n\t\t\tthis.object = source.object;\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\treturn BoxHelper;\r\n\t}(LineSegments);\r\n\r\n\tvar Box3Helper = /*#__PURE__*/function (_LineSegments) {\r\n\t\t_inheritsLoose(Box3Helper, _LineSegments);\r\n\r\n\t\tfunction Box3Helper(box, color) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\tif (color === void 0) {\r\n\t\t\t\tcolor = 0xffff00;\r\n\t\t\t}\r\n\r\n\t\t\tvar indices = new 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]);\r\n\t\t\tvar positions = [1, 1, 1, -1, 1, 1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1];\r\n\t\t\tvar geometry = new BufferGeometry();\r\n\t\t\tgeometry.setIndex(new BufferAttribute(indices, 1));\r\n\t\t\tgeometry.setAttribute('position', new Float32BufferAttribute(positions, 3));\r\n\t\t\t_this = _LineSegments.call(this, geometry, new LineBasicMaterial({\r\n\t\t\t\tcolor: color,\r\n\t\t\t\ttoneMapped: false\r\n\t\t\t})) || this;\r\n\t\t\t_this.box = box;\r\n\t\t\t_this.type = 'Box3Helper';\r\n\r\n\t\t\t_this.geometry.computeBoundingSphere();\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\tvar _proto = Box3Helper.prototype;\r\n\r\n\t\t_proto.updateMatrixWorld = function updateMatrixWorld(force) {\r\n\t\t\tvar box = this.box;\r\n\t\t\tif (box.isEmpty()) return;\r\n\t\t\tbox.getCenter(this.position);\r\n\t\t\tbox.getSize(this.scale);\r\n\t\t\tthis.scale.multiplyScalar(0.5);\r\n\r\n\t\t\t_LineSegments.prototype.updateMatrixWorld.call(this, force);\r\n\t\t};\r\n\r\n\t\treturn Box3Helper;\r\n\t}(LineSegments);\r\n\r\n\tvar PlaneHelper = /*#__PURE__*/function (_Line) {\r\n\t\t_inheritsLoose(PlaneHelper, _Line);\r\n\r\n\t\tfunction PlaneHelper(plane, size, hex) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\tif (size === void 0) {\r\n\t\t\t\tsize = 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (hex === void 0) {\r\n\t\t\t\thex = 0xffff00;\r\n\t\t\t}\r\n\r\n\t\t\tvar color = hex;\r\n\t\t\tvar positions = [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];\r\n\t\t\tvar geometry = new BufferGeometry();\r\n\t\t\tgeometry.setAttribute('position', new Float32BufferAttribute(positions, 3));\r\n\t\t\tgeometry.computeBoundingSphere();\r\n\t\t\t_this = _Line.call(this, geometry, new LineBasicMaterial({\r\n\t\t\t\tcolor: color,\r\n\t\t\t\ttoneMapped: false\r\n\t\t\t})) || this;\r\n\t\t\t_this.type = 'PlaneHelper';\r\n\t\t\t_this.plane = plane;\r\n\t\t\t_this.size = size;\r\n\t\t\tvar positions2 = [1, 1, 1, -1, 1, 1, -1, -1, 1, 1, 1, 1, -1, -1, 1, 1, -1, 1];\r\n\t\t\tvar geometry2 = new BufferGeometry();\r\n\t\t\tgeometry2.setAttribute('position', new Float32BufferAttribute(positions2, 3));\r\n\t\t\tgeometry2.computeBoundingSphere();\r\n\r\n\t\t\t_this.add(new Mesh(geometry2, new MeshBasicMaterial({\r\n\t\t\t\tcolor: color,\r\n\t\t\t\topacity: 0.2,\r\n\t\t\t\ttransparent: true,\r\n\t\t\t\tdepthWrite: false,\r\n\t\t\t\ttoneMapped: false\r\n\t\t\t})));\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\tvar _proto = PlaneHelper.prototype;\r\n\r\n\t\t_proto.updateMatrixWorld = function updateMatrixWorld(force) {\r\n\t\t\tvar scale = -this.plane.constant;\r\n\t\t\tif (Math.abs(scale) < 1e-8) scale = 1e-8; // sign does not matter\r\n\r\n\t\t\tthis.scale.set(0.5 * this.size, 0.5 * this.size, scale);\r\n\t\t\tthis.children[0].material.side = scale < 0 ? BackSide : FrontSide; // renderer flips side when determinant < 0; flipping not wanted here\r\n\r\n\t\t\tthis.lookAt(this.plane.normal);\r\n\r\n\t\t\t_Line.prototype.updateMatrixWorld.call(this, force);\r\n\t\t};\r\n\r\n\t\treturn PlaneHelper;\r\n\t}(Line);\r\n\r\n\tvar _axis = /*@__PURE__*/new Vector3();\r\n\r\n\tvar _lineGeometry, _coneGeometry;\r\n\r\n\tvar ArrowHelper = /*#__PURE__*/function (_Object3D) {\r\n\t\t_inheritsLoose(ArrowHelper, _Object3D);\r\n\r\n\t\tfunction ArrowHelper(dir, origin, length, color, headLength, headWidth) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\t_this = _Object3D.call(this) || this; // dir is assumed to be normalized\r\n\r\n\t\t\t_this.type = 'ArrowHelper';\r\n\t\t\tif (dir === undefined) dir = new Vector3(0, 0, 1);\r\n\t\t\tif (origin === undefined) origin = new Vector3(0, 0, 0);\r\n\t\t\tif (length === undefined) length = 1;\r\n\t\t\tif (color === undefined) color = 0xffff00;\r\n\t\t\tif (headLength === undefined) headLength = 0.2 * length;\r\n\t\t\tif (headWidth === undefined) headWidth = 0.2 * headLength;\r\n\r\n\t\t\tif (_lineGeometry === undefined) {\r\n\t\t\t\t_lineGeometry = new BufferGeometry();\r\n\r\n\t\t\t\t_lineGeometry.setAttribute('position', new Float32BufferAttribute([0, 0, 0, 0, 1, 0], 3));\r\n\r\n\t\t\t\t_coneGeometry = new CylinderBufferGeometry(0, 0.5, 1, 5, 1);\r\n\r\n\t\t\t\t_coneGeometry.translate(0, -0.5, 0);\r\n\t\t\t}\r\n\r\n\t\t\t_this.position.copy(origin);\r\n\r\n\t\t\t_this.line = new Line(_lineGeometry, new LineBasicMaterial({\r\n\t\t\t\tcolor: color,\r\n\t\t\t\ttoneMapped: false\r\n\t\t\t}));\r\n\t\t\t_this.line.matrixAutoUpdate = false;\r\n\r\n\t\t\t_this.add(_this.line);\r\n\r\n\t\t\t_this.cone = new Mesh(_coneGeometry, new MeshBasicMaterial({\r\n\t\t\t\tcolor: color,\r\n\t\t\t\ttoneMapped: false\r\n\t\t\t}));\r\n\t\t\t_this.cone.matrixAutoUpdate = false;\r\n\r\n\t\t\t_this.add(_this.cone);\r\n\r\n\t\t\t_this.setDirection(dir);\r\n\r\n\t\t\t_this.setLength(length, headLength, headWidth);\r\n\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\tvar _proto = ArrowHelper.prototype;\r\n\r\n\t\t_proto.setDirection = function setDirection(dir) {\r\n\t\t\t// dir is assumed to be normalized\r\n\t\t\tif (dir.y > 0.99999) {\r\n\t\t\t\tthis.quaternion.set(0, 0, 0, 1);\r\n\t\t\t} else if (dir.y < -0.99999) {\r\n\t\t\t\tthis.quaternion.set(1, 0, 0, 0);\r\n\t\t\t} else {\r\n\t\t\t\t_axis.set(dir.z, 0, -dir.x).normalize();\r\n\r\n\t\t\t\tvar radians = Math.acos(dir.y);\r\n\t\t\t\tthis.quaternion.setFromAxisAngle(_axis, radians);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t_proto.setLength = function setLength(length, headLength, headWidth) {\r\n\t\t\tif (headLength === undefined) headLength = 0.2 * length;\r\n\t\t\tif (headWidth === undefined) headWidth = 0.2 * headLength;\r\n\t\t\tthis.line.scale.set(1, Math.max(0.0001, length - headLength), 1); // see #17458\r\n\r\n\t\t\tthis.line.updateMatrix();\r\n\t\t\tthis.cone.scale.set(headWidth, headLength, headWidth);\r\n\t\t\tthis.cone.position.y = length;\r\n\t\t\tthis.cone.updateMatrix();\r\n\t\t};\r\n\r\n\t\t_proto.setColor = function setColor(color) {\r\n\t\t\tthis.line.material.color.set(color);\r\n\t\t\tthis.cone.material.color.set(color);\r\n\t\t};\r\n\r\n\t\t_proto.copy = function copy(source) {\r\n\t\t\t_Object3D.prototype.copy.call(this, source, false);\r\n\r\n\t\t\tthis.line.copy(source.line);\r\n\t\t\tthis.cone.copy(source.cone);\r\n\t\t\treturn this;\r\n\t\t};\r\n\r\n\t\treturn ArrowHelper;\r\n\t}(Object3D);\r\n\r\n\tvar AxesHelper = /*#__PURE__*/function (_LineSegments) {\r\n\t\t_inheritsLoose(AxesHelper, _LineSegments);\r\n\r\n\t\tfunction AxesHelper(size) {\r\n\t\t\tvar _this;\r\n\r\n\t\t\tif (size === void 0) {\r\n\t\t\t\tsize = 1;\r\n\t\t\t}\r\n\r\n\t\t\tvar vertices = [0, 0, 0, size, 0, 0, 0, 0, 0, 0, size, 0, 0, 0, 0, 0, 0, size];\r\n\t\t\tvar colors = [1, 0, 0, 1, 0.6, 0, 0, 1, 0, 0.6, 1, 0, 0, 0, 1, 0, 0.6, 1];\r\n\t\t\tvar geometry = new BufferGeometry();\r\n\t\t\tgeometry.setAttribute('position', new Float32BufferAttribute(vertices, 3));\r\n\t\t\tgeometry.setAttribute('color', new Float32BufferAttribute(colors, 3));\r\n\t\t\tvar material = new LineBasicMaterial({\r\n\t\t\t\tvertexColors: true,\r\n\t\t\t\ttoneMapped: false\r\n\t\t\t});\r\n\t\t\t_this = _LineSegments.call(this, geometry, material) || this;\r\n\t\t\t_this.type = 'AxesHelper';\r\n\t\t\treturn _this;\r\n\t\t}\r\n\r\n\t\treturn AxesHelper;\r\n\t}(LineSegments);\r\n\r\n\tvar _floatView = new Float32Array(1);\r\n\r\n\tvar _int32View = new Int32Array(_floatView.buffer);\r\n\r\n\tvar DataUtils = {\r\n\t\t// Converts float32 to float16 (stored as uint16 value).\r\n\t\ttoHalfFloat: function toHalfFloat(val) {\r\n\t\t\t// Source: http://gamedev.stackexchange.com/questions/17326/conversion-of-a-number-from-single-precision-floating-point-representation-to-a/17410#17410\r\n\r\n\t\t\t/* This method is faster than the OpenEXR implementation (very often\r\n\t\t\t* used, eg. in Ogre), with the additional benefit of rounding, inspired\r\n\t\t\t* by James Tursa?s half-precision code. */\r\n\t\t\t_floatView[0] = val;\r\n\t\t\tvar x = _int32View[0];\r\n\t\t\tvar bits = x >> 16 & 0x8000;\r\n\t\t\t/* Get the sign */\r\n\r\n\t\t\tvar m = x >> 12 & 0x07ff;\r\n\t\t\t/* Keep one extra bit for rounding */\r\n\r\n\t\t\tvar e = x >> 23 & 0xff;\r\n\t\t\t/* Using int is faster here */\r\n\r\n\t\t\t/* If zero, or denormal, or exponent underflows too much for a denormal\r\n\t\t\t\t* half, return signed zero. */\r\n\r\n\t\t\tif (e < 103) return bits;\r\n\t\t\t/* If NaN, return NaN. If Inf or exponent overflow, return Inf. */\r\n\r\n\t\t\tif (e > 142) {\r\n\t\t\t\tbits |= 0x7c00;\r\n\t\t\t\t/* If exponent was 0xff and one mantissa bit was set, it means NaN,\r\n\t\t\t\t\t\t\t* not Inf, so make sure we set one mantissa bit too. */\r\n\r\n\t\t\t\tbits |= (e == 255 ? 0 : 1) && x & 0x007fffff;\r\n\t\t\t\treturn bits;\r\n\t\t\t}\r\n\t\t\t/* If exponent underflows but not too much, return a denormal */\r\n\r\n\r\n\t\t\tif (e < 113) {\r\n\t\t\t\tm |= 0x0800;\r\n\t\t\t\t/* Extra rounding may overflow and set mantissa to 0 and exponent\r\n\t\t\t\t\t* to 1, which is OK. */\r\n\r\n\t\t\t\tbits |= (m >> 114 - e) + (m >> 113 - e & 1);\r\n\t\t\t\treturn bits;\r\n\t\t\t}\r\n\r\n\t\t\tbits |= e - 112 << 10 | m >> 1;\r\n\t\t\t/* Extra rounding. An overflow will set mantissa to 0 and increment\r\n\t\t\t\t* the exponent, which is OK. */\r\n\r\n\t\t\tbits += m & 1;\r\n\t\t\treturn bits;\r\n\t\t}\r\n\t};\r\n\r\n\tvar _ENCODINGS;\r\n\tvar LOD_MIN = 4;\r\n\tvar LOD_MAX = 8;\r\n\tvar SIZE_MAX = Math.pow(2, LOD_MAX); // The standard deviations (radians) associated with the extra mips. These are\r\n\t// chosen to approximate a Trowbridge-Reitz distribution function times the\r\n\t// geometric shadowing function. These sigma values squared must match the\r\n\t// variance #defines in cube_uv_reflection_fragment.glsl.js.\r\n\r\n\tvar EXTRA_LOD_SIGMA = [0.125, 0.215, 0.35, 0.446, 0.526, 0.582];\r\n\tvar TOTAL_LODS = LOD_MAX - LOD_MIN + 1 + EXTRA_LOD_SIGMA.length; // The maximum length of the blur for loop. Smaller sigmas will use fewer\r\n\t// samples and exit early, but not recompile the shader.\r\n\r\n\tvar MAX_SAMPLES = 20;\r\n\tvar ENCODINGS = (_ENCODINGS = {}, _ENCODINGS[LinearEncoding] = 0, _ENCODINGS[sRGBEncoding] = 1, _ENCODINGS[RGBEEncoding] = 2, _ENCODINGS[RGBM7Encoding] = 3, _ENCODINGS[RGBM16Encoding] = 4, _ENCODINGS[RGBDEncoding] = 5, _ENCODINGS[GammaEncoding] = 6, _ENCODINGS);\r\n\r\n\tvar _flatCamera = /*@__PURE__*/new OrthographicCamera();\r\n\r\n\tvar _createPlanes2 = /*@__PURE__*/_createPlanes(),\r\n\t\t\t_lodPlanes = _createPlanes2._lodPlanes,\r\n\t\t\t_sizeLods = _createPlanes2._sizeLods,\r\n\t\t\t_sigmas = _createPlanes2._sigmas;\r\n\r\n\tvar _oldTarget = null; // Golden Ratio\r\n\r\n\tvar PHI = (1 + Math.sqrt(5)) / 2;\r\n\tvar INV_PHI = 1 / PHI; // Vertices of a dodecahedron (except the opposites, which represent the\r\n\t// same axis), used as axis directions evenly spread on a sphere.\r\n\r\n\tvar _axisDirections = [/*@__PURE__*/new Vector3(1, 1, 1), /*@__PURE__*/new Vector3(-1, 1, 1), /*@__PURE__*/new Vector3(1, 1, -1), /*@__PURE__*/new Vector3(-1, 1, -1), /*@__PURE__*/new Vector3(0, PHI, INV_PHI), /*@__PURE__*/new Vector3(0, PHI, -INV_PHI), /*@__PURE__*/new Vector3(INV_PHI, 0, PHI), /*@__PURE__*/new Vector3(-INV_PHI, 0, PHI), /*@__PURE__*/new Vector3(PHI, INV_PHI, 0), /*@__PURE__*/new Vector3(-PHI, INV_PHI, 0)];\r\n\t/**\r\n\t * This class generates a Prefiltered, Mipmapped Radiance Environment Map\r\n\t * (PMREM) from a cubeMap environment texture. This allows different levels of\r\n\t * blur to be quickly accessed based on material roughness. It is packed into a\r\n\t * special CubeUV format that allows us to perform custom interpolation so that\r\n\t * we can support nonlinear formats such as RGBE. Unlike a traditional mipmap\r\n\t * chain, it only goes down to the LOD_MIN level (above), and then creates extra\r\n\t * even more filtered 'mips' at the same LOD_MIN resolution, associated with\r\n\t * higher roughness levels. In this way we maintain resolution to smoothly\r\n\t * interpolate diffuse lighting while limiting sampling computation.\r\n\t */\r\n\r\n\tvar PMREMGenerator = /*#__PURE__*/function () {\r\n\t\tfunction PMREMGenerator(renderer) {\r\n\t\t\tthis._renderer = renderer;\r\n\t\t\tthis._pingPongRenderTarget = null;\r\n\t\t\tthis._blurMaterial = _getBlurShader(MAX_SAMPLES);\r\n\t\t\tthis._equirectShader = null;\r\n\t\t\tthis._cubemapShader = null;\r\n\r\n\t\t\tthis._compileMaterial(this._blurMaterial);\r\n\t\t}\r\n\t\t/**\r\n\t\t * Generates a PMREM from a supplied Scene, which can be faster than using an\r\n\t\t * image if networking bandwidth is low. Optional sigma specifies a blur radius\r\n\t\t * in radians to be applied to the scene before PMREM generation. Optional near\r\n\t\t * and far planes ensure the scene is rendered in its entirety (the cubeCamera\r\n\t\t * is placed at the origin).\r\n\t\t */\r\n\r\n\r\n\t\tvar _proto = PMREMGenerator.prototype;\r\n\r\n\t\t_proto.fromScene = function fromScene(scene, sigma, near, far) {\r\n\t\t\tif (sigma === void 0) {\r\n\t\t\t\tsigma = 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (near === void 0) {\r\n\t\t\t\tnear = 0.1;\r\n\t\t\t}\r\n\r\n\t\t\tif (far === void 0) {\r\n\t\t\t\tfar = 100;\r\n\t\t\t}\r\n\r\n\t\t\t_oldTarget = this._renderer.getRenderTarget();\r\n\r\n\t\t\tvar cubeUVRenderTarget = this._allocateTargets();\r\n\r\n\t\t\tthis._sceneToCubeUV(scene, near, far, cubeUVRenderTarget);\r\n\r\n\t\t\tif (sigma > 0) {\r\n\t\t\t\tthis._blur(cubeUVRenderTarget, 0, 0, sigma);\r\n\t\t\t}\r\n\r\n\t\t\tthis._applyPMREM(cubeUVRenderTarget);\r\n\r\n\t\t\tthis._cleanup(cubeUVRenderTarget);\r\n\r\n\t\t\treturn cubeUVRenderTarget;\r\n\t\t}\r\n\t\t/**\r\n\t\t * Generates a PMREM from an equirectangular texture, which can be either LDR\r\n\t\t * (RGBFormat) or HDR (RGBEFormat). The ideal input image size is 1k (1024 x 512),\r\n\t\t * as this matches best with the 256 x 256 cubemap output.\r\n\t\t */\r\n\t\t;\r\n\r\n\t\t_proto.fromEquirectangular = function fromEquirectangular(equirectangular) {\r\n\t\t\treturn this._fromTexture(equirectangular);\r\n\t\t}\r\n\t\t/**\r\n\t\t * Generates a PMREM from an cubemap texture, which can be either LDR\r\n\t\t * (RGBFormat) or HDR (RGBEFormat). The ideal input cube size is 256 x 256,\r\n\t\t * as this matches best with the 256 x 256 cubemap output.\r\n\t\t */\r\n\t\t;\r\n\r\n\t\t_proto.fromCubemap = function fromCubemap(cubemap) {\r\n\t\t\treturn this._fromTexture(cubemap);\r\n\t\t}\r\n\t\t/**\r\n\t\t * Pre-compiles the cubemap shader. You can get faster start-up by invoking this method during\r\n\t\t * your texture's network fetch for increased concurrency.\r\n\t\t */\r\n\t\t;\r\n\r\n\t\t_proto.compileCubemapShader = function compileCubemapShader() {\r\n\t\t\tif (this._cubemapShader === null) {\r\n\t\t\t\tthis._cubemapShader = _getCubemapShader();\r\n\r\n\t\t\t\tthis._compileMaterial(this._cubemapShader);\r\n\t\t\t}\r\n\t\t}\r\n\t\t/**\r\n\t\t * Pre-compiles the equirectangular shader. You can get faster start-up by invoking this method during\r\n\t\t * your texture's network fetch for increased concurrency.\r\n\t\t */\r\n\t\t;\r\n\r\n\t\t_proto.compileEquirectangularShader = function compileEquirectangularShader() {\r\n\t\t\tif (this._equirectShader === null) {\r\n\t\t\t\tthis._equirectShader = _getEquirectShader();\r\n\r\n\t\t\t\tthis._compileMaterial(this._equirectShader);\r\n\t\t\t}\r\n\t\t}\r\n\t\t/**\r\n\t\t * Disposes of the PMREMGenerator's internal memory. Note that PMREMGenerator is a static class,\r\n\t\t * so you should not need more than one PMREMGenerator object. If you do, calling dispose() on\r\n\t\t * one of them will cause any others to also become unusable.\r\n\t\t */\r\n\t\t;\r\n\r\n\t\t_proto.dispose = function dispose() {\r\n\t\t\tthis._blurMaterial.dispose();\r\n\r\n\t\t\tif (this._cubemapShader !== null) this._cubemapShader.dispose();\r\n\t\t\tif (this._equirectShader !== null) this._equirectShader.dispose();\r\n\r\n\t\t\tfor (var i = 0; i < _lodPlanes.length; i++) {\r\n\t\t\t\t_lodPlanes[i].dispose();\r\n\t\t\t}\r\n\t\t} // private interface\r\n\t\t;\r\n\r\n\t\t_proto._cleanup = function _cleanup(outputTarget) {\r\n\t\t\tthis._pingPongRenderTarget.dispose();\r\n\r\n\t\t\tthis._renderer.setRenderTarget(_oldTarget);\r\n\r\n\t\t\toutputTarget.scissorTest = false;\r\n\r\n\t\t\t_setViewport(outputTarget, 0, 0, outputTarget.width, outputTarget.height);\r\n\t\t};\r\n\r\n\t\t_proto._fromTexture = function _fromTexture(texture) {\r\n\t\t\t_oldTarget = this._renderer.getRenderTarget();\r\n\r\n\t\t\tvar cubeUVRenderTarget = this._allocateTargets(texture);\r\n\r\n\t\t\tthis._textureToCubeUV(texture, cubeUVRenderTarget);\r\n\r\n\t\t\tthis._applyPMREM(cubeUVRenderTarget);\r\n\r\n\t\t\tthis._cleanup(cubeUVRenderTarget);\r\n\r\n\t\t\treturn cubeUVRenderTarget;\r\n\t\t};\r\n\r\n\t\t_proto._allocateTargets = function _allocateTargets(texture) {\r\n\t\t\t// warning: null texture is valid\r\n\t\t\tvar params = {\r\n\t\t\t\tmagFilter: NearestFilter,\r\n\t\t\t\tminFilter: NearestFilter,\r\n\t\t\t\tgenerateMipmaps: false,\r\n\t\t\t\ttype: UnsignedByteType,\r\n\t\t\t\tformat: RGBEFormat,\r\n\t\t\t\tencoding: _isLDR(texture) ? texture.encoding : RGBEEncoding,\r\n\t\t\t\tdepthBuffer: false\r\n\t\t\t};\r\n\r\n\t\t\tvar cubeUVRenderTarget = _createRenderTarget(params);\r\n\r\n\t\t\tcubeUVRenderTarget.depthBuffer = texture ? false : true;\r\n\t\t\tthis._pingPongRenderTarget = _createRenderTarget(params);\r\n\t\t\treturn cubeUVRenderTarget;\r\n\t\t};\r\n\r\n\t\t_proto._compileMaterial = function _compileMaterial(material) {\r\n\t\t\tvar tmpMesh = new Mesh(_lodPlanes[0], material);\r\n\r\n\t\t\tthis._renderer.compile(tmpMesh, _flatCamera);\r\n\t\t};\r\n\r\n\t\t_proto._sceneToCubeUV = function _sceneToCubeUV(scene, near, far, cubeUVRenderTarget) {\r\n\t\t\tvar fov = 90;\r\n\t\t\tvar aspect = 1;\r\n\t\t\tvar cubeCamera = new PerspectiveCamera(fov, aspect, near, far);\r\n\t\t\tvar upSign = [1, -1, 1, 1, 1, 1];\r\n\t\t\tvar forwardSign = [1, 1, 1, -1, -1, -1];\r\n\t\t\tvar renderer = this._renderer;\r\n\t\t\tvar outputEncoding = renderer.outputEncoding;\r\n\t\t\tvar toneMapping = renderer.toneMapping;\r\n\t\t\tvar clearColor = renderer.getClearColor();\r\n\t\t\tvar clearAlpha = renderer.getClearAlpha();\r\n\t\t\trenderer.toneMapping = NoToneMapping;\r\n\t\t\trenderer.outputEncoding = LinearEncoding;\r\n\t\t\tvar background = scene.background;\r\n\r\n\t\t\tif (background && background.isColor) {\r\n\t\t\t\tbackground.convertSRGBToLinear(); // Convert linear to RGBE\r\n\r\n\t\t\t\tvar maxComponent = Math.max(background.r, background.g, background.b);\r\n\t\t\t\tvar fExp = Math.min(Math.max(Math.ceil(Math.log2(maxComponent)), -128.0), 127.0);\r\n\t\t\t\tbackground = background.multiplyScalar(Math.pow(2.0, -fExp));\r\n\t\t\t\tvar alpha = (fExp + 128.0) / 255.0;\r\n\t\t\t\trenderer.setClearColor(background, alpha);\r\n\t\t\t\tscene.background = null;\r\n\t\t\t}\r\n\r\n\t\t\tfor (var i = 0; i < 6; i++) {\r\n\t\t\t\tvar col = i % 3;\r\n\r\n\t\t\t\tif (col == 0) {\r\n\t\t\t\t\tcubeCamera.up.set(0, upSign[i], 0);\r\n\t\t\t\t\tcubeCamera.lookAt(forwardSign[i], 0, 0);\r\n\t\t\t\t} else if (col == 1) {\r\n\t\t\t\t\tcubeCamera.up.set(0, 0, upSign[i]);\r\n\t\t\t\t\tcubeCamera.lookAt(0, forwardSign[i], 0);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcubeCamera.up.set(0, upSign[i], 0);\r\n\t\t\t\t\tcubeCamera.lookAt(0, 0, forwardSign[i]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t_setViewport(cubeUVRenderTarget, col * SIZE_MAX, i > 2 ? SIZE_MAX : 0, SIZE_MAX, SIZE_MAX);\r\n\r\n\t\t\t\trenderer.setRenderTarget(cubeUVRenderTarget);\r\n\t\t\t\trenderer.render(scene, cubeCamera);\r\n\t\t\t}\r\n\r\n\t\t\trenderer.toneMapping = toneMapping;\r\n\t\t\trenderer.outputEncoding = outputEncoding;\r\n\t\t\trenderer.setClearColor(clearColor, clearAlpha);\r\n\t\t};\r\n\r\n\t\t_proto._textureToCubeUV = function _textureToCubeUV(texture, cubeUVRenderTarget) {\r\n\t\t\tvar renderer = this._renderer;\r\n\r\n\t\t\tif (texture.isCubeTexture) {\r\n\t\t\t\tif (this._cubemapShader == null) {\r\n\t\t\t\t\tthis._cubemapShader = _getCubemapShader();\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tif (this._equirectShader == null) {\r\n\t\t\t\t\tthis._equirectShader = _getEquirectShader();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar material = texture.isCubeTexture ? this._cubemapShader : this._equirectShader;\r\n\t\t\tvar mesh = new Mesh(_lodPlanes[0], material);\r\n\t\t\tvar uniforms = material.uniforms;\r\n\t\t\tuniforms['envMap'].value = texture;\r\n\r\n\t\t\tif (!texture.isCubeTexture) {\r\n\t\t\t\tuniforms['texelSize'].value.set(1.0 / texture.image.width, 1.0 / texture.image.height);\r\n\t\t\t}\r\n\r\n\t\t\tuniforms['inputEncoding'].value = ENCODINGS[texture.encoding];\r\n\t\t\tuniforms['outputEncoding'].value = ENCODINGS[cubeUVRenderTarget.texture.encoding];\r\n\r\n\t\t\t_setViewport(cubeUVRenderTarget, 0, 0, 3 * SIZE_MAX, 2 * SIZE_MAX);\r\n\r\n\t\t\trenderer.setRenderTarget(cubeUVRenderTarget);\r\n\t\t\trenderer.render(mesh, _flatCamera);\r\n\t\t};\r\n\r\n\t\t_proto._applyPMREM = function _applyPMREM(cubeUVRenderTarget) {\r\n\t\t\tvar renderer = this._renderer;\r\n\t\t\tvar autoClear = renderer.autoClear;\r\n\t\t\trenderer.autoClear = false;\r\n\r\n\t\t\tfor (var i = 1; i < TOTAL_LODS; i++) {\r\n\t\t\t\tvar sigma = Math.sqrt(_sigmas[i] * _sigmas[i] - _sigmas[i - 1] * _sigmas[i - 1]);\r\n\t\t\t\tvar poleAxis = _axisDirections[(i - 1) % _axisDirections.length];\r\n\r\n\t\t\t\tthis._blur(cubeUVRenderTarget, i - 1, i, sigma, poleAxis);\r\n\t\t\t}\r\n\r\n\t\t\trenderer.autoClear = autoClear;\r\n\t\t}\r\n\t\t/**\r\n\t\t * This is a two-pass Gaussian blur for a cubemap. Normally this is done\r\n\t\t * vertically and horizontally, but this breaks down on a cube. Here we apply\r\n\t\t * the blur latitudinally (around the poles), and then longitudinally (towards\r\n\t\t * the poles) to approximate the orthogonally-separable blur. It is least\r\n\t\t * accurate at the poles, but still does a decent job.\r\n\t\t */\r\n\t\t;\r\n\r\n\t\t_proto._blur = function _blur(cubeUVRenderTarget, lodIn, lodOut, sigma, poleAxis) {\r\n\t\t\tvar pingPongRenderTarget = this._pingPongRenderTarget;\r\n\r\n\t\t\tthis._halfBlur(cubeUVRenderTarget, pingPongRenderTarget, lodIn, lodOut, sigma, 'latitudinal', poleAxis);\r\n\r\n\t\t\tthis._halfBlur(pingPongRenderTarget, cubeUVRenderTarget, lodOut, lodOut, sigma, 'longitudinal', poleAxis);\r\n\t\t};\r\n\r\n\t\t_proto._halfBlur = function _halfBlur(targetIn, targetOut, lodIn, lodOut, sigmaRadians, direction, poleAxis) {\r\n\t\t\tvar renderer = this._renderer;\r\n\t\t\tvar blurMaterial = this._blurMaterial;\r\n\r\n\t\t\tif (direction !== 'latitudinal' && direction !== 'longitudinal') {\r\n\t\t\t\tconsole.error('blur direction must be either latitudinal or longitudinal!');\r\n\t\t\t} // Number of standard deviations at which to cut off the discrete approximation.\r\n\r\n\r\n\t\t\tvar STANDARD_DEVIATIONS = 3;\r\n\t\t\tvar blurMesh = new Mesh(_lodPlanes[lodOut], blurMaterial);\r\n\t\t\tvar blurUniforms = blurMaterial.uniforms;\r\n\t\t\tvar pixels = _sizeLods[lodIn] - 1;\r\n\t\t\tvar radiansPerPixel = isFinite(sigmaRadians) ? Math.PI / (2 * pixels) : 2 * Math.PI / (2 * MAX_SAMPLES - 1);\r\n\t\t\tvar sigmaPixels = sigmaRadians / radiansPerPixel;\r\n\t\t\tvar samples = isFinite(sigmaRadians) ? 1 + Math.floor(STANDARD_DEVIATIONS * sigmaPixels) : MAX_SAMPLES;\r\n\r\n\t\t\tif (samples > MAX_SAMPLES) {\r\n\t\t\t\tconsole.warn(\"sigmaRadians, \" + sigmaRadians + \", is too large and will clip, as it requested \" + samples + \" samples when the maximum is set to \" + MAX_SAMPLES);\r\n\t\t\t}\r\n\r\n\t\t\tvar weights = [];\r\n\t\t\tvar sum = 0;\r\n\r\n\t\t\tfor (var i = 0; i < MAX_SAMPLES; ++i) {\r\n\t\t\t\tvar _x = i / sigmaPixels;\r\n\r\n\t\t\t\tvar weight = Math.exp(-_x * _x / 2);\r\n\t\t\t\tweights.push(weight);\r\n\r\n\t\t\t\tif (i == 0) {\r\n\t\t\t\t\tsum += weight;\r\n\t\t\t\t} else if (i < samples) {\r\n\t\t\t\t\tsum += 2 * weight;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfor (var _i = 0; _i < weights.length; _i++) {\r\n\t\t\t\tweights[_i] = weights[_i] / sum;\r\n\t\t\t}\r\n\r\n\t\t\tblurUniforms['envMap'].value = targetIn.texture;\r\n\t\t\tblurUniforms['samples'].value = samples;\r\n\t\t\tblurUniforms['weights'].value = weights;\r\n\t\t\tblurUniforms['latitudinal'].value = direction === 'latitudinal';\r\n\r\n\t\t\tif (poleAxis) {\r\n\t\t\t\tblurUniforms['poleAxis'].value = poleAxis;\r\n\t\t\t}\r\n\r\n\t\t\tblurUniforms['dTheta'].value = radiansPerPixel;\r\n\t\t\tblurUniforms['mipInt'].value = LOD_MAX - lodIn;\r\n\t\t\tblurUniforms['inputEncoding'].value = ENCODINGS[targetIn.texture.encoding];\r\n\t\t\tblurUniforms['outputEncoding'].value = ENCODINGS[targetIn.texture.encoding];\r\n\t\t\tvar outputSize = _sizeLods[lodOut];\r\n\t\t\tvar x = 3 * Math.max(0, SIZE_MAX - 2 * outputSize);\r\n\t\t\tvar y = (lodOut === 0 ? 0 : 2 * SIZE_MAX) + 2 * outputSize * (lodOut > LOD_MAX - LOD_MIN ? lodOut - LOD_MAX + LOD_MIN : 0);\r\n\r\n\t\t\t_setViewport(targetOut, x, y, 3 * outputSize, 2 * outputSize);\r\n\r\n\t\t\trenderer.setRenderTarget(targetOut);\r\n\t\t\trenderer.render(blurMesh, _flatCamera);\r\n\t\t};\r\n\r\n\t\treturn PMREMGenerator;\r\n\t}();\r\n\r\n\tfunction _isLDR(texture) {\r\n\t\tif (texture === undefined || texture.type !== UnsignedByteType) return false;\r\n\t\treturn texture.encoding === LinearEncoding || texture.encoding === sRGBEncoding || texture.encoding === GammaEncoding;\r\n\t}\r\n\r\n\tfunction _createPlanes() {\r\n\t\tvar _lodPlanes = [];\r\n\t\tvar _sizeLods = [];\r\n\t\tvar _sigmas = [];\r\n\t\tvar lod = LOD_MAX;\r\n\r\n\t\tfor (var i = 0; i < TOTAL_LODS; i++) {\r\n\t\t\tvar sizeLod = Math.pow(2, lod);\r\n\r\n\t\t\t_sizeLods.push(sizeLod);\r\n\r\n\t\t\tvar sigma = 1.0 / sizeLod;\r\n\r\n\t\t\tif (i > LOD_MAX - LOD_MIN) {\r\n\t\t\t\tsigma = EXTRA_LOD_SIGMA[i - LOD_MAX + LOD_MIN - 1];\r\n\t\t\t} else if (i == 0) {\r\n\t\t\t\tsigma = 0;\r\n\t\t\t}\r\n\r\n\t\t\t_sigmas.push(sigma);\r\n\r\n\t\t\tvar texelSize = 1.0 / (sizeLod - 1);\r\n\t\t\tvar min = -texelSize / 2;\r\n\t\t\tvar max = 1 + texelSize / 2;\r\n\t\t\tvar uv1 = [min, min, max, min, max, max, min, min, max, max, min, max];\r\n\t\t\tvar cubeFaces = 6;\r\n\t\t\tvar vertices = 6;\r\n\t\t\tvar positionSize = 3;\r\n\t\t\tvar uvSize = 2;\r\n\t\t\tvar faceIndexSize = 1;\r\n\t\t\tvar position = new Float32Array(positionSize * vertices * cubeFaces);\r\n\t\t\tvar uv = new Float32Array(uvSize * vertices * cubeFaces);\r\n\t\t\tvar faceIndex = new Float32Array(faceIndexSize * vertices * cubeFaces);\r\n\r\n\t\t\tfor (var face = 0; face < cubeFaces; face++) {\r\n\t\t\t\tvar x = face % 3 * 2 / 3 - 1;\r\n\t\t\t\tvar y = face > 2 ? 0 : -1;\r\n\t\t\t\tvar coordinates = [x, y, 0, x + 2 / 3, y, 0, x + 2 / 3, y + 1, 0, x, y, 0, x + 2 / 3, y + 1, 0, x, y + 1, 0];\r\n\t\t\t\tposition.set(coordinates, positionSize * vertices * face);\r\n\t\t\t\tuv.set(uv1, uvSize * vertices * face);\r\n\t\t\t\tvar fill = [face, face, face, face, face, face];\r\n\t\t\t\tfaceIndex.set(fill, faceIndexSize * vertices * face);\r\n\t\t\t}\r\n\r\n\t\t\tvar planes = new BufferGeometry();\r\n\t\t\tplanes.setAttribute('position', new BufferAttribute(position, positionSize));\r\n\t\t\tplanes.setAttribute('uv', new BufferAttribute(uv, uvSize));\r\n\t\t\tplanes.setAttribute('faceIndex', new BufferAttribute(faceIndex, faceIndexSize));\r\n\r\n\t\t\t_lodPlanes.push(planes);\r\n\r\n\t\t\tif (lod > LOD_MIN) {\r\n\t\t\t\tlod--;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\t_lodPlanes: _lodPlanes,\r\n\t\t\t_sizeLods: _sizeLods,\r\n\t\t\t_sigmas: _sigmas\r\n\t\t};\r\n\t}\r\n\r\n\tfunction _createRenderTarget(params) {\r\n\t\tvar cubeUVRenderTarget = new WebGLRenderTarget(3 * SIZE_MAX, 3 * SIZE_MAX, params);\r\n\t\tcubeUVRenderTarget.texture.mapping = CubeUVReflectionMapping;\r\n\t\tcubeUVRenderTarget.texture.name = 'PMREM.cubeUv';\r\n\t\tcubeUVRenderTarget.scissorTest = true;\r\n\t\treturn cubeUVRenderTarget;\r\n\t}\r\n\r\n\tfunction _setViewport(target, x, y, width, height) {\r\n\t\ttarget.viewport.set(x, y, width, height);\r\n\t\ttarget.scissor.set(x, y, width, height);\r\n\t}\r\n\r\n\tfunction _getBlurShader(maxSamples) {\r\n\t\tvar weights = new Float32Array(maxSamples);\r\n\t\tvar poleAxis = new Vector3(0, 1, 0);\r\n\t\tvar shaderMaterial = new RawShaderMaterial({\r\n\t\t\tname: 'SphericalGaussianBlur',\r\n\t\t\tdefines: {\r\n\t\t\t\t'n': maxSamples\r\n\t\t\t},\r\n\t\t\tuniforms: {\r\n\t\t\t\t'envMap': {\r\n\t\t\t\t\tvalue: null\r\n\t\t\t\t},\r\n\t\t\t\t'samples': {\r\n\t\t\t\t\tvalue: 1\r\n\t\t\t\t},\r\n\t\t\t\t'weights': {\r\n\t\t\t\t\tvalue: weights\r\n\t\t\t\t},\r\n\t\t\t\t'latitudinal': {\r\n\t\t\t\t\tvalue: false\r\n\t\t\t\t},\r\n\t\t\t\t'dTheta': {\r\n\t\t\t\t\tvalue: 0\r\n\t\t\t\t},\r\n\t\t\t\t'mipInt': {\r\n\t\t\t\t\tvalue: 0\r\n\t\t\t\t},\r\n\t\t\t\t'poleAxis': {\r\n\t\t\t\t\tvalue: poleAxis\r\n\t\t\t\t},\r\n\t\t\t\t'inputEncoding': {\r\n\t\t\t\t\tvalue: ENCODINGS[LinearEncoding]\r\n\t\t\t\t},\r\n\t\t\t\t'outputEncoding': {\r\n\t\t\t\t\tvalue: ENCODINGS[LinearEncoding]\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tvertexShader: _getCommonVertexShader(),\r\n\t\t\tfragmentShader:\r\n\t\t\t/* glsl */\r\n\t\t\t\"\\n\\n\\t\\t\\tprecision mediump float;\\n\\t\\t\\tprecision mediump int;\\n\\n\\t\\t\\tvarying vec3 vOutputDirection;\\n\\n\\t\\t\\tuniform sampler2D envMap;\\n\\t\\t\\tuniform int samples;\\n\\t\\t\\tuniform float weights[ n ];\\n\\t\\t\\tuniform bool latitudinal;\\n\\t\\t\\tuniform float dTheta;\\n\\t\\t\\tuniform float mipInt;\\n\\t\\t\\tuniform vec3 poleAxis;\\n\\n\\t\\t\\t\" + _getEncodings() + \"\\n\\n\\t\\t\\t#define ENVMAP_TYPE_CUBE_UV\\n\\t\\t\\t#include \\n\\n\\t\\t\\tvec3 getSample( float theta, vec3 axis ) {\\n\\n\\t\\t\\t\\tfloat cosTheta = cos( theta );\\n\\t\\t\\t\\t// Rodrigues' axis-angle rotation\\n\\t\\t\\t\\tvec3 sampleDirection = vOutputDirection * cosTheta\\n\\t\\t\\t\\t\\t+ cross( axis, vOutputDirection ) * sin( theta )\\n\\t\\t\\t\\t\\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\\n\\n\\t\\t\\t\\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\\n\\n\\t\\t\\t}\\n\\n\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\\n\\n\\t\\t\\t\\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\\n\\n\\t\\t\\t\\t\\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\\n\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\taxis = normalize( axis );\\n\\n\\t\\t\\t\\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\t\\t\\t\\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\\n\\n\\t\\t\\t\\tfor ( int i = 1; i < n; i++ ) {\\n\\n\\t\\t\\t\\t\\tif ( i >= samples ) {\\n\\n\\t\\t\\t\\t\\t\\tbreak;\\n\\n\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\\tfloat theta = dTheta * float( i );\\n\\t\\t\\t\\t\\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\\n\\t\\t\\t\\t\\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\\n\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\tgl_FragColor = linearToOutputTexel( gl_FragColor );\\n\\n\\t\\t\\t}\\n\\t\\t\",\r\n\t\t\tblending: NoBlending,\r\n\t\t\tdepthTest: false,\r\n\t\t\tdepthWrite: false\r\n\t\t});\r\n\t\treturn shaderMaterial;\r\n\t}\r\n\r\n\tfunction _getEquirectShader() {\r\n\t\tvar texelSize = new Vector2(1, 1);\r\n\t\tvar shaderMaterial = new RawShaderMaterial({\r\n\t\t\tname: 'EquirectangularToCubeUV',\r\n\t\t\tuniforms: {\r\n\t\t\t\t'envMap': {\r\n\t\t\t\t\tvalue: null\r\n\t\t\t\t},\r\n\t\t\t\t'texelSize': {\r\n\t\t\t\t\tvalue: texelSize\r\n\t\t\t\t},\r\n\t\t\t\t'inputEncoding': {\r\n\t\t\t\t\tvalue: ENCODINGS[LinearEncoding]\r\n\t\t\t\t},\r\n\t\t\t\t'outputEncoding': {\r\n\t\t\t\t\tvalue: ENCODINGS[LinearEncoding]\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tvertexShader: _getCommonVertexShader(),\r\n\t\t\tfragmentShader:\r\n\t\t\t/* glsl */\r\n\t\t\t\"\\n\\n\\t\\t\\tprecision mediump float;\\n\\t\\t\\tprecision mediump int;\\n\\n\\t\\t\\tvarying vec3 vOutputDirection;\\n\\n\\t\\t\\tuniform sampler2D envMap;\\n\\t\\t\\tuniform vec2 texelSize;\\n\\n\\t\\t\\t\" + _getEncodings() + \"\\n\\n\\t\\t\\t#include \\n\\n\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\n\\t\\t\\t\\tvec3 outputDirection = normalize( vOutputDirection );\\n\\t\\t\\t\\tvec2 uv = equirectUv( outputDirection );\\n\\n\\t\\t\\t\\tvec2 f = fract( uv / texelSize - 0.5 );\\n\\t\\t\\t\\tuv -= f * texelSize;\\n\\t\\t\\t\\tvec3 tl = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\\n\\t\\t\\t\\tuv.x += texelSize.x;\\n\\t\\t\\t\\tvec3 tr = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\\n\\t\\t\\t\\tuv.y += texelSize.y;\\n\\t\\t\\t\\tvec3 br = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\\n\\t\\t\\t\\tuv.x -= texelSize.x;\\n\\t\\t\\t\\tvec3 bl = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\\n\\n\\t\\t\\t\\tvec3 tm = mix( tl, tr, f.x );\\n\\t\\t\\t\\tvec3 bm = mix( bl, br, f.x );\\n\\t\\t\\t\\tgl_FragColor.rgb = mix( tm, bm, f.y );\\n\\n\\t\\t\\t\\tgl_FragColor = linearToOutputTexel( gl_FragColor );\\n\\n\\t\\t\\t}\\n\\t\\t\",\r\n\t\t\tblending: NoBlending,\r\n\t\t\tdepthTest: false,\r\n\t\t\tdepthWrite: false\r\n\t\t});\r\n\t\treturn shaderMaterial;\r\n\t}\r\n\r\n\tfunction _getCubemapShader() {\r\n\t\tvar shaderMaterial = new RawShaderMaterial({\r\n\t\t\tname: 'CubemapToCubeUV',\r\n\t\t\tuniforms: {\r\n\t\t\t\t'envMap': {\r\n\t\t\t\t\tvalue: null\r\n\t\t\t\t},\r\n\t\t\t\t'inputEncoding': {\r\n\t\t\t\t\tvalue: ENCODINGS[LinearEncoding]\r\n\t\t\t\t},\r\n\t\t\t\t'outputEncoding': {\r\n\t\t\t\t\tvalue: ENCODINGS[LinearEncoding]\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tvertexShader: _getCommonVertexShader(),\r\n\t\t\tfragmentShader:\r\n\t\t\t/* glsl */\r\n\t\t\t\"\\n\\n\\t\\t\\tprecision mediump float;\\n\\t\\t\\tprecision mediump int;\\n\\n\\t\\t\\tvarying vec3 vOutputDirection;\\n\\n\\t\\t\\tuniform samplerCube envMap;\\n\\n\\t\\t\\t\" + _getEncodings() + \"\\n\\n\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\t\\t\\t\\tgl_FragColor.rgb = envMapTexelToLinear( textureCube( envMap, vec3( - vOutputDirection.x, vOutputDirection.yz ) ) ).rgb;\\n\\t\\t\\t\\tgl_FragColor = linearToOutputTexel( gl_FragColor );\\n\\n\\t\\t\\t}\\n\\t\\t\",\r\n\t\t\tblending: NoBlending,\r\n\t\t\tdepthTest: false,\r\n\t\t\tdepthWrite: false\r\n\t\t});\r\n\t\treturn shaderMaterial;\r\n\t}\r\n\r\n\tfunction _getCommonVertexShader() {\r\n\t\treturn (\r\n\t\t\t/* glsl */\r\n\t\t\t\"\\n\\n\\t\\tprecision mediump float;\\n\\t\\tprecision mediump int;\\n\\n\\t\\tattribute vec3 position;\\n\\t\\tattribute vec2 uv;\\n\\t\\tattribute float faceIndex;\\n\\n\\t\\tvarying vec3 vOutputDirection;\\n\\n\\t\\t// RH coordinate system; PMREM face-indexing convention\\n\\t\\tvec3 getDirection( vec2 uv, float face ) {\\n\\n\\t\\t\\tuv = 2.0 * uv - 1.0;\\n\\n\\t\\t\\tvec3 direction = vec3( uv, 1.0 );\\n\\n\\t\\t\\tif ( face == 0.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.zyx; // ( 1, v, u ) pos x\\n\\n\\t\\t\\t} else if ( face == 1.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.xzy;\\n\\t\\t\\t\\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\\n\\n\\t\\t\\t} else if ( face == 2.0 ) {\\n\\n\\t\\t\\t\\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\\n\\n\\t\\t\\t} else if ( face == 3.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.zyx;\\n\\t\\t\\t\\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\\n\\n\\t\\t\\t} else if ( face == 4.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.xzy;\\n\\t\\t\\t\\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\\n\\n\\t\\t\\t} else if ( face == 5.0 ) {\\n\\n\\t\\t\\t\\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\\n\\n\\t\\t\\t}\\n\\n\\t\\t\\treturn direction;\\n\\n\\t\\t}\\n\\n\\t\\tvoid main() {\\n\\n\\t\\t\\tvOutputDirection = getDirection( uv, faceIndex );\\n\\t\\t\\tgl_Position = vec4( position, 1.0 );\\n\\n\\t\\t}\\n\\t\"\r\n\t\t);\r\n\t}\r\n\r\n\tfunction _getEncodings() {\r\n\t\treturn (\r\n\t\t\t/* glsl */\r\n\t\t\t\"\\n\\n\\t\\tuniform int inputEncoding;\\n\\t\\tuniform int outputEncoding;\\n\\n\\t\\t#include \\n\\n\\t\\tvec4 inputTexelToLinear( vec4 value ) {\\n\\n\\t\\t\\tif ( inputEncoding == 0 ) {\\n\\n\\t\\t\\t\\treturn value;\\n\\n\\t\\t\\t} else if ( inputEncoding == 1 ) {\\n\\n\\t\\t\\t\\treturn sRGBToLinear( value );\\n\\n\\t\\t\\t} else if ( inputEncoding == 2 ) {\\n\\n\\t\\t\\t\\treturn RGBEToLinear( value );\\n\\n\\t\\t\\t} else if ( inputEncoding == 3 ) {\\n\\n\\t\\t\\t\\treturn RGBMToLinear( value, 7.0 );\\n\\n\\t\\t\\t} else if ( inputEncoding == 4 ) {\\n\\n\\t\\t\\t\\treturn RGBMToLinear( value, 16.0 );\\n\\n\\t\\t\\t} else if ( inputEncoding == 5 ) {\\n\\n\\t\\t\\t\\treturn RGBDToLinear( value, 256.0 );\\n\\n\\t\\t\\t} else {\\n\\n\\t\\t\\t\\treturn GammaToLinear( value, 2.2 );\\n\\n\\t\\t\\t}\\n\\n\\t\\t}\\n\\n\\t\\tvec4 linearToOutputTexel( vec4 value ) {\\n\\n\\t\\t\\tif ( outputEncoding == 0 ) {\\n\\n\\t\\t\\t\\treturn value;\\n\\n\\t\\t\\t} else if ( outputEncoding == 1 ) {\\n\\n\\t\\t\\t\\treturn LinearTosRGB( value );\\n\\n\\t\\t\\t} else if ( outputEncoding == 2 ) {\\n\\n\\t\\t\\t\\treturn LinearToRGBE( value );\\n\\n\\t\\t\\t} else if ( outputEncoding == 3 ) {\\n\\n\\t\\t\\t\\treturn LinearToRGBM( value, 7.0 );\\n\\n\\t\\t\\t} else if ( outputEncoding == 4 ) {\\n\\n\\t\\t\\t\\treturn LinearToRGBM( value, 16.0 );\\n\\n\\t\\t\\t} else if ( outputEncoding == 5 ) {\\n\\n\\t\\t\\t\\treturn LinearToRGBD( value, 256.0 );\\n\\n\\t\\t\\t} else {\\n\\n\\t\\t\\t\\treturn LinearToGamma( value, 2.2 );\\n\\n\\t\\t\\t}\\n\\n\\t\\t}\\n\\n\\t\\tvec4 envMapTexelToLinear( vec4 color ) {\\n\\n\\t\\t\\treturn inputTexelToLinear( color );\\n\\n\\t\\t}\\n\\t\"\r\n\t\t);\r\n\t}\r\n\r\n\tfunction Face4(a, b, c, d, normal, color, materialIndex) {\r\n\t\tconsole.warn('THREE.Face4 has been removed. A THREE.Face3 will be created instead.');\r\n\t\treturn new Face3(a, b, c, normal, color, materialIndex);\r\n\t}\r\n\tvar LineStrip = 0;\r\n\tvar LinePieces = 1;\r\n\tvar NoColors = 0;\r\n\tvar FaceColors = 1;\r\n\tvar VertexColors = 2;\r\n\tfunction MeshFaceMaterial(materials) {\r\n\t\tconsole.warn('THREE.MeshFaceMaterial has been removed. Use an Array instead.');\r\n\t\treturn materials;\r\n\t}\r\n\tfunction MultiMaterial(materials) {\r\n\t\tif (materials === void 0) {\r\n\t\t\tmaterials = [];\r\n\t\t}\r\n\r\n\t\tconsole.warn('THREE.MultiMaterial has been removed. Use an Array instead.');\r\n\t\tmaterials.isMultiMaterial = true;\r\n\t\tmaterials.materials = materials;\r\n\r\n\t\tmaterials.clone = function () {\r\n\t\t\treturn materials.slice();\r\n\t\t};\r\n\r\n\t\treturn materials;\r\n\t}\r\n\tfunction PointCloud(geometry, material) {\r\n\t\tconsole.warn('THREE.PointCloud has been renamed to THREE.Points.');\r\n\t\treturn new Points(geometry, material);\r\n\t}\r\n\tfunction Particle(material) {\r\n\t\tconsole.warn('THREE.Particle has been renamed to THREE.Sprite.');\r\n\t\treturn new Sprite(material);\r\n\t}\r\n\tfunction ParticleSystem(geometry, material) {\r\n\t\tconsole.warn('THREE.ParticleSystem has been renamed to THREE.Points.');\r\n\t\treturn new Points(geometry, material);\r\n\t}\r\n\tfunction PointCloudMaterial(parameters) {\r\n\t\tconsole.warn('THREE.PointCloudMaterial has been renamed to THREE.PointsMaterial.');\r\n\t\treturn new PointsMaterial(parameters);\r\n\t}\r\n\tfunction ParticleBasicMaterial(parameters) {\r\n\t\tconsole.warn('THREE.ParticleBasicMaterial has been renamed to THREE.PointsMaterial.');\r\n\t\treturn new PointsMaterial(parameters);\r\n\t}\r\n\tfunction ParticleSystemMaterial(parameters) {\r\n\t\tconsole.warn('THREE.ParticleSystemMaterial has been renamed to THREE.PointsMaterial.');\r\n\t\treturn new PointsMaterial(parameters);\r\n\t}\r\n\tfunction Vertex(x, y, z) {\r\n\t\tconsole.warn('THREE.Vertex has been removed. Use THREE.Vector3 instead.');\r\n\t\treturn new Vector3(x, y, z);\r\n\t} //\r\n\r\n\tfunction DynamicBufferAttribute(array, itemSize) {\r\n\t\tconsole.warn('THREE.DynamicBufferAttribute has been removed. Use new THREE.BufferAttribute().setUsage( THREE.DynamicDrawUsage ) instead.');\r\n\t\treturn new BufferAttribute(array, itemSize).setUsage(DynamicDrawUsage);\r\n\t}\r\n\tfunction Int8Attribute(array, itemSize) {\r\n\t\tconsole.warn('THREE.Int8Attribute has been removed. Use new THREE.Int8BufferAttribute() instead.');\r\n\t\treturn new Int8BufferAttribute(array, itemSize);\r\n\t}\r\n\tfunction Uint8Attribute(array, itemSize) {\r\n\t\tconsole.warn('THREE.Uint8Attribute has been removed. Use new THREE.Uint8BufferAttribute() instead.');\r\n\t\treturn new Uint8BufferAttribute(array, itemSize);\r\n\t}\r\n\tfunction Uint8ClampedAttribute(array, itemSize) {\r\n\t\tconsole.warn('THREE.Uint8ClampedAttribute has been removed. Use new THREE.Uint8ClampedBufferAttribute() instead.');\r\n\t\treturn new Uint8ClampedBufferAttribute(array, itemSize);\r\n\t}\r\n\tfunction Int16Attribute(array, itemSize) {\r\n\t\tconsole.warn('THREE.Int16Attribute has been removed. Use new THREE.Int16BufferAttribute() instead.');\r\n\t\treturn new Int16BufferAttribute(array, itemSize);\r\n\t}\r\n\tfunction Uint16Attribute(array, itemSize) {\r\n\t\tconsole.warn('THREE.Uint16Attribute has been removed. Use new THREE.Uint16BufferAttribute() instead.');\r\n\t\treturn new Uint16BufferAttribute(array, itemSize);\r\n\t}\r\n\tfunction Int32Attribute(array, itemSize) {\r\n\t\tconsole.warn('THREE.Int32Attribute has been removed. Use new THREE.Int32BufferAttribute() instead.');\r\n\t\treturn new Int32BufferAttribute(array, itemSize);\r\n\t}\r\n\tfunction Uint32Attribute(array, itemSize) {\r\n\t\tconsole.warn('THREE.Uint32Attribute has been removed. Use new THREE.Uint32BufferAttribute() instead.');\r\n\t\treturn new Uint32BufferAttribute(array, itemSize);\r\n\t}\r\n\tfunction Float32Attribute(array, itemSize) {\r\n\t\tconsole.warn('THREE.Float32Attribute has been removed. Use new THREE.Float32BufferAttribute() instead.');\r\n\t\treturn new Float32BufferAttribute(array, itemSize);\r\n\t}\r\n\tfunction Float64Attribute(array, itemSize) {\r\n\t\tconsole.warn('THREE.Float64Attribute has been removed. Use new THREE.Float64BufferAttribute() instead.');\r\n\t\treturn new Float64BufferAttribute(array, itemSize);\r\n\t} //\r\n\r\n\tCurve.create = function (construct, getPoint) {\r\n\t\tconsole.log('THREE.Curve.create() has been deprecated');\r\n\t\tconstruct.prototype = Object.create(Curve.prototype);\r\n\t\tconstruct.prototype.constructor = construct;\r\n\t\tconstruct.prototype.getPoint = getPoint;\r\n\t\treturn construct;\r\n\t}; //\r\n\r\n\r\n\tObject.assign(CurvePath.prototype, {\r\n\t\tcreatePointsGeometry: function createPointsGeometry(divisions) {\r\n\t\t\tconsole.warn('THREE.CurvePath: .createPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.'); // generate geometry from path points (for Line or Points objects)\r\n\r\n\t\t\tvar pts = this.getPoints(divisions);\r\n\t\t\treturn this.createGeometry(pts);\r\n\t\t},\r\n\t\tcreateSpacedPointsGeometry: function createSpacedPointsGeometry(divisions) {\r\n\t\t\tconsole.warn('THREE.CurvePath: .createSpacedPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.'); // generate geometry from equidistant sampling along the path\r\n\r\n\t\t\tvar pts = this.getSpacedPoints(divisions);\r\n\t\t\treturn this.createGeometry(pts);\r\n\t\t},\r\n\t\tcreateGeometry: function createGeometry(points) {\r\n\t\t\tconsole.warn('THREE.CurvePath: .createGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.');\r\n\t\t\tvar geometry = new Geometry();\r\n\r\n\t\t\tfor (var i = 0, l = points.length; i < l; i++) {\r\n\t\t\t\tvar point = points[i];\r\n\t\t\t\tgeometry.vertices.push(new Vector3(point.x, point.y, point.z || 0));\r\n\t\t\t}\r\n\r\n\t\t\treturn geometry;\r\n\t\t}\r\n\t}); //\r\n\r\n\tObject.assign(Path.prototype, {\r\n\t\tfromPoints: function fromPoints(points) {\r\n\t\t\tconsole.warn('THREE.Path: .fromPoints() has been renamed to .setFromPoints().');\r\n\t\t\treturn this.setFromPoints(points);\r\n\t\t}\r\n\t}); //\r\n\r\n\tfunction ClosedSplineCurve3(points) {\r\n\t\tconsole.warn('THREE.ClosedSplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead.');\r\n\t\tCatmullRomCurve3.call(this, points);\r\n\t\tthis.type = 'catmullrom';\r\n\t\tthis.closed = true;\r\n\t}\r\n\tClosedSplineCurve3.prototype = Object.create(CatmullRomCurve3.prototype); //\r\n\r\n\tfunction SplineCurve3(points) {\r\n\t\tconsole.warn('THREE.SplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead.');\r\n\t\tCatmullRomCurve3.call(this, points);\r\n\t\tthis.type = 'catmullrom';\r\n\t}\r\n\tSplineCurve3.prototype = Object.create(CatmullRomCurve3.prototype); //\r\n\r\n\tfunction Spline(points) {\r\n\t\tconsole.warn('THREE.Spline has been removed. Use THREE.CatmullRomCurve3 instead.');\r\n\t\tCatmullRomCurve3.call(this, points);\r\n\t\tthis.type = 'catmullrom';\r\n\t}\r\n\tSpline.prototype = Object.create(CatmullRomCurve3.prototype);\r\n\tObject.assign(Spline.prototype, {\r\n\t\tinitFromArray: function initFromArray()\r\n\t\t/* a */\r\n\t\t{\r\n\t\t\tconsole.error('THREE.Spline: .initFromArray() has been removed.');\r\n\t\t},\r\n\t\tgetControlPointsArray: function getControlPointsArray()\r\n\t\t/* optionalTarget */\r\n\t\t{\r\n\t\t\tconsole.error('THREE.Spline: .getControlPointsArray() has been removed.');\r\n\t\t},\r\n\t\treparametrizeByArcLength: function reparametrizeByArcLength()\r\n\t\t/* samplingCoef */\r\n\t\t{\r\n\t\t\tconsole.error('THREE.Spline: .reparametrizeByArcLength() has been removed.');\r\n\t\t}\r\n\t}); //\r\n\r\n\tfunction AxisHelper(size) {\r\n\t\tconsole.warn('THREE.AxisHelper has been renamed to THREE.AxesHelper.');\r\n\t\treturn new AxesHelper(size);\r\n\t}\r\n\tfunction BoundingBoxHelper(object, color) {\r\n\t\tconsole.warn('THREE.BoundingBoxHelper has been deprecated. Creating a THREE.BoxHelper instead.');\r\n\t\treturn new BoxHelper(object, color);\r\n\t}\r\n\tfunction EdgesHelper(object, hex) {\r\n\t\tconsole.warn('THREE.EdgesHelper has been removed. Use THREE.EdgesGeometry instead.');\r\n\t\treturn new LineSegments(new EdgesGeometry(object.geometry), new LineBasicMaterial({\r\n\t\t\tcolor: hex !== undefined ? hex : 0xffffff\r\n\t\t}));\r\n\t}\r\n\r\n\tGridHelper.prototype.setColors = function () {\r\n\t\tconsole.error('THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.');\r\n\t};\r\n\r\n\tSkeletonHelper.prototype.update = function () {\r\n\t\tconsole.error('THREE.SkeletonHelper: update() no longer needs to be called.');\r\n\t};\r\n\r\n\tfunction WireframeHelper(object, hex) {\r\n\t\tconsole.warn('THREE.WireframeHelper has been removed. Use THREE.WireframeGeometry instead.');\r\n\t\treturn new LineSegments(new WireframeGeometry(object.geometry), new LineBasicMaterial({\r\n\t\t\tcolor: hex !== undefined ? hex : 0xffffff\r\n\t\t}));\r\n\t} //\r\n\r\n\tObject.assign(Loader.prototype, {\r\n\t\textractUrlBase: function extractUrlBase(url) {\r\n\t\t\tconsole.warn('THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead.');\r\n\t\t\treturn LoaderUtils.extractUrlBase(url);\r\n\t\t}\r\n\t});\r\n\tLoader.Handlers = {\r\n\t\tadd: function add()\r\n\t\t/* regex, loader */\r\n\t\t{\r\n\t\t\tconsole.error('THREE.Loader: Handlers.add() has been removed. Use LoadingManager.addHandler() instead.');\r\n\t\t},\r\n\t\tget: function get()\r\n\t\t/* file */\r\n\t\t{\r\n\t\t\tconsole.error('THREE.Loader: Handlers.get() has been removed. Use LoadingManager.getHandler() instead.');\r\n\t\t}\r\n\t};\r\n\tfunction XHRLoader(manager) {\r\n\t\tconsole.warn('THREE.XHRLoader has been renamed to THREE.FileLoader.');\r\n\t\treturn new FileLoader(manager);\r\n\t}\r\n\tfunction BinaryTextureLoader(manager) {\r\n\t\tconsole.warn('THREE.BinaryTextureLoader has been renamed to THREE.DataTextureLoader.');\r\n\t\treturn new DataTextureLoader(manager);\r\n\t} //\r\n\r\n\tObject.assign(Box2.prototype, {\r\n\t\tcenter: function center(optionalTarget) {\r\n\t\t\tconsole.warn('THREE.Box2: .center() has been renamed to .getCenter().');\r\n\t\t\treturn this.getCenter(optionalTarget);\r\n\t\t},\r\n\t\tempty: function empty() {\r\n\t\t\tconsole.warn('THREE.Box2: .empty() has been renamed to .isEmpty().');\r\n\t\t\treturn this.isEmpty();\r\n\t\t},\r\n\t\tisIntersectionBox: function isIntersectionBox(box) {\r\n\t\t\tconsole.warn('THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox().');\r\n\t\t\treturn this.intersectsBox(box);\r\n\t\t},\r\n\t\tsize: function size(optionalTarget) {\r\n\t\t\tconsole.warn('THREE.Box2: .size() has been renamed to .getSize().');\r\n\t\t\treturn this.getSize(optionalTarget);\r\n\t\t}\r\n\t});\r\n\tObject.assign(Box3.prototype, {\r\n\t\tcenter: function center(optionalTarget) {\r\n\t\t\tconsole.warn('THREE.Box3: .center() has been renamed to .getCenter().');\r\n\t\t\treturn this.getCenter(optionalTarget);\r\n\t\t},\r\n\t\tempty: function empty() {\r\n\t\t\tconsole.warn('THREE.Box3: .empty() has been renamed to .isEmpty().');\r\n\t\t\treturn this.isEmpty();\r\n\t\t},\r\n\t\tisIntersectionBox: function isIntersectionBox(box) {\r\n\t\t\tconsole.warn('THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox().');\r\n\t\t\treturn this.intersectsBox(box);\r\n\t\t},\r\n\t\tisIntersectionSphere: function isIntersectionSphere(sphere) {\r\n\t\t\tconsole.warn('THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere().');\r\n\t\t\treturn this.intersectsSphere(sphere);\r\n\t\t},\r\n\t\tsize: function size(optionalTarget) {\r\n\t\t\tconsole.warn('THREE.Box3: .size() has been renamed to .getSize().');\r\n\t\t\treturn this.getSize(optionalTarget);\r\n\t\t}\r\n\t});\r\n\tObject.assign(Sphere.prototype, {\r\n\t\tempty: function empty() {\r\n\t\t\tconsole.warn('THREE.Sphere: .empty() has been renamed to .isEmpty().');\r\n\t\t\treturn this.isEmpty();\r\n\t\t}\r\n\t});\r\n\r\n\tFrustum.prototype.setFromMatrix = function (m) {\r\n\t\tconsole.warn('THREE.Frustum: .setFromMatrix() has been renamed to .setFromProjectionMatrix().');\r\n\t\treturn this.setFromProjectionMatrix(m);\r\n\t};\r\n\r\n\tLine3.prototype.center = function (optionalTarget) {\r\n\t\tconsole.warn('THREE.Line3: .center() has been renamed to .getCenter().');\r\n\t\treturn this.getCenter(optionalTarget);\r\n\t};\r\n\r\n\tObject.assign(MathUtils, {\r\n\t\trandom16: function random16() {\r\n\t\t\tconsole.warn('THREE.Math: .random16() has been deprecated. Use Math.random() instead.');\r\n\t\t\treturn Math.random();\r\n\t\t},\r\n\t\tnearestPowerOfTwo: function nearestPowerOfTwo(value) {\r\n\t\t\tconsole.warn('THREE.Math: .nearestPowerOfTwo() has been renamed to .floorPowerOfTwo().');\r\n\t\t\treturn MathUtils.floorPowerOfTwo(value);\r\n\t\t},\r\n\t\tnextPowerOfTwo: function nextPowerOfTwo(value) {\r\n\t\t\tconsole.warn('THREE.Math: .nextPowerOfTwo() has been renamed to .ceilPowerOfTwo().');\r\n\t\t\treturn MathUtils.ceilPowerOfTwo(value);\r\n\t\t}\r\n\t});\r\n\tObject.assign(Matrix3.prototype, {\r\n\t\tflattenToArrayOffset: function flattenToArrayOffset(array, offset) {\r\n\t\t\tconsole.warn(\"THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.\");\r\n\t\t\treturn this.toArray(array, offset);\r\n\t\t},\r\n\t\tmultiplyVector3: function multiplyVector3(vector) {\r\n\t\t\tconsole.warn('THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead.');\r\n\t\t\treturn vector.applyMatrix3(this);\r\n\t\t},\r\n\t\tmultiplyVector3Array: function multiplyVector3Array()\r\n\t\t/* a */\r\n\t\t{\r\n\t\t\tconsole.error('THREE.Matrix3: .multiplyVector3Array() has been removed.');\r\n\t\t},\r\n\t\tapplyToBufferAttribute: function applyToBufferAttribute(attribute) {\r\n\t\t\tconsole.warn('THREE.Matrix3: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix3( matrix ) instead.');\r\n\t\t\treturn attribute.applyMatrix3(this);\r\n\t\t},\r\n\t\tapplyToVector3Array: function applyToVector3Array()\r\n\t\t/* array, offset, length */\r\n\t\t{\r\n\t\t\tconsole.error('THREE.Matrix3: .applyToVector3Array() has been removed.');\r\n\t\t},\r\n\t\tgetInverse: function getInverse(matrix) {\r\n\t\t\tconsole.warn('THREE.Matrix3: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead.');\r\n\t\t\treturn this.copy(matrix).invert();\r\n\t\t}\r\n\t});\r\n\tObject.assign(Matrix4.prototype, {\r\n\t\textractPosition: function extractPosition(m) {\r\n\t\t\tconsole.warn('THREE.Matrix4: .extractPosition() has been renamed to .copyPosition().');\r\n\t\t\treturn this.copyPosition(m);\r\n\t\t},\r\n\t\tflattenToArrayOffset: function flattenToArrayOffset(array, offset) {\r\n\t\t\tconsole.warn(\"THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.\");\r\n\t\t\treturn this.toArray(array, offset);\r\n\t\t},\r\n\t\tgetPosition: function getPosition() {\r\n\t\t\tconsole.warn('THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead.');\r\n\t\t\treturn new Vector3().setFromMatrixColumn(this, 3);\r\n\t\t},\r\n\t\tsetRotationFromQuaternion: function setRotationFromQuaternion(q) {\r\n\t\t\tconsole.warn('THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion().');\r\n\t\t\treturn this.makeRotationFromQuaternion(q);\r\n\t\t},\r\n\t\tmultiplyToArray: function multiplyToArray() {\r\n\t\t\tconsole.warn('THREE.Matrix4: .multiplyToArray() has been removed.');\r\n\t\t},\r\n\t\tmultiplyVector3: function multiplyVector3(vector) {\r\n\t\t\tconsole.warn('THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead.');\r\n\t\t\treturn vector.applyMatrix4(this);\r\n\t\t},\r\n\t\tmultiplyVector4: function multiplyVector4(vector) {\r\n\t\t\tconsole.warn('THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead.');\r\n\t\t\treturn vector.applyMatrix4(this);\r\n\t\t},\r\n\t\tmultiplyVector3Array: function multiplyVector3Array()\r\n\t\t/* a */\r\n\t\t{\r\n\t\t\tconsole.error('THREE.Matrix4: .multiplyVector3Array() has been removed.');\r\n\t\t},\r\n\t\trotateAxis: function rotateAxis(v) {\r\n\t\t\tconsole.warn('THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead.');\r\n\t\t\tv.transformDirection(this);\r\n\t\t},\r\n\t\tcrossVector: function crossVector(vector) {\r\n\t\t\tconsole.warn('THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead.');\r\n\t\t\treturn vector.applyMatrix4(this);\r\n\t\t},\r\n\t\ttranslate: function translate() {\r\n\t\t\tconsole.error('THREE.Matrix4: .translate() has been removed.');\r\n\t\t},\r\n\t\trotateX: function rotateX() {\r\n\t\t\tconsole.error('THREE.Matrix4: .rotateX() has been removed.');\r\n\t\t},\r\n\t\trotateY: function rotateY() {\r\n\t\t\tconsole.error('THREE.Matrix4: .rotateY() has been removed.');\r\n\t\t},\r\n\t\trotateZ: function rotateZ() {\r\n\t\t\tconsole.error('THREE.Matrix4: .rotateZ() has been removed.');\r\n\t\t},\r\n\t\trotateByAxis: function rotateByAxis() {\r\n\t\t\tconsole.error('THREE.Matrix4: .rotateByAxis() has been removed.');\r\n\t\t},\r\n\t\tapplyToBufferAttribute: function applyToBufferAttribute(attribute) {\r\n\t\t\tconsole.warn('THREE.Matrix4: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix4( matrix ) instead.');\r\n\t\t\treturn attribute.applyMatrix4(this);\r\n\t\t},\r\n\t\tapplyToVector3Array: function applyToVector3Array()\r\n\t\t/* array, offset, length */\r\n\t\t{\r\n\t\t\tconsole.error('THREE.Matrix4: .applyToVector3Array() has been removed.');\r\n\t\t},\r\n\t\tmakeFrustum: function makeFrustum(left, right, bottom, top, near, far) {\r\n\t\t\tconsole.warn('THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead.');\r\n\t\t\treturn this.makePerspective(left, right, top, bottom, near, far);\r\n\t\t},\r\n\t\tgetInverse: function getInverse(matrix) {\r\n\t\t\tconsole.warn('THREE.Matrix4: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead.');\r\n\t\t\treturn this.copy(matrix).invert();\r\n\t\t}\r\n\t});\r\n\r\n\tPlane.prototype.isIntersectionLine = function (line) {\r\n\t\tconsole.warn('THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine().');\r\n\t\treturn this.intersectsLine(line);\r\n\t};\r\n\r\n\tObject.assign(Quaternion.prototype, {\r\n\t\tmultiplyVector3: function multiplyVector3(vector) {\r\n\t\t\tconsole.warn('THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead.');\r\n\t\t\treturn vector.applyQuaternion(this);\r\n\t\t},\r\n\t\tinverse: function inverse() {\r\n\t\t\tconsole.warn('THREE.Quaternion: .inverse() has been renamed to invert().');\r\n\t\t\treturn this.invert();\r\n\t\t}\r\n\t});\r\n\tObject.assign(Ray.prototype, {\r\n\t\tisIntersectionBox: function isIntersectionBox(box) {\r\n\t\t\tconsole.warn('THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox().');\r\n\t\t\treturn this.intersectsBox(box);\r\n\t\t},\r\n\t\tisIntersectionPlane: function isIntersectionPlane(plane) {\r\n\t\t\tconsole.warn('THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane().');\r\n\t\t\treturn this.intersectsPlane(plane);\r\n\t\t},\r\n\t\tisIntersectionSphere: function isIntersectionSphere(sphere) {\r\n\t\t\tconsole.warn('THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere().');\r\n\t\t\treturn this.intersectsSphere(sphere);\r\n\t\t}\r\n\t});\r\n\tObject.assign(Triangle.prototype, {\r\n\t\tarea: function area() {\r\n\t\t\tconsole.warn('THREE.Triangle: .area() has been renamed to .getArea().');\r\n\t\t\treturn this.getArea();\r\n\t\t},\r\n\t\tbarycoordFromPoint: function barycoordFromPoint(point, target) {\r\n\t\t\tconsole.warn('THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().');\r\n\t\t\treturn this.getBarycoord(point, target);\r\n\t\t},\r\n\t\tmidpoint: function midpoint(target) {\r\n\t\t\tconsole.warn('THREE.Triangle: .midpoint() has been renamed to .getMidpoint().');\r\n\t\t\treturn this.getMidpoint(target);\r\n\t\t},\r\n\t\tnormal: function normal(target) {\r\n\t\t\tconsole.warn('THREE.Triangle: .normal() has been renamed to .getNormal().');\r\n\t\t\treturn this.getNormal(target);\r\n\t\t},\r\n\t\tplane: function plane(target) {\r\n\t\t\tconsole.warn('THREE.Triangle: .plane() has been renamed to .getPlane().');\r\n\t\t\treturn this.getPlane(target);\r\n\t\t}\r\n\t});\r\n\tObject.assign(Triangle, {\r\n\t\tbarycoordFromPoint: function barycoordFromPoint(point, a, b, c, target) {\r\n\t\t\tconsole.warn('THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().');\r\n\t\t\treturn Triangle.getBarycoord(point, a, b, c, target);\r\n\t\t},\r\n\t\tnormal: function normal(a, b, c, target) {\r\n\t\t\tconsole.warn('THREE.Triangle: .normal() has been renamed to .getNormal().');\r\n\t\t\treturn Triangle.getNormal(a, b, c, target);\r\n\t\t}\r\n\t});\r\n\tObject.assign(Shape.prototype, {\r\n\t\textractAllPoints: function extractAllPoints(divisions) {\r\n\t\t\tconsole.warn('THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead.');\r\n\t\t\treturn this.extractPoints(divisions);\r\n\t\t},\r\n\t\textrude: function extrude(options) {\r\n\t\t\tconsole.warn('THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead.');\r\n\t\t\treturn new ExtrudeGeometry(this, options);\r\n\t\t},\r\n\t\tmakeGeometry: function makeGeometry(options) {\r\n\t\t\tconsole.warn('THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead.');\r\n\t\t\treturn new ShapeGeometry(this, options);\r\n\t\t}\r\n\t});\r\n\tObject.assign(Vector2.prototype, {\r\n\t\tfromAttribute: function fromAttribute(attribute, index, offset) {\r\n\t\t\tconsole.warn('THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute().');\r\n\t\t\treturn this.fromBufferAttribute(attribute, index, offset);\r\n\t\t},\r\n\t\tdistanceToManhattan: function distanceToManhattan(v) {\r\n\t\t\tconsole.warn('THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo().');\r\n\t\t\treturn this.manhattanDistanceTo(v);\r\n\t\t},\r\n\t\tlengthManhattan: function lengthManhattan() {\r\n\t\t\tconsole.warn('THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength().');\r\n\t\t\treturn this.manhattanLength();\r\n\t\t}\r\n\t});\r\n\tObject.assign(Vector3.prototype, {\r\n\t\tsetEulerFromRotationMatrix: function setEulerFromRotationMatrix() {\r\n\t\t\tconsole.error('THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.');\r\n\t\t},\r\n\t\tsetEulerFromQuaternion: function setEulerFromQuaternion() {\r\n\t\t\tconsole.error('THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.');\r\n\t\t},\r\n\t\tgetPositionFromMatrix: function getPositionFromMatrix(m) {\r\n\t\t\tconsole.warn('THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition().');\r\n\t\t\treturn this.setFromMatrixPosition(m);\r\n\t\t},\r\n\t\tgetScaleFromMatrix: function getScaleFromMatrix(m) {\r\n\t\t\tconsole.warn('THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale().');\r\n\t\t\treturn this.setFromMatrixScale(m);\r\n\t\t},\r\n\t\tgetColumnFromMatrix: function getColumnFromMatrix(index, matrix) {\r\n\t\t\tconsole.warn('THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn().');\r\n\t\t\treturn this.setFromMatrixColumn(matrix, index);\r\n\t\t},\r\n\t\tapplyProjection: function applyProjection(m) {\r\n\t\t\tconsole.warn('THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead.');\r\n\t\t\treturn this.applyMatrix4(m);\r\n\t\t},\r\n\t\tfromAttribute: function fromAttribute(attribute, index, offset) {\r\n\t\t\tconsole.warn('THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute().');\r\n\t\t\treturn this.fromBufferAttribute(attribute, index, offset);\r\n\t\t},\r\n\t\tdistanceToManhattan: function distanceToManhattan(v) {\r\n\t\t\tconsole.warn('THREE.Vector3: .distanceToManhattan() has been renamed to .manhattanDistanceTo().');\r\n\t\t\treturn this.manhattanDistanceTo(v);\r\n\t\t},\r\n\t\tlengthManhattan: function lengthManhattan() {\r\n\t\t\tconsole.warn('THREE.Vector3: .lengthManhattan() has been renamed to .manhattanLength().');\r\n\t\t\treturn this.manhattanLength();\r\n\t\t}\r\n\t});\r\n\tObject.assign(Vector4.prototype, {\r\n\t\tfromAttribute: function fromAttribute(attribute, index, offset) {\r\n\t\t\tconsole.warn('THREE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute().');\r\n\t\t\treturn this.fromBufferAttribute(attribute, index, offset);\r\n\t\t},\r\n\t\tlengthManhattan: function lengthManhattan() {\r\n\t\t\tconsole.warn('THREE.Vector4: .lengthManhattan() has been renamed to .manhattanLength().');\r\n\t\t\treturn this.manhattanLength();\r\n\t\t}\r\n\t}); //\r\n\r\n\tObject.assign(Geometry.prototype, {\r\n\t\tcomputeTangents: function computeTangents() {\r\n\t\t\tconsole.error('THREE.Geometry: .computeTangents() has been removed.');\r\n\t\t},\r\n\t\tcomputeLineDistances: function computeLineDistances() {\r\n\t\t\tconsole.error('THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.');\r\n\t\t},\r\n\t\tapplyMatrix: function applyMatrix(matrix) {\r\n\t\t\tconsole.warn('THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4().');\r\n\t\t\treturn this.applyMatrix4(matrix);\r\n\t\t}\r\n\t});\r\n\tObject.assign(Object3D.prototype, {\r\n\t\tgetChildByName: function getChildByName(name) {\r\n\t\t\tconsole.warn('THREE.Object3D: .getChildByName() has been renamed to .getObjectByName().');\r\n\t\t\treturn this.getObjectByName(name);\r\n\t\t},\r\n\t\trenderDepth: function renderDepth() {\r\n\t\t\tconsole.warn('THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.');\r\n\t\t},\r\n\t\ttranslate: function translate(distance, axis) {\r\n\t\t\tconsole.warn('THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead.');\r\n\t\t\treturn this.translateOnAxis(axis, distance);\r\n\t\t},\r\n\t\tgetWorldRotation: function getWorldRotation() {\r\n\t\t\tconsole.error('THREE.Object3D: .getWorldRotation() has been removed. Use THREE.Object3D.getWorldQuaternion( target ) instead.');\r\n\t\t},\r\n\t\tapplyMatrix: function applyMatrix(matrix) {\r\n\t\t\tconsole.warn('THREE.Object3D: .applyMatrix() has been renamed to .applyMatrix4().');\r\n\t\t\treturn this.applyMatrix4(matrix);\r\n\t\t}\r\n\t});\r\n\tObject.defineProperties(Object3D.prototype, {\r\n\t\teulerOrder: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.Object3D: .eulerOrder is now .rotation.order.');\r\n\t\t\t\treturn this.rotation.order;\r\n\t\t\t},\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tconsole.warn('THREE.Object3D: .eulerOrder is now .rotation.order.');\r\n\t\t\t\tthis.rotation.order = value;\r\n\t\t\t}\r\n\t\t},\r\n\t\tuseQuaternion: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.');\r\n\t\t\t},\r\n\t\t\tset: function set() {\r\n\t\t\t\tconsole.warn('THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.');\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\tObject.assign(Mesh.prototype, {\r\n\t\tsetDrawMode: function setDrawMode() {\r\n\t\t\tconsole.error('THREE.Mesh: .setDrawMode() has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.');\r\n\t\t}\r\n\t});\r\n\tObject.defineProperties(Mesh.prototype, {\r\n\t\tdrawMode: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.error('THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode.');\r\n\t\t\t\treturn TrianglesDrawMode;\r\n\t\t\t},\r\n\t\t\tset: function set() {\r\n\t\t\t\tconsole.error('THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.');\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\tObject.defineProperties(LOD.prototype, {\r\n\t\tobjects: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.LOD: .objects has been renamed to .levels.');\r\n\t\t\t\treturn this.levels;\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\tObject.defineProperty(Skeleton.prototype, 'useVertexTexture', {\r\n\t\tget: function get() {\r\n\t\t\tconsole.warn('THREE.Skeleton: useVertexTexture has been removed.');\r\n\t\t},\r\n\t\tset: function set() {\r\n\t\t\tconsole.warn('THREE.Skeleton: useVertexTexture has been removed.');\r\n\t\t}\r\n\t});\r\n\r\n\tSkinnedMesh.prototype.initBones = function () {\r\n\t\tconsole.error('THREE.SkinnedMesh: initBones() has been removed.');\r\n\t};\r\n\r\n\tObject.defineProperty(Curve.prototype, '__arcLengthDivisions', {\r\n\t\tget: function get() {\r\n\t\t\tconsole.warn('THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions.');\r\n\t\t\treturn this.arcLengthDivisions;\r\n\t\t},\r\n\t\tset: function set(value) {\r\n\t\t\tconsole.warn('THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions.');\r\n\t\t\tthis.arcLengthDivisions = value;\r\n\t\t}\r\n\t}); //\r\n\r\n\tPerspectiveCamera.prototype.setLens = function (focalLength, filmGauge) {\r\n\t\tconsole.warn(\"THREE.PerspectiveCamera.setLens is deprecated. \" + \"Use .setFocalLength and .filmGauge for a photographic setup.\");\r\n\t\tif (filmGauge !== undefined) this.filmGauge = filmGauge;\r\n\t\tthis.setFocalLength(focalLength);\r\n\t}; //\r\n\r\n\r\n\tObject.defineProperties(Light.prototype, {\r\n\t\tonlyShadow: {\r\n\t\t\tset: function set() {\r\n\t\t\t\tconsole.warn('THREE.Light: .onlyShadow has been removed.');\r\n\t\t\t}\r\n\t\t},\r\n\t\tshadowCameraFov: {\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tconsole.warn('THREE.Light: .shadowCameraFov is now .shadow.camera.fov.');\r\n\t\t\t\tthis.shadow.camera.fov = value;\r\n\t\t\t}\r\n\t\t},\r\n\t\tshadowCameraLeft: {\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tconsole.warn('THREE.Light: .shadowCameraLeft is now .shadow.camera.left.');\r\n\t\t\t\tthis.shadow.camera.left = value;\r\n\t\t\t}\r\n\t\t},\r\n\t\tshadowCameraRight: {\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tconsole.warn('THREE.Light: .shadowCameraRight is now .shadow.camera.right.');\r\n\t\t\t\tthis.shadow.camera.right = value;\r\n\t\t\t}\r\n\t\t},\r\n\t\tshadowCameraTop: {\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tconsole.warn('THREE.Light: .shadowCameraTop is now .shadow.camera.top.');\r\n\t\t\t\tthis.shadow.camera.top = value;\r\n\t\t\t}\r\n\t\t},\r\n\t\tshadowCameraBottom: {\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tconsole.warn('THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom.');\r\n\t\t\t\tthis.shadow.camera.bottom = value;\r\n\t\t\t}\r\n\t\t},\r\n\t\tshadowCameraNear: {\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tconsole.warn('THREE.Light: .shadowCameraNear is now .shadow.camera.near.');\r\n\t\t\t\tthis.shadow.camera.near = value;\r\n\t\t\t}\r\n\t\t},\r\n\t\tshadowCameraFar: {\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tconsole.warn('THREE.Light: .shadowCameraFar is now .shadow.camera.far.');\r\n\t\t\t\tthis.shadow.camera.far = value;\r\n\t\t\t}\r\n\t\t},\r\n\t\tshadowCameraVisible: {\r\n\t\t\tset: function set() {\r\n\t\t\t\tconsole.warn('THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.');\r\n\t\t\t}\r\n\t\t},\r\n\t\tshadowBias: {\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tconsole.warn('THREE.Light: .shadowBias is now .shadow.bias.');\r\n\t\t\t\tthis.shadow.bias = value;\r\n\t\t\t}\r\n\t\t},\r\n\t\tshadowDarkness: {\r\n\t\t\tset: function set() {\r\n\t\t\t\tconsole.warn('THREE.Light: .shadowDarkness has been removed.');\r\n\t\t\t}\r\n\t\t},\r\n\t\tshadowMapWidth: {\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tconsole.warn('THREE.Light: .shadowMapWidth is now .shadow.mapSize.width.');\r\n\t\t\t\tthis.shadow.mapSize.width = value;\r\n\t\t\t}\r\n\t\t},\r\n\t\tshadowMapHeight: {\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tconsole.warn('THREE.Light: .shadowMapHeight is now .shadow.mapSize.height.');\r\n\t\t\t\tthis.shadow.mapSize.height = value;\r\n\t\t\t}\r\n\t\t}\r\n\t}); //\r\n\r\n\tObject.defineProperties(BufferAttribute.prototype, {\r\n\t\tlength: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.BufferAttribute: .length has been deprecated. Use .count instead.');\r\n\t\t\t\treturn this.array.length;\r\n\t\t\t}\r\n\t\t},\r\n\t\tdynamic: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead.');\r\n\t\t\t\treturn this.usage === DynamicDrawUsage;\r\n\t\t\t},\r\n\t\t\tset: function set()\r\n\t\t\t/* value */\r\n\t\t\t{\r\n\t\t\t\tconsole.warn('THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead.');\r\n\t\t\t\tthis.setUsage(DynamicDrawUsage);\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\tObject.assign(BufferAttribute.prototype, {\r\n\t\tsetDynamic: function setDynamic(value) {\r\n\t\t\tconsole.warn('THREE.BufferAttribute: .setDynamic() has been deprecated. Use .setUsage() instead.');\r\n\t\t\tthis.setUsage(value === true ? DynamicDrawUsage : StaticDrawUsage);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tcopyIndicesArray: function copyIndicesArray()\r\n\t\t/* indices */\r\n\t\t{\r\n\t\t\tconsole.error('THREE.BufferAttribute: .copyIndicesArray() has been removed.');\r\n\t\t},\r\n\t\tsetArray: function setArray()\r\n\t\t/* array */\r\n\t\t{\r\n\t\t\tconsole.error('THREE.BufferAttribute: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers');\r\n\t\t}\r\n\t});\r\n\tObject.assign(BufferGeometry.prototype, {\r\n\t\taddIndex: function addIndex(index) {\r\n\t\t\tconsole.warn('THREE.BufferGeometry: .addIndex() has been renamed to .setIndex().');\r\n\t\t\tthis.setIndex(index);\r\n\t\t},\r\n\t\taddAttribute: function addAttribute(name, attribute) {\r\n\t\t\tconsole.warn('THREE.BufferGeometry: .addAttribute() has been renamed to .setAttribute().');\r\n\r\n\t\t\tif (!(attribute && attribute.isBufferAttribute) && !(attribute && attribute.isInterleavedBufferAttribute)) {\r\n\t\t\t\tconsole.warn('THREE.BufferGeometry: .addAttribute() now expects ( name, attribute ).');\r\n\t\t\t\treturn this.setAttribute(name, new BufferAttribute(arguments[1], arguments[2]));\r\n\t\t\t}\r\n\r\n\t\t\tif (name === 'index') {\r\n\t\t\t\tconsole.warn('THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute.');\r\n\t\t\t\tthis.setIndex(attribute);\r\n\t\t\t\treturn this;\r\n\t\t\t}\r\n\r\n\t\t\treturn this.setAttribute(name, attribute);\r\n\t\t},\r\n\t\taddDrawCall: function addDrawCall(start, count, indexOffset) {\r\n\t\t\tif (indexOffset !== undefined) {\r\n\t\t\t\tconsole.warn('THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset.');\r\n\t\t\t}\r\n\r\n\t\t\tconsole.warn('THREE.BufferGeometry: .addDrawCall() is now .addGroup().');\r\n\t\t\tthis.addGroup(start, count);\r\n\t\t},\r\n\t\tclearDrawCalls: function clearDrawCalls() {\r\n\t\t\tconsole.warn('THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups().');\r\n\t\t\tthis.clearGroups();\r\n\t\t},\r\n\t\tcomputeTangents: function computeTangents() {\r\n\t\t\tconsole.warn('THREE.BufferGeometry: .computeTangents() has been removed.');\r\n\t\t},\r\n\t\tcomputeOffsets: function computeOffsets() {\r\n\t\t\tconsole.warn('THREE.BufferGeometry: .computeOffsets() has been removed.');\r\n\t\t},\r\n\t\tremoveAttribute: function removeAttribute(name) {\r\n\t\t\tconsole.warn('THREE.BufferGeometry: .removeAttribute() has been renamed to .deleteAttribute().');\r\n\t\t\treturn this.deleteAttribute(name);\r\n\t\t},\r\n\t\tapplyMatrix: function applyMatrix(matrix) {\r\n\t\t\tconsole.warn('THREE.BufferGeometry: .applyMatrix() has been renamed to .applyMatrix4().');\r\n\t\t\treturn this.applyMatrix4(matrix);\r\n\t\t}\r\n\t});\r\n\tObject.defineProperties(BufferGeometry.prototype, {\r\n\t\tdrawcalls: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.error('THREE.BufferGeometry: .drawcalls has been renamed to .groups.');\r\n\t\t\t\treturn this.groups;\r\n\t\t\t}\r\n\t\t},\r\n\t\toffsets: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.BufferGeometry: .offsets has been renamed to .groups.');\r\n\t\t\t\treturn this.groups;\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\tObject.defineProperties(InstancedBufferGeometry.prototype, {\r\n\t\tmaxInstancedCount: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.InstancedBufferGeometry: .maxInstancedCount has been renamed to .instanceCount.');\r\n\t\t\t\treturn this.instanceCount;\r\n\t\t\t},\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tconsole.warn('THREE.InstancedBufferGeometry: .maxInstancedCount has been renamed to .instanceCount.');\r\n\t\t\t\tthis.instanceCount = value;\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\tObject.defineProperties(Raycaster.prototype, {\r\n\t\tlinePrecision: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.Raycaster: .linePrecision has been deprecated. Use .params.Line.threshold instead.');\r\n\t\t\t\treturn this.params.Line.threshold;\r\n\t\t\t},\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tconsole.warn('THREE.Raycaster: .linePrecision has been deprecated. Use .params.Line.threshold instead.');\r\n\t\t\t\tthis.params.Line.threshold = value;\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\tObject.defineProperties(InterleavedBuffer.prototype, {\r\n\t\tdynamic: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.InterleavedBuffer: .length has been deprecated. Use .usage instead.');\r\n\t\t\t\treturn this.usage === DynamicDrawUsage;\r\n\t\t\t},\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tconsole.warn('THREE.InterleavedBuffer: .length has been deprecated. Use .usage instead.');\r\n\t\t\t\tthis.setUsage(value);\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\tObject.assign(InterleavedBuffer.prototype, {\r\n\t\tsetDynamic: function setDynamic(value) {\r\n\t\t\tconsole.warn('THREE.InterleavedBuffer: .setDynamic() has been deprecated. Use .setUsage() instead.');\r\n\t\t\tthis.setUsage(value === true ? DynamicDrawUsage : StaticDrawUsage);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\tsetArray: function setArray()\r\n\t\t/* array */\r\n\t\t{\r\n\t\t\tconsole.error('THREE.InterleavedBuffer: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers');\r\n\t\t}\r\n\t}); //\r\n\r\n\tObject.assign(ExtrudeBufferGeometry.prototype, {\r\n\t\tgetArrays: function getArrays() {\r\n\t\t\tconsole.error('THREE.ExtrudeBufferGeometry: .getArrays() has been removed.');\r\n\t\t},\r\n\t\taddShapeList: function addShapeList() {\r\n\t\t\tconsole.error('THREE.ExtrudeBufferGeometry: .addShapeList() has been removed.');\r\n\t\t},\r\n\t\taddShape: function addShape() {\r\n\t\t\tconsole.error('THREE.ExtrudeBufferGeometry: .addShape() has been removed.');\r\n\t\t}\r\n\t}); //\r\n\r\n\tObject.assign(Scene.prototype, {\r\n\t\tdispose: function dispose() {\r\n\t\t\tconsole.error('THREE.Scene: .dispose() has been removed.');\r\n\t\t}\r\n\t}); //\r\n\r\n\tObject.defineProperties(Uniform.prototype, {\r\n\t\tdynamic: {\r\n\t\t\tset: function set() {\r\n\t\t\t\tconsole.warn('THREE.Uniform: .dynamic has been removed. Use object.onBeforeRender() instead.');\r\n\t\t\t}\r\n\t\t},\r\n\t\tonUpdate: {\r\n\t\t\tvalue: function value() {\r\n\t\t\t\tconsole.warn('THREE.Uniform: .onUpdate() has been removed. Use object.onBeforeRender() instead.');\r\n\t\t\t\treturn this;\r\n\t\t\t}\r\n\t\t}\r\n\t}); //\r\n\r\n\tObject.defineProperties(Material.prototype, {\r\n\t\twrapAround: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.Material: .wrapAround has been removed.');\r\n\t\t\t},\r\n\t\t\tset: function set() {\r\n\t\t\t\tconsole.warn('THREE.Material: .wrapAround has been removed.');\r\n\t\t\t}\r\n\t\t},\r\n\t\toverdraw: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.Material: .overdraw has been removed.');\r\n\t\t\t},\r\n\t\t\tset: function set() {\r\n\t\t\t\tconsole.warn('THREE.Material: .overdraw has been removed.');\r\n\t\t\t}\r\n\t\t},\r\n\t\twrapRGB: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.Material: .wrapRGB has been removed.');\r\n\t\t\t\treturn new Color();\r\n\t\t\t}\r\n\t\t},\r\n\t\tshading: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.error('THREE.' + this.type + ': .shading has been removed. Use the boolean .flatShading instead.');\r\n\t\t\t},\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tconsole.warn('THREE.' + this.type + ': .shading has been removed. Use the boolean .flatShading instead.');\r\n\t\t\t\tthis.flatShading = value === FlatShading;\r\n\t\t\t}\r\n\t\t},\r\n\t\tstencilMask: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.' + this.type + ': .stencilMask has been removed. Use .stencilFuncMask instead.');\r\n\t\t\t\treturn this.stencilFuncMask;\r\n\t\t\t},\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tconsole.warn('THREE.' + this.type + ': .stencilMask has been removed. Use .stencilFuncMask instead.');\r\n\t\t\t\tthis.stencilFuncMask = value;\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\tObject.defineProperties(MeshPhongMaterial.prototype, {\r\n\t\tmetal: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead.');\r\n\t\t\t\treturn false;\r\n\t\t\t},\r\n\t\t\tset: function set() {\r\n\t\t\t\tconsole.warn('THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead');\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\tObject.defineProperties(MeshPhysicalMaterial.prototype, {\r\n\t\ttransparency: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.MeshPhysicalMaterial: .transparency has been renamed to .transmission.');\r\n\t\t\t\treturn this.transmission;\r\n\t\t\t},\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tconsole.warn('THREE.MeshPhysicalMaterial: .transparency has been renamed to .transmission.');\r\n\t\t\t\tthis.transmission = value;\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\tObject.defineProperties(ShaderMaterial.prototype, {\r\n\t\tderivatives: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives.');\r\n\t\t\t\treturn this.extensions.derivatives;\r\n\t\t\t},\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tconsole.warn('THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives.');\r\n\t\t\t\tthis.extensions.derivatives = value;\r\n\t\t\t}\r\n\t\t}\r\n\t}); //\r\n\r\n\tObject.assign(WebGLRenderer.prototype, {\r\n\t\tclearTarget: function clearTarget(renderTarget, color, depth, stencil) {\r\n\t\t\tconsole.warn('THREE.WebGLRenderer: .clearTarget() has been deprecated. Use .setRenderTarget() and .clear() instead.');\r\n\t\t\tthis.setRenderTarget(renderTarget);\r\n\t\t\tthis.clear(color, depth, stencil);\r\n\t\t},\r\n\t\tanimate: function animate(callback) {\r\n\t\t\tconsole.warn('THREE.WebGLRenderer: .animate() is now .setAnimationLoop().');\r\n\t\t\tthis.setAnimationLoop(callback);\r\n\t\t},\r\n\t\tgetCurrentRenderTarget: function getCurrentRenderTarget() {\r\n\t\t\tconsole.warn('THREE.WebGLRenderer: .getCurrentRenderTarget() is now .getRenderTarget().');\r\n\t\t\treturn this.getRenderTarget();\r\n\t\t},\r\n\t\tgetMaxAnisotropy: function getMaxAnisotropy() {\r\n\t\t\tconsole.warn('THREE.WebGLRenderer: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy().');\r\n\t\t\treturn this.capabilities.getMaxAnisotropy();\r\n\t\t},\r\n\t\tgetPrecision: function getPrecision() {\r\n\t\t\tconsole.warn('THREE.WebGLRenderer: .getPrecision() is now .capabilities.precision.');\r\n\t\t\treturn this.capabilities.precision;\r\n\t\t},\r\n\t\tresetGLState: function resetGLState() {\r\n\t\t\tconsole.warn('THREE.WebGLRenderer: .resetGLState() is now .state.reset().');\r\n\t\t\treturn this.state.reset();\r\n\t\t},\r\n\t\tsupportsFloatTextures: function supportsFloatTextures() {\r\n\t\t\tconsole.warn('THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( \\'OES_texture_float\\' ).');\r\n\t\t\treturn this.extensions.get('OES_texture_float');\r\n\t\t},\r\n\t\tsupportsHalfFloatTextures: function supportsHalfFloatTextures() {\r\n\t\t\tconsole.warn('THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( \\'OES_texture_half_float\\' ).');\r\n\t\t\treturn this.extensions.get('OES_texture_half_float');\r\n\t\t},\r\n\t\tsupportsStandardDerivatives: function supportsStandardDerivatives() {\r\n\t\t\tconsole.warn('THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( \\'OES_standard_derivatives\\' ).');\r\n\t\t\treturn this.extensions.get('OES_standard_derivatives');\r\n\t\t},\r\n\t\tsupportsCompressedTextureS3TC: function supportsCompressedTextureS3TC() {\r\n\t\t\tconsole.warn('THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( \\'WEBGL_compressed_texture_s3tc\\' ).');\r\n\t\t\treturn this.extensions.get('WEBGL_compressed_texture_s3tc');\r\n\t\t},\r\n\t\tsupportsCompressedTexturePVRTC: function supportsCompressedTexturePVRTC() {\r\n\t\t\tconsole.warn('THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( \\'WEBGL_compressed_texture_pvrtc\\' ).');\r\n\t\t\treturn this.extensions.get('WEBGL_compressed_texture_pvrtc');\r\n\t\t},\r\n\t\tsupportsBlendMinMax: function supportsBlendMinMax() {\r\n\t\t\tconsole.warn('THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( \\'EXT_blend_minmax\\' ).');\r\n\t\t\treturn this.extensions.get('EXT_blend_minmax');\r\n\t\t},\r\n\t\tsupportsVertexTextures: function supportsVertexTextures() {\r\n\t\t\tconsole.warn('THREE.WebGLRenderer: .supportsVertexTextures() is now .capabilities.vertexTextures.');\r\n\t\t\treturn this.capabilities.vertexTextures;\r\n\t\t},\r\n\t\tsupportsInstancedArrays: function supportsInstancedArrays() {\r\n\t\t\tconsole.warn('THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( \\'ANGLE_instanced_arrays\\' ).');\r\n\t\t\treturn this.extensions.get('ANGLE_instanced_arrays');\r\n\t\t},\r\n\t\tenableScissorTest: function enableScissorTest(boolean) {\r\n\t\t\tconsole.warn('THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest().');\r\n\t\t\tthis.setScissorTest(boolean);\r\n\t\t},\r\n\t\tinitMaterial: function initMaterial() {\r\n\t\t\tconsole.warn('THREE.WebGLRenderer: .initMaterial() has been removed.');\r\n\t\t},\r\n\t\taddPrePlugin: function addPrePlugin() {\r\n\t\t\tconsole.warn('THREE.WebGLRenderer: .addPrePlugin() has been removed.');\r\n\t\t},\r\n\t\taddPostPlugin: function addPostPlugin() {\r\n\t\t\tconsole.warn('THREE.WebGLRenderer: .addPostPlugin() has been removed.');\r\n\t\t},\r\n\t\tupdateShadowMap: function updateShadowMap() {\r\n\t\t\tconsole.warn('THREE.WebGLRenderer: .updateShadowMap() has been removed.');\r\n\t\t},\r\n\t\tsetFaceCulling: function setFaceCulling() {\r\n\t\t\tconsole.warn('THREE.WebGLRenderer: .setFaceCulling() has been removed.');\r\n\t\t},\r\n\t\tallocTextureUnit: function allocTextureUnit() {\r\n\t\t\tconsole.warn('THREE.WebGLRenderer: .allocTextureUnit() has been removed.');\r\n\t\t},\r\n\t\tsetTexture: function setTexture() {\r\n\t\t\tconsole.warn('THREE.WebGLRenderer: .setTexture() has been removed.');\r\n\t\t},\r\n\t\tsetTexture2D: function setTexture2D() {\r\n\t\t\tconsole.warn('THREE.WebGLRenderer: .setTexture2D() has been removed.');\r\n\t\t},\r\n\t\tsetTextureCube: function setTextureCube() {\r\n\t\t\tconsole.warn('THREE.WebGLRenderer: .setTextureCube() has been removed.');\r\n\t\t},\r\n\t\tgetActiveMipMapLevel: function getActiveMipMapLevel() {\r\n\t\t\tconsole.warn('THREE.WebGLRenderer: .getActiveMipMapLevel() is now .getActiveMipmapLevel().');\r\n\t\t\treturn this.getActiveMipmapLevel();\r\n\t\t}\r\n\t});\r\n\tObject.defineProperties(WebGLRenderer.prototype, {\r\n\t\tshadowMapEnabled: {\r\n\t\t\tget: function get() {\r\n\t\t\t\treturn this.shadowMap.enabled;\r\n\t\t\t},\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled.');\r\n\t\t\t\tthis.shadowMap.enabled = value;\r\n\t\t\t}\r\n\t\t},\r\n\t\tshadowMapType: {\r\n\t\t\tget: function get() {\r\n\t\t\t\treturn this.shadowMap.type;\r\n\t\t\t},\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type.');\r\n\t\t\t\tthis.shadowMap.type = value;\r\n\t\t\t}\r\n\t\t},\r\n\t\tshadowMapCullFace: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.');\r\n\t\t\t\treturn undefined;\r\n\t\t\t},\r\n\t\t\tset: function set()\r\n\t\t\t/* value */\r\n\t\t\t{\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.');\r\n\t\t\t}\r\n\t\t},\r\n\t\tcontext: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderer: .context has been removed. Use .getContext() instead.');\r\n\t\t\t\treturn this.getContext();\r\n\t\t\t}\r\n\t\t},\r\n\t\tvr: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderer: .vr has been renamed to .xr');\r\n\t\t\t\treturn this.xr;\r\n\t\t\t}\r\n\t\t},\r\n\t\tgammaInput: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead.');\r\n\t\t\t\treturn false;\r\n\t\t\t},\r\n\t\t\tset: function set() {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead.');\r\n\t\t\t}\r\n\t\t},\r\n\t\tgammaOutput: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead.');\r\n\t\t\t\treturn false;\r\n\t\t\t},\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead.');\r\n\t\t\t\tthis.outputEncoding = value === true ? sRGBEncoding : LinearEncoding;\r\n\t\t\t}\r\n\t\t},\r\n\t\ttoneMappingWhitePoint: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderer: .toneMappingWhitePoint has been removed.');\r\n\t\t\t\treturn 1.0;\r\n\t\t\t},\r\n\t\t\tset: function set() {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderer: .toneMappingWhitePoint has been removed.');\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\tObject.defineProperties(WebGLShadowMap.prototype, {\r\n\t\tcullFace: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.');\r\n\t\t\t\treturn undefined;\r\n\t\t\t},\r\n\t\t\tset: function set()\r\n\t\t\t/* cullFace */\r\n\t\t\t{\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.');\r\n\t\t\t}\r\n\t\t},\r\n\t\trenderReverseSided: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.');\r\n\t\t\t\treturn undefined;\r\n\t\t\t},\r\n\t\t\tset: function set() {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.');\r\n\t\t\t}\r\n\t\t},\r\n\t\trenderSingleSided: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.');\r\n\t\t\t\treturn undefined;\r\n\t\t\t},\r\n\t\t\tset: function set() {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.');\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\tfunction WebGLRenderTargetCube(width, height, options) {\r\n\t\tconsole.warn('THREE.WebGLRenderTargetCube( width, height, options ) is now WebGLCubeRenderTarget( size, options ).');\r\n\t\treturn new WebGLCubeRenderTarget(width, options);\r\n\t} //\r\n\r\n\tObject.defineProperties(WebGLRenderTarget.prototype, {\r\n\t\twrapS: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.');\r\n\t\t\t\treturn this.texture.wrapS;\r\n\t\t\t},\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.');\r\n\t\t\t\tthis.texture.wrapS = value;\r\n\t\t\t}\r\n\t\t},\r\n\t\twrapT: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.');\r\n\t\t\t\treturn this.texture.wrapT;\r\n\t\t\t},\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.');\r\n\t\t\t\tthis.texture.wrapT = value;\r\n\t\t\t}\r\n\t\t},\r\n\t\tmagFilter: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.');\r\n\t\t\t\treturn this.texture.magFilter;\r\n\t\t\t},\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.');\r\n\t\t\t\tthis.texture.magFilter = value;\r\n\t\t\t}\r\n\t\t},\r\n\t\tminFilter: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.');\r\n\t\t\t\treturn this.texture.minFilter;\r\n\t\t\t},\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.');\r\n\t\t\t\tthis.texture.minFilter = value;\r\n\t\t\t}\r\n\t\t},\r\n\t\tanisotropy: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.');\r\n\t\t\t\treturn this.texture.anisotropy;\r\n\t\t\t},\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.');\r\n\t\t\t\tthis.texture.anisotropy = value;\r\n\t\t\t}\r\n\t\t},\r\n\t\toffset: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderTarget: .offset is now .texture.offset.');\r\n\t\t\t\treturn this.texture.offset;\r\n\t\t\t},\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderTarget: .offset is now .texture.offset.');\r\n\t\t\t\tthis.texture.offset = value;\r\n\t\t\t}\r\n\t\t},\r\n\t\trepeat: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderTarget: .repeat is now .texture.repeat.');\r\n\t\t\t\treturn this.texture.repeat;\r\n\t\t\t},\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderTarget: .repeat is now .texture.repeat.');\r\n\t\t\t\tthis.texture.repeat = value;\r\n\t\t\t}\r\n\t\t},\r\n\t\tformat: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderTarget: .format is now .texture.format.');\r\n\t\t\t\treturn this.texture.format;\r\n\t\t\t},\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderTarget: .format is now .texture.format.');\r\n\t\t\t\tthis.texture.format = value;\r\n\t\t\t}\r\n\t\t},\r\n\t\ttype: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderTarget: .type is now .texture.type.');\r\n\t\t\t\treturn this.texture.type;\r\n\t\t\t},\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderTarget: .type is now .texture.type.');\r\n\t\t\t\tthis.texture.type = value;\r\n\t\t\t}\r\n\t\t},\r\n\t\tgenerateMipmaps: {\r\n\t\t\tget: function get() {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.');\r\n\t\t\t\treturn this.texture.generateMipmaps;\r\n\t\t\t},\r\n\t\t\tset: function set(value) {\r\n\t\t\t\tconsole.warn('THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.');\r\n\t\t\t\tthis.texture.generateMipmaps = value;\r\n\t\t\t}\r\n\t\t}\r\n\t}); //\r\n\r\n\tObject.defineProperties(Audio.prototype, {\r\n\t\tload: {\r\n\t\t\tvalue: function value(file) {\r\n\t\t\t\tconsole.warn('THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.');\r\n\t\t\t\tvar scope = this;\r\n\t\t\t\tvar audioLoader = new AudioLoader();\r\n\t\t\t\taudioLoader.load(file, function (buffer) {\r\n\t\t\t\t\tscope.setBuffer(buffer);\r\n\t\t\t\t});\r\n\t\t\t\treturn this;\r\n\t\t\t}\r\n\t\t},\r\n\t\tstartTime: {\r\n\t\t\tset: function set() {\r\n\t\t\t\tconsole.warn('THREE.Audio: .startTime is now .play( delay ).');\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\tAudioAnalyser.prototype.getData = function () {\r\n\t\tconsole.warn('THREE.AudioAnalyser: .getData() is now .getFrequencyData().');\r\n\t\treturn this.getFrequencyData();\r\n\t}; //\r\n\r\n\r\n\tCubeCamera.prototype.updateCubeMap = function (renderer, scene) {\r\n\t\tconsole.warn('THREE.CubeCamera: .updateCubeMap() is now .update().');\r\n\t\treturn this.update(renderer, scene);\r\n\t};\r\n\r\n\tCubeCamera.prototype.clear = function (renderer, color, depth, stencil) {\r\n\t\tconsole.warn('THREE.CubeCamera: .clear() is now .renderTarget.clear().');\r\n\t\treturn this.renderTarget.clear(renderer, color, depth, stencil);\r\n\t}; //\r\n\r\n\r\n\tvar GeometryUtils = {\r\n\t\tmerge: function merge(geometry1, geometry2, materialIndexOffset) {\r\n\t\t\tconsole.warn('THREE.GeometryUtils: .merge() has been moved to Geometry. Use geometry.merge( geometry2, matrix, materialIndexOffset ) instead.');\r\n\t\t\tvar matrix;\r\n\r\n\t\t\tif (geometry2.isMesh) {\r\n\t\t\t\tgeometry2.matrixAutoUpdate && geometry2.updateMatrix();\r\n\t\t\t\tmatrix = geometry2.matrix;\r\n\t\t\t\tgeometry2 = geometry2.geometry;\r\n\t\t\t}\r\n\r\n\t\t\tgeometry1.merge(geometry2, matrix, materialIndexOffset);\r\n\t\t},\r\n\t\tcenter: function center(geometry) {\r\n\t\t\tconsole.warn('THREE.GeometryUtils: .center() has been moved to Geometry. Use geometry.center() instead.');\r\n\t\t\treturn geometry.center();\r\n\t\t}\r\n\t};\r\n\tImageUtils.crossOrigin = undefined;\r\n\r\n\tImageUtils.loadTexture = function (url, mapping, onLoad, onError) {\r\n\t\tconsole.warn('THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.');\r\n\t\tvar loader = new TextureLoader();\r\n\t\tloader.setCrossOrigin(this.crossOrigin);\r\n\t\tvar texture = loader.load(url, onLoad, undefined, onError);\r\n\t\tif (mapping) texture.mapping = mapping;\r\n\t\treturn texture;\r\n\t};\r\n\r\n\tImageUtils.loadTextureCube = function (urls, mapping, onLoad, onError) {\r\n\t\tconsole.warn('THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.');\r\n\t\tvar loader = new CubeTextureLoader();\r\n\t\tloader.setCrossOrigin(this.crossOrigin);\r\n\t\tvar texture = loader.load(urls, onLoad, undefined, onError);\r\n\t\tif (mapping) texture.mapping = mapping;\r\n\t\treturn texture;\r\n\t};\r\n\r\n\tImageUtils.loadCompressedTexture = function () {\r\n\t\tconsole.error('THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.');\r\n\t};\r\n\r\n\tImageUtils.loadCompressedTextureCube = function () {\r\n\t\tconsole.error('THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.');\r\n\t}; //\r\n\r\n\r\n\tfunction CanvasRenderer() {\r\n\t\tconsole.error('THREE.CanvasRenderer has been removed');\r\n\t} //\r\n\r\n\tfunction JSONLoader() {\r\n\t\tconsole.error('THREE.JSONLoader has been removed.');\r\n\t} //\r\n\r\n\tvar SceneUtils = {\r\n\t\tcreateMultiMaterialObject: function createMultiMaterialObject()\r\n\t\t/* geometry, materials */\r\n\t\t{\r\n\t\t\tconsole.error('THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js');\r\n\t\t},\r\n\t\tdetach: function detach()\r\n\t\t/* child, parent, scene */\r\n\t\t{\r\n\t\t\tconsole.error('THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js');\r\n\t\t},\r\n\t\tattach: function attach()\r\n\t\t/* child, scene, parent */\r\n\t\t{\r\n\t\t\tconsole.error('THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js');\r\n\t\t}\r\n\t}; //\r\n\r\n\tfunction LensFlare() {\r\n\t\tconsole.error('THREE.LensFlare has been moved to /examples/jsm/objects/Lensflare.js');\r\n\t}\r\n\r\n\tif (typeof __THREE_DEVTOOLS__ !== 'undefined') {\r\n\t\t/* eslint-disable no-undef */\r\n\t\t__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent('register', {\r\n\t\t\tdetail: {\r\n\t\t\t\trevision: REVISION\r\n\t\t\t}\r\n\t\t}));\r\n\t\t/* eslint-enable no-undef */\r\n\r\n\t}\r\n\r\n\texports.ACESFilmicToneMapping = ACESFilmicToneMapping;\r\n\texports.AddEquation = AddEquation;\r\n\texports.AddOperation = AddOperation;\r\n\texports.AdditiveAnimationBlendMode = AdditiveAnimationBlendMode;\r\n\texports.AdditiveBlending = AdditiveBlending;\r\n\texports.AlphaFormat = AlphaFormat;\r\n\texports.AlwaysDepth = AlwaysDepth;\r\n\texports.AlwaysStencilFunc = AlwaysStencilFunc;\r\n\texports.AmbientLight = AmbientLight;\r\n\texports.AmbientLightProbe = AmbientLightProbe;\r\n\texports.AnimationClip = AnimationClip;\r\n\texports.AnimationLoader = AnimationLoader;\r\n\texports.AnimationMixer = AnimationMixer;\r\n\texports.AnimationObjectGroup = AnimationObjectGroup;\r\n\texports.AnimationUtils = AnimationUtils;\r\n\texports.ArcCurve = ArcCurve;\r\n\texports.ArrayCamera = ArrayCamera;\r\n\texports.ArrowHelper = ArrowHelper;\r\n\texports.Audio = Audio;\r\n\texports.AudioAnalyser = AudioAnalyser;\r\n\texports.AudioContext = AudioContext;\r\n\texports.AudioListener = AudioListener;\r\n\texports.AudioLoader = AudioLoader;\r\n\texports.AxesHelper = AxesHelper;\r\n\texports.AxisHelper = AxisHelper;\r\n\texports.BackSide = BackSide;\r\n\texports.BasicDepthPacking = BasicDepthPacking;\r\n\texports.BasicShadowMap = BasicShadowMap;\r\n\texports.BinaryTextureLoader = BinaryTextureLoader;\r\n\texports.Bone = Bone;\r\n\texports.BooleanKeyframeTrack = BooleanKeyframeTrack;\r\n\texports.BoundingBoxHelper = BoundingBoxHelper;\r\n\texports.Box2 = Box2;\r\n\texports.Box3 = Box3;\r\n\texports.Box3Helper = Box3Helper;\r\n\texports.BoxBufferGeometry = BoxBufferGeometry;\r\n\texports.BoxGeometry = BoxGeometry;\r\n\texports.BoxHelper = BoxHelper;\r\n\texports.BufferAttribute = BufferAttribute;\r\n\texports.BufferGeometry = BufferGeometry;\r\n\texports.BufferGeometryLoader = BufferGeometryLoader;\r\n\texports.ByteType = ByteType;\r\n\texports.Cache = Cache;\r\n\texports.Camera = Camera;\r\n\texports.CameraHelper = CameraHelper;\r\n\texports.CanvasRenderer = CanvasRenderer;\r\n\texports.CanvasTexture = CanvasTexture;\r\n\texports.CatmullRomCurve3 = CatmullRomCurve3;\r\n\texports.CineonToneMapping = CineonToneMapping;\r\n\texports.CircleBufferGeometry = CircleBufferGeometry;\r\n\texports.CircleGeometry = CircleGeometry;\r\n\texports.ClampToEdgeWrapping = ClampToEdgeWrapping;\r\n\texports.Clock = Clock;\r\n\texports.ClosedSplineCurve3 = ClosedSplineCurve3;\r\n\texports.Color = Color;\r\n\texports.ColorKeyframeTrack = ColorKeyframeTrack;\r\n\texports.CompressedTexture = CompressedTexture;\r\n\texports.CompressedTextureLoader = CompressedTextureLoader;\r\n\texports.ConeBufferGeometry = ConeBufferGeometry;\r\n\texports.ConeGeometry = ConeGeometry;\r\n\texports.CubeCamera = CubeCamera;\r\n\texports.CubeGeometry = BoxGeometry;\r\n\texports.CubeReflectionMapping = CubeReflectionMapping;\r\n\texports.CubeRefractionMapping = CubeRefractionMapping;\r\n\texports.CubeTexture = CubeTexture;\r\n\texports.CubeTextureLoader = CubeTextureLoader;\r\n\texports.CubeUVReflectionMapping = CubeUVReflectionMapping;\r\n\texports.CubeUVRefractionMapping = CubeUVRefractionMapping;\r\n\texports.CubicBezierCurve = CubicBezierCurve;\r\n\texports.CubicBezierCurve3 = CubicBezierCurve3;\r\n\texports.CubicInterpolant = CubicInterpolant;\r\n\texports.CullFaceBack = CullFaceBack;\r\n\texports.CullFaceFront = CullFaceFront;\r\n\texports.CullFaceFrontBack = CullFaceFrontBack;\r\n\texports.CullFaceNone = CullFaceNone;\r\n\texports.Curve = Curve;\r\n\texports.CurvePath = CurvePath;\r\n\texports.CustomBlending = CustomBlending;\r\n\texports.CustomToneMapping = CustomToneMapping;\r\n\texports.CylinderBufferGeometry = CylinderBufferGeometry;\r\n\texports.CylinderGeometry = CylinderGeometry;\r\n\texports.Cylindrical = Cylindrical;\r\n\texports.DataTexture = DataTexture;\r\n\texports.DataTexture2DArray = DataTexture2DArray;\r\n\texports.DataTexture3D = DataTexture3D;\r\n\texports.DataTextureLoader = DataTextureLoader;\r\n\texports.DataUtils = DataUtils;\r\n\texports.DecrementStencilOp = DecrementStencilOp;\r\n\texports.DecrementWrapStencilOp = DecrementWrapStencilOp;\r\n\texports.DefaultLoadingManager = DefaultLoadingManager;\r\n\texports.DepthFormat = DepthFormat;\r\n\texports.DepthStencilFormat = DepthStencilFormat;\r\n\texports.DepthTexture = DepthTexture;\r\n\texports.DirectionalLight = DirectionalLight;\r\n\texports.DirectionalLightHelper = DirectionalLightHelper;\r\n\texports.DiscreteInterpolant = DiscreteInterpolant;\r\n\texports.DodecahedronBufferGeometry = DodecahedronBufferGeometry;\r\n\texports.DodecahedronGeometry = DodecahedronGeometry;\r\n\texports.DoubleSide = DoubleSide;\r\n\texports.DstAlphaFactor = DstAlphaFactor;\r\n\texports.DstColorFactor = DstColorFactor;\r\n\texports.DynamicBufferAttribute = DynamicBufferAttribute;\r\n\texports.DynamicCopyUsage = DynamicCopyUsage;\r\n\texports.DynamicDrawUsage = DynamicDrawUsage;\r\n\texports.DynamicReadUsage = DynamicReadUsage;\r\n\texports.EdgesGeometry = EdgesGeometry;\r\n\texports.EdgesHelper = EdgesHelper;\r\n\texports.EllipseCurve = EllipseCurve;\r\n\texports.EqualDepth = EqualDepth;\r\n\texports.EqualStencilFunc = EqualStencilFunc;\r\n\texports.EquirectangularReflectionMapping = EquirectangularReflectionMapping;\r\n\texports.EquirectangularRefractionMapping = EquirectangularRefractionMapping;\r\n\texports.Euler = Euler;\r\n\texports.EventDispatcher = EventDispatcher;\r\n\texports.ExtrudeBufferGeometry = ExtrudeBufferGeometry;\r\n\texports.ExtrudeGeometry = ExtrudeGeometry;\r\n\texports.Face3 = Face3;\r\n\texports.Face4 = Face4;\r\n\texports.FaceColors = FaceColors;\r\n\texports.FileLoader = FileLoader;\r\n\texports.FlatShading = FlatShading;\r\n\texports.Float16BufferAttribute = Float16BufferAttribute;\r\n\texports.Float32Attribute = Float32Attribute;\r\n\texports.Float32BufferAttribute = Float32BufferAttribute;\r\n\texports.Float64Attribute = Float64Attribute;\r\n\texports.Float64BufferAttribute = Float64BufferAttribute;\r\n\texports.FloatType = FloatType;\r\n\texports.Fog = Fog;\r\n\texports.FogExp2 = FogExp2;\r\n\texports.Font = Font;\r\n\texports.FontLoader = FontLoader;\r\n\texports.FrontSide = FrontSide;\r\n\texports.Frustum = Frustum;\r\n\texports.GLBufferAttribute = GLBufferAttribute;\r\n\texports.GLSL1 = GLSL1;\r\n\texports.GLSL3 = GLSL3;\r\n\texports.GammaEncoding = GammaEncoding;\r\n\texports.Geometry = Geometry;\r\n\texports.GeometryUtils = GeometryUtils;\r\n\texports.GreaterDepth = GreaterDepth;\r\n\texports.GreaterEqualDepth = GreaterEqualDepth;\r\n\texports.GreaterEqualStencilFunc = GreaterEqualStencilFunc;\r\n\texports.GreaterStencilFunc = GreaterStencilFunc;\r\n\texports.GridHelper = GridHelper;\r\n\texports.Group = Group;\r\n\texports.HalfFloatType = HalfFloatType;\r\n\texports.HemisphereLight = HemisphereLight;\r\n\texports.HemisphereLightHelper = HemisphereLightHelper;\r\n\texports.HemisphereLightProbe = HemisphereLightProbe;\r\n\texports.IcosahedronBufferGeometry = IcosahedronBufferGeometry;\r\n\texports.IcosahedronGeometry = IcosahedronGeometry;\r\n\texports.ImageBitmapLoader = ImageBitmapLoader;\r\n\texports.ImageLoader = ImageLoader;\r\n\texports.ImageUtils = ImageUtils;\r\n\texports.ImmediateRenderObject = ImmediateRenderObject;\r\n\texports.IncrementStencilOp = IncrementStencilOp;\r\n\texports.IncrementWrapStencilOp = IncrementWrapStencilOp;\r\n\texports.InstancedBufferAttribute = InstancedBufferAttribute;\r\n\texports.InstancedBufferGeometry = InstancedBufferGeometry;\r\n\texports.InstancedInterleavedBuffer = InstancedInterleavedBuffer;\r\n\texports.InstancedMesh = InstancedMesh;\r\n\texports.Int16Attribute = Int16Attribute;\r\n\texports.Int16BufferAttribute = Int16BufferAttribute;\r\n\texports.Int32Attribute = Int32Attribute;\r\n\texports.Int32BufferAttribute = Int32BufferAttribute;\r\n\texports.Int8Attribute = Int8Attribute;\r\n\texports.Int8BufferAttribute = Int8BufferAttribute;\r\n\texports.IntType = IntType;\r\n\texports.InterleavedBuffer = InterleavedBuffer;\r\n\texports.InterleavedBufferAttribute = InterleavedBufferAttribute;\r\n\texports.Interpolant = Interpolant;\r\n\texports.InterpolateDiscrete = InterpolateDiscrete;\r\n\texports.InterpolateLinear = InterpolateLinear;\r\n\texports.InterpolateSmooth = InterpolateSmooth;\r\n\texports.InvertStencilOp = InvertStencilOp;\r\n\texports.JSONLoader = JSONLoader;\r\n\texports.KeepStencilOp = KeepStencilOp;\r\n\texports.KeyframeTrack = KeyframeTrack;\r\n\texports.LOD = LOD;\r\n\texports.LatheBufferGeometry = LatheBufferGeometry;\r\n\texports.LatheGeometry = LatheGeometry;\r\n\texports.Layers = Layers;\r\n\texports.LensFlare = LensFlare;\r\n\texports.LessDepth = LessDepth;\r\n\texports.LessEqualDepth = LessEqualDepth;\r\n\texports.LessEqualStencilFunc = LessEqualStencilFunc;\r\n\texports.LessStencilFunc = LessStencilFunc;\r\n\texports.Light = Light;\r\n\texports.LightProbe = LightProbe;\r\n\texports.Line = Line;\r\n\texports.Line3 = Line3;\r\n\texports.LineBasicMaterial = LineBasicMaterial;\r\n\texports.LineCurve = LineCurve;\r\n\texports.LineCurve3 = LineCurve3;\r\n\texports.LineDashedMaterial = LineDashedMaterial;\r\n\texports.LineLoop = LineLoop;\r\n\texports.LinePieces = LinePieces;\r\n\texports.LineSegments = LineSegments;\r\n\texports.LineStrip = LineStrip;\r\n\texports.LinearEncoding = LinearEncoding;\r\n\texports.LinearFilter = LinearFilter;\r\n\texports.LinearInterpolant = LinearInterpolant;\r\n\texports.LinearMipMapLinearFilter = LinearMipMapLinearFilter;\r\n\texports.LinearMipMapNearestFilter = LinearMipMapNearestFilter;\r\n\texports.LinearMipmapLinearFilter = LinearMipmapLinearFilter;\r\n\texports.LinearMipmapNearestFilter = LinearMipmapNearestFilter;\r\n\texports.LinearToneMapping = LinearToneMapping;\r\n\texports.Loader = Loader;\r\n\texports.LoaderUtils = LoaderUtils;\r\n\texports.LoadingManager = LoadingManager;\r\n\texports.LogLuvEncoding = LogLuvEncoding;\r\n\texports.LoopOnce = LoopOnce;\r\n\texports.LoopPingPong = LoopPingPong;\r\n\texports.LoopRepeat = LoopRepeat;\r\n\texports.LuminanceAlphaFormat = LuminanceAlphaFormat;\r\n\texports.LuminanceFormat = LuminanceFormat;\r\n\texports.MOUSE = MOUSE;\r\n\texports.Material = Material;\r\n\texports.MaterialLoader = MaterialLoader;\r\n\texports.Math = MathUtils;\r\n\texports.MathUtils = MathUtils;\r\n\texports.Matrix3 = Matrix3;\r\n\texports.Matrix4 = Matrix4;\r\n\texports.MaxEquation = MaxEquation;\r\n\texports.Mesh = Mesh;\r\n\texports.MeshBasicMaterial = MeshBasicMaterial;\r\n\texports.MeshDepthMaterial = MeshDepthMaterial;\r\n\texports.MeshDistanceMaterial = MeshDistanceMaterial;\r\n\texports.MeshFaceMaterial = MeshFaceMaterial;\r\n\texports.MeshLambertMaterial = MeshLambertMaterial;\r\n\texports.MeshMatcapMaterial = MeshMatcapMaterial;\r\n\texports.MeshNormalMaterial = MeshNormalMaterial;\r\n\texports.MeshPhongMaterial = MeshPhongMaterial;\r\n\texports.MeshPhysicalMaterial = MeshPhysicalMaterial;\r\n\texports.MeshStandardMaterial = MeshStandardMaterial;\r\n\texports.MeshToonMaterial = MeshToonMaterial;\r\n\texports.MinEquation = MinEquation;\r\n\texports.MirroredRepeatWrapping = MirroredRepeatWrapping;\r\n\texports.MixOperation = MixOperation;\r\n\texports.MultiMaterial = MultiMaterial;\r\n\texports.MultiplyBlending = MultiplyBlending;\r\n\texports.MultiplyOperation = MultiplyOperation;\r\n\texports.NearestFilter = NearestFilter;\r\n\texports.NearestMipMapLinearFilter = NearestMipMapLinearFilter;\r\n\texports.NearestMipMapNearestFilter = NearestMipMapNearestFilter;\r\n\texports.NearestMipmapLinearFilter = NearestMipmapLinearFilter;\r\n\texports.NearestMipmapNearestFilter = NearestMipmapNearestFilter;\r\n\texports.NeverDepth = NeverDepth;\r\n\texports.NeverStencilFunc = NeverStencilFunc;\r\n\texports.NoBlending = NoBlending;\r\n\texports.NoColors = NoColors;\r\n\texports.NoToneMapping = NoToneMapping;\r\n\texports.NormalAnimationBlendMode = NormalAnimationBlendMode;\r\n\texports.NormalBlending = NormalBlending;\r\n\texports.NotEqualDepth = NotEqualDepth;\r\n\texports.NotEqualStencilFunc = NotEqualStencilFunc;\r\n\texports.NumberKeyframeTrack = NumberKeyframeTrack;\r\n\texports.Object3D = Object3D;\r\n\texports.ObjectLoader = ObjectLoader;\r\n\texports.ObjectSpaceNormalMap = ObjectSpaceNormalMap;\r\n\texports.OctahedronBufferGeometry = OctahedronBufferGeometry;\r\n\texports.OctahedronGeometry = OctahedronGeometry;\r\n\texports.OneFactor = OneFactor;\r\n\texports.OneMinusDstAlphaFactor = OneMinusDstAlphaFactor;\r\n\texports.OneMinusDstColorFactor = OneMinusDstColorFactor;\r\n\texports.OneMinusSrcAlphaFactor = OneMinusSrcAlphaFactor;\r\n\texports.OneMinusSrcColorFactor = OneMinusSrcColorFactor;\r\n\texports.OrthographicCamera = OrthographicCamera;\r\n\texports.PCFShadowMap = PCFShadowMap;\r\n\texports.PCFSoftShadowMap = PCFSoftShadowMap;\r\n\texports.PMREMGenerator = PMREMGenerator;\r\n\texports.ParametricBufferGeometry = ParametricBufferGeometry;\r\n\texports.ParametricGeometry = ParametricGeometry;\r\n\texports.Particle = Particle;\r\n\texports.ParticleBasicMaterial = ParticleBasicMaterial;\r\n\texports.ParticleSystem = ParticleSystem;\r\n\texports.ParticleSystemMaterial = ParticleSystemMaterial;\r\n\texports.Path = Path;\r\n\texports.PerspectiveCamera = PerspectiveCamera;\r\n\texports.Plane = Plane;\r\n\texports.PlaneBufferGeometry = PlaneBufferGeometry;\r\n\texports.PlaneGeometry = PlaneGeometry;\r\n\texports.PlaneHelper = PlaneHelper;\r\n\texports.PointCloud = PointCloud;\r\n\texports.PointCloudMaterial = PointCloudMaterial;\r\n\texports.PointLight = PointLight;\r\n\texports.PointLightHelper = PointLightHelper;\r\n\texports.Points = Points;\r\n\texports.PointsMaterial = PointsMaterial;\r\n\texports.PolarGridHelper = PolarGridHelper;\r\n\texports.PolyhedronBufferGeometry = PolyhedronBufferGeometry;\r\n\texports.PolyhedronGeometry = PolyhedronGeometry;\r\n\texports.PositionalAudio = PositionalAudio;\r\n\texports.PropertyBinding = PropertyBinding;\r\n\texports.PropertyMixer = PropertyMixer;\r\n\texports.QuadraticBezierCurve = QuadraticBezierCurve;\r\n\texports.QuadraticBezierCurve3 = QuadraticBezierCurve3;\r\n\texports.Quaternion = Quaternion;\r\n\texports.QuaternionKeyframeTrack = QuaternionKeyframeTrack;\r\n\texports.QuaternionLinearInterpolant = QuaternionLinearInterpolant;\r\n\texports.REVISION = REVISION;\r\n\texports.RGBADepthPacking = RGBADepthPacking;\r\n\texports.RGBAFormat = RGBAFormat;\r\n\texports.RGBAIntegerFormat = RGBAIntegerFormat;\r\n\texports.RGBA_ASTC_10x10_Format = RGBA_ASTC_10x10_Format;\r\n\texports.RGBA_ASTC_10x5_Format = RGBA_ASTC_10x5_Format;\r\n\texports.RGBA_ASTC_10x6_Format = RGBA_ASTC_10x6_Format;\r\n\texports.RGBA_ASTC_10x8_Format = RGBA_ASTC_10x8_Format;\r\n\texports.RGBA_ASTC_12x10_Format = RGBA_ASTC_12x10_Format;\r\n\texports.RGBA_ASTC_12x12_Format = RGBA_ASTC_12x12_Format;\r\n\texports.RGBA_ASTC_4x4_Format = RGBA_ASTC_4x4_Format;\r\n\texports.RGBA_ASTC_5x4_Format = RGBA_ASTC_5x4_Format;\r\n\texports.RGBA_ASTC_5x5_Format = RGBA_ASTC_5x5_Format;\r\n\texports.RGBA_ASTC_6x5_Format = RGBA_ASTC_6x5_Format;\r\n\texports.RGBA_ASTC_6x6_Format = RGBA_ASTC_6x6_Format;\r\n\texports.RGBA_ASTC_8x5_Format = RGBA_ASTC_8x5_Format;\r\n\texports.RGBA_ASTC_8x6_Format = RGBA_ASTC_8x6_Format;\r\n\texports.RGBA_ASTC_8x8_Format = RGBA_ASTC_8x8_Format;\r\n\texports.RGBA_BPTC_Format = RGBA_BPTC_Format;\r\n\texports.RGBA_ETC2_EAC_Format = RGBA_ETC2_EAC_Format;\r\n\texports.RGBA_PVRTC_2BPPV1_Format = RGBA_PVRTC_2BPPV1_Format;\r\n\texports.RGBA_PVRTC_4BPPV1_Format = RGBA_PVRTC_4BPPV1_Format;\r\n\texports.RGBA_S3TC_DXT1_Format = RGBA_S3TC_DXT1_Format;\r\n\texports.RGBA_S3TC_DXT3_Format = RGBA_S3TC_DXT3_Format;\r\n\texports.RGBA_S3TC_DXT5_Format = RGBA_S3TC_DXT5_Format;\r\n\texports.RGBDEncoding = RGBDEncoding;\r\n\texports.RGBEEncoding = RGBEEncoding;\r\n\texports.RGBEFormat = RGBEFormat;\r\n\texports.RGBFormat = RGBFormat;\r\n\texports.RGBIntegerFormat = RGBIntegerFormat;\r\n\texports.RGBM16Encoding = RGBM16Encoding;\r\n\texports.RGBM7Encoding = RGBM7Encoding;\r\n\texports.RGB_ETC1_Format = RGB_ETC1_Format;\r\n\texports.RGB_ETC2_Format = RGB_ETC2_Format;\r\n\texports.RGB_PVRTC_2BPPV1_Format = RGB_PVRTC_2BPPV1_Format;\r\n\texports.RGB_PVRTC_4BPPV1_Format = RGB_PVRTC_4BPPV1_Format;\r\n\texports.RGB_S3TC_DXT1_Format = RGB_S3TC_DXT1_Format;\r\n\texports.RGFormat = RGFormat;\r\n\texports.RGIntegerFormat = RGIntegerFormat;\r\n\texports.RawShaderMaterial = RawShaderMaterial;\r\n\texports.Ray = Ray;\r\n\texports.Raycaster = Raycaster;\r\n\texports.RectAreaLight = RectAreaLight;\r\n\texports.RedFormat = RedFormat;\r\n\texports.RedIntegerFormat = RedIntegerFormat;\r\n\texports.ReinhardToneMapping = ReinhardToneMapping;\r\n\texports.RepeatWrapping = RepeatWrapping;\r\n\texports.ReplaceStencilOp = ReplaceStencilOp;\r\n\texports.ReverseSubtractEquation = ReverseSubtractEquation;\r\n\texports.RingBufferGeometry = RingBufferGeometry;\r\n\texports.RingGeometry = RingGeometry;\r\n\texports.SRGB8_ALPHA8_ASTC_10x10_Format = SRGB8_ALPHA8_ASTC_10x10_Format;\r\n\texports.SRGB8_ALPHA8_ASTC_10x5_Format = SRGB8_ALPHA8_ASTC_10x5_Format;\r\n\texports.SRGB8_ALPHA8_ASTC_10x6_Format = SRGB8_ALPHA8_ASTC_10x6_Format;\r\n\texports.SRGB8_ALPHA8_ASTC_10x8_Format = SRGB8_ALPHA8_ASTC_10x8_Format;\r\n\texports.SRGB8_ALPHA8_ASTC_12x10_Format = SRGB8_ALPHA8_ASTC_12x10_Format;\r\n\texports.SRGB8_ALPHA8_ASTC_12x12_Format = SRGB8_ALPHA8_ASTC_12x12_Format;\r\n\texports.SRGB8_ALPHA8_ASTC_4x4_Format = SRGB8_ALPHA8_ASTC_4x4_Format;\r\n\texports.SRGB8_ALPHA8_ASTC_5x4_Format = SRGB8_ALPHA8_ASTC_5x4_Format;\r\n\texports.SRGB8_ALPHA8_ASTC_5x5_Format = SRGB8_ALPHA8_ASTC_5x5_Format;\r\n\texports.SRGB8_ALPHA8_ASTC_6x5_Format = SRGB8_ALPHA8_ASTC_6x5_Format;\r\n\texports.SRGB8_ALPHA8_ASTC_6x6_Format = SRGB8_ALPHA8_ASTC_6x6_Format;\r\n\texports.SRGB8_ALPHA8_ASTC_8x5_Format = SRGB8_ALPHA8_ASTC_8x5_Format;\r\n\texports.SRGB8_ALPHA8_ASTC_8x6_Format = SRGB8_ALPHA8_ASTC_8x6_Format;\r\n\texports.SRGB8_ALPHA8_ASTC_8x8_Format = SRGB8_ALPHA8_ASTC_8x8_Format;\r\n\texports.Scene = Scene;\r\n\texports.SceneUtils = SceneUtils;\r\n\texports.ShaderChunk = ShaderChunk;\r\n\texports.ShaderLib = ShaderLib;\r\n\texports.ShaderMaterial = ShaderMaterial;\r\n\texports.ShadowMaterial = ShadowMaterial;\r\n\texports.Shape = Shape;\r\n\texports.ShapeBufferGeometry = ShapeBufferGeometry;\r\n\texports.ShapeGeometry = ShapeGeometry;\r\n\texports.ShapePath = ShapePath;\r\n\texports.ShapeUtils = ShapeUtils;\r\n\texports.ShortType = ShortType;\r\n\texports.Skeleton = Skeleton;\r\n\texports.SkeletonHelper = SkeletonHelper;\r\n\texports.SkinnedMesh = SkinnedMesh;\r\n\texports.SmoothShading = SmoothShading;\r\n\texports.Sphere = Sphere;\r\n\texports.SphereBufferGeometry = SphereBufferGeometry;\r\n\texports.SphereGeometry = SphereGeometry;\r\n\texports.Spherical = Spherical;\r\n\texports.SphericalHarmonics3 = SphericalHarmonics3;\r\n\texports.Spline = Spline;\r\n\texports.SplineCurve = SplineCurve;\r\n\texports.SplineCurve3 = SplineCurve3;\r\n\texports.SpotLight = SpotLight;\r\n\texports.SpotLightHelper = SpotLightHelper;\r\n\texports.Sprite = Sprite;\r\n\texports.SpriteMaterial = SpriteMaterial;\r\n\texports.SrcAlphaFactor = SrcAlphaFactor;\r\n\texports.SrcAlphaSaturateFactor = SrcAlphaSaturateFactor;\r\n\texports.SrcColorFactor = SrcColorFactor;\r\n\texports.StaticCopyUsage = StaticCopyUsage;\r\n\texports.StaticDrawUsage = StaticDrawUsage;\r\n\texports.StaticReadUsage = StaticReadUsage;\r\n\texports.StereoCamera = StereoCamera;\r\n\texports.StreamCopyUsage = StreamCopyUsage;\r\n\texports.StreamDrawUsage = StreamDrawUsage;\r\n\texports.StreamReadUsage = StreamReadUsage;\r\n\texports.StringKeyframeTrack = StringKeyframeTrack;\r\n\texports.SubtractEquation = SubtractEquation;\r\n\texports.SubtractiveBlending = SubtractiveBlending;\r\n\texports.TOUCH = TOUCH;\r\n\texports.TangentSpaceNormalMap = TangentSpaceNormalMap;\r\n\texports.TetrahedronBufferGeometry = TetrahedronBufferGeometry;\r\n\texports.TetrahedronGeometry = TetrahedronGeometry;\r\n\texports.TextBufferGeometry = TextBufferGeometry;\r\n\texports.TextGeometry = TextGeometry;\r\n\texports.Texture = Texture;\r\n\texports.TextureLoader = TextureLoader;\r\n\texports.TorusBufferGeometry = TorusBufferGeometry;\r\n\texports.TorusGeometry = TorusGeometry;\r\n\texports.TorusKnotBufferGeometry = TorusKnotBufferGeometry;\r\n\texports.TorusKnotGeometry = TorusKnotGeometry;\r\n\texports.Triangle = Triangle;\r\n\texports.TriangleFanDrawMode = TriangleFanDrawMode;\r\n\texports.TriangleStripDrawMode = TriangleStripDrawMode;\r\n\texports.TrianglesDrawMode = TrianglesDrawMode;\r\n\texports.TubeBufferGeometry = TubeBufferGeometry;\r\n\texports.TubeGeometry = TubeGeometry;\r\n\texports.UVMapping = UVMapping;\r\n\texports.Uint16Attribute = Uint16Attribute;\r\n\texports.Uint16BufferAttribute = Uint16BufferAttribute;\r\n\texports.Uint32Attribute = Uint32Attribute;\r\n\texports.Uint32BufferAttribute = Uint32BufferAttribute;\r\n\texports.Uint8Attribute = Uint8Attribute;\r\n\texports.Uint8BufferAttribute = Uint8BufferAttribute;\r\n\texports.Uint8ClampedAttribute = Uint8ClampedAttribute;\r\n\texports.Uint8ClampedBufferAttribute = Uint8ClampedBufferAttribute;\r\n\texports.Uniform = Uniform;\r\n\texports.UniformsLib = UniformsLib;\r\n\texports.UniformsUtils = UniformsUtils;\r\n\texports.UnsignedByteType = UnsignedByteType;\r\n\texports.UnsignedInt248Type = UnsignedInt248Type;\r\n\texports.UnsignedIntType = UnsignedIntType;\r\n\texports.UnsignedShort4444Type = UnsignedShort4444Type;\r\n\texports.UnsignedShort5551Type = UnsignedShort5551Type;\r\n\texports.UnsignedShort565Type = UnsignedShort565Type;\r\n\texports.UnsignedShortType = UnsignedShortType;\r\n\texports.VSMShadowMap = VSMShadowMap;\r\n\texports.Vector2 = Vector2;\r\n\texports.Vector3 = Vector3;\r\n\texports.Vector4 = Vector4;\r\n\texports.VectorKeyframeTrack = VectorKeyframeTrack;\r\n\texports.Vertex = Vertex;\r\n\texports.VertexColors = VertexColors;\r\n\texports.VideoTexture = VideoTexture;\r\n\texports.WebGL1Renderer = WebGL1Renderer;\r\n\texports.WebGLCubeRenderTarget = WebGLCubeRenderTarget;\r\n\texports.WebGLMultisampleRenderTarget = WebGLMultisampleRenderTarget;\r\n\texports.WebGLRenderTarget = WebGLRenderTarget;\r\n\texports.WebGLRenderTargetCube = WebGLRenderTargetCube;\r\n\texports.WebGLRenderer = WebGLRenderer;\r\n\texports.WebGLUtils = WebGLUtils;\r\n\texports.WireframeGeometry = WireframeGeometry;\r\n\texports.WireframeHelper = WireframeHelper;\r\n\texports.WrapAroundEnding = WrapAroundEnding;\r\n\texports.XHRLoader = XHRLoader;\r\n\texports.ZeroCurvatureEnding = ZeroCurvatureEnding;\r\n\texports.ZeroFactor = ZeroFactor;\r\n\texports.ZeroSlopeEnding = ZeroSlopeEnding;\r\n\texports.ZeroStencilOp = ZeroStencilOp;\r\n\texports.sRGBEncoding = sRGBEncoding;\r\n\r\n\tObject.defineProperty(exports, '__esModule', { value: true });\r\n\r\n})));\r\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ZoomedGoogleMap.vue?vue&type=style&index=0&id=d9bf1372&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=style&index=0&id=86e6faee&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvailableUserTags.vue?vue&type=style&index=0&id=7d9c1b05&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TagAgreements.vue?vue&type=style&index=0&id=75720a3f&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Event.vue?vue&type=style&index=0&id=8808df3a&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchPastEvents.vue?vue&type=style&index=0&id=3b5956a5&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OwPositionBox.vue?vue&type=style&index=0&id=1b9918f2&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EventSearchAdvanced.vue?vue&type=style&index=0&id=0f136f2a&scoped=true&lang=css&\"","module.exports = __webpack_public_path__ + \"img/imageLoadSpinner.26ef8bb4.gif\";"],"sourceRoot":""}