Spaces:
Running on RTX PRO 6000
Running on RTX PRO 6000
Enable experimental qualified native USD assets with verified on-demand delivery
Browse files145 source-bound browser-qualified assets; retains existing GLB fallbacks. Bounded 2 GiB native cache, immutable checked artifacts, exact per-restored-run catalogs. Preserves current Explorer controls. Persistence PR recorded separately; dev before production.
This view is limited to 50 files because it contains too many changes. See raw diff
- docker/hf-space/nginx.conf.template +19 -0
- docker/hf-space/supervisord-gpu.conf +11 -0
- docker/hf-space/supervisord.conf +11 -0
- licenses/extras-usd-search-explorer-ui-bundle-javascript-dependencies.txt +0 -0
- pipeline/native_usd.py +264 -0
- pipeline/native_usd_releases/20261005-ee37df6.json +0 -0
- pipeline/native_usd_releases/20261012-9d9f42a.json +0 -0
- services/explorer/dist/build-info.json +37 -5
- services/explorer/dist/index.html +1 -1
- services/explorer/dist/native-usd-fixtures/articulated.usda +178 -0
- services/explorer/dist/native-usd-fixtures/articulated.usdc +0 -0
- services/explorer/dist/static/css/13.2d67a70a.chunk.css +1 -0
- services/explorer/dist/static/css/408.a882dfe3.chunk.css +1 -0
- services/explorer/dist/static/css/493.7df49819.chunk.css +1 -0
- services/explorer/dist/static/css/734.22c494cb.chunk.css +1 -0
- services/explorer/dist/static/js/13.53221a3d.chunk.js +1 -0
- services/explorer/dist/static/js/207.a8b74874.chunk.js +1 -0
- services/explorer/dist/static/js/217.2c2256b2.chunk.js +1 -0
- services/explorer/dist/static/js/217.e0c811ff.chunk.js +0 -1
- services/explorer/dist/static/js/218.c928f993.chunk.js +1 -0
- services/explorer/dist/static/js/27.b6bb28ea.chunk.js +0 -0
- services/explorer/dist/static/js/{408.8f89fba6.chunk.js.LICENSE.txt → 27.b6bb28ea.chunk.js.LICENSE.txt} +0 -0
- services/explorer/dist/static/js/381.2d3cf0a4.chunk.js +0 -0
- services/explorer/dist/static/js/381.8be2731d.chunk.js +0 -0
- services/explorer/dist/static/js/408.8f89fba6.chunk.js +0 -0
- services/explorer/dist/static/js/408.ff11db79.chunk.js +1 -0
- services/explorer/dist/static/js/435.31dcfdae.chunk.js +0 -0
- services/explorer/dist/static/js/{435.a051a3d9.chunk.js.LICENSE.txt → 435.31dcfdae.chunk.js.LICENSE.txt} +0 -0
- services/explorer/dist/static/js/435.a051a3d9.chunk.js +0 -0
- services/explorer/dist/static/js/436.a66b55a3.chunk.js +0 -1
- services/explorer/dist/static/js/436.fb7d7bfa.chunk.js +1 -0
- services/explorer/dist/static/js/445.348eacf2.chunk.js +0 -1
- services/explorer/dist/static/js/445.395e0fec.chunk.js +1 -0
- services/explorer/dist/static/js/493.1fbf9797.chunk.js +1 -0
- services/explorer/dist/static/js/53.865cff8c.chunk.js +1 -0
- services/explorer/dist/static/js/53.d3447b4f.chunk.js +0 -1
- services/explorer/dist/static/js/583.8e18d367.chunk.js +0 -1
- services/explorer/dist/static/js/583.b4f476c9.chunk.js +1 -0
- services/explorer/dist/static/js/601.858a3d83.chunk.js +1 -0
- services/explorer/dist/static/js/626.dd61d770.chunk.js +1 -0
- services/explorer/dist/static/js/66.89eda487.chunk.js +1 -0
- services/explorer/dist/static/js/66.e5e030ee.chunk.js +0 -1
- services/explorer/dist/static/js/672.c00e55f9.chunk.js +1 -0
- services/explorer/dist/static/js/718.3b4487f9.chunk.js +1 -0
- services/explorer/dist/static/js/718.a3eba1ba.chunk.js +0 -1
- services/explorer/dist/static/js/734.2eb423ea.chunk.js +1 -0
- services/explorer/dist/static/js/816.6d66a696.chunk.js +0 -0
- services/explorer/dist/static/js/816.6d66a696.chunk.js.LICENSE.txt +5 -0
- services/explorer/dist/static/js/857.e9f384a0.chunk.js +1 -0
- services/explorer/dist/static/js/892.078314e0.chunk.js +0 -1
docker/hf-space/nginx.conf.template
CHANGED
|
@@ -290,6 +290,25 @@ server {
|
|
| 290 |
# the artifact bucket (supervisord program library-media). Not there (not fetched yet, or none for
|
| 291 |
# this corpus) → a JSON 404 and the Explorer shows no media; never the SPA's index.html. Range requests
|
| 292 |
# (Safari's <video>) are nginx's own. add_header drops his server-level headers: his CORS lines re-declared.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 293 |
location /library_media/ {
|
| 294 |
root /app/hf-space-pipeline/.build; # .build/library_media/: outside .build/restore/, which the index restore empties
|
| 295 |
try_files $uri @slim_not_found;
|
|
|
|
| 290 |
# the artifact bucket (supervisord program library-media). Not there (not fetched yet, or none for
|
| 291 |
# this corpus) → a JSON 404 and the Explorer shows no media; never the SPA's index.html. Range requests
|
| 292 |
# (Safari's <video>) are nginx's own. add_header drops his server-level headers: his CORS lines re-declared.
|
| 293 |
+
# Native USD is a separately pinned release. Its verified 2 GiB cache keeps
|
| 294 |
+
# the full catalog out of the Space's boot-time restore and disk budget.
|
| 295 |
+
location = /library_media/usdsearch-dev/usd-catalog.json {
|
| 296 |
+
proxy_pass http://127.0.0.1:8023;
|
| 297 |
+
proxy_read_timeout 120s;
|
| 298 |
+
gzip_types application/json;
|
| 299 |
+
}
|
| 300 |
+
location /usd/usd-central/ {
|
| 301 |
+
proxy_pass http://127.0.0.1:8023;
|
| 302 |
+
proxy_read_timeout 120s;
|
| 303 |
+
proxy_buffering off;
|
| 304 |
+
gzip_types application/json;
|
| 305 |
+
}
|
| 306 |
+
location /usd-rust/ {
|
| 307 |
+
root /usr/share/nginx/explorer;
|
| 308 |
+
try_files $uri =404;
|
| 309 |
+
gzip_static on;
|
| 310 |
+
add_header X-Content-Type-Options nosniff;
|
| 311 |
+
}
|
| 312 |
location /library_media/ {
|
| 313 |
root /app/hf-space-pipeline/.build; # .build/library_media/: outside .build/restore/, which the index restore empties
|
| 314 |
try_files $uri @slim_not_found;
|
docker/hf-space/supervisord-gpu.conf
CHANGED
|
@@ -135,6 +135,17 @@ stdout_logfile_maxbytes=0
|
|
| 135 |
stderr_logfile=/dev/stderr
|
| 136 |
stderr_logfile_maxbytes=0
|
| 137 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 138 |
[program:library-media]
|
| 139 |
; SimReady Central's library media for this corpus (the Explorer's joints viewer, moving-parts and drop-test
|
| 140 |
; clips), fetched once per container start from the artifact bucket into .build/library_media/ — see
|
|
|
|
| 135 |
stderr_logfile=/dev/stderr
|
| 136 |
stderr_logfile_maxbytes=0
|
| 137 |
|
| 138 |
+
[program:native-usd]
|
| 139 |
+
command=/usr/bin/env -u PYTHONPATH /bin/sh -c "cd /app/hf-space-pipeline && exec /app/.venv/bin/python -m pipeline.native_usd"
|
| 140 |
+
directory=/app/hf-space-pipeline
|
| 141 |
+
user=1000
|
| 142 |
+
autorestart=true
|
| 143 |
+
startsecs=5
|
| 144 |
+
stdout_logfile=/dev/stdout
|
| 145 |
+
stdout_logfile_maxbytes=0
|
| 146 |
+
stderr_logfile=/dev/stderr
|
| 147 |
+
stderr_logfile_maxbytes=0
|
| 148 |
+
|
| 149 |
[program:library-media]
|
| 150 |
; SimReady Central's library media for this corpus (the Explorer's joints viewer, moving-parts and drop-test
|
| 151 |
; clips), fetched once per container start from the artifact bucket into .build/library_media/ — see
|
docker/hf-space/supervisord.conf
CHANGED
|
@@ -147,6 +147,17 @@ stdout_logfile_maxbytes=0
|
|
| 147 |
stderr_logfile=/dev/stderr
|
| 148 |
stderr_logfile_maxbytes=0
|
| 149 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 150 |
[program:library-media]
|
| 151 |
; SimReady Central's library media for this corpus (the Explorer's joints viewer, moving-parts and drop-test
|
| 152 |
; clips), fetched once per container start from the artifact bucket into .build/library_media/ — see
|
|
|
|
| 147 |
stderr_logfile=/dev/stderr
|
| 148 |
stderr_logfile_maxbytes=0
|
| 149 |
|
| 150 |
+
[program:native-usd]
|
| 151 |
+
command=/usr/bin/env -u PYTHONPATH /bin/sh -c "cd /app/hf-space-pipeline && exec /app/.venv/bin/python -m pipeline.native_usd"
|
| 152 |
+
directory=/app/hf-space-pipeline
|
| 153 |
+
user=1000
|
| 154 |
+
autorestart=true
|
| 155 |
+
startsecs=5
|
| 156 |
+
stdout_logfile=/dev/stdout
|
| 157 |
+
stdout_logfile_maxbytes=0
|
| 158 |
+
stderr_logfile=/dev/stderr
|
| 159 |
+
stderr_logfile_maxbytes=0
|
| 160 |
+
|
| 161 |
[program:library-media]
|
| 162 |
; SimReady Central's library media for this corpus (the Explorer's joints viewer, moving-parts and drop-test
|
| 163 |
; clips), fetched once per container start from the artifact bucket into .build/library_media/ — see
|
licenses/extras-usd-search-explorer-ui-bundle-javascript-dependencies.txt
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|
pipeline/native_usd.py
ADDED
|
@@ -0,0 +1,264 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Serve an explicitly pinned, qualified USD release with a bounded verified cache.
|
| 2 |
+
|
| 3 |
+
The private artifact bucket owns the immutable bytes. HF's small ephemeral disk
|
| 4 |
+
holds only recently requested files; neither index restore nor GLB media changes.
|
| 5 |
+
Only manifest-listed paths are readable. No URL supplied by a caller is fetched.
|
| 6 |
+
"""
|
| 7 |
+
from contextlib import contextmanager
|
| 8 |
+
import hashlib
|
| 9 |
+
from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer
|
| 10 |
+
import json
|
| 11 |
+
import mimetypes
|
| 12 |
+
import os
|
| 13 |
+
from pathlib import Path
|
| 14 |
+
import re
|
| 15 |
+
import shutil
|
| 16 |
+
import threading
|
| 17 |
+
import urllib.request
|
| 18 |
+
from urllib.parse import urlsplit, unquote
|
| 19 |
+
|
| 20 |
+
from .config import BUILD_DIR, Config
|
| 21 |
+
|
| 22 |
+
MAX_FILE = 64 << 20
|
| 23 |
+
CACHE_BYTES = 2 << 30
|
| 24 |
+
DISK_RESERVE = 8 << 30
|
| 25 |
+
CATALOG = '/library_media/usdsearch-dev/usd-catalog.json'
|
| 26 |
+
SHA = re.compile(r'^[a-f0-9]{64}$')
|
| 27 |
+
PREFIX = re.compile(r'^simready-assets/[A-Za-z0-9_-]+/library-media/native-usd/v1/blobs$')
|
| 28 |
+
|
| 29 |
+
|
| 30 |
+
class NoRedirect(urllib.request.HTTPRedirectHandler):
|
| 31 |
+
def redirect_request(self, *args):
|
| 32 |
+
raise ValueError('Native artifact requests must not follow redirects')
|
| 33 |
+
|
| 34 |
+
|
| 35 |
+
def safe_path(path):
|
| 36 |
+
return (isinstance(path, str) and path.startswith('/usd/usd-central/')
|
| 37 |
+
and len(path) < 4096 and '\\' not in path and '%' not in path
|
| 38 |
+
and not any(p in ('', '.', '..') for p in path[1:].split('/'))
|
| 39 |
+
and not any(ord(c) < 32 for c in path))
|
| 40 |
+
|
| 41 |
+
|
| 42 |
+
def validate_release(value):
|
| 43 |
+
if (value.get('version') != 1 or not PREFIX.fullmatch(value.get('objectPrefix', ''))
|
| 44 |
+
or value.get('bucket') != 'simreadycentral-index-store'):
|
| 45 |
+
raise ValueError('Unsupported native USD release')
|
| 46 |
+
files = value.get('files')
|
| 47 |
+
if not isinstance(files, dict) or not 1 <= len(files) <= 100000:
|
| 48 |
+
raise ValueError('Invalid native USD file list')
|
| 49 |
+
for path, item in files.items():
|
| 50 |
+
if (not safe_path(path) or not SHA.fullmatch(item.get('sha256', ''))
|
| 51 |
+
or type(item.get('bytes')) is not int or not 0 < item['bytes'] <= MAX_FILE):
|
| 52 |
+
raise ValueError('Invalid native USD artifact')
|
| 53 |
+
catalog = value.get('catalog', {})
|
| 54 |
+
if (catalog.get('version') != 1 or catalog.get('profile') != 'usd-central-assets-v1'
|
| 55 |
+
or catalog.get('index') != 'usdsearch-dev' or not catalog.get('examples')):
|
| 56 |
+
raise ValueError('Invalid native USD catalog')
|
| 57 |
+
seen = set()
|
| 58 |
+
ready = 0
|
| 59 |
+
for row in catalog['examples']:
|
| 60 |
+
if row['id'] in seen or row.get('status') not in ('ready', 'blocked'):
|
| 61 |
+
raise ValueError('Unqualified or duplicate catalog row')
|
| 62 |
+
seen.add(row['id'])
|
| 63 |
+
if row['status'] == 'blocked':
|
| 64 |
+
continue
|
| 65 |
+
ready += 1
|
| 66 |
+
proof = row.get('qualification', {})
|
| 67 |
+
if (proof.get('passed') is not True or proof.get('sourceSha256') != row.get('nativeBaseline', {}).get('sha256')
|
| 68 |
+
or proof.get('interaction') != row.get('interaction')
|
| 69 |
+
or not all(proof.get(k) is True for k in ('geometry', 'materials', 'interactionPassed'))):
|
| 70 |
+
raise ValueError('Catalog qualification is incomplete')
|
| 71 |
+
for field in ('nativeBaseline', 'preparedMetadata', 'preparedColliders'):
|
| 72 |
+
item = row.get(field, {})
|
| 73 |
+
listed = files.get(item.get('url'))
|
| 74 |
+
if not listed or any(item.get(k) != listed[k] for k in ('bytes', 'sha256')):
|
| 75 |
+
raise ValueError('Catalog artifact is not in this release')
|
| 76 |
+
if ready != value.get('qualifiedAssets') or not ready:
|
| 77 |
+
raise ValueError('Qualified asset count mismatch')
|
| 78 |
+
return value
|
| 79 |
+
|
| 80 |
+
|
| 81 |
+
def byte_range(header, size):
|
| 82 |
+
if not header:
|
| 83 |
+
return 0, size - 1, 200
|
| 84 |
+
match = re.fullmatch(r'bytes=(\d*)-(\d*)', header)
|
| 85 |
+
if not match or not any(match.groups()):
|
| 86 |
+
raise ValueError('Invalid range')
|
| 87 |
+
left, right = match.groups()
|
| 88 |
+
if left:
|
| 89 |
+
start = int(left); end = min(int(right) if right else size - 1, size - 1)
|
| 90 |
+
else:
|
| 91 |
+
length = int(right)
|
| 92 |
+
if not length:
|
| 93 |
+
raise ValueError('Empty range')
|
| 94 |
+
start, end = max(0, size - length), size - 1
|
| 95 |
+
if start >= size or end < start:
|
| 96 |
+
raise ValueError('Unsatisfiable range')
|
| 97 |
+
return start, end, 206
|
| 98 |
+
|
| 99 |
+
|
| 100 |
+
class VerifiedCache:
|
| 101 |
+
def __init__(self, root, fetch, limit=CACHE_BYTES, reserve=DISK_RESERVE):
|
| 102 |
+
self.root, self.fetch, self.limit, self.reserve = Path(root), fetch, limit, reserve
|
| 103 |
+
self.root.mkdir(parents=True, exist_ok=True)
|
| 104 |
+
self.lock = threading.RLock()
|
| 105 |
+
self.downloads = threading.BoundedSemaphore(4)
|
| 106 |
+
self.in_use = {}
|
| 107 |
+
self.verified = set()
|
| 108 |
+
self.locks = {}
|
| 109 |
+
for path in self.root.glob('*.part'):
|
| 110 |
+
path.unlink()
|
| 111 |
+
|
| 112 |
+
def make_room(self, wanted):
|
| 113 |
+
files = sorted((p for p in self.root.iterdir() if SHA.fullmatch(p.name)), key=lambda p: p.stat().st_mtime)
|
| 114 |
+
used = sum(p.stat().st_size for p in files)
|
| 115 |
+
for path in files:
|
| 116 |
+
if used + wanted <= self.limit and shutil.disk_usage(self.root).free >= self.reserve + wanted:
|
| 117 |
+
return
|
| 118 |
+
if self.in_use.get(path.name):
|
| 119 |
+
continue
|
| 120 |
+
used -= path.stat().st_size
|
| 121 |
+
self.verified.discard(path.name); path.unlink()
|
| 122 |
+
if used + wanted > self.limit or shutil.disk_usage(self.root).free < self.reserve + wanted:
|
| 123 |
+
raise OSError('Native USD cache has no safe disk capacity')
|
| 124 |
+
|
| 125 |
+
@contextmanager
|
| 126 |
+
def open(self, item):
|
| 127 |
+
key, size = item['sha256'], item['bytes']
|
| 128 |
+
with self.lock:
|
| 129 |
+
file_lock = self.locks.setdefault(key, threading.Lock())
|
| 130 |
+
self.in_use[key] = self.in_use.get(key, 0) + 1
|
| 131 |
+
try:
|
| 132 |
+
with file_lock:
|
| 133 |
+
path = self.root / key
|
| 134 |
+
if key not in self.verified:
|
| 135 |
+
if path.exists():
|
| 136 |
+
if path.stat().st_size == size and hashlib.sha256(path.read_bytes()).hexdigest() == key:
|
| 137 |
+
self.verified.add(key)
|
| 138 |
+
else:
|
| 139 |
+
path.unlink()
|
| 140 |
+
if key not in self.verified:
|
| 141 |
+
with self.downloads:
|
| 142 |
+
with self.lock:
|
| 143 |
+
# Reserve for four simultaneous maximum-size downloads.
|
| 144 |
+
self.make_room(4 * MAX_FILE)
|
| 145 |
+
part = path.with_suffix('.part')
|
| 146 |
+
try:
|
| 147 |
+
digest = hashlib.sha256(); received = 0
|
| 148 |
+
with self.fetch(key) as source, part.open('wb') as target:
|
| 149 |
+
while block := source.read(1 << 20):
|
| 150 |
+
received += len(block)
|
| 151 |
+
if received > size:
|
| 152 |
+
raise ValueError('Native USD transfer exceeded pinned size')
|
| 153 |
+
digest.update(block); target.write(block)
|
| 154 |
+
if received != size or digest.hexdigest() != key:
|
| 155 |
+
raise ValueError('Native USD transfer failed integrity check')
|
| 156 |
+
part.replace(path); self.verified.add(key)
|
| 157 |
+
finally:
|
| 158 |
+
part.unlink(missing_ok=True)
|
| 159 |
+
os.utime(path, None)
|
| 160 |
+
handle = path.open('rb')
|
| 161 |
+
try:
|
| 162 |
+
yield handle
|
| 163 |
+
finally:
|
| 164 |
+
handle.close()
|
| 165 |
+
finally:
|
| 166 |
+
with self.lock:
|
| 167 |
+
self.in_use[key] -= 1
|
| 168 |
+
|
| 169 |
+
|
| 170 |
+
def handler(release, cache):
|
| 171 |
+
catalog = json.dumps(release['catalog'], separators=(',', ':')).encode()
|
| 172 |
+
catalog_sha = hashlib.sha256(catalog).hexdigest()
|
| 173 |
+
|
| 174 |
+
class Handler(BaseHTTPRequestHandler):
|
| 175 |
+
def log_message(self, *args):
|
| 176 |
+
pass
|
| 177 |
+
|
| 178 |
+
def do_HEAD(self):
|
| 179 |
+
self.do_GET()
|
| 180 |
+
|
| 181 |
+
def do_GET(self):
|
| 182 |
+
raw = urlsplit(self.path).path
|
| 183 |
+
path = unquote(raw)
|
| 184 |
+
if raw != path:
|
| 185 |
+
return self.send_error(404)
|
| 186 |
+
if path == CATALOG:
|
| 187 |
+
self.send_response(200)
|
| 188 |
+
self.send_header('Content-Type', 'application/json')
|
| 189 |
+
self.send_header('Content-Length', str(len(catalog)))
|
| 190 |
+
self.send_header('Cache-Control', 'private, no-cache')
|
| 191 |
+
self.send_header('ETag', '"'+catalog_sha+'"')
|
| 192 |
+
self.end_headers()
|
| 193 |
+
if self.command != 'HEAD':
|
| 194 |
+
self.wfile.write(catalog)
|
| 195 |
+
return
|
| 196 |
+
item = release['files'].get(path)
|
| 197 |
+
if not item or not safe_path(path):
|
| 198 |
+
return self.send_error(404)
|
| 199 |
+
size = item['bytes']; etag = '"'+item['sha256']+'"'
|
| 200 |
+
if self.headers.get('If-None-Match') == etag:
|
| 201 |
+
self.send_response(304); self.send_header('ETag', etag); self.end_headers(); return
|
| 202 |
+
try:
|
| 203 |
+
start, end, status = byte_range(self.headers.get('Range'), size)
|
| 204 |
+
except ValueError:
|
| 205 |
+
self.send_response(416); self.send_header('Content-Range', 'bytes */'+str(size)); self.end_headers(); return
|
| 206 |
+
try:
|
| 207 |
+
with cache.open(item) as source:
|
| 208 |
+
self.send_response(status)
|
| 209 |
+
self.send_header('Content-Type', 'application/json' if path.endswith('.json') else mimetypes.guess_type(path)[0] or 'application/octet-stream')
|
| 210 |
+
self.send_header('Content-Length', str(end-start+1))
|
| 211 |
+
self.send_header('Cache-Control', 'private, no-cache')
|
| 212 |
+
self.send_header('ETag', etag)
|
| 213 |
+
self.send_header('Accept-Ranges', 'bytes')
|
| 214 |
+
self.send_header('X-Content-Type-Options', 'nosniff')
|
| 215 |
+
if status == 206:
|
| 216 |
+
self.send_header('Content-Range', f'bytes {start}-{end}/{size}')
|
| 217 |
+
self.end_headers()
|
| 218 |
+
if self.command == 'HEAD':
|
| 219 |
+
return
|
| 220 |
+
source.seek(start); remaining = end-start+1
|
| 221 |
+
while remaining:
|
| 222 |
+
block = source.read(min(1 << 20, remaining))
|
| 223 |
+
if not block:
|
| 224 |
+
raise OSError('Verified cache file was truncated during delivery')
|
| 225 |
+
self.wfile.write(block); remaining -= len(block)
|
| 226 |
+
except (BrokenPipeError, ConnectionResetError):
|
| 227 |
+
pass
|
| 228 |
+
except Exception as error:
|
| 229 |
+
print('Native USD delivery failed: '+type(error).__name__, flush=True)
|
| 230 |
+
self.send_error(503, 'Native USD delivery temporarily unavailable')
|
| 231 |
+
|
| 232 |
+
return Handler
|
| 233 |
+
|
| 234 |
+
|
| 235 |
+
def main():
|
| 236 |
+
import faulthandler
|
| 237 |
+
faulthandler.enable(all_threads=True)
|
| 238 |
+
from . import artifact_store
|
| 239 |
+
run = os.environ.get('RESTORE_RUN_ID', '')
|
| 240 |
+
if not re.fullmatch(r'[A-Za-z0-9_-]+', run):
|
| 241 |
+
raise ValueError('A pinned restored run is required for native USD')
|
| 242 |
+
release_path = Path(__file__).with_name('native_usd_releases') / (run+'.json')
|
| 243 |
+
release = validate_release(json.loads(release_path.read_text()))
|
| 244 |
+
if release['objectPrefix'] != 'simready-assets/'+run+'/library-media/native-usd/v1/blobs':
|
| 245 |
+
raise ValueError('Native USD release does not belong to the restored run')
|
| 246 |
+
cfg = Config(values=dict(os.environ))
|
| 247 |
+
client = artifact_store.s3_client(cfg)
|
| 248 |
+
def fetch(sha):
|
| 249 |
+
# Keep the SDK's response/checksum transport out of HTTP worker threads.
|
| 250 |
+
# The signed URL stays server-side; our pinned SHA256 and size remain the
|
| 251 |
+
# acceptance gate before any bytes are exposed to the browser.
|
| 252 |
+
signed = client.generate_presigned_url('get_object', Params={
|
| 253 |
+
'Bucket': release['bucket'], 'Key': release['objectPrefix']+'/'+sha}, ExpiresIn=300)
|
| 254 |
+
parsed = urlsplit(signed)
|
| 255 |
+
if parsed.scheme != 'https' or not parsed.hostname.endswith('.amazonaws.com'):
|
| 256 |
+
raise ValueError('Unexpected artifact host')
|
| 257 |
+
return urllib.request.build_opener(NoRedirect()).open(signed, timeout=120)
|
| 258 |
+
cache = VerifiedCache(BUILD_DIR/'native_usd_cache', fetch)
|
| 259 |
+
print('Native USD release ready: '+str(release['qualifiedAssets'])+' qualified assets', flush=True)
|
| 260 |
+
ThreadingHTTPServer(('127.0.0.1', 8023), handler(release, cache)).serve_forever()
|
| 261 |
+
|
| 262 |
+
|
| 263 |
+
if __name__ == '__main__':
|
| 264 |
+
main()
|
pipeline/native_usd_releases/20261005-ee37df6.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
pipeline/native_usd_releases/20261012-9d9f42a.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
services/explorer/dist/build-info.json
CHANGED
|
@@ -1,7 +1,39 @@
|
|
| 1 |
{
|
| 2 |
"product": "simready-central-slim-explorer",
|
| 3 |
-
"version": "slim-
|
| 4 |
-
"bundle_id": "main.
|
| 5 |
-
"built_at": "2026-10-
|
| 6 |
-
"flags": {
|
| 7 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
{
|
| 2 |
"product": "simready-central-slim-explorer",
|
| 3 |
+
"version": "slim-usd-hf-031cffe9",
|
| 4 |
+
"bundle_id": "main.738ee38a.js",
|
| 5 |
+
"built_at": "2026-10-13T16:27:32Z",
|
| 6 |
+
"flags": {
|
| 7 |
+
"public_mode": true,
|
| 8 |
+
"email_auth": false,
|
| 9 |
+
"create_ui": false,
|
| 10 |
+
"hierarchy_editor": false,
|
| 11 |
+
"create_search": false,
|
| 12 |
+
"auth_ui": false,
|
| 13 |
+
"credentials_ui": false,
|
| 14 |
+
"index_management": false,
|
| 15 |
+
"inference_backend": "hub",
|
| 16 |
+
"vlm_asset_refs": false,
|
| 17 |
+
"validation_image_max_px": 448,
|
| 18 |
+
"validation_max_retries": 0,
|
| 19 |
+
"validation_max_concurrent": 32,
|
| 20 |
+
"validation_tail_concurrent": 8,
|
| 21 |
+
"validation_eager_count": 50,
|
| 22 |
+
"validation_batch_stream": true,
|
| 23 |
+
"library_idle_prefetch": false,
|
| 24 |
+
"validation_score_scale": "percent",
|
| 25 |
+
"parse_gate_fields": true,
|
| 26 |
+
"parse_fast_path": true,
|
| 27 |
+
"dependency_views": true,
|
| 28 |
+
"model_viewer": false,
|
| 29 |
+
"library_viewer": true,
|
| 30 |
+
"library_media": "runtime",
|
| 31 |
+
"spell_correction": false,
|
| 32 |
+
"downloads": "runtime",
|
| 33 |
+
"submit_content": "runtime",
|
| 34 |
+
"third_party_notices": "runtime",
|
| 35 |
+
"native_usd": true,
|
| 36 |
+
"usd_reader": "rust-pilot-v1"
|
| 37 |
+
},
|
| 38 |
+
"source": "031cffe9"
|
| 39 |
+
}
|
services/explorer/dist/index.html
CHANGED
|
@@ -1 +1 @@
|
|
| 1 |
-
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/ds.png"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="SimReady Central — SimReady asset search"/><meta name="ui-version" content="slim-
|
|
|
|
| 1 |
+
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/ds.png"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="SimReady Central — SimReady asset search"/><meta name="ui-version" content="slim-dev"><script src="/config.js"></script><title>SimReady Central</title><script defer="defer" src="/static/js/main.738ee38a.js"></script><link href="/static/css/main.1d1f5271.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
|
services/explorer/dist/native-usd-fixtures/articulated.usda
ADDED
|
@@ -0,0 +1,178 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#usda 1.0
|
| 2 |
+
(
|
| 3 |
+
defaultPrim = "Qualification"
|
| 4 |
+
metersPerUnit = 1
|
| 5 |
+
upAxis = "Y"
|
| 6 |
+
)
|
| 7 |
+
|
| 8 |
+
# Deterministic native-reader fixture. Four visible triangle-mesh boxes;
|
| 9 |
+
# slider travel is +X 0..0.6 m; door rotates +Y 0..90 degrees about
|
| 10 |
+
# (-0.7, 1.1, 0.35). Visual rest bounds: (-0.7, 0, -0.4)..(0.7, 1.4, 0.4).
|
| 11 |
+
def Xform "Qualification"
|
| 12 |
+
{
|
| 13 |
+
def Scope "Looks"
|
| 14 |
+
{
|
| 15 |
+
def Material "Base"
|
| 16 |
+
{
|
| 17 |
+
token outputs:surface.connect = </Qualification/Looks/Base/Surface.outputs:surface>
|
| 18 |
+
def Shader "Surface"
|
| 19 |
+
{
|
| 20 |
+
uniform token info:id = "UsdPreviewSurface"
|
| 21 |
+
color3f inputs:diffuseColor = (0.2, 0.25, 0.3)
|
| 22 |
+
float inputs:roughness = 0.55
|
| 23 |
+
float inputs:metallic = 0
|
| 24 |
+
token outputs:surface
|
| 25 |
+
}
|
| 26 |
+
}
|
| 27 |
+
def Material "Slider"
|
| 28 |
+
{
|
| 29 |
+
token outputs:surface.connect = </Qualification/Looks/Slider/Surface.outputs:surface>
|
| 30 |
+
def Shader "Surface"
|
| 31 |
+
{
|
| 32 |
+
uniform token info:id = "UsdPreviewSurface"
|
| 33 |
+
color3f inputs:diffuseColor = (0.12, 0.5, 0.75)
|
| 34 |
+
float inputs:roughness = 0.4
|
| 35 |
+
float inputs:metallic = 0
|
| 36 |
+
token outputs:surface
|
| 37 |
+
}
|
| 38 |
+
}
|
| 39 |
+
def Material "Door"
|
| 40 |
+
{
|
| 41 |
+
token outputs:surface.connect = </Qualification/Looks/Door/Surface.outputs:surface>
|
| 42 |
+
def Shader "Surface"
|
| 43 |
+
{
|
| 44 |
+
uniform token info:id = "UsdPreviewSurface"
|
| 45 |
+
color3f inputs:diffuseColor = (0.85, 0.45, 0.15)
|
| 46 |
+
float inputs:roughness = 0.45
|
| 47 |
+
float inputs:metallic = 0
|
| 48 |
+
token outputs:surface
|
| 49 |
+
}
|
| 50 |
+
}
|
| 51 |
+
}
|
| 52 |
+
|
| 53 |
+
def Xform "Base" (prepend apiSchemas = ["PhysicsRigidBodyAPI"])
|
| 54 |
+
{
|
| 55 |
+
bool physics:rigidBodyEnabled = false
|
| 56 |
+
double3 xformOp:translate = (0, 0.2, 0)
|
| 57 |
+
uniform token[] xformOpOrder = ["xformOp:translate"]
|
| 58 |
+
def Mesh "Visual" (prepend apiSchemas = ["MaterialBindingAPI"])
|
| 59 |
+
{
|
| 60 |
+
rel material:binding = </Qualification/Looks/Base>
|
| 61 |
+
uniform token subdivisionScheme = "none"
|
| 62 |
+
point3f[] points = [(-0.7, -0.2, -0.4), (0.7, -0.2, -0.4), (0.7, 0.2, -0.4), (-0.7, 0.2, -0.4), (-0.7, -0.2, 0.4), (0.7, -0.2, 0.4), (0.7, 0.2, 0.4), (-0.7, 0.2, 0.4)]
|
| 63 |
+
int[] faceVertexCounts = [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]
|
| 64 |
+
int[] faceVertexIndices = [0, 2, 1, 0, 3, 2, 4, 5, 6, 4, 6, 7, 0, 1, 5, 0, 5, 4, 3, 7, 6, 3, 6, 2, 0, 4, 7, 0, 7, 3, 1, 2, 6, 1, 6, 5]
|
| 65 |
+
color3f[] primvars:displayColor = [(0.2, 0.25, 0.3)] (interpolation = "constant")
|
| 66 |
+
}
|
| 67 |
+
}
|
| 68 |
+
|
| 69 |
+
def Xform "Slider" (prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"])
|
| 70 |
+
{
|
| 71 |
+
bool physics:rigidBodyEnabled = true
|
| 72 |
+
float physics:mass = 2
|
| 73 |
+
double3 xformOp:translate = (0, 0.65, 0)
|
| 74 |
+
uniform token[] xformOpOrder = ["xformOp:translate"]
|
| 75 |
+
# This mesh must remain visible while also supplying collider geometry.
|
| 76 |
+
def Mesh "Visual" (prepend apiSchemas = ["MaterialBindingAPI", "PhysicsCollisionAPI", "PhysicsMeshCollisionAPI"])
|
| 77 |
+
{
|
| 78 |
+
rel material:binding = </Qualification/Looks/Slider>
|
| 79 |
+
bool physics:collisionEnabled = true
|
| 80 |
+
uniform token physics:approximation = "none"
|
| 81 |
+
uniform token subdivisionScheme = "none"
|
| 82 |
+
point3f[] points = [(-0.4, -0.15, -0.3), (0.4, -0.15, -0.3), (0.4, 0.15, -0.3), (-0.4, 0.15, -0.3), (-0.4, -0.15, 0.3), (0.4, -0.15, 0.3), (0.4, 0.15, 0.3), (-0.4, 0.15, 0.3)]
|
| 83 |
+
int[] faceVertexCounts = [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]
|
| 84 |
+
int[] faceVertexIndices = [0, 2, 1, 0, 3, 2, 4, 5, 6, 4, 6, 7, 0, 1, 5, 0, 5, 4, 3, 7, 6, 3, 6, 2, 0, 4, 7, 0, 7, 3, 1, 2, 6, 1, 6, 5]
|
| 85 |
+
color3f[] primvars:displayColor = [(0.12, 0.5, 0.75)] (interpolation = "constant")
|
| 86 |
+
}
|
| 87 |
+
def Mesh "CollisionGuide" (prepend apiSchemas = ["PhysicsCollisionAPI", "PhysicsMeshCollisionAPI"])
|
| 88 |
+
{
|
| 89 |
+
uniform token purpose = "guide"
|
| 90 |
+
bool physics:collisionEnabled = true
|
| 91 |
+
uniform token physics:approximation = "none"
|
| 92 |
+
uniform token subdivisionScheme = "none"
|
| 93 |
+
point3f[] points = [(-0.42, -0.17, -0.32), (0.42, -0.17, -0.32), (0.42, 0.17, -0.32), (-0.42, 0.17, -0.32), (-0.42, -0.17, 0.32), (0.42, -0.17, 0.32), (0.42, 0.17, 0.32), (-0.42, 0.17, 0.32)]
|
| 94 |
+
int[] faceVertexCounts = [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]
|
| 95 |
+
int[] faceVertexIndices = [0, 2, 1, 0, 3, 2, 4, 5, 6, 4, 6, 7, 0, 1, 5, 0, 5, 4, 3, 7, 6, 3, 6, 2, 0, 4, 7, 0, 7, 3, 1, 2, 6, 1, 6, 5]
|
| 96 |
+
}
|
| 97 |
+
def Xform "PurposeChecks"
|
| 98 |
+
{
|
| 99 |
+
uniform token purpose = "guide"
|
| 100 |
+
double3 xformOp:translate = (0, 0.35, -0.25)
|
| 101 |
+
uniform token[] xformOpOrder = ["xformOp:translate"]
|
| 102 |
+
# No authored purpose here: this far-away box must inherit guide.
|
| 103 |
+
def Mesh "InheritedGuide"
|
| 104 |
+
{
|
| 105 |
+
uniform token subdivisionScheme = "none"
|
| 106 |
+
point3f[] points = [(19.95, -0.05, -0.05), (20.05, -0.05, -0.05), (20.05, 0.05, -0.05), (19.95, 0.05, -0.05), (19.95, -0.05, 0.05), (20.05, -0.05, 0.05), (20.05, 0.05, 0.05), (19.95, 0.05, 0.05)]
|
| 107 |
+
int[] faceVertexCounts = [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]
|
| 108 |
+
int[] faceVertexIndices = [0, 2, 1, 0, 3, 2, 4, 5, 6, 4, 6, 7, 0, 1, 5, 0, 5, 4, 3, 7, 6, 3, 6, 2, 0, 4, 7, 0, 7, 3, 1, 2, 6, 1, 6, 5]
|
| 109 |
+
}
|
| 110 |
+
# An authored default overrides guide and must remain visible.
|
| 111 |
+
def Mesh "DefaultOverride" (prepend apiSchemas = ["MaterialBindingAPI"])
|
| 112 |
+
{
|
| 113 |
+
uniform token purpose = "default"
|
| 114 |
+
rel material:binding = </Qualification/Looks/Slider>
|
| 115 |
+
uniform token subdivisionScheme = "none"
|
| 116 |
+
point3f[] points = [(-0.05, -0.05, -0.05), (0.05, -0.05, -0.05), (0.05, 0.05, -0.05), (-0.05, 0.05, -0.05), (-0.05, -0.05, 0.05), (0.05, -0.05, 0.05), (0.05, 0.05, 0.05), (-0.05, 0.05, 0.05)]
|
| 117 |
+
int[] faceVertexCounts = [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]
|
| 118 |
+
int[] faceVertexIndices = [0, 2, 1, 0, 3, 2, 4, 5, 6, 4, 6, 7, 0, 1, 5, 0, 5, 4, 3, 7, 6, 3, 6, 2, 0, 4, 7, 0, 7, 3, 1, 2, 6, 1, 6, 5]
|
| 119 |
+
color3f[] primvars:displayColor = [(0.12, 0.5, 0.75)] (interpolation = "constant")
|
| 120 |
+
}
|
| 121 |
+
}
|
| 122 |
+
}
|
| 123 |
+
|
| 124 |
+
def Xform "Door" (prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"])
|
| 125 |
+
{
|
| 126 |
+
bool physics:rigidBodyEnabled = true
|
| 127 |
+
float physics:mass = 1
|
| 128 |
+
double3 xformOp:translate = (-0.7, 1.1, 0.35)
|
| 129 |
+
uniform token[] xformOpOrder = ["xformOp:translate"]
|
| 130 |
+
def Mesh "Visual" (prepend apiSchemas = ["MaterialBindingAPI"])
|
| 131 |
+
{
|
| 132 |
+
rel material:binding = </Qualification/Looks/Door>
|
| 133 |
+
uniform token subdivisionScheme = "none"
|
| 134 |
+
point3f[] points = [(0, -0.3, -0.03), (0.8, -0.3, -0.03), (0.8, 0.3, -0.03), (0, 0.3, -0.03), (0, -0.3, 0.03), (0.8, -0.3, 0.03), (0.8, 0.3, 0.03), (0, 0.3, 0.03)]
|
| 135 |
+
int[] faceVertexCounts = [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]
|
| 136 |
+
int[] faceVertexIndices = [0, 2, 1, 0, 3, 2, 4, 5, 6, 4, 6, 7, 0, 1, 5, 0, 5, 4, 3, 7, 6, 3, 6, 2, 0, 4, 7, 0, 7, 3, 1, 2, 6, 1, 6, 5]
|
| 137 |
+
color3f[] primvars:displayColor = [(0.85, 0.45, 0.15)] (interpolation = "constant")
|
| 138 |
+
}
|
| 139 |
+
}
|
| 140 |
+
|
| 141 |
+
def Scope "Joints"
|
| 142 |
+
{
|
| 143 |
+
def PhysicsFixedJoint "BaseAnchor"
|
| 144 |
+
{
|
| 145 |
+
rel physics:body1 = </Qualification/Base>
|
| 146 |
+
point3f physics:localPos0 = (0, 0.2, 0)
|
| 147 |
+
point3f physics:localPos1 = (0, 0, 0)
|
| 148 |
+
quatf physics:localRot0 = (1, 0, 0, 0)
|
| 149 |
+
quatf physics:localRot1 = (1, 0, 0, 0)
|
| 150 |
+
}
|
| 151 |
+
def PhysicsRevoluteJoint "DoorHinge" (prepend apiSchemas = ["PhysicsDriveAPI:angular"])
|
| 152 |
+
{
|
| 153 |
+
rel physics:body0 = </Qualification/Base>
|
| 154 |
+
rel physics:body1 = </Qualification/Door>
|
| 155 |
+
point3f physics:localPos0 = (-0.7, 0.9, 0.35)
|
| 156 |
+
point3f physics:localPos1 = (0, 0, 0)
|
| 157 |
+
quatf physics:localRot0 = (1, 0, 0, 0)
|
| 158 |
+
quatf physics:localRot1 = (1, 0, 0, 0)
|
| 159 |
+
uniform token physics:axis = "Y"
|
| 160 |
+
float physics:lowerLimit = 0
|
| 161 |
+
float physics:upperLimit = 90
|
| 162 |
+
float drive:angular:physics:targetPosition = 0
|
| 163 |
+
}
|
| 164 |
+
def PhysicsPrismaticJoint "SliderSlide" (prepend apiSchemas = ["PhysicsDriveAPI:linear"])
|
| 165 |
+
{
|
| 166 |
+
rel physics:body0 = </Qualification/Base>
|
| 167 |
+
rel physics:body1 = </Qualification/Slider>
|
| 168 |
+
point3f physics:localPos0 = (0, 0.45, 0)
|
| 169 |
+
point3f physics:localPos1 = (0, 0, 0)
|
| 170 |
+
quatf physics:localRot0 = (1, 0, 0, 0)
|
| 171 |
+
quatf physics:localRot1 = (1, 0, 0, 0)
|
| 172 |
+
uniform token physics:axis = "X"
|
| 173 |
+
float physics:lowerLimit = 0
|
| 174 |
+
float physics:upperLimit = 0.6
|
| 175 |
+
float drive:linear:physics:targetPosition = 0
|
| 176 |
+
}
|
| 177 |
+
}
|
| 178 |
+
}
|
services/explorer/dist/native-usd-fixtures/articulated.usdc
ADDED
|
Binary file (4.54 kB). View file
|
|
|
services/explorer/dist/static/css/13.2d67a70a.chunk.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
.ur2-page{color:#e8e5e2;font-family:sans-serif;margin:auto;max-width:1280px;padding:24px}.ur2-page h1{font-size:28px;margin:8px 0}.ur2-page p{line-height:1.5}.ur2-eyebrow{color:#cfaa85;font-size:12px}.ur2-actions,.ur2-nav{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.ur2-page button{background:#242220;border:1px solid #5c5650;border-radius:7px;color:#e8e5e2;cursor:pointer;padding:9px 13px}.ur2-page button[aria-pressed=true]{background:#493528;border-color:#ddab76}.ur2-page a:focus-visible,.ur2-page button:focus-visible{outline:2px solid #edb780;outline-offset:3px}.ur2-pane{background:#191817;border:1px solid #514a43;border-radius:12px;padding:16px}.ur2-stage{aspect-ratio:1;background:#fff;border-radius:8px;margin:16px auto;overflow:hidden;position:relative;width:min(100%,68vh,720px)}.ur2-note{color:#bdb6ae;font-size:13px;line-height:1.5;margin:12px 0}.ur2-pane .apple-native-pane{color:#e8e5e2}.ur2-pane .apple-native-note{color:#bdb6ae}.ur2-pane .apple-native-stage{color:#243041;width:min(100%,68vh,720px)}.ur2-pane .needle-native-preview{aspect-ratio:1;border-radius:8px;height:auto;margin:16px auto;min-height:0;width:min(100%,68vh,720px)}.ur2-pane .needle-native-preview iframe{height:100%;inset:0;min-height:0;position:absolute;width:100%}.ur2-unavailable{min-height:220px;padding:24px}.ur2-page a{color:#efbe8b}.ur2-page table{border-collapse:collapse;font-size:13px;width:100%}.ur2-page td,.ur2-page th{border-bottom:1px solid #413a33;padding:10px;text-align:left}@media (max-width:700px){.ur2-page{padding:12px}.ur2-page table{display:block;overflow-x:auto}}.usd-central{max-width:1480px}.usc-header,.usc-title{align-items:center;display:flex;gap:20px;justify-content:space-between}.usc-layout{grid-gap:24px;display:grid;gap:24px;grid-template-columns:280px minmax(0,1fr);margin-top:24px}.usc-layout aside{min-width:0}.usc-layout input{background:#191817;border:1px solid #61594f;border-radius:7px;color:#fff;display:block;margin-top:8px;padding:12px;width:100%}.usc-robots{grid-gap:8px;display:grid;gap:8px;max-height:74vh;overflow-y:auto;padding:3px}.usc-robots button{align-items:center;display:flex;gap:10px;text-align:left}.usc-robots img{border-radius:4px;object-fit:cover}.usc-robots small{color:#c1b8ac;display:block;margin-top:5px}.usc-title h2{margin:0}.usc-title>span{color:#c1b8ac;text-transform:capitalize}.usd-central .ur2-stage{width:min(100%,60vh,650px)}.usd-central details{color:#bdb6ae;font-size:13px;line-height:1.5;margin-top:20px}@media (max-width:820px){.usc-header{align-items:start;flex-direction:column}.usc-layout{grid-template-columns:1fr}.usc-robots{display:flex;max-height:none;overflow-x:auto}.usc-robots button{min-width:220px}}
|
services/explorer/dist/static/css/408.a882dfe3.chunk.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
.gqr-page{color:#e8e5e2;font-family:sans-serif;margin:auto;max-width:1280px;padding:24px}.gqr-page h1{font-size:30px;margin:8px 0}.gqr-page p{line-height:1.5}.gqr-page button,.gqr-profile-controls button{background:#242220;border:1px solid #5c5650;border-radius:7px;color:#e8e5e2;cursor:pointer;padding:9px 13px}.gqr-page button[aria-pressed=true],.gqr-profile-controls button[aria-pressed=true]{background:#493528;border-color:#ddab76}.gqr-page button:disabled,.gqr-profile-controls button:disabled{cursor:default;opacity:.45}.gqr-page a:focus-visible,.gqr-page button:focus-visible,.gqr-profile-controls button:focus-visible{outline:2px solid #edb780;outline-offset:3px}.gqr-actions,.gqr-page nav,.gqr-toolbar,.gqr-toolbar [role=group]{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.gqr-toolbar{justify-content:space-between}.gqr-pose-controls{background:#191817eb;border-radius:8px;color:#e8e5e2;font:13px sans-serif;left:12px;padding:8px;position:absolute;right:12px;top:12px;z-index:10}.gqr-eyebrow{color:#cfaa85;font-size:12px}.gqr-pane{background:#191817;border:1px solid #514a43;border-radius:12px;margin-top:18px;padding:16px}.gqr-stage{aspect-ratio:1;background:#fff;border-radius:8px;margin:16px auto;overflow:hidden;position:relative;width:min(100%,68vh,720px)}.gqr-note,[data-testid=glb-quality-storage]{color:#bdb6ae;font-size:13px}.gqr-page table{border-collapse:collapse;font-size:13px;margin-top:16px;width:100%}.gqr-page td,.gqr-page th{border-bottom:1px solid #413a33;padding:10px;text-align:left}.gqr-page a{color:#efbe8b}@media (max-width:700px){.gqr-page{padding:12px}.gqr-toolbar{display:block}}
|
services/explorer/dist/static/css/493.7df49819.chunk.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
.apple-native-pane{color:inherit;min-width:0}.apple-native-toolbar{align-items:baseline;display:flex;flex-wrap:wrap;gap:12px}.apple-native-toolbar [role=status]{font-size:13px}.apple-native-actions,.apple-native-profiles{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.apple-native-pane button{background:#fff;border:1px solid #c3cbd6;border-radius:6px;color:#243041;cursor:pointer;padding:8px 12px}.apple-native-pane button[aria-pressed=true]{background:#edf6e0;border-color:#729d34}.apple-native-pane button:disabled{cursor:default;opacity:.5}.apple-native-stage{aspect-ratio:1;background:#fff;border:1px solid #e0e5eb;border-radius:8px;margin-inline:auto;overflow:hidden;position:relative;width:100%}.apple-native-stage model{background:#fff;display:block;height:100%;width:100%}.apple-native-unavailable{align-items:center;box-sizing:border-box;color:#243041;display:flex;flex-direction:column;height:100%;justify-content:center;padding:24px;text-align:center}.apple-native-unavailable p{max-width:440px}.apple-native-note{color:inherit;font-size:13px;line-height:1.5;opacity:.8}.apple-native-pane a{color:#76b900}.needle-native-preview{background:#fff;height:100%;min-height:360px;overflow:hidden;position:relative;width:100%}.needle-native-preview iframe{border:0;display:block;height:100%;min-height:360px;width:100%}.needle-native-preview__status{background:#ffffffde;border-radius:5px;color:#26323c;font:12px/1.4 sans-serif;left:12px;max-width:calc(100% - 24px);padding:4px 8px;pointer-events:none;position:absolute;top:12px}.needle-native-preview__note{background:#ffffffd9;bottom:8px;color:#45535f;font:11px/1.4 sans-serif;left:12px;padding:3px 6px;pointer-events:none;position:absolute;right:12px}.needle-native-preview__error{background:#fff;border:1px solid #d6dce1;color:#7d2929;font:14px/1.5 sans-serif;left:24px;padding:16px;position:absolute;right:24px;top:50%}.ur2-page{color:#e8e5e2;font-family:sans-serif;margin:auto;max-width:1280px;padding:24px}.ur2-page h1{font-size:28px;margin:8px 0}.ur2-page p{line-height:1.5}.ur2-eyebrow{color:#cfaa85;font-size:12px}.ur2-actions,.ur2-nav{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.ur2-page button{background:#242220;border:1px solid #5c5650;border-radius:7px;color:#e8e5e2;cursor:pointer;padding:9px 13px}.ur2-page button[aria-pressed=true]{background:#493528;border-color:#ddab76}.ur2-page a:focus-visible,.ur2-page button:focus-visible{outline:2px solid #edb780;outline-offset:3px}.ur2-pane{background:#191817;border:1px solid #514a43;border-radius:12px;padding:16px}.ur2-stage{aspect-ratio:1;background:#fff;border-radius:8px;margin:16px auto;overflow:hidden;position:relative;width:min(100%,68vh,720px)}.ur2-note{color:#bdb6ae;font-size:13px;line-height:1.5;margin:12px 0}.ur2-pane .apple-native-pane{color:#e8e5e2}.ur2-pane .apple-native-note{color:#bdb6ae}.ur2-pane .apple-native-stage{color:#243041;width:min(100%,68vh,720px)}.ur2-pane .needle-native-preview{aspect-ratio:1;border-radius:8px;height:auto;margin:16px auto;min-height:0;width:min(100%,68vh,720px)}.ur2-pane .needle-native-preview iframe{height:100%;inset:0;min-height:0;position:absolute;width:100%}.ur2-unavailable{min-height:220px;padding:24px}.ur2-page a{color:#efbe8b}.ur2-page table{border-collapse:collapse;font-size:13px;width:100%}.ur2-page td,.ur2-page th{border-bottom:1px solid #413a33;padding:10px;text-align:left}@media (max-width:700px){.ur2-page{padding:12px}.ur2-page table{display:block;overflow-x:auto}}
|
services/explorer/dist/static/css/734.22c494cb.chunk.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
.vc-page{color:#e8e5e2;font-family:sans-serif;margin:auto;max-width:1560px;padding:24px}.vc-page h1{font-size:30px;margin:8px 0 10px}.vc-page h2{font-size:21px;margin:0 0 8px}.vc-page h3{font-size:17px;margin:0}.vc-page p{line-height:1.5}.vc-page button{background:#242220;border:1px solid #5c5650;border-radius:7px;color:inherit;cursor:pointer;padding:9px 13px}.vc-page button:hover{background:#35302b}.vc-page button:disabled{cursor:default;opacity:.45}.vc-page a:focus-visible,.vc-page button:focus-visible,.vc-page summary:focus-visible{outline:2px solid #edb780;outline-offset:3px}.vc-page button[aria-pressed=true]{background:#493528;border-color:#ddab76}.vc-page a{color:#efbe8b}.vc-eyebrow{color:#cfaa85;font-size:12px;letter-spacing:.07em;margin:0;text-transform:uppercase}.vc-muted{color:#bdb6ae;font-size:13px}.vc-categories{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 14px}.vc-assets{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,1fr);margin-bottom:24px}.vc-assets button{padding:14px;text-align:left}.vc-assets span,.vc-assets strong{display:block}.vc-assets span{color:#bdb6ae;font-size:12px;margin-top:7px}.vc-selection{align-items:center;display:flex;gap:16px;justify-content:space-between;margin-bottom:12px}.vc-selection p{margin:0}.vc-actions,.vc-layout{display:flex;flex-wrap:wrap;gap:8px}.vc-layout{margin:0 0 18px}.vc-pair{grid-gap:16px;display:grid;gap:16px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.vc-pair.vc-single{grid-template-columns:minmax(0,1fr)}.vc-single .vc-stage{height:min(68vh,720px)}.vc-pane{background:#191817;border:1px solid #514a43;border-radius:12px;min-width:0;padding:12px}.vc-pane-facts,.vc-pane-heading{align-items:center;display:flex;gap:10px;justify-content:space-between}.vc-pane-heading{margin:2px 0 10px}.vc-pane-heading span{color:#c7c0b8;font-size:12px}.vc-stage{border-radius:8px;height:min(57vh,570px);min-height:330px;overflow:hidden;position:relative}.vc-pair[data-viewport=square] .vc-stage{aspect-ratio:1;height:auto;margin-inline:auto;min-height:0;width:min(100%,68vh,720px)}.vc-pane-facts{color:#d4cdc5;font-size:12px;margin-top:12px}.vc-failure{color:#f0b5a6;flex-direction:column;justify-content:center}.vc-failure,.vc-pending{display:flex;min-height:330px;padding:24px}.vc-pending{align-items:center;color:#bdb6ae}.vc-motion-note{background:#30261c;border:1px solid #92704c;border-radius:7px;color:#efcfaa;font-size:13px;margin:0 0 12px;padding:10px 12px}.vc-viewport-note{background:#28211b;border:1px solid #6f5b45;border-radius:7px;color:#e4cdb6;font-size:13px;margin:0 0 18px;padding:10px 12px}.vc-media-tabs{margin:0 -12px}.vc-links{font-size:12px;margin-bottom:0}.vc-joints{grid-gap:10px;display:grid;gap:10px;margin-top:12px}.vc-joint{grid-gap:12px;display:grid;font-size:12px;gap:12px;grid-template-columns:1fr 1fr}.vc-joint input{width:100%}.vc-method{margin:14px 0}.vc-table{border-collapse:collapse;font-size:13px;margin-top:16px;width:100%}.vc-table td,.vc-table th{border-bottom:1px solid #413a33;padding:11px 12px;text-align:left}.vc-table thead th{background:#27231f}.vc-table tbody th{font-weight:500}.vc-table tbody th button{background:#0000;border:0;padding:0;text-align:left}.vc-findings{background:#25211e;border-radius:9px;font-size:13px;margin:18px 0;padding:4px 16px}.vc-overview{margin:24px 0}.vc-page summary{color:#dfc7ae;cursor:pointer}.vc-table-scroll{overflow:auto}@media (max-width:850px){.vc-page{padding:16px}.vc-pair{grid-template-columns:1fr}.vc-assets{gap:8px}.vc-selection{display:block}.vc-actions{margin-top:12px}}
|
services/explorer/dist/static/js/13.53221a3d.chunk.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
"use strict";(self.webpackChunkdeepsearch_ui=self.webpackChunkdeepsearch_ui||[]).push([[13,857],{1219(){},2973(e,r,t){t.d(r,{A:()=>v});var n=t(9379),a=t(5043),i=t(3139),s=t(5597),o=t(3333),l=t(6796),c=t(9885),d=t(9207),u=t(5260),h=t(579);const p=Object.freeze({position:[3,-4,2],target:[0,0,0]}),m=Object.freeze({maxPixels:2073600,reference:"square"});function v(e){let{asset:r,mode:t,reader:v=c.Me,cameraRecipe:f,onTelemetry:w,backLabel:g="USD comparison",showImplementationNote:b=!0,nativeMountOnly:x=!1,presentation:y="white-studio",showMount:j=!0}=e;const[S,M]=(0,a.useState)(null),[A,U]=(0,a.useState)("Loading"),[k,D]=(0,a.useState)(null),L=(0,a.useRef)(0),C=(0,a.useRef)(!1),R=(0,a.useRef)(w),N=(0,a.useRef)(f);N.current=f,R.current=w;const B=(0,a.useCallback)(e=>{var n;const a=(null===e||void 0===e?void 0:e.message)||"This renderer could not load the asset";D(a),U("Failed"),null===(n=R.current)||void 0===n||n.call(R,{assetId:r.id,renderer:t,status:"failed",error:a})},[r.id,t]);(0,a.useEffect)(()=>{var e;const a=new AbortController;let i=null;M(null),D(null),U("Loading"),C.current=!1,L.current=performance.now(),null===(e=R.current)||void 0===e||e.call(R,{assetId:r.id,renderer:t,status:"loading"});return(async()=>{var e;if("reference"===t){var s;const[e,t]=await Promise.all([(0,l._z)(r.articulation.url,{signal:a.signal,maxBytes:2097152,sha256:r.articulation.sha256,expectedBytes:r.articulation.bytes}),(0,l._z)(r.current.url,{signal:a.signal,maxBytes:67108864,sha256:r.current.sha256,expectedBytes:r.current.bytes})]);if(a.signal.aborted)return null;const n=JSON.parse((new TextDecoder).decode(e));if(1!==n.version||"gltf"!==n.frame||!Array.isArray(n.bodies)||!n.bodies.length||!Array.isArray(n.joints))throw new Error("Unsupported reference articulation export");return i=URL.createObjectURL(new Blob([t],{type:"model/gltf-binary"})),{glbUrl:i,articulation:n,store:(0,o.createJointStore)(n),view:r.view||(null===(s=r.clipMeta)||void 0===s?void 0:s.camera)||p,clipMeta:r.clipMeta,sourceVerified:!0,sha256:r.current.sha256,fetchAndVerifyMs:performance.now()-L.current}}const c=r.nativeBaseline,h=await v({url:c.url,signal:a.signal,expectedSha256:c.sha256,onProgress:e=>{a.signal.aborted||U(e)}});if(a.signal.aborted)return null;const m=performance.now(),f=!1===c.motionQualified?(0,d.nativeUsdVisualMapping)(h):(0,d.nativeUsdArticulation)(h);f.articulation.kind=c.presentationKind;const w=(0,n.A)((0,n.A)({},h.metrics),{},{mappingMs:performance.now()-m});return{usdModel:{loadScene:async e=>{const r=await(0,u.createUsdScene)(h,f,(0,n.A)((0,n.A)({},e),{},{baseUrl:c.url,renderBothSides:!0,textureConcurrency:["lightusd-parallel","lightusd-packed"].includes(t)?4:1}));return Object.assign(w,r.userData.usdLoading),r}},articulation:f.articulation,store:(0,o.createJointStore)(f.articulation),view:r.view||(null===(e=r.clipMeta)||void 0===e?void 0:e.camera)||p,clipMeta:r.clipMeta,metrics:w,sourceVerified:!0,sha256:c.sha256}})().then(e=>{!a.signal.aborted&&e&&(M((0,n.A)((0,n.A)({},e),{},{inspectCamera:!0,presentation:y,renderPixelBudget:m,previewMount:!j||x&&"reference"===t?null:r.previewMount||null})),U("Preparing viewport"))}).catch(e=>{a.signal.aborted||B(e)}),()=>{a.abort(),i&&URL.revokeObjectURL(i)}},[r,t,v,B,x,y,j]);const E=(0,i.A)({resetKey:"".concat(r.id,":").concat(t),modelKey:"".concat(r.id,":").concat(t),active:!0,imageTab:!1,model:S,modelPending:!S&&!k,onModelUnavailable:B,workspace:{portal:!0,lazyShell:!0,onEscape:"self",labels:{back:g,dock:"Dock viewer"}}});return(0,a.useEffect)(()=>{if(!S||!E.viewerApi||C.current)return;if(S.store.setPose(S.store.homes,"instant"),"reference"!==t&&N.current)try{E.viewerApi.setInspectionCamera(N.current)}catch(n){return void B(n)}let e=!1;return U("Completing first frame"),E.viewerApi.waitForInspectionDraw().then(n=>{var a,i,s,o,l;e||(n.drawn?(C.current=!0,U("Ready"),null===(a=R.current)||void 0===a||a.call(R,{assetId:r.id,renderer:t,status:"ready",readyMs:performance.now()-L.current,firstCompletedDraw:n.drawn,gpuSynchronized:n.gpuSynchronized,sourceVerified:S.sourceVerified,sha256:S.sha256,fetchAndVerifyMs:S.fetchAndVerifyMs,readerMs:null===(i=S.metrics)||void 0===i?void 0:i.loadMs,heapBytes:null===(s=S.metrics)||void 0===s?void 0:s.wasmHeapBytes,metrics:S.metrics,jointCount:S.store.ids.length,pixelBuffer:E.viewerApi.renderSize,assetStorage:E.viewerApi.assetStorage,camera:E.viewerApi.cameraDiagnostics,cameraMatched:"reference"!==t&&(o=E.viewerApi.cameraDiagnostics,l=N.current,Boolean(o&&l&&o.frame===l.frame&&["position","target","up","verticalFovDegrees","near","far","viewMatrix","projectionMatrix"].every(e=>{const r=Array.isArray(o[e])?o[e]:[o[e]],t=Array.isArray(l[e])?l[e]:[l[e]];return r.length===t.length&&r.every((e,r)=>Number.isFinite(e)&&Number.isFinite(t[r])&&Math.abs(e-t[r])<=1e-8*Math.max(1,Math.abs(e)))}))),scope:"reference"===t?r.referenceScope:"Native USD geometry; same shared PBR viewport. No source MDL execution."})):B(new Error(n.error||"The viewport closed before completing its first frame")))}).catch(r=>{e||B(r)}),()=>{e=!0}},[r,t,S,E.viewerApi,B]),(0,h.jsxs)("section",{className:"ur2-shared","data-testid":"round2-shared-pane","data-engine":t,children:[(0,h.jsx)("p",{role:"status","data-testid":"round2-status",children:A}),k&&(0,h.jsx)("p",{role:"alert",children:k}),(0,h.jsx)("div",{className:"ur2-stage",ref:E.regionRef,tabIndex:-1,children:(0,h.jsx)(s.z_,{ctl:E,fileName:r.label,renderPicture:()=>null})}),S&&(0,h.jsxs)("div",{className:"ur2-actions",children:[(0,h.jsx)("button",{onClick:()=>{var e;return null===(e=E.viewerApi)||void 0===e?void 0:e.resetView()},children:"Reset camera"}),S.store.ids.length>0&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)("button",{disabled:!E.viewerApi,onClick:E.expandPose,children:"Move individual joints"}),(0,h.jsx)("button",{onClick:()=>S.store.setAll(0),children:"Home pose"}),(0,h.jsx)("button",{onClick:()=>S.store.playSequence(),children:"Play joint sequence"})]})]}),(null===S||void 0===S?void 0:S.store.ids.length)>0&&(0,h.jsxs)("p",{className:"ur2-note",children:["Move individual joints opens the same pose workspace as the GLB viewer: select a joint and adjust its position.",b&&"reference"!==t&&" This view loads USD geometry and source joint data directly; it does not use Apple\u2019s model element or a GLB geometry substitute."]}),(0,h.jsx)(s.Vo,{ctl:E,fileName:r.label,topOffset:0})]})}},3013(e,r,t){t.r(r),t.d(r,{default:()=>d});var n=t(9379),a=t(5043),i=t(2973),s=t(6857),o=t(8276),l=(t(1219),t(579));const c=e=>Number.isFinite(e)?"".concat((e/1e3).toFixed(2)," s"):"\u2014";function d(){var e,r;const[t,d]=(0,a.useState)(null),[u,h]=(0,a.useState)(null),[p,m]=(0,a.useState)(new URLSearchParams(window.location.search).get("robot")||"franka"),[v,f]=(0,a.useState)("lightusd-packed"),[w,g]=(0,a.useState)({}),[b,x]=(0,a.useState)(""),y="1"===new URLSearchParams(window.location.search).get("qualify");(0,a.useEffect)(()=>{const e=new AbortController;return fetch("".concat("","/usd-central/manifest.json"),{signal:e.signal,cache:"no-cache"}).then(e=>{if(!e.ok)throw new Error("The robot catalog is unavailable");return e.json()}).then(e=>d((0,o.I)(e))).catch(r=>{e.signal.aborted||h(r.message)}),()=>e.abort()},[]);const j=(null===t||void 0===t?void 0:t.examples.find(e=>e.id===p))||(null===t||void 0===t?void 0:t.examples[0]),S=(null===t||void 0===t?void 0:t.examples.filter(e=>"ready"===e.status).length)||0,M="reference"===v,A=j&&(M?j.current&&j.articulation:"ready"===j.status||y&&"candidate"===j.status);return(0,l.jsxs)("main",{className:"ur2-page usd-central",children:[(0,l.jsxs)("header",{className:"usc-header",children:[(0,l.jsxs)("div",{children:[(0,l.jsx)("span",{className:"ur2-eyebrow",children:"SIMREADY CENTRAL \xb7 USD ENVIRONMENT"}),(0,l.jsx)("h1",{children:"Robots you can move"}),(0,l.jsx)("p",{children:"Source USD assets with Central\u2019s familiar joint controls."})]}),(0,l.jsx)("a",{href:"https://stg-simready-central.nvidia.com/ui/",target:"_blank",rel:"noreferrer",children:"Open Central staging \u2197"})]}),u&&(0,l.jsx)("p",{role:"alert",children:u}),!t&&!u&&(0,l.jsx)("p",{role:"status",children:"Loading robots\u2026"}),t&&(0,l.jsxs)("div",{className:"usc-layout",children:[(0,l.jsxs)("aside",{"aria-label":"Robot catalog",children:[(0,l.jsx)("label",{htmlFor:"usc-search",children:"Find a robot"}),(0,l.jsx)("input",{id:"usc-search",type:"search",value:b,onChange:e=>x(e.target.value),placeholder:"Arm, hand, gripper\u2026"}),(0,l.jsxs)("p",{className:"ur2-note",children:[S," of ",t.examples.length," ready for USD joint interaction"]}),(0,l.jsx)("nav",{className:"usc-robots",children:t.examples.filter(e=>"".concat(e.label," ").concat(e.kind).toLowerCase().includes(b.toLowerCase())).map(e=>(0,l.jsxs)("button",{"aria-pressed":e.id===(null===j||void 0===j?void 0:j.id),onClick:()=>function(e){m(e.id),f("lightusd-packed");const r=new URL(window.location.href);r.searchParams.set("robot",e.id),window.history.replaceState(null,"",r)}(e),"data-robot":e.id,children:[e.poster&&(0,l.jsx)("img",{src:e.poster.url,alt:"",loading:"lazy",width:"88",height:"55"}),(0,l.jsxs)("span",{children:[(0,l.jsx)("strong",{children:e.label}),(0,l.jsx)("small",{children:"ready"===e.status?"Interactive USD":"candidate"===e.status?"Testing joints":"USD needs attention"})]})]},e.id))})]}),j&&(0,l.jsxs)("section",{className:"ur2-pane","aria-label":"Robot preview",children:[(0,l.jsxs)("div",{className:"usc-title",children:[(0,l.jsx)("h2",{children:j.label}),(0,l.jsx)("span",{children:j.kind})]}),(0,l.jsxs)("div",{className:"ur2-nav","aria-label":"Preview format",children:[(0,l.jsx)("button",{"aria-pressed":!M,onClick:()=>f("lightusd-packed"),children:"Interactive USD"}),(0,l.jsx)("button",{"aria-pressed":M,disabled:!j.current||!j.articulation,onClick:()=>f("reference"),children:"Current GLB reference"}),!M&&"ready"===j.status&&j.package&&(0,l.jsx)("a",{href:j.package.url,download:!0,children:"Download USD package"})]}),A?(0,l.jsx)(i.A,{asset:j,mode:v,reader:s.readLightUsdSnapshotRound2,backLabel:"Robot library",showImplementationNote:!1,nativeMountOnly:!0,presentation:"rtx-media",showMount:!1,onTelemetry:function(e){g(r=>(0,n.A)((0,n.A)({},r),{},{["".concat(e.assetId,":").concat(e.renderer)]:e}))}},"".concat(j.id,":").concat(v)):(0,l.jsxs)("div",{className:"ur2-unavailable",children:[(0,l.jsx)("h3",{children:"USD joint interaction is not ready for this robot"}),(0,l.jsx)("p",{children:j.reason||"This source is still being checked."}),(0,l.jsx)("p",{children:"The current GLB reference is available using the labelled button above."})]}),(0,l.jsxs)("table",{"aria-label":"Opening speed this visit",children:[(0,l.jsx)("thead",{children:(0,l.jsxs)("tr",{children:[(0,l.jsx)("th",{children:"Ready this visit"}),(0,l.jsx)("th",{children:"Interactive USD"}),(0,l.jsx)("th",{children:"Current GLB"})]})}),(0,l.jsx)("tbody",{children:(0,l.jsxs)("tr",{children:[(0,l.jsx)("td",{children:"Completed first frame"}),(0,l.jsx)("td",{"data-testid":"usc-native-ready",children:c(null===(e=w["".concat(j.id,":lightusd-packed")])||void 0===e?void 0:e.readyMs)}),(0,l.jsx)("td",{children:c(null===(r=w["".concat(j.id,":reference")])||void 0===r?void 0:r.readyMs)})]})})]}),(0,l.jsx)("p",{className:"ur2-note",children:"Times reflect this browser and connection, including downloading and drawing the asset. Open each format to measure it."}),(0,l.jsxs)("details",{children:[(0,l.jsx)("summary",{children:"About this USD preview"}),(0,l.jsx)("p",{children:"USD supplies the geometry, materials and joint definitions. LightUSD reads it in the browser; Central\u2019s shared renderer and pose controls display and move it. Materials are prepared for browser PBR rendering; MDL and RTX are not executed here."}),(0,l.jsx)("p",{children:"The downloadable USD retains joint definitions. Interactive controls are supplied by this viewer, rather than stored as a user interface in the file."}),(0,l.jsx)("p",{children:"Experimental environment. Browser joint checks do not establish simulation validity or collision safety."})]})]})]})]})}},6857(e,r,t){t.r(r),t.d(r,{readLightUsdSnapshotRound2:()=>c});var n=t(9379),a=t(9885),i=t(7863);const s=()=>new DOMException("USD load cancelled","AbortError");let o;function l(e){const r=new URL(e,window.location.href);if(r.origin!==window.location.origin)throw new Error("USD review resources must use this origin");return r.href}async function c(){let{file:e,url:r,filename:t,getHeaders:c,signal:d,onProgress:u,expectedSha256:h,snapshotCache:p}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(null!==d&&void 0!==d&&d.aborted)throw s();const m=performance.now(),v=(0,a.mx)(t||(null===e||void 0===e?void 0:e.name)||r);if((null===e||void 0===e?void 0:e.size)>a.Z6)throw new Error("USD layer exceeds the 64 MiB qualification limit");const f="",w="public-central-robot-demo-v1"===(null===p||void 0===p?void 0:p.context)&&!e&&!c&&/^[a-f0-9]{64}$/.test(h||""),g=await function(e,r,t){const n=()=>fetch("".concat(e,"/usd-round2/lightusd/snapshot-v2/runtime.json"),{signal:t?void 0:r,credentials:"same-origin",cache:t?"default":"no-store"}).then(e=>{if(!e.ok)throw new Error("The isolated LightUSD experiment runtime is not installed");return e.json()});return t?(o||(o=n().catch(e=>{throw o=null,e})),o):n()}(f,d,w);if(1!==g.version||"lightusd-next-loaded-layer"!==g.reader||"1.0.0-rc4"!==g.readerVersion||1!==g.loadedLayerApi||1!==g.viewerSnapshotApi||"simready-viewer-snapshot-v2"!==g.variant||"string"!==typeof g.revision||!g.revision)throw new Error("The isolated LightUSD runtime manifest is unsupported");const b=new URL("".concat(f.replace(/\/$/,""),"/"),window.location.origin),x=l(new URL(g.worker,b).href),y=w?JSON.stringify([p.context,l(r),h,g.revision,x]):null,j=(0,a.yM)(y);if(null!==d&&void 0!==d&&d.aborted)throw s();var S;if(j)return j.metrics=(0,n.A)((0,n.A)({},j.metrics),{},{snapshotCacheSourceWorkerMs:null===(S=j.metrics)||void 0===S?void 0:S.workerMs,runtimeMs:0,physicsMs:0,opinionMs:0,geometryMs:0,workerMs:0,wasmHeapBytes:0,downloadMs:0,verificationMs:0,snapshotCacheHit:!0,loadMs:performance.now()-m}),j;null===u||void 0===u||u("download");const M=performance.now(),A=e?await e.arrayBuffer():await(0,a.HX)(await fetch(l(r),{signal:d,credentials:"same-origin",headers:(null===c||void 0===c?void 0:c())||{}}),d);if(A.byteLength>a.Z6)throw new Error("USD layer exceeds the 64 MiB qualification limit");if(null!==d&&void 0!==d&&d.aborted)throw s();const U=performance.now()-M,k=performance.now(),D=void 0===h?null:await(0,i.n)(A,h,"USD layer"),L=void 0===h?0:performance.now()-k;if(null!==d&&void 0!==d&&d.aborted)throw s();return new Promise((e,r)=>{let t,i,o=!1;const l=(n,a)=>{var s;o||(o=!0,clearTimeout(i),null===d||void 0===d||d.removeEventListener("abort",c),null===(s=t)||void 0===s||s.terminate(),n?r(n):e(a))},c=()=>l(s());try{if(t=new Worker(x,{type:"module",name:"simready-lightusd-snapshot-round2"}),null===d||void 0===d||d.addEventListener("abort",c,{once:!0}),null!==d&&void 0!==d&&d.aborted)return void c();t.onerror=e=>l(new Error(e.message||"LightUSD worker failed")),t.onmessageerror=()=>l(new Error("LightUSD result could not be transferred")),t.onmessage=e=>{let{data:r}=e;if("progress"===r.type)null===u||void 0===u||u(r.stage);else if("error"===r.type)l(new Error(r.message));else if("result"===r.type){if(r.result.metrics=(0,n.A)((0,n.A)({},r.result.metrics),{},{downloadMs:U,verificationMs:L,loadMs:performance.now()-m,runtimeWasmBytes:g.wasmBytes,runtimeRevision:g.revision,snapshotCacheHit:!1}),D&&(r.result.metrics.sourceSha256=D),y)try{(0,a.eH)(y,r.result)}catch(t){}l(null,r.result)}},i=setTimeout(()=>l(new Error("LightUSD exceeded the 60 second parse limit")),6e4),t.postMessage({bytes:A,filename:v},[A])}catch(h){l(h)}})}}}]);
|
services/explorer/dist/static/js/207.a8b74874.chunk.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
"use strict";(self.webpackChunkdeepsearch_ui=self.webpackChunkdeepsearch_ui||[]).push([[207],{9207(e,i,t){t.r(i),t.d(i,{NativeUsdArticulationError:()=>h,classifyNativeUsdMesh:()=>A,isNativeUsdCollider:()=>w,nativeUsdArticulation:()=>N,nativeUsdVisualMapping:()=>F});var o=t(9379),n=t(9435);const s=1e-5,a={PhysicsFixedJoint:"fixed",PhysicsPrismaticJoint:"prismatic",PhysicsRevoluteJoint:"revolute"},r=(e,i)=>Object.prototype.hasOwnProperty.call(e||{},i),l=e=>(null===e||void 0===e?void 0:e.properties)||{},c=(e,i)=>"/"===i||e===i||e.startsWith("".concat(i,"/")),p=e=>"string"===typeof e&&("/"===e||e.startsWith("/")&&!e.endsWith("/")&&!e.includes("//"))&&!e.split("/").some(e=>"."===e||".."===e),d=(e,i)=>((null===e||void 0===e?void 0:e.apiSchemas)||[]).some(e=>e.split(":")[0]===i),u=e=>Array.from({length:16},(i,t)=>e.elements[t%4*4+Math.floor(t/4)]),m=(e,i)=>!r(e,"authoredProperties")||e.authoredProperties.includes(i);class h extends Error{constructor(e,i){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;super(i),this.name="NativeUsdArticulationError",this.code=e,this.path=t}}function f(e,i,t){throw new h(e,i,t)}function v(e,i,t){if(!m(e,i)||!r(l(e),i))return t;const o=l(e)[i];return null==o&&f("unreadable_property","USD property ".concat(i," could not be read."),e.path),o}function y(e,i,t){const o=v(e,i,t);return"boolean"!==typeof o&&f("invalid_property","".concat(i," must be a boolean."),e.path),o}function g(e,i,t){const o=v(e,i,t);return void 0===o||"number"===typeof o&&Number.isFinite(o)||f("invalid_property","".concat(i," must be finite."),e.path),o}function b(e,i){var t;const o=null===(t=e.nativeLimitValues)||void 0===t?void 0:t[i];return void 0!==o?(Array.isArray(e.authoredProperties)&&e.authoredProperties.includes(i)&&r(l(e),i)&&null===l(e)[i]&&["-inf","inf"].includes(o)||f("invalid_limit_provenance","An infinite joint limit requires exact native authored-float provenance.",e.path),o):g(e,i)}function _(e){const i=Array.isArray(e)?e:null===e||void 0===e?void 0:e.prims;Array.isArray(i)||f("physics_unavailable","A native USD physics snapshot is required.");const t=new Map;for(const o of i)p(null===o||void 0===o?void 0:o.path)&&!t.has(o.path)||f("invalid_prim_path","USD prim paths must be unique and absolute.",null===o||void 0===o?void 0:o.path),!r(o,"authoredProperties")||Array.isArray(o.authoredProperties)&&!o.authoredProperties.some(e=>"string"!==typeof e)||f("invalid_authored_properties","Native authored property provenance must be a list of property names.",o.path),t.set(o.path,o);return t}function P(e){const i=[];let t=e;for(;t;)i.push(t),t="/"===t?null:t.slice(0,t.lastIndexOf("/"))||"/";return i}function w(e){return d(e,"PhysicsCollisionAPI")&&y(e,"physics:collisionEnabled",!0)}function x(e,i){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:new Set,o=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];p(e)||f("invalid_prim_path","A mesh must retain its USD prim path.",e);let n="default",s=!0;for(const p of P(e).reverse()){t.has(p)&&(s=!1);const e=i.get(p);e&&(m(e,"purpose")&&(r(l(e),"purpose")?n=v(e,"purpose"):e.purpose&&(n=e.purpose)),"invisible"===v(e,"visibility","inherited")&&(s=!1))}const a=i.get(e),c=o&&w(a),d=s&&("default"===n||"render"===n);return{purpose:n,visible:s,visual:d,collider:c,collisionOnly:c&&!d}}function A(e,i){return x(e,_(i))}function M(){var e,i;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const s=null!==(e=null!==(i=t.upAxis)&&void 0!==i?i:o.upAxis)&&void 0!==e?e:"Y",a=t.metersPerUnit,r=void 0===t.kilogramsPerUnit?1:t.kilogramsPerUnit;"Y"!==s&&"Z"!==s&&f("unsupported_up_axis","Unsupported USD up axis ".concat(s,".")),"number"===typeof a&&Number.isFinite(a)&&a>0||f("invalid_stage_units","The native reader must supply a positive metersPerUnit."),"number"===typeof r&&Number.isFinite(r)&&r>0||f("invalid_mass_units","USD kilogramsPerUnit must be positive and finite.");const l="Z"===s?(new n.kn4).makeRotationX(-Math.PI/2):new n.kn4,c=l.clone().multiply((new n.kn4).makeScale(a,a,a));return{upAxis:s,metersPerUnit:a,kilogramsPerUnit:r,rotation:l,conversion:c}}function j(e,i){e&&16===e.length&&Array.from(e).every(Number.isFinite)||f("missing_world_transform","The native reader must supply the authored world matrix.",i);const t=(new n.kn4).fromArray(e),o=t.elements;return(Math.abs(o[3])+Math.abs(o[7])+Math.abs(o[11])>s||Math.abs(o[15]-1)>s)&&f("non_affine_transform","USD world transforms must be affine.",i),t}function q(e,i,t){const o=v(e,i,t);return Array.isArray(o)&&o.length===t.length&&o.every(Number.isFinite)||f("invalid_joint_frame","Invalid joint frame ".concat(i,"."),e.path),o}function U(e,i,t){const o=(new n.Pq0).fromArray(q(e,"physics:localPos".concat(i),[0,0,0])).applyMatrix4(t),[a,r,l,c]=q(e,"physics:localRot".concat(i),[1,0,0,0]),p=new n.PTz(r,l,c,a);p.lengthSq()<s&&f("invalid_joint_frame","A joint quaternion cannot be zero.",e.path);const d=function(e,i){const t=[0,1,2].map(i=>(new n.Pq0).setFromMatrixColumn(e,i));return(t.some(e=>Math.abs(e.length()-1)>s)||t.some((e,i)=>t.slice(i+1).some(i=>Math.abs(e.dot(i))>s))||e.determinant()<0)&&f("unsupported_body_scale","Scaled, reflected or sheared joint body frames require separate qualification.",i),(new n.PTz).setFromRotationMatrix(e).normalize()}(t,e.path).multiply(p.normalize());return{position:o,rotation:d}}function k(e,i,t){var o;const n="physics:body".concat(i),s=null===(o=e.relationships)||void 0===o?void 0:o[n];return null==s&&r(e.relationships,n)&&f("unreadable_relationship","Cannot read ".concat(n,"."),e.path),void 0===s||Array.isArray(s)&&!s.length?null:(Array.isArray(s)&&1===s.length&&p(s[0])&&t.has(s[0])||f("invalid_body_target","".concat(n," must identify one prim in the prepared USD."),e.path),s[0])}function S(e,i,t){var o;const n=[...e.apiSchemas||[],...Object.keys(l(e)),...Object.keys(e.relationships||{})].filter(e=>/mimic/i.test(e));if(!n.length)return null;"prismatic"!==i&&"revolute"!==i&&f("unsupported_coupling","A native mimic must couple qualified single-axis joints.",e.path);const s=new Set;for(const l of n){const i=/^(?:PhysxMimicJointAPI:|physxMimicJoint:)(rotX|rotY|rotZ)(?::(gearing|offset|referenceJoint|referenceJointAxis|naturalFrequency|dampingRatio))?$/.exec(l);i||f("unsupported_coupling","Native mimic semantics require an exact PhysxMimicJoint binding.",e.path),s.add(i[1])}1!==s.size&&f("unsupported_coupling","Multiple native mimic axes need separate qualification.",e.path);const a=[...s][0],r="physxMimicJoint:".concat(a,":"),c=null===(o=e.relationships)||void 0===o?void 0:o["".concat(r,"referenceJoint")];Array.isArray(c)&&1===c.length&&p(c[0])||f("invalid_mimic_reference","A native mimic requires one absolute reference joint path.",e.path);const d=v(e,"".concat(r,"referenceJointAxis"),"rotX");["rotX","rotY","rotZ"].includes(d)||f("invalid_mimic_axis","Native mimic reference axis needs qualification.",e.path);const u=g(e,"".concat(r,"gearing"),1),m=g(e,"".concat(r,"offset"),0)*("prismatic"===i?t.metersPerUnit:1);u||f("invalid_mimic_gearing","Native mimic gearing must be nonzero.",e.path);for(const l of["naturalFrequency","dampingRatio"]){const i=g(e,"".concat(r).concat(l));void 0!==i&&i<0&&f("invalid_mimic_compliance","Native mimic compliance values must be nonnegative.",e.path)}return{referencePath:c[0],gearing:u,offset:m,axis:a,referenceAxis:d}}function N(e){let{physics:i,metadata:t,meshes:r=[],nodes:h=[]}=e;const A=_(i),q=M(t,i),N=[],F=new Map,D=new Set;for(const o of[...h,...r]){if(p(null===o||void 0===o?void 0:o.primPath)||f("invalid_prim_path","Native render records must retain their USD prim path.",null===o||void 0===o?void 0:o.primPath),o.worldMatrix){const e=j(o.worldMatrix,o.primPath),i=F.get(o.primPath);i&&i.elements.some((i,t)=>Math.abs(i-e.elements[t])>s)&&f("ambiguous_source_transform","One USD prim has conflicting world placements; instance identity requires separate qualification.",o.primPath),F.set(o.primPath,e)}!1===o.visible&&D.add(o.primPath)}const T=new Set([...A.values()].filter(e=>d(e,"PhysicsRigidBodyAPI")).map(e=>e.path)),I=new Set(T),J=e=>null==e?null:P(e).find(e=>I.has(e))||e,C=[],O=[];for(const o of A.values()){const e=[...o.apiSchemas||[],...Object.keys(l(o)),...Object.keys(o.relationships||{})];if(e.some(e=>/tendon|coupl|gearjoint|rackjoint/i.test(e))&&f("unsupported_coupling","Native mimic, tendon and coupled constraints require separate qualification.",o.path),e.some(e=>/mimic/i.test(e))&&!["PhysicsPrismaticJoint","PhysicsRevoluteJoint"].includes(o.type)&&f("unsupported_coupling","Native mimic semantics must belong to a qualified single-axis joint.",o.path),!/Joint$/.test(o.type||""))continue;if(!y(o,"physics:jointEnabled",!0)){N.push({code:"disabled_joint",path:o.path});continue}if("PhysicsJoint"===o.type){const i=[0,1].map(e=>k(o,e,A));(1!==i.filter(Boolean).length||e.some(e=>/^Physics(?:Limit|Drive)API:|^(?:limit|drive|physxMimicJoint):/.test(e)))&&f("unsupported_joint_type","A generic joint with relative-body constraints requires separate qualification.",o.path);const t=i.find(Boolean);d(A.get(t),"PhysicsRigidBodyAPI")||f("unsupported_body_target","A free-world joint marker must target one rigid body.",o.path),O.push({sourcePath:o.path,bodyPath:t,degreesOfFreedom:["transX","transY","transZ","rotX","rotY","rotZ"]}),N.push({code:"free_world_joint",path:o.path,message:"The native world joint leaves all six DOFs free. This kinematic preview holds the base at its source placement and does not simulate free-body motion."});continue}const i=a[o.type];i||f("unsupported_joint_type","Unsupported active joint ".concat(o.type,"."),o.path);const t=[0,1].map(e=>k(o,e,A)),n=t.map(J);(n.every(e=>null==e)||n[0]===n[1])&&f("invalid_joint_bodies","A joint must connect two different bodies or one body to the world.",o.path);for(const o of n.filter(Boolean))T.add(o);t.some((e,i)=>e!==n[i])&&N.push({code:"descendant_joint_frame",path:o.path,frameTargets:t,bodyTargets:n}),C.push({prim:o,type:i,targets:n,frameTargets:t})}const R=new Set(r.map(e=>e.primPath)),z=[],X=[];for(const o of A.values()){var B,E;if(!w(o)||R.has(o.path))continue;if(d(o,"PhysxMeshMergeCollisionAPI")){const e=[...o.authoredProperties||Object.keys(l(o)),...Object.keys(o.relationships||{}).filter(e=>{var i;return m(o,e)||(null===(i=o.relationships[e])||void 0===i?void 0:i.length)})];("Xform"!==o.type||!d(o,"PhysicsMeshCollisionAPI")||e.some(e=>e.startsWith("collection:"))||(o.apiSchemas||[]).some(e=>e.startsWith("CollectionAPI:")))&&f("unsupported_merge_collider","Native mesh merging requires a qualified Xform and the default descendant collection.",o.path),[...A.values()].some(e=>e.path!==o.path&&c(e.path,o.path)&&d(e,"PhysicsRigidBodyAPI"))&&f("unsupported_merge_collider","Native mesh merging must not cross another rigid-body frame.",o.path),X.push(o);continue}const e=F.get(o.path);e||f("missing_collider_transform","A filtered collider requires its native world transform.",o.path);const i=null===(B=o.geometry)||void 0===B?void 0:B.positions,t=null===(E=o.geometry)||void 0===E?void 0:E.indices,n=v(o,"faceVertexCounts");i&&t&&Array.isArray(n)||f("missing_collider_geometry","A filtered collider requires snapshot geometry and faceVertexCounts.",o.path),(n.some(e=>3!==e)||3*n.length!==t.length)&&f("unsupported_collider_polygon","Filtered native collider fallback supports authored triangles only.",o.path),z.push({primPath:o.path,points:i,indices:t,worldMatrix:e.elements,debugOnly:!0}),N.push({code:"snapshot_collider",path:o.path})}const Y=[...r,...z];for(const o of X){const e=[...A.values()].filter(e=>"Mesh"===e.type&&c(e.path,o.path)).map(e=>e.path);e.length&&!e.some(e=>!Y.some(i=>i.primPath===e))||f("missing_merge_collider_geometry","Every authored descendant mesh of a native merge collider requires exact snapshot geometry.",o.path)}const Z=e=>P(e).find(e=>T.has(e));T.size&&!Y.some(e=>!Z(e.primPath))||T.add("/");const W=new Map,L=[...T].sort().map((e,i)=>{const t=A.get(e),o=d(t,"PhysicsRigidBodyAPI")&&y(t,"physics:rigidBodyEnabled",!0),s=y(t,"physics:kinematicEnabled",!1),a=F.get(e)||("/"===e?new n.kn4:null),r=g(t,"physics:mass"),l=void 0===r?null:r*q.kilogramsPerUnit;null!==l&&(!Number.isFinite(l)||l<0)&&f("invalid_body_mass","USD authored mass must convert to a finite, nonnegative kilogram value.",e);const c={id:"b".concat(String(i).padStart(2,"0")),path:e,sourcePath:e,role:"fixed",rigid:o,kinematic:s,mass_kg:l,colliders:0,restWorldMatrix:a?u(q.conversion.clone().multiply(a).multiply(q.conversion.clone().invert())):null};return W.set(e,c),c}),V=e=>{var i;return p(e)&&(null===(i=W.get(Z(e)))||void 0===i?void 0:i.id)||null},Q=e=>{if(null==e)return new n.kn4;const i=F.get(e);return i||f("missing_body_transform","A joint body is missing its authored world transform.",e),i},$=new Set,G=new Map([...T].map(e=>[e,[]]));for(const{targets:o}of C)o.every(Boolean)&&(G.get(o[0]).push(o[1]),G.get(o[1]).push(o[0]));const H=[];for(const o of A.values()){if(!d(o,"PhysicsArticulationRootAPI"))continue;const e=C.find(e=>e.prim.path===o.path);e?H.push(...e.targets.filter(Boolean)):T.has(o.path)?H.push(o.path):H.push(...[...T].filter(e=>c(e,o.path)))}for(let o=0;o<H.length;o+=1){const e=H[o];$.has(e)||($.add(e),H.push(...G.get(e).filter(e=>!$.has(e))))}const K=C.sort((e,i)=>e.prim.path.localeCompare(i.prim.path)).map((e,i)=>{let{prim:t,type:a,targets:r,frameTargets:l}=e;return(0,o.A)({id:"j".concat(String(i).padStart(2,"0")),type:a,sourcePath:t.path,path:t.path,name:t.name||t.path.split("/").pop(),label:t.name||t.path.split("/").pop(),body0:null==r[0]?null:W.get(r[0]).id,body1:null==r[1]?null:W.get(r[1]).id},"fixed"===a?{}:function(e,i,t,a,r){let l=arguments.length>5&&void 0!==arguments[5]&&arguments[5];const c=U(e,0,t[0]),p=U(e,1,t[1]),d=v(e,"physics:axis","X");["X","Y","Z"].includes(d)||f("invalid_joint_axis","Joint axis must be X, Y or Z.",e.path);const u=new n.Pq0(...{X:[1,0,0],Y:[0,1,0],Z:[0,0,1]}[d]),m=u.clone().applyQuaternion(c.rotation),h=c.rotation.clone().invert().multiply(p.rotation).normalize(),y=p.position.clone().sub(c.position);let _;"prismatic"===i?((h.angleTo(new n.PTz)>s||y.clone().cross(m).length()*a.metersPerUnit>s)&&f("joint_frame_mismatch","Prismatic frames do not define a single aligned slide.",e.path),_=y.dot(m)*a.metersPerUnit):((y.length()*a.metersPerUnit>s||u.clone().applyQuaternion(h).distanceTo(u)>s)&&f("joint_frame_mismatch","Revolute frames do not define one coincident rotation axis.",e.path),_=2*Math.atan2(h[d.toLowerCase()],h.w)*180/Math.PI,_=((_+180)%360+360)%360-180);const P="prismatic"===i?a.metersPerUnit:1,w="state:".concat("prismatic"===i?"linear":"angular",":physics:position"),x=b(e,"physics:lowerLimit"),A=b(e,"physics:upperLimit"),M="-inf"===x&&"inf"===A&&"revolute"===i;"string"!==typeof x&&"string"!==typeof A||M||f("unsupported_infinite_limits","Only paired authored unlimited revolute limits have a qualified phase preview.",e.path),(void 0===x||void 0===A||x>A)&&f("unbounded_joint","A moving joint requires two finite authored limits for this qualification.",e.path);let j=M?void 0:x*P,q=M?void 0:A*P;const k=g(e,w),S="PhysicsJointStateAPI:".concat("prismatic"===i?"linear":"angular"),N=void 0===k&&l&&(e.apiSchemas||[]).includes(S)?0:void 0,F=null!==k&&void 0!==k?k:N;if(void 0!==F){const t=F*P-_,o="revolute"===i?((t+180)%360+360)%360-180:t,n="revolute"===i?180*s/Math.PI:s;Math.abs(o)>n&&f("rest_state_mismatch","Native joint initial state differs from its drawn rest geometry.",e.path),_=F*P,void 0!==N&&r.push({code:"schema_default_joint_state",path:e.path,state:0,message:"The applied native joint-state schema supplies its zero initial position; no state value is authored."})}else if("revolute"===i&&!M){const i=Math.ceil((j-_-s)/360),t=Math.floor((q-_+s)/360);i<t&&f("ambiguous_rest_angle","Multiple turns fit the rest geometry; an authored joint state is required.",e.path),i===t&&(_+=360*i)}const D=g(e,"drive:".concat("prismatic"===i?"linear":"angular",":physics:targetPosition")),T=void 0===D?_:D*P;M&&(j=T-180,q=T+180,(!Number.isFinite(j)||!Number.isFinite(q)||Math.abs(q-j-360)>s)&&f("invalid_preview_range","The source home must support a precise finite one-turn preview.",e.path),r.push({code:"continuous_joint_preview",path:e.path,message:"The source has no angular limits. This control previews one full rotation; its displayed range is not a physical limit or a multi-turn simulation."}));const I=!M&&(_<j-s||_>q+s);return!I||void 0!==k&&void 0!==D||f("rest_outside_limits","Drawn rest lies outside the authored joint limits.",e.path),(T<j-s||T>q+s)&&f("drive_outside_limits","Drive target lies outside the authored limits.",e.path),I&&r.push({code:"source_bind_rest_outside_limits",path:e.path,rest:_,home:T,message:"The authored bind state lies outside limits; the valid authored drive target supplies the displayed home pose."}),void 0!==D&&r.push({code:"drive_home",path:e.path,message:"The authored drive target supplies the viewer home pose; no dynamics are simulated."}),(0,o.A)((0,o.A)({axis:m.applyMatrix4(a.rotation).normalize().toArray(),pivot:c.position.applyMatrix4(a.conversion).toArray(),unit:"prismatic"===i?"m":"deg",lower:j,upper:q,rest:_,home:T},M?{continuous:!0,sourceLimits:{lower:"-inf",upper:"inf"},previewRange:[j,q]}:{}),{},{far:Math.abs(q-T)>=Math.abs(j-T)?q:j,range:[j,q],drive:void 0!==D,partial:!1})}(t,a,l.map(Q),q,N,r.filter(Boolean).every(e=>$.has(e))))});!function(e,i,t,o){const n=new Map(e.map(e=>[e.sourcePath,e])),a=new Map(e.flatMap(e=>[e.body0,e.body1]).filter(Boolean).map(e=>[e,e])),r=e=>{let i=e;for(;a.get(i)!==i;)i=a.get(i);return i};for(const s of e)null!=s.body0&&null!=s.body1&&a.set(r(s.body1),r(s.body0));for(const s of e){var l,c;const e=S(i.get(s.sourcePath),s.type,t);if(!e)continue;const a=n.get(e.referencePath);a&&a.type===s.type&&["prismatic","revolute"].includes(a.type)||f("invalid_mimic_reference","Native mimic reference must be an enabled joint of the same qualified type and units.",s.sourcePath),(s.continuous||a.continuous)&&f("unsupported_continuous_mimic","A continuous revolute preview cannot participate in a native mimic dependency.",s.sourcePath),r(null!==(l=s.body0)&&void 0!==l?l:s.body1)!==r(null!==(c=a.body0)&&void 0!==c?c:a.body1)&&f("invalid_mimic_reference","Native mimic dependencies must remain within one connected body articulation.",s.sourcePath),s.drive&&f("unsupported_mimic_drive","A driven native mimic needs separate compliance qualification.",s.sourcePath),s.mimic={of:a.id,gearing:e.gearing,offset:e.offset},o.push({code:"native_mimic",path:s.sourcePath,referencePath:a.sourcePath,message:"This joint follows its native PhysX position dependency; no compliance dynamics are simulated."})}const p=new Map(e.map(e=>[e.id,e])),d=new Set,u=new Set,m=new Map,h=e=>{if(!u.has(e.id)){if(d.has(e.id)&&f("cyclic_mimic_reference","Native mimic dependencies must be acyclic.",e.sourcePath),d.add(e.id),e.mimic){const i=p.get(e.mimic.of);h(i);const t=-(e.mimic.gearing*i.rest+e.mimic.offset);Math.abs(t-e.rest)>s&&f("mimic_rest_mismatch","Native mimic rest geometry must satisfy its authored dependency.",e.sourcePath);const o=m.get(i.id).map(i=>-(e.mimic.gearing*i+e.mimic.offset)),n=Math.min(...o),a=Math.max(...o);(n<e.lower-s||a>e.upper+s)&&f("mimic_range_outside_limits","Native mimic dependency must fit its follower limits throughout the controllable reference interval.",e.sourcePath),m.set(e.id,[n,a]);const r=-(e.mimic.gearing*i.home+e.mimic.offset);(r<e.lower-s||r>e.upper+s)&&f("mimic_home_outside_limits","Native mimic home lies outside its authored limits.",e.sourcePath),e.home=r,e.far=Math.abs(e.upper-r)>=Math.abs(e.lower-r)?e.upper:e.lower}else m.set(e.id,[e.lower,e.upper]);d.delete(e.id),u.add(e.id)}};e.forEach(h)}(K,A,q,N);const ee=new Map([[null,[]],...L.map(e=>[e.id,[]])]),ie=new Map([...ee.keys()].map(e=>[e,e])),te=e=>{let i=e;for(;ie.get(i)!==i;)i=ie.get(i);return i};for(const o of K){const e=te(o.body0),i=te(o.body1);e===i&&f("unsupported_closed_loop","Closed-loop constraints require an authored solver/replay contract.",o.sourcePath),ie.set(i,e),ee.get(o.body0).push({joint:o,other:o.body1}),ee.get(o.body1).push({joint:o,other:o.body0})}const oe=new Set,ne=[],se=new Map(L.map(e=>[e.id,e])),ae=[null,...L.slice().sort((e,i)=>{const t=e=>!e.rigid||e.kinematic?0:K.some(i=>i.body1===e.id)?2:1;return t(e)-t(i)||e.id.localeCompare(i.id)}).map(e=>e.id)];for(const o of ae){if(oe.has(o))continue;const e=[{id:o,moving:!1}];oe.add(o);for(let i=0;i<e.length;i+=1){const t=e[i];for(const{joint:i,other:o}of ee.get(t.id)){if(oe.has(o))continue;const n=t.moving||"fixed"!==i.type,s=se.get(o);!n||s.rigid&&!s.kinematic||f("moving_static_body","A moving chain contains a disabled, implicit-static or kinematic body.",s.sourcePath),s.role=n?"moving":"fixed",ne.push({joint:i.id,parent:t.id,child:o,inverse:i.body1===t.id}),oe.add(o),e.push({id:o,moving:n})}}}const re=[new n.Pq0(1/0,1/0,1/0),new n.Pq0(-1/0,-1/0,-1/0)],le=[],ce=new Map(X.map(e=>[e.path,{prim:e,points:[],faces:[],sourceMeshPaths:[]}]));let pe=0;for(const o of Y){p(o.primPath)||f("invalid_prim_path","A mesh must retain its USD prim path.",o.primPath);const e=x(o.primPath,A,D),i=X.filter(e=>{var i;return c(o.primPath,e.path)&&"Mesh"===(null===(i=A.get(o.primPath))||void 0===i?void 0:i.type)});if(!e.visual&&!e.collider&&!i.length)continue;const t=o.points;(!t||t.length%3||!t.length)&&f("invalid_mesh","Mesh positions must contain xyz triples.",o.primPath);const s=q.conversion.clone().multiply(j(o.worldMatrix,o.primPath)),a=[];for(let r=0;r<t.length;r+=3){[t[r],t[r+1],t[r+2]].every(Number.isFinite)||f("invalid_mesh","Mesh coordinates must be finite.",o.primPath);const l=new n.Pq0(t[r],t[r+1],t[r+2]).applyMatrix4(s);e.visual&&!o.debugOnly&&(re[0].min(l),re[1].max(l),pe+=1),(e.collider||i.length)&&a.push(l.toArray())}if(e.collider||i.length){var de;const t=null!==(de=o.indices)&&void 0!==de&&de.length?o.indices:Array.from({length:a.length},(e,i)=>i);(!t.length||t.length%3||!Array.from(t).every(e=>Number.isInteger(e)&&e>=0&&e<a.length))&&f("invalid_collider_mesh","Collider mesh must contain valid triangle indices.",o.primPath);const n=[];for(let e=0;e<t.length;e+=3)n.push([t[e],t[e+1],t[e+2]]);const s=V(o.primPath),r=v(A.get(o.primPath),"physics:approximation","none");"none"!==r&&N.push({code:"raw_collider_surface",path:o.primPath,approximation:r,message:"Collider debug geometry shows the authored mesh surface, without the simulator's collision approximation."}),e.collider&&(le.push({body:s,points:a,faces:n,sourcePath:o.primPath,approximation:r}),se.get(s).colliders+=1);for(const e of i){const i=ce.get(e.path),t=i.points.length;for(const e of a)i.points.push(e);for(const e of n)i.faces.push(t?e.map(e=>e+t):e);i.sourceMeshPaths.push(o.primPath)}}}for(const{prim:o,points:n,faces:s,sourceMeshPaths:a}of ce.values()){const e=V(o.path),i=v(o,"physics:approximation","none");le.push({body:e,points:n,faces:s,sourcePath:o.path,sourceMeshPaths:a,approximation:i}),se.get(e).colliders+=1,N.push({code:"native_merge_collider",path:o.path,sourceMeshPaths:a,approximation:i,message:"Collider debug geometry shows the exact authored descendant mesh surfaces, without the simulator's merged collision approximation."})}pe||f("no_visual_geometry","Prepared USD contains no supported visible mesh geometry.");const ue={version:1,frame:"gltf",units:{length:"m",angle:"deg",mass:"kg"},kind:[...A.values()].some(e=>d(e,"PhysicsArticulationRootAPI"))?"robot":"furniture",bbox:re.map(e=>e.toArray()),sequence:"serial",order:ne.map(e=>e.joint).filter(e=>"fixed"!==K.find(i=>i.id===e).type),bodies:L,joints:K,tree:ne,colliders:le,selftest:[],sourceUnconstrainedJoints:O,fixed_base:ne.some(e=>null==e.parent&&"fixed"===K.find(i=>i.id===e.joint).type),source:"native-usd",sourceFrame:{upAxis:q.upAxis,metersPerUnit:q.metersPerUnit,kilogramsPerUnit:q.kilogramsPerUnit}},me=e=>x(e,A,D);return{articulation:ue,bodyForPath:V,classifyPath:e=>{const i=me(e);return i.visual?"visual":i.collider?"collider":"hidden"},classifyMesh:me,diagnostics:N}}function F(e){let{physics:i,metadata:t,meshes:o=[],nodes:a=[]}=e;const r=_(i),l=M(t,i);Array.isArray(o)&&Array.isArray(a)||f("invalid_render_inventory","Native render meshes and nodes must be arrays.");for(const n of r.values()){const e=v(n,"visibility","inherited"),i=v(n,"purpose","default");["inherited","invisible"].includes(e)||f("invalid_visibility","USD visibility must be inherited or invisible.",n.path),["default","render","guide","proxy"].includes(i)||f("invalid_purpose","USD purpose requires a qualified render classification.",n.path)}const c=new Map,m=new Set;for(const n of[...a,...o]){if(p(null===n||void 0===n?void 0:n.primPath)&&r.has(n.primPath)||f("invalid_prim_path","Native render records must identify a prim in the USD snapshot.",null===n||void 0===n?void 0:n.primPath),void 0!==n.visible&&"boolean"!==typeof n.visible&&f("invalid_visibility","Native node visibility must be a boolean.",n.primPath),void 0!==n.worldMatrix){const e=j(n.worldMatrix,n.primPath),i=c.get(n.primPath);i&&i.elements.some((i,t)=>Math.abs(i-e.elements[t])>s)&&f("ambiguous_source_transform","One USD prim has conflicting world placements; instance identity requires separate qualification.",n.primPath),c.set(n.primPath,e)}!1===n.visible&&m.add(n.primPath)}const h=e=>x(e,r,m,!1),y=[new n.Pq0(1/0,1/0,1/0),new n.Pq0(-1/0,-1/0,-1/0)];let g=0;for(const s of o){const e=l.conversion.clone().multiply(j(s.worldMatrix,s.primPath));if(!h(s.primPath).visual||s.debugOnly)continue;const i=s.points;(!i||!i.length||i.length%3)&&f("invalid_mesh","Mesh positions must contain xyz triples.",s.primPath);for(let t=0;t<i.length;t+=3){[i[t],i[t+1],i[t+2]].every(Number.isFinite)||f("invalid_mesh","Mesh coordinates must be finite.",s.primPath);const o=new n.Pq0(i[t],i[t+1],i[t+2]).applyMatrix4(e);[o.x,o.y,o.z].every(Number.isFinite)||f("invalid_mesh","Converted mesh coordinates must be finite.",s.primPath),y[0].min(o),y[1].max(o),g+=1}}g||f("no_visual_geometry","Prepared USD contains no supported visible mesh geometry.");const b=u(new n.kn4);return{articulation:{version:1,frame:"gltf",units:{length:"m",angle:"deg",mass:"kg"},kind:[...r.values()].some(e=>d(e,"PhysicsArticulationRootAPI"))?"robot":"furniture",bbox:y.map(e=>e.toArray()),sequence:"serial",order:[],joints:[],tree:[],colliders:[],selftest:[],bodies:[{id:"b00",path:"/",sourcePath:"/",role:"fixed",rigid:!1,kinematic:!1,mass_kg:null,colliders:0,restWorldMatrix:b,presentationOnly:!0}],sourceUnconstrainedJoints:[],fixed_base:!1,source:"native-usd",sourcePhysicsQualified:!1,sourceFrame:{upAxis:l.upAxis,metersPerUnit:l.metersPerUnit,kilogramsPerUnit:l.kilogramsPerUnit}},bodyForPath:e=>p(e)&&r.has(e)?"b00":null,classifyPath:e=>h(e).visual?"visual":"hidden",classifyMesh:h,diagnostics:[{code:"visual_only_source_physics",message:"This explicitly selected preview shows source geometry and materials at their authored placement. Source physics is unqualified; joint motion and collider overlays are unavailable."}]}}}}]);
|
services/explorer/dist/static/js/217.2c2256b2.chunk.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
"use strict";(self.webpackChunkdeepsearch_ui=self.webpackChunkdeepsearch_ui||[]).push([[217],{217(t,e,n){n.r(e),n.d(e,{OutputPass:()=>p});var i=n(9435),r=n(3521);const s="OutputShader",a={tDiffuse:{value:null},toneMappingExposure:{value:1}},o="\n\t\tprecision highp float;\n\n\t\tuniform mat4 modelViewMatrix;\n\t\tuniform mat4 projectionMatrix;\n\n\t\tattribute vec3 position;\n\t\tattribute vec2 uv;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",l="\n\n\t\tprecision highp float;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\t#include <tonemapping_pars_fragment>\n\t\t#include <colorspace_pars_fragment>\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tgl_FragColor = texture2D( tDiffuse, vUv );\n\n\t\t\t// tone mapping\n\n\t\t\t#ifdef LINEAR_TONE_MAPPING\n\n\t\t\t\tgl_FragColor.rgb = LinearToneMapping( gl_FragColor.rgb );\n\n\t\t\t#elif defined( REINHARD_TONE_MAPPING )\n\n\t\t\t\tgl_FragColor.rgb = ReinhardToneMapping( gl_FragColor.rgb );\n\n\t\t\t#elif defined( CINEON_TONE_MAPPING )\n\n\t\t\t\tgl_FragColor.rgb = CineonToneMapping( gl_FragColor.rgb );\n\n\t\t\t#elif defined( ACES_FILMIC_TONE_MAPPING )\n\n\t\t\t\tgl_FragColor.rgb = ACESFilmicToneMapping( gl_FragColor.rgb );\n\n\t\t\t#elif defined( AGX_TONE_MAPPING )\n\n\t\t\t\tgl_FragColor.rgb = AgXToneMapping( gl_FragColor.rgb );\n\n\t\t\t#elif defined( NEUTRAL_TONE_MAPPING )\n\n\t\t\t\tgl_FragColor.rgb = NeutralToneMapping( gl_FragColor.rgb );\n\n\t\t\t#elif defined( CUSTOM_TONE_MAPPING )\n\n\t\t\t\tgl_FragColor.rgb = CustomToneMapping( gl_FragColor.rgb );\n\n\t\t\t#endif\n\n\t\t\t// color space\n\n\t\t\t#ifdef SRGB_TRANSFER\n\n\t\t\t\tgl_FragColor = sRGBTransferOETF( gl_FragColor );\n\n\t\t\t#endif\n\n\t\t}";class p extends r.o{constructor(){super(),this.isOutputPass=!0,this.uniforms=i.LlO.clone(a),this.material=new i.D$Q({name:s,uniforms:this.uniforms,vertexShader:o,fragmentShader:l}),this._fsQuad=new r.F(this.material),this._outputColorSpace=null,this._toneMapping=null}render(t,e,n){this.uniforms.tDiffuse.value=n.texture,this.uniforms.toneMappingExposure.value=t.toneMappingExposure,this._outputColorSpace===t.outputColorSpace&&this._toneMapping===t.toneMapping||(this._outputColorSpace=t.outputColorSpace,this._toneMapping=t.toneMapping,this.material.defines={},i.ppV.getTransfer(this._outputColorSpace)===i.KLL&&(this.material.defines.SRGB_TRANSFER=""),this._toneMapping===i.kyO?this.material.defines.LINEAR_TONE_MAPPING="":this._toneMapping===i.Mjd?this.material.defines.REINHARD_TONE_MAPPING="":this._toneMapping===i.nNL?this.material.defines.CINEON_TONE_MAPPING="":this._toneMapping===i.FV?this.material.defines.ACES_FILMIC_TONE_MAPPING="":this._toneMapping===i.LAk?this.material.defines.AGX_TONE_MAPPING="":this._toneMapping===i.aJ8?this.material.defines.NEUTRAL_TONE_MAPPING="":this._toneMapping===i.g7M&&(this.material.defines.CUSTOM_TONE_MAPPING=""),this.material.needsUpdate=!0),!0===this.renderToScreen?(t.setRenderTarget(null),this._fsQuad.render(t)):(t.setRenderTarget(e),this.clear&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),this._fsQuad.render(t))}dispose(){this.material.dispose(),this._fsQuad.dispose()}}},3521(t,e,n){n.d(e,{F:()=>l,o:()=>r});var i=n(9435);class r{constructor(){this.isPass=!0,this.enabled=!0,this.needsSwap=!0,this.clear=!1,this.renderToScreen=!1}setSize(){}render(){console.error("THREE.Pass: .render() must be implemented in derived pass.")}dispose(){}}const s=new i.qUd(-1,1,1,-1,0,1);class a extends i.LoY{constructor(){super(),this.setAttribute("position",new i.qtW([-1,3,0,-1,-1,0,3,-1,0],3)),this.setAttribute("uv",new i.qtW([0,2,0,0,2,0],2))}}const o=new a;class l{constructor(t){this._mesh=new i.eaF(o,t)}dispose(){this._mesh.geometry.dispose()}render(t){t.render(this._mesh,s)}get material(){return this._mesh.material}set material(t){this._mesh.material=t}}}}]);
|
services/explorer/dist/static/js/217.e0c811ff.chunk.js
DELETED
|
@@ -1 +0,0 @@
|
|
| 1 |
-
"use strict";(self.webpackChunkdeepsearch_ui=self.webpackChunkdeepsearch_ui||[]).push([[217],{217(t,e,n){n.r(e),n.d(e,{OutputPass:()=>p});var i=n(435),r=n(521);const s="OutputShader",a={tDiffuse:{value:null},toneMappingExposure:{value:1}},o="\n\t\tprecision highp float;\n\n\t\tuniform mat4 modelViewMatrix;\n\t\tuniform mat4 projectionMatrix;\n\n\t\tattribute vec3 position;\n\t\tattribute vec2 uv;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",l="\n\n\t\tprecision highp float;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\t#include <tonemapping_pars_fragment>\n\t\t#include <colorspace_pars_fragment>\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tgl_FragColor = texture2D( tDiffuse, vUv );\n\n\t\t\t// tone mapping\n\n\t\t\t#ifdef LINEAR_TONE_MAPPING\n\n\t\t\t\tgl_FragColor.rgb = LinearToneMapping( gl_FragColor.rgb );\n\n\t\t\t#elif defined( REINHARD_TONE_MAPPING )\n\n\t\t\t\tgl_FragColor.rgb = ReinhardToneMapping( gl_FragColor.rgb );\n\n\t\t\t#elif defined( CINEON_TONE_MAPPING )\n\n\t\t\t\tgl_FragColor.rgb = CineonToneMapping( gl_FragColor.rgb );\n\n\t\t\t#elif defined( ACES_FILMIC_TONE_MAPPING )\n\n\t\t\t\tgl_FragColor.rgb = ACESFilmicToneMapping( gl_FragColor.rgb );\n\n\t\t\t#elif defined( AGX_TONE_MAPPING )\n\n\t\t\t\tgl_FragColor.rgb = AgXToneMapping( gl_FragColor.rgb );\n\n\t\t\t#elif defined( NEUTRAL_TONE_MAPPING )\n\n\t\t\t\tgl_FragColor.rgb = NeutralToneMapping( gl_FragColor.rgb );\n\n\t\t\t#elif defined( CUSTOM_TONE_MAPPING )\n\n\t\t\t\tgl_FragColor.rgb = CustomToneMapping( gl_FragColor.rgb );\n\n\t\t\t#endif\n\n\t\t\t// color space\n\n\t\t\t#ifdef SRGB_TRANSFER\n\n\t\t\t\tgl_FragColor = sRGBTransferOETF( gl_FragColor );\n\n\t\t\t#endif\n\n\t\t}";class p extends r.o{constructor(){super(),this.isOutputPass=!0,this.uniforms=i.LlO.clone(a),this.material=new i.D$Q({name:s,uniforms:this.uniforms,vertexShader:o,fragmentShader:l}),this._fsQuad=new r.F(this.material),this._outputColorSpace=null,this._toneMapping=null}render(t,e,n){this.uniforms.tDiffuse.value=n.texture,this.uniforms.toneMappingExposure.value=t.toneMappingExposure,this._outputColorSpace===t.outputColorSpace&&this._toneMapping===t.toneMapping||(this._outputColorSpace=t.outputColorSpace,this._toneMapping=t.toneMapping,this.material.defines={},i.ppV.getTransfer(this._outputColorSpace)===i.KLL&&(this.material.defines.SRGB_TRANSFER=""),this._toneMapping===i.kyO?this.material.defines.LINEAR_TONE_MAPPING="":this._toneMapping===i.Mjd?this.material.defines.REINHARD_TONE_MAPPING="":this._toneMapping===i.nNL?this.material.defines.CINEON_TONE_MAPPING="":this._toneMapping===i.FV?this.material.defines.ACES_FILMIC_TONE_MAPPING="":this._toneMapping===i.LAk?this.material.defines.AGX_TONE_MAPPING="":this._toneMapping===i.aJ8?this.material.defines.NEUTRAL_TONE_MAPPING="":this._toneMapping===i.g7M&&(this.material.defines.CUSTOM_TONE_MAPPING=""),this.material.needsUpdate=!0),!0===this.renderToScreen?(t.setRenderTarget(null),this._fsQuad.render(t)):(t.setRenderTarget(e),this.clear&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),this._fsQuad.render(t))}dispose(){this.material.dispose(),this._fsQuad.dispose()}}},521(t,e,n){n.d(e,{F:()=>l,o:()=>r});var i=n(435);class r{constructor(){this.isPass=!0,this.enabled=!0,this.needsSwap=!0,this.clear=!1,this.renderToScreen=!1}setSize(){}render(){console.error("THREE.Pass: .render() must be implemented in derived pass.")}dispose(){}}const s=new i.qUd(-1,1,1,-1,0,1);class a extends i.LoY{constructor(){super(),this.setAttribute("position",new i.qtW([-1,3,0,-1,-1,0,3,-1,0],3)),this.setAttribute("uv",new i.qtW([0,2,0,0,2,0],2))}}const o=new a;class l{constructor(t){this._mesh=new i.eaF(o,t)}dispose(){this._mesh.geometry.dispose()}render(t){t.render(this._mesh,s)}get material(){return this._mesh.material}set material(t){this._mesh.material=t}}}}]);
|
|
|
|
|
|
services/explorer/dist/static/js/218.c928f993.chunk.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
"use strict";(self.webpackChunkdeepsearch_ui=self.webpackChunkdeepsearch_ui||[]).push([[218],{4218(e,r,l){l.r(r),l.d(r,{default:()=>c});var t=l(9379),a=l(5043),i=l(3139),o=l(5597),n=l(3333),s=l(579);const d=e=>{if(!e)return null;const r=new URL(e,window.location.href);if(r.origin!==window.location.origin||!["http:","https:"].includes(r.protocol))throw new Error("Examples must be served from this preview.");return r.href};function c(){const[e,r]=(0,a.useState)([]),[l,c]=(0,a.useState)(null),[h,p]=(0,a.useState)(null),[u,m]=(0,a.useState)(null),[x,f]=(0,a.useState)("Preparing examples\u2026"),[g,w]=(0,a.useState)(null),[v,b]=(0,a.useState)(0),y="".concat(null===l||void 0===l?void 0:l.id,":").concat(v),j=(null===u||void 0===u?void 0:u.selectionKey)===y?u:null;(0,a.useEffect)(()=>{const e=new AbortController;return fetch("".concat("","/viewer-examples/manifest.json"),{signal:e.signal,cache:"no-store"}).then(async e=>{if(!e.ok)throw new Error("The example catalog is not installed in this preview.");const r=await e.json();if(!Array.isArray(r.examples)||!r.examples.length)throw new Error("The example catalog is empty.");return r.examples.map(e=>{if(!e.hdUrl||!e.articulationUrl)throw new Error("Every example needs its published HD model and paired joint data.");return(0,t.A)((0,t.A)({},e),{},{glbUrl:d(e.glbUrl),articulationUrl:d(e.articulationUrl),hdUrl:d(e.hdUrl),referenceUrl:d(e.referenceUrl)})})}).then(l=>{if(e.signal.aborted)return;r(l);const t=new URLSearchParams(window.location.search).get("example");c(l.find(e=>e.id===t)||l[0])}).catch(r=>{e.signal.aborted||(p(r.message),f("Examples unavailable"))}),()=>e.abort()},[]),(0,a.useEffect)(()=>{if(!l)return;const e=new AbortController;return m(null),w(null),f("Loading HD GLB\u2026"),fetch(l.articulationUrl,{signal:e.signal}).then(async e=>{if(!e.ok)throw new Error("Joint data could not load (".concat(e.status,")."));const r=await e.json();if(1!==r.version||"gltf"!==r.frame||!Array.isArray(r.bodies)||!Array.isArray(r.joints))throw new Error("This file is not a supported articulation.json export.");return r}).then(r=>{e.signal.aborted||m({selectionKey:"".concat(l.id,":").concat(v),glbUrl:l.hdUrl,articulation:r,store:(0,n.createJointStore)(r),view:l.view,clipMeta:l.clipMeta})}).catch(r=>{e.signal.aborted||(w(r.message),f("Could not load this example"))}),()=>e.abort()},[l,v]);const U=(0,i.A)({resetKey:y,modelKey:y,active:!0,imageTab:!1,model:j,modelPending:!(null===l||void 0===l||!l.articulationUrl)&&!j&&!g,onModelUnavailable:e=>{w((null===e||void 0===e?void 0:e.message)||"The current GLB viewer could not load this example."),f("Could not load this example")},workspace:{portal:!0,lazyShell:!0,onEscape:"self",labels:{back:"GLB examples",dock:"Dock viewer"}}});(0,a.useEffect)(()=>{j&&U.viewerApi&&(f("Ready"),w(null))},[j,U.viewerApi]);return(0,s.jsxs)("main",{style:{maxWidth:1280,margin:"0 auto",padding:"24px 20px",color:"#e4e4e4",fontFamily:"sans-serif"},children:[(0,s.jsx)("h1",{style:{fontSize:26,marginBottom:8},children:"Current GLB viewer \u2014 HD examples"}),(0,s.jsx)("p",{children:"Orbit, zoom and inspect the surfaces. For moving parts, open the Pose workspace, drag a joint or try its presets."}),(0,s.jsx)("nav",{"aria-label":"GLB examples",style:{display:"flex",flexWrap:"wrap",gap:10,margin:"20px 0"},children:e.map(e=>(0,s.jsx)("button",{"aria-pressed":(null===l||void 0===l?void 0:l.id)===e.id,onClick:()=>(e=>{c(e);const r=new URL(window.location.href);r.searchParams.set("example",e.id),window.history.replaceState(null,"",r)})(e),style:{padding:"10px 16px",borderRadius:8,border:"1px solid #666",background:(null===l||void 0===l?void 0:l.id)===e.id?"#493125":"#252525",color:"inherit",cursor:"pointer"},children:e.label},e.id))}),h&&(0,s.jsx)("p",{role:"alert",children:h}),l&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("h2",{style:{fontSize:18,marginBottom:6},children:l.label}),(0,s.jsx)("p",{style:{marginTop:0,color:"#bbb"},children:l.description}),(0,s.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:16,alignItems:"center",marginBottom:12},children:[(0,s.jsxs)("a",{href:l.hdUrl,download:!0,children:["Download HD GLB (",(S=l.hdBytes,S?"".concat((S/1024/1024).toFixed(2)," MiB"):null),")"]}),l.articulationUrl&&(0,s.jsx)("a",{href:l.articulationUrl,download:!0,children:"Download joint data"})]})]}),(0,s.jsx)("p",{role:"status","data-testid":"glb-status",children:x}),g&&(0,s.jsxs)("p",{role:"alert",style:{color:"#ffb4aa"},children:[g," ",(0,s.jsx)("button",{onClick:()=>b(e=>e+1),children:"Retry example"})]}),(0,s.jsx)("div",{ref:U.regionRef,tabIndex:-1,style:{height:"min(66vh, 680px)",minHeight:360,position:"relative",border:"1px solid #555",borderRadius:12,overflow:"hidden"},children:(0,s.jsx)(o.z_,{ctl:U,fileName:(null===l||void 0===l?void 0:l.label)||"GLB",renderPicture:()=>null})}),j&&(0,s.jsxs)("p",{"data-testid":"glb-facts",children:[j.articulation.bodies.length," bodies \xb7 ",j.store.ids.length," movable joints \xb7 Published HD GLB from ",(null===l||void 0===l?void 0:l.index)||"the library",". ",null===l||void 0===l?void 0:l.qualitySummary]}),(null===l||void 0===l?void 0:l.referenceUrl)&&(0,s.jsxs)("details",{style:{marginTop:16},children:[(0,s.jsx)("summary",{children:"Show the source USD\u2019s RTX reference image"}),(0,s.jsx)("img",{src:l.referenceUrl,alt:"RTX reference for ".concat(l.label),style:{display:"block",width:"100%",maxWidth:720,marginTop:12}})]}),(0,s.jsxs)("p",{style:{color:"#aaa",fontSize:13},children:["These are existing GLB exports displayed with the current viewer\u2019s materials, lighting and controls. The ",(0,s.jsx)("a",{href:"?usdQualification=1",children:"native USD prototype"})," has separate USDA and USDC examples."]}),(0,s.jsx)(o.Vo,{ctl:U,fileName:(null===l||void 0===l?void 0:l.label)||"GLB examples",topOffset:0})]});var S}}}]);
|
services/explorer/dist/static/js/27.b6bb28ea.chunk.js
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
services/explorer/dist/static/js/{408.8f89fba6.chunk.js.LICENSE.txt → 27.b6bb28ea.chunk.js.LICENSE.txt}
RENAMED
|
File without changes
|
services/explorer/dist/static/js/381.2d3cf0a4.chunk.js
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
services/explorer/dist/static/js/381.8be2731d.chunk.js
DELETED
|
The diff for this file is too large to render.
See raw diff
|
|
|
services/explorer/dist/static/js/408.8f89fba6.chunk.js
DELETED
|
The diff for this file is too large to render.
See raw diff
|
|
|
services/explorer/dist/static/js/408.ff11db79.chunk.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
"use strict";(self.webpackChunkdeepsearch_ui=self.webpackChunkdeepsearch_ui||[]).push([[408],{4408(e,t,r){r.r(t),r.d(t,{GlbReviewPane:()=>v,default:()=>x});var a=r(9379),i=r(5043),n=r(7950),s=r(3139),l=r(5597),d=r(3101),o=r(3333),c=r(6796),u=r(579);const h=Object.freeze({position:[3,-4,2],target:[0,0,0]}),p=Object.freeze({maxPixels:2073600,reference:"square"}),g=e=>Number.isFinite(e)?"".concat((e/1024/1024).toFixed(2)," MiB"):"Unavailable";function v(e){let{asset:t}=e;const[r,v]=(0,i.useState)(null),[x,m]=(0,i.useState)("Loading Current HD"),[b,w]=(0,i.useState)(null),[f,j]=(0,i.useState)(!1),[y,C]=(0,i.useState)("current"),[A,q]=(0,i.useState)(null),S=(0,i.useRef)(null),B=(0,i.useRef)(0),D=(0,i.useRef)(null),k=(0,d.B0)(t.id),H=(0,i.useCallback)(e=>{w((null===e||void 0===e?void 0:e.message)||"Current GLB could not load"),m("Current unavailable")},[]);(0,i.useEffect)(()=>{const e=new AbortController;return v(null),w(null),m("Loading Current HD"),C("current"),q(null),D.current=null,(0,c._z)(t.articulation.url,{signal:e.signal,maxBytes:2097152,sha256:t.articulation.sha256}).then(r=>{const a=JSON.parse((new TextDecoder).decode(r));if(1!==a.version||"gltf"!==a.frame||!Array.isArray(a.bodies)||!a.bodies.length||a.bodies.length>512||!Array.isArray(a.joints)||a.joints.length>512||new Set(a.bodies.map(e=>e.id)).size!==a.bodies.length)throw new Error("Unsupported GLB review articulation export");e.signal.aborted||v({glbUrl:t.current.url,glbReview:t,articulation:a,store:(0,o.createJointStore)(a),view:t.view||h,presentation:"white-studio",renderPixelBudget:p})}).catch(t=>{e.signal.aborted||H(t)}),()=>{var t;e.abort(),null===(t=S.current)||void 0===t||t.abort(),B.current+=1}},[t,H]);const L=(0,s.A)({resetKey:t.id,modelKey:t.id,active:!0,imageTab:!1,model:r,modelPending:!r&&!b,onModelUnavailable:H,workspace:(0,a.A)((0,a.A)({},k),{},{portal:!0,lazyShell:!0,onEscape:"self",labels:{back:"GLB review",dock:"Dock viewer"}})});(0,i.useEffect)(()=>{r&&L.viewerApi&&D.current!==L.viewerApi&&(D.current=L.viewerApi,r.store.setPose(r.store.homes,"instant"),m("Current HD"),q(L.viewerApi.reviewDiagnostics))},[r,L.viewerApi]);const P=async e=>{var t;if(!L.viewerApi||e===y&&!f)return;null===(t=S.current)||void 0===t||t.abort();const r=new AbortController;S.current=r;const a=++B.current;j(!0),w(null);try{const t=await L.viewerApi.setReviewVariant(e,{signal:r.signal,onStatus:e=>{a===B.current&&m(e)}});if(a!==B.current||r.signal.aborted)return;C(t.activeProfile),q(t),m("candidate"===t.activeProfile?"Candidate HD \xb7 explicit review":"Current HD")}catch(i){if(a!==B.current||r.signal.aborted)return;const e=L.viewerApi.reviewDiagnostics;C(e.activeProfile),q(e),w(i.message),m("current"===e.activeProfile?"Current HD \xb7 candidate unavailable":"Candidate HD")}finally{a===B.current&&j(!1)}},G=(0,u.jsxs)("div",{className:"gqr-toolbar gqr-profile-controls".concat(L.poseOpen?" gqr-pose-controls":""),children:[(0,u.jsxs)("div",{role:"group","aria-label":"GLB quality profile",children:[(0,u.jsx)("button",{"data-testid":"glb-quality-current","aria-pressed":"current"===y,disabled:!L.viewerApi,onClick:()=>P("current"),children:"Current HD"}),(0,u.jsx)("button",{"data-testid":"glb-quality-candidate","aria-pressed":"candidate"===y,disabled:!L.viewerApi||f,onClick:()=>P("candidate"),children:null!==A&&void 0!==A&&A.candidatePrepared?"Candidate HD":"Load candidate HD"})]}),(0,u.jsx)("span",{role:"status","data-testid":"glb-quality-status",children:x})]});return(0,u.jsxs)("section",{className:"gqr-pane","aria-label":"GLB quality review","data-testid":"glb-quality-pane","data-active-profile":y,"data-current-sha256":t.current.sha256,"data-candidate-sha256":t.candidate.sha256,"data-candidate-ready":String(t.ready),"data-geometry-verified":String(!(null===A||void 0===A||!A.geometryVerified)),children:[L.poseOpen&&L.viewerContainer?(0,n.createPortal)(G,L.viewerContainer):G,!t.ready&&(0,u.jsx)("p",{className:"gqr-note",children:"Candidate quality and performance are awaiting qualification. Selection is an explicit review; Current remains the default."}),b&&(0,u.jsx)("p",{role:"alert",children:b}),(0,u.jsx)("div",{className:"gqr-stage",ref:L.regionRef,tabIndex:-1,"data-testid":"glb-quality-stage","data-active-profile":y,children:(0,u.jsx)(l.z_,{ctl:L,fileName:"".concat(t.label," \xb7 GLB"),renderPicture:()=>null})}),(0,u.jsxs)("div",{className:"gqr-actions",children:[(0,u.jsx)("button",{disabled:!L.viewerApi,onClick:()=>L.viewerApi.resetView(),children:"Reset camera"}),(null===r||void 0===r?void 0:r.store.ids.length)>0&&(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("button",{onClick:()=>r.store.setAll(0),children:"Home pose"}),(0,u.jsx)("button",{onClick:()=>r.store.setAll(1),children:"Open all"})]})]}),(0,u.jsxs)("table",{children:[(0,u.jsx)("thead",{children:(0,u.jsxs)("tr",{children:[(0,u.jsx)("th",{children:"Artifact"}),(0,u.jsx)("th",{children:"Download"}),(0,u.jsx)("th",{children:"Audited asset storage estimate"})]})}),(0,u.jsx)("tbody",{children:["current","candidate"].map(e=>(0,u.jsxs)("tr",{children:[(0,u.jsx)("th",{children:"current"===e?"Current HD":"Candidate HD"}),(0,u.jsx)("td",{children:g(t[e].bytes)}),(0,u.jsx)("td",{children:g(t[e].gpuBytes)})]},e))})]}),(0,u.jsx)("p",{children:t[y].textureSummary}),A&&(0,u.jsxs)("p",{"data-testid":"glb-quality-storage",children:["Active maps: ",g(A.active.textureBytes),". Retained A/B maps: ",g(A.retained.textureBytes),"."," ","One mounted geometry: ",g(A.retained.geometryBytes),". Texture figures use actual transcoded mip payloads or decoded RGBA8 estimates; they exclude render targets, driver overhead and upload staging. They are not physical GPU memory measurements."]}),(0,u.jsx)("p",{className:"gqr-note",children:"One Square viewport retains the same mesh geometry, camera, pose, pins, white studio and lighting. Both material sets stay resident only during this review. The production viewer\u2019s first tier and progressive HD loading are unchanged."}),(0,u.jsxs)("p",{children:[(0,u.jsx)("a",{href:t.current.url,download:!0,children:"Current GLB"})," \xb7 ",(0,u.jsx)("a",{href:t.candidate.url,download:!0,children:"Candidate GLB"}),t.auditUrl&&(0,u.jsxs)(u.Fragment,{children:[" \xb7 ",(0,u.jsx)("a",{href:t.auditUrl,target:"_blank",rel:"noreferrer",children:"Candidate audit"})]})]}),(0,u.jsx)(l.Vo,{ctl:L,fileName:"".concat(t.label," \xb7 GLB"),topOffset:0})]})}function x(){const[e,t]=(0,i.useState)(null),[r,a]=(0,i.useState)(null),[n,s]=(0,i.useState)(null);return(0,i.useEffect)(()=>{const e=new AbortController;return(0,c._z)("".concat("","/glb-quality-review/manifest.json"),{signal:e.signal,maxBytes:1048576}).then(e=>(0,c.iJ)(JSON.parse((new TextDecoder).decode(e)),window.location.href)).then(r=>{if(e.signal.aborted)return;const i=new URLSearchParams(window.location.search).get("example");t(r),a(r.examples.find(e=>e.id===i)||r.examples[0])}).catch(t=>{e.signal.aborted||s(t.message)}),()=>e.abort()},[]),(0,u.jsxs)("main",{className:"gqr-page",children:[(0,u.jsx)("p",{className:"gqr-eyebrow",children:"SimReady Central \xb7 isolated quality experiment"}),(0,u.jsx)("h1",{children:"GLB material quality review"}),(0,u.jsx)("p",{children:"Compare current HD textures with a selective quality candidate in the same interactive view."}),n?(0,u.jsx)("p",{role:"alert",children:n}):r?(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("nav",{"aria-label":"Review asset",children:e.examples.map(e=>(0,u.jsx)("button",{"aria-pressed":e.id===r.id,onClick:()=>a(e),children:e.label},e.id))}),(0,u.jsx)(d.Ay,{dockSignal:r.id,children:(0,u.jsx)(v,{asset:r},r.id)})]}):(0,u.jsx)("p",{role:"status",children:"Loading review manifest\u2026"})]})}}}]);
|
services/explorer/dist/static/js/435.31dcfdae.chunk.js
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
services/explorer/dist/static/js/{435.a051a3d9.chunk.js.LICENSE.txt → 435.31dcfdae.chunk.js.LICENSE.txt}
RENAMED
|
File without changes
|
services/explorer/dist/static/js/435.a051a3d9.chunk.js
DELETED
|
The diff for this file is too large to render.
See raw diff
|
|
|
services/explorer/dist/static/js/436.a66b55a3.chunk.js
DELETED
|
@@ -1 +0,0 @@
|
|
| 1 |
-
"use strict";(self.webpackChunkdeepsearch_ui=self.webpackChunkdeepsearch_ui||[]).push([[436],{436(A,I,B){B.r(I),B.d(I,{KTX2Loader:()=>iA});var g=B(435);class C{constructor(){let A=arguments.length>0&&void 0!==arguments[0]?arguments[0]:4;this.pool=A,this.queue=[],this.workers=[],this.workersResolve=[],this.workerStatus=0,this.workerCreator=null}_initWorker(A){if(!this.workers[A]){const I=this.workerCreator();I.addEventListener("message",this._onMessage.bind(this,A)),this.workers[A]=I}}_getIdleWorker(){for(let A=0;A<this.pool;A++)if(!(this.workerStatus&1<<A))return A;return-1}_onMessage(A,I){const B=this.workersResolve[A];if(B&&B(I),this.queue.length){const{resolve:I,msg:B,transfer:g}=this.queue.shift();this.workersResolve[A]=I,this.workers[A].postMessage(B,g)}else this.workerStatus^=1<<A}setWorkerCreator(A){this.workerCreator=A}setWorkerLimit(A){this.pool=A}postMessage(A,I){return new Promise(B=>{const g=this._getIdleWorker();-1!==g?(this._initWorker(g),this.workerStatus|=1<<g,this.workersResolve[g]=B,this.workers[g].postMessage(A,I)):this.queue.push({resolve:B,msg:A,transfer:I})})}dispose(){this.workers.forEach(A=>A.terminate()),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}}const Q=9,E=15,i=16,e=22,t=37,o=43,s=76,a=83,r=97,n=100,D=103,h=109,w=122,F=123,G=131,y=132,S=133,c=134,U=137,R=138,d=139,L=140,f=141,k=142,N=145,p=146,M=148,q=152,J=153,l=154,H=155,Y=156,K=157,T=158,m=165,x=166,u=1000054e3,_=1000054001,O=1000054004,V=1000054005,X=1000066e3,W=1000066004;class b{constructor(A,I,B,g){this._dataView=void 0,this._littleEndian=void 0,this._offset=void 0,this._dataView=new DataView(A.buffer,A.byteOffset+I,B),this._littleEndian=g,this._offset=0}_nextUint8(){const A=this._dataView.getUint8(this._offset);return this._offset+=1,A}_nextUint16(){const A=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,A}_nextUint32(){const A=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,A}_nextUint64(){const A=this._dataView.getUint32(this._offset,this._littleEndian)+2**32*this._dataView.getUint32(this._offset+4,this._littleEndian);return this._offset+=8,A}_nextInt32(){const A=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,A}_nextUint8Array(A){const I=new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+this._offset,A);return this._offset+=A,I}_skip(A){return this._offset+=A,this}_scan(A){let I=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;const B=this._offset;let g=0;for(;this._dataView.getUint8(this._offset)!==I&&g<A;)g++,this._offset++;return g<A&&this._offset++,new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+B,g)}}new Uint8Array([0]);const P=[171,75,84,88,32,50,48,187,13,10,26,10];function v(A){return(new TextDecoder).decode(A)}let Z,j,z;const $={env:{emscripten_notify_memory_growth:function(A){z=new Uint8Array(j.exports.memory.buffer)}}};class AA{init(){return Z||(Z="undefined"!=typeof fetch?fetch("data:application/wasm;base64,"+IA).then(A=>A.arrayBuffer()).then(A=>WebAssembly.instantiate(A,$)).then(this._init):WebAssembly.instantiate(Buffer.from(IA,"base64"),$).then(this._init),Z)}_init(A){j=A.instance,$.env.emscripten_notify_memory_growth(0)}decode(A){let I=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(!j)throw new Error("ZSTDDecoder: Await .init() before decoding.");const B=A.byteLength,g=j.exports.malloc(B);z.set(A,g),I=I||Number(j.exports.ZSTD_findDecompressedSize(g,B));const C=j.exports.malloc(I),Q=j.exports.ZSTD_decompress(C,I,g,B),E=z.slice(C,C+Q);return j.exports.free(g),j.exports.free(C),E}}const IA="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQhBSAGQQR2IQRBICAAdCIAQQFyIQkgASgCACEPQQAhAiADIQYCQANAIAlBAkggAiAPS3JFBEAgAiEHAkAgCARAA0AgBEH//wNxQf//A0YEQCAHQRhqIQcgBiAQSQR/IAZBAmoiBigAACAFdgUgBUEQaiEFIARBEHYLIQQMAQsLA0AgBEEDcSIIQQNGBEAgBUECaiEFIARBAnYhBCAHQQNqIQcMAQsLIAcgCGoiByAPSw0EIAVBAmohBQNAIAIgB0kEQCANIAJBAXRqQQA7AQAgAkEBaiECDAELCyAGIA5LQQAgBiAFQQN1aiIHIAxLG0UEQCAHKAAAIAVBB3EiBXYhBAwCCyAEQQJ2IQQLIAYhBwsCfyALQX9qIAQgAEF/anEiBiAAQQF0QX9qIgggCWsiEUkNABogBCAIcSIEQQAgESAEIABIG2shBiALCyEIIA0gAkEBdGogBkF/aiIEOwEAIAlBASAGayAEIAZBAUgbayEJA0AgCSAASARAIABBAXUhACALQX9qIQsMAQsLAn8gByAOS0EAIAcgBSAIaiIFQQN1aiIGIAxLG0UEQCAFQQdxDAELIAUgDCIGIAdrQQN0awshBSACQQFqIQIgBEUhCCAGKAAAIAVBH3F2IQQMAQsLQWwgCUEBRyAFQSBKcg0BGiABIAJBf2o2AgAgBiAFQQdqQQN1aiADawwBC0FQCyEAIApBEGokACAACwkAQQFBBSAAGwsMACAAIAEoAAA2AAALqgMBCn8jAEHwAGsiCiQAIAJBAWohDiAAQQhqIQtBgIAEIAVBf2p0QRB1IQxBACECQQEhBkEBIAV0IglBf2oiDyEIA0AgAiAORkUEQAJAIAEgAkEBdCINai8BACIHQf//A0YEQCALIAhBA3RqIAI2AgQgCEF/aiEIQQEhBwwBCyAGQQAgDCAHQRB0QRB1ShshBgsgCiANaiAHOwEAIAJBAWohAgwBCwsgACAFNgIEIAAgBjYCACAJQQN2IAlBAXZqQQNqIQxBACEAQQAhBkEAIQIDQCAGIA5GBEADQAJAIAAgCUYNACAKIAsgAEEDdGoiASgCBCIGQQF0aiICIAIvAQAiAkEBajsBACABIAUgAhAUayIIOgADIAEgAiAIQf8BcXQgCWs7AQAgASAEIAZBAnQiAmooAgA6AAIgASACIANqKAIANgIEIABBAWohAAwBCwsFIAEgBkEBdGouAQAhDUEAIQcDQCAHIA1ORQRAIAsgAkEDdGogBjYCBANAIAIgDGogD3EiAiAISw0ACyAHQQFqIQcMAQsLIAZBAWohBgwBCwsgCkHwAGokAAsjAEIAIAEQCSAAhUKHla+vmLbem55/fkLj3MqV/M7y9YV/fAsQACAAQn43AwggACABNgIACyQBAX8gAARAIAEoAgQiAgRAIAEoAgggACACEQEADwsgABAmCwsfACAAIAEgAi8BABAINgIAIAEQBBogACACQQRqNgIEC0oBAX9BoCAoAgAiASAAaiIAQX9MBEBBiCBBMDYCAEF/DwsCQCAAPwBBEHRNDQAgABBmDQBBiCBBMDYCAEF/DwtBoCAgADYCACABC9cBAQh/Qbp/IQoCQCACKAIEIgggAigCACIJaiIOIAEgAGtLDQBBbCEKIAkgBCADKAIAIgtrSw0AIAAgCWoiBCACKAIIIgxrIQ0gACABQWBqIg8gCyAJQQAQKSADIAkgC2o2AgACQAJAIAwgBCAFa00EQCANIQUMAQsgDCAEIAZrSw0CIAcgDSAFayIAaiIBIAhqIAdNBEAgBCABIAgQDxoMAgsgBCABQQAgAGsQDyEBIAIgACAIaiIINgIEIAEgAGshBAsgBCAPIAUgCEEBECkLIA4hCgsgCgubAgEBfyMAQYABayINJAAgDSADNgJ8AkAgAkEDSwRAQX8hCQwBCwJAAkACQAJAIAJBAWsOAwADAgELIAZFBEBBuH8hCQwEC0FsIQkgBS0AACICIANLDQMgACAHIAJBAnQiAmooAgAgAiAIaigCABA7IAEgADYCAEEBIQkMAwsgASAJNgIAQQAhCQwCCyAKRQRAQWwhCQwCC0EAIQkgC0UgDEEZSHINAUEIIAR0QQhqIQBBACECA0AgAiAATw0CIAJBQGshAgwAAAsAC0FsIQkgDSANQfwAaiANQfgAaiAFIAYQFSICEAMNACANKAJ4IgMgBEsNACAAIA0gDSgCfCAHIAggAxAYIAEgADYCACACIQkLIA1BgAFqJAAgCQsLACAAIAEgAhALGgsQACAALwAAIAAtAAJBEHRyCy8AAn9BuH8gAUEISQ0AGkFyIAAoAAQiAEF3Sw0AGkG4fyAAQQhqIgAgACABSxsLCwkAIAAgATsAAAsDAAELigYBBX8gACAAKAIAIgVBfnE2AgBBACAAIAVBAXZqQYQgKAIAIgQgAEYbIQECQAJAIAAoAgQiAkUNACACKAIAIgNBAXENACACQQhqIgUgA0EBdkF4aiIDQQggA0EISxtnQR9zQQJ0QYAfaiIDKAIARgRAIAMgAigCDDYCAAsgAigCCCIDBEAgAyACKAIMNgIECyACKAIMIgMEQCADIAIoAgg2AgALIAIgAigCACAAKAIAQX5xajYCAEGEICEAAkACQCABRQ0AIAEgAjYCBCABKAIAIgNBAXENASADQQF2QXhqIgNBCCADQQhLG2dBH3NBAnRBgB9qIgMoAgAgAUEIakYEQCADIAEoAgw2AgALIAEoAggiAwRAIAMgASgCDDYCBAsgASgCDCIDBEAgAyABKAIINgIAQYQgKAIAIQQLIAIgAigCACABKAIAQX5xajYCACABIARGDQAgASABKAIAQQF2akEEaiEACyAAIAI2AgALIAIoAgBBAXZBeGoiAEEIIABBCEsbZ0Efc0ECdEGAH2oiASgCACEAIAEgBTYCACACIAA2AgwgAkEANgIIIABFDQEgACAFNgIADwsCQCABRQ0AIAEoAgAiAkEBcQ0AIAJBAXZBeGoiAkEIIAJBCEsbZ0Efc0ECdEGAH2oiAigCACABQQhqRgRAIAIgASgCDDYCAAsgASgCCCICBEAgAiABKAIMNgIECyABKAIMIgIEQCACIAEoAgg2AgBBhCAoAgAhBAsgACAAKAIAIAEoAgBBfnFqIgI2AgACQCABIARHBEAgASABKAIAQQF2aiAANgIEIAAoAgAhAgwBC0GEICAANgIACyACQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgIoAgAhASACIABBCGoiAjYCACAAIAE2AgwgAEEANgIIIAFFDQEgASACNgIADwsgBUEBdkF4aiIBQQggAUEISxtnQR9zQQJ0QYAfaiICKAIAIQEgAiAAQQhqIgI2AgAgACABNgIMIABBADYCCCABRQ0AIAEgAjYCAAsLDgAgAARAIABBeGoQJQsLgAIBA38CQCAAQQ9qQXhxQYQgKAIAKAIAQQF2ayICEB1Bf0YNAAJAQYQgKAIAIgAoAgAiAUEBcQ0AIAFBAXZBeGoiAUEIIAFBCEsbZ0Efc0ECdEGAH2oiASgCACAAQQhqRgRAIAEgACgCDDYCAAsgACgCCCIBBEAgASAAKAIMNgIECyAAKAIMIgFFDQAgASAAKAIINgIAC0EBIQEgACAAKAIAIAJBAXRqIgI2AgAgAkEBcQ0AIAJBAXZBeGoiAkEIIAJBCEsbZ0Efc0ECdEGAH2oiAygCACECIAMgAEEIaiIDNgIAIAAgAjYCDCAAQQA2AgggAkUNACACIAM2AgALIAELtwIBA38CQAJAIABBASAAGyICEDgiAA0AAkACQEGEICgCACIARQ0AIAAoAgAiA0EBcQ0AIAAgA0EBcjYCACADQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgEoAgAgAEEIakYEQCABIAAoAgw2AgALIAAoAggiAQRAIAEgACgCDDYCBAsgACgCDCIBBEAgASAAKAIINgIACyACECchAkEAIQFBhCAoAgAhACACDQEgACAAKAIAQX5xNgIAQQAPCyACQQ9qQXhxIgMQHSICQX9GDQIgAkEHakF4cSIAIAJHBEAgACACaxAdQX9GDQMLAkBBhCAoAgAiAUUEQEGAICAANgIADAELIAAgATYCBAtBhCAgADYCACAAIANBAXRBAXI2AgAMAQsgAEUNAQsgAEEIaiEBCyABC7kDAQJ/IAAgA2ohBQJAIANBB0wEQANAIAAgBU8NAiAAIAItAAA6AAAgAEEBaiEAIAJBAWohAgwAAAsACyAEQQFGBEACQCAAIAJrIgZBB00EQCAAIAItAAA6AAAgACACLQABOgABIAAgAi0AAjoAAiAAIAItAAM6AAMgAEEEaiACIAZBAnQiBkHAHmooAgBqIgIQFyACIAZB4B5qKAIAayECDAELIAAgAhAMCyACQQhqIQIgAEEIaiEACwJAAkACQAJAIAUgAU0EQCAAIANqIQEgBEEBRyAAIAJrQQ9Kcg0BA0AgACACEAwgAkEIaiECIABBCGoiACABSQ0ACwwFCyAAIAFLBEAgACEBDAQLIARBAUcgACACa0EPSnINASAAIQMgAiEEA0AgAyAEEAwgBEEIaiEEIANBCGoiAyABSQ0ACwwCCwNAIAAgAhAHIAJBEGohAiAAQRBqIgAgAUkNAAsMAwsgACEDIAIhBANAIAMgBBAHIARBEGohBCADQRBqIgMgAUkNAAsLIAIgASAAa2ohAgsDQCABIAVPDQEgASACLQAAOgAAIAFBAWohASACQQFqIQIMAAALAAsLQQECfyAAIAAoArjgASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigCACACaiAAQQZ2IgFBAnRBsB5qKAIAaiAAQSBxIgBFaiABRSAAQQV2cWoFQbh/CwsdACAAKAKQ4gEQWiAAQQA2AqDiASAAQgA3A5DiAQu1AwEFfyMAQZACayIKJABBuH8hBgJAIAVFDQAgBCwAACIIQf8BcSEHAkAgCEF/TARAIAdBgn9qQQF2IgggBU8NAkFsIQYgB0GBf2oiBUGAAk8NAiAEQQFqIQdBACEGA0AgBiAFTwRAIAUhBiAIIQcMAwUgACAGaiAHIAZBAXZqIgQtAABBBHY6AAAgACAGQQFyaiAELQAAQQ9xOgAAIAZBAmohBgwBCwAACwALIAcgBU8NASAAIARBAWogByAKEFMiBhADDQELIAYhBEEAIQYgAUEAQTQQECEJQQAhBQNAIAQgBkcEQCAAIAZqIggtAAAiAUELSwRAQWwhBgwDBSAJIAFBAnRqIgEgASgCAEEBajYCACAGQQFqIQZBASAILQAAdEEBdSAFaiEFDAILAAsLQWwhBiAFRQ0AIAUQFEEBaiIBQQxLDQAgAyABNgIAQQFBASABdCAFayIDEBQiAXQgA0cNACAAIARqIAFBAWoiADoAACAJIABBAnRqIgAgACgCAEEBajYCACAJKAIEIgBBAkkgAEEBcXINACACIARBAWo2AgAgB0EBaiEGCyAKQZACaiQAIAYLxhEBDH8jAEHwAGsiBSQAQWwhCwJAIANBCkkNACACLwAAIQogAi8AAiEJIAIvAAQhByAFQQhqIAQQDgJAIAMgByAJIApqakEGaiIMSQ0AIAUtAAohCCAFQdgAaiACQQZqIgIgChAGIgsQAw0BIAVBQGsgAiAKaiICIAkQBiILEAMNASAFQShqIAIgCWoiAiAHEAYiCxADDQEgBUEQaiACIAdqIAMgDGsQBiILEAMNASAAIAFqIg9BfWohECAEQQRqIQZBASELIAAgAUEDakECdiIDaiIMIANqIgIgA2oiDiEDIAIhBCAMIQcDQCALIAMgEElxBEAgACAGIAVB2ABqIAgQAkECdGoiCS8BADsAACAFQdgAaiAJLQACEAEgCS0AAyELIAcgBiAFQUBrIAgQAkECdGoiCS8BADsAACAFQUBrIAktAAIQASAJLQADIQogBCAGIAVBKGogCBACQQJ0aiIJLwEAOwAAIAVBKGogCS0AAhABIAktAAMhCSADIAYgBUEQaiAIEAJBAnRqIg0vAQA7AAAgBUEQaiANLQACEAEgDS0AAyENIAAgC2oiCyAGIAVB2ABqIAgQAkECdGoiAC8BADsAACAFQdgAaiAALQACEAEgAC0AAyEAIAcgCmoiCiAGIAVBQGsgCBACQQJ0aiIHLwEAOwAAIAVBQGsgBy0AAhABIActAAMhByAEIAlqIgkgBiAFQShqIAgQAkECdGoiBC8BADsAACAFQShqIAQtAAIQASAELQADIQQgAyANaiIDIAYgBUEQaiAIEAJBAnRqIg0vAQA7AAAgBUEQaiANLQACEAEgACALaiEAIAcgCmohByAEIAlqIQQgAyANLQADaiEDIAVB2ABqEA0gBUFAaxANciAFQShqEA1yIAVBEGoQDXJFIQsMAQsLIAQgDksgByACS3INAEFsIQsgACAMSw0BIAxBfWohCQNAQQAgACAJSSAFQdgAahAEGwRAIAAgBiAFQdgAaiAIEAJBAnRqIgovAQA7AAAgBUHYAGogCi0AAhABIAAgCi0AA2oiACAGIAVB2ABqIAgQAkECdGoiCi8BADsAACAFQdgAaiAKLQACEAEgACAKLQADaiEADAEFIAxBfmohCgNAIAVB2ABqEAQgACAKS3JFBEAgACAGIAVB2ABqIAgQAkECdGoiCS8BADsAACAFQdgAaiAJLQACEAEgACAJLQADaiEADAELCwNAIAAgCk0EQCAAIAYgBUHYAGogCBACQQJ0aiIJLwEAOwAAIAVB2ABqIAktAAIQASAAIAktAANqIQAMAQsLAkAgACAMTw0AIAAgBiAFQdgAaiAIEAIiAEECdGoiDC0AADoAACAMLQADQQFGBEAgBUHYAGogDC0AAhABDAELIAUoAlxBH0sNACAFQdgAaiAGIABBAnRqLQACEAEgBSgCXEEhSQ0AIAVBIDYCXAsgAkF9aiEMA0BBACAHIAxJIAVBQGsQBBsEQCAHIAYgBUFAayAIEAJBAnRqIgAvAQA7AAAgBUFAayAALQACEAEgByAALQADaiIAIAYgBUFAayAIEAJBAnRqIgcvAQA7AAAgBUFAayAHLQACEAEgACAHLQADaiEHDAEFIAJBfmohDANAIAVBQGsQBCAHIAxLckUEQCAHIAYgBUFAayAIEAJBAnRqIgAvAQA7AAAgBUFAayAALQACEAEgByAALQADaiEHDAELCwNAIAcgDE0EQCAHIAYgBUFAayAIEAJBAnRqIgAvAQA7AAAgBUFAayAALQACEAEgByAALQADaiEHDAELCwJAIAcgAk8NACAHIAYgBUFAayAIEAIiAEECdGoiAi0AADoAACACLQADQQFGBEAgBUFAayACLQACEAEMAQsgBSgCREEfSw0AIAVBQGsgBiAAQQJ0ai0AAhABIAUoAkRBIUkNACAFQSA2AkQLIA5BfWohAgNAQQAgBCACSSAFQShqEAQbBEAgBCAGIAVBKGogCBACQQJ0aiIALwEAOwAAIAVBKGogAC0AAhABIAQgAC0AA2oiACAGIAVBKGogCBACQQJ0aiIELwEAOwAAIAVBKGogBC0AAhABIAAgBC0AA2ohBAwBBSAOQX5qIQIDQCAFQShqEAQgBCACS3JFBEAgBCAGIAVBKGogCBACQQJ0aiIALwEAOwAAIAVBKGogAC0AAhABIAQgAC0AA2ohBAwBCwsDQCAEIAJNBEAgBCAGIAVBKGogCBACQQJ0aiIALwEAOwAAIAVBKGogAC0AAhABIAQgAC0AA2ohBAwBCwsCQCAEIA5PDQAgBCAGIAVBKGogCBACIgBBAnRqIgItAAA6AAAgAi0AA0EBRgRAIAVBKGogAi0AAhABDAELIAUoAixBH0sNACAFQShqIAYgAEECdGotAAIQASAFKAIsQSFJDQAgBUEgNgIsCwNAQQAgAyAQSSAFQRBqEAQbBEAgAyAGIAVBEGogCBACQQJ0aiIALwEAOwAAIAVBEGogAC0AAhABIAMgAC0AA2oiACAGIAVBEGogCBACQQJ0aiICLwEAOwAAIAVBEGogAi0AAhABIAAgAi0AA2ohAwwBBSAPQX5qIQIDQCAFQRBqEAQgAyACS3JFBEAgAyAGIAVBEGogCBACQQJ0aiIALwEAOwAAIAVBEGogAC0AAhABIAMgAC0AA2ohAwwBCwsDQCADIAJNBEAgAyAGIAVBEGogCBACQQJ0aiIALwEAOwAAIAVBEGogAC0AAhABIAMgAC0AA2ohAwwBCwsCQCADIA9PDQAgAyAGIAVBEGogCBACIgBBAnRqIgItAAA6AAAgAi0AA0EBRgRAIAVBEGogAi0AAhABDAELIAUoAhRBH0sNACAFQRBqIAYgAEECdGotAAIQASAFKAIUQSFJDQAgBUEgNgIUCyABQWwgBUHYAGoQCiAFQUBrEApxIAVBKGoQCnEgBUEQahAKcRshCwwJCwAACwALAAALAAsAAAsACwAACwALQWwhCwsgBUHwAGokACALC7UEAQ5/IwBBEGsiBiQAIAZBBGogABAOQVQhBQJAIARB3AtJDQAgBi0ABCEHIANB8ARqQQBB7AAQECEIIAdBDEsNACADQdwJaiIJIAggBkEIaiAGQQxqIAEgAhAxIhAQA0UEQCAGKAIMIgQgB0sNASADQdwFaiEPIANBpAVqIREgAEEEaiESIANBqAVqIQEgBCEFA0AgBSICQX9qIQUgCCACQQJ0aigCAEUNAAsgAkEBaiEOQQEhBQNAIAUgDk9FBEAgCCAFQQJ0IgtqKAIAIQwgASALaiAKNgIAIAVBAWohBSAKIAxqIQoMAQsLIAEgCjYCAEEAIQUgBigCCCELA0AgBSALRkUEQCABIAUgCWotAAAiDEECdGoiDSANKAIAIg1BAWo2AgAgDyANQQF0aiINIAw6AAEgDSAFOgAAIAVBAWohBQwBCwtBACEBIANBADYCqAUgBEF/cyAHaiEJQQEhBQNAIAUgDk9FBEAgCCAFQQJ0IgtqKAIAIQwgAyALaiABNgIAIAwgBSAJanQgAWohASAFQQFqIQUMAQsLIAcgBEEBaiIBIAJrIgRrQQFqIQgDQEEBIQUgBCAIT0UEQANAIAUgDk9FBEAgBUECdCIJIAMgBEE0bGpqIAMgCWooAgAgBHY2AgAgBUEBaiEFDAELCyAEQQFqIQQMAQsLIBIgByAPIAogESADIAIgARBkIAZBAToABSAGIAc6AAYgACAGKAIENgIACyAQIQULIAZBEGokACAFC8ENAQt/IwBB8ABrIgUkAEFsIQkCQCADQQpJDQAgAi8AACEKIAIvAAIhDCACLwAEIQYgBUEIaiAEEA4CQCADIAYgCiAMampBBmoiDUkNACAFLQAKIQcgBUHYAGogAkEGaiICIAoQBiIJEAMNASAFQUBrIAIgCmoiAiAMEAYiCRADDQEgBUEoaiACIAxqIgIgBhAGIgkQAw0BIAVBEGogAiAGaiADIA1rEAYiCRADDQEgACABaiIOQX1qIQ8gBEEEaiEGQQEhCSAAIAFBA2pBAnYiAmoiCiACaiIMIAJqIg0hAyAMIQQgCiECA0AgCSADIA9JcQRAIAYgBUHYAGogBxACQQF0aiIILQAAIQsgBUHYAGogCC0AARABIAAgCzoAACAGIAVBQGsgBxACQQF0aiIILQAAIQsgBUFAayAILQABEAEgAiALOgAAIAYgBUEoaiAHEAJBAXRqIggtAAAhCyAFQShqIAgtAAEQASAEIAs6AAAgBiAFQRBqIAcQAkEBdGoiCC0AACELIAVBEGogCC0AARABIAMgCzoAACAGIAVB2ABqIAcQAkEBdGoiCC0AACELIAVB2ABqIAgtAAEQASAAIAs6AAEgBiAFQUBrIAcQAkEBdGoiCC0AACELIAVBQGsgCC0AARABIAIgCzoAASAGIAVBKGogBxACQQF0aiIILQAAIQsgBUEoaiAILQABEAEgBCALOgABIAYgBUEQaiAHEAJBAXRqIggtAAAhCyAFQRBqIAgtAAEQASADIAs6AAEgA0ECaiEDIARBAmohBCACQQJqIQIgAEECaiEAIAkgBUHYAGoQDUVxIAVBQGsQDUVxIAVBKGoQDUVxIAVBEGoQDUVxIQkMAQsLIAQgDUsgAiAMS3INAEFsIQkgACAKSw0BIApBfWohCQNAIAVB2ABqEAQgACAJT3JFBEAgBiAFQdgAaiAHEAJBAXRqIggtAAAhCyAFQdgAaiAILQABEAEgACALOgAAIAYgBUHYAGogBxACQQF0aiIILQAAIQsgBUHYAGogCC0AARABIAAgCzoAASAAQQJqIQAMAQsLA0AgBUHYAGoQBCAAIApPckUEQCAGIAVB2ABqIAcQAkEBdGoiCS0AACEIIAVB2ABqIAktAAEQASAAIAg6AAAgAEEBaiEADAELCwNAIAAgCkkEQCAGIAVB2ABqIAcQAkEBdGoiCS0AACEIIAVB2ABqIAktAAEQASAAIAg6AAAgAEEBaiEADAELCyAMQX1qIQADQCAFQUBrEAQgAiAAT3JFBEAgBiAFQUBrIAcQAkEBdGoiCi0AACEJIAVBQGsgCi0AARABIAIgCToAACAGIAVBQGsgBxACQQF0aiIKLQAAIQkgBUFAayAKLQABEAEgAiAJOgABIAJBAmohAgwBCwsDQCAFQUBrEAQgAiAMT3JFBEAgBiAFQUBrIAcQAkEBdGoiAC0AACEKIAVBQGsgAC0AARABIAIgCjoAACACQQFqIQIMAQsLA0AgAiAMSQRAIAYgBUFAayAHEAJBAXRqIgAtAAAhCiAFQUBrIAAtAAEQASACIAo6AAAgAkEBaiECDAELCyANQX1qIQADQCAFQShqEAQgBCAAT3JFBEAgBiAFQShqIAcQAkEBdGoiAi0AACEKIAVBKGogAi0AARABIAQgCjoAACAGIAVBKGogBxACQQF0aiICLQAAIQogBUEoaiACLQABEAEgBCAKOgABIARBAmohBAwBCwsDQCAFQShqEAQgBCANT3JFBEAgBiAFQShqIAcQAkEBdGoiAC0AACECIAVBKGogAC0AARABIAQgAjoAACAEQQFqIQQMAQsLA0AgBCANSQRAIAYgBUEoaiAHEAJBAXRqIgAtAAAhAiAFQShqIAAtAAEQASAEIAI6AAAgBEEBaiEEDAELCwNAIAVBEGoQBCADIA9PckUEQCAGIAVBEGogBxACQQF0aiIALQAAIQIgBUEQaiAALQABEAEgAyACOgAAIAYgBUEQaiAHEAJBAXRqIgAtAAAhAiAFQRBqIAAtAAEQASADIAI6AAEgA0ECaiEDDAELCwNAIAVBEGoQBCADIA5PckUEQCAGIAVBEGogBxACQQF0aiIALQAAIQIgBUEQaiAALQABEAEgAyACOgAAIANBAWohAwwBCwsDQCADIA5JBEAgBiAFQRBqIAcQAkEBdGoiAC0AACECIAVBEGogAC0AARABIAMgAjoAACADQQFqIQMMAQsLIAFBbCAFQdgAahAKIAVBQGsQCnEgBUEoahAKcSAFQRBqEApxGyEJDAELQWwhCQsgBUHwAGokACAJC8oCAQR/IwBBIGsiBSQAIAUgBBAOIAUtAAIhByAFQQhqIAIgAxAGIgIQA0UEQCAEQQRqIQIgACABaiIDQX1qIQQDQCAFQQhqEAQgACAET3JFBEAgAiAFQQhqIAcQAkEBdGoiBi0AACEIIAVBCGogBi0AARABIAAgCDoAACACIAVBCGogBxACQQF0aiIGLQAAIQggBUEIaiAGLQABEAEgACAIOgABIABBAmohAAwBCwsDQCAFQQhqEAQgACADT3JFBEAgAiAFQQhqIAcQAkEBdGoiBC0AACEGIAVBCGogBC0AARABIAAgBjoAACAAQQFqIQAMAQsLA0AgACADT0UEQCACIAVBCGogBxACQQF0aiIELQAAIQYgBUEIaiAELQABEAEgACAGOgAAIABBAWohAAwBCwsgAUFsIAVBCGoQChshAgsgBUEgaiQAIAILtgMBCX8jAEEQayIGJAAgBkEANgIMIAZBADYCCEFUIQQCQAJAIANBQGsiDCADIAZBCGogBkEMaiABIAIQMSICEAMNACAGQQRqIAAQDiAGKAIMIgcgBi0ABEEBaksNASAAQQRqIQogBkEAOgAFIAYgBzoABiAAIAYoAgQ2AgAgB0EBaiEJQQEhBANAIAQgCUkEQCADIARBAnRqIgEoAgAhACABIAU2AgAgACAEQX9qdCAFaiEFIARBAWohBAwBCwsgB0EBaiEHQQAhBSAGKAIIIQkDQCAFIAlGDQEgAyAFIAxqLQAAIgRBAnRqIgBBASAEdEEBdSILIAAoAgAiAWoiADYCACAHIARrIQhBACEEAkAgC0EDTQRAA0AgBCALRg0CIAogASAEakEBdGoiACAIOgABIAAgBToAACAEQQFqIQQMAAALAAsDQCABIABPDQEgCiABQQF0aiIEIAg6AAEgBCAFOgAAIAQgCDoAAyAEIAU6AAIgBCAIOgAFIAQgBToABCAEIAg6AAcgBCAFOgAGIAFBBGohAQwAAAsACyAFQQFqIQUMAAALAAsgAiEECyAGQRBqJAAgBAutAQECfwJAQYQgKAIAIABHIAAoAgBBAXYiAyABa0F4aiICQXhxQQhHcgR/IAIFIAMQJ0UNASACQQhqC0EQSQ0AIAAgACgCACICQQFxIAAgAWpBD2pBeHEiASAAa0EBdHI2AgAgASAANgIEIAEgASgCAEEBcSAAIAJBAXZqIAFrIgJBAXRyNgIAQYQgIAEgAkH/////B3FqQQRqQYQgKAIAIABGGyABNgIAIAEQJQsLygIBBX8CQAJAAkAgAEEIIABBCEsbZ0EfcyAAaUEBR2oiAUEESSAAIAF2cg0AIAFBAnRB/B5qKAIAIgJFDQADQCACQXhqIgMoAgBBAXZBeGoiBSAATwRAIAIgBUEIIAVBCEsbZ0Efc0ECdEGAH2oiASgCAEYEQCABIAIoAgQ2AgALDAMLIARBHksNASAEQQFqIQQgAigCBCICDQALC0EAIQMgAUEgTw0BA0AgAUECdEGAH2ooAgAiAkUEQCABQR5LIQIgAUEBaiEBIAJFDQEMAwsLIAIgAkF4aiIDKAIAQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgEoAgBGBEAgASACKAIENgIACwsgAigCACIBBEAgASACKAIENgIECyACKAIEIgEEQCABIAIoAgA2AgALIAMgAygCAEEBcjYCACADIAAQNwsgAwvhCwINfwV+IwBB8ABrIgckACAHIAAoAvDhASIINgJcIAEgAmohDSAIIAAoAoDiAWohDwJAAkAgBUUEQCABIQQMAQsgACgCxOABIRAgACgCwOABIREgACgCvOABIQ4gAEEBNgKM4QFBACEIA0AgCEEDRwRAIAcgCEECdCICaiAAIAJqQazQAWooAgA2AkQgCEEBaiEIDAELC0FsIQwgB0EYaiADIAQQBhADDQEgB0EsaiAHQRhqIAAoAgAQEyAHQTRqIAdBGGogACgCCBATIAdBPGogB0EYaiAAKAIEEBMgDUFgaiESIAEhBEEAIQwDQCAHKAIwIAcoAixBA3RqKQIAIhRCEIinQf8BcSEIIAcoAkAgBygCPEEDdGopAgAiFUIQiKdB/wFxIQsgBygCOCAHKAI0QQN0aikCACIWQiCIpyEJIBVCIIghFyAUQiCIpyECAkAgFkIQiKdB/wFxIgNBAk8EQAJAIAZFIANBGUlyRQRAIAkgB0EYaiADQSAgBygCHGsiCiAKIANLGyIKEAUgAyAKayIDdGohCSAHQRhqEAQaIANFDQEgB0EYaiADEAUgCWohCQwBCyAHQRhqIAMQBSAJaiEJIAdBGGoQBBoLIAcpAkQhGCAHIAk2AkQgByAYNwNIDAELAkAgA0UEQCACBEAgBygCRCEJDAMLIAcoAkghCQwBCwJAAkAgB0EYakEBEAUgCSACRWpqIgNBA0YEQCAHKAJEQX9qIgMgA0VqIQkMAQsgA0ECdCAHaigCRCIJIAlFaiEJIANBAUYNAQsgByAHKAJINgJMCwsgByAHKAJENgJIIAcgCTYCRAsgF6chAyALBEAgB0EYaiALEAUgA2ohAwsgCCALakEUTwRAIAdBGGoQBBoLIAgEQCAHQRhqIAgQBSACaiECCyAHQRhqEAQaIAcgB0EYaiAUQhiIp0H/AXEQCCAUp0H//wNxajYCLCAHIAdBGGogFUIYiKdB/wFxEAggFadB//8DcWo2AjwgB0EYahAEGiAHIAdBGGogFkIYiKdB/wFxEAggFqdB//8DcWo2AjQgByACNgJgIAcoAlwhCiAHIAk2AmggByADNgJkAkACQAJAIAQgAiADaiILaiASSw0AIAIgCmoiEyAPSw0AIA0gBGsgC0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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";var BA=B(379);const gA="display-p3",CA=(g.KLL,g.VxR,g.VxR,(0,BA.A)((0,BA.A)({},g.ppV.spaces[g.er$]),{},{outputColorSpaceConfig:{drawingBufferColorSpace:g.er$,toneMappingMode:"extended"}}),new WeakMap);let QA,EA=0;class iA extends g.aHM{constructor(A){super(A),this.transcoderPath="",this.transcoderBinary=null,this.transcoderPending=null,this.workerPool=new C,this.workerSourceURL="",this.workerConfig=null,"undefined"!==typeof MSC_TRANSCODER&&console.warn('THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.')}setTranscoderPath(A){return this.transcoderPath=A,this}setWorkerLimit(A){return this.workerPool.setWorkerLimit(A),this}async detectSupportAsync(A){return console.warn('KTX2Loader: "detectSupportAsync()" has been deprecated. Use "detectSupport()" and "await renderer.init();" when creating the renderer.'),await A.init(),this.detectSupport(A)}detectSupport(A){return!0===A.isWebGPURenderer?this.workerConfig={astcSupported:A.hasFeature("texture-compression-astc"),astcHDRSupported:!1,etc1Supported:A.hasFeature("texture-compression-etc1"),etc2Supported:A.hasFeature("texture-compression-etc2"),dxtSupported:A.hasFeature("texture-compression-s3tc"),bptcSupported:A.hasFeature("texture-compression-bc"),pvrtcSupported:A.hasFeature("texture-compression-pvrtc")}:(this.workerConfig={astcSupported:A.extensions.has("WEBGL_compressed_texture_astc"),astcHDRSupported:A.extensions.has("WEBGL_compressed_texture_astc")&&A.extensions.get("WEBGL_compressed_texture_astc").getSupportedProfiles().includes("hdr"),etc1Supported:A.extensions.has("WEBGL_compressed_texture_etc1"),etc2Supported:A.extensions.has("WEBGL_compressed_texture_etc"),dxtSupported:A.extensions.has("WEBGL_compressed_texture_s3tc"),bptcSupported:A.extensions.has("EXT_texture_compression_bptc"),pvrtcSupported:A.extensions.has("WEBGL_compressed_texture_pvrtc")||A.extensions.has("WEBKIT_WEBGL_compressed_texture_pvrtc")},"undefined"!==typeof navigator&&"undefined"!==typeof navigator.platform&&"undefined"!==typeof navigator.userAgent&&navigator.platform.indexOf("Linux")>=0&&navigator.userAgent.indexOf("Firefox")>=0&&this.workerConfig.astcSupported&&this.workerConfig.etc2Supported&&this.workerConfig.bptcSupported&&this.workerConfig.dxtSupported&&(this.workerConfig.astcSupported=!1,this.workerConfig.etc2Supported=!1)),this}init(){if(!this.transcoderPending){const A=new g.Y9S(this.manager);A.setPath(this.transcoderPath),A.setWithCredentials(this.withCredentials);const I=A.loadAsync("basis_transcoder.js"),B=new g.Y9S(this.manager);B.setPath(this.transcoderPath),B.setResponseType("arraybuffer"),B.setWithCredentials(this.withCredentials);const C=B.loadAsync("basis_transcoder.wasm");this.transcoderPending=Promise.all([I,C]).then(A=>{let[I,B]=A;const g=iA.BasisWorker.toString(),C=["/* constants */","let _EngineFormat = "+JSON.stringify(iA.EngineFormat),"let _EngineType = "+JSON.stringify(iA.EngineType),"let _TranscoderFormat = "+JSON.stringify(iA.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(iA.BasisFormat),"/* basis_transcoder.js */",I,"/* worker */",g.substring(g.indexOf("{")+1,g.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([C])),this.transcoderBinary=B,this.workerPool.setWorkerCreator(()=>{const A=new Worker(this.workerSourceURL),I=this.transcoderBinary.slice(0);return A.postMessage({type:"init",config:this.workerConfig,transcoderBinary:I},[I]),A})}),EA>0&&console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."),EA++}return this.transcoderPending}load(A,I,B,C){if(null===this.workerConfig)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");const Q=new g.Y9S(this.manager);Q.setPath(this.path),Q.setCrossOrigin(this.crossOrigin),Q.setWithCredentials(this.withCredentials),Q.setRequestHeader(this.requestHeader),Q.setResponseType("arraybuffer"),Q.load(A,A=>{this.parse(A,I,C)},B,C)}parse(A,I,B){if(null===this.workerConfig)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");if(CA.has(A)){return CA.get(A).promise.then(I).catch(B)}this._createTexture(A).then(A=>I?I(A):null).catch(B)}_createTextureFrom(A,I){const{type:B,error:C,data:{faces:Q,width:E,height:i,format:e,type:t,dfdFlags:o}}=A;if("error"===B)return Promise.reject(C);let s;if(6===I.faceCount)s=new g.c5h(Q,e,t);else{const A=Q[0].mipmaps;s=I.layerCount>1?new g.iOZ(A,E,i,I.layerCount,e,t):new g.FvD(A,E,i,e,t)}return s.minFilter=1===Q[0].mipmaps.length?g.k6q:g.$_I,s.magFilter=g.k6q,s.generateMipmaps=!1,s.needsUpdate=!0,s.colorSpace=sA(I),s.premultiplyAlpha=!!(1&o),s}async _createTexture(A){let I=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const B=function(A){const I=new Uint8Array(A.buffer,A.byteOffset,P.length);if(I[0]!==P[0]||I[1]!==P[1]||I[2]!==P[2]||I[3]!==P[3]||I[4]!==P[4]||I[5]!==P[5]||I[6]!==P[6]||I[7]!==P[7]||I[8]!==P[8]||I[9]!==P[9]||I[10]!==P[10]||I[11]!==P[11])throw new Error("Missing KTX 2.0 identifier.");const B={vkFormat:0,typeSize:1,pixelWidth:0,pixelHeight:0,pixelDepth:0,layerCount:0,faceCount:1,levelCount:0,supercompressionScheme:0,levels:[],dataFormatDescriptor:[{vendorId:0,descriptorType:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],keyValue:{},globalData:null},g=17*Uint32Array.BYTES_PER_ELEMENT,C=new b(A,P.length,g,!0);B.vkFormat=C._nextUint32(),B.typeSize=C._nextUint32(),B.pixelWidth=C._nextUint32(),B.pixelHeight=C._nextUint32(),B.pixelDepth=C._nextUint32(),B.layerCount=C._nextUint32(),B.faceCount=C._nextUint32(),B.levelCount=C._nextUint32(),B.supercompressionScheme=C._nextUint32();const Q=C._nextUint32(),E=C._nextUint32(),i=C._nextUint32(),e=C._nextUint32(),t=C._nextUint64(),o=C._nextUint64(),s=3*Math.max(B.levelCount,1)*8,a=new b(A,P.length+g,s,!0);for(let K=0,T=Math.max(B.levelCount,1);K<T;K++)B.levels.push({levelData:new Uint8Array(A.buffer,A.byteOffset+a._nextUint64(),a._nextUint64()),uncompressedByteLength:a._nextUint64()});const r=new b(A,Q,E,!0);r._skip(4);const n=r._nextUint16(),D=r._nextUint16(),h=r._nextUint16(),w=r._nextUint16(),F={vendorId:n,descriptorType:D,versionNumber:h,colorModel:r._nextUint8(),colorPrimaries:r._nextUint8(),transferFunction:r._nextUint8(),flags:r._nextUint8(),texelBlockDimension:[r._nextUint8(),r._nextUint8(),r._nextUint8(),r._nextUint8()],bytesPlane:[r._nextUint8(),r._nextUint8(),r._nextUint8(),r._nextUint8(),r._nextUint8(),r._nextUint8(),r._nextUint8(),r._nextUint8()],samples:[]},G=(w/4-6)/4;for(let K=0;K<G;K++){const A={bitOffset:r._nextUint16(),bitLength:r._nextUint8(),channelType:r._nextUint8(),samplePosition:[r._nextUint8(),r._nextUint8(),r._nextUint8(),r._nextUint8()],sampleLower:Number.NEGATIVE_INFINITY,sampleUpper:Number.POSITIVE_INFINITY};64&A.channelType?(A.sampleLower=r._nextInt32(),A.sampleUpper=r._nextInt32()):(A.sampleLower=r._nextUint32(),A.sampleUpper=r._nextUint32()),F.samples[K]=A}B.dataFormatDescriptor.length=0,B.dataFormatDescriptor.push(F);const y=new b(A,i,e,!0);for(;y._offset<e;){const A=y._nextUint32(),I=y._scan(A),g=v(I);if(B.keyValue[g]=y._nextUint8Array(A-I.byteLength-1),g.match(/^ktx/i)){const A=v(B.keyValue[g]);B.keyValue[g]=A.substring(0,A.lastIndexOf("\0"))}y._skip(A%4?4-A%4:0)}if(o<=0)return B;const S=new b(A,t,o,!0),c=S._nextUint16(),U=S._nextUint16(),R=S._nextUint32(),d=S._nextUint32(),L=S._nextUint32(),f=S._nextUint32(),k=[];for(let K=0,T=Math.max(B.levelCount,1);K<T;K++)k.push({imageFlags:S._nextUint32(),rgbSliceByteOffset:S._nextUint32(),rgbSliceByteLength:S._nextUint32(),alphaSliceByteOffset:S._nextUint32(),alphaSliceByteLength:S._nextUint32()});const N=t+S._offset,p=N+R,M=p+d,q=M+L,J=new Uint8Array(A.buffer,A.byteOffset+N,R),l=new Uint8Array(A.buffer,A.byteOffset+p,d),H=new Uint8Array(A.buffer,A.byteOffset+M,L),Y=new Uint8Array(A.buffer,A.byteOffset+q,f);return B.globalData={endpointCount:c,selectorCount:U,imageDescs:k,endpointsData:J,selectorsData:l,tablesData:H,extendedData:Y},B}(new Uint8Array(A)),C=B.vkFormat===X&&167===B.dataFormatDescriptor[0].colorModel;if(!(0===B.vkFormat||C&&!this.workerConfig.astcHDRSupported))return async function(A){const{vkFormat:I}=A;if(void 0===tA[I])throw new Error("THREE.KTX2Loader: Unsupported vkFormat: "+I);void 0===oA[I]&&console.warn('THREE.KTX2Loader: Missing ".type" for vkFormat: '+I);let B;2===A.supercompressionScheme&&(QA||(QA=new Promise(async A=>{const I=new AA;await I.init(),A(I)})),B=await QA);const C=[];for(let i=0;i<A.levels.length;i++){const Q=Math.max(1,A.pixelWidth>>i),E=Math.max(1,A.pixelHeight>>i),e=A.pixelDepth?Math.max(1,A.pixelDepth>>i):0,t=A.levels[i];let o,s;if(0===A.supercompressionScheme)o=t.levelData;else{if(2!==A.supercompressionScheme)throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");o=B.decode(t.levelData,t.uncompressedByteLength)}s=oA[I]===g.RQf?new Float32Array(o.buffer,o.byteOffset,o.byteLength/Float32Array.BYTES_PER_ELEMENT):oA[I]===g.ix0?new Uint16Array(o.buffer,o.byteOffset,o.byteLength/Uint16Array.BYTES_PER_ELEMENT):oA[I]===g.Dmk||oA[I]===g.yT7?new Uint32Array(o.buffer,o.byteOffset,o.byteLength/Uint32Array.BYTES_PER_ELEMENT):o,C.push({data:s,width:Q,height:E,depth:e})}const Q=0===A.levelCount||C.length>1;let E;if(eA.has(tA[I]))E=0===A.pixelDepth?new g.GYF(C[0].data,A.pixelWidth,A.pixelHeight):new g.dYF(C[0].data,A.pixelWidth,A.pixelHeight,A.pixelDepth),E.minFilter=Q?g.pHI:g.hxR,E.magFilter=g.hxR,E.generateMipmaps=0===A.levelCount;else{if(A.pixelDepth>0)throw new Error("THREE.KTX2Loader: Unsupported pixelDepth.");E=new g.FvD(C,A.pixelWidth,A.pixelHeight),E.minFilter=Q?g.$_I:g.k6q,E.magFilter=g.k6q}return E.mipmaps=C,E.type=oA[I],E.format=tA[I],E.colorSpace=sA(A),E.needsUpdate=!0,Promise.resolve(E)}(B);const Q=I,E=this.init().then(()=>this.workerPool.postMessage({type:"transcode",buffer:A,taskConfig:Q},[A])).then(A=>this._createTextureFrom(A.data,B));return CA.set(A,{promise:E}),E}dispose(){this.workerPool.dispose(),this.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),EA--}}iA.BasisFormat={ETC1S:0,UASTC:1,UASTC_HDR:2},iA.TranscoderFormat={ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16,BC6H:22,RGB_HALF:24,RGBA_HALF:25},iA.EngineFormat={RGBAFormat:g.GWd,RGBA_ASTC_4x4_Format:g.qa3,RGB_BPTC_UNSIGNED_Format:g.W9U,RGBA_BPTC_Format:g.Fn,RGBA_ETC2_EAC_Format:g.KDk,RGBA_PVRTC_4BPPV1_Format:g.HXV,RGBA_S3TC_DXT5_Format:g.BXX,RGB_ETC1_Format:g.CVz,RGB_ETC2_Format:g.Riy,RGB_PVRTC_4BPPV1_Format:g.k6Q,RGBA_S3TC_DXT1_Format:g.Nz6},iA.EngineType={UnsignedByteType:g.OUM,HalfFloatType:g.ix0,FloatType:g.RQf},iA.BasisWorker=function(){let A,I,B;const g=_EngineFormat,C=_EngineType,Q=_TranscoderFormat,E=_BasisFormat;self.addEventListener("message",function(g){const Q=g.data;switch(Q.type){case"init":A=Q.config,i=Q.transcoderBinary,I=new Promise(A=>{B={wasmBinary:i,onRuntimeInitialized:A},BASIS(B)}).then(()=>{B.initializeBasis(),void 0===B.KTX2File&&console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.")});break;case"transcode":I.then(()=>{try{const{faces:I,buffers:g,width:i,height:s,hasAlpha:a,format:r,type:n,dfdFlags:D}=function(I){const g=new B.KTX2File(new Uint8Array(I));function Q(){g.close(),g.delete()}if(!g.isValid())throw Q(),new Error("THREE.KTX2Loader:\tInvalid or unsupported .ktx2 file");let i;if(g.isUASTC())i=E.UASTC;else if(g.isETC1S())i=E.ETC1S;else{if(!g.isHDR())throw new Error("THREE.KTX2Loader: Unknown Basis encoding");i=E.UASTC_HDR}const s=g.getWidth(),a=g.getHeight(),r=g.getLayers()||1,n=g.getLevels(),D=g.getFaces(),h=g.getHasAlpha(),w=g.getDFDFlags(),{transcoderFormat:F,engineFormat:G,engineType:y}=function(I,B,g,C){const Q=e[I];for(let E=0;E<Q.length;E++){const i=Q[E];if(i.if&&!A[i.if])continue;if(!i.basisFormat.includes(I))continue;if(C&&i.transcoderFormat.length<2)continue;if(i.needsPowerOfTwo&&(!t(B)||!t(g)))continue;return{transcoderFormat:i.transcoderFormat[C?1:0],engineFormat:i.engineFormat[C?1:0],engineType:i.engineType[0]}}throw new Error("THREE.KTX2Loader: Failed to identify transcoding target.")}(i,s,a,h);if(!s||!a||!n)throw Q(),new Error("THREE.KTX2Loader:\tInvalid texture");if(!g.startTranscoding())throw Q(),new Error("THREE.KTX2Loader: .startTranscoding failed");const S=[],c=[];for(let A=0;A<D;A++){const I=[];for(let B=0;B<n;B++){const E=[];let i,e;for(let I=0;I<r;I++){const t=g.getImageLevelInfo(B,I,A);0!==A||0!==B||0!==I||t.origWidth%4===0&&t.origHeight%4===0||console.warn("THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions."),n>1?(i=t.origWidth,e=t.origHeight):(i=t.width,e=t.height);let o=new Uint8Array(g.getImageTranscodedSizeInBytes(B,I,0,F));const s=g.transcodeImage(o,B,I,A,F,0,-1,-1);if(y===C.HalfFloatType&&(o=new Uint16Array(o.buffer,o.byteOffset,o.byteLength/Uint16Array.BYTES_PER_ELEMENT)),!s)throw Q(),new Error("THREE.KTX2Loader: .transcodeImage failed.");E.push(o)}const t=o(E);I.push({data:t,width:i,height:e}),c.push(t.buffer)}S.push({mipmaps:I,width:s,height:a,format:G,type:y})}return Q(),{faces:S,buffers:c,width:s,height:a,hasAlpha:h,dfdFlags:w,format:G,type:y}}(Q.buffer);self.postMessage({type:"transcode",id:Q.id,data:{faces:I,width:i,height:s,hasAlpha:a,format:r,type:n,dfdFlags:D}},g)}catch(I){console.error(I),self.postMessage({type:"error",id:Q.id,error:I.message})}})}var i});const i=[{if:"astcSupported",basisFormat:[E.UASTC],transcoderFormat:[Q.ASTC_4x4,Q.ASTC_4x4],engineFormat:[g.RGBA_ASTC_4x4_Format,g.RGBA_ASTC_4x4_Format],engineType:[C.UnsignedByteType],priorityETC1S:1/0,priorityUASTC:1,needsPowerOfTwo:!1},{if:"bptcSupported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[Q.BC7_M5,Q.BC7_M5],engineFormat:[g.RGBA_BPTC_Format,g.RGBA_BPTC_Format],engineType:[C.UnsignedByteType],priorityETC1S:3,priorityUASTC:2,needsPowerOfTwo:!1},{if:"dxtSupported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[Q.BC1,Q.BC3],engineFormat:[g.RGBA_S3TC_DXT1_Format,g.RGBA_S3TC_DXT5_Format],engineType:[C.UnsignedByteType],priorityETC1S:4,priorityUASTC:5,needsPowerOfTwo:!1},{if:"etc2Supported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[Q.ETC1,Q.ETC2],engineFormat:[g.RGB_ETC2_Format,g.RGBA_ETC2_EAC_Format],engineType:[C.UnsignedByteType],priorityETC1S:1,priorityUASTC:3,needsPowerOfTwo:!1},{if:"etc1Supported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[Q.ETC1],engineFormat:[g.RGB_ETC1_Format],engineType:[C.UnsignedByteType],priorityETC1S:2,priorityUASTC:4,needsPowerOfTwo:!1},{if:"pvrtcSupported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[Q.PVRTC1_4_RGB,Q.PVRTC1_4_RGBA],engineFormat:[g.RGB_PVRTC_4BPPV1_Format,g.RGBA_PVRTC_4BPPV1_Format],engineType:[C.UnsignedByteType],priorityETC1S:5,priorityUASTC:6,needsPowerOfTwo:!0},{if:"bptcSupported",basisFormat:[E.UASTC_HDR],transcoderFormat:[Q.BC6H],engineFormat:[g.RGB_BPTC_UNSIGNED_Format],engineType:[C.HalfFloatType],priorityHDR:1,needsPowerOfTwo:!1},{basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[Q.RGBA32,Q.RGBA32],engineFormat:[g.RGBAFormat,g.RGBAFormat],engineType:[C.UnsignedByteType,C.UnsignedByteType],priorityETC1S:100,priorityUASTC:100,needsPowerOfTwo:!1},{basisFormat:[E.UASTC_HDR],transcoderFormat:[Q.RGBA_HALF],engineFormat:[g.RGBAFormat],engineType:[C.HalfFloatType],priorityHDR:100,needsPowerOfTwo:!1}],e={[E.ETC1S]:i.filter(A=>A.basisFormat.includes(E.ETC1S)).sort((A,I)=>A.priorityETC1S-I.priorityETC1S),[E.UASTC]:i.filter(A=>A.basisFormat.includes(E.UASTC)).sort((A,I)=>A.priorityUASTC-I.priorityUASTC),[E.UASTC_HDR]:i.filter(A=>A.basisFormat.includes(E.UASTC_HDR)).sort((A,I)=>A.priorityHDR-I.priorityHDR)};function t(A){return A<=2||0===(A&A-1)&&0!==A}function o(A){if(1===A.length)return A[0];let I=0;for(let C=0;C<A.length;C++){I+=A[C].byteLength}const B=new Uint8Array(I);let g=0;for(let C=0;C<A.length;C++){const I=A[C];B.set(I,g),g+=I.byteLength}return B}};const eA=new Set([g.GWd,g.HIg,g.paN,g.VT0]),tA={[h]:g.GWd,[D]:g.paN,[n]:g.VT0,[r]:g.GWd,[a]:g.paN,[s]:g.VT0,[o]:g.GWd,[t]:g.GWd,[e]:g.paN,[i]:g.paN,[E]:g.VT0,[Q]:g.VT0,[F]:g.HIg,[w]:g.HIg,[q]:g.KDk,[M]:g.Riy,[J]:g.BVL,[l]:g.gZr,[H]:g.OtU,[Y]:g.jSS,[X]:g.qa3,[T]:g.qa3,[K]:g.qa3,[W]:g.Qrf,[x]:g.Qrf,[m]:g.Qrf,[c]:g.Nz6,[S]:g.Nz6,[y]:g.IE4,[G]:g.IE4,[R]:g.BXX,[U]:g.BXX,[L]:g.XG_,[d]:g.Kef,[k]:g.CWW,[f]:g.HO_,[p]:g.Fn,[N]:g.Fn,[V]:g.HXV,[_]:g.HXV,[O]:g.pBf,[u]:g.pBf},oA={[h]:g.RQf,[D]:g.RQf,[n]:g.RQf,[r]:g.ix0,[a]:g.ix0,[s]:g.ix0,[o]:g.OUM,[t]:g.OUM,[e]:g.OUM,[i]:g.OUM,[E]:g.OUM,[Q]:g.OUM,[F]:g.Dmk,[w]:g.yT7,[q]:g.OUM,[M]:g.OUM,[J]:g.OUM,[l]:g.OUM,[H]:g.OUM,[Y]:g.OUM,[X]:g.ix0,[T]:g.OUM,[K]:g.OUM,[W]:g.ix0,[x]:g.OUM,[m]:g.OUM,[c]:g.OUM,[S]:g.OUM,[y]:g.OUM,[G]:g.OUM,[R]:g.OUM,[U]:g.OUM,[L]:g.OUM,[d]:g.OUM,[k]:g.OUM,[f]:g.OUM,[p]:g.OUM,[N]:g.OUM,[V]:g.OUM,[_]:g.OUM,[O]:g.OUM,[u]:g.OUM};function sA(A){const I=A.dataFormatDescriptor[0];return 1===I.colorPrimaries?2===I.transferFunction?g.er$:g.Zr2:10===I.colorPrimaries?2===I.transferFunction?gA:"display-p3-linear":(0===I.colorPrimaries||console.warn('THREE.KTX2Loader: Unsupported color primaries, "'.concat(I.colorPrimaries,'"')),g.jf0)}}}]);
|
|
|
|
|
|
services/explorer/dist/static/js/436.fb7d7bfa.chunk.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
"use strict";(self.webpackChunkdeepsearch_ui=self.webpackChunkdeepsearch_ui||[]).push([[436],{6436(A,I,B){B.r(I),B.d(I,{KTX2Loader:()=>iA});var g=B(9435);class C{constructor(){let A=arguments.length>0&&void 0!==arguments[0]?arguments[0]:4;this.pool=A,this.queue=[],this.workers=[],this.workersResolve=[],this.workerStatus=0,this.workerCreator=null}_initWorker(A){if(!this.workers[A]){const I=this.workerCreator();I.addEventListener("message",this._onMessage.bind(this,A)),this.workers[A]=I}}_getIdleWorker(){for(let A=0;A<this.pool;A++)if(!(this.workerStatus&1<<A))return A;return-1}_onMessage(A,I){const B=this.workersResolve[A];if(B&&B(I),this.queue.length){const{resolve:I,msg:B,transfer:g}=this.queue.shift();this.workersResolve[A]=I,this.workers[A].postMessage(B,g)}else this.workerStatus^=1<<A}setWorkerCreator(A){this.workerCreator=A}setWorkerLimit(A){this.pool=A}postMessage(A,I){return new Promise(B=>{const g=this._getIdleWorker();-1!==g?(this._initWorker(g),this.workerStatus|=1<<g,this.workersResolve[g]=B,this.workers[g].postMessage(A,I)):this.queue.push({resolve:B,msg:A,transfer:I})})}dispose(){this.workers.forEach(A=>A.terminate()),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}}const Q=9,E=15,i=16,e=22,t=37,o=43,s=76,a=83,r=97,n=100,D=103,h=109,w=122,F=123,G=131,y=132,S=133,c=134,U=137,R=138,d=139,L=140,f=141,k=142,N=145,p=146,M=148,q=152,J=153,l=154,H=155,Y=156,K=157,T=158,m=165,x=166,u=1000054e3,_=1000054001,O=1000054004,V=1000054005,X=1000066e3,W=1000066004;class b{constructor(A,I,B,g){this._dataView=void 0,this._littleEndian=void 0,this._offset=void 0,this._dataView=new DataView(A.buffer,A.byteOffset+I,B),this._littleEndian=g,this._offset=0}_nextUint8(){const A=this._dataView.getUint8(this._offset);return this._offset+=1,A}_nextUint16(){const A=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,A}_nextUint32(){const A=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,A}_nextUint64(){const A=this._dataView.getUint32(this._offset,this._littleEndian)+2**32*this._dataView.getUint32(this._offset+4,this._littleEndian);return this._offset+=8,A}_nextInt32(){const A=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,A}_nextUint8Array(A){const I=new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+this._offset,A);return this._offset+=A,I}_skip(A){return this._offset+=A,this}_scan(A){let I=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;const B=this._offset;let g=0;for(;this._dataView.getUint8(this._offset)!==I&&g<A;)g++,this._offset++;return g<A&&this._offset++,new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+B,g)}}new Uint8Array([0]);const P=[171,75,84,88,32,50,48,187,13,10,26,10];function v(A){return(new TextDecoder).decode(A)}let Z,j,z;const $={env:{emscripten_notify_memory_growth:function(A){z=new Uint8Array(j.exports.memory.buffer)}}};class AA{init(){return Z||(Z="undefined"!=typeof fetch?fetch("data:application/wasm;base64,"+IA).then(A=>A.arrayBuffer()).then(A=>WebAssembly.instantiate(A,$)).then(this._init):WebAssembly.instantiate(Buffer.from(IA,"base64"),$).then(this._init),Z)}_init(A){j=A.instance,$.env.emscripten_notify_memory_growth(0)}decode(A){let I=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(!j)throw new Error("ZSTDDecoder: Await .init() before decoding.");const B=A.byteLength,g=j.exports.malloc(B);z.set(A,g),I=I||Number(j.exports.ZSTD_findDecompressedSize(g,B));const C=j.exports.malloc(I),Q=j.exports.ZSTD_decompress(C,I,g,B),E=z.slice(C,C+Q);return j.exports.free(g),j.exports.free(C),E}}const IA="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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";var BA=B(9379);const gA="display-p3",CA=(g.KLL,g.VxR,g.VxR,(0,BA.A)((0,BA.A)({},g.ppV.spaces[g.er$]),{},{outputColorSpaceConfig:{drawingBufferColorSpace:g.er$,toneMappingMode:"extended"}}),new WeakMap);let QA,EA=0;class iA extends g.aHM{constructor(A){super(A),this.transcoderPath="",this.transcoderBinary=null,this.transcoderPending=null,this.workerPool=new C,this.workerSourceURL="",this.workerConfig=null,"undefined"!==typeof MSC_TRANSCODER&&console.warn('THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.')}setTranscoderPath(A){return this.transcoderPath=A,this}setWorkerLimit(A){return this.workerPool.setWorkerLimit(A),this}async detectSupportAsync(A){return console.warn('KTX2Loader: "detectSupportAsync()" has been deprecated. Use "detectSupport()" and "await renderer.init();" when creating the renderer.'),await A.init(),this.detectSupport(A)}detectSupport(A){return!0===A.isWebGPURenderer?this.workerConfig={astcSupported:A.hasFeature("texture-compression-astc"),astcHDRSupported:!1,etc1Supported:A.hasFeature("texture-compression-etc1"),etc2Supported:A.hasFeature("texture-compression-etc2"),dxtSupported:A.hasFeature("texture-compression-s3tc"),bptcSupported:A.hasFeature("texture-compression-bc"),pvrtcSupported:A.hasFeature("texture-compression-pvrtc")}:(this.workerConfig={astcSupported:A.extensions.has("WEBGL_compressed_texture_astc"),astcHDRSupported:A.extensions.has("WEBGL_compressed_texture_astc")&&A.extensions.get("WEBGL_compressed_texture_astc").getSupportedProfiles().includes("hdr"),etc1Supported:A.extensions.has("WEBGL_compressed_texture_etc1"),etc2Supported:A.extensions.has("WEBGL_compressed_texture_etc"),dxtSupported:A.extensions.has("WEBGL_compressed_texture_s3tc"),bptcSupported:A.extensions.has("EXT_texture_compression_bptc"),pvrtcSupported:A.extensions.has("WEBGL_compressed_texture_pvrtc")||A.extensions.has("WEBKIT_WEBGL_compressed_texture_pvrtc")},"undefined"!==typeof navigator&&"undefined"!==typeof navigator.platform&&"undefined"!==typeof navigator.userAgent&&navigator.platform.indexOf("Linux")>=0&&navigator.userAgent.indexOf("Firefox")>=0&&this.workerConfig.astcSupported&&this.workerConfig.etc2Supported&&this.workerConfig.bptcSupported&&this.workerConfig.dxtSupported&&(this.workerConfig.astcSupported=!1,this.workerConfig.etc2Supported=!1)),this}init(){if(!this.transcoderPending){const A=new g.Y9S(this.manager);A.setPath(this.transcoderPath),A.setWithCredentials(this.withCredentials);const I=A.loadAsync("basis_transcoder.js"),B=new g.Y9S(this.manager);B.setPath(this.transcoderPath),B.setResponseType("arraybuffer"),B.setWithCredentials(this.withCredentials);const C=B.loadAsync("basis_transcoder.wasm");this.transcoderPending=Promise.all([I,C]).then(A=>{let[I,B]=A;const g=iA.BasisWorker.toString(),C=["/* constants */","let _EngineFormat = "+JSON.stringify(iA.EngineFormat),"let _EngineType = "+JSON.stringify(iA.EngineType),"let _TranscoderFormat = "+JSON.stringify(iA.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(iA.BasisFormat),"/* basis_transcoder.js */",I,"/* worker */",g.substring(g.indexOf("{")+1,g.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([C])),this.transcoderBinary=B,this.workerPool.setWorkerCreator(()=>{const A=new Worker(this.workerSourceURL),I=this.transcoderBinary.slice(0);return A.postMessage({type:"init",config:this.workerConfig,transcoderBinary:I},[I]),A})}),EA>0&&console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."),EA++}return this.transcoderPending}load(A,I,B,C){if(null===this.workerConfig)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");const Q=new g.Y9S(this.manager);Q.setPath(this.path),Q.setCrossOrigin(this.crossOrigin),Q.setWithCredentials(this.withCredentials),Q.setRequestHeader(this.requestHeader),Q.setResponseType("arraybuffer"),Q.load(A,A=>{this.parse(A,I,C)},B,C)}parse(A,I,B){if(null===this.workerConfig)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");if(CA.has(A)){return CA.get(A).promise.then(I).catch(B)}this._createTexture(A).then(A=>I?I(A):null).catch(B)}_createTextureFrom(A,I){const{type:B,error:C,data:{faces:Q,width:E,height:i,format:e,type:t,dfdFlags:o}}=A;if("error"===B)return Promise.reject(C);let s;if(6===I.faceCount)s=new g.c5h(Q,e,t);else{const A=Q[0].mipmaps;s=I.layerCount>1?new g.iOZ(A,E,i,I.layerCount,e,t):new g.FvD(A,E,i,e,t)}return s.minFilter=1===Q[0].mipmaps.length?g.k6q:g.$_I,s.magFilter=g.k6q,s.generateMipmaps=!1,s.needsUpdate=!0,s.colorSpace=sA(I),s.premultiplyAlpha=!!(1&o),s}async _createTexture(A){let I=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const B=function(A){const I=new Uint8Array(A.buffer,A.byteOffset,P.length);if(I[0]!==P[0]||I[1]!==P[1]||I[2]!==P[2]||I[3]!==P[3]||I[4]!==P[4]||I[5]!==P[5]||I[6]!==P[6]||I[7]!==P[7]||I[8]!==P[8]||I[9]!==P[9]||I[10]!==P[10]||I[11]!==P[11])throw new Error("Missing KTX 2.0 identifier.");const B={vkFormat:0,typeSize:1,pixelWidth:0,pixelHeight:0,pixelDepth:0,layerCount:0,faceCount:1,levelCount:0,supercompressionScheme:0,levels:[],dataFormatDescriptor:[{vendorId:0,descriptorType:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],keyValue:{},globalData:null},g=17*Uint32Array.BYTES_PER_ELEMENT,C=new b(A,P.length,g,!0);B.vkFormat=C._nextUint32(),B.typeSize=C._nextUint32(),B.pixelWidth=C._nextUint32(),B.pixelHeight=C._nextUint32(),B.pixelDepth=C._nextUint32(),B.layerCount=C._nextUint32(),B.faceCount=C._nextUint32(),B.levelCount=C._nextUint32(),B.supercompressionScheme=C._nextUint32();const Q=C._nextUint32(),E=C._nextUint32(),i=C._nextUint32(),e=C._nextUint32(),t=C._nextUint64(),o=C._nextUint64(),s=3*Math.max(B.levelCount,1)*8,a=new b(A,P.length+g,s,!0);for(let K=0,T=Math.max(B.levelCount,1);K<T;K++)B.levels.push({levelData:new Uint8Array(A.buffer,A.byteOffset+a._nextUint64(),a._nextUint64()),uncompressedByteLength:a._nextUint64()});const r=new b(A,Q,E,!0);r._skip(4);const n=r._nextUint16(),D=r._nextUint16(),h=r._nextUint16(),w=r._nextUint16(),F={vendorId:n,descriptorType:D,versionNumber:h,colorModel:r._nextUint8(),colorPrimaries:r._nextUint8(),transferFunction:r._nextUint8(),flags:r._nextUint8(),texelBlockDimension:[r._nextUint8(),r._nextUint8(),r._nextUint8(),r._nextUint8()],bytesPlane:[r._nextUint8(),r._nextUint8(),r._nextUint8(),r._nextUint8(),r._nextUint8(),r._nextUint8(),r._nextUint8(),r._nextUint8()],samples:[]},G=(w/4-6)/4;for(let K=0;K<G;K++){const A={bitOffset:r._nextUint16(),bitLength:r._nextUint8(),channelType:r._nextUint8(),samplePosition:[r._nextUint8(),r._nextUint8(),r._nextUint8(),r._nextUint8()],sampleLower:Number.NEGATIVE_INFINITY,sampleUpper:Number.POSITIVE_INFINITY};64&A.channelType?(A.sampleLower=r._nextInt32(),A.sampleUpper=r._nextInt32()):(A.sampleLower=r._nextUint32(),A.sampleUpper=r._nextUint32()),F.samples[K]=A}B.dataFormatDescriptor.length=0,B.dataFormatDescriptor.push(F);const y=new b(A,i,e,!0);for(;y._offset<e;){const A=y._nextUint32(),I=y._scan(A),g=v(I);if(B.keyValue[g]=y._nextUint8Array(A-I.byteLength-1),g.match(/^ktx/i)){const A=v(B.keyValue[g]);B.keyValue[g]=A.substring(0,A.lastIndexOf("\0"))}y._skip(A%4?4-A%4:0)}if(o<=0)return B;const S=new b(A,t,o,!0),c=S._nextUint16(),U=S._nextUint16(),R=S._nextUint32(),d=S._nextUint32(),L=S._nextUint32(),f=S._nextUint32(),k=[];for(let K=0,T=Math.max(B.levelCount,1);K<T;K++)k.push({imageFlags:S._nextUint32(),rgbSliceByteOffset:S._nextUint32(),rgbSliceByteLength:S._nextUint32(),alphaSliceByteOffset:S._nextUint32(),alphaSliceByteLength:S._nextUint32()});const N=t+S._offset,p=N+R,M=p+d,q=M+L,J=new Uint8Array(A.buffer,A.byteOffset+N,R),l=new Uint8Array(A.buffer,A.byteOffset+p,d),H=new Uint8Array(A.buffer,A.byteOffset+M,L),Y=new Uint8Array(A.buffer,A.byteOffset+q,f);return B.globalData={endpointCount:c,selectorCount:U,imageDescs:k,endpointsData:J,selectorsData:l,tablesData:H,extendedData:Y},B}(new Uint8Array(A)),C=B.vkFormat===X&&167===B.dataFormatDescriptor[0].colorModel;if(!(0===B.vkFormat||C&&!this.workerConfig.astcHDRSupported))return async function(A){const{vkFormat:I}=A;if(void 0===tA[I])throw new Error("THREE.KTX2Loader: Unsupported vkFormat: "+I);void 0===oA[I]&&console.warn('THREE.KTX2Loader: Missing ".type" for vkFormat: '+I);let B;2===A.supercompressionScheme&&(QA||(QA=new Promise(async A=>{const I=new AA;await I.init(),A(I)})),B=await QA);const C=[];for(let i=0;i<A.levels.length;i++){const Q=Math.max(1,A.pixelWidth>>i),E=Math.max(1,A.pixelHeight>>i),e=A.pixelDepth?Math.max(1,A.pixelDepth>>i):0,t=A.levels[i];let o,s;if(0===A.supercompressionScheme)o=t.levelData;else{if(2!==A.supercompressionScheme)throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");o=B.decode(t.levelData,t.uncompressedByteLength)}s=oA[I]===g.RQf?new Float32Array(o.buffer,o.byteOffset,o.byteLength/Float32Array.BYTES_PER_ELEMENT):oA[I]===g.ix0?new Uint16Array(o.buffer,o.byteOffset,o.byteLength/Uint16Array.BYTES_PER_ELEMENT):oA[I]===g.Dmk||oA[I]===g.yT7?new Uint32Array(o.buffer,o.byteOffset,o.byteLength/Uint32Array.BYTES_PER_ELEMENT):o,C.push({data:s,width:Q,height:E,depth:e})}const Q=0===A.levelCount||C.length>1;let E;if(eA.has(tA[I]))E=0===A.pixelDepth?new g.GYF(C[0].data,A.pixelWidth,A.pixelHeight):new g.dYF(C[0].data,A.pixelWidth,A.pixelHeight,A.pixelDepth),E.minFilter=Q?g.pHI:g.hxR,E.magFilter=g.hxR,E.generateMipmaps=0===A.levelCount;else{if(A.pixelDepth>0)throw new Error("THREE.KTX2Loader: Unsupported pixelDepth.");E=new g.FvD(C,A.pixelWidth,A.pixelHeight),E.minFilter=Q?g.$_I:g.k6q,E.magFilter=g.k6q}return E.mipmaps=C,E.type=oA[I],E.format=tA[I],E.colorSpace=sA(A),E.needsUpdate=!0,Promise.resolve(E)}(B);const Q=I,E=this.init().then(()=>this.workerPool.postMessage({type:"transcode",buffer:A,taskConfig:Q},[A])).then(A=>this._createTextureFrom(A.data,B));return CA.set(A,{promise:E}),E}dispose(){this.workerPool.dispose(),this.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),EA--}}iA.BasisFormat={ETC1S:0,UASTC:1,UASTC_HDR:2},iA.TranscoderFormat={ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16,BC6H:22,RGB_HALF:24,RGBA_HALF:25},iA.EngineFormat={RGBAFormat:g.GWd,RGBA_ASTC_4x4_Format:g.qa3,RGB_BPTC_UNSIGNED_Format:g.W9U,RGBA_BPTC_Format:g.Fn,RGBA_ETC2_EAC_Format:g.KDk,RGBA_PVRTC_4BPPV1_Format:g.HXV,RGBA_S3TC_DXT5_Format:g.BXX,RGB_ETC1_Format:g.CVz,RGB_ETC2_Format:g.Riy,RGB_PVRTC_4BPPV1_Format:g.k6Q,RGBA_S3TC_DXT1_Format:g.Nz6},iA.EngineType={UnsignedByteType:g.OUM,HalfFloatType:g.ix0,FloatType:g.RQf},iA.BasisWorker=function(){let A,I,B;const g=_EngineFormat,C=_EngineType,Q=_TranscoderFormat,E=_BasisFormat;self.addEventListener("message",function(g){const Q=g.data;switch(Q.type){case"init":A=Q.config,i=Q.transcoderBinary,I=new Promise(A=>{B={wasmBinary:i,onRuntimeInitialized:A},BASIS(B)}).then(()=>{B.initializeBasis(),void 0===B.KTX2File&&console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.")});break;case"transcode":I.then(()=>{try{const{faces:I,buffers:g,width:i,height:s,hasAlpha:a,format:r,type:n,dfdFlags:D}=function(I){const g=new B.KTX2File(new Uint8Array(I));function Q(){g.close(),g.delete()}if(!g.isValid())throw Q(),new Error("THREE.KTX2Loader:\tInvalid or unsupported .ktx2 file");let i;if(g.isUASTC())i=E.UASTC;else if(g.isETC1S())i=E.ETC1S;else{if(!g.isHDR())throw new Error("THREE.KTX2Loader: Unknown Basis encoding");i=E.UASTC_HDR}const s=g.getWidth(),a=g.getHeight(),r=g.getLayers()||1,n=g.getLevels(),D=g.getFaces(),h=g.getHasAlpha(),w=g.getDFDFlags(),{transcoderFormat:F,engineFormat:G,engineType:y}=function(I,B,g,C){const Q=e[I];for(let E=0;E<Q.length;E++){const i=Q[E];if(i.if&&!A[i.if])continue;if(!i.basisFormat.includes(I))continue;if(C&&i.transcoderFormat.length<2)continue;if(i.needsPowerOfTwo&&(!t(B)||!t(g)))continue;return{transcoderFormat:i.transcoderFormat[C?1:0],engineFormat:i.engineFormat[C?1:0],engineType:i.engineType[0]}}throw new Error("THREE.KTX2Loader: Failed to identify transcoding target.")}(i,s,a,h);if(!s||!a||!n)throw Q(),new Error("THREE.KTX2Loader:\tInvalid texture");if(!g.startTranscoding())throw Q(),new Error("THREE.KTX2Loader: .startTranscoding failed");const S=[],c=[];for(let A=0;A<D;A++){const I=[];for(let B=0;B<n;B++){const E=[];let i,e;for(let I=0;I<r;I++){const t=g.getImageLevelInfo(B,I,A);0!==A||0!==B||0!==I||t.origWidth%4===0&&t.origHeight%4===0||console.warn("THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions."),n>1?(i=t.origWidth,e=t.origHeight):(i=t.width,e=t.height);let o=new Uint8Array(g.getImageTranscodedSizeInBytes(B,I,0,F));const s=g.transcodeImage(o,B,I,A,F,0,-1,-1);if(y===C.HalfFloatType&&(o=new Uint16Array(o.buffer,o.byteOffset,o.byteLength/Uint16Array.BYTES_PER_ELEMENT)),!s)throw Q(),new Error("THREE.KTX2Loader: .transcodeImage failed.");E.push(o)}const t=o(E);I.push({data:t,width:i,height:e}),c.push(t.buffer)}S.push({mipmaps:I,width:s,height:a,format:G,type:y})}return Q(),{faces:S,buffers:c,width:s,height:a,hasAlpha:h,dfdFlags:w,format:G,type:y}}(Q.buffer);self.postMessage({type:"transcode",id:Q.id,data:{faces:I,width:i,height:s,hasAlpha:a,format:r,type:n,dfdFlags:D}},g)}catch(I){console.error(I),self.postMessage({type:"error",id:Q.id,error:I.message})}})}var i});const i=[{if:"astcSupported",basisFormat:[E.UASTC],transcoderFormat:[Q.ASTC_4x4,Q.ASTC_4x4],engineFormat:[g.RGBA_ASTC_4x4_Format,g.RGBA_ASTC_4x4_Format],engineType:[C.UnsignedByteType],priorityETC1S:1/0,priorityUASTC:1,needsPowerOfTwo:!1},{if:"bptcSupported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[Q.BC7_M5,Q.BC7_M5],engineFormat:[g.RGBA_BPTC_Format,g.RGBA_BPTC_Format],engineType:[C.UnsignedByteType],priorityETC1S:3,priorityUASTC:2,needsPowerOfTwo:!1},{if:"dxtSupported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[Q.BC1,Q.BC3],engineFormat:[g.RGBA_S3TC_DXT1_Format,g.RGBA_S3TC_DXT5_Format],engineType:[C.UnsignedByteType],priorityETC1S:4,priorityUASTC:5,needsPowerOfTwo:!1},{if:"etc2Supported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[Q.ETC1,Q.ETC2],engineFormat:[g.RGB_ETC2_Format,g.RGBA_ETC2_EAC_Format],engineType:[C.UnsignedByteType],priorityETC1S:1,priorityUASTC:3,needsPowerOfTwo:!1},{if:"etc1Supported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[Q.ETC1],engineFormat:[g.RGB_ETC1_Format],engineType:[C.UnsignedByteType],priorityETC1S:2,priorityUASTC:4,needsPowerOfTwo:!1},{if:"pvrtcSupported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[Q.PVRTC1_4_RGB,Q.PVRTC1_4_RGBA],engineFormat:[g.RGB_PVRTC_4BPPV1_Format,g.RGBA_PVRTC_4BPPV1_Format],engineType:[C.UnsignedByteType],priorityETC1S:5,priorityUASTC:6,needsPowerOfTwo:!0},{if:"bptcSupported",basisFormat:[E.UASTC_HDR],transcoderFormat:[Q.BC6H],engineFormat:[g.RGB_BPTC_UNSIGNED_Format],engineType:[C.HalfFloatType],priorityHDR:1,needsPowerOfTwo:!1},{basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[Q.RGBA32,Q.RGBA32],engineFormat:[g.RGBAFormat,g.RGBAFormat],engineType:[C.UnsignedByteType,C.UnsignedByteType],priorityETC1S:100,priorityUASTC:100,needsPowerOfTwo:!1},{basisFormat:[E.UASTC_HDR],transcoderFormat:[Q.RGBA_HALF],engineFormat:[g.RGBAFormat],engineType:[C.HalfFloatType],priorityHDR:100,needsPowerOfTwo:!1}],e={[E.ETC1S]:i.filter(A=>A.basisFormat.includes(E.ETC1S)).sort((A,I)=>A.priorityETC1S-I.priorityETC1S),[E.UASTC]:i.filter(A=>A.basisFormat.includes(E.UASTC)).sort((A,I)=>A.priorityUASTC-I.priorityUASTC),[E.UASTC_HDR]:i.filter(A=>A.basisFormat.includes(E.UASTC_HDR)).sort((A,I)=>A.priorityHDR-I.priorityHDR)};function t(A){return A<=2||0===(A&A-1)&&0!==A}function o(A){if(1===A.length)return A[0];let I=0;for(let C=0;C<A.length;C++){I+=A[C].byteLength}const B=new Uint8Array(I);let g=0;for(let C=0;C<A.length;C++){const I=A[C];B.set(I,g),g+=I.byteLength}return B}};const eA=new Set([g.GWd,g.HIg,g.paN,g.VT0]),tA={[h]:g.GWd,[D]:g.paN,[n]:g.VT0,[r]:g.GWd,[a]:g.paN,[s]:g.VT0,[o]:g.GWd,[t]:g.GWd,[e]:g.paN,[i]:g.paN,[E]:g.VT0,[Q]:g.VT0,[F]:g.HIg,[w]:g.HIg,[q]:g.KDk,[M]:g.Riy,[J]:g.BVL,[l]:g.gZr,[H]:g.OtU,[Y]:g.jSS,[X]:g.qa3,[T]:g.qa3,[K]:g.qa3,[W]:g.Qrf,[x]:g.Qrf,[m]:g.Qrf,[c]:g.Nz6,[S]:g.Nz6,[y]:g.IE4,[G]:g.IE4,[R]:g.BXX,[U]:g.BXX,[L]:g.XG_,[d]:g.Kef,[k]:g.CWW,[f]:g.HO_,[p]:g.Fn,[N]:g.Fn,[V]:g.HXV,[_]:g.HXV,[O]:g.pBf,[u]:g.pBf},oA={[h]:g.RQf,[D]:g.RQf,[n]:g.RQf,[r]:g.ix0,[a]:g.ix0,[s]:g.ix0,[o]:g.OUM,[t]:g.OUM,[e]:g.OUM,[i]:g.OUM,[E]:g.OUM,[Q]:g.OUM,[F]:g.Dmk,[w]:g.yT7,[q]:g.OUM,[M]:g.OUM,[J]:g.OUM,[l]:g.OUM,[H]:g.OUM,[Y]:g.OUM,[X]:g.ix0,[T]:g.OUM,[K]:g.OUM,[W]:g.ix0,[x]:g.OUM,[m]:g.OUM,[c]:g.OUM,[S]:g.OUM,[y]:g.OUM,[G]:g.OUM,[R]:g.OUM,[U]:g.OUM,[L]:g.OUM,[d]:g.OUM,[k]:g.OUM,[f]:g.OUM,[p]:g.OUM,[N]:g.OUM,[V]:g.OUM,[_]:g.OUM,[O]:g.OUM,[u]:g.OUM};function sA(A){const I=A.dataFormatDescriptor[0];return 1===I.colorPrimaries?2===I.transferFunction?g.er$:g.Zr2:10===I.colorPrimaries?2===I.transferFunction?gA:"display-p3-linear":(0===I.colorPrimaries||console.warn('THREE.KTX2Loader: Unsupported color primaries, "'.concat(I.colorPrimaries,'"')),g.jf0)}}}]);
|
services/explorer/dist/static/js/445.348eacf2.chunk.js
DELETED
|
@@ -1 +0,0 @@
|
|
| 1 |
-
"use strict";(self.webpackChunkdeepsearch_ui=self.webpackChunkdeepsearch_ui||[]).push([[445],{445(t,e,s){s.r(e),s.d(e,{RoomEnvironment:()=>a});var i=s(435);class a extends i.Z58{constructor(){super(),this.name="RoomEnvironment",this.position.y=-3.5;const t=new i.iNn;t.deleteAttribute("uv");const e=new i._4j({side:i.hsX}),s=new i._4j,a=new i.HiM(16777215,900,28,2);a.position.set(.418,16.199,.3),this.add(a);const n=new i.eaF(t,e);n.position.set(-.757,13.219,.717),n.scale.set(31.713,28.305,28.591),this.add(n);const r=new i.ZLX(t,s,6),d=new i.B69;d.position.set(-10.906,2.009,1.846),d.rotation.set(0,-.195,0),d.scale.set(2.328,7.905,4.651),d.updateMatrix(),r.setMatrixAt(0,d.matrix),d.position.set(-5.607,-.754,-.758),d.rotation.set(0,.994,0),d.scale.set(1.97,1.534,3.955),d.updateMatrix(),r.setMatrixAt(1,d.matrix),d.position.set(6.167,.857,7.803),d.rotation.set(0,.561,0),d.scale.set(3.927,6.285,3.687),d.updateMatrix(),r.setMatrixAt(2,d.matrix),d.position.set(-2.017,.018,6.124),d.rotation.set(0,.333,0),d.scale.set(2.002,4.566,2.064),d.updateMatrix(),r.setMatrixAt(3,d.matrix),d.position.set(2.291,-.756,-2.621),d.rotation.set(0,-.286,0),d.scale.set(1.546,1.552,1.496),d.updateMatrix(),r.setMatrixAt(4,d.matrix),d.position.set(-2.193,-.369,-5.547),d.rotation.set(0,.516,0),d.scale.set(3.875,3.487,2.986),d.updateMatrix(),r.setMatrixAt(5,d.matrix),this.add(r);const c=new i.eaF(t,o(50));c.position.set(-16.116,14.37,8.208),c.scale.set(.1,2.428,2.739),this.add(c);const p=new i.eaF(t,o(50));p.position.set(-16.109,18.021,-8.207),p.scale.set(.1,2.425,2.751),this.add(p);const h=new i.eaF(t,o(17));h.position.set(14.904,12.198,-1.832),h.scale.set(.15,4.265,6.331),this.add(h);const l=new i.eaF(t,o(43));l.position.set(-.462,8.89,14.52),l.scale.set(4.38,5.441,.088),this.add(l);const x=new i.eaF(t,o(20));x.position.set(3.235,11.486,-12.541),x.scale.set(2.5,2,.1),this.add(x);const u=new i.eaF(t,o(100));u.position.set(0,20,0),u.scale.set(1,.1,1),this.add(u)}dispose(){const t=new Set;this.traverse(e=>{e.isMesh&&(t.add(e.geometry),t.add(e.material))});for(const e of t)e.dispose()}}function o(t){return new i.G_z({color:0,emissive:16777215,emissiveIntensity:t})}}}]);
|
|
|
|
|
|
services/explorer/dist/static/js/445.395e0fec.chunk.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
"use strict";(self.webpackChunkdeepsearch_ui=self.webpackChunkdeepsearch_ui||[]).push([[445],{6445(t,e,s){s.r(e),s.d(e,{RoomEnvironment:()=>a});var i=s(9435);class a extends i.Z58{constructor(){super(),this.name="RoomEnvironment",this.position.y=-3.5;const t=new i.iNn;t.deleteAttribute("uv");const e=new i._4j({side:i.hsX}),s=new i._4j,a=new i.HiM(16777215,900,28,2);a.position.set(.418,16.199,.3),this.add(a);const n=new i.eaF(t,e);n.position.set(-.757,13.219,.717),n.scale.set(31.713,28.305,28.591),this.add(n);const r=new i.ZLX(t,s,6),d=new i.B69;d.position.set(-10.906,2.009,1.846),d.rotation.set(0,-.195,0),d.scale.set(2.328,7.905,4.651),d.updateMatrix(),r.setMatrixAt(0,d.matrix),d.position.set(-5.607,-.754,-.758),d.rotation.set(0,.994,0),d.scale.set(1.97,1.534,3.955),d.updateMatrix(),r.setMatrixAt(1,d.matrix),d.position.set(6.167,.857,7.803),d.rotation.set(0,.561,0),d.scale.set(3.927,6.285,3.687),d.updateMatrix(),r.setMatrixAt(2,d.matrix),d.position.set(-2.017,.018,6.124),d.rotation.set(0,.333,0),d.scale.set(2.002,4.566,2.064),d.updateMatrix(),r.setMatrixAt(3,d.matrix),d.position.set(2.291,-.756,-2.621),d.rotation.set(0,-.286,0),d.scale.set(1.546,1.552,1.496),d.updateMatrix(),r.setMatrixAt(4,d.matrix),d.position.set(-2.193,-.369,-5.547),d.rotation.set(0,.516,0),d.scale.set(3.875,3.487,2.986),d.updateMatrix(),r.setMatrixAt(5,d.matrix),this.add(r);const c=new i.eaF(t,o(50));c.position.set(-16.116,14.37,8.208),c.scale.set(.1,2.428,2.739),this.add(c);const p=new i.eaF(t,o(50));p.position.set(-16.109,18.021,-8.207),p.scale.set(.1,2.425,2.751),this.add(p);const h=new i.eaF(t,o(17));h.position.set(14.904,12.198,-1.832),h.scale.set(.15,4.265,6.331),this.add(h);const l=new i.eaF(t,o(43));l.position.set(-.462,8.89,14.52),l.scale.set(4.38,5.441,.088),this.add(l);const x=new i.eaF(t,o(20));x.position.set(3.235,11.486,-12.541),x.scale.set(2.5,2,.1),this.add(x);const u=new i.eaF(t,o(100));u.position.set(0,20,0),u.scale.set(1,.1,1),this.add(u)}dispose(){const t=new Set;this.traverse(e=>{e.isMesh&&(t.add(e.geometry),t.add(e.material))});for(const e of t)e.dispose()}}function o(t){return new i.G_z({color:0,emissive:16777215,emissiveIntensity:t})}}}]);
|
services/explorer/dist/static/js/493.1fbf9797.chunk.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
"use strict";(self.webpackChunkdeepsearch_ui=self.webpackChunkdeepsearch_ui||[]).push([[493,857],{1219(){},2973(e,t,r){r.d(t,{A:()=>m});var n=r(9379),i=r(5043),a=r(3139),o=r(5597),s=r(3333),l=r(6796),d=r(9885),c=r(9207),u=r(5260),p=r(579);const v=Object.freeze({position:[3,-4,2],target:[0,0,0]}),h=Object.freeze({maxPixels:2073600,reference:"square"});function m(e){let{asset:t,mode:r,reader:m=d.Me,cameraRecipe:f,onTelemetry:w,backLabel:g="USD comparison",showImplementationNote:y=!0,nativeMountOnly:x=!1,presentation:b="white-studio",showMount:S=!0}=e;const[j,U]=(0,i.useState)(null),[A,D]=(0,i.useState)("Loading"),[M,N]=(0,i.useState)(null),L=(0,i.useRef)(0),R=(0,i.useRef)(!1),E=(0,i.useRef)(w),k=(0,i.useRef)(f);k.current=f,E.current=w;const T=(0,i.useCallback)(e=>{var n;const i=(null===e||void 0===e?void 0:e.message)||"This renderer could not load the asset";N(i),D("Failed"),null===(n=E.current)||void 0===n||n.call(E,{assetId:t.id,renderer:r,status:"failed",error:i})},[t.id,r]);(0,i.useEffect)(()=>{var e;const i=new AbortController;let a=null;U(null),N(null),D("Loading"),R.current=!1,L.current=performance.now(),null===(e=E.current)||void 0===e||e.call(E,{assetId:t.id,renderer:r,status:"loading"});return(async()=>{var e;if("reference"===r){var o;const[e,r]=await Promise.all([(0,l._z)(t.articulation.url,{signal:i.signal,maxBytes:2097152,sha256:t.articulation.sha256,expectedBytes:t.articulation.bytes}),(0,l._z)(t.current.url,{signal:i.signal,maxBytes:67108864,sha256:t.current.sha256,expectedBytes:t.current.bytes})]);if(i.signal.aborted)return null;const n=JSON.parse((new TextDecoder).decode(e));if(1!==n.version||"gltf"!==n.frame||!Array.isArray(n.bodies)||!n.bodies.length||!Array.isArray(n.joints))throw new Error("Unsupported reference articulation export");return a=URL.createObjectURL(new Blob([r],{type:"model/gltf-binary"})),{glbUrl:a,articulation:n,store:(0,s.createJointStore)(n),view:t.view||(null===(o=t.clipMeta)||void 0===o?void 0:o.camera)||v,clipMeta:t.clipMeta,sourceVerified:!0,sha256:t.current.sha256,fetchAndVerifyMs:performance.now()-L.current}}const d=t.nativeBaseline,p=await m({url:d.url,signal:i.signal,expectedSha256:d.sha256,onProgress:e=>{i.signal.aborted||D(e)}});if(i.signal.aborted)return null;const h=performance.now(),f=!1===d.motionQualified?(0,c.nativeUsdVisualMapping)(p):(0,c.nativeUsdArticulation)(p);f.articulation.kind=d.presentationKind;const w=(0,n.A)((0,n.A)({},p.metrics),{},{mappingMs:performance.now()-h});return{usdModel:{loadScene:async e=>{const t=await(0,u.createUsdScene)(p,f,(0,n.A)((0,n.A)({},e),{},{baseUrl:d.url,renderBothSides:!0,textureConcurrency:["lightusd-parallel","lightusd-packed"].includes(r)?4:1}));return Object.assign(w,t.userData.usdLoading),t}},articulation:f.articulation,store:(0,s.createJointStore)(f.articulation),view:t.view||(null===(e=t.clipMeta)||void 0===e?void 0:e.camera)||v,clipMeta:t.clipMeta,metrics:w,sourceVerified:!0,sha256:d.sha256}})().then(e=>{!i.signal.aborted&&e&&(U((0,n.A)((0,n.A)({},e),{},{inspectCamera:!0,presentation:b,renderPixelBudget:h,previewMount:!S||x&&"reference"===r?null:t.previewMount||null})),D("Preparing viewport"))}).catch(e=>{i.signal.aborted||T(e)}),()=>{i.abort(),a&&URL.revokeObjectURL(a)}},[t,r,m,T,x,b,S]);const B=(0,a.A)({resetKey:"".concat(t.id,":").concat(r),modelKey:"".concat(t.id,":").concat(r),active:!0,imageTab:!1,model:j,modelPending:!j&&!M,onModelUnavailable:T,workspace:{portal:!0,lazyShell:!0,onEscape:"self",labels:{back:g,dock:"Dock viewer"}}});return(0,i.useEffect)(()=>{if(!j||!B.viewerApi||R.current)return;if(j.store.setPose(j.store.homes,"instant"),"reference"!==r&&k.current)try{B.viewerApi.setInspectionCamera(k.current)}catch(n){return void T(n)}let e=!1;return D("Completing first frame"),B.viewerApi.waitForInspectionDraw().then(n=>{var i,a,o,s,l;e||(n.drawn?(R.current=!0,D("Ready"),null===(i=E.current)||void 0===i||i.call(E,{assetId:t.id,renderer:r,status:"ready",readyMs:performance.now()-L.current,firstCompletedDraw:n.drawn,gpuSynchronized:n.gpuSynchronized,sourceVerified:j.sourceVerified,sha256:j.sha256,fetchAndVerifyMs:j.fetchAndVerifyMs,readerMs:null===(a=j.metrics)||void 0===a?void 0:a.loadMs,heapBytes:null===(o=j.metrics)||void 0===o?void 0:o.wasmHeapBytes,metrics:j.metrics,jointCount:j.store.ids.length,pixelBuffer:B.viewerApi.renderSize,assetStorage:B.viewerApi.assetStorage,camera:B.viewerApi.cameraDiagnostics,cameraMatched:"reference"!==r&&(s=B.viewerApi.cameraDiagnostics,l=k.current,Boolean(s&&l&&s.frame===l.frame&&["position","target","up","verticalFovDegrees","near","far","viewMatrix","projectionMatrix"].every(e=>{const t=Array.isArray(s[e])?s[e]:[s[e]],r=Array.isArray(l[e])?l[e]:[l[e]];return t.length===r.length&&t.every((e,t)=>Number.isFinite(e)&&Number.isFinite(r[t])&&Math.abs(e-r[t])<=1e-8*Math.max(1,Math.abs(e)))}))),scope:"reference"===r?t.referenceScope:"Native USD geometry; same shared PBR viewport. No source MDL execution."})):T(new Error(n.error||"The viewport closed before completing its first frame")))}).catch(t=>{e||T(t)}),()=>{e=!0}},[t,r,j,B.viewerApi,T]),(0,p.jsxs)("section",{className:"ur2-shared","data-testid":"round2-shared-pane","data-engine":r,children:[(0,p.jsx)("p",{role:"status","data-testid":"round2-status",children:A}),M&&(0,p.jsx)("p",{role:"alert",children:M}),(0,p.jsx)("div",{className:"ur2-stage",ref:B.regionRef,tabIndex:-1,children:(0,p.jsx)(o.z_,{ctl:B,fileName:t.label,renderPicture:()=>null})}),j&&(0,p.jsxs)("div",{className:"ur2-actions",children:[(0,p.jsx)("button",{onClick:()=>{var e;return null===(e=B.viewerApi)||void 0===e?void 0:e.resetView()},children:"Reset camera"}),j.store.ids.length>0&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("button",{disabled:!B.viewerApi,onClick:B.expandPose,children:"Move individual joints"}),(0,p.jsx)("button",{onClick:()=>j.store.setAll(0),children:"Home pose"}),(0,p.jsx)("button",{onClick:()=>j.store.playSequence(),children:"Play joint sequence"})]})]}),(null===j||void 0===j?void 0:j.store.ids.length)>0&&(0,p.jsxs)("p",{className:"ur2-note",children:["Move individual joints opens the same pose workspace as the GLB viewer: select a joint and adjust its position.",y&&"reference"!==r&&" This view loads USD geometry and source joint data directly; it does not use Apple\u2019s model element or a GLB geometry substitute."]}),(0,p.jsx)(o.Vo,{ctl:B,fileName:t.label,topOffset:0})]})}},4493(e,t,r){r.r(t),r.d(t,{default:()=>A});var n=r(9379),i=r(5043),a=r(2973),o=r(579);function s(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window;const t="function"===typeof e.HTMLModelElement,r=t?e.HTMLModelElement.prototype:null,n=!!r&&"ready"in r;return{supported:t&&n,api:"HTMLModelElement",constructor:t,ready:n,entityTransform:!!r&&"entityTransform"in r}}function l(e,t){try{const r=new URL(e,window.location.href);return r.origin!==window.location.origin||!t.test(r.pathname)||r.username||r.password||r.hash||r.search?null:r.href}catch(r){return null}}function d(e){if(!e||!Number.isSafeInteger(e.bytes)||e.bytes<=0||!/^[a-f0-9]{64}$/i.test(e.sha256||""))return null;const t=l(e.url,/\.usdz$/i);return t?(0,n.A)((0,n.A)({},e),{},{url:t}):null}const c=e=>(null===e||void 0===e?void 0:e.message)||"Native animation could not play.";function u(e){var t,r,n,a,u;let{asset:p,onTelemetry:v,environmentMap:h}=e;const[m,f]=(0,i.useState)("baseline"),[w,g]=(0,i.useState)("Loading native USDZ"),[y,x]=(0,i.useState)(null),[b,S]=(0,i.useState)(0),[j,U]=(0,i.useState)(null),[A,D]=(0,i.useState)(!1),[M,N]=(0,i.useState)(()=>Math.max(1,Number(window.devicePixelRatio)||1)),L=(0,i.useRef)(null),R=(0,i.useRef)(v),E=(0,i.useRef)(null);R.current=v;const k=s(),{supported:T,constructor:B,ready:P,entityTransform:C}=k,I=d(null===p||void 0===p||null===(t=p.apple)||void 0===t?void 0:t.baseline),z=d(null===p||void 0===p||null===(r=p.apple)||void 0===r?void 0:r.optimized),F=l(null===p||void 0===p||null===(n=p.apple)||void 0===n?void 0:n.auditUrl,/\.json$/i),q=l(h,/\.(hdr|exr)$/i),Z="optimized"===m?z:I,_=(null===Z||void 0===Z?void 0:Z.url)||null,H=!!Z,O=Math.floor(Math.sqrt(2073600)/M);(0,i.useEffect)(()=>{const e=()=>N(Math.max(1,Number(window.devicePixelRatio)||1));return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]),(0,i.useEffect)(()=>{f("baseline")},[null===p||void 0===p?void 0:p.id]),(0,i.useEffect)(()=>{var e,t,r;if(U(null),x(null),S(0),D(!1),E.current=null,!T)return g("Native HTML model is unavailable in this browser"),void(null===(t=R.current)||void 0===t||t.call(R,{assetId:null===p||void 0===p?void 0:p.id,renderer:"html-model",supported:!1,status:"unsupported",capability:k}));if(!H)return g("Native USDZ package unavailable"),void(null===(r=R.current)||void 0===r||r.call(R,{assetId:null===p||void 0===p?void 0:p.id,renderer:"html-model",supported:!0,status:"error",capability:k,error:"The selected native USDZ package has no valid audited descriptor."}));const n=L.current;if(!n)return;let i=!0;const a=performance.now();let o;g("Loading native USDZ"),null===(e=R.current)||void 0===e||e.call(R,{assetId:null===p||void 0===p?void 0:p.id,variant:m,renderer:"html-model",supported:!0,status:"loading",capability:k}),n.setAttribute("stagemode","orbit"),n.setAttribute("src",_),q?n.setAttribute("environmentmap",q):n.removeAttribute("environmentmap");try{if(o=n.ready,!o||"function"!==typeof o.then)throw new Error("The model element does not provide a native readiness promise.")}catch(s){o=Promise.reject(s)}return Promise.resolve(o).then(()=>{var e,t,r,o;if(!i)return;const s=performance.now()-a,l=Number(n.duration);if(C)try{E.current=n.entityTransform}catch(u){}x(s),S(Number.isFinite(l)&&l>0?l:0),g("Native USDZ ready");const d=null===(e=(t=performance).getEntriesByName)||void 0===e||null===(r=e.call(t,_))||void 0===r?void 0:r.at(-1),c=d?{duration:d.duration,transferSize:d.transferSize,encodedBodySize:d.encodedBodySize,decodedBodySize:d.decodedBodySize}:null;null===(o=R.current)||void 0===o||o.call(R,{assetId:null===p||void 0===p?void 0:p.id,variant:m,renderer:"html-model",supported:!0,status:"ready",capability:k,readyMs:s,animationDuration:Number.isFinite(l)?l:0,resource:c,download:c})}).catch(e=>{var t;if(!i)return;const r=(null===e||void 0===e?void 0:e.message)||"The browser rejected this native USDZ package.";U(r),g("Native USDZ could not render"),null===(t=R.current)||void 0===t||t.call(R,{assetId:null===p||void 0===p?void 0:p.id,variant:m,renderer:"html-model",supported:!0,status:"error",capability:k,error:r})}),()=>{i=!1;try{var e;Promise.resolve(null===(e=n.pause)||void 0===e?void 0:e.call(n)).catch(()=>{})}catch(t){}n.removeAttribute("src")}},[null===p||void 0===p?void 0:p.id,m,T,B,P,C,_,H,q]);return(0,o.jsxs)("section",{className:"apple-native-pane","aria-label":"Apple native USDZ preview","data-testid":"apple-native-pane","data-native-supported":String(T),"data-selected":m,children:[(0,o.jsxs)("div",{className:"apple-native-toolbar",children:[(0,o.jsx)("strong",{children:"Apple native USDZ"}),(0,o.jsx)("span",{role:"status",children:w})]}),(0,o.jsxs)("div",{className:"apple-native-profiles",role:"group","aria-label":"USDZ delivery profile",children:[(0,o.jsx)("button",{"aria-pressed":"baseline"===m,onClick:()=>f("baseline"),disabled:!I,children:"Baseline USDZ"}),(0,o.jsx)("button",{"aria-pressed":"optimized"===m,onClick:()=>f("optimized"),disabled:!z,children:"Optimized USDZ"})]}),j&&(0,o.jsx)("p",{role:"alert",children:j}),(0,o.jsx)("div",{className:"apple-native-stage","data-testid":"apple-native-stage",style:{maxWidth:O},children:T&&H?(0,o.jsx)("model",{ref:L,"aria-label":"".concat((null===p||void 0===p?void 0:p.label)||"Asset"," native USDZ"),"data-testid":"apple-native-model"},"".concat(null===p||void 0===p?void 0:p.id,":").concat(m,":").concat(_)):(0,o.jsxs)("div",{className:"apple-native-unavailable",children:[(0,o.jsx)("strong",{children:T?"Package unavailable":"Native preview unavailable"}),(0,o.jsx)("p",{children:T?"This asset has no audited USDZ package for the selected profile.":"This browser does not expose the native HTML model API in this session. Safari 27 documents support, but the installed version alone does not establish that the feature is enabled and available."}),(0,o.jsxs)("p",{children:["Detected API: constructor ",String(B),", ready ",String(P),", entityTransform ",String(C),"."]}),!T&&(0,o.jsxs)("p",{children:["In Safari or Safari Technology Preview, open Settings \u2192 Feature Flags and search for \u201cmodel\u201d. If \u201cHTML <model> element\u201d is listed and disabled, enable it and reload this page. If Feature Flags is hidden, first enable \u201cShow features for web developers\u201d in Settings \u2192 Advanced. An absent flag or an enabled flag with the same result needs further browser diagnosis."," ",(0,o.jsx)("a",{href:"https://developer.apple.com/documentation/safari-developer-tools/feature-flag-settings",target:"_blank",rel:"noreferrer",children:"Apple\u2019s feature flag instructions"}),"."]}),(0,o.jsx)("p",{children:"The current GLB reference remains available in its own labelled view."})]})}),T&&null!==y&&(0,o.jsxs)("div",{className:"apple-native-actions",children:[(0,o.jsx)("button",{disabled:!C||!E.current,onClick:()=>{const e=L.current;if(e&&C&&E.current)try{e.setAttribute("stagemode","none"),e.entityTransform=E.current,U(null)}catch(t){U((null===t||void 0===t?void 0:t.message)||"Native orientation could not reset.")}finally{e.setAttribute("stagemode","orbit")}},children:"Reset native orientation"}),b>0&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("button",{onClick:async()=>{const e=L.current;if(e&&b)try{A?await e.pause():await e.play(),D(!A),U(null)}catch(t){U(c(t))}},children:A?"Pause native animation":"Play native animation"}),(0,o.jsx)("button",{onClick:async()=>{const e=L.current;if(e)try{await e.pause(),e.currentTime=0,D(!1)}catch(t){U(c(t))}},children:"Reset native animation"})]})]}),T&&!C&&(0,o.jsx)("p",{className:"apple-native-note",children:"Native loading is available; this browser does not expose the optional orientation reset API."}),Z&&(0,o.jsxs)("p",{children:["Package: ",(V=Z.bytes,"".concat((V/1024/1024).toFixed(2)," MiB")),".",null!==y&&(0,o.jsxs)(o.Fragment,{children:[" Native model ready: ",(y/1e3).toFixed(2)," s."]})]}),T&&null!==y&&0===b&&(0,o.jsx)("p",{children:"This package has no baked animation timeline. Source physics joints do not create native animation automatically."}),(0,o.jsx)("p",{className:"apple-native-note",children:"The native renderer controls framing, lighting and internal render resolution. Its ready time covers the browser\u2019s model preparation; it does not expose a GPU first-frame or physical-memory measurement. This pane does not offer independent joint posing or match the GLB renderer pixel for pixel."}),!z&&(0,o.jsx)("p",{className:"apple-native-note",children:"An optimized Apple USDZ is not available yet. It needs an actual supported Apple compression environment and separate validation."}),null===p||void 0===p||null===(a=p.apple)||void 0===a||null===(u=a.limitations)||void 0===u?void 0:u.map((e,t)=>(0,o.jsx)("p",{className:"apple-native-note",children:e},t)),(0,o.jsxs)("p",{children:[I&&(0,o.jsx)("a",{href:I.url,download:!0,children:"Download baseline USDZ"}),z&&(0,o.jsxs)(o.Fragment,{children:[I&&" \xb7 ",(0,o.jsx)("a",{href:z.url,download:!0,children:"Download optimized USDZ"})]}),F&&(0,o.jsxs)(o.Fragment,{children:[(I||z)&&" \xb7 ",(0,o.jsx)("a",{href:F,target:"_blank",rel:"noreferrer",children:"Package source audit"})]})]})]});var V}const p="simready-needle-native-v1";function v(e){let{asset:t,stagePixels:r=2073600,dpr:a=2,cameraRecipe:s=null,onTelemetry:l,onReady:d,onError:c}=e;const u=(0,i.useRef)(null),v=(0,i.useRef)({onTelemetry:l,onReady:d,onError:c}),h=(0,i.useRef)(s),m=(0,i.useRef)(null),[f,w]=(0,i.useState)("Loading local Needle runtime"),[g,y]=(0,i.useState)(null),[x,b]=(0,i.useState)(null);return v.current={onTelemetry:l,onReady:d,onError:c},h.current=s,(0,i.useEffect)(()=>{w("Loading local Needle runtime"),y(null);let e=!1,i=!1,o=0;const s=new Map;let l,d;try{var c,f,g,x,S;if("function"!==typeof(null===(c=window.crypto)||void 0===c?void 0:c.randomUUID))throw new Error("Needle requires a secure preview origin");l=window.crypto.randomUUID(),d=new URL(function(e,t){const r=new URL(e,t);if(r.origin!==t||!["http:","https:"].includes(r.protocol))throw new Error("Needle preview requires same-origin resources");return r.href}((null===t||void 0===t||null===(f=t.needle)||void 0===f?void 0:f.frameUrl)||(null===t||void 0===t||null===(g=t.needle)||void 0===g?void 0:g.runtime)||"/usd-round2/needle/native-preview.html",window.location.origin)),d.searchParams.set("nonce",l);const e=null===t||void 0===t||null===(x=t.needle)||void 0===x?void 0:x.metersPerUnit;if(!Number.isFinite(e)||e<=0||e>1e6||!/^[0-9a-f]{64}$/i.test((null===t||void 0===t||null===(S=t.needle)||void 0===S?void 0:S.unitsSourceSha256)||""))throw new Error("Needle needs audited source units and the matching USD identity")}catch(R){var j,U;return y(R.message),b(null),void(null===(j=(U=v.current).onError)||void 0===j||j.call(U,R))}const A=e=>{var t,r;return null===(t=u.current)||void 0===t||null===(r=t.contentWindow)||void 0===r?void 0:r.postMessage((0,n.A)({kind:p,nonce:l},e),window.location.origin)},D=(t,r)=>new Promise((n,i)=>{if(e)return void i(new Error("Needle frame is closed"));const a=++o,l=setTimeout(()=>{s.delete(a),i(new Error("Needle ".concat(t," did not complete")))},3e4);s.set(a,{resolve:n,reject:i,timeout:l}),A({type:"command",id:a,name:t,value:r})}),M=()=>{var n,o,s;e||i||null===(n=u.current)||void 0===n||!n.contentWindow||(i=!0,A({type:"initialize",asset:{id:t.id,kind:t.kind||(null===(o=t.glb)||void 0===o?void 0:o.kind)||(null===(s=t.nativeBaseline)||void 0===s?void 0:s.presentationKind),needle:t.needle},cameraRecipe:h.current,stagePixels:Math.min(2073600,Math.max(1,r)),dpr:Math.min(2,Math.max(.25,a))}))},N={engine:"needle-openusd",element:()=>u.current,getCameraState:()=>D("getCamera"),setCameraState:e=>D("setCamera",e),sceneSnapshot:()=>D("snapshot"),stagePhysics:()=>D("physics"),setUsdTime:e=>D("setTime",e),setPlaying:e=>D("setPlaying",e),setIncludedPurposes:e=>D("setIncludedPurposes",e),setComplexity:e=>D("setComplexity",e),resetView:()=>D("resetView"),inspectNative:()=>{var e,t;return(null===(e=u.current)||void 0===e||null===(t=e.contentWindow)||void 0===t?void 0:t.__simreadyNeedleNative)||null}},L=r=>{var i,a,o,d,c,h;if(e||r.origin!==window.location.origin||r.source!==(null===(i=u.current)||void 0===i?void 0:i.contentWindow)||(null===(a=r.data)||void 0===a?void 0:a.kind)!==p||(null===(o=r.data)||void 0===o?void 0:o.nonce)!==l)return;const m=r.data;var f,g;("listening"===m.type&&M(),"status"===m.type)&&(w(m.status),null===(f=(g=v.current).onTelemetry)||void 0===f||f.call(g,{assetId:t.id,engine:"needle-openusd",status:"loading",phase:m.status}));if("telemetry"===m.type&&(null===(d=(c=v.current).onTelemetry)||void 0===d||d.call(c,(0,n.A)((0,n.A)({},m.telemetry),{},{assetId:t.id,engine:"needle-openusd",status:(null===(h=m.telemetry)||void 0===h?void 0:h.status)||"loading"}))),"ready"===m.type){var x,S,j,U;const e=t.needle.quality||t.needle.qualityAudit||{status:"unqualified"},r=t.needle.runtimeQualification||{status:"unqualified"},i="passed"===r.status,a="passed"===e.status&&i;w("failed"===r.status?"Native USD first draw \xb7 runtime and visual qualification failed":"failed"===e.status?"Native USD first draw \xb7 visual qualification failed":a?"Native USD ready \xb7 Needle / OpenUSD":"Native USD first draw \xb7 fidelity unqualified"),N.metrics=(0,n.A)((0,n.A)({},m.telemetry),{},{assetId:t.id,status:"ready",ready:!0,firstDrawReady:!0,faithfulReady:a,sourceQuality:e,runtimeQualified:i,runtimeQualification:r}),null===(x=(S=v.current).onTelemetry)||void 0===x||x.call(S,N.metrics),null===(j=(U=v.current).onReady)||void 0===j||j.call(U,N)}if("error"===m.type){var D,L,R,E,k,T;const r=new Error(m.error||"Needle native USD failed");A({type:"dispose"}),e=!0,s.forEach(e=>{clearTimeout(e.timeout),e.reject(r)}),s.clear(),b(null),y(r.message),w("Native USD unavailable"),null===(D=(L=v.current).onReady)||void 0===D||D.call(L,null),null===(R=(E=v.current).onTelemetry)||void 0===R||R.call(E,(0,n.A)((0,n.A)({},m.telemetry),{},{assetId:t.id,engine:"needle-openusd",status:"error",ready:!1,error:r.message})),null===(k=(T=v.current).onError)||void 0===k||k.call(T,r)}if("reply"===m.type){const e=s.get(m.id);if(!e)return;clearTimeout(e.timeout),s.delete(m.id),m.error?e.reject(new Error(m.error)):e.resolve(m.value)}};return window.addEventListener("message",L),m.current={start:M,api:N},b(d.href),()=>{var t,r;A({type:"dispose"}),e=!0,window.removeEventListener("message",L),s.forEach(e=>{clearTimeout(e.timeout),e.reject(new Error("Needle frame closed"))}),s.clear(),m.current=null,null===(t=(r=v.current).onReady)||void 0===t||t.call(r,null)}},[t,r,a]),(0,o.jsxs)("div",{className:"needle-native-preview","data-engine":"needle-openusd",children:[x&&(0,o.jsx)("iframe",{ref:u,src:x,title:"Needle native USD: ".concat((null===t||void 0===t?void 0:t.label)||(null===t||void 0===t?void 0:t.id)||"asset"),onLoad:()=>{var e;return null===(e=m.current)||void 0===e?void 0:e.start()},allow:"cross-origin-isolated"}),(0,o.jsx)("div",{className:"needle-native-preview__status",role:"status",children:f}),g&&(0,o.jsx)("div",{className:"needle-native-preview__error",role:"alert",children:g}),(0,o.jsx)("div",{className:"needle-native-preview__note",children:"OpenUSD + Hydra evaluation \xb7 Pose and joint controls are not integrated."})]})}var h=r(9885),m=r(7863);const f=()=>new DOMException("USD load cancelled","AbortError");function w(e){const t=new URL(e,window.location.href);if(t.origin!==window.location.origin)throw new Error("USD review resources must use this origin");return t.href}async function g(){let{file:e,url:t,filename:r,getHeaders:i,signal:a,onProgress:o,expectedSha256:s}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(null!==a&&void 0!==a&&a.aborted)throw f();const l=performance.now(),d=(0,h.mx)(r||(null===e||void 0===e?void 0:e.name)||t);if((null===e||void 0===e?void 0:e.size)>h.Z6)throw new Error("USD layer exceeds the 64 MiB qualification limit");const c="",u=await fetch("".concat(c,"/usd-round2/lightusd/runtime.json"),{signal:a,credentials:"same-origin",cache:"no-store"});if(!u.ok)throw new Error("The isolated LightUSD experiment runtime is not installed");const p=await u.json();if(1!==p.version||"lightusd-next-loaded-layer"!==p.reader||"1.0.0-rc4"!==p.readerVersion||1!==p.loadedLayerApi||"string"!==typeof p.revision||!p.revision)throw new Error("The isolated LightUSD runtime manifest is unsupported");const v=new URL("".concat(c.replace(/\/$/,""),"/"),window.location.origin),g=w(new URL(p.worker,v).href);null===o||void 0===o||o("download");const y=performance.now(),x=e?await e.arrayBuffer():await(0,h.HX)(await fetch(w(t),{signal:a,credentials:"same-origin",headers:(null===i||void 0===i?void 0:i())||{}}),a);if(x.byteLength>h.Z6)throw new Error("USD layer exceeds the 64 MiB qualification limit");if(null!==a&&void 0!==a&&a.aborted)throw f();const b=performance.now()-y,S=performance.now(),j=void 0===s?null:await(0,m.n)(x,s,"USD layer"),U=void 0===s?0:performance.now()-S;if(null!==a&&void 0!==a&&a.aborted)throw f();return new Promise((e,t)=>{let r,i,s=!1;const c=(n,o)=>{var l;s||(s=!0,clearTimeout(i),null===a||void 0===a||a.removeEventListener("abort",u),null===(l=r)||void 0===l||l.terminate(),n?t(n):e(o))},u=()=>c(f());try{if(r=new Worker(g,{type:"module",name:"simready-lightusd-round2"}),null===a||void 0===a||a.addEventListener("abort",u,{once:!0}),null!==a&&void 0!==a&&a.aborted)return void u();r.onerror=e=>c(new Error(e.message||"LightUSD worker failed")),r.onmessageerror=()=>c(new Error("LightUSD result could not be transferred")),r.onmessage=e=>{let{data:t}=e;"progress"===t.type?null===o||void 0===o||o(t.stage):"error"===t.type?c(new Error(t.message)):"result"===t.type&&(t.result.metrics=(0,n.A)((0,n.A)({},t.result.metrics),{},{downloadMs:b,verificationMs:U,loadMs:performance.now()-l,runtimeWasmBytes:p.wasmBytes,runtimeRevision:p.revision,snapshotCacheHit:!1}),j&&(t.result.metrics.sourceSha256=j),c(null,t.result))},i=setTimeout(()=>c(new Error("LightUSD exceeded the 60 second parse limit")),6e4),r.postMessage({bytes:x,filename:d},[x])}catch(v){c(v)}})}var y=r(6857),x=r(6796),b=r(8573);r(1219);const S=[["reference","Current GLB \xb7 HD reference"],["lightusd-baseline","Original LightUSD"],["lightusd","Optimized LightUSD"],["lightusd-snapshot","LightUSD \xb7 compact snapshot"],["lightusd-parallel","LightUSD \xb7 parallel textures"],["lightusd-packed","LightUSD \xb7 lossless packed textures"],["needle","Needle / OpenUSD \xb7 experimental"],["needle-profile","Needle \xb7 material compatibility USD"],["apple","Apple native USDZ"]],j=e=>Number.isFinite(e)?"".concat((e/1e3).toFixed(2)," s"):"Unmeasured",U=e=>Number.isFinite(e)?"".concat((e/1024/1024).toFixed(2)," MiB"):"Unmeasured";function A(){var e,t,r;const[s,l]=(0,i.useState)(null),[d,c]=(0,i.useState)(null),[p,h]=(0,i.useState)(()=>{const e=new URLSearchParams(window.location.search).get("engine");return S.some(t=>{let[r]=t;return r===e})?e:"reference"}),[m,f]=(0,i.useState)(0),[w,A]=(0,i.useState)(null),[D,M]=(0,i.useState)({}),N="".concat(d,":").concat(p,":").concat(m),L=(0,i.useRef)(N);L.current=N;const R=(0,i.useMemo)(()=>null===s||void 0===s?void 0:s.examples.find(e=>e.id===d),[s,d]),E=(0,i.useMemo)(()=>"needle-profile"===p&&R?(0,n.A)((0,n.A)({},R),{},{needle:R[p]}):R,[p,R]),k=(0,i.useMemo)(()=>{var e;return"lightusd-packed"===p&&null!==R&&void 0!==R&&null!==(e=R[p])&&void 0!==e&&e.source?(0,n.A)((0,n.A)({},R),{},{nativeBaseline:(0,n.A)((0,n.A)({},R.nativeBaseline),R[p].source)}):R},[p,R]);(0,i.useEffect)(()=>{const e=new AbortController;return(0,x._z)("".concat("","/usd-round2/manifest.json"),{signal:e.signal,maxBytes:2097152}).then(e=>(0,b.G)(JSON.parse((new TextDecoder).decode(e)))).then(t=>{var r;if(e.signal.aborted)return;const n=new URLSearchParams(window.location.search).get("example");l(t),c((null===(r=t.examples.find(e=>e.id===n))||void 0===r?void 0:r.id)||t.examples[0].id)}).catch(t=>{e.signal.aborted||A(t.message)}),()=>e.abort()},[]);const T=(0,i.useCallback)((e,t,r)=>{null!==e&&void 0!==e&&e.assetId&&L.current===t&&M(t=>(0,n.A)((0,n.A)({},t),{},{["".concat(e.assetId,":").concat(r)]:(0,n.A)((0,n.A)((0,n.A)({},"loading"===e.status?{}:t["".concat(e.assetId,":").concat(r)]),e),{},{renderer:r},["failed","error","unsupported"].includes(e.status)?{readyMs:void 0,readerMs:void 0,heapBytes:void 0}:{})}))},[]),B=null===R||void 0===R?void 0:R["lightusd-parallel"===p?"lightusd-snapshot":p],P=["lightusd","lightusd-snapshot","lightusd-parallel","lightusd-packed","needle","needle-profile"].includes(p)&&"experimental"!==(null===B||void 0===B?void 0:B.status)&&"ready"!==(null===B||void 0===B?void 0:B.status),C=e=>T(e,N,p),I=R&&(null===(e=D["".concat(R.id,":reference")])||void 0===e?void 0:e.camera);return(0,i.useEffect)(()=>{const e={version:1,assetId:d,mode:p,runKey:N,results:D};return window.__simreadyUsdRound2=e,()=>{window.__simreadyUsdRound2===e&&delete window.__simreadyUsdRound2}},[d,p,N,D]),(0,o.jsxs)("main",{className:"ur2-page",children:[(0,o.jsx)("p",{className:"ur2-eyebrow",children:"SimReady Central \xb7 native USD experiments"}),(0,o.jsx)("h1",{children:"Native USD against our current GLB"}),(0,o.jsx)("p",{children:"Start with the unchanged HD reference, then inspect each native path in this viewport."}),w&&(0,o.jsx)("p",{role:"alert",children:w}),!R&&!w&&(0,o.jsx)("p",{role:"status",children:"Loading experiment manifest\u2026"}),R&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("nav",{className:"ur2-nav","aria-label":"Experiment asset",children:s.examples.map(e=>(0,o.jsx)("button",{"aria-pressed":e.id===d,onClick:()=>(e=>{c(e),h("reference"),f(0);const t=new URL(window.location.href);t.searchParams.set("example",e),window.history.replaceState(null,"",t)})(e.id),children:e.label},e.id))}),(0,o.jsx)("nav",{className:"ur2-nav","aria-label":"Viewer engine",children:S.map(e=>{let[t,r]=e;return(0,o.jsx)("button",{"data-testid":"round2-".concat(t),"aria-pressed":t===p,onClick:()=>{h(t),f(0)},children:r},t)})}),(0,o.jsxs)("div",{className:"ur2-note",children:[R.referenceScope," The review loads one renderer at a time. Switching engines rebuilds that engine\u2019s scene; this is not an instant material-only A/B."]}),p.startsWith("needle")&&(0,o.jsxs)("div",{className:"ur2-note",role:"note",children:[(0,o.jsxs)("strong",{children:["Native SDK visual qualification: ",(null===B||void 0===B||null===(t=B.quality)||void 0===t?void 0:t.status)||"pending","."]}),((null===B||void 0===B||null===(r=B.quality)||void 0===r?void 0:r.issues)||[]).map(e=>(0,o.jsx)("p",{children:e},e)),(0,o.jsx)("p",{children:"Its timing measures the first drawable SDK scene. Missing source materials or meshes invalidate a comparison of faithful opening speed."})]}),(0,o.jsx)("div",{className:"ur2-pane","data-testid":"round2-pane","data-engine":p,children:P?(0,o.jsxs)("div",{className:"ur2-unavailable",role:"status",children:[(0,o.jsx)("strong",{children:"blocked"===(null===B||void 0===B?void 0:B.status)?"Not run":"Preparation in progress"}),(0,o.jsx)("p",{children:(null===B||void 0===B?void 0:B.reason)||"This runtime has not passed its setup and source checks."}),(null===B||void 0===B?void 0:B.proofUrl)&&(0,o.jsx)("a",{href:B.proofUrl,children:"Preparation evidence"})]}):"apple"===p?(0,o.jsx)(u,{asset:R,onTelemetry:C}):p.startsWith("needle")?(0,o.jsx)(v,{asset:E,cameraRecipe:I,onTelemetry:C}):(0,o.jsx)(a.A,{asset:k,mode:p,reader:["lightusd-snapshot","lightusd-parallel","lightusd-packed"].includes(p)?y.readLightUsdSnapshotRound2:"lightusd"===p?g:void 0,cameraRecipe:I,onTelemetry:C})},"".concat(R.id,":").concat(p,":").concat(m)),(0,o.jsxs)("div",{className:"ur2-actions",children:[(0,o.jsx)("button",{onClick:()=>f(e=>e+1),children:"Reload selected engine"}),(0,o.jsxs)("a",{href:R.current.url,download:!0,children:["Download unchanged GLB (",U(R.current.bytes),")"]}),(0,o.jsx)("a",{href:R.nativeBaseline.url,download:!0,children:"Download paired native USD"})]}),(0,o.jsxs)("table",{children:[(0,o.jsx)("thead",{children:(0,o.jsxs)("tr",{children:[(0,o.jsx)("th",{children:"Engine"}),(0,o.jsx)("th",{children:"This visit"}),(0,o.jsx)("th",{children:"Reported readiness"}),(0,o.jsx)("th",{children:"Reader pipeline"}),(0,o.jsx)("th",{children:"Reported reader heap"})]})}),(0,o.jsx)("tbody",{children:S.map(e=>{let[t,r]=e;const n=D["".concat(R.id,":").concat(t)];return(0,o.jsxs)("tr",{children:[(0,o.jsx)("th",{children:r}),(0,o.jsx)("td",{children:(null===n||void 0===n?void 0:n.status)||"Not measured"}),(0,o.jsx)("td",{children:j(null===n||void 0===n?void 0:n.readyMs)}),(0,o.jsx)("td",{children:j(null===n||void 0===n?void 0:n.readerMs)}),(0,o.jsx)("td",{children:U(null===n||void 0===n?void 0:n.heapBytes)})]},t)})})]}),(0,o.jsx)("p",{className:"ur2-note",children:"GLB and LightUSD readiness includes their first completed GPU draw. Apple exposes its model-ready promise; it does not expose that GPU-completion measurement. Reader pipeline includes its download and verification work. Reader heap is not GPU memory. These visit timings include the local preview transport and are not production latency benchmarks. GLB and LightUSD share our white PBR viewport. Needle and Apple have their own renderers; camera, pose, lighting and interaction parity require separate qualification."}),(0,o.jsx)("p",{className:"ur2-note",children:"Apple requires a browser with native HTMLModelElement support. No unsupported engine is substituted with a GLB or still image. These native paths do not establish original NVIDIA MDL execution or RTX path tracing."})]})]})}},6857(e,t,r){r.r(t),r.d(t,{readLightUsdSnapshotRound2:()=>d});var n=r(9379),i=r(9885),a=r(7863);const o=()=>new DOMException("USD load cancelled","AbortError");let s;function l(e){const t=new URL(e,window.location.href);if(t.origin!==window.location.origin)throw new Error("USD review resources must use this origin");return t.href}async function d(){let{file:e,url:t,filename:r,getHeaders:d,signal:c,onProgress:u,expectedSha256:p,snapshotCache:v}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(null!==c&&void 0!==c&&c.aborted)throw o();const h=performance.now(),m=(0,i.mx)(r||(null===e||void 0===e?void 0:e.name)||t);if((null===e||void 0===e?void 0:e.size)>i.Z6)throw new Error("USD layer exceeds the 64 MiB qualification limit");const f="",w="public-central-robot-demo-v1"===(null===v||void 0===v?void 0:v.context)&&!e&&!d&&/^[a-f0-9]{64}$/.test(p||""),g=await function(e,t,r){const n=()=>fetch("".concat(e,"/usd-round2/lightusd/snapshot-v2/runtime.json"),{signal:r?void 0:t,credentials:"same-origin",cache:r?"default":"no-store"}).then(e=>{if(!e.ok)throw new Error("The isolated LightUSD experiment runtime is not installed");return e.json()});return r?(s||(s=n().catch(e=>{throw s=null,e})),s):n()}(f,c,w);if(1!==g.version||"lightusd-next-loaded-layer"!==g.reader||"1.0.0-rc4"!==g.readerVersion||1!==g.loadedLayerApi||1!==g.viewerSnapshotApi||"simready-viewer-snapshot-v2"!==g.variant||"string"!==typeof g.revision||!g.revision)throw new Error("The isolated LightUSD runtime manifest is unsupported");const y=new URL("".concat(f.replace(/\/$/,""),"/"),window.location.origin),x=l(new URL(g.worker,y).href),b=w?JSON.stringify([v.context,l(t),p,g.revision,x]):null,S=(0,i.yM)(b);if(null!==c&&void 0!==c&&c.aborted)throw o();var j;if(S)return S.metrics=(0,n.A)((0,n.A)({},S.metrics),{},{snapshotCacheSourceWorkerMs:null===(j=S.metrics)||void 0===j?void 0:j.workerMs,runtimeMs:0,physicsMs:0,opinionMs:0,geometryMs:0,workerMs:0,wasmHeapBytes:0,downloadMs:0,verificationMs:0,snapshotCacheHit:!0,loadMs:performance.now()-h}),S;null===u||void 0===u||u("download");const U=performance.now(),A=e?await e.arrayBuffer():await(0,i.HX)(await fetch(l(t),{signal:c,credentials:"same-origin",headers:(null===d||void 0===d?void 0:d())||{}}),c);if(A.byteLength>i.Z6)throw new Error("USD layer exceeds the 64 MiB qualification limit");if(null!==c&&void 0!==c&&c.aborted)throw o();const D=performance.now()-U,M=performance.now(),N=void 0===p?null:await(0,a.n)(A,p,"USD layer"),L=void 0===p?0:performance.now()-M;if(null!==c&&void 0!==c&&c.aborted)throw o();return new Promise((e,t)=>{let r,a,s=!1;const l=(n,i)=>{var o;s||(s=!0,clearTimeout(a),null===c||void 0===c||c.removeEventListener("abort",d),null===(o=r)||void 0===o||o.terminate(),n?t(n):e(i))},d=()=>l(o());try{if(r=new Worker(x,{type:"module",name:"simready-lightusd-snapshot-round2"}),null===c||void 0===c||c.addEventListener("abort",d,{once:!0}),null!==c&&void 0!==c&&c.aborted)return void d();r.onerror=e=>l(new Error(e.message||"LightUSD worker failed")),r.onmessageerror=()=>l(new Error("LightUSD result could not be transferred")),r.onmessage=e=>{let{data:t}=e;if("progress"===t.type)null===u||void 0===u||u(t.stage);else if("error"===t.type)l(new Error(t.message));else if("result"===t.type){if(t.result.metrics=(0,n.A)((0,n.A)({},t.result.metrics),{},{downloadMs:D,verificationMs:L,loadMs:performance.now()-h,runtimeWasmBytes:g.wasmBytes,runtimeRevision:g.revision,snapshotCacheHit:!1}),N&&(t.result.metrics.sourceSha256=N),b)try{(0,i.eH)(b,t.result)}catch(r){}l(null,t.result)}},a=setTimeout(()=>l(new Error("LightUSD exceeded the 60 second parse limit")),6e4),r.postMessage({bytes:A,filename:m},[A])}catch(p){l(p)}})}}}]);
|
services/explorer/dist/static/js/53.865cff8c.chunk.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
"use strict";(self.webpackChunkdeepsearch_ui=self.webpackChunkdeepsearch_ui||[]).push([[53],{1053(e,r,t){t.r(r),t.d(r,{RenderPass:()=>a});var s=t(9435),l=t(3521);class a extends l.o{constructor(e,r){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,l=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;super(),this.scene=e,this.camera=r,this.overrideMaterial=t,this.clearColor=l,this.clearAlpha=a,this.clear=!0,this.clearDepth=!1,this.needsSwap=!1,this.isRenderPass=!0,this._oldClearColor=new s.Q1f}render(e,r,t){const s=e.autoClear;let l,a;e.autoClear=!1,null!==this.overrideMaterial&&(a=this.scene.overrideMaterial,this.scene.overrideMaterial=this.overrideMaterial),null!==this.clearColor&&(e.getClearColor(this._oldClearColor),e.setClearColor(this.clearColor,e.getClearAlpha())),null!==this.clearAlpha&&(l=e.getClearAlpha(),e.setClearAlpha(this.clearAlpha)),1==this.clearDepth&&e.clearDepth(),e.setRenderTarget(this.renderToScreen?null:t),!0===this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),e.render(this.scene,this.camera),null!==this.clearColor&&e.setClearColor(this._oldClearColor),null!==this.clearAlpha&&e.setClearAlpha(l),null!==this.overrideMaterial&&(this.scene.overrideMaterial=a),e.autoClear=s}}},3521(e,r,t){t.d(r,{F:()=>o,o:()=>l});var s=t(9435);class l{constructor(){this.isPass=!0,this.enabled=!0,this.needsSwap=!0,this.clear=!1,this.renderToScreen=!1}setSize(){}render(){console.error("THREE.Pass: .render() must be implemented in derived pass.")}dispose(){}}const a=new s.qUd(-1,1,1,-1,0,1);class i extends s.LoY{constructor(){super(),this.setAttribute("position",new s.qtW([-1,3,0,-1,-1,0,3,-1,0],3)),this.setAttribute("uv",new s.qtW([0,2,0,0,2,0],2))}}const h=new i;class o{constructor(e){this._mesh=new s.eaF(h,e)}dispose(){this._mesh.geometry.dispose()}render(e){e.render(this._mesh,a)}get material(){return this._mesh.material}set material(e){this._mesh.material=e}}}}]);
|
services/explorer/dist/static/js/53.d3447b4f.chunk.js
DELETED
|
@@ -1 +0,0 @@
|
|
| 1 |
-
"use strict";(self.webpackChunkdeepsearch_ui=self.webpackChunkdeepsearch_ui||[]).push([[53],{53(e,r,t){t.r(r),t.d(r,{RenderPass:()=>a});var s=t(435),l=t(521);class a extends l.o{constructor(e,r){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,l=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;super(),this.scene=e,this.camera=r,this.overrideMaterial=t,this.clearColor=l,this.clearAlpha=a,this.clear=!0,this.clearDepth=!1,this.needsSwap=!1,this.isRenderPass=!0,this._oldClearColor=new s.Q1f}render(e,r,t){const s=e.autoClear;let l,a;e.autoClear=!1,null!==this.overrideMaterial&&(a=this.scene.overrideMaterial,this.scene.overrideMaterial=this.overrideMaterial),null!==this.clearColor&&(e.getClearColor(this._oldClearColor),e.setClearColor(this.clearColor,e.getClearAlpha())),null!==this.clearAlpha&&(l=e.getClearAlpha(),e.setClearAlpha(this.clearAlpha)),1==this.clearDepth&&e.clearDepth(),e.setRenderTarget(this.renderToScreen?null:t),!0===this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),e.render(this.scene,this.camera),null!==this.clearColor&&e.setClearColor(this._oldClearColor),null!==this.clearAlpha&&e.setClearAlpha(l),null!==this.overrideMaterial&&(this.scene.overrideMaterial=a),e.autoClear=s}}},521(e,r,t){t.d(r,{F:()=>o,o:()=>l});var s=t(435);class l{constructor(){this.isPass=!0,this.enabled=!0,this.needsSwap=!0,this.clear=!1,this.renderToScreen=!1}setSize(){}render(){console.error("THREE.Pass: .render() must be implemented in derived pass.")}dispose(){}}const a=new s.qUd(-1,1,1,-1,0,1);class i extends s.LoY{constructor(){super(),this.setAttribute("position",new s.qtW([-1,3,0,-1,-1,0,3,-1,0],3)),this.setAttribute("uv",new s.qtW([0,2,0,0,2,0],2))}}const h=new i;class o{constructor(e){this._mesh=new s.eaF(h,e)}dispose(){this._mesh.geometry.dispose()}render(e){e.render(this._mesh,a)}get material(){return this._mesh.material}set material(e){this._mesh.material=e}}}}]);
|
|
|
|
|
|
services/explorer/dist/static/js/583.8e18d367.chunk.js
DELETED
|
@@ -1 +0,0 @@
|
|
| 1 |
-
"use strict";(self.webpackChunkdeepsearch_ui=self.webpackChunkdeepsearch_ui||[]).push([[583],{583(t,e,i){i.r(e),i.d(e,{OrbitControls:()=>v});var s=i(435);const o={type:"change"},n={type:"start"},h={type:"end"},a=new s.RlV,r=new s.Zcv,l=Math.cos(70*s.cj9.DEG2RAD),c=new s.Pq0,p=2*Math.PI,d=-1,_=0,u=1,m=2,y=3,b=4,g=5,P=6,E=1e-6;class v extends s.H2z{constructor(t){super(t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:null),this.state=d,this.target=new s.Pq0,this.cursor=new s.Pq0,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minTargetRadius=0,this.maxTargetRadius=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.keyRotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.mouseButtons={LEFT:s.kBv.ROTATE,MIDDLE:s.kBv.DOLLY,RIGHT:s.kBv.PAN},this.touches={ONE:s.wtR.ROTATE,TWO:s.wtR.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._cursorStyle="auto",this._domElementKeyEvents=null,this._lastPosition=new s.Pq0,this._lastQuaternion=new s.PTz,this._lastTargetPosition=new s.Pq0,this._quat=(new s.PTz).setFromUnitVectors(t.up,new s.Pq0(0,1,0)),this._quatInverse=this._quat.clone().invert(),this._spherical=new s.YHV,this._sphericalDelta=new s.YHV,this._scale=1,this._panOffset=new s.Pq0,this._rotateStart=new s.I9Y,this._rotateEnd=new s.I9Y,this._rotateDelta=new s.I9Y,this._panStart=new s.I9Y,this._panEnd=new s.I9Y,this._panDelta=new s.I9Y,this._dollyStart=new s.I9Y,this._dollyEnd=new s.I9Y,this._dollyDelta=new s.I9Y,this._dollyDirection=new s.Pq0,this._mouse=new s.I9Y,this._performCursorZoom=!1,this._pointers=[],this._pointerPositions={},this._controlActive=!1,this._onPointerMove=f.bind(this),this._onPointerDown=D.bind(this),this._onPointerUp=S.bind(this),this._onContextMenu=x.bind(this),this._onMouseWheel=T.bind(this),this._onKeyDown=j.bind(this),this._onTouchStart=R.bind(this),this._onTouchMove=k.bind(this),this._onMouseDown=w.bind(this),this._onMouseMove=M.bind(this),this._interceptControlDown=L.bind(this),this._interceptControlUp=Y.bind(this),null!==this.domElement&&this.connect(this.domElement),this.update()}set cursorStyle(t){this._cursorStyle=t,this.domElement.style.cursor="grab"===t?"grab":"auto"}get cursorStyle(){return this._cursorStyle}connect(t){super.connect(t),this.domElement.addEventListener("pointerdown",this._onPointerDown),this.domElement.addEventListener("pointercancel",this._onPointerUp),this.domElement.addEventListener("contextmenu",this._onContextMenu),this.domElement.addEventListener("wheel",this._onMouseWheel,{passive:!1});this.domElement.getRootNode().addEventListener("keydown",this._interceptControlDown,{passive:!0,capture:!0}),this.domElement.style.touchAction="none"}disconnect(){this.domElement.removeEventListener("pointerdown",this._onPointerDown),this.domElement.ownerDocument.removeEventListener("pointermove",this._onPointerMove),this.domElement.ownerDocument.removeEventListener("pointerup",this._onPointerUp),this.domElement.removeEventListener("pointercancel",this._onPointerUp),this.domElement.removeEventListener("wheel",this._onMouseWheel),this.domElement.removeEventListener("contextmenu",this._onContextMenu),this.stopListenToKeyEvents();this.domElement.getRootNode().removeEventListener("keydown",this._interceptControlDown,{capture:!0}),this.domElement.style.touchAction="auto"}dispose(){this.disconnect()}getPolarAngle(){return this._spherical.phi}getAzimuthalAngle(){return this._spherical.theta}getDistance(){return this.object.position.distanceTo(this.target)}listenToKeyEvents(t){t.addEventListener("keydown",this._onKeyDown),this._domElementKeyEvents=t}stopListenToKeyEvents(){null!==this._domElementKeyEvents&&(this._domElementKeyEvents.removeEventListener("keydown",this._onKeyDown),this._domElementKeyEvents=null)}saveState(){this.target0.copy(this.target),this.position0.copy(this.object.position),this.zoom0=this.object.zoom}reset(){this.target.copy(this.target0),this.object.position.copy(this.position0),this.object.zoom=this.zoom0,this.object.updateProjectionMatrix(),this.dispatchEvent(o),this.update(),this.state=d}pan(t,e){this._pan(t,e),this.update()}dollyIn(t){this._dollyIn(t),this.update()}dollyOut(t){this._dollyOut(t),this.update()}rotateLeft(t){this._rotateLeft(t),this.update()}rotateUp(t){this._rotateUp(t),this.update()}update(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;const e=this.object.position;c.copy(e).sub(this.target),c.applyQuaternion(this._quat),this._spherical.setFromVector3(c),this.autoRotate&&this.state===d&&this._rotateLeft(this._getAutoRotationAngle(t)),this.enableDamping?(this._spherical.theta+=this._sphericalDelta.theta*this.dampingFactor,this._spherical.phi+=this._sphericalDelta.phi*this.dampingFactor):(this._spherical.theta+=this._sphericalDelta.theta,this._spherical.phi+=this._sphericalDelta.phi);let i=this.minAzimuthAngle,n=this.maxAzimuthAngle;isFinite(i)&&isFinite(n)&&(i<-Math.PI?i+=p:i>Math.PI&&(i-=p),n<-Math.PI?n+=p:n>Math.PI&&(n-=p),this._spherical.theta=i<=n?Math.max(i,Math.min(n,this._spherical.theta)):this._spherical.theta>(i+n)/2?Math.max(i,this._spherical.theta):Math.min(n,this._spherical.theta)),this._spherical.phi=Math.max(this.minPolarAngle,Math.min(this.maxPolarAngle,this._spherical.phi)),this._spherical.makeSafe(),!0===this.enableDamping?this.target.addScaledVector(this._panOffset,this.dampingFactor):this.target.add(this._panOffset),this.target.sub(this.cursor),this.target.clampLength(this.minTargetRadius,this.maxTargetRadius),this.target.add(this.cursor);let h=!1;if(this.zoomToCursor&&this._performCursorZoom||this.object.isOrthographicCamera)this._spherical.radius=this._clampDistance(this._spherical.radius);else{const t=this._spherical.radius;this._spherical.radius=this._clampDistance(this._spherical.radius*this._scale),h=t!=this._spherical.radius}if(c.setFromSpherical(this._spherical),c.applyQuaternion(this._quatInverse),e.copy(this.target).add(c),this.object.lookAt(this.target),!0===this.enableDamping?(this._sphericalDelta.theta*=1-this.dampingFactor,this._sphericalDelta.phi*=1-this.dampingFactor,this._panOffset.multiplyScalar(1-this.dampingFactor)):(this._sphericalDelta.set(0,0,0),this._panOffset.set(0,0,0)),this.zoomToCursor&&this._performCursorZoom){let t=null;if(this.object.isPerspectiveCamera){const e=c.length();t=this._clampDistance(e*this._scale);const i=e-t;this.object.position.addScaledVector(this._dollyDirection,i),this.object.updateMatrixWorld(),h=!!i}else if(this.object.isOrthographicCamera){const e=new s.Pq0(this._mouse.x,this._mouse.y,0);e.unproject(this.object);const i=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),this.object.updateProjectionMatrix(),h=i!==this.object.zoom;const o=new s.Pq0(this._mouse.x,this._mouse.y,0);o.unproject(this.object),this.object.position.sub(o).add(e),this.object.updateMatrixWorld(),t=c.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),this.zoomToCursor=!1;null!==t&&(this.screenSpacePanning?this.target.set(0,0,-1).transformDirection(this.object.matrix).multiplyScalar(t).add(this.object.position):(a.origin.copy(this.object.position),a.direction.set(0,0,-1).transformDirection(this.object.matrix),Math.abs(this.object.up.dot(a.direction))<l?this.object.lookAt(this.target):(r.setFromNormalAndCoplanarPoint(this.object.up,this.target),a.intersectPlane(r,this.target))))}else if(this.object.isOrthographicCamera){const t=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),t!==this.object.zoom&&(this.object.updateProjectionMatrix(),h=!0)}return this._scale=1,this._performCursorZoom=!1,!!(h||this._lastPosition.distanceToSquared(this.object.position)>E||8*(1-this._lastQuaternion.dot(this.object.quaternion))>E||this._lastTargetPosition.distanceToSquared(this.target)>E)&&(this.dispatchEvent(o),this._lastPosition.copy(this.object.position),this._lastQuaternion.copy(this.object.quaternion),this._lastTargetPosition.copy(this.target),!0)}_getAutoRotationAngle(t){return null!==t?p/60*this.autoRotateSpeed*t:p/60/60*this.autoRotateSpeed}_getZoomScale(t){const e=Math.abs(.01*t);return Math.pow(.95,this.zoomSpeed*e)}_rotateLeft(t){this._sphericalDelta.theta-=t}_rotateUp(t){this._sphericalDelta.phi-=t}_panLeft(t,e){c.setFromMatrixColumn(e,0),c.multiplyScalar(-t),this._panOffset.add(c)}_panUp(t,e){!0===this.screenSpacePanning?c.setFromMatrixColumn(e,1):(c.setFromMatrixColumn(e,0),c.crossVectors(this.object.up,c)),c.multiplyScalar(t),this._panOffset.add(c)}_pan(t,e){const i=this.domElement;if(this.object.isPerspectiveCamera){const s=this.object.position;c.copy(s).sub(this.target);let o=c.length();o*=Math.tan(this.object.fov/2*Math.PI/180),this._panLeft(2*t*o/i.clientHeight,this.object.matrix),this._panUp(2*e*o/i.clientHeight,this.object.matrix)}else this.object.isOrthographicCamera?(this._panLeft(t*(this.object.right-this.object.left)/this.object.zoom/i.clientWidth,this.object.matrix),this._panUp(e*(this.object.top-this.object.bottom)/this.object.zoom/i.clientHeight,this.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),this.enablePan=!1)}_dollyOut(t){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale/=t:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_dollyIn(t){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale*=t:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_updateZoomParameters(t,e){if(!this.zoomToCursor)return;this._performCursorZoom=!0;const i=this.domElement.getBoundingClientRect(),s=t-i.left,o=e-i.top,n=i.width,h=i.height;this._mouse.x=s/n*2-1,this._mouse.y=-o/h*2+1,this._dollyDirection.set(this._mouse.x,this._mouse.y,1).unproject(this.object).sub(this.object.position).normalize()}_clampDistance(t){return Math.max(this.minDistance,Math.min(this.maxDistance,t))}_handleMouseDownRotate(t){this._rotateStart.set(t.clientX,t.clientY)}_handleMouseDownDolly(t){this._updateZoomParameters(t.clientX,t.clientX),this._dollyStart.set(t.clientX,t.clientY)}_handleMouseDownPan(t){this._panStart.set(t.clientX,t.clientY)}_handleMouseMoveRotate(t){this._rotateEnd.set(t.clientX,t.clientY),this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const e=this.domElement;this._rotateLeft(p*this._rotateDelta.x/e.clientHeight),this._rotateUp(p*this._rotateDelta.y/e.clientHeight),this._rotateStart.copy(this._rotateEnd),this.update()}_handleMouseMoveDolly(t){this._dollyEnd.set(t.clientX,t.clientY),this._dollyDelta.subVectors(this._dollyEnd,this._dollyStart),this._dollyDelta.y>0?this._dollyOut(this._getZoomScale(this._dollyDelta.y)):this._dollyDelta.y<0&&this._dollyIn(this._getZoomScale(this._dollyDelta.y)),this._dollyStart.copy(this._dollyEnd),this.update()}_handleMouseMovePan(t){this._panEnd.set(t.clientX,t.clientY),this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd),this.update()}_handleMouseWheel(t){this._updateZoomParameters(t.clientX,t.clientY),t.deltaY<0?this._dollyIn(this._getZoomScale(t.deltaY)):t.deltaY>0&&this._dollyOut(this._getZoomScale(t.deltaY)),this.update()}_handleKeyDown(t){let e=!1;switch(t.code){case this.keys.UP:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateUp(p*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,this.keyPanSpeed),e=!0;break;case this.keys.BOTTOM:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateUp(-p*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,-this.keyPanSpeed),e=!0;break;case this.keys.LEFT:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateLeft(p*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(this.keyPanSpeed,0),e=!0;break;case this.keys.RIGHT:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateLeft(-p*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(-this.keyPanSpeed,0),e=!0}e&&(t.preventDefault(),this.update())}_handleTouchStartRotate(t){if(1===this._pointers.length)this._rotateStart.set(t.pageX,t.pageY);else{const e=this._getSecondPointerPosition(t),i=.5*(t.pageX+e.x),s=.5*(t.pageY+e.y);this._rotateStart.set(i,s)}}_handleTouchStartPan(t){if(1===this._pointers.length)this._panStart.set(t.pageX,t.pageY);else{const e=this._getSecondPointerPosition(t),i=.5*(t.pageX+e.x),s=.5*(t.pageY+e.y);this._panStart.set(i,s)}}_handleTouchStartDolly(t){const e=this._getSecondPointerPosition(t),i=t.pageX-e.x,s=t.pageY-e.y,o=Math.sqrt(i*i+s*s);this._dollyStart.set(0,o)}_handleTouchStartDollyPan(t){this.enableZoom&&this._handleTouchStartDolly(t),this.enablePan&&this._handleTouchStartPan(t)}_handleTouchStartDollyRotate(t){this.enableZoom&&this._handleTouchStartDolly(t),this.enableRotate&&this._handleTouchStartRotate(t)}_handleTouchMoveRotate(t){if(1==this._pointers.length)this._rotateEnd.set(t.pageX,t.pageY);else{const e=this._getSecondPointerPosition(t),i=.5*(t.pageX+e.x),s=.5*(t.pageY+e.y);this._rotateEnd.set(i,s)}this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const e=this.domElement;this._rotateLeft(p*this._rotateDelta.x/e.clientHeight),this._rotateUp(p*this._rotateDelta.y/e.clientHeight),this._rotateStart.copy(this._rotateEnd)}_handleTouchMovePan(t){if(1===this._pointers.length)this._panEnd.set(t.pageX,t.pageY);else{const e=this._getSecondPointerPosition(t),i=.5*(t.pageX+e.x),s=.5*(t.pageY+e.y);this._panEnd.set(i,s)}this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd)}_handleTouchMoveDolly(t){const e=this._getSecondPointerPosition(t),i=t.pageX-e.x,s=t.pageY-e.y,o=Math.sqrt(i*i+s*s);this._dollyEnd.set(0,o),this._dollyDelta.set(0,Math.pow(this._dollyEnd.y/this._dollyStart.y,this.zoomSpeed)),this._dollyOut(this._dollyDelta.y),this._dollyStart.copy(this._dollyEnd);const n=.5*(t.pageX+e.x),h=.5*(t.pageY+e.y);this._updateZoomParameters(n,h)}_handleTouchMoveDollyPan(t){this.enableZoom&&this._handleTouchMoveDolly(t),this.enablePan&&this._handleTouchMovePan(t)}_handleTouchMoveDollyRotate(t){this.enableZoom&&this._handleTouchMoveDolly(t),this.enableRotate&&this._handleTouchMoveRotate(t)}_addPointer(t){this._pointers.push(t.pointerId)}_removePointer(t){delete this._pointerPositions[t.pointerId];for(let e=0;e<this._pointers.length;e++)if(this._pointers[e]==t.pointerId)return void this._pointers.splice(e,1)}_isTrackingPointer(t){for(let e=0;e<this._pointers.length;e++)if(this._pointers[e]==t.pointerId)return!0;return!1}_trackPointer(t){let e=this._pointerPositions[t.pointerId];void 0===e&&(e=new s.I9Y,this._pointerPositions[t.pointerId]=e),e.set(t.pageX,t.pageY)}_getSecondPointerPosition(t){const e=t.pointerId===this._pointers[0]?this._pointers[1]:this._pointers[0];return this._pointerPositions[e]}_customWheelEvent(t){const e=t.deltaMode,i={clientX:t.clientX,clientY:t.clientY,deltaY:t.deltaY};switch(e){case 1:i.deltaY*=16;break;case 2:i.deltaY*=100}return t.ctrlKey&&!this._controlActive&&(i.deltaY*=10),i}}function D(t){!1!==this.enabled&&(0===this._pointers.length&&(this.domElement.setPointerCapture(t.pointerId),this.domElement.ownerDocument.addEventListener("pointermove",this._onPointerMove),this.domElement.ownerDocument.addEventListener("pointerup",this._onPointerUp)),this._isTrackingPointer(t)||(this._addPointer(t),"touch"===t.pointerType?this._onTouchStart(t):this._onMouseDown(t),"grab"===this._cursorStyle&&(this.domElement.style.cursor="grabbing")))}function f(t){!1!==this.enabled&&("touch"===t.pointerType?this._onTouchMove(t):this._onMouseMove(t))}function S(t){switch(this._removePointer(t),this._pointers.length){case 0:this.domElement.releasePointerCapture(t.pointerId),this.domElement.ownerDocument.removeEventListener("pointermove",this._onPointerMove),this.domElement.ownerDocument.removeEventListener("pointerup",this._onPointerUp),this.dispatchEvent(h),this.state=d,"grab"===this._cursorStyle&&(this.domElement.style.cursor="grab");break;case 1:const e=this._pointers[0],i=this._pointerPositions[e];this._onTouchStart({pointerId:e,pageX:i.x,pageY:i.y})}}function w(t){let e;switch(t.button){case 0:e=this.mouseButtons.LEFT;break;case 1:e=this.mouseButtons.MIDDLE;break;case 2:e=this.mouseButtons.RIGHT;break;default:e=-1}switch(e){case s.kBv.DOLLY:if(!1===this.enableZoom)return;this._handleMouseDownDolly(t),this.state=u;break;case s.kBv.ROTATE:if(t.ctrlKey||t.metaKey||t.shiftKey){if(!1===this.enablePan)return;this._handleMouseDownPan(t),this.state=m}else{if(!1===this.enableRotate)return;this._handleMouseDownRotate(t),this.state=_}break;case s.kBv.PAN:if(t.ctrlKey||t.metaKey||t.shiftKey){if(!1===this.enableRotate)return;this._handleMouseDownRotate(t),this.state=_}else{if(!1===this.enablePan)return;this._handleMouseDownPan(t),this.state=m}break;default:this.state=d}this.state!==d&&this.dispatchEvent(n)}function M(t){switch(this.state){case _:if(!1===this.enableRotate)return;this._handleMouseMoveRotate(t);break;case u:if(!1===this.enableZoom)return;this._handleMouseMoveDolly(t);break;case m:if(!1===this.enablePan)return;this._handleMouseMovePan(t)}}function T(t){!1!==this.enabled&&!1!==this.enableZoom&&this.state===d&&(t.preventDefault(),this.dispatchEvent(n),this._handleMouseWheel(this._customWheelEvent(t)),this.dispatchEvent(h))}function j(t){!1!==this.enabled&&this._handleKeyDown(t)}function R(t){switch(this._trackPointer(t),this._pointers.length){case 1:switch(this.touches.ONE){case s.wtR.ROTATE:if(!1===this.enableRotate)return;this._handleTouchStartRotate(t),this.state=y;break;case s.wtR.PAN:if(!1===this.enablePan)return;this._handleTouchStartPan(t),this.state=b;break;default:this.state=d}break;case 2:switch(this.touches.TWO){case s.wtR.DOLLY_PAN:if(!1===this.enableZoom&&!1===this.enablePan)return;this._handleTouchStartDollyPan(t),this.state=g;break;case s.wtR.DOLLY_ROTATE:if(!1===this.enableZoom&&!1===this.enableRotate)return;this._handleTouchStartDollyRotate(t),this.state=P;break;default:this.state=d}break;default:this.state=d}this.state!==d&&this.dispatchEvent(n)}function k(t){switch(this._trackPointer(t),this.state){case y:if(!1===this.enableRotate)return;this._handleTouchMoveRotate(t),this.update();break;case b:if(!1===this.enablePan)return;this._handleTouchMovePan(t),this.update();break;case g:if(!1===this.enableZoom&&!1===this.enablePan)return;this._handleTouchMoveDollyPan(t),this.update();break;case P:if(!1===this.enableZoom&&!1===this.enableRotate)return;this._handleTouchMoveDollyRotate(t),this.update();break;default:this.state=d}}function x(t){!1!==this.enabled&&t.preventDefault()}function L(t){if("Control"===t.key){this._controlActive=!0;this.domElement.getRootNode().addEventListener("keyup",this._interceptControlUp,{passive:!0,capture:!0})}}function Y(t){if("Control"===t.key){this._controlActive=!1;this.domElement.getRootNode().removeEventListener("keyup",this._interceptControlUp,{passive:!0,capture:!0})}}}}]);
|
|
|
|
|
|
services/explorer/dist/static/js/583.b4f476c9.chunk.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
"use strict";(self.webpackChunkdeepsearch_ui=self.webpackChunkdeepsearch_ui||[]).push([[583],{7583(t,e,i){i.r(e),i.d(e,{OrbitControls:()=>v});var s=i(9435);const o={type:"change"},n={type:"start"},h={type:"end"},a=new s.RlV,r=new s.Zcv,l=Math.cos(70*s.cj9.DEG2RAD),c=new s.Pq0,p=2*Math.PI,d=-1,_=0,u=1,m=2,y=3,b=4,g=5,P=6,E=1e-6;class v extends s.H2z{constructor(t){super(t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:null),this.state=d,this.target=new s.Pq0,this.cursor=new s.Pq0,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minTargetRadius=0,this.maxTargetRadius=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.keyRotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.mouseButtons={LEFT:s.kBv.ROTATE,MIDDLE:s.kBv.DOLLY,RIGHT:s.kBv.PAN},this.touches={ONE:s.wtR.ROTATE,TWO:s.wtR.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._cursorStyle="auto",this._domElementKeyEvents=null,this._lastPosition=new s.Pq0,this._lastQuaternion=new s.PTz,this._lastTargetPosition=new s.Pq0,this._quat=(new s.PTz).setFromUnitVectors(t.up,new s.Pq0(0,1,0)),this._quatInverse=this._quat.clone().invert(),this._spherical=new s.YHV,this._sphericalDelta=new s.YHV,this._scale=1,this._panOffset=new s.Pq0,this._rotateStart=new s.I9Y,this._rotateEnd=new s.I9Y,this._rotateDelta=new s.I9Y,this._panStart=new s.I9Y,this._panEnd=new s.I9Y,this._panDelta=new s.I9Y,this._dollyStart=new s.I9Y,this._dollyEnd=new s.I9Y,this._dollyDelta=new s.I9Y,this._dollyDirection=new s.Pq0,this._mouse=new s.I9Y,this._performCursorZoom=!1,this._pointers=[],this._pointerPositions={},this._controlActive=!1,this._onPointerMove=f.bind(this),this._onPointerDown=D.bind(this),this._onPointerUp=S.bind(this),this._onContextMenu=x.bind(this),this._onMouseWheel=T.bind(this),this._onKeyDown=j.bind(this),this._onTouchStart=R.bind(this),this._onTouchMove=k.bind(this),this._onMouseDown=w.bind(this),this._onMouseMove=M.bind(this),this._interceptControlDown=L.bind(this),this._interceptControlUp=Y.bind(this),null!==this.domElement&&this.connect(this.domElement),this.update()}set cursorStyle(t){this._cursorStyle=t,this.domElement.style.cursor="grab"===t?"grab":"auto"}get cursorStyle(){return this._cursorStyle}connect(t){super.connect(t),this.domElement.addEventListener("pointerdown",this._onPointerDown),this.domElement.addEventListener("pointercancel",this._onPointerUp),this.domElement.addEventListener("contextmenu",this._onContextMenu),this.domElement.addEventListener("wheel",this._onMouseWheel,{passive:!1});this.domElement.getRootNode().addEventListener("keydown",this._interceptControlDown,{passive:!0,capture:!0}),this.domElement.style.touchAction="none"}disconnect(){this.domElement.removeEventListener("pointerdown",this._onPointerDown),this.domElement.ownerDocument.removeEventListener("pointermove",this._onPointerMove),this.domElement.ownerDocument.removeEventListener("pointerup",this._onPointerUp),this.domElement.removeEventListener("pointercancel",this._onPointerUp),this.domElement.removeEventListener("wheel",this._onMouseWheel),this.domElement.removeEventListener("contextmenu",this._onContextMenu),this.stopListenToKeyEvents();this.domElement.getRootNode().removeEventListener("keydown",this._interceptControlDown,{capture:!0}),this.domElement.style.touchAction="auto"}dispose(){this.disconnect()}getPolarAngle(){return this._spherical.phi}getAzimuthalAngle(){return this._spherical.theta}getDistance(){return this.object.position.distanceTo(this.target)}listenToKeyEvents(t){t.addEventListener("keydown",this._onKeyDown),this._domElementKeyEvents=t}stopListenToKeyEvents(){null!==this._domElementKeyEvents&&(this._domElementKeyEvents.removeEventListener("keydown",this._onKeyDown),this._domElementKeyEvents=null)}saveState(){this.target0.copy(this.target),this.position0.copy(this.object.position),this.zoom0=this.object.zoom}reset(){this.target.copy(this.target0),this.object.position.copy(this.position0),this.object.zoom=this.zoom0,this.object.updateProjectionMatrix(),this.dispatchEvent(o),this.update(),this.state=d}pan(t,e){this._pan(t,e),this.update()}dollyIn(t){this._dollyIn(t),this.update()}dollyOut(t){this._dollyOut(t),this.update()}rotateLeft(t){this._rotateLeft(t),this.update()}rotateUp(t){this._rotateUp(t),this.update()}update(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;const e=this.object.position;c.copy(e).sub(this.target),c.applyQuaternion(this._quat),this._spherical.setFromVector3(c),this.autoRotate&&this.state===d&&this._rotateLeft(this._getAutoRotationAngle(t)),this.enableDamping?(this._spherical.theta+=this._sphericalDelta.theta*this.dampingFactor,this._spherical.phi+=this._sphericalDelta.phi*this.dampingFactor):(this._spherical.theta+=this._sphericalDelta.theta,this._spherical.phi+=this._sphericalDelta.phi);let i=this.minAzimuthAngle,n=this.maxAzimuthAngle;isFinite(i)&&isFinite(n)&&(i<-Math.PI?i+=p:i>Math.PI&&(i-=p),n<-Math.PI?n+=p:n>Math.PI&&(n-=p),this._spherical.theta=i<=n?Math.max(i,Math.min(n,this._spherical.theta)):this._spherical.theta>(i+n)/2?Math.max(i,this._spherical.theta):Math.min(n,this._spherical.theta)),this._spherical.phi=Math.max(this.minPolarAngle,Math.min(this.maxPolarAngle,this._spherical.phi)),this._spherical.makeSafe(),!0===this.enableDamping?this.target.addScaledVector(this._panOffset,this.dampingFactor):this.target.add(this._panOffset),this.target.sub(this.cursor),this.target.clampLength(this.minTargetRadius,this.maxTargetRadius),this.target.add(this.cursor);let h=!1;if(this.zoomToCursor&&this._performCursorZoom||this.object.isOrthographicCamera)this._spherical.radius=this._clampDistance(this._spherical.radius);else{const t=this._spherical.radius;this._spherical.radius=this._clampDistance(this._spherical.radius*this._scale),h=t!=this._spherical.radius}if(c.setFromSpherical(this._spherical),c.applyQuaternion(this._quatInverse),e.copy(this.target).add(c),this.object.lookAt(this.target),!0===this.enableDamping?(this._sphericalDelta.theta*=1-this.dampingFactor,this._sphericalDelta.phi*=1-this.dampingFactor,this._panOffset.multiplyScalar(1-this.dampingFactor)):(this._sphericalDelta.set(0,0,0),this._panOffset.set(0,0,0)),this.zoomToCursor&&this._performCursorZoom){let t=null;if(this.object.isPerspectiveCamera){const e=c.length();t=this._clampDistance(e*this._scale);const i=e-t;this.object.position.addScaledVector(this._dollyDirection,i),this.object.updateMatrixWorld(),h=!!i}else if(this.object.isOrthographicCamera){const e=new s.Pq0(this._mouse.x,this._mouse.y,0);e.unproject(this.object);const i=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),this.object.updateProjectionMatrix(),h=i!==this.object.zoom;const o=new s.Pq0(this._mouse.x,this._mouse.y,0);o.unproject(this.object),this.object.position.sub(o).add(e),this.object.updateMatrixWorld(),t=c.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),this.zoomToCursor=!1;null!==t&&(this.screenSpacePanning?this.target.set(0,0,-1).transformDirection(this.object.matrix).multiplyScalar(t).add(this.object.position):(a.origin.copy(this.object.position),a.direction.set(0,0,-1).transformDirection(this.object.matrix),Math.abs(this.object.up.dot(a.direction))<l?this.object.lookAt(this.target):(r.setFromNormalAndCoplanarPoint(this.object.up,this.target),a.intersectPlane(r,this.target))))}else if(this.object.isOrthographicCamera){const t=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),t!==this.object.zoom&&(this.object.updateProjectionMatrix(),h=!0)}return this._scale=1,this._performCursorZoom=!1,!!(h||this._lastPosition.distanceToSquared(this.object.position)>E||8*(1-this._lastQuaternion.dot(this.object.quaternion))>E||this._lastTargetPosition.distanceToSquared(this.target)>E)&&(this.dispatchEvent(o),this._lastPosition.copy(this.object.position),this._lastQuaternion.copy(this.object.quaternion),this._lastTargetPosition.copy(this.target),!0)}_getAutoRotationAngle(t){return null!==t?p/60*this.autoRotateSpeed*t:p/60/60*this.autoRotateSpeed}_getZoomScale(t){const e=Math.abs(.01*t);return Math.pow(.95,this.zoomSpeed*e)}_rotateLeft(t){this._sphericalDelta.theta-=t}_rotateUp(t){this._sphericalDelta.phi-=t}_panLeft(t,e){c.setFromMatrixColumn(e,0),c.multiplyScalar(-t),this._panOffset.add(c)}_panUp(t,e){!0===this.screenSpacePanning?c.setFromMatrixColumn(e,1):(c.setFromMatrixColumn(e,0),c.crossVectors(this.object.up,c)),c.multiplyScalar(t),this._panOffset.add(c)}_pan(t,e){const i=this.domElement;if(this.object.isPerspectiveCamera){const s=this.object.position;c.copy(s).sub(this.target);let o=c.length();o*=Math.tan(this.object.fov/2*Math.PI/180),this._panLeft(2*t*o/i.clientHeight,this.object.matrix),this._panUp(2*e*o/i.clientHeight,this.object.matrix)}else this.object.isOrthographicCamera?(this._panLeft(t*(this.object.right-this.object.left)/this.object.zoom/i.clientWidth,this.object.matrix),this._panUp(e*(this.object.top-this.object.bottom)/this.object.zoom/i.clientHeight,this.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),this.enablePan=!1)}_dollyOut(t){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale/=t:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_dollyIn(t){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale*=t:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_updateZoomParameters(t,e){if(!this.zoomToCursor)return;this._performCursorZoom=!0;const i=this.domElement.getBoundingClientRect(),s=t-i.left,o=e-i.top,n=i.width,h=i.height;this._mouse.x=s/n*2-1,this._mouse.y=-o/h*2+1,this._dollyDirection.set(this._mouse.x,this._mouse.y,1).unproject(this.object).sub(this.object.position).normalize()}_clampDistance(t){return Math.max(this.minDistance,Math.min(this.maxDistance,t))}_handleMouseDownRotate(t){this._rotateStart.set(t.clientX,t.clientY)}_handleMouseDownDolly(t){this._updateZoomParameters(t.clientX,t.clientX),this._dollyStart.set(t.clientX,t.clientY)}_handleMouseDownPan(t){this._panStart.set(t.clientX,t.clientY)}_handleMouseMoveRotate(t){this._rotateEnd.set(t.clientX,t.clientY),this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const e=this.domElement;this._rotateLeft(p*this._rotateDelta.x/e.clientHeight),this._rotateUp(p*this._rotateDelta.y/e.clientHeight),this._rotateStart.copy(this._rotateEnd),this.update()}_handleMouseMoveDolly(t){this._dollyEnd.set(t.clientX,t.clientY),this._dollyDelta.subVectors(this._dollyEnd,this._dollyStart),this._dollyDelta.y>0?this._dollyOut(this._getZoomScale(this._dollyDelta.y)):this._dollyDelta.y<0&&this._dollyIn(this._getZoomScale(this._dollyDelta.y)),this._dollyStart.copy(this._dollyEnd),this.update()}_handleMouseMovePan(t){this._panEnd.set(t.clientX,t.clientY),this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd),this.update()}_handleMouseWheel(t){this._updateZoomParameters(t.clientX,t.clientY),t.deltaY<0?this._dollyIn(this._getZoomScale(t.deltaY)):t.deltaY>0&&this._dollyOut(this._getZoomScale(t.deltaY)),this.update()}_handleKeyDown(t){let e=!1;switch(t.code){case this.keys.UP:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateUp(p*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,this.keyPanSpeed),e=!0;break;case this.keys.BOTTOM:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateUp(-p*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,-this.keyPanSpeed),e=!0;break;case this.keys.LEFT:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateLeft(p*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(this.keyPanSpeed,0),e=!0;break;case this.keys.RIGHT:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateLeft(-p*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(-this.keyPanSpeed,0),e=!0}e&&(t.preventDefault(),this.update())}_handleTouchStartRotate(t){if(1===this._pointers.length)this._rotateStart.set(t.pageX,t.pageY);else{const e=this._getSecondPointerPosition(t),i=.5*(t.pageX+e.x),s=.5*(t.pageY+e.y);this._rotateStart.set(i,s)}}_handleTouchStartPan(t){if(1===this._pointers.length)this._panStart.set(t.pageX,t.pageY);else{const e=this._getSecondPointerPosition(t),i=.5*(t.pageX+e.x),s=.5*(t.pageY+e.y);this._panStart.set(i,s)}}_handleTouchStartDolly(t){const e=this._getSecondPointerPosition(t),i=t.pageX-e.x,s=t.pageY-e.y,o=Math.sqrt(i*i+s*s);this._dollyStart.set(0,o)}_handleTouchStartDollyPan(t){this.enableZoom&&this._handleTouchStartDolly(t),this.enablePan&&this._handleTouchStartPan(t)}_handleTouchStartDollyRotate(t){this.enableZoom&&this._handleTouchStartDolly(t),this.enableRotate&&this._handleTouchStartRotate(t)}_handleTouchMoveRotate(t){if(1==this._pointers.length)this._rotateEnd.set(t.pageX,t.pageY);else{const e=this._getSecondPointerPosition(t),i=.5*(t.pageX+e.x),s=.5*(t.pageY+e.y);this._rotateEnd.set(i,s)}this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const e=this.domElement;this._rotateLeft(p*this._rotateDelta.x/e.clientHeight),this._rotateUp(p*this._rotateDelta.y/e.clientHeight),this._rotateStart.copy(this._rotateEnd)}_handleTouchMovePan(t){if(1===this._pointers.length)this._panEnd.set(t.pageX,t.pageY);else{const e=this._getSecondPointerPosition(t),i=.5*(t.pageX+e.x),s=.5*(t.pageY+e.y);this._panEnd.set(i,s)}this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd)}_handleTouchMoveDolly(t){const e=this._getSecondPointerPosition(t),i=t.pageX-e.x,s=t.pageY-e.y,o=Math.sqrt(i*i+s*s);this._dollyEnd.set(0,o),this._dollyDelta.set(0,Math.pow(this._dollyEnd.y/this._dollyStart.y,this.zoomSpeed)),this._dollyOut(this._dollyDelta.y),this._dollyStart.copy(this._dollyEnd);const n=.5*(t.pageX+e.x),h=.5*(t.pageY+e.y);this._updateZoomParameters(n,h)}_handleTouchMoveDollyPan(t){this.enableZoom&&this._handleTouchMoveDolly(t),this.enablePan&&this._handleTouchMovePan(t)}_handleTouchMoveDollyRotate(t){this.enableZoom&&this._handleTouchMoveDolly(t),this.enableRotate&&this._handleTouchMoveRotate(t)}_addPointer(t){this._pointers.push(t.pointerId)}_removePointer(t){delete this._pointerPositions[t.pointerId];for(let e=0;e<this._pointers.length;e++)if(this._pointers[e]==t.pointerId)return void this._pointers.splice(e,1)}_isTrackingPointer(t){for(let e=0;e<this._pointers.length;e++)if(this._pointers[e]==t.pointerId)return!0;return!1}_trackPointer(t){let e=this._pointerPositions[t.pointerId];void 0===e&&(e=new s.I9Y,this._pointerPositions[t.pointerId]=e),e.set(t.pageX,t.pageY)}_getSecondPointerPosition(t){const e=t.pointerId===this._pointers[0]?this._pointers[1]:this._pointers[0];return this._pointerPositions[e]}_customWheelEvent(t){const e=t.deltaMode,i={clientX:t.clientX,clientY:t.clientY,deltaY:t.deltaY};switch(e){case 1:i.deltaY*=16;break;case 2:i.deltaY*=100}return t.ctrlKey&&!this._controlActive&&(i.deltaY*=10),i}}function D(t){!1!==this.enabled&&(0===this._pointers.length&&(this.domElement.setPointerCapture(t.pointerId),this.domElement.ownerDocument.addEventListener("pointermove",this._onPointerMove),this.domElement.ownerDocument.addEventListener("pointerup",this._onPointerUp)),this._isTrackingPointer(t)||(this._addPointer(t),"touch"===t.pointerType?this._onTouchStart(t):this._onMouseDown(t),"grab"===this._cursorStyle&&(this.domElement.style.cursor="grabbing")))}function f(t){!1!==this.enabled&&("touch"===t.pointerType?this._onTouchMove(t):this._onMouseMove(t))}function S(t){switch(this._removePointer(t),this._pointers.length){case 0:this.domElement.releasePointerCapture(t.pointerId),this.domElement.ownerDocument.removeEventListener("pointermove",this._onPointerMove),this.domElement.ownerDocument.removeEventListener("pointerup",this._onPointerUp),this.dispatchEvent(h),this.state=d,"grab"===this._cursorStyle&&(this.domElement.style.cursor="grab");break;case 1:const e=this._pointers[0],i=this._pointerPositions[e];this._onTouchStart({pointerId:e,pageX:i.x,pageY:i.y})}}function w(t){let e;switch(t.button){case 0:e=this.mouseButtons.LEFT;break;case 1:e=this.mouseButtons.MIDDLE;break;case 2:e=this.mouseButtons.RIGHT;break;default:e=-1}switch(e){case s.kBv.DOLLY:if(!1===this.enableZoom)return;this._handleMouseDownDolly(t),this.state=u;break;case s.kBv.ROTATE:if(t.ctrlKey||t.metaKey||t.shiftKey){if(!1===this.enablePan)return;this._handleMouseDownPan(t),this.state=m}else{if(!1===this.enableRotate)return;this._handleMouseDownRotate(t),this.state=_}break;case s.kBv.PAN:if(t.ctrlKey||t.metaKey||t.shiftKey){if(!1===this.enableRotate)return;this._handleMouseDownRotate(t),this.state=_}else{if(!1===this.enablePan)return;this._handleMouseDownPan(t),this.state=m}break;default:this.state=d}this.state!==d&&this.dispatchEvent(n)}function M(t){switch(this.state){case _:if(!1===this.enableRotate)return;this._handleMouseMoveRotate(t);break;case u:if(!1===this.enableZoom)return;this._handleMouseMoveDolly(t);break;case m:if(!1===this.enablePan)return;this._handleMouseMovePan(t)}}function T(t){!1!==this.enabled&&!1!==this.enableZoom&&this.state===d&&(t.preventDefault(),this.dispatchEvent(n),this._handleMouseWheel(this._customWheelEvent(t)),this.dispatchEvent(h))}function j(t){!1!==this.enabled&&this._handleKeyDown(t)}function R(t){switch(this._trackPointer(t),this._pointers.length){case 1:switch(this.touches.ONE){case s.wtR.ROTATE:if(!1===this.enableRotate)return;this._handleTouchStartRotate(t),this.state=y;break;case s.wtR.PAN:if(!1===this.enablePan)return;this._handleTouchStartPan(t),this.state=b;break;default:this.state=d}break;case 2:switch(this.touches.TWO){case s.wtR.DOLLY_PAN:if(!1===this.enableZoom&&!1===this.enablePan)return;this._handleTouchStartDollyPan(t),this.state=g;break;case s.wtR.DOLLY_ROTATE:if(!1===this.enableZoom&&!1===this.enableRotate)return;this._handleTouchStartDollyRotate(t),this.state=P;break;default:this.state=d}break;default:this.state=d}this.state!==d&&this.dispatchEvent(n)}function k(t){switch(this._trackPointer(t),this.state){case y:if(!1===this.enableRotate)return;this._handleTouchMoveRotate(t),this.update();break;case b:if(!1===this.enablePan)return;this._handleTouchMovePan(t),this.update();break;case g:if(!1===this.enableZoom&&!1===this.enablePan)return;this._handleTouchMoveDollyPan(t),this.update();break;case P:if(!1===this.enableZoom&&!1===this.enableRotate)return;this._handleTouchMoveDollyRotate(t),this.update();break;default:this.state=d}}function x(t){!1!==this.enabled&&t.preventDefault()}function L(t){if("Control"===t.key){this._controlActive=!0;this.domElement.getRootNode().addEventListener("keyup",this._interceptControlUp,{passive:!0,capture:!0})}}function Y(t){if("Control"===t.key){this._controlActive=!1;this.domElement.getRootNode().removeEventListener("keyup",this._interceptControlUp,{passive:!0,capture:!0})}}}}]);
|
services/explorer/dist/static/js/601.858a3d83.chunk.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
"use strict";(self.webpackChunkdeepsearch_ui=self.webpackChunkdeepsearch_ui||[]).push([[601],{8601(e,t,o){o.r(t),o.d(t,{loadUsd:()=>L});var a=o(3986),r=o(9379),n=o(9435),s=o(9408);const c=["warnings"];var i=class extends Error{constructor(e,t){let{url:o,status:a,cause:r}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};super(t,void 0===r?void 0:{cause:r}),this.name="UsdLoadError",this.code=e,void 0!==o&&(this.url=o),void 0!==a&&(this.status=a)}},l=/out of memory|memory allocation|allocation failed|memory size exceeded|could not allocate/i,u=/^(huggingface\.co|hf\.co)\.?$/,d=/\.hf\.co\.?$/,m=/^\/(?:(datasets|spaces)\/)?([\w.-]+)\/([\w.-]+)\/resolve\/([^/]*)/,p=/^\/api\/(datasets|models|spaces)\/([\w.-]+)\/([\w.-]+)\/tree\/([^/]*)/,h=new Set(["api","oauth","settings","login","logout","join","docs","models","datasets","spaces","organizations","new","pricing","blog","papers","posts","collections","notifications","search","chat","learn","tasks","enterprise","billing","static-proxy","avatars","front"]);function f(e){if(!u.test(e.hostname)||"https:"!==e.protocol)return null;const t=e.pathname.match(m);return!t||!t[1]&&h.has(t[2].toLowerCase())?e.pathname.match(p):t}function g(e){var t;const o=f(e);return o&&"".concat(null!==(t=o[1])&&void 0!==t?t:"models","/").concat(o[2],"/").concat(o[3])}function v(e){try{const t=new URL(e);return/^hf\.co\.?$/.test(t.hostname)?(t.hostname="huggingface.co",t.href):e}catch(t){return e}}function w(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];const a=function(e,t,o){if(e===t)return null;let a;try{a=new URL(e)}catch(c){return"not a URL: ".concat(e)}const r=new URL(t);if("http:"!==a.protocol&&"https:"!==a.protocol)return"only http(s) URLs are fetched: ".concat(e);if(a.username||a.password)return"URLs with credentials are not fetched: ".concat(e);const n=u.test(a.hostname);if(n&&!function(e){const t=f(e);if(!t)return!1;const o=t[0].length-t[4].length,a=e.pathname.slice(0,o)+e.pathname.slice(t[0].length);return!/%2f|%5c/i.test(a)&&!/%5c/i.test(t[4])}(a))return"only Hub repo files are fetched from ".concat(a.host,": ").concat(e);const s=u.test(r.hostname)&&(n||d.test(a.hostname))&&"https:"===a.protocol;return a.origin===r.origin||s||o.includes("*")||o.includes(a.origin)?null:"its origin is not in allowedOrigins: ".concat(e)}(v(e),v(t),o);return a?{refused:a}:{credentials:b(new URL(v(e)),new URL(v(t)))?"same-origin":"omit",referrerPolicy:"no-referrer"}}function b(e,t){if(e.origin!==t.origin)return!1;const o=g(t);return!u.test(t.hostname)||!!o&&g(e)===o}var y={diffuseColor:{map:"map",chunk:"map_fragment",from:"diffuseColor *= sampledDiffuseColor;",to:e=>"diffuseColor.rgb *= ".concat(e("sampledDiffuseColor",3),";")},emissiveColor:{map:"emissiveMap",chunk:"emissivemap_fragment",from:"totalEmissiveRadiance *= emissiveColor.rgb;",to:e=>"totalEmissiveRadiance *= ".concat(e("emissiveColor",3),";")},roughness:{map:"roughnessMap",chunk:"roughnessmap_fragment",from:"texelRoughness.g",to:e=>e("texelRoughness",1)},metallic:{map:"metalnessMap",chunk:"metalnessmap_fragment",from:"texelMetalness.b",to:e=>e("texelMetalness",1)},occlusion:{map:"aoMap",chunk:"aomap_fragment",from:"texture2D( aoMap, vAoMapUv ).r",to:e=>e("texture2D( aoMap, vAoMapUv )",1)},opacity:{map:"alphaMap",chunk:"alphamap_fragment",from:"texture2D( alphaMap, vAlphaMapUv ).g",to:e=>e("texture2D( alphaMap, vAlphaMapUv )",1)},normal:{map:"normalMap",chunk:"normal_fragment_maps",from:"texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0",to:e=>e("texture2D( normalMap, vNormalMapUv )",3)}};function x(e){return e.userData.patches={},e.onBeforeCompile=t=>{for(const[o,a]of Object.entries(e.userData.patches)){const{chunk:e,from:r,to:n}=y[o],c=s.ShaderChunk[e].replaceAll(r,n((e,t)=>k(e,t,a)));t.fragmentShader=t.fragmentShader.replace("#include <".concat(e,">"),c)}},e.customProgramCacheKey=()=>JSON.stringify(e.userData.patches),e}function k(e,t,o){const a=e=>e.toFixed(6),r=["r","g","b","a"].includes(o.channel)?o.channel:"rgb";if("rgb"===r){const r="(".concat(e,".rgb * vec3(").concat(o.scale.slice(0,3).map(a),") + vec3(").concat(o.bias.slice(0,3).map(a),"))");return 3===t?r:"".concat(r,".r")}const n="rgba".indexOf(r),s="(".concat(e,".").concat(r," * ").concat(a(o.scale[n])," + ").concat(a(o.bias[n]),")");return 3===t?"vec3".concat(s):s}function M(e,t,o,a){const r=e.userData.usd;let s=!1;for(const[c,i]of Object.entries(r.maps)){const l=y[c];if(i.path!==t||!l)continue;const u=a(i,S(i,o),Object.hasOwn(r.uvChannels,i.uvSet)?r.uvChannels[i.uvSet]:0);e[l.map]=u,e.userData.patches[c]={channel:i.channel,scale:i.scale,bias:i.bias},"diffuseColor"===c&&e.color.setRGB(...r.color,n.Zr2),"roughness"===c&&(e.roughness=1),"metallic"===c&&(e.metalness=1),"emissiveColor"===c&&e.emissive.setRGB(1,1,1),"opacity"===c&&(e.opacity=1),s=!0}s&&(e.needsUpdate=!0)}function S(e,t){return"raw"===e.colorSpace?n.jf0:"sRGB"===e.colorSpace||t?n.er$:n.jf0}var U=Symbol("show"),A={layers:[0,.4],compose:[.4,.5],geometry:[.5,.8],textures:[.8,1]};var C=null;function R(e){var t;return null!==(t=e)&&void 0!==t||(e=new URL("../wasm/usd_wasm_bg.wasm","https://invalid.example/explicit-runtime-required/")),C||(C=async function(e){var t;const o=await fetch(e);if(!o.ok)throw new Error("HTTP ".concat(o.status));return null!==(t=o.headers.get("content-type"))&&void 0!==t&&t.startsWith("application/wasm")?WebAssembly.compileStreaming(o):WebAssembly.compile(await o.arrayBuffer())}(e).catch(t=>{throw C=null,new i("worker","could not load the WASM module from ".concat(e,": ").concat(t.message),{url:String(e),cause:t})})),C}async function L(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{maxTextureSize:o,textures:s,maxConcurrentFetches:d,maxLayerBytes:m,maxTextureBytes:p,maxLayers:h,maxInstances:f,maxTriangles:g,allowedOrigins:b}=t,{onProgress:y,signal:k,headers:S}=t;if(void 0!==d&&!(Number.isInteger(d)&&d>0))throw new RangeError("maxConcurrentFetches must be a positive integer, got ".concat(d));const C=()=>new i("aborted","the load was aborted",{url:e,cause:null===k||void 0===k?void 0:k.reason});if(null!==k&&void 0!==k&&k.aborted)throw C();if("undefined"===typeof Worker)throw new i("worker","loading needs Web Workers: call loadUsd in a browser",{url:e});const L=v(new URL(e,location.href).href),O=await new Promise((e,o)=>{const a=()=>o(C());null===k||void 0===k||k.addEventListener("abort",a,{once:!0}),R(t.wasmUrl).then(e,o).finally(()=>null===k||void 0===k?void 0:k.removeEventListener("abort",a))});if(null!==k&&void 0!==k&&k.aborted)throw C();let D;try{D=t.workerUrl?new Worker(t.workerUrl,{type:"module"}):new Worker(new URL("./worker.js","https://invalid.example/explicit-runtime-required/"),{type:"module"})}catch(Q){throw new i("worker","could not start the worker: ".concat(Q.message),{url:t.workerUrl&&String(t.workerUrl),cause:Q})}const E=new AbortController,j=new Map;let P,_,G,W;const F=new Promise((e,t)=>(P=e,_=t)),H=new Promise((e,t)=>(G=e,W=t));H.catch(()=>{});const N={textures:0,failed:0};let Z=0,I=null,z=!1,$=!1;const q=e=>{if(!$){$=!0,D.terminate(),E.abort();for(const e of j.values())e.cancel().catch(()=>{});j.clear(),null===k||void 0===k||k.removeEventListener("abort",Y),_(e),e?W(e):G((0,r.A)({},N))}};function J(e){I&&!z&&I.dispose(),q(e)}function Y(){J(C())}null===k||void 0===k||k.addEventListener("abort",Y,{once:!0}),D.onmessage=e=>{let{data:o}=e;var s;if($)null===(s=o.bitmap)||void 0===s||s.close();else try{!function(e){var o,s;switch(e.type){case"fetch":!async function(e){let{id:o,url:a}=e;try{var n,s,c;const e=w(a,L,b);if(e.refused)throw new TypeError("request refused: ".concat(e.refused));const i=await async function(e,t,o,a){var n;let s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};if(!("same-origin"===o.credentials&&a&&Object.keys(a).length>0))return e(t,(0,r.A)((0,r.A)({},o),s));if(u.test(new URL(t).hostname))return e(t,(0,r.A)((0,r.A)({},o),{},{headers:a},s));const c=await e(t,(0,r.A)((0,r.A)({},o),{},{headers:a,redirect:"manual"},s));return"opaqueredirect"===c.type||c.status>=300&&c.status<400?(null===(n=c.body)||void 0===n||n.cancel().catch(()=>{}),e(t,(0,r.A)((0,r.A)({},o),{},{credentials:"omit"},s))):c}(t.fetch,a,e,S,{signal:E.signal});if($)return null===(n=i.body)||void 0===n?void 0:n.cancel().catch(()=>{});i.ok?j.set(o,(null!==(s=i.body)&&void 0!==s?s:(new Blob).stream()).getReader()):null===(c=i.body)||void 0===c||c.cancel(),D.postMessage({type:"fetched",id:o,ok:i.ok,status:i.status})}catch(Q){D.postMessage({type:"fetched",id:o,error:String(Q)})}}(e);break;case"pull":!async function(e){try{const{done:t,value:o}=await j.get(e).read();if(t)return j.delete(e),D.postMessage({type:"chunk",id:e,done:t});const a=o.byteLength===o.buffer.byteLength?o:o.slice();D.postMessage({type:"chunk",id:e,chunk:a},[a.buffer])}catch(Q){j.delete(e),D.postMessage({type:"chunk",id:e,error:String(Q)})}}(e.id);break;case"cancel":null===(o=j.get(e.id))||void 0===o||o.cancel(),j.delete(e.id);break;case"progress":Z=Math.max(Z,function(e){const[t,o]=A[e.stage];return t+(o-t)*("layers"===e.stage?e.loaded/(e.total+1):"compose"===e.stage?.5:e.total?e.loaded/e.total:1)}(e.progress)),null===y||void 0===y||y((0,r.A)((0,r.A)({},e.progress),{},{fraction:Z}));break;case"meta":if(null!==k&&void 0!==k&&k.aborted)return Y();I=function(e){const t={upAxis:e.upAxis,metersPerUnit:e.metersPerUnit,meshes:0,geometries:0,triangles:0,materials:e.materials.length,materialKinds:B(e.materials,e=>e.kind),warnings:[...e.warnings]},o=new n.YJl;o.name="usd","Z"===e.upAxis&&(o.rotation.x=-Math.PI/2);o.scale.setScalar(e.metersPerUnit||1);const a=e.materials.map(e=>function(e){const t=e=>(new n.Q1f).setRGB(e[0],e[1],e[2],n.Zr2),o=new n._4j({color:t(e.color),emissive:t(e.emissive),roughness:e.roughness,metalness:e.metallic,opacity:e.opacity}),a="opacity"in e.maps;return e.opacityThreshold>0&&(a||e.opacity<1)?o.alphaTest=e.opacityThreshold:(a||e.opacity<1)&&(o.transparent=!0,o.depthWrite=!1),o.name=e.path,o.userData.usd={maps:e.maps,colorPrimvar:e.colorPrimvar,uvChannels:Object.create(null),color:e.color},e.maps.diffuseColor&&o.color.setRGB(.18,.18,.18,n.Zr2),x(o)}(e)),r=new Map,s=(e,t,o,s)=>{const c=Object.keys(s).length>0;if(!t&&!o&&!c)return a[e];const i="".concat(e,"|").concat(t,"|").concat(o,"|").concat(JSON.stringify(s));return r.has(i)||r.set(i,function(e,t){let{doubleSided:o,vertexColors:a,uvChannels:r}=t;const s=e.clone();return s.userData.usd.uvChannels=r,o&&(s.side=n.$EB),a&&(s.vertexColors=!0,s.color.setRGB(1,1,1)),x(s)}(a[e],{doubleSided:t,vertexColors:o,uvChannels:s})),r.get(i)},c=[],i=new Map;for(const n of e.instances)i.has(n.geometry)||i.set(n.geometry,[]),i.get(n.geometry).push(n);const l=[],u=(e,r,u)=>{if(!r)return;const d=function(e,t){const o=new n.LoY;o.setAttribute("position",new n.THS(t.positions,3)),o.setAttribute("normal",new n.THS(t.normals,3)),t.uvs.forEach((e,t)=>o.setAttribute(t?"uv".concat(t):"uv",new n.THS(e,2))),t.colors&&o.setAttribute("color",new n.THS(t.colors,3));o.setIndex(new n.THS(t.indices,1));for(const a of[o.index,...Object.values(o.attributes)])a.onUpload(T);o.boundingBox=(new n.NRn).setFromArray(e.bounds),o.boundingSphere=o.boundingBox.getBoundingSphere(new n.iyt),e.groups.length>1&&e.groups.forEach((e,t)=>{let[a,r]=e;return o.addGroup(a,r,t)});return o}(r,u);c.push(d),t.geometries++;const m=r.groups.reduce((e,t)=>{let[,o]=t;return e+o/3},0),p=new Map;for(const o of null!==(h=i.get(e))&&void 0!==h?h:[]){var h;const e=r.groups.map(e=>{let[,,t]=e;const n=void 0!==t&&Object.hasOwn(o.subsets,t)?o.subsets[t]:o.material,c=a[n].userData.usd,i=Object.create(null);for(const o of Object.values(c.maps)){const e=r.uvSets.indexOf(o.uvSet);e>0&&(i[o.uvSet]=e)}return s(n,o.doubleSided,r.hasColors&&!!c.colorPrimvar,i)}),n=e.map(e=>e.uuid).join();p.has(n)||p.set(n,{material:e.length>1?e:e[0],list:[]}),p.get(n).list.push(o),t.meshes++,t.triangles+=m}for(const{material:t,list:a}of p.values()){if(a.length>4){const e=new n.ZLX(d,t,a.length);e.name=a[0].path;const r=new n.kn4;a.forEach((t,o)=>e.setMatrixAt(o,r.fromArray(t.matrix))),e.computeBoundingBox(),e.computeBoundingSphere(),l.push(e),o.add(e);continue}for(const e of a){const a=new n.eaF(d,t);a.name=e.path,a.matrix.fromArray(e.matrix),a.matrixAutoUpdate=!1,a.matrixWorldNeedsUpdate=!0,o.add(a)}}},d=()=>[...a,...r.values()],m=new Map,p=(e,t,o)=>{const a=new n.gPd(t);a.flipY=!1,a.anisotropy=4,m.set(e,a);const r=(e,t,o)=>function(e,t,o,a){const r=e.clone();r.colorSpace=o,r.channel=a;const s=e=>{var t;return null!==(t={mirror:n.kTW,clamp:n.ghU,black:n.ghU}[e])&&void 0!==t?t:n.GJx};r.wrapS=s(t.wrapS),r.wrapT=s(t.wrapT);const[c,i]=t.uvScale,[l,u]=t.uvTranslation,d=t.uvRotation*Math.PI/180;if(1!==c||1!==i||0!==l||0!==u||0!==d){const e=Math.cos(d),t=Math.sin(d);r.matrixAutoUpdate=!1,r.matrix.set(e*c,-t*i,l,t*c,e*i,u,0,0,1)}return r.needsUpdate=!0,r}(a,e,t,o);for(const n of d())M(n,e,o,r)},h=()=>{c.forEach(e=>e.dispose()),l.forEach(e=>e.dispose());for(const a of d()){for(const t of["map","emissiveMap","roughnessMap","metalnessMap","aoMap","alphaMap","normalMap"]){var e;null===(e=a[t])||void 0===e||e.dispose()}a.dispose()}for(const a of m.values()){var t,o;null===(t=a.image)||void 0===t||null===(o=t.close)||void 0===o||o.call(t),a.dispose()}};return{root:o,info:t,addGeometry:u,applyTexture:p,textureFailed:e=>d().forEach(t=>function(e,t){for(const[o,a]of Object.entries(e.userData.usd.maps)){if(a.path!==t||!a.value)continue;const[r,s,c]=a.value;"diffuseColor"===o&&e.color.setRGB(r,s,c,n.Zr2),"emissiveColor"===o&&e.emissive.setRGB(r,s,c,n.Zr2),"roughness"===o&&(e.roughness=r),"metallic"===o&&(e.metalness=r),"opacity"===o&&(e.opacity=r)}}(t,e)),dispose:h}}(e.meta),null===(s=t[U])||void 0===s||s.call(t,I.root,e.meta);break;case"geometry":I.addGeometry(e.index,e.meta,e.arrays);break;case"scene":{const t=e.stats,{warnings:o}=t,r=(0,a.A)(t,c);I.info.stats=r,I.info.warnings.push(...o),z=!0,P(I);break}case"texture":e.bitmap?(I.applyTexture(e.path,e.bitmap,e.color),N.textures++):(I.textureFailed(e.path),N.failed++,I.info.warnings.push({code:"texture-failed",message:e.error,path:e.path}));break;case"done":q();break;case"error":J(new i(e.code,e.message,{url:e.url,status:e.status}))}}(o)}catch(Q){var l;null===(l=o.bitmap)||void 0===l||l.close(),J(new i("worker","could not build the scene: ".concat((null===Q||void 0===Q?void 0:Q.message)||Q),{url:L,cause:Q}))}},D.onerror=e=>{var t;null===(t=e.preventDefault)||void 0===t||t.call(e);const o=e.message||"the worker failed";l.test(o)?J(new i("compose","scene too large to load: ran out of memory: ".concat(o),{url:L})):J(new i("worker",o,{url:L}))},D.postMessage({url:L,wasmModule:O,maxTextureSize:o,textures:s,maxConcurrentFetches:d,maxLayerBytes:m,maxTextureBytes:p,maxLayers:h,maxInstances:f,maxTriangles:g,allowedOrigins:b,headers:S,proxyFetch:!!t.fetch});const K=await F;return{root:K.root,info:K.info,complete:H,dispose(){q(C()),K.dispose()}}}function T(){this.array=null}function B(e,t){const o={};for(const a of e)o[t(a)]=(o[t(a)]||0)+1;return o}}}]);
|
services/explorer/dist/static/js/626.dd61d770.chunk.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
"use strict";(self.webpackChunkdeepsearch_ui=self.webpackChunkdeepsearch_ui||[]).push([[626],{3626(e,t,i){i.r(t),i.d(t,{default:()=>f});var r=i(9379),l=i(5043),n=i(3139),a=i(5597),o=i(1137),s=i(3333),d=i(3283),c=i(9885),u=i(9207),p=i(5260),h=i(579);const m=e=>{const t=new URL(e,window.location.href);if(t.origin!==window.location.origin||!["http:","https:"].includes(t.protocol)||!/\.(usd|usda|usdc)$/i.test(t.pathname))throw new Error("Native examples need a USD layer served by this preview.");return t.href};function x(e){let{joint:t,store:i,onMove:r}=e;const n=(0,l.useRef)(null);(0,l.useEffect)(()=>{const e=e=>{n.current&&void 0!==(null===e||void 0===e?void 0:e[t.id])&&(n.current.value=String(e[t.id]))};return e(i.live()),i.onFrame(e)},[i,t.id]);const a=t.label||t.name||t.id,o=t.continuous?" \xb7 Continuous rotation; preview one turn":"";return(0,h.jsxs)("label",{children:[a,o," ",(0,h.jsx)("input",{ref:n,"aria-label":"Joint ".concat(a).concat(o),type:"range",min:"0",max:"1",step:"0.01",defaultValue:i.homes[t.id],onChange:e=>{r(),i.setTarget(t.id,Number(e.target.value),"instant")}})]})}function f(){var e,t,i;const[f,v]=(0,l.useState)(null),[g,b]=(0,l.useState)([]),[w,y]=(0,l.useState)(null),[S,j]=(0,l.useState)("Choose a USD layer"),[U,k]=(0,l.useState)(null),[D,C]=(0,l.useState)([]),[A,R]=(0,l.useState)(null),[M,T]=(0,l.useState)(!1),[L,E]=(0,l.useState)(()=>{const e=new URLSearchParams(window.location.search).get("example");return!e||e.startsWith("fixture-")}),P=(0,l.useRef)(0),q=(0,l.useRef)(null),F=function(e){var t;let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:g;null===(t=q.current)||void 0===t||t.abort(),R(null),k(null),T(!1),j("Loading USD"),v((0,r.A)((0,r.A)({},e),{},{key:++P.current,textureFiles:i}))};(0,l.useEffect)(()=>{const e=new AbortController,t=new URLSearchParams(window.location.search).get("example");return"fixture-usdc"!==t&&"fixture-usda"!==t||F({url:"".concat("","/native-usd-fixtures/articulated.").concat(t.slice(8))},[]),fetch("".concat("","/native-usd-examples/manifest.json"),{signal:e.signal,cache:"no-store"}).then(async e=>{if(!e.ok)throw new Error("The real USD example catalog is not installed in this preview.");const t=await e.json();if(1!==t.version||!Array.isArray(t.examples)||!t.examples.length)throw new Error("The native USD example catalog is empty.");const i=new Set;return t.examples.map(e=>{if(!e.id||!e.label||!e.usdUrl||i.has(e.id))throw new Error("The native USD example catalog is invalid.");return i.add(e.id),(0,r.A)((0,r.A)({},e),{},{usdUrl:m(e.usdUrl)})})}).then(i=>{if(!e.signal.aborted&&(C(i),0===P.current&&(!t||!t.startsWith("fixture-")))){const e=t?i.find(e=>e.id===t):i[0];if(!e)throw new Error("This native USD example is not in the catalog.");F({url:e.usdUrl,example:e},[])}}).catch(i=>{e.signal.aborted||0!==P.current||!t||t.startsWith("fixture-")||R(i.message)}),()=>e.abort()},[]);(0,l.useEffect)(()=>{if(!f)return;const e=new AbortController;return q.current=e,y(null),k(null),j("Loading USD"),(0,c.Me)((0,r.A)((0,r.A)({},f),{},{signal:e.signal,onProgress:j})).then(t=>{var i,l;if(e.signal.aborted)return;const n=(0,u.nativeUsdArticulation)(t);["robot","furniture"].includes(null===(i=f.example)||void 0===i?void 0:i.presentationKind)&&(n.articulation.kind=f.example.presentationKind);const a=(0,s.createJointStore)(n.articulation),o={loadScene:e=>(0,p.createUsdScene)(t,n,(0,r.A)((0,r.A)({},e),{},{textureFiles:f.textureFiles,renderBothSides:!!f.example,baseUrl:f.url?new URL(f.url,window.location.href).href:null})).then(e=>{var t;return null!==(t=f.example)&&void 0!==t&&t.previewMount&&(e.userData.previewMount=f.example.previewMount),e})};y({sourceKey:f.key,usdModel:o,articulation:n.articulation,store:a,clipMeta:null===(l=f.example)||void 0===l?void 0:l.clipMeta,metrics:t.metrics,diagnostics:n.diagnostics}),j("Preparing viewer")}).catch(t=>{e.signal.aborted||(k(t.message),j("Qualification failed"))}),()=>e.abort()},[f]);const N=(null===w||void 0===w?void 0:w.sourceKey)===(null===f||void 0===f?void 0:f.key)?w:null;(0,l.useEffect)(()=>{null!==N&&void 0!==N&&N.store.ids.length&&!(0,o.VN)()&&"1"===new URLSearchParams(window.location.search).get("motion")&&T(!0)},[N]);const W=(0,n.A)({resetKey:null===f||void 0===f?void 0:f.key,modelKey:null===f||void 0===f?void 0:f.key,active:!0,imageTab:!1,model:N,modelPending:!!f&&!N&&!U,onModelUnavailable:e=>{k((null===e||void 0===e?void 0:e.message)||"USD viewer could not render this asset"),y(null),j("Qualification failed")},workspace:{portal:!0,lazyShell:!0,onEscape:"self",labels:{back:"USD qualification",dock:"Dock viewer"}}});(0,l.useEffect)(()=>{N&&W.viewerApi&&j("Ready")},[N,W.viewerApi]),(0,l.useEffect)(()=>{if(!M||"Ready"!==S||null===N||void 0===N||!N.store.ids.length)return;const{store:e,articulation:t}=N,i="robot"===t.kind;let r,l=!1,n=e.get().motionSeq,a=!1;const o=()=>{if(a=!0,i){const i=e.live(),l=Math.max(0,...e.joints.map(t=>Math.abs(i[t.id]-e.homes[t.id])>1e-6?(0,d.R0)(t,i[t.id],e.homes[t.id],!0):0));e.playSequence(),r=setTimeout(o,1e3*(l+(0,d.Gc)(t,N.clipMeta).total+.4))}else l=!l,e.setAll(l),r=setTimeout(o,4e3);n=e.get().motionSeq,a=!1};o();const s=e.subscribe(e=>{a||e.motionSeq===n||T(!1)});return()=>{clearTimeout(r),s()}},[M,S,N]);const z=()=>{T(!1),M&&N&&N.store.setPose((0,r.A)({},N.store.live()),"instant")};return(0,h.jsxs)("main",{style:{maxWidth:1200,margin:"0 auto",padding:24,color:"#e4e4e4",fontFamily:"sans-serif"},children:[(0,h.jsx)("h1",{style:{fontSize:24},children:"Native USD viewer \u2014 interactive examples"}),(0,h.jsx)("p",{children:"Load a prepared USD layer directly in the browser. Joint motion, colliders and the Pose workspace use the existing viewer controls."}),D.length>0&&(0,h.jsx)("nav",{"aria-label":"Native USD examples",style:{display:"flex",flexWrap:"wrap",gap:10,margin:"20px 0"},children:D.map(e=>{var t,i;return(0,h.jsx)("button",{"aria-pressed":(null===f||void 0===f||null===(t=f.example)||void 0===t?void 0:t.id)===e.id,onClick:()=>(e=>{R(null),F({url:e.usdUrl,example:e},[]);const t=new URL(window.location.href);t.searchParams.set("example",e.id),window.history.replaceState(null,"",t)})(e),style:{padding:"10px 16px",borderRadius:8,border:"1px solid #666",background:(null===f||void 0===f||null===(i=f.example)||void 0===i?void 0:i.id)===e.id?"#493125":"#252525",color:"inherit",cursor:"pointer"},children:e.label},e.id)})}),A&&(0,h.jsx)("p",{role:"alert",style:{color:"#ffb4aa"},children:A}),(null===f||void 0===f?void 0:f.example)&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)("h2",{style:{fontSize:18},children:f.example.label}),(0,h.jsx)("p",{children:f.example.description}),(0,h.jsx)("p",{style:{color:"#bbb"},children:f.example.qualitySummary}),(0,h.jsx)("p",{style:{color:"#bbb"},children:"Surfaces are shown from both sides, matching Central\u2019s GLB preview; source surface settings are preserved in the USD download."}),f.example.previewMount&&(0,h.jsx)("p",{style:{color:"#bbb"},children:"A preview mounting stand supports the source robot; its original cables are retained."}),(0,h.jsxs)("p",{children:[(0,h.jsx)("a",{href:f.url,download:!0,children:"Download displayed USD"})," \xb7 ",(0,h.jsx)("a",{href:"?glbEvaluation=1&example=".concat(encodeURIComponent(f.example.id)),children:"Compare with the HD GLB example"})]})]}),(0,h.jsxs)("details",{open:L,onToggle:e=>E(e.currentTarget.open),style:{margin:"14px 0"},children:[(0,h.jsx)("summary",{style:{cursor:"pointer",color:"#bbb"},children:"Load another USD"}),(0,h.jsxs)("div",{style:{display:"flex",gap:12,flexWrap:"wrap",alignItems:"center",marginTop:12},children:[(0,h.jsx)("button",{onClick:()=>F({url:"".concat("","/native-usd-fixtures/articulated.usda")}),children:"Load articulated USDA fixture"}),(0,h.jsx)("button",{onClick:()=>F({url:"".concat("","/native-usd-fixtures/articulated.usdc")}),children:"Load articulated USDC fixture"}),(0,h.jsxs)("label",{children:["USD layer ",(0,h.jsx)("input",{type:"file",accept:".usd,.usda,.usdc",onChange:e=>{const t=e.target.files[0];e.target.value="",t&&F({file:t})}})]}),(0,h.jsxs)("label",{children:["Texture files ",(0,h.jsx)("input",{type:"file",multiple:!0,accept:".png,.jpg,.jpeg,.webp,.avif,.ktx2",onChange:e=>{const t=Array.from(e.target.files);b(t),f&&F(f,t)}})]}),f&&(0,h.jsx)("button",{onClick:()=>{var e;null===(e=q.current)||void 0===e||e.abort(),v(null),y(null),T(!1),k(null),j("Cancelled")},children:"Cancel / unload"})]})]}),(0,h.jsx)("p",{role:"status","data-testid":"usd-status",children:S}),U&&(0,h.jsxs)("p",{role:"alert",style:{color:"#ffb4aa"},children:[U," ",(0,h.jsx)("button",{onClick:()=>F(f,f.textureFiles),children:"Retry USD"})]}),(0,h.jsx)("div",{ref:W.regionRef,tabIndex:-1,style:{height:"min(65vh, 640px)",minHeight:340,position:"relative",border:"1px solid #555",borderRadius:12,overflow:"hidden"},children:(0,h.jsx)(a.z_,{ctl:W,fileName:(null===f||void 0===f||null===(e=f.file)||void 0===e?void 0:e.name)||(null===f||void 0===f||null===(t=f.url)||void 0===t?void 0:t.split("/").pop())||"USD",renderPicture:()=>null})}),N&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)("p",{"data-testid":"usd-metrics","data-load-metrics":JSON.stringify(N.metrics),children:["Reader: ",N.metrics.reader," ",N.metrics.readerVersion,"; meshes: ",N.metrics.meshCount,"; joints: ",N.store.ids.length,"; USD reader time: ",Math.round(N.metrics.loadMs)," ms; WASM heap: ",(N.metrics.wasmHeapBytes/1024/1024).toFixed(1)," MiB."]}),(0,h.jsxs)("fieldset",{disabled:"Ready"!==S,style:{display:"flex",gap:12,flexWrap:"wrap",border:0,padding:0,margin:0},children:[N.store.ids.length>0&&(0,h.jsx)("button",{"aria-pressed":M&&"Ready"===S,disabled:(0,o.VN)(),onClick:()=>M?z():T(!0),style:{padding:"8px 14px",border:"1px solid #777",borderRadius:6,cursor:"pointer"},children:M&&"Ready"===S?"Pause joint motion":"Play joint motion"}),N.store.ids.length>0&&(0,h.jsxs)(h.Fragment,{children:["robot"===N.articulation.kind?(0,h.jsx)("button",{onClick:()=>{T(!1),N.store.playSequence()},children:"Move all"}):(0,h.jsx)("button",{onClick:()=>{T(!1),N.store.setAll(!0)},children:"Open all"}),(0,h.jsx)("button",{onClick:()=>{T(!1),N.store.setAll(!1)},children:"robot"===N.articulation.kind?"Home":"Close all"})]}),(0,h.jsx)("button",{onClick:()=>N.store.setColliders(!N.store.get().colliders),children:"Toggle colliders"}),N.store.joints.map(e=>(0,h.jsx)(x,{joint:e,store:N.store,onMove:z},e.id))]}),N.diagnostics.length>0&&(0,h.jsxs)("details",{style:{marginTop:16,fontSize:13,color:"#aaa"},children:[(0,h.jsx)("summary",{children:"USD inspection details"}),(0,h.jsx)("pre",{style:{whiteSpace:"pre-wrap"},children:JSON.stringify(N.diagnostics,null,2)})]})]}),(0,h.jsx)("p",{style:{color:"#aaa",fontSize:13},children:"These examples read USD geometry and joints in the browser. Browser materials use prepared PreviewSurface graphs; full MDL optical equivalence and production Safari/iOS qualification remain separate checks."}),(0,h.jsx)(a.Vo,{ctl:W,fileName:(null===f||void 0===f||null===(i=f.file)||void 0===i?void 0:i.name)||"USD qualification",topOffset:0})]})}}}]);
|
services/explorer/dist/static/js/66.89eda487.chunk.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
"use strict";(self.webpackChunkdeepsearch_ui=self.webpackChunkdeepsearch_ui||[]).push([[66],{1066(b,a,c){c.r(a),c.d(a,{MeshoptDecoder:()=>e});var e=function(){var b=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),a=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if("object"!==typeof WebAssembly)return{supported:!1};var c,e=WebAssembly.validate(b)?i("b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuixkbbebeeddddilve9Weeeviebeoweuec:q:6dkr;Neqo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949WbwY9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVJ9V29VVbDl79IV9Rbqq:Ctklbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk:183lYud97dur978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnalTmbcuhoaiRbbgrc;WeGc:Ge9hmbarcsGgwce0mbc9:hoalcufadcd4cbawEgDadfgrcKcaawEgqaraq0Egk6mbaicefhxavaialfgmar9Rgoad;8qbbcj;abad9Uc;WFbGcjdadca0EhPdndndnadTmbaoadfhscbhzinaeaz9nmdamax9RaD6miabazad2fhHaxaDfhOaPaeaz9RazaPfae6EgAcsfgocl4cifcd4hCavcj;cbfaoc9WGgXcetfhQavcj;cbfaXci2fhLavcj;cbfaXfhKcbhYaoc;ab6h8AincbhodnawTmbaxaYcd4fRbbhokaocFeGhEcbh3avcj;cbfh5indndndndnaEa3cet4ciGgoc9:fPdebdkamaO9RaX6mwavcj;cbfa3aX2faOaX;8qbbaOaAfhOxdkavcj;cbfa3aX2fcbaX;8kbxekamaO9RaC6moaoclVcbawEhraOaCfhocbhidna8Ambamao9Rc;Gb6mbcbhlina5alfhidndndndndndnaOalco4fRbbgqciGarfPDbedibledibkaipxbbbbbbbbbbbbbbbbpklbxlkaiaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaiaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaiaopbbbpklbaoczfhoxekaiaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqcd4ciGarfPDbedibledibkaiczfpxbbbbbbbbbbbbbbbbpklbxlkaiczfaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaiczfaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaiczfaopbbbpklbaoczfhoxekaiczfaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqcl4ciGarfPDbedibledibkaicafpxbbbbbbbbbbbbbbbbpklbxlkaicafaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaicafaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaicafaopbbbpklbaoczfhoxekaicafaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqco4arfPDbedibledibkaic8Wfpxbbbbbbbbbbbbbbbbpklbxlkaic8Wfaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngicitc:q1jjbfpbibaic:q:yjjbfRbbgipsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Ngqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaiaoclffaqc:q:yjjbfRbbfhoxikaic8Wfaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngicitc:q1jjbfpbibaic:q:yjjbfRbbgipsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Ngqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaiaocwffaqc:q:yjjbfRbbfhoxdkaic8Wfaopbbbpklbaoczfhoxekaic8WfaopbbdaoRbbgicitc:q1jjbfpbibaic:q:yjjbfRbbgipsaoRbegqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaiaocdffaqc:q:yjjbfRbbfhokalc;abfhialcjefaX0meaihlamao9Rc;Fb0mbkkdnaiaX9pmbaici4hlinamao9RcK6mwa5aifhqdndndndndndnaOaico4fRbbalcoG4ciGarfPDbedibledibkaqpxbbbbbbbbbbbbbbbbpkbbxlkaqaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spkbbaaaoclffahc:q:yjjbfRbbfhoxikaqaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spkbbaaaocwffahc:q:yjjbfRbbfhoxdkaqaopbbbpkbbaoczfhoxekaqaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpkbbaaaocdffahc:q:yjjbfRbbfhokalcdfhlaiczfgiaX6mbkkaohOaoTmoka5aXfh5a3cefg3cl9hmbkdndndndnawTmbasaYcd4fRbbglciGPlbedwbkaXTmdavcjdfaYfhlavaYfpbdbhgcbhoinalavcj;cbfaofpblbg8JaKaofpblbg8KpmbzeHdOiAlCvXoQrLg8LaQaofpblbg8MaLaofpblbg8NpmbzeHdOiAlCvXoQrLgypmbezHdiOAlvCXorQLg8Ecep9Ta8Epxeeeeeeeeeeeeeeeeg8Fp9op9Hp9rg8Eagp9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8LaypmwDKYqk8AExm35Ps8E8Fg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8Ja8KpmwKDYq8AkEx3m5P8Es8Fg8Ja8Ma8NpmwKDYq8AkEx3m5P8Es8Fg8KpmbezHdiOAlvCXorQLg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8Ja8KpmwDKYqk8AExm35Ps8E8Fg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Ug8Fp9Abbbaladfgla8Fa8Ea8Epmlvorlvorlvorlvorp9Ug8Fp9Abbbaladfgla8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9Ug8Fp9Abbbaladfgla8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9AbbbaladfhlaoczfgoaX6mbxikkaXTmeavcjdfaYfhlavaYfpbdbhgcbhoinalavcj;cbfaofpblbg8JaKaofpblbg8KpmbzeHdOiAlCvXoQrLg8LaQaofpblbg8MaLaofpblbg8NpmbzeHdOiAlCvXoQrLgypmbezHdiOAlvCXorQLg8Ecep:nea8Epxebebebebebebebebg8Fp9op:bep9rg8Eagp:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8LaypmwDKYqk8AExm35Ps8E8Fg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8Ja8KpmwKDYq8AkEx3m5P8Es8Fg8Ja8Ma8NpmwKDYq8AkEx3m5P8Es8Fg8KpmbezHdiOAlvCXorQLg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8Ja8KpmwDKYqk8AExm35Ps8E8Fg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeg8Fp9Abbbaladfgla8Fa8Ea8Epmlvorlvorlvorlvorp:oeg8Fp9Abbbaladfgla8Fa8Ea8EpmwDqkwDqkwDqkwDqkp:oeg8Fp9Abbbaladfgla8Fa8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9AbbbaladfhlaoczfgoaX6mbxdkkaXTmbcbhocbalcl4gl9Rc8FGhiavcjdfaYfhravaYfpbdbh8Finaravcj;cbfaofpblbggaKaofpblbg8JpmbzeHdOiAlCvXoQrLg8KaQaofpblbg8LaLaofpblbg8MpmbzeHdOiAlCvXoQrLg8NpmbezHdiOAlvCXorQLg8Eaip:Rea8Ealp:Sep9qg8Ea8Fp9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Fa8Ka8NpmwDKYqk8AExm35Ps8E8Fg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Faga8JpmwKDYq8AkEx3m5P8Es8Fgga8La8MpmwKDYq8AkEx3m5P8Es8Fg8JpmbezHdiOAlvCXorQLg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Faga8JpmwDKYqk8AExm35Ps8E8Fg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9AbbbaradfhraoczfgoaX6mbkkaYclfgYad6mbkaHavcjdfaAad2;8qbbavavcjdfaAcufad2fad;8qbbaAazfhzc9:hoaOhxaOmbxlkkaeTmbaDalfhrcbhocuhlinaralaD9RglfaD6mdaPaeao9RaoaPfae6Eaofgoae6mbkaial9Rhxkcbc99amax9RakSEhoxekc9:hokavcj;kbf8Kjjjjbaokwbz:bjjjbk:TseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhldnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhoindnalaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfaoaDcu7gPcl4fcsGcitfgsydlhzasydbhHdndnaDcsGgsak9pmbavaiaPfcsGcdtfydbaxasEhDaxasTgOfhxxekdndnascsSmbcehOasc987asamffcefhDxekalcefhDal8SbbgscFeGhPdndnascu9mmbaDhlxekalcvfhlaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhlkcehOaPce4cbaPceG9R7amfhDkaDhmkavc;abfaocitfgsaDBdbasazBdlavaicdtfaDBdbavc;abfaocefcsGcitfgsaHBdbasaDBdlaocdfhoaOaifhidnadcd9hmbabarcetfgsaH87ebasclfaD87ebascdfaz87ebxdkabarcdtfgsaHBdbascwfaDBdbasclfazBdbxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHclfas87ebaHcdfaD87ebxekabarcdtfgHaxBdbaHcwfasBdbaHclfaDBdbkavaicdtfaxBdbavc;abfaocitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfaocefcsGcitfgHasBdbaHaDBdlavaiaPfgicsGcdtfasBdbavc;abfaocdfcsGcitfgDaxBdbaDasBdlaocifhoaiaOfhiazaOfhxxekaxcbalRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbalcefhDxekalcdfhDal8SbegPcFeGhsdnaPcu9kmbalcofhAascFbGhscrhldninaD8SbbgPcFbGaltasVhsaPcu9kmeaDcefhDalcrfglc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbglcFeGhPdnalcu9kmbaDcvfhzaPcFbGhPcrhldninas8SbbgDcFbGaltaPVhPaDcu9kmeascefhsalcrfglc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashlxekascefhlas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninal8SbbgscFbGaDtaPVhPascu9kmealcefhlaDcrfgDc8J9hmbkaOhlxekalcefhlkaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDclfaO87ebaDcdfaz87ebxekabarcdtfgDaABdbaDcwfaOBdbaDclfazBdbkavc;abfaocitfgDazBdbaDaABdlavaicdtfaABdbavc;abfaocefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfaocdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhiaocifhokawcefhwaocsGhoaicsGhiarcifgrae6mbkkcbc99alaqSEhokavc;aef8Kjjjjbaok:clevu8Jjjjjbcz9Rhvdnaecvfal9nmbc9:skdnaiRbbc;:eGc;qeSmbcuskav9cb83iwaicefhoaialfc98fhrdnaeTmbdnadcdSmbcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcdtfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgiBdbalaiBdbawcefgwae9hmbxdkkcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcetfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgi87ebalaiBdbawcefgwae9hmbkkcbc99aoarSEk:2Pliur97eue978Jjjjjbc8W9Rhiaec98Ghldndnadcl9hmbdnalTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalaeSmeaipxbbbbbbbbbbbbbbbbgqpklbaiabalcdtfgdaeciGglcdtgv;8qbbdnalTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDaqp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkadaiav;8qbbskaipxFubbFubbFubbFubbgxpklbdnalTmbcbhvabhdinadczfgmampbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraipblbaDaopmlvorxmPsCXQL358E8Fp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgPp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;MeawaqawaPp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oaoarpmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgval6mbkkalaeSmbaiczfpxbbbbbbbbbbbbbbbbgopklbaiaopklbaiabalcitfgdaeciGglcitgv;8qbbaiaxpkladnalTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraipblaaDaopmlvorxmPsCXQL358E8Fp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgPp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;MeawaqawaPp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oaoarpmbezHdiOAlvCXorQLp9qpklbkadaiav;8qbbkk:Iwllue97euo978Jjjjjbca9Rhidnaec98GglTmbcbhvabhoinaocKfpx:ji:1S:ji:1S:ji:1S:ji:1SaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkpxibbbibbbibbbibbbp9qgxp;6ep;Negmaxaxp:1ep;7egxaxp;KearaDpmbediwDqkzHOAKY8AEgxczp:Reczp:Sep;6egrarp;Meaxczp:Sep;6egDaDp;Meaqczp:Reczp:Sep;6egqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jep;Mepxbbn0bbn0bbn0bbn0gxp;KepxFFbbFFbbFFbbFFbbgPp9oamaDp;Meaxp;Keczp:Rep9qgDamarp;Meaxp;KeaPp9oamaqp;Meaxp;Keczp:Rep9qgxpmwDKYqk8AExm35Ps8E8Fgrp5eakclp:RegmpEi:T:j83ibawarp5bampEd:T:j83ibaocwfaDaxpmbezHdiOAlvCXorQLgxp5eampEe:T:j83ibaoaxp5bampEb:T:j83ibaocafhoavclfgval6mbkkdnalaeSmbaiczfpxbbbbbbbbbbbbbbbbgmpklbaiampklbaiabalcitfgoaeciGgvcitgw;8qbbdnavTmbaipx:ji:1S:ji:1S:ji:1S:ji:1SaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkpxibbbibbbibbbibbbp9qgxp;6ep;Negmaxaxp:1ep;7egxaxp;KearaDpmbediwDqkzHOAKY8AEgxczp:Reczp:Sep;6egrarp;Meaxczp:Sep;6egDaDp;Meaqczp:Reczp:Sep;6egqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jep;Mepxbbn0bbn0bbn0bbn0gxp;KepxFFbbFFbbFFbbFFbbgPp9oamaDp;Meaxp;Keczp:Rep9qgDamarp;Meaxp;KeaPp9oamaqp;Meaxp;Keczp:Rep9qgxpmwDKYqk8AExm35Ps8E8Fgrp5eakclp:RegmpEi:T:j83iKaiarp5bampEd:T:j83izaiaDaxpmbezHdiOAlvCXorQLgxp5eampEe:T:j83iwaiaxp5bampEb:T:j83ibkaoaiaw;8qbbkk;uddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbheabhdinadadpbbbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepkbbadczfhdaeclfgeav6mbkkdnavalSmbaic8WfpxbbbbbbbbbbbbbbbbgopklbaicafaopklbaiczfaopklbaiaopklbaiabavcdtfgdalciGgecdtgv;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepklbkadaiav;8qbbkk:CPvdue97euw97eu8Jjjjjbc8W9Rhiaec98Ghldndnadcl9hmbaipxbbbbbbbbbbbbbbbbgvpklbdnalTmbcbhoabhdinadpbbbhradpxbbuJbbuJbbuJbbuJaipblbarcKp:Tep9qgwcep:Seawp9qgDcdp:SeaDp9qgDclp:SeaDp9qgqp;6ep;NegDarcwp:RecKp:SegkarpxFbbbFbbbFbbbFbbbgxp9ogmp:Uep;6ep;Mepxbbn0bbn0bbn0bbn0gPp;Kecwp:RepxbFbbbFbbbFbbbFbbp9oaDamakp:Xearczp:RecKp:Segrp:Uep;6ep;MeaPp;Keaxp9op9qaDamakarp:Uep:Xep;6ep;MeaPp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qaDaqawcep:Rep9oawpxebbbebbbebbbebbbp9op9qp;6ep;MeaPp;KecKp:Rep9qpkbbadczfhdaoclfgoal6mbkkalaeSmeaiavpklaaicafabalcdtfgdaeciGglcdtgo;8qbbaiavpklbdnalTmbaipblahraipxbbuJbbuJbbuJbbuJaipblbarcKp:Tep9qgwcep:Seawp9qgDcdp:SeaDp9qgDclp:SeaDp9qgqp;6ep;NegDarcwp:RecKp:SegkarpxFbbbFbbbFbbbFbbbgxp9ogmp:Uep;6ep;Mepxbbn0bbn0bbn0bbn0gPp;Kecwp:RepxbFbbbFbbbFbbbFbbp9oaDamakp:Xearczp:RecKp:Segrp:Uep;6ep;MeaPp;Keaxp9op9qaDamakarp:Uep:Xep;6ep;MeaPp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qaDaqawcep:Rep9oawpxebbbebbbebbbebbbp9op9qp;6ep;MeaPp;KecKp:Rep9qpklakadaicafao;8qbbskaipxbbbbbbbbbbbbbbbbgvpklbdnalTmbcbhoabhdinadczfgspxbFu9hbFu9hbFu9hbFu9hadpbbbgDaspbbbgPpmlvorxmPsCXQL358E8Fgmczp:Teaipblbp9qgrcep:Searp9qgwcdp:Seawp9qgwclp:Seawp9qgwcwp:Seawp9qgqp;6ep;NegwaDaPpmbediwDqkzHOAKY8AEgDpxFFbbFFbbFFbbFFbbgPp9ogkaDczp:Segxp:Ueamczp:Reczp:Segmp:Xep;6ep;Mepxbbn0bbn0bbn0bbn0gDp;KeaPp9oawakaxamp:Uep:Xep;6ep;MeaDp;Keczp:Rep9qgxawaqarcep:Rep9oarpxebbbebbbebbbebbbp9op9qp;6ep;MeaDp;Keczp:Reawamakp:Uep;6ep;MeaDp;KeaPp9op9qgrpmwDKYqk8AExm35Ps8E8FpkbbadaxarpmbezHdiOAlvCXorQLpkbbadcafhdaoclfgoal6mbkkalaeSmbaiczfpxbbbbbbbbbbbbbbbbgrpklbaiarpklbaiabalcitfgdaeciGglcitgo;8qbbaiavpkladnalTmbaipxbFu9hbFu9hbFu9hbFu9haipblbgDaipblzgPpmlvorxmPsCXQL358E8Fgmczp:Teaipblap9qgrcep:Searp9qgwcdp:Seawp9qgwclp:Seawp9qgwcwp:Seawp9qgqp;6ep;NegwaDaPpmbediwDqkzHOAKY8AEgDpxFFbbFFbbFFbbFFbbgPp9ogkaDczp:Segxp:Ueamczp:Reczp:Segmp:Xep;6ep;Mepxbbn0bbn0bbn0bbn0gDp;KeaPp9oawakaxamp:Uep:Xep;6ep;MeaDp;Keczp:Rep9qgxawaqarcep:Rep9oarpxebbbebbbebbbebbbp9op9qp;6ep;MeaDp;Keczp:Reawamakp:Uep;6ep;MeaDp;KeaPp9op9qgrpmwDKYqk8AExm35Ps8E8FpklzaiaxarpmbezHdiOAlvCXorQLpklbkadaiao;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz:Dbb"):i("b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuixkbeeeddddillviebeoweuec:W:Odkr;Neqo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949WboY9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVJ9V29VVbrl79IV9Rbwq;lZkdbk;jYi5ud9:du8Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnalTmbcuhoaiRbbgrc;WeGc:Ge9hmbarcsGgwce0mbc9:hoalcufadcd4cbawEgDadfgrcKcaawEgqaraq0Egk6mbaicefhxcj;abad9Uc;WFbGcjdadca0EhmaialfgPar9Rgoadfhsavaoadz:jjjjbgzceVhHcbhOdndninaeaO9nmeaPax9RaD6mdamaeaO9RaOamfgoae6EgAcsfglc9WGhCabaOad2fhXaAcethQaxaDfhiaOaeaoaeao6E9RhLalcl4cifcd4hKazcj;cbfaAfhYcbh8AazcjdfhEaHh3incbhodnawTmbaxa8Acd4fRbbhokaocFeGh5cbh8Eazcj;cbfhqinaih8Fdndndndna5a8Ecet4ciGgoc9:fPdebdkaPa8F9RaA6mrazcj;cbfa8EaA2fa8FaAz:jjjjb8Aa8FaAfhixdkazcj;cbfa8EaA2fcbaAz:kjjjb8Aa8FhixekaPa8F9RaK6mva8FaKfhidnaCTmbaPai9RcK6mbaocdtc:q1jjbfcj1jjbawEhaczhrcbhlinargoc9Wfghaqfhrdndndndndndnaaa8Fahco4fRbbalcoG4ciGcdtfydbPDbedvivvvlvkar9cb83bbarcwf9cb83bbxlkarcbaiRbdai8Xbb9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:gg9cjjjjjz:dg8J9qE86bbaqaofgrcGfag9c8F1:NghcKtc8F91aicdfa8J9c8N1:Nfg8KRbbG86bbarcVfcba8KahcjeGcr4fghRbbag9cjjjjjl:dg8J9qE86bbarc7fcbaha8J9c8L1:NfghRbbag9cjjjjjd:dg8J9qE86bbarctfcbaha8J9c8K1:NfghRbbag9cjjjjje:dg8J9qE86bbarc91fcbaha8J9c8J1:NfghRbbag9cjjjj;ab:dg8J9qE86bbarc4fcbaha8J9cg1:NfghRbbag9cjjjja:dg8J9qE86bbarc93fcbaha8J9ch1:NfghRbbag9cjjjjz:dgg9qE86bbarc94fcbahag9ca1:NfghRbbai8Xbe9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:gg9cjjjjjz:dg8J9qE86bbarc95fag9c8F1:NgicKtc8F91aha8J9c8N1:NfghRbbG86bbarc96fcbahaicjeGcr4fgiRbbag9cjjjjjl:dg8J9qE86bbarc97fcbaia8J9c8L1:NfgiRbbag9cjjjjjd:dg8J9qE86bbarc98fcbaia8J9c8K1:NfgiRbbag9cjjjjje:dg8J9qE86bbarc99fcbaia8J9c8J1:NfgiRbbag9cjjjj;ab:dg8J9qE86bbarc9:fcbaia8J9cg1:NfgiRbbag9cjjjja:dg8J9qE86bbarcufcbaia8J9ch1:NfgiRbbag9cjjjjz:dgg9qE86bbaiag9ca1:NfhixikaraiRblaiRbbghco4g8Ka8KciSg8KE86bbaqaofgrcGfaiclfa8Kfg8KRbbahcl4ciGg8La8LciSg8LE86bbarcVfa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc7fa8Ka8Lfg8KRbbahciGghahciSghE86bbarctfa8Kahfg8KRbbaiRbeghco4g8La8LciSg8LE86bbarc91fa8Ka8Lfg8KRbbahcl4ciGg8La8LciSg8LE86bbarc4fa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc93fa8Ka8Lfg8KRbbahciGghahciSghE86bbarc94fa8Kahfg8KRbbaiRbdghco4g8La8LciSg8LE86bbarc95fa8Ka8Lfg8KRbbahcl4ciGg8La8LciSg8LE86bbarc96fa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc97fa8Ka8Lfg8KRbbahciGghahciSghE86bbarc98fa8KahfghRbbaiRbigico4g8Ka8KciSg8KE86bbarc99faha8KfghRbbaicl4ciGg8Ka8KciSg8KE86bbarc9:faha8KfghRbbaicd4ciGg8Ka8KciSg8KE86bbarcufaha8KfgrRbbaiciGgiaiciSgiE86bbaraifhixdkaraiRbwaiRbbghcl4g8Ka8KcsSg8KE86bbaqaofgrcGfaicwfa8Kfg8KRbbahcsGghahcsSghE86bbarcVfa8KahfghRbbaiRbeg8Kcl4g8La8LcsSg8LE86bbarc7faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarctfaha8KfghRbbaiRbdg8Kcl4g8La8LcsSg8LE86bbarc91faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc4faha8KfghRbbaiRbig8Kcl4g8La8LcsSg8LE86bbarc93faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc94faha8KfghRbbaiRblg8Kcl4g8La8LcsSg8LE86bbarc95faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc96faha8KfghRbbaiRbvg8Kcl4g8La8LcsSg8LE86bbarc97faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc98faha8KfghRbbaiRbog8Kcl4g8La8LcsSg8LE86bbarc99faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc9:faha8KfghRbbaiRbrgicl4g8Ka8KcsSg8KE86bbarcufaha8KfgrRbbaicsGgiaicsSgiE86bbaraifhixekarai8Pbb83bbarcwfaicwf8Pbb83bbaiczfhikdnaoaC9pmbalcdfhlaoczfhraPai9RcL0mekkaoaC6moaimexokaCmva8FTmvkaqaAfhqa8Ecefg8Ecl9hmbkdndndndnawTmbasa8Acd4fRbbgociGPlbedrbkaATmdaza8Afh8Fazcj;cbfhhcbh8EaEhaina8FRbbhraahocbhlinaoahalfRbbgqce4cbaqceG9R7arfgr86bbaoadfhoaAalcefgl9hmbkaacefhaa8Fcefh8FahaAfhha8Ecefg8Ecl9hmbxikkaATmeaza8Afhaazcj;cbfhhcbhoceh8EaYh8FinaEaofhlaa8Vbbhrcbhoinala8FaofRbbcwtahaofRbbgqVc;:FiGce4cbaqceG9R7arfgr87bbaladfhlaLaocefgofmbka8FaQfh8FcdhoaacdfhaahaQfhha8EceGhlcbh8EalmbxdkkaATmbcbaocl49Rh8Eaza8AfRbbhqcwhoa3hlinalRbbaotaqVhqalcefhlaocwfgoca9hmbkcbhhaEh8FaYhainazcj;cbfahfRbbhrcwhoaahlinalRbbaotarVhralaAfhlaocwfgoca9hmbkara8E93aq7hqcbhoa8Fhlinalaqao486bbalcefhlaocwfgoca9hmbka8Fadfh8FaacefhaahcefghaA9hmbkkaEclfhEa3clfh3a8Aclfg8Aad6mbkaXazcjdfaAad2z:jjjjb8AazazcjdfaAcufad2fadz:jjjjb8AaAaOfhOaihxaimbkc9:hoxdkcbc99aPax9RakSEhoxekc9:hokavcj;kbf8Kjjjjbaok:XseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:kjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhldnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhoindnalaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfaoaDcu7gPcl4fcsGcitfgsydlhzasydbhHdndnaDcsGgsak9pmbavaiaPfcsGcdtfydbaxasEhDaxasTgOfhxxekdndnascsSmbcehOasc987asamffcefhDxekalcefhDal8SbbgscFeGhPdndnascu9mmbaDhlxekalcvfhlaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhlkcehOaPce4cbaPceG9R7amfhDkaDhmkavc;abfaocitfgsaDBdbasazBdlavaicdtfaDBdbavc;abfaocefcsGcitfgsaHBdbasaDBdlaocdfhoaOaifhidnadcd9hmbabarcetfgsaH87ebasclfaD87ebascdfaz87ebxdkabarcdtfgsaHBdbascwfaDBdbasclfazBdbxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHclfas87ebaHcdfaD87ebxekabarcdtfgHaxBdbaHcwfasBdbaHclfaDBdbkavaicdtfaxBdbavc;abfaocitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfaocefcsGcitfgHasBdbaHaDBdlavaiaPfgicsGcdtfasBdbavc;abfaocdfcsGcitfgDaxBdbaDasBdlaocifhoaiaOfhiazaOfhxxekaxcbalRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbalcefhDxekalcdfhDal8SbegPcFeGhsdnaPcu9kmbalcofhAascFbGhscrhldninaD8SbbgPcFbGaltasVhsaPcu9kmeaDcefhDalcrfglc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbglcFeGhPdnalcu9kmbaDcvfhzaPcFbGhPcrhldninas8SbbgDcFbGaltaPVhPaDcu9kmeascefhsalcrfglc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashlxekascefhlas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninal8SbbgscFbGaDtaPVhPascu9kmealcefhlaDcrfgDc8J9hmbkaOhlxekalcefhlkaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDclfaO87ebaDcdfaz87ebxekabarcdtfgDaABdbaDcwfaOBdbaDclfazBdbkavc;abfaocitfgDazBdbaDaABdlavaicdtfaABdbavc;abfaocefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfaocdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhiaocifhokawcefhwaocsGhoaicsGhiarcifgrae6mbkkcbc99alaqSEhokavc;aef8Kjjjjbaok:clevu8Jjjjjbcz9Rhvdnaecvfal9nmbc9:skdnaiRbbc;:eGc;qeSmbcuskav9cb83iwaicefhoaialfc98fhrdnaeTmbdnadcdSmbcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcdtfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgiBdbalaiBdbawcefgwae9hmbxdkkcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcetfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgi87ebalaiBdbawcefgwae9hmbkkcbc99aoarSEk:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk::ioiue99dud99dud99dnaeTmbcbhiabhlindndnal8Uebgv:YgoJ:ji:1Salcof8UebgrciVgw:Y:vgDNJbbbZJbbb:;avcu9kEMgq:lJbbb9p9DTmbaq:Ohkxekcjjjj94hkkalclf8Uebhvalcdf8UebhxabaiarcefciGfcetfak87ebdndnax:YgqaDNJbbbZJbbb:;axcu9kEMgm:lJbbb9p9DTmbam:Ohxxekcjjjj94hxkabaiarciGfgkcd7cetfax87ebdndnav:YgmaDNJbbbZJbbb:;avcu9kEMgP:lJbbb9p9DTmbaP:Ohvxekcjjjj94hvkabaiarcufciGfcetfav87ebdndnawaw2:ZgPaPMaoaoN:taqaqN:tamamN:tgoJbbbbaoJbbbb9GE:raDNJbbbZMgD:lJbbb9p9DTmbaD:Ohrxekcjjjj94hrkabakcetfar87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj98Gcjjj;8if::NUdbabclfhbadcufgdmbkkk:Tvirud99eudndnadcl9hmbaeTmeindndnabRbbgiabcefgl8Sbbgvabcdfgo8Sbbgrf9R:YJbbuJabcifgwRbbgdce4adVgDcd4aDVgDcl4aDVgD:Z:vgqNJbbbZMgk:lJbbb9p9DTmbak:Ohxxekcjjjj94hxkaoax86bbdndnaraif:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohoxekcjjjj94hokalao86bbdndnavaifar9R:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabai86bbdndnaDadcetGadceGV:ZaqNJbbbZMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkawad86bbabclfhbaecufgembxdkkaeTmbindndnab8Vebgiabcdfgl8Uebgvabclfgo8Uebgrf9R:YJbFu9habcofgw8Vebgdce4adVgDcd4aDVgDcl4aDVgDcw4aDVgD:Z:vgqNJbbbZMgk:lJbbb9p9DTmbak:Ohxxekcjjjj94hxkaoax87ebdndnaraif:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohoxekcjjjj94hokalao87ebdndnavaifar9R:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabai87ebdndnaDadcetGadceGV:ZaqNJbbbZMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkawad87ebabcwfhbaecufgembkkk9teiucbcbyd:K1jjbgeabcifc98GfgbBd:K1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkk81dbcjwk8Kbbbbdbbblbbbwbbbbbbbebbbdbbblbbbwbbbbc:Kwkl8WNbb"),p=WebAssembly.instantiate(e,{}).then(function(b){(c=b.instance).exports.__wasm_call_ctors()});function i(b){for(var c=new Uint8Array(b.length),e=0;e<b.length;++e){var p=b.charCodeAt(e);c[e]=p>96?p-97:p>64?p-39:p+4}var i=0;for(e=0;e<b.length;++e)c[i++]=c[e]<60?a[c[e]]:64*(c[e]-60)+c[++e];return c.buffer.slice(0,i)}function g(b,a,c,e,p,i,g){var d=b.exports.sbrk,f=e+3&-4,l=d(f*p),h=d(i.length),o=new Uint8Array(b.exports.memory.buffer);o.set(i,h);var s=a(l,e,p,h,i.length);if(0==s&&g&&g(l,f,p),c.set(o.subarray(l,l+e*p)),d(l-d(0)),0!=s)throw new Error("Malformed buffer data: "+s)}var d={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp",COLOR:"meshopt_decodeFilterColor"},f={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"},l=[],h=0;function o(b){var a={object:new Worker(b),pending:0,requests:{}};return a.object.onmessage=function(b){var c=b.data;a.pending-=c.count,a.requests[c.id][c.action](c.value),delete a.requests[c.id]},a}function s(b){var a=b.data;if(!a.id)return self.close();self.ready.then(function(b){try{var c=new Uint8Array(a.count*a.size);g(b,b.exports[a.mode],c,a.count,a.size,a.source,b.exports[a.filter]),self.postMessage({id:a.id,count:a.count,action:"resolve",value:c},[c.buffer])}catch(e){self.postMessage({id:a.id,count:a.count,action:"reject",value:e})}})}return{ready:p,supported:!0,useWorkers:function(b){!function(b){for(var a="self.ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(e)+"]), {}).then(function(result) { result.instance.exports.__wasm_call_ctors(); return result.instance; });self.onmessage = "+s.name+";"+g.toString()+s.toString(),c=new Blob([a],{type:"text/javascript"}),p=URL.createObjectURL(c),i=l.length;i<b;++i)l[i]=o(p);for(i=b;i<l.length;++i)l[i].object.postMessage({});l.length=b,URL.revokeObjectURL(p)}(b)},decodeVertexBuffer:function(b,a,e,p,i){g(c,c.exports.meshopt_decodeVertexBuffer,b,a,e,p,c.exports[d[i]])},decodeIndexBuffer:function(b,a,e,p){g(c,c.exports.meshopt_decodeIndexBuffer,b,a,e,p)},decodeIndexSequence:function(b,a,e,p){g(c,c.exports.meshopt_decodeIndexSequence,b,a,e,p)},decodeGltfBuffer:function(b,a,e,p,i,l){g(c,c.exports[f[i]],b,a,e,p,c.exports[d[l]])},decodeGltfBufferAsync:function(b,a,e,i,o){return l.length>0?function(b,a,c,e,p){for(var i=l[0],g=1;g<l.length;++g)l[g].pending<i.pending&&(i=l[g]);return new Promise(function(g,d){var f=new Uint8Array(c),l=++h;i.pending+=b,i.requests[l]={resolve:g,reject:d},i.object.postMessage({id:l,count:b,size:a,source:f,mode:e,filter:p},[f.buffer])})}(b,a,e,f[i],d[o]):p.then(function(){var p=new Uint8Array(b*a);return g(c,c.exports[f[i]],p,b,a,e,c.exports[d[o]]),p})}}}()}}]);
|
services/explorer/dist/static/js/66.e5e030ee.chunk.js
DELETED
|
@@ -1 +0,0 @@
|
|
| 1 |
-
"use strict";(self.webpackChunkdeepsearch_ui=self.webpackChunkdeepsearch_ui||[]).push([[66],{66(b,a,c){c.r(a),c.d(a,{MeshoptDecoder:()=>e});var e=function(){var b=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),a=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if("object"!==typeof WebAssembly)return{supported:!1};var c,e=WebAssembly.validate(b)?i("b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuixkbbebeeddddilve9Weeeviebeoweuec:q:6dkr;Neqo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949WbwY9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVJ9V29VVbDl79IV9Rbqq:Ctklbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk:183lYud97dur978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnalTmbcuhoaiRbbgrc;WeGc:Ge9hmbarcsGgwce0mbc9:hoalcufadcd4cbawEgDadfgrcKcaawEgqaraq0Egk6mbaicefhxavaialfgmar9Rgoad;8qbbcj;abad9Uc;WFbGcjdadca0EhPdndndnadTmbaoadfhscbhzinaeaz9nmdamax9RaD6miabazad2fhHaxaDfhOaPaeaz9RazaPfae6EgAcsfgocl4cifcd4hCavcj;cbfaoc9WGgXcetfhQavcj;cbfaXci2fhLavcj;cbfaXfhKcbhYaoc;ab6h8AincbhodnawTmbaxaYcd4fRbbhokaocFeGhEcbh3avcj;cbfh5indndndndnaEa3cet4ciGgoc9:fPdebdkamaO9RaX6mwavcj;cbfa3aX2faOaX;8qbbaOaAfhOxdkavcj;cbfa3aX2fcbaX;8kbxekamaO9RaC6moaoclVcbawEhraOaCfhocbhidna8Ambamao9Rc;Gb6mbcbhlina5alfhidndndndndndnaOalco4fRbbgqciGarfPDbedibledibkaipxbbbbbbbbbbbbbbbbpklbxlkaiaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaiaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaiaopbbbpklbaoczfhoxekaiaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqcd4ciGarfPDbedibledibkaiczfpxbbbbbbbbbbbbbbbbpklbxlkaiczfaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaiczfaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaiczfaopbbbpklbaoczfhoxekaiczfaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqcl4ciGarfPDbedibledibkaicafpxbbbbbbbbbbbbbbbbpklbxlkaicafaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaicafaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaicafaopbbbpklbaoczfhoxekaicafaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqco4arfPDbedibledibkaic8Wfpxbbbbbbbbbbbbbbbbpklbxlkaic8Wfaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngicitc:q1jjbfpbibaic:q:yjjbfRbbgipsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Ngqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaiaoclffaqc:q:yjjbfRbbfhoxikaic8Wfaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngicitc:q1jjbfpbibaic:q:yjjbfRbbgipsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Ngqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaiaocwffaqc:q:yjjbfRbbfhoxdkaic8Wfaopbbbpklbaoczfhoxekaic8WfaopbbdaoRbbgicitc:q1jjbfpbibaic:q:yjjbfRbbgipsaoRbegqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaiaocdffaqc:q:yjjbfRbbfhokalc;abfhialcjefaX0meaihlamao9Rc;Fb0mbkkdnaiaX9pmbaici4hlinamao9RcK6mwa5aifhqdndndndndndnaOaico4fRbbalcoG4ciGarfPDbedibledibkaqpxbbbbbbbbbbbbbbbbpkbbxlkaqaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spkbbaaaoclffahc:q:yjjbfRbbfhoxikaqaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spkbbaaaocwffahc:q:yjjbfRbbfhoxdkaqaopbbbpkbbaoczfhoxekaqaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpkbbaaaocdffahc:q:yjjbfRbbfhokalcdfhlaiczfgiaX6mbkkaohOaoTmoka5aXfh5a3cefg3cl9hmbkdndndndnawTmbasaYcd4fRbbglciGPlbedwbkaXTmdavcjdfaYfhlavaYfpbdbhgcbhoinalavcj;cbfaofpblbg8JaKaofpblbg8KpmbzeHdOiAlCvXoQrLg8LaQaofpblbg8MaLaofpblbg8NpmbzeHdOiAlCvXoQrLgypmbezHdiOAlvCXorQLg8Ecep9Ta8Epxeeeeeeeeeeeeeeeeg8Fp9op9Hp9rg8Eagp9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8LaypmwDKYqk8AExm35Ps8E8Fg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8Ja8KpmwKDYq8AkEx3m5P8Es8Fg8Ja8Ma8NpmwKDYq8AkEx3m5P8Es8Fg8KpmbezHdiOAlvCXorQLg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8Ja8KpmwDKYqk8AExm35Ps8E8Fg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Ug8Fp9Abbbaladfgla8Fa8Ea8Epmlvorlvorlvorlvorp9Ug8Fp9Abbbaladfgla8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9Ug8Fp9Abbbaladfgla8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9AbbbaladfhlaoczfgoaX6mbxikkaXTmeavcjdfaYfhlavaYfpbdbhgcbhoinalavcj;cbfaofpblbg8JaKaofpblbg8KpmbzeHdOiAlCvXoQrLg8LaQaofpblbg8MaLaofpblbg8NpmbzeHdOiAlCvXoQrLgypmbezHdiOAlvCXorQLg8Ecep:nea8Epxebebebebebebebebg8Fp9op:bep9rg8Eagp:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8LaypmwDKYqk8AExm35Ps8E8Fg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8Ja8KpmwKDYq8AkEx3m5P8Es8Fg8Ja8Ma8NpmwKDYq8AkEx3m5P8Es8Fg8KpmbezHdiOAlvCXorQLg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8Ja8KpmwDKYqk8AExm35Ps8E8Fg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeg8Fp9Abbbaladfgla8Fa8Ea8Epmlvorlvorlvorlvorp:oeg8Fp9Abbbaladfgla8Fa8Ea8EpmwDqkwDqkwDqkwDqkp:oeg8Fp9Abbbaladfgla8Fa8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9AbbbaladfhlaoczfgoaX6mbxdkkaXTmbcbhocbalcl4gl9Rc8FGhiavcjdfaYfhravaYfpbdbh8Finaravcj;cbfaofpblbggaKaofpblbg8JpmbzeHdOiAlCvXoQrLg8KaQaofpblbg8LaLaofpblbg8MpmbzeHdOiAlCvXoQrLg8NpmbezHdiOAlvCXorQLg8Eaip:Rea8Ealp:Sep9qg8Ea8Fp9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Fa8Ka8NpmwDKYqk8AExm35Ps8E8Fg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Faga8JpmwKDYq8AkEx3m5P8Es8Fgga8La8MpmwKDYq8AkEx3m5P8Es8Fg8JpmbezHdiOAlvCXorQLg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Faga8JpmwDKYqk8AExm35Ps8E8Fg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9AbbbaradfhraoczfgoaX6mbkkaYclfgYad6mbkaHavcjdfaAad2;8qbbavavcjdfaAcufad2fad;8qbbaAazfhzc9:hoaOhxaOmbxlkkaeTmbaDalfhrcbhocuhlinaralaD9RglfaD6mdaPaeao9RaoaPfae6Eaofgoae6mbkaial9Rhxkcbc99amax9RakSEhoxekc9:hokavcj;kbf8Kjjjjbaokwbz:bjjjbk:TseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhldnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhoindnalaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfaoaDcu7gPcl4fcsGcitfgsydlhzasydbhHdndnaDcsGgsak9pmbavaiaPfcsGcdtfydbaxasEhDaxasTgOfhxxekdndnascsSmbcehOasc987asamffcefhDxekalcefhDal8SbbgscFeGhPdndnascu9mmbaDhlxekalcvfhlaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhlkcehOaPce4cbaPceG9R7amfhDkaDhmkavc;abfaocitfgsaDBdbasazBdlavaicdtfaDBdbavc;abfaocefcsGcitfgsaHBdbasaDBdlaocdfhoaOaifhidnadcd9hmbabarcetfgsaH87ebasclfaD87ebascdfaz87ebxdkabarcdtfgsaHBdbascwfaDBdbasclfazBdbxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHclfas87ebaHcdfaD87ebxekabarcdtfgHaxBdbaHcwfasBdbaHclfaDBdbkavaicdtfaxBdbavc;abfaocitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfaocefcsGcitfgHasBdbaHaDBdlavaiaPfgicsGcdtfasBdbavc;abfaocdfcsGcitfgDaxBdbaDasBdlaocifhoaiaOfhiazaOfhxxekaxcbalRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbalcefhDxekalcdfhDal8SbegPcFeGhsdnaPcu9kmbalcofhAascFbGhscrhldninaD8SbbgPcFbGaltasVhsaPcu9kmeaDcefhDalcrfglc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbglcFeGhPdnalcu9kmbaDcvfhzaPcFbGhPcrhldninas8SbbgDcFbGaltaPVhPaDcu9kmeascefhsalcrfglc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashlxekascefhlas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninal8SbbgscFbGaDtaPVhPascu9kmealcefhlaDcrfgDc8J9hmbkaOhlxekalcefhlkaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDclfaO87ebaDcdfaz87ebxekabarcdtfgDaABdbaDcwfaOBdbaDclfazBdbkavc;abfaocitfgDazBdbaDaABdlavaicdtfaABdbavc;abfaocefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfaocdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhiaocifhokawcefhwaocsGhoaicsGhiarcifgrae6mbkkcbc99alaqSEhokavc;aef8Kjjjjbaok:clevu8Jjjjjbcz9Rhvdnaecvfal9nmbc9:skdnaiRbbc;:eGc;qeSmbcuskav9cb83iwaicefhoaialfc98fhrdnaeTmbdnadcdSmbcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcdtfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgiBdbalaiBdbawcefgwae9hmbxdkkcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcetfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgi87ebalaiBdbawcefgwae9hmbkkcbc99aoarSEk:2Pliur97eue978Jjjjjbc8W9Rhiaec98Ghldndnadcl9hmbdnalTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalaeSmeaipxbbbbbbbbbbbbbbbbgqpklbaiabalcdtfgdaeciGglcdtgv;8qbbdnalTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDaqp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkadaiav;8qbbskaipxFubbFubbFubbFubbgxpklbdnalTmbcbhvabhdinadczfgmampbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraipblbaDaopmlvorxmPsCXQL358E8Fp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgPp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;MeawaqawaPp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oaoarpmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgval6mbkkalaeSmbaiczfpxbbbbbbbbbbbbbbbbgopklbaiaopklbaiabalcitfgdaeciGglcitgv;8qbbaiaxpkladnalTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraipblaaDaopmlvorxmPsCXQL358E8Fp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgPp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;MeawaqawaPp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oaoarpmbezHdiOAlvCXorQLp9qpklbkadaiav;8qbbkk:Iwllue97euo978Jjjjjbca9Rhidnaec98GglTmbcbhvabhoinaocKfpx:ji:1S:ji:1S:ji:1S:ji:1SaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkpxibbbibbbibbbibbbp9qgxp;6ep;Negmaxaxp:1ep;7egxaxp;KearaDpmbediwDqkzHOAKY8AEgxczp:Reczp:Sep;6egrarp;Meaxczp:Sep;6egDaDp;Meaqczp:Reczp:Sep;6egqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jep;Mepxbbn0bbn0bbn0bbn0gxp;KepxFFbbFFbbFFbbFFbbgPp9oamaDp;Meaxp;Keczp:Rep9qgDamarp;Meaxp;KeaPp9oamaqp;Meaxp;Keczp:Rep9qgxpmwDKYqk8AExm35Ps8E8Fgrp5eakclp:RegmpEi:T:j83ibawarp5bampEd:T:j83ibaocwfaDaxpmbezHdiOAlvCXorQLgxp5eampEe:T:j83ibaoaxp5bampEb:T:j83ibaocafhoavclfgval6mbkkdnalaeSmbaiczfpxbbbbbbbbbbbbbbbbgmpklbaiampklbaiabalcitfgoaeciGgvcitgw;8qbbdnavTmbaipx:ji:1S:ji:1S:ji:1S:ji:1SaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkpxibbbibbbibbbibbbp9qgxp;6ep;Negmaxaxp:1ep;7egxaxp;KearaDpmbediwDqkzHOAKY8AEgxczp:Reczp:Sep;6egrarp;Meaxczp:Sep;6egDaDp;Meaqczp:Reczp:Sep;6egqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jep;Mepxbbn0bbn0bbn0bbn0gxp;KepxFFbbFFbbFFbbFFbbgPp9oamaDp;Meaxp;Keczp:Rep9qgDamarp;Meaxp;KeaPp9oamaqp;Meaxp;Keczp:Rep9qgxpmwDKYqk8AExm35Ps8E8Fgrp5eakclp:RegmpEi:T:j83iKaiarp5bampEd:T:j83izaiaDaxpmbezHdiOAlvCXorQLgxp5eampEe:T:j83iwaiaxp5bampEb:T:j83ibkaoaiaw;8qbbkk;uddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbheabhdinadadpbbbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepkbbadczfhdaeclfgeav6mbkkdnavalSmbaic8WfpxbbbbbbbbbbbbbbbbgopklbaicafaopklbaiczfaopklbaiaopklbaiabavcdtfgdalciGgecdtgv;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepklbkadaiav;8qbbkk:CPvdue97euw97eu8Jjjjjbc8W9Rhiaec98Ghldndnadcl9hmbaipxbbbbbbbbbbbbbbbbgvpklbdnalTmbcbhoabhdinadpbbbhradpxbbuJbbuJbbuJbbuJaipblbarcKp:Tep9qgwcep:Seawp9qgDcdp:SeaDp9qgDclp:SeaDp9qgqp;6ep;NegDarcwp:RecKp:SegkarpxFbbbFbbbFbbbFbbbgxp9ogmp:Uep;6ep;Mepxbbn0bbn0bbn0bbn0gPp;Kecwp:RepxbFbbbFbbbFbbbFbbp9oaDamakp:Xearczp:RecKp:Segrp:Uep;6ep;MeaPp;Keaxp9op9qaDamakarp:Uep:Xep;6ep;MeaPp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qaDaqawcep:Rep9oawpxebbbebbbebbbebbbp9op9qp;6ep;MeaPp;KecKp:Rep9qpkbbadczfhdaoclfgoal6mbkkalaeSmeaiavpklaaicafabalcdtfgdaeciGglcdtgo;8qbbaiavpklbdnalTmbaipblahraipxbbuJbbuJbbuJbbuJaipblbarcKp:Tep9qgwcep:Seawp9qgDcdp:SeaDp9qgDclp:SeaDp9qgqp;6ep;NegDarcwp:RecKp:SegkarpxFbbbFbbbFbbbFbbbgxp9ogmp:Uep;6ep;Mepxbbn0bbn0bbn0bbn0gPp;Kecwp:RepxbFbbbFbbbFbbbFbbp9oaDamakp:Xearczp:RecKp:Segrp:Uep;6ep;MeaPp;Keaxp9op9qaDamakarp:Uep:Xep;6ep;MeaPp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qaDaqawcep:Rep9oawpxebbbebbbebbbebbbp9op9qp;6ep;MeaPp;KecKp:Rep9qpklakadaicafao;8qbbskaipxbbbbbbbbbbbbbbbbgvpklbdnalTmbcbhoabhdinadczfgspxbFu9hbFu9hbFu9hbFu9hadpbbbgDaspbbbgPpmlvorxmPsCXQL358E8Fgmczp:Teaipblbp9qgrcep:Searp9qgwcdp:Seawp9qgwclp:Seawp9qgwcwp:Seawp9qgqp;6ep;NegwaDaPpmbediwDqkzHOAKY8AEgDpxFFbbFFbbFFbbFFbbgPp9ogkaDczp:Segxp:Ueamczp:Reczp:Segmp:Xep;6ep;Mepxbbn0bbn0bbn0bbn0gDp;KeaPp9oawakaxamp:Uep:Xep;6ep;MeaDp;Keczp:Rep9qgxawaqarcep:Rep9oarpxebbbebbbebbbebbbp9op9qp;6ep;MeaDp;Keczp:Reawamakp:Uep;6ep;MeaDp;KeaPp9op9qgrpmwDKYqk8AExm35Ps8E8FpkbbadaxarpmbezHdiOAlvCXorQLpkbbadcafhdaoclfgoal6mbkkalaeSmbaiczfpxbbbbbbbbbbbbbbbbgrpklbaiarpklbaiabalcitfgdaeciGglcitgo;8qbbaiavpkladnalTmbaipxbFu9hbFu9hbFu9hbFu9haipblbgDaipblzgPpmlvorxmPsCXQL358E8Fgmczp:Teaipblap9qgrcep:Searp9qgwcdp:Seawp9qgwclp:Seawp9qgwcwp:Seawp9qgqp;6ep;NegwaDaPpmbediwDqkzHOAKY8AEgDpxFFbbFFbbFFbbFFbbgPp9ogkaDczp:Segxp:Ueamczp:Reczp:Segmp:Xep;6ep;Mepxbbn0bbn0bbn0bbn0gDp;KeaPp9oawakaxamp:Uep:Xep;6ep;MeaDp;Keczp:Rep9qgxawaqarcep:Rep9oarpxebbbebbbebbbebbbp9op9qp;6ep;MeaDp;Keczp:Reawamakp:Uep;6ep;MeaDp;KeaPp9op9qgrpmwDKYqk8AExm35Ps8E8FpklzaiaxarpmbezHdiOAlvCXorQLpklbkadaiao;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz:Dbb"):i("b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuixkbeeeddddillviebeoweuec:W:Odkr;Neqo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949WboY9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVJ9V29VVbrl79IV9Rbwq;lZkdbk;jYi5ud9:du8Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnalTmbcuhoaiRbbgrc;WeGc:Ge9hmbarcsGgwce0mbc9:hoalcufadcd4cbawEgDadfgrcKcaawEgqaraq0Egk6mbaicefhxcj;abad9Uc;WFbGcjdadca0EhmaialfgPar9Rgoadfhsavaoadz:jjjjbgzceVhHcbhOdndninaeaO9nmeaPax9RaD6mdamaeaO9RaOamfgoae6EgAcsfglc9WGhCabaOad2fhXaAcethQaxaDfhiaOaeaoaeao6E9RhLalcl4cifcd4hKazcj;cbfaAfhYcbh8AazcjdfhEaHh3incbhodnawTmbaxa8Acd4fRbbhokaocFeGh5cbh8Eazcj;cbfhqinaih8Fdndndndna5a8Ecet4ciGgoc9:fPdebdkaPa8F9RaA6mrazcj;cbfa8EaA2fa8FaAz:jjjjb8Aa8FaAfhixdkazcj;cbfa8EaA2fcbaAz:kjjjb8Aa8FhixekaPa8F9RaK6mva8FaKfhidnaCTmbaPai9RcK6mbaocdtc:q1jjbfcj1jjbawEhaczhrcbhlinargoc9Wfghaqfhrdndndndndndnaaa8Fahco4fRbbalcoG4ciGcdtfydbPDbedvivvvlvkar9cb83bbarcwf9cb83bbxlkarcbaiRbdai8Xbb9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:gg9cjjjjjz:dg8J9qE86bbaqaofgrcGfag9c8F1:NghcKtc8F91aicdfa8J9c8N1:Nfg8KRbbG86bbarcVfcba8KahcjeGcr4fghRbbag9cjjjjjl:dg8J9qE86bbarc7fcbaha8J9c8L1:NfghRbbag9cjjjjjd:dg8J9qE86bbarctfcbaha8J9c8K1:NfghRbbag9cjjjjje:dg8J9qE86bbarc91fcbaha8J9c8J1:NfghRbbag9cjjjj;ab:dg8J9qE86bbarc4fcbaha8J9cg1:NfghRbbag9cjjjja:dg8J9qE86bbarc93fcbaha8J9ch1:NfghRbbag9cjjjjz:dgg9qE86bbarc94fcbahag9ca1:NfghRbbai8Xbe9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:gg9cjjjjjz:dg8J9qE86bbarc95fag9c8F1:NgicKtc8F91aha8J9c8N1:NfghRbbG86bbarc96fcbahaicjeGcr4fgiRbbag9cjjjjjl:dg8J9qE86bbarc97fcbaia8J9c8L1:NfgiRbbag9cjjjjjd:dg8J9qE86bbarc98fcbaia8J9c8K1:NfgiRbbag9cjjjjje:dg8J9qE86bbarc99fcbaia8J9c8J1:NfgiRbbag9cjjjj;ab:dg8J9qE86bbarc9:fcbaia8J9cg1:NfgiRbbag9cjjjja:dg8J9qE86bbarcufcbaia8J9ch1:NfgiRbbag9cjjjjz:dgg9qE86bbaiag9ca1:NfhixikaraiRblaiRbbghco4g8Ka8KciSg8KE86bbaqaofgrcGfaiclfa8Kfg8KRbbahcl4ciGg8La8LciSg8LE86bbarcVfa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc7fa8Ka8Lfg8KRbbahciGghahciSghE86bbarctfa8Kahfg8KRbbaiRbeghco4g8La8LciSg8LE86bbarc91fa8Ka8Lfg8KRbbahcl4ciGg8La8LciSg8LE86bbarc4fa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc93fa8Ka8Lfg8KRbbahciGghahciSghE86bbarc94fa8Kahfg8KRbbaiRbdghco4g8La8LciSg8LE86bbarc95fa8Ka8Lfg8KRbbahcl4ciGg8La8LciSg8LE86bbarc96fa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc97fa8Ka8Lfg8KRbbahciGghahciSghE86bbarc98fa8KahfghRbbaiRbigico4g8Ka8KciSg8KE86bbarc99faha8KfghRbbaicl4ciGg8Ka8KciSg8KE86bbarc9:faha8KfghRbbaicd4ciGg8Ka8KciSg8KE86bbarcufaha8KfgrRbbaiciGgiaiciSgiE86bbaraifhixdkaraiRbwaiRbbghcl4g8Ka8KcsSg8KE86bbaqaofgrcGfaicwfa8Kfg8KRbbahcsGghahcsSghE86bbarcVfa8KahfghRbbaiRbeg8Kcl4g8La8LcsSg8LE86bbarc7faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarctfaha8KfghRbbaiRbdg8Kcl4g8La8LcsSg8LE86bbarc91faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc4faha8KfghRbbaiRbig8Kcl4g8La8LcsSg8LE86bbarc93faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc94faha8KfghRbbaiRblg8Kcl4g8La8LcsSg8LE86bbarc95faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc96faha8KfghRbbaiRbvg8Kcl4g8La8LcsSg8LE86bbarc97faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc98faha8KfghRbbaiRbog8Kcl4g8La8LcsSg8LE86bbarc99faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc9:faha8KfghRbbaiRbrgicl4g8Ka8KcsSg8KE86bbarcufaha8KfgrRbbaicsGgiaicsSgiE86bbaraifhixekarai8Pbb83bbarcwfaicwf8Pbb83bbaiczfhikdnaoaC9pmbalcdfhlaoczfhraPai9RcL0mekkaoaC6moaimexokaCmva8FTmvkaqaAfhqa8Ecefg8Ecl9hmbkdndndndnawTmbasa8Acd4fRbbgociGPlbedrbkaATmdaza8Afh8Fazcj;cbfhhcbh8EaEhaina8FRbbhraahocbhlinaoahalfRbbgqce4cbaqceG9R7arfgr86bbaoadfhoaAalcefgl9hmbkaacefhaa8Fcefh8FahaAfhha8Ecefg8Ecl9hmbxikkaATmeaza8Afhaazcj;cbfhhcbhoceh8EaYh8FinaEaofhlaa8Vbbhrcbhoinala8FaofRbbcwtahaofRbbgqVc;:FiGce4cbaqceG9R7arfgr87bbaladfhlaLaocefgofmbka8FaQfh8FcdhoaacdfhaahaQfhha8EceGhlcbh8EalmbxdkkaATmbcbaocl49Rh8Eaza8AfRbbhqcwhoa3hlinalRbbaotaqVhqalcefhlaocwfgoca9hmbkcbhhaEh8FaYhainazcj;cbfahfRbbhrcwhoaahlinalRbbaotarVhralaAfhlaocwfgoca9hmbkara8E93aq7hqcbhoa8Fhlinalaqao486bbalcefhlaocwfgoca9hmbka8Fadfh8FaacefhaahcefghaA9hmbkkaEclfhEa3clfh3a8Aclfg8Aad6mbkaXazcjdfaAad2z:jjjjb8AazazcjdfaAcufad2fadz:jjjjb8AaAaOfhOaihxaimbkc9:hoxdkcbc99aPax9RakSEhoxekc9:hokavcj;kbf8Kjjjjbaok:XseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:kjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhldnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhoindnalaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfaoaDcu7gPcl4fcsGcitfgsydlhzasydbhHdndnaDcsGgsak9pmbavaiaPfcsGcdtfydbaxasEhDaxasTgOfhxxekdndnascsSmbcehOasc987asamffcefhDxekalcefhDal8SbbgscFeGhPdndnascu9mmbaDhlxekalcvfhlaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhlkcehOaPce4cbaPceG9R7amfhDkaDhmkavc;abfaocitfgsaDBdbasazBdlavaicdtfaDBdbavc;abfaocefcsGcitfgsaHBdbasaDBdlaocdfhoaOaifhidnadcd9hmbabarcetfgsaH87ebasclfaD87ebascdfaz87ebxdkabarcdtfgsaHBdbascwfaDBdbasclfazBdbxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHclfas87ebaHcdfaD87ebxekabarcdtfgHaxBdbaHcwfasBdbaHclfaDBdbkavaicdtfaxBdbavc;abfaocitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfaocefcsGcitfgHasBdbaHaDBdlavaiaPfgicsGcdtfasBdbavc;abfaocdfcsGcitfgDaxBdbaDasBdlaocifhoaiaOfhiazaOfhxxekaxcbalRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbalcefhDxekalcdfhDal8SbegPcFeGhsdnaPcu9kmbalcofhAascFbGhscrhldninaD8SbbgPcFbGaltasVhsaPcu9kmeaDcefhDalcrfglc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbglcFeGhPdnalcu9kmbaDcvfhzaPcFbGhPcrhldninas8SbbgDcFbGaltaPVhPaDcu9kmeascefhsalcrfglc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashlxekascefhlas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninal8SbbgscFbGaDtaPVhPascu9kmealcefhlaDcrfgDc8J9hmbkaOhlxekalcefhlkaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDclfaO87ebaDcdfaz87ebxekabarcdtfgDaABdbaDcwfaOBdbaDclfazBdbkavc;abfaocitfgDazBdbaDaABdlavaicdtfaABdbavc;abfaocefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfaocdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhiaocifhokawcefhwaocsGhoaicsGhiarcifgrae6mbkkcbc99alaqSEhokavc;aef8Kjjjjbaok:clevu8Jjjjjbcz9Rhvdnaecvfal9nmbc9:skdnaiRbbc;:eGc;qeSmbcuskav9cb83iwaicefhoaialfc98fhrdnaeTmbdnadcdSmbcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcdtfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgiBdbalaiBdbawcefgwae9hmbxdkkcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcetfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgi87ebalaiBdbawcefgwae9hmbkkcbc99aoarSEk:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk::ioiue99dud99dud99dnaeTmbcbhiabhlindndnal8Uebgv:YgoJ:ji:1Salcof8UebgrciVgw:Y:vgDNJbbbZJbbb:;avcu9kEMgq:lJbbb9p9DTmbaq:Ohkxekcjjjj94hkkalclf8Uebhvalcdf8UebhxabaiarcefciGfcetfak87ebdndnax:YgqaDNJbbbZJbbb:;axcu9kEMgm:lJbbb9p9DTmbam:Ohxxekcjjjj94hxkabaiarciGfgkcd7cetfax87ebdndnav:YgmaDNJbbbZJbbb:;avcu9kEMgP:lJbbb9p9DTmbaP:Ohvxekcjjjj94hvkabaiarcufciGfcetfav87ebdndnawaw2:ZgPaPMaoaoN:taqaqN:tamamN:tgoJbbbbaoJbbbb9GE:raDNJbbbZMgD:lJbbb9p9DTmbaD:Ohrxekcjjjj94hrkabakcetfar87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj98Gcjjj;8if::NUdbabclfhbadcufgdmbkkk:Tvirud99eudndnadcl9hmbaeTmeindndnabRbbgiabcefgl8Sbbgvabcdfgo8Sbbgrf9R:YJbbuJabcifgwRbbgdce4adVgDcd4aDVgDcl4aDVgD:Z:vgqNJbbbZMgk:lJbbb9p9DTmbak:Ohxxekcjjjj94hxkaoax86bbdndnaraif:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohoxekcjjjj94hokalao86bbdndnavaifar9R:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabai86bbdndnaDadcetGadceGV:ZaqNJbbbZMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkawad86bbabclfhbaecufgembxdkkaeTmbindndnab8Vebgiabcdfgl8Uebgvabclfgo8Uebgrf9R:YJbFu9habcofgw8Vebgdce4adVgDcd4aDVgDcl4aDVgDcw4aDVgD:Z:vgqNJbbbZMgk:lJbbb9p9DTmbak:Ohxxekcjjjj94hxkaoax87ebdndnaraif:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohoxekcjjjj94hokalao87ebdndnavaifar9R:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabai87ebdndnaDadcetGadceGV:ZaqNJbbbZMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkawad87ebabcwfhbaecufgembkkk9teiucbcbyd:K1jjbgeabcifc98GfgbBd:K1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkk81dbcjwk8Kbbbbdbbblbbbwbbbbbbbebbbdbbblbbbwbbbbc:Kwkl8WNbb"),p=WebAssembly.instantiate(e,{}).then(function(b){(c=b.instance).exports.__wasm_call_ctors()});function i(b){for(var c=new Uint8Array(b.length),e=0;e<b.length;++e){var p=b.charCodeAt(e);c[e]=p>96?p-97:p>64?p-39:p+4}var i=0;for(e=0;e<b.length;++e)c[i++]=c[e]<60?a[c[e]]:64*(c[e]-60)+c[++e];return c.buffer.slice(0,i)}function g(b,a,c,e,p,i,g){var d=b.exports.sbrk,f=e+3&-4,l=d(f*p),h=d(i.length),o=new Uint8Array(b.exports.memory.buffer);o.set(i,h);var s=a(l,e,p,h,i.length);if(0==s&&g&&g(l,f,p),c.set(o.subarray(l,l+e*p)),d(l-d(0)),0!=s)throw new Error("Malformed buffer data: "+s)}var d={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp",COLOR:"meshopt_decodeFilterColor"},f={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"},l=[],h=0;function o(b){var a={object:new Worker(b),pending:0,requests:{}};return a.object.onmessage=function(b){var c=b.data;a.pending-=c.count,a.requests[c.id][c.action](c.value),delete a.requests[c.id]},a}function s(b){var a=b.data;if(!a.id)return self.close();self.ready.then(function(b){try{var c=new Uint8Array(a.count*a.size);g(b,b.exports[a.mode],c,a.count,a.size,a.source,b.exports[a.filter]),self.postMessage({id:a.id,count:a.count,action:"resolve",value:c},[c.buffer])}catch(e){self.postMessage({id:a.id,count:a.count,action:"reject",value:e})}})}return{ready:p,supported:!0,useWorkers:function(b){!function(b){for(var a="self.ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(e)+"]), {}).then(function(result) { result.instance.exports.__wasm_call_ctors(); return result.instance; });self.onmessage = "+s.name+";"+g.toString()+s.toString(),c=new Blob([a],{type:"text/javascript"}),p=URL.createObjectURL(c),i=l.length;i<b;++i)l[i]=o(p);for(i=b;i<l.length;++i)l[i].object.postMessage({});l.length=b,URL.revokeObjectURL(p)}(b)},decodeVertexBuffer:function(b,a,e,p,i){g(c,c.exports.meshopt_decodeVertexBuffer,b,a,e,p,c.exports[d[i]])},decodeIndexBuffer:function(b,a,e,p){g(c,c.exports.meshopt_decodeIndexBuffer,b,a,e,p)},decodeIndexSequence:function(b,a,e,p){g(c,c.exports.meshopt_decodeIndexSequence,b,a,e,p)},decodeGltfBuffer:function(b,a,e,p,i,l){g(c,c.exports[f[i]],b,a,e,p,c.exports[d[l]])},decodeGltfBufferAsync:function(b,a,e,i,o){return l.length>0?function(b,a,c,e,p){for(var i=l[0],g=1;g<l.length;++g)l[g].pending<i.pending&&(i=l[g]);return new Promise(function(g,d){var f=new Uint8Array(c),l=++h;i.pending+=b,i.requests[l]={resolve:g,reject:d},i.object.postMessage({id:l,count:b,size:a,source:f,mode:e,filter:p},[f.buffer])})}(b,a,e,f[i],d[o]):p.then(function(){var p=new Uint8Array(b*a);return g(c,c.exports[f[i]],p,b,a,e,c.exports[d[o]]),p})}}}()}}]);
|
|
|
|
|
|
services/explorer/dist/static/js/672.c00e55f9.chunk.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
"use strict";(self.webpackChunkdeepsearch_ui=self.webpackChunkdeepsearch_ui||[]).push([[672],{4672(e,r,t){t.d(r,{loadRustRobotUsd:()=>p});var o=t(9379),n=t(7863),a=t(9885),i=t(3333),s=t(3986);const l=["pointCount","faceCount"],c=e=>8*Math.ceil(e/8);const d="2c24c43293ecda70265d3655de31bcd0eef1d214",u="".concat("","/usd-rust/").concat(d),f=()=>new DOMException("USD cancelled","AbortError");function h(e,r){var t,o;if(!(1===(null===e||void 0===e?void 0:e.version)&&"central-rust-usd-pilot-v1"===e.profile||2===(null===e||void 0===e?void 0:e.version)&&"central-rust-usd-split-v2"===e.profile&&!("colliders"in(e.articulation||{})))||e.sourceSha256!==r||"native-usd"!==(null===(t=e.articulation)||void 0===t?void 0:t.source)||"gltf"!==(null===(o=e.articulation)||void 0===o?void 0:o.frame)||!Array.isArray(e.articulation.bodies)||!e.articulation.bodies.length||!Array.isArray(e.articulation.joints)||!e.meshes||!e.materials)throw Error("Prepared USD metadata does not match this asset");const n=new Set(e.articulation.bodies.map(e=>e.id));for(const[a,i]of Object.entries(e.meshes))if(!a.startsWith("/")||"visual"===i.classification&&(!n.has(i.body)||!Number.isSafeInteger(i.triangles)||i.triangles<0))throw Error("Invalid prepared USD body mapping");return e}async function m(e,r){const t=performance.now(),o={},i=e.preparedMetadata;if(!i||i.bytes>33554432)throw Error("Prepared USD joint metadata is unavailable");const s=new URL(i.url,window.location.href);if(s.origin!==window.location.origin)throw Error("USD metadata must use this origin");const l=JSON.stringify(["central-rust-metadata-v1",s.href,i.sha256,e.nativeBaseline.sha256]),c=(0,a.yM)(l);if(c)return{value:h(c,e.nativeBaseline.sha256),cacheHit:!0,metrics:o};const d=await(0,a.HX)(await fetch(s.href,{signal:r,credentials:"same-origin"}),r);if(o.metadataDownloadMs=performance.now()-t,d.byteLength!==i.bytes)throw Error("USD metadata size changed");await(0,n.n)(d,i.sha256,"USD metadata");const u=performance.now(),f=h(JSON.parse((new TextDecoder).decode(d)),e.nativeBaseline.sha256);o.metadataDecodeMs=performance.now()-u;const m=performance.now();return(0,a.eH)(l,f),o.metadataCacheCopyMs=performance.now()-m,{value:f,cacheHit:!1,metrics:o}}async function w(e,r,t,i){const d=e.preparedColliders;if(!d||d.sourceSha256!==e.nativeBaseline.sha256)throw Error("USD collision identity is unavailable");const u=new URL(d.url,window.location.href);if(u.origin!==window.location.origin)throw Error("USD collisions must use this origin");const h=performance.now(),m=await(0,a.HX)(await fetch(u.href,{signal:t,credentials:"same-origin"}),t,64<<20,"USD collision data exceeds its limit");if(m.byteLength!==d.bytes)throw Error("USD collision size changed");if(await(0,n.n)(m,d.sha256,"USD collisions"),null!==t&&void 0!==t&&t.aborted)throw f();const w=performance.now(),p=function(e,r,t){const n=new DataView(e);if(e.byteLength<16||"SRUCOL01"!==(new TextDecoder).decode(new Uint8Array(e,0,8)))throw Error("Invalid USD collision payload");const a=n.getUint32(8,!0);if(a>1048576||16+c(a)>e.byteLength)throw Error("Invalid USD collision header");const i=JSON.parse((new TextDecoder).decode(new Uint8Array(e,16,a)));if(1!==i.version||i.sourceSha256!==r||!Array.isArray(i.shapes)||i.shapes.length>1e4)throw Error("USD collision source identity changed");const d=new Set(t.map(e=>e.id));let u=16+c(a);const f=r=>{if(!Number.isSafeInteger(r)||r<0||u+r>e.byteLength)throw Error("Truncated USD collision payload");const t=u;return u+=r,t},h=i.shapes.map(r=>{let{pointCount:t,faceCount:a}=r,i=(0,s.A)(r,l);if(!d.has(i.body)||!Number.isSafeInteger(t)||t<0||!Number.isSafeInteger(a)||a<0)throw Error("Invalid USD collision shape");const h=new Float64Array(e,f(24*t),3*t),m=[];for(let e=0;e<h.length;e+=3){const r=[h[e],h[e+1],h[e+2]];if(!r.every(Number.isFinite))throw Error("Invalid USD collision coordinates");m.push(r)}const w=[];for(let e=0;e<a;e++){const e=n.getUint32(f(4),!0),r=f(4*e),o=[];for(let a=0;a<e;a++){const e=n.getUint32(r+4*a,!0);if(e>=t)throw Error("Invalid USD collision index");o.push(e)}w.push(o)}return f(c(u)-u),(0,o.A)((0,o.A)({},i),{},{points:m,faces:w})});if(u!==e.byteLength)throw Error("Unexpected USD collision trailing bytes");return h}(m,e.nativeBaseline.sha256,r.bodies);if(p.length!==d.count)throw Error("USD collision count changed");return i.colliderDecodeMs=performance.now()-w,i.colliderLoadMs=performance.now()-h,p}async function p(e,r){const s=performance.now(),l=new URL(e.nativeBaseline.url,window.location.href);if(l.origin!==window.location.origin)throw Error("USD geometry must use this origin");const c=function(e,r){let t=null,o=null,i=!1;const s=()=>new DOMException("USD cancelled","AbortError"),l=()=>{var e;null===(e=o)||void 0===e||e.controller.abort(),o=null},c=()=>{l(),t=null,i=!0};return null===r||void 0===r||r.addEventListener("abort",c,{once:!0}),{cancelPending:l,dispose(){c(),null===r||void 0===r||r.removeEventListener("abort",c)},get retainedBytes(){var e;return(null===(e=t)||void 0===e?void 0:e.byteLength)||0},read(l){if(i||null!==r&&void 0!==r&&r.aborted||null!==l&&void 0!==l&&l.aborted)return Promise.reject(s());if(t)return Promise.resolve(t);if(o)return o.promise;const c={controller:new AbortController};o=c;const d=setTimeout(()=>c.controller.abort(),6e4);return c.promise=(async()=>{try{const o=await(0,a.HX)(await fetch(e.url,{signal:c.controller.signal}),c.controller.signal);if(o.byteLength!==e.bytes)throw Error("USD geometry size changed");if(await(0,n.n)(o,e.sha256,"USD geometry"),c.controller.signal.aborted||null!==r&&void 0!==r&&r.aborted||i)throw s();return t=o,o}finally{clearTimeout(d),o===c&&(o=null)}})(),c.promise.catch(()=>{}),c.promise}}}((0,o.A)((0,o.A)({},e.nativeBaseline),{},{url:l.href}),r);let h,p,g;c.read().then(()=>{h=performance.now()-s}).catch(()=>{});try{[{loadUsd:p},g]=await Promise.all([Promise.all([t.e(816),t.e(27),t.e(601)]).then(t.bind(t,8601)),m(e,r)])}catch(S){throw c.dispose(),S}if(null!==r&&void 0!==r&&r.aborted)throw f();const v=g.value;"robot"===e.nativeBaseline.presentationKind&&(v.articulation.kind="robot");const b=(0,o.A)((0,o.A)({reader:"rust-pilot-v1",readerRevision:d,offlineJointMetadata:!0},g.metrics),{},{splitColliders:2===v.version,metadataCacheHit:g.cacheHit,metadataMs:performance.now()-s,sourceSha256:e.nativeBaseline.sha256});if(2===v.version&&!e.preparedColliders)throw c.dispose(),Error("USD split metadata lacks collision identity");const y=new URL(".",l).href;return{articulation:v.articulation,store:(0,i.createJointStore)(v.articulation),usdModel:{diagnostics:b,dispose:()=>c.dispose(),loadScene:async t=>{let{THREE:n,signal:a,requireColliders:i=!1}=t;const s=performance.now();b.readerPhases={},delete b.firstDrawCpuMs,delete b.firstDrawAt;const d=new AbortController,m=()=>d.abort();for(const e of[r,a])null===e||void 0===e||e.addEventListener("abort",m,{once:!0}),null!==e&&void 0!==e&&e.aborted&&m();null===a||void 0===a||a.addEventListener("abort",c.cancelPending,{once:!0});const g=setTimeout(m,6e4);let U,D;try{let t;const m=()=>(t||(t=w(e,v.articulation,d.signal,b)),t),g=2===v.version&&i?m():Promise.resolve(null);g.catch(()=>{}),U=await p(l.href,{textures:"full",maxTextureSize:4096,maxLayers:1,maxLayerBytes:64<<20,maxTextureBytes:128<<20,maxTriangles:2e6,signal:d.signal,wasmUrl:"".concat(u,"/wasm/usd_wasm_bg.wasm"),workerUrl:"".concat(u,"/src/worker.js"),onProgress:e=>{const r=b.readerPhases||(b.readerPhases={});(r[e.stage]||(r[e.stage]={firstMs:performance.now()-s})).lastMs=performance.now()-s},fetch:async(e,r)=>{const t=new URL(e,l);if(!t.href.startsWith(y)||t.origin!==window.location.origin)throw Error("USD dependency escaped its prepared package");if(t.href!==l.href)return fetch(t.href,r);let o;try{o=await c.read(d.signal)}catch(S){throw D=S,S}return b.sourceFetchVerifiedMs=h,b.retainedVerifiedSourceBytes=c.retainedBytes,new Response(o,{headers:{"Content-Type":"application/octet-stream"}})}}),b.geometryMs=performance.now()-s,await U.complete;const E=await g;if(E&&(v.articulation.colliders=E),d.signal.aborted)throw f();b.readerCompleteMs=performance.now()-s,b.readerStats=U.info;const x=U;U=null;const M=function(e,r,t,n){const a=new e.Group,i=new Map,s=[],l=new Map,c=new Map,d=[];r.root.updateMatrixWorld(!0),r.root.traverse(e=>{e.isMesh&&d.push(e)});const u=()=>{s.forEach(e=>e.dispose()),i.forEach(e=>e.dispose()),r.dispose()};try{if(r.info.warnings.length)throw Error("USD reader qualification: "+r.info.warnings.map(e=>e.code).join(", "));for(const r of d){var f;if(r.isInstancedMesh)throw Error("USD instance-to-joint mapping needs qualification");const n=t.meshes[r.name];if(!n)throw Error("USD mesh is missing its prepared body mapping: "+r.name);if("visual"!==n.classification)continue;const d=r.geometry;for(const e of[d.index,...Object.values(d.attributes)])null===e||void 0===e||e.onUpload(()=>{});const u=Array.isArray(r.material)?r.material:[r.material],w=d.groups.length?d.groups:[{start:0,count:(null===(f=d.index)||void 0===f?void 0:f.count)||d.attributes.position.count,materialIndex:0}];for(const f of w){var h;if(!f.count)continue;const w=u[f.materialIndex];if(!w)throw Error("USD subset has no material");const p=w.name||1!==(null===(h=n.materialKeys)||void 0===h?void 0:h.length)||"__default"!==n.materialKeys[0]?null:"__default",g=t.materials[w.name]||t.materials[r.name]||p&&t.materials[p];if(!g)throw Error("USD material has no prepared parameters: "+w.name);const v=w.uuid+":"+JSON.stringify(g);if(!i.has(v)){const r=(0,o.A)((0,o.A)({},g.fields),{},{side:e.DoubleSide});for(const o of["color","emissive","specularColor","attenuationColor"])r[o]&&(r[o]=new e.Color(...r[o]));r.normalScale&&(r.normalScale=new e.Vector2(...r.normalScale));const t=new e.MeshPhysicalMaterial(r);for(const e of g.maps){var m;if(null===(m=w[e])||void 0===m||!m.isTexture)throw Error("USD material texture is unavailable: "+e);t[e]=w[e]}t.userData.usdPrimPath=w.name,t.userData.usdTextureBindings=g.bindings,i.set(v,t)}const b=new e.BufferGeometry;for(const[e,r]of Object.entries(d.attributes))b.setAttribute(e,r);b.setIndex(d.index),b.setDrawRange(f.start,f.count),s.push(b);const y=new e.Mesh(b,i.get(v)),S=l.get(n.body)||0;l.set(n.body,S+1),y.name="".concat(n.body,"m").concat(String(S).padStart(3,"0")),y.userData.usdPrimPath=r.name,y.matrix.copy(r.matrixWorld),y.matrixAutoUpdate=!1,a.add(y),c.set(r.name,(c.get(r.name)||0)+f.count/3)}}for(const[e,r]of Object.entries(t.meshes))if("visual"===r.classification&&r.triangles&&c.get(e)!==r.triangles)throw Error("USD visible triangle count differs from qualification: "+e);if(!a.children.length)throw Error("USD reader produced no qualified visible geometry");return a.userData.usdLoading=n,a.userData.disposeOriginalMaterials=u,a}catch(S){throw u(),S}}(n,x,v,b);if(2===v.version&&!i){let t;M.userData.loadColliders=()=>(t||(t=w(e,v.articulation,a||r,b)),t)}return b.sceneMs=performance.now()-s,M}catch(S){throw null!==a&&void 0!==a&&a.aborted||null!==r&&void 0!==r&&r.aborted||c.dispose(),D||S}finally{var E;null===(E=U)||void 0===E||E.dispose(),clearTimeout(g);for(const e of[r,a])null===e||void 0===e||e.removeEventListener("abort",m);null===a||void 0===a||a.removeEventListener("abort",c.cancelPending)}}},glbUrl:void 0,hdUrl:void 0,hdGpuBytes:void 0,previewMount:null,presentation:"rtx-media",inspectCamera:!0,renderPixelBudget:{maxPixels:2073600,reference:"square"}}}}}]);
|
services/explorer/dist/static/js/718.3b4487f9.chunk.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
"use strict";(self.webpackChunkdeepsearch_ui=self.webpackChunkdeepsearch_ui||[]).push([[718],{4718(e,t,s){s.r(t),s.d(t,{GLTFLoader:()=>a});var n=s(9379),r=s(9435);function o(e,t){if(t===r.RJ4)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),e;if(t===r.rYR||t===r.O49){let s=e.getIndex();if(null===s){const t=[],n=e.getAttribute("position");if(void 0===n)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),e;for(let e=0;e<n.count;e++)t.push(e);e.setIndex(t),s=e.getIndex()}const n=s.count-2,o=[];if(t===r.rYR)for(let e=1;e<=n;e++)o.push(s.getX(0)),o.push(s.getX(e)),o.push(s.getX(e+1));else for(let e=0;e<n;e++)e%2===0?(o.push(s.getX(e)),o.push(s.getX(e+1)),o.push(s.getX(e+2))):(o.push(s.getX(e+2)),o.push(s.getX(e+1)),o.push(s.getX(e)));o.length/3!==n&&console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");const i=e.clone();return i.setIndex(o),i.clearGroups(),i}return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",t),e}var i=s(9812);class a extends r.aHM{constructor(e){super(e),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(e){return new m(e)}),this.register(function(e){return new f(e)}),this.register(function(e){return new w(e)}),this.register(function(e){return new S(e)}),this.register(function(e){return new y(e)}),this.register(function(e){return new T(e)}),this.register(function(e){return new R(e)}),this.register(function(e){return new x(e)}),this.register(function(e){return new _(e)}),this.register(function(e){return new p(e)}),this.register(function(e){return new E(e)}),this.register(function(e){return new g(e)}),this.register(function(e){return new A(e)}),this.register(function(e){return new v(e)}),this.register(function(e){return new h(e)}),this.register(function(e){return new M(e,u.EXT_MESHOPT_COMPRESSION)}),this.register(function(e){return new M(e,u.KHR_MESHOPT_COMPRESSION)}),this.register(function(e){return new L(e)})}load(e,t,s,n){const o=this;let i;if(""!==this.resourcePath)i=this.resourcePath;else if(""!==this.path){const t=r.r6x.extractUrlBase(e);i=r.r6x.resolveURL(t,this.path)}else i=r.r6x.extractUrlBase(e);this.manager.itemStart(e);const a=function(t){n?n(t):console.error(t),o.manager.itemError(e),o.manager.itemEnd(e)},c=new r.Y9S(this.manager);c.setPath(this.path),c.setResponseType("arraybuffer"),c.setRequestHeader(this.requestHeader),c.setWithCredentials(this.withCredentials),c.load(e,function(s){try{o.parse(s,i,function(s){t(s),o.manager.itemEnd(e)},a)}catch(n){a(n)}},s,a)}setDRACOLoader(e){return this.dracoLoader=e,this}setKTX2Loader(e){return this.ktx2Loader=e,this}setMeshoptDecoder(e){return this.meshoptDecoder=e,this}register(e){return-1===this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.push(e),this}unregister(e){return-1!==this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e),1),this}parse(e,t,s,n){let r;const o={},i={},a=new TextDecoder;if("string"===typeof e)r=JSON.parse(e);else if(e instanceof ArrayBuffer){if(a.decode(new Uint8Array(e,0,4))===I){try{o[u.KHR_BINARY_GLTF]=new O(e)}catch(l){return void(n&&n(l))}r=JSON.parse(o[u.KHR_BINARY_GLTF].content)}else r=JSON.parse(a.decode(e))}else r=e;if(void 0===r.asset||r.asset.version[0]<2)return void(n&&n(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.")));const c=new re(r,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});c.fileLoader.setRequestHeader(this.requestHeader);for(let u=0;u<this.pluginCallbacks.length;u++){const e=this.pluginCallbacks[u](c);e.name||console.error("THREE.GLTFLoader: Invalid plugin found: missing name"),i[e.name]=e,o[e.name]=!0}if(r.extensionsUsed)for(let h=0;h<r.extensionsUsed.length;++h){const e=r.extensionsUsed[h],t=r.extensionsRequired||[];switch(e){case u.KHR_MATERIALS_UNLIT:o[e]=new d;break;case u.KHR_DRACO_MESH_COMPRESSION:o[e]=new C(r,this.dracoLoader);break;case u.KHR_TEXTURE_TRANSFORM:o[e]=new P;break;case u.KHR_MESH_QUANTIZATION:o[e]=new H;break;default:t.indexOf(e)>=0&&void 0===i[e]&&console.warn('THREE.GLTFLoader: Unknown extension "'+e+'".')}}c.setExtensions(o),c.setPlugins(i),c.parse(s,n)}parseAsync(e,t){const s=this;return new Promise(function(n,r){s.parse(e,t,n,r)})}}function c(){let e={};return{get:function(t){return e[t]},add:function(t,s){e[t]=s},remove:function(t){delete e[t]},removeAll:function(){e={}}}}function l(e,t,s){const n=e.json.materials[t];return n.extensions&&n.extensions[s]?n.extensions[s]:null}const u={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_DISPERSION:"KHR_materials_dispersion",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",KHR_MESHOPT_COMPRESSION:"KHR_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class h{constructor(e){this.parser=e,this.name=u.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const e=this.parser,t=this.parser.json.nodes||[];for(let s=0,n=t.length;s<n;s++){const n=t[s];n.extensions&&n.extensions[this.name]&&void 0!==n.extensions[this.name].light&&e._addNodeRef(this.cache,n.extensions[this.name].light)}}_loadLight(e){const t=this.parser,s="light:"+e;let n=t.cache.get(s);if(n)return n;const o=t.json,i=((o.extensions&&o.extensions[this.name]||{}).lights||[])[e];let a;const c=new r.Q1f(16777215);void 0!==i.color&&c.setRGB(i.color[0],i.color[1],i.color[2],r.Zr2);const l=void 0!==i.range?i.range:0;switch(i.type){case"directional":a=new r.ZyN(c),a.target.position.set(0,0,-1),a.add(a.target);break;case"point":a=new r.HiM(c),a.distance=l;break;case"spot":a=new r.nCl(c),a.distance=l,i.spot=i.spot||{},i.spot.innerConeAngle=void 0!==i.spot.innerConeAngle?i.spot.innerConeAngle:0,i.spot.outerConeAngle=void 0!==i.spot.outerConeAngle?i.spot.outerConeAngle:Math.PI/4,a.angle=i.spot.outerConeAngle,a.penumbra=1-i.spot.innerConeAngle/i.spot.outerConeAngle,a.target.position.set(0,0,-1),a.add(a.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+i.type)}return a.position.set(0,0,0),W(a,i),void 0!==i.intensity&&(a.intensity=i.intensity),a.name=t.createUniqueName(i.name||"light_"+e),n=Promise.resolve(a),t.cache.add(s,n),n}getDependency(e,t){if("light"===e)return this._loadLight(t)}createNodeAttachment(e){const t=this,s=this.parser,n=s.json.nodes[e],r=(n.extensions&&n.extensions[this.name]||{}).light;return void 0===r?null:this._loadLight(r).then(function(e){return s._getNodeRef(t.cache,r,e)})}}class d{constructor(){this.name=u.KHR_MATERIALS_UNLIT}getMaterialType(){return r.V9B}extendParams(e,t,s){const n=[];e.color=new r.Q1f(1,1,1),e.opacity=1;const o=t.pbrMetallicRoughness;if(o){if(Array.isArray(o.baseColorFactor)){const t=o.baseColorFactor;e.color.setRGB(t[0],t[1],t[2],r.Zr2),e.opacity=t[3]}void 0!==o.baseColorTexture&&n.push(s.assignTexture(e,"map",o.baseColorTexture,r.er$))}return Promise.all(n)}}class p{constructor(e){this.parser=e,this.name=u.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(e,t){const s=l(this.parser,e,this.name);return null===s||void 0!==s.emissiveStrength&&(t.emissiveIntensity=s.emissiveStrength),Promise.resolve()}}class m{constructor(e){this.parser=e,this.name=u.KHR_MATERIALS_CLEARCOAT}getMaterialType(e){return null!==l(this.parser,e,this.name)?r.uSd:null}extendMaterialParams(e,t){const s=l(this.parser,e,this.name);if(null===s)return Promise.resolve();const n=[];if(void 0!==s.clearcoatFactor&&(t.clearcoat=s.clearcoatFactor),void 0!==s.clearcoatTexture&&n.push(this.parser.assignTexture(t,"clearcoatMap",s.clearcoatTexture)),void 0!==s.clearcoatRoughnessFactor&&(t.clearcoatRoughness=s.clearcoatRoughnessFactor),void 0!==s.clearcoatRoughnessTexture&&n.push(this.parser.assignTexture(t,"clearcoatRoughnessMap",s.clearcoatRoughnessTexture)),void 0!==s.clearcoatNormalTexture&&(n.push(this.parser.assignTexture(t,"clearcoatNormalMap",s.clearcoatNormalTexture)),void 0!==s.clearcoatNormalTexture.scale)){const e=s.clearcoatNormalTexture.scale;t.clearcoatNormalScale=new r.I9Y(e,e)}return Promise.all(n)}}class f{constructor(e){this.parser=e,this.name=u.KHR_MATERIALS_DISPERSION}getMaterialType(e){return null!==l(this.parser,e,this.name)?r.uSd:null}extendMaterialParams(e,t){const s=l(this.parser,e,this.name);return null===s||(t.dispersion=void 0!==s.dispersion?s.dispersion:0),Promise.resolve()}}class g{constructor(e){this.parser=e,this.name=u.KHR_MATERIALS_IRIDESCENCE}getMaterialType(e){return null!==l(this.parser,e,this.name)?r.uSd:null}extendMaterialParams(e,t){const s=l(this.parser,e,this.name);if(null===s)return Promise.resolve();const n=[];return void 0!==s.iridescenceFactor&&(t.iridescence=s.iridescenceFactor),void 0!==s.iridescenceTexture&&n.push(this.parser.assignTexture(t,"iridescenceMap",s.iridescenceTexture)),void 0!==s.iridescenceIor&&(t.iridescenceIOR=s.iridescenceIor),void 0===t.iridescenceThicknessRange&&(t.iridescenceThicknessRange=[100,400]),void 0!==s.iridescenceThicknessMinimum&&(t.iridescenceThicknessRange[0]=s.iridescenceThicknessMinimum),void 0!==s.iridescenceThicknessMaximum&&(t.iridescenceThicknessRange[1]=s.iridescenceThicknessMaximum),void 0!==s.iridescenceThicknessTexture&&n.push(this.parser.assignTexture(t,"iridescenceThicknessMap",s.iridescenceThicknessTexture)),Promise.all(n)}}class T{constructor(e){this.parser=e,this.name=u.KHR_MATERIALS_SHEEN}getMaterialType(e){return null!==l(this.parser,e,this.name)?r.uSd:null}extendMaterialParams(e,t){const s=l(this.parser,e,this.name);if(null===s)return Promise.resolve();const n=[];if(t.sheenColor=new r.Q1f(0,0,0),t.sheenRoughness=0,t.sheen=1,void 0!==s.sheenColorFactor){const e=s.sheenColorFactor;t.sheenColor.setRGB(e[0],e[1],e[2],r.Zr2)}return void 0!==s.sheenRoughnessFactor&&(t.sheenRoughness=s.sheenRoughnessFactor),void 0!==s.sheenColorTexture&&n.push(this.parser.assignTexture(t,"sheenColorMap",s.sheenColorTexture,r.er$)),void 0!==s.sheenRoughnessTexture&&n.push(this.parser.assignTexture(t,"sheenRoughnessMap",s.sheenRoughnessTexture)),Promise.all(n)}}class R{constructor(e){this.parser=e,this.name=u.KHR_MATERIALS_TRANSMISSION}getMaterialType(e){return null!==l(this.parser,e,this.name)?r.uSd:null}extendMaterialParams(e,t){const s=l(this.parser,e,this.name);if(null===s)return Promise.resolve();const n=[];return void 0!==s.transmissionFactor&&(t.transmission=s.transmissionFactor),void 0!==s.transmissionTexture&&n.push(this.parser.assignTexture(t,"transmissionMap",s.transmissionTexture)),Promise.all(n)}}class x{constructor(e){this.parser=e,this.name=u.KHR_MATERIALS_VOLUME}getMaterialType(e){return null!==l(this.parser,e,this.name)?r.uSd:null}extendMaterialParams(e,t){const s=l(this.parser,e,this.name);if(null===s)return Promise.resolve();const n=[];t.thickness=void 0!==s.thicknessFactor?s.thicknessFactor:0,void 0!==s.thicknessTexture&&n.push(this.parser.assignTexture(t,"thicknessMap",s.thicknessTexture)),t.attenuationDistance=s.attenuationDistance||1/0;const o=s.attenuationColor||[1,1,1];return t.attenuationColor=(new r.Q1f).setRGB(o[0],o[1],o[2],r.Zr2),Promise.all(n)}}class _{constructor(e){this.parser=e,this.name=u.KHR_MATERIALS_IOR}getMaterialType(e){return null!==l(this.parser,e,this.name)?r.uSd:null}extendMaterialParams(e,t){const s=l(this.parser,e,this.name);return null===s||(t.ior=void 0!==s.ior?s.ior:1.5),Promise.resolve()}}class E{constructor(e){this.parser=e,this.name=u.KHR_MATERIALS_SPECULAR}getMaterialType(e){return null!==l(this.parser,e,this.name)?r.uSd:null}extendMaterialParams(e,t){const s=l(this.parser,e,this.name);if(null===s)return Promise.resolve();const n=[];t.specularIntensity=void 0!==s.specularFactor?s.specularFactor:1,void 0!==s.specularTexture&&n.push(this.parser.assignTexture(t,"specularIntensityMap",s.specularTexture));const o=s.specularColorFactor||[1,1,1];return t.specularColor=(new r.Q1f).setRGB(o[0],o[1],o[2],r.Zr2),void 0!==s.specularColorTexture&&n.push(this.parser.assignTexture(t,"specularColorMap",s.specularColorTexture,r.er$)),Promise.all(n)}}class v{constructor(e){this.parser=e,this.name=u.EXT_MATERIALS_BUMP}getMaterialType(e){return null!==l(this.parser,e,this.name)?r.uSd:null}extendMaterialParams(e,t){const s=l(this.parser,e,this.name);if(null===s)return Promise.resolve();const n=[];return t.bumpScale=void 0!==s.bumpFactor?s.bumpFactor:1,void 0!==s.bumpTexture&&n.push(this.parser.assignTexture(t,"bumpMap",s.bumpTexture)),Promise.all(n)}}class A{constructor(e){this.parser=e,this.name=u.KHR_MATERIALS_ANISOTROPY}getMaterialType(e){return null!==l(this.parser,e,this.name)?r.uSd:null}extendMaterialParams(e,t){const s=l(this.parser,e,this.name);if(null===s)return Promise.resolve();const n=[];return void 0!==s.anisotropyStrength&&(t.anisotropy=s.anisotropyStrength),void 0!==s.anisotropyRotation&&(t.anisotropyRotation=s.anisotropyRotation),void 0!==s.anisotropyTexture&&n.push(this.parser.assignTexture(t,"anisotropyMap",s.anisotropyTexture)),Promise.all(n)}}class w{constructor(e){this.parser=e,this.name=u.KHR_TEXTURE_BASISU}loadTexture(e){const t=this.parser,s=t.json,n=s.textures[e];if(!n.extensions||!n.extensions[this.name])return null;const r=n.extensions[this.name],o=t.options.ktx2Loader;if(!o){if(s.extensionsRequired&&s.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return t.loadTextureImage(e,r.source,o)}}class S{constructor(e){this.parser=e,this.name=u.EXT_TEXTURE_WEBP}loadTexture(e){const t=this.name,s=this.parser,n=s.json,r=n.textures[e];if(!r.extensions||!r.extensions[t])return null;const o=r.extensions[t],i=n.images[o.source];let a=s.textureLoader;if(i.uri){const e=s.options.manager.getHandler(i.uri);null!==e&&(a=e)}return s.loadTextureImage(e,o.source,a)}}class y{constructor(e){this.parser=e,this.name=u.EXT_TEXTURE_AVIF}loadTexture(e){const t=this.name,s=this.parser,n=s.json,r=n.textures[e];if(!r.extensions||!r.extensions[t])return null;const o=r.extensions[t],i=n.images[o.source];let a=s.textureLoader;if(i.uri){const e=s.options.manager.getHandler(i.uri);null!==e&&(a=e)}return s.loadTextureImage(e,o.source,a)}}class M{constructor(e,t){this.name=t,this.parser=e}loadBufferView(e){const t=this.parser.json,s=t.bufferViews[e];if(s.extensions&&s.extensions[this.name]){const e=s.extensions[this.name],n=this.parser.getDependency("buffer",e.buffer),r=this.parser.options.meshoptDecoder;if(!r||!r.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return n.then(function(t){const s=e.byteOffset||0,n=e.byteLength||0,o=e.count,i=e.byteStride,a=new Uint8Array(t,s,n);return r.decodeGltfBufferAsync?r.decodeGltfBufferAsync(o,i,a,e.mode,e.filter).then(function(e){return e.buffer}):r.ready.then(function(){const t=new ArrayBuffer(o*i);return r.decodeGltfBuffer(new Uint8Array(t),o,i,a,e.mode,e.filter),t})})}return null}}class L{constructor(e){this.name=u.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(e){const t=this.parser.json,s=t.nodes[e];if(!s.extensions||!s.extensions[this.name]||void 0===s.mesh)return null;const n=t.meshes[s.mesh];for(const r of n.primitives)if(r.mode!==D.TRIANGLES&&r.mode!==D.TRIANGLE_STRIP&&r.mode!==D.TRIANGLE_FAN&&void 0!==r.mode)return null;const o=s.extensions[this.name].attributes,i=[],a={};for(const r in o)i.push(this.parser.getDependency("accessor",o[r]).then(e=>(a[r]=e,a[r])));return i.length<1?null:(i.push(this.parser.createNodeMesh(e)),Promise.all(i).then(e=>{const t=e.pop(),s=t.isGroup?t.children:[t],n=e[0].count,o=[];for(const i of s){const e=new r.kn4,t=new r.Pq0,s=new r.PTz,c=new r.Pq0(1,1,1),l=new r.ZLX(i.geometry,i.material,n);for(let r=0;r<n;r++)a.TRANSLATION&&t.fromBufferAttribute(a.TRANSLATION,r),a.ROTATION&&s.fromBufferAttribute(a.ROTATION,r),a.SCALE&&c.fromBufferAttribute(a.SCALE,r),l.setMatrixAt(r,e.compose(t,s,c));for(const n in a)if("_COLOR_0"===n){const e=a[n];l.instanceColor=new r.uWO(e.array,e.itemSize,e.normalized)}else"TRANSLATION"!==n&&"ROTATION"!==n&&"SCALE"!==n&&i.geometry.setAttribute(n,a[n]);r.B69.prototype.copy.call(l,i),this.parser.assignFinalMaterial(l),o.push(l)}return t.isGroup?(t.clear(),t.add(...o),t):o[0]}))}}const I="glTF",b=1313821514,N=5130562;class O{constructor(e){this.name=u.KHR_BINARY_GLTF,this.content=null,this.body=null;const t=new DataView(e,0,12),s=new TextDecoder;if(this.header={magic:s.decode(new Uint8Array(e.slice(0,4))),version:t.getUint32(4,!0),length:t.getUint32(8,!0)},this.header.magic!==I)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");const n=this.header.length-12,r=new DataView(e,12);let o=0;for(;o<n;){const t=r.getUint32(o,!0);o+=4;const n=r.getUint32(o,!0);if(o+=4,n===b){const n=new Uint8Array(e,12+o,t);this.content=s.decode(n)}else if(n===N){const s=12+o;this.body=e.slice(s,s+t)}o+=t}if(null===this.content)throw new Error("THREE.GLTFLoader: JSON content not found.")}}class C{constructor(e,t){if(!t)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=u.KHR_DRACO_MESH_COMPRESSION,this.json=e,this.dracoLoader=t,this.dracoLoader.preload()}decodePrimitive(e,t){const s=this.json,n=this.dracoLoader,o=e.extensions[this.name].bufferView,i=e.extensions[this.name].attributes,a={},c={},l={};for(const r in i){const e=V[r]||r.toLowerCase();a[e]=i[r]}for(const r in e.attributes){const t=V[r]||r.toLowerCase();if(void 0!==i[r]){const n=s.accessors[e.attributes[r]],o=G[n.componentType];l[t]=o.name,c[t]=!0===n.normalized}}return t.getDependency("bufferView",o).then(function(e){return new Promise(function(t,s){n.decodeDracoFile(e,function(e){for(const t in e.attributes){const s=e.attributes[t],n=c[t];void 0!==n&&(s.normalized=n)}t(e)},a,l,r.Zr2,s)})})}}class P{constructor(){this.name=u.KHR_TEXTURE_TRANSFORM}extendTexture(e,t){return void 0!==t.texCoord&&t.texCoord!==e.channel||void 0!==t.offset||void 0!==t.rotation||void 0!==t.scale?(e=e.clone(),void 0!==t.texCoord&&(e.channel=t.texCoord),void 0!==t.offset&&e.offset.fromArray(t.offset),void 0!==t.rotation&&(e.rotation=t.rotation),void 0!==t.scale&&e.repeat.fromArray(t.scale),e.needsUpdate=!0,e):e}}class H{constructor(){this.name=u.KHR_MESH_QUANTIZATION}}class k extends r.lGw{constructor(e,t,s,n){super(e,t,s,n)}copySampleValue_(e){const t=this.resultBuffer,s=this.sampleValues,n=this.valueSize,r=e*n*3+n;for(let o=0;o!==n;o++)t[o]=s[r+o];return t}interpolate_(e,t,s,n){const r=this.resultBuffer,o=this.sampleValues,i=this.valueSize,a=2*i,c=3*i,l=n-t,u=(s-t)/l,h=u*u,d=h*u,p=e*c,m=p-c,f=-2*d+3*h,g=d-h,T=1-f,R=g-h+u;for(let x=0;x!==i;x++){const e=o[m+x+i],t=o[m+x+a]*l,s=o[p+x+i],n=o[p+x]*l;r[x]=T*e+R*t+f*s+g*n}return r}}const F=new r.PTz;class U extends k{interpolate_(e,t,s,n){const r=super.interpolate_(e,t,s,n);return F.fromArray(r).normalize().toArray(r),r}}const D={FLOAT:5126,FLOAT_MAT3:35675,FLOAT_MAT4:35676,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,LINEAR:9729,REPEAT:10497,SAMPLER_2D:35678,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,UNSIGNED_BYTE:5121,UNSIGNED_SHORT:5123},G={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},K={9728:r.hxR,9729:r.k6q,9984:r.pHI,9985:r.kRr,9986:r.Cfg,9987:r.$_I},B={33071:r.ghU,33648:r.kTW,10497:r.GJx},j={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},V={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},X={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},q={CUBICSPLINE:void 0,LINEAR:r.PJ3,STEP:r.ljd},z="OPAQUE",Y="MASK",Z="BLEND";function J(e){return void 0===e.DefaultMaterial&&(e.DefaultMaterial=new r._4j({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:r.hB5})),e.DefaultMaterial}function $(e,t,s){for(const n in s.extensions)void 0===e[n]&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[n]=s.extensions[n])}function W(e,t){void 0!==t.extras&&("object"===typeof t.extras?Object.assign(e.userData,t.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+t.extras))}function Q(e,t){if(e.updateMorphTargets(),void 0!==t.weights)for(let s=0,n=t.weights.length;s<n;s++)e.morphTargetInfluences[s]=t.weights[s];if(t.extras&&Array.isArray(t.extras.targetNames)){const s=t.extras.targetNames;if(e.morphTargetInfluences.length===s.length){e.morphTargetDictionary={};for(let t=0,n=s.length;t<n;t++)e.morphTargetDictionary[s[t]]=t}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function ee(e){let t;const s=e.extensions&&e.extensions[u.KHR_DRACO_MESH_COMPRESSION];if(t=s?"draco:"+s.bufferView+":"+s.indices+":"+te(s.attributes):e.indices+":"+te(e.attributes)+":"+e.mode,void 0!==e.targets)for(let n=0,r=e.targets.length;n<r;n++)t+=":"+te(e.targets[n]);return t}function te(e){let t="";const s=Object.keys(e).sort();for(let n=0,r=s.length;n<r;n++)t+=s[n]+":"+e[s[n]]+";";return t}function se(e){switch(e){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}const ne=new r.kn4;class re{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.json=e,this.extensions={},this.plugins={},this.options=t,this.cache=new c,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let s=!1,n=-1,o=!1,i=-1;if("undefined"!==typeof navigator&&"undefined"!==typeof navigator.userAgent){const e=navigator.userAgent;s=!0===/^((?!chrome|android).)*safari/i.test(e);const t=e.match(/Version\/(\d+)/);n=s&&t?parseInt(t[1],10):-1,o=e.indexOf("Firefox")>-1,i=o?e.match(/Firefox\/([0-9]+)\./)[1]:-1}"undefined"===typeof createImageBitmap||s&&n<17||o&&i<98?this.textureLoader=new r.Tap(this.options.manager):this.textureLoader=new r.Kzg(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new r.Y9S(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),"use-credentials"===this.options.crossOrigin&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,t){const s=this,n=this.json,r=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(e){return e._markDefs&&e._markDefs()}),Promise.all(this._invokeAll(function(e){return e.beforeRoot&&e.beforeRoot()})).then(function(){return Promise.all([s.getDependencies("scene"),s.getDependencies("animation"),s.getDependencies("camera")])}).then(function(t){const o={scene:t[0][n.scene||0],scenes:t[0],animations:t[1],cameras:t[2],asset:n.asset,parser:s,userData:{}};return $(r,o,n),W(o,n),Promise.all(s._invokeAll(function(e){return e.afterRoot&&e.afterRoot(o)})).then(function(){for(const e of o.scenes)e.updateMatrixWorld();e(o)})}).catch(t)}_markDefs(){const e=this.json.nodes||[],t=this.json.skins||[],s=this.json.meshes||[];for(let n=0,r=t.length;n<r;n++){const s=t[n].joints;for(let t=0,n=s.length;t<n;t++)e[s[t]].isBone=!0}for(let n=0,r=e.length;n<r;n++){const t=e[n];void 0!==t.mesh&&(this._addNodeRef(this.meshCache,t.mesh),void 0!==t.skin&&(s[t.mesh].isSkinnedMesh=!0)),void 0!==t.camera&&this._addNodeRef(this.cameraCache,t.camera)}}_addNodeRef(e,t){void 0!==t&&(void 0===e.refs[t]&&(e.refs[t]=e.uses[t]=0),e.refs[t]++)}_getNodeRef(e,t,s){if(e.refs[t]<=1)return s;const n=s.clone(),r=(e,t)=>{const s=this.associations.get(e);null!=s&&this.associations.set(t,s);for(const[n,o]of e.children.entries())r(o,t.children[n])};return r(s,n),n.name+="_instance_"+e.uses[t]++,n}_invokeOne(e){const t=Object.values(this.plugins);t.push(this);for(let s=0;s<t.length;s++){const n=e(t[s]);if(n)return n}return null}_invokeAll(e){const t=Object.values(this.plugins);t.unshift(this);const s=[];for(let n=0;n<t.length;n++){const r=e(t[n]);r&&s.push(r)}return s}getDependency(e,t){const s=e+":"+t;let n=this.cache.get(s);if(!n){switch(e){case"scene":n=this.loadScene(t);break;case"node":n=this._invokeOne(function(e){return e.loadNode&&e.loadNode(t)});break;case"mesh":n=this._invokeOne(function(e){return e.loadMesh&&e.loadMesh(t)});break;case"accessor":n=this.loadAccessor(t);break;case"bufferView":n=this._invokeOne(function(e){return e.loadBufferView&&e.loadBufferView(t)});break;case"buffer":n=this.loadBuffer(t);break;case"material":n=this._invokeOne(function(e){return e.loadMaterial&&e.loadMaterial(t)});break;case"texture":n=this._invokeOne(function(e){return e.loadTexture&&e.loadTexture(t)});break;case"skin":n=this.loadSkin(t);break;case"animation":n=this._invokeOne(function(e){return e.loadAnimation&&e.loadAnimation(t)});break;case"camera":n=this.loadCamera(t);break;default:if(n=this._invokeOne(function(s){return s!=this&&s.getDependency&&s.getDependency(e,t)}),!n)throw new Error("Unknown type: "+e)}this.cache.add(s,n)}return n}getDependencies(e){let t=this.cache.get(e);if(!t){const s=this,n=this.json[e+("mesh"===e?"es":"s")]||[];t=Promise.all(n.map(function(t,n){return s.getDependency(e,n)})),this.cache.add(e,t)}return t}loadBuffer(e){const t=this.json.buffers[e],s=this.fileLoader;if(t.type&&"arraybuffer"!==t.type)throw new Error("THREE.GLTFLoader: "+t.type+" buffer type is not supported.");if(void 0===t.uri&&0===e)return Promise.resolve(this.extensions[u.KHR_BINARY_GLTF].body);const n=this.options;return new Promise(function(e,o){s.load(r.r6x.resolveURL(t.uri,n.path),e,void 0,function(){o(new Error('THREE.GLTFLoader: Failed to load buffer "'+t.uri+'".'))})})}loadBufferView(e){const t=this.json.bufferViews[e];return this.getDependency("buffer",t.buffer).then(function(e){const s=t.byteLength||0,n=t.byteOffset||0;return e.slice(n,n+s)})}loadAccessor(e){const t=this,s=this.json,n=this.json.accessors[e];if(void 0===n.bufferView&&void 0===n.sparse){const e=j[n.type],t=G[n.componentType],s=!0===n.normalized,o=new t(n.count*e);return Promise.resolve(new r.THS(o,e,s))}const o=[];return void 0!==n.bufferView?o.push(this.getDependency("bufferView",n.bufferView)):o.push(null),void 0!==n.sparse&&(o.push(this.getDependency("bufferView",n.sparse.indices.bufferView)),o.push(this.getDependency("bufferView",n.sparse.values.bufferView))),Promise.all(o).then(function(e){const o=e[0],i=j[n.type],a=G[n.componentType],c=a.BYTES_PER_ELEMENT,l=c*i,u=n.byteOffset||0,h=void 0!==n.bufferView?s.bufferViews[n.bufferView].byteStride:void 0,d=!0===n.normalized;let p,m;if(h&&h!==l){const e=Math.floor(u/h),s="InterleavedBuffer:"+n.bufferView+":"+n.componentType+":"+e+":"+n.count;let l=t.cache.get(s);l||(p=new a(o,e*h,n.count*h/c),l=new r.eB$(p,h/c),t.cache.add(s,l)),m=new r.eHs(l,i,u%h/c,d)}else p=null===o?new a(n.count*i):new a(o,u,n.count*i),m=new r.THS(p,i,d);if(void 0!==n.sparse){const t=j.SCALAR,s=G[n.sparse.indices.componentType],c=n.sparse.indices.byteOffset||0,l=n.sparse.values.byteOffset||0,u=new s(e[1],c,n.sparse.count*t),h=new a(e[2],l,n.sparse.count*i);null!==o&&(m=new r.THS(m.array.slice(),m.itemSize,m.normalized)),m.normalized=!1;for(let e=0,n=u.length;e<n;e++){const t=u[e];if(m.setX(t,h[e*i]),i>=2&&m.setY(t,h[e*i+1]),i>=3&&m.setZ(t,h[e*i+2]),i>=4&&m.setW(t,h[e*i+3]),i>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}m.normalized=d}return m})}loadTexture(e){const t=this.json,s=this.options,n=t.textures[e].source,r=t.images[n];let o=this.textureLoader;if(r.uri){const e=s.manager.getHandler(r.uri);null!==e&&(o=e)}return this.loadTextureImage(e,n,o)}loadTextureImage(e,t,s){const n=this,o=this.json,i=o.textures[e],a=o.images[t],c=(a.uri||a.bufferView)+":"+i.sampler;if(this.textureCache[c])return this.textureCache[c];const l=this.loadImageSource(t,s).then(function(t){t.flipY=!1,t.name=i.name||a.name||"",""===t.name&&"string"===typeof a.uri&&!1===a.uri.startsWith("data:image/")&&(t.name=a.uri);const s=(o.samplers||{})[i.sampler]||{};return t.magFilter=K[s.magFilter]||r.k6q,t.minFilter=K[s.minFilter]||r.$_I,t.wrapS=B[s.wrapS]||r.GJx,t.wrapT=B[s.wrapT]||r.GJx,t.generateMipmaps=!t.isCompressedTexture&&t.minFilter!==r.hxR&&t.minFilter!==r.k6q,n.associations.set(t,{textures:e}),t}).catch(function(){return null});return this.textureCache[c]=l,l}loadImageSource(e,t){const s=this,n=this.json,o=this.options;if(void 0!==this.sourceCache[e])return this.sourceCache[e].then(e=>e.clone());const i=n.images[e],a=self.URL||self.webkitURL;let c=i.uri||"",l=!1;if(void 0!==i.bufferView)c=s.getDependency("bufferView",i.bufferView).then(function(e){l=!0;const t=new Blob([e],{type:i.mimeType});return c=a.createObjectURL(t),c});else if(void 0===i.uri)throw new Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");const u=Promise.resolve(c).then(function(e){return new Promise(function(s,n){let i=s;!0===t.isImageBitmapLoader&&(i=function(e){const t=new r.gPd(e);t.needsUpdate=!0,s(t)}),t.load(r.r6x.resolveURL(e,o.path),i,void 0,n)})}).then(function(e){var t;return!0===l&&a.revokeObjectURL(c),W(e,i),e.userData.mimeType=i.mimeType||((t=i.uri).search(/\.jpe?g($|\?)/i)>0||0===t.search(/^data\:image\/jpeg/)?"image/jpeg":t.search(/\.webp($|\?)/i)>0||0===t.search(/^data\:image\/webp/)?"image/webp":t.search(/\.ktx2($|\?)/i)>0||0===t.search(/^data\:image\/ktx2/)?"image/ktx2":"image/png"),e}).catch(function(e){throw console.error("THREE.GLTFLoader: Couldn't load texture",c),e});return this.sourceCache[e]=u,u}assignTexture(e,t,s,n){const r=this;return this.getDependency("texture",s.index).then(function(o){if(!o)return null;if(void 0!==s.texCoord&&s.texCoord>0&&((o=o.clone()).channel=s.texCoord),r.extensions[u.KHR_TEXTURE_TRANSFORM]){const e=void 0!==s.extensions?s.extensions[u.KHR_TEXTURE_TRANSFORM]:void 0;if(e){const t=r.associations.get(o);o=r.extensions[u.KHR_TEXTURE_TRANSFORM].extendTexture(o,e),r.associations.set(o,t)}}return void 0!==n&&(o.colorSpace=n),e[t]=o,o})}assignFinalMaterial(e){const t=e.geometry;let s=e.material;const n=void 0===t.attributes.tangent,o=void 0!==t.attributes.color,i=void 0===t.attributes.normal;if(e.isPoints){const e="PointsMaterial:"+s.uuid;let t=this.cache.get(e);t||(t=new r.BH$,r.imn.prototype.copy.call(t,s),t.color.copy(s.color),t.map=s.map,t.sizeAttenuation=!1,this.cache.add(e,t)),s=t}else if(e.isLine){const e="LineBasicMaterial:"+s.uuid;let t=this.cache.get(e);t||(t=new r.mrM,r.imn.prototype.copy.call(t,s),t.color.copy(s.color),t.map=s.map,this.cache.add(e,t)),s=t}if(n||o||i){let e="ClonedMaterial:"+s.uuid+":";n&&(e+="derivative-tangents:"),o&&(e+="vertex-colors:"),i&&(e+="flat-shading:");let t=this.cache.get(e);t||(t=s.clone(),o&&(t.vertexColors=!0),i&&(t.flatShading=!0),n&&(t.normalScale&&(t.normalScale.y*=-1),t.clearcoatNormalScale&&(t.clearcoatNormalScale.y*=-1)),this.cache.add(e,t),this.associations.set(t,this.associations.get(s))),s=t}e.material=s}getMaterialType(){return r._4j}loadMaterial(e){const t=this,s=this.json,n=this.extensions,o=s.materials[e];let i;const a={},c=[];if((o.extensions||{})[u.KHR_MATERIALS_UNLIT]){const e=n[u.KHR_MATERIALS_UNLIT];i=e.getMaterialType(),c.push(e.extendParams(a,o,t))}else{const s=o.pbrMetallicRoughness||{};if(a.color=new r.Q1f(1,1,1),a.opacity=1,Array.isArray(s.baseColorFactor)){const e=s.baseColorFactor;a.color.setRGB(e[0],e[1],e[2],r.Zr2),a.opacity=e[3]}void 0!==s.baseColorTexture&&c.push(t.assignTexture(a,"map",s.baseColorTexture,r.er$)),a.metalness=void 0!==s.metallicFactor?s.metallicFactor:1,a.roughness=void 0!==s.roughnessFactor?s.roughnessFactor:1,void 0!==s.metallicRoughnessTexture&&(c.push(t.assignTexture(a,"metalnessMap",s.metallicRoughnessTexture)),c.push(t.assignTexture(a,"roughnessMap",s.metallicRoughnessTexture))),i=this._invokeOne(function(t){return t.getMaterialType&&t.getMaterialType(e)}),c.push(Promise.all(this._invokeAll(function(t){return t.extendMaterialParams&&t.extendMaterialParams(e,a)})))}!0===o.doubleSided&&(a.side=r.$EB);const l=o.alphaMode||z;if(l===Z?(a.transparent=!0,a.depthWrite=!1):(a.transparent=!1,l===Y&&(a.alphaTest=void 0!==o.alphaCutoff?o.alphaCutoff:.5)),void 0!==o.normalTexture&&i!==r.V9B&&(c.push(t.assignTexture(a,"normalMap",o.normalTexture)),a.normalScale=new r.I9Y(1,1),void 0!==o.normalTexture.scale)){const e=o.normalTexture.scale;a.normalScale.set(e,e)}if(void 0!==o.occlusionTexture&&i!==r.V9B&&(c.push(t.assignTexture(a,"aoMap",o.occlusionTexture)),void 0!==o.occlusionTexture.strength&&(a.aoMapIntensity=o.occlusionTexture.strength)),void 0!==o.emissiveFactor&&i!==r.V9B){const e=o.emissiveFactor;a.emissive=(new r.Q1f).setRGB(e[0],e[1],e[2],r.Zr2)}return void 0!==o.emissiveTexture&&i!==r.V9B&&c.push(t.assignTexture(a,"emissiveMap",o.emissiveTexture,r.er$)),Promise.all(c).then(function(){const s=new i(a);return o.name&&(s.name=o.name),W(s,o),t.associations.set(s,{materials:e}),o.extensions&&$(n,s,o),s})}createUniqueName(e){const t=r.Nwf.sanitizeNodeName(e||"");return t in this.nodeNamesUsed?t+"_"+ ++this.nodeNamesUsed[t]:(this.nodeNamesUsed[t]=0,t)}loadGeometries(e){const t=this,s=this.extensions,n=this.primitiveCache;function o(e){return s[u.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,t).then(function(s){return oe(s,e,t)})}const i=[];for(let a=0,c=e.length;a<c;a++){const s=e[a],c=ee(s),l=n[c];if(l)i.push(l.promise);else{let e;e=s.extensions&&s.extensions[u.KHR_DRACO_MESH_COMPRESSION]?o(s):oe(new r.LoY,s,t),n[c]={primitive:s,promise:e},i.push(e)}}return Promise.all(i)}loadMesh(e){const t=this,s=this.json,n=this.extensions,i=s.meshes[e],a=i.primitives,c=[];for(let r=0,o=a.length;r<o;r++){const e=void 0===a[r].material?J(this.cache):this.getDependency("material",a[r].material);c.push(e)}return c.push(t.loadGeometries(a)),Promise.all(c).then(function(s){const c=s.slice(0,s.length-1),l=s[s.length-1],u=[];for(let d=0,p=l.length;d<p;d++){const s=l[d],h=a[d];let p;const m=c[d];if(h.mode===D.TRIANGLES||h.mode===D.TRIANGLE_STRIP||h.mode===D.TRIANGLE_FAN||void 0===h.mode)p=!0===i.isSkinnedMesh?new r.I46(s,m):new r.eaF(s,m),!0===p.isSkinnedMesh&&p.normalizeSkinWeights(),h.mode===D.TRIANGLE_STRIP?p.geometry=o(p.geometry,r.O49):h.mode===D.TRIANGLE_FAN&&(p.geometry=o(p.geometry,r.rYR));else if(h.mode===D.LINES)p=new r.DXC(s,m);else if(h.mode===D.LINE_STRIP)p=new r.N1A(s,m);else if(h.mode===D.LINE_LOOP)p=new r.FCc(s,m);else{if(h.mode!==D.POINTS)throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+h.mode);p=new r.ONl(s,m)}Object.keys(p.geometry.morphAttributes).length>0&&Q(p,i),p.name=t.createUniqueName(i.name||"mesh_"+e),W(p,i),h.extensions&&$(n,p,h),t.assignFinalMaterial(p),u.push(p)}for(let n=0,r=u.length;n<r;n++)t.associations.set(u[n],{meshes:e,primitives:n});if(1===u.length)return i.extensions&&$(n,u[0],i),u[0];const h=new r.YJl;i.extensions&&$(n,h,i),t.associations.set(h,{meshes:e});for(let e=0,t=u.length;e<t;e++)h.add(u[e]);return h})}loadCamera(e){let t;const s=this.json.cameras[e],n=s[s.type];if(n)return"perspective"===s.type?t=new r.ubm(r.cj9.radToDeg(n.yfov),n.aspectRatio||1,n.znear||1,n.zfar||2e6):"orthographic"===s.type&&(t=new r.qUd(-n.xmag,n.xmag,n.ymag,-n.ymag,n.znear,n.zfar)),s.name&&(t.name=this.createUniqueName(s.name)),W(t,s),Promise.resolve(t);console.warn("THREE.GLTFLoader: Missing camera parameters.")}loadSkin(e){const t=this.json.skins[e],s=[];for(let n=0,r=t.joints.length;n<r;n++)s.push(this._loadNodeShallow(t.joints[n]));return void 0!==t.inverseBindMatrices?s.push(this.getDependency("accessor",t.inverseBindMatrices)):s.push(null),Promise.all(s).then(function(e){const s=e.pop(),n=e,o=[],i=[];for(let a=0,c=n.length;a<c;a++){const e=n[a];if(e){o.push(e);const t=new r.kn4;null!==s&&t.fromArray(s.array,16*a),i.push(t)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',t.joints[a])}return new r.EAD(o,i)})}loadAnimation(e){const t=this.json,s=this,n=t.animations[e],o=n.name?n.name:"animation_"+e,i=[],a=[],c=[],l=[],u=[];for(let r=0,h=n.channels.length;r<h;r++){const e=n.channels[r],t=n.samplers[e.sampler],s=e.target,o=s.node,h=void 0!==n.parameters?n.parameters[t.input]:t.input,d=void 0!==n.parameters?n.parameters[t.output]:t.output;void 0!==s.node&&(i.push(this.getDependency("node",o)),a.push(this.getDependency("accessor",h)),c.push(this.getDependency("accessor",d)),l.push(t),u.push(s))}return Promise.all([Promise.all(i),Promise.all(a),Promise.all(c),Promise.all(l),Promise.all(u)]).then(function(e){const t=e[0],i=e[1],a=e[2],c=e[3],l=e[4],u=[];for(let n=0,r=t.length;n<r;n++){const e=t[n],r=i[n],o=a[n],h=c[n],d=l[n];if(void 0===e)continue;e.updateMatrix&&e.updateMatrix();const p=s._createAnimationTracks(e,r,o,h,d);if(p)for(let t=0;t<p.length;t++)u.push(p[t])}const h=new r.tz3(o,void 0,u);return W(h,n),h})}createNodeMesh(e){const t=this.json,s=this,n=t.nodes[e];return void 0===n.mesh?null:s.getDependency("mesh",n.mesh).then(function(e){const t=s._getNodeRef(s.meshCache,n.mesh,e);return void 0!==n.weights&&t.traverse(function(e){if(e.isMesh)for(let t=0,s=n.weights.length;t<s;t++)e.morphTargetInfluences[t]=n.weights[t]}),t})}loadNode(e){const t=this,s=this.json.nodes[e],n=t._loadNodeShallow(e),o=[],i=s.children||[];for(let r=0,c=i.length;r<c;r++)o.push(t.getDependency("node",i[r]));const a=void 0===s.skin?Promise.resolve(null):t.getDependency("skin",s.skin);return Promise.all([n,Promise.all(o),a]).then(function(e){const t=e[0],s=e[1],n=e[2];null!==n&&t.traverse(function(e){e.isSkinnedMesh&&e.bind(n,ne)});for(let r=0,o=s.length;r<o;r++)t.add(s[r]);if(void 0!==t.userData.pivot&&s.length>0){const e=t.userData.pivot,n=s[0];t.pivot=(new r.Pq0).fromArray(e),t.position.x-=e[0],t.position.y-=e[1],t.position.z-=e[2],n.position.set(0,0,0),delete t.userData.pivot}return t})}_loadNodeShallow(e){const t=this.json,s=this.extensions,o=this;if(void 0!==this.nodeCache[e])return this.nodeCache[e];const i=t.nodes[e],a=i.name?o.createUniqueName(i.name):"",c=[],l=o._invokeOne(function(t){return t.createNodeMesh&&t.createNodeMesh(e)});return l&&c.push(l),void 0!==i.camera&&c.push(o.getDependency("camera",i.camera).then(function(e){return o._getNodeRef(o.cameraCache,i.camera,e)})),o._invokeAll(function(t){return t.createNodeAttachment&&t.createNodeAttachment(e)}).forEach(function(e){c.push(e)}),this.nodeCache[e]=Promise.all(c).then(function(t){let c;if(c=!0===i.isBone?new r.$Kf:t.length>1?new r.YJl:1===t.length?t[0]:new r.B69,c!==t[0])for(let e=0,s=t.length;e<s;e++)c.add(t[e]);if(i.name&&(c.userData.name=i.name,c.name=a),W(c,i),i.extensions&&$(s,c,i),void 0!==i.matrix){const e=new r.kn4;e.fromArray(i.matrix),c.applyMatrix4(e)}else void 0!==i.translation&&c.position.fromArray(i.translation),void 0!==i.rotation&&c.quaternion.fromArray(i.rotation),void 0!==i.scale&&c.scale.fromArray(i.scale);if(o.associations.has(c)){if(void 0!==i.mesh&&o.meshCache.refs[i.mesh]>1){const e=o.associations.get(c);o.associations.set(c,(0,n.A)({},e))}}else o.associations.set(c,{});return o.associations.get(c).nodes=e,c}),this.nodeCache[e]}loadScene(e){const t=this.extensions,s=this.json.scenes[e],n=this,o=new r.YJl;s.name&&(o.name=n.createUniqueName(s.name)),W(o,s),s.extensions&&$(t,o,s);const a=s.nodes||[],c=[];for(let r=0,i=a.length;r<i;r++)c.push(n.getDependency("node",a[r]));return Promise.all(c).then(function(e){for(let t=0,s=e.length;t<s;t++){const s=e[t];null!==s.parent?o.add((0,i.o8)(s)):o.add(s)}return n.associations=(e=>{const t=new Map;for(const[s,o]of n.associations)(s instanceof r.imn||s instanceof r.gPd)&&t.set(s,o);return e.traverse(e=>{const s=n.associations.get(e);null!=s&&t.set(e,s)}),t})(o),o})}_createAnimationTracks(e,t,s,n,o){const i=[],a=e.name?e.name:e.uuid,c=[];let l;switch(X[o.path]===X.weights?e.traverse(function(e){e.morphTargetInfluences&&c.push(e.name?e.name:e.uuid)}):c.push(a),X[o.path]){case X.weights:l=r.Hit;break;case X.rotation:l=r.MBL;break;case X.translation:case X.scale:l=r.RiT;break;default:if(1===s.itemSize)l=r.Hit;else l=r.RiT}const u=void 0!==n.interpolation?q[n.interpolation]:r.PJ3,h=this._getArrayFromAccessor(s);for(let r=0,d=c.length;r<d;r++){const e=new l(c[r]+"."+X[o.path],t.array,h,u);"CUBICSPLINE"===n.interpolation&&this._createCubicSplineTrackInterpolant(e),i.push(e)}return i}_getArrayFromAccessor(e){let t=e.array;if(e.normalized){const e=se(t.constructor),s=new Float32Array(t.length);for(let n=0,r=t.length;n<r;n++)s[n]=t[n]*e;t=s}return t}_createCubicSplineTrackInterpolant(e){e.createInterpolant=function(e){return new(this instanceof r.MBL?U:k)(this.times,this.values,this.getValueSize()/3,e)},e.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}}function oe(e,t,s){const n=t.attributes,o=[];function i(t,n){return s.getDependency("accessor",t).then(function(t){e.setAttribute(n,t)})}for(const r in n){const t=V[r]||r.toLowerCase();t in e.attributes||o.push(i(n[r],t))}if(void 0!==t.indices&&!e.index){const n=s.getDependency("accessor",t.indices).then(function(t){e.setIndex(t)});o.push(n)}return r.ppV.workingColorSpace!==r.Zr2&&"COLOR_0"in n&&console.warn('THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "'.concat(r.ppV.workingColorSpace,'" not supported.')),W(e,t),function(e,t,s){const n=t.attributes,o=new r.NRn;if(void 0===n.POSITION)return;{const e=s.json.accessors[n.POSITION],t=e.min,i=e.max;if(void 0===t||void 0===i)return void console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");if(o.set(new r.Pq0(t[0],t[1],t[2]),new r.Pq0(i[0],i[1],i[2])),e.normalized){const t=se(G[e.componentType]);o.min.multiplyScalar(t),o.max.multiplyScalar(t)}}const i=t.targets;if(void 0!==i){const e=new r.Pq0,t=new r.Pq0;for(let n=0,r=i.length;n<r;n++){const r=i[n];if(void 0!==r.POSITION){const n=s.json.accessors[r.POSITION],o=n.min,i=n.max;if(void 0!==o&&void 0!==i){if(t.setX(Math.max(Math.abs(o[0]),Math.abs(i[0]))),t.setY(Math.max(Math.abs(o[1]),Math.abs(i[1]))),t.setZ(Math.max(Math.abs(o[2]),Math.abs(i[2]))),n.normalized){const e=se(G[n.componentType]);t.multiplyScalar(e)}e.max(t)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}o.expandByVector(e)}e.boundingBox=o;const a=new r.iyt;o.getCenter(a.center),a.radius=o.min.distanceTo(o.max)/2,e.boundingSphere=a}(e,t,s),Promise.all(o).then(function(){return void 0!==t.targets?function(e,t,s){let n=!1,r=!1,o=!1;for(let l=0,u=t.length;l<u;l++){const e=t[l];if(void 0!==e.POSITION&&(n=!0),void 0!==e.NORMAL&&(r=!0),void 0!==e.COLOR_0&&(o=!0),n&&r&&o)break}if(!n&&!r&&!o)return Promise.resolve(e);const i=[],a=[],c=[];for(let l=0,u=t.length;l<u;l++){const u=t[l];if(n){const t=void 0!==u.POSITION?s.getDependency("accessor",u.POSITION):e.attributes.position;i.push(t)}if(r){const t=void 0!==u.NORMAL?s.getDependency("accessor",u.NORMAL):e.attributes.normal;a.push(t)}if(o){const t=void 0!==u.COLOR_0?s.getDependency("accessor",u.COLOR_0):e.attributes.color;c.push(t)}}return Promise.all([Promise.all(i),Promise.all(a),Promise.all(c)]).then(function(t){const s=t[0],i=t[1],a=t[2];return n&&(e.morphAttributes.position=s),r&&(e.morphAttributes.normal=i),o&&(e.morphAttributes.color=a),e.morphTargetsRelative=!0,e})}(e,t.targets,s):e})}},9812(e,t,s){function n(e){const t=new Map,s=new Map,n=e.clone();return r(e,n,function(e,n){t.set(n,e),s.set(e,n)}),n.traverse(function(e){if(!e.isSkinnedMesh)return;const n=e,r=t.get(e),o=r.skeleton.bones;n.skeleton=r.skeleton.clone(),n.bindMatrix.copy(r.bindMatrix),n.skeleton.bones=o.map(function(e){return s.get(e)}),n.bind(n.skeleton,n.bindMatrix)}),n}function r(e,t,s){s(e,t);for(let n=0;n<e.children.length;n++)r(e.children[n],t.children[n],s)}s.d(t,{o8:()=>n})}}]);
|
services/explorer/dist/static/js/718.a3eba1ba.chunk.js
DELETED
|
@@ -1 +0,0 @@
|
|
| 1 |
-
"use strict";(self.webpackChunkdeepsearch_ui=self.webpackChunkdeepsearch_ui||[]).push([[718],{718(e,t,s){s.r(t),s.d(t,{GLTFLoader:()=>a});var n=s(379),r=s(435);function o(e,t){if(t===r.RJ4)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),e;if(t===r.rYR||t===r.O49){let s=e.getIndex();if(null===s){const t=[],n=e.getAttribute("position");if(void 0===n)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),e;for(let e=0;e<n.count;e++)t.push(e);e.setIndex(t),s=e.getIndex()}const n=s.count-2,o=[];if(t===r.rYR)for(let e=1;e<=n;e++)o.push(s.getX(0)),o.push(s.getX(e)),o.push(s.getX(e+1));else for(let e=0;e<n;e++)e%2===0?(o.push(s.getX(e)),o.push(s.getX(e+1)),o.push(s.getX(e+2))):(o.push(s.getX(e+2)),o.push(s.getX(e+1)),o.push(s.getX(e)));o.length/3!==n&&console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");const i=e.clone();return i.setIndex(o),i.clearGroups(),i}return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",t),e}var i=s(812);class a extends r.aHM{constructor(e){super(e),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(e){return new m(e)}),this.register(function(e){return new f(e)}),this.register(function(e){return new w(e)}),this.register(function(e){return new S(e)}),this.register(function(e){return new y(e)}),this.register(function(e){return new T(e)}),this.register(function(e){return new R(e)}),this.register(function(e){return new x(e)}),this.register(function(e){return new _(e)}),this.register(function(e){return new p(e)}),this.register(function(e){return new E(e)}),this.register(function(e){return new g(e)}),this.register(function(e){return new A(e)}),this.register(function(e){return new v(e)}),this.register(function(e){return new h(e)}),this.register(function(e){return new M(e,u.EXT_MESHOPT_COMPRESSION)}),this.register(function(e){return new M(e,u.KHR_MESHOPT_COMPRESSION)}),this.register(function(e){return new L(e)})}load(e,t,s,n){const o=this;let i;if(""!==this.resourcePath)i=this.resourcePath;else if(""!==this.path){const t=r.r6x.extractUrlBase(e);i=r.r6x.resolveURL(t,this.path)}else i=r.r6x.extractUrlBase(e);this.manager.itemStart(e);const a=function(t){n?n(t):console.error(t),o.manager.itemError(e),o.manager.itemEnd(e)},c=new r.Y9S(this.manager);c.setPath(this.path),c.setResponseType("arraybuffer"),c.setRequestHeader(this.requestHeader),c.setWithCredentials(this.withCredentials),c.load(e,function(s){try{o.parse(s,i,function(s){t(s),o.manager.itemEnd(e)},a)}catch(n){a(n)}},s,a)}setDRACOLoader(e){return this.dracoLoader=e,this}setKTX2Loader(e){return this.ktx2Loader=e,this}setMeshoptDecoder(e){return this.meshoptDecoder=e,this}register(e){return-1===this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.push(e),this}unregister(e){return-1!==this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e),1),this}parse(e,t,s,n){let r;const o={},i={},a=new TextDecoder;if("string"===typeof e)r=JSON.parse(e);else if(e instanceof ArrayBuffer){if(a.decode(new Uint8Array(e,0,4))===I){try{o[u.KHR_BINARY_GLTF]=new O(e)}catch(l){return void(n&&n(l))}r=JSON.parse(o[u.KHR_BINARY_GLTF].content)}else r=JSON.parse(a.decode(e))}else r=e;if(void 0===r.asset||r.asset.version[0]<2)return void(n&&n(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.")));const c=new re(r,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});c.fileLoader.setRequestHeader(this.requestHeader);for(let u=0;u<this.pluginCallbacks.length;u++){const e=this.pluginCallbacks[u](c);e.name||console.error("THREE.GLTFLoader: Invalid plugin found: missing name"),i[e.name]=e,o[e.name]=!0}if(r.extensionsUsed)for(let h=0;h<r.extensionsUsed.length;++h){const e=r.extensionsUsed[h],t=r.extensionsRequired||[];switch(e){case u.KHR_MATERIALS_UNLIT:o[e]=new d;break;case u.KHR_DRACO_MESH_COMPRESSION:o[e]=new C(r,this.dracoLoader);break;case u.KHR_TEXTURE_TRANSFORM:o[e]=new P;break;case u.KHR_MESH_QUANTIZATION:o[e]=new H;break;default:t.indexOf(e)>=0&&void 0===i[e]&&console.warn('THREE.GLTFLoader: Unknown extension "'+e+'".')}}c.setExtensions(o),c.setPlugins(i),c.parse(s,n)}parseAsync(e,t){const s=this;return new Promise(function(n,r){s.parse(e,t,n,r)})}}function c(){let e={};return{get:function(t){return e[t]},add:function(t,s){e[t]=s},remove:function(t){delete e[t]},removeAll:function(){e={}}}}function l(e,t,s){const n=e.json.materials[t];return n.extensions&&n.extensions[s]?n.extensions[s]:null}const u={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_DISPERSION:"KHR_materials_dispersion",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",KHR_MESHOPT_COMPRESSION:"KHR_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class h{constructor(e){this.parser=e,this.name=u.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const e=this.parser,t=this.parser.json.nodes||[];for(let s=0,n=t.length;s<n;s++){const n=t[s];n.extensions&&n.extensions[this.name]&&void 0!==n.extensions[this.name].light&&e._addNodeRef(this.cache,n.extensions[this.name].light)}}_loadLight(e){const t=this.parser,s="light:"+e;let n=t.cache.get(s);if(n)return n;const o=t.json,i=((o.extensions&&o.extensions[this.name]||{}).lights||[])[e];let a;const c=new r.Q1f(16777215);void 0!==i.color&&c.setRGB(i.color[0],i.color[1],i.color[2],r.Zr2);const l=void 0!==i.range?i.range:0;switch(i.type){case"directional":a=new r.ZyN(c),a.target.position.set(0,0,-1),a.add(a.target);break;case"point":a=new r.HiM(c),a.distance=l;break;case"spot":a=new r.nCl(c),a.distance=l,i.spot=i.spot||{},i.spot.innerConeAngle=void 0!==i.spot.innerConeAngle?i.spot.innerConeAngle:0,i.spot.outerConeAngle=void 0!==i.spot.outerConeAngle?i.spot.outerConeAngle:Math.PI/4,a.angle=i.spot.outerConeAngle,a.penumbra=1-i.spot.innerConeAngle/i.spot.outerConeAngle,a.target.position.set(0,0,-1),a.add(a.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+i.type)}return a.position.set(0,0,0),W(a,i),void 0!==i.intensity&&(a.intensity=i.intensity),a.name=t.createUniqueName(i.name||"light_"+e),n=Promise.resolve(a),t.cache.add(s,n),n}getDependency(e,t){if("light"===e)return this._loadLight(t)}createNodeAttachment(e){const t=this,s=this.parser,n=s.json.nodes[e],r=(n.extensions&&n.extensions[this.name]||{}).light;return void 0===r?null:this._loadLight(r).then(function(e){return s._getNodeRef(t.cache,r,e)})}}class d{constructor(){this.name=u.KHR_MATERIALS_UNLIT}getMaterialType(){return r.V9B}extendParams(e,t,s){const n=[];e.color=new r.Q1f(1,1,1),e.opacity=1;const o=t.pbrMetallicRoughness;if(o){if(Array.isArray(o.baseColorFactor)){const t=o.baseColorFactor;e.color.setRGB(t[0],t[1],t[2],r.Zr2),e.opacity=t[3]}void 0!==o.baseColorTexture&&n.push(s.assignTexture(e,"map",o.baseColorTexture,r.er$))}return Promise.all(n)}}class p{constructor(e){this.parser=e,this.name=u.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(e,t){const s=l(this.parser,e,this.name);return null===s||void 0!==s.emissiveStrength&&(t.emissiveIntensity=s.emissiveStrength),Promise.resolve()}}class m{constructor(e){this.parser=e,this.name=u.KHR_MATERIALS_CLEARCOAT}getMaterialType(e){return null!==l(this.parser,e,this.name)?r.uSd:null}extendMaterialParams(e,t){const s=l(this.parser,e,this.name);if(null===s)return Promise.resolve();const n=[];if(void 0!==s.clearcoatFactor&&(t.clearcoat=s.clearcoatFactor),void 0!==s.clearcoatTexture&&n.push(this.parser.assignTexture(t,"clearcoatMap",s.clearcoatTexture)),void 0!==s.clearcoatRoughnessFactor&&(t.clearcoatRoughness=s.clearcoatRoughnessFactor),void 0!==s.clearcoatRoughnessTexture&&n.push(this.parser.assignTexture(t,"clearcoatRoughnessMap",s.clearcoatRoughnessTexture)),void 0!==s.clearcoatNormalTexture&&(n.push(this.parser.assignTexture(t,"clearcoatNormalMap",s.clearcoatNormalTexture)),void 0!==s.clearcoatNormalTexture.scale)){const e=s.clearcoatNormalTexture.scale;t.clearcoatNormalScale=new r.I9Y(e,e)}return Promise.all(n)}}class f{constructor(e){this.parser=e,this.name=u.KHR_MATERIALS_DISPERSION}getMaterialType(e){return null!==l(this.parser,e,this.name)?r.uSd:null}extendMaterialParams(e,t){const s=l(this.parser,e,this.name);return null===s||(t.dispersion=void 0!==s.dispersion?s.dispersion:0),Promise.resolve()}}class g{constructor(e){this.parser=e,this.name=u.KHR_MATERIALS_IRIDESCENCE}getMaterialType(e){return null!==l(this.parser,e,this.name)?r.uSd:null}extendMaterialParams(e,t){const s=l(this.parser,e,this.name);if(null===s)return Promise.resolve();const n=[];return void 0!==s.iridescenceFactor&&(t.iridescence=s.iridescenceFactor),void 0!==s.iridescenceTexture&&n.push(this.parser.assignTexture(t,"iridescenceMap",s.iridescenceTexture)),void 0!==s.iridescenceIor&&(t.iridescenceIOR=s.iridescenceIor),void 0===t.iridescenceThicknessRange&&(t.iridescenceThicknessRange=[100,400]),void 0!==s.iridescenceThicknessMinimum&&(t.iridescenceThicknessRange[0]=s.iridescenceThicknessMinimum),void 0!==s.iridescenceThicknessMaximum&&(t.iridescenceThicknessRange[1]=s.iridescenceThicknessMaximum),void 0!==s.iridescenceThicknessTexture&&n.push(this.parser.assignTexture(t,"iridescenceThicknessMap",s.iridescenceThicknessTexture)),Promise.all(n)}}class T{constructor(e){this.parser=e,this.name=u.KHR_MATERIALS_SHEEN}getMaterialType(e){return null!==l(this.parser,e,this.name)?r.uSd:null}extendMaterialParams(e,t){const s=l(this.parser,e,this.name);if(null===s)return Promise.resolve();const n=[];if(t.sheenColor=new r.Q1f(0,0,0),t.sheenRoughness=0,t.sheen=1,void 0!==s.sheenColorFactor){const e=s.sheenColorFactor;t.sheenColor.setRGB(e[0],e[1],e[2],r.Zr2)}return void 0!==s.sheenRoughnessFactor&&(t.sheenRoughness=s.sheenRoughnessFactor),void 0!==s.sheenColorTexture&&n.push(this.parser.assignTexture(t,"sheenColorMap",s.sheenColorTexture,r.er$)),void 0!==s.sheenRoughnessTexture&&n.push(this.parser.assignTexture(t,"sheenRoughnessMap",s.sheenRoughnessTexture)),Promise.all(n)}}class R{constructor(e){this.parser=e,this.name=u.KHR_MATERIALS_TRANSMISSION}getMaterialType(e){return null!==l(this.parser,e,this.name)?r.uSd:null}extendMaterialParams(e,t){const s=l(this.parser,e,this.name);if(null===s)return Promise.resolve();const n=[];return void 0!==s.transmissionFactor&&(t.transmission=s.transmissionFactor),void 0!==s.transmissionTexture&&n.push(this.parser.assignTexture(t,"transmissionMap",s.transmissionTexture)),Promise.all(n)}}class x{constructor(e){this.parser=e,this.name=u.KHR_MATERIALS_VOLUME}getMaterialType(e){return null!==l(this.parser,e,this.name)?r.uSd:null}extendMaterialParams(e,t){const s=l(this.parser,e,this.name);if(null===s)return Promise.resolve();const n=[];t.thickness=void 0!==s.thicknessFactor?s.thicknessFactor:0,void 0!==s.thicknessTexture&&n.push(this.parser.assignTexture(t,"thicknessMap",s.thicknessTexture)),t.attenuationDistance=s.attenuationDistance||1/0;const o=s.attenuationColor||[1,1,1];return t.attenuationColor=(new r.Q1f).setRGB(o[0],o[1],o[2],r.Zr2),Promise.all(n)}}class _{constructor(e){this.parser=e,this.name=u.KHR_MATERIALS_IOR}getMaterialType(e){return null!==l(this.parser,e,this.name)?r.uSd:null}extendMaterialParams(e,t){const s=l(this.parser,e,this.name);return null===s||(t.ior=void 0!==s.ior?s.ior:1.5),Promise.resolve()}}class E{constructor(e){this.parser=e,this.name=u.KHR_MATERIALS_SPECULAR}getMaterialType(e){return null!==l(this.parser,e,this.name)?r.uSd:null}extendMaterialParams(e,t){const s=l(this.parser,e,this.name);if(null===s)return Promise.resolve();const n=[];t.specularIntensity=void 0!==s.specularFactor?s.specularFactor:1,void 0!==s.specularTexture&&n.push(this.parser.assignTexture(t,"specularIntensityMap",s.specularTexture));const o=s.specularColorFactor||[1,1,1];return t.specularColor=(new r.Q1f).setRGB(o[0],o[1],o[2],r.Zr2),void 0!==s.specularColorTexture&&n.push(this.parser.assignTexture(t,"specularColorMap",s.specularColorTexture,r.er$)),Promise.all(n)}}class v{constructor(e){this.parser=e,this.name=u.EXT_MATERIALS_BUMP}getMaterialType(e){return null!==l(this.parser,e,this.name)?r.uSd:null}extendMaterialParams(e,t){const s=l(this.parser,e,this.name);if(null===s)return Promise.resolve();const n=[];return t.bumpScale=void 0!==s.bumpFactor?s.bumpFactor:1,void 0!==s.bumpTexture&&n.push(this.parser.assignTexture(t,"bumpMap",s.bumpTexture)),Promise.all(n)}}class A{constructor(e){this.parser=e,this.name=u.KHR_MATERIALS_ANISOTROPY}getMaterialType(e){return null!==l(this.parser,e,this.name)?r.uSd:null}extendMaterialParams(e,t){const s=l(this.parser,e,this.name);if(null===s)return Promise.resolve();const n=[];return void 0!==s.anisotropyStrength&&(t.anisotropy=s.anisotropyStrength),void 0!==s.anisotropyRotation&&(t.anisotropyRotation=s.anisotropyRotation),void 0!==s.anisotropyTexture&&n.push(this.parser.assignTexture(t,"anisotropyMap",s.anisotropyTexture)),Promise.all(n)}}class w{constructor(e){this.parser=e,this.name=u.KHR_TEXTURE_BASISU}loadTexture(e){const t=this.parser,s=t.json,n=s.textures[e];if(!n.extensions||!n.extensions[this.name])return null;const r=n.extensions[this.name],o=t.options.ktx2Loader;if(!o){if(s.extensionsRequired&&s.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return t.loadTextureImage(e,r.source,o)}}class S{constructor(e){this.parser=e,this.name=u.EXT_TEXTURE_WEBP}loadTexture(e){const t=this.name,s=this.parser,n=s.json,r=n.textures[e];if(!r.extensions||!r.extensions[t])return null;const o=r.extensions[t],i=n.images[o.source];let a=s.textureLoader;if(i.uri){const e=s.options.manager.getHandler(i.uri);null!==e&&(a=e)}return s.loadTextureImage(e,o.source,a)}}class y{constructor(e){this.parser=e,this.name=u.EXT_TEXTURE_AVIF}loadTexture(e){const t=this.name,s=this.parser,n=s.json,r=n.textures[e];if(!r.extensions||!r.extensions[t])return null;const o=r.extensions[t],i=n.images[o.source];let a=s.textureLoader;if(i.uri){const e=s.options.manager.getHandler(i.uri);null!==e&&(a=e)}return s.loadTextureImage(e,o.source,a)}}class M{constructor(e,t){this.name=t,this.parser=e}loadBufferView(e){const t=this.parser.json,s=t.bufferViews[e];if(s.extensions&&s.extensions[this.name]){const e=s.extensions[this.name],n=this.parser.getDependency("buffer",e.buffer),r=this.parser.options.meshoptDecoder;if(!r||!r.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return n.then(function(t){const s=e.byteOffset||0,n=e.byteLength||0,o=e.count,i=e.byteStride,a=new Uint8Array(t,s,n);return r.decodeGltfBufferAsync?r.decodeGltfBufferAsync(o,i,a,e.mode,e.filter).then(function(e){return e.buffer}):r.ready.then(function(){const t=new ArrayBuffer(o*i);return r.decodeGltfBuffer(new Uint8Array(t),o,i,a,e.mode,e.filter),t})})}return null}}class L{constructor(e){this.name=u.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(e){const t=this.parser.json,s=t.nodes[e];if(!s.extensions||!s.extensions[this.name]||void 0===s.mesh)return null;const n=t.meshes[s.mesh];for(const r of n.primitives)if(r.mode!==D.TRIANGLES&&r.mode!==D.TRIANGLE_STRIP&&r.mode!==D.TRIANGLE_FAN&&void 0!==r.mode)return null;const o=s.extensions[this.name].attributes,i=[],a={};for(const r in o)i.push(this.parser.getDependency("accessor",o[r]).then(e=>(a[r]=e,a[r])));return i.length<1?null:(i.push(this.parser.createNodeMesh(e)),Promise.all(i).then(e=>{const t=e.pop(),s=t.isGroup?t.children:[t],n=e[0].count,o=[];for(const i of s){const e=new r.kn4,t=new r.Pq0,s=new r.PTz,c=new r.Pq0(1,1,1),l=new r.ZLX(i.geometry,i.material,n);for(let r=0;r<n;r++)a.TRANSLATION&&t.fromBufferAttribute(a.TRANSLATION,r),a.ROTATION&&s.fromBufferAttribute(a.ROTATION,r),a.SCALE&&c.fromBufferAttribute(a.SCALE,r),l.setMatrixAt(r,e.compose(t,s,c));for(const n in a)if("_COLOR_0"===n){const e=a[n];l.instanceColor=new r.uWO(e.array,e.itemSize,e.normalized)}else"TRANSLATION"!==n&&"ROTATION"!==n&&"SCALE"!==n&&i.geometry.setAttribute(n,a[n]);r.B69.prototype.copy.call(l,i),this.parser.assignFinalMaterial(l),o.push(l)}return t.isGroup?(t.clear(),t.add(...o),t):o[0]}))}}const I="glTF",b=1313821514,N=5130562;class O{constructor(e){this.name=u.KHR_BINARY_GLTF,this.content=null,this.body=null;const t=new DataView(e,0,12),s=new TextDecoder;if(this.header={magic:s.decode(new Uint8Array(e.slice(0,4))),version:t.getUint32(4,!0),length:t.getUint32(8,!0)},this.header.magic!==I)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");const n=this.header.length-12,r=new DataView(e,12);let o=0;for(;o<n;){const t=r.getUint32(o,!0);o+=4;const n=r.getUint32(o,!0);if(o+=4,n===b){const n=new Uint8Array(e,12+o,t);this.content=s.decode(n)}else if(n===N){const s=12+o;this.body=e.slice(s,s+t)}o+=t}if(null===this.content)throw new Error("THREE.GLTFLoader: JSON content not found.")}}class C{constructor(e,t){if(!t)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=u.KHR_DRACO_MESH_COMPRESSION,this.json=e,this.dracoLoader=t,this.dracoLoader.preload()}decodePrimitive(e,t){const s=this.json,n=this.dracoLoader,o=e.extensions[this.name].bufferView,i=e.extensions[this.name].attributes,a={},c={},l={};for(const r in i){const e=V[r]||r.toLowerCase();a[e]=i[r]}for(const r in e.attributes){const t=V[r]||r.toLowerCase();if(void 0!==i[r]){const n=s.accessors[e.attributes[r]],o=G[n.componentType];l[t]=o.name,c[t]=!0===n.normalized}}return t.getDependency("bufferView",o).then(function(e){return new Promise(function(t,s){n.decodeDracoFile(e,function(e){for(const t in e.attributes){const s=e.attributes[t],n=c[t];void 0!==n&&(s.normalized=n)}t(e)},a,l,r.Zr2,s)})})}}class P{constructor(){this.name=u.KHR_TEXTURE_TRANSFORM}extendTexture(e,t){return void 0!==t.texCoord&&t.texCoord!==e.channel||void 0!==t.offset||void 0!==t.rotation||void 0!==t.scale?(e=e.clone(),void 0!==t.texCoord&&(e.channel=t.texCoord),void 0!==t.offset&&e.offset.fromArray(t.offset),void 0!==t.rotation&&(e.rotation=t.rotation),void 0!==t.scale&&e.repeat.fromArray(t.scale),e.needsUpdate=!0,e):e}}class H{constructor(){this.name=u.KHR_MESH_QUANTIZATION}}class k extends r.lGw{constructor(e,t,s,n){super(e,t,s,n)}copySampleValue_(e){const t=this.resultBuffer,s=this.sampleValues,n=this.valueSize,r=e*n*3+n;for(let o=0;o!==n;o++)t[o]=s[r+o];return t}interpolate_(e,t,s,n){const r=this.resultBuffer,o=this.sampleValues,i=this.valueSize,a=2*i,c=3*i,l=n-t,u=(s-t)/l,h=u*u,d=h*u,p=e*c,m=p-c,f=-2*d+3*h,g=d-h,T=1-f,R=g-h+u;for(let x=0;x!==i;x++){const e=o[m+x+i],t=o[m+x+a]*l,s=o[p+x+i],n=o[p+x]*l;r[x]=T*e+R*t+f*s+g*n}return r}}const F=new r.PTz;class U extends k{interpolate_(e,t,s,n){const r=super.interpolate_(e,t,s,n);return F.fromArray(r).normalize().toArray(r),r}}const D={FLOAT:5126,FLOAT_MAT3:35675,FLOAT_MAT4:35676,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,LINEAR:9729,REPEAT:10497,SAMPLER_2D:35678,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,UNSIGNED_BYTE:5121,UNSIGNED_SHORT:5123},G={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},K={9728:r.hxR,9729:r.k6q,9984:r.pHI,9985:r.kRr,9986:r.Cfg,9987:r.$_I},B={33071:r.ghU,33648:r.kTW,10497:r.GJx},j={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},V={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},X={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},q={CUBICSPLINE:void 0,LINEAR:r.PJ3,STEP:r.ljd},z="OPAQUE",Y="MASK",Z="BLEND";function J(e){return void 0===e.DefaultMaterial&&(e.DefaultMaterial=new r._4j({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:r.hB5})),e.DefaultMaterial}function $(e,t,s){for(const n in s.extensions)void 0===e[n]&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[n]=s.extensions[n])}function W(e,t){void 0!==t.extras&&("object"===typeof t.extras?Object.assign(e.userData,t.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+t.extras))}function Q(e,t){if(e.updateMorphTargets(),void 0!==t.weights)for(let s=0,n=t.weights.length;s<n;s++)e.morphTargetInfluences[s]=t.weights[s];if(t.extras&&Array.isArray(t.extras.targetNames)){const s=t.extras.targetNames;if(e.morphTargetInfluences.length===s.length){e.morphTargetDictionary={};for(let t=0,n=s.length;t<n;t++)e.morphTargetDictionary[s[t]]=t}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function ee(e){let t;const s=e.extensions&&e.extensions[u.KHR_DRACO_MESH_COMPRESSION];if(t=s?"draco:"+s.bufferView+":"+s.indices+":"+te(s.attributes):e.indices+":"+te(e.attributes)+":"+e.mode,void 0!==e.targets)for(let n=0,r=e.targets.length;n<r;n++)t+=":"+te(e.targets[n]);return t}function te(e){let t="";const s=Object.keys(e).sort();for(let n=0,r=s.length;n<r;n++)t+=s[n]+":"+e[s[n]]+";";return t}function se(e){switch(e){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}const ne=new r.kn4;class re{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.json=e,this.extensions={},this.plugins={},this.options=t,this.cache=new c,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let s=!1,n=-1,o=!1,i=-1;if("undefined"!==typeof navigator&&"undefined"!==typeof navigator.userAgent){const e=navigator.userAgent;s=!0===/^((?!chrome|android).)*safari/i.test(e);const t=e.match(/Version\/(\d+)/);n=s&&t?parseInt(t[1],10):-1,o=e.indexOf("Firefox")>-1,i=o?e.match(/Firefox\/([0-9]+)\./)[1]:-1}"undefined"===typeof createImageBitmap||s&&n<17||o&&i<98?this.textureLoader=new r.Tap(this.options.manager):this.textureLoader=new r.Kzg(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new r.Y9S(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),"use-credentials"===this.options.crossOrigin&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,t){const s=this,n=this.json,r=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(e){return e._markDefs&&e._markDefs()}),Promise.all(this._invokeAll(function(e){return e.beforeRoot&&e.beforeRoot()})).then(function(){return Promise.all([s.getDependencies("scene"),s.getDependencies("animation"),s.getDependencies("camera")])}).then(function(t){const o={scene:t[0][n.scene||0],scenes:t[0],animations:t[1],cameras:t[2],asset:n.asset,parser:s,userData:{}};return $(r,o,n),W(o,n),Promise.all(s._invokeAll(function(e){return e.afterRoot&&e.afterRoot(o)})).then(function(){for(const e of o.scenes)e.updateMatrixWorld();e(o)})}).catch(t)}_markDefs(){const e=this.json.nodes||[],t=this.json.skins||[],s=this.json.meshes||[];for(let n=0,r=t.length;n<r;n++){const s=t[n].joints;for(let t=0,n=s.length;t<n;t++)e[s[t]].isBone=!0}for(let n=0,r=e.length;n<r;n++){const t=e[n];void 0!==t.mesh&&(this._addNodeRef(this.meshCache,t.mesh),void 0!==t.skin&&(s[t.mesh].isSkinnedMesh=!0)),void 0!==t.camera&&this._addNodeRef(this.cameraCache,t.camera)}}_addNodeRef(e,t){void 0!==t&&(void 0===e.refs[t]&&(e.refs[t]=e.uses[t]=0),e.refs[t]++)}_getNodeRef(e,t,s){if(e.refs[t]<=1)return s;const n=s.clone(),r=(e,t)=>{const s=this.associations.get(e);null!=s&&this.associations.set(t,s);for(const[n,o]of e.children.entries())r(o,t.children[n])};return r(s,n),n.name+="_instance_"+e.uses[t]++,n}_invokeOne(e){const t=Object.values(this.plugins);t.push(this);for(let s=0;s<t.length;s++){const n=e(t[s]);if(n)return n}return null}_invokeAll(e){const t=Object.values(this.plugins);t.unshift(this);const s=[];for(let n=0;n<t.length;n++){const r=e(t[n]);r&&s.push(r)}return s}getDependency(e,t){const s=e+":"+t;let n=this.cache.get(s);if(!n){switch(e){case"scene":n=this.loadScene(t);break;case"node":n=this._invokeOne(function(e){return e.loadNode&&e.loadNode(t)});break;case"mesh":n=this._invokeOne(function(e){return e.loadMesh&&e.loadMesh(t)});break;case"accessor":n=this.loadAccessor(t);break;case"bufferView":n=this._invokeOne(function(e){return e.loadBufferView&&e.loadBufferView(t)});break;case"buffer":n=this.loadBuffer(t);break;case"material":n=this._invokeOne(function(e){return e.loadMaterial&&e.loadMaterial(t)});break;case"texture":n=this._invokeOne(function(e){return e.loadTexture&&e.loadTexture(t)});break;case"skin":n=this.loadSkin(t);break;case"animation":n=this._invokeOne(function(e){return e.loadAnimation&&e.loadAnimation(t)});break;case"camera":n=this.loadCamera(t);break;default:if(n=this._invokeOne(function(s){return s!=this&&s.getDependency&&s.getDependency(e,t)}),!n)throw new Error("Unknown type: "+e)}this.cache.add(s,n)}return n}getDependencies(e){let t=this.cache.get(e);if(!t){const s=this,n=this.json[e+("mesh"===e?"es":"s")]||[];t=Promise.all(n.map(function(t,n){return s.getDependency(e,n)})),this.cache.add(e,t)}return t}loadBuffer(e){const t=this.json.buffers[e],s=this.fileLoader;if(t.type&&"arraybuffer"!==t.type)throw new Error("THREE.GLTFLoader: "+t.type+" buffer type is not supported.");if(void 0===t.uri&&0===e)return Promise.resolve(this.extensions[u.KHR_BINARY_GLTF].body);const n=this.options;return new Promise(function(e,o){s.load(r.r6x.resolveURL(t.uri,n.path),e,void 0,function(){o(new Error('THREE.GLTFLoader: Failed to load buffer "'+t.uri+'".'))})})}loadBufferView(e){const t=this.json.bufferViews[e];return this.getDependency("buffer",t.buffer).then(function(e){const s=t.byteLength||0,n=t.byteOffset||0;return e.slice(n,n+s)})}loadAccessor(e){const t=this,s=this.json,n=this.json.accessors[e];if(void 0===n.bufferView&&void 0===n.sparse){const e=j[n.type],t=G[n.componentType],s=!0===n.normalized,o=new t(n.count*e);return Promise.resolve(new r.THS(o,e,s))}const o=[];return void 0!==n.bufferView?o.push(this.getDependency("bufferView",n.bufferView)):o.push(null),void 0!==n.sparse&&(o.push(this.getDependency("bufferView",n.sparse.indices.bufferView)),o.push(this.getDependency("bufferView",n.sparse.values.bufferView))),Promise.all(o).then(function(e){const o=e[0],i=j[n.type],a=G[n.componentType],c=a.BYTES_PER_ELEMENT,l=c*i,u=n.byteOffset||0,h=void 0!==n.bufferView?s.bufferViews[n.bufferView].byteStride:void 0,d=!0===n.normalized;let p,m;if(h&&h!==l){const e=Math.floor(u/h),s="InterleavedBuffer:"+n.bufferView+":"+n.componentType+":"+e+":"+n.count;let l=t.cache.get(s);l||(p=new a(o,e*h,n.count*h/c),l=new r.eB$(p,h/c),t.cache.add(s,l)),m=new r.eHs(l,i,u%h/c,d)}else p=null===o?new a(n.count*i):new a(o,u,n.count*i),m=new r.THS(p,i,d);if(void 0!==n.sparse){const t=j.SCALAR,s=G[n.sparse.indices.componentType],c=n.sparse.indices.byteOffset||0,l=n.sparse.values.byteOffset||0,u=new s(e[1],c,n.sparse.count*t),h=new a(e[2],l,n.sparse.count*i);null!==o&&(m=new r.THS(m.array.slice(),m.itemSize,m.normalized)),m.normalized=!1;for(let e=0,n=u.length;e<n;e++){const t=u[e];if(m.setX(t,h[e*i]),i>=2&&m.setY(t,h[e*i+1]),i>=3&&m.setZ(t,h[e*i+2]),i>=4&&m.setW(t,h[e*i+3]),i>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}m.normalized=d}return m})}loadTexture(e){const t=this.json,s=this.options,n=t.textures[e].source,r=t.images[n];let o=this.textureLoader;if(r.uri){const e=s.manager.getHandler(r.uri);null!==e&&(o=e)}return this.loadTextureImage(e,n,o)}loadTextureImage(e,t,s){const n=this,o=this.json,i=o.textures[e],a=o.images[t],c=(a.uri||a.bufferView)+":"+i.sampler;if(this.textureCache[c])return this.textureCache[c];const l=this.loadImageSource(t,s).then(function(t){t.flipY=!1,t.name=i.name||a.name||"",""===t.name&&"string"===typeof a.uri&&!1===a.uri.startsWith("data:image/")&&(t.name=a.uri);const s=(o.samplers||{})[i.sampler]||{};return t.magFilter=K[s.magFilter]||r.k6q,t.minFilter=K[s.minFilter]||r.$_I,t.wrapS=B[s.wrapS]||r.GJx,t.wrapT=B[s.wrapT]||r.GJx,t.generateMipmaps=!t.isCompressedTexture&&t.minFilter!==r.hxR&&t.minFilter!==r.k6q,n.associations.set(t,{textures:e}),t}).catch(function(){return null});return this.textureCache[c]=l,l}loadImageSource(e,t){const s=this,n=this.json,o=this.options;if(void 0!==this.sourceCache[e])return this.sourceCache[e].then(e=>e.clone());const i=n.images[e],a=self.URL||self.webkitURL;let c=i.uri||"",l=!1;if(void 0!==i.bufferView)c=s.getDependency("bufferView",i.bufferView).then(function(e){l=!0;const t=new Blob([e],{type:i.mimeType});return c=a.createObjectURL(t),c});else if(void 0===i.uri)throw new Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");const u=Promise.resolve(c).then(function(e){return new Promise(function(s,n){let i=s;!0===t.isImageBitmapLoader&&(i=function(e){const t=new r.gPd(e);t.needsUpdate=!0,s(t)}),t.load(r.r6x.resolveURL(e,o.path),i,void 0,n)})}).then(function(e){var t;return!0===l&&a.revokeObjectURL(c),W(e,i),e.userData.mimeType=i.mimeType||((t=i.uri).search(/\.jpe?g($|\?)/i)>0||0===t.search(/^data\:image\/jpeg/)?"image/jpeg":t.search(/\.webp($|\?)/i)>0||0===t.search(/^data\:image\/webp/)?"image/webp":t.search(/\.ktx2($|\?)/i)>0||0===t.search(/^data\:image\/ktx2/)?"image/ktx2":"image/png"),e}).catch(function(e){throw console.error("THREE.GLTFLoader: Couldn't load texture",c),e});return this.sourceCache[e]=u,u}assignTexture(e,t,s,n){const r=this;return this.getDependency("texture",s.index).then(function(o){if(!o)return null;if(void 0!==s.texCoord&&s.texCoord>0&&((o=o.clone()).channel=s.texCoord),r.extensions[u.KHR_TEXTURE_TRANSFORM]){const e=void 0!==s.extensions?s.extensions[u.KHR_TEXTURE_TRANSFORM]:void 0;if(e){const t=r.associations.get(o);o=r.extensions[u.KHR_TEXTURE_TRANSFORM].extendTexture(o,e),r.associations.set(o,t)}}return void 0!==n&&(o.colorSpace=n),e[t]=o,o})}assignFinalMaterial(e){const t=e.geometry;let s=e.material;const n=void 0===t.attributes.tangent,o=void 0!==t.attributes.color,i=void 0===t.attributes.normal;if(e.isPoints){const e="PointsMaterial:"+s.uuid;let t=this.cache.get(e);t||(t=new r.BH$,r.imn.prototype.copy.call(t,s),t.color.copy(s.color),t.map=s.map,t.sizeAttenuation=!1,this.cache.add(e,t)),s=t}else if(e.isLine){const e="LineBasicMaterial:"+s.uuid;let t=this.cache.get(e);t||(t=new r.mrM,r.imn.prototype.copy.call(t,s),t.color.copy(s.color),t.map=s.map,this.cache.add(e,t)),s=t}if(n||o||i){let e="ClonedMaterial:"+s.uuid+":";n&&(e+="derivative-tangents:"),o&&(e+="vertex-colors:"),i&&(e+="flat-shading:");let t=this.cache.get(e);t||(t=s.clone(),o&&(t.vertexColors=!0),i&&(t.flatShading=!0),n&&(t.normalScale&&(t.normalScale.y*=-1),t.clearcoatNormalScale&&(t.clearcoatNormalScale.y*=-1)),this.cache.add(e,t),this.associations.set(t,this.associations.get(s))),s=t}e.material=s}getMaterialType(){return r._4j}loadMaterial(e){const t=this,s=this.json,n=this.extensions,o=s.materials[e];let i;const a={},c=[];if((o.extensions||{})[u.KHR_MATERIALS_UNLIT]){const e=n[u.KHR_MATERIALS_UNLIT];i=e.getMaterialType(),c.push(e.extendParams(a,o,t))}else{const s=o.pbrMetallicRoughness||{};if(a.color=new r.Q1f(1,1,1),a.opacity=1,Array.isArray(s.baseColorFactor)){const e=s.baseColorFactor;a.color.setRGB(e[0],e[1],e[2],r.Zr2),a.opacity=e[3]}void 0!==s.baseColorTexture&&c.push(t.assignTexture(a,"map",s.baseColorTexture,r.er$)),a.metalness=void 0!==s.metallicFactor?s.metallicFactor:1,a.roughness=void 0!==s.roughnessFactor?s.roughnessFactor:1,void 0!==s.metallicRoughnessTexture&&(c.push(t.assignTexture(a,"metalnessMap",s.metallicRoughnessTexture)),c.push(t.assignTexture(a,"roughnessMap",s.metallicRoughnessTexture))),i=this._invokeOne(function(t){return t.getMaterialType&&t.getMaterialType(e)}),c.push(Promise.all(this._invokeAll(function(t){return t.extendMaterialParams&&t.extendMaterialParams(e,a)})))}!0===o.doubleSided&&(a.side=r.$EB);const l=o.alphaMode||z;if(l===Z?(a.transparent=!0,a.depthWrite=!1):(a.transparent=!1,l===Y&&(a.alphaTest=void 0!==o.alphaCutoff?o.alphaCutoff:.5)),void 0!==o.normalTexture&&i!==r.V9B&&(c.push(t.assignTexture(a,"normalMap",o.normalTexture)),a.normalScale=new r.I9Y(1,1),void 0!==o.normalTexture.scale)){const e=o.normalTexture.scale;a.normalScale.set(e,e)}if(void 0!==o.occlusionTexture&&i!==r.V9B&&(c.push(t.assignTexture(a,"aoMap",o.occlusionTexture)),void 0!==o.occlusionTexture.strength&&(a.aoMapIntensity=o.occlusionTexture.strength)),void 0!==o.emissiveFactor&&i!==r.V9B){const e=o.emissiveFactor;a.emissive=(new r.Q1f).setRGB(e[0],e[1],e[2],r.Zr2)}return void 0!==o.emissiveTexture&&i!==r.V9B&&c.push(t.assignTexture(a,"emissiveMap",o.emissiveTexture,r.er$)),Promise.all(c).then(function(){const s=new i(a);return o.name&&(s.name=o.name),W(s,o),t.associations.set(s,{materials:e}),o.extensions&&$(n,s,o),s})}createUniqueName(e){const t=r.Nwf.sanitizeNodeName(e||"");return t in this.nodeNamesUsed?t+"_"+ ++this.nodeNamesUsed[t]:(this.nodeNamesUsed[t]=0,t)}loadGeometries(e){const t=this,s=this.extensions,n=this.primitiveCache;function o(e){return s[u.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,t).then(function(s){return oe(s,e,t)})}const i=[];for(let a=0,c=e.length;a<c;a++){const s=e[a],c=ee(s),l=n[c];if(l)i.push(l.promise);else{let e;e=s.extensions&&s.extensions[u.KHR_DRACO_MESH_COMPRESSION]?o(s):oe(new r.LoY,s,t),n[c]={primitive:s,promise:e},i.push(e)}}return Promise.all(i)}loadMesh(e){const t=this,s=this.json,n=this.extensions,i=s.meshes[e],a=i.primitives,c=[];for(let r=0,o=a.length;r<o;r++){const e=void 0===a[r].material?J(this.cache):this.getDependency("material",a[r].material);c.push(e)}return c.push(t.loadGeometries(a)),Promise.all(c).then(function(s){const c=s.slice(0,s.length-1),l=s[s.length-1],u=[];for(let d=0,p=l.length;d<p;d++){const s=l[d],h=a[d];let p;const m=c[d];if(h.mode===D.TRIANGLES||h.mode===D.TRIANGLE_STRIP||h.mode===D.TRIANGLE_FAN||void 0===h.mode)p=!0===i.isSkinnedMesh?new r.I46(s,m):new r.eaF(s,m),!0===p.isSkinnedMesh&&p.normalizeSkinWeights(),h.mode===D.TRIANGLE_STRIP?p.geometry=o(p.geometry,r.O49):h.mode===D.TRIANGLE_FAN&&(p.geometry=o(p.geometry,r.rYR));else if(h.mode===D.LINES)p=new r.DXC(s,m);else if(h.mode===D.LINE_STRIP)p=new r.N1A(s,m);else if(h.mode===D.LINE_LOOP)p=new r.FCc(s,m);else{if(h.mode!==D.POINTS)throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+h.mode);p=new r.ONl(s,m)}Object.keys(p.geometry.morphAttributes).length>0&&Q(p,i),p.name=t.createUniqueName(i.name||"mesh_"+e),W(p,i),h.extensions&&$(n,p,h),t.assignFinalMaterial(p),u.push(p)}for(let n=0,r=u.length;n<r;n++)t.associations.set(u[n],{meshes:e,primitives:n});if(1===u.length)return i.extensions&&$(n,u[0],i),u[0];const h=new r.YJl;i.extensions&&$(n,h,i),t.associations.set(h,{meshes:e});for(let e=0,t=u.length;e<t;e++)h.add(u[e]);return h})}loadCamera(e){let t;const s=this.json.cameras[e],n=s[s.type];if(n)return"perspective"===s.type?t=new r.ubm(r.cj9.radToDeg(n.yfov),n.aspectRatio||1,n.znear||1,n.zfar||2e6):"orthographic"===s.type&&(t=new r.qUd(-n.xmag,n.xmag,n.ymag,-n.ymag,n.znear,n.zfar)),s.name&&(t.name=this.createUniqueName(s.name)),W(t,s),Promise.resolve(t);console.warn("THREE.GLTFLoader: Missing camera parameters.")}loadSkin(e){const t=this.json.skins[e],s=[];for(let n=0,r=t.joints.length;n<r;n++)s.push(this._loadNodeShallow(t.joints[n]));return void 0!==t.inverseBindMatrices?s.push(this.getDependency("accessor",t.inverseBindMatrices)):s.push(null),Promise.all(s).then(function(e){const s=e.pop(),n=e,o=[],i=[];for(let a=0,c=n.length;a<c;a++){const e=n[a];if(e){o.push(e);const t=new r.kn4;null!==s&&t.fromArray(s.array,16*a),i.push(t)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',t.joints[a])}return new r.EAD(o,i)})}loadAnimation(e){const t=this.json,s=this,n=t.animations[e],o=n.name?n.name:"animation_"+e,i=[],a=[],c=[],l=[],u=[];for(let r=0,h=n.channels.length;r<h;r++){const e=n.channels[r],t=n.samplers[e.sampler],s=e.target,o=s.node,h=void 0!==n.parameters?n.parameters[t.input]:t.input,d=void 0!==n.parameters?n.parameters[t.output]:t.output;void 0!==s.node&&(i.push(this.getDependency("node",o)),a.push(this.getDependency("accessor",h)),c.push(this.getDependency("accessor",d)),l.push(t),u.push(s))}return Promise.all([Promise.all(i),Promise.all(a),Promise.all(c),Promise.all(l),Promise.all(u)]).then(function(e){const t=e[0],i=e[1],a=e[2],c=e[3],l=e[4],u=[];for(let n=0,r=t.length;n<r;n++){const e=t[n],r=i[n],o=a[n],h=c[n],d=l[n];if(void 0===e)continue;e.updateMatrix&&e.updateMatrix();const p=s._createAnimationTracks(e,r,o,h,d);if(p)for(let t=0;t<p.length;t++)u.push(p[t])}const h=new r.tz3(o,void 0,u);return W(h,n),h})}createNodeMesh(e){const t=this.json,s=this,n=t.nodes[e];return void 0===n.mesh?null:s.getDependency("mesh",n.mesh).then(function(e){const t=s._getNodeRef(s.meshCache,n.mesh,e);return void 0!==n.weights&&t.traverse(function(e){if(e.isMesh)for(let t=0,s=n.weights.length;t<s;t++)e.morphTargetInfluences[t]=n.weights[t]}),t})}loadNode(e){const t=this,s=this.json.nodes[e],n=t._loadNodeShallow(e),o=[],i=s.children||[];for(let r=0,c=i.length;r<c;r++)o.push(t.getDependency("node",i[r]));const a=void 0===s.skin?Promise.resolve(null):t.getDependency("skin",s.skin);return Promise.all([n,Promise.all(o),a]).then(function(e){const t=e[0],s=e[1],n=e[2];null!==n&&t.traverse(function(e){e.isSkinnedMesh&&e.bind(n,ne)});for(let r=0,o=s.length;r<o;r++)t.add(s[r]);if(void 0!==t.userData.pivot&&s.length>0){const e=t.userData.pivot,n=s[0];t.pivot=(new r.Pq0).fromArray(e),t.position.x-=e[0],t.position.y-=e[1],t.position.z-=e[2],n.position.set(0,0,0),delete t.userData.pivot}return t})}_loadNodeShallow(e){const t=this.json,s=this.extensions,o=this;if(void 0!==this.nodeCache[e])return this.nodeCache[e];const i=t.nodes[e],a=i.name?o.createUniqueName(i.name):"",c=[],l=o._invokeOne(function(t){return t.createNodeMesh&&t.createNodeMesh(e)});return l&&c.push(l),void 0!==i.camera&&c.push(o.getDependency("camera",i.camera).then(function(e){return o._getNodeRef(o.cameraCache,i.camera,e)})),o._invokeAll(function(t){return t.createNodeAttachment&&t.createNodeAttachment(e)}).forEach(function(e){c.push(e)}),this.nodeCache[e]=Promise.all(c).then(function(t){let c;if(c=!0===i.isBone?new r.$Kf:t.length>1?new r.YJl:1===t.length?t[0]:new r.B69,c!==t[0])for(let e=0,s=t.length;e<s;e++)c.add(t[e]);if(i.name&&(c.userData.name=i.name,c.name=a),W(c,i),i.extensions&&$(s,c,i),void 0!==i.matrix){const e=new r.kn4;e.fromArray(i.matrix),c.applyMatrix4(e)}else void 0!==i.translation&&c.position.fromArray(i.translation),void 0!==i.rotation&&c.quaternion.fromArray(i.rotation),void 0!==i.scale&&c.scale.fromArray(i.scale);if(o.associations.has(c)){if(void 0!==i.mesh&&o.meshCache.refs[i.mesh]>1){const e=o.associations.get(c);o.associations.set(c,(0,n.A)({},e))}}else o.associations.set(c,{});return o.associations.get(c).nodes=e,c}),this.nodeCache[e]}loadScene(e){const t=this.extensions,s=this.json.scenes[e],n=this,o=new r.YJl;s.name&&(o.name=n.createUniqueName(s.name)),W(o,s),s.extensions&&$(t,o,s);const a=s.nodes||[],c=[];for(let r=0,i=a.length;r<i;r++)c.push(n.getDependency("node",a[r]));return Promise.all(c).then(function(e){for(let t=0,s=e.length;t<s;t++){const s=e[t];null!==s.parent?o.add((0,i.o8)(s)):o.add(s)}return n.associations=(e=>{const t=new Map;for(const[s,o]of n.associations)(s instanceof r.imn||s instanceof r.gPd)&&t.set(s,o);return e.traverse(e=>{const s=n.associations.get(e);null!=s&&t.set(e,s)}),t})(o),o})}_createAnimationTracks(e,t,s,n,o){const i=[],a=e.name?e.name:e.uuid,c=[];let l;switch(X[o.path]===X.weights?e.traverse(function(e){e.morphTargetInfluences&&c.push(e.name?e.name:e.uuid)}):c.push(a),X[o.path]){case X.weights:l=r.Hit;break;case X.rotation:l=r.MBL;break;case X.translation:case X.scale:l=r.RiT;break;default:if(1===s.itemSize)l=r.Hit;else l=r.RiT}const u=void 0!==n.interpolation?q[n.interpolation]:r.PJ3,h=this._getArrayFromAccessor(s);for(let r=0,d=c.length;r<d;r++){const e=new l(c[r]+"."+X[o.path],t.array,h,u);"CUBICSPLINE"===n.interpolation&&this._createCubicSplineTrackInterpolant(e),i.push(e)}return i}_getArrayFromAccessor(e){let t=e.array;if(e.normalized){const e=se(t.constructor),s=new Float32Array(t.length);for(let n=0,r=t.length;n<r;n++)s[n]=t[n]*e;t=s}return t}_createCubicSplineTrackInterpolant(e){e.createInterpolant=function(e){return new(this instanceof r.MBL?U:k)(this.times,this.values,this.getValueSize()/3,e)},e.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}}function oe(e,t,s){const n=t.attributes,o=[];function i(t,n){return s.getDependency("accessor",t).then(function(t){e.setAttribute(n,t)})}for(const r in n){const t=V[r]||r.toLowerCase();t in e.attributes||o.push(i(n[r],t))}if(void 0!==t.indices&&!e.index){const n=s.getDependency("accessor",t.indices).then(function(t){e.setIndex(t)});o.push(n)}return r.ppV.workingColorSpace!==r.Zr2&&"COLOR_0"in n&&console.warn('THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "'.concat(r.ppV.workingColorSpace,'" not supported.')),W(e,t),function(e,t,s){const n=t.attributes,o=new r.NRn;if(void 0===n.POSITION)return;{const e=s.json.accessors[n.POSITION],t=e.min,i=e.max;if(void 0===t||void 0===i)return void console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");if(o.set(new r.Pq0(t[0],t[1],t[2]),new r.Pq0(i[0],i[1],i[2])),e.normalized){const t=se(G[e.componentType]);o.min.multiplyScalar(t),o.max.multiplyScalar(t)}}const i=t.targets;if(void 0!==i){const e=new r.Pq0,t=new r.Pq0;for(let n=0,r=i.length;n<r;n++){const r=i[n];if(void 0!==r.POSITION){const n=s.json.accessors[r.POSITION],o=n.min,i=n.max;if(void 0!==o&&void 0!==i){if(t.setX(Math.max(Math.abs(o[0]),Math.abs(i[0]))),t.setY(Math.max(Math.abs(o[1]),Math.abs(i[1]))),t.setZ(Math.max(Math.abs(o[2]),Math.abs(i[2]))),n.normalized){const e=se(G[n.componentType]);t.multiplyScalar(e)}e.max(t)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}o.expandByVector(e)}e.boundingBox=o;const a=new r.iyt;o.getCenter(a.center),a.radius=o.min.distanceTo(o.max)/2,e.boundingSphere=a}(e,t,s),Promise.all(o).then(function(){return void 0!==t.targets?function(e,t,s){let n=!1,r=!1,o=!1;for(let l=0,u=t.length;l<u;l++){const e=t[l];if(void 0!==e.POSITION&&(n=!0),void 0!==e.NORMAL&&(r=!0),void 0!==e.COLOR_0&&(o=!0),n&&r&&o)break}if(!n&&!r&&!o)return Promise.resolve(e);const i=[],a=[],c=[];for(let l=0,u=t.length;l<u;l++){const u=t[l];if(n){const t=void 0!==u.POSITION?s.getDependency("accessor",u.POSITION):e.attributes.position;i.push(t)}if(r){const t=void 0!==u.NORMAL?s.getDependency("accessor",u.NORMAL):e.attributes.normal;a.push(t)}if(o){const t=void 0!==u.COLOR_0?s.getDependency("accessor",u.COLOR_0):e.attributes.color;c.push(t)}}return Promise.all([Promise.all(i),Promise.all(a),Promise.all(c)]).then(function(t){const s=t[0],i=t[1],a=t[2];return n&&(e.morphAttributes.position=s),r&&(e.morphAttributes.normal=i),o&&(e.morphAttributes.color=a),e.morphTargetsRelative=!0,e})}(e,t.targets,s):e})}},812(e,t,s){function n(e){const t=new Map,s=new Map,n=e.clone();return r(e,n,function(e,n){t.set(n,e),s.set(e,n)}),n.traverse(function(e){if(!e.isSkinnedMesh)return;const n=e,r=t.get(e),o=r.skeleton.bones;n.skeleton=r.skeleton.clone(),n.bindMatrix.copy(r.bindMatrix),n.skeleton.bones=o.map(function(e){return s.get(e)}),n.bind(n.skeleton,n.bindMatrix)}),n}function r(e,t,s){s(e,t);for(let n=0;n<e.children.length;n++)r(e.children[n],t.children[n],s)}s.d(t,{o8:()=>n})}}]);
|
|
|
|
|
|
services/explorer/dist/static/js/734.2eb423ea.chunk.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
"use strict";(self.webpackChunkdeepsearch_ui=self.webpackChunkdeepsearch_ui||[]).push([[734],{7734(e,i,t){t.r(i),t.d(i,{ComparisonPane:()=>U,default:()=>A});var r=t(9379),s=t(5043),a=t(3139),n=t(5597),l=t(3101),o=t(1137),d=t(3333),c=t(9885),u=t(9207),h=t(5260),p=t(9364);var m=t(824),v=t(579);const x={position:[3,-4,2],target:[0,0,0]},f=Object.freeze({maxPixels:2073600,reference:"square"}),w=e=>Number.isFinite(e)?"".concat((e/1024/1024).toFixed(2)," MiB"):"\u2014",g=e=>Number.isFinite(e)?e.toLocaleString():"\u2014",b=e=>Number.isFinite(e)?"".concat((e/1e3).toFixed(2)," s"):"\u2014",j=e=>{const i=new URL(e,window.location.href);if(!e||i.origin!==window.location.origin||!["http:","https:"].includes(i.protocol))throw new Error("Comparison files must be served by this preview.");return i.href};function y(e){if(1!==e.version||!Array.isArray(e.categories)||!Array.isArray(e.examples))throw new Error("Invalid comparison catalog.");const i=new Set(e.categories.map(e=>e.id)),t=new Set;if(9!==i.size||27!==e.examples.length)throw new Error("The comparison needs nine categories with three assets each.");const s=e.examples.map(e=>{if(!e.id||!e.label||t.has(e.id)||!i.has(e.category)||!e.glb||!e.usd)throw new Error("Invalid comparison asset.");t.add(e.id);const s=(0,r.A)((0,r.A)({},e.glb),{},{url:j(e.glb.url),articulationUrl:j(e.glb.articulationUrl)});if(!["ready","blocked","pending"].includes(e.usd.status))throw new Error("Every USD comparison needs a qualification result.");const a=(0,r.A)({},e.usd);if("blocked"===a.status&&"Source qualification pending"===a.reason&&(a.status="pending"),"ready"===a.status){if(a.url=j(a.url),!/\.(usd|usda|usdc)$/i.test(new URL(a.url).pathname))throw new Error("Native examples must be USD layers.");if(!1===a.motionQualified&&!a.motionReason)throw new Error("A visual inspection example needs its source motion limitation.")}else if(!a.reason)throw new Error("A blocked USD example needs an explanation.");if(a.auditUrl&&(a.auditUrl=j(a.auditUrl)),a.viewer){const e=(0,r.A)({},a.viewer);if("ready"!==e.status||"viewer-usd-v1"!==e.deliveryProfile||!/^[a-f0-9]{64}$/.test(e.sha256||"")||e.sourceSha256!==a.sha256||e.triangles!==a.triangles||!Number.isFinite(e.bytes)||e.bytes<=0||!Number.isFinite(e.textureBytes)||e.textureBytes<0)throw new Error("Viewer USD delivery requires a matching source and geometry audit.");if(e.url=j(e.url),!/\.(usd|usda|usdc)$/i.test(new URL(e.url).pathname))throw new Error("Viewer USD delivery must remain a USD layer.");e.auditUrl=j(e.auditUrl),a.viewer=(0,r.A)((0,r.A)((0,r.A)({},a),e),{},{viewer:void 0,motionQualified:a.motionQualified,motionReason:a.motionReason})}const n=function(e,i){if(null==e)return null;const t=(0,p.Z)(e.clipViewport),s=e.meta;if(!t||!s||"string"!==typeof s.renderer||!/^ovrtx(?:\s|$)/i.test(s.renderer)||"string"!==typeof s.render_script||!/^rtx-joints@[^\s]+$/.test(s.render_script)||s.width!==t.size[0]||s.height!==t.size[1]||!Number.isFinite(s.fps)||s.fps<=0||s.fps>240||!Number.isFinite(s.duration_s)||s.duration_s<=0||s.duration_s>3600||!Number.isInteger(s.frames)||s.frames<=0||Math.abs(s.frames/s.fps-s.duration_s)>1/s.fps+.001)throw new Error("RTX Motion requires matching published RTX clip metadata and viewport dimensions.");const a=new URL(i),n=(e,i)=>{if("string"!==typeof e||!e.trim())throw new Error("RTX Motion files must be served by this preview.");const t=new URL(e,a);if(t.origin!==a.origin||!["http:","https:"].includes(t.protocol)||t.username||t.password||t.hash||t.search||!i.test(t.pathname))throw new Error("RTX Motion files must be served by this preview.");return t.href};return(0,r.A)((0,r.A)({},e),{},{textured:n(e.textured,/\.mp4$/i),poster:n(e.poster,/\.(webp|png|jpe?g)$/i)})}(e.rtxMotion,window.location.href);return(0,r.A)((0,r.A)({},e),{},{glb:s,usd:a,rtxMotion:n})});for(const r of i)if(3!==s.filter(e=>e.category===r).length)throw new Error("Each category needs three assets.");return(0,r.A)((0,r.A)({},e),{},{examples:s})}function S(e){let{joint:i,store:t,format:r}=e;const a=(0,s.useRef)(null);(0,s.useEffect)(()=>{const e=e=>{var r;a.current&&(a.current.value=String(null!==(r=e[i.id])&&void 0!==r?r:t.homes[i.id]))};return e(t.live()),t.onFrame(e)},[i.id,t]);const n=i.label||i.name||i.id,l=i.continuous?" \xb7 Continuous rotation; preview one turn":"";return(0,v.jsxs)("label",{className:"vc-joint",children:[n,l,(0,v.jsx)("input",{ref:a,type:"range",min:"0",max:"1",step:"0.01","aria-label":"".concat(r.toUpperCase()," joint ").concat(n).concat(l),defaultValue:t.homes[i.id],onChange:e=>t.setTarget(i.id,Number(e.target.value),"instant")})]})}function U(e){var i;let{asset:t,format:o,onResult:p,onControl:m,viewport:b="square"}=e;const j=t[o],y=t.glb.view||(null===(i=t.glb.clipMeta)||void 0===i?void 0:i.camera)||x,U="usd"===o&&"pending"===j.status,[A,M]=(0,s.useState)(null),[C,N]=(0,s.useState)("blocked"===j.status?"Unsupported":U?"Preparing on cluster CPUs":"Loading"),[P,D]=(0,s.useState)("blocked"===j.status?j.reason:null),[k,R]=(0,s.useState)(0),L=(0,s.useRef)(0),E=(0,s.useRef)(!1),B=(0,s.useRef)(null),q=(0,l.B0)("".concat(t.id,":").concat(o)),T=(0,s.useCallback)(e=>{D((null===e||void 0===e?void 0:e.message)||"This viewer could not load the asset."),N("Failed"),M(null)},[]);(0,s.useEffect)(()=>{if("usd"===o&&"ready"!==j.status)return;const e=new AbortController;E.current=!1,B.current=null,L.current=performance.now(),M(null),D(null),N("Loading"),p(t.id,o,{status:"Loading"});return(async()=>{if("glb"===o){const i=await fetch(j.articulationUrl,{signal:e.signal});if(!i.ok)throw new Error("GLB joint data failed to load (".concat(i.status,")."));const s=await i.json();if(1!==s.version||"gltf"!==s.frame||!Array.isArray(s.bodies)||!Array.isArray(s.joints))throw new Error("Unsupported GLB joint export.");return(0,r.A)({glbUrl:j.url,articulation:s,store:(0,d.createJointStore)(s),view:y,clipMeta:j.clipMeta},t.experimentalManifest?{glbMaterialProfile:{profile:t.experimentalManifest.profile,manifest:t.experimentalManifest,sha256:j.sha256}}:{})}const i=await(0,c.Me)({url:j.url,signal:e.signal,onProgress:N,expectedSha256:t.experimentalManifest?j.sha256:void 0,snapshotCache:j.deliveryProfile||t.experimentalManifest?{context:t.experimentalManifest?"experimental-pbr-review":"prepared-review"}:void 0});if(e.signal.aborted)return null;const s=!1===j.motionQualified?(0,u.nativeUsdVisualMapping)(i):(0,u.nativeUsdArticulation)(i);return["robot","furniture"].includes(j.presentationKind)&&(s.articulation.kind=j.presentationKind),{usdModel:{loadScene:e=>(0,h.createUsdScene)(i,s,(0,r.A)((0,r.A)({},e),{},{baseUrl:j.url,renderBothSides:!0},t.experimentalManifest?{materialProfile:t.experimentalManifest.profile,experimentalManifest:t.experimentalManifest}:{})).then(e=>(j.previewMount&&(e.userData.previewMount=j.previewMount),e))},articulation:s.articulation,store:(0,d.createJointStore)(s.articulation),view:y,clipMeta:t.glb.clipMeta,metrics:i.metrics,diagnostics:s.diagnostics}})().then(i=>{!e.signal.aborted&&i&&(M(i),N("Preparing viewer"))}).catch(i=>{e.signal.aborted||T(i)}),()=>e.abort()},[t,j,o,k,T,y,p]);const F=t.rtxMotion,V=(0,s.useMemo)(()=>A?(0,r.A)((0,r.A)({},A),{},{presentation:"white-studio",renderPixelBudget:f,clipViewport:["square","rtx"].includes(b)?null===F||void 0===F?void 0:F.clipViewport:null}):A,[A,F,b]),G=(0,s.useMemo)(()=>F?{rtx:F}:null,[F]),Q=(0,a.A)({resetKey:"".concat(t.id,":").concat(k),modelKey:"".concat(t.id,":").concat(k),active:!0,imageTab:!1,model:V,clip:G,modelPending:!U&&"blocked"!==j.status&&!A&&!P,onModelUnavailable:T,workspace:(0,r.A)((0,r.A)({},q),{},{portal:!0,lazyShell:!0,onEscape:"self",labels:{back:"Comparison",dock:"Dock viewer"}})}),_=(0,r.A)((0,r.A)({},Q),{},{pickTab:e=>{"3d"!==e&&Q.showModel&&A&&A.store.setPose((0,r.A)({},A.store.live()),"instant"),Q.pickTab(e)}});return(0,s.useEffect)(()=>{var e,i,s;A&&Q.showModel&&Q.viewerApi&&B.current!==Q.viewerApi&&(B.current=Q.viewerApi,A.store.setPose(E.current?(0,r.A)({},A.store.live()):A.store.homes,"instant"),N("Ready"),E.current||(E.current=!0,p(t.id,o,{status:"Ready",readyMs:performance.now()-L.current,readerMs:null===(e=A.metrics)||void 0===e?void 0:e.loadMs,heapBytes:null===(i=A.metrics)||void 0===i?void 0:i.wasmHeapBytes,snapshotCacheHit:null===(s=A.metrics)||void 0===s?void 0:s.snapshotCacheHit,jointCount:A.store.ids.length})))},[t.id,o,A,Q.showModel,Q.viewerApi,p]),(0,s.useEffect)(()=>(m(t.id,o,A&&Q.showModel&&Q.viewerApi&&!P?(0,r.A)((0,r.A)({},A),{},{api:Q.viewerApi}):null),()=>m(t.id,o,null)),[t.id,o,A,Q.showModel,Q.viewerApi,P,m]),(0,s.useEffect)(()=>{P&&p(t.id,o,{status:C,error:P})},[t.id,o,P,C,p]),(0,v.jsxs)("section",{className:"vc-pane","aria-label":"".concat(o.toUpperCase()," viewer"),"data-format":o,"data-load-metrics":null!==A&&void 0!==A&&A.metrics?JSON.stringify(A.metrics):void 0,children:[(0,v.jsxs)("div",{className:"vc-pane-heading",children:[(0,v.jsx)("h3",{children:t.experimentalManifest?"Experimental ".concat(o.toUpperCase()):"glb"===o?"HD GLB":j.deliveryProfile?"Viewer USD":"Native USD"}),(0,v.jsx)("span",{role:"status","data-testid":"".concat(o,"-comparison-status"),children:Q.showClip?"RTX Motion":C})]}),F&&(0,v.jsx)("div",{className:"vc-media-tabs",children:(0,v.jsx)(n._f,{ctl:_})}),"usd"===o&&!1===j.motionQualified&&(0,v.jsxs)("p",{className:"vc-motion-note",role:"note",children:[(0,v.jsx)("strong",{children:"Motion disabled \xb7 native visual inspection."})," ",j.motionReason," Orbit, zoom and material inspection remain available."]}),U?(0,v.jsx)("div",{className:"vc-pending",children:(0,v.jsx)("p",{children:"The native source is being prepared and checked on the cluster CPUs. Refresh the catalog to load newly qualified examples."})}):P?(0,v.jsxs)("div",{className:"vc-failure",role:"alert",children:[(0,v.jsx)("p",{children:P}),"blocked"!==j.status&&(0,v.jsxs)("button",{onClick:()=>R(e=>e+1),children:["Retry ",o.toUpperCase()]})]}):(0,v.jsx)("div",{className:"vc-stage",ref:Q.regionRef,tabIndex:-1,children:(0,v.jsx)(n.z_,{ctl:Q,fileName:"".concat(t.label," \xb7 ").concat(o.toUpperCase()),renderPicture:()=>null})}),(0,v.jsxs)("div",{className:"vc-pane-facts",children:[(0,v.jsxs)("span",{children:[w(j.bytes+(j.textureBytes||0))," asset files"]}),(0,v.jsxs)("span",{children:[g(j.triangles)," triangles"]})]}),(0,v.jsx)("p",{className:"vc-muted",children:j.textureSummary||"Material audit unavailable."}),A&&Q.showModel&&"Ready"===C&&A.store.ids.length>0&&(0,v.jsxs)("details",{children:[(0,v.jsxs)("summary",{children:[A.store.ids.length," independent joint controls"]}),(0,v.jsx)("div",{className:"vc-joints",children:A.store.joints.map(e=>(0,v.jsx)(S,{joint:e,store:A.store,format:o},e.id))})]}),(0,v.jsxs)("p",{className:"vc-links",children:[j.url&&(0,v.jsxs)("a",{href:j.url,download:!0,children:["Download ",o.toUpperCase()]}),j.auditUrl&&(0,v.jsxs)(v.Fragment,{children:[" \xb7 ",(0,v.jsx)("a",{href:j.auditUrl,target:"_blank",rel:"noreferrer",children:"Source audit"})]})]}),(0,v.jsx)(n.Vo,{ctl:Q,fileName:"".concat(t.label," \xb7 ").concat(o.toUpperCase()),topOffset:0})]})}function A(){var e,i,t,a,n,d,c,u,h;const[x,f]=(0,s.useState)(null),[j,S]=(0,s.useState)(null),[A,M]=(0,s.useState)(null),[C,N]=(0,s.useState)({}),[P,D]=(0,s.useState)({}),[k,R]=(0,s.useState)(0),[L,E]=(0,s.useState)(()=>"experimental"===new URLSearchParams(window.location.search).get("materialProfile")?"experimental":"original"),[B,q]=(0,s.useState)(null),[T,F]=(0,s.useState)(()=>["wide","comparison"].includes(new URLSearchParams(window.location.search).get("viewport"))?"wide":"square"),[V,G]=(0,s.useState)(()=>{const e=new URLSearchParams(window.location.search).get("usdDelivery");return["viewer","source"].includes(e)?e:"auto"}),[Q,_]=(0,s.useState)(()=>{const e=new URLSearchParams(window.location.search).get("layout");return["glb","usd","both"].includes(e)?e:"usd"}),z=(0,s.useRef)({});(0,s.useEffect)(()=>{const e=new AbortController;return fetch("".concat("","/native-usd-comparison/manifest.json"),{signal:e.signal,cache:"no-store"}).then(async e=>{if(!e.ok)throw new Error("The comparison catalog is not installed in this preview.");return y(await e.json())}).then(i=>{if(e.signal.aborted)return;const t=new URLSearchParams(window.location.search),r=i.examples.find(e=>e.id===t.get("example")),s=i.categories.find(e=>e.id===t.get("category"))||i.categories[0];f(i),M(null),S(r||i.examples.find(e=>e.category===s.id))}).catch(i=>{e.signal.aborted||M(i.message)}),()=>e.abort()},[k]),(0,s.useEffect)(()=>{if("experimental"!==L||null===j||void 0===j||!j.experimentalPbr)return void q(null);const e=new AbortController;return q({id:j.id,pending:!0}),(0,m.gZ)(j.experimentalPbr,j,{signal:e.signal}).then(i=>{e.signal.aborted||q({id:j.id,manifest:i})}).catch(i=>{e.signal.aborted||q({id:j.id,error:i.message})}),()=>e.abort()},[j,L]);const H=(0,s.useCallback)((e,i,t)=>N(s=>(0,r.A)((0,r.A)({},s),{},{[e]:(0,r.A)((0,r.A)({},s[e]),{},{[i]:t})})),[]),I=(0,s.useCallback)((e,i,t)=>{z.current[i]={id:e,model:t},D(s=>(0,r.A)((0,r.A)({},s),{},{[i]:t?e:null}))},[]),O=e=>{if(!e||e.id===(null===j||void 0===j?void 0:j.id))return;S(e);const i=new URL(window.location.href);i.searchParams.set("example",e.id),i.searchParams.set("category",e.category),window.history.replaceState(null,"",i)},X="both"===Q?["glb","usd"]:[Q],$=(0,s.useMemo)(()=>{if(!j)return j;if("experimental"===L&&(null===B||void 0===B?void 0:B.id)===j.id&&B.manifest){const e=j.experimentalPbr,i=B.manifest,t=(0,m.L$)(i);return(0,r.A)((0,r.A)({},j),{},{experimentalManifest:i,glb:(0,r.A)((0,r.A)((0,r.A)((0,r.A)({},j.glb),e.glb),i.artifacts.glb),{},{textureBytes:t,articulationUrl:j.glb.articulationUrl,view:j.glb.view,clipMeta:j.glb.clipMeta}),usd:(0,r.A)((0,r.A)((0,r.A)((0,r.A)({},j.usd),e.usd),i.artifacts.usd),{},{viewer:void 0,textureBytes:t,motionQualified:j.usd.motionQualified,motionReason:j.usd.motionReason,previewMount:j.usd.previewMount,presentationKind:j.usd.presentationKind})})}const e=function(e){var i;let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"auto";return null===e||void 0===e||!e.viewer||"source"===t||"viewer"!==t&&"passed"!==(null===(i=e.viewer.browserQualification)||void 0===i?void 0:i.status)?e:e.viewer}(j.usd,V);return e===j.usd?j:(0,r.A)((0,r.A)({},j),{},{usd:e})},[j,V,L,B]),K=null===$||void 0===$?void 0:$.usd,J=!!j&&X.every(e=>P[e]===j.id),Z=J&&X.every(e=>{var i,t;return null===(i=z.current[e])||void 0===i||null===(t=i.model)||void 0===t?void 0:t.store.ids.length}),W="both"===Q?"both":"view",Y=e=>{for(const i of X){const t=z.current[i];(null===t||void 0===t?void 0:t.id)===j.id&&t.model&&e(t.model)}},ee=C[null===j||void 0===j?void 0:j.id]||{};return(0,v.jsxs)("main",{className:"vc-page",children:[(0,v.jsxs)("header",{children:[(0,v.jsx)("p",{className:"vc-eyebrow",children:"SimReady Central \xb7 viewer evaluation"}),(0,v.jsx)("h1",{children:"HD GLB versus native USD"}),(0,v.jsx)("p",{children:"Three matched assets in each of nine categories. Orbit, zoom, inspect materials and try the moving joints."})]}),A&&(0,v.jsx)("p",{role:"alert",children:A}),x&&j&&(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)("nav",{className:"vc-categories","aria-label":"Asset categories",children:x.categories.map(e=>(0,v.jsx)("button",{"aria-pressed":j.category===e.id,onClick:()=>O(x.examples.find(i=>i.category===e.id)),children:e.label},e.id))}),(0,v.jsx)("nav",{className:"vc-assets","aria-label":"Category assets",children:x.examples.filter(e=>e.category===j.category).map(e=>(0,v.jsxs)("button",{"aria-pressed":j.id===e.id,onClick:()=>O(e),children:[(0,v.jsx)("strong",{children:e.label}),(0,v.jsx)("span",{children:"ready"===e.usd.status?!1===e.usd.motionQualified?"GLB + USD \xb7 static USD":"GLB + USD":"pending"===e.usd.status?"USD preparing":"USD limitation"})]},e.id))}),(0,v.jsxs)("nav",{className:"vc-layout","aria-label":"Viewer layout",children:[[["both","Side by side"],["glb","HD GLB only"],["usd","Native USD only"]].map(e=>{let[i,t]=e;return(0,v.jsx)("button",{"aria-pressed":Q===i,onClick:()=>{_(i);const e=new URL(window.location.href);e.searchParams.set("layout",i),window.history.replaceState(null,"",e)},children:t},i)}),(0,v.jsx)("button",{onClick:()=>R(e=>e+1),children:"Refresh catalog"})]}),j.usd.viewer&&(0,v.jsx)("nav",{className:"vc-layout","aria-label":"USD delivery",children:[["auto","Qualified USD"],["viewer","passed"===(null===(e=j.usd.viewer.browserQualification)||void 0===e?void 0:e.status)?"Prepared viewer USD":"Experimental viewer USD"],["source","Original preview USD"]].map(e=>{let[i,t]=e;return(0,v.jsx)("button",{"aria-pressed":V===i,onClick:()=>{G(i);const e=new URL(window.location.href);"auto"===i?e.searchParams.delete("usdDelivery"):e.searchParams.set("usdDelivery",i),window.history.replaceState(null,"",e)},children:t},i)})}),j.experimentalPbr&&(0,v.jsx)("nav",{className:"vc-layout","aria-label":"Material profile",children:[["original","Original materials"],["experimental","Experimental baked materials"]].map(e=>{let[i,t]=e;return(0,v.jsx)("button",{"aria-pressed":L===i,onClick:()=>{E(i);const e=new URL(window.location.href);"original"===i?e.searchParams.delete("materialProfile"):e.searchParams.set("materialProfile","experimental"),window.history.replaceState(null,"",e)},children:t},i)})}),"experimental"===L&&(0,v.jsx)("p",{className:"vc-viewport-note",role:null!==B&&void 0!==B&&B.error?"alert":"note",children:j.experimentalPbr?null!==B&&void 0!==B&&B.error?"Experimental material audit failed: ".concat(B.error,". Original materials remain selected."):null!==B&&void 0!==B&&B.pending||(null===B||void 0===B?void 0:B.id)!==j.id?"Checking the shared experimental material audit.":(0,v.jsxs)(v.Fragment,{children:["Experimental material profile for both USD and GLB. Each retains its own geometry; cross-format triangulation differs. Full-resolution shared maps add ",w((0,m.L$)(B.manifest))," per delivery and substantially increase texture memory. Quality and speed remain under qualification. ",(0,v.jsx)("a",{href:j.experimentalPbr.manifest,target:"_blank",rel:"noreferrer",children:"Shared material audit"}),". Published RTX Motion remains the original reference."]}):"This asset has no shared experimental bake. Original materials remain selected."}),(0,v.jsx)("nav",{className:"vc-layout","aria-label":"Viewport framing",children:[["square","Square view"],["wide","Wide view"]].map(e=>{let[i,t]=e;return(0,v.jsx)("button",{"aria-pressed":T===i,onClick:()=>{F(i);const e=new URL(window.location.href);e.searchParams.set("viewport",i),window.history.replaceState(null,"",e)},children:t},i)})}),j.rtxMotion&&(0,v.jsx)("p",{className:"vc-viewport-note",role:"note",children:"square"===T?(0,v.jsxs)(v.Fragment,{children:[(0,v.jsxs)("strong",{children:[j.rtxMotion.clipViewport.size.join(" \xd7 ")," clip frame."]})," ",(0,p.Z)(j.rtxMotion.clipViewport).camera?"Interactive 3D opens at the qualified recorded camera.":"Interactive 3D fits the same clip aspect. Published RTX metadata has no absolute camera or world placement, so exact recorded framing is unavailable."," Browser lighting remains Central\u2019s; the Motion tab plays the published RTX render. Interactive rendering uses a 1080p pixel budget; asset geometry and HD textures stay intact."]}):(0,v.jsxs)(v.Fragment,{children:["Interactive 3D and RTX Motion share this wide panel. The ",j.rtxMotion.clipViewport.size.join(" \xd7 ")," HD video keeps its original aspect within the panel. Interactive pixels cannot exceed the equivalent Square view or the 1080p budget. If that would require upsampling, 3D stays square. Asset geometry and HD textures stay intact."]})}),(0,v.jsxs)("div",{className:"vc-selection",children:[(0,v.jsxs)("div",{children:[(0,v.jsx)("h2",{children:j.label}),(0,v.jsx)("p",{className:"vc-muted",children:j.description||"The two views use the same published asset and its canonical source USD."})]}),(0,v.jsxs)("div",{className:"vc-actions",children:[(0,v.jsxs)("button",{disabled:!J,onClick:()=>Y(e=>e.api.resetView()),children:["Reset ",W," cameras"]}),(0,v.jsxs)("button",{disabled:!Z||(0,o.VN)(),onClick:()=>Y(e=>"robot"===e.articulation.kind?e.store.playSequence():e.store.setAll(!0)),children:["Move ",W]}),(0,v.jsxs)("button",{disabled:!Z,onClick:()=>Y(e=>e.store.setPose((0,r.A)({},e.store.live()),"instant")),children:["Pause ",W]}),(0,v.jsxs)("button",{disabled:!J,onClick:()=>Y(e=>e.store.setPose(e.store.homes,"instant")),children:["Home ",W]})]})]}),(0,v.jsx)(l.Ay,{dockSignal:"".concat(j.id,":").concat(Q,":").concat(V,":").concat(T,":").concat(L),children:(0,v.jsx)("div",{className:"vc-pair ".concat("both"===Q?"":"vc-single"),"data-viewport":T,"data-usd-delivery":K.deliveryProfile?"viewer":"source","data-material-profile":$.experimentalManifest?"experimental":"original",children:X.map(e=>(0,v.jsx)(U,{asset:$,format:e,viewport:T,onResult:H,onControl:I},"".concat(j.id,":").concat(e,":").concat($[e].url)))})}),K.deliveryProfile&&(0,v.jsxs)("p",{className:"vc-muted",children:["passed"===(null===(i=K.browserQualification)||void 0===i?void 0:i.status)?"Prepared USD passed browser qualification.":"Experimental prepared USD; browser fidelity qualification is incomplete."," ",K.encodingSummary||"Texture dimensions preserved."," ",(0,v.jsx)("a",{href:K.auditUrl,target:"_blank",rel:"noreferrer",children:"Preparation audit"})]}),(0,v.jsx)("p",{className:"vc-muted vc-method",children:"Interactive GLB and USD use Central\u2019s browser lighting and renderer, with the same initial camera direction, and show both sides of surfaces. Camera orbit is independent. Native USD reads geometry and materials from a prepared USD layer. Moving examples also validate its source physics. Visual inspection examples preserve source joint data and disable motion. Materials use PreviewSurface; original MDL optical equivalence is still under evaluation."}),(0,v.jsxs)("table",{className:"vc-table","aria-label":"Selected asset comparison",children:[(0,v.jsx)("thead",{children:(0,v.jsxs)("tr",{children:[(0,v.jsx)("th",{children:"Comparison"}),(0,v.jsx)("th",{children:"HD GLB"}),(0,v.jsx)("th",{children:"Native USD"})]})}),(0,v.jsxs)("tbody",{children:[(0,v.jsxs)("tr",{children:[(0,v.jsx)("th",{children:"Ready this visit"}),(0,v.jsx)("td",{children:b(null===(t=ee.glb)||void 0===t?void 0:t.readyMs)}),(0,v.jsx)("td",{children:b(null===(a=ee.usd)||void 0===a?void 0:a.readyMs)})]}),(0,v.jsxs)("tr",{children:[(0,v.jsx)("th",{children:"Asset file size"}),(0,v.jsx)("td",{children:w($.glb.bytes+($.glb.textureBytes||0))}),(0,v.jsx)("td",{children:w(K.bytes+(K.textureBytes||0))})]}),$.experimentalManifest&&(0,v.jsxs)("tr",{children:[(0,v.jsx)("th",{children:"Shared external maps per format"}),(0,v.jsx)("td",{children:w($.glb.textureBytes)}),(0,v.jsx)("td",{children:w(K.textureBytes)})]}),j.usd.viewer&&(0,v.jsxs)("tr",{children:[(0,v.jsx)("th",{children:"USD before preparation"}),(0,v.jsx)("td",{children:"\u2014"}),(0,v.jsx)("td",{children:w(j.usd.bytes+(j.usd.textureBytes||0))})]}),(0,v.jsxs)("tr",{children:[(0,v.jsx)("th",{children:"Geometry"}),(0,v.jsxs)("td",{children:[g(j.glb.triangles)," triangles"]}),(0,v.jsxs)("td",{children:[g(K.triangles)," triangles"]})]}),(0,v.jsxs)("tr",{children:[(0,v.jsx)("th",{children:"Joint controls"}),(0,v.jsx)("td",{children:g(null===(n=ee.glb)||void 0===n?void 0:n.jointCount)}),(0,v.jsx)("td",{children:g(null===(d=ee.usd)||void 0===d?void 0:d.jointCount)})]}),(0,v.jsxs)("tr",{children:[(0,v.jsx)("th",{children:"USD reader / heap"}),(0,v.jsx)("td",{children:"\u2014"}),(0,v.jsxs)("td",{children:[b(null===(c=ee.usd)||void 0===c?void 0:c.readerMs)," / ",w(null===(u=ee.usd)||void 0===u?void 0:u.heapBytes),null!==(h=ee.usd)&&void 0!==h&&h.snapshotCacheHit?" \xb7 parsed snapshot reused":""]})]})]})]}),(0,v.jsx)("p",{className:"vc-muted vc-method",children:"Visit times may use cached files; side-by-side mode loads both views concurrently. They are for inspection, not a production speed benchmark. File sizes exclude the common page, reader runtime and GLB joint sidecar."}),j.findings&&(0,v.jsx)("div",{className:"vc-findings",children:["geometry","materials","motion"].map(e=>j.findings[e]&&(0,v.jsxs)("p",{children:[(0,v.jsxs)("strong",{children:[e[0].toUpperCase()+e.slice(1),":"]})," ",j.findings[e]]},e))}),(0,v.jsxs)("details",{className:"vc-overview",children:[(0,v.jsx)("summary",{children:"All 27 comparisons"}),(0,v.jsx)("div",{className:"vc-table-scroll",children:(0,v.jsxs)("table",{className:"vc-table",children:[(0,v.jsx)("thead",{children:(0,v.jsxs)("tr",{children:[(0,v.jsx)("th",{children:"Category / asset"}),(0,v.jsx)("th",{children:"USD qualification"}),(0,v.jsx)("th",{children:"GLB files"}),(0,v.jsx)("th",{children:"USD files"}),(0,v.jsx)("th",{children:"GLB / USD ready this visit"})]})}),(0,v.jsx)("tbody",{children:x.examples.map(e=>{var i,t,r,s,a,n,l;return(0,v.jsxs)("tr",{children:[(0,v.jsx)("th",{children:(0,v.jsxs)("button",{onClick:()=>O(e),children:[null===(i=x.categories.find(i=>i.id===e.category))||void 0===i?void 0:i.label," \xb7 ",e.label]})}),(0,v.jsx)("td",{children:(null===(t=C[e.id])||void 0===t||null===(r=t.usd)||void 0===r?void 0:r.error)||("ready"===e.usd.status?!1===e.usd.motionQualified?"Geometry and materials qualified; motion disabled":"Source qualified":"pending"===e.usd.status?"Preparing on cluster CPUs":e.usd.reason)}),(0,v.jsx)("td",{children:w(e.glb.bytes)}),(0,v.jsx)("td",{children:w(e.usd.bytes+(e.usd.textureBytes||0))}),(0,v.jsxs)("td",{children:[b(null===(s=C[e.id])||void 0===s||null===(a=s.glb)||void 0===a?void 0:a.readyMs)," / ",b(null===(n=C[e.id])||void 0===n||null===(l=n.usd)||void 0===l?void 0:l.readyMs)]})]},e.id)})})]})})]})]})]})}}}]);
|
services/explorer/dist/static/js/816.6d66a696.chunk.js
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
services/explorer/dist/static/js/816.6d66a696.chunk.js.LICENSE.txt
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/**
|
| 2 |
+
* @license
|
| 3 |
+
* Copyright 2010-2026 Three.js Authors
|
| 4 |
+
* SPDX-License-Identifier: MIT
|
| 5 |
+
*/
|
services/explorer/dist/static/js/857.e9f384a0.chunk.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
"use strict";(self.webpackChunkdeepsearch_ui=self.webpackChunkdeepsearch_ui||[]).push([[857],{6857(e,r,o){o.r(r),o.d(r,{readLightUsdSnapshotRound2:()=>d});var i=o(9379),t=o(9885),n=o(7863);const s=()=>new DOMException("USD load cancelled","AbortError");let a;function l(e){const r=new URL(e,window.location.href);if(r.origin!==window.location.origin)throw new Error("USD review resources must use this origin");return r.href}async function d(){let{file:e,url:r,filename:o,getHeaders:d,signal:c,onProgress:u,expectedSha256:h,snapshotCache:w}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(null!==c&&void 0!==c&&c.aborted)throw s();const m=performance.now(),f=(0,t.mx)(o||(null===e||void 0===e?void 0:e.name)||r);if((null===e||void 0===e?void 0:e.size)>t.Z6)throw new Error("USD layer exceeds the 64 MiB qualification limit");const v="",p="public-central-robot-demo-v1"===(null===w||void 0===w?void 0:w.context)&&!e&&!d&&/^[a-f0-9]{64}$/.test(h||""),g=await function(e,r,o){const i=()=>fetch("".concat(e,"/usd-round2/lightusd/snapshot-v2/runtime.json"),{signal:o?void 0:r,credentials:"same-origin",cache:o?"default":"no-store"}).then(e=>{if(!e.ok)throw new Error("The isolated LightUSD experiment runtime is not installed");return e.json()});return o?(a||(a=i().catch(e=>{throw a=null,e})),a):i()}(v,c,p);if(1!==g.version||"lightusd-next-loaded-layer"!==g.reader||"1.0.0-rc4"!==g.readerVersion||1!==g.loadedLayerApi||1!==g.viewerSnapshotApi||"simready-viewer-snapshot-v2"!==g.variant||"string"!==typeof g.revision||!g.revision)throw new Error("The isolated LightUSD runtime manifest is unsupported");const y=new URL("".concat(v.replace(/\/$/,""),"/"),window.location.origin),M=l(new URL(g.worker,y).href),S=p?JSON.stringify([w.context,l(r),h,g.revision,M]):null,b=(0,t.yM)(S);if(null!==c&&void 0!==c&&c.aborted)throw s();var U;if(b)return b.metrics=(0,i.A)((0,i.A)({},b.metrics),{},{snapshotCacheSourceWorkerMs:null===(U=b.metrics)||void 0===U?void 0:U.workerMs,runtimeMs:0,physicsMs:0,opinionMs:0,geometryMs:0,workerMs:0,wasmHeapBytes:0,downloadMs:0,verificationMs:0,snapshotCacheHit:!0,loadMs:performance.now()-m}),b;null===u||void 0===u||u("download");const E=performance.now(),L=e?await e.arrayBuffer():await(0,t.HX)(await fetch(l(r),{signal:c,credentials:"same-origin",headers:(null===d||void 0===d?void 0:d())||{}}),c);if(L.byteLength>t.Z6)throw new Error("USD layer exceeds the 64 MiB qualification limit");if(null!==c&&void 0!==c&&c.aborted)throw s();const k=performance.now()-E,D=performance.now(),x=void 0===h?null:await(0,n.n)(L,h,"USD layer"),A=void 0===h?0:performance.now()-D;if(null!==c&&void 0!==c&&c.aborted)throw s();return new Promise((e,r)=>{let o,n,a=!1;const l=(i,t)=>{var s;a||(a=!0,clearTimeout(n),null===c||void 0===c||c.removeEventListener("abort",d),null===(s=o)||void 0===s||s.terminate(),i?r(i):e(t))},d=()=>l(s());try{if(o=new Worker(M,{type:"module",name:"simready-lightusd-snapshot-round2"}),null===c||void 0===c||c.addEventListener("abort",d,{once:!0}),null!==c&&void 0!==c&&c.aborted)return void d();o.onerror=e=>l(new Error(e.message||"LightUSD worker failed")),o.onmessageerror=()=>l(new Error("LightUSD result could not be transferred")),o.onmessage=e=>{let{data:r}=e;if("progress"===r.type)null===u||void 0===u||u(r.stage);else if("error"===r.type)l(new Error(r.message));else if("result"===r.type){if(r.result.metrics=(0,i.A)((0,i.A)({},r.result.metrics),{},{downloadMs:k,verificationMs:A,loadMs:performance.now()-m,runtimeWasmBytes:g.wasmBytes,runtimeRevision:g.revision,snapshotCacheHit:!1}),x&&(r.result.metrics.sourceSha256=x),S)try{(0,t.eH)(S,r.result)}catch(o){}l(null,r.result)}},n=setTimeout(()=>l(new Error("LightUSD exceeded the 60 second parse limit")),6e4),o.postMessage({bytes:L,filename:f},[L])}catch(h){l(h)}})}}}]);
|
services/explorer/dist/static/js/892.078314e0.chunk.js
DELETED
|
@@ -1 +0,0 @@
|
|
| 1 |
-
"use strict";(self.webpackChunkdeepsearch_ui=self.webpackChunkdeepsearch_ui||[]).push([[892],{471(e,t,s){s.d(t,{Z:()=>i});const i={name:"CopyShader",uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform float opacity;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 texel = texture2D( tDiffuse, vUv );\n\t\t\tgl_FragColor = opacity * texel;\n\n\n\t\t}"}},521(e,t,s){s.d(t,{F:()=>o,o:()=>r});var i=s(435);class r{constructor(){this.isPass=!0,this.enabled=!0,this.needsSwap=!0,this.clear=!1,this.renderToScreen=!1}setSize(){}render(){console.error("THREE.Pass: .render() must be implemented in derived pass.")}dispose(){}}const n=new i.qUd(-1,1,1,-1,0,1);class h extends i.LoY{constructor(){super(),this.setAttribute("position",new i.qtW([-1,3,0,-1,-1,0,3,-1,0],3)),this.setAttribute("uv",new i.qtW([0,2,0,0,2,0],2))}}const a=new h;class o{constructor(e){this._mesh=new i.eaF(a,e)}dispose(){this._mesh.geometry.dispose()}render(e){e.render(this._mesh,n)}get material(){return this._mesh.material}set material(e){this._mesh.material=e}}},892(e,t,s){s.r(t),s.d(t,{EffectComposer:()=>d});var i=s(435),r=s(471),n=s(521);class h extends n.o{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"tDiffuse";super(),this.textureID=t,this.uniforms=null,this.material=null,e instanceof i.BKk?(this.uniforms=e.uniforms,this.material=e):e&&(this.uniforms=i.LlO.clone(e.uniforms),this.material=new i.BKk({name:void 0!==e.name?e.name:"unspecified",defines:Object.assign({},e.defines),uniforms:this.uniforms,vertexShader:e.vertexShader,fragmentShader:e.fragmentShader})),this._fsQuad=new n.F(this.material)}render(e,t,s){this.uniforms[this.textureID]&&(this.uniforms[this.textureID].value=s.texture),this._fsQuad.material=this.material,this.renderToScreen?(e.setRenderTarget(null),this._fsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),this._fsQuad.render(e))}dispose(){this.material.dispose(),this._fsQuad.dispose()}}class a extends n.o{constructor(e,t){super(),this.scene=e,this.camera=t,this.clear=!0,this.needsSwap=!1,this.inverse=!1}render(e,t,s){const i=e.getContext(),r=e.state;let n,h;r.buffers.color.setMask(!1),r.buffers.depth.setMask(!1),r.buffers.color.setLocked(!0),r.buffers.depth.setLocked(!0),this.inverse?(n=0,h=1):(n=1,h=0),r.buffers.stencil.setTest(!0),r.buffers.stencil.setOp(i.REPLACE,i.REPLACE,i.REPLACE),r.buffers.stencil.setFunc(i.ALWAYS,n,4294967295),r.buffers.stencil.setClear(h),r.buffers.stencil.setLocked(!0),e.setRenderTarget(s),this.clear&&e.clear(),e.render(this.scene,this.camera),e.setRenderTarget(t),this.clear&&e.clear(),e.render(this.scene,this.camera),r.buffers.color.setLocked(!1),r.buffers.depth.setLocked(!1),r.buffers.color.setMask(!0),r.buffers.depth.setMask(!0),r.buffers.stencil.setLocked(!1),r.buffers.stencil.setFunc(i.EQUAL,1,4294967295),r.buffers.stencil.setOp(i.KEEP,i.KEEP,i.KEEP),r.buffers.stencil.setLocked(!0)}}class o extends n.o{constructor(){super(),this.needsSwap=!1}render(e){e.state.buffers.stencil.setLocked(!1),e.state.buffers.stencil.setTest(!1)}}class d{constructor(e,t){if(this.renderer=e,this._pixelRatio=e.getPixelRatio(),void 0===t){const s=e.getSize(new i.I9Y);this._width=s.width,this._height=s.height,(t=new i.nWS(this._width*this._pixelRatio,this._height*this._pixelRatio,{type:i.ix0})).texture.name="EffectComposer.rt1"}else this._width=t.width,this._height=t.height;this.renderTarget1=t,this.renderTarget2=t.clone(),this.renderTarget2.texture.name="EffectComposer.rt2",this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2,this.renderToScreen=!0,this.passes=[],this.copyPass=new h(r.Z),this.copyPass.material.blending=i.XIg,this.timer=new i.M4G}swapBuffers(){const e=this.readBuffer;this.readBuffer=this.writeBuffer,this.writeBuffer=e}addPass(e){this.passes.push(e),e.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}insertPass(e,t){this.passes.splice(t,0,e),e.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}removePass(e){const t=this.passes.indexOf(e);-1!==t&&this.passes.splice(t,1)}isLastEnabledPass(e){for(let t=e+1;t<this.passes.length;t++)if(this.passes[t].enabled)return!1;return!0}render(e){this.timer.update(),void 0===e&&(e=this.timer.getDelta());const t=this.renderer.getRenderTarget();let s=!1;for(let i=0,r=this.passes.length;i<r;i++){const t=this.passes[i];if(!1!==t.enabled){if(t.renderToScreen=this.renderToScreen&&this.isLastEnabledPass(i),t.render(this.renderer,this.writeBuffer,this.readBuffer,e,s),t.needsSwap){if(s){const t=this.renderer.getContext(),s=this.renderer.state.buffers.stencil;s.setFunc(t.NOTEQUAL,1,4294967295),this.copyPass.render(this.renderer,this.writeBuffer,this.readBuffer,e),s.setFunc(t.EQUAL,1,4294967295)}this.swapBuffers()}void 0!==a&&(t instanceof a?s=!0:t instanceof o&&(s=!1))}}this.renderer.setRenderTarget(t)}reset(e){if(void 0===e){const t=this.renderer.getSize(new i.I9Y);this._pixelRatio=this.renderer.getPixelRatio(),this._width=t.width,this._height=t.height,(e=this.renderTarget1.clone()).setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}this.renderTarget1.dispose(),this.renderTarget2.dispose(),this.renderTarget1=e,this.renderTarget2=e.clone(),this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2}setSize(e,t){this._width=e,this._height=t;const s=this._width*this._pixelRatio,i=this._height*this._pixelRatio;this.renderTarget1.setSize(s,i),this.renderTarget2.setSize(s,i);for(let r=0;r<this.passes.length;r++)this.passes[r].setSize(s,i)}setPixelRatio(e){this._pixelRatio=e,this.setSize(this._width,this._height)}dispose(){this.renderTarget1.dispose(),this.renderTarget2.dispose(),this.copyPass.dispose()}}}}]);
|
|
|
|
|
|