@profoundlogic/coderflow-server 0.4.4 → 0.4.5

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 (176) hide show
  1. package/dist/base-image/entrypoint.sh +2 -1
  2. package/dist/coder-server.js +1 -1
  3. package/dist/config.js +1 -1
  4. package/dist/lib/agent-keepalive.js +1 -1
  5. package/dist/lib/agent-models.js +1 -1
  6. package/dist/lib/api-keys.js +1 -1
  7. package/dist/lib/apiKeys.js +1 -1
  8. package/dist/lib/app-server-ports.js +1 -1
  9. package/dist/lib/auto-judge.js +1 -1
  10. package/dist/lib/automation-service.js +1 -0
  11. package/dist/lib/basic-auth.js +1 -1
  12. package/dist/lib/bindings.js +1 -0
  13. package/dist/lib/build-history.js +1 -1
  14. package/dist/lib/build-output-service.js +1 -1
  15. package/dist/lib/build-scheduler.js +1 -1
  16. package/dist/lib/build-service.js +1 -1
  17. package/dist/lib/ca-certificates.js +1 -1
  18. package/dist/lib/claude-oauth-refresh.js +1 -1
  19. package/dist/lib/cli/build.js +1 -1
  20. package/dist/lib/cli/config-command.js +1 -1
  21. package/dist/lib/cli/config.js +1 -1
  22. package/dist/lib/cli/create-user.js +1 -1
  23. package/dist/lib/cli/init.js +1 -1
  24. package/dist/lib/cli/jira.js +1 -1
  25. package/dist/lib/cli/license.js +1 -1
  26. package/dist/lib/cli/server-manager.js +1 -1
  27. package/dist/lib/config-migration.js +1 -1
  28. package/dist/lib/container-credential-sync.js +1 -1
  29. package/dist/lib/container-tokens.js +1 -1
  30. package/dist/lib/data-dir.js +1 -1
  31. package/dist/lib/deployment-history.js +1 -1
  32. package/dist/lib/deployment-service.js +1 -1
  33. package/dist/lib/docker-utils.js +1 -1
  34. package/dist/lib/email.js +1 -1
  35. package/dist/lib/emailTemplates.js +1 -1
  36. package/dist/lib/entitlement.js +1 -1
  37. package/dist/lib/fetch-utils.js +1 -1
  38. package/dist/lib/git-commit-details-route.js +1 -1
  39. package/dist/lib/git-history-diff-guardrails.js +1 -1
  40. package/dist/lib/git-provider-service.js +1 -1
  41. package/dist/lib/git-provider-setup/github-setup-handler.js +1 -1
  42. package/dist/lib/git-provider-setup/index.js +1 -1
  43. package/dist/lib/git-provider-setup/setup-factory.js +1 -1
  44. package/dist/lib/git-provider-setup/setup-interface.js +1 -1
  45. package/dist/lib/git-providers/azure-devops-provider.js +1 -1
  46. package/dist/lib/git-providers/github-app-provider.js +1 -1
  47. package/dist/lib/git-providers/index.js +1 -1
  48. package/dist/lib/git-providers/provider-factory.js +1 -1
  49. package/dist/lib/git-providers/provider-interface.js +1 -1
  50. package/dist/lib/github-urls.js +1 -1
  51. package/dist/lib/group-objective-linking.js +1 -1
  52. package/dist/lib/jira-client.js +1 -1
  53. package/dist/lib/judge-blinding.js +1 -1
  54. package/dist/lib/logger.js +1 -1
  55. package/dist/lib/migration-to-scoped-rbac.js +1 -0
  56. package/dist/lib/model-fetcher.js +1 -1
  57. package/dist/lib/notifications.js +1 -1
  58. package/dist/lib/objective-context.js +1 -1
  59. package/dist/lib/oidc-auth.js +1 -1
  60. package/dist/lib/oidc-device-flow.js +1 -1
  61. package/dist/lib/passwordTokens.js +1 -1
  62. package/dist/lib/permission-resolver.js +1 -0
  63. package/dist/lib/pin-cascade.js +1 -1
  64. package/dist/lib/provider-accounts.js +1 -1
  65. package/dist/lib/provider-oauth.js +1 -1
  66. package/dist/lib/provider-profile.js +1 -1
  67. package/dist/lib/provider-token-refresh.js +1 -1
  68. package/dist/lib/request-url.js +1 -1
  69. package/dist/lib/rewind.js +1 -1
  70. package/dist/lib/role-definitions.js +1 -0
  71. package/dist/lib/roles.js +1 -1
  72. package/dist/lib/secrets.js +1 -1
  73. package/dist/lib/setup-repo-git-auth.js +1 -1
  74. package/dist/lib/state-capture.js +1 -1
  75. package/dist/lib/static-files.js +1 -1
  76. package/dist/lib/task-name-format.js +1 -1
  77. package/dist/lib/task-name-generator.js +1 -1
  78. package/dist/lib/task-source-metadata.js +1 -0
  79. package/dist/lib/teams.js +1 -0
  80. package/dist/lib/user-git-oauth.js +1 -1
  81. package/dist/lib/user-git-tokens.js +1 -1
  82. package/dist/lib/users.js +1 -1
  83. package/dist/middleware/requireAuth.js +1 -1
  84. package/dist/middleware/requireInit.js +1 -1
  85. package/dist/middleware/requirePermission.js +1 -1
  86. package/dist/package-lock.json +211 -21
  87. package/dist/package.json +2 -1
  88. package/dist/playwright.config.js +1 -0
  89. package/dist/routes/apiKeys.js +1 -1
  90. package/dist/routes/auth-oidc.js +1 -1
  91. package/dist/routes/auth.js +1 -1
  92. package/dist/routes/automations.js +1 -0
  93. package/dist/routes/bindings.js +1 -0
  94. package/dist/routes/build.js +1 -1
  95. package/dist/routes/containers.js +1 -1
  96. package/dist/routes/deploy-task.js +1 -1
  97. package/dist/routes/environment-management.js +1 -1
  98. package/dist/routes/environments.js +1 -1
  99. package/dist/routes/external-skills.js +1 -1
  100. package/dist/routes/git-credentials.js +1 -1
  101. package/dist/routes/git-oauth.js +1 -1
  102. package/dist/routes/git-provider-setup.js +1 -1
  103. package/dist/routes/health.js +1 -1
  104. package/dist/routes/jira.js +1 -1
  105. package/dist/routes/objective-management.js +1 -1
  106. package/dist/routes/password.js +1 -1
  107. package/dist/routes/prompt.js +1 -1
  108. package/dist/routes/provider-auth.js +1 -1
  109. package/dist/routes/qa.js +1 -1
  110. package/dist/routes/roles.js +1 -0
  111. package/dist/routes/settings.js +1 -1
  112. package/dist/routes/skill-management.js +1 -1
  113. package/dist/routes/skills.js +1 -1
  114. package/dist/routes/tasks.js +1 -1
  115. package/dist/routes/teams.js +1 -0
  116. package/dist/routes/templates.js +1 -1
  117. package/dist/routes/test-task.js +1 -1
  118. package/dist/routes/test.js +1 -1
  119. package/dist/routes/users.js +1 -1
  120. package/dist/routes/visualizations.js +1 -1
  121. package/dist/scripts/create-user.js +1 -1
  122. package/dist/scripts/migrate-config-to-data-dir.js +1 -1
  123. package/dist/scripts/migrate-to-scoped-rbac.js +2 -0
  124. package/dist/start.js +1 -1
  125. package/dist/start.js.bak +1381 -0
  126. package/dist/web-ui/public/activity-detail-modal.js +1 -1
  127. package/dist/web-ui/public/activity-feed.js +1 -1
  128. package/dist/web-ui/public/activity-formatters.js +1 -1
  129. package/dist/web-ui/public/agent-event-parser.js +1 -1
  130. package/dist/web-ui/public/app.js +1 -1
  131. package/dist/web-ui/public/approve-dialog.js +1 -1
  132. package/dist/web-ui/public/automation-links.js +1 -0
  133. package/dist/web-ui/public/automation-schedule.js +1 -0
  134. package/dist/web-ui/public/comments-widget.js +1 -1
  135. package/dist/web-ui/public/diff-utils.js +1 -1
  136. package/dist/web-ui/public/docs/_sidebar.md +1 -0
  137. package/dist/web-ui/public/docs/admin/automations.md +75 -0
  138. package/dist/web-ui/public/docs/admin/users-and-roles.md +14 -4
  139. package/dist/web-ui/public/environments.css +247 -125
  140. package/dist/web-ui/public/environments.html +346 -2
  141. package/dist/web-ui/public/environments.js +1 -1
  142. package/dist/web-ui/public/feedback-widget.css +42 -0
  143. package/dist/web-ui/public/feedback-widget.js +1 -1
  144. package/dist/web-ui/public/git-history-lazy-utils.js +1 -1
  145. package/dist/web-ui/public/git-history.html +15 -0
  146. package/dist/web-ui/public/git-history.js +1 -1
  147. package/dist/web-ui/public/git-status.js +1 -1
  148. package/dist/web-ui/public/index.html +27 -0
  149. package/dist/web-ui/public/index.js +1 -1
  150. package/dist/web-ui/public/login.js +1 -1
  151. package/dist/web-ui/public/markdown-editor.js +1 -1
  152. package/dist/web-ui/public/markdown-file-editor.js +1 -1
  153. package/dist/web-ui/public/modal-maximize.js +1 -1
  154. package/dist/web-ui/public/notifications.js +1 -1
  155. package/dist/web-ui/public/pr-dialog.js +1 -1
  156. package/dist/web-ui/public/roles.html +247 -0
  157. package/dist/web-ui/public/roles.js +1 -0
  158. package/dist/web-ui/public/server-health.js +1 -1
  159. package/dist/web-ui/public/settings.html +62 -0
  160. package/dist/web-ui/public/settings.js +1 -1
  161. package/dist/web-ui/public/setup-password.js +1 -1
  162. package/dist/web-ui/public/skills.html +15 -0
  163. package/dist/web-ui/public/skills.js +1 -1
  164. package/dist/web-ui/public/sse-client.js +1 -1
  165. package/dist/web-ui/public/sse-shared-worker.js +1 -1
  166. package/dist/web-ui/public/styles.css +198 -161
  167. package/dist/web-ui/public/task.html +2 -2
  168. package/dist/web-ui/public/task.js +1 -1
  169. package/dist/web-ui/public/teams.html +285 -0
  170. package/dist/web-ui/public/teams.js +1 -0
  171. package/dist/web-ui/public/terminal.js +1 -1
  172. package/dist/web-ui/public/theme.js +1 -1
  173. package/dist/web-ui/public/users.html +87 -29
  174. package/dist/web-ui/public/users.js +1 -1
  175. package/dist/web-ui/public/variant-grouping.js +1 -1
  176. package/package.json +6 -3
@@ -1 +1 @@
1
- const _0x12297=_0xffdf;(function(_0x54eebf,_0x5b659d){const _0x1431a6=_0xffdf,_0xb9d04e=_0x54eebf();while(!![]){try{const _0x510110=parseInt(_0x1431a6(0x15a))/0x1*(-parseInt(_0x1431a6(0x157))/0x2)+-parseInt(_0x1431a6(0x176))/0x3*(-parseInt(_0x1431a6(0x17a))/0x4)+parseInt(_0x1431a6(0x122))/0x5*(-parseInt(_0x1431a6(0x152))/0x6)+parseInt(_0x1431a6(0x11b))/0x7+parseInt(_0x1431a6(0x163))/0x8*(-parseInt(_0x1431a6(0x147))/0x9)+-parseInt(_0x1431a6(0x130))/0xa+parseInt(_0x1431a6(0x128))/0xb;if(_0x510110===_0x5b659d)break;else _0xb9d04e['push'](_0xb9d04e['shift']());}catch(_0x165ec8){_0xb9d04e['push'](_0xb9d04e['shift']());}}}(_0x1266,0xd8486));import{API}from'./app.js';function _0xffdf(_0x42880c,_0x39b780){_0x42880c=_0x42880c-0x115;const _0x1266e0=_0x1266();let _0xffdf7b=_0x1266e0[_0x42880c];if(_0xffdf['qtEHuC']===undefined){var _0x103136=function(_0x343d0b){const _0x2fa08e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1f7d60='',_0x362aab='';for(let _0x59555a=0x0,_0x1a990e,_0x152810,_0x36d77b=0x0;_0x152810=_0x343d0b['charAt'](_0x36d77b++);~_0x152810&&(_0x1a990e=_0x59555a%0x4?_0x1a990e*0x40+_0x152810:_0x152810,_0x59555a++%0x4)?_0x1f7d60+=String['fromCharCode'](0xff&_0x1a990e>>(-0x2*_0x59555a&0x6)):0x0){_0x152810=_0x2fa08e['indexOf'](_0x152810);}for(let _0x40b5d2=0x0,_0x561960=_0x1f7d60['length'];_0x40b5d2<_0x561960;_0x40b5d2++){_0x362aab+='%'+('00'+_0x1f7d60['charCodeAt'](_0x40b5d2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x362aab);};_0xffdf['oGjUkf']=_0x103136,_0xffdf['nZeMPO']={},_0xffdf['qtEHuC']=!![];}const _0xfc5707=_0x1266e0[0x0],_0x4f5be2=_0x42880c+_0xfc5707,_0x11bd1c=_0xffdf['nZeMPO'][_0x4f5be2];return!_0x11bd1c?(_0xffdf7b=_0xffdf['oGjUkf'](_0xffdf7b),_0xffdf['nZeMPO'][_0x4f5be2]=_0xffdf7b):_0xffdf7b=_0x11bd1c,_0xffdf7b;}let modalInjected=![];const SERVER_HEALTH_MODAL_HTML=_0x12297(0x15e);function ensureModalExists(){const _0x136523=_0x12297;if(modalInjected||document[_0x136523(0x129)](_0x136523(0x137)))return;const _0x1f7d60=document['createElement'](_0x136523(0x173));_0x1f7d60[_0x136523(0x162)]=SERVER_HEALTH_MODAL_HTML,document[_0x136523(0x12a)][_0x136523(0x144)](_0x1f7d60[_0x136523(0x14e)]),modalInjected=!![];}function clampPercent(_0x362aab){const _0x29b501=_0x12297;if(!Number['isFinite'](_0x362aab))return 0x0;return Math['max'](0x0,Math[_0x29b501(0x13b)](0x64,Math[_0x29b501(0x165)](_0x362aab)));}function setMetricProgress(_0x59555a,_0x1a990e,_0x152810='ok'){const _0x52a82e=_0x12297,_0x36d77b=document[_0x52a82e(0x129)](_0x59555a);if(!_0x36d77b)return;const _0x40b5d2=_0x36d77b[_0x52a82e(0x171)],_0x561960=clampPercent(_0x1a990e);_0x36d77b['style']['width']=_0x561960+'%',_0x36d77b['classList'][_0x52a82e(0x140)]('status-ok','status-warning',_0x52a82e(0x14b)),_0x36d77b[_0x52a82e(0x175)]['add'](_0x152810===_0x52a82e(0x154)?_0x52a82e(0x14b):_0x152810===_0x52a82e(0x16a)?_0x52a82e(0x116):_0x52a82e(0x15d)),_0x40b5d2&&_0x40b5d2['setAttribute']('aria-valuenow',String(_0x561960));}function statusFromPercent(_0x466542){const _0x19dc79=_0x12297;if(_0x466542>=0x5a)return'critical';if(_0x466542>=0x4b)return _0x19dc79(0x16a);return'ok';}async function loadServerHealthMetrics(){const _0x16ce14=_0x12297,_0x1fa476=document[_0x16ce14(0x129)](_0x16ce14(0x153)),_0x1f3a72=document[_0x16ce14(0x129)](_0x16ce14(0x158)),_0x356589=document['getElementById'](_0x16ce14(0x120));if(!_0x1fa476||!_0x1f3a72||!_0x356589)return;_0x1fa476['textContent']='Loading\x20server\x20metrics';try{const _0x5791c1=await fetch(_0x16ce14(0x11e),{'method':'GET','headers':{'Content-Type':_0x16ce14(0x131)},'credentials':'include'});if(!_0x5791c1['ok'])throw new Error(_0x16ce14(0x119)+_0x5791c1['statusText']);const _0x3dc84d=await _0x5791c1['json']();document['getElementById'](_0x16ce14(0x142))[_0x16ce14(0x13d)]=_0x3dc84d['cpu'][_0x16ce14(0x117)],document[_0x16ce14(0x129)]('memory-usage')[_0x16ce14(0x13d)]=_0x3dc84d['memory'][_0x16ce14(0x117)],document['getElementById'](_0x16ce14(0x159))['textContent']=_0x3dc84d['disk']['display'],document[_0x16ce14(0x129)](_0x16ce14(0x169))[_0x16ce14(0x13d)]=_0x3dc84d['docker']['display'],document[_0x16ce14(0x129)](_0x16ce14(0x164))[_0x16ce14(0x13d)]=_0x3dc84d[_0x16ce14(0x138)][_0x16ce14(0x117)],document[_0x16ce14(0x129)](_0x16ce14(0x150))[_0x16ce14(0x13d)]=_0x3dc84d[_0x16ce14(0x179)][_0x16ce14(0x117)],setMetricProgress(_0x16ce14(0x12e),_0x3dc84d[_0x16ce14(0x16c)][_0x16ce14(0x13c)],statusFromPercent(_0x3dc84d[_0x16ce14(0x16c)][_0x16ce14(0x13c)])),setMetricProgress(_0x16ce14(0x146),_0x3dc84d[_0x16ce14(0x145)][_0x16ce14(0x13c)],statusFromPercent(_0x3dc84d['memory'][_0x16ce14(0x13c)])),setMetricProgress('disk-progress',_0x3dc84d['disk']['percent'],statusFromPercent(_0x3dc84d['disk'][_0x16ce14(0x13c)]));const _0x1d21ad=_0x3dc84d[_0x16ce14(0x135)][_0x16ce14(0x14a)]>0x0?_0x3dc84d[_0x16ce14(0x135)][_0x16ce14(0x14d)]/_0x3dc84d[_0x16ce14(0x135)]['total']*0x64:0x0;setMetricProgress(_0x16ce14(0x141),_0x1d21ad);if(_0x3dc84d['dockerStorage']){const _0x249f14=document[_0x16ce14(0x129)]('docker-storage-card');document['getElementById'](_0x16ce14(0x13f))[_0x16ce14(0x13d)]=_0x3dc84d['dockerStorage'][_0x16ce14(0x117)];const _0x15fe07=document[_0x16ce14(0x129)]('docker-storage-available');_0x3dc84d[_0x16ce14(0x127)][_0x16ce14(0x148)]?(_0x15fe07[_0x16ce14(0x13d)]=_0x3dc84d['dockerStorage'][_0x16ce14(0x148)],_0x15fe07['hidden']=![]):_0x15fe07[_0x16ce14(0x12d)]=!![];document[_0x16ce14(0x129)](_0x16ce14(0x126))[_0x16ce14(0x13d)]=_0x3dc84d[_0x16ce14(0x127)][_0x16ce14(0x160)],document[_0x16ce14(0x129)](_0x16ce14(0x12f))[_0x16ce14(0x13d)]=_0x3dc84d[_0x16ce14(0x127)]['images'][_0x16ce14(0x117)],document['getElementById'](_0x16ce14(0x123))[_0x16ce14(0x13d)]=_0x3dc84d[_0x16ce14(0x127)][_0x16ce14(0x14c)]['display'],document[_0x16ce14(0x129)](_0x16ce14(0x11d))[_0x16ce14(0x13d)]=_0x3dc84d['dockerStorage']['volumes'][_0x16ce14(0x117)],document['getElementById'](_0x16ce14(0x118))['textContent']=_0x3dc84d[_0x16ce14(0x127)][_0x16ce14(0x115)][_0x16ce14(0x117)],setMetricProgress('docker-storage-progress',_0x3dc84d[_0x16ce14(0x127)][_0x16ce14(0x13c)],_0x3dc84d[_0x16ce14(0x127)][_0x16ce14(0x139)]),_0x249f14[_0x16ce14(0x175)][_0x16ce14(0x140)](_0x16ce14(0x116),_0x16ce14(0x14b));if(_0x3dc84d[_0x16ce14(0x127)][_0x16ce14(0x139)]===_0x16ce14(0x154))_0x249f14[_0x16ce14(0x175)][_0x16ce14(0x12c)](_0x16ce14(0x14b));else _0x3dc84d['dockerStorage']['status']==='warning'&&_0x249f14[_0x16ce14(0x175)]['add'](_0x16ce14(0x116));}_0x1fa476[_0x16ce14(0x12d)]=!![],_0x356589[_0x16ce14(0x12d)]=![];}catch(_0x1840d4){console[_0x16ce14(0x15b)](_0x16ce14(0x14f),_0x1840d4),_0x1fa476[_0x16ce14(0x12d)]=!![],_0x1f3a72['hidden']=![],_0x1f3a72[_0x16ce14(0x13d)]=_0x16ce14(0x13e)+_0x1840d4['message'];}}export async function openServerHealthModal(){const _0x7dc8c9=_0x12297;ensureModalExists();const _0x34d47a=document[_0x7dc8c9(0x129)](_0x7dc8c9(0x137)),_0x1171be=document[_0x7dc8c9(0x129)]('server-health-loading'),_0x4f078b=document[_0x7dc8c9(0x129)](_0x7dc8c9(0x158)),_0x53f784=document[_0x7dc8c9(0x129)]('server-health-content'),_0x3c870d=document['getElementById'](_0x7dc8c9(0x16d)),_0x1fd40f=document['getElementById'](_0x7dc8c9(0x177)),_0x1a473d=document[_0x7dc8c9(0x129)](_0x7dc8c9(0x136)),_0x16dcad=document[_0x7dc8c9(0x129)]('server-stop-containers'),_0x91616a=document[_0x7dc8c9(0x129)](_0x7dc8c9(0x143)),_0xa431a=document['getElementById']('server-prune-docker'),_0x3b093d=document[_0x7dc8c9(0x129)](_0x7dc8c9(0x125)),_0x10af9a=document[_0x7dc8c9(0x129)](_0x7dc8c9(0x170)),_0x531663=document[_0x7dc8c9(0x129)]('cleanup-content'),_0xaa94de=document[_0x7dc8c9(0x129)]('cleanup-section');if(!_0x34d47a)return;_0x34d47a[_0x7dc8c9(0x12d)]=![],_0x1171be[_0x7dc8c9(0x12d)]=![],_0x4f078b[_0x7dc8c9(0x12d)]=!![],_0x53f784[_0x7dc8c9(0x12d)]=!![];_0x3b093d&&(_0x3b093d['hidden']=!![],_0x3b093d[_0x7dc8c9(0x13d)]='',_0x3b093d[_0x7dc8c9(0x175)][_0x7dc8c9(0x140)](_0x7dc8c9(0x15c),_0x7dc8c9(0x15b)));_0xaa94de&&_0xaa94de[_0x7dc8c9(0x175)][_0x7dc8c9(0x140)](_0x7dc8c9(0x151));_0x531663&&(_0x531663[_0x7dc8c9(0x12d)]=!![]);_0x10af9a&&_0x10af9a[_0x7dc8c9(0x178)]('aria-expanded',_0x7dc8c9(0x132));const _0x983f0b=[_0x16dcad,_0x91616a,_0xa431a,_0x1a473d],_0x2b22dc=_0x1229b1=>{const _0x5d6cb3=_0x7dc8c9;_0x983f0b[_0x5d6cb3(0x167)](_0xf58093=>{const _0x49b1d9=_0x5d6cb3;if(_0xf58093)_0xf58093[_0x49b1d9(0x16f)]=_0x1229b1;});},_0x52329b=(_0x3f0e48,_0x43cd06='info')=>{const _0x1b6a1e=_0x7dc8c9;if(!_0x3b093d)return;_0x3b093d[_0x1b6a1e(0x12d)]=![],_0x3b093d[_0x1b6a1e(0x13d)]=_0x3f0e48,_0x3b093d[_0x1b6a1e(0x175)][_0x1b6a1e(0x140)](_0x1b6a1e(0x15c),_0x1b6a1e(0x15b));if(_0x43cd06===_0x1b6a1e(0x15c))_0x3b093d[_0x1b6a1e(0x175)][_0x1b6a1e(0x12c)](_0x1b6a1e(0x15c));else _0x43cd06==='error'&&_0x3b093d['classList'][_0x1b6a1e(0x12c)](_0x1b6a1e(0x15b));};await loadServerHealthMetrics();const _0x419cdd=()=>{const _0x2615d2=_0x7dc8c9;_0x34d47a['hidden']=!![],document['removeEventListener'](_0x2615d2(0x174),_0x55c634);},_0x55c634=_0x53a813=>{const _0x5af8df=_0x7dc8c9;_0x53a813[_0x5af8df(0x172)]===_0x5af8df(0x11c)&&!_0x34d47a['hidden']&&_0x419cdd();};_0x3c870d['onclick']=_0x419cdd,_0x1fd40f[_0x7dc8c9(0x12b)]=_0x419cdd,_0x1a473d[_0x7dc8c9(0x12b)]=async()=>{const _0x4ac397=_0x7dc8c9;_0x1171be[_0x4ac397(0x12d)]=![],_0x4f078b[_0x4ac397(0x12d)]=!![],_0x53f784[_0x4ac397(0x12d)]=!![],await loadServerHealthMetrics();};const _0x3995cd=async(_0x78d673,_0xa1d9d9)=>{const _0x56852f=_0x7dc8c9;_0x1171be[_0x56852f(0x13d)]=_0x78d673,_0x1171be[_0x56852f(0x12d)]=![],_0x4f078b[_0x56852f(0x12d)]=!![],_0x53f784[_0x56852f(0x12d)]=!![],_0x2b22dc(!![]),_0x52329b(_0x78d673+_0x56852f(0x134));try{const _0x2e079d=await _0xa1d9d9(),_0x56b440=_0x2e079d?.[_0x56852f(0x133)]||_0x78d673+_0x56852f(0x11f);_0x52329b(_0x56b440,_0x56852f(0x15c));}catch(_0x4df7d1){console['error'](_0x56852f(0x13a)+_0x78d673+')',_0x4df7d1),_0x52329b(_0x4df7d1[_0x56852f(0x133)]||_0x56852f(0x124)+_0x78d673[_0x56852f(0x161)](),_0x56852f(0x15b));}finally{await loadServerHealthMetrics(),_0x2b22dc(![]);}};_0x16dcad&&(_0x16dcad[_0x7dc8c9(0x12b)]=()=>_0x3995cd(_0x7dc8c9(0x149),()=>API[_0x7dc8c9(0x16e)]()));_0x91616a&&(_0x91616a[_0x7dc8c9(0x12b)]=()=>_0x3995cd(_0x7dc8c9(0x166),()=>API['removeStoppedContainers']()));_0xa431a&&(_0xa431a[_0x7dc8c9(0x12b)]=()=>_0x3995cd(_0x7dc8c9(0x156),()=>API[_0x7dc8c9(0x11a)]()));_0x10af9a&&_0x531663&&_0xaa94de&&(_0x10af9a[_0x7dc8c9(0x12b)]=()=>{const _0x47ce50=_0x7dc8c9,_0xf5f4dd=_0xaa94de[_0x47ce50(0x175)][_0x47ce50(0x121)](_0x47ce50(0x151));_0x531663[_0x47ce50(0x12d)]=!_0xf5f4dd,_0x10af9a[_0x47ce50(0x178)]('aria-expanded',_0xf5f4dd?_0x47ce50(0x155):_0x47ce50(0x132));});document[_0x7dc8c9(0x168)](_0x7dc8c9(0x174),_0x55c634);const _0x31a21b=_0x34d47a[_0x7dc8c9(0x15f)]('.modal-overlay');_0x31a21b&&(_0x31a21b['onclick']=_0x419cdd);}function _0x1266(){const _0x50b693=['C3rHDhvZ','u2vYDMvYignSzwfUDxaGywn0Aw9UigzHAwXLzcaO','BwLU','CgvYy2vUDa','Dgv4DenVBNrLBNq','rMfPBgvKihrVigXVywqGC2vYDMvYig1LDhjPy3m6ia','zg9JA2vYlxn0B3jHz2uTDg90ywW','CMvTB3zL','zg9JA2vYlxbYB2DYzxnZ','y3b1lxvZywDL','C2vYDMvYlxjLBw92zs1ZDg9WCgvK','yxbWzw5Kq2HPBgq','BwvTB3j5','BwvTB3j5lxbYB2DYzxnZ','ntrgtLvItNK','yxzHAwXHyMXLrgLZCgXHEq','u3rVChbPBMCGy29UDgfPBMvYCW','Dg90ywW','C3rHDhvZlwnYAxrPy2fS','y29UDgfPBMvYCW','CNvUBMLUzW','zMLYC3rfBgvTzw50q2HPBgq','rMfPBgvKihrVigXVywqGC2vYDMvYigHLywX0AcbTzxrYAwnZoG','ywn0AxzLlxnLC3nPB25Z','zxHWyw5Kzwq','nJGXnti5mNDvsLr0rq','C2vYDMvYlwHLywX0Ac1SB2fKAw5N','y3jPDgLJywW','Dhj1zq','uhj1BMLUzYbeB2nRzxiGCMvZB3vYy2vZ','ntm3odK4r0vgt0nm','C2vYDMvYlwHLywX0Ac1LCNjVCG','zgLZAY11C2fNzq','mKjIEMrlDq','zxjYB3i','C3vJy2vZCW','C3rHDhvZlw9R','cJXKAxyGAwq9iNnLCNzLCI1OzwfSDgGTBw9KywWIignSyxnZpsjTB2rHBciGAgLKzgvUpGOGidXKAxyGy2XHC3m9iM1VzgfSlw92zxjSyxKIpJWVzgL2pGOGidXKAxyGy2XHC3m9iM1VzgfSlwnVBNrLBNqIpGOGicaGpgrPDIbJBgfZCZ0IBw9KywWTAgvHzgvYiJ4kicaGicaGpgGYpLnLCNzLCIbizwfSDgG8l2GYpGOGicaGica8yNv0Dg9Uihr5Cgu9iMj1DhrVBIiGy2XHC3m9iM1VzgfSlwnSB3nLiIbPzd0IC2vYDMvYlwHLywX0Ac1JBg9ZzsiGyxjPys1SywjLBd0Iq2XVC2uIpGOGicaGicaGidXZDMCGD2LKDgG9iJi0iIbOzwLNAhq9iJi0iIb2Awv3qM94psiWidaGmJqGmJqIigzPBgW9iM5VBMuIihn0CM9Rzt0Iy3vYCMvUDenVBg9YiIbZDhjVA2uTD2LKDgG9iJiIihn0CM9Rzs1SAw5Ly2fWpsjYB3vUzciGC3rYB2TLlwXPBMvQB2LUpsjYB3vUzci+cIaGicaGicaGica8BgLUzsb4mt0ImtGIihKXpsi2iIb4mJ0InIiGEti9iJe4iJ48l2XPBMu+cIaGicaGicaGica8BgLUzsb4mt0InIiGEte9iJyIihGYpsiXociGEti9iJe4iJ48l2XPBMu+cIaGicaGicaGpc9ZDMC+cIaGicaGidWVyNv0Dg9UpGOGicaGpc9KAxy+cIaGica8zgL2ignSyxnZpsjTB2rHBc1IB2r5iJ4kicaGicaGpgrPDIbPzd0IC2vYDMvYlwHLywX0Ac1SB2fKAw5NiIbJBgfZCZ0IBg9HzgLUzYi+tg9HzgLUzYbZzxj2zxiGBwv0CMLJCZWVzgL2pGOGicaGica8zgL2igLKpsjZzxj2zxiTAgvHBhrOlwvYCM9YiIbJBgfZCZ0IzxjYB3iTBwvZC2fNzsiGAgLKzgvUpJWVzgL2pGOGicaGica8zgL2igLKpsjZzxj2zxiTAgvHBhrOlwnVBNrLBNqIigHPzgrLBJ4kicaGicaGica8zgL2ignSyxnZpsjOzwfSDgGTBwv0CMLJCYi+cIaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTy2fYzci+cIaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1Py29UiJ7WN5k7pc9KAxy+cIaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1KzxrHAwXZiJ4kicaGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTBgfIzwWIpKnqvsbvC2fNztWVzgL2pGOGicaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY12ywX1zsiGAwq9iMnWDs11C2fNzsi+ltWVzgL2pGOGicaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1WCM9NCMvZCYiGCM9Szt0IChjVz3jLC3nIyxiIigfYAweTBgfIzwW9iKnqvsb1C2fNzsiGyxjPys12ywX1zw1PBJ0ImciGyxjPys12ywX1zw1HEd0ImtaWiJ4kicaGicaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1WCM9NCMvZCY1MAwXSiIbPzd0Iy3b1lxbYB2DYzxnZiJ48l2rPDJ4kicaGicaGicaGicaGica8l2rPDJ4kicaGicaGicaGicaGpc9KAxy+cIaGicaGicaGica8l2rPDJ4kicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1JyxjKiJ4kicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwLJB24IpVcFP6a8l2rPDJ4kicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwrLDgfPBhmIpGOGicaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1SywjLBci+twvTB3j5ifvZywDLpc9KAxy+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxzHBhvLiIbPzd0IBwvTB3j5lxvZywDLiJ4Tpc9KAxy+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxbYB2DYzxnZiIbYB2XLpsjWCM9NCMvZC2jHCIiGyxjPys1SywjLBd0ItwvTB3j5ihvZywDLiIbHCMLHlxzHBhvLBwLUpsiWiIbHCMLHlxzHBhvLBwf4psiXmdaIpGOGicaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxbYB2DYzxnZlwzPBgWIigLKpsjTzw1VCNKTChjVz3jLC3mIpJWVzgL2pGOGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGica8l2rPDJ4kicaGicaGicaGidWVzgL2pGOGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwnHCMqIpGOGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTAwnVBIi+8j+sVJWVzgL2pGOGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTzgv0ywLSCYi+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwXHyMvSiJ5eAxnRifvZywDLpc9KAxy+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxzHBhvLiIbPzd0IzgLZAY11C2fNzsi+ltWVzgL2pGOGicaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1WCM9NCMvZCYiGCM9Szt0IChjVz3jLC3nIyxiIigfYAweTBgfIzwW9iKrPC2SGDxnHz2uIigfYAweTDMfSDwvTAw49iJaIigfYAweTDMfSDwvTyxG9iJeWmci+cIaGicaGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTChjVz3jLC3mTzMLSBciGAwq9iMrPC2STChjVz3jLC3mIpJWVzgL2pGOGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGica8l2rPDJ4kicaGicaGicaGidWVzgL2pGOGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwnHCMqIpGOGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTAwnVBIi+8j+qSZWVzgL2pGOGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTzgv0ywLSCYi+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwXHyMvSiJ5eB2nRzxiGq29UDgfPBMvYCZWVzgL2pGOGicaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY12ywX1zsiGAwq9iMrVy2TLCI1JB250ywLUzxjZiJ4Tpc9KAxy+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxbYB2DYzxnZiIbYB2XLpsjWCM9NCMvZC2jHCIiGyxjPys1SywjLBd0IuNvUBMLUzYbJB250ywLUzxjZihjHDgLViIbHCMLHlxzHBhvLBwLUpsiWiIbHCMLHlxzHBhvLBwf4psiXmdaIpGOGicaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxbYB2DYzxnZlwzPBgWIigLKpsjKB2nRzxiTChjVz3jLC3mIpJWVzgL2pGOGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGica8l2rPDJ4kicaGicaGicaGidWVzgL2pGOGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwnHCMqGBwv0CMLJlwnHCMqTD2LKzsiGAwq9iMrVy2TLCI1ZDg9YywDLlwnHCMqIpGOGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTAwnVBIi+8j+tPJWVzgL2pGOGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTzgv0ywLSCYi+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwXHyMvSiJ5eB2nRzxiGu3rVCMfNztWVzgL2pGOGicaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY12ywX1zsiGAwq9iMrVy2TLCI1ZDg9YywDLlxrVDgfSiJ4Tpc9KAxy+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxbYB2DYzxnZiIbPzd0Izg9JA2vYlxn0B3jHz2uTChjVz3jLC3mTD3jHCciGCM9Szt0IChjVz3jLC3nIyxiIigfYAweTBgfIzwW9iKrVy2TLCIbZDg9YywDLihvZywDLiIbHCMLHlxzHBhvLBwLUpsiWiIbHCMLHlxzHBhvLBwf4psiXmdaIpGOGicaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxbYB2DYzxnZlwzPBgWIigLKpsjKB2nRzxiTC3rVCMfNzs1WCM9NCMvZCYi+pc9KAxy+cIaGicaGicaGicaGicaGpc9KAxy+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxn1yIiGAwq9iMrVy2TLCI1ZDg9YywDLlwf2ywLSywjSzsi+pc9KAxy+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxn1yIiGAwq9iMrVy2TLCI1ZDg9YywDLlxjLy2XHAw1HyMXLiJ48l2rPDJ4kicaGicaGicaGicaGica8zgL2ignSyxnZpsjKB2nRzxiTC3rVCMfNzs1ICMvHA2rVD24IigLKpsjKB2nRzxiTC3rVCMfNzs1ICMvHA2rVD24IpGOGicaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IC3rVCMfNzs1PDgvTiJ4kicaGicaGicaGicaGicaGicaGphnWyw4Gy2XHC3m9iNn0B3jHz2uTBgfIzwWIpKLTywDLCZO8l3nWyw4+cIaGicaGicaGicaGicaGicaGidXZCgfUignSyxnZpsjZDg9YywDLlxzHBhvLiIbPzd0Izg9JA2vYlxn0B3jHz2uTAw1Hz2vZiJ4Tpc9ZCgfUpGOGicaGicaGicaGicaGicaGpc9KAxy+cIaGicaGicaGicaGicaGica8zgL2ignSyxnZpsjZDg9YywDLlwL0zw0IpGOGicaGicaGicaGicaGicaGica8C3bHBIbJBgfZCZ0IC3rVCMfNzs1SywjLBci+q29UDgfPBMvYCZO8l3nWyw4+cIaGicaGicaGicaGicaGicaGidXZCgfUignSyxnZpsjZDg9YywDLlxzHBhvLiIbPzd0Izg9JA2vYlxn0B3jHz2uTy29UDgfPBMvYCYi+ltWVC3bHBJ4kicaGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IC3rVCMfNzs1PDgvTiJ4kicaGicaGicaGicaGicaGicaGphnWyw4Gy2XHC3m9iNn0B3jHz2uTBgfIzwWIpLzVBhvTzxm6pc9ZCgfUpGOGicaGicaGicaGicaGicaGica8C3bHBIbJBgfZCZ0IC3rVCMfNzs12ywX1zsiGAwq9iMrVy2TLCI1ZDg9YywDLlxzVBhvTzxmIpI08l3nWyw4+cIaGicaGicaGicaGicaGica8l2rPDJ4kicaGicaGicaGicaGicaGidXKAxyGy2XHC3m9iNn0B3jHz2uTAxrLBsi+cIaGicaGicaGicaGicaGicaGidXZCgfUignSyxnZpsjZDg9YywDLlwXHyMvSiJ5cDwLSzcbdywnOztO8l3nWyw4+cIaGicaGicaGicaGicaGicaGidXZCgfUignSyxnZpsjZDg9YywDLlxzHBhvLiIbPzd0Izg9JA2vYlxn0B3jHz2uTyNvPBgrJywnOzsi+ltWVC3bHBJ4kicaGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGica8l2rPDJ4kicaGicaGicaGidWVzgL2pGOGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwnHCMqIpGOGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTAwnVBIi+4O+X77Ippc9KAxy+cIaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1KzxrHAwXZiJ4kicaGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTBgfIzwWIpLnLCNzLCIbvChrPBwu8l2rPDJ4kicaGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTDMfSDwuIigLKpsjZzxj2zxiTDxb0Aw1LiJ4Tpc9KAxy+cIaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGpc9KAxy+cIaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTy2fYzci+cIaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1Py29UiJ7WN5oHpc9KAxy+cIaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1KzxrHAwXZiJ4kicaGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTBgfIzwWIpLvZzxiGu2vZC2LVBNm8l2rPDJ4kicaGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTDMfSDwuIigLKpsjHy3rPDMuTC2vZC2LVBNmIpI08l2rPDJ4kicaGicaGicaGicaGpc9KAxy+cIaGicaGicaGica8l2rPDJ4kicaGicaGica8l2rPDJ4kicaGicaGica8zgL2ignSyxnZpsjOzwfSDgGTywn0Aw9UCYbJB2XSyxbZAwjSzs1Zzwn0Aw9UiIbPzd0Iy2XLyw51Cc1Zzwn0Aw9UiJ4kicaGicaGicaGidXIDxr0B24GDhLWzt0IyNv0Dg9UiIbJBgfZCZ0IAgvHBhrOlwfJDgLVBNmTAgvHzgvYignVBgXHChnPyMXLlxrVz2DSzsiGAwq9iMnSzwfUDxaTDg9Nz2XLiIbHCMLHlwv4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BgW9iM5VBMuIihn0CM9Rzt0Iy3vYCMvUDenVBg9YiIbZDhjVA2uTD2LKDgG9iJiIihn0CM9Rzs1SAw5Ly2fWpsjYB3vUzciGC3rYB2TLlwXPBMvQB2LUpsjYB3vUzci+cIaGicaGicaGicaGicaGicaGicaGphbHDgGGzd0ItteYidjmmIa3BdeWiduGmtaTns0Xmc01EIi+pc9WyxrOpGOGicaGicaGicaGicaGicaGicaGidXWyxrOigq9iK0Yide3BdeWiduGmtaTnsi+pc9WyxrOpGOGicaGicaGicaGicaGicaGicaGidXWyxrOigq9iK0YideYBdeWiduGmtaTnsi+pc9WyxrOpGOGicaGicaGicaGicaGicaGica8l3n2zZ4kicaGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0Iy2XLyw51Cc1JyxjKlwnVBNrLBNqIpGOGicaGicaGicaGicaGicaGica8zgL2ignSyxnZpsjJBgvHBNvWlwnHCMqTDgL0BguIpKrVy2TLCIbtExn0zw0Guhj1BMu8l2rPDJ4kicaGicaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0Iy2XLyw51Cc1JyxjKlwrLC2nYAxb0Aw9UiJ5szw1VDMuGywXSihn0B3bWzwqGy29UDgfPBMvYCYWGDw51C2vKig5LDhDVCMTZlcbKyw5NBgLUzYbPBwfNzxmSigfUzcbIDwLSzcbJywnOzs4GrNjLzxmGC2LNBMLMAwnHBNqGzgLZAYbZCgfJzs48l2rPDJ4kicaGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGicaGicaGpgj1DhrVBIb0ExbLpsjIDxr0B24IignSyxnZpsjIDg4TzgfUz2vYignSzwfUDxaTy2fYzc1IDg4IigLKpsjZzxj2zxiTChj1BMuTzg9JA2vYiJ5qCNvUztWVyNv0Dg9UpGOGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGica8l2rPDJ4kicaGicaGicaGidWVzgL2pGOGicaGicaGidWVzgL2pGOGicaGica8l2rPDJ4kicaGidWVzgL2pGOGicaGpgrPDIbJBgfZCZ0IBw9KywWTywn0Aw9UCYi+cIaGicaGidXIDxr0B24GDhLWzt0IyNv0Dg9UiIbPzd0IC2vYDMvYlwHLywX0Ac1YzwzYzxnOiIbJBgfZCZ0IyNrUlxnLy29UzgfYEsi+uMvMCMvZAdWVyNv0Dg9UpGOGicaGica8yNv0Dg9Uihr5Cgu9iMj1DhrVBIiGAwq9iNnLCNzLCI1OzwfSDgGTB2SIignSyxnZpsjIDg4TChjPBwfYEsi+t0S8l2j1DhrVBJ4kicaGidWVzgL2pGOGidWVzgL2pGO8l2rPDJ4k','CxvLCNLtzwXLy3rVCG','CMvJBgfPBwfIBgveAxnWBgf5','Dg9mB3DLCKnHC2u','Aw5Uzxjive1m','ode0mtKYCKjTv0Pc','C2vYDMvYlxvWDgLTzq','CM91BMq','uMvTB3zPBMCGC3rVChbLzcbJB250ywLUzxjZ','zM9YrwfJAa','ywrKrxzLBNrmAxn0zw5LCG','zg9JA2vYlwnVBNrHAw5LCNm','D2fYBMLUzW','B3bLBLnLCNzLCKHLywX0Ae1VzgfS','y3b1','C2vYDMvYlwHLywX0Ac1JBg9Zzq','C3rVCefSBenVBNrHAw5LCNm','zgLZywjSzwq','y2XLyw51Cc10B2DNBgu','CgfYzw50rwXLBwvUDa','A2v5','zgL2','A2v5zg93BG','y2XHC3nmAxn0','mtiZotqYovbOweP4DG','C2vYDMvYlwHLywX0Ac1VAW','C2v0qxr0CMLIDxrL','C2vZC2LVBNm','ofzwsvDdBa','yNvPBgrdywnOzq','C3rHDhvZlxDHCM5PBMC','zgLZCgXHEq','zg9JA2vYlxn0B3jHz2uTyNvPBgrJywnOzq','rMfPBgvKihrVigXVywqGBwv0CMLJCZOG','Chj1BMveB2nRzxjszxnVDxjJzxm','odGWmZy2mNjuCvLhtG','rxnJyxbL','zg9JA2vYlxn0B3jHz2uTDM9SDw1LCW','l2HLywX0Ac9TzxrYAwnZ','ignVBxbSzxrLza','C2vYDMvYlwHLywX0Ac1JB250zw50','Dg9Nz2XL','nwzxtuPzta','zg9JA2vYlxn0B3jHz2uTy29UDgfPBMvYCW','rMfPBgvKihDOAwXLia','C2vYDMvYlwHLywX0Ac1Hy3rPB24TC3rHDhvZ','zg9JA2vYlxn0B3jHz2uTCMvJBgfPBwfIBgu','zg9JA2vYu3rVCMfNzq','mtu4mZi5mtzcvMvPBum','z2v0rwXLBwvUDej5swq','yM9KEq','B25JBgLJAW','ywrK','AgLKzgvU','y3b1lxbYB2DYzxnZ','zg9JA2vYlxn0B3jHz2uTAw1Hz2vZ','mZuYotKWmhPxsNPPDG','yxbWBgLJyxrPB24VANnVBG','zMfSC2u','BwvZC2fNzq','lI4U','zg9JA2vY','C2vYDMvYlwHLywX0Ac1YzwzYzxnO','C2vYDMvYlwHLywX0Ac1TB2rHBa','Dxb0Aw1L'];_0x1266=function(){return _0x50b693;};return _0x1266();}export{loadServerHealthMetrics};typeof window!=='undefined'&&(window[_0x12297(0x16b)]=openServerHealthModal);
1
+ const _0x34d48f=_0x5258;(function(_0x4ae99c,_0x48d583){const _0x4005d4=_0x5258,_0x1e6e8d=_0x4ae99c();while(!![]){try{const _0x2de559=parseInt(_0x4005d4(0x96))/0x1*(parseInt(_0x4005d4(0xa1))/0x2)+-parseInt(_0x4005d4(0x6a))/0x3*(-parseInt(_0x4005d4(0xad))/0x4)+parseInt(_0x4005d4(0x76))/0x5*(parseInt(_0x4005d4(0xb0))/0x6)+parseInt(_0x4005d4(0x7d))/0x7+parseInt(_0x4005d4(0x9c))/0x8*(parseInt(_0x4005d4(0xa0))/0x9)+parseInt(_0x4005d4(0x68))/0xa+-parseInt(_0x4005d4(0xcc))/0xb;if(_0x2de559===_0x48d583)break;else _0x1e6e8d['push'](_0x1e6e8d['shift']());}catch(_0x3e5d56){_0x1e6e8d['push'](_0x1e6e8d['shift']());}}}(_0x411b,0x5cb77));import{API}from'./app.js';let modalInjected=![];const SERVER_HEALTH_MODAL_HTML=_0x34d48f(0xae);function ensureModalExists(){const _0xe29cea=_0x34d48f;if(modalInjected||document[_0xe29cea(0x93)](_0xe29cea(0xc9)))return;const _0x3513b0=document[_0xe29cea(0x6d)]('div');_0x3513b0[_0xe29cea(0x7a)]=SERVER_HEALTH_MODAL_HTML,document[_0xe29cea(0xb2)][_0xe29cea(0xa5)](_0x3513b0[_0xe29cea(0x90)]),modalInjected=!![];}function clampPercent(_0x1c354e){const _0x92e1b4=_0x34d48f;if(!Number[_0x92e1b4(0x7c)](_0x1c354e))return 0x0;return Math[_0x92e1b4(0x9e)](0x0,Math[_0x92e1b4(0x8c)](0x64,Math[_0x92e1b4(0x92)](_0x1c354e)));}function setMetricProgress(_0x3262d4,_0x2904fa,_0x25c2b7='ok'){const _0x21edff=_0x34d48f,_0x41c250=document[_0x21edff(0x93)](_0x3262d4);if(!_0x41c250)return;const _0x57abd2=_0x41c250[_0x21edff(0xbd)],_0x242073=clampPercent(_0x2904fa);_0x41c250[_0x21edff(0x8b)]['width']=_0x242073+'%',_0x41c250['classList'][_0x21edff(0x67)](_0x21edff(0x88),_0x21edff(0x8e),_0x21edff(0x7b)),_0x41c250['classList'][_0x21edff(0x6c)](_0x25c2b7===_0x21edff(0xa8)?_0x21edff(0x7b):_0x25c2b7===_0x21edff(0xac)?_0x21edff(0x8e):_0x21edff(0x88)),_0x57abd2&&_0x57abd2[_0x21edff(0x7e)](_0x21edff(0xcd),String(_0x242073));}function _0x5258(_0xf59ace,_0x14bafb){_0xf59ace=_0xf59ace-0x67;const _0x411bd2=_0x411b();let _0x5258bb=_0x411bd2[_0xf59ace];if(_0x5258['FuoNWE']===undefined){var _0x537ec7=function(_0x17abab){const _0x5aba09='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3513b0='',_0x1c354e='';for(let _0x3262d4=0x0,_0x2904fa,_0x25c2b7,_0x41c250=0x0;_0x25c2b7=_0x17abab['charAt'](_0x41c250++);~_0x25c2b7&&(_0x2904fa=_0x3262d4%0x4?_0x2904fa*0x40+_0x25c2b7:_0x25c2b7,_0x3262d4++%0x4)?_0x3513b0+=String['fromCharCode'](0xff&_0x2904fa>>(-0x2*_0x3262d4&0x6)):0x0){_0x25c2b7=_0x5aba09['indexOf'](_0x25c2b7);}for(let _0x57abd2=0x0,_0x242073=_0x3513b0['length'];_0x57abd2<_0x242073;_0x57abd2++){_0x1c354e+='%'+('00'+_0x3513b0['charCodeAt'](_0x57abd2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1c354e);};_0x5258['kxxgOX']=_0x537ec7,_0x5258['szEDgo']={},_0x5258['FuoNWE']=!![];}const _0x3a1471=_0x411bd2[0x0],_0x39b18a=_0xf59ace+_0x3a1471,_0x27baff=_0x5258['szEDgo'][_0x39b18a];return!_0x27baff?(_0x5258bb=_0x5258['kxxgOX'](_0x5258bb),_0x5258['szEDgo'][_0x39b18a]=_0x5258bb):_0x5258bb=_0x27baff,_0x5258bb;}function _0x411b(){const _0x477362=['Bwf4','zgLZAY11C2fNzq','nJm2nti3n0DpsfPYyW','nZeWmff6quPNqq','yxbWBgLJyxrPB24VANnVBG','Dhj1zq','zg9JA2vYlxn0B3jHz2uTyxzHAwXHyMXL','yxbWzw5Kq2HPBgq','BwvTB3j5lxbYB2DYzxnZ','C2vYDMvYlxn0B3aTy29UDgfPBMvYCW','y3jPDgLJywW','ignVBxbSzxrLza','BwvZC2fNzq','A2v5zg93BG','D2fYBMLUzW','ne9rELz5Cq','cJXKAxyGAwq9iNnLCNzLCI1OzwfSDgGTBw9KywWIignSyxnZpsjTB2rHBciGAgLKzgvUpGOGidXKAxyGy2XHC3m9iM1VzgfSlw92zxjSyxKIpJWVzgL2pGOGidXKAxyGy2XHC3m9iM1VzgfSlwnVBNrLBNqIpGOGicaGpgrPDIbJBgfZCZ0IBw9KywWTAgvHzgvYiJ4kicaGicaGpgGYpLnLCNzLCIbizwfSDgG8l2GYpGOGicaGica8yNv0Dg9Uihr5Cgu9iMj1DhrVBIiGy2XHC3m9iM1VzgfSlwnSB3nLiIbPzd0IC2vYDMvYlwHLywX0Ac1JBg9ZzsiGyxjPys1SywjLBd0Iq2XVC2uIpGOGicaGicaGidXZDMCGD2LKDgG9iJi0iIbOzwLNAhq9iJi0iIb2Awv3qM94psiWidaGmJqGmJqIigzPBgW9iM5VBMuIihn0CM9Rzt0Iy3vYCMvUDenVBg9YiIbZDhjVA2uTD2LKDgG9iJiIihn0CM9Rzs1SAw5Ly2fWpsjYB3vUzciGC3rYB2TLlwXPBMvQB2LUpsjYB3vUzci+cIaGicaGicaGica8BgLUzsb4mt0ImtGIihKXpsi2iIb4mJ0InIiGEti9iJe4iJ48l2XPBMu+cIaGicaGicaGica8BgLUzsb4mt0InIiGEte9iJyIihGYpsiXociGEti9iJe4iJ48l2XPBMu+cIaGicaGicaGpc9ZDMC+cIaGicaGidWVyNv0Dg9UpGOGicaGpc9KAxy+cIaGica8zgL2ignSyxnZpsjTB2rHBc1IB2r5iJ4kicaGicaGpgrPDIbPzd0IC2vYDMvYlwHLywX0Ac1SB2fKAw5NiIbJBgfZCZ0IBg9HzgLUzYi+tg9HzgLUzYbZzxj2zxiGBwv0CMLJCZWVzgL2pGOGicaGica8zgL2igLKpsjZzxj2zxiTAgvHBhrOlwvYCM9YiIbJBgfZCZ0IzxjYB3iTBwvZC2fNzsiGAgLKzgvUpJWVzgL2pGOGicaGica8zgL2igLKpsjZzxj2zxiTAgvHBhrOlwnVBNrLBNqIigHPzgrLBJ4kicaGicaGica8zgL2ignSyxnZpsjOzwfSDgGTBwv0CMLJCYi+cIaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTy2fYzci+cIaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1Py29UiJ7WN5k7pc9KAxy+cIaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1KzxrHAwXZiJ4kicaGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTBgfIzwWIpKnqvsbvC2fNztWVzgL2pGOGicaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY12ywX1zsiGAwq9iMnWDs11C2fNzsi+ltWVzgL2pGOGicaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1WCM9NCMvZCYiGCM9Szt0IChjVz3jLC3nIyxiIigfYAweTBgfIzwW9iKnqvsb1C2fNzsiGyxjPys12ywX1zw1PBJ0ImciGyxjPys12ywX1zw1HEd0ImtaWiJ4kicaGicaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1WCM9NCMvZCY1MAwXSiIbPzd0Iy3b1lxbYB2DYzxnZiJ48l2rPDJ4kicaGicaGicaGicaGica8l2rPDJ4kicaGicaGicaGicaGpc9KAxy+cIaGicaGicaGica8l2rPDJ4kicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1JyxjKiJ4kicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwLJB24IpVcFP6a8l2rPDJ4kicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwrLDgfPBhmIpGOGicaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1SywjLBci+twvTB3j5ifvZywDLpc9KAxy+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxzHBhvLiIbPzd0IBwvTB3j5lxvZywDLiJ4Tpc9KAxy+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxbYB2DYzxnZiIbYB2XLpsjWCM9NCMvZC2jHCIiGyxjPys1SywjLBd0ItwvTB3j5ihvZywDLiIbHCMLHlxzHBhvLBwLUpsiWiIbHCMLHlxzHBhvLBwf4psiXmdaIpGOGicaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxbYB2DYzxnZlwzPBgWIigLKpsjTzw1VCNKTChjVz3jLC3mIpJWVzgL2pGOGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGica8l2rPDJ4kicaGicaGicaGidWVzgL2pGOGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwnHCMqIpGOGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTAwnVBIi+8j+sVJWVzgL2pGOGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTzgv0ywLSCYi+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwXHyMvSiJ5eAxnRifvZywDLpc9KAxy+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxzHBhvLiIbPzd0IzgLZAY11C2fNzsi+ltWVzgL2pGOGicaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1WCM9NCMvZCYiGCM9Szt0IChjVz3jLC3nIyxiIigfYAweTBgfIzwW9iKrPC2SGDxnHz2uIigfYAweTDMfSDwvTAw49iJaIigfYAweTDMfSDwvTyxG9iJeWmci+cIaGicaGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTChjVz3jLC3mTzMLSBciGAwq9iMrPC2STChjVz3jLC3mIpJWVzgL2pGOGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGica8l2rPDJ4kicaGicaGicaGidWVzgL2pGOGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwnHCMqIpGOGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTAwnVBIi+8j+qSZWVzgL2pGOGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTzgv0ywLSCYi+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwXHyMvSiJ5eB2nRzxiGq29UDgfPBMvYCZWVzgL2pGOGicaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY12ywX1zsiGAwq9iMrVy2TLCI1JB250ywLUzxjZiJ4Tpc9KAxy+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxbYB2DYzxnZiIbYB2XLpsjWCM9NCMvZC2jHCIiGyxjPys1SywjLBd0IuNvUBMLUzYbJB250ywLUzxjZihjHDgLViIbHCMLHlxzHBhvLBwLUpsiWiIbHCMLHlxzHBhvLBwf4psiXmdaIpGOGicaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxbYB2DYzxnZlwzPBgWIigLKpsjKB2nRzxiTChjVz3jLC3mIpJWVzgL2pGOGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGica8l2rPDJ4kicaGicaGicaGidWVzgL2pGOGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwnHCMqGBwv0CMLJlwnHCMqTD2LKzsiGAwq9iMrVy2TLCI1ZDg9YywDLlwnHCMqIpGOGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTAwnVBIi+8j+tPJWVzgL2pGOGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTzgv0ywLSCYi+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwXHyMvSiJ5eB2nRzxiGu3rVCMfNztWVzgL2pGOGicaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY12ywX1zsiGAwq9iMrVy2TLCI1ZDg9YywDLlxrVDgfSiJ4Tpc9KAxy+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxbYB2DYzxnZiIbPzd0Izg9JA2vYlxn0B3jHz2uTChjVz3jLC3mTD3jHCciGCM9Szt0IChjVz3jLC3nIyxiIigfYAweTBgfIzwW9iKrVy2TLCIbZDg9YywDLihvZywDLiIbHCMLHlxzHBhvLBwLUpsiWiIbHCMLHlxzHBhvLBwf4psiXmdaIpGOGicaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxbYB2DYzxnZlwzPBgWIigLKpsjKB2nRzxiTC3rVCMfNzs1WCM9NCMvZCYi+pc9KAxy+cIaGicaGicaGicaGicaGpc9KAxy+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxn1yIiGAwq9iMrVy2TLCI1ZDg9YywDLlwf2ywLSywjSzsi+pc9KAxy+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxn1yIiGAwq9iMrVy2TLCI1ZDg9YywDLlxjLy2XHAw1HyMXLiJ48l2rPDJ4kicaGicaGicaGicaGica8zgL2ignSyxnZpsjKB2nRzxiTC3rVCMfNzs1ICMvHA2rVD24IigLKpsjKB2nRzxiTC3rVCMfNzs1ICMvHA2rVD24IpGOGicaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IC3rVCMfNzs1PDgvTiJ4kicaGicaGicaGicaGicaGicaGphnWyw4Gy2XHC3m9iNn0B3jHz2uTBgfIzwWIpKLTywDLCZO8l3nWyw4+cIaGicaGicaGicaGicaGicaGidXZCgfUignSyxnZpsjZDg9YywDLlxzHBhvLiIbPzd0Izg9JA2vYlxn0B3jHz2uTAw1Hz2vZiJ4Tpc9ZCgfUpGOGicaGicaGicaGicaGicaGpc9KAxy+cIaGicaGicaGicaGicaGica8zgL2ignSyxnZpsjZDg9YywDLlwL0zw0IpGOGicaGicaGicaGicaGicaGica8C3bHBIbJBgfZCZ0IC3rVCMfNzs1SywjLBci+q29UDgfPBMvYCZO8l3nWyw4+cIaGicaGicaGicaGicaGicaGidXZCgfUignSyxnZpsjZDg9YywDLlxzHBhvLiIbPzd0Izg9JA2vYlxn0B3jHz2uTy29UDgfPBMvYCYi+ltWVC3bHBJ4kicaGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IC3rVCMfNzs1PDgvTiJ4kicaGicaGicaGicaGicaGicaGphnWyw4Gy2XHC3m9iNn0B3jHz2uTBgfIzwWIpLzVBhvTzxm6pc9ZCgfUpGOGicaGicaGicaGicaGicaGica8C3bHBIbJBgfZCZ0IC3rVCMfNzs12ywX1zsiGAwq9iMrVy2TLCI1ZDg9YywDLlxzVBhvTzxmIpI08l3nWyw4+cIaGicaGicaGicaGicaGica8l2rPDJ4kicaGicaGicaGicaGicaGidXKAxyGy2XHC3m9iNn0B3jHz2uTAxrLBsi+cIaGicaGicaGicaGicaGicaGidXZCgfUignSyxnZpsjZDg9YywDLlwXHyMvSiJ5cDwLSzcbdywnOztO8l3nWyw4+cIaGicaGicaGicaGicaGicaGidXZCgfUignSyxnZpsjZDg9YywDLlxzHBhvLiIbPzd0Izg9JA2vYlxn0B3jHz2uTyNvPBgrJywnOzsi+ltWVC3bHBJ4kicaGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGica8l2rPDJ4kicaGicaGicaGidWVzgL2pGOGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwnHCMqIpGOGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTAwnVBIi+4O+X77Ippc9KAxy+cIaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1KzxrHAwXZiJ4kicaGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTBgfIzwWIpLnLCNzLCIbvChrPBwu8l2rPDJ4kicaGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTDMfSDwuIigLKpsjZzxj2zxiTDxb0Aw1LiJ4Tpc9KAxy+cIaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGpc9KAxy+cIaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTy2fYzci+cIaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1Py29UiJ7WN5oHpc9KAxy+cIaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1KzxrHAwXZiJ4kicaGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTBgfIzwWIpLvZzxiGu2vZC2LVBNm8l2rPDJ4kicaGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTDMfSDwuIigLKpsjHy3rPDMuTC2vZC2LVBNmIpI08l2rPDJ4kicaGicaGicaGicaGpc9KAxy+cIaGicaGicaGica8l2rPDJ4kicaGicaGica8l2rPDJ4kicaGicaGica8zgL2ignSyxnZpsjOzwfSDgGTywn0Aw9UCYbJB2XSyxbZAwjSzs1Zzwn0Aw9UiIbPzd0Iy2XLyw51Cc1Zzwn0Aw9UiJ4kicaGicaGicaGidXIDxr0B24GDhLWzt0IyNv0Dg9UiIbJBgfZCZ0IAgvHBhrOlwfJDgLVBNmTAgvHzgvYignVBgXHChnPyMXLlxrVz2DSzsiGAwq9iMnSzwfUDxaTDg9Nz2XLiIbHCMLHlwv4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BgW9iM5VBMuIihn0CM9Rzt0Iy3vYCMvUDenVBg9YiIbZDhjVA2uTD2LKDgG9iJiIihn0CM9Rzs1SAw5Ly2fWpsjYB3vUzciGC3rYB2TLlwXPBMvQB2LUpsjYB3vUzci+cIaGicaGicaGicaGicaGicaGicaGphbHDgGGzd0ItteYidjmmIa3BdeWiduGmtaTns0Xmc01EIi+pc9WyxrOpGOGicaGicaGicaGicaGicaGicaGidXWyxrOigq9iK0Yide3BdeWiduGmtaTnsi+pc9WyxrOpGOGicaGicaGicaGicaGicaGicaGidXWyxrOigq9iK0YideYBdeWiduGmtaTnsi+pc9WyxrOpGOGicaGicaGicaGicaGicaGica8l3n2zZ4kicaGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0Iy2XLyw51Cc1JyxjKlwnVBNrLBNqIpGOGicaGicaGicaGicaGicaGica8zgL2ignSyxnZpsjJBgvHBNvWlwnHCMqTDgL0BguIpKrVy2TLCIbtExn0zw0Guhj1BMu8l2rPDJ4kicaGicaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0Iy2XLyw51Cc1JyxjKlwrLC2nYAxb0Aw9UiJ5szw1VDMuGywXSihn0B3bWzwqGy29UDgfPBMvYCYWGDw51C2vKig5LDhDVCMTZlcbKyw5NBgLUzYbPBwfNzxmSigfUzcbIDwLSzcbJywnOzs4GrNjLzxmGC2LNBMLMAwnHBNqGzgLZAYbZCgfJzs48l2rPDJ4kicaGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGicaGicaGpgj1DhrVBIb0ExbLpsjIDxr0B24IignSyxnZpsjIDg4TzgfUz2vYignSzwfUDxaTy2fYzc1IDg4IigLKpsjZzxj2zxiTChj1BMuTzg9JA2vYiJ5qCNvUztWVyNv0Dg9UpGOGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGica8l2rPDJ4kicaGicaGicaGidWVzgL2pGOGicaGicaGidWVzgL2pGOGicaGica8l2rPDJ4kicaGidWVzgL2pGOGicaGpgrPDIbJBgfZCZ0IBw9KywWTywn0Aw9UCYi+cIaGicaGidXIDxr0B24GDhLWzt0IyNv0Dg9UiIbPzd0IC2vYDMvYlwHLywX0Ac1YzwzYzxnOiIbJBgfZCZ0IyNrUlxnLy29UzgfYEsi+uMvMCMvZAdWVyNv0Dg9UpGOGicaGica8yNv0Dg9Uihr5Cgu9iMj1DhrVBIiGAwq9iNnLCNzLCI1OzwfSDgGTB2SIignSyxnZpsjIDg4TChjPBwfYEsi+t0S8l2j1DhrVBJ4kicaGidWVzgL2pGOGidWVzgL2pGO8l2rPDJ4k','y2XHC3nmAxn0','mtiWse9vug9d','C3rVCefSBenVBNrHAw5LCNm','yM9KEq','zgLZywjSzwq','CgvYy2vUDa','B25JBgLJAW','r0vu','zg9JA2vYlxbYB2DYzxnZ','zg9JA2vYlxn0B3jHz2uTCMvJBgfPBwfIBgu','Dxb0Aw1L','tg9HzgLUzYbZzxj2zxiGBwv0CMLJCW','zM9YrwfJAa','ywrKrxzLBNrmAxn0zw5LCG','CgfYzw50rwXLBwvUDa','zg9JA2vYlwnVBNrHAw5LCNm','yNvPBgrdywnOzq','CxvLCNLtzwXLy3rVCG','B3bLBLnLCNzLCKHLywX0Ae1VzgfS','u3rVChbPBMCGy29UDgfPBMvYCW','l2HLywX0Ac9TzxrYAwnZ','y2XLyw51Cc10B2DNBgu','yxjPys1LEhbHBMrLza','y3b1','zMfSC2u','zxjYB3i','C2vYDMvYlwHLywX0Ac1TB2rHBa','CMvTB3zLu3rVChbLzenVBNrHAw5LCNm','ywn0AxzLlxnLC3nPB25Z','mJa2mtCYnZHvz2Pktfm','yxjPys12ywX1zw5VDW','rMfPBgvKihDOAwXLia','zg9JA2vYlxn0B3jHz2uTy29UDgfPBMvYCW','Dg90ywW','y3b1lxbYB2DYzxnZ','DM9SDw1LCW','Dgv4DenVBNrLBNq','CMvTB3zL','nde5otm5mgr3CwXXDW','zxHWyw5Kzwq','nZyXntiZCuvHDLbq','C2vYDMvYlwHLywX0Ac1JBg9Zzq','ywrK','y3jLyxrLrwXLBwvUDa','zg9JA2vYu3rVCMfNzq','ANnVBG','zg9JA2vYlxn0B3jHz2uTAw1Hz2vZ','Aw1Hz2vZ','Aw5JBhvKzq','AgLKzgvU','u2vYDMvYignSzwfUDxaGywn0Aw9UigzHAwXLzcaO','rMfPBgvKihrVigXVywqGC2vYDMvYig1LDhjPy3m6ia','nJyZndvYuLn0Bfe','zg9JA2vYlxn0B3jHz2uTDg90ywW','A2v5','Dw5KzwzPBMvK','Aw5Uzxjive1m','C3rHDhvZlwnYAxrPy2fS','AxngAw5PDgu','ndaWnta2ngL4s2vnEG','C2v0qxr0CMLIDxrL','C2vYDMvYlwHLywX0Ac1Hy3rPB24TC3rHDhvZ','C3rHDhvZ','rMfPBgvKihrVigXVywqGBwv0CMLJCZOG','C2vYDMvYlwHLywX0Ac1VAW','zg9JA2vYlxn0B3jHz2uTy2fYza','zg9JA2vYlxn0B3jHz2uTChjVz3jLC3m','C3rHDhvZvgv4Da','y2XLyw51Cc1JB250zw50','C2vYDMvYlwHLywX0Ac1SB2fKAw5N','C3rHDhvZlw9R','C2vYDMvYlwHLywX0Ac1JB250zw50','lI4U','C3r5Bgu','BwLU','rMfPBgvKihrVigXVywqGC2vYDMvYigHLywX0AcbTzxrYAwnZoG','C3rHDhvZlxDHCM5PBMC','zgLZCgXHEq','zMLYC3rfBgvTzw50q2HPBgq','zg9JA2vY','CM91BMq','z2v0rwXLBwvUDej5swq','zg9JA2vYlxn0B3jHz2uTDM9SDw1LCW','C3vJy2vZCW','mtbNwxbmq0y','uhj1BMLUzYbeB2nRzxiGCMvZB3vYy2vZ','CNvUBMLUzW','BwvTB3j5','yxzHAwXHyMXLrgLZCgXHEq','y29UDgfPBMvYCW','ohDstvbxBG','C2vYDMvYlwHLywX0Ac1LCNjVCG'];_0x411b=function(){return _0x477362;};return _0x411b();}function statusFromPercent(_0x3bd34f){const _0x5dd11c=_0x34d48f;if(_0x3bd34f>=0x5a)return'critical';if(_0x3bd34f>=0x4b)return _0x5dd11c(0xac);return'ok';}async function loadServerHealthMetrics(){const _0x1c2c0d=_0x34d48f,_0x308a26=document['getElementById'](_0x1c2c0d(0x87)),_0x463157=document['getElementById'](_0x1c2c0d(0x9d)),_0x3a6cdf=document[_0x1c2c0d(0x93)](_0x1c2c0d(0x89));if(!_0x308a26||!_0x463157||!_0x3a6cdf)return;_0x308a26[_0x1c2c0d(0xd3)]=_0x1c2c0d(0xba);try{const _0x5431b8=await fetch(_0x1c2c0d(0xc3),{'method':_0x1c2c0d(0xb6),'headers':{'Content-Type':_0x1c2c0d(0xa2)},'credentials':_0x1c2c0d(0x72)});if(!_0x5431b8['ok'])throw new Error(_0x1c2c0d(0x81)+_0x5431b8[_0x1c2c0d(0x85)]);const _0x485ebf=await _0x5431b8[_0x1c2c0d(0x6f)]();document[_0x1c2c0d(0x93)]('cpu-usage')[_0x1c2c0d(0xd3)]=_0x485ebf[_0x1c2c0d(0xc6)][_0x1c2c0d(0x8f)],document[_0x1c2c0d(0x93)]('memory-usage')[_0x1c2c0d(0xd3)]=_0x485ebf[_0x1c2c0d(0x99)][_0x1c2c0d(0x8f)],document['getElementById'](_0x1c2c0d(0x9f))['textContent']=_0x485ebf['disk'][_0x1c2c0d(0x8f)],document['getElementById'](_0x1c2c0d(0xbe))['textContent']=_0x485ebf[_0x1c2c0d(0x91)][_0x1c2c0d(0x8f)],document[_0x1c2c0d(0x93)]('server-uptime')['textContent']=_0x485ebf[_0x1c2c0d(0xb9)][_0x1c2c0d(0x8f)],document[_0x1c2c0d(0x93)](_0x1c2c0d(0xcb))['textContent']=_0x485ebf['sessions'][_0x1c2c0d(0x8f)],setMetricProgress(_0x1c2c0d(0xd1),_0x485ebf[_0x1c2c0d(0xc6)][_0x1c2c0d(0xb4)],statusFromPercent(_0x485ebf['cpu']['percent'])),setMetricProgress(_0x1c2c0d(0xa6),_0x485ebf[_0x1c2c0d(0x99)]['percent'],statusFromPercent(_0x485ebf[_0x1c2c0d(0x99)][_0x1c2c0d(0xb4)])),setMetricProgress('disk-progress',_0x485ebf['disk'][_0x1c2c0d(0xb4)],statusFromPercent(_0x485ebf['disk'][_0x1c2c0d(0xb4)]));const _0x699f7b=_0x485ebf[_0x1c2c0d(0x91)][_0x1c2c0d(0xd0)]>0x0?_0x485ebf[_0x1c2c0d(0x91)][_0x1c2c0d(0x98)]/_0x485ebf[_0x1c2c0d(0x91)]['total']*0x64:0x0;setMetricProgress(_0x1c2c0d(0xb7),_0x699f7b);if(_0x485ebf[_0x1c2c0d(0x6e)]){const _0x224bdc=document[_0x1c2c0d(0x93)](_0x1c2c0d(0x83));document[_0x1c2c0d(0x93)](_0x1c2c0d(0x77))[_0x1c2c0d(0xd3)]=_0x485ebf[_0x1c2c0d(0x6e)][_0x1c2c0d(0x8f)];const _0x56fa41=document[_0x1c2c0d(0x93)](_0x1c2c0d(0xa4));_0x485ebf[_0x1c2c0d(0x6e)][_0x1c2c0d(0x9a)]?(_0x56fa41['textContent']=_0x485ebf['dockerStorage'][_0x1c2c0d(0x9a)],_0x56fa41[_0x1c2c0d(0x73)]=![]):_0x56fa41[_0x1c2c0d(0x73)]=!![];document[_0x1c2c0d(0x93)](_0x1c2c0d(0xb8))[_0x1c2c0d(0xd3)]=_0x485ebf[_0x1c2c0d(0x6e)]['reclaimableDisplay'],document['getElementById'](_0x1c2c0d(0x70))[_0x1c2c0d(0xd3)]=_0x485ebf[_0x1c2c0d(0x6e)][_0x1c2c0d(0x71)][_0x1c2c0d(0x8f)],document[_0x1c2c0d(0x93)](_0x1c2c0d(0xcf))[_0x1c2c0d(0xd3)]=_0x485ebf[_0x1c2c0d(0x6e)][_0x1c2c0d(0x9b)]['display'],document[_0x1c2c0d(0x93)](_0x1c2c0d(0x94))[_0x1c2c0d(0xd3)]=_0x485ebf['dockerStorage'][_0x1c2c0d(0xd2)]['display'],document[_0x1c2c0d(0x93)]('docker-storage-buildcache')[_0x1c2c0d(0xd3)]=_0x485ebf[_0x1c2c0d(0x6e)][_0x1c2c0d(0xbf)]['display'],setMetricProgress(_0x1c2c0d(0x84),_0x485ebf[_0x1c2c0d(0x6e)][_0x1c2c0d(0xb4)],_0x485ebf['dockerStorage']['status']),_0x224bdc[_0x1c2c0d(0xaf)]['remove'](_0x1c2c0d(0x8e),_0x1c2c0d(0x7b));if(_0x485ebf[_0x1c2c0d(0x6e)]['status']===_0x1c2c0d(0xa8))_0x224bdc[_0x1c2c0d(0xaf)][_0x1c2c0d(0x6c)]('status-critical');else _0x485ebf[_0x1c2c0d(0x6e)][_0x1c2c0d(0x80)]===_0x1c2c0d(0xac)&&_0x224bdc['classList'][_0x1c2c0d(0x6c)]('status-warning');}_0x308a26[_0x1c2c0d(0x73)]=!![],_0x3a6cdf[_0x1c2c0d(0x73)]=![];}catch(_0x463505){console['error'](_0x1c2c0d(0x8d),_0x463505),_0x308a26[_0x1c2c0d(0x73)]=!![],_0x463157[_0x1c2c0d(0x73)]=![],_0x463157[_0x1c2c0d(0xd3)]=_0x1c2c0d(0x75)+_0x463505['message'];}}export async function openServerHealthModal(){const _0x3b247b=_0x34d48f;ensureModalExists();const _0x49035a=document[_0x3b247b(0x93)](_0x3b247b(0xc9)),_0x3f78e4=document['getElementById'](_0x3b247b(0x87)),_0x439d42=document[_0x3b247b(0x93)](_0x3b247b(0x9d)),_0x4996a8=document['getElementById'](_0x3b247b(0x89)),_0x8c679b=document['getElementById'](_0x3b247b(0x6b)),_0x5a5c43=document[_0x3b247b(0x93)](_0x3b247b(0x82)),_0x20b367=document[_0x3b247b(0x93)]('server-health-refresh'),_0x34deea=document['getElementById'](_0x3b247b(0xa7)),_0x5caa07=document[_0x3b247b(0x93)]('server-remove-stopped'),_0xbfc18=document[_0x3b247b(0x93)]('server-prune-docker'),_0xacaee3=document[_0x3b247b(0x93)](_0x3b247b(0x7f)),_0x2ef66b=document[_0x3b247b(0x93)](_0x3b247b(0xc4)),_0x707722=document[_0x3b247b(0x93)](_0x3b247b(0x86)),_0x42f511=document[_0x3b247b(0x93)]('cleanup-section');if(!_0x49035a)return;_0x49035a[_0x3b247b(0x73)]=![],_0x3f78e4['hidden']=![],_0x439d42[_0x3b247b(0x73)]=!![],_0x4996a8['hidden']=!![];_0xacaee3&&(_0xacaee3[_0x3b247b(0x73)]=!![],_0xacaee3[_0x3b247b(0xd3)]='',_0xacaee3['classList'][_0x3b247b(0x67)](_0x3b247b(0x95),'error'));_0x42f511&&_0x42f511[_0x3b247b(0xaf)][_0x3b247b(0x67)](_0x3b247b(0x69));_0x707722&&(_0x707722[_0x3b247b(0x73)]=!![]);_0x2ef66b&&_0x2ef66b[_0x3b247b(0x7e)](_0x3b247b(0xc5),_0x3b247b(0xc7));const _0x4663cc=[_0x34deea,_0x5caa07,_0xbfc18,_0x20b367],_0x4b2090=_0x3c8c4c=>{const _0x5a2a2c=_0x3b247b;_0x4663cc[_0x5a2a2c(0xbb)](_0x1b5cdd=>{const _0x48dcd2=_0x5a2a2c;if(_0x1b5cdd)_0x1b5cdd[_0x48dcd2(0xb3)]=_0x3c8c4c;});},_0xa3ff1d=(_0xbee3f5,_0x1ee7ff='info')=>{const _0x2558ba=_0x3b247b;if(!_0xacaee3)return;_0xacaee3[_0x2558ba(0x73)]=![],_0xacaee3[_0x2558ba(0xd3)]=_0xbee3f5,_0xacaee3[_0x2558ba(0xaf)]['remove']('success',_0x2558ba(0xc8));if(_0x1ee7ff==='success')_0xacaee3[_0x2558ba(0xaf)]['add'](_0x2558ba(0x95));else _0x1ee7ff===_0x2558ba(0xc8)&&_0xacaee3['classList']['add'](_0x2558ba(0xc8));};await loadServerHealthMetrics();const _0x38fda7=()=>{const _0x350ade=_0x3b247b;_0x49035a[_0x350ade(0x73)]=!![],document['removeEventListener'](_0x350ade(0xab),_0x28d461);},_0x28d461=_0x34da53=>{const _0x1bddf8=_0x3b247b;_0x34da53[_0x1bddf8(0x78)]==='Escape'&&!_0x49035a[_0x1bddf8(0x73)]&&_0x38fda7();};_0x8c679b['onclick']=_0x38fda7,_0x5a5c43[_0x3b247b(0xb5)]=_0x38fda7,_0x20b367[_0x3b247b(0xb5)]=async()=>{const _0x2e6e33=_0x3b247b;_0x3f78e4[_0x2e6e33(0x73)]=![],_0x439d42[_0x2e6e33(0x73)]=!![],_0x4996a8[_0x2e6e33(0x73)]=!![],await loadServerHealthMetrics();};const _0x193955=async(_0x3b8c40,_0x5c8a68)=>{const _0x1f1031=_0x3b247b;_0x3f78e4[_0x1f1031(0xd3)]=_0x3b8c40,_0x3f78e4[_0x1f1031(0x73)]=![],_0x439d42['hidden']=!![],_0x4996a8['hidden']=!![],_0x4b2090(!![]),_0xa3ff1d(_0x3b8c40+_0x1f1031(0x8a));try{const _0xc97a20=await _0x5c8a68(),_0x2bd080=_0xc97a20?.['message']||_0x3b8c40+_0x1f1031(0xa9);_0xa3ff1d(_0x2bd080,_0x1f1031(0x95));}catch(_0x5b7d50){console[_0x1f1031(0xc8)](_0x1f1031(0x74)+_0x3b8c40+')',_0x5b7d50),_0xa3ff1d(_0x5b7d50[_0x1f1031(0xaa)]||_0x1f1031(0xce)+_0x3b8c40['toLowerCase'](),_0x1f1031(0xc8));}finally{await loadServerHealthMetrics(),_0x4b2090(![]);}};_0x34deea&&(_0x34deea['onclick']=()=>_0x193955(_0x3b247b(0xc2),()=>API[_0x3b247b(0xb1)]()));_0x5caa07&&(_0x5caa07[_0x3b247b(0xb5)]=()=>_0x193955('Removing\x20stopped\x20containers',()=>API[_0x3b247b(0xca)]()));_0xbfc18&&(_0xbfc18[_0x3b247b(0xb5)]=()=>_0x193955(_0x3b247b(0x97),()=>API['pruneDockerResources']()));_0x2ef66b&&_0x707722&&_0x42f511&&(_0x2ef66b[_0x3b247b(0xb5)]=()=>{const _0x59b912=_0x3b247b,_0x25a23c=_0x42f511[_0x59b912(0xaf)]['toggle'](_0x59b912(0x69));_0x707722['hidden']=!_0x25a23c,_0x2ef66b[_0x59b912(0x7e)](_0x59b912(0xc5),_0x25a23c?_0x59b912(0xa3):_0x59b912(0xc7));});document[_0x3b247b(0xbc)](_0x3b247b(0xab),_0x28d461);const _0x5098b6=_0x49035a[_0x3b247b(0xc0)]('.modal-overlay');_0x5098b6&&(_0x5098b6[_0x3b247b(0xb5)]=_0x38fda7);}export{loadServerHealthMetrics};typeof window!==_0x34d48f(0x79)&&(window[_0x34d48f(0xc1)]=openServerHealthModal);
@@ -61,6 +61,15 @@
61
61
  </svg>
62
62
  <span class="option-text">Users</span>
63
63
  </button>
64
+ <button type="button" class="dropdown-item admin-menu-item" onclick="window.location.href='teams.html'">
65
+ <svg class="option-icon icon-teams" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
66
+ <path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path>
67
+ <circle cx="9" cy="7" r="4"></circle>
68
+ <path d="M23 21v-2a4 4 0 0 0-3-3.87"></path>
69
+ <path d="M16 3.13a4 4 0 0 1 0 7.75"></path>
70
+ </svg>
71
+ <span class="option-text">Teams</span>
72
+ </button>
64
73
  <button type="button" class="dropdown-item admin-menu-item" onclick="window.location.href='environments.html'">
65
74
  <svg class="option-icon icon-environments" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
66
75
  <circle cx="12" cy="12" r="10"></circle>
@@ -69,6 +78,12 @@
69
78
  </svg>
70
79
  <span class="option-text">Environments</span>
71
80
  </button>
81
+ <button type="button" class="dropdown-item admin-menu-item" onclick="window.location.href='roles.html'">
82
+ <svg class="option-icon icon-roles" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
83
+ <path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path>
84
+ </svg>
85
+ <span class="option-text">Roles</span>
86
+ </button>
72
87
  <button type="button" class="dropdown-item admin-menu-item" onclick="window.location.href='skills.html'">
73
88
  <svg class="option-icon icon-skills" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
74
89
  <path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"></path>
@@ -1116,6 +1131,53 @@
1116
1131
  </div>
1117
1132
  </div>
1118
1133
 
1134
+ <!-- Git Provider Teams Modal -->
1135
+ <div id="git-provider-teams-modal" class="modal" hidden>
1136
+ <div class="modal-overlay"></div>
1137
+ <div class="modal-content" style="max-width: 540px;">
1138
+ <div class="modal-header">
1139
+ <h2>Manage Teams — <span id="git-provider-teams-name"></span></h2>
1140
+ <button type="button" class="modal-close" aria-label="Close">&times;</button>
1141
+ </div>
1142
+ <div class="modal-body">
1143
+ <div id="git-provider-teams-modal-error" class="modal-error" hidden></div>
1144
+
1145
+ <!-- Access mode selector -->
1146
+ <div class="form-row" style="margin-bottom: 16px;">
1147
+ <label for="git-provider-teams-mode">Access Mode</label>
1148
+ <select id="git-provider-teams-mode" class="form-input">
1149
+ <option value="all">All Teams (wildcard)</option>
1150
+ <option value="specific">Specific Teams</option>
1151
+ </select>
1152
+ <span class="form-hint">Controls which teams can use this provider when configuring environment repos.</span>
1153
+ </div>
1154
+
1155
+ <!-- Specific teams section (shown when mode is "specific") -->
1156
+ <div id="git-provider-teams-specific" hidden>
1157
+ <div class="form-row">
1158
+ <label>Assigned Teams</label>
1159
+ <div id="git-provider-teams-list" class="member-list">
1160
+ <!-- Populated dynamically: team name with remove button -->
1161
+ </div>
1162
+ </div>
1163
+ <div class="form-row" style="margin-top: 8px;">
1164
+ <label>Add Team</label>
1165
+ <div style="display: flex; gap: 8px;">
1166
+ <select id="git-provider-add-team-select" class="form-input" style="flex: 1;">
1167
+ <option value="">-- Select a team --</option>
1168
+ </select>
1169
+ <button type="button" class="btn-secondary btn-small" id="git-provider-add-team-btn">Add</button>
1170
+ </div>
1171
+ </div>
1172
+ </div>
1173
+ </div>
1174
+ <div class="modal-actions">
1175
+ <button type="button" class="btn-secondary" id="git-provider-teams-cancel-btn">Cancel</button>
1176
+ <button type="button" class="btn-primary" id="git-provider-teams-save-btn">Save</button>
1177
+ </div>
1178
+ </div>
1179
+ </div>
1180
+
1119
1181
  <!-- Add CA Certificate Modal -->
1120
1182
  <div id="add-ca-cert-modal" class="modal" hidden>
1121
1183
  <div class="modal-overlay"></div>