@profoundlogic/coderflow-server 0.5.0 → 0.5.1

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.
Files changed (185) hide show
  1. package/README.md +15 -163
  2. package/dist/README.md +15 -163
  3. package/dist/base-image/agent-wrapper.sh +1 -1
  4. package/dist/capture-screenshot.mjs +34 -0
  5. package/dist/coder-server.js +1 -1
  6. package/dist/config/cli-models.json +4 -3
  7. package/dist/config.js +1 -1
  8. package/dist/lib/agent-keepalive.js +1 -1
  9. package/dist/lib/agent-models.js +1 -1
  10. package/dist/lib/api-keys.js +1 -1
  11. package/dist/lib/apiKeys.js +1 -1
  12. package/dist/lib/app-server-ports.js +1 -1
  13. package/dist/lib/auto-judge.js +1 -1
  14. package/dist/lib/automation-service.js +1 -1
  15. package/dist/lib/basic-auth.js +1 -1
  16. package/dist/lib/bindings.js +1 -1
  17. package/dist/lib/build-history.js +1 -1
  18. package/dist/lib/build-output-service.js +1 -1
  19. package/dist/lib/build-scheduler.js +1 -1
  20. package/dist/lib/build-service.js +1 -1
  21. package/dist/lib/ca-certificates.js +1 -1
  22. package/dist/lib/claude-oauth-refresh.js +1 -1
  23. package/dist/lib/cli/build.js +1 -1
  24. package/dist/lib/cli/cleanup-users.js +1 -0
  25. package/dist/lib/cli/config-command.js +1 -1
  26. package/dist/lib/cli/config.js +1 -1
  27. package/dist/lib/cli/create-user.js +1 -1
  28. package/dist/lib/cli/grant-admin.js +1 -0
  29. package/dist/lib/cli/init.js +1 -1
  30. package/dist/lib/cli/jira.js +1 -1
  31. package/dist/lib/cli/license.js +1 -1
  32. package/dist/lib/cli/list-roles.js +1 -0
  33. package/dist/lib/cli/list-users.js +1 -0
  34. package/dist/lib/cli/server-manager.js +1 -1
  35. package/dist/lib/cli/set-password.js +1 -0
  36. package/dist/lib/config-migration.js +1 -1
  37. package/dist/lib/container-credential-sync.js +1 -1
  38. package/dist/lib/container-tokens.js +1 -1
  39. package/dist/lib/data-dir.js +1 -1
  40. package/dist/lib/deployment-history.js +1 -1
  41. package/dist/lib/deployment-service.js +1 -1
  42. package/dist/lib/docker-utils.js +1 -1
  43. package/dist/lib/email.js +1 -1
  44. package/dist/lib/emailTemplates.js +1 -1
  45. package/dist/lib/entitlement.js +1 -1
  46. package/dist/lib/external-connections.js +1 -1
  47. package/dist/lib/fetch-utils.js +1 -1
  48. package/dist/lib/git-commit-details-route.js +1 -1
  49. package/dist/lib/git-history-diff-guardrails.js +1 -1
  50. package/dist/lib/git-provider-service.js +1 -1
  51. package/dist/lib/git-provider-setup/github-setup-handler.js +1 -1
  52. package/dist/lib/git-provider-setup/index.js +1 -1
  53. package/dist/lib/git-provider-setup/setup-factory.js +1 -1
  54. package/dist/lib/git-provider-setup/setup-interface.js +1 -1
  55. package/dist/lib/git-providers/azure-devops-provider.js +1 -1
  56. package/dist/lib/git-providers/github-app-provider.js +1 -1
  57. package/dist/lib/git-providers/index.js +1 -1
  58. package/dist/lib/git-providers/provider-factory.js +1 -1
  59. package/dist/lib/git-providers/provider-interface.js +1 -1
  60. package/dist/lib/github-urls.js +1 -1
  61. package/dist/lib/group-objective-linking.js +1 -1
  62. package/dist/lib/ibmi-sync.js +1 -0
  63. package/dist/lib/jira-client.js +1 -1
  64. package/dist/lib/judge-blinding.js +1 -1
  65. package/dist/lib/logger.js +1 -1
  66. package/dist/lib/migration-to-scoped-rbac.js +1 -1
  67. package/dist/lib/model-fetcher.js +1 -1
  68. package/dist/lib/notifications.js +1 -1
  69. package/dist/lib/objective-context.js +1 -1
  70. package/dist/lib/oidc-auth.js +1 -1
  71. package/dist/lib/oidc-device-flow.js +1 -1
  72. package/dist/lib/passwordTokens.js +1 -1
  73. package/dist/lib/permission-resolver.js +1 -1
  74. package/dist/lib/pin-cascade.js +1 -1
  75. package/dist/lib/provider-accounts.js +1 -1
  76. package/dist/lib/provider-oauth.js +1 -1
  77. package/dist/lib/provider-profile.js +1 -1
  78. package/dist/lib/provider-token-refresh.js +1 -1
  79. package/dist/lib/rbac-user-state.js +1 -1
  80. package/dist/lib/request-url.js +1 -1
  81. package/dist/lib/rewind.js +1 -1
  82. package/dist/lib/role-definitions.js +1 -1
  83. package/dist/lib/roles.js +1 -1
  84. package/dist/lib/secrets.js +1 -1
  85. package/dist/lib/setup-repo-git-auth.js +1 -1
  86. package/dist/lib/state-capture.js +1 -1
  87. package/dist/lib/static-files.js +1 -1
  88. package/dist/lib/task-name-format.js +1 -1
  89. package/dist/lib/task-name-generator.js +1 -1
  90. package/dist/lib/task-source-metadata.js +1 -1
  91. package/dist/lib/teams.js +1 -1
  92. package/dist/lib/user-git-oauth.js +1 -1
  93. package/dist/lib/user-git-tokens.js +1 -1
  94. package/dist/lib/users.js +1 -1
  95. package/dist/middleware/requireAuth.js +1 -1
  96. package/dist/middleware/requireInit.js +1 -1
  97. package/dist/middleware/requirePermission.js +1 -1
  98. package/dist/package.json +1 -1
  99. package/dist/playwright.config.js +1 -1
  100. package/dist/routes/apiKeys.js +1 -1
  101. package/dist/routes/auth-oidc.js +1 -1
  102. package/dist/routes/auth.js +1 -1
  103. package/dist/routes/automations.js +1 -1
  104. package/dist/routes/bindings.js +1 -1
  105. package/dist/routes/build.js +1 -1
  106. package/dist/routes/containers.js +1 -1
  107. package/dist/routes/deploy-task.js +1 -1
  108. package/dist/routes/environment-management.js +1 -1
  109. package/dist/routes/environments.js +1 -1
  110. package/dist/routes/external-skills.js +1 -1
  111. package/dist/routes/git-credentials.js +1 -1
  112. package/dist/routes/git-oauth.js +1 -1
  113. package/dist/routes/git-provider-setup.js +1 -1
  114. package/dist/routes/health.js +1 -1
  115. package/dist/routes/jira.js +1 -1
  116. package/dist/routes/objective-management.js +1 -1
  117. package/dist/routes/password.js +1 -1
  118. package/dist/routes/prompt.js +1 -1
  119. package/dist/routes/provider-auth.js +1 -1
  120. package/dist/routes/qa.js +1 -1
  121. package/dist/routes/roles.js +1 -1
  122. package/dist/routes/settings.js +1 -1
  123. package/dist/routes/skill-management.js +1 -1
  124. package/dist/routes/skills.js +1 -1
  125. package/dist/routes/tasks.js +1 -1
  126. package/dist/routes/teams.js +1 -1
  127. package/dist/routes/templates.js +1 -1
  128. package/dist/routes/test-task.js +1 -1
  129. package/dist/routes/test.js +1 -1
  130. package/dist/routes/users.js +1 -1
  131. package/dist/routes/visualizations.js +1 -1
  132. package/dist/scripts/create-user.js +1 -1
  133. package/dist/scripts/migrate-config-to-data-dir.js +1 -1
  134. package/dist/scripts/sync_to_ibmi.sh +204 -0
  135. package/dist/start.js +1 -1
  136. package/dist/web-ui/public/activity-detail-modal.js +1 -1
  137. package/dist/web-ui/public/activity-feed.js +1 -1
  138. package/dist/web-ui/public/activity-formatters.js +1 -1
  139. package/dist/web-ui/public/agent-event-parser.js +1 -1
  140. package/dist/web-ui/public/app.js +1 -1
  141. package/dist/web-ui/public/approve-dialog.js +1 -1
  142. package/dist/web-ui/public/automation-links.js +1 -1
  143. package/dist/web-ui/public/automation-schedule.js +1 -1
  144. package/dist/web-ui/public/comments-widget.js +1 -1
  145. package/dist/web-ui/public/diff-utils.js +1 -1
  146. package/dist/web-ui/public/docs/admin/environments.md +1 -0
  147. package/dist/web-ui/public/docs/tasks/approval-and-deployment.md +36 -0
  148. package/dist/web-ui/public/environments.html +1 -1
  149. package/dist/web-ui/public/environments.js +1 -1
  150. package/dist/web-ui/public/feedback-widget.js +1 -1
  151. package/dist/web-ui/public/git-history-lazy-utils.js +1 -1
  152. package/dist/web-ui/public/git-history.js +1 -1
  153. package/dist/web-ui/public/git-status.js +1 -1
  154. package/dist/web-ui/public/index.html +2 -2
  155. package/dist/web-ui/public/index.js +1 -1
  156. package/dist/web-ui/public/login.js +1 -1
  157. package/dist/web-ui/public/markdown-editor.js +1 -1
  158. package/dist/web-ui/public/markdown-file-editor.js +1 -1
  159. package/dist/web-ui/public/modal-maximize.js +1 -1
  160. package/dist/web-ui/public/notifications.js +1 -1
  161. package/dist/web-ui/public/pr-dialog.js +1 -1
  162. package/dist/web-ui/public/roles.html +3 -2
  163. package/dist/web-ui/public/roles.js +1 -1
  164. package/dist/web-ui/public/server-health.js +1 -1
  165. package/dist/web-ui/public/settings.css +3 -2
  166. package/dist/web-ui/public/settings.html +0 -1
  167. package/dist/web-ui/public/settings.js +1 -1
  168. package/dist/web-ui/public/setup-password.js +1 -1
  169. package/dist/web-ui/public/skills.js +1 -1
  170. package/dist/web-ui/public/sse-client.js +1 -1
  171. package/dist/web-ui/public/sse-shared-worker.js +1 -1
  172. package/dist/web-ui/public/styles.css +39 -12
  173. package/dist/web-ui/public/task.html +56 -1
  174. package/dist/web-ui/public/task.js +1 -1
  175. package/dist/web-ui/public/teams.html +76 -81
  176. package/dist/web-ui/public/teams.js +1 -1
  177. package/dist/web-ui/public/terminal.js +1 -1
  178. package/dist/web-ui/public/theme.js +1 -1
  179. package/dist/web-ui/public/users.html +12 -11
  180. package/dist/web-ui/public/users.js +1 -1
  181. package/dist/web-ui/public/variant-grouping.js +1 -1
  182. package/package.json +1 -1
  183. package/dist/lib/cli/migrate-rbac.js +0 -1
  184. package/dist/lib/scoped-rbac-migration-runner.js +0 -1
  185. package/dist/scripts/migrate-to-scoped-rbac.js +0 -2
@@ -145,7 +145,6 @@
145
145
  <tr>
146
146
  <th>Name</th>
147
147
  <th>Members</th>
148
- <th>Managers</th>
149
148
  <th>Actions</th>
150
149
  </tr>
151
150
  </thead>
@@ -159,7 +158,7 @@
159
158
  </section>
160
159
  </main>
161
160
 
162
- <!-- Create/Edit Team Modal -->
161
+ <!-- Create/Edit Team Details Modal -->
163
162
  <div id="team-modal" class="modal" hidden>
164
163
  <div class="modal-overlay"></div>
165
164
  <div class="modal-content" style="max-width: 640px;">
@@ -167,97 +166,93 @@
167
166
  <h2 id="team-modal-title">Create Team</h2>
168
167
  <button class="modal-close" id="close-team-modal">&times;</button>
169
168
  </div>
170
- <!-- Tab bar (hidden when creating) -->
171
- <div id="team-modal-tabs" hidden style="display: flex; gap: 0; border-bottom: 2px solid var(--color-border); margin: 0 1.5rem;">
172
- <button type="button" class="modal-tab-btn active" data-tab="details" style="padding: 0.625rem 1.25rem; background: none; border: none; border-bottom: 2px solid transparent; cursor: pointer; font-size: 0.9rem; margin-bottom: -2px; color: var(--color-text-secondary);">Details</button>
173
- <button type="button" class="modal-tab-btn" data-tab="bindings" style="padding: 0.625rem 1.25rem; background: none; border: none; border-bottom: 2px solid transparent; cursor: pointer; font-size: 0.9rem; margin-bottom: -2px; color: var(--color-text-secondary);">Access Bindings</button>
174
- </div>
175
169
  <div class="modal-body">
170
+ <div class="modal-section">
171
+ <label for="team-name">Name *</label>
172
+ <input type="text" id="team-name" class="form-input" required placeholder="e.g. Frontend Team">
173
+ </div>
174
+ <div class="modal-section">
175
+ <label for="team-description">Description</label>
176
+ <input type="text" id="team-description" class="form-input" placeholder="Optional description">
177
+ </div>
176
178
 
177
- <!-- Details Tab -->
178
- <div id="team-tab-details">
179
- <div class="modal-section">
180
- <label for="team-name">Name *</label>
181
- <input type="text" id="team-name" class="form-input" required placeholder="e.g. Frontend Team">
182
- </div>
183
- <div class="modal-section">
184
- <label for="team-description">Description</label>
185
- <input type="text" id="team-description" class="form-input" placeholder="Optional description">
186
- </div>
179
+ <div id="team-form-error" class="login-error" hidden></div>
187
180
 
188
- <!-- Members section (shown when editing) -->
189
- <div id="members-section" hidden>
190
- <div class="modal-section">
191
- <label>Members</label>
192
- <div id="members-list" style="margin-bottom: 0.5rem;"></div>
193
- <div id="add-member-row" style="display: flex; gap: 0.5rem; margin-top: 0.5rem;">
194
- <select id="add-member-select" class="form-input" style="flex: 1; font-size: 0.875rem;">
195
- <option value="">Add a member…</option>
196
- </select>
197
- <button type="button" class="btn-secondary btn-small" id="add-member-btn">Add</button>
198
- </div>
199
- </div>
181
+ <div id="team-modal-footer" style="display: flex; gap: 0.75rem; justify-content: flex-end; margin-top: 1.5rem; margin-bottom: 0.5rem;">
182
+ <button class="btn-ghost" id="cancel-team">Cancel</button>
183
+ <button class="btn-primary" id="save-team">Save</button>
184
+ </div>
200
185
 
201
- <!-- Managers section (admin only) -->
202
- <div id="managers-section" class="modal-section" hidden>
203
- <label>Managers <span style="font-weight: normal; font-size: 0.8em; color: var(--color-text-secondary);">(admin only)</span></label>
204
- <div id="managers-list" style="margin-bottom: 0.5rem;"></div>
205
- <div id="add-manager-row" style="display: flex; gap: 0.5rem; margin-top: 0.5rem;">
206
- <select id="add-manager-select" class="form-input" style="flex: 1; font-size: 0.875rem;">
207
- <option value="">Promote a member to manager…</option>
208
- </select>
209
- <button type="button" class="btn-secondary btn-small" id="add-manager-btn">Add</button>
210
- </div>
186
+ <!-- Members section (shown when editing) -->
187
+ <div id="members-section" hidden>
188
+ <div class="modal-section">
189
+ <label>Members</label>
190
+ <div id="members-list" style="margin-bottom: 0.5rem;"></div>
191
+ <div id="add-member-row" style="display: flex; gap: 0.5rem; margin-top: 0.5rem;">
192
+ <select id="add-member-select" class="form-input" style="flex: 1; font-size: 0.875rem;">
193
+ <option value="">Add a member…</option>
194
+ </select>
195
+ <button type="button" class="btn-secondary btn-small" id="add-member-btn">Add</button>
211
196
  </div>
212
197
  </div>
213
-
214
- <div id="team-form-error" class="login-error" hidden></div>
215
198
  </div>
199
+ </div>
200
+ </div>
201
+ </div>
216
202
 
217
- <!-- Bindings Tab -->
218
- <div id="team-tab-bindings" hidden>
219
- <div id="bindings-loading" class="loading" hidden>Loading bindings…</div>
220
- <div id="bindings-empty" hidden style="padding: 1.5rem 0; text-align: center; color: var(--color-text-secondary);">
221
- No environment access bindings for this team yet.
222
- </div>
223
- <div id="bindings-list-container">
224
- <table class="users-table" id="bindings-table">
225
- <thead>
226
- <tr>
227
- <th>Environment</th>
228
- <th>Role</th>
229
- <th>Actions</th>
230
- </tr>
231
- </thead>
232
- <tbody id="bindings-table-body"></tbody>
233
- </table>
234
- </div>
235
- <div id="bindings-actions" style="margin-top: 1rem;">
236
- <button type="button" class="btn-secondary btn-small" id="add-binding-btn" hidden>+ Add Binding</button>
237
- </div>
238
- <!-- Inline add-binding form -->
239
- <div id="add-binding-form" hidden style="margin-top: 0.75rem; padding: 1rem; border: 1px solid var(--color-border); border-radius: 8px; background: var(--color-surface-elevated);">
240
- <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-bottom: 0.75rem;">
241
- <div>
242
- <label style="font-size: 0.8rem; margin-bottom: 0.25rem; display: block;">Environment</label>
243
- <select id="binding-environment" class="form-input" style="font-size: 0.875rem;"></select>
244
- </div>
245
- <div>
246
- <label style="font-size: 0.8rem; margin-bottom: 0.25rem; display: block;">Role</label>
247
- <select id="binding-role" class="form-input" style="font-size: 0.875rem;"></select>
248
- </div>
203
+ <!-- Access Bindings Modal -->
204
+ <div id="bindings-modal" class="modal" hidden>
205
+ <div class="modal-overlay"></div>
206
+ <div class="modal-content" style="max-width: 640px;">
207
+ <div class="modal-header">
208
+ <h2 id="bindings-modal-title">Access Bindings</h2>
209
+ <button class="modal-close" id="close-bindings-modal">&times;</button>
210
+ </div>
211
+ <div class="modal-body">
212
+ <div id="bindings-loading" class="loading" hidden>Loading bindings…</div>
213
+ <div id="bindings-empty" hidden style="padding: 1.5rem 0; text-align: center; color: var(--color-text-secondary);">
214
+ No access bindings for this team yet.
215
+ </div>
216
+ <div id="bindings-list-container">
217
+ <table class="users-table" id="bindings-table">
218
+ <thead>
219
+ <tr>
220
+ <th>Resource</th>
221
+ <th>Role</th>
222
+ <th>Actions</th>
223
+ </tr>
224
+ </thead>
225
+ <tbody id="bindings-table-body"></tbody>
226
+ </table>
227
+ </div>
228
+ <div id="bindings-actions" style="margin-top: 1rem;">
229
+ <button type="button" class="btn-secondary btn-small" id="add-binding-btn" hidden>+ Add Binding</button>
230
+ </div>
231
+ <!-- Inline add-binding form -->
232
+ <div id="add-binding-form" hidden style="margin-top: 0.75rem; padding: 1rem; border: 1px solid var(--color-border); border-radius: 8px; background: var(--color-surface-elevated);">
233
+ <div style="display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 0.75rem; margin-bottom: 0.75rem;">
234
+ <div>
235
+ <label style="font-size: 0.8rem; margin-bottom: 0.25rem; display: block;">Resource Type</label>
236
+ <select id="binding-resource-type" class="form-input" style="font-size: 0.875rem;">
237
+ <option value="environment">Environment</option>
238
+ <option value="team">Team</option>
239
+ <option value="server">Server</option>
240
+ </select>
249
241
  </div>
250
- <div style="display: flex; gap: 0.5rem;">
251
- <button type="button" class="btn-primary btn-small" id="save-binding-btn">Add Binding</button>
252
- <button type="button" class="btn-ghost btn-small" id="cancel-binding-btn">Cancel</button>
242
+ <div id="binding-resource-container">
243
+ <label style="font-size: 0.8rem; margin-bottom: 0.25rem; display: block;">Resource</label>
244
+ <select id="binding-resource" class="form-input" style="font-size: 0.875rem;"></select>
253
245
  </div>
246
+ <div>
247
+ <label style="font-size: 0.8rem; margin-bottom: 0.25rem; display: block;">Role</label>
248
+ <select id="binding-role" class="form-input" style="font-size: 0.875rem;"></select>
249
+ </div>
250
+ </div>
251
+ <div style="display: flex; gap: 0.5rem;">
252
+ <button type="button" class="btn-primary btn-small" id="save-binding-btn">Add Binding</button>
253
+ <button type="button" class="btn-ghost btn-small" id="cancel-binding-btn">Cancel</button>
254
254
  </div>
255
255
  </div>
256
-
257
- </div>
258
- <div class="modal-footer" id="team-modal-footer">
259
- <button class="btn-ghost" id="cancel-team">Cancel</button>
260
- <button class="btn-primary" id="save-team">Save Team</button>
261
256
  </div>
262
257
  </div>
263
258
  </div>
@@ -1 +1 @@
1
- const _0x4a1b45=_0x1ea7;(function(_0x4e1644,_0x46cfc2){const _0x351ed2=_0x1ea7,_0x550446=_0x4e1644();while(!![]){try{const _0x43c092=parseInt(_0x351ed2(0x1bb))/0x1+-parseInt(_0x351ed2(0x1f0))/0x2*(-parseInt(_0x351ed2(0x209))/0x3)+parseInt(_0x351ed2(0x1e5))/0x4+-parseInt(_0x351ed2(0x233))/0x5+parseInt(_0x351ed2(0x1c6))/0x6+parseInt(_0x351ed2(0x1f5))/0x7*(parseInt(_0x351ed2(0x23a))/0x8)+-parseInt(_0x351ed2(0x227))/0x9*(parseInt(_0x351ed2(0x1de))/0xa);if(_0x43c092===_0x46cfc2)break;else _0x550446['push'](_0x550446['shift']());}catch(_0x4005b6){_0x550446['push'](_0x550446['shift']());}}}(_0x3799,0x25720));import{API,Utils,initializeAdminMenu}from'./app.js';import{initTheme,mountThemeToggle}from'./theme.js';const state={'teams':[],'users':[],'roles':[],'environments':[],'teamBindings':[],'currentUser':null,'editingTeamId':null,'deletingTeamId':null,'activeTab':_0x4a1b45(0x19f)};document[_0x4a1b45(0x1f6)](_0x4a1b45(0x23f),async()=>{const _0x15aef8=_0x4a1b45;initTheme(),mountThemeToggle();try{state['currentUser']=await API['getCurrentUser']();}catch{window[_0x15aef8(0x191)][_0x15aef8(0x1e4)]=_0x15aef8(0x1f7);return;}await initializeAdminMenu(state['currentUser']),state[_0x15aef8(0x1fb)][_0x15aef8(0x211)]&&(document['getElementById'](_0x15aef8(0x22f))['hidden']=![]),bindEventListeners(),await Promise[_0x15aef8(0x1d1)]([loadTeams(),loadUsers(),loadRoles(),loadEnvironments()]),renderTeams();});async function loadTeams(){const _0x1f33cf=_0x4a1b45,_0x33ab41=document[_0x1f33cf(0x22b)](_0x1f33cf(0x1a7)),_0x5c9697=document[_0x1f33cf(0x22b)](_0x1f33cf(0x240)),_0x49c54f=document[_0x1f33cf(0x22b)](_0x1f33cf(0x19e));try{_0x33ab41[_0x1f33cf(0x1a2)]=![],_0x5c9697[_0x1f33cf(0x1a2)]=!![],_0x49c54f[_0x1f33cf(0x1a2)]=!![];const {teams:_0x298c61}=await API[_0x1f33cf(0x1ed)]();state[_0x1f33cf(0x223)]=_0x298c61||[],renderTeams(),_0x33ab41[_0x1f33cf(0x1a2)]=!![],_0x49c54f[_0x1f33cf(0x1a2)]=![];}catch(_0x31ff9f){_0x33ab41[_0x1f33cf(0x1a2)]=!![],_0x5c9697['hidden']=![],document['getElementById'](_0x1f33cf(0x1d4))[_0x1f33cf(0x21f)]=_0x31ff9f[_0x1f33cf(0x19b)];}}async function loadUsers(){const _0x5c6512=_0x4a1b45;try{const {users:_0x8677df}=await API[_0x5c6512(0x1fd)]();state[_0x5c6512(0x1b2)]=_0x8677df||[];}catch{state[_0x5c6512(0x1b2)]=[];}}async function loadRoles(){const _0x19b1e3=_0x4a1b45;try{const {roles:_0x340e34}=await API[_0x19b1e3(0x242)]();state['roles']=_0x340e34||[];}catch{state['roles']=[];}}async function loadEnvironments(){const _0x3ade2e=_0x4a1b45;try{const _0x2fe86f=await API[_0x3ade2e(0x236)]();state[_0x3ade2e(0x231)]=_0x2fe86f[_0x3ade2e(0x231)]||[];}catch{state[_0x3ade2e(0x231)]=[];}}function renderTeams(){const _0xb8b801=_0x4a1b45,_0x4a1452=document[_0xb8b801(0x22b)](_0xb8b801(0x1c7)),_0x98b7bc=document[_0xb8b801(0x22b)](_0xb8b801(0x1ff));if(!_0x4a1452)return;_0x98b7bc&&(_0x98b7bc['textContent']=state[_0xb8b801(0x223)][_0xb8b801(0x1c2)]+_0xb8b801(0x1dc)+(state['teams'][_0xb8b801(0x1c2)]===0x1?'':'s'));if(state[_0xb8b801(0x223)]['length']===0x0){_0x4a1452['innerHTML']=_0xb8b801(0x22c)+(state[_0xb8b801(0x1fb)]?.[_0xb8b801(0x211)]?_0xb8b801(0x1b0):'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</td>\x0a\x20\x20\x20\x20\x20\x20</tr>';return;}const _0x537c43=state[_0xb8b801(0x1fb)]?.[_0xb8b801(0x211)];_0x4a1452[_0xb8b801(0x222)]=state['teams'][_0xb8b801(0x23b)](_0x1a96c2=>{const _0x22c5d=_0xb8b801,_0x545b9c=(_0x1a96c2[_0x22c5d(0x1cd)]||[])['includes'](state[_0x22c5d(0x1fb)]?.['id']),_0x4f9724=_0x537c43||_0x545b9c,_0x4ee734=(_0x1a96c2['managers']||[])['map'](_0x2cc9e0=>{const _0x43d1d8=_0x22c5d;if(_0x1a96c2[_0x43d1d8(0x21e)]&&_0x1a96c2[_0x43d1d8(0x21e)][_0x2cc9e0])return _0x1a96c2['manager_names'][_0x2cc9e0];const _0x458e02=state['users']['find'](_0x2e242e=>_0x2e242e['id']===_0x2cc9e0);return _0x458e02?_0x458e02[_0x43d1d8(0x1c1)]||_0x458e02[_0x43d1d8(0x1c0)]:_0x2cc9e0;})['join'](',\x20')||'—',_0x21b644=(_0x1a96c2['members']||[])[_0x22c5d(0x1c2)];return _0x22c5d(0x198)+_0x1a96c2['id']+'\x27)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+Utils[_0x22c5d(0x208)](_0x1a96c2[_0x22c5d(0x1c1)])+_0x22c5d(0x21c)+(_0x1a96c2['description']?_0x22c5d(0x1e7)+Utils['escapeHtml'](_0x1a96c2[_0x22c5d(0x1b1)])+_0x22c5d(0x1e9):'')+_0x22c5d(0x1f2)+_0x21b644+_0x22c5d(0x226)+Utils[_0x22c5d(0x208)](_0x4ee734)+_0x22c5d(0x1a3)+(_0x4f9724?_0x22c5d(0x220)+_0x1a96c2['id']+_0x22c5d(0x1aa):'')+_0x22c5d(0x219)+(_0x537c43?_0x22c5d(0x1e0)+_0x1a96c2['id']+_0x22c5d(0x199):'')+_0x22c5d(0x1dd);})['join']('');}function bindEventListeners(){const _0x42c36f=_0x4a1b45;document[_0x42c36f(0x22b)](_0x42c36f(0x22f))?.['addEventListener']('click',showCreateTeamModal),document['getElementById'](_0x42c36f(0x1b6))?.['addEventListener'](_0x42c36f(0x20f),loadTeams),document['getElementById'](_0x42c36f(0x1b8))?.['addEventListener'](_0x42c36f(0x20f),hideTeamModal),document[_0x42c36f(0x22b)](_0x42c36f(0x1bd))?.[_0x42c36f(0x1f6)](_0x42c36f(0x20f),hideTeamModal),document[_0x42c36f(0x22b)]('save-team')?.['addEventListener'](_0x42c36f(0x20f),saveTeam),document[_0x42c36f(0x206)](_0x42c36f(0x1b4))?.[_0x42c36f(0x1f6)](_0x42c36f(0x20f),hideTeamModal),document['querySelectorAll'](_0x42c36f(0x1cb))[_0x42c36f(0x1f8)](_0xf385f=>{const _0x275419=_0x42c36f;_0xf385f[_0x275419(0x1f6)]('click',()=>switchTab(_0xf385f[_0x275419(0x19c)][_0x275419(0x1ae)]));}),document[_0x42c36f(0x22b)](_0x42c36f(0x203))?.[_0x42c36f(0x1f6)]('click',addMember),document['getElementById'](_0x42c36f(0x1ce))?.[_0x42c36f(0x1f6)](_0x42c36f(0x20f),addManager),document[_0x42c36f(0x22b)]('add-binding-btn')?.[_0x42c36f(0x1f6)](_0x42c36f(0x20f),()=>{const _0x37bc84=_0x42c36f;document[_0x37bc84(0x22b)](_0x37bc84(0x210))[_0x37bc84(0x1a2)]=![],document['getElementById'](_0x37bc84(0x1af))[_0x37bc84(0x1a2)]=!![],populateBindingForm();}),document[_0x42c36f(0x22b)](_0x42c36f(0x225))?.[_0x42c36f(0x1f6)]('click',()=>{const _0x33abce=_0x42c36f;document[_0x33abce(0x22b)]('add-binding-form')[_0x33abce(0x1a2)]=!![],document['getElementById'](_0x33abce(0x1af))[_0x33abce(0x1a2)]=![];}),document[_0x42c36f(0x22b)](_0x42c36f(0x218))?.['addEventListener'](_0x42c36f(0x20f),saveBinding),document[_0x42c36f(0x22b)](_0x42c36f(0x1b9))?.[_0x42c36f(0x1f6)](_0x42c36f(0x20f),hideDeleteModal),document[_0x42c36f(0x22b)]('cancel-delete-team')?.['addEventListener']('click',hideDeleteModal),document[_0x42c36f(0x22b)](_0x42c36f(0x1eb))?.[_0x42c36f(0x1f6)](_0x42c36f(0x20f),confirmDeleteTeam),document['querySelector'](_0x42c36f(0x1b7))?.['addEventListener']('click',hideDeleteModal);}function _0x3799(){const _0x2f391a=['y2XVC2uTDgvHBs1TB2rHBa','y2XVC2uTzgvSzxrLlxrLyw0TBw9KywW','y3jLyxrLqMLUzgLUzW','mtiXmtqZt2v5uu1d','rMfPBgvKihrVigrLBgv0zsb0zwfToIa','y2fUy2vSlxrLyw0','BwvTyMvYCY1SAxn0','zMXLEa','DxnLCM5HBwu','BMfTzq','BgvUz3rO','BwfUywDLCNmTC2vJDgLVBG','pg9WDgLVBIb2ywX1zt0IiJ5qCM9TB3rLigeGBwvTyMvYihrVig1HBMfNzxlIGky8l29WDgLVBJ4','BwvTyMvYCW','mtiWoduYmeDJsKHNzq','DgvHBxmTDgfIBguTyM9KEq','yMLUzgLUz3m','DhjPBq','yMLUzgLUzY1LBNzPCM9UBwvUDa','lM1VzgfSlxrHyI1IDg4','vgvHBsbJCMvHDgvK','BwfUywDLCNm','ywrKlw1HBMfNzxiTyNrU','rgvSzxrLifrLyw0','DMfYkc0Ty29SB3iTDgv4Dc1ZzwnVBMrHCNKP','ywXS','zM9UDfDLAwDODa','qMLUzgLUzYbYzw1VDMvK','DgvHBxmTzxjYB3iTBwvZC2fNzq','DgvHBs1Uyw1L','vgvHBsbUyw1LigLZihjLCxvPCMvK','pg9WDgLVBIb2ywX1zt0IiJ5bzgqGysbTzw1IzxlIGky8l29WDgLVBJ4','nJaW','zMLUza','pc90zd4kicaGicaGphrKpG','CMvTB3zLvgvHBu1HBMfNzxi','ihrLyw0','cIaGicaGicaGica8l2rPDJ4kicaGicaGica8l3rKpGOGicaGica8l3rYpG','mtbkq2fty3q','yMLUzgLUz3mTDgfIBguTyM9KEq','pgj1DhrVBIbJBgfZCZ0IyNrUlwDOB3n0igj0BI1ZBwfSBciGB25JBgLJAZ0ID2LUzg93lMrLBgv0zvrLyw0OjW','vgvHBsbKzwXLDgvK','DgvHBs1TB2rHBc10AxrSzq','zM9JDxm','AhjLzG','ntGZndbZt09RAgy','zgvSzxrLvgvHBq','pgrPDIbZDhLSzt0IzM9UDc1ZAxPLoIaWlJHLBtSGy29SB3i6ihzHCIGTlwnVBg9YlxrLEhqTC2vJB25Kyxj5ktSGBwfYz2LUlxrVCdOGmc4XnxjLBtSIpG','DgvHBujPBMrPBMDZ','pc9KAxy+','twfUywDLCIbHzgrLza','y29UzMLYBs1KzwXLDguTDgvHBq','DgvHBs1TB2rHBc1MB290zxi','z2v0vgvHBxm','ywrKvgvHBu1HBMfNzxi','DgvHBs1KzxnJCMLWDgLVBG','nZj2uLjbCwu','vgvHBsb1CgrHDgvK','cIaGicaGicaGpc90zd4kicaGicaGica8Dgq+','AgfZ','zMLSDgvY','mtiZowXUBNbNAG','ywrKrxzLBNrmAxn0zw5LCG','Bg9NAw4UAhrTBa','zM9YrwfJAa','zMLUzeLUzgv4','AM9PBG','y3vYCMvUDfvZzxi','C3vJy2vZCW','z2v0vxnLCNm','pc9VChrPB24+','DgvHBs1JB3vUDa','CMvTB3zLtwvTyMvYq2XPy2S','C2HVD1rVyxn0','pg9WDgLVBIb2ywX1zt0I','ywrKlw1LBwjLCI1IDg4','C3r5Bgu','z2v0qMLUzgLUz3m','CxvLCNLtzwXLy3rVCG','twfUywDLCIbYzw1VDMvK','zxnJyxbLshrTBa','mty2otjOt2L5Dum','q3jLyxrPBMFIGky','ywrKlw1LBwjLCI1ZzwXLy3q','CxvLCNLtzwXLy3rVCKfSBa','zgvSzxrLqMLUzgLUz0nSAwnR','DgvHBs10ywiTyMLUzgLUz3m','y2XPy2S','ywrKlwjPBMrPBMCTzM9YBq','Axntzxj2zxjbzg1PBG','pc90zd4kicaGicaGphrKpGOGicaGicaGia','qwrKiejPBMrPBMC','BM9Uzq','zgvSzxrPBMDuzwfTswq','C2f2zs10zwfT','ywrKlw1HBMfNzxiTC2vSzwn0','C2f2zs1IAw5KAw5Nlwj0BG','cIaGicaGicaGicaGia','qMLUzgLUzYbHzgrLza','DMfSDwu','cIaGicaGicaGica8l2j1DhrVBJ4kicaGicaGicaGia','zgvSzxrLqMLUzgLUzW','BwfUywDLCL9Uyw1LCW','Dgv4DenVBNrLBNq','pgj1DhrVBIbJBgfZCZ0IyNrUlxnLy29UzgfYEsbIDg4TC21HBgWIig9Uy2XPy2S9iNDPBMrVDY5VCgvUvgvHBu1VzgfSkcC','rMfPBgvKihrVigXVywqGyMLUzgLUz3m6ia','Aw5Uzxjive1m','DgvHBxm','CMvTB3zLvgvHBu1LBwjLCG','y2fUy2vSlwjPBMrPBMCTyNrU','pc90zd4kicaGicaGica8Dgq+','mtK2ndm4nwLgzMz5vq','pc9ZCgfUpGOGicaGicaGidXIDxr0B24GDhLWzt0IyNv0Dg9UiIbJBgfZCZ0IyNrUlwDOB3n0igj0BI1ZBwfSBciGB25JBgLJAZ0ID2LUzg93lNjLBw92zu1HBMfNzxjdBgLJAYGN','pgj1DhrVBIbJBgfZCZ0IyNrUlwDOB3n0igj0BI1ZBwfSBciGB25JBgLJAZ0ID2LUzg93lMrLBgv0zujPBMrPBMDdBgLJAYGN','idXZCgfUihn0EwXLpsjJB2XVCJOGDMfYkc0Ty29SB3iTDgv4Dc1ZzwnVBMrHCNKPoYbMB250lxnPEMu6idaUodvLBtSIpIG','z2v0rwXLBwvUDej5swq','cIaGicaGidX0CJ4kicaGicaGica8DgqGy29SC3bHBJ0InciGC3r5Bgu9iNrLEhqTywXPz246ignLBNrLCJSGy29SB3i6ihzHCIGTlwnVBg9YlxrLEhqTC2vJB25Kyxj5ktSGCgfKzgLUzZOGmNjLBtSIpGOGicaGicaGicaGtM8GDgvHBxmGEwv0lGOGicaGicaGicaG','phaGC3r5Bgu9iMzVBNqTC2L6ztOGmc44nZvYzw07ignVBg9YoIb2yxiOls1JB2XVCI10zxH0lxnLy29UzgfYEsK7ig1HCMDPBJOGmc4YnxjLBsaWoYi+tM8GBwvTyMvYCYb5zxq8l3a+','yMLUzgLUzY1YB2XL','y3jLyxrLlxrLyw0TyNrU','cIaGica8Dhi+cIaGicaGidX0zd4','zw52AxjVBM1LBNrZ','zgLZywjSzwq','otu3mZGWtKz3svzh','zgLZCgXHEq','pgj1DhrVBIb0ExbLpsjIDxr0B24IignSyxnZpsjIDg4Tz2HVC3qGyNrUlxnTywXSiIbVBMnSAwnRpsj3Aw5KB3CUCMvTB3zLtwvTyMvYq2XPy2SOjW','z2v0rw52AxjVBM1LBNrZ','zxjYB3i','y29SB3i','u2f2Aw5N4OcM','mte2mfnZuw5PAa','BwfW','yMLUzgLUz3mTBgLZDc1JB250ywLUzxi','DgvHBs1TB2rHBa','y3jLyxrLvgvHBq','re9nq29UDgvUDeXVywrLza','DgvHBxmTzxjYB3i','DxbKyxrLvgvHBq','z2v0uM9SzurLzMLUAxrPB25Z','Bg9JyxrPB24','cIaGicaGicaGica','BM9YBwfS','jYKIihn0EwXLpsjJB2XVCJOGDMfYkc0Ty29SB3iTzgfUz2vYktSGCgfKzgLUzZOGmc4XnxjLBsaWlJrYzw07igzVBNqTC2L6ztOGmc44CMvToYi+uMvTB3zLpc9IDxr0B24+cIaGicaGidWVzgL2pG','DgvHBs1MB3jTlwvYCM9Y','zgvSzxrLlxrLyw0TBMfTzq','ywn0AxzLvgfI','cIaGicaGidX0CJ4kicaGicaGica8Dgq+cIaGicaGicaGica8yNv0Dg9UignSyxnZpsjIDg4Tz2HVC3qGyNrUlxnTywXSiIbZDhLSzt0IzM9UDc13zwLNAhq6idyWmdSGCgfKzgLUzZOGmdSGDgv4Dc1KzwnVCMf0Aw9UoIb1BMrLCMXPBMu7ihrLEhqTzgvJB3jHDgLVBI1ZDhLSztOGzg90DgvKoYikicaGicaGicaGicaGB25JBgLJAZ0ID2LUzg93lM9Wzw5uzwfTtw9KywWOjW','jYKIpKrLBgv0ztWVyNv0Dg9UpG','twvTyMvYigfKzgvK','BwvZC2fNzq','zgf0yxnLDa','DgvHBs1TB2rHBc10ywjZ','DgvHBxmTy29UDgvUDa','zgv0ywLSCW','ywrKlw1LBwjLCI1YB3C','yM9YzgvYqM90Dg9Tq29SB3i','AgLKzgvU','pc90zd4kicaGicaGica8Dgq+cIaGicaGicaGica8zgL2ignSyxnZpsj1C2vYlwfJDgLVBNmIpGOGicaGicaGicaGica','B3bLBLrLyw1nB2rHBa','DMfYkc0Ty29SB3iTChjPBwfYEsK','jYKIihn0EwXLpsjJB2XVCJOGDMfYkc0Ty29SB3iTzgfUz2vYktSIpLjLBw92ztWVyNv0Dg9UpG','DgvHBxmTBg9HzgLUzW','cIaGicaGidXKAxyGC3r5Bgu9iMrPC3bSyxK6igzSzxG7igfSAwDUlwL0zw1ZoIbJzw50zxi7igP1C3rPzNKTy29UDgvUDdOGC3bHy2uTyMv0D2vLBJSGCgfKzgLUzZOGmc4ZnxjLBsaWoYbIB3jKzxiTyM90Dg9ToIaXChGGC29SAwqGDMfYkc0Ty29SB3iTyM9YzgvYktSIpGOGicaGicaGidXZCgfUihn0EwXLpsjMB250lxnPEMu6idaUodC1CMvToYi+','DgvHBq','jYKIpKvKAxq8l2j1DhrVBJ4','zgvSzxrLlxrLyw0TBw9KywW','zwrPDgLUz1rLyw1jza','q3jLyxrLifrLyw0','DgfI','ywrKlwjPBMrPBMCTyNrU','q2XPy2SGphn0CM9UzZ5dCMvHDguGvgvHBtWVC3rYB25NpIb0BYbNzxqGC3rHCNrLzc4','zgvZy3jPChrPB24','DxnLCNm','CM9Szv9Uyw1L','i3rLyw0TBw9KywWGlM1VzgfSlw92zxjSyxK','Aw5JBhvKzxm','CMv0CNKTDgvHBxmTyNrU','i2rLBgv0zs10zwfTlw1VzgfSic5TB2rHBc1VDMvYBgf5'];_0x3799=function(){return _0x2f391a;};return _0x3799();}function showCreateTeamModal(){const _0x129ebe=_0x4a1b45;state[_0x129ebe(0x1ac)]=null,state[_0x129ebe(0x197)]=_0x129ebe(0x19f),document[_0x129ebe(0x22b)]('team-modal-title')[_0x129ebe(0x21f)]=_0x129ebe(0x1ad),document[_0x129ebe(0x22b)](_0x129ebe(0x1d5))['value']='',document['getElementById'](_0x129ebe(0x1d5))[_0x129ebe(0x232)]=![],document['getElementById']('team-description')[_0x129ebe(0x21b)]='',document[_0x129ebe(0x22b)](_0x129ebe(0x1ef))[_0x129ebe(0x232)]=![],document[_0x129ebe(0x22b)](_0x129ebe(0x195))['hidden']=!![],document[_0x129ebe(0x22b)]('team-modal-tabs')[_0x129ebe(0x1a2)]=!![],document[_0x129ebe(0x22b)]('members-section')[_0x129ebe(0x1a2)]=!![],document[_0x129ebe(0x22b)]('save-team')['hidden']=![],document[_0x129ebe(0x22b)](_0x129ebe(0x1ec))['hidden']=![],showTab(_0x129ebe(0x19f)),document[_0x129ebe(0x22b)](_0x129ebe(0x23d))['hidden']=![],setTimeout(()=>document['getElementById'](_0x129ebe(0x1d5))[_0x129ebe(0x1e3)](),0x64);}window[_0x4a1b45(0x1a4)]=function(_0x27d01e){const _0x3707ac=_0x4a1b45,_0xf5f08e=state[_0x3707ac(0x223)][_0x3707ac(0x1d9)](_0x5a64f4=>_0x5a64f4['id']===_0x27d01e);if(!_0xf5f08e)return;state[_0x3707ac(0x1ac)]=_0x27d01e,state[_0x3707ac(0x197)]=_0x3707ac(0x19f);const _0x53181f=state[_0x3707ac(0x1fb)]?.[_0x3707ac(0x211)],_0x2da6bc=(_0xf5f08e[_0x3707ac(0x1cd)]||[])[_0x3707ac(0x1b5)](state[_0x3707ac(0x1fb)]?.['id']),_0x8030a7=_0x53181f||_0x2da6bc;document[_0x3707ac(0x22b)]('team-modal-title')[_0x3707ac(0x21f)]=_0xf5f08e[_0x3707ac(0x1c1)],document[_0x3707ac(0x22b)](_0x3707ac(0x1d5))['value']=_0xf5f08e[_0x3707ac(0x1c1)],document[_0x3707ac(0x22b)](_0x3707ac(0x1d5))[_0x3707ac(0x232)]=!_0x8030a7,document[_0x3707ac(0x22b)]('team-description')['value']=_0xf5f08e[_0x3707ac(0x1b1)]||'',document['getElementById'](_0x3707ac(0x1ef))[_0x3707ac(0x232)]=!_0x8030a7,document[_0x3707ac(0x22b)](_0x3707ac(0x195))[_0x3707ac(0x1a2)]=!![],document[_0x3707ac(0x22b)](_0x3707ac(0x19d))['hidden']=![],document[_0x3707ac(0x22b)]('members-section')[_0x3707ac(0x1a2)]=![],document['getElementById'](_0x3707ac(0x216))[_0x3707ac(0x1a2)]=!_0x8030a7,document['getElementById'](_0x3707ac(0x1c3))[_0x3707ac(0x1a2)]=!_0x53181f,setActiveTabButton(_0x3707ac(0x19f)),renderMembersList(_0xf5f08e),updateMemberSelect(_0xf5f08e),_0x53181f&&(renderManagersList(_0xf5f08e),updateManagerSelect(_0xf5f08e)),showTab(_0x3707ac(0x19f)),document[_0x3707ac(0x22b)](_0x3707ac(0x23d))['hidden']=![];};function hideTeamModal(){const _0x14df40=_0x4a1b45;document[_0x14df40(0x22b)]('team-modal')[_0x14df40(0x1a2)]=!![],document[_0x14df40(0x22b)](_0x14df40(0x1d5))[_0x14df40(0x232)]=![],document[_0x14df40(0x22b)](_0x14df40(0x1ef))[_0x14df40(0x232)]=![],state['editingTeamId']=null;}function switchTab(_0x334c26){const _0x45b083=_0x4a1b45;state[_0x45b083(0x197)]=_0x334c26,setActiveTabButton(_0x334c26),showTab(_0x334c26),_0x334c26===_0x45b083(0x1c8)&&state[_0x45b083(0x1ac)]&&loadTeamBindings(state[_0x45b083(0x1ac)]);}function setActiveTabButton(_0x2ef80b){const _0x3d58f6=_0x4a1b45;document[_0x3d58f6(0x20c)](_0x3d58f6(0x1cb))[_0x3d58f6(0x1f8)](_0x317684=>{const _0x1a4aca=_0x3d58f6,_0x598802=_0x317684['dataset'][_0x1a4aca(0x1ae)]===_0x2ef80b;_0x317684[_0x1a4aca(0x204)][_0x1a4aca(0x1a1)]=_0x598802?'var(--color-primary)':'transparent',_0x317684[_0x1a4aca(0x204)][_0x1a4aca(0x238)]=_0x598802?_0x1a4aca(0x1a5):_0x1a4aca(0x1d0),_0x317684[_0x1a4aca(0x204)][_0x1a4aca(0x1d2)]=_0x598802?_0x1a4aca(0x1d8):_0x1a4aca(0x193);});}function showTab(_0x546567){const _0x52ee9d=_0x4a1b45;document[_0x52ee9d(0x22b)]('team-tab-details')[_0x52ee9d(0x1a2)]=_0x546567!=='details',document['getElementById'](_0x52ee9d(0x20e))[_0x52ee9d(0x1a2)]=_0x546567!==_0x52ee9d(0x1c8),document[_0x52ee9d(0x22b)](_0x52ee9d(0x1ec))['hidden']=_0x546567===_0x52ee9d(0x1c8);}function renderMembersList(_0x3b9717){const _0x23d472=_0x4a1b45,_0x4137a4=state['currentUser']?.[_0x23d472(0x211)],_0x443b28=(_0x3b9717['managers']||[])['includes'](state[_0x23d472(0x1fb)]?.['id']),_0x3ba710=_0x4137a4||_0x443b28,_0x3ebefa=_0x3b9717[_0x23d472(0x1c5)]||[],_0x362340=document[_0x23d472(0x22b)](_0x23d472(0x1be));if(_0x3ebefa[_0x23d472(0x1c2)]===0x0){_0x362340['innerHTML']=_0x23d472(0x22d);return;}_0x362340[_0x23d472(0x222)]=_0x3ebefa[_0x23d472(0x23b)](_0x29db8c=>{const _0x524ee2=_0x23d472,_0x176feb=state[_0x524ee2(0x1b2)]['find'](_0x50051a=>_0x50051a['id']===_0x29db8c),_0x48303f=_0x176feb?''+Utils[_0x524ee2(0x208)](_0x176feb['username'])+(_0x176feb[_0x524ee2(0x1c1)]?_0x524ee2(0x22a)+Utils['escapeHtml'](_0x176feb[_0x524ee2(0x1c1)])+')</span>':''):Utils['escapeHtml'](_0x29db8c),_0x4d78f3=(_0x3b9717[_0x524ee2(0x1cd)]||[])['includes'](_0x29db8c);return'\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:\x20flex;\x20align-items:\x20center;\x20justify-content:\x20space-between;\x20padding:\x200.35rem\x200;\x20border-bottom:\x201px\x20solid\x20var(--color-border);\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:\x200.875rem;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x48303f+_0x524ee2(0x192)+(_0x4d78f3?'<span\x20class=\x22tag\x22\x20style=\x22margin-left:\x200.4rem;\x20font-size:\x200.7em;\x20padding:\x200.1em\x200.4em;\x22>manager</span>':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x3ba710?_0x524ee2(0x235)+_0x29db8c+'\x27)\x22\x20style=\x22color:\x20var(--color-danger);\x20padding:\x200.15rem\x200.4rem;\x20font-size:\x200.8rem;\x22>Remove</button>':'')+'\x0a\x20\x20\x20\x20\x20\x20</div>';})[_0x23d472(0x1fa)]('');const _0x259b38=document[_0x23d472(0x22b)](_0x23d472(0x1a0));if(_0x259b38)_0x259b38[_0x23d472(0x204)][_0x23d472(0x234)]=_0x3ba710?_0x23d472(0x1bf):_0x23d472(0x214);}function renderManagersList(_0x5118cc){const _0x1a5d83=_0x4a1b45,_0x520a64=_0x5118cc[_0x1a5d83(0x1cd)]||[],_0x466ccb=document[_0x1a5d83(0x22b)]('managers-list');if(_0x520a64[_0x1a5d83(0x1c2)]===0x0){_0x466ccb[_0x1a5d83(0x222)]='<p\x20style=\x22font-size:\x200.875rem;\x20color:\x20var(--color-text-secondary);\x20margin:\x200.25rem\x200;\x22>No\x20managers</p>';return;}_0x466ccb[_0x1a5d83(0x222)]=_0x520a64['map'](_0x4400b0=>{const _0x5b4874=_0x1a5d83,_0xe78455=state[_0x5b4874(0x1b2)][_0x5b4874(0x1d9)](_0x20f1ec=>_0x20f1ec['id']===_0x4400b0),_0x499858=_0xe78455?Utils[_0x5b4874(0x208)](_0xe78455[_0x5b4874(0x1c0)]):Utils[_0x5b4874(0x208)](_0x4400b0);return _0x5b4874(0x1a8)+_0x499858+_0x5b4874(0x228)+_0x4400b0+_0x5b4874(0x194);})[_0x1a5d83(0x1fa)]('');}function updateMemberSelect(_0x9f3deb){const _0x2e89f3=_0x4a1b45,_0x18b94e=document[_0x2e89f3(0x22b)](_0x2e89f3(0x20b));if(!_0x18b94e)return;const _0x1d4b35=new Set(_0x9f3deb[_0x2e89f3(0x1c5)]||[]),_0x3b468f=state[_0x2e89f3(0x1b2)][_0x2e89f3(0x1f4)](_0x40167b=>!_0x1d4b35[_0x2e89f3(0x1f3)](_0x40167b['id']));_0x18b94e[_0x2e89f3(0x222)]=_0x2e89f3(0x1d7)+_0x3b468f[_0x2e89f3(0x23b)](_0x51b854=>_0x2e89f3(0x202)+_0x51b854['id']+'\x22>'+Utils['escapeHtml'](_0x51b854[_0x2e89f3(0x1c0)])+(_0x51b854[_0x2e89f3(0x1c1)]?'\x20('+Utils[_0x2e89f3(0x208)](_0x51b854[_0x2e89f3(0x1c1)])+')':'')+'</option>')['join']('');}function updateManagerSelect(_0x4d5d1a){const _0x38e7ff=_0x4a1b45,_0x592af1=document[_0x38e7ff(0x22b)]('add-manager-select');if(!_0x592af1)return;const _0x315f44=new Set(_0x4d5d1a['managers']||[]),_0x1b0d2c=(_0x4d5d1a[_0x38e7ff(0x1c5)]||[])[_0x38e7ff(0x1f4)](_0x8e759e=>!_0x315f44['has'](_0x8e759e))[_0x38e7ff(0x23b)](_0x478f6e=>state['users'][_0x38e7ff(0x1d9)](_0x8138ac=>_0x8138ac['id']===_0x478f6e))[_0x38e7ff(0x1f4)](Boolean);_0x592af1['innerHTML']=_0x38e7ff(0x1c4)+_0x1b0d2c['map'](_0x4f6452=>_0x38e7ff(0x202)+_0x4f6452['id']+'\x22>'+Utils[_0x38e7ff(0x208)](_0x4f6452[_0x38e7ff(0x1c0)])+_0x38e7ff(0x1fe))[_0x38e7ff(0x1fa)]('');}async function addMember(){const _0x1146f3=_0x4a1b45,_0x350c=document[_0x1146f3(0x22b)]('add-member-select'),_0x316a70=_0x350c['value'];if(!_0x316a70||!state[_0x1146f3(0x1ac)])return;try{const {team:_0x3473ae}=await API['addTeamMember'](state[_0x1146f3(0x1ac)],_0x316a70);syncTeamInState(_0x3473ae),renderMembersList(_0x3473ae),updateMemberSelect(_0x3473ae),state[_0x1146f3(0x1fb)]?.[_0x1146f3(0x211)]&&(renderManagersList(_0x3473ae),updateManagerSelect(_0x3473ae)),_0x350c[_0x1146f3(0x21b)]='',Utils['showToast'](_0x1146f3(0x19a),_0x1146f3(0x1fc));}catch(_0x2a294e){Utils[_0x1146f3(0x201)](_0x2a294e[_0x1146f3(0x19b)],'error');}}async function addManager(){const _0x27cde7=_0x4a1b45,_0xff2354=document[_0x27cde7(0x22b)](_0x27cde7(0x217)),_0x1cd0af=_0xff2354[_0x27cde7(0x21b)];if(!_0x1cd0af||!state[_0x27cde7(0x1ac)])return;try{const {team:_0xb48dc2}=await API[_0x27cde7(0x1ee)](state[_0x27cde7(0x1ac)],_0x1cd0af);syncTeamInState(_0xb48dc2),renderMembersList(_0xb48dc2),renderManagersList(_0xb48dc2),updateManagerSelect(_0xb48dc2),_0xff2354[_0x27cde7(0x21b)]='',Utils[_0x27cde7(0x201)](_0x27cde7(0x1ea),_0x27cde7(0x1fc));}catch(_0x1d11ec){Utils[_0x27cde7(0x201)](_0x1d11ec['message'],_0x27cde7(0x237));}}window[_0x4a1b45(0x200)]=async function(_0x404b64){const _0x306ab9=_0x4a1b45;if(!state[_0x306ab9(0x1ac)])return;try{const {team:_0x40c0f2}=await API[_0x306ab9(0x224)](state[_0x306ab9(0x1ac)],_0x404b64);syncTeamInState(_0x40c0f2),renderMembersList(_0x40c0f2),updateMemberSelect(_0x40c0f2),state[_0x306ab9(0x1fb)]?.[_0x306ab9(0x211)]&&(renderManagersList(_0x40c0f2),updateManagerSelect(_0x40c0f2)),Utils[_0x306ab9(0x201)]('Member\x20removed',_0x306ab9(0x1fc));}catch(_0x369dad){Utils[_0x306ab9(0x201)](_0x369dad[_0x306ab9(0x19b)],'error');}},window['removeManagerClick']=async function(_0x9e59e2){const _0x23b6f6=_0x4a1b45;if(!state[_0x23b6f6(0x1ac)])return;try{const {team:_0x3ecc18}=await API[_0x23b6f6(0x1db)](state[_0x23b6f6(0x1ac)],_0x9e59e2);syncTeamInState(_0x3ecc18),renderManagersList(_0x3ecc18),updateManagerSelect(_0x3ecc18),Utils[_0x23b6f6(0x201)](_0x23b6f6(0x207),_0x23b6f6(0x1fc));}catch(_0x1e128b){Utils[_0x23b6f6(0x201)](_0x1e128b[_0x23b6f6(0x19b)],'error');}};async function loadTeamBindings(_0x472350){const _0x39625f=_0x4a1b45,_0x1d8c33=document[_0x39625f(0x22b)]('bindings-loading'),_0x14b83f=document[_0x39625f(0x22b)]('bindings-empty'),_0xfe22fe=document['getElementById'](_0x39625f(0x23c)),_0x4e7e7b=document[_0x39625f(0x22b)](_0x39625f(0x1af));_0x1d8c33[_0x39625f(0x1a2)]=![],_0x14b83f[_0x39625f(0x1a2)]=!![],_0xfe22fe['style'][_0x39625f(0x234)]=_0x39625f(0x214),_0x4e7e7b[_0x39625f(0x1a2)]=!![],document[_0x39625f(0x22b)]('add-binding-form')[_0x39625f(0x1a2)]=!![];try{const {bindings:_0x575a06}=await API[_0x39625f(0x205)]({'subject_type':'team','subject_id':_0x472350});state[_0x39625f(0x1e8)]=_0x575a06||[],_0x1d8c33['hidden']=!![],state[_0x39625f(0x1e8)]['length']===0x0?_0x14b83f[_0x39625f(0x1a2)]=![]:(_0xfe22fe[_0x39625f(0x204)][_0x39625f(0x234)]='',renderBindingsTable()),state[_0x39625f(0x1fb)]?.[_0x39625f(0x211)]&&(_0x4e7e7b[_0x39625f(0x1a2)]=![]);}catch(_0x545cf0){_0x1d8c33[_0x39625f(0x1a2)]=!![],Utils['showToast'](_0x39625f(0x221)+_0x545cf0[_0x39625f(0x19b)],_0x39625f(0x237));}}function renderBindingsTable(){const _0x23dd29=_0x4a1b45,_0x527c0f=document['getElementById'](_0x23dd29(0x1df));if(!_0x527c0f)return;const _0x1fdc0f=state['currentUser']?.[_0x23dd29(0x211)];_0x527c0f[_0x23dd29(0x222)]=state['teamBindings'][_0x23dd29(0x23b)](_0x1a2be5=>_0x23dd29(0x230)+Utils['escapeHtml'](_0x1a2be5['environment'])+_0x23dd29(0x1da)+Utils[_0x23dd29(0x208)](_0x1a2be5[_0x23dd29(0x1b3)]||_0x1a2be5['role_id'])+_0x23dd29(0x212)+(_0x1fdc0f?_0x23dd29(0x229)+_0x1a2be5['id']+_0x23dd29(0x1a6):'—')+'\x0a\x20\x20\x20\x20\x20\x20</td>\x0a\x20\x20\x20\x20</tr>')[_0x23dd29(0x1fa)]('');}function populateBindingForm(){const _0x3da83a=_0x4a1b45,_0x5afb00=document[_0x3da83a(0x22b)]('binding-environment'),_0x4defa1=document[_0x3da83a(0x22b)](_0x3da83a(0x22e)),_0x1a2b87=new Set(state[_0x3da83a(0x1e8)]['map'](_0x4245a3=>_0x4245a3['environment'])),_0x12f8fd=state[_0x3da83a(0x231)][_0x3da83a(0x1f4)](_0x2713ac=>!_0x1a2b87[_0x3da83a(0x1f3)](_0x2713ac[_0x3da83a(0x1c1)]));_0x5afb00[_0x3da83a(0x222)]=_0x12f8fd[_0x3da83a(0x1c2)]?_0x12f8fd[_0x3da83a(0x23b)](_0xa7fef9=>_0x3da83a(0x202)+Utils[_0x3da83a(0x208)](_0xa7fef9[_0x3da83a(0x1c1)])+'\x22>'+Utils[_0x3da83a(0x208)](_0xa7fef9[_0x3da83a(0x1c1)])+_0x3da83a(0x1fe))['join'](''):'<option\x20value=\x22\x22>All\x20environments\x20already\x20bound</option>',_0x4defa1['innerHTML']=state['roles'][_0x3da83a(0x23b)](_0x35a213=>'<option\x20value=\x22'+_0x35a213['id']+'\x22>'+Utils['escapeHtml'](_0x35a213[_0x3da83a(0x1c1)])+'</option>')['join']('');}function _0x1ea7(_0x36ff08,_0x2a4e1a){_0x36ff08=_0x36ff08-0x191;const _0x379988=_0x3799();let _0x1ea7be=_0x379988[_0x36ff08];if(_0x1ea7['ytlJfN']===undefined){var _0x2cb8e8=function(_0x30271f){const _0x1bd141='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x33ab41='',_0x5c9697='';for(let _0x49c54f=0x0,_0x298c61,_0x31ff9f,_0x8677df=0x0;_0x31ff9f=_0x30271f['charAt'](_0x8677df++);~_0x31ff9f&&(_0x298c61=_0x49c54f%0x4?_0x298c61*0x40+_0x31ff9f:_0x31ff9f,_0x49c54f++%0x4)?_0x33ab41+=String['fromCharCode'](0xff&_0x298c61>>(-0x2*_0x49c54f&0x6)):0x0){_0x31ff9f=_0x1bd141['indexOf'](_0x31ff9f);}for(let _0x340e34=0x0,_0x2fe86f=_0x33ab41['length'];_0x340e34<_0x2fe86f;_0x340e34++){_0x5c9697+='%'+('00'+_0x33ab41['charCodeAt'](_0x340e34)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5c9697);};_0x1ea7['jSRuuR']=_0x2cb8e8,_0x1ea7['uMDjrX']={},_0x1ea7['ytlJfN']=!![];}const _0x5b09e5=_0x379988[0x0],_0x899add=_0x36ff08+_0x5b09e5,_0x5e401d=_0x1ea7['uMDjrX'][_0x899add];return!_0x5e401d?(_0x1ea7be=_0x1ea7['jSRuuR'](_0x1ea7be),_0x1ea7['uMDjrX'][_0x899add]=_0x1ea7be):_0x1ea7be=_0x5e401d,_0x1ea7be;}async function saveBinding(){const _0x3813d0=_0x4a1b45,_0x322198=document[_0x3813d0(0x22b)](_0x3813d0(0x1ca))['value'],_0x277c5c=document['getElementById'](_0x3813d0(0x22e))[_0x3813d0(0x21b)];if(!_0x322198||!_0x277c5c||!state[_0x3813d0(0x1ac)])return;const _0x200b1d=document[_0x3813d0(0x22b)]('save-binding-btn');_0x200b1d[_0x3813d0(0x232)]=!![],_0x200b1d[_0x3813d0(0x21f)]='Adding…';try{await API[_0x3813d0(0x1ba)]({'subject_type':_0x3813d0(0x1a9),'subject_id':state[_0x3813d0(0x1ac)],'role_id':_0x277c5c,'environment':_0x322198}),Utils[_0x3813d0(0x201)](_0x3813d0(0x21a),_0x3813d0(0x1fc)),document[_0x3813d0(0x22b)](_0x3813d0(0x210))[_0x3813d0(0x1a2)]=!![],document[_0x3813d0(0x22b)](_0x3813d0(0x1af))['hidden']=![],await loadTeamBindings(state[_0x3813d0(0x1ac)]);}catch(_0x3de743){Utils[_0x3813d0(0x201)](_0x3de743['message'],'error');}finally{_0x200b1d[_0x3813d0(0x232)]=![],_0x200b1d['textContent']=_0x3813d0(0x213);}}window[_0x4a1b45(0x20d)]=async function(_0x1dc8fb){const _0x3a18fd=_0x4a1b45;try{await API[_0x3a18fd(0x21d)](_0x1dc8fb),Utils[_0x3a18fd(0x201)](_0x3a18fd(0x1d3),_0x3a18fd(0x1fc)),await loadTeamBindings(state[_0x3a18fd(0x1ac)]);}catch(_0x5be23a){Utils[_0x3a18fd(0x201)](_0x5be23a[_0x3a18fd(0x19b)],_0x3a18fd(0x237));}};async function saveTeam(){const _0x19e23c=_0x4a1b45,_0x50b84e=document[_0x19e23c(0x22b)]('team-name')['value']['trim'](),_0x386233=document[_0x19e23c(0x22b)]('team-description')[_0x19e23c(0x21b)][_0x19e23c(0x1c9)](),_0x2f6d28=document['getElementById'](_0x19e23c(0x195)),_0x5a823f=document[_0x19e23c(0x22b)](_0x19e23c(0x216));if(!_0x50b84e){_0x2f6d28[_0x19e23c(0x21f)]=_0x19e23c(0x1d6),_0x2f6d28['hidden']=![];return;}_0x2f6d28[_0x19e23c(0x1a2)]=!![];const _0x375f47=_0x5a823f[_0x19e23c(0x21f)];_0x5a823f['disabled']=!![],_0x5a823f[_0x19e23c(0x21f)]=state['editingTeamId']?_0x19e23c(0x239):_0x19e23c(0x20a);try{if(state[_0x19e23c(0x1ac)]){const {team:_0x5e131b}=await API[_0x19e23c(0x241)](state[_0x19e23c(0x1ac)],{'name':_0x50b84e,'description':_0x386233});syncTeamInState(_0x5e131b),document[_0x19e23c(0x22b)](_0x19e23c(0x1e2))[_0x19e23c(0x21f)]=_0x5e131b['name'],Utils[_0x19e23c(0x201)](_0x19e23c(0x1f1),_0x19e23c(0x1fc));}else await API[_0x19e23c(0x23e)]({'name':_0x50b84e,'description':_0x386233}),Utils[_0x19e23c(0x201)](_0x19e23c(0x1cc),'success'),hideTeamModal(),await loadTeams();state[_0x19e23c(0x1ac)]&&(_0x5a823f['disabled']=![],_0x5a823f[_0x19e23c(0x21f)]=_0x375f47);}catch(_0x5b7a00){_0x2f6d28[_0x19e23c(0x21f)]=_0x5b7a00[_0x19e23c(0x19b)],_0x2f6d28['hidden']=![],_0x5a823f[_0x19e23c(0x232)]=![],_0x5a823f['textContent']=_0x375f47;}}window[_0x4a1b45(0x1e6)]=function(_0x55e2ee){const _0x3dd710=_0x4a1b45,_0x428065=state['teams'][_0x3dd710(0x1d9)](_0x525907=>_0x525907['id']===_0x55e2ee);if(!_0x428065)return;state[_0x3dd710(0x215)]=_0x55e2ee,document[_0x3dd710(0x22b)](_0x3dd710(0x196))[_0x3dd710(0x21f)]=_0x428065[_0x3dd710(0x1c1)],document[_0x3dd710(0x22b)](_0x3dd710(0x1ab))[_0x3dd710(0x1a2)]=![];};function hideDeleteModal(){const _0x21dcf7=_0x4a1b45;document['getElementById']('delete-team-modal')[_0x21dcf7(0x1a2)]=!![],state[_0x21dcf7(0x215)]=null;}async function confirmDeleteTeam(){const _0x5ea829=_0x4a1b45;if(!state[_0x5ea829(0x215)])return;const _0x14ab53=document[_0x5ea829(0x22b)](_0x5ea829(0x1eb));_0x14ab53[_0x5ea829(0x232)]=!![],_0x14ab53['textContent']='Deleting…';try{await API[_0x5ea829(0x1e6)](state[_0x5ea829(0x215)]),Utils[_0x5ea829(0x201)](_0x5ea829(0x1e1),_0x5ea829(0x1fc)),hideDeleteModal(),await loadTeams();}catch(_0x261ed7){Utils['showToast'](_0x5ea829(0x1bc)+_0x261ed7[_0x5ea829(0x19b)],_0x5ea829(0x237)),_0x14ab53[_0x5ea829(0x232)]=![],_0x14ab53['textContent']=_0x5ea829(0x1cf);}}function syncTeamInState(_0x5ec009){const _0x1410df=_0x4a1b45,_0x18c758=state[_0x1410df(0x223)][_0x1410df(0x1f9)](_0x3328aa=>_0x3328aa['id']===_0x5ec009['id']);if(_0x18c758>=0x0)state['teams'][_0x18c758]=_0x5ec009;renderTeams();}
1
+ const _0x312cdf=_0x23b9;(function(_0x5b88a2,_0x4a67b0){const _0x3ad528=_0x23b9,_0x271147=_0x5b88a2();while(!![]){try{const _0x5de950=parseInt(_0x3ad528(0x126))/0x1+-parseInt(_0x3ad528(0x178))/0x2+-parseInt(_0x3ad528(0x185))/0x3*(parseInt(_0x3ad528(0x117))/0x4)+-parseInt(_0x3ad528(0x131))/0x5*(parseInt(_0x3ad528(0x12b))/0x6)+parseInt(_0x3ad528(0x19a))/0x7*(parseInt(_0x3ad528(0x17e))/0x8)+-parseInt(_0x3ad528(0x147))/0x9*(parseInt(_0x3ad528(0x18c))/0xa)+-parseInt(_0x3ad528(0x1ab))/0xb*(-parseInt(_0x3ad528(0x16c))/0xc);if(_0x5de950===_0x4a67b0)break;else _0x271147['push'](_0x271147['shift']());}catch(_0x323eec){_0x271147['push'](_0x271147['shift']());}}}(_0x26df,0x4da0f));import{API,Utils,initializeAdminMenu}from'./app.js';import{initTheme,mountThemeToggle}from'./theme.js';const state={'teams':[],'users':[],'roles':[],'environments':[],'teamBindings':[],'currentUser':null,'editingTeamId':null,'bindingsTeamId':null,'deletingTeamId':null,'modalSnapshot':null};document['addEventListener'](_0x312cdf(0x128),async()=>{const _0x7cf3bd=_0x312cdf;initTheme(),mountThemeToggle();try{state[_0x7cf3bd(0x191)]=await API[_0x7cf3bd(0x155)]();}catch{window['location'][_0x7cf3bd(0x1ac)]=_0x7cf3bd(0x18e);return;}await initializeAdminMenu(state[_0x7cf3bd(0x191)]);const _0x356c6b=state[_0x7cf3bd(0x191)];if(!_0x356c6b['hasAllPermissions']&&!_0x356c6b[_0x7cf3bd(0x166)]&&!_0x356c6b['hasEnvironmentBindings']&&!_0x356c6b[_0x7cf3bd(0x193)]){Utils[_0x7cf3bd(0x127)](_0x7cf3bd(0x1a7),'error'),setTimeout(()=>{const _0x10fbc5=_0x7cf3bd;window['location'][_0x10fbc5(0x1ac)]=_0x10fbc5(0x15e);},0x7d0);return;}(_0x356c6b[_0x7cf3bd(0x1a0)]||_0x356c6b[_0x7cf3bd(0x166)])&&(document[_0x7cf3bd(0x1b1)](_0x7cf3bd(0x156))[_0x7cf3bd(0x1a3)]=![]),bindEventListeners(),await Promise[_0x7cf3bd(0x11c)]([loadTeams(),loadUsers(),loadRoles(),loadEnvironments()]),renderTeams();});async function loadTeams(){const _0x2939b8=_0x312cdf,_0x2a0a9b=document[_0x2939b8(0x1b1)]('teams-loading'),_0x5659b9=document[_0x2939b8(0x1b1)](_0x2939b8(0x13c)),_0x1c4fb5=document[_0x2939b8(0x1b1)](_0x2939b8(0x13d));try{_0x2a0a9b[_0x2939b8(0x1a3)]=![],_0x5659b9['hidden']=!![],_0x1c4fb5['hidden']=!![];const {teams:_0x5f0ae0}=await API[_0x2939b8(0x123)]();state[_0x2939b8(0x137)]=_0x5f0ae0||[],renderTeams(),_0x2a0a9b['hidden']=!![],_0x1c4fb5[_0x2939b8(0x1a3)]=![];}catch(_0x1d4ba8){_0x2a0a9b[_0x2939b8(0x1a3)]=!![],_0x5659b9[_0x2939b8(0x1a3)]=![],document[_0x2939b8(0x1b1)](_0x2939b8(0x167))[_0x2939b8(0x188)]=_0x1d4ba8[_0x2939b8(0x122)];}}async function loadUsers(){const _0x1034b9=_0x312cdf;try{const {users:_0x491858}=await API[_0x1034b9(0x150)]();state['users']=_0x491858||[];}catch{state[_0x1034b9(0x196)]=[];}}async function loadRoles(){const _0x5cce79=_0x312cdf;try{const {roles:_0x273cd7}=await API['getRoleDefinitions']();state[_0x5cce79(0x180)]=_0x273cd7||[];}catch{state['roles']=[];}}async function loadEnvironments(){const _0xe69966=_0x312cdf;try{const _0x6959f8=await API[_0xe69966(0x13e)]();state[_0xe69966(0x149)]=_0x6959f8[_0xe69966(0x149)]||[];}catch{state[_0xe69966(0x149)]=[];}}function renderTeams(){const _0x9690d5=_0x312cdf,_0x3f4c71=document[_0x9690d5(0x1b1)](_0x9690d5(0x168)),_0x12368d=document[_0x9690d5(0x1b1)](_0x9690d5(0x1a2));if(!_0x3f4c71)return;_0x12368d&&(_0x12368d[_0x9690d5(0x188)]=state[_0x9690d5(0x137)][_0x9690d5(0x18f)]+_0x9690d5(0x181)+(state[_0x9690d5(0x137)]['length']===0x1?'':'s'));if(state[_0x9690d5(0x137)][_0x9690d5(0x18f)]===0x0){_0x3f4c71[_0x9690d5(0x1a1)]=_0x9690d5(0x132)+(state['currentUser']?.[_0x9690d5(0x1a0)]||state['currentUser']?.[_0x9690d5(0x166)]?'Click\x20<strong>Create\x20Team</strong>\x20to\x20get\x20started.':'')+_0x9690d5(0x16e);return;}const _0x268e84=state[_0x9690d5(0x191)]?.['hasAllPermissions'];_0x3f4c71[_0x9690d5(0x1a1)]=state['teams']['map'](_0x516b0b=>{const _0x3b5261=_0x9690d5,_0x117546=_0x268e84||_0x516b0b[_0x3b5261(0x1a6)],_0x2ec883=_0x268e84||_0x516b0b[_0x3b5261(0x18d)],_0x2ea953=_0x117546||_0x2ec883,_0x2949a7=(_0x516b0b[_0x3b5261(0x14a)]||[])['length'];return _0x3b5261(0x142)+Utils[_0x3b5261(0x17c)](_0x516b0b['name'])+'</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x516b0b[_0x3b5261(0x16a)]?_0x3b5261(0x151)+Utils['escapeHtml'](_0x516b0b[_0x3b5261(0x16a)])+_0x3b5261(0x120):'')+_0x3b5261(0x1aa)+_0x2949a7+'</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22user-actions\x22\x20style=\x22display:\x20flex;\x20gap:\x200.25rem;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x2ea953?_0x3b5261(0x176)+_0x516b0b['id']+_0x3b5261(0x1ae):'')+_0x3b5261(0x1ad)+(_0x117546?'<button\x20class=\x22btn-icon\x22\x20title=\x22Access\x20bindings\x22\x20onclick=\x22window.openBindingsModal(\x27'+_0x516b0b['id']+_0x3b5261(0x169):'')+_0x3b5261(0x1ad)+(_0x117546?_0x3b5261(0x13b)+_0x516b0b['id']+_0x3b5261(0x138):'')+_0x3b5261(0x19b);})[_0x9690d5(0x194)]('');}function bindEventListeners(){const _0x5e19eb=_0x312cdf;document[_0x5e19eb(0x1b1)]('create-team-btn')?.[_0x5e19eb(0x197)](_0x5e19eb(0x14d),showCreateTeamModal),document[_0x5e19eb(0x1b1)]('retry-teams-btn')?.[_0x5e19eb(0x197)](_0x5e19eb(0x14d),loadTeams),document[_0x5e19eb(0x1b1)](_0x5e19eb(0x141))?.[_0x5e19eb(0x197)](_0x5e19eb(0x14d),requestHideTeamModal),document[_0x5e19eb(0x1b1)](_0x5e19eb(0x12e))?.[_0x5e19eb(0x197)](_0x5e19eb(0x14d),requestHideTeamModal),document[_0x5e19eb(0x1b1)](_0x5e19eb(0x130))?.['addEventListener'](_0x5e19eb(0x14d),saveTeam),document['querySelector'](_0x5e19eb(0x172))?.['addEventListener'](_0x5e19eb(0x14d),requestHideTeamModal),document[_0x5e19eb(0x1b1)](_0x5e19eb(0x14c))?.[_0x5e19eb(0x197)](_0x5e19eb(0x14d),addMember),document[_0x5e19eb(0x1b1)](_0x5e19eb(0x143))?.[_0x5e19eb(0x197)](_0x5e19eb(0x14d),hideBindingsModal),document[_0x5e19eb(0x148)](_0x5e19eb(0x19c))?.[_0x5e19eb(0x197)]('click',hideBindingsModal),document['getElementById']('add-binding-btn')?.['addEventListener'](_0x5e19eb(0x14d),()=>{const _0x6c922=_0x5e19eb;document[_0x6c922(0x1b1)](_0x6c922(0x174))[_0x6c922(0x1a3)]=![],document[_0x6c922(0x1b1)](_0x6c922(0x11e))[_0x6c922(0x1a3)]=!![],populateBindingForm();}),document[_0x5e19eb(0x1b1)](_0x5e19eb(0x199))?.[_0x5e19eb(0x197)](_0x5e19eb(0x14d),()=>{const _0x7b25f9=_0x5e19eb;document[_0x7b25f9(0x1b1)](_0x7b25f9(0x174))[_0x7b25f9(0x1a3)]=!![],document[_0x7b25f9(0x1b1)](_0x7b25f9(0x11e))['hidden']=![];}),document[_0x5e19eb(0x1b1)](_0x5e19eb(0x17b))?.['addEventListener'](_0x5e19eb(0x14d),saveBinding),document[_0x5e19eb(0x1b1)]('binding-resource-type')?.[_0x5e19eb(0x197)](_0x5e19eb(0x10f),onBindingResourceTypeChange),document[_0x5e19eb(0x1b1)](_0x5e19eb(0x161))?.['addEventListener'](_0x5e19eb(0x14d),hideDeleteModal),document[_0x5e19eb(0x1b1)](_0x5e19eb(0x139))?.[_0x5e19eb(0x197)](_0x5e19eb(0x14d),hideDeleteModal),document[_0x5e19eb(0x1b1)]('confirm-delete-team')?.[_0x5e19eb(0x197)](_0x5e19eb(0x14d),confirmDeleteTeam),document[_0x5e19eb(0x148)](_0x5e19eb(0x187))?.[_0x5e19eb(0x197)]('click',hideDeleteModal);}function _0x26df(){const _0x36e1ad=['mteWv1Hby3nn','AhjLzG','cIaGicaGicaGicaGia','jYKIpGOGicaGicaGicaGicaGidXZDMCGD2LKDgG9iJe2iIbOzwLNAhq9iJe2iIb2Awv3qM94psiWidaGmJqGmJqIigzPBgW9iM5VBMuIihn0CM9Rzt0Iy3vYCMvUDenVBg9YiIbZDhjVA2uTD2LKDgG9iJiIihn0CM9Rzs1SAw5Ly2fWpsjYB3vUzciGC3rYB2TLlwXPBMvQB2LUpsjYB3vUzci+cIaGicaGicaGicaGicaGica8Cgf0AcbKpsjnmteGneG0ytiGmIaWidaGmc0Yidj2mtrHmIaYidaGmcaWidiGmMGXngeYidiGmcaWidaGmI0YDI03iJ48l3bHDgG+cIaGicaGicaGicaGicaGica8Cgf0AcbKpsjnmtGUnsaYlJvHmI4XmJeGmI4XmJeGmcaWideGmYaZtdeYide1Bc00ideGms00idKUns05lJv6iJ48l3bHDgG+cIaGicaGicaGicaGicaGpc9ZDMC+cIaGicaGicaGicaGidWVyNv0Dg9UpG','zgvSzxrLlxrLyw0TBMfTzq','cIaGica8Dhi+cIaGicaGidX0zd4','z2v0rwXLBwvUDej5swq','y2HHBMDL','rgvSzxrPBMFIGky','zgvSzxrLqMLUzgLUzW','yMLUzgLUz3mTzw1WDhK','DgvHBs1TB2rHBa','C2vYDMvY','zMLSDgvY','zMLUzeLUzgv4','ntG2ohjxD0fICW','yMLUzgLUz3mTBw9KywWTDgL0Bgu','q3jLyxrPBMFIGky','zwrPDgLUz1rLyw1jza','C3vJy2vZCW','ywXS','zgLZywjSzwq','ywrKlwjPBMrPBMCTyNrU','rMfPBgvKihrVigXVywqGyMLUzgLUz3m6ia','pc9KAxy+','zgLZCgXHEq','BwvZC2fNzq','z2v0vgvHBxm','rgvSzxrLifrLyw0','DxnLCM5HBwu','mtaWmZe4AuXfvNbl','C2HVD1rVyxn0','re9nq29UDgvUDeXVywrLza','zgvSzxrLlxrLyw0TBw9KywW','vgvHBsbKzwXLDgvK','nKj4twvJwq','CMvZB3vYy2vFDhLWzq','yMLUzgLUzY1YzxnVDxjJzq','y2fUy2vSlxrLyw0','qwrKiejPBMrPBMC','C2f2zs10zwfT','mtu1nteZnvv1zvjJEG','cIaGicaGidX0CJ4kicaGicaGica8DgqGy29SC3bHBJ0ImYiGC3r5Bgu9iNrLEhqTywXPz246ignLBNrLCJSGy29SB3i6ihzHCIGTlwnVBg9YlxrLEhqTC2vJB25Kyxj5ktSGCgfKzgLUzZOGmNjLBtSIpGOGicaGicaGicaGtM8GDgvHBxmGEwv0lGOGicaGicaGicaG','pc9VChrPB24+','Bw9KywXtBMfWC2HVDa','z2v0qMLUzgLUz3m','BMfTzq','DgvHBxm','jYKIpGOGicaGicaGicaGicaGidXZDMCGD2LKDgG9iJe2iIbOzwLNAhq9iJe2iIb2Awv3qM94psiWidaGmJqGmJqIigzPBgW9iM5VBMuIihn0CM9Rzt0Iy3vYCMvUDenVBg9YiIbZDhjVA2uTD2LKDgG9iJiIihn0CM9Rzs1SAw5Ly2fWpsjYB3vUzciGC3rYB2TLlwXPBMvQB2LUpsjYB3vUzci+cIaGicaGicaGicaGicaGica8Cg9SEwXPBMuGCg9PBNrZpsiZidyGnsa2idiXidyIpJWVCg9SEwXPBMu+cIaGicaGicaGicaGicaGica8Cgf0AcbKpsjnmtKGnNyXngeYidiGmcaWideTmIaYsdDHmIaYidaGmcaXltiTmLy2BtmGmfy0ytiGmIaWidaGmsaYltjOngeYidiGmcaWideGmIaYDJiIpJWVCgf0Ad4kicaGicaGicaGicaGica8l3n2zZ4kicaGicaGicaGicaGpc9IDxr0B24+','y2fUy2vSlwrLBgv0zs10zwfT','DMfSDwu','pgj1DhrVBIbJBgfZCZ0IyNrUlwLJB24GyNrUlwrHBMDLCIiGDgL0Bgu9iKrLBgv0zsb0zwfTiIbVBMnSAwnRpsj3Aw5KB3CUzgvSzxrLvgvHBsGN','DgvHBxmTzxjYB3i','DgvHBxmTy29UDgvUDa','z2v0rw52AxjVBM1LBNrZ','jYKIihn0EwXLpsjJB2XVCJOGDMfYkc0Ty29SB3iTzgfUz2vYktSIpLjLBw92ztWVyNv0Dg9UpG','cIaGicaGidXKAxyGC3r5Bgu9iMrPC3bSyxK6igzSzxG7igfSAwDUlwL0zw1ZoIbJzw50zxi7igP1C3rPzNKTy29UDgvUDdOGC3bHy2uTyMv0D2vLBJSGCgfKzgLUzZOGmc4ZnxjLBsaWoYbIB3jKzxiTyM90Dg9ToIaXChGGC29SAwqGDMfYkc0Ty29SB3iTyM9YzgvYktSIpGOGicaGicaGidXZCgfUihn0EwXLpsjMB250lxnPEMu6idaUodC1CMvToYi+cIaGicaGicaGica','y2XVC2uTDgvHBs1TB2rHBa','cIaGicaGidX0CJ4kicaGicaGica8Dgq+cIaGicaGicaGica8C3bHBIbZDhLSzt0IzM9UDc13zwLNAhq6idyWmdSIpG','y2XVC2uTyMLUzgLUz3mTBw9KywW','idXZCgfUihn0EwXLpsjJB2XVCJOGDMfYkc0Ty29SB3iTDgv4Dc1ZzwnVBMrHCNKPoYbMB250lxnPEMu6idaUodvLBtSIpIG','zMXLEa','pg9WDgLVBIb2ywX1zt0I','mtC4mZGYn21zq1fyuq','CxvLCNLtzwXLy3rVCG','zw52AxjVBM1LBNrZ','BwvTyMvYCW','pg9WDgLVBIb2ywX1zt0IiJ5bBgWGzw52AxjVBM1LBNrZigfSCMvHzhKGyM91BMq8l29WDgLVBJ4','ywrKlw1LBwjLCI1IDg4','y2XPy2S','DgvHBq','CM9Szv9Pza','z2v0vxnLCNm','pgrPDIbZDhLSzt0IzM9UDc1ZAxPLoIaWlJHLBtSGy29SB3i6ihzHCIGTlwnVBg9YlxrLEhqTC2vJB25Kyxj5ktSGBwfYz2LUlxrVCdOGmc4XnxjLBtSIpG','ywrKvgvHBu1LBwjLCG','zgvSzxrPBMDuzwfTswq','C3r5Bgu','z2v0q3vYCMvUDfvZzxi','y3jLyxrLlxrLyw0TyNrU','yMLUzgLUz3nuzwfTswq','qwXSia','u2vYDMvY','pc90zd4kicaGicaGphrKpGOGicaGicaGia','AgfZ','zMLUza','qwnJzxnZiejPBMrPBMDZiokaLca','Aw5KzxGUAhrTBa','DgvHBs1KzxnJCMLWDgLVBG','yMLUzgLUzY1YzxnVDxjJzs10ExbL','y2XVC2uTzgvSzxrLlxrLyw0TBw9KywW','yMLUzgLUz3mTBw9KywW','jYKIihn0EwXLpsjJB2XVCJOGDMfYkc0Ty29SB3iTzgfUz2vYktSGCgfKzgLUzZOGmc4XnxjLBsaWlJrYzw07igzVBNqTC2L6ztOGmc44CMvToYi+uMvTB3zLpc9IDxr0B24+','zxjYB3i','DgvHBs1MB3jTlwvYCM9Y','y2fUtwfUywDLvgvHBxm','DgvHBxmTzxjYB3iTBwvZC2fNzq','DgvHBxmTDgfIBguTyM9KEq','jYKIpGOGicaGicaGicaGicaGidXZDMCGD2LKDgG9iJe2iIbOzwLNAhq9iJe2iIb2Awv3qM94psiWidaGmJqGmJqIigzPBgW9iM5VBMuIihn0CM9Rzt0Iy3vYCMvUDenVBg9YiIbZDhjVA2uTD2LKDgG9iJiIihn0CM9Rzs1SAw5Ly2fWpsjYB3vUzciGC3rYB2TLlwXPBMvQB2LUpsjYB3vUzci+cIaGicaGicaGicaGicaGica8Cgf0AcbKpsjnmtiGmJjZoc00idGTmtbwnwWToc0ZltGGm3y3yZaGnIa4ideWidGGmtb6iJ48l3bHDgG+cIaGicaGicaGicaGicaGpc9ZDMC+cIaGicaGicaGicaGidWVyNv0Dg9UpG','zgvZy3jPChrPB24','DxbKyxrLvgvHBq','mty5mZCXnKz3ENnrwq','twvTyMvYihjLBw92zwq','cIaGicaGicaGpc90zd4kicaGicaGpc90CJ4','zgvSzxrLvgvHBq','DhjPBq','yMLUzgLUzY1YB2XL','i3rLyw0TBw9KywWGlM1VzgfSlw92zxjSyxK','vgvHBsbUyw1LigLZihjLCxvPCMvK','ywrKlwjPBMrPBMCTzM9YBq','yMLUzgLUzY1YzxnVDxjJzs1JB250ywLUzxi','pgj1DhrVBIbJBgfZCZ0IyNrUlwLJB24IihrPDgXLpsjfzgL0ihrLyw0Iig9Uy2XPy2S9iNDPBMrVDY5VCgvUvgvHBu1VzgfSkcC','CMvTB3zLtwvTyMvYq2XPy2S','mJC3nJuWBNzdywTR','DgvHBs1TB2rHBc1MB290zxi','BwvTyMvYCY1SAxn0','C2f2zs1IAw5KAw5Nlwj0BG','zxnJyxbLshrTBa','zM9JDxm','nty3mKf4DKrYBG','BwvTyMvYCY1Zzwn0Aw9U','CM9Szxm','ihrLyw0','ww91igHHDMuGDw5ZyxzLzcbJAgfUz2vZlIbeAxnJyxjKihrOzw0/','pc90zd4kicaGicaGphrKpG','qMLUzgLUzYbHzgrLza','nde3ufvbDu5S','ywrKlw1LBwjLCI1YB3C','i2rLBgv0zs10zwfTlw1VzgfSic5TB2rHBc1VDMvYBgf5','Dgv4DenVBNrLBNq','y3jLyxrLqMLUzgLUzW','pgj1DhrVBIb0ExbLpsjIDxr0B24IignSyxnZpsjIDg4Tz2HVC3qGyNrUlxnTywXSiIbVBMnSAwnRpsj3Aw5KB3CUCMvTB3zLtwvTyMvYq2XPy2SOjW','y29UzMLYBs1KzwXLDguTDgvHBq','mZbzzMT1qLa','y2fUtwfUywDLtwvTyMvYCW','Bg9NAw4UAhrTBa','BgvUz3rO','zw52AxjVBM1LBNq','y3vYCMvUDfvZzxi','DgvHBs1Uyw1L','AgfZrw52AxjVBM1LBNrbzg1PBG','AM9PBG','DgvHBujPBMrPBMDZ','DxnLCNm','ywrKrxzLBNrmAxn0zw5LCG','BwfW','y2fUy2vSlwjPBMrPBMCTyNrU','ntm5ue9iCeX6','cIaGicaGicaGica8l2rPDJ4kicaGicaGica8l3rKpGOGicaGica8l3rYpG','i2jPBMrPBMDZlw1VzgfSic5TB2rHBc1VDMvYBgf5','rMfPBgvKihrVigrLBgv0zsb0zwfToIa','CMvZB3vYy2vFBMfTzq','BM9Uzq','AgfZqwXSugvYBwLZC2LVBNm','Aw5Uzxjive1m','DgvHBs1JB3vUDa','AgLKzgvU','ktWVC3bHBJ4','DgvHBs1TB2rHBc10AxrSzq','y2fUtwfUywDLvgvHBq','qwnJzxnZigrLBMLLzdOGww91igrVig5VDcbOyxzLihbLCM1PC3nPB24GDg8GDMLLDYb0zwfTCW','CMvZB3vYy2vFAwq','vgvHBsbJCMvHDgvK','cIaGicaGicaGpc90zd4kicaGicaGica8Dgq+'];_0x26df=function(){return _0x36e1ad;};return _0x26df();}function showCreateTeamModal(){const _0x4051ab=_0x312cdf;state['editingTeamId']=null,state['modalSnapshot']={'name':'','description':''},document['getElementById'](_0x4051ab(0x1a5))[_0x4051ab(0x188)]='Create\x20Team',document['getElementById']('team-name')['value']='',document[_0x4051ab(0x1b1)](_0x4051ab(0x192))[_0x4051ab(0x11d)]=![],document[_0x4051ab(0x1b1)](_0x4051ab(0x15f))[_0x4051ab(0x13a)]='',document['getElementById'](_0x4051ab(0x15f))[_0x4051ab(0x11d)]=![],document[_0x4051ab(0x1b1)](_0x4051ab(0x165))[_0x4051ab(0x1a3)]=!![],document[_0x4051ab(0x1b1)]('members-section')[_0x4051ab(0x1a3)]=!![],document['getElementById'](_0x4051ab(0x130))[_0x4051ab(0x1a3)]=![],document[_0x4051ab(0x1b1)](_0x4051ab(0x179))[_0x4051ab(0x1a3)]=![],document['getElementById'](_0x4051ab(0x113))['hidden']=![],setTimeout(()=>document[_0x4051ab(0x1b1)](_0x4051ab(0x192))[_0x4051ab(0x17d)](),0x64);}window['openTeamModal']=function(_0x3888f1){const _0xa90315=_0x312cdf,_0x5304c9=state['teams'][_0xa90315(0x15c)](_0x4fb48b=>_0x4fb48b['id']===_0x3888f1);if(!_0x5304c9)return;state[_0xa90315(0x11a)]=_0x3888f1;const _0x3eaaad=state[_0xa90315(0x191)]?.[_0xa90315(0x1a0)],_0x330ac1=_0x3eaaad||_0x5304c9[_0xa90315(0x1a6)],_0x406e87=_0x3eaaad||_0x5304c9['canManageMembers'],_0x842416=_0x330ac1,_0x177c80=_0x330ac1||_0x406e87,_0x1cea0c=_0x5304c9[_0xa90315(0x136)],_0x32719f=_0x5304c9['description']||'';state[_0xa90315(0x134)]={'name':_0x1cea0c,'description':_0x32719f},document[_0xa90315(0x1b1)](_0xa90315(0x1a5))[_0xa90315(0x188)]=_0x1cea0c,document[_0xa90315(0x1b1)](_0xa90315(0x192))[_0xa90315(0x13a)]=_0x1cea0c,document[_0xa90315(0x1b1)](_0xa90315(0x192))[_0xa90315(0x11d)]=!_0x842416,document[_0xa90315(0x1b1)](_0xa90315(0x15f))[_0xa90315(0x13a)]=_0x32719f,document[_0xa90315(0x1b1)](_0xa90315(0x15f))[_0xa90315(0x11d)]=!_0x842416,document['getElementById'](_0xa90315(0x165))[_0xa90315(0x1a3)]=!![],document[_0xa90315(0x1b1)](_0xa90315(0x17f))[_0xa90315(0x1a3)]=![],document[_0xa90315(0x1b1)](_0xa90315(0x130))[_0xa90315(0x1a3)]=!_0x842416,renderMembersList(_0x5304c9),updateMemberSelect(_0x5304c9),document[_0xa90315(0x1b1)](_0xa90315(0x113))['hidden']=![];};function isTeamModalDirty(){const _0x171e7a=_0x312cdf;if(!state[_0x171e7a(0x134)])return![];const _0x2565cf=document[_0x171e7a(0x1b1)](_0x171e7a(0x192))['value'][_0x171e7a(0x170)](),_0x490f0b=document[_0x171e7a(0x1b1)](_0x171e7a(0x15f))[_0x171e7a(0x13a)][_0x171e7a(0x170)]();return _0x2565cf!==state[_0x171e7a(0x134)][_0x171e7a(0x136)]||_0x490f0b!==state[_0x171e7a(0x134)][_0x171e7a(0x16a)];}function requestHideTeamModal(){const _0x42e1c3=_0x312cdf;if(isTeamModalDirty()){if(!confirm(_0x42e1c3(0x182)))return;}hideTeamModal();}function hideTeamModal(){const _0x393d47=_0x312cdf;document[_0x393d47(0x1b1)](_0x393d47(0x113))[_0x393d47(0x1a3)]=!![],document['getElementById'](_0x393d47(0x192))['disabled']=![],document['getElementById'](_0x393d47(0x15f))[_0x393d47(0x11d)]=![],state[_0x393d47(0x11a)]=null,state[_0x393d47(0x134)]=null;}window['openBindingsModal']=function(_0x183538){const _0x551c70=_0x312cdf,_0x3b2b23=state['teams']['find'](_0x2c9990=>_0x2c9990['id']===_0x183538);if(!_0x3b2b23)return;state['bindingsTeamId']=_0x183538,document['getElementById'](_0x551c70(0x118))[_0x551c70(0x188)]=_0x551c70(0x15d)+_0x3b2b23[_0x551c70(0x136)],document['getElementById'](_0x551c70(0x174))['hidden']=!![],document['getElementById'](_0x551c70(0x162))[_0x551c70(0x1a3)]=![],loadTeamBindings(_0x183538);};function hideBindingsModal(){const _0x4a0ef1=_0x312cdf;document[_0x4a0ef1(0x1b1)](_0x4a0ef1(0x162))[_0x4a0ef1(0x1a3)]=!![],state[_0x4a0ef1(0x157)]=null;}function renderMembersList(_0x33d3f8){const _0x4f5263=_0x312cdf,_0x19eff0=state['currentUser']?.[_0x4f5263(0x1a0)],_0x2f5d20=_0x19eff0||_0x33d3f8[_0x4f5263(0x18d)]||_0x33d3f8[_0x4f5263(0x1a6)],_0x298d2d=_0x33d3f8[_0x4f5263(0x14a)]||[],_0x570b42=document[_0x4f5263(0x1b1)](_0x4f5263(0x17a));if(_0x298d2d[_0x4f5263(0x18f)]===0x0){_0x570b42[_0x4f5263(0x1a1)]='<p\x20style=\x22font-size:\x200.875rem;\x20color:\x20var(--color-text-secondary);\x20margin:\x200.25rem\x200;\x22>No\x20members\x20yet</p>';return;}_0x570b42['innerHTML']=_0x298d2d[_0x4f5263(0x198)](_0x5178e3=>{const _0x6c70a4=_0x4f5263,_0x13049d=state[_0x6c70a4(0x196)][_0x6c70a4(0x15c)](_0x570092=>_0x570092['id']===_0x5178e3),_0xca8d61=_0x13049d?''+Utils[_0x6c70a4(0x17c)](_0x13049d[_0x6c70a4(0x125)])+(_0x13049d['name']?_0x6c70a4(0x144)+Utils['escapeHtml'](_0x13049d[_0x6c70a4(0x136)])+_0x6c70a4(0x1a4):''):Utils[_0x6c70a4(0x17c)](_0x5178e3);return _0x6c70a4(0x140)+_0xca8d61+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x2f5d20?_0x6c70a4(0x18a)+_0x5178e3+_0x6c70a4(0x163):'')+'\x0a\x20\x20\x20\x20\x20\x20</div>';})[_0x4f5263(0x194)]('');const _0x196348=document[_0x4f5263(0x1b1)](_0x4f5263(0x186));if(_0x196348)_0x196348[_0x4f5263(0x154)][_0x4f5263(0x121)]=_0x2f5d20?_0x4f5263(0x145):_0x4f5263(0x19f);}function updateMemberSelect(_0x83b5ef){const _0x36b6e7=_0x312cdf,_0x495073=document['getElementById']('add-member-select');if(!_0x495073)return;const _0x3bb6cb=new Set(_0x83b5ef[_0x36b6e7(0x14a)]||[]),_0x4347a3=state['users'][_0x36b6e7(0x115)](_0x2d5efa=>!_0x3bb6cb[_0x36b6e7(0x15b)](_0x2d5efa['id']));_0x495073[_0x36b6e7(0x1a1)]='<option\x20value=\x22\x22>Add\x20a\x20member…</option>'+_0x4347a3['map'](_0x66a4c1=>'<option\x20value=\x22'+_0x66a4c1['id']+'\x22>'+Utils[_0x36b6e7(0x17c)](_0x66a4c1['username'])+(_0x66a4c1[_0x36b6e7(0x136)]?'\x20('+Utils[_0x36b6e7(0x17c)](_0x66a4c1['name'])+')':'')+_0x36b6e7(0x133))[_0x36b6e7(0x194)]('');}function _0x23b9(_0xa77abe,_0xd6a6b0){_0xa77abe=_0xa77abe-0x10f;const _0x26df5e=_0x26df();let _0x23b98a=_0x26df5e[_0xa77abe];if(_0x23b9['YswKTG']===undefined){var _0x23cc27=function(_0x46f784){const _0x876a43='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x356c6b='',_0x2a0a9b='';for(let _0x5659b9=0x0,_0x1c4fb5,_0x5f0ae0,_0x1d4ba8=0x0;_0x5f0ae0=_0x46f784['charAt'](_0x1d4ba8++);~_0x5f0ae0&&(_0x1c4fb5=_0x5659b9%0x4?_0x1c4fb5*0x40+_0x5f0ae0:_0x5f0ae0,_0x5659b9++%0x4)?_0x356c6b+=String['fromCharCode'](0xff&_0x1c4fb5>>(-0x2*_0x5659b9&0x6)):0x0){_0x5f0ae0=_0x876a43['indexOf'](_0x5f0ae0);}for(let _0x491858=0x0,_0x273cd7=_0x356c6b['length'];_0x491858<_0x273cd7;_0x491858++){_0x2a0a9b+='%'+('00'+_0x356c6b['charCodeAt'](_0x491858)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2a0a9b);};_0x23b9['hiVqDv']=_0x23cc27,_0x23b9['ZpWrnw']={},_0x23b9['YswKTG']=!![];}const _0x398942=_0x26df5e[0x0],_0xcb308f=_0xa77abe+_0x398942,_0x31d6f5=_0x23b9['ZpWrnw'][_0xcb308f];return!_0x31d6f5?(_0x23b98a=_0x23b9['hiVqDv'](_0x23b98a),_0x23b9['ZpWrnw'][_0xcb308f]=_0x23b98a):_0x23b98a=_0x31d6f5,_0x23b98a;}async function addMember(){const _0x10b3ae=_0x312cdf,_0x2722d8=document[_0x10b3ae(0x1b1)]('add-member-select'),_0x20f941=_0x2722d8['value'];if(!_0x20f941||!state['editingTeamId'])return;try{const {team:_0x47693c}=await API[_0x10b3ae(0x152)](state[_0x10b3ae(0x11a)],_0x20f941);syncTeamInState(_0x47693c),renderMembersList(_0x47693c),updateMemberSelect(_0x47693c),_0x2722d8[_0x10b3ae(0x13a)]='',Utils['showToast']('Member\x20added',_0x10b3ae(0x11b));}catch(_0xa248f){Utils[_0x10b3ae(0x127)](_0xa248f[_0x10b3ae(0x122)],_0x10b3ae(0x164));}}window[_0x312cdf(0x177)]=async function(_0x18de6b){const _0x5374a5=_0x312cdf;if(!state[_0x5374a5(0x11a)])return;try{const {team:_0x486fb8}=await API['removeTeamMember'](state[_0x5374a5(0x11a)],_0x18de6b);syncTeamInState(_0x486fb8),renderMembersList(_0x486fb8),updateMemberSelect(_0x486fb8),Utils[_0x5374a5(0x127)](_0x5374a5(0x16d),_0x5374a5(0x11b));}catch(_0x39ef0d){Utils[_0x5374a5(0x127)](_0x39ef0d['message'],_0x5374a5(0x164));}};async function loadTeamBindings(_0x765fd5){const _0x3d0523=_0x312cdf,_0x1f1708=document[_0x3d0523(0x1b1)]('bindings-loading'),_0x507e97=document[_0x3d0523(0x1b1)](_0x3d0523(0x112)),_0x4f7b23=document[_0x3d0523(0x1b1)]('bindings-list-container'),_0x3e1b36=document[_0x3d0523(0x1b1)](_0x3d0523(0x11e));_0x1f1708['hidden']=![],_0x507e97[_0x3d0523(0x1a3)]=!![],_0x4f7b23[_0x3d0523(0x154)][_0x3d0523(0x121)]=_0x3d0523(0x19f),_0x3e1b36['hidden']=!![],document[_0x3d0523(0x1b1)]('add-binding-form')['hidden']=!![];try{const {bindings:_0x14ed39}=await API[_0x3d0523(0x135)]({'subject_type':'team','subject_id':_0x765fd5});state[_0x3d0523(0x195)]=_0x14ed39||[],_0x1f1708[_0x3d0523(0x1a3)]=!![],state[_0x3d0523(0x195)]['length']===0x0?_0x507e97[_0x3d0523(0x1a3)]=![]:(_0x4f7b23[_0x3d0523(0x154)][_0x3d0523(0x121)]='',renderBindingsTable()),(state[_0x3d0523(0x191)]?.[_0x3d0523(0x1a0)]||state['currentUser']?.['canManageTeams'])&&(_0x3e1b36[_0x3d0523(0x1a3)]=![]);}catch(_0x4a4124){_0x1f1708[_0x3d0523(0x1a3)]=!![],Utils[_0x3d0523(0x127)](_0x3d0523(0x11f)+_0x4a4124['message'],_0x3d0523(0x164));}}function renderBindingsTable(){const _0x2e3afb=_0x312cdf,_0x4c56fa=document[_0x2e3afb(0x1b1)]('bindings-table-body');if(!_0x4c56fa)return;const _0x109eac=state['currentUser']?.[_0x2e3afb(0x1a0)]||state['currentUser']?.[_0x2e3afb(0x166)];_0x4c56fa['innerHTML']=state[_0x2e3afb(0x195)][_0x2e3afb(0x198)](_0x3387ed=>{const _0x2eb731=_0x2e3afb,_0x5b58b2=_0x3387ed[_0x2eb731(0x12c)]===_0x2eb731(0x114)?_0x2eb731(0x159):_0x3387ed[_0x2eb731(0x1a8)]==='*'?_0x2eb731(0x158)+_0x3387ed['resource_type']+'s':Utils[_0x2eb731(0x17c)](_0x3387ed[_0x2eb731(0x19e)]||_0x3387ed['resource_id']||'');return _0x2eb731(0x1b0)+_0x5b58b2+_0x2eb731(0x183)+Utils[_0x2eb731(0x17c)](_0x3387ed['role_name']||_0x3387ed[_0x2eb731(0x14f)])+_0x2eb731(0x15a)+(_0x109eac?'<button\x20class=\x22btn-ghost\x20btn-small\x22\x20onclick=\x22window.deleteBindingClick(\x27'+_0x3387ed['id']+_0x2eb731(0x13f):'—')+'\x0a\x20\x20\x20\x20\x20\x20</td>\x0a\x20\x20\x20\x20</tr>';})[_0x2e3afb(0x194)]('');}function populateBindingForm(){const _0x50d3d0=_0x312cdf,_0x19a9db=document['getElementById']('binding-resource-type');_0x19a9db[_0x50d3d0(0x13a)]=_0x50d3d0(0x190),updateBindingFormForResourceType(_0x50d3d0(0x190));}function onBindingResourceTypeChange(){const _0x4982ca=_0x312cdf,_0x15b6e3=document[_0x4982ca(0x1b1)](_0x4982ca(0x160))[_0x4982ca(0x13a)];updateBindingFormForResourceType(_0x15b6e3);}function updateBindingFormForResourceType(_0x5cd004){const _0x4b3d20=_0x312cdf,_0x32e2e7=document[_0x4b3d20(0x1b1)](_0x4b3d20(0x175)),_0x3f264c=document[_0x4b3d20(0x1b1)](_0x4b3d20(0x12d)),_0x3e2859=document[_0x4b3d20(0x1b1)](_0x4b3d20(0x171));if(_0x5cd004===_0x4b3d20(0x114))_0x32e2e7['style']['display']=_0x4b3d20(0x19f);else{_0x32e2e7[_0x4b3d20(0x154)][_0x4b3d20(0x121)]='';if(_0x5cd004==='environment'){const _0x230dc4=new Set(state[_0x4b3d20(0x195)]['filter'](_0x1718a6=>_0x1718a6[_0x4b3d20(0x12c)]===_0x4b3d20(0x190))['map'](_0x1f839a=>_0x1f839a['resource_id'])),_0x4e4cb0=state[_0x4b3d20(0x149)][_0x4b3d20(0x115)](_0x256fde=>!_0x230dc4['has'](_0x256fde[_0x4b3d20(0x136)]));_0x3f264c['innerHTML']=_0x4e4cb0[_0x4b3d20(0x18f)]?_0x4e4cb0[_0x4b3d20(0x198)](_0x246ad1=>_0x4b3d20(0x146)+Utils['escapeHtml'](_0x246ad1[_0x4b3d20(0x136)])+'\x22>'+Utils[_0x4b3d20(0x17c)](_0x246ad1['name'])+_0x4b3d20(0x133))[_0x4b3d20(0x194)](''):_0x4b3d20(0x14b);}else{if(_0x5cd004===_0x4b3d20(0x14e)){const _0x50d095=new Set(state[_0x4b3d20(0x195)][_0x4b3d20(0x115)](_0x15005c=>_0x15005c[_0x4b3d20(0x12c)]===_0x4b3d20(0x14e))['map'](_0x18061a=>_0x18061a['resource_id'])),_0x1bb0ed=state[_0x4b3d20(0x137)][_0x4b3d20(0x115)](_0x1aebce=>!_0x50d095[_0x4b3d20(0x15b)](_0x1aebce['id']));_0x3f264c[_0x4b3d20(0x1a1)]=_0x1bb0ed['length']?_0x1bb0ed[_0x4b3d20(0x198)](_0x56967d=>_0x4b3d20(0x146)+_0x56967d['id']+'\x22>'+Utils[_0x4b3d20(0x17c)](_0x56967d[_0x4b3d20(0x136)])+'</option>')[_0x4b3d20(0x194)](''):'<option\x20value=\x22\x22>All\x20teams\x20already\x20bound</option>';}}}const _0x46b035=state[_0x4b3d20(0x180)][_0x4b3d20(0x115)](_0x1f8305=>_0x1f8305['resource_type']===_0x5cd004);_0x3e2859[_0x4b3d20(0x1a1)]=_0x46b035['length']?_0x46b035[_0x4b3d20(0x115)](_0x151212=>{const _0x3860d4=_0x4b3d20,_0x21b035=_0x5cd004===_0x3860d4(0x114)?undefined:_0x3f264c[_0x3860d4(0x13a)];return!state['teamBindings']['some'](_0x5b14ff=>_0x5b14ff[_0x3860d4(0x12c)]===_0x5cd004&&_0x5b14ff['role_id']===_0x151212['id']&&(_0x5cd004===_0x3860d4(0x114)||_0x5b14ff['resource_id']===_0x21b035));})[_0x4b3d20(0x198)](_0x29eca9=>_0x4b3d20(0x146)+_0x29eca9['id']+'\x22>'+Utils[_0x4b3d20(0x17c)](_0x29eca9[_0x4b3d20(0x136)])+_0x4b3d20(0x133))[_0x4b3d20(0x194)]('')||'<option\x20value=\x22\x22>No\x20available\x20roles</option>':'<option\x20value=\x22\x22>No\x20roles\x20for\x20this\x20resource\x20type</option>';}async function saveBinding(){const _0x1ec47d=_0x312cdf,_0x5db91d=document[_0x1ec47d(0x1b1)]('binding-resource-type')['value'],_0x57d741=document[_0x1ec47d(0x1b1)](_0x1ec47d(0x171))[_0x1ec47d(0x13a)];if(!_0x57d741||!state['bindingsTeamId'])return;const _0x2ee039=_0x5db91d===_0x1ec47d(0x114)?undefined:document['getElementById'](_0x1ec47d(0x12d))[_0x1ec47d(0x13a)];if(_0x5db91d!==_0x1ec47d(0x114)&&!_0x2ee039)return;const _0x48649b=document[_0x1ec47d(0x1b1)](_0x1ec47d(0x17b));_0x48649b['disabled']=!![],_0x48649b[_0x1ec47d(0x188)]='Adding…';try{const _0xf13f2c={'subject_type':_0x1ec47d(0x14e),'subject_id':state[_0x1ec47d(0x157)],'role_id':_0x57d741,'resource_type':_0x5db91d};if(_0x2ee039)_0xf13f2c[_0x1ec47d(0x1a8)]=_0x2ee039;await API[_0x1ec47d(0x189)](_0xf13f2c),Utils['showToast'](_0x1ec47d(0x184),_0x1ec47d(0x11b)),document[_0x1ec47d(0x1b1)]('add-binding-form')[_0x1ec47d(0x1a3)]=!![],document[_0x1ec47d(0x1b1)](_0x1ec47d(0x11e))[_0x1ec47d(0x1a3)]=![],await loadTeamBindings(state[_0x1ec47d(0x157)]);}catch(_0x195f78){Utils[_0x1ec47d(0x127)](_0x195f78[_0x1ec47d(0x122)],_0x1ec47d(0x164));}finally{_0x48649b[_0x1ec47d(0x11d)]=![],_0x48649b[_0x1ec47d(0x188)]=_0x1ec47d(0x12f);}}window['deleteBindingClick']=async function(_0x5e3a02){const _0x5754b9=_0x312cdf;try{await API[_0x5754b9(0x111)](_0x5e3a02),Utils['showToast']('Binding\x20removed','success'),await loadTeamBindings(state[_0x5754b9(0x157)]);}catch(_0x4cafbd){Utils['showToast'](_0x4cafbd[_0x5754b9(0x122)],_0x5754b9(0x164));}};async function saveTeam(){const _0x299cbe=_0x312cdf,_0x46b939=document[_0x299cbe(0x1b1)]('team-name')[_0x299cbe(0x13a)][_0x299cbe(0x170)](),_0x1c1e1f=document[_0x299cbe(0x1b1)](_0x299cbe(0x15f))[_0x299cbe(0x13a)][_0x299cbe(0x170)](),_0x593d10=document[_0x299cbe(0x1b1)](_0x299cbe(0x165)),_0x473587=document[_0x299cbe(0x1b1)]('save-team');if(!_0x46b939){_0x593d10['textContent']=_0x299cbe(0x173),_0x593d10[_0x299cbe(0x1a3)]=![];return;}_0x593d10[_0x299cbe(0x1a3)]=!![];const _0x2df513=_0x473587[_0x299cbe(0x188)];_0x473587['disabled']=!![],_0x473587[_0x299cbe(0x188)]=state['editingTeamId']?'Saving…':_0x299cbe(0x119);try{if(state['editingTeamId']){const {team:_0x5f0ed6}=await API[_0x299cbe(0x16b)](state[_0x299cbe(0x11a)],{'name':_0x46b939,'description':_0x1c1e1f});syncTeamInState(_0x5f0ed6),document[_0x299cbe(0x1b1)]('team-modal-title')[_0x299cbe(0x188)]=_0x5f0ed6[_0x299cbe(0x136)],Utils[_0x299cbe(0x127)]('Team\x20updated',_0x299cbe(0x11b));}else await API['createTeam']({'name':_0x46b939,'description':_0x1c1e1f}),Utils['showToast'](_0x299cbe(0x1a9),_0x299cbe(0x11b));_0x473587[_0x299cbe(0x11d)]=![],_0x473587[_0x299cbe(0x188)]=_0x2df513,hideTeamModal(),await loadTeams();}catch(_0x44e44c){_0x593d10[_0x299cbe(0x188)]=_0x44e44c[_0x299cbe(0x122)],_0x593d10[_0x299cbe(0x1a3)]=![],_0x473587['disabled']=![],_0x473587[_0x299cbe(0x188)]=_0x2df513;}}window[_0x312cdf(0x16f)]=function(_0x257da7){const _0x34d871=_0x312cdf,_0x312dd2=state[_0x34d871(0x137)][_0x34d871(0x15c)](_0x7c51f7=>_0x7c51f7['id']===_0x257da7);if(!_0x312dd2)return;state[_0x34d871(0x153)]=_0x257da7,document[_0x34d871(0x1b1)](_0x34d871(0x1af))['textContent']=_0x312dd2[_0x34d871(0x136)],document[_0x34d871(0x1b1)](_0x34d871(0x129))[_0x34d871(0x1a3)]=![];};function hideDeleteModal(){const _0x21ca11=_0x312cdf;document[_0x21ca11(0x1b1)]('delete-team-modal')[_0x21ca11(0x1a3)]=!![],state['deletingTeamId']=null;}async function confirmDeleteTeam(){const _0x5e2a7c=_0x312cdf;if(!state[_0x5e2a7c(0x153)])return;const _0x26f520=document[_0x5e2a7c(0x1b1)](_0x5e2a7c(0x18b));_0x26f520['disabled']=!![],_0x26f520[_0x5e2a7c(0x188)]=_0x5e2a7c(0x110);try{await API[_0x5e2a7c(0x16f)](state['deletingTeamId']),Utils[_0x5e2a7c(0x127)](_0x5e2a7c(0x12a),_0x5e2a7c(0x11b)),_0x26f520[_0x5e2a7c(0x11d)]=![],_0x26f520[_0x5e2a7c(0x188)]='Delete\x20Team',hideDeleteModal(),await loadTeams();}catch(_0x6b9bda){Utils[_0x5e2a7c(0x127)](_0x5e2a7c(0x19d)+_0x6b9bda['message'],'error'),_0x26f520[_0x5e2a7c(0x11d)]=![],_0x26f520[_0x5e2a7c(0x188)]=_0x5e2a7c(0x124);}}function syncTeamInState(_0x521f66){const _0x31f7f6=_0x312cdf,_0x5bd0ce=state[_0x31f7f6(0x137)][_0x31f7f6(0x116)](_0x305d65=>_0x305d65['id']===_0x521f66['id']);if(_0x5bd0ce>=0x0)state[_0x31f7f6(0x137)][_0x5bd0ce]=_0x521f66;renderTeams();}
@@ -1 +1 @@
1
- const _0x37e5e5=_0x3fd4;(function(_0x3231eb,_0x50e34b){const _0x2146e4=_0x3fd4,_0x1e5b18=_0x3231eb();while(!![]){try{const _0x3f0f59=-parseInt(_0x2146e4(0x162))/0x1*(parseInt(_0x2146e4(0x177))/0x2)+parseInt(_0x2146e4(0x124))/0x3+-parseInt(_0x2146e4(0x131))/0x4+parseInt(_0x2146e4(0x155))/0x5*(-parseInt(_0x2146e4(0x139))/0x6)+parseInt(_0x2146e4(0x161))/0x7*(-parseInt(_0x2146e4(0x164))/0x8)+-parseInt(_0x2146e4(0x13c))/0x9*(parseInt(_0x2146e4(0x129))/0xa)+parseInt(_0x2146e4(0x159))/0xb*(parseInt(_0x2146e4(0x15e))/0xc);if(_0x3f0f59===_0x50e34b)break;else _0x1e5b18['push'](_0x1e5b18['shift']());}catch(_0x4ea026){_0x1e5b18['push'](_0x1e5b18['shift']());}}}(_0x4505,0xe0ad2));import{API,Utils}from'./app.js';import{Terminal}from'https://cdn.jsdelivr.net/npm/xterm@5.3.0/+esm';import{FitAddon}from'https://cdn.jsdelivr.net/npm/xterm-addon-fit@0.7.0/+esm';import{getCurrentTheme,initTheme,mountThemeToggle,onThemeChange}from'./theme.js';function _0x3fd4(_0x4deaf2,_0x129d49){_0x4deaf2=_0x4deaf2-0x123;const _0x450571=_0x4505();let _0x3fd41d=_0x450571[_0x4deaf2];if(_0x3fd4['XzMdvo']===undefined){var _0x1f5272=function(_0x2d837d){const _0x46509f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x588325='',_0x3acbf4='';for(let _0x2b6cf1=0x0,_0x3bbe0e,_0xbf76f1,_0x20adb4=0x0;_0xbf76f1=_0x2d837d['charAt'](_0x20adb4++);~_0xbf76f1&&(_0x3bbe0e=_0x2b6cf1%0x4?_0x3bbe0e*0x40+_0xbf76f1:_0xbf76f1,_0x2b6cf1++%0x4)?_0x588325+=String['fromCharCode'](0xff&_0x3bbe0e>>(-0x2*_0x2b6cf1&0x6)):0x0){_0xbf76f1=_0x46509f['indexOf'](_0xbf76f1);}for(let _0x2e492a=0x0,_0x4b38b9=_0x588325['length'];_0x2e492a<_0x4b38b9;_0x2e492a++){_0x3acbf4+='%'+('00'+_0x588325['charCodeAt'](_0x2e492a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3acbf4);};_0x3fd4['yZivoC']=_0x1f5272,_0x3fd4['nLgHcS']={},_0x3fd4['XzMdvo']=!![];}const _0x255aea=_0x450571[0x0],_0x5e993b=_0x4deaf2+_0x255aea,_0x3ef3b5=_0x3fd4['nLgHcS'][_0x5e993b];return!_0x3ef3b5?(_0x3fd41d=_0x3fd4['yZivoC'](_0x3fd41d),_0x3fd4['nLgHcS'][_0x5e993b]=_0x3fd41d):_0x3fd41d=_0x3ef3b5,_0x3fd41d;}const params=Utils[_0x37e5e5(0x127)](),containerId=params[_0x37e5e5(0x140)],command=(params[_0x37e5e5(0x160)]||'')[_0x37e5e5(0x168)](),useServerExec=params['server_exec']===_0x37e5e5(0x16d),titleEl=document[_0x37e5e5(0x14a)](_0x37e5e5(0x143)),subtitleEl=document[_0x37e5e5(0x14a)](_0x37e5e5(0x175)),statusEl=document[_0x37e5e5(0x14a)](_0x37e5e5(0x16e)),terminalEl=document[_0x37e5e5(0x14a)]('terminal-container'),closeBtn=document[_0x37e5e5(0x14a)]('close-terminal');initTheme(),mountThemeToggle({'targetSelectors':[_0x37e5e5(0x133)]});const getXtermTheme=()=>{const _0x2cb86f=_0x37e5e5;return{'background':_0x2cb86f(0x147),'foreground':_0x2cb86f(0x144),'cursor':_0x2cb86f(0x144),'cursorAccent':_0x2cb86f(0x147)};};closeBtn&&closeBtn[_0x37e5e5(0x158)]('click',()=>{const _0x17053d=_0x37e5e5;window[_0x17053d(0x13d)]();});if(!containerId){updateStatus(_0x37e5e5(0x173),_0x37e5e5(0x12b));throw new Error(_0x37e5e5(0x157));}function _0x4505(){const _0x56e5a9=['DMfYAwfUDa','mJu4odbmBuXpve8','zMLUza','zxjYB3i','C2vUza','C3vIC3rYAw5N','zgf0yq','y29UDgfPBMvYswq','imk3ifn0yxj0zwqG','nJGYmJe1mLDZs0D3uG','DhLWzq','lNrLCM1PBMfSlwfJDgLVBNm','zgf0yxnLDa','zM9JDxm','q29UBMvJDgLVBIbLCNjVCG','CMvHzhLtDgf0zq','l3DZl2nVBNrHAw5LCNmV','mtqWmJjHtvniDwG','u2vZC2LVBIa','Aw5MBW','ndG2meDWDxfjtG','y2XVC2u','Dgv4DenVBNrLBNq','y3jLyxrLzef0','y29UDgfPBMvY','C2nYB2XSvg9cB3r0B20','zgvMyxvSDefNzw50','DgvYBwLUywWTDgL0Bgu','i2uYztHMma','BwvZC2fNzq','uhjLCgfYAw5NoIa','iZbMmtCYyq','DgL0Bgu','vgvYBwLUywWGWRCG','z2v0rwXLBwvUDej5swq','rMfPBgvKihrVihbHCNnLihrLCM1PBMfSig1LC3nHz2u','C3rYAw5NAwz5','vgvYBwLUywWGD2vIC29JA2v0igvYCM9Y','q29UBMvJDgLVBIbJBg9Zzwq','y2f0y2G','z2v0q29UDgfPBMvY','z2v0q29UDgfPBMvYCW','zw52AxjVBM1LBNq','y29UDgfPBMvYCW','B3bLBG','mtaWnxPltKjkDa','sMv0qNjHAw5Zie1VBM8Sifngtw9UBY1szwD1BgfYlcbdB25ZB2XHCYWGBw9UB3nWywnL','y29UDgfPBMvYihbHCMfTzxrLCIbPCYbYzxf1AxjLza','ywrKrxzLBNrmAxn0zw5LCG','mJmXmdK4odLOsenHyxi','rw52AxjVBM1LBNqGDw5RBM93BG','B25eyxrH','D2fZq2XLyw4','zML0','mZzhDwThD2C','rw52AxjVBM1LBNqG','y21K','mJeWndLwqKj5r1C','mJjmvfbyC1i','C2v0','mJy0oe1YqwPKvW','vgvYBwLUywWGy29UBMvJDgvK','B2jZzxj2zq','Bg9JyxrPB24','DhjPBq','zM9YBwf0uMvSyxrPDMvuAw1L','zNvSBenVBNrHAw5LCKLK','BMfTzq','y29UBMvJDgvK','Dhj1zq','DgvYBwLUywWTC3rHDhvZ','CgfYC2u','ChjVDg9JB2W','t1bftG','Bg9HzefKzg9U','twLZC2LUzYbJB250ywLUzxiGAwrLBNrPzMLLCG','imk3ienVBw1HBMqG','DgvYBwLUywWTC3vIDgL0Bgu','q29UDgfPBMvYia','mte5nJe4EefurLvd','C3rHDhvZ','CMvZAxPL','y29SCW','C2vHCMnOugfYyw1Z','mtuWndq2mxrtB01XuW','C3vJy2vZCW','uNvUBMLUzZOG','z2v0uxvLCNLqyxjHBxm'];_0x4505=function(){return _0x56e5a9;};return _0x4505();}document[_0x37e5e5(0x148)]=_0x37e5e5(0x149)+containerId['slice'](0x0,0xc),enrichContainerDetails(containerId)[_0x37e5e5(0x14f)](()=>{const _0x23b35b=_0x37e5e5;subtitleEl['textContent']=_0x23b35b(0x176)+containerId[_0x23b35b(0x12d)](0x0,0xc);});const term=new Terminal({'convertEol':!![],'cursorBlink':!![],'fontFamily':_0x37e5e5(0x156),'fontSize':0x10,'theme':getXtermTheme()}),fitAddon=new FitAddon();term[_0x37e5e5(0x172)](fitAddon),term[_0x37e5e5(0x154)](terminalEl),term['focus']();let isFitting=![];const doFit=()=>{const _0x3b3695=_0x37e5e5;if(isFitting)return;isFitting=!![],fitAddon[_0x3b3695(0x15d)](),sendResize(),term[_0x3b3695(0x141)](),setTimeout(()=>{isFitting=![];},0x32);};window['addEventListener'](_0x37e5e5(0x179),()=>{requestAnimationFrame(()=>{!isFitting&&doFit();});});const resizeObserver=new ResizeObserver(()=>{requestAnimationFrame(()=>{!isFitting&&doFit();});});resizeObserver[_0x37e5e5(0x166)](terminalEl);const socketProtocol=window['location'][_0x37e5e5(0x170)]==='https:'?'wss':'ws',socketUrl=new URL(_0x37e5e5(0x138)+encodeURIComponent(containerId),window[_0x37e5e5(0x167)]['href']);command&&useServerExec&&socketUrl[_0x37e5e5(0x123)][_0x37e5e5(0x163)](_0x37e5e5(0x160),command);socketUrl[_0x37e5e5(0x170)]=socketProtocol+':';const socket=new WebSocket(socketUrl['toString']());term[_0x37e5e5(0x15b)](_0x588325=>{const _0x5e6975=_0x37e5e5;socket[_0x5e6975(0x137)]===WebSocket[_0x5e6975(0x171)]&&socket['send'](JSON['stringify']({'type':_0x5e6975(0x12e),'data':_0x588325}));});let commandSent=![],hasReceivedOutput=![];socket[_0x37e5e5(0x158)](_0x37e5e5(0x145),_0x3acbf4=>{const _0x52697b=_0x37e5e5;try{const _0x2b6cf1=JSON[_0x52697b(0x16f)](_0x3acbf4['data']);if(_0x2b6cf1[_0x52697b(0x132)]===_0x52697b(0x12e)&&typeof _0x2b6cf1['data']==='string')term['write'](_0x2b6cf1[_0x52697b(0x12e)]),!hasReceivedOutput&&_0x2b6cf1[_0x52697b(0x12e)]['length']>0x0&&(hasReceivedOutput=!![],command&&!useServerExec&&!commandSent&&(commandSent=!![],setTimeout(()=>{const _0x15c2ff=_0x52697b;socket[_0x15c2ff(0x137)]===WebSocket[_0x15c2ff(0x171)]&&socket[_0x15c2ff(0x12c)](JSON[_0x15c2ff(0x14c)]({'type':_0x15c2ff(0x12e),'data':command+'\x0d'}));},0xc8)));else{if(_0x2b6cf1['type']==='status'&&_0x2b6cf1[_0x52697b(0x178)]){if(_0x2b6cf1[_0x52697b(0x178)]===_0x52697b(0x16c)){if(command&&useServerExec)updateStatus(_0x52697b(0x126)+command,_0x52697b(0x13b));else command?updateStatus(_0x52697b(0x146)+command,'info'):updateStatus(_0x52697b(0x165),_0x52697b(0x125));doFit(),term[_0x52697b(0x135)](),command&&!useServerExec&&!commandSent&&setTimeout(()=>{const _0x2abc9f=_0x52697b;!commandSent&&socket[_0x2abc9f(0x137)]===WebSocket[_0x2abc9f(0x171)]&&(commandSent=!![],socket[_0x2abc9f(0x12c)](JSON[_0x2abc9f(0x14c)]({'type':_0x2abc9f(0x12e),'data':command+'\x0d'})),updateStatus(_0x2abc9f(0x126)+command,_0x2abc9f(0x13b)));},0x7d0);}else updateStatus(_0x52697b(0x13a)+_0x2b6cf1[_0x52697b(0x178)],_0x2b6cf1['status']===_0x52697b(0x16c)?'success':_0x52697b(0x13b));}else _0x2b6cf1['type']===_0x52697b(0x12b)&&_0x2b6cf1[_0x52697b(0x145)]&&updateStatus(_0x2b6cf1[_0x52697b(0x145)],_0x52697b(0x12b));}}catch(_0x3bbe0e){console[_0x52697b(0x12b)](_0x52697b(0x14b),_0x3bbe0e);}}),socket[_0x37e5e5(0x158)](_0x37e5e5(0x13d),_0xbf76f1=>{const _0xbd5eed=_0x37e5e5,_0x20adb4=_0xbf76f1['reason']||_0xbd5eed(0x14e);updateStatus(_0x20adb4,_0xbf76f1[_0xbd5eed(0x15c)]?'info':_0xbd5eed(0x12b));}),socket['addEventListener'](_0x37e5e5(0x12b),_0x2e492a=>{const _0x1578cc=_0x37e5e5;console[_0x1578cc(0x12b)](_0x1578cc(0x14d),_0x2e492a),updateStatus(_0x1578cc(0x136),_0x1578cc(0x12b));});function sendResize(){const _0x2e822a=_0x37e5e5;if(socket['readyState']!==WebSocket[_0x2e822a(0x171)])return;const _0x4b38b9=term[_0x2e822a(0x17a)],_0x3b1692=term['rows'];socket[_0x2e822a(0x12c)](JSON[_0x2e822a(0x14c)]({'type':'resize','cols':_0x4b38b9,'rows':_0x3b1692}));}function updateStatus(_0x1ad434,_0x2dec2b=_0x37e5e5(0x13b)){const _0x1911a3=_0x37e5e5;if(!statusEl)return;statusEl[_0x1911a3(0x13e)]=_0x1ad434,statusEl[_0x1911a3(0x134)][_0x1911a3(0x128)]=_0x2dec2b;}async function enrichContainerDetails(_0x2fad09){const _0x2fe768=_0x37e5e5;try{const _0x2f407f=await API[_0x2fe768(0x150)](_0x2fad09);updateTerminalDetails(_0x2f407f);}catch{try{const _0x1479dd=await API[_0x2fe768(0x151)](),_0x25436c=(_0x1479dd[_0x2fe768(0x153)]||[])[_0x2fe768(0x12a)](_0x1d7d42=>_0x1d7d42['containerId']===_0x2fad09||_0x1d7d42['name']===_0x2fad09||_0x1d7d42[_0x2fe768(0x16a)]?.['startsWith'](_0x2fad09));if(_0x25436c){updateTerminalDetails(_0x25436c);return;}subtitleEl[_0x2fe768(0x13e)]=_0x2fe768(0x176)+_0x2fad09[_0x2fe768(0x12d)](0x0,0xc);}catch{subtitleEl['textContent']=_0x2fe768(0x176)+_0x2fad09['substring'](0x0,0xc);}}}function updateTerminalDetails(_0x5bbc6b){const _0x4244ed=_0x37e5e5,_0x226f7d=_0x5bbc6b[_0x4244ed(0x12f)]||_0x5bbc6b[_0x4244ed(0x16b)]||_0x5bbc6b['fullContainerId']||containerId,_0x32f3de=_0x5bbc6b[_0x4244ed(0x152)]?_0x4244ed(0x15f)+_0x5bbc6b['environment']:_0x4244ed(0x15a),_0x36d138=_0x5bbc6b[_0x4244ed(0x142)]?'\x20·\x20Agent\x20'+_0x5bbc6b[_0x4244ed(0x142)]:'',_0x58d341=_0x5bbc6b['createdAt']?_0x4244ed(0x130)+Utils[_0x4244ed(0x169)](_0x5bbc6b[_0x4244ed(0x13f)]):'';titleEl['textContent']=_0x4244ed(0x149)+_0x226f7d[_0x4244ed(0x12d)](0x0,0xc);const _0x803695=command?_0x4244ed(0x174)+command:'';subtitleEl[_0x4244ed(0x13e)]=''+_0x32f3de+_0x36d138+_0x58d341+_0x803695;}
1
+ const _0x5219f7=_0x1ddc;(function(_0x3e87a1,_0x565ebf){const _0x13864e=_0x1ddc,_0x15f243=_0x3e87a1();while(!![]){try{const _0x362c0d=parseInt(_0x13864e(0x182))/0x1*(-parseInt(_0x13864e(0x150))/0x2)+-parseInt(_0x13864e(0x17a))/0x3*(parseInt(_0x13864e(0x189))/0x4)+-parseInt(_0x13864e(0x153))/0x5*(parseInt(_0x13864e(0x194))/0x6)+-parseInt(_0x13864e(0x17e))/0x7+-parseInt(_0x13864e(0x154))/0x8*(-parseInt(_0x13864e(0x17f))/0x9)+parseInt(_0x13864e(0x19a))/0xa*(-parseInt(_0x13864e(0x16d))/0xb)+-parseInt(_0x13864e(0x159))/0xc*(-parseInt(_0x13864e(0x16e))/0xd);if(_0x362c0d===_0x565ebf)break;else _0x15f243['push'](_0x15f243['shift']());}catch(_0x7df929){_0x15f243['push'](_0x15f243['shift']());}}}(_0x2565,0xacc64));import{API,Utils}from'./app.js';import{Terminal}from'https://cdn.jsdelivr.net/npm/xterm@5.3.0/+esm';import{FitAddon}from'https://cdn.jsdelivr.net/npm/xterm-addon-fit@0.7.0/+esm';import{getCurrentTheme,initTheme,mountThemeToggle,onThemeChange}from'./theme.js';const params=Utils['getQueryParams'](),containerId=params[_0x5219f7(0x183)],command=(params['cmd']||'')[_0x5219f7(0x18b)](),useServerExec=params['server_exec']===_0x5219f7(0x161),titleEl=document[_0x5219f7(0x177)](_0x5219f7(0x16f)),subtitleEl=document['getElementById'](_0x5219f7(0x14e)),statusEl=document[_0x5219f7(0x177)](_0x5219f7(0x17b)),terminalEl=document['getElementById'](_0x5219f7(0x197)),closeBtn=document[_0x5219f7(0x177)](_0x5219f7(0x156));initTheme(),mountThemeToggle({'targetSelectors':[_0x5219f7(0x1a1)]});const getXtermTheme=()=>{const _0x3ab377=_0x5219f7;return{'background':_0x3ab377(0x164),'foreground':'#e2e8f0','cursor':_0x3ab377(0x196),'cursorAccent':_0x3ab377(0x164)};};function _0x1ddc(_0x411be6,_0x434963){_0x411be6=_0x411be6-0x14a;const _0x25656e=_0x2565();let _0x1ddc57=_0x25656e[_0x411be6];if(_0x1ddc['FFOpOC']===undefined){var _0x26d045=function(_0x37d503){const _0x4e89a7='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x23ee61='',_0x25f992='';for(let _0x92d98b=0x0,_0x20de38,_0x276dc9,_0x4b5413=0x0;_0x276dc9=_0x37d503['charAt'](_0x4b5413++);~_0x276dc9&&(_0x20de38=_0x92d98b%0x4?_0x20de38*0x40+_0x276dc9:_0x276dc9,_0x92d98b++%0x4)?_0x23ee61+=String['fromCharCode'](0xff&_0x20de38>>(-0x2*_0x92d98b&0x6)):0x0){_0x276dc9=_0x4e89a7['indexOf'](_0x276dc9);}for(let _0x335b5a=0x0,_0x2bc5a2=_0x23ee61['length'];_0x335b5a<_0x2bc5a2;_0x335b5a++){_0x25f992+='%'+('00'+_0x23ee61['charCodeAt'](_0x335b5a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x25f992);};_0x1ddc['FPKjgJ']=_0x26d045,_0x1ddc['KBoOWB']={},_0x1ddc['FFOpOC']=!![];}const _0x380150=_0x25656e[0x0],_0x4b626d=_0x411be6+_0x380150,_0x3a0ca7=_0x1ddc['KBoOWB'][_0x4b626d];return!_0x3a0ca7?(_0x1ddc57=_0x1ddc['FPKjgJ'](_0x1ddc57),_0x1ddc['KBoOWB'][_0x4b626d]=_0x1ddc57):_0x1ddc57=_0x3a0ca7,_0x1ddc57;}closeBtn&&closeBtn[_0x5219f7(0x195)]('click',()=>{window['close']();});if(!containerId){updateStatus(_0x5219f7(0x180),'error');throw new Error(_0x5219f7(0x18d));}document[_0x5219f7(0x15a)]='Terminal\x20·\x20'+containerId[_0x5219f7(0x1a5)](0x0,0xc),enrichContainerDetails(containerId)['catch'](()=>{const _0x3ec04f=_0x5219f7;subtitleEl[_0x3ec04f(0x16a)]=_0x3ec04f(0x18c)+containerId[_0x3ec04f(0x155)](0x0,0xc);});const term=new Terminal({'convertEol':!![],'cursorBlink':!![],'fontFamily':_0x5219f7(0x14f),'fontSize':0x10,'theme':getXtermTheme()}),fitAddon=new FitAddon();term['loadAddon'](fitAddon),term[_0x5219f7(0x188)](terminalEl),term[_0x5219f7(0x174)]();let isFitting=![];const doFit=()=>{const _0x1bac28=_0x5219f7;if(isFitting)return;isFitting=!![],fitAddon['fit'](),sendResize(),term[_0x1bac28(0x184)](),setTimeout(()=>{isFitting=![];},0x32);};window['addEventListener'](_0x5219f7(0x17c),()=>{requestAnimationFrame(()=>{!isFitting&&doFit();});});const resizeObserver=new ResizeObserver(()=>{requestAnimationFrame(()=>{!isFitting&&doFit();});});resizeObserver[_0x5219f7(0x173)](terminalEl);const socketProtocol=window['location'][_0x5219f7(0x19e)]===_0x5219f7(0x1a0)?_0x5219f7(0x162):'ws',socketUrl=new URL('/ws/containers/'+encodeURIComponent(containerId),window[_0x5219f7(0x14a)][_0x5219f7(0x18e)]);command&&useServerExec&&socketUrl[_0x5219f7(0x157)][_0x5219f7(0x15f)](_0x5219f7(0x18a),command);socketUrl[_0x5219f7(0x19e)]=socketProtocol+':';const socket=new WebSocket(socketUrl[_0x5219f7(0x16b)]());term[_0x5219f7(0x16c)](_0x23ee61=>{const _0x4e02d3=_0x5219f7;socket[_0x4e02d3(0x199)]===WebSocket['OPEN']&&socket['send'](JSON['stringify']({'type':_0x4e02d3(0x19c),'data':_0x23ee61}));});let commandSent=![],hasReceivedOutput=![];socket['addEventListener']('message',_0x25f992=>{const _0x196b08=_0x5219f7;try{const _0x92d98b=JSON[_0x196b08(0x175)](_0x25f992['data']);if(_0x92d98b['type']===_0x196b08(0x19c)&&typeof _0x92d98b['data']==='string')term[_0x196b08(0x1a4)](_0x92d98b[_0x196b08(0x19c)]),!hasReceivedOutput&&_0x92d98b[_0x196b08(0x19c)]['length']>0x0&&(hasReceivedOutput=!![],command&&!useServerExec&&!commandSent&&(commandSent=!![],setTimeout(()=>{const _0x72d9f7=_0x196b08;socket['readyState']===WebSocket['OPEN']&&socket['send'](JSON[_0x72d9f7(0x168)]({'type':_0x72d9f7(0x19c),'data':command+'\x0d'}));},0xc8)));else{if(_0x92d98b[_0x196b08(0x158)]===_0x196b08(0x15e)&&_0x92d98b[_0x196b08(0x15e)]){if(_0x92d98b[_0x196b08(0x15e)]==='connected'){if(command&&useServerExec)updateStatus('Running:\x20'+command,_0x196b08(0x18f));else command?updateStatus(_0x196b08(0x19b)+command,_0x196b08(0x18f)):updateStatus(_0x196b08(0x166),_0x196b08(0x171));doFit(),term[_0x196b08(0x174)](),command&&!useServerExec&&!commandSent&&setTimeout(()=>{const _0x5ea439=_0x196b08;!commandSent&&socket[_0x5ea439(0x199)]===WebSocket['OPEN']&&(commandSent=!![],socket['send'](JSON[_0x5ea439(0x168)]({'type':_0x5ea439(0x19c),'data':command+'\x0d'})),updateStatus(_0x5ea439(0x185)+command,_0x5ea439(0x18f)));},0x7d0);}else updateStatus(_0x196b08(0x19f)+_0x92d98b[_0x196b08(0x15e)],_0x92d98b[_0x196b08(0x15e)]===_0x196b08(0x178)?_0x196b08(0x171):_0x196b08(0x18f));}else _0x92d98b[_0x196b08(0x158)]===_0x196b08(0x169)&&_0x92d98b[_0x196b08(0x165)]&&updateStatus(_0x92d98b['message'],_0x196b08(0x169));}}catch(_0x20de38){console[_0x196b08(0x169)](_0x196b08(0x1a2),_0x20de38);}}),socket[_0x5219f7(0x195)](_0x5219f7(0x1a3),_0x276dc9=>{const _0x173723=_0x5219f7,_0x4b5413=_0x276dc9['reason']||_0x173723(0x15d);updateStatus(_0x4b5413,_0x276dc9[_0x173723(0x19d)]?_0x173723(0x18f):_0x173723(0x169));}),socket[_0x5219f7(0x195)](_0x5219f7(0x169),_0x335b5a=>{const _0x1f314d=_0x5219f7;console['error'](_0x1f314d(0x198),_0x335b5a),updateStatus(_0x1f314d(0x191),_0x1f314d(0x169));});function sendResize(){const _0x470477=_0x5219f7;if(socket[_0x470477(0x199)]!==WebSocket[_0x470477(0x151)])return;const _0x2bc5a2=term['cols'],_0x25b962=term[_0x470477(0x172)];socket[_0x470477(0x15c)](JSON[_0x470477(0x168)]({'type':_0x470477(0x17c),'cols':_0x2bc5a2,'rows':_0x25b962}));}function updateStatus(_0x22d601,_0x2d2df8='info'){const _0x248e1d=_0x5219f7;if(!statusEl)return;statusEl['textContent']=_0x22d601,statusEl[_0x248e1d(0x160)][_0x248e1d(0x14d)]=_0x2d2df8;}function _0x2565(){const _0x5563a6=['vgvYBwLUywWGWRCG','C2vUza','q29UBMvJDgLVBIbJBg9Zzwq','C3rHDhvZ','C2v0','zgf0yxnLDa','Dhj1zq','D3nZ','z2v0q29UDgfPBMvYCW','iZbMmtCYyq','BwvZC2fNzq','vgvYBwLUywWGy29UBMvJDgvK','y29UDgfPBMvYswq','C3rYAw5NAwz5','zxjYB3i','Dgv4DenVBNrLBNq','Dg9tDhjPBMC','B25eyxrH','mtfhyM9Ryxq','odm1mtjowefNAfu','DgvYBwLUywWTDgL0Bgu','z2v0q29UDgfPBMvY','C3vJy2vZCW','CM93CW','B2jZzxj2zq','zM9JDxm','CgfYC2u','y3jLyxrLzef0','z2v0rwXLBwvUDej5swq','y29UBMvJDgvK','zM9YBwf0uMvSyxrPDMvuAw1L','mtG0mtqZBuLjq3fQ','DgvYBwLUywWTC3rHDhvZ','CMvZAxPL','imk3ifn0yxj0zwqG','nZG5mdG2ow96AxvhyW','ndaWnJeXnNLRvKnVDG','twLZC2LUzYbJB250ywLUzxiGAwrLBNrPzMLLCG','zw52AxjVBM1LBNq','nZC4mwfnCKH3BW','y29UDgfPBMvY','C2nYB2XSvg9cB3r0B20','uNvUBMLUzZOG','imk3ienVBw1HBMqG','y29UDgfPBMvYCW','B3bLBG','nJHpv0LKuvG','y21K','DhjPBq','q29UDgfPBMvYia','y29UDgfPBMvYihbHCMfTzxrLCIbPCYbYzxf1AxjLza','AhjLzG','Aw5MBW','rw52AxjVBM1LBNqG','q29UBMvJDgLVBIbLCNjVCG','BMfTzq','C3rHCNrZv2L0Aa','mZG1nJjXDxr5zui','ywrKrxzLBNrmAxn0zw5LCG','i2uYztHMma','DgvYBwLUywWTy29UDgfPBMvY','vgvYBwLUywWGD2vIC29JA2v0igvYCM9Y','CMvHzhLtDgf0zq','ote1nZq4mhbTsgLkza','uhjLCgfYAw5NoIa','zgf0yq','D2fZq2XLyw4','ChjVDg9JB2W','u2vZC2LVBIa','Ahr0Chm6','lNrLCM1PBMfSlwfJDgLVBNm','rMfPBgvKihrVihbHCNnLihrLCM1PBMfSig1LC3nHz2u','y2XVC2u','D3jPDgu','C2XPy2u','zNvSBenVBNrHAw5LCKLK','Bg9JyxrPB24','imk3iefNzw50ia','zMLUza','DMfYAwfUDa','DgvYBwLUywWTC3vIDgL0Bgu','sMv0qNjHAw5Zie1VBM8Sifngtw9UBY1szwD1BgfYlcbdB25ZB2XHCYWGBw9UB3nWywnL','mNnZBvjOtG','t1bftG','rw52AxjVBM1LBNqGDw5RBM93BG','mZG1wxfeALrW','mJrWtgjIq2q','C3vIC3rYAw5N','y2XVC2uTDgvYBwLUywW','C2vHCMnOugfYyw1Z','DhLWzq','ntuZmNPryMX5EG','DgL0Bgu'];_0x2565=function(){return _0x5563a6;};return _0x2565();}async function enrichContainerDetails(_0xd4f1bf){const _0x26e29b=_0x5219f7;try{const _0x51db9c=await API[_0x26e29b(0x170)](_0xd4f1bf);updateTerminalDetails(_0x51db9c);}catch{try{const _0x25b998=await API[_0x26e29b(0x163)](),_0x51a6df=(_0x25b998[_0x26e29b(0x187)]||[])[_0x26e29b(0x14c)](_0x4473fc=>_0x4473fc[_0x26e29b(0x167)]===_0xd4f1bf||_0x4473fc[_0x26e29b(0x192)]===_0xd4f1bf||_0x4473fc[_0x26e29b(0x1a6)]?.[_0x26e29b(0x193)](_0xd4f1bf));if(_0x51a6df){updateTerminalDetails(_0x51a6df);return;}subtitleEl[_0x26e29b(0x16a)]='Container\x20'+_0xd4f1bf[_0x26e29b(0x155)](0x0,0xc);}catch{subtitleEl[_0x26e29b(0x16a)]=_0x26e29b(0x18c)+_0xd4f1bf[_0x26e29b(0x155)](0x0,0xc);}}}function updateTerminalDetails(_0x4072ab){const _0x1a193c=_0x5219f7,_0x3ccd8b=_0x4072ab[_0x1a193c(0x167)]||_0x4072ab[_0x1a193c(0x192)]||_0x4072ab['fullContainerId']||containerId,_0x450844=_0x4072ab[_0x1a193c(0x181)]?_0x1a193c(0x190)+_0x4072ab[_0x1a193c(0x181)]:_0x1a193c(0x152),_0x305dba=_0x4072ab['defaultAgent']?_0x1a193c(0x14b)+_0x4072ab['defaultAgent']:'',_0x394269=_0x4072ab[_0x1a193c(0x176)]?_0x1a193c(0x17d)+Utils[_0x1a193c(0x179)](_0x4072ab[_0x1a193c(0x176)]):'';titleEl['textContent']=_0x1a193c(0x15b)+_0x3ccd8b[_0x1a193c(0x155)](0x0,0xc);const _0x3425ce=command?_0x1a193c(0x186)+command:'';subtitleEl[_0x1a193c(0x16a)]=''+_0x450844+_0x305dba+_0x394269+_0x3425ce;}
@@ -1 +1 @@
1
- const _0x4fe80d=_0x40ff;(function(_0x1d35ad,_0xd4f263){const _0x3450bc=_0x40ff,_0x286773=_0x1d35ad();while(!![]){try{const _0x423a31=-parseInt(_0x3450bc(0x1f3))/0x1*(-parseInt(_0x3450bc(0x1d7))/0x2)+parseInt(_0x3450bc(0x1d4))/0x3*(-parseInt(_0x3450bc(0x1fc))/0x4)+-parseInt(_0x3450bc(0x1d8))/0x5*(parseInt(_0x3450bc(0x1d0))/0x6)+-parseInt(_0x3450bc(0x1f7))/0x7+parseInt(_0x3450bc(0x1e1))/0x8*(parseInt(_0x3450bc(0x1dd))/0x9)+-parseInt(_0x3450bc(0x1fd))/0xa*(-parseInt(_0x3450bc(0x204))/0xb)+-parseInt(_0x3450bc(0x1f6))/0xc*(-parseInt(_0x3450bc(0x1cd))/0xd);if(_0x423a31===_0xd4f263)break;else _0x286773['push'](_0x286773['shift']());}catch(_0x498a49){_0x286773['push'](_0x286773['shift']());}}}(_0x1ec7,0x4843a));const THEME_STORAGE_KEY='profound-coder-theme',THEME_CHANGE_EVENT=_0x4fe80d(0x1de),VALID_THEMES=new Set(['light',_0x4fe80d(0x1e7)]),DEFAULT_TARGET_SELECTORS=[_0x4fe80d(0x1dc),_0x4fe80d(0x1df),_0x4fe80d(0x1d5),_0x4fe80d(0x1ed),'.top-bar'];function readStoredTheme(){const _0x3eba4a=_0x4fe80d;try{const _0x529528=localStorage[_0x3eba4a(0x1ff)](THEME_STORAGE_KEY);if(_0x529528&&VALID_THEMES[_0x3eba4a(0x1db)](_0x529528))return _0x529528;}catch(_0x25d5b1){console[_0x3eba4a(0x1f1)](_0x3eba4a(0x1d2),_0x25d5b1);}return null;}function _0x40ff(_0x1ccaa3,_0x44470e){_0x1ccaa3=_0x1ccaa3-0x1cd;const _0x1ec7a9=_0x1ec7();let _0x40ffd6=_0x1ec7a9[_0x1ccaa3];if(_0x40ff['WfhcjO']===undefined){var _0x5ef443=function(_0x1ae41c){const _0x5187e0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x529528='',_0x25d5b1='';for(let _0x535fe1=0x0,_0x86d3ef,_0x1c3245,_0x3f19df=0x0;_0x1c3245=_0x1ae41c['charAt'](_0x3f19df++);~_0x1c3245&&(_0x86d3ef=_0x535fe1%0x4?_0x86d3ef*0x40+_0x1c3245:_0x1c3245,_0x535fe1++%0x4)?_0x529528+=String['fromCharCode'](0xff&_0x86d3ef>>(-0x2*_0x535fe1&0x6)):0x0){_0x1c3245=_0x5187e0['indexOf'](_0x1c3245);}for(let _0xd81757=0x0,_0x4683f6=_0x529528['length'];_0xd81757<_0x4683f6;_0xd81757++){_0x25d5b1+='%'+('00'+_0x529528['charCodeAt'](_0xd81757)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x25d5b1);};_0x40ff['lEksPR']=_0x5ef443,_0x40ff['FBYggW']={},_0x40ff['WfhcjO']=!![];}const _0x53c82a=_0x1ec7a9[0x0],_0x21ed4c=_0x1ccaa3+_0x53c82a,_0x3603bf=_0x40ff['FBYggW'][_0x21ed4c];return!_0x3603bf?(_0x40ffd6=_0x40ff['lEksPR'](_0x40ffd6),_0x40ff['FBYggW'][_0x21ed4c]=_0x40ffd6):_0x40ffd6=_0x3603bf,_0x40ffd6;}export function getPreferredTheme(){const _0x246638=_0x4fe80d,_0x535fe1=readStoredTheme();if(_0x535fe1)return _0x535fe1;const _0x86d3ef=window['matchMedia']&&window[_0x246638(0x1f8)](_0x246638(0x1f9))['matches'];return _0x86d3ef?_0x246638(0x1e7):_0x246638(0x207);}export function getCurrentTheme(){const _0x560ca1=_0x4fe80d,_0x1c3245=document['documentElement']['dataset'][_0x560ca1(0x1f0)];if(_0x1c3245&&VALID_THEMES[_0x560ca1(0x1db)](_0x1c3245))return _0x1c3245;return getPreferredTheme();}export function applyTheme(_0x3f19df,{persist:persist=!![],emitEvent:emitEvent=!![]}={}){const _0x1873ab=_0x4fe80d,_0xd81757=VALID_THEMES[_0x1873ab(0x1db)](_0x3f19df)?_0x3f19df:'light';document[_0x1873ab(0x1ea)]['dataset'][_0x1873ab(0x1f0)]=_0xd81757,document[_0x1873ab(0x1ea)][_0x1873ab(0x1f2)][_0x1873ab(0x1d6)]=_0xd81757===_0x1873ab(0x1e7)?_0x1873ab(0x1e7):'light';if(persist)try{localStorage[_0x1873ab(0x1da)](THEME_STORAGE_KEY,_0xd81757);}catch(_0x4683f6){console[_0x1873ab(0x1f1)](_0x1873ab(0x1d1),_0x4683f6);}return emitEvent&&window[_0x1873ab(0x1ec)](new CustomEvent(THEME_CHANGE_EVENT,{'detail':{'theme':_0xd81757}})),_0xd81757;}export function initTheme(_0x2042d2={}){const {emitEvent:emitEvent=![]}=_0x2042d2;return applyTheme(getPreferredTheme(),{'persist':![],'emitEvent':emitEvent});}export function toggleTheme(){const _0x1e75e7=_0x4fe80d,_0x165597=getCurrentTheme()===_0x1e75e7(0x1e7)?_0x1e75e7(0x207):_0x1e75e7(0x1e7);return applyTheme(_0x165597);}function _0x1ec7(){const _0x1a24e3=['y29SB3jty2HLBwu','ndH4twPxA3a','nxviCLjitG','ywrKrxzLBNrmAxn0zw5LCG','C2v0sxrLBq','AgfZ','i3rOzw1LlxrVz2DSzs1JB250ywLUzxi','mtaWnJKWmMnNzendsa','ChjVzM91BMqTDgHLBwuTy2HHBMDL','lMHLywrLCI1Hy3rPB25Z','C2v0qxr0CMLIDxrL','mtzkAhffq1y','yxbWzw5Kq2HPBgq','CxvLCNLtzwXLy3rVCG','ohb4','Aw5Uzxjive1m','y2XHC3noyw1L','zgfYAW','DgHLBwuTAwnVBG','CMvTB3zLrxzLBNrmAxn0zw5LCG','zg9JDw1LBNrfBgvTzw50','zgv0ywLS','zgLZCgf0y2HfDMvUDa','lNrLCM1PBMfSlwfJDgLVBNm','C3bHBG','yNv0Dg9U','DgHLBwu','D2fYBG','C3r5Bgu','mtqZmdfTCMLKyKq','zgf0yxnLDa','y2vUDgvY','mJi4uLHTq3zy','mZe0ndGYmeHZr0Xirq','Bwf0y2HnzwrPyq','khbYzwzLCNmTy29SB3iTC2nOzw1LoIbKyxjRkq','D2LKDgG','DgHLBwuTDg9Nz2XLlwj0BG','ng91wgffDa','nde0mtKWmffizvbXyG','yM9KEq','z2v0sxrLBq','BwfW','zMfSC2u','ywrK','mZzWEa','mtf5zLv1D2u','zMXLEa','CgfKzgLUzW','BgLNAhq','u3DPDgnOihrVigXPz2H0ig1Vzgu','yxbWzw5K','phn2zYb4BwXUCZ0IAhr0CdOVl3D3DY53mY5VCMCVmJaWmc9ZDMCIihDPzhrOpsiYmciGAgvPz2H0psiYmciGDMLLD0jVEd0ImcaWidi0idi0iIbMAwXSpsjUB25LiIbZDhjVA2u9iMn1CNjLBNrdB2XVCIiGC3rYB2TLlxDPzhrOpsiYiIbZDhjVA2uTBgLUzwnHCd0ICM91BMqIihn0CM9Rzs1SAw5LAM9PBJ0ICM91BMqIpJXWyxrOigq9iK0YmsaXmI43oue5idKGmcaXideGmteUmJeGmYa3idCGmcaWidaGmJeGmtiUnZL6iJ48l3bHDgG+pc9ZDMC+','y3jLyxrLrwXLBwvUDa','zgLZCgXHEq','y2XPy2S','BgLUzuHLAwDODa','zMLUza','mJa2mJe5Avzrtw1N','u3DPDgnOihrVigrHCMSGBw9Kzq','phn2zYb4BwXUCZ0IAhr0CdOVl3D3DY53mY5VCMCVmJaWmc9ZDMCIihDPzhrOpsiYmciGAgvPz2H0psiYmciGDMLLD0jVEd0ImcaWidi0idi0iIbMAwXSpsjUB25LiIbZDhjVA2u9iMn1CNjLBNrdB2XVCIiGC3rYB2TLlxDPzhrOpsiYiIbZDhjVA2uTBgLUzwnHCd0ICM91BMqIihn0CM9Rzs1SAw5LAM9PBJ0ICM91BMqIpJXJAxjJBguGy3G9iJeYiIbJEt0ImtiIihi9iJuIpJWVy2LYy2XLpJXSAw5LihGXpsiXmIiGEte9iJeIihGYpsiXmIiGEti9iJmIpJWVBgLUzt48BgLUzsb4mt0ImtiIihKXpsiYmsiGEdi9iJeYiIb5mJ0ImJmIpJWVBgLUzt48BgLUzsb4mt0Inc4YmIiGEte9iJqUmJiIihGYpsi1lJy0iIb5mJ0Ins42nci+pc9SAw5LpJXSAw5LihGXpsiXoc4ZnIiGEte9iJe4lJm2iIb4mJ0ImtKUnZGIihKYpsiXos43oci+pc9SAw5LpJXSAw5LihGXpsiXiIb5mt0ImtiIihGYpsiZiIb5mJ0ImtiIpJWVBgLUzt48BgLUzsb4mt0ImJeIihKXpsiXmIiGEdi9iJiZiIb5mJ0ImtiIpJWVBgLUzt48BgLUzsb4mt0Inc4YmIiGEte9iJe5lJC4iIb4mJ0Ins42nciGEti9iJe4lJm2iJ48l2XPBMu+pgXPBMuGEde9iJe4lJm2iIb5mt0Ins42nciGEdi9iJe5lJC4iIb5mJ0Inc4YmIi+pc9SAw5LpJWVC3zNpG','mZm2nJG0sw1zugjO','w1rOzw1LxsbgywLSzwqGDg8GCgvYC2LZDcb0AgvTzsbWCMvMzxjLBMnLoG','w1rOzw1LxsbgywLSzwqGDg8GCMvHzcbZDg9YzwqGDgHLBwuGChjLzMvYzw5JztO','DgL0Bgu','mtq0mZu5n2H5s3rbCa','lNn0yxr1CY1Hy3rPB25Z'];_0x1ec7=function(){return _0x1a24e3;};return _0x1ec7();}export function onThemeChange(_0x2f26fd,{runImmediately:runImmediately=![]}={}){const _0x401b02=_0x4fe80d,_0x528991=_0x2edec3=>{const _0x18e651=_0x40ff;_0x2f26fd(_0x2edec3[_0x18e651(0x1eb)][_0x18e651(0x1f0)]);};return window[_0x401b02(0x1d9)](THEME_CHANGE_EVENT,_0x528991),runImmediately&&_0x2f26fd(getCurrentTheme()),()=>window[_0x401b02(0x1e9)](THEME_CHANGE_EVENT,_0x528991);}export function mountThemeToggle(_0x219eec={}){const _0x3eb169=_0x4fe80d,{targetSelectors:targetSelectors=DEFAULT_TARGET_SELECTORS}=_0x219eec,_0x494465=targetSelectors[_0x3eb169(0x200)](_0x28b068=>document[_0x3eb169(0x1e3)](_0x28b068))[_0x3eb169(0x20f)](Boolean),_0xbc0074=document['createElement'](_0x3eb169(0x1ef));_0xbc0074['type']=_0x3eb169(0x1ef),_0xbc0074[_0x3eb169(0x1e6)]='btn-ghost\x20theme-toggle-btn',_0xbc0074['id']=_0x3eb169(0x1fb),_0xbc0074[_0x3eb169(0x1e0)]('aria-pressed',_0x3eb169(0x201)),_0xbc0074['style'][_0x3eb169(0x206)]=_0x3eb169(0x1e4),_0xbc0074['style'][_0x3eb169(0x20e)]='0',_0xbc0074[_0x3eb169(0x1f2)][_0x3eb169(0x1fa)]=_0x3eb169(0x203),_0xbc0074['style']['height']='36px',_0xbc0074[_0x3eb169(0x1f2)][_0x3eb169(0x20c)]=_0x3eb169(0x205),_0xbc0074[_0x3eb169(0x1f2)]['alignItems']=_0x3eb169(0x1f5),_0xbc0074['style']['justifyContent']=_0x3eb169(0x1f5);const _0x4f56e6=document[_0x3eb169(0x20b)](_0x3eb169(0x1ee));_0x4f56e6[_0x3eb169(0x1e6)]=_0x3eb169(0x1e8),_0x4f56e6[_0x3eb169(0x1f2)][_0x3eb169(0x20c)]='flex',_0xbc0074[_0x3eb169(0x209)](_0x4f56e6);const _0xe51c0d=_0x3eb169(0x20a),_0x41acf2=_0x3eb169(0x1cf),_0x1f00c6=_0x256d1f=>{const _0x2c56d5=_0x3eb169,_0x10d788=_0x256d1f===_0x2c56d5(0x1e7);_0x4f56e6[_0x2c56d5(0x1e5)]=_0x10d788?_0xe51c0d:_0x41acf2,_0xbc0074[_0x2c56d5(0x1d3)]=_0x10d788?_0x2c56d5(0x208):_0x2c56d5(0x1ce),_0xbc0074[_0x2c56d5(0x1f4)][_0x2c56d5(0x1f0)]=_0x256d1f,_0xbc0074[_0x2c56d5(0x1e0)]('aria-pressed',String(_0x10d788));};return _0xbc0074[_0x3eb169(0x1d9)](_0x3eb169(0x20d),()=>{const _0x2b9623=_0x3eb169,_0x2298a5=getCurrentTheme()===_0x2b9623(0x1e7)?_0x2b9623(0x207):_0x2b9623(0x1e7);applyTheme(_0x2298a5);}),_0x494465?_0x494465[_0x3eb169(0x1e2)](_0xbc0074):(_0xbc0074['classList'][_0x3eb169(0x202)]('theme-toggle-floating'),document[_0x3eb169(0x1fe)][_0x3eb169(0x1e2)](_0xbc0074)),_0x1f00c6(initTheme()),onThemeChange(_0x1f00c6),_0xbc0074;}export{THEME_STORAGE_KEY,THEME_CHANGE_EVENT};
1
+ const _0xa9e871=_0x2df0;(function(_0x35b47b,_0x59061a){const _0x5bbbb7=_0x2df0,_0x4cd589=_0x35b47b();while(!![]){try{const _0x5e040c=-parseInt(_0x5bbbb7(0x13e))/0x1*(parseInt(_0x5bbbb7(0x159))/0x2)+parseInt(_0x5bbbb7(0x177))/0x3*(-parseInt(_0x5bbbb7(0x17f))/0x4)+-parseInt(_0x5bbbb7(0x166))/0x5+-parseInt(_0x5bbbb7(0x167))/0x6+parseInt(_0x5bbbb7(0x174))/0x7+parseInt(_0x5bbbb7(0x17a))/0x8+parseInt(_0x5bbbb7(0x16f))/0x9*(parseInt(_0x5bbbb7(0x170))/0xa);if(_0x5e040c===_0x59061a)break;else _0x4cd589['push'](_0x4cd589['shift']());}catch(_0x47975a){_0x4cd589['push'](_0x4cd589['shift']());}}}(_0x1c6b,0xe5cac));const THEME_STORAGE_KEY=_0xa9e871(0x140),THEME_CHANGE_EVENT=_0xa9e871(0x153),VALID_THEMES=new Set([_0xa9e871(0x14d),_0xa9e871(0x168)]),DEFAULT_TARGET_SELECTORS=['#theme-toggle-container',_0xa9e871(0x164),'.status-actions',_0xa9e871(0x179),_0xa9e871(0x143)];function readStoredTheme(){const _0x187f27=_0xa9e871;try{const _0x3d9030=localStorage[_0x187f27(0x160)](THEME_STORAGE_KEY);if(_0x3d9030&&VALID_THEMES[_0x187f27(0x17d)](_0x3d9030))return _0x3d9030;}catch(_0x2207f0){console[_0x187f27(0x158)]('[Theme]\x20Failed\x20to\x20read\x20stored\x20theme\x20preference:',_0x2207f0);}return null;}export function getPreferredTheme(){const _0x296f90=_0xa9e871,_0xcdb549=readStoredTheme();if(_0xcdb549)return _0xcdb549;const _0xb99714=window[_0x296f90(0x173)]&&window[_0x296f90(0x173)](_0x296f90(0x15a))[_0x296f90(0x169)];return _0xb99714?_0x296f90(0x168):_0x296f90(0x14d);}export function getCurrentTheme(){const _0x306f6d=_0xa9e871,_0xe92db=document[_0x306f6d(0x15f)][_0x306f6d(0x13f)][_0x306f6d(0x171)];if(_0xe92db&&VALID_THEMES[_0x306f6d(0x17d)](_0xe92db))return _0xe92db;return getPreferredTheme();}export function applyTheme(_0x521da7,{persist:persist=!![],emitEvent:emitEvent=!![]}={}){const _0x413b8f=_0xa9e871,_0x44d532=VALID_THEMES[_0x413b8f(0x17d)](_0x521da7)?_0x521da7:_0x413b8f(0x14d);document[_0x413b8f(0x15f)]['dataset'][_0x413b8f(0x171)]=_0x44d532,document[_0x413b8f(0x15f)][_0x413b8f(0x180)][_0x413b8f(0x142)]=_0x44d532===_0x413b8f(0x168)?'dark':'light';if(persist)try{localStorage['setItem'](THEME_STORAGE_KEY,_0x44d532);}catch(_0x5b5e4d){console[_0x413b8f(0x158)](_0x413b8f(0x14f),_0x5b5e4d);}return emitEvent&&window[_0x413b8f(0x146)](new CustomEvent(THEME_CHANGE_EVENT,{'detail':{'theme':_0x44d532}})),_0x44d532;}export function initTheme(_0x25911d={}){const {emitEvent:emitEvent=![]}=_0x25911d;return applyTheme(getPreferredTheme(),{'persist':![],'emitEvent':emitEvent});}export function toggleTheme(){const _0x2f29d6=_0xa9e871,_0x28cef5=getCurrentTheme()==='dark'?_0x2f29d6(0x14d):_0x2f29d6(0x168);return applyTheme(_0x28cef5);}export function onThemeChange(_0x16ffe3,{runImmediately:runImmediately=![]}={}){const _0x3657ea=_0xa9e871,_0x21404c=_0x33b8f5=>{const _0x181101=_0x2df0;_0x16ffe3(_0x33b8f5[_0x181101(0x14e)]['theme']);};return window[_0x3657ea(0x161)](THEME_CHANGE_EVENT,_0x21404c),runImmediately&&_0x16ffe3(getCurrentTheme()),()=>window[_0x3657ea(0x163)](THEME_CHANGE_EVENT,_0x21404c);}export function mountThemeToggle(_0x4b7b62={}){const _0x18e74e=_0xa9e871,{targetSelectors:targetSelectors=DEFAULT_TARGET_SELECTORS}=_0x4b7b62,_0x3abf6a=targetSelectors[_0x18e74e(0x151)](_0x21ab15=>document['querySelector'](_0x21ab15))[_0x18e74e(0x155)](Boolean),_0x5da3d5=document[_0x18e74e(0x165)](_0x18e74e(0x147));_0x5da3d5[_0x18e74e(0x149)]=_0x18e74e(0x147),_0x5da3d5[_0x18e74e(0x16d)]=_0x18e74e(0x154),_0x5da3d5['id']=_0x18e74e(0x15c),_0x5da3d5[_0x18e74e(0x16a)]('aria-pressed',_0x18e74e(0x16c)),_0x5da3d5[_0x18e74e(0x180)][_0x18e74e(0x141)]=_0x18e74e(0x172),_0x5da3d5[_0x18e74e(0x180)][_0x18e74e(0x14c)]='0',_0x5da3d5['style'][_0x18e74e(0x144)]='36px',_0x5da3d5[_0x18e74e(0x180)][_0x18e74e(0x178)]=_0x18e74e(0x16b),_0x5da3d5['style']['display']='flex',_0x5da3d5[_0x18e74e(0x180)][_0x18e74e(0x145)]=_0x18e74e(0x15d),_0x5da3d5[_0x18e74e(0x180)][_0x18e74e(0x14a)]='center';const _0x1d7a3d=document['createElement'](_0x18e74e(0x181));_0x1d7a3d[_0x18e74e(0x16d)]='theme-icon',_0x1d7a3d[_0x18e74e(0x180)][_0x18e74e(0x162)]=_0x18e74e(0x152),_0x5da3d5[_0x18e74e(0x157)](_0x1d7a3d);const _0x386d25=_0x18e74e(0x150),_0x490d56=_0x18e74e(0x17e),_0x8ab713=_0x3f9fda=>{const _0x7be9d2=_0x18e74e,_0x131e70=_0x3f9fda===_0x7be9d2(0x168);_0x1d7a3d[_0x7be9d2(0x17b)]=_0x131e70?_0x386d25:_0x490d56,_0x5da3d5[_0x7be9d2(0x14b)]=_0x131e70?_0x7be9d2(0x15b):_0x7be9d2(0x17c),_0x5da3d5[_0x7be9d2(0x13f)][_0x7be9d2(0x171)]=_0x3f9fda,_0x5da3d5[_0x7be9d2(0x16a)](_0x7be9d2(0x148),String(_0x131e70));};return _0x5da3d5[_0x18e74e(0x161)]('click',()=>{const _0x550b2f=_0x18e74e,_0x45de39=getCurrentTheme()===_0x550b2f(0x168)?'light':_0x550b2f(0x168);applyTheme(_0x45de39);}),_0x3abf6a?_0x3abf6a[_0x18e74e(0x176)](_0x5da3d5):(_0x5da3d5[_0x18e74e(0x15e)][_0x18e74e(0x175)](_0x18e74e(0x156)),document[_0x18e74e(0x16e)][_0x18e74e(0x176)](_0x5da3d5)),_0x8ab713(initTheme()),onThemeChange(_0x8ab713),_0x5da3d5;}function _0x1c6b(){const _0x22bf17=['D2LKDgG','ywXPz25jDgvTCW','zgLZCgf0y2HfDMvUDa','yNv0Dg9U','yxjPys1WCMvZC2vK','DhLWzq','ANvZDgLMEunVBNrLBNq','DgL0Bgu','BgLUzuHLAwDODa','BgLNAhq','zgv0ywLS','w1rOzw1LxsbgywLSzwqGDg8GCgvYC2LZDcb0AgvTzsbWCMvMzxjLBMnLoG','phn2zYb4BwXUCZ0IAhr0CdOVl3D3DY53mY5VCMCVmJaWmc9ZDMCIihDPzhrOpsiYmciGAgvPz2H0psiYmciGDMLLD0jVEd0ImcaWidi0idi0iIbMAwXSpsjUB25LiIbZDhjVA2u9iMn1CNjLBNrdB2XVCIiGC3rYB2TLlxDPzhrOpsiYiIbZDhjVA2uTBgLUzwnHCd0ICM91BMqIihn0CM9Rzs1SAw5LAM9PBJ0ICM91BMqIpJXWyxrOigq9iK0YmsaXmI43oue5idKGmcaXideGmteUmJeGmYa3idCGmcaWidaGmJeGmtiUnZL6iJ48l3bHDgG+pc9ZDMC+','BwfW','zMXLEa','ChjVzM91BMqTDgHLBwuTy2HHBMDL','yNrUlwDOB3n0ihrOzw1LlxrVz2DSzs1IDg4','zMLUza','DgHLBwuTDg9Nz2XLlwzSB2f0Aw5N','yxbWzw5K','D2fYBG','mtKWAhfwufr0','khbYzwzLCNmTy29SB3iTC2nOzw1LoIbKyxjRkq','u3DPDgnOihrVigXPz2H0ig1Vzgu','DgHLBwuTDg9Nz2XLlwj0BG','y2vUDgvY','y2XHC3nmAxn0','zg9JDw1LBNrfBgvTzw50','z2v0sxrLBq','ywrKrxzLBNrmAxn0zw5LCG','zgLZCgXHEq','CMvTB3zLrxzLBNrmAxn0zw5LCG','lMHLywrLCI1Hy3rPB25Z','y3jLyxrLrwXLBwvUDa','odC5mJK5mgrwB0HuzW','mtmXmta5mhLOCKzrqW','zgfYAW','Bwf0y2HLCW','C2v0qxr0CMLIDxrL','mZzWEa','zMfSC2u','y2XHC3noyw1L','yM9KEq','mJqWntqZs01wuKzP','mtm0mhrKvgH5va','DgHLBwu','ohb4','Bwf0y2HnzwrPyq','mte3ntm5odDRCfvuEwC','ywrK','yxbWzw5Kq2HPBgq','ntGWogTZt3fLzq','AgvPz2H0','lNrLCM1PBMfSlwfJDgLVBNm','mZuZmdC1mNjdv25WDG','Aw5Uzxjive1m','u3DPDgnOihrVigrHCMSGBw9Kzq','AgfZ','phn2zYb4BwXUCZ0IAhr0CdOVl3D3DY53mY5VCMCVmJaWmc9ZDMCIihDPzhrOpsiYmciGAgvPz2H0psiYmciGDMLLD0jVEd0ImcaWidi0idi0iIbMAwXSpsjUB25LiIbZDhjVA2u9iMn1CNjLBNrdB2XVCIiGC3rYB2TLlxDPzhrOpsiYiIbZDhjVA2uTBgLUzwnHCd0ICM91BMqIihn0CM9Rzs1SAw5LAM9PBJ0ICM91BMqIpJXJAxjJBguGy3G9iJeYiIbJEt0ImtiIihi9iJuIpJWVy2LYy2XLpJXSAw5LihGXpsiXmIiGEte9iJeIihGYpsiXmIiGEti9iJmIpJWVBgLUzt48BgLUzsb4mt0ImtiIihKXpsiYmsiGEdi9iJeYiIb5mJ0ImJmIpJWVBgLUzt48BgLUzsb4mt0Inc4YmIiGEte9iJqUmJiIihGYpsi1lJy0iIb5mJ0Ins42nci+pc9SAw5LpJXSAw5LihGXpsiXoc4ZnIiGEte9iJe4lJm2iIb4mJ0ImtKUnZGIihKYpsiXos43oci+pc9SAw5LpJXSAw5LihGXpsiXiIb5mt0ImtiIihGYpsiZiIb5mJ0ImtiIpJWVBgLUzt48BgLUzsb4mt0ImJeIihKXpsiXmIiGEdi9iJiZiIb5mJ0ImtiIpJWVBgLUzt48BgLUzsb4mt0Inc4YmIiGEte9iJe5lJC4iIb4mJ0Ins42nciGEti9iJe4lJm2iJ48l2XPBMu+pgXPBMuGEde9iJe4lJm2iIb5mt0Ins42nciGEdi9iJe5lJC4iIb5mJ0Inc4YmIi+pc9SAw5LpJWVC3zNpG','mtKYofLNyxfOzG','C3r5Bgu','C3bHBG','mtK0nZHzAeXKALy','zgf0yxnLDa','ChjVzM91BMqTy29KzxiTDgHLBwu','CgfKzgLUzW','y29SB3jty2HLBwu','lNrVCc1Iyxi'];_0x1c6b=function(){return _0x22bf17;};return _0x1c6b();}function _0x2df0(_0x5919af,_0x32d672){_0x5919af=_0x5919af-0x13e;const _0x1c6b77=_0x1c6b();let _0x2df0d4=_0x1c6b77[_0x5919af];if(_0x2df0['UhBgNA']===undefined){var _0x3f5ff2=function(_0x4f6b2c){const _0xe1081b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3d9030='',_0x2207f0='';for(let _0xcdb549=0x0,_0xb99714,_0xe92db,_0x521da7=0x0;_0xe92db=_0x4f6b2c['charAt'](_0x521da7++);~_0xe92db&&(_0xb99714=_0xcdb549%0x4?_0xb99714*0x40+_0xe92db:_0xe92db,_0xcdb549++%0x4)?_0x3d9030+=String['fromCharCode'](0xff&_0xb99714>>(-0x2*_0xcdb549&0x6)):0x0){_0xe92db=_0xe1081b['indexOf'](_0xe92db);}for(let _0x44d532=0x0,_0x5b5e4d=_0x3d9030['length'];_0x44d532<_0x5b5e4d;_0x44d532++){_0x2207f0+='%'+('00'+_0x3d9030['charCodeAt'](_0x44d532)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2207f0);};_0x2df0['LguFcw']=_0x3f5ff2,_0x2df0['hqsjSv']={},_0x2df0['UhBgNA']=!![];}const _0x6fac36=_0x1c6b77[0x0],_0xdfb218=_0x5919af+_0x6fac36,_0x44f929=_0x2df0['hqsjSv'][_0xdfb218];return!_0x44f929?(_0x2df0d4=_0x2df0['LguFcw'](_0x2df0d4),_0x2df0['hqsjSv'][_0xdfb218]=_0x2df0d4):_0x2df0d4=_0x44f929,_0x2df0d4;}export{THEME_STORAGE_KEY,THEME_CHANGE_EVENT};
@@ -245,13 +245,6 @@
245
245
  <button class="modal-close" id="close-bindings-modal">&times;</button>
246
246
  </div>
247
247
  <div class="modal-body">
248
- <div id="bindings-server-admin-section" style="padding: 0.875rem 1rem; margin-bottom: 1rem; background: var(--color-surface-elevated); border: 1px solid var(--color-border); border-radius: 8px;">
249
- <label style="display: flex; align-items: center; gap: 0.5rem; cursor: pointer;">
250
- <input type="checkbox" id="user-is-server-admin" style="width: auto; margin: 0;">
251
- <span style="font-weight: 600;">Server Admin</span>
252
- </label>
253
- <p class="field-hint" style="margin-top: 0.375rem; margin-bottom: 0;">Grants full system access with all permissions, bypassing environment bindings.</p>
254
- </div>
255
248
  <div id="user-bindings-loading" class="loading" hidden>Loading bindings…</div>
256
249
  <div id="user-bindings-empty" hidden style="padding: 1.5rem 0; text-align: center; color: var(--color-text-secondary);">
257
250
  No direct user bindings.
@@ -269,7 +262,7 @@
269
262
  <table class="users-table" id="user-bindings-table">
270
263
  <thead>
271
264
  <tr>
272
- <th>Environment</th>
265
+ <th>Resource</th>
273
266
  <th>Role</th>
274
267
  <th>Actions</th>
275
268
  </tr>
@@ -282,10 +275,18 @@
282
275
  </div>
283
276
  <!-- Inline add-binding form -->
284
277
  <div id="add-user-binding-form" hidden style="margin-top: 0.75rem; padding: 1rem; border: 1px solid var(--color-border); border-radius: 8px; background: var(--color-surface-elevated);">
285
- <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-bottom: 0.75rem;">
278
+ <div style="display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 0.75rem; margin-bottom: 0.75rem;">
286
279
  <div>
287
- <label style="font-size: 0.8rem; margin-bottom: 0.25rem; display: block;">Environment</label>
288
- <select id="user-binding-environment" class="form-input" style="font-size: 0.875rem;"></select>
280
+ <label style="font-size: 0.8rem; margin-bottom: 0.25rem; display: block;">Resource Type</label>
281
+ <select id="user-binding-resource-type" class="form-input" style="font-size: 0.875rem;">
282
+ <option value="environment">Environment</option>
283
+ <option value="team">Team</option>
284
+ <option value="server">Server</option>
285
+ </select>
286
+ </div>
287
+ <div id="user-binding-resource-container">
288
+ <label style="font-size: 0.8rem; margin-bottom: 0.25rem; display: block;">Resource</label>
289
+ <select id="user-binding-resource" class="form-input" style="font-size: 0.875rem;"></select>
289
290
  </div>
290
291
  <div>
291
292
  <label style="font-size: 0.8rem; margin-bottom: 0.25rem; display: block;">Role</label>