@profoundlogic/coderflow-server 0.4.8 → 0.5.0

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 (173) hide show
  1. package/README.md +9 -1
  2. package/dist/README.md +9 -1
  3. package/dist/base-image/Dockerfile +5 -3
  4. package/dist/base-image/entrypoint.sh +76 -2
  5. package/dist/coder-server.js +1 -1
  6. package/dist/config.js +1 -1
  7. package/dist/lib/agent-keepalive.js +1 -1
  8. package/dist/lib/agent-models.js +1 -1
  9. package/dist/lib/api-keys.js +1 -1
  10. package/dist/lib/apiKeys.js +1 -1
  11. package/dist/lib/app-server-ports.js +1 -1
  12. package/dist/lib/auto-judge.js +1 -1
  13. package/dist/lib/automation-service.js +1 -1
  14. package/dist/lib/basic-auth.js +1 -1
  15. package/dist/lib/bindings.js +1 -1
  16. package/dist/lib/build-history.js +1 -1
  17. package/dist/lib/build-output-service.js +1 -1
  18. package/dist/lib/build-scheduler.js +1 -1
  19. package/dist/lib/build-service.js +1 -1
  20. package/dist/lib/ca-certificates.js +1 -1
  21. package/dist/lib/claude-oauth-refresh.js +1 -1
  22. package/dist/lib/cli/build.js +1 -1
  23. package/dist/lib/cli/config-command.js +1 -1
  24. package/dist/lib/cli/config.js +1 -1
  25. package/dist/lib/cli/create-user.js +1 -1
  26. package/dist/lib/cli/init.js +1 -1
  27. package/dist/lib/cli/jira.js +1 -1
  28. package/dist/lib/cli/license.js +1 -1
  29. package/dist/lib/cli/migrate-rbac.js +1 -0
  30. package/dist/lib/cli/server-manager.js +1 -1
  31. package/dist/lib/config-migration.js +1 -1
  32. package/dist/lib/container-credential-sync.js +1 -1
  33. package/dist/lib/container-tokens.js +1 -1
  34. package/dist/lib/data-dir.js +1 -1
  35. package/dist/lib/deployment-history.js +1 -1
  36. package/dist/lib/deployment-service.js +1 -1
  37. package/dist/lib/docker-utils.js +1 -1
  38. package/dist/lib/email.js +1 -1
  39. package/dist/lib/emailTemplates.js +1 -1
  40. package/dist/lib/entitlement.js +1 -1
  41. package/dist/lib/external-connections.js +1 -0
  42. package/dist/lib/fetch-utils.js +1 -1
  43. package/dist/lib/git-commit-details-route.js +1 -1
  44. package/dist/lib/git-history-diff-guardrails.js +1 -1
  45. package/dist/lib/git-provider-service.js +1 -1
  46. package/dist/lib/git-provider-setup/github-setup-handler.js +1 -1
  47. package/dist/lib/git-provider-setup/index.js +1 -1
  48. package/dist/lib/git-provider-setup/setup-factory.js +1 -1
  49. package/dist/lib/git-provider-setup/setup-interface.js +1 -1
  50. package/dist/lib/git-providers/azure-devops-provider.js +1 -1
  51. package/dist/lib/git-providers/github-app-provider.js +1 -1
  52. package/dist/lib/git-providers/index.js +1 -1
  53. package/dist/lib/git-providers/provider-factory.js +1 -1
  54. package/dist/lib/git-providers/provider-interface.js +1 -1
  55. package/dist/lib/github-urls.js +1 -1
  56. package/dist/lib/group-objective-linking.js +1 -1
  57. package/dist/lib/jira-client.js +1 -1
  58. package/dist/lib/judge-blinding.js +1 -1
  59. package/dist/lib/logger.js +1 -1
  60. package/dist/lib/migration-to-scoped-rbac.js +1 -1
  61. package/dist/lib/model-fetcher.js +1 -1
  62. package/dist/lib/notifications.js +1 -1
  63. package/dist/lib/objective-context.js +1 -1
  64. package/dist/lib/oidc-auth.js +1 -1
  65. package/dist/lib/oidc-device-flow.js +1 -1
  66. package/dist/lib/passwordTokens.js +1 -1
  67. package/dist/lib/permission-resolver.js +1 -1
  68. package/dist/lib/pin-cascade.js +1 -1
  69. package/dist/lib/provider-accounts.js +1 -1
  70. package/dist/lib/provider-oauth.js +1 -1
  71. package/dist/lib/provider-profile.js +1 -1
  72. package/dist/lib/provider-token-refresh.js +1 -1
  73. package/dist/lib/rbac-user-state.js +1 -0
  74. package/dist/lib/request-url.js +1 -1
  75. package/dist/lib/rewind.js +1 -1
  76. package/dist/lib/role-definitions.js +1 -1
  77. package/dist/lib/roles.js +1 -1
  78. package/dist/lib/scoped-rbac-migration-runner.js +1 -0
  79. package/dist/lib/secrets.js +1 -1
  80. package/dist/lib/setup-repo-git-auth.js +1 -1
  81. package/dist/lib/state-capture.js +1 -1
  82. package/dist/lib/static-files.js +1 -1
  83. package/dist/lib/task-name-format.js +1 -1
  84. package/dist/lib/task-name-generator.js +1 -1
  85. package/dist/lib/task-source-metadata.js +1 -1
  86. package/dist/lib/teams.js +1 -1
  87. package/dist/lib/user-git-oauth.js +1 -1
  88. package/dist/lib/user-git-tokens.js +1 -1
  89. package/dist/lib/users.js +1 -1
  90. package/dist/middleware/requireAuth.js +1 -1
  91. package/dist/middleware/requireInit.js +1 -1
  92. package/dist/middleware/requirePermission.js +1 -1
  93. package/dist/package.json +2 -1
  94. package/dist/playwright.config.js +1 -1
  95. package/dist/routes/apiKeys.js +1 -1
  96. package/dist/routes/auth-oidc.js +1 -1
  97. package/dist/routes/auth.js +1 -1
  98. package/dist/routes/automations.js +1 -1
  99. package/dist/routes/bindings.js +1 -1
  100. package/dist/routes/build.js +1 -1
  101. package/dist/routes/containers.js +1 -1
  102. package/dist/routes/deploy-task.js +1 -1
  103. package/dist/routes/environment-management.js +1 -1
  104. package/dist/routes/environments.js +1 -1
  105. package/dist/routes/external-skills.js +1 -1
  106. package/dist/routes/git-credentials.js +1 -1
  107. package/dist/routes/git-oauth.js +1 -1
  108. package/dist/routes/git-provider-setup.js +1 -1
  109. package/dist/routes/health.js +1 -1
  110. package/dist/routes/jira.js +1 -1
  111. package/dist/routes/objective-management.js +1 -1
  112. package/dist/routes/password.js +1 -1
  113. package/dist/routes/prompt.js +1 -1
  114. package/dist/routes/provider-auth.js +1 -1
  115. package/dist/routes/qa.js +1 -1
  116. package/dist/routes/roles.js +1 -1
  117. package/dist/routes/settings.js +1 -1
  118. package/dist/routes/skill-management.js +1 -1
  119. package/dist/routes/skills.js +1 -1
  120. package/dist/routes/tasks.js +1 -1
  121. package/dist/routes/teams.js +1 -1
  122. package/dist/routes/templates.js +1 -1
  123. package/dist/routes/test-task.js +1 -1
  124. package/dist/routes/test.js +1 -1
  125. package/dist/routes/users.js +1 -1
  126. package/dist/routes/visualizations.js +1 -1
  127. package/dist/scripts/create-user.js +1 -1
  128. package/dist/scripts/migrate-config-to-data-dir.js +1 -1
  129. package/dist/scripts/migrate-to-scoped-rbac.js +1 -1
  130. package/dist/start.js +1 -1
  131. package/dist/web-ui/public/activity-detail-modal.js +1 -1
  132. package/dist/web-ui/public/activity-feed.js +1 -1
  133. package/dist/web-ui/public/activity-formatters.js +1 -1
  134. package/dist/web-ui/public/agent-event-parser.js +1 -1
  135. package/dist/web-ui/public/app.js +1 -1
  136. package/dist/web-ui/public/approve-dialog.js +1 -1
  137. package/dist/web-ui/public/automation-links.js +1 -1
  138. package/dist/web-ui/public/automation-schedule.js +1 -1
  139. package/dist/web-ui/public/comments-widget.js +1 -1
  140. package/dist/web-ui/public/diff-utils.js +1 -1
  141. package/dist/web-ui/public/docs/admin/environments.md +75 -0
  142. package/dist/web-ui/public/docs/admin/installation.md +9 -1
  143. package/dist/web-ui/public/environments.css +356 -0
  144. package/dist/web-ui/public/environments.html +316 -0
  145. package/dist/web-ui/public/environments.js +1 -1
  146. package/dist/web-ui/public/feedback-widget.js +1 -1
  147. package/dist/web-ui/public/git-history-lazy-utils.js +1 -1
  148. package/dist/web-ui/public/git-history.js +1 -1
  149. package/dist/web-ui/public/git-status.js +1 -1
  150. package/dist/web-ui/public/index.js +1 -1
  151. package/dist/web-ui/public/login.js +1 -1
  152. package/dist/web-ui/public/markdown-editor.js +1 -1
  153. package/dist/web-ui/public/markdown-file-editor.js +1 -1
  154. package/dist/web-ui/public/modal-maximize.js +1 -1
  155. package/dist/web-ui/public/notifications.js +1 -1
  156. package/dist/web-ui/public/pr-dialog.js +1 -1
  157. package/dist/web-ui/public/roles.js +1 -1
  158. package/dist/web-ui/public/server-health.js +1 -1
  159. package/dist/web-ui/public/settings.html +1 -2
  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.js +1 -1
  163. package/dist/web-ui/public/sse-client.js +1 -1
  164. package/dist/web-ui/public/sse-shared-worker.js +1 -1
  165. package/dist/web-ui/public/styles.css +78 -7
  166. package/dist/web-ui/public/task.html +24 -0
  167. package/dist/web-ui/public/task.js +1 -1
  168. package/dist/web-ui/public/teams.js +1 -1
  169. package/dist/web-ui/public/terminal.js +1 -1
  170. package/dist/web-ui/public/theme.js +1 -1
  171. package/dist/web-ui/public/users.js +1 -1
  172. package/dist/web-ui/public/variant-grouping.js +1 -1
  173. package/package.json +2 -1
@@ -1 +1 @@
1
- function _0x555b(){const _0x53d35b=['odmXnJm1EfDkqxrj','AgfZ','CxvLDwuTCg9ZAxrPB24','zgf0yq','Cg93','y2XLyxi','x2vTAxq','mtq1mdK1nxftzhDfDW','x3rHC2TtDwjZy3jPChrPB25Z','ywrK','x2nVBM5Ly3reAxjLy3q','zgLYzwn0','x3n1yNnJCMLIzvrHC2TwAwfxB3jRzxi','x3vUC3vIC2nYAwjLvgfZA0rPCMvJDa','nJqWodrhvgHSqMW','zM9YrwfJAa','CgfYC2u','q29UBMvJDgLVBIbLCNjVCG','y29TCgXLDgu','l3rHC2TZl3vWzgf0zxm','DxnLu2HHCMvKv29YA2vY','C2XPy2u','AxndB25Uzwn0zwq','B25TzxnZywDLzxjYB3i','zxzLBNrtB3vYy2u','BgLZDgvUzxjZ','igHHBMrSzxi6','x2HHBMrSzurPCMvJDfntrq','C3vIC2nYAwjLvgfZAW','C2v0','x2nVBM5Ly3rwAwfxB3jRzxi','B2zM','w1ntrsbdBgLLBNrDifnOyxjLzfDVCMTLCIbMywLSzwqGzM9YihrHC2SGC3vIlcbMywXSAw5NigjHy2S6','y2XVC2u','Dg9vChbLCKnHC2u','mJu4C1HyD0Dr','w1ntrsbdBgLLBNrDiezHAwXLzcb0BYbWyxjZzsa','x3rHC2TtDwjjzenVDw50zxi','l3nZzs1ZAgfYzwqTD29YA2vYlMPZ','BwvZC2fNzq','w1ntrsbdBgLLBNrDifnJAgvKDwXPBMCGCMvJB25Uzwn0igLUia','nJC5mJq0ofjRwuTyza','z2v0','BwfW','p3vZzxjjzd0','ndaWmZGYmuvqq0fvsa','C25HChnOB3q','yMLUza','x2HHBMrSzvDVCMTLCK1LC3nHz2u','C2L6zq','y29UBMvJDgvK','CMvJB25Uzwn0vgLTzw91Da','B25TzxnZywDL','y2HHBMDLrMLSDgvY','C3rHDhvZ','AgfUzgXLCNm','CMvWBgfJzq','zgLZy29UBMvJDa','w1ntrsbdBgLLBNrDifvUA25VD24GBwvZC2fNzsb0ExbLoG','igXPC3rLBMvYoG','nJzbsNzHq0e','Cg9YDa','DxnLCKLK','y2HHCKf0','x3vUC3vIC2nYAwjLvgfZA1DVCMTLCG','l3n0CMvHBq','AM9PBG','yxbWlxnLCNzLCI1ZDgf0Dxm','ywrKrxzLBNrmAxn0zw5LCG','DgfZAZO','DhLWzq','w1ntrsbdBgLLBNrDievYCM9YigLUihrHC2SG','w1ntrsbdBgLLBNrDiezHAwXLzcb0BYbJCMvHDguGrxzLBNrtB3vYy2u6','Dw5ZDwjZy3jPyMvuyxnR','igrHDge6','Dw5KzwzPBMvK','l3rHC2TZlW','w1ntrsbdBgLLBNrDifDVCMTLCIbTzxnZywDLigvYCM9YoG','mti3mfv6q3jJyq','v29YA2vYig1LC3nHz2uGzxjYB3i','B25dB25Uzwn0zwq','mJbRrxvkzgK','mtyZmtGYmej5weDlvq','CMvJB25Uzwn0qxr0zw1WDhm','ywn0AxzPDhK','Bg9NCW','BwLU','B3bLBG','C3rHCNq','Cg9ZDe1LC3nHz2u','w1ntrsbdBgLLBNrDifnOyxjLzfDVCMTLCIbMywLSzwqSigzHBgXPBMCGyMfJAYb0BYbKAxjLy3qGu1nfoG','C3rYAw5N','BMv3lxrHC2S','B25fCNjVCG','D29YA2vY','D2fYBG','x2vUC3vYzvDVCMTLCG','x3nJAgvKDwXLuMvJB25Uzwn0','mta0nNHvA21nqW','DgfZA0LK','zgvSzxrL','zxjYB3i'];_0x555b=function(){return _0x53d35b;};return _0x555b();}const _0x2a73f4=_0x38c7;(function(_0x1c9100,_0x3d198f){const _0x1d4e20=_0x38c7,_0x324eaf=_0x1c9100();while(!![]){try{const _0x6bd1c1=-parseInt(_0x1d4e20(0xd1))/0x1*(-parseInt(_0x1d4e20(0xbd))/0x2)+parseInt(_0x1d4e20(0x92))/0x3*(parseInt(_0x1d4e20(0xe3))/0x4)+parseInt(_0x1d4e20(0xc1))/0x5+parseInt(_0x1d4e20(0xab))/0x6*(-parseInt(_0x1d4e20(0xd5))/0x7)+parseInt(_0x1d4e20(0x98))/0x8+-parseInt(_0x1d4e20(0x9c))/0x9*(parseInt(_0x1d4e20(0xc0))/0xa)+-parseInt(_0x1d4e20(0xdc))/0xb;if(_0x6bd1c1===_0x3d198f)break;else _0x324eaf['push'](_0x324eaf['shift']());}catch(_0x43aca8){_0x324eaf['push'](_0x324eaf['shift']());}}}(_0x555b,0xd906a));function isSharedWorkerSupported(){const _0x1f34eb=_0x38c7;return typeof SharedWorker!==_0x1f34eb(0xba);}function eventTypeToHandler(_0x16bfbe){const _0x5243bd=_0x38c7;if(_0x16bfbe===_0x5243bd(0xa1))return _0x5243bd(0xbf);if(_0x16bfbe===_0x5243bd(0xd4))return _0x5243bd(0xcc);return'on'+_0x16bfbe['split']('-')[_0x5243bd(0x9a)](_0x45f88b=>_0x45f88b[_0x5243bd(0xae)](0x0)[_0x5243bd(0x91)]()+_0x45f88b[_0x5243bd(0x84)](0x1))[_0x5243bd(0xb1)]('');}function _0x38c7(_0x43ea65,_0x3d7cbf){_0x43ea65=_0x43ea65-0x83;const _0x555b84=_0x555b();let _0x38c7c7=_0x555b84[_0x43ea65];if(_0x38c7['nQLXhr']===undefined){var _0x3a4414=function(_0xe4faf4){const _0xb656b7='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x16bfbe='',_0x45f88b='';for(let _0x3e42ff=0x0,_0xc6c272,_0x1b74d3,_0x1d98c0=0x0;_0x1b74d3=_0xe4faf4['charAt'](_0x1d98c0++);~_0x1b74d3&&(_0xc6c272=_0x3e42ff%0x4?_0xc6c272*0x40+_0x1b74d3:_0x1b74d3,_0x3e42ff++%0x4)?_0x16bfbe+=String['fromCharCode'](0xff&_0xc6c272>>(-0x2*_0x3e42ff&0x6)):0x0){_0x1b74d3=_0xb656b7['indexOf'](_0x1b74d3);}for(let _0x2597cc=0x0,_0x4bafe3=_0x16bfbe['length'];_0x2597cc<_0x4bafe3;_0x2597cc++){_0x45f88b+='%'+('00'+_0x16bfbe['charCodeAt'](_0x2597cc)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x45f88b);};_0x38c7['WoPGEs']=_0x3a4414,_0x38c7['YSLkXR']={},_0x38c7['nQLXhr']=!![];}const _0x3fdad6=_0x555b84[0x0],_0x477e96=_0x43ea65+_0x3fdad6,_0x291669=_0x38c7['YSLkXR'][_0x477e96];return!_0x291669?(_0x38c7c7=_0x38c7['WoPGEs'](_0x38c7c7),_0x38c7['YSLkXR'][_0x477e96]=_0x38c7c7):_0x38c7c7=_0x291669,_0x38c7c7;}const TASK_STREAM_EVENTS=['activity',_0x2a73f4(0xc4),'metadata','summary','changed-files',_0x2a73f4(0xb2),_0x2a73f4(0xe7)];export class TaskUpdatesClient{constructor(){const _0x32c36a=_0x2a73f4;this['listeners']=new Map(),this[_0x32c36a(0xcd)]=null,this[_0x32c36a(0xac)]=null,this[_0x32c36a(0x87)]=null,this[_0x32c36a(0xad)]=null,this['reconnectTimeout']=null,this[_0x32c36a(0xc2)]=0x0,this[_0x32c36a(0x83)]=isSharedWorkerSupported(),this[_0x32c36a(0xa1)]=![],this['_taskSubscriptions']=new Map(),this[_0x32c36a(0x94)]=0x0,this[_0x32c36a(0x9f)]=this[_0x32c36a(0x9f)][_0x32c36a(0x9e)](this),this[_0x32c36a(0x8a)]=this[_0x32c36a(0x8a)][_0x32c36a(0x9e)](this);}['on'](_0x3e42ff,_0xc6c272){const _0x192679=_0x2a73f4;return!this[_0x192679(0x88)][_0x192679(0xd6)](_0x3e42ff)&&this[_0x192679(0x88)][_0x192679(0x8c)](_0x3e42ff,new Set()),this['listeners'][_0x192679(0x99)](_0x3e42ff)['add'](_0xc6c272),this;}[_0x2a73f4(0x8e)](_0x1b74d3,_0x1d98c0){const _0x2d4bd0=_0x2a73f4;return this['listeners']['has'](_0x1b74d3)&&this[_0x2d4bd0(0x88)]['get'](_0x1b74d3)[_0x2d4bd0(0xd3)](_0x1d98c0),this;}[_0x2a73f4(0xdb)](_0x2597cc,_0x4bafe3){const _0x4c026e=_0x2a73f4;this[_0x4c026e(0x88)][_0x4c026e(0xd6)](_0x2597cc)&&this[_0x4c026e(0x88)][_0x4c026e(0x99)](_0x2597cc)['forEach'](_0x31631c=>{const _0x2ba370=_0x4c026e;try{_0x31631c(_0x4bafe3);}catch(_0x51e9ed){console[_0x2ba370(0xd4)]('[SSE\x20Client]\x20Error\x20in\x20'+_0x2597cc+_0x2ba370(0xaa),_0x51e9ed);}});}['connect'](_0x42666f='me'){const _0x25d22d=_0x2a73f4;this['userId']=_0x42666f,this[_0x25d22d(0x83)]?this[_0x25d22d(0x8d)](_0x42666f):this[_0x25d22d(0xdf)](_0x42666f);}['_connectViaWorker'](_0x45a826){const _0x60b2c7=_0x2a73f4;try{this['_ensureWorker'](),this[_0x60b2c7(0xac)][_0x60b2c7(0xc8)]({'action':'connect','userId':_0x45a826});}catch(_0xac9021){console['error'](_0x60b2c7(0xc9),_0xac9021),this[_0x60b2c7(0x83)]=![],this[_0x60b2c7(0xdf)](_0x45a826);}}[_0x2a73f4(0xcf)](){const _0x16e206=_0x2a73f4;!this['worker']&&(this[_0x16e206(0xcd)]=new SharedWorker(_0x16e206(0x95)),this['port']=this[_0x16e206(0xcd)]['port'],this[_0x16e206(0xac)][_0x16e206(0xa3)]=this[_0x16e206(0x9f)],this[_0x16e206(0xac)][_0x16e206(0x86)]=_0x1958d3=>{const _0x5dfe8a=_0x16e206;console['error'](_0x5dfe8a(0xbc),_0x1958d3),this['_emit']('error',{'error':_0x5dfe8a(0xbe)});},this[_0x16e206(0xac)][_0x16e206(0xc7)]());}[_0x2a73f4(0x9f)](_0x1c65e9){const _0x3e856b=_0x2a73f4,_0x6cb6a9=_0x1c65e9[_0x3e856b(0xd8)];if(_0x6cb6a9[_0x3e856b(0xb5)]&&_0x6cb6a9[_0x3e856b(0xb5)]['startsWith'](_0x3e856b(0xb4))){this['_handleTaskStreamMessage'](_0x6cb6a9);return;}switch(_0x6cb6a9[_0x3e856b(0xb5)]){case _0x3e856b(0xa1):this[_0x3e856b(0xa1)]=!![],this[_0x3e856b(0xdb)](_0x3e856b(0xa1),{});break;case _0x3e856b(0x9d):case _0x3e856b(0xc3):case _0x3e856b(0xa5):case'new-task':case _0x3e856b(0xd7):try{const _0x32ebf8=JSON[_0x3e856b(0xe5)](_0x6cb6a9[_0x3e856b(0xd8)]);this[_0x3e856b(0xdb)](_0x6cb6a9['type'],_0x32ebf8);}catch(_0x48f2c6){console[_0x3e856b(0xd4)](_0x3e856b(0x93)+_0x6cb6a9[_0x3e856b(0xb5)]+_0x3e856b(0xb9),_0x48f2c6);}break;case _0x3e856b(0xd4):this[_0x3e856b(0xa1)]=![],this[_0x3e856b(0xdb)](_0x3e856b(0xd4),_0x6cb6a9);break;default:console[_0x3e856b(0xce)](_0x3e856b(0xa9),_0x6cb6a9[_0x3e856b(0xb5)]);}}['_handleTaskStreamMessage'](_0x201a1b){const _0x3b752f=_0x2a73f4,{taskId:_0x14c058,type:_0xe821c5,data:_0x4e1667}=_0x201a1b,_0x5ec889=this[_0x3b752f(0xdd)][_0x3b752f(0x99)](_0x14c058);if(!_0x5ec889||_0x5ec889[_0x3b752f(0xa0)]===0x0)return;const _0x13f000=_0xe821c5[_0x3b752f(0xa7)](_0x3b752f(0xb4),''),_0x5b7a80=eventTypeToHandler(_0x13f000);_0x5ec889[_0x3b752f(0xe4)](_0x279bbd=>{const _0x4d6e70=_0x3b752f;if(_0x279bbd[_0x4d6e70(0xa6)][_0x5b7a80])try{const _0x41ffec=typeof _0x4e1667===_0x4d6e70(0xca)?JSON['parse'](_0x4e1667):_0x4e1667;_0x279bbd[_0x4d6e70(0xa6)][_0x5b7a80](_0x41ffec);}catch(_0x2830db){console[_0x4d6e70(0xd4)](_0x4d6e70(0xb6)+_0x13f000+_0x4d6e70(0x89),_0x2830db);}});}[_0x2a73f4(0xdf)](_0x267f4a){const _0x24f3c0=_0x2a73f4;this[_0x24f3c0(0x87)]&&(this[_0x24f3c0(0x87)][_0x24f3c0(0x90)](),this[_0x24f3c0(0x87)]=null);const _0x3f65c0=_0x267f4a&&_0x267f4a!=='me'?_0x24f3c0(0x9b)+_0x267f4a:'';try{this[_0x24f3c0(0x87)]=new EventSource(_0x24f3c0(0xe8)+_0x3f65c0),this[_0x24f3c0(0x87)]['addEventListener']('open',()=>{const _0x219b42=_0x24f3c0;this[_0x219b42(0xa1)]=!![],this[_0x219b42(0xc2)]=0x0,this[_0x219b42(0xdb)](_0x219b42(0xa1),{});}),this[_0x24f3c0(0x87)][_0x24f3c0(0xb3)]('snapshot',_0x2b96a0=>{const _0x2857e7=_0x24f3c0;this['_handleDirectSSE'](_0x2857e7(0x9d),_0x2b96a0),this[_0x2857e7(0xc2)]=0x0;}),this['eventSource'][_0x24f3c0(0xb3)](_0x24f3c0(0xc3),_0x43b8e8=>{const _0x3f3d34=_0x24f3c0;this['_handleDirectSSE'](_0x3f3d34(0xc3),_0x43b8e8);}),this[_0x24f3c0(0x87)]['addEventListener'](_0x24f3c0(0xa5),_0x141a73=>{const _0x1993bd=_0x24f3c0;this[_0x1993bd(0x8a)]('status',_0x141a73);}),this['eventSource'][_0x24f3c0(0xb3)](_0x24f3c0(0xcb),_0x2b8fed=>{const _0xf5ac55=_0x24f3c0;this[_0xf5ac55(0x8a)](_0xf5ac55(0xcb),_0x2b8fed);}),this[_0x24f3c0(0x87)][_0x24f3c0(0xb3)](_0x24f3c0(0xd7),_0x3f29f4=>{const _0x5a1dfd=_0x24f3c0;this[_0x5a1dfd(0x8a)](_0x5a1dfd(0xd7),_0x3f29f4);}),this[_0x24f3c0(0x87)][_0x24f3c0(0xb3)](_0x24f3c0(0xd4),_0x1000fc=>{const _0x2ac681=_0x24f3c0;console[_0x2ac681(0xd4)]('[SSE\x20Client]\x20Direct\x20SSE\x20error:',_0x1000fc),this[_0x2ac681(0xa1)]=![],this[_0x2ac681(0xdb)](_0x2ac681(0xd4),{'error':'Connection\x20error'}),this[_0x2ac681(0x87)]&&(this[_0x2ac681(0x87)][_0x2ac681(0x90)](),this[_0x2ac681(0x87)]=null),this[_0x2ac681(0xd0)]();});}catch(_0x362f22){console['error'](_0x24f3c0(0xb7),_0x362f22),this[_0x24f3c0(0xdb)](_0x24f3c0(0xd4),{'error':_0x362f22[_0x24f3c0(0x96)]}),this[_0x24f3c0(0xd0)]();}}[_0x2a73f4(0x8a)](_0x25012c,_0x7249ef){const _0x1c97a1=_0x2a73f4;try{const _0x16e8e7=JSON[_0x1c97a1(0xe5)](_0x7249ef[_0x1c97a1(0xd8)]);this[_0x1c97a1(0xdb)](_0x25012c,_0x16e8e7);}catch(_0x52d7a0){console[_0x1c97a1(0xd4)](_0x1c97a1(0x93)+_0x25012c+_0x1c97a1(0xb9),_0x52d7a0);}}[_0x2a73f4(0xd0)](){const _0x750af7=_0x2a73f4;this[_0x750af7(0xa2)]&&clearTimeout(this[_0x750af7(0xa2)]);const _0x754bd6=Math[_0x750af7(0xc5)](0x3e8*Math[_0x750af7(0xd9)](0x2,this['reconnectAttempts']),0x7530);this[_0x750af7(0xc2)]++,console['log'](_0x750af7(0x97)+_0x754bd6+'ms'),this[_0x750af7(0xa2)]=setTimeout(()=>{const _0x234732=_0x750af7;this[_0x234732(0xdf)](this[_0x234732(0xad)]);},_0x754bd6);}[_0x2a73f4(0xa4)](_0x34a817){const _0x13355d=_0x2a73f4;if(_0x34a817===this[_0x13355d(0xad)])return;this[_0x13355d(0xad)]=_0x34a817;if(this[_0x13355d(0x83)]&&this[_0x13355d(0xac)])this[_0x13355d(0xac)][_0x13355d(0xc8)]({'action':_0x13355d(0xa4),'userId':_0x34a817});else this[_0x13355d(0x87)]&&this['_connectDirect'](_0x34a817);}[_0x2a73f4(0x8b)](_0x42ad2d,_0x5ce99b){const _0x2ff128=_0x2a73f4;return this[_0x2ff128(0x83)]?this[_0x2ff128(0xe1)](_0x42ad2d,_0x5ce99b):this['_subscribeTaskDirect'](_0x42ad2d,_0x5ce99b);}[_0x2a73f4(0xb8)](_0x1c3a13){const _0x50e8f5=_0x2a73f4;if(!_0x1c3a13)return;_0x1c3a13[_0x50e8f5(0xb5)]===_0x50e8f5(0xcd)?this[_0x50e8f5(0xaf)](_0x1c3a13):this['_unsubscribeTaskDirect'](_0x1c3a13);}[_0x2a73f4(0xe1)](_0x4511d1,_0x2e5a65){const _0x2361c4=_0x2a73f4;try{this[_0x2361c4(0xcf)]();}catch(_0x380e1f){return console[_0x2361c4(0xd4)](_0x2361c4(0x8f),_0x380e1f),this['useSharedWorker']=![],this['_subscribeTaskDirect'](_0x4511d1,_0x2e5a65);}const _0x1f6ccd=++this[_0x2361c4(0x94)],_0x39d626={'type':_0x2361c4(0xcd),'taskId':_0x4511d1,'handlers':_0x2e5a65,'id':_0x1f6ccd};return!this['_taskSubscriptions'][_0x2361c4(0xd6)](_0x4511d1)&&(this[_0x2361c4(0xdd)]['set'](_0x4511d1,new Set()),this[_0x2361c4(0xac)]['postMessage']({'action':_0x2361c4(0x8b),'taskId':_0x4511d1})),this[_0x2361c4(0xdd)][_0x2361c4(0x99)](_0x4511d1)[_0x2361c4(0xde)](_0x39d626),_0x39d626;}[_0x2a73f4(0xaf)](_0x5b2c4e){const _0x586693=_0x2a73f4,{taskId:_0x50bd86}=_0x5b2c4e,_0x5bd16b=this[_0x586693(0xdd)]['get'](_0x50bd86);if(_0x5bd16b){_0x5bd16b[_0x586693(0xd3)](_0x5b2c4e);if(_0x5bd16b[_0x586693(0xa0)]===0x0){this[_0x586693(0xdd)][_0x586693(0xd3)](_0x50bd86);try{this[_0x586693(0xac)]&&this[_0x586693(0xac)]['postMessage']({'action':'unsubscribeTask','taskId':_0x50bd86});}catch(_0x720bfa){}}}}['_subscribeTaskDirect'](_0x8e836d,_0x1c0dc3){const _0x26e3a4=_0x2a73f4,_0x1e2b2e=++this[_0x26e3a4(0x94)],_0x450b5b=new EventSource(_0x26e3a4(0xbb)+_0x8e836d+_0x26e3a4(0xb0)),_0x13285b={'type':_0x26e3a4(0xe0),'taskId':_0x8e836d,'handlers':_0x1c0dc3,'id':_0x1e2b2e,'eventSource':_0x450b5b};!this[_0x26e3a4(0xdd)][_0x26e3a4(0xd6)](_0x8e836d)&&this[_0x26e3a4(0xdd)][_0x26e3a4(0x8c)](_0x8e836d,new Set());this['_taskSubscriptions']['get'](_0x8e836d)[_0x26e3a4(0xde)](_0x13285b);for(const _0x27b21c of TASK_STREAM_EVENTS){const _0x1a51dc=eventTypeToHandler(_0x27b21c);_0x450b5b[_0x26e3a4(0xb3)](_0x27b21c,_0x226ca7=>{const _0x1de735=_0x26e3a4;if(_0x1c0dc3[_0x1a51dc])try{const _0x114962=JSON[_0x1de735(0xe5)](_0x226ca7[_0x1de735(0xd8)]);_0x1c0dc3[_0x1a51dc](_0x114962);}catch(_0x5d31a9){console[_0x1de735(0xd4)]('[SSE\x20Client]\x20Error\x20parsing\x20task\x20'+_0x27b21c+':',_0x5d31a9);}});}return _0x450b5b[_0x26e3a4(0xb3)](_0x26e3a4(0xc6),()=>{const _0x34ac3a=_0x26e3a4;if(_0x1c0dc3[_0x34ac3a(0xbf)])_0x1c0dc3[_0x34ac3a(0xbf)]();}),_0x450b5b[_0x26e3a4(0xb3)](_0x26e3a4(0xd4),()=>{const _0x5b6264=_0x26e3a4;if(_0x1c0dc3[_0x5b6264(0xcc)])_0x1c0dc3[_0x5b6264(0xcc)]({'error':_0x5b6264(0xe6)});}),_0x13285b;}[_0x2a73f4(0xe2)](_0x545ddd){const _0x453fe7=_0x2a73f4;_0x545ddd[_0x453fe7(0x87)]&&(_0x545ddd[_0x453fe7(0x87)][_0x453fe7(0x90)](),_0x545ddd[_0x453fe7(0x87)]=null);const _0x5b56e5=this[_0x453fe7(0xdd)][_0x453fe7(0x99)](_0x545ddd['taskId']);_0x5b56e5&&(_0x5b56e5['delete'](_0x545ddd),_0x5b56e5[_0x453fe7(0xa0)]===0x0&&this['_taskSubscriptions']['delete'](_0x545ddd[_0x453fe7(0xd2)]));}[_0x2a73f4(0xa8)](){const _0x2402a8=_0x2a73f4;this[_0x2402a8(0xa2)]&&(clearTimeout(this[_0x2402a8(0xa2)]),this[_0x2402a8(0xa2)]=null);this['_taskSubscriptions']['forEach']((_0x50eb9d,_0x3f338f)=>{const _0xce9212=_0x2402a8;_0x50eb9d[_0xce9212(0xe4)](_0x1d9c93=>{const _0x298ace=_0xce9212;_0x1d9c93[_0x298ace(0xb5)]===_0x298ace(0xe0)&&_0x1d9c93[_0x298ace(0x87)]&&_0x1d9c93[_0x298ace(0x87)][_0x298ace(0x90)]();});}),this['_taskSubscriptions'][_0x2402a8(0xda)]();if(this[_0x2402a8(0x83)]&&this[_0x2402a8(0xac)])try{this[_0x2402a8(0xac)][_0x2402a8(0xc8)]({'action':_0x2402a8(0xa8)});}catch(_0x13c52d){}this[_0x2402a8(0x87)]&&(this[_0x2402a8(0x87)][_0x2402a8(0x90)](),this[_0x2402a8(0x87)]=null),this[_0x2402a8(0xa1)]=![];}[_0x2a73f4(0x85)](){return this['connected'];}['isUsingSharedWorker'](){const _0x3a47f9=_0x2a73f4;return this[_0x3a47f9(0x83)];}}let globalClient=null;export function getTaskUpdatesClient(){return!globalClient&&(globalClient=new TaskUpdatesClient()),globalClient;}
1
+ const _0x3b645f=_0x45f8;(function(_0x5e6a6c,_0x5091e2){const _0x2ffd47=_0x45f8,_0x50f576=_0x5e6a6c();while(!![]){try{const _0x48ceae=parseInt(_0x2ffd47(0x122))/0x1+parseInt(_0x2ffd47(0x128))/0x2*(parseInt(_0x2ffd47(0x116))/0x3)+parseInt(_0x2ffd47(0x115))/0x4*(-parseInt(_0x2ffd47(0x114))/0x5)+-parseInt(_0x2ffd47(0x164))/0x6*(-parseInt(_0x2ffd47(0x10c))/0x7)+parseInt(_0x2ffd47(0x119))/0x8*(parseInt(_0x2ffd47(0x111))/0x9)+-parseInt(_0x2ffd47(0x12e))/0xa*(-parseInt(_0x2ffd47(0x15f))/0xb)+-parseInt(_0x2ffd47(0x101))/0xc*(parseInt(_0x2ffd47(0x129))/0xd);if(_0x48ceae===_0x5091e2)break;else _0x50f576['push'](_0x50f576['shift']());}catch(_0x214a5c){_0x50f576['push'](_0x50f576['shift']());}}}(_0x2e6a,0x98fd4));function isSharedWorkerSupported(){const _0x5cb45d=_0x45f8;return typeof SharedWorker!==_0x5cb45d(0x134);}function eventTypeToHandler(_0x39f24f){const _0x4ba988=_0x45f8;if(_0x39f24f===_0x4ba988(0x104))return'onConnected';if(_0x39f24f===_0x4ba988(0x13f))return _0x4ba988(0x161);return'on'+_0x39f24f[_0x4ba988(0x139)]('-')['map'](_0x592a18=>_0x592a18['charAt'](0x0)[_0x4ba988(0x130)]()+_0x592a18[_0x4ba988(0x13c)](0x1))[_0x4ba988(0x14e)]('');}const TASK_STREAM_EVENTS=[_0x3b645f(0x126),_0x3b645f(0x162),_0x3b645f(0x157),_0x3b645f(0x150),_0x3b645f(0x138),_0x3b645f(0x165),_0x3b645f(0x113)];export class TaskUpdatesClient{constructor(){const _0x56c0ba=_0x3b645f;this[_0x56c0ba(0x166)]=new Map(),this['worker']=null,this[_0x56c0ba(0x12a)]=null,this[_0x56c0ba(0x11e)]=null,this[_0x56c0ba(0x15b)]=null,this['reconnectTimeout']=null,this[_0x56c0ba(0x118)]=0x0,this[_0x56c0ba(0x14c)]=isSharedWorkerSupported(),this[_0x56c0ba(0x104)]=![],this[_0x56c0ba(0x15c)]=new Map(),this[_0x56c0ba(0x124)]=0x0,this[_0x56c0ba(0x12c)]=this['_handleWorkerMessage'][_0x56c0ba(0x10e)](this),this[_0x56c0ba(0x121)]=this[_0x56c0ba(0x121)]['bind'](this);}['on'](_0x38c43d,_0x451c65){const _0x1dd034=_0x3b645f;return!this[_0x1dd034(0x166)]['has'](_0x38c43d)&&this[_0x1dd034(0x166)][_0x1dd034(0x10b)](_0x38c43d,new Set()),this[_0x1dd034(0x166)][_0x1dd034(0x123)](_0x38c43d)[_0x1dd034(0x146)](_0x451c65),this;}['off'](_0x3cedc8,_0x52dd34){const _0x3ed016=_0x3b645f;return this[_0x3ed016(0x166)][_0x3ed016(0x159)](_0x3cedc8)&&this[_0x3ed016(0x166)]['get'](_0x3cedc8)[_0x3ed016(0x10d)](_0x52dd34),this;}['_emit'](_0x578f80,_0x4b625c){const _0x4bc73a=_0x3b645f;this[_0x4bc73a(0x166)][_0x4bc73a(0x159)](_0x578f80)&&this[_0x4bc73a(0x166)][_0x4bc73a(0x123)](_0x578f80)[_0x4bc73a(0x125)](_0xe96644=>{const _0x16750c=_0x4bc73a;try{_0xe96644(_0x4b625c);}catch(_0xa09cc0){console[_0x16750c(0x13f)]('[SSE\x20Client]\x20Error\x20in\x20'+_0x578f80+_0x16750c(0x102),_0xa09cc0);}});}[_0x3b645f(0x106)](_0xd3ea5f='me'){const _0x2713e3=_0x3b645f;this['userId']=_0xd3ea5f,this[_0x2713e3(0x14c)]?this[_0x2713e3(0x109)](_0xd3ea5f):this[_0x2713e3(0x144)](_0xd3ea5f);}[_0x3b645f(0x109)](_0x4e9e87){const _0x489e3e=_0x3b645f;try{this[_0x489e3e(0x14d)](),this[_0x489e3e(0x12a)][_0x489e3e(0x11f)]({'action':_0x489e3e(0x106),'userId':_0x4e9e87});}catch(_0x4c4539){console[_0x489e3e(0x13f)](_0x489e3e(0x10f),_0x4c4539),this[_0x489e3e(0x14c)]=![],this[_0x489e3e(0x144)](_0x4e9e87);}}[_0x3b645f(0x14d)](){const _0x51cf41=_0x3b645f;!this[_0x51cf41(0x163)]&&(this[_0x51cf41(0x163)]=new SharedWorker(_0x51cf41(0x152)),this[_0x51cf41(0x12a)]=this[_0x51cf41(0x163)][_0x51cf41(0x12a)],this[_0x51cf41(0x12a)][_0x51cf41(0x11d)]=this['_handleWorkerMessage'],this[_0x51cf41(0x12a)]['onmessageerror']=_0xdc1677=>{const _0x3f3286=_0x51cf41;console['error'](_0x3f3286(0x11b),_0xdc1677),this[_0x3f3286(0x131)](_0x3f3286(0x13f),{'error':_0x3f3286(0x147)});},this[_0x51cf41(0x12a)]['start']());}[_0x3b645f(0x12c)](_0xd777fc){const _0xfed51b=_0x3b645f,_0x257397=_0xd777fc[_0xfed51b(0x140)];if(_0x257397[_0xfed51b(0x15d)]&&_0x257397[_0xfed51b(0x15d)][_0xfed51b(0x133)]('task:')){this[_0xfed51b(0x156)](_0x257397);return;}switch(_0x257397[_0xfed51b(0x15d)]){case'connected':this['connected']=!![],this[_0xfed51b(0x131)](_0xfed51b(0x104),{});break;case _0xfed51b(0x13e):case _0xfed51b(0x126):case _0xfed51b(0x155):case'new-task':case _0xfed51b(0x105):try{const _0x1b9fd3=JSON[_0xfed51b(0x12b)](_0x257397[_0xfed51b(0x140)]);this['_emit'](_0x257397['type'],_0x1b9fd3);}catch(_0x69187a){console[_0xfed51b(0x13f)]('[SSE\x20Client]\x20Failed\x20to\x20parse\x20'+_0x257397[_0xfed51b(0x15d)]+'\x20data:',_0x69187a);}break;case _0xfed51b(0x13f):this[_0xfed51b(0x104)]=![],this['_emit'](_0xfed51b(0x13f),_0x257397);break;default:console[_0xfed51b(0x107)]('[SSE\x20Client]\x20Unknown\x20message\x20type:',_0x257397[_0xfed51b(0x15d)]);}}['_handleTaskStreamMessage'](_0x58e99f){const _0x400fab=_0x3b645f,{taskId:_0x33d542,type:_0x26a08b,data:_0x48ab15}=_0x58e99f,_0x10239f=this[_0x400fab(0x15c)][_0x400fab(0x123)](_0x33d542);if(!_0x10239f||_0x10239f['size']===0x0)return;const _0x3fba39=_0x26a08b[_0x400fab(0x11a)]('task:',''),_0x52c4bb=eventTypeToHandler(_0x3fba39);_0x10239f[_0x400fab(0x125)](_0x1cd48a=>{const _0x1c5eff=_0x400fab;if(_0x1cd48a[_0x1c5eff(0x110)][_0x52c4bb])try{const _0x2bd3a9=typeof _0x48ab15===_0x1c5eff(0x127)?JSON['parse'](_0x48ab15):_0x48ab15;_0x1cd48a[_0x1c5eff(0x110)][_0x52c4bb](_0x2bd3a9);}catch(_0x106415){console[_0x1c5eff(0x13f)]('[SSE\x20Client]\x20Error\x20in\x20task\x20'+_0x3fba39+_0x1c5eff(0x14a),_0x106415);}});}[_0x3b645f(0x144)](_0x282067){const _0x4b587a=_0x3b645f;this[_0x4b587a(0x11e)]&&(this[_0x4b587a(0x11e)][_0x4b587a(0x145)](),this[_0x4b587a(0x11e)]=null);const _0x26491f=_0x282067&&_0x282067!=='me'?'?userId='+_0x282067:'';try{this[_0x4b587a(0x11e)]=new EventSource(_0x4b587a(0x132)+_0x26491f),this[_0x4b587a(0x11e)][_0x4b587a(0x13a)]('open',()=>{const _0x1b6c63=_0x4b587a;this['connected']=!![],this[_0x1b6c63(0x118)]=0x0,this[_0x1b6c63(0x131)](_0x1b6c63(0x104),{});}),this[_0x4b587a(0x11e)][_0x4b587a(0x13a)](_0x4b587a(0x13e),_0x199c41=>{const _0x195ae6=_0x4b587a;this[_0x195ae6(0x121)](_0x195ae6(0x13e),_0x199c41),this['reconnectAttempts']=0x0;}),this['eventSource'][_0x4b587a(0x13a)](_0x4b587a(0x126),_0x28eb52=>{const _0x2f9f93=_0x4b587a;this['_handleDirectSSE'](_0x2f9f93(0x126),_0x28eb52);}),this[_0x4b587a(0x11e)]['addEventListener'](_0x4b587a(0x155),_0xd5f276=>{const _0x5e8194=_0x4b587a;this[_0x5e8194(0x121)](_0x5e8194(0x155),_0xd5f276);}),this[_0x4b587a(0x11e)]['addEventListener']('new-task',_0xa79ce0=>{const _0x4c406d=_0x4b587a;this[_0x4c406d(0x121)](_0x4c406d(0x12f),_0xa79ce0);}),this[_0x4b587a(0x11e)]['addEventListener']('queue-position',_0x7c2165=>{const _0x5badd0=_0x4b587a;this[_0x5badd0(0x121)]('queue-position',_0x7c2165);}),this[_0x4b587a(0x11e)]['addEventListener']('error',_0x213bf2=>{const _0x5c1b9c=_0x4b587a;console[_0x5c1b9c(0x13f)]('[SSE\x20Client]\x20Direct\x20SSE\x20error:',_0x213bf2),this[_0x5c1b9c(0x104)]=![],this[_0x5c1b9c(0x131)](_0x5c1b9c(0x13f),{'error':'Connection\x20error'}),this[_0x5c1b9c(0x11e)]&&(this[_0x5c1b9c(0x11e)]['close'](),this[_0x5c1b9c(0x11e)]=null),this[_0x5c1b9c(0x149)]();});}catch(_0x39d61d){console[_0x4b587a(0x13f)](_0x4b587a(0x151),_0x39d61d),this[_0x4b587a(0x131)](_0x4b587a(0x13f),{'error':_0x39d61d[_0x4b587a(0x142)]}),this[_0x4b587a(0x149)]();}}[_0x3b645f(0x121)](_0x22265a,_0x371c5d){const _0x53bb93=_0x3b645f;try{const _0x35d28b=JSON['parse'](_0x371c5d[_0x53bb93(0x140)]);this[_0x53bb93(0x131)](_0x22265a,_0x35d28b);}catch(_0x106628){console[_0x53bb93(0x13f)]('[SSE\x20Client]\x20Failed\x20to\x20parse\x20'+_0x22265a+_0x53bb93(0x11c),_0x106628);}}[_0x3b645f(0x149)](){const _0x2cba81=_0x3b645f;this[_0x2cba81(0x135)]&&clearTimeout(this[_0x2cba81(0x135)]);const _0x3a44f6=Math[_0x2cba81(0x13d)](0x3e8*Math['pow'](0x2,this[_0x2cba81(0x118)]),0x7530);this['reconnectAttempts']++,console['log'](_0x2cba81(0x108)+_0x3a44f6+'ms'),this['reconnectTimeout']=setTimeout(()=>{const _0x36affe=_0x2cba81;this[_0x36affe(0x144)](this['userId']);},_0x3a44f6);}[_0x3b645f(0x141)](_0x4521ce){const _0x35227f=_0x3b645f;if(_0x4521ce===this['userId'])return;this[_0x35227f(0x15b)]=_0x4521ce;if(this[_0x35227f(0x14c)]&&this[_0x35227f(0x12a)])this[_0x35227f(0x12a)][_0x35227f(0x11f)]({'action':_0x35227f(0x141),'userId':_0x4521ce});else this['eventSource']&&this['_connectDirect'](_0x4521ce);}[_0x3b645f(0x15e)](_0x26bdd9,_0x2fa357){const _0x35153a=_0x3b645f;return this[_0x35153a(0x14c)]?this[_0x35153a(0x15a)](_0x26bdd9,_0x2fa357):this['_subscribeTaskDirect'](_0x26bdd9,_0x2fa357);}[_0x3b645f(0x154)](_0x34d289){const _0x13dc3e=_0x3b645f;if(!_0x34d289)return;_0x34d289[_0x13dc3e(0x15d)]===_0x13dc3e(0x163)?this[_0x13dc3e(0x117)](_0x34d289):this[_0x13dc3e(0x160)](_0x34d289);}[_0x3b645f(0x15a)](_0x20f617,_0x4e2dbf){const _0x481476=_0x3b645f;try{this['_ensureWorker']();}catch(_0x5bf40d){return console['error'](_0x481476(0x158),_0x5bf40d),this[_0x481476(0x14c)]=![],this[_0x481476(0x103)](_0x20f617,_0x4e2dbf);}const _0x7b4625=++this[_0x481476(0x124)],_0x26eb0a={'type':_0x481476(0x163),'taskId':_0x20f617,'handlers':_0x4e2dbf,'id':_0x7b4625};return!this[_0x481476(0x15c)][_0x481476(0x159)](_0x20f617)&&(this[_0x481476(0x15c)]['set'](_0x20f617,new Set()),this[_0x481476(0x12a)][_0x481476(0x11f)]({'action':'subscribeTask','taskId':_0x20f617})),this[_0x481476(0x15c)][_0x481476(0x123)](_0x20f617)['add'](_0x26eb0a),_0x26eb0a;}[_0x3b645f(0x117)](_0x83f918){const _0x3c1af3=_0x3b645f,{taskId:_0x40021f}=_0x83f918,_0x100bd7=this['_taskSubscriptions'][_0x3c1af3(0x123)](_0x40021f);if(_0x100bd7){_0x100bd7[_0x3c1af3(0x10d)](_0x83f918);if(_0x100bd7[_0x3c1af3(0x14b)]===0x0){this[_0x3c1af3(0x15c)][_0x3c1af3(0x10d)](_0x40021f);try{this[_0x3c1af3(0x12a)]&&this[_0x3c1af3(0x12a)][_0x3c1af3(0x11f)]({'action':_0x3c1af3(0x154),'taskId':_0x40021f});}catch(_0xd9be6e){}}}}[_0x3b645f(0x103)](_0x3970b0,_0x58725f){const _0x44dcab=_0x3b645f,_0x56c4c8=++this[_0x44dcab(0x124)],_0x5ac92b=new EventSource(_0x44dcab(0x14f)+_0x3970b0+'/stream'),_0x32f034={'type':_0x44dcab(0x137),'taskId':_0x3970b0,'handlers':_0x58725f,'id':_0x56c4c8,'eventSource':_0x5ac92b};!this[_0x44dcab(0x15c)]['has'](_0x3970b0)&&this[_0x44dcab(0x15c)][_0x44dcab(0x10b)](_0x3970b0,new Set());this[_0x44dcab(0x15c)][_0x44dcab(0x123)](_0x3970b0)['add'](_0x32f034);for(const _0x11f390 of TASK_STREAM_EVENTS){const _0xf03450=eventTypeToHandler(_0x11f390);_0x5ac92b[_0x44dcab(0x13a)](_0x11f390,_0x1fd922=>{const _0x160605=_0x44dcab;if(_0x58725f[_0xf03450])try{const _0x8bedb=JSON[_0x160605(0x12b)](_0x1fd922['data']);_0x58725f[_0xf03450](_0x8bedb);}catch(_0x5dc321){console[_0x160605(0x13f)](_0x160605(0x10a)+_0x11f390+':',_0x5dc321);}});}return _0x5ac92b[_0x44dcab(0x13a)](_0x44dcab(0x12d),()=>{const _0x19e56a=_0x44dcab;if(_0x58725f['onConnected'])_0x58725f[_0x19e56a(0x120)]();}),_0x5ac92b[_0x44dcab(0x13a)]('error',()=>{const _0x59aadd=_0x44dcab;if(_0x58725f[_0x59aadd(0x161)])_0x58725f[_0x59aadd(0x161)]({'error':_0x59aadd(0x148)});}),_0x32f034;}[_0x3b645f(0x160)](_0x57deaf){const _0x32c6a4=_0x3b645f;_0x57deaf[_0x32c6a4(0x11e)]&&(_0x57deaf[_0x32c6a4(0x11e)][_0x32c6a4(0x145)](),_0x57deaf[_0x32c6a4(0x11e)]=null);const _0x4f0c78=this[_0x32c6a4(0x15c)][_0x32c6a4(0x123)](_0x57deaf[_0x32c6a4(0x13b)]);_0x4f0c78&&(_0x4f0c78[_0x32c6a4(0x10d)](_0x57deaf),_0x4f0c78['size']===0x0&&this[_0x32c6a4(0x15c)]['delete'](_0x57deaf[_0x32c6a4(0x13b)]));}[_0x3b645f(0x136)](){const _0x213b43=_0x3b645f;this['reconnectTimeout']&&(clearTimeout(this['reconnectTimeout']),this[_0x213b43(0x135)]=null);this[_0x213b43(0x15c)][_0x213b43(0x125)]((_0x50f8e6,_0x1ddb3a)=>{const _0x2903c4=_0x213b43;_0x50f8e6[_0x2903c4(0x125)](_0x1857b0=>{const _0x44c187=_0x2903c4;_0x1857b0[_0x44c187(0x15d)]===_0x44c187(0x137)&&_0x1857b0['eventSource']&&_0x1857b0[_0x44c187(0x11e)]['close']();});}),this[_0x213b43(0x15c)][_0x213b43(0x143)]();if(this[_0x213b43(0x14c)]&&this[_0x213b43(0x12a)])try{this[_0x213b43(0x12a)][_0x213b43(0x11f)]({'action':_0x213b43(0x136)});}catch(_0x3252be){}this[_0x213b43(0x11e)]&&(this[_0x213b43(0x11e)]['close'](),this[_0x213b43(0x11e)]=null),this[_0x213b43(0x104)]=![];}[_0x3b645f(0x153)](){return this['connected'];}[_0x3b645f(0x112)](){const _0x2817df=_0x3b645f;return this[_0x2817df(0x14c)];}}let globalClient=null;export function getTaskUpdatesClient(){return!globalClient&&(globalClient=new TaskUpdatesClient()),globalClient;}function _0x45f8(_0x5bf04d,_0xd76205){_0x5bf04d=_0x5bf04d-0x101;const _0x2e6a28=_0x2e6a();let _0x45f801=_0x2e6a28[_0x5bf04d];if(_0x45f8['aWDKyW']===undefined){var _0x5bf542=function(_0x19b4da){const _0x30bc31='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x39f24f='',_0x592a18='';for(let _0x38c43d=0x0,_0x451c65,_0x3cedc8,_0x52dd34=0x0;_0x3cedc8=_0x19b4da['charAt'](_0x52dd34++);~_0x3cedc8&&(_0x451c65=_0x38c43d%0x4?_0x451c65*0x40+_0x3cedc8:_0x3cedc8,_0x38c43d++%0x4)?_0x39f24f+=String['fromCharCode'](0xff&_0x451c65>>(-0x2*_0x38c43d&0x6)):0x0){_0x3cedc8=_0x30bc31['indexOf'](_0x3cedc8);}for(let _0x578f80=0x0,_0x4b625c=_0x39f24f['length'];_0x578f80<_0x4b625c;_0x578f80++){_0x592a18+='%'+('00'+_0x39f24f['charCodeAt'](_0x578f80)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x592a18);};_0x45f8['wCvXSO']=_0x5bf542,_0x45f8['eMDJSZ']={},_0x45f8['aWDKyW']=!![];}const _0x191581=_0x2e6a28[0x0],_0x8b0eac=_0x5bf04d+_0x191581,_0x231ac9=_0x45f8['eMDJSZ'][_0x8b0eac];return!_0x231ac9?(_0x45f801=_0x45f8['wCvXSO'](_0x45f801),_0x45f8['eMDJSZ'][_0x8b0eac]=_0x45f801):_0x45f801=_0x231ac9,_0x45f801;}function _0x2e6a(){const _0x3d6502=['y29UBMvJDa','D2fYBG','w1ntrsbdBgLLBNrDifnJAgvKDwXPBMCGCMvJB25Uzwn0igLUia','x2nVBM5Ly3rwAwfxB3jRzxi','w1ntrsbdBgLLBNrDievYCM9YihbHCNnPBMCGDgfZAYa','C2v0','n3LSvhHTBa','zgvSzxrL','yMLUza','w1ntrsbdBgLLBNrDifnOyxjLzfDVCMTLCIbMywLSzwqSigzHBgXPBMCGyMfJAYb0BYbKAxjLy3qGu1nfoG','AgfUzgXLCNm','mZC3ntC3ALLZBhDc','AxnvC2LUz1nOyxjLzfDVCMTLCG','y29TCgXLDgu','nJiWzwHutLv6','nZC5nLv6tvLetW','mtm1tvPmv1r1','x3vUC3vIC2nYAwjLvgfZA1DVCMTLCG','CMvJB25Uzwn0qxr0zw1WDhm','offqs2Lhwq','CMvWBgfJzq','w1ntrsbdBgLLBNrDifDVCMTLCIbTzxnZywDLigvYCM9YoG','igrHDge6','B25TzxnZywDL','zxzLBNrtB3vYy2u','Cg9ZDe1LC3nHz2u','B25dB25Uzwn0zwq','x2HHBMrSzurPCMvJDfntrq','mteXmZa2m29yDujZqq','z2v0','x3rHC2TtDwjjzenVDw50zxi','zM9YrwfJAa','ywn0AxzPDhK','C3rYAw5N','ntm2mdbet1HABNm','mtngshz4BuK','Cg9YDa','CgfYC2u','x2HHBMrSzvDVCMTLCK1LC3nHz2u','B3bLBG','mJuXmgnZD1PMrq','BMv3lxrHC2S','Dg9vChbLCKnHC2u','x2vTAxq','l3rHC2TZl3vWzgf0zxm','C3rHCNrZv2L0Aa','Dw5KzwzPBMvK','CMvJB25Uzwn0vgLTzw91Da','zgLZy29UBMvJDa','zgLYzwn0','y2HHBMDLzc1MAwXLCW','C3bSAxq','ywrKrxzLBNrmAxn0zw5LCG','DgfZA0LK','C2XPy2u','BwLU','C25HChnOB3q','zxjYB3i','zgf0yq','y2HHBMDLrMLSDgvY','BwvZC2fNzq','y2XLyxi','x2nVBM5Ly3reAxjLy3q','y2XVC2u','ywrK','v29YA2vYig1LC3nHz2uGzxjYB3i','q29UBMvJDgLVBIbLCNjVCG','x3nJAgvKDwXLuMvJB25Uzwn0','igHHBMrSzxi6','C2L6zq','DxnLu2HHCMvKv29YA2vY','x2vUC3vYzvDVCMTLCG','AM9PBG','l3rHC2TZlW','C3vTBwfYEq','w1ntrsbdBgLLBNrDiezHAwXLzcb0BYbJCMvHDguGrxzLBNrtB3vYy2u6','l3nZzs1ZAgfYzwqTD29YA2vYlMPZ','AxndB25Uzwn0zwq','Dw5ZDwjZy3jPyMvuyxnR','C3rHDhvZ','x2HHBMrSzvrHC2TtDhjLyw1nzxnZywDL','Bwv0ywrHDge','w1ntrsbdBgLLBNrDifnOyxjLzfDVCMTLCIbMywLSzwqGzM9YihrHC2SGC3vIlcbMywXSAw5NigjHy2S6','AgfZ','x3n1yNnJCMLIzvrHC2TwAwfxB3jRzxi','DxnLCKLK','x3rHC2TtDwjZy3jPChrPB25Z','DhLWzq','C3vIC2nYAwjLvgfZAW','mte1mZLhwKzYwLm','x3vUC3vIC2nYAwjLvgfZA0rPCMvJDa','B25fCNjVCG','Bg9NCW','D29YA2vY','mJq2nZyYsu1sDxnw','yxbWlxnLCNzLCI1ZDgf0Dxm','BgLZDgvUzxjZ','mJe1nJu0nJrJEM56B2u','igXPC3rLBMvYoG','x3n1yNnJCMLIzvrHC2TeAxjLy3q','y29UBMvJDgvK','CxvLDwuTCg9ZAxrPB24'];_0x2e6a=function(){return _0x3d6502;};return _0x2e6a();}
@@ -1 +1 @@
1
- function _0x5472(_0x5cc7fd,_0x423764){_0x5cc7fd=_0x5cc7fd-0x120;const _0x47c53c=_0x47c5();let _0x5472dd=_0x47c53c[_0x5cc7fd];if(_0x5472['ZnymwN']===undefined){var _0x1ca8f1=function(_0x18aec9){const _0x39ab8f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1455e6='',_0x5126e9='';for(let _0x1cb127=0x0,_0x98e9f6,_0x595283,_0x1c26ff=0x0;_0x595283=_0x18aec9['charAt'](_0x1c26ff++);~_0x595283&&(_0x98e9f6=_0x1cb127%0x4?_0x98e9f6*0x40+_0x595283:_0x595283,_0x1cb127++%0x4)?_0x1455e6+=String['fromCharCode'](0xff&_0x98e9f6>>(-0x2*_0x1cb127&0x6)):0x0){_0x595283=_0x39ab8f['indexOf'](_0x595283);}for(let _0xe19798=0x0,_0x13419a=_0x1455e6['length'];_0xe19798<_0x13419a;_0xe19798++){_0x5126e9+='%'+('00'+_0x1455e6['charCodeAt'](_0xe19798)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5126e9);};_0x5472['qqUvQv']=_0x1ca8f1,_0x5472['qnPUdu']={},_0x5472['ZnymwN']=!![];}const _0x17f6dd=_0x47c53c[0x0],_0x4de27b=_0x5cc7fd+_0x17f6dd,_0xb80411=_0x5472['qnPUdu'][_0x4de27b];return!_0xb80411?(_0x5472dd=_0x5472['qqUvQv'](_0x5472dd),_0x5472['qnPUdu'][_0x4de27b]=_0x5472dd):_0x5472dd=_0xb80411,_0x5472dd;}const _0x5f56a0=_0x5472;(function(_0x28ad1f,_0x1b2461){const _0x5170d8=_0x5472,_0x581a92=_0x28ad1f();while(!![]){try{const _0x24e4ae=-parseInt(_0x5170d8(0x13a))/0x1*(-parseInt(_0x5170d8(0x155))/0x2)+parseInt(_0x5170d8(0x163))/0x3*(-parseInt(_0x5170d8(0x150))/0x4)+-parseInt(_0x5170d8(0x144))/0x5+-parseInt(_0x5170d8(0x15e))/0x6*(-parseInt(_0x5170d8(0x127))/0x7)+parseInt(_0x5170d8(0x154))/0x8*(-parseInt(_0x5170d8(0x165))/0x9)+parseInt(_0x5170d8(0x13b))/0xa+-parseInt(_0x5170d8(0x164))/0xb*(-parseInt(_0x5170d8(0x12e))/0xc);if(_0x24e4ae===_0x1b2461)break;else _0x581a92['push'](_0x581a92['shift']());}catch(_0x46a04d){_0x581a92['push'](_0x581a92['shift']());}}}(_0x47c5,0xbafc0));const ports=new Set();let eventSource=null,currentUserId=null,reconnectTimeout=null,reconnectAttempts=0x0;const MAX_RECONNECT_DELAY=0x7530,taskStreams=new Map(),TASK_STREAM_EVENTS=[_0x5f56a0(0x14b),_0x5f56a0(0x13f),_0x5f56a0(0x133),_0x5f56a0(0x151),_0x5f56a0(0x143),_0x5f56a0(0x135),_0x5f56a0(0x157)];function connect(_0x1455e6){const _0x11d104=_0x5f56a0;eventSource&&currentUserId!==_0x1455e6&&(eventSource[_0x11d104(0x136)](),eventSource=null);if(eventSource&&eventSource[_0x11d104(0x160)]!==EventSource[_0x11d104(0x15c)])return;currentUserId=_0x1455e6;const _0x5126e9=_0x1455e6&&_0x1455e6!=='me'?_0x11d104(0x148)+_0x1455e6:'';try{eventSource=new EventSource('/tasks/updates'+_0x5126e9),eventSource[_0x11d104(0x14a)](_0x11d104(0x121),_0x1cb127=>{const _0x653eb5=_0x11d104;broadcast({'type':_0x653eb5(0x121),'data':_0x1cb127['data']}),reconnectAttempts=0x0;}),eventSource['addEventListener']('activity',_0x98e9f6=>{const _0x3b1930=_0x11d104;broadcast({'type':_0x3b1930(0x14b),'data':_0x98e9f6['data']});}),eventSource['addEventListener'](_0x11d104(0x147),_0x595283=>{const _0x54f4f0=_0x11d104;broadcast({'type':_0x54f4f0(0x147),'data':_0x595283[_0x54f4f0(0x13c)]});}),eventSource[_0x11d104(0x14a)](_0x11d104(0x12c),_0x1c26ff=>{const _0x4518bb=_0x11d104;broadcast({'type':'new-task','data':_0x1c26ff[_0x4518bb(0x13c)]});}),eventSource[_0x11d104(0x14a)](_0x11d104(0x12d),_0xe19798=>{const _0xdc9e44=_0x11d104;broadcast({'type':_0xdc9e44(0x12d),'data':_0xe19798[_0xdc9e44(0x13c)]});}),eventSource[_0x11d104(0x14a)](_0x11d104(0x129),()=>{const _0x52442c=_0x11d104;broadcast({'type':_0x52442c(0x15b)}),reconnectAttempts=0x0;}),eventSource['addEventListener']('error',_0x13419a=>{const _0x5efa7f=_0x11d104;console[_0x5efa7f(0x12b)](_0x5efa7f(0x158),_0x13419a),broadcast({'type':'error','error':'Connection\x20error'}),eventSource&&(eventSource[_0x5efa7f(0x136)](),eventSource=null),scheduleReconnect();});}catch(_0x49a4bd){console[_0x11d104(0x12b)]('[SSE\x20Worker]\x20Failed\x20to\x20create\x20EventSource:',_0x49a4bd),broadcast({'type':_0x11d104(0x12b),'error':_0x49a4bd['message']}),scheduleReconnect();}}function scheduleReconnect(){const _0xfd8002=_0x5f56a0;reconnectTimeout&&clearTimeout(reconnectTimeout);if(ports[_0xfd8002(0x153)]===0x0)return;const _0x253cf4=Math[_0xfd8002(0x128)](0x3e8*Math['pow'](0x2,reconnectAttempts),MAX_RECONNECT_DELAY);reconnectAttempts++,console['log'](_0xfd8002(0x156)+_0x253cf4+'ms\x20(attempt\x20'+reconnectAttempts+')'),reconnectTimeout=setTimeout(()=>{const _0x24f0e9=_0xfd8002;ports[_0x24f0e9(0x153)]>0x0&&connect(currentUserId);},_0x253cf4);}function broadcast(_0x4cd096){const _0x21c2bb=_0x5f56a0,_0x28fcd2=[];ports['forEach'](_0x1c7b65=>{const _0xd020e9=_0x5472;try{_0x1c7b65[_0xd020e9(0x125)](_0x4cd096);}catch(_0x167ab1){console[_0xd020e9(0x142)](_0xd020e9(0x14d),_0x167ab1),_0x28fcd2[_0xd020e9(0x134)](_0x1c7b65);}}),_0x28fcd2['length']>0x0&&cleanUpDeadPorts(_0x28fcd2),ports[_0x21c2bb(0x153)]===0x0&&eventSource&&(console['log'](_0x21c2bb(0x159)),eventSource['close'](),eventSource=null,reconnectTimeout&&(clearTimeout(reconnectTimeout),reconnectTimeout=null));}function subscribeTask(_0x514cb2,_0x519999){const _0x1c2bdd=_0x5f56a0;let _0xd7ed87=taskStreams['get'](_0x519999);!_0xd7ed87&&(_0xd7ed87={'eventSource':null,'reconnectTimeout':null,'reconnectAttempts':0x0,'subscribedPorts':new Set()},taskStreams[_0x1c2bdd(0x145)](_0x519999,_0xd7ed87));_0xd7ed87[_0x1c2bdd(0x126)][_0x1c2bdd(0x146)](_0x514cb2);if(!_0xd7ed87[_0x1c2bdd(0x122)]||_0xd7ed87[_0x1c2bdd(0x122)][_0x1c2bdd(0x160)]===EventSource[_0x1c2bdd(0x15c)])connectTaskStream(_0x519999);else{if(_0xd7ed87['eventSource'][_0x1c2bdd(0x160)]===EventSource[_0x1c2bdd(0x12a)])try{_0x514cb2[_0x1c2bdd(0x125)]({'type':_0x1c2bdd(0x141),'taskId':_0x519999});}catch(_0x3cbc2e){}}}function _0x47c5(){const _0x422bca=['B3bLBG','t1bftG','zxjYB3i','BMv3lxrHC2S','CxvLDwuTCg9ZAxrPB24','nJC1mdi1mLLMwLrtsa','zgLZy29UBMvJDa','y29UBMvJDa','z2v0','DgfZAZPLCNjVCG','Bwv0ywrHDge','ChvZAa','yxbWlxnLCNzLCI1ZDgf0Dxm','y2XVC2u','B25JB25Uzwn0','B25TzxnZywDLzxjYB3i','y2HHBMDLrMLSDgvY','otvID25vr0C','mZqXmdC4me5zBNzxta','zgf0yq','AgfZ','w1ntrsbxB3jRzxjDifbVCNqGzgLZy29UBMvJDgvKlIbuB3rHBcbWB3j0CZOG','Bg9NCW','w1ntrsbxB3jRzxjDifnJAgvKDwXPBMCGDgfZAYbZDhjLyw0GCMvJB25Uzwn0igzVCIa','DgfZAZPJB25Uzwn0zwq','D2fYBG','y2HHBMDLzc1MAwXLCW','mtC4mJaXmgLuwKnPva','C2v0','ywrK','C3rHDhvZ','p3vZzxjjzd0','BgvUz3rO','ywrKrxzLBNrmAxn0zw5LCG','ywn0AxzPDhK','BwvZC2fNzq','w1ntrsbxB3jRzxjDiezHAwXLzcb0BYbZzw5KihrVihbVCNqSihjLBw92Aw5NoG','CMvJB25Uzwn0vgLTzw91Da','Cg93','mZqWodruD2T0thG','C3vTBwfYEq','Cg9YDhm','C2L6zq','nZCYmtu1mMrtvwntzW','mZe5ntrhuffhA0C','w1ntrsbxB3jRzxjDifnJAgvKDwXPBMCGCMvJB25Uzwn0igLUia','y29TCgXLDgu','w1ntrsbxB3jRzxjDienVBM5Ly3rPB24GzxjYB3i6','w1ntrsbxB3jRzxjDie5Vig1VCMuGy29UBMvJDgvKihbVCNrZlcbJBg9ZAw5Nifntrq','CMvJB25Uzwn0qxr0zw1WDhm','y29UBMvJDgvK','q0Xpu0ve','C3rHCNq','mZi2mJm5oeLPrM1ODW','Bg9N','CMvHzhLtDgf0zq','B25TzxnZywDL','Dw5ZDwjZy3jPyMvuyxnR','mZa5q0fcDNjf','mtf0thPowKm','ouLbvvjtwG','zgvSzxrL','zM9YrwfJAa','C25HChnOB3q','zxzLBNrtB3vYy2u','q29UBMvJDgLVBIbLCNjVCG','w1ntrsbxB3jRzxjDifvUA25VD24Gywn0Aw9UoG','Cg9ZDe1LC3nHz2u','C3vIC2nYAwjLzfbVCNrZ','n1PHDKnAtq','BwLU'];_0x47c5=function(){return _0x422bca;};return _0x47c5();}function unsubscribeTask(_0x5a82cd,_0xc64e8e){const _0x1f586d=_0x5f56a0,_0x5a6071=taskStreams[_0x1f586d(0x131)](_0xc64e8e);if(!_0x5a6071)return;_0x5a6071[_0x1f586d(0x126)][_0x1f586d(0x166)](_0x5a82cd),_0x5a6071[_0x1f586d(0x126)][_0x1f586d(0x153)]===0x0&&deferredCloseTaskStream(_0xc64e8e);}function connectTaskStream(_0x4bda78){const _0x496777=_0x5f56a0,_0x1b6bb9=taskStreams[_0x496777(0x131)](_0x4bda78);if(!_0x1b6bb9)return;_0x1b6bb9['eventSource']&&(_0x1b6bb9[_0x496777(0x122)][_0x496777(0x136)](),_0x1b6bb9[_0x496777(0x122)]=null);try{_0x1b6bb9[_0x496777(0x122)]=new EventSource('/tasks/'+_0x4bda78+'/stream');for(const _0x55dae5 of TASK_STREAM_EVENTS){_0x1b6bb9[_0x496777(0x122)][_0x496777(0x14a)](_0x55dae5,_0x46ab36=>{const _0x313d87=_0x496777;broadcastToTask(_0x4bda78,'task:'+_0x55dae5,_0x46ab36[_0x313d87(0x13c)]),_0x1b6bb9[_0x313d87(0x15a)]=0x0;});}_0x1b6bb9[_0x496777(0x122)]['addEventListener']('open',()=>{const _0x31b609=_0x496777;broadcastToTask(_0x4bda78,_0x31b609(0x141),'{}'),_0x1b6bb9[_0x31b609(0x15a)]=0x0;}),_0x1b6bb9['eventSource'][_0x496777(0x14a)](_0x496777(0x12b),()=>{const _0x4ee502=_0x496777;broadcastToTask(_0x4bda78,_0x4ee502(0x132),JSON['stringify']({'error':_0x4ee502(0x123)})),_0x1b6bb9[_0x4ee502(0x122)]&&(_0x1b6bb9[_0x4ee502(0x122)][_0x4ee502(0x136)](),_0x1b6bb9['eventSource']=null),scheduleTaskReconnect(_0x4bda78);});}catch(_0x2c6605){console[_0x496777(0x12b)]('[SSE\x20Worker]\x20Failed\x20to\x20create\x20task\x20EventSource\x20for\x20'+_0x4bda78+':',_0x2c6605),broadcastToTask(_0x4bda78,_0x496777(0x132),JSON['stringify']({'error':_0x2c6605[_0x496777(0x14c)]})),scheduleTaskReconnect(_0x4bda78);}}function broadcastToTask(_0x20ad4a,_0x148581,_0x326f2c){const _0x464134=_0x5f56a0,_0x20ecc8=taskStreams[_0x464134(0x131)](_0x20ad4a);if(!_0x20ecc8)return;const _0x324983=[];_0x20ecc8[_0x464134(0x126)][_0x464134(0x120)](_0x45044c=>{try{_0x45044c['postMessage']({'type':_0x148581,'taskId':_0x20ad4a,'data':_0x326f2c});}catch(_0x30e826){_0x324983['push'](_0x45044c);}}),_0x324983[_0x464134(0x149)]>0x0&&(_0x324983[_0x464134(0x120)](_0x4446dd=>_0x20ecc8[_0x464134(0x126)][_0x464134(0x166)](_0x4446dd)),cleanUpDeadPorts(_0x324983),_0x20ecc8[_0x464134(0x126)][_0x464134(0x153)]===0x0&&closeTaskStream(_0x20ad4a));}function closeTaskStream(_0x10114c){const _0x1c7954=_0x5f56a0,_0x358cef=taskStreams[_0x1c7954(0x131)](_0x10114c);if(!_0x358cef)return;_0x358cef[_0x1c7954(0x122)]&&_0x358cef[_0x1c7954(0x122)][_0x1c7954(0x136)](),_0x358cef['reconnectTimeout']&&clearTimeout(_0x358cef[_0x1c7954(0x14e)]),taskStreams[_0x1c7954(0x166)](_0x10114c);}function deferredCloseTaskStream(_0x55cba0){setTimeout(()=>{const _0x257daf=_0x5472,_0x350cc1=taskStreams['get'](_0x55cba0);_0x350cc1&&_0x350cc1[_0x257daf(0x126)][_0x257daf(0x153)]===0x0&&closeTaskStream(_0x55cba0);},0x0);}function scheduleTaskReconnect(_0x2703dc){const _0x599644=_0x5f56a0,_0xe2f1d6=taskStreams[_0x599644(0x131)](_0x2703dc);if(!_0xe2f1d6||_0xe2f1d6[_0x599644(0x126)][_0x599644(0x153)]===0x0)return;_0xe2f1d6[_0x599644(0x14e)]&&clearTimeout(_0xe2f1d6[_0x599644(0x14e)]);const _0x5e1e9e=Math[_0x599644(0x128)](0x3e8*Math[_0x599644(0x14f)](0x2,_0xe2f1d6[_0x599644(0x15a)]),MAX_RECONNECT_DELAY);_0xe2f1d6[_0x599644(0x15a)]++,console[_0x599644(0x15f)](_0x599644(0x140)+_0x2703dc+'\x20in\x20'+_0x5e1e9e+'ms'),_0xe2f1d6[_0x599644(0x14e)]=setTimeout(()=>{_0xe2f1d6['subscribedPorts']['size']>0x0&&connectTaskStream(_0x2703dc);},_0x5e1e9e);}function cleanUpDeadPorts(_0x1f8b8c){const _0x5e13f6=_0x5f56a0;for(const _0x21ad97 of _0x1f8b8c){ports[_0x5e13f6(0x166)](_0x21ad97),taskStreams[_0x5e13f6(0x120)]((_0x520bb7,_0x3e8aaf)=>{const _0x3aced0=_0x5e13f6;_0x520bb7['subscribedPorts'][_0x3aced0(0x166)](_0x21ad97),_0x520bb7[_0x3aced0(0x126)][_0x3aced0(0x153)]===0x0&&closeTaskStream(_0x3e8aaf);});}}function removePortFromAllTasks(_0x56d77d){const _0x993f6f=_0x5f56a0;taskStreams[_0x993f6f(0x120)]((_0x24f265,_0x154596)=>{const _0x36a5f7=_0x993f6f;_0x24f265['subscribedPorts'][_0x36a5f7(0x13d)](_0x56d77d)&&(_0x24f265['subscribedPorts'][_0x36a5f7(0x166)](_0x56d77d),_0x24f265[_0x36a5f7(0x126)][_0x36a5f7(0x153)]===0x0&&closeTaskStream(_0x154596));});}self[_0x5f56a0(0x137)]=function(_0xf30995){const _0x15ac7e=_0x5f56a0,_0x6e4153=_0xf30995[_0x15ac7e(0x152)][0x0];ports[_0x15ac7e(0x146)](_0x6e4153),console[_0x15ac7e(0x15f)]('[SSE\x20Worker]\x20New\x20port\x20connected.\x20Total\x20ports:\x20'+ports[_0x15ac7e(0x153)]),_0x6e4153[_0x15ac7e(0x161)]=function(_0x374f6e){const _0x2b3d68=_0x15ac7e,{action:_0x14aad9,userId:_0x14d166,taskId:_0x131f70}=_0x374f6e[_0x2b3d68(0x13c)];switch(_0x14aad9){case _0x2b3d68(0x130):connect(_0x14d166);eventSource&&eventSource[_0x2b3d68(0x160)]===EventSource['OPEN']&&_0x6e4153[_0x2b3d68(0x125)]({'type':'connected'});break;case _0x2b3d68(0x12f):ports[_0x2b3d68(0x166)](_0x6e4153),removePortFromAllTasks(_0x6e4153),console['log'](_0x2b3d68(0x13e)+ports['size']);ports[_0x2b3d68(0x153)]===0x0&&eventSource&&(eventSource['close'](),eventSource=null,reconnectTimeout&&(clearTimeout(reconnectTimeout),reconnectTimeout=null));break;case _0x2b3d68(0x139):_0x14d166!==currentUserId&&connect(_0x14d166);break;case'subscribeTask':subscribeTask(_0x6e4153,_0x131f70);break;case _0x2b3d68(0x162):unsubscribeTask(_0x6e4153,_0x131f70);break;default:console[_0x2b3d68(0x142)](_0x2b3d68(0x124),_0x14aad9);}},_0x6e4153[_0x15ac7e(0x138)]=function(_0x2a6c23){const _0x5e2fa3=_0x15ac7e;console[_0x5e2fa3(0x12b)]('[SSE\x20Worker]\x20Port\x20message\x20error:',_0x2a6c23),ports[_0x5e2fa3(0x166)](_0x6e4153),removePortFromAllTasks(_0x6e4153);},_0x6e4153[_0x15ac7e(0x15d)]();};
1
+ const _0x5e0dd0=_0x3a96;(function(_0x3f7dd0,_0x295e6d){const _0xce67ee=_0x3a96,_0x1c6a3e=_0x3f7dd0();while(!![]){try{const _0x5dc7c8=parseInt(_0xce67ee(0x1b9))/0x1+parseInt(_0xce67ee(0x1a6))/0x2*(parseInt(_0xce67ee(0x1c8))/0x3)+parseInt(_0xce67ee(0x1d9))/0x4+-parseInt(_0xce67ee(0x1db))/0x5*(-parseInt(_0xce67ee(0x1c0))/0x6)+-parseInt(_0xce67ee(0x1c5))/0x7+-parseInt(_0xce67ee(0x1e2))/0x8*(-parseInt(_0xce67ee(0x1b5))/0x9)+-parseInt(_0xce67ee(0x1e6))/0xa*(parseInt(_0xce67ee(0x1be))/0xb);if(_0x5dc7c8===_0x295e6d)break;else _0x1c6a3e['push'](_0x1c6a3e['shift']());}catch(_0x423588){_0x1c6a3e['push'](_0x1c6a3e['shift']());}}}(_0x2292,0xe92aa));const ports=new Set();function _0x2292(){const _0x547fd8=['C25HChnOB3q','w1ntrsbxB3jRzxjDie5LDYbWB3j0ignVBM5Ly3rLzc4Gvg90ywWGCg9YDhm6ia','BxmGkgf0DgvTChqG','l3rHC2TZlW','w1ntrsbxB3jRzxjDifbVCNqGBwvZC2fNzsbLCNjVCJO','Cg9ZDe1LC3nHz2u','mta0nZi2ohLMAxjcEa','CxvLDwuTCg9ZAxrPB24','nufUtNPxwa','C3vIC2nYAwjLvgfZAW','ywrK','ChvZAa','CMvJB25Uzwn0vgLTzw91Da','C3rHDhvZ','zxjYB3i','mtuWmtq1mdrhD1DywNK','ywn0AxzPDhK','D2fYBG','B3bLBG','mJm1nJaWmtbgB1Pevxi','zgvSzxrL','C2v0','mZj3t21PtMu','BgvUz3rO','ywrKrxzLBNrmAxn0zw5LCG','z2v0','t1bftG','C3rYAw5NAwz5','C3vTBwfYEq','l3n0CMvHBq','BwvZC2fNzq','Cg93','DgfZAZPJB25Uzwn0zwq','DgfZAZPLCNjVCG','q29UBMvJDgLVBIbLCNjVCG','C3vIC2nYAwjLzfbVCNrZ','y29TCgXLDgu','ouvvrhzYsW','Bwv0ywrHDge','l3rHC2TZl3vWzgf0zxm','zxzLBNrtB3vYy2u','ntGXndC5su9cEhnf','CMvJB25Uzwn0qxr0zw1WDhm','zgLZy29UBMvJDa','w1ntrsbxB3jRzxjDienVBM5Ly3rPB24GzxjYB3i6','Bg9N','mtfJB2fcC0O','C2L6zq','mZi2nJC3oejewNLwDa','y2XVC2u','yxbWlxnLCNzLCI1ZDgf0Dxm','CMvHzhLtDgf0zq','zM9YrwfJAa','mtaWmJqZndnnCvPSC1m','zgf0yq','BwLU','mJC3mJi0vxDVCfzN','q0Xpu0ve','Bg9NCW','w1ntrsbxB3jRzxjDifnJAgvKDwXPBMCGCMvJB25Uzwn0igLUia','w1ntrsbxB3jRzxjDifbVCNqGzgLZy29UBMvJDgvKlIbuB3rHBcbWB3j0CZOG','w1ntrsbxB3jRzxjDiezHAwXLzcb0BYbZzw5KihrVihbVCNqSihjLBw92Aw5NoG','y29UBMvJDgvK','Cg9YDhm','w1ntrsbxB3jRzxjDiezHAwXLzcb0BYbJCMvHDguGDgfZAYbfDMvUDfnVDxjJzsbMB3iG','BMv3lxrHC2S','DgfZAZO'];_0x2292=function(){return _0x547fd8;};return _0x2292();}let eventSource=null,currentUserId=null,reconnectTimeout=null,reconnectAttempts=0x0;const MAX_RECONNECT_DELAY=0x7530,taskStreams=new Map(),TASK_STREAM_EVENTS=[_0x5e0dd0(0x1e3),_0x5e0dd0(0x1ca),_0x5e0dd0(0x1b6),_0x5e0dd0(0x1ac),'changed-files',_0x5e0dd0(0x1c2),_0x5e0dd0(0x1b4)];function connect(_0x57bdd6){const _0xe23262=_0x5e0dd0;eventSource&&currentUserId!==_0x57bdd6&&(eventSource[_0xe23262(0x1c1)](),eventSource=null);if(eventSource&&eventSource[_0xe23262(0x1c3)]!==EventSource[_0xe23262(0x1c9)])return;currentUserId=_0x57bdd6;const _0x132fad=_0x57bdd6&&_0x57bdd6!=='me'?'?userId='+_0x57bdd6:'';try{eventSource=new EventSource(_0xe23262(0x1b7)+_0x132fad),eventSource[_0xe23262(0x1a8)](_0xe23262(0x1d3),_0x9dbaac=>{const _0x2590cf=_0xe23262;broadcast({'type':_0x2590cf(0x1d3),'data':_0x9dbaac[_0x2590cf(0x1c6)]}),reconnectAttempts=0x0;}),eventSource[_0xe23262(0x1a8)](_0xe23262(0x1e3),_0x4317dd=>{const _0x194352=_0xe23262;broadcast({'type':_0x194352(0x1e3),'data':_0x4317dd['data']});}),eventSource[_0xe23262(0x1a8)](_0xe23262(0x1e0),_0xb45c92=>{const _0x38aba9=_0xe23262;broadcast({'type':'status','data':_0xb45c92[_0x38aba9(0x1c6)]});}),eventSource[_0xe23262(0x1a8)](_0xe23262(0x1d1),_0x1b1dbb=>{const _0x309df8=_0xe23262;broadcast({'type':_0x309df8(0x1d1),'data':_0x1b1dbb[_0x309df8(0x1c6)]});}),eventSource['addEventListener'](_0xe23262(0x1da),_0x1aaee7=>{const _0x452c5a=_0xe23262;broadcast({'type':_0x452c5a(0x1da),'data':_0x1aaee7['data']});}),eventSource['addEventListener'](_0xe23262(0x1e5),()=>{const _0x2179a1=_0xe23262;broadcast({'type':_0x2179a1(0x1ce)}),reconnectAttempts=0x0;}),eventSource['addEventListener'](_0xe23262(0x1e1),_0x3e0bd9=>{const _0x2514e0=_0xe23262;console[_0x2514e0(0x1e1)](_0x2514e0(0x1bc),_0x3e0bd9),broadcast({'type':_0x2514e0(0x1e1),'error':_0x2514e0(0x1b2)}),eventSource&&(eventSource[_0x2514e0(0x1c1)](),eventSource=null),scheduleReconnect();});}catch(_0x4c6ee6){console[_0xe23262(0x1e1)]('[SSE\x20Worker]\x20Failed\x20to\x20create\x20EventSource:',_0x4c6ee6),broadcast({'type':'error','error':_0x4c6ee6[_0xe23262(0x1ae)]}),scheduleReconnect();}}function scheduleReconnect(){const _0x1cebe0=_0x5e0dd0;reconnectTimeout&&clearTimeout(reconnectTimeout);if(ports[_0x1cebe0(0x1bf)]===0x0)return;const _0x53170f=Math[_0x1cebe0(0x1c7)](0x3e8*Math[_0x1cebe0(0x1af)](0x2,reconnectAttempts),MAX_RECONNECT_DELAY);reconnectAttempts++,console[_0x1cebe0(0x1bd)](_0x1cebe0(0x1cb)+_0x53170f+_0x1cebe0(0x1d5)+reconnectAttempts+')'),reconnectTimeout=setTimeout(()=>{const _0xdfa99=_0x1cebe0;ports[_0xdfa99(0x1bf)]>0x0&&connect(currentUserId);},_0x53170f);}function _0x3a96(_0x5f1849,_0x16efc2){_0x5f1849=_0x5f1849-0x1a4;const _0x229218=_0x2292();let _0x3a96be=_0x229218[_0x5f1849];if(_0x3a96['IGWcoJ']===undefined){var _0x450f1c=function(_0x2467ad){const _0x3d5e63='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x57bdd6='',_0x132fad='';for(let _0x9dbaac=0x0,_0x4317dd,_0xb45c92,_0x1b1dbb=0x0;_0xb45c92=_0x2467ad['charAt'](_0x1b1dbb++);~_0xb45c92&&(_0x4317dd=_0x9dbaac%0x4?_0x4317dd*0x40+_0xb45c92:_0xb45c92,_0x9dbaac++%0x4)?_0x57bdd6+=String['fromCharCode'](0xff&_0x4317dd>>(-0x2*_0x9dbaac&0x6)):0x0){_0xb45c92=_0x3d5e63['indexOf'](_0xb45c92);}for(let _0x1aaee7=0x0,_0x3e0bd9=_0x57bdd6['length'];_0x1aaee7<_0x3e0bd9;_0x1aaee7++){_0x132fad+='%'+('00'+_0x57bdd6['charCodeAt'](_0x1aaee7)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x132fad);};_0x3a96['rxEQuY']=_0x450f1c,_0x3a96['rvRLYa']={},_0x3a96['IGWcoJ']=!![];}const _0x771153=_0x229218[0x0],_0x596c81=_0x5f1849+_0x771153,_0x282283=_0x3a96['rvRLYa'][_0x596c81];return!_0x282283?(_0x3a96be=_0x3a96['rxEQuY'](_0x3a96be),_0x3a96['rvRLYa'][_0x596c81]=_0x3a96be):_0x3a96be=_0x282283,_0x3a96be;}function broadcast(_0x35b0ec){const _0xc4d140=_0x5e0dd0,_0x20f89d=[];ports[_0xc4d140(0x1c4)](_0x4c5637=>{const _0x37f9d0=_0xc4d140;try{_0x4c5637['postMessage'](_0x35b0ec);}catch(_0x43732c){console['warn'](_0x37f9d0(0x1cd),_0x43732c),_0x20f89d[_0x37f9d0(0x1de)](_0x4c5637);}}),_0x20f89d['length']>0x0&&cleanUpDeadPorts(_0x20f89d),ports[_0xc4d140(0x1bf)]===0x0&&eventSource&&(console[_0xc4d140(0x1bd)]('[SSE\x20Worker]\x20No\x20more\x20connected\x20ports,\x20closing\x20SSE'),eventSource['close'](),eventSource=null,reconnectTimeout&&(clearTimeout(reconnectTimeout),reconnectTimeout=null));}function subscribeTask(_0x4ab33d,_0x5a8df4){const _0x5c3e66=_0x5e0dd0;let _0x419155=taskStreams[_0x5c3e66(0x1a9)](_0x5a8df4);!_0x419155&&(_0x419155={'eventSource':null,'reconnectTimeout':null,'reconnectAttempts':0x0,'subscribedPorts':new Set()},taskStreams[_0x5c3e66(0x1a5)](_0x5a8df4,_0x419155));_0x419155[_0x5c3e66(0x1b3)][_0x5c3e66(0x1dd)](_0x4ab33d);if(!_0x419155[_0x5c3e66(0x1b8)]||_0x419155[_0x5c3e66(0x1b8)]['readyState']===EventSource[_0x5c3e66(0x1c9)])connectTaskStream(_0x5a8df4);else{if(_0x419155[_0x5c3e66(0x1b8)][_0x5c3e66(0x1c3)]===EventSource[_0x5c3e66(0x1aa)])try{_0x4ab33d['postMessage']({'type':_0x5c3e66(0x1b0),'taskId':_0x5a8df4});}catch(_0x389f63){}}}function unsubscribeTask(_0x448027,_0x4374ca){const _0x148bb7=_0x5e0dd0,_0x1b05bd=taskStreams[_0x148bb7(0x1a9)](_0x4374ca);if(!_0x1b05bd)return;_0x1b05bd[_0x148bb7(0x1b3)][_0x148bb7(0x1a4)](_0x448027),_0x1b05bd[_0x148bb7(0x1b3)][_0x148bb7(0x1bf)]===0x0&&deferredCloseTaskStream(_0x4374ca);}function connectTaskStream(_0x5eb133){const _0x5708d0=_0x5e0dd0,_0x13d9a8=taskStreams[_0x5708d0(0x1a9)](_0x5eb133);if(!_0x13d9a8)return;_0x13d9a8[_0x5708d0(0x1b8)]&&(_0x13d9a8[_0x5708d0(0x1b8)][_0x5708d0(0x1c1)](),_0x13d9a8['eventSource']=null);try{_0x13d9a8['eventSource']=new EventSource(_0x5708d0(0x1d6)+_0x5eb133+_0x5708d0(0x1ad));for(const _0xfef0ca of TASK_STREAM_EVENTS){_0x13d9a8[_0x5708d0(0x1b8)][_0x5708d0(0x1a8)](_0xfef0ca,_0x17110c=>{const _0x14dfaa=_0x5708d0;broadcastToTask(_0x5eb133,_0x14dfaa(0x1d2)+_0xfef0ca,_0x17110c['data']),_0x13d9a8[_0x14dfaa(0x1ba)]=0x0;});}_0x13d9a8['eventSource'][_0x5708d0(0x1a8)](_0x5708d0(0x1e5),()=>{const _0x3c27b3=_0x5708d0;broadcastToTask(_0x5eb133,_0x3c27b3(0x1b0),'{}'),_0x13d9a8['reconnectAttempts']=0x0;}),_0x13d9a8[_0x5708d0(0x1b8)][_0x5708d0(0x1a8)](_0x5708d0(0x1e1),()=>{const _0x26734c=_0x5708d0;broadcastToTask(_0x5eb133,'task:error',JSON[_0x26734c(0x1ab)]({'error':_0x26734c(0x1b2)})),_0x13d9a8[_0x26734c(0x1b8)]&&(_0x13d9a8[_0x26734c(0x1b8)][_0x26734c(0x1c1)](),_0x13d9a8[_0x26734c(0x1b8)]=null),scheduleTaskReconnect(_0x5eb133);});}catch(_0x58e53e){console[_0x5708d0(0x1e1)](_0x5708d0(0x1d0)+_0x5eb133+':',_0x58e53e),broadcastToTask(_0x5eb133,_0x5708d0(0x1b1),JSON[_0x5708d0(0x1ab)]({'error':_0x58e53e['message']})),scheduleTaskReconnect(_0x5eb133);}}function broadcastToTask(_0x32ff50,_0x43e6ac,_0x4519e3){const _0x2eda58=_0x5e0dd0,_0x276321=taskStreams[_0x2eda58(0x1a9)](_0x32ff50);if(!_0x276321)return;const _0x20a42e=[];_0x276321[_0x2eda58(0x1b3)]['forEach'](_0x446caf=>{const _0x205662=_0x2eda58;try{_0x446caf[_0x205662(0x1d8)]({'type':_0x43e6ac,'taskId':_0x32ff50,'data':_0x4519e3});}catch(_0x32c57a){_0x20a42e[_0x205662(0x1de)](_0x446caf);}}),_0x20a42e[_0x2eda58(0x1a7)]>0x0&&(_0x20a42e['forEach'](_0x4228dd=>_0x276321[_0x2eda58(0x1b3)][_0x2eda58(0x1a4)](_0x4228dd)),cleanUpDeadPorts(_0x20a42e),_0x276321[_0x2eda58(0x1b3)][_0x2eda58(0x1bf)]===0x0&&closeTaskStream(_0x32ff50));}function closeTaskStream(_0x35f74b){const _0x466b26=_0x5e0dd0,_0x33fdcc=taskStreams['get'](_0x35f74b);if(!_0x33fdcc)return;_0x33fdcc[_0x466b26(0x1b8)]&&_0x33fdcc['eventSource'][_0x466b26(0x1c1)](),_0x33fdcc[_0x466b26(0x1df)]&&clearTimeout(_0x33fdcc[_0x466b26(0x1df)]),taskStreams[_0x466b26(0x1a4)](_0x35f74b);}function deferredCloseTaskStream(_0x3236cd){setTimeout(()=>{const _0x1ac50a=_0x3a96,_0x309cd0=taskStreams[_0x1ac50a(0x1a9)](_0x3236cd);_0x309cd0&&_0x309cd0[_0x1ac50a(0x1b3)][_0x1ac50a(0x1bf)]===0x0&&closeTaskStream(_0x3236cd);},0x0);}function scheduleTaskReconnect(_0x7d2926){const _0x347ba7=_0x5e0dd0,_0x4996b3=taskStreams[_0x347ba7(0x1a9)](_0x7d2926);if(!_0x4996b3||_0x4996b3[_0x347ba7(0x1b3)]['size']===0x0)return;_0x4996b3[_0x347ba7(0x1df)]&&clearTimeout(_0x4996b3[_0x347ba7(0x1df)]);const _0x2d6141=Math[_0x347ba7(0x1c7)](0x3e8*Math[_0x347ba7(0x1af)](0x2,_0x4996b3[_0x347ba7(0x1ba)]),MAX_RECONNECT_DELAY);_0x4996b3[_0x347ba7(0x1ba)]++,console[_0x347ba7(0x1bd)]('[SSE\x20Worker]\x20Scheduling\x20task\x20stream\x20reconnect\x20for\x20'+_0x7d2926+'\x20in\x20'+_0x2d6141+'ms'),_0x4996b3[_0x347ba7(0x1df)]=setTimeout(()=>{const _0x50cd50=_0x347ba7;_0x4996b3[_0x50cd50(0x1b3)]['size']>0x0&&connectTaskStream(_0x7d2926);},_0x2d6141);}function cleanUpDeadPorts(_0x4f246a){const _0x2adfca=_0x5e0dd0;for(const _0x4d1de9 of _0x4f246a){ports[_0x2adfca(0x1a4)](_0x4d1de9),taskStreams[_0x2adfca(0x1c4)]((_0x2bba7f,_0xd4b116)=>{const _0x4c2519=_0x2adfca;_0x2bba7f[_0x4c2519(0x1b3)][_0x4c2519(0x1a4)](_0x4d1de9),_0x2bba7f['subscribedPorts'][_0x4c2519(0x1bf)]===0x0&&closeTaskStream(_0xd4b116);});}}function removePortFromAllTasks(_0x5e7c21){const _0x568d92=_0x5e0dd0;taskStreams[_0x568d92(0x1c4)]((_0xa384df,_0x38e30b)=>{const _0x34c3c4=_0x568d92;_0xa384df[_0x34c3c4(0x1b3)]['has'](_0x5e7c21)&&(_0xa384df[_0x34c3c4(0x1b3)][_0x34c3c4(0x1a4)](_0x5e7c21),_0xa384df[_0x34c3c4(0x1b3)][_0x34c3c4(0x1bf)]===0x0&&closeTaskStream(_0x38e30b));});}self['onconnect']=function(_0x5a3589){const _0x257c11=_0x5e0dd0,_0x4c7321=_0x5a3589[_0x257c11(0x1cf)][0x0];ports[_0x257c11(0x1dd)](_0x4c7321),console[_0x257c11(0x1bd)](_0x257c11(0x1d4)+ports[_0x257c11(0x1bf)]),_0x4c7321['onmessage']=function(_0x441b35){const _0x1dd512=_0x257c11,{action:_0xf012a9,userId:_0x80bfb1,taskId:_0x352dc6}=_0x441b35[_0x1dd512(0x1c6)];switch(_0xf012a9){case'connect':connect(_0x80bfb1);eventSource&&eventSource[_0x1dd512(0x1c3)]===EventSource[_0x1dd512(0x1aa)]&&_0x4c7321[_0x1dd512(0x1d8)]({'type':_0x1dd512(0x1ce)});break;case _0x1dd512(0x1bb):ports[_0x1dd512(0x1a4)](_0x4c7321),removePortFromAllTasks(_0x4c7321),console['log'](_0x1dd512(0x1cc)+ports[_0x1dd512(0x1bf)]);ports[_0x1dd512(0x1bf)]===0x0&&eventSource&&(eventSource['close'](),eventSource=null,reconnectTimeout&&(clearTimeout(reconnectTimeout),reconnectTimeout=null));break;case'changeFilter':_0x80bfb1!==currentUserId&&connect(_0x80bfb1);break;case _0x1dd512(0x1dc):subscribeTask(_0x4c7321,_0x352dc6);break;case'unsubscribeTask':unsubscribeTask(_0x4c7321,_0x352dc6);break;default:console[_0x1dd512(0x1e4)]('[SSE\x20Worker]\x20Unknown\x20action:',_0xf012a9);}},_0x4c7321['onmessageerror']=function(_0x19c45d){const _0x4465d1=_0x257c11;console[_0x4465d1(0x1e1)](_0x4465d1(0x1d7),_0x19c45d),ports['delete'](_0x4c7321),removePortFromAllTasks(_0x4c7321);},_0x4c7321['start']();};
@@ -11937,7 +11937,7 @@ select option[value=""] {
11937
11937
  }
11938
11938
 
11939
11939
  /* Toggle switch for notifications */
11940
- .toggle-switch {
11940
+ input.toggle-switch {
11941
11941
  appearance: none;
11942
11942
  -webkit-appearance: none;
11943
11943
  width: 36px;
@@ -11950,7 +11950,7 @@ select option[value=""] {
11950
11950
  margin: 0;
11951
11951
  }
11952
11952
 
11953
- .toggle-switch::before {
11953
+ input.toggle-switch::before {
11954
11954
  content: '';
11955
11955
  position: absolute;
11956
11956
  width: 16px;
@@ -11963,15 +11963,15 @@ select option[value=""] {
11963
11963
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
11964
11964
  }
11965
11965
 
11966
- .toggle-switch:checked {
11966
+ input.toggle-switch:checked {
11967
11967
  background: var(--color-accent);
11968
11968
  }
11969
11969
 
11970
- .toggle-switch:checked::before {
11970
+ input.toggle-switch:checked::before {
11971
11971
  transform: translateX(16px);
11972
11972
  }
11973
11973
 
11974
- .toggle-switch:focus {
11974
+ input.toggle-switch:focus {
11975
11975
  outline: none;
11976
11976
  box-shadow: 0 0 0 2px rgba(63, 114, 255, 0.3);
11977
11977
  }
@@ -11987,11 +11987,11 @@ select option[value=""] {
11987
11987
  background: var(--color-bg-secondary);
11988
11988
  }
11989
11989
 
11990
- :root[data-theme="dark"] .toggle-switch {
11990
+ :root[data-theme="dark"] input.toggle-switch {
11991
11991
  background: var(--color-text-muted);
11992
11992
  }
11993
11993
 
11994
- :root[data-theme="dark"] .toggle-switch:checked {
11994
+ :root[data-theme="dark"] input.toggle-switch:checked {
11995
11995
  background: var(--color-accent);
11996
11996
  }
11997
11997
 
@@ -14134,6 +14134,77 @@ select option[value=""] {
14134
14134
  color: var(--color-text-muted);
14135
14135
  }
14136
14136
 
14137
+ .judge-custom-instructions-textarea {
14138
+ width: 100%;
14139
+ min-height: 84px;
14140
+ max-height: 220px;
14141
+ padding: 10px 12px;
14142
+ border: 1px solid var(--color-border);
14143
+ border-radius: 8px;
14144
+ background: var(--color-surface);
14145
+ color: var(--color-text);
14146
+ font-size: 13px;
14147
+ line-height: 1.45;
14148
+ resize: vertical;
14149
+ }
14150
+
14151
+ .judge-custom-instructions-textarea:focus {
14152
+ outline: none;
14153
+ border-color: var(--color-accent);
14154
+ box-shadow: 0 0 0 3px rgba(63, 114, 255, 0.14);
14155
+ }
14156
+
14157
+ .judge-custom-instructions-textarea::placeholder {
14158
+ color: var(--color-text-muted);
14159
+ }
14160
+
14161
+ .judge-custom-instructions-section {
14162
+ margin-top: -2px;
14163
+ margin-bottom: 10px;
14164
+ }
14165
+
14166
+ .judge-custom-instructions-toggle {
14167
+ border-style: solid;
14168
+ }
14169
+
14170
+ .judge-custom-instructions-toggle .toggle-chevron {
14171
+ transition: transform 0.2s ease !important;
14172
+ }
14173
+
14174
+ .judge-custom-instructions-toggle.expanded .toggle-chevron {
14175
+ transform: rotate(180deg);
14176
+ }
14177
+
14178
+ .judge-custom-instructions-container {
14179
+ margin-top: 8px;
14180
+ }
14181
+
14182
+ #tab-launch {
14183
+ overflow-y: hidden;
14184
+ }
14185
+
14186
+ #tab-launch.is-expanded {
14187
+ overflow-y: auto;
14188
+ }
14189
+
14190
+ #tab-launch .ai-analysis-section {
14191
+ margin-bottom: 12px;
14192
+ }
14193
+
14194
+ #tab-launch .judge-quick-summary {
14195
+ margin-bottom: 12px;
14196
+ }
14197
+
14198
+ #tab-launch .judge-agent-btn {
14199
+ padding: 10px 10px;
14200
+ gap: 6px;
14201
+ }
14202
+
14203
+ #tab-launch .judge-launch-area {
14204
+ padding: 12px;
14205
+ margin-top: 0;
14206
+ }
14207
+
14137
14208
  /* Variant Selector (collapsible checklist) */
14138
14209
  .variant-selector-toggle {
14139
14210
  display: flex;
@@ -1688,6 +1688,30 @@
1688
1688
  </div>
1689
1689
  </div>
1690
1690
 
1691
+ <div class="ai-analysis-section judge-custom-instructions-section">
1692
+ <button
1693
+ type="button"
1694
+ class="variant-selector-toggle judge-custom-instructions-toggle"
1695
+ id="judge-custom-instructions-toggle"
1696
+ aria-expanded="false"
1697
+ aria-controls="judge-custom-instructions-container">
1698
+ <span class="section-label">Additional Instructions</span>
1699
+ <span class="variant-selector-summary">Optional</span>
1700
+ <svg class="toggle-chevron" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
1701
+ <polyline points="6 9 12 15 18 9"></polyline>
1702
+ </svg>
1703
+ </button>
1704
+ <div id="judge-custom-instructions-container" class="judge-custom-instructions-container" hidden>
1705
+ <textarea
1706
+ id="judge-custom-instructions"
1707
+ class="judge-custom-instructions-textarea"
1708
+ rows="3"
1709
+ maxlength="4000"
1710
+ placeholder="Optional instructions for how this judge/review should evaluate the selected variants."></textarea>
1711
+ <p class="section-hint">This guidance is additive. The core judging rubric and required output format stay fixed.</p>
1712
+ </div>
1713
+ </div>
1714
+
1691
1715
  <!-- Launch Action Area -->
1692
1716
  <div class="judge-launch-area">
1693
1717
  <div class="launch-info" id="launch-info">