skypilot-nightly 1.0.0.dev20251016__py3-none-any.whl → 1.0.0.dev20251017__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of skypilot-nightly might be problematic. Click here for more details.

Files changed (41) hide show
  1. sky/__init__.py +2 -2
  2. sky/authentication.py +17 -157
  3. sky/backends/backend_utils.py +6 -5
  4. sky/catalog/kubernetes_catalog.py +5 -3
  5. sky/client/cli/command.py +0 -1
  6. sky/dashboard/out/404.html +1 -1
  7. sky/dashboard/out/_next/static/chunks/{webpack-66f23594d38c7f16.js → webpack-3c431f6c9086e487.js} +1 -1
  8. sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
  9. sky/dashboard/out/clusters/[cluster].html +1 -1
  10. sky/dashboard/out/clusters.html +1 -1
  11. sky/dashboard/out/config.html +1 -1
  12. sky/dashboard/out/index.html +1 -1
  13. sky/dashboard/out/infra/[context].html +1 -1
  14. sky/dashboard/out/infra.html +1 -1
  15. sky/dashboard/out/jobs/[job].html +1 -1
  16. sky/dashboard/out/jobs/pools/[pool].html +1 -1
  17. sky/dashboard/out/jobs.html +1 -1
  18. sky/dashboard/out/users.html +1 -1
  19. sky/dashboard/out/volumes.html +1 -1
  20. sky/dashboard/out/workspace/new.html +1 -1
  21. sky/dashboard/out/workspaces/[name].html +1 -1
  22. sky/dashboard/out/workspaces.html +1 -1
  23. sky/provision/fluidstack/instance.py +2 -2
  24. sky/provision/seeweb/instance.py +3 -3
  25. sky/serve/service.py +2 -2
  26. sky/server/requests/preconditions.py +2 -2
  27. sky/server/requests/requests.py +32 -24
  28. sky/server/server.py +2 -4
  29. sky/server/stream_utils.py +10 -3
  30. sky/setup_files/dependencies.py +19 -8
  31. sky/utils/auth_utils.py +153 -0
  32. sky/utils/command_runner.py +3 -0
  33. sky/utils/locks.py +5 -2
  34. {skypilot_nightly-1.0.0.dev20251016.dist-info → skypilot_nightly-1.0.0.dev20251017.dist-info}/METADATA +281 -52
  35. {skypilot_nightly-1.0.0.dev20251016.dist-info → skypilot_nightly-1.0.0.dev20251017.dist-info}/RECORD +41 -40
  36. /sky/dashboard/out/_next/static/{pbgtEUoCUdmJyLHjgln5A → 3xvBA5BSGbiQ87tVmfbpY}/_buildManifest.js +0 -0
  37. /sky/dashboard/out/_next/static/{pbgtEUoCUdmJyLHjgln5A → 3xvBA5BSGbiQ87tVmfbpY}/_ssgManifest.js +0 -0
  38. {skypilot_nightly-1.0.0.dev20251016.dist-info → skypilot_nightly-1.0.0.dev20251017.dist-info}/WHEEL +0 -0
  39. {skypilot_nightly-1.0.0.dev20251016.dist-info → skypilot_nightly-1.0.0.dev20251017.dist-info}/entry_points.txt +0 -0
  40. {skypilot_nightly-1.0.0.dev20251016.dist-info → skypilot_nightly-1.0.0.dev20251017.dist-info}/licenses/LICENSE +0 -0
  41. {skypilot_nightly-1.0.0.dev20251016.dist-info → skypilot_nightly-1.0.0.dev20251017.dist-info}/top_level.txt +0 -0
sky/__init__.py CHANGED
@@ -7,7 +7,7 @@ import urllib.request
7
7
  from sky.utils import directory_utils
8
8
 
9
9
  # Replaced with the current commit when building the wheels.
10
- _SKYPILOT_COMMIT_SHA = 'f901ee418f19042aed31e5ebd2b067f2af2ae198'
10
+ _SKYPILOT_COMMIT_SHA = '33025aa87beeef9a94d443c5129ad2fec3116405'
11
11
 
12
12
 
13
13
  def _get_git_commit():
@@ -37,7 +37,7 @@ def _get_git_commit():
37
37
 
38
38
 
39
39
  __commit__ = _get_git_commit()
40
- __version__ = '1.0.0.dev20251016'
40
+ __version__ = '1.0.0.dev20251017'
41
41
  __root_dir__ = directory_utils.get_sky_dir()
42
42
 
43
43
 
sky/authentication.py CHANGED
@@ -19,21 +19,18 @@ controller. (Lambda cloud is an exception, due to the limitation of the cloud
19
19
  provider. See the comments in setup_lambda_authentication)
20
20
  """
21
21
  import copy
22
- import functools
23
22
  import os
24
23
  import re
25
24
  import socket
26
25
  import subprocess
27
26
  import sys
28
- from typing import Any, Dict, Tuple
27
+ from typing import Any, Dict
29
28
  import uuid
30
29
 
31
30
  import colorama
32
- import filelock
33
31
 
34
32
  from sky import clouds
35
33
  from sky import exceptions
36
- from sky import global_user_state
37
34
  from sky import sky_logging
38
35
  from sky.adaptors import gcp
39
36
  from sky.adaptors import ibm
@@ -45,6 +42,7 @@ from sky.provision.fluidstack import fluidstack_utils
45
42
  from sky.provision.kubernetes import utils as kubernetes_utils
46
43
  from sky.provision.lambda_cloud import lambda_utils
47
44
  from sky.provision.primeintellect import utils as primeintellect_utils
45
+ from sky.utils import auth_utils
48
46
  from sky.utils import common_utils
49
47
  from sky.utils import subprocess_utils
50
48
  from sky.utils import ux_utils
@@ -57,147 +55,9 @@ logger = sky_logging.init_logger(__name__)
57
55
  # using Cloud Client Libraries for Python, where possible, for new code
58
56
  # development.
59
57
 
60
- MAX_TRIALS = 64
61
- # TODO(zhwu): Support user specified key pair.
62
- # We intentionally not have the ssh key pair to be stored in
63
- # ~/.sky/api_server/clients, i.e. sky.server.common.API_SERVER_CLIENT_DIR,
64
- # because ssh key pair need to persist across API server restarts, while
65
- # the former dir is empheral.
66
- _SSH_KEY_PATH_PREFIX = '~/.sky/clients/{user_hash}/ssh'
67
-
68
-
69
- def get_ssh_key_and_lock_path(user_hash: str) -> Tuple[str, str, str]:
70
- user_ssh_key_prefix = _SSH_KEY_PATH_PREFIX.format(user_hash=user_hash)
71
-
72
- os.makedirs(os.path.expanduser(user_ssh_key_prefix),
73
- exist_ok=True,
74
- mode=0o700)
75
- private_key_path = os.path.join(user_ssh_key_prefix, 'sky-key')
76
- public_key_path = os.path.join(user_ssh_key_prefix, 'sky-key.pub')
77
- lock_path = os.path.join(user_ssh_key_prefix, '.__internal-sky-key.lock')
78
- return private_key_path, public_key_path, lock_path
79
-
80
-
81
- def _generate_rsa_key_pair() -> Tuple[str, str]:
82
- # Keep the import of the cryptography local to avoid expensive
83
- # third-party imports when not needed.
84
- # pylint: disable=import-outside-toplevel
85
- from cryptography.hazmat.backends import default_backend
86
- from cryptography.hazmat.primitives import serialization
87
- from cryptography.hazmat.primitives.asymmetric import rsa
88
-
89
- key = rsa.generate_private_key(backend=default_backend(),
90
- public_exponent=65537,
91
- key_size=2048)
92
-
93
- private_key = key.private_bytes(
94
- encoding=serialization.Encoding.PEM,
95
- format=serialization.PrivateFormat.TraditionalOpenSSL,
96
- encryption_algorithm=serialization.NoEncryption()).decode(
97
- 'utf-8').strip()
98
-
99
- public_key = key.public_key().public_bytes(
100
- serialization.Encoding.OpenSSH,
101
- serialization.PublicFormat.OpenSSH).decode('utf-8').strip()
102
-
103
- return public_key, private_key
104
-
105
-
106
- def _save_key_pair(private_key_path: str, public_key_path: str,
107
- private_key: str, public_key: str) -> None:
108
- key_dir = os.path.dirname(private_key_path)
109
- os.makedirs(key_dir, exist_ok=True, mode=0o700)
110
-
111
- with open(
112
- private_key_path,
113
- 'w',
114
- encoding='utf-8',
115
- opener=functools.partial(os.open, mode=0o600),
116
- ) as f:
117
- f.write(private_key)
118
-
119
- with open(public_key_path,
120
- 'w',
121
- encoding='utf-8',
122
- opener=functools.partial(os.open, mode=0o644)) as f:
123
- f.write(public_key)
124
-
125
-
126
- def get_or_generate_keys() -> Tuple[str, str]:
127
- """Returns the absolute private and public key paths."""
128
- user_hash = common_utils.get_user_hash()
129
- private_key_path, public_key_path, lock_path = get_ssh_key_and_lock_path(
130
- user_hash)
131
- private_key_path = os.path.expanduser(private_key_path)
132
- public_key_path = os.path.expanduser(public_key_path)
133
- lock_path = os.path.expanduser(lock_path)
134
-
135
- lock_dir = os.path.dirname(lock_path)
136
- # We should have the folder ~/.sky/generated/ssh to have 0o700 permission,
137
- # as the ssh configs will be written to this folder as well in
138
- # backend_utils.SSHConfigHelper
139
- os.makedirs(lock_dir, exist_ok=True, mode=0o700)
140
- with filelock.FileLock(lock_path, timeout=10):
141
- if not os.path.exists(private_key_path):
142
- ssh_public_key, ssh_private_key, exists = (
143
- global_user_state.get_ssh_keys(user_hash))
144
- if not exists:
145
- ssh_public_key, ssh_private_key = _generate_rsa_key_pair()
146
- global_user_state.set_ssh_keys(user_hash, ssh_public_key,
147
- ssh_private_key)
148
- _save_key_pair(private_key_path, public_key_path, ssh_private_key,
149
- ssh_public_key)
150
- assert os.path.exists(public_key_path), (
151
- 'Private key found, but associated public key '
152
- f'{public_key_path} does not exist.')
153
- return private_key_path, public_key_path
154
-
155
-
156
- def create_ssh_key_files_from_db(private_key_path: str) -> bool:
157
- """Creates the ssh key files from the database.
158
-
159
- Returns:
160
- True if the ssh key files are created successfully, False otherwise.
161
- """
162
- # Assume private key path is in the format of
163
- # ~/.sky/clients/<user_hash>/ssh/sky-key
164
- separated_path = os.path.normpath(private_key_path).split(os.path.sep)
165
- assert separated_path[-1] == 'sky-key'
166
- assert separated_path[-2] == 'ssh'
167
- user_hash = separated_path[-3]
168
-
169
- private_key_path_generated, public_key_path, lock_path = (
170
- get_ssh_key_and_lock_path(user_hash))
171
- assert private_key_path == os.path.expanduser(private_key_path_generated), (
172
- f'Private key path {private_key_path} does not '
173
- 'match the generated path '
174
- f'{os.path.expanduser(private_key_path_generated)}')
175
- private_key_path = os.path.expanduser(private_key_path)
176
- public_key_path = os.path.expanduser(public_key_path)
177
- lock_path = os.path.expanduser(lock_path)
178
-
179
- lock_dir = os.path.dirname(lock_path)
180
- # We should have the folder ~/.sky/generated/ssh to have 0o700 permission,
181
- # as the ssh configs will be written to this folder as well in
182
- # backend_utils.SSHConfigHelper
183
- os.makedirs(lock_dir, exist_ok=True, mode=0o700)
184
- with filelock.FileLock(lock_path, timeout=10):
185
- if not os.path.exists(private_key_path):
186
- ssh_public_key, ssh_private_key, exists = (
187
- global_user_state.get_ssh_keys(user_hash))
188
- if not exists:
189
- logger.debug(f'SSH keys not found for user {user_hash}')
190
- return False
191
- _save_key_pair(private_key_path, public_key_path, ssh_private_key,
192
- ssh_public_key)
193
- assert os.path.exists(public_key_path), (
194
- 'Private key found, but associated public key '
195
- f'{public_key_path} does not exist.')
196
- return True
197
-
198
58
 
199
59
  def configure_ssh_info(config: Dict[str, Any]) -> Dict[str, Any]:
200
- _, public_key_path = get_or_generate_keys()
60
+ _, public_key_path = auth_utils.get_or_generate_keys()
201
61
  with open(public_key_path, 'r', encoding='utf-8') as f:
202
62
  public_key = f.read().strip()
203
63
  config_str = yaml_utils.dump_yaml_str(config)
@@ -235,7 +95,7 @@ def parse_gcp_project_oslogin(project):
235
95
  # Retry for the GCP as sometimes there will be connection reset by peer error.
236
96
  @common_utils.retry
237
97
  def setup_gcp_authentication(config: Dict[str, Any]) -> Dict[str, Any]:
238
- _, public_key_path = get_or_generate_keys()
98
+ _, public_key_path = auth_utils.get_or_generate_keys()
239
99
  config = copy.deepcopy(config)
240
100
 
241
101
  project_id = config['provider']['project_id']
@@ -360,11 +220,11 @@ def setup_gcp_authentication(config: Dict[str, Any]) -> Dict[str, Any]:
360
220
 
361
221
  def setup_lambda_authentication(config: Dict[str, Any]) -> Dict[str, Any]:
362
222
 
363
- get_or_generate_keys()
223
+ auth_utils.get_or_generate_keys()
364
224
 
365
225
  # Ensure ssh key is registered with Lambda Cloud
366
226
  lambda_client = lambda_utils.LambdaCloudClient()
367
- _, public_key_path = get_or_generate_keys()
227
+ _, public_key_path = auth_utils.get_or_generate_keys()
368
228
  with open(public_key_path, 'r', encoding='utf-8') as f:
369
229
  public_key = f.read().strip()
370
230
  prefix = f'sky-key-{common_utils.get_user_hash()}'
@@ -381,7 +241,7 @@ def setup_ibm_authentication(config: Dict[str, Any]) -> Dict[str, Any]:
381
241
  and updates config file.
382
242
  keys default location: '~/.ssh/sky-key' and '~/.ssh/sky-key.pub'
383
243
  """
384
- private_key_path, _ = get_or_generate_keys()
244
+ private_key_path, _ = auth_utils.get_or_generate_keys()
385
245
 
386
246
  def _get_unique_key_name():
387
247
  suffix_len = 10
@@ -390,7 +250,7 @@ def setup_ibm_authentication(config: Dict[str, Any]) -> Dict[str, Any]:
390
250
  client = ibm.client(region=config['provider']['region'])
391
251
  resource_group_id = config['provider']['resource_group_id']
392
252
 
393
- _, public_key_path = get_or_generate_keys()
253
+ _, public_key_path = auth_utils.get_or_generate_keys()
394
254
  with open(os.path.abspath(os.path.expanduser(public_key_path)),
395
255
  'r',
396
256
  encoding='utf-8') as file:
@@ -432,7 +292,7 @@ def setup_ibm_authentication(config: Dict[str, Any]) -> Dict[str, Any]:
432
292
  def setup_kubernetes_authentication(config: Dict[str, Any]) -> Dict[str, Any]:
433
293
  context = kubernetes_utils.get_context_from_config(config['provider'])
434
294
  namespace = kubernetes_utils.get_namespace_from_config(config['provider'])
435
- private_key_path, _ = get_or_generate_keys()
295
+ private_key_path, _ = auth_utils.get_or_generate_keys()
436
296
  # Using `kubectl port-forward` creates a direct tunnel to the pod and
437
297
  # does not require a ssh jump pod.
438
298
  kubernetes_utils.check_port_forward_mode_dependencies()
@@ -463,7 +323,7 @@ def setup_runpod_authentication(config: Dict[str, Any]) -> Dict[str, Any]:
463
323
  - Generates a new SSH key pair if one does not exist.
464
324
  - Adds the public SSH key to the user's RunPod account.
465
325
  """
466
- _, public_key_path = get_or_generate_keys()
326
+ _, public_key_path = auth_utils.get_or_generate_keys()
467
327
  with open(public_key_path, 'r', encoding='UTF-8') as pub_key_file:
468
328
  public_key = pub_key_file.read().strip()
469
329
  runpod.runpod.cli.groups.ssh.functions.add_ssh_key(public_key)
@@ -476,7 +336,7 @@ def setup_vast_authentication(config: Dict[str, Any]) -> Dict[str, Any]:
476
336
  - Generates a new SSH key pair if one does not exist.
477
337
  - Adds the public SSH key to the user's Vast account.
478
338
  """
479
- _, public_key_path = get_or_generate_keys()
339
+ _, public_key_path = auth_utils.get_or_generate_keys()
480
340
  with open(public_key_path, 'r', encoding='UTF-8') as pub_key_file:
481
341
  public_key = pub_key_file.read().strip()
482
342
  current_key_list = vast.vast().show_ssh_keys() # pylint: disable=assignment-from-no-return
@@ -490,7 +350,7 @@ def setup_vast_authentication(config: Dict[str, Any]) -> Dict[str, Any]:
490
350
 
491
351
  def setup_fluidstack_authentication(config: Dict[str, Any]) -> Dict[str, Any]:
492
352
 
493
- _, public_key_path = get_or_generate_keys()
353
+ _, public_key_path = auth_utils.get_or_generate_keys()
494
354
 
495
355
  client = fluidstack_utils.FluidstackClient()
496
356
  public_key = None
@@ -503,7 +363,7 @@ def setup_fluidstack_authentication(config: Dict[str, Any]) -> Dict[str, Any]:
503
363
 
504
364
  def setup_hyperbolic_authentication(config: Dict[str, Any]) -> Dict[str, Any]:
505
365
  """Sets up SSH authentication for Hyperbolic."""
506
- _, public_key_path = get_or_generate_keys()
366
+ _, public_key_path = auth_utils.get_or_generate_keys()
507
367
  with open(public_key_path, 'r', encoding='utf-8') as f:
508
368
  public_key = f.read().strip()
509
369
 
@@ -528,7 +388,7 @@ def setup_shadeform_authentication(config: Dict[str, Any]) -> Dict[str, Any]:
528
388
  If no official SDK exists, this function would need to use direct API calls.
529
389
  """
530
390
 
531
- _, public_key_path = get_or_generate_keys()
391
+ _, public_key_path = auth_utils.get_or_generate_keys()
532
392
  ssh_key_id = None
533
393
 
534
394
  with open(public_key_path, 'r', encoding='utf-8') as f:
@@ -568,7 +428,7 @@ def setup_primeintellect_authentication(
568
428
  - Adds the public SSH key to the user's Prime Intellect account.
569
429
  """
570
430
  # Ensure local SSH keypair exists and fetch public key content
571
- _, public_key_path = get_or_generate_keys()
431
+ _, public_key_path = auth_utils.get_or_generate_keys()
572
432
  with open(public_key_path, 'r', encoding='utf-8') as f:
573
433
  public_key = f.read().strip()
574
434
 
@@ -588,10 +448,10 @@ def setup_primeintellect_authentication(
588
448
  def setup_seeweb_authentication(config: Dict[str, Any]) -> Dict[str, Any]:
589
449
  """Registers the public key with Seeweb and notes the remote name."""
590
450
  # 1. local key pair
591
- get_or_generate_keys()
451
+ auth_utils.get_or_generate_keys()
592
452
 
593
453
  # 2. public key
594
- _, public_key_path = get_or_generate_keys()
454
+ _, public_key_path = auth_utils.get_or_generate_keys()
595
455
  with open(public_key_path, 'r', encoding='utf-8') as f:
596
456
  public_key = f.read().strip()
597
457
 
@@ -48,6 +48,7 @@ from sky.server.requests import requests as requests_lib
48
48
  from sky.skylet import autostop_lib
49
49
  from sky.skylet import constants
50
50
  from sky.usage import usage_lib
51
+ from sky.utils import auth_utils
51
52
  from sky.utils import cluster_utils
52
53
  from sky.utils import command_runner
53
54
  from sky.utils import common
@@ -755,7 +756,7 @@ def write_cluster_config(
755
756
  assert k not in credentials, f'{k} already in credentials'
756
757
  credentials[k] = v
757
758
 
758
- private_key_path, _ = auth.get_or_generate_keys()
759
+ private_key_path, _ = auth_utils.get_or_generate_keys()
759
760
  auth_config = {'ssh_private_key': private_key_path}
760
761
  region_name = resources_vars.get('region')
761
762
 
@@ -3270,7 +3271,7 @@ def get_clusters(
3270
3271
  expanded_private_key_path = os.path.expanduser(
3271
3272
  ssh_private_key_path)
3272
3273
  if not os.path.exists(expanded_private_key_path):
3273
- success = auth.create_ssh_key_files_from_db(
3274
+ success = auth_utils.create_ssh_key_files_from_db(
3274
3275
  ssh_private_key_path)
3275
3276
  if not success:
3276
3277
  # If the ssh key files are not found, we do not
@@ -3280,7 +3281,7 @@ def get_clusters(
3280
3281
  f'at key path {ssh_private_key_path}')
3281
3282
  continue
3282
3283
  else:
3283
- private_key_path, _ = auth.get_or_generate_keys()
3284
+ private_key_path, _ = auth_utils.get_or_generate_keys()
3284
3285
  expanded_private_key_path = os.path.expanduser(private_key_path)
3285
3286
  if expanded_private_key_path in cached_private_keys:
3286
3287
  credential['ssh_private_key_content'] = cached_private_keys[
@@ -3358,8 +3359,8 @@ def get_clusters(
3358
3359
  requests = requests_lib.get_request_tasks(
3359
3360
  req_filter=requests_lib.RequestTaskFilter(
3360
3361
  status=[requests_lib.RequestStatus.RUNNING],
3361
- cluster_names=cluster_names,
3362
- include_request_names=['sky.launch']))
3362
+ include_request_names=['sky.launch'],
3363
+ cluster_names=cluster_names))
3363
3364
  cluster_names_with_launch_request = {
3364
3365
  request.cluster_name for request in requests
3365
3366
  }
@@ -180,8 +180,8 @@ def _list_accelerators(
180
180
  break
181
181
 
182
182
  # Only fetch pods if we have accelerator nodes and realtime is requested
183
- pods = None
184
183
  allocated_qty_by_node: Dict[str, int] = collections.defaultdict(int)
184
+ error_on_get_allocated_gpu_qty_by_node = False
185
185
  if realtime and has_accelerator_nodes:
186
186
  # Get the allocated GPU quantity by each node
187
187
  try:
@@ -194,6 +194,7 @@ def _list_accelerators(
194
194
  '(forbidden). Please check if your account has '
195
195
  'necessary permissions to list pods. Realtime GPU '
196
196
  'availability information may be incorrect.')
197
+ error_on_get_allocated_gpu_qty_by_node = True
197
198
  else:
198
199
  raise
199
200
  # Total number of GPUs in the cluster
@@ -259,8 +260,9 @@ def _list_accelerators(
259
260
  total_accelerators_capacity[
260
261
  accelerator_name] += quantized_count
261
262
 
262
- if pods is None:
263
- # If we can't get the pods, we can't get the GPU usage
263
+ if error_on_get_allocated_gpu_qty_by_node:
264
+ # If we can't get the allocated GPU quantity by each node,
265
+ # we can't get the GPU usage.
264
266
  total_accelerators_available[accelerator_name] = -1
265
267
  continue
266
268
 
sky/client/cli/command.py CHANGED
@@ -6182,7 +6182,6 @@ def api_cancel(request_ids: Optional[List[str]], all: bool, all_users: bool):
6182
6182
  type=str)
6183
6183
  if user_input != 'cancel all requests':
6184
6184
  raise click.Abort()
6185
- if all:
6186
6185
  request_ids = None
6187
6186
  cancelled_request_ids = sdk.get(
6188
6187
  sdk.api_cancel(request_ids=request_ids, all_users=all_users))
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-66f23594d38c7f16.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js" defer=""></script><script src="/dashboard/_next/static/pbgtEUoCUdmJyLHjgln5A/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/pbgtEUoCUdmJyLHjgln5A/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"pbgtEUoCUdmJyLHjgln5A","assetPrefix":"/dashboard","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-3c431f6c9086e487.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js" defer=""></script><script src="/dashboard/_next/static/3xvBA5BSGbiQ87tVmfbpY/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/3xvBA5BSGbiQ87tVmfbpY/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"3xvBA5BSGbiQ87tVmfbpY","assetPrefix":"/dashboard","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- !function(){"use strict";var t,e,n,r,c,o,u,i,f,a={},s={};function d(t){var e=s[t];if(void 0!==e)return e.exports;var n=s[t]={exports:{}},r=!0;try{a[t](n,n.exports,d),r=!1}finally{r&&delete s[t]}return n.exports}d.m=a,t=[],d.O=function(e,n,r,c){if(n){c=c||0;for(var o=t.length;o>0&&t[o-1][2]>c;o--)t[o]=t[o-1];t[o]=[n,r,c];return}for(var u=1/0,o=0;o<t.length;o++){for(var n=t[o][0],r=t[o][1],c=t[o][2],i=!0,f=0;f<n.length;f++)u>=c&&Object.keys(d.O).every(function(t){return d.O[t](n[f])})?n.splice(f--,1):(i=!1,c<u&&(u=c));if(i){t.splice(o--,1);var a=r();void 0!==a&&(e=a)}}return e},d.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return d.d(e,{a:e}),e},n=Object.getPrototypeOf?function(t){return Object.getPrototypeOf(t)}:function(t){return t.__proto__},d.t=function(t,r){if(1&r&&(t=this(t)),8&r||"object"==typeof t&&t&&(4&r&&t.__esModule||16&r&&"function"==typeof t.then))return t;var c=Object.create(null);d.r(c);var o={};e=e||[null,n({}),n([]),n(n)];for(var u=2&r&&t;"object"==typeof u&&!~e.indexOf(u);u=n(u))Object.getOwnPropertyNames(u).forEach(function(e){o[e]=function(){return t[e]}});return o.default=function(){return t},d.d(c,o),c},d.d=function(t,e){for(var n in e)d.o(e,n)&&!d.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},d.f={},d.e=function(t){return Promise.all(Object.keys(d.f).reduce(function(e,n){return d.f[n](t,e),e},[]))},d.u=function(t){return 2350===t?"static/chunks/2350.fab69e61bac57b23.js":2369===t?"static/chunks/2369.fc20f0c2c8ed9fe7.js":3937===t?"static/chunks/3937.210053269f121201.js":9025===t?"static/chunks/9025.c12318fb6a1a9093.js":4937===t?"static/chunks/4937.a2baa2df5572a276.js":3294===t?"static/chunks/3294.1fafbf42b3bcebff.js":8640===t?"static/chunks/8640.5b9475a2d18c5416.js":2755===t?"static/chunks/2755.97300e1362fe7c98.js":9847===t?"static/chunks/9847.3aaca6bb33455140.js":4725===t?"static/chunks/4725.10f7a9a5d3ea8208.js":3785===t?"static/chunks/3785.a19328ba41517b8b.js":9360===t?"static/chunks/9360.71e83b2ddc844ec2.js":"static/chunks/"+t+"-"+({616:"3d59f75e2ccf9321",1121:"d0782b9251f0fcd3",1141:"3b40c39626f99c89",1272:"1ef0bf0237faccdb",1871:"49141c317f3a9020",3015:"7e0e8f06bb2f881c",3850:"ff4a9a69d978632b",5739:"d67458fcb1386c92",6130:"2be46d70a38f1e82",6135:"4b4d5e824b7f9d3c",6601:"06114c982db410b6",6856:"5fdc9b851a18acdb",6989:"01359c57e018caa4",6990:"f6818c84ed8f1c86",7359:"c8d04e06886000b3",7411:"b15471acd2cba716",8969:"66237729cdf9749e"})[t]+".js"},d.miniCssF=function(t){},d.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(t){if("object"==typeof window)return window}}(),d.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r={},c="_N_E:",d.l=function(t,e,n,o){if(r[t]){r[t].push(e);return}if(void 0!==n)for(var u,i,f=document.getElementsByTagName("script"),a=0;a<f.length;a++){var s=f[a];if(s.getAttribute("src")==t||s.getAttribute("data-webpack")==c+n){u=s;break}}u||(i=!0,(u=document.createElement("script")).charset="utf-8",u.timeout=120,d.nc&&u.setAttribute("nonce",d.nc),u.setAttribute("data-webpack",c+n),u.src=d.tu(t)),r[t]=[e];var b=function(e,n){u.onerror=u.onload=null,clearTimeout(l);var c=r[t];if(delete r[t],u.parentNode&&u.parentNode.removeChild(u),c&&c.forEach(function(t){return t(n)}),e)return e(n)},l=setTimeout(b.bind(null,void 0,{type:"timeout",target:u}),12e4);u.onerror=b.bind(null,u.onerror),u.onload=b.bind(null,u.onload),i&&document.head.appendChild(u)},d.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},d.tt=function(){return void 0===o&&(o={createScriptURL:function(t){return t}},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(o=trustedTypes.createPolicy("nextjs#bundler",o))),o},d.tu=function(t){return d.tt().createScriptURL(t)},d.p="/dashboard/_next/",u={2272:0},d.f.j=function(t,e){var n=d.o(u,t)?u[t]:void 0;if(0!==n){if(n)e.push(n[2]);else if(2272!=t){var r=new Promise(function(e,r){n=u[t]=[e,r]});e.push(n[2]=r);var c=d.p+d.u(t),o=Error();d.l(c,function(e){if(d.o(u,t)&&(0!==(n=u[t])&&(u[t]=void 0),n)){var r=e&&("load"===e.type?"missing":e.type),c=e&&e.target&&e.target.src;o.message="Loading chunk "+t+" failed.\n("+r+": "+c+")",o.name="ChunkLoadError",o.type=r,o.request=c,n[1](o)}},"chunk-"+t,t)}else u[t]=0}},d.O.j=function(t){return 0===u[t]},i=function(t,e){var n,r,c=e[0],o=e[1],i=e[2],f=0;if(c.some(function(t){return 0!==u[t]})){for(n in o)d.o(o,n)&&(d.m[n]=o[n]);if(i)var a=i(d)}for(t&&t(e);f<c.length;f++)r=c[f],d.o(u,r)&&u[r]&&u[r][0](),u[r]=0;return d.O(a)},(f=self.webpackChunk_N_E=self.webpackChunk_N_E||[]).forEach(i.bind(null,0)),f.push=i.bind(null,f.push.bind(f)),d.nc=void 0}();
1
+ !function(){"use strict";var t,e,n,r,c,o,u,i,f,a={},s={};function d(t){var e=s[t];if(void 0!==e)return e.exports;var n=s[t]={exports:{}},r=!0;try{a[t](n,n.exports,d),r=!1}finally{r&&delete s[t]}return n.exports}d.m=a,t=[],d.O=function(e,n,r,c){if(n){c=c||0;for(var o=t.length;o>0&&t[o-1][2]>c;o--)t[o]=t[o-1];t[o]=[n,r,c];return}for(var u=1/0,o=0;o<t.length;o++){for(var n=t[o][0],r=t[o][1],c=t[o][2],i=!0,f=0;f<n.length;f++)u>=c&&Object.keys(d.O).every(function(t){return d.O[t](n[f])})?n.splice(f--,1):(i=!1,c<u&&(u=c));if(i){t.splice(o--,1);var a=r();void 0!==a&&(e=a)}}return e},d.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return d.d(e,{a:e}),e},n=Object.getPrototypeOf?function(t){return Object.getPrototypeOf(t)}:function(t){return t.__proto__},d.t=function(t,r){if(1&r&&(t=this(t)),8&r||"object"==typeof t&&t&&(4&r&&t.__esModule||16&r&&"function"==typeof t.then))return t;var c=Object.create(null);d.r(c);var o={};e=e||[null,n({}),n([]),n(n)];for(var u=2&r&&t;"object"==typeof u&&!~e.indexOf(u);u=n(u))Object.getOwnPropertyNames(u).forEach(function(e){o[e]=function(){return t[e]}});return o.default=function(){return t},d.d(c,o),c},d.d=function(t,e){for(var n in e)d.o(e,n)&&!d.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},d.f={},d.e=function(t){return Promise.all(Object.keys(d.f).reduce(function(e,n){return d.f[n](t,e),e},[]))},d.u=function(t){return 2350===t?"static/chunks/2350.fab69e61bac57b23.js":2369===t?"static/chunks/2369.fc20f0c2c8ed9fe7.js":3937===t?"static/chunks/3937.210053269f121201.js":9025===t?"static/chunks/9025.c12318fb6a1a9093.js":4937===t?"static/chunks/4937.a2baa2df5572a276.js":3294===t?"static/chunks/3294.1fafbf42b3bcebff.js":8640===t?"static/chunks/8640.5b9475a2d18c5416.js":9847===t?"static/chunks/9847.3aaca6bb33455140.js":4725===t?"static/chunks/4725.10f7a9a5d3ea8208.js":2755===t?"static/chunks/2755.97300e1362fe7c98.js":3785===t?"static/chunks/3785.a19328ba41517b8b.js":9360===t?"static/chunks/9360.71e83b2ddc844ec2.js":"static/chunks/"+t+"-"+({616:"3d59f75e2ccf9321",1121:"d0782b9251f0fcd3",1141:"3b40c39626f99c89",1272:"1ef0bf0237faccdb",1871:"49141c317f3a9020",3015:"7e0e8f06bb2f881c",3850:"ff4a9a69d978632b",5739:"d67458fcb1386c92",6130:"2be46d70a38f1e82",6135:"4b4d5e824b7f9d3c",6601:"06114c982db410b6",6856:"5fdc9b851a18acdb",6989:"01359c57e018caa4",6990:"f6818c84ed8f1c86",7359:"c8d04e06886000b3",7411:"b15471acd2cba716",8969:"66237729cdf9749e"})[t]+".js"},d.miniCssF=function(t){},d.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(t){if("object"==typeof window)return window}}(),d.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r={},c="_N_E:",d.l=function(t,e,n,o){if(r[t]){r[t].push(e);return}if(void 0!==n)for(var u,i,f=document.getElementsByTagName("script"),a=0;a<f.length;a++){var s=f[a];if(s.getAttribute("src")==t||s.getAttribute("data-webpack")==c+n){u=s;break}}u||(i=!0,(u=document.createElement("script")).charset="utf-8",u.timeout=120,d.nc&&u.setAttribute("nonce",d.nc),u.setAttribute("data-webpack",c+n),u.src=d.tu(t)),r[t]=[e];var b=function(e,n){u.onerror=u.onload=null,clearTimeout(l);var c=r[t];if(delete r[t],u.parentNode&&u.parentNode.removeChild(u),c&&c.forEach(function(t){return t(n)}),e)return e(n)},l=setTimeout(b.bind(null,void 0,{type:"timeout",target:u}),12e4);u.onerror=b.bind(null,u.onerror),u.onload=b.bind(null,u.onload),i&&document.head.appendChild(u)},d.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},d.tt=function(){return void 0===o&&(o={createScriptURL:function(t){return t}},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(o=trustedTypes.createPolicy("nextjs#bundler",o))),o},d.tu=function(t){return d.tt().createScriptURL(t)},d.p="/dashboard/_next/",u={2272:0},d.f.j=function(t,e){var n=d.o(u,t)?u[t]:void 0;if(0!==n){if(n)e.push(n[2]);else if(2272!=t){var r=new Promise(function(e,r){n=u[t]=[e,r]});e.push(n[2]=r);var c=d.p+d.u(t),o=Error();d.l(c,function(e){if(d.o(u,t)&&(0!==(n=u[t])&&(u[t]=void 0),n)){var r=e&&("load"===e.type?"missing":e.type),c=e&&e.target&&e.target.src;o.message="Loading chunk "+t+" failed.\n("+r+": "+c+")",o.name="ChunkLoadError",o.type=r,o.request=c,n[1](o)}},"chunk-"+t,t)}else u[t]=0}},d.O.j=function(t){return 0===u[t]},i=function(t,e){var n,r,c=e[0],o=e[1],i=e[2],f=0;if(c.some(function(t){return 0!==u[t]})){for(n in o)d.o(o,n)&&(d.m[n]=o[n]);if(i)var a=i(d)}for(t&&t(e);f<c.length;f++)r=c[f],d.o(u,r)&&u[r]&&u[r][0](),u[r]=0;return d.O(a)},(f=self.webpackChunk_N_E=self.webpackChunk_N_E||[]).forEach(i.bind(null,0)),f.push=i.bind(null,f.push.bind(f)),d.nc=void 0}();
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-66f23594d38c7f16.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-3d59f75e2ccf9321.js" defer=""></script><script src="/dashboard/_next/static/chunks/6130-2be46d70a38f1e82.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-d67458fcb1386c92.js" defer=""></script><script src="/dashboard/_next/static/chunks/7411-b15471acd2cba716.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-01359c57e018caa4.js" defer=""></script><script src="/dashboard/_next/static/chunks/3850-ff4a9a69d978632b.js" defer=""></script><script src="/dashboard/_next/static/chunks/6135-4b4d5e824b7f9d3c.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D/%5Bjob%5D-8f058b0346db2aff.js" defer=""></script><script src="/dashboard/_next/static/pbgtEUoCUdmJyLHjgln5A/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/pbgtEUoCUdmJyLHjgln5A/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]/[job]","query":{},"buildId":"pbgtEUoCUdmJyLHjgln5A","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-3c431f6c9086e487.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-3d59f75e2ccf9321.js" defer=""></script><script src="/dashboard/_next/static/chunks/6130-2be46d70a38f1e82.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-d67458fcb1386c92.js" defer=""></script><script src="/dashboard/_next/static/chunks/7411-b15471acd2cba716.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-01359c57e018caa4.js" defer=""></script><script src="/dashboard/_next/static/chunks/3850-ff4a9a69d978632b.js" defer=""></script><script src="/dashboard/_next/static/chunks/6135-4b4d5e824b7f9d3c.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D/%5Bjob%5D-8f058b0346db2aff.js" defer=""></script><script src="/dashboard/_next/static/3xvBA5BSGbiQ87tVmfbpY/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/3xvBA5BSGbiQ87tVmfbpY/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]/[job]","query":{},"buildId":"3xvBA5BSGbiQ87tVmfbpY","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-66f23594d38c7f16.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-3d59f75e2ccf9321.js" defer=""></script><script src="/dashboard/_next/static/chunks/6130-2be46d70a38f1e82.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-d67458fcb1386c92.js" defer=""></script><script src="/dashboard/_next/static/chunks/7411-b15471acd2cba716.js" defer=""></script><script src="/dashboard/_next/static/chunks/1272-1ef0bf0237faccdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/7359-c8d04e06886000b3.js" defer=""></script><script src="/dashboard/_next/static/chunks/6212-7bd06f60ba693125.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-01359c57e018caa4.js" defer=""></script><script src="/dashboard/_next/static/chunks/3850-ff4a9a69d978632b.js" defer=""></script><script src="/dashboard/_next/static/chunks/8969-66237729cdf9749e.js" defer=""></script><script src="/dashboard/_next/static/chunks/6990-f6818c84ed8f1c86.js" defer=""></script><script src="/dashboard/_next/static/chunks/6135-4b4d5e824b7f9d3c.js" defer=""></script><script src="/dashboard/_next/static/chunks/1121-d0782b9251f0fcd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/6601-06114c982db410b6.js" defer=""></script><script src="/dashboard/_next/static/chunks/3015-7e0e8f06bb2f881c.js" defer=""></script><script src="/dashboard/_next/static/chunks/6856-5fdc9b851a18acdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/1871-49141c317f3a9020.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D-477555ab7c0b13d8.js" defer=""></script><script src="/dashboard/_next/static/pbgtEUoCUdmJyLHjgln5A/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/pbgtEUoCUdmJyLHjgln5A/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]","query":{},"buildId":"pbgtEUoCUdmJyLHjgln5A","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-3c431f6c9086e487.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-3d59f75e2ccf9321.js" defer=""></script><script src="/dashboard/_next/static/chunks/6130-2be46d70a38f1e82.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-d67458fcb1386c92.js" defer=""></script><script src="/dashboard/_next/static/chunks/7411-b15471acd2cba716.js" defer=""></script><script src="/dashboard/_next/static/chunks/1272-1ef0bf0237faccdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/7359-c8d04e06886000b3.js" defer=""></script><script src="/dashboard/_next/static/chunks/6212-7bd06f60ba693125.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-01359c57e018caa4.js" defer=""></script><script src="/dashboard/_next/static/chunks/3850-ff4a9a69d978632b.js" defer=""></script><script src="/dashboard/_next/static/chunks/8969-66237729cdf9749e.js" defer=""></script><script src="/dashboard/_next/static/chunks/6990-f6818c84ed8f1c86.js" defer=""></script><script src="/dashboard/_next/static/chunks/6135-4b4d5e824b7f9d3c.js" defer=""></script><script src="/dashboard/_next/static/chunks/1121-d0782b9251f0fcd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/6601-06114c982db410b6.js" defer=""></script><script src="/dashboard/_next/static/chunks/3015-7e0e8f06bb2f881c.js" defer=""></script><script src="/dashboard/_next/static/chunks/6856-5fdc9b851a18acdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/1871-49141c317f3a9020.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D-477555ab7c0b13d8.js" defer=""></script><script src="/dashboard/_next/static/3xvBA5BSGbiQ87tVmfbpY/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/3xvBA5BSGbiQ87tVmfbpY/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]","query":{},"buildId":"3xvBA5BSGbiQ87tVmfbpY","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-66f23594d38c7f16.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters-2f61f65487f6d8ff.js" defer=""></script><script src="/dashboard/_next/static/pbgtEUoCUdmJyLHjgln5A/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/pbgtEUoCUdmJyLHjgln5A/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters","query":{},"buildId":"pbgtEUoCUdmJyLHjgln5A","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-3c431f6c9086e487.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters-2f61f65487f6d8ff.js" defer=""></script><script src="/dashboard/_next/static/3xvBA5BSGbiQ87tVmfbpY/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/3xvBA5BSGbiQ87tVmfbpY/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters","query":{},"buildId":"3xvBA5BSGbiQ87tVmfbpY","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-66f23594d38c7f16.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/config-dfb9bf07b13045f4.js" defer=""></script><script src="/dashboard/_next/static/pbgtEUoCUdmJyLHjgln5A/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/pbgtEUoCUdmJyLHjgln5A/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/config","query":{},"buildId":"pbgtEUoCUdmJyLHjgln5A","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-3c431f6c9086e487.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/config-dfb9bf07b13045f4.js" defer=""></script><script src="/dashboard/_next/static/3xvBA5BSGbiQ87tVmfbpY/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/3xvBA5BSGbiQ87tVmfbpY/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/config","query":{},"buildId":"3xvBA5BSGbiQ87tVmfbpY","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-66f23594d38c7f16.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/index-444f1804401f04ea.js" defer=""></script><script src="/dashboard/_next/static/pbgtEUoCUdmJyLHjgln5A/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/pbgtEUoCUdmJyLHjgln5A/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"pbgtEUoCUdmJyLHjgln5A","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-3c431f6c9086e487.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/index-444f1804401f04ea.js" defer=""></script><script src="/dashboard/_next/static/3xvBA5BSGbiQ87tVmfbpY/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/3xvBA5BSGbiQ87tVmfbpY/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"3xvBA5BSGbiQ87tVmfbpY","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-66f23594d38c7f16.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/infra/%5Bcontext%5D-553b8b5cb65e100b.js" defer=""></script><script src="/dashboard/_next/static/pbgtEUoCUdmJyLHjgln5A/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/pbgtEUoCUdmJyLHjgln5A/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/infra/[context]","query":{},"buildId":"pbgtEUoCUdmJyLHjgln5A","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-3c431f6c9086e487.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/infra/%5Bcontext%5D-553b8b5cb65e100b.js" defer=""></script><script src="/dashboard/_next/static/3xvBA5BSGbiQ87tVmfbpY/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/3xvBA5BSGbiQ87tVmfbpY/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/infra/[context]","query":{},"buildId":"3xvBA5BSGbiQ87tVmfbpY","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-66f23594d38c7f16.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/infra-910a22500c50596f.js" defer=""></script><script src="/dashboard/_next/static/pbgtEUoCUdmJyLHjgln5A/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/pbgtEUoCUdmJyLHjgln5A/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/infra","query":{},"buildId":"pbgtEUoCUdmJyLHjgln5A","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-3c431f6c9086e487.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/infra-910a22500c50596f.js" defer=""></script><script src="/dashboard/_next/static/3xvBA5BSGbiQ87tVmfbpY/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/3xvBA5BSGbiQ87tVmfbpY/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/infra","query":{},"buildId":"3xvBA5BSGbiQ87tVmfbpY","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-66f23594d38c7f16.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-3d59f75e2ccf9321.js" defer=""></script><script src="/dashboard/_next/static/chunks/6130-2be46d70a38f1e82.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-d67458fcb1386c92.js" defer=""></script><script src="/dashboard/_next/static/chunks/7411-b15471acd2cba716.js" defer=""></script><script src="/dashboard/_next/static/chunks/1272-1ef0bf0237faccdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/6212-7bd06f60ba693125.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-01359c57e018caa4.js" defer=""></script><script src="/dashboard/_next/static/chunks/3850-ff4a9a69d978632b.js" defer=""></script><script src="/dashboard/_next/static/chunks/8969-66237729cdf9749e.js" defer=""></script><script src="/dashboard/_next/static/chunks/6135-4b4d5e824b7f9d3c.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs/%5Bjob%5D-e5c9ce6a24fc0de4.js" defer=""></script><script src="/dashboard/_next/static/pbgtEUoCUdmJyLHjgln5A/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/pbgtEUoCUdmJyLHjgln5A/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs/[job]","query":{},"buildId":"pbgtEUoCUdmJyLHjgln5A","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-3c431f6c9086e487.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-3d59f75e2ccf9321.js" defer=""></script><script src="/dashboard/_next/static/chunks/6130-2be46d70a38f1e82.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-d67458fcb1386c92.js" defer=""></script><script src="/dashboard/_next/static/chunks/7411-b15471acd2cba716.js" defer=""></script><script src="/dashboard/_next/static/chunks/1272-1ef0bf0237faccdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/6212-7bd06f60ba693125.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-01359c57e018caa4.js" defer=""></script><script src="/dashboard/_next/static/chunks/3850-ff4a9a69d978632b.js" defer=""></script><script src="/dashboard/_next/static/chunks/8969-66237729cdf9749e.js" defer=""></script><script src="/dashboard/_next/static/chunks/6135-4b4d5e824b7f9d3c.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs/%5Bjob%5D-e5c9ce6a24fc0de4.js" defer=""></script><script src="/dashboard/_next/static/3xvBA5BSGbiQ87tVmfbpY/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/3xvBA5BSGbiQ87tVmfbpY/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs/[job]","query":{},"buildId":"3xvBA5BSGbiQ87tVmfbpY","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-66f23594d38c7f16.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-3d59f75e2ccf9321.js" defer=""></script><script src="/dashboard/_next/static/chunks/6130-2be46d70a38f1e82.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-d67458fcb1386c92.js" defer=""></script><script src="/dashboard/_next/static/chunks/1272-1ef0bf0237faccdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/6212-7bd06f60ba693125.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-01359c57e018caa4.js" defer=""></script><script src="/dashboard/_next/static/chunks/3850-ff4a9a69d978632b.js" defer=""></script><script src="/dashboard/_next/static/chunks/8969-66237729cdf9749e.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs/pools/%5Bpool%5D-bc979970c247d8f3.js" defer=""></script><script src="/dashboard/_next/static/pbgtEUoCUdmJyLHjgln5A/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/pbgtEUoCUdmJyLHjgln5A/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs/pools/[pool]","query":{},"buildId":"pbgtEUoCUdmJyLHjgln5A","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-3c431f6c9086e487.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-3d59f75e2ccf9321.js" defer=""></script><script src="/dashboard/_next/static/chunks/6130-2be46d70a38f1e82.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-d67458fcb1386c92.js" defer=""></script><script src="/dashboard/_next/static/chunks/1272-1ef0bf0237faccdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/6212-7bd06f60ba693125.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-01359c57e018caa4.js" defer=""></script><script src="/dashboard/_next/static/chunks/3850-ff4a9a69d978632b.js" defer=""></script><script src="/dashboard/_next/static/chunks/8969-66237729cdf9749e.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs/pools/%5Bpool%5D-bc979970c247d8f3.js" defer=""></script><script src="/dashboard/_next/static/3xvBA5BSGbiQ87tVmfbpY/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/3xvBA5BSGbiQ87tVmfbpY/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs/pools/[pool]","query":{},"buildId":"3xvBA5BSGbiQ87tVmfbpY","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-66f23594d38c7f16.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs-a35a9dc3c5ccd657.js" defer=""></script><script src="/dashboard/_next/static/pbgtEUoCUdmJyLHjgln5A/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/pbgtEUoCUdmJyLHjgln5A/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs","query":{},"buildId":"pbgtEUoCUdmJyLHjgln5A","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-3c431f6c9086e487.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs-a35a9dc3c5ccd657.js" defer=""></script><script src="/dashboard/_next/static/3xvBA5BSGbiQ87tVmfbpY/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/3xvBA5BSGbiQ87tVmfbpY/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs","query":{},"buildId":"3xvBA5BSGbiQ87tVmfbpY","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-66f23594d38c7f16.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/users-98d2ed979084162a.js" defer=""></script><script src="/dashboard/_next/static/pbgtEUoCUdmJyLHjgln5A/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/pbgtEUoCUdmJyLHjgln5A/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/users","query":{},"buildId":"pbgtEUoCUdmJyLHjgln5A","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-3c431f6c9086e487.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/users-98d2ed979084162a.js" defer=""></script><script src="/dashboard/_next/static/3xvBA5BSGbiQ87tVmfbpY/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/3xvBA5BSGbiQ87tVmfbpY/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/users","query":{},"buildId":"3xvBA5BSGbiQ87tVmfbpY","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>