@profoundlogic/coderflow-server 0.4.9 → 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 +16 -158
  2. package/dist/README.md +16 -158
  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 +110 -12
  173. package/dist/web-ui/public/task.html +80 -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 _0x5c9fe2=_0x533e;(function(_0x2d0676,_0x12cfcf){const _0x2f2c8a=_0x533e,_0x1b3c23=_0x2d0676();while(!![]){try{const _0x2d9630=parseInt(_0x2f2c8a(0xa0))/0x1*(parseInt(_0x2f2c8a(0x11a))/0x2)+parseInt(_0x2f2c8a(0x11e))/0x3*(-parseInt(_0x2f2c8a(0x91))/0x4)+-parseInt(_0x2f2c8a(0x12c))/0x5+-parseInt(_0x2f2c8a(0xf5))/0x6*(parseInt(_0x2f2c8a(0xdf))/0x7)+parseInt(_0x2f2c8a(0x98))/0x8+parseInt(_0x2f2c8a(0x130))/0x9*(parseInt(_0x2f2c8a(0x118))/0xa)+parseInt(_0x2f2c8a(0xc3))/0xb*(parseInt(_0x2f2c8a(0xa9))/0xc);if(_0x2d9630===_0x12cfcf)break;else _0x1b3c23['push'](_0x1b3c23['shift']());}catch(_0x3c9b35){_0x1b3c23['push'](_0x1b3c23['shift']());}}}(_0x1ad3,0xb4bcf));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':_0x5c9fe2(0x88)};document[_0x5c9fe2(0x9e)](_0x5c9fe2(0xc1),async()=>{const _0x125adf=_0x5c9fe2;initTheme(),mountThemeToggle();try{state[_0x125adf(0xdb)]=await API[_0x125adf(0xb1)]();}catch{window[_0x125adf(0x10f)][_0x125adf(0x123)]=_0x125adf(0x93);return;}await initializeAdminMenu(state[_0x125adf(0xdb)]),state['currentUser'][_0x125adf(0x9b)]&&(document[_0x125adf(0xf7)](_0x125adf(0x12d))[_0x125adf(0x117)]=![]),bindEventListeners(),await Promise['all']([loadTeams(),loadUsers(),loadRoles(),loadEnvironments()]),renderTeams();});async function loadTeams(){const _0x1efb9b=_0x5c9fe2,_0x310604=document[_0x1efb9b(0xf7)](_0x1efb9b(0xd5)),_0x126c19=document[_0x1efb9b(0xf7)](_0x1efb9b(0x110)),_0x5b6a14=document['getElementById']('teams-content');try{_0x310604[_0x1efb9b(0x117)]=![],_0x126c19['hidden']=!![],_0x5b6a14['hidden']=!![];const {teams:_0x3c6e07}=await API[_0x1efb9b(0xee)]();state[_0x1efb9b(0xf2)]=_0x3c6e07||[],renderTeams(),_0x310604[_0x1efb9b(0x117)]=!![],_0x5b6a14['hidden']=![];}catch(_0x4680d9){_0x310604[_0x1efb9b(0x117)]=!![],_0x126c19[_0x1efb9b(0x117)]=![],document[_0x1efb9b(0xf7)](_0x1efb9b(0xc0))[_0x1efb9b(0x104)]=_0x4680d9[_0x1efb9b(0xcc)];}}async function loadUsers(){const _0x1a13fa=_0x5c9fe2;try{const {users:_0x4b1a7c}=await API[_0x1a13fa(0x9f)]();state['users']=_0x4b1a7c||[];}catch{state[_0x1a13fa(0xbc)]=[];}}async function loadRoles(){const _0x5ab8c8=_0x5c9fe2;try{const {roles:_0x2edae7}=await API[_0x5ab8c8(0x105)]();state[_0x5ab8c8(0x120)]=_0x2edae7||[];}catch{state['roles']=[];}}async function loadEnvironments(){const _0xd9334d=_0x5c9fe2;try{const _0x11b55e=await API[_0xd9334d(0xde)]();state['environments']=_0x11b55e['environments']||[];}catch{state[_0xd9334d(0xf8)]=[];}}function renderTeams(){const _0x3d179c=_0x5c9fe2,_0x2ed431=document[_0x3d179c(0xf7)](_0x3d179c(0xab)),_0x663427=document[_0x3d179c(0xf7)](_0x3d179c(0x8a));if(!_0x2ed431)return;_0x663427&&(_0x663427[_0x3d179c(0x104)]=state[_0x3d179c(0xf2)][_0x3d179c(0x112)]+'\x20team'+(state['teams'][_0x3d179c(0x112)]===0x1?'':'s'));if(state[_0x3d179c(0xf2)]['length']===0x0){_0x2ed431[_0x3d179c(0xc8)]=_0x3d179c(0xad)+(state[_0x3d179c(0xdb)]?.[_0x3d179c(0x9b)]?_0x3d179c(0x122):'')+_0x3d179c(0x100);return;}const _0x368d7d=state[_0x3d179c(0xdb)]?.[_0x3d179c(0x9b)];_0x2ed431['innerHTML']=state[_0x3d179c(0xf2)]['map'](_0x404684=>{const _0x495805=_0x3d179c,_0x2f6300=(_0x404684[_0x495805(0xd6)]||[])[_0x495805(0x11c)](state[_0x495805(0xdb)]?.['id']),_0x3ef7e3=_0x368d7d||_0x2f6300,_0x510cd9=(_0x404684[_0x495805(0xd6)]||[])['map'](_0x5c99c9=>{const _0x28c37e=_0x495805;if(_0x404684['manager_names']&&_0x404684[_0x28c37e(0xc2)][_0x5c99c9])return _0x404684[_0x28c37e(0xc2)][_0x5c99c9];const _0x959748=state[_0x28c37e(0xbc)]['find'](_0xbfed16=>_0xbfed16['id']===_0x5c99c9);return _0x959748?_0x959748[_0x28c37e(0x106)]||_0x959748[_0x28c37e(0xa5)]:_0x5c99c9;})[_0x495805(0xcd)](',\x20')||'—',_0x58722e=(_0x404684[_0x495805(0xc7)]||[])['length'];return _0x495805(0xbf)+_0x404684['id']+'\x27)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+Utils['escapeHtml'](_0x404684['name'])+_0x495805(0xe4)+(_0x404684[_0x495805(0xac)]?'<div\x20style=\x22font-size:\x200.8em;\x20color:\x20var(--color-text-secondary);\x20margin-top:\x200.15rem;\x22>'+Utils[_0x495805(0x97)](_0x404684[_0x495805(0xac)])+_0x495805(0xaa):'')+_0x495805(0x95)+_0x58722e+_0x495805(0x11f)+Utils[_0x495805(0x97)](_0x510cd9)+_0x495805(0xa2)+(_0x3ef7e3?_0x495805(0x101)+_0x404684['id']+_0x495805(0x90):'')+_0x495805(0x9a)+(_0x368d7d?_0x495805(0xa7)+_0x404684['id']+'\x27)\x22>Delete</button>':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</td>\x0a\x20\x20\x20\x20\x20\x20</tr>';})[_0x3d179c(0xcd)]('');}function bindEventListeners(){const _0xabe6b9=_0x5c9fe2;document[_0xabe6b9(0xf7)]('create-team-btn')?.['addEventListener'](_0xabe6b9(0xe2),showCreateTeamModal),document[_0xabe6b9(0xf7)](_0xabe6b9(0x83))?.[_0xabe6b9(0x9e)](_0xabe6b9(0xe2),loadTeams),document['getElementById'](_0xabe6b9(0xec))?.['addEventListener'](_0xabe6b9(0xe2),hideTeamModal),document[_0xabe6b9(0xf7)](_0xabe6b9(0xc6))?.[_0xabe6b9(0x9e)](_0xabe6b9(0xe2),hideTeamModal),document[_0xabe6b9(0xf7)](_0xabe6b9(0x121))?.[_0xabe6b9(0x9e)](_0xabe6b9(0xe2),saveTeam),document['querySelector'](_0xabe6b9(0x12a))?.[_0xabe6b9(0x9e)](_0xabe6b9(0xe2),hideTeamModal),document[_0xabe6b9(0xf3)](_0xabe6b9(0x115))[_0xabe6b9(0x8c)](_0x558453=>{const _0x281861=_0xabe6b9;_0x558453[_0x281861(0x9e)](_0x281861(0xe2),()=>switchTab(_0x558453[_0x281861(0xb7)][_0x281861(0xb2)]));}),document['getElementById'](_0xabe6b9(0xea))?.[_0xabe6b9(0x9e)](_0xabe6b9(0xe2),addMember),document[_0xabe6b9(0xf7)]('add-manager-btn')?.[_0xabe6b9(0x9e)]('click',addManager),document['getElementById']('add-binding-btn')?.['addEventListener']('click',()=>{const _0xd867e=_0xabe6b9;document[_0xd867e(0xf7)]('add-binding-form')[_0xd867e(0x117)]=![],document[_0xd867e(0xf7)]('add-binding-btn')[_0xd867e(0x117)]=!![],populateBindingForm();}),document[_0xabe6b9(0xf7)]('cancel-binding-btn')?.['addEventListener'](_0xabe6b9(0xe2),()=>{const _0x88e406=_0xabe6b9;document['getElementById'](_0x88e406(0x84))[_0x88e406(0x117)]=!![],document['getElementById'](_0x88e406(0xf4))[_0x88e406(0x117)]=![];}),document['getElementById']('save-binding-btn')?.['addEventListener'](_0xabe6b9(0xe2),saveBinding),document[_0xabe6b9(0xf7)]('close-delete-team-modal')?.[_0xabe6b9(0x9e)]('click',hideDeleteModal),document['getElementById'](_0xabe6b9(0x10c))?.[_0xabe6b9(0x9e)](_0xabe6b9(0xe2),hideDeleteModal),document[_0xabe6b9(0xf7)](_0xabe6b9(0x119))?.['addEventListener'](_0xabe6b9(0xe2),confirmDeleteTeam),document[_0xabe6b9(0xd4)](_0xabe6b9(0xe8))?.[_0xabe6b9(0x9e)](_0xabe6b9(0xe2),hideDeleteModal);}function showCreateTeamModal(){const _0x458511=_0x5c9fe2;state[_0x458511(0x128)]=null,state[_0x458511(0xb8)]=_0x458511(0x88),document[_0x458511(0xf7)](_0x458511(0x94))[_0x458511(0x104)]=_0x458511(0xd3),document[_0x458511(0xf7)](_0x458511(0xb5))[_0x458511(0xba)]='',document[_0x458511(0xf7)](_0x458511(0xb5))[_0x458511(0x8e)]=![],document['getElementById'](_0x458511(0xe1))[_0x458511(0xba)]='',document[_0x458511(0xf7)](_0x458511(0xe1))[_0x458511(0x8e)]=![],document[_0x458511(0xf7)]('team-form-error')['hidden']=!![],document[_0x458511(0xf7)](_0x458511(0xb3))[_0x458511(0x117)]=!![],document['getElementById'](_0x458511(0xf9))[_0x458511(0x117)]=!![],document[_0x458511(0xf7)](_0x458511(0x121))['hidden']=![],document[_0x458511(0xf7)](_0x458511(0xc5))[_0x458511(0x117)]=![],showTab(_0x458511(0x88)),document[_0x458511(0xf7)](_0x458511(0x87))['hidden']=![],setTimeout(()=>document['getElementById']('team-name')[_0x458511(0xae)](),0x64);}window[_0x5c9fe2(0xb4)]=function(_0x3a780f){const _0x446e96=_0x5c9fe2,_0x3d363f=state[_0x446e96(0xf2)]['find'](_0x2a35cd=>_0x2a35cd['id']===_0x3a780f);if(!_0x3d363f)return;state['editingTeamId']=_0x3a780f,state[_0x446e96(0xb8)]='details';const _0x1075cc=state['currentUser']?.[_0x446e96(0x9b)],_0x323a9e=(_0x3d363f[_0x446e96(0xd6)]||[])[_0x446e96(0x11c)](state[_0x446e96(0xdb)]?.['id']),_0xae331f=_0x1075cc||_0x323a9e;document[_0x446e96(0xf7)](_0x446e96(0x94))[_0x446e96(0x104)]=_0x3d363f[_0x446e96(0x106)],document['getElementById']('team-name')['value']=_0x3d363f['name'],document['getElementById'](_0x446e96(0xb5))[_0x446e96(0x8e)]=!_0xae331f,document[_0x446e96(0xf7)](_0x446e96(0xe1))['value']=_0x3d363f[_0x446e96(0xac)]||'',document[_0x446e96(0xf7)](_0x446e96(0xe1))[_0x446e96(0x8e)]=!_0xae331f,document[_0x446e96(0xf7)](_0x446e96(0xa4))[_0x446e96(0x117)]=!![],document[_0x446e96(0xf7)](_0x446e96(0xb3))[_0x446e96(0x117)]=![],document[_0x446e96(0xf7)](_0x446e96(0xf9))[_0x446e96(0x117)]=![],document[_0x446e96(0xf7)](_0x446e96(0x121))[_0x446e96(0x117)]=!_0xae331f,document['getElementById'](_0x446e96(0xaf))[_0x446e96(0x117)]=!_0x1075cc,setActiveTabButton(_0x446e96(0x88)),renderMembersList(_0x3d363f),updateMemberSelect(_0x3d363f),_0x1075cc&&(renderManagersList(_0x3d363f),updateManagerSelect(_0x3d363f)),showTab(_0x446e96(0x88)),document[_0x446e96(0xf7)](_0x446e96(0x87))[_0x446e96(0x117)]=![];};function hideTeamModal(){const _0x937508=_0x5c9fe2;document[_0x937508(0xf7)](_0x937508(0x87))[_0x937508(0x117)]=!![],document[_0x937508(0xf7)]('team-name')[_0x937508(0x8e)]=![],document[_0x937508(0xf7)]('team-description')[_0x937508(0x8e)]=![],state[_0x937508(0x128)]=null;}function switchTab(_0x885f69){const _0x4295b7=_0x5c9fe2;state[_0x4295b7(0xb8)]=_0x885f69,setActiveTabButton(_0x885f69),showTab(_0x885f69),_0x885f69===_0x4295b7(0x114)&&state[_0x4295b7(0x128)]&&loadTeamBindings(state[_0x4295b7(0x128)]);}function setActiveTabButton(_0x447882){const _0x3049f0=_0x5c9fe2;document[_0x3049f0(0xf3)](_0x3049f0(0x115))[_0x3049f0(0x8c)](_0x1cb5f8=>{const _0x5b9ef4=_0x3049f0,_0x5611ca=_0x1cb5f8[_0x5b9ef4(0xb7)][_0x5b9ef4(0xb2)]===_0x447882;_0x1cb5f8[_0x5b9ef4(0x109)][_0x5b9ef4(0x8b)]=_0x5611ca?'var(--color-primary)':_0x5b9ef4(0xfd),_0x1cb5f8[_0x5b9ef4(0x109)][_0x5b9ef4(0x8d)]=_0x5611ca?_0x5b9ef4(0x85):_0x5b9ef4(0x113),_0x1cb5f8['style']['fontWeight']=_0x5611ca?'600':_0x5b9ef4(0xfb);});}function showTab(_0x105dc2){const _0x1413d8=_0x5c9fe2;document[_0x1413d8(0xf7)]('team-tab-details')['hidden']=_0x105dc2!==_0x1413d8(0x88),document['getElementById'](_0x1413d8(0xe6))[_0x1413d8(0x117)]=_0x105dc2!=='bindings',document[_0x1413d8(0xf7)]('team-modal-footer')[_0x1413d8(0x117)]=_0x105dc2===_0x1413d8(0x114);}function renderMembersList(_0xc71738){const _0x4a668e=_0x5c9fe2,_0x1c8a3d=state[_0x4a668e(0xdb)]?.[_0x4a668e(0x9b)],_0x3b68d8=(_0xc71738[_0x4a668e(0xd6)]||[])[_0x4a668e(0x11c)](state[_0x4a668e(0xdb)]?.['id']),_0x34a73a=_0x1c8a3d||_0x3b68d8,_0x23b81b=_0xc71738[_0x4a668e(0xc7)]||[],_0x30a942=document['getElementById'](_0x4a668e(0xa8));if(_0x23b81b['length']===0x0){_0x30a942['innerHTML']=_0x4a668e(0xd0);return;}_0x30a942[_0x4a668e(0xc8)]=_0x23b81b[_0x4a668e(0x129)](_0x488fa9=>{const _0x52a20b=_0x4a668e,_0x5cdc7c=state[_0x52a20b(0xbc)]['find'](_0x56fc32=>_0x56fc32['id']===_0x488fa9),_0x41e0e0=_0x5cdc7c?''+Utils[_0x52a20b(0x97)](_0x5cdc7c[_0x52a20b(0xa5)])+(_0x5cdc7c[_0x52a20b(0x106)]?_0x52a20b(0xeb)+Utils[_0x52a20b(0x97)](_0x5cdc7c['name'])+_0x52a20b(0xdc):''):Utils['escapeHtml'](_0x488fa9),_0x3b2ad0=(_0xc71738[_0x52a20b(0xd6)]||[])[_0x52a20b(0x11c)](_0x488fa9);return _0x52a20b(0x10b)+_0x41e0e0+_0x52a20b(0x86)+(_0x3b2ad0?_0x52a20b(0xe5):'')+_0x52a20b(0xe9)+(_0x34a73a?'<button\x20type=\x22button\x22\x20class=\x22btn-ghost\x20btn-small\x22\x20onclick=\x22window.removeMemberClick(\x27'+_0x488fa9+_0x52a20b(0xcf):'')+'\x0a\x20\x20\x20\x20\x20\x20</div>';})[_0x4a668e(0xcd)]('');const _0x336405=document[_0x4a668e(0xf7)](_0x4a668e(0x124));if(_0x336405)_0x336405['style'][_0x4a668e(0xa1)]=_0x34a73a?_0x4a668e(0x9c):_0x4a668e(0xe0);}function renderManagersList(_0x47ba9f){const _0x11f5f6=_0x5c9fe2,_0xeaa348=_0x47ba9f['managers']||[],_0x5bd3b6=document['getElementById'](_0x11f5f6(0x103));if(_0xeaa348[_0x11f5f6(0x112)]===0x0){_0x5bd3b6[_0x11f5f6(0xc8)]='<p\x20style=\x22font-size:\x200.875rem;\x20color:\x20var(--color-text-secondary);\x20margin:\x200.25rem\x200;\x22>No\x20managers</p>';return;}_0x5bd3b6[_0x11f5f6(0xc8)]=_0xeaa348['map'](_0x5b884c=>{const _0x37b49f=_0x11f5f6,_0x264f88=state['users'][_0x37b49f(0xe7)](_0x3ce6f0=>_0x3ce6f0['id']===_0x5b884c),_0x5c6245=_0x264f88?Utils[_0x37b49f(0x97)](_0x264f88[_0x37b49f(0xa5)]):Utils[_0x37b49f(0x97)](_0x5b884c);return _0x37b49f(0x96)+_0x5c6245+'</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22btn-ghost\x20btn-small\x22\x20onclick=\x22window.removeManagerClick(\x27'+_0x5b884c+_0x37b49f(0xef);})[_0x11f5f6(0xcd)]('');}function updateMemberSelect(_0x3371e1){const _0x535be6=_0x5c9fe2,_0x25fd2e=document[_0x535be6(0xf7)](_0x535be6(0x99));if(!_0x25fd2e)return;const _0x3f822a=new Set(_0x3371e1[_0x535be6(0xc7)]||[]),_0x17229f=state[_0x535be6(0xbc)][_0x535be6(0xb9)](_0x6d0933=>!_0x3f822a[_0x535be6(0xe3)](_0x6d0933['id']));_0x25fd2e['innerHTML']=_0x535be6(0x10a)+_0x17229f[_0x535be6(0x129)](_0x2eb976=>'<option\x20value=\x22'+_0x2eb976['id']+'\x22>'+Utils[_0x535be6(0x97)](_0x2eb976[_0x535be6(0xa5)])+(_0x2eb976[_0x535be6(0x106)]?'\x20('+Utils[_0x535be6(0x97)](_0x2eb976[_0x535be6(0x106)])+')':'')+_0x535be6(0xcb))[_0x535be6(0xcd)]('');}function updateManagerSelect(_0x1e6483){const _0x582636=_0x5c9fe2,_0x10473c=document[_0x582636(0xf7)]('add-manager-select');if(!_0x10473c)return;const _0x15b038=new Set(_0x1e6483['managers']||[]),_0x32a1a7=(_0x1e6483['members']||[])['filter'](_0x4f4b71=>!_0x15b038[_0x582636(0xe3)](_0x4f4b71))[_0x582636(0x129)](_0x57f645=>state[_0x582636(0xbc)][_0x582636(0xe7)](_0x45f166=>_0x45f166['id']===_0x57f645))['filter'](Boolean);_0x10473c['innerHTML']=_0x582636(0xd2)+_0x32a1a7[_0x582636(0x129)](_0x1f828f=>_0x582636(0xbb)+_0x1f828f['id']+'\x22>'+Utils[_0x582636(0x97)](_0x1f828f[_0x582636(0xa5)])+_0x582636(0xcb))[_0x582636(0xcd)]('');}async function addMember(){const _0x3db4a1=_0x5c9fe2,_0x113a96=document[_0x3db4a1(0xf7)](_0x3db4a1(0x99)),_0x3ec065=_0x113a96[_0x3db4a1(0xba)];if(!_0x3ec065||!state[_0x3db4a1(0x128)])return;try{const {team:_0x3d6c8d}=await API[_0x3db4a1(0xd9)](state[_0x3db4a1(0x128)],_0x3ec065);syncTeamInState(_0x3d6c8d),renderMembersList(_0x3d6c8d),updateMemberSelect(_0x3d6c8d),state[_0x3db4a1(0xdb)]?.[_0x3db4a1(0x9b)]&&(renderManagersList(_0x3d6c8d),updateManagerSelect(_0x3d6c8d)),_0x113a96['value']='',Utils[_0x3db4a1(0x12e)]('Member\x20added',_0x3db4a1(0x10d));}catch(_0x5903cc){Utils['showToast'](_0x5903cc[_0x3db4a1(0xcc)],_0x3db4a1(0xda));}}async function addManager(){const _0x57ec88=_0x5c9fe2,_0x1d12a4=document[_0x57ec88(0xf7)](_0x57ec88(0xc4)),_0x1183fb=_0x1d12a4[_0x57ec88(0xba)];if(!_0x1183fb||!state['editingTeamId'])return;try{const {team:_0x28911f}=await API['addTeamManager'](state[_0x57ec88(0x128)],_0x1183fb);syncTeamInState(_0x28911f),renderMembersList(_0x28911f),renderManagersList(_0x28911f),updateManagerSelect(_0x28911f),_0x1d12a4[_0x57ec88(0xba)]='',Utils[_0x57ec88(0x12e)](_0x57ec88(0x12f),_0x57ec88(0x10d));}catch(_0x517785){Utils[_0x57ec88(0x12e)](_0x517785['message'],_0x57ec88(0xda));}}window[_0x5c9fe2(0x92)]=async function(_0x131412){const _0x463516=_0x5c9fe2;if(!state['editingTeamId'])return;try{const {team:_0x3cb50d}=await API[_0x463516(0xbe)](state[_0x463516(0x128)],_0x131412);syncTeamInState(_0x3cb50d),renderMembersList(_0x3cb50d),updateMemberSelect(_0x3cb50d),state[_0x463516(0xdb)]?.[_0x463516(0x9b)]&&(renderManagersList(_0x3cb50d),updateManagerSelect(_0x3cb50d)),Utils[_0x463516(0x12e)](_0x463516(0xf6),'success');}catch(_0x33adb4){Utils[_0x463516(0x12e)](_0x33adb4[_0x463516(0xcc)],_0x463516(0xda));}},window[_0x5c9fe2(0xb6)]=async function(_0x1e6210){const _0xe2fe6f=_0x5c9fe2;if(!state[_0xe2fe6f(0x128)])return;try{const {team:_0x5a54f9}=await API[_0xe2fe6f(0x127)](state[_0xe2fe6f(0x128)],_0x1e6210);syncTeamInState(_0x5a54f9),renderManagersList(_0x5a54f9),updateManagerSelect(_0x5a54f9),Utils[_0xe2fe6f(0x12e)]('Manager\x20removed','success');}catch(_0x484001){Utils['showToast'](_0x484001[_0xe2fe6f(0xcc)],_0xe2fe6f(0xda));}};function _0x1ad3(){const _0x527c86=['pgj1DhrVBIbJBgfZCZ0IyNrUlxnLy29UzgfYEsbIDg4TC21HBgWIig9Uy2XPy2S9iNDPBMrVDY5VCgvUvgvHBu1VzgfSkcC','zw52AxjVBM1LBNq','BwfUywDLCNmTBgLZDa','Dgv4DenVBNrLBNq','z2v0uM9SzurLzMLUAxrPB25Z','BMfTzq','q3jLyxrPBMFIGky','yMLUzgLUzY1YB2XL','C3r5Bgu','pg9WDgLVBIb2ywX1zt0IiJ5bzgqGysbTzw1IzxlIGky8l29WDgLVBJ4','cIaGicaGidXKAxyGC3r5Bgu9iMrPC3bSyxK6igzSzxG7igfSAwDUlwL0zw1ZoIbJzw50zxi7igP1C3rPzNKTy29UDgvUDdOGC3bHy2uTyMv0D2vLBJSGCgfKzgLUzZOGmc4ZnxjLBsaWoYbIB3jKzxiTyM90Dg9ToIaXChGGC29SAwqGDMfYkc0Ty29SB3iTyM9YzgvYktSIpGOGicaGicaGidXZCgfUihn0EwXLpsjMB250lxnPEMu6idaUodC1CMvToYi+cIaGicaGicaGica','y2fUy2vSlwrLBgv0zs10zwfT','C3vJy2vZCW','vgvHBsb1CgrHDgvK','Bg9JyxrPB24','DgvHBxmTzxjYB3i','qwrKiejPBMrPBMC','BgvUz3rO','DMfYkc0Ty29SB3iTDgv4Dc1ZzwnVBMrHCNKP','yMLUzgLUz3m','lM1VzgfSlxrHyI1IDg4','DxbKyxrLvgvHBq','AgLKzgvU','otaWmdmWELDVs3vm','y29UzMLYBs1KzwXLDguTDgvHBq','mty2A0vQEffZ','cIaGica8Dhi+cIaGicaGidX0zd4','Aw5JBhvKzxm','zgvSzxrLlxrLyw0TBMfTzq','mtmYnMziv3HHBa','pc90zd4kicaGicaGica8Dgq+','CM9Szxm','C2f2zs10zwfT','q2XPy2SGphn0CM9UzZ5dCMvHDguGvgvHBtWVC3rYB25NpIb0BYbNzxqGC3rHCNrLzc4','AhjLzG','ywrKlw1LBwjLCI1YB3C','rMfPBgvKihrVigXVywqGyMLUzgLUz3m6ia','qwrKAw5N4OcM','CMvTB3zLvgvHBu1HBMfNzxi','zwrPDgLUz1rLyw1jza','BwfW','i3rLyw0TBw9KywWGlM1VzgfSlw92zxjSyxK','y3jLyxrLvgvHBq','ndi4odiYmgnVCwjryW','y3jLyxrLlxrLyw0TyNrU','C2HVD1rVyxn0','twfUywDLCIbHzgrLza','mZz5yuzmwLG','u2f2Aw5N4OcM','qMLUzgLUzYbHzgrLza','CMv0CNKTDgvHBxmTyNrU','ywrKlwjPBMrPBMCTzM9YBq','DMfYkc0Ty29SB3iTChjPBwfYEsK','cIaGicaGicaGica','DgvHBs1TB2rHBa','zgv0ywLSCW','vgvHBsbKzwXLDgvK','DgvHBs1JB3vUDa','yM9YzgvYqM90Dg9Tq29SB3i','zM9YrwfJAa','y29SB3i','zgLZywjSzwq','DhjPBq','jYKIpKvKAxq8l2j1DhrVBJ4','mti2ntjosxbpDu4','CMvTB3zLtwvTyMvYq2XPy2S','Bg9NAw4UAhrTBa','DgvHBs1TB2rHBc10AxrSzq','cIaGicaGicaGpc90zd4kicaGicaGica8Dgq+','cIaGicaGidXKAxyGC3r5Bgu9iMrPC3bSyxK6igzSzxG7igfSAwDUlwL0zw1ZoIbJzw50zxi7igP1C3rPzNKTy29UDgvUDdOGC3bHy2uTyMv0D2vLBJSGCgfKzgLUzZOGmc4ZnxjLBsaWoYbIB3jKzxiTyM90Dg9ToIaXChGGC29SAwqGDMfYkc0Ty29SB3iTyM9YzgvYktSIpGOGicaGicaGidXZCgfUihn0EwXLpsjMB250lxnPEMu6idaUodC1CMvToYi+','zxnJyxbLshrTBa','mZu1nJiYnfbqs1jvrq','ywrKlw1LBwjLCI1ZzwXLy3q','cIaGicaGicaGicaGia','Axntzxj2zxjbzg1PBG','zMXLEa','y3jLyxrLqMLUzgLUzW','ywrKrxzLBNrmAxn0zw5LCG','z2v0vxnLCNm','otK4nKTlvefzuG','zgLZCgXHEq','pc90zd4kicaGicaGica8Dgq+cIaGicaGicaGica8zgL2ignSyxnZpsj1C2vYlwfJDgLVBNmIpGOGicaGicaGicaGica','CM9Szv9Pza','DgvHBs1MB3jTlwvYCM9Y','DxnLCM5HBwu','yMLUzgLUzY1LBNzPCM9UBwvUDa','pgj1DhrVBIbJBgfZCZ0IyNrUlwDOB3n0igj0BI1ZBwfSBciGB25JBgLJAZ0ID2LUzg93lMrLBgv0zvrLyw0OjW','BwvTyMvYCY1SAxn0','mJy0rMncrvLq','pc9KAxy+','DgvHBxmTDgfIBguTyM9KEq','zgvZy3jPChrPB24','cIaGicaGidX0CJ4kicaGicaGica8DgqGy29SC3bHBJ0InciGC3r5Bgu9iNrLEhqTywXPz246ignLBNrLCJSGy29SB3i6ihzHCIGTlwnVBg9YlxrLEhqTC2vJB25Kyxj5ktSGCgfKzgLUzZOGmNjLBtSIpGOGicaGicaGicaGtM8GDgvHBxmGEwv0lGOGicaGicaGicaG','zM9JDxm','BwfUywDLCNmTC2vJDgLVBG','DgvHBq','z2v0q3vYCMvUDfvZzxi','DgfI','DgvHBs1TB2rHBc10ywjZ','B3bLBLrLyw1nB2rHBa','DgvHBs1Uyw1L','CMvTB3zLtwfUywDLCKnSAwnR','zgf0yxnLDa','ywn0AxzLvgfI','zMLSDgvY','DMfSDwu','pg9WDgLVBIb2ywX1zt0I','DxnLCNm','DgvHBujPBMrPBMDZ','CMvTB3zLvgvHBu1LBwjLCG','cIaGicaGidX0CJ4kicaGicaGica8Dgq+cIaGicaGicaGica8yNv0Dg9UignSyxnZpsjIDg4Tz2HVC3qGyNrUlxnTywXSiIbZDhLSzt0IzM9UDc13zwLNAhq6idyWmdSGCgfKzgLUzZOGmdSGDgv4Dc1KzwnVCMf0Aw9UoIb1BMrLCMXPBMu7ihrLEhqTzgvJB3jHDgLVBI1ZDhLSztOGzg90DgvKoYikicaGicaGicaGicaGB25JBgLJAZ0ID2LUzg93lM9Wzw5uzwfTtw9KywWOjW','DgvHBxmTzxjYB3iTBwvZC2fNzq','re9nq29UDgvUDeXVywrLza','BwfUywDLCL9Uyw1LCW','odmXoduZtejtA1L2','ywrKlw1HBMfNzxiTC2vSzwn0','DgvHBs1TB2rHBc1MB290zxi','y2fUy2vSlxrLyw0','BwvTyMvYCW','Aw5Uzxjive1m','pc90zd4kicaGicaGphrKpG','yMLUzgLUz3mTDgfIBguTyM9KEq','pc9VChrPB24+','BwvZC2fNzq','AM9PBG','z2v0qMLUzgLUz3m','jYKIihn0EwXLpsjJB2XVCJOGDMfYkc0Ty29SB3iTzgfUz2vYktSGCgfKzgLUzZOGmc4XnxjLBsaWlJrYzw07igzVBNqTC2L6ztOGmc44CMvToYi+uMvTB3zLpc9IDxr0B24+','phaGC3r5Bgu9iMzVBNqTC2L6ztOGmc44nZvYzw07ignVBg9YoIb2yxiOls1JB2XVCI10zxH0lxnLy29UzgfYEsK7ig1HCMDPBJOGmc4YnxjLBsaWoYi+tM8GBwvTyMvYCYb5zxq8l3a+','cIaGicaGidWVDgq+cIaGica8l3rYpG','pg9WDgLVBIb2ywX1zt0IiJ5qCM9TB3rLigeGBwvTyMvYihrVig1HBMfNzxlIGky8l29WDgLVBJ4','q3jLyxrLifrLyw0','CxvLCNLtzwXLy3rVCG','DgvHBxmTBg9HzgLUzW','BwfUywDLCNm','zgvSzxrLvgvHBq','rgvSzxrPBMFIGky','ywrKvgvHBu1LBwjLCG','zxjYB3i','y3vYCMvUDfvZzxi','ktWVC3bHBJ4','zgvSzxrPBMDuzwfTswq','z2v0rw52AxjVBM1LBNrZ','n0TIuwnXra','BM9Uzq','DgvHBs1KzxnJCMLWDgLVBG','y2XPy2S','AgfZ','cIaGicaGicaGica8l2j1DhrVBJ4kicaGicaGicaGia','phnWyw4Gy2XHC3m9iNrHzYiGC3r5Bgu9iM1HCMDPBI1Szwz0oIaWlJrYzw07igzVBNqTC2L6ztOGmc43zw07ihbHzgrPBMC6idaUmwvTidaUngvToYi+BwfUywDLCJWVC3bHBJ4','DgvHBs10ywiTyMLUzgLUz3m','zMLUza','i2rLBgv0zs10zwfTlw1VzgfSic5TB2rHBc1VDMvYBgf5','cIaGicaGicaGpc9ZCgfUpGOGicaGicaGia','ywrKlw1LBwjLCI1IDg4','idXZCgfUihn0EwXLpsjJB2XVCJOGDMfYkc0Ty29SB3iTDgv4Dc1ZzwnVBMrHCNKPoYbMB250lxnPEMu6idaUodvLBtSIpIG','y2XVC2uTDgvHBs1TB2rHBa','zgvSzxrLqMLUzgLUzW','z2v0vgvHBxm','jYKIihn0EwXLpsjJB2XVCJOGDMfYkc0Ty29SB3iTzgfUz2vYktSGCgfKzgLUzZOGmc4XnxjLBsaWlJrYzw07igzVBNqTC2L6ztOGmc44CMvToYi+uMvTB3zLpc9IDxr0B24+cIaGicaGidWVzgL2pG','jYKIihn0EwXLpsjJB2XVCJOGDMfYkc0Ty29SB3iTzgfUz2vYktSIpLjLBw92ztWVyNv0Dg9UpG','yMLUzgLUz3mTBgLZDc1JB250ywLUzxi','DgvHBxm','CxvLCNLtzwXLy3rVCKfSBa','ywrKlwjPBMrPBMCTyNrU','mtGWnJu0nKnJwNzxsW','twvTyMvYihjLBw92zwq','z2v0rwXLBwvUDej5swq','zw52AxjVBM1LBNrZ','BwvTyMvYCY1Zzwn0Aw9U','rMfPBgvKihrVigrLBgv0zsb0zwfToIa','BM9YBwfS','rgvSzxrLifrLyw0','DhjHBNnWyxjLBNq','pg9WDgLVBIb2ywX1zt0IiJ5bBgWGzw52AxjVBM1LBNrZigfSCMvHzhKGyM91BMq8l29WDgLVBJ4','zgvSzxrLlxrLyw0TBw9KywW','cIaGicaGicaGpc90zd4kicaGicaGpc90CJ4'];_0x1ad3=function(){return _0x527c86;};return _0x1ad3();}async function loadTeamBindings(_0x466d5b){const _0x7e1e09=_0x5c9fe2,_0xf26905=document[_0x7e1e09(0xf7)]('bindings-loading'),_0x505882=document[_0x7e1e09(0xf7)]('bindings-empty'),_0x1c0e09=document[_0x7e1e09(0xf7)](_0x7e1e09(0xf1)),_0x1de7d4=document[_0x7e1e09(0xf7)](_0x7e1e09(0xf4));_0xf26905['hidden']=![],_0x505882[_0x7e1e09(0x117)]=!![],_0x1c0e09[_0x7e1e09(0x109)]['display']='none',_0x1de7d4['hidden']=!![],document[_0x7e1e09(0xf7)]('add-binding-form')['hidden']=!![];try{const {bindings:_0x47b79d}=await API[_0x7e1e09(0xce)]({'subject_type':_0x7e1e09(0xb0),'subject_id':_0x466d5b});state[_0x7e1e09(0xbd)]=_0x47b79d||[],_0xf26905['hidden']=!![],state['teamBindings'][_0x7e1e09(0x112)]===0x0?_0x505882['hidden']=![]:(_0x1c0e09[_0x7e1e09(0x109)][_0x7e1e09(0xa1)]='',renderBindingsTable()),state['currentUser']?.[_0x7e1e09(0x9b)]&&(_0x1de7d4[_0x7e1e09(0x117)]=![]);}catch(_0x27a6d5){_0xf26905['hidden']=!![],Utils[_0x7e1e09(0x12e)](_0x7e1e09(0x125)+_0x27a6d5[_0x7e1e09(0xcc)],'error');}}function renderBindingsTable(){const _0x349ae5=_0x5c9fe2,_0xd9f200=document[_0x349ae5(0xf7)](_0x349ae5(0xca));if(!_0xd9f200)return;const _0x45327d=state[_0x349ae5(0xdb)]?.['isServerAdmin'];_0xd9f200[_0x349ae5(0xc8)]=state[_0x349ae5(0xbd)][_0x349ae5(0x129)](_0x57baa2=>_0x349ae5(0x11b)+Utils['escapeHtml'](_0x57baa2[_0x349ae5(0x102)])+_0x349ae5(0xc9)+Utils[_0x349ae5(0x97)](_0x57baa2['role_name']||_0x57baa2[_0x349ae5(0xa3)])+'</td>\x0a\x20\x20\x20\x20\x20\x20<td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x45327d?'<button\x20class=\x22btn-ghost\x20btn-small\x22\x20onclick=\x22window.deleteBindingClick(\x27'+_0x57baa2['id']+_0x349ae5(0xf0):'—')+_0x349ae5(0xd1))['join']('');}function populateBindingForm(){const _0x28e62e=_0x5c9fe2,_0x48823e=document['getElementById'](_0x28e62e(0xa6)),_0x1d6a6c=document[_0x28e62e(0xf7)](_0x28e62e(0x108)),_0x5d7e06=new Set(state[_0x28e62e(0xbd)]['map'](_0x540451=>_0x540451[_0x28e62e(0x102)])),_0x58a9a2=state[_0x28e62e(0xf8)][_0x28e62e(0xb9)](_0x15383=>!_0x5d7e06[_0x28e62e(0xe3)](_0x15383[_0x28e62e(0x106)]));_0x48823e[_0x28e62e(0xc8)]=_0x58a9a2[_0x28e62e(0x112)]?_0x58a9a2[_0x28e62e(0x129)](_0x1413c6=>_0x28e62e(0xbb)+Utils[_0x28e62e(0x97)](_0x1413c6[_0x28e62e(0x106)])+'\x22>'+Utils[_0x28e62e(0x97)](_0x1413c6[_0x28e62e(0x106)])+'</option>')[_0x28e62e(0xcd)](''):_0x28e62e(0xfe),_0x1d6a6c[_0x28e62e(0xc8)]=state[_0x28e62e(0x120)][_0x28e62e(0x129)](_0x4b2637=>'<option\x20value=\x22'+_0x4b2637['id']+'\x22>'+Utils['escapeHtml'](_0x4b2637['name'])+_0x28e62e(0xcb))[_0x28e62e(0xcd)]('');}async function saveBinding(){const _0xe0f962=_0x5c9fe2,_0x54ec30=document[_0xe0f962(0xf7)](_0xe0f962(0xa6))[_0xe0f962(0xba)],_0x4bbf8c=document[_0xe0f962(0xf7)](_0xe0f962(0x108))[_0xe0f962(0xba)];if(!_0x54ec30||!_0x4bbf8c||!state[_0xe0f962(0x128)])return;const _0x67c741=document[_0xe0f962(0xf7)]('save-binding-btn');_0x67c741[_0xe0f962(0x8e)]=!![],_0x67c741[_0xe0f962(0x104)]=_0xe0f962(0x126);try{await API[_0xe0f962(0x9d)]({'subject_type':'team','subject_id':state[_0xe0f962(0x128)],'role_id':_0x4bbf8c,'environment':_0x54ec30}),Utils['showToast'](_0xe0f962(0x82),_0xe0f962(0x10d)),document[_0xe0f962(0xf7)](_0xe0f962(0x84))[_0xe0f962(0x117)]=!![],document['getElementById']('add-binding-btn')['hidden']=![],await loadTeamBindings(state[_0xe0f962(0x128)]);}catch(_0x2e1958){Utils[_0xe0f962(0x12e)](_0x2e1958['message'],'error');}finally{_0x67c741[_0xe0f962(0x8e)]=![],_0x67c741[_0xe0f962(0x104)]=_0xe0f962(0x111);}}window['deleteBindingClick']=async function(_0x3410a3){const _0x2ff3fa=_0x5c9fe2;try{await API[_0x2ff3fa(0xed)](_0x3410a3),Utils[_0x2ff3fa(0x12e)]('Binding\x20removed','success'),await loadTeamBindings(state['editingTeamId']);}catch(_0x264389){Utils['showToast'](_0x264389['message'],'error');}};async function saveTeam(){const _0x5b9971=_0x5c9fe2,_0x47107e=document[_0x5b9971(0xf7)](_0x5b9971(0xb5))[_0x5b9971(0xba)][_0x5b9971(0x8f)](),_0x245e17=document[_0x5b9971(0xf7)](_0x5b9971(0xe1))['value'][_0x5b9971(0x8f)](),_0x245394=document['getElementById'](_0x5b9971(0xa4)),_0x114e52=document['getElementById']('save-team');if(!_0x47107e){_0x245394[_0x5b9971(0x104)]='Team\x20name\x20is\x20required',_0x245394[_0x5b9971(0x117)]=![];return;}_0x245394[_0x5b9971(0x117)]=!![];const _0x111a7d=_0x114e52[_0x5b9971(0x104)];_0x114e52['disabled']=!![],_0x114e52[_0x5b9971(0x104)]=state[_0x5b9971(0x128)]?_0x5b9971(0x131):_0x5b9971(0x107);try{if(state[_0x5b9971(0x128)]){const {team:_0x47ce52}=await API[_0x5b9971(0x116)](state[_0x5b9971(0x128)],{'name':_0x47107e,'description':_0x245e17});syncTeamInState(_0x47ce52),document[_0x5b9971(0xf7)](_0x5b9971(0x94))['textContent']=_0x47ce52['name'],Utils[_0x5b9971(0x12e)](_0x5b9971(0x10e),_0x5b9971(0x10d));}else await API[_0x5b9971(0x12b)]({'name':_0x47107e,'description':_0x245e17}),Utils[_0x5b9971(0x12e)]('Team\x20created',_0x5b9971(0x10d)),hideTeamModal(),await loadTeams();state['editingTeamId']&&(_0x114e52[_0x5b9971(0x8e)]=![],_0x114e52[_0x5b9971(0x104)]=_0x111a7d);}catch(_0x3646e4){_0x245394[_0x5b9971(0x104)]=_0x3646e4[_0x5b9971(0xcc)],_0x245394[_0x5b9971(0x117)]=![],_0x114e52['disabled']=![],_0x114e52['textContent']=_0x111a7d;}}window[_0x5c9fe2(0xd7)]=function(_0xe0c41f){const _0x48fe65=_0x5c9fe2,_0xcab125=state['teams']['find'](_0x47bcfb=>_0x47bcfb['id']===_0xe0c41f);if(!_0xcab125)return;state[_0x48fe65(0xdd)]=_0xe0c41f,document['getElementById'](_0x48fe65(0x11d))[_0x48fe65(0x104)]=_0xcab125[_0x48fe65(0x106)],document['getElementById'](_0x48fe65(0xff))[_0x48fe65(0x117)]=![];};function hideDeleteModal(){const _0x254569=_0x5c9fe2;document[_0x254569(0xf7)]('delete-team-modal')['hidden']=!![],state[_0x254569(0xdd)]=null;}async function confirmDeleteTeam(){const _0x30581d=_0x5c9fe2;if(!state['deletingTeamId'])return;const _0x2b8b9f=document[_0x30581d(0xf7)](_0x30581d(0x119));_0x2b8b9f[_0x30581d(0x8e)]=!![],_0x2b8b9f[_0x30581d(0x104)]=_0x30581d(0xd8);try{await API[_0x30581d(0xd7)](state[_0x30581d(0xdd)]),Utils[_0x30581d(0x12e)](_0x30581d(0x89),_0x30581d(0x10d)),hideDeleteModal(),await loadTeams();}catch(_0x2cb28f){Utils[_0x30581d(0x12e)](_0x30581d(0xfa)+_0x2cb28f[_0x30581d(0xcc)],'error'),_0x2b8b9f[_0x30581d(0x8e)]=![],_0x2b8b9f['textContent']=_0x30581d(0xfc);}}function _0x533e(_0x181439,_0x1b4a9a){_0x181439=_0x181439-0x82;const _0x1ad322=_0x1ad3();let _0x533e28=_0x1ad322[_0x181439];if(_0x533e['mBofFm']===undefined){var _0x23ab22=function(_0x566a9c){const _0x2a2a92='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x310604='',_0x126c19='';for(let _0x5b6a14=0x0,_0x3c6e07,_0x4680d9,_0x4b1a7c=0x0;_0x4680d9=_0x566a9c['charAt'](_0x4b1a7c++);~_0x4680d9&&(_0x3c6e07=_0x5b6a14%0x4?_0x3c6e07*0x40+_0x4680d9:_0x4680d9,_0x5b6a14++%0x4)?_0x310604+=String['fromCharCode'](0xff&_0x3c6e07>>(-0x2*_0x5b6a14&0x6)):0x0){_0x4680d9=_0x2a2a92['indexOf'](_0x4680d9);}for(let _0x2edae7=0x0,_0x11b55e=_0x310604['length'];_0x2edae7<_0x11b55e;_0x2edae7++){_0x126c19+='%'+('00'+_0x310604['charCodeAt'](_0x2edae7)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x126c19);};_0x533e['rYLjKM']=_0x23ab22,_0x533e['ARJaZO']={},_0x533e['mBofFm']=!![];}const _0x33aa84=_0x1ad322[0x0],_0x38deea=_0x181439+_0x33aa84,_0x48ac62=_0x533e['ARJaZO'][_0x38deea];return!_0x48ac62?(_0x533e28=_0x533e['rYLjKM'](_0x533e28),_0x533e['ARJaZO'][_0x38deea]=_0x533e28):_0x533e28=_0x48ac62,_0x533e28;}function syncTeamInState(_0x1ec3b8){const _0x5cf246=_0x5c9fe2,_0xa2e12b=state[_0x5cf246(0xf2)]['findIndex'](_0x576123=>_0x576123['id']===_0x1ec3b8['id']);if(_0xa2e12b>=0x0)state['teams'][_0xa2e12b]=_0x1ec3b8;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 _0x43c023=_0x2e43;(function(_0x50f4e7,_0x13f68d){const _0x3ebfa7=_0x2e43,_0x1cb367=_0x50f4e7();while(!![]){try{const _0x20d4b5=-parseInt(_0x3ebfa7(0x1e8))/0x1+-parseInt(_0x3ebfa7(0x1df))/0x2*(-parseInt(_0x3ebfa7(0x1bf))/0x3)+-parseInt(_0x3ebfa7(0x1da))/0x4*(-parseInt(_0x3ebfa7(0x1e7))/0x5)+parseInt(_0x3ebfa7(0x1e5))/0x6*(-parseInt(_0x3ebfa7(0x1db))/0x7)+parseInt(_0x3ebfa7(0x1fa))/0x8+-parseInt(_0x3ebfa7(0x1de))/0x9+-parseInt(_0x3ebfa7(0x1fe))/0xa*(-parseInt(_0x3ebfa7(0x1ae))/0xb);if(_0x20d4b5===_0x13f68d)break;else _0x1cb367['push'](_0x1cb367['shift']());}catch(_0x5743fa){_0x1cb367['push'](_0x1cb367['shift']());}}}(_0x49a3,0xdeede));function _0x49a3(){const _0x11a23f=['D2fZq2XLyw4','y29SCW','DgvYBwLUywWTDgL0Bgu','DgvYBwLUywWTC3vIDgL0Bgu','y29UDgfPBMvYihbHCMfTzxrLCIbPCYbYzxf1AxjLza','y2XVC2u','DhjPBq','imk3ienVBw1HBMqG','C2v0','zgf0yq','C2XPy2u','y21K','C3vIC3rYAw5N','mtaWnJKZmJbWrMXKBvm','Dgv4DenVBNrLBNq','DgvYBwLUywWTC3rHDhvZ','ChjVDg9JB2W','mty1mti3menhzKnQDa','zNvSBenVBNrHAw5LCKLK','q29UBMvJDgLVBIbLCNjVCG','Aw5MBW','y3jLyxrLzef0','zMLUza','CMvHzhLtDgf0zq','y29UDgfPBMvYswq','ntvIzKv6zhC','z2v0rwXLBwvUDej5swq','DhLWzq','zM9YBwf0uMvSyxrPDMvuAw1L','uhjLCgfYAw5NoIa','sMv0qNjHAw5Zie1VBM8Sifngtw9UBY1szwD1BgfYlcbdB25ZB2XHCYWGBw9UB3nWywnL','y29UDgfPBMvYCW','u2vZC2LVBIa','vgvYBwLUywWGWRCG','y29UBMvJDgvK','zgvMyxvSDefNzw50','C3vJy2vZCW','imk3ifn0yxj0zwqG','t1bftG','y29UDgfPBMvY','C3rHDhvZ','q29UBMvJDgLVBIbJBg9Zzwq','oty2m2Llte1yrq','Bg9JyxrPB24','DgL0Bgu','D3nZ','z2v0q29UDgfPBMvY','CMvZAxPL','zxjYB3i','y2XVC2uTDgvYBwLUywW','uNvUBMLUzZOG','CgfYC2u','BMfTzq','i2uYztHMma','imk3iefNzw50ia','C3rYAw5NAwz5','Ahr0Chm6','C2nYB2XSvg9cB3r0B20','DMfYAwfUDa','y2XPy2S','z2v0uxvLCNLqyxjHBxm','DgvYBwLUywWTy29UDgfPBMvY','D3jPDgu','zML0','twLZC2LUzYbJB250ywLUzxiGAwrLBNrPzMLLCG','vgvYBwLUywWGD2vIC29JA2v0igvYCM9Y','BgvUz3rO','C2vHCMnOugfYyw1Z','C2vYDMvYx2v4zwm','mJiYmde5mNryzNHtDW','nZiXD2fAwLnj','y2f0y2G','q29UDgfPBMvYia','mti3mZe1nJjpsKHUv2S','ndiYt2nJtgvP','BwvZC2fNzq','AhjLzG','ywrKrxzLBNrmAxn0zw5LCG','zM9JDxm','C2vUza','nde5nZbbtfnjEeC','vgvYBwLUywWGy29UBMvJDgvK','nwnZsfrRtq','mJCWnZu4suL0C0rz','iZbMmtCYyq','rw52AxjVBM1LBNqG','B25eyxrH','CMvHC29U'];_0x49a3=function(){return _0x11a23f;};return _0x49a3();}function _0x2e43(_0x1c2a9f,_0x15e772){_0x1c2a9f=_0x1c2a9f-0x1a7;const _0x49a3f5=_0x49a3();let _0x2e4303=_0x49a3f5[_0x1c2a9f];if(_0x2e43['bivcBu']===undefined){var _0x3cb814=function(_0x377ac7){const _0x1ddf51='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4357bc='',_0x3173ed='';for(let _0x2c9ce8=0x0,_0x1747cc,_0x380a3b,_0x3109dd=0x0;_0x380a3b=_0x377ac7['charAt'](_0x3109dd++);~_0x380a3b&&(_0x1747cc=_0x2c9ce8%0x4?_0x1747cc*0x40+_0x380a3b:_0x380a3b,_0x2c9ce8++%0x4)?_0x4357bc+=String['fromCharCode'](0xff&_0x1747cc>>(-0x2*_0x2c9ce8&0x6)):0x0){_0x380a3b=_0x1ddf51['indexOf'](_0x380a3b);}for(let _0x1bbbe3=0x0,_0xc03ff7=_0x4357bc['length'];_0x1bbbe3<_0xc03ff7;_0x1bbbe3++){_0x3173ed+='%'+('00'+_0x4357bc['charCodeAt'](_0x1bbbe3)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3173ed);};_0x2e43['LKETzK']=_0x3cb814,_0x2e43['qhTwmX']={},_0x2e43['bivcBu']=!![];}const _0xd3cee=_0x49a3f5[0x0],_0x2b0adc=_0x1c2a9f+_0xd3cee,_0x1cd11d=_0x2e43['qhTwmX'][_0x2b0adc];return!_0x1cd11d?(_0x2e4303=_0x2e43['LKETzK'](_0x2e4303),_0x2e43['qhTwmX'][_0x2b0adc]=_0x2e4303):_0x2e4303=_0x1cd11d,_0x2e4303;}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[_0x43c023(0x1d1)](),containerId=params[_0x43c023(0x1bc)],command=(params[_0x43c023(0x1f8)]||'')[_0x43c023(0x1f3)](),useServerExec=params[_0x43c023(0x1d9)]==='true',titleEl=document[_0x43c023(0x1af)](_0x43c023(0x1ef)),subtitleEl=document[_0x43c023(0x1af)](_0x43c023(0x1f0)),statusEl=document['getElementById'](_0x43c023(0x1fc)),terminalEl=document[_0x43c023(0x1af)](_0x43c023(0x1d2)),closeBtn=document[_0x43c023(0x1af)](_0x43c023(0x1c6));initTheme(),mountThemeToggle({'targetSelectors':['.terminal-actions']});const getXtermTheme=()=>{const _0x13ce7d=_0x43c023;return{'background':'#0f172a','foreground':_0x13ce7d(0x1ca),'cursor':_0x13ce7d(0x1ca),'cursorAccent':_0x13ce7d(0x1e9)};};closeBtn&&closeBtn['addEventListener'](_0x43c023(0x1d0),()=>{window['close']();});if(!containerId){updateStatus(_0x43c023(0x1d5),_0x43c023(0x1c5));throw new Error(_0x43c023(0x1f1));}document[_0x43c023(0x1c1)]=_0x43c023(0x1b6)+containerId[_0x43c023(0x1f7)](0x0,0xc),enrichContainerDetails(containerId)[_0x43c023(0x1dc)](()=>{const _0xf8c6b7=_0x43c023;subtitleEl['textContent']=_0xf8c6b7(0x1dd)+containerId[_0xf8c6b7(0x1f9)](0x0,0xc);});const term=new Terminal({'convertEol':!![],'cursorBlink':!![],'fontFamily':_0x43c023(0x1b3),'fontSize':0x10,'theme':getXtermTheme()}),fitAddon=new FitAddon();term['loadAddon'](fitAddon),term['open'](terminalEl),term[_0x43c023(0x1e3)]();let isFitting=![];const doFit=()=>{const _0xa66571=_0x43c023;if(isFitting)return;isFitting=!![],fitAddon[_0xa66571(0x1d4)](),sendResize(),term[_0xa66571(0x1ce)](),setTimeout(()=>{isFitting=![];},0x32);};window['addEventListener'](_0x43c023(0x1c4),()=>{requestAnimationFrame(()=>{!isFitting&&doFit();});});const resizeObserver=new ResizeObserver(()=>{requestAnimationFrame(()=>{!isFitting&&doFit();});});resizeObserver['observe'](terminalEl);const socketProtocol=window[_0x43c023(0x1c0)][_0x43c023(0x1fd)]===_0x43c023(0x1cd)?_0x43c023(0x1c2):'ws',socketUrl=new URL('/ws/containers/'+encodeURIComponent(containerId),window[_0x43c023(0x1c0)][_0x43c023(0x1e1)]);command&&useServerExec&&socketUrl[_0x43c023(0x1d8)][_0x43c023(0x1f5)](_0x43c023(0x1f8),command);socketUrl[_0x43c023(0x1fd)]=socketProtocol+':';const socket=new WebSocket(socketUrl['toString']());term[_0x43c023(0x1eb)](_0x4357bc=>{const _0x426da7=_0x43c023;socket[_0x426da7(0x1ac)]===WebSocket[_0x426da7(0x1bb)]&&socket[_0x426da7(0x1e4)](JSON[_0x426da7(0x1cc)]({'type':_0x426da7(0x1f6),'data':_0x4357bc}));});let commandSent=![],hasReceivedOutput=![];socket['addEventListener'](_0x43c023(0x1e0),_0x3173ed=>{const _0x9716fc=_0x43c023;try{const _0x2c9ce8=JSON[_0x9716fc(0x1c8)](_0x3173ed['data']);if(_0x2c9ce8['type']===_0x9716fc(0x1f6)&&typeof _0x2c9ce8[_0x9716fc(0x1f6)]==='string')term[_0x9716fc(0x1d3)](_0x2c9ce8[_0x9716fc(0x1f6)]),!hasReceivedOutput&&_0x2c9ce8[_0x9716fc(0x1f6)][_0x9716fc(0x1d7)]>0x0&&(hasReceivedOutput=!![],command&&!useServerExec&&!commandSent&&(commandSent=!![],setTimeout(()=>{const _0x177bd3=_0x9716fc;socket[_0x177bd3(0x1ac)]===WebSocket[_0x177bd3(0x1bb)]&&socket['send'](JSON['stringify']({'type':_0x177bd3(0x1f6),'data':command+'\x0d'}));},0xc8)));else{if(_0x2c9ce8['type']==='status'&&_0x2c9ce8[_0x9716fc(0x1bd)]){if(_0x2c9ce8[_0x9716fc(0x1bd)]==='connected'){if(command&&useServerExec)updateStatus(_0x9716fc(0x1c7)+command,_0x9716fc(0x1a9));else command?updateStatus(_0x9716fc(0x1b2)+command,'info'):updateStatus(_0x9716fc(0x1e6),_0x9716fc(0x1b9));doFit(),term[_0x9716fc(0x1e3)](),command&&!useServerExec&&!commandSent&&setTimeout(()=>{const _0x443a6c=_0x9716fc;!commandSent&&socket['readyState']===WebSocket[_0x443a6c(0x1bb)]&&(commandSent=!![],socket[_0x443a6c(0x1e4)](JSON[_0x443a6c(0x1cc)]({'type':'data','data':command+'\x0d'})),updateStatus(_0x443a6c(0x1c7)+command,'info'));},0x7d0);}else updateStatus(_0x9716fc(0x1b5)+_0x2c9ce8[_0x9716fc(0x1bd)],_0x2c9ce8[_0x9716fc(0x1bd)]===_0x9716fc(0x1b7)?_0x9716fc(0x1b9):_0x9716fc(0x1a9));}else _0x2c9ce8[_0x9716fc(0x1b0)]==='error'&&_0x2c9ce8['message']&&updateStatus(_0x2c9ce8[_0x9716fc(0x1e0)],_0x9716fc(0x1c5));}}catch(_0x1747cc){console[_0x9716fc(0x1c5)]('Failed\x20to\x20parse\x20terminal\x20message',_0x1747cc);}}),socket['addEventListener'](_0x43c023(0x1f2),_0x380a3b=>{const _0x5b370a=_0x43c023,_0x3109dd=_0x380a3b[_0x5b370a(0x1ec)]||_0x5b370a(0x1be);updateStatus(_0x3109dd,_0x380a3b[_0x5b370a(0x1ed)]?'info':_0x5b370a(0x1c5));}),socket[_0x43c023(0x1e2)]('error',_0x1bbbe3=>{const _0xbca4f8=_0x43c023;console[_0xbca4f8(0x1c5)](_0xbca4f8(0x1d6),_0x1bbbe3),updateStatus(_0xbca4f8(0x1a8),'error');});function sendResize(){const _0x5f3862=_0x43c023;if(socket[_0x5f3862(0x1ac)]!==WebSocket[_0x5f3862(0x1bb)])return;const _0xc03ff7=term[_0x5f3862(0x1ee)],_0x4639f6=term['rows'];socket['send'](JSON['stringify']({'type':_0x5f3862(0x1c4),'cols':_0xc03ff7,'rows':_0x4639f6}));}function updateStatus(_0x1ca25d,_0x472035=_0x43c023(0x1a9)){const _0x557a49=_0x43c023;if(!statusEl)return;statusEl[_0x557a49(0x1fb)]=_0x1ca25d,statusEl['dataset'][_0x557a49(0x1cf)]=_0x472035;}async function enrichContainerDetails(_0x5992ed){const _0x3180e8=_0x43c023;try{const _0x4c7627=await API[_0x3180e8(0x1c3)](_0x5992ed);updateTerminalDetails(_0x4c7627);}catch{try{const _0x2fc47d=await API['getContainers'](),_0x719e04=(_0x2fc47d[_0x3180e8(0x1b4)]||[])[_0x3180e8(0x1ab)](_0xf55cbe=>_0xf55cbe[_0x3180e8(0x1ad)]===_0x5992ed||_0xf55cbe[_0x3180e8(0x1c9)]===_0x5992ed||_0xf55cbe[_0x3180e8(0x1a7)]?.['startsWith'](_0x5992ed));if(_0x719e04){updateTerminalDetails(_0x719e04);return;}subtitleEl[_0x3180e8(0x1fb)]=_0x3180e8(0x1dd)+_0x5992ed[_0x3180e8(0x1f9)](0x0,0xc);}catch{subtitleEl['textContent']=_0x3180e8(0x1dd)+_0x5992ed[_0x3180e8(0x1f9)](0x0,0xc);}}}function updateTerminalDetails(_0x4e085e){const _0x3e9fad=_0x43c023,_0x5a186e=_0x4e085e[_0x3e9fad(0x1ad)]||_0x4e085e[_0x3e9fad(0x1c9)]||_0x4e085e['fullContainerId']||containerId,_0x2e5e3b=_0x4e085e['environment']?_0x3e9fad(0x1ea)+_0x4e085e['environment']:'Environment\x20unknown',_0x3b9a62=_0x4e085e[_0x3e9fad(0x1b8)]?_0x3e9fad(0x1cb)+_0x4e085e[_0x3e9fad(0x1b8)]:'',_0x299cb1=_0x4e085e['createdAt']?_0x3e9fad(0x1ba)+Utils[_0x3e9fad(0x1b1)](_0x4e085e[_0x3e9fad(0x1aa)]):'';titleEl['textContent']=_0x3e9fad(0x1b6)+_0x5a186e[_0x3e9fad(0x1f9)](0x0,0xc);const _0x43f0df=command?_0x3e9fad(0x1f4)+command:'';subtitleEl[_0x3e9fad(0x1fb)]=''+_0x2e5e3b+_0x3b9a62+_0x299cb1+_0x43f0df;}
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 _0x1c08e2=_0x53b5;(function(_0x315fe9,_0x345c84){const _0x528aa3=_0x53b5,_0x49e0a6=_0x315fe9();while(!![]){try{const _0x2c1736=-parseInt(_0x528aa3(0x205))/0x1+parseInt(_0x528aa3(0x21a))/0x2+-parseInt(_0x528aa3(0x20f))/0x3*(-parseInt(_0x528aa3(0x21f))/0x4)+parseInt(_0x528aa3(0x1f2))/0x5*(parseInt(_0x528aa3(0x222))/0x6)+parseInt(_0x528aa3(0x1f6))/0x7+-parseInt(_0x528aa3(0x1f8))/0x8*(-parseInt(_0x528aa3(0x22c))/0x9)+parseInt(_0x528aa3(0x1ee))/0xa;if(_0x2c1736===_0x345c84)break;else _0x49e0a6['push'](_0x49e0a6['shift']());}catch(_0x2f2d78){_0x49e0a6['push'](_0x49e0a6['shift']());}}}(_0x5d26,0xc27da));const THEME_STORAGE_KEY=_0x1c08e2(0x1ff),THEME_CHANGE_EVENT='profound-theme-change',VALID_THEMES=new Set([_0x1c08e2(0x22b),_0x1c08e2(0x1f4)]),DEFAULT_TARGET_SELECTORS=[_0x1c08e2(0x20c),_0x1c08e2(0x215),_0x1c08e2(0x206),_0x1c08e2(0x21c),_0x1c08e2(0x1fc)];function readStoredTheme(){const _0x3b2bd9=_0x1c08e2;try{const _0x22e3cd=localStorage[_0x3b2bd9(0x21b)](THEME_STORAGE_KEY);if(_0x22e3cd&&VALID_THEMES[_0x3b2bd9(0x218)](_0x22e3cd))return _0x22e3cd;}catch(_0x3104d0){console[_0x3b2bd9(0x1ed)](_0x3b2bd9(0x217),_0x3104d0);}return null;}export function getPreferredTheme(){const _0x734900=_0x1c08e2,_0x56b0ba=readStoredTheme();if(_0x56b0ba)return _0x56b0ba;const _0x51753b=window[_0x734900(0x1f7)]&&window[_0x734900(0x1f7)]('(prefers-color-scheme:\x20dark)')[_0x734900(0x1fd)];return _0x51753b?_0x734900(0x1f4):_0x734900(0x22b);}export function getCurrentTheme(){const _0x341bc5=document['documentElement']['dataset']['theme'];if(_0x341bc5&&VALID_THEMES['has'](_0x341bc5))return _0x341bc5;return getPreferredTheme();}export function applyTheme(_0x161f27,{persist:persist=!![],emitEvent:emitEvent=!![]}={}){const _0x368f1c=_0x1c08e2,_0x2d9b6f=VALID_THEMES[_0x368f1c(0x218)](_0x161f27)?_0x161f27:'light';document[_0x368f1c(0x212)]['dataset'][_0x368f1c(0x208)]=_0x2d9b6f,document[_0x368f1c(0x212)]['style'][_0x368f1c(0x1fa)]=_0x2d9b6f===_0x368f1c(0x1f4)?'dark':'light';if(persist)try{localStorage[_0x368f1c(0x1f1)](THEME_STORAGE_KEY,_0x2d9b6f);}catch(_0x19abff){console[_0x368f1c(0x1ed)](_0x368f1c(0x214),_0x19abff);}return emitEvent&&window[_0x368f1c(0x22a)](new CustomEvent(THEME_CHANGE_EVENT,{'detail':{'theme':_0x2d9b6f}})),_0x2d9b6f;}function _0x53b5(_0x3bb727,_0x514291){_0x3bb727=_0x3bb727-0x1eb;const _0x5d26a9=_0x5d26();let _0x53b5bf=_0x5d26a9[_0x3bb727];if(_0x53b5['WXXyJK']===undefined){var _0x24ec69=function(_0x101069){const _0x246d64='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x22e3cd='',_0x3104d0='';for(let _0x56b0ba=0x0,_0x51753b,_0x341bc5,_0x161f27=0x0;_0x341bc5=_0x101069['charAt'](_0x161f27++);~_0x341bc5&&(_0x51753b=_0x56b0ba%0x4?_0x51753b*0x40+_0x341bc5:_0x341bc5,_0x56b0ba++%0x4)?_0x22e3cd+=String['fromCharCode'](0xff&_0x51753b>>(-0x2*_0x56b0ba&0x6)):0x0){_0x341bc5=_0x246d64['indexOf'](_0x341bc5);}for(let _0x2d9b6f=0x0,_0x19abff=_0x22e3cd['length'];_0x2d9b6f<_0x19abff;_0x2d9b6f++){_0x3104d0+='%'+('00'+_0x22e3cd['charCodeAt'](_0x2d9b6f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3104d0);};_0x53b5['JAoyqA']=_0x24ec69,_0x53b5['VSsSQF']={},_0x53b5['WXXyJK']=!![];}const _0x1eea1f=_0x5d26a9[0x0],_0x5183ee=_0x3bb727+_0x1eea1f,_0x362814=_0x53b5['VSsSQF'][_0x5183ee];return!_0x362814?(_0x53b5bf=_0x53b5['JAoyqA'](_0x53b5bf),_0x53b5['VSsSQF'][_0x5183ee]=_0x53b5bf):_0x53b5bf=_0x362814,_0x53b5bf;}export function initTheme(_0x3c8991={}){const {emitEvent:emitEvent=![]}=_0x3c8991;return applyTheme(getPreferredTheme(),{'persist':![],'emitEvent':emitEvent});}export function toggleTheme(){const _0x5b5451=_0x1c08e2,_0x15f884=getCurrentTheme()===_0x5b5451(0x1f4)?'light':_0x5b5451(0x1f4);return applyTheme(_0x15f884);}function _0x5d26(){const _0x3d08ba=['CgfKzgLUzW','nKHoCMfrrW','ywrK','CMvTB3zLrxzLBNrmAxn0zw5LCG','zg9JDw1LBNrfBgvTzw50','DgHLBwuTDg9Nz2XLlwj0BG','w1rOzw1LxsbgywLSzwqGDg8GCgvYC2LZDcb0AgvTzsbWCMvMzxjLBMnLoG','lMHLywrLCI1Hy3rPB25Z','mZzWEa','w1rOzw1LxsbgywLSzwqGDg8GCMvHzcbZDg9YzwqGDgHLBwuGChjLzMvYzw5JztO','AgfZ','zMLUza','otu4ndGYzNziqxrV','z2v0sxrLBq','lNrLCM1PBMfSlwfJDgLVBNm','yM9KEq','ywrKrxzLBNrmAxn0zw5LCG','mtqXnZi0yvnYvhzb','AgvPz2H0','DgHLBwuTAwnVBG','mJCXmKzvD1f3rG','ywXPz25jDgvTCW','ohb4','zMfSC2u','BwfW','yNrUlwDOB3n0ihrOzw1LlxrVz2DSzs1IDg4','yxjPys1WCMvZC2vK','y2vUDgvY','zgLZCgf0y2HfDMvUDa','BgLNAhq','mtaYntfiDwflqMS','ANvZDgLMEunVBNrLBNq','C3r5Bgu','D2fYBG','mZi0mJaYmgPyCMzgtG','phn2zYb4BwXUCZ0IAhr0CdOVl3D3DY53mY5VCMCVmJaWmc9ZDMCIihDPzhrOpsiYmciGAgvPz2H0psiYmciGDMLLD0jVEd0ImcaWidi0idi0iIbMAwXSpsjUB25LiIbZDhjVA2u9iMn1CNjLBNrdB2XVCIiGC3rYB2TLlxDPzhrOpsiYiIbZDhjVA2uTBgLUzwnHCd0ICM91BMqIihn0CM9Rzs1SAw5LAM9PBJ0ICM91BMqIpJXJAxjJBguGy3G9iJeYiIbJEt0ImtiIihi9iJuIpJWVy2LYy2XLpJXSAw5LihGXpsiXmIiGEte9iJeIihGYpsiXmIiGEti9iJmIpJWVBgLUzt48BgLUzsb4mt0ImtiIihKXpsiYmsiGEdi9iJeYiIb5mJ0ImJmIpJWVBgLUzt48BgLUzsb4mt0Inc4YmIiGEte9iJqUmJiIihGYpsi1lJy0iIb5mJ0Ins42nci+pc9SAw5LpJXSAw5LihGXpsiXoc4ZnIiGEte9iJe4lJm2iIb4mJ0ImtKUnZGIihKYpsiXos43oci+pc9SAw5LpJXSAw5LihGXpsiXiIb5mt0ImtiIihGYpsiZiIb5mJ0ImtiIpJWVBgLUzt48BgLUzsb4mt0ImJeIihKXpsiXmIiGEdi9iJiZiIb5mJ0ImtiIpJWVBgLUzt48BgLUzsb4mt0Inc4YmIiGEte9iJe5lJC4iIb4mJ0Ins42nciGEti9iJe4lJm2iJ48l2XPBMu+pgXPBMuGEde9iJe4lJm2iIb5mt0Ins42nciGEdi9iJe5lJC4iIb5mJ0Inc4YmIi+pc9SAw5LpJWVC3zNpG','zgf0yxnLDa','C2v0sxrLBq','ndG5nu9hA3nmuq','zgv0ywLS','zgfYAW','Aw5Uzxjive1m','mtK1ntGXngv2u2zotq','Bwf0y2HnzwrPyq','nta4mgfJDMXosa','DgL0Bgu','y29SB3jty2HLBwu','C3bHBG','lNrVCc1Iyxi','Bwf0y2HLCW','C2v0qxr0CMLIDxrL','ChjVzM91BMqTy29KzxiTDgHLBwu','zMXLEa','y2XHC3nmAxn0','zgLZCgXHEq','u3DPDgnOihrVigrHCMSGBw9Kzq','y3jLyxrLrwXLBwvUDa','mtuYmJG0nNrcsffwyq','lNn0yxr1CY1Hy3rPB25Z','yxbWzw5K','DgHLBwu','CxvLCNLtzwXLy3rVCG','yNv0Dg9U','phn2zYb4BwXUCZ0IAhr0CdOVl3D3DY53mY5VCMCVmJaWmc9ZDMCIihDPzhrOpsiYmciGAgvPz2H0psiYmciGDMLLD0jVEd0ImcaWidi0idi0iIbMAwXSpsjUB25LiIbZDhjVA2u9iMn1CNjLBNrdB2XVCIiGC3rYB2TLlxDPzhrOpsiYiIbZDhjVA2uTBgLUzwnHCd0ICM91BMqIihn0CM9Rzs1SAw5LAM9PBJ0ICM91BMqIpJXWyxrOigq9iK0YmsaXmI43oue5idKGmcaXideGmteUmJeGmYa3idCGmcaWidaGmJeGmtiUnZL6iJ48l3bHDgG+pc9ZDMC+','i3rOzw1LlxrVz2DSzs1JB250ywLUzxi','yxbWzw5Kq2HPBgq'];_0x5d26=function(){return _0x3d08ba;};return _0x5d26();}export function onThemeChange(_0x163ea3,{runImmediately:runImmediately=![]}={}){const _0xfdea5c=_0x1c08e2,_0xaeba60=_0x2644fc=>{const _0x1a70b4=_0x53b5;_0x163ea3(_0x2644fc[_0x1a70b4(0x1f3)][_0x1a70b4(0x208)]);};return window[_0xfdea5c(0x21e)](THEME_CHANGE_EVENT,_0xaeba60),runImmediately&&_0x163ea3(getCurrentTheme()),()=>window[_0xfdea5c(0x211)](THEME_CHANGE_EVENT,_0xaeba60);}export function mountThemeToggle(_0x234912={}){const _0x1e2866=_0x1c08e2,{targetSelectors:targetSelectors=DEFAULT_TARGET_SELECTORS}=_0x234912,_0x3e9345=targetSelectors[_0x1e2866(0x226)](_0xf9d7c3=>document[_0x1e2866(0x209)](_0xf9d7c3))[_0x1e2866(0x219)](Boolean),_0x3dfbe2=document[_0x1e2866(0x204)](_0x1e2866(0x20a));_0x3dfbe2['type']=_0x1e2866(0x20a),_0x3dfbe2['className']=_0x1e2866(0x227),_0x3dfbe2['id']=_0x1e2866(0x213),_0x3dfbe2[_0x1e2866(0x1fe)](_0x1e2866(0x228),_0x1e2866(0x225)),_0x3dfbe2[_0x1e2866(0x1ec)][_0x1e2866(0x20e)]=_0x1e2866(0x224),_0x3dfbe2[_0x1e2866(0x1ec)]['lineHeight']='0',_0x3dfbe2[_0x1e2866(0x1ec)]['width']=_0x1e2866(0x216),_0x3dfbe2[_0x1e2866(0x1ec)][_0x1e2866(0x220)]=_0x1e2866(0x216),_0x3dfbe2[_0x1e2866(0x1ec)][_0x1e2866(0x202)]=_0x1e2866(0x200),_0x3dfbe2[_0x1e2866(0x1ec)][_0x1e2866(0x223)]=_0x1e2866(0x229),_0x3dfbe2[_0x1e2866(0x1ec)][_0x1e2866(0x1eb)]=_0x1e2866(0x229);const _0x205ffd=document[_0x1e2866(0x204)](_0x1e2866(0x1fb));_0x205ffd['className']=_0x1e2866(0x221),_0x205ffd['style']['display']=_0x1e2866(0x200),_0x3dfbe2[_0x1e2866(0x207)](_0x205ffd);const _0x54dca0=_0x1e2866(0x20b),_0x552d90=_0x1e2866(0x1ef),_0x410b60=_0x8949d1=>{const _0x5cc9ed=_0x1e2866,_0x154ba5=_0x8949d1===_0x5cc9ed(0x1f4);_0x205ffd[_0x5cc9ed(0x1f5)]=_0x154ba5?_0x54dca0:_0x552d90,_0x3dfbe2[_0x5cc9ed(0x1f9)]=_0x154ba5?'Switch\x20to\x20light\x20mode':_0x5cc9ed(0x203),_0x3dfbe2[_0x5cc9ed(0x1f0)][_0x5cc9ed(0x208)]=_0x8949d1,_0x3dfbe2[_0x5cc9ed(0x1fe)](_0x5cc9ed(0x228),String(_0x154ba5));};return _0x3dfbe2['addEventListener']('click',()=>{const _0x217ca0=_0x1e2866,_0x4305a8=getCurrentTheme()==='dark'?_0x217ca0(0x22b):_0x217ca0(0x1f4);applyTheme(_0x4305a8);}),_0x3e9345?_0x3e9345[_0x1e2866(0x20d)](_0x3dfbe2):(_0x3dfbe2[_0x1e2866(0x201)][_0x1e2866(0x210)]('theme-toggle-floating'),document[_0x1e2866(0x21d)][_0x1e2866(0x20d)](_0x3dfbe2)),_0x410b60(initTheme()),onThemeChange(_0x410b60),_0x3dfbe2;}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>