{"version":3,"file":"discourse-presence.js","names":["define","_exports","_component","_tracking","_service","_truthHelpers","_userLink","_avatar","_helperFn","_discourseI18n","_component2","_templateFactory","Object","defineProperty","value","default","ComposerPresenceDisplay","static","dt7948","g","this","prototype","service","presence","i","composerPresenceManager","currentUser","siteSettings","tracked","replyChannel","whisperChannel","editChannel","setupReplyChannel","_","on","topic","args","model","isReply","name","id","getChannel","subscribe","cleanup","unsubscribe","setupWhisperChannel","whisperer","setupEditChannel","post","isEdit","notifyState","replyDirty","entity","state","leave","editingPost","whisper","replyingToTopic","n","cached","users","filter","u","slice","presence_max_users_shown","setComponentTemplate","createTemplateFactory","block","moduleName","scope","gt","i18n","isStrictMode","TopicPresenceDisplay","_composerPresenceDisplay","_templateOnly","Presence","undefined","_topicPresenceDisplay","_runloop","_environment","ComposerPresenceManager","keepAlive","arguments","length","canHideProfile","allow_users_to_hide_profile","isHidingPresence","user_option","hide_presence","_name","_channel","enter","isTesting","_autoLeaveTimer","debounce","cancel"],"sources":["discourse/plugins/discourse-presence/discourse/components/composer-presence-display.js","discourse/plugins/discourse-presence/discourse/components/topic-presence-display.js","discourse/plugins/discourse-presence/discourse/connectors/before-composer-controls/presence.js","discourse/plugins/discourse-presence/discourse/connectors/topic-above-footer-buttons/presence.js","discourse/plugins/discourse-presence/discourse/services/composer-presence-manager.js"],"sourcesContent":["define(\"discourse/plugins/discourse-presence/discourse/components/composer-presence-display\", [\"exports\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/service\", \"truth-helpers\", \"discourse/components/user-link\", \"discourse/helpers/avatar\", \"discourse/helpers/helper-fn\", \"discourse-i18n\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _tracking, _service, _truthHelpers, _userLink, _avatar, _helperFn, _discourseI18n, _component2, _templateFactory) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.default = void 0;\n class ComposerPresenceDisplay extends _component.default {\n static #_ = (() => dt7948.g(this.prototype, \"presence\", [_service.service]))();\n #presence = (() => (dt7948.i(this, \"presence\"), void 0))();\n static #_2 = (() => dt7948.g(this.prototype, \"composerPresenceManager\", [_service.service]))();\n #composerPresenceManager = (() => (dt7948.i(this, \"composerPresenceManager\"), void 0))();\n static #_3 = (() => dt7948.g(this.prototype, \"currentUser\", [_service.service]))();\n #currentUser = (() => (dt7948.i(this, \"currentUser\"), void 0))();\n static #_4 = (() => dt7948.g(this.prototype, \"siteSettings\", [_service.service]))();\n #siteSettings = (() => (dt7948.i(this, \"siteSettings\"), void 0))();\n static #_5 = (() => dt7948.g(this.prototype, \"replyChannel\", [_tracking.tracked]))();\n #replyChannel = (() => (dt7948.i(this, \"replyChannel\"), void 0))();\n static #_6 = (() => dt7948.g(this.prototype, \"whisperChannel\", [_tracking.tracked]))();\n #whisperChannel = (() => (dt7948.i(this, \"whisperChannel\"), void 0))();\n static #_7 = (() => dt7948.g(this.prototype, \"editChannel\", [_tracking.tracked]))();\n #editChannel = (() => (dt7948.i(this, \"editChannel\"), void 0))();\n setupReplyChannel = (() => (0, _helperFn.default)((_, on) => {\n const {\n topic\n } = this.args.model;\n if (!topic || !this.isReply) {\n return;\n }\n const name = `/discourse-presence/reply/${topic.id}`;\n const replyChannel = this.presence.getChannel(name);\n this.replyChannel = replyChannel;\n replyChannel.subscribe();\n on.cleanup(() => replyChannel.unsubscribe());\n }))();\n setupWhisperChannel = (() => (0, _helperFn.default)((_, on) => {\n const {\n topic\n } = this.args.model;\n const {\n whisperer\n } = this.currentUser;\n if (!topic || !this.isReply || !whisperer) {\n return;\n }\n const name = `/discourse-presence/whisper/${topic.id}`;\n const whisperChannel = this.presence.getChannel(name);\n this.whisperChannel = whisperChannel;\n whisperChannel.subscribe();\n on.cleanup(() => whisperChannel.unsubscribe());\n }))();\n setupEditChannel = (() => (0, _helperFn.default)((_, on) => {\n const {\n post\n } = this.args.model;\n if (!post || !this.isEdit) {\n return;\n }\n const name = `/discourse-presence/edit/${post.id}`;\n const editChannel = this.presence.getChannel(name);\n this.editChannel = editChannel;\n editChannel.subscribe();\n on.cleanup(() => editChannel.unsubscribe());\n }))();\n notifyState = (() => (0, _helperFn.default)((_, on) => {\n const {\n topic,\n post,\n replyDirty\n } = this.args.model;\n const entity = this.isEdit ? post : topic;\n if (entity) {\n const name = `/discourse-presence/${this.state}/${entity.id}`;\n this.composerPresenceManager.notifyState(name, replyDirty);\n }\n on.cleanup(() => this.composerPresenceManager.leave());\n }))();\n get isReply() {\n return this.state === \"reply\" || this.state === \"whisper\";\n }\n get isEdit() {\n return this.state === \"edit\";\n }\n get state() {\n const {\n editingPost,\n whisper,\n replyingToTopic\n } = this.args.model;\n if (editingPost) {\n return \"edit\";\n } else if (whisper) {\n return \"whisper\";\n } else if (replyingToTopic) {\n return \"reply\";\n }\n }\n static #_8 = (() => dt7948.n(this.prototype, \"state\", [_tracking.cached]))();\n get users() {\n let users;\n if (this.isEdit) {\n users = this.editChannel?.users || [];\n } else {\n const replyUsers = this.replyChannel?.users || [];\n const whisperUsers = this.whisperChannel?.users || [];\n users = [...replyUsers, ...whisperUsers];\n }\n return users.filter(u => u.id !== this.currentUser.id).slice(0, this.siteSettings.presence_max_users_shown);\n }\n static #_9 = (() => dt7948.n(this.prototype, \"users\", [_tracking.cached]))();\n static #_10 = (() => (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n /*\n \n {{#if this.currentUser}}\n {{this.setupReplyChannel}}\n {{this.setupWhisperChannel}}\n {{this.setupEditChannel}}\n {{this.notifyState}}\n \n {{#if (gt this.users.length 0)}}\n
\n
\n {{#each this.users as |user|}}\n \n {{avatar user imageSize=\"small\"}}\n \n {{/each}}\n
\n \n \n \n {{~#if this.isReply~}}\n {{i18n \"presence.replying\" count=this.users.length}}\n {{~else~}}\n {{i18n \"presence.editing\" count=this.users.length}}\n {{~/if~}}\n \n \n .\n .\n .\n \n \n
\n {{/if}}\n {{/if}}\n \n */\n {\n \"id\": \"yT15VqnX\",\n \"block\": \"[[[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"currentUser\\\"]],[[[1,\\\" \\\"],[1,[30,0,[\\\"setupReplyChannel\\\"]]],[1,\\\"\\\\n \\\"],[1,[30,0,[\\\"setupWhisperChannel\\\"]]],[1,\\\"\\\\n \\\"],[1,[30,0,[\\\"setupEditChannel\\\"]]],[1,\\\"\\\\n \\\"],[1,[30,0,[\\\"notifyState\\\"]]],[1,\\\"\\\\n\\\\n\\\"],[41,[28,[32,0],[[30,0,[\\\"users\\\",\\\"length\\\"]],0],null],[[[1,\\\" \\\"],[10,0],[14,0,\\\"presence-users\\\"],[12],[1,\\\"\\\\n \\\"],[10,0],[14,0,\\\"presence-avatars\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[31,2],[[28,[31,2],[[30,0,[\\\"users\\\"]]],null]],null],null,[[[1,\\\" \\\"],[8,[32,1],null,[[\\\"@user\\\"],[[30,1]]],[[\\\"default\\\"],[[[[1,\\\"\\\\n \\\"],[1,[28,[32,2],[[30,1]],[[\\\"imageSize\\\"],[\\\"small\\\"]]]],[1,\\\"\\\\n \\\"]],[]]]]],[1,\\\"\\\\n\\\"]],[1]],null],[1,\\\" \\\"],[13],[1,\\\"\\\\n\\\\n \\\"],[10,1],[14,0,\\\"presence-text\\\"],[12],[1,\\\"\\\\n \\\"],[10,1],[14,0,\\\"description\\\"],[12],[41,[30,0,[\\\"isReply\\\"]],[[[1,[28,[32,3],[\\\"presence.replying\\\"],[[\\\"count\\\"],[[30,0,[\\\"users\\\",\\\"length\\\"]]]]]]],[]],[[[1,[28,[32,3],[\\\"presence.editing\\\"],[[\\\"count\\\"],[[30,0,[\\\"users\\\",\\\"length\\\"]]]]]]],[]]],[13],[1,\\\"\\\\n \\\"],[10,1],[14,0,\\\"wave\\\"],[12],[1,\\\"\\\\n \\\"],[10,1],[14,0,\\\"dot\\\"],[12],[1,\\\".\\\"],[13],[1,\\\"\\\\n \\\"],[10,1],[14,0,\\\"dot\\\"],[12],[1,\\\".\\\"],[13],[1,\\\"\\\\n \\\"],[10,1],[14,0,\\\"dot\\\"],[12],[1,\\\".\\\"],[13],[1,\\\"\\\\n \\\"],[13],[1,\\\"\\\\n \\\"],[13],[1,\\\"\\\\n \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null]],[]],null],[1,\\\" \\\"]],[\\\"user\\\"],false,[\\\"if\\\",\\\"each\\\",\\\"-track-array\\\"]]\",\n \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-presence/discourse/components/composer-presence-display.js\",\n \"scope\": () => [_truthHelpers.gt, _userLink.default, _avatar.default, _discourseI18n.i18n],\n \"isStrictMode\": true\n }), this))();\n }\n _exports.default = ComposerPresenceDisplay;\n});","define(\"discourse/plugins/discourse-presence/discourse/components/topic-presence-display\", [\"exports\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/service\", \"truth-helpers\", \"discourse/components/user-link\", \"discourse/helpers/avatar\", \"discourse/helpers/helper-fn\", \"discourse-i18n\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _tracking, _service, _truthHelpers, _userLink, _avatar, _helperFn, _discourseI18n, _component2, _templateFactory) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.default = void 0;\n class TopicPresenceDisplay extends _component.default {\n static #_ = (() => dt7948.g(this.prototype, \"presence\", [_service.service]))();\n #presence = (() => (dt7948.i(this, \"presence\"), void 0))();\n static #_2 = (() => dt7948.g(this.prototype, \"currentUser\", [_service.service]))();\n #currentUser = (() => (dt7948.i(this, \"currentUser\"), void 0))();\n static #_3 = (() => dt7948.g(this.prototype, \"replyChannel\", [_tracking.tracked]))();\n #replyChannel = (() => (dt7948.i(this, \"replyChannel\"), void 0))();\n static #_4 = (() => dt7948.g(this.prototype, \"whisperChannel\", [_tracking.tracked]))();\n #whisperChannel = (() => (dt7948.i(this, \"whisperChannel\"), void 0))();\n setupReplyChannel = (() => (0, _helperFn.default)((_, on) => {\n const {\n topic\n } = this.args;\n if (!topic) {\n return;\n }\n const name = `/discourse-presence/reply/${topic.id}`;\n const replyChannel = this.presence.getChannel(name);\n this.replyChannel = replyChannel;\n replyChannel.subscribe();\n on.cleanup(() => replyChannel.unsubscribe());\n }))();\n setupWhisperChannel = (() => (0, _helperFn.default)((_, on) => {\n const {\n topic\n } = this.args;\n const {\n whisperer\n } = this.currentUser;\n if (!topic || !whisperer) {\n return;\n }\n const name = `/discourse-presence/whisper/${topic.id}`;\n const whisperChannel = this.presence.getChannel(name);\n this.whisperChannel = whisperChannel;\n whisperChannel.subscribe();\n on.cleanup(() => whisperChannel.unsubscribe());\n }))();\n get users() {\n const replyUsers = this.replyChannel?.users || [];\n const whisperUsers = this.whisperChannel?.users || [];\n return [...replyUsers, ...whisperUsers].filter(u => u.id !== this.currentUser.id);\n }\n static #_5 = (() => dt7948.n(this.prototype, \"users\", [_tracking.cached]))();\n static #_6 = (() => (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n /*\n \n {{#if this.currentUser}}\n {{this.setupReplyChannel}}\n {{this.setupWhisperChannel}}\n \n {{#if (gt this.users.length 0)}}\n
\n
\n {{#each this.users as |user|}}\n \n {{avatar user imageSize=\"small\"}}\n \n {{/each}}\n
\n \n \n \n {{i18n \"presence.replying_to_topic\" count=this.users.length}}\n \n \n .\n .\n .\n \n \n
\n {{/if}}\n {{/if}}\n \n */\n {\n \"id\": \"EVHiquID\",\n \"block\": \"[[[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"currentUser\\\"]],[[[1,\\\" \\\"],[1,[30,0,[\\\"setupReplyChannel\\\"]]],[1,\\\"\\\\n \\\"],[1,[30,0,[\\\"setupWhisperChannel\\\"]]],[1,\\\"\\\\n\\\\n\\\"],[41,[28,[32,0],[[30,0,[\\\"users\\\",\\\"length\\\"]],0],null],[[[1,\\\" \\\"],[10,0],[14,0,\\\"presence-users\\\"],[12],[1,\\\"\\\\n \\\"],[10,0],[14,0,\\\"presence-avatars\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[31,2],[[28,[31,2],[[30,0,[\\\"users\\\"]]],null]],null],null,[[[1,\\\" \\\"],[8,[32,1],null,[[\\\"@user\\\"],[[30,1]]],[[\\\"default\\\"],[[[[1,\\\"\\\\n \\\"],[1,[28,[32,2],[[30,1]],[[\\\"imageSize\\\"],[\\\"small\\\"]]]],[1,\\\"\\\\n \\\"]],[]]]]],[1,\\\"\\\\n\\\"]],[1]],null],[1,\\\" \\\"],[13],[1,\\\"\\\\n\\\\n \\\"],[10,1],[14,0,\\\"presence-text\\\"],[12],[1,\\\"\\\\n \\\"],[10,1],[14,0,\\\"description\\\"],[12],[1,\\\"\\\\n \\\"],[1,[28,[32,3],[\\\"presence.replying_to_topic\\\"],[[\\\"count\\\"],[[30,0,[\\\"users\\\",\\\"length\\\"]]]]]],[1,\\\"\\\\n \\\"],[13],[1,\\\"\\\\n \\\"],[10,1],[14,0,\\\"wave\\\"],[12],[1,\\\"\\\\n \\\"],[10,1],[14,0,\\\"dot\\\"],[12],[1,\\\".\\\"],[13],[1,\\\"\\\\n \\\"],[10,1],[14,0,\\\"dot\\\"],[12],[1,\\\".\\\"],[13],[1,\\\"\\\\n \\\"],[10,1],[14,0,\\\"dot\\\"],[12],[1,\\\".\\\"],[13],[1,\\\"\\\\n \\\"],[13],[1,\\\"\\\\n \\\"],[13],[1,\\\"\\\\n \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null]],[]],null],[1,\\\" \\\"]],[\\\"user\\\"],false,[\\\"if\\\",\\\"each\\\",\\\"-track-array\\\"]]\",\n \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-presence/discourse/components/topic-presence-display.js\",\n \"scope\": () => [_truthHelpers.gt, _userLink.default, _avatar.default, _discourseI18n.i18n],\n \"isStrictMode\": true\n }), this))();\n }\n _exports.default = TopicPresenceDisplay;\n});","define(\"discourse/plugins/discourse-presence/discourse/connectors/before-composer-controls/presence\", [\"exports\", \"discourse/plugins/discourse-presence/discourse/components/composer-presence-display\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _composerPresenceDisplay, _component, _templateFactory, _templateOnly) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.default = void 0;\n const Presence = (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n /*\n \n
\n \n
\n \n */\n {\n \"id\": \"ic5m4qg5\",\n \"block\": \"[[[1,\\\"\\\\n \\\"],[10,0],[14,0,\\\"before-composer-controls-outlet presence\\\"],[12],[1,\\\"\\\\n \\\"],[8,[32,0],null,[[\\\"@model\\\"],[[30,1,[\\\"model\\\"]]]],null],[1,\\\"\\\\n \\\"],[13],[1,\\\"\\\\n\\\"]],[\\\"@outletArgs\\\"],false,[]]\",\n \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-presence/discourse/connectors/before-composer-controls/presence.js\",\n \"scope\": () => [_composerPresenceDisplay.default],\n \"isStrictMode\": true\n }), (0, _templateOnly.default)(undefined, \"presence:Presence\"));\n var _default = _exports.default = Presence;\n});","define(\"discourse/plugins/discourse-presence/discourse/connectors/topic-above-footer-buttons/presence\", [\"exports\", \"discourse/plugins/discourse-presence/discourse/components/topic-presence-display\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _topicPresenceDisplay, _component, _templateFactory, _templateOnly) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.default = void 0;\n const Presence = (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n /*\n \n \n \n */\n {\n \"id\": \"cMRyU8Bw\",\n \"block\": \"[[[1,\\\"\\\\n \\\"],[10,0],[14,0,\\\"topic-above-footer-buttons-outlet presence\\\"],[12],[1,\\\"\\\\n \\\"],[8,[32,0],null,[[\\\"@topic\\\"],[[30,1,[\\\"model\\\"]]]],null],[1,\\\"\\\\n \\\"],[13],[1,\\\"\\\\n\\\"]],[\\\"@outletArgs\\\"],false,[]]\",\n \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-presence/discourse/connectors/topic-above-footer-buttons/presence.js\",\n \"scope\": () => [_topicPresenceDisplay.default],\n \"isStrictMode\": true\n }), (0, _templateOnly.default)(undefined, \"presence:Presence\"));\n var _default = _exports.default = Presence;\n});","define(\"discourse/plugins/discourse-presence/discourse/services/composer-presence-manager\", [\"exports\", \"@ember/runloop\", \"@ember/service\", \"discourse/lib/environment\"], function (_exports, _runloop, _service, _environment) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.default = void 0;\n const KEEP_ALIVE = 10 * 1000; // 10 seconds\n\n class ComposerPresenceManager extends _service.default {\n static #_ = (() => dt7948.g(this.prototype, \"currentUser\", [_service.service]))();\n #currentUser = (() => (dt7948.i(this, \"currentUser\"), void 0))();\n static #_2 = (() => dt7948.g(this.prototype, \"presence\", [_service.service]))();\n #presence = (() => (dt7948.i(this, \"presence\"), void 0))();\n static #_3 = (() => dt7948.g(this.prototype, \"siteSettings\", [_service.service]))();\n #siteSettings = (() => (dt7948.i(this, \"siteSettings\"), void 0))();\n notifyState(name) {\n let replying = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n let keepAlive = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : KEEP_ALIVE;\n if (!replying) {\n this.leave();\n return;\n }\n const canHideProfile = this.siteSettings.allow_users_to_hide_profile;\n const isHidingPresence = this.currentUser.user_option.hide_presence;\n if (canHideProfile && isHidingPresence) {\n return;\n }\n if (this._name !== name) {\n this.leave();\n this._name = name;\n this._channel = this.presence.getChannel(name);\n this._channel.enter();\n if (!(0, _environment.isTesting)()) {\n this._autoLeaveTimer = (0, _runloop.debounce)(this, this.leave, keepAlive);\n }\n }\n }\n leave() {\n if (this._autoLeaveTimer) {\n (0, _runloop.cancel)(this._autoLeaveTimer);\n this._autoLeaveTimer = null;\n }\n this._channel?.leave();\n this._channel = null;\n this._name = null;\n }\n }\n _exports.default = ComposerPresenceManager;\n});"],"mappings":"AAAAA,OAAA,6UAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GACA;AAEAC,OAAAC,eAAAZ,EAAA,cACAa,OAAA,IAEAb,EAAAc,aAAA;AACA,MAAAC,UAAAd,EAAAa,QACAE,SAAA,KAAAC,OAAAC,EAAAC,KAAAC,UAAA,YAAAjB,EAAAkB,UAAA;AACAC,GAAA,MAAAL,OAAAM,EAAAJ,KAAA;AACAH,SAAA,KAAAC,OAAAC,EAAAC,KAAAC,UAAA,2BAAAjB,EAAAkB,UAAA;AACAG,GAAA,MAAAP,OAAAM,EAAAJ,KAAA;AACAH,SAAA,KAAAC,OAAAC,EAAAC,KAAAC,UAAA,eAAAjB,EAAAkB,UAAA;AACAI,GAAA,MAAAR,OAAAM,EAAAJ,KAAA;AACAH,SAAA,KAAAC,OAAAC,EAAAC,KAAAC,UAAA,gBAAAjB,EAAAkB,UAAA;AACAK,GAAA,MAAAT,OAAAM,EAAAJ,KAAA;AACAH,SAAA,KAAAC,OAAAC,EAAAC,KAAAC,UAAA,gBAAAlB,EAAAyB,UAAA;AACAC,GAAA,MAAAX,OAAAM,EAAAJ,KAAA;AACAH,SAAA,KAAAC,OAAAC,EAAAC,KAAAC,UAAA,kBAAAlB,EAAAyB,UAAA;AACAE,GAAA,MAAAZ,OAAAM,EAAAJ,KAAA;AACAH,SAAA,KAAAC,OAAAC,EAAAC,KAAAC,UAAA,eAAAlB,EAAAyB,UAAA;AACAG,GAAA,MAAAb,OAAAM,EAAAJ,KAAA;AACAY,kBAAA,QAAAxB,EAAAO,SAAA,CAAAkB,EAAAC,KACA,MAAAC,MACAA,GACAf,KAAAgB,KAAAC;AACA,IAAAF,IAAAf,KAAAkB,QACA;AAEA,MAAAC,EAAA,6BAAAJ,EAAAK,KACAX,EAAAT,KAAAG,SAAAkB,WAAAF;AACAnB,KAAAS,eACAA,EAAAa,YACAR,EAAAS,QAAA,IAAAd,EAAAe,iBAXA;AAaAC,oBAAA,QAAArC,EAAAO,SAAA,CAAAkB,EAAAC,KACA,MAAAC,MACAA,GACAf,KAAAgB,KAAAC,OACAS,UACAA,GACA1B,KAAAM;AACA,IAAAS,IAAAf,KAAAkB,UAAAQ,EACA;AAEA,MAAAP,EAAA,+BAAAJ,EAAAK,KACAV,EAAAV,KAAAG,SAAAkB,WAAAF;AACAnB,KAAAU,iBACAA,EAAAY,YACAR,EAAAS,QAAA,IAAAb,EAAAc,iBAdA;AAgBAG,iBAAA,QAAAvC,EAAAO,SAAA,CAAAkB,EAAAC,KACA,MAAAc,KACAA,GACA5B,KAAAgB,KAAAC;AACA,IAAAW,IAAA5B,KAAA6B,OACA;AAEA,MAAAV,EAAA,4BAAAS,EAAAR,KACAT,EAAAX,KAAAG,SAAAkB,WAAAF;AACAnB,KAAAW,cACAA,EAAAW,YACAR,EAAAS,QAAA,IAAAZ,EAAAa,iBAXA;AAaAM,YAAA,QAAA1C,EAAAO,SAAA,CAAAkB,EAAAC,KACA,MAAAC,MACAA,EAAAa,KACAA,EAAAG,WACAA,GACA/B,KAAAgB,KAAAC,MACAe,EAAAhC,KAAA6B,OAAAD,EAAAb;AACA,GAAAiB,EAAA,CACA,MAAAb,EAAA,uBAAAnB,KAAAiC,SAAAD,EAAAZ;AACApB,KAAAK,wBAAAyB,YAAAX,EAAAY,EACA,CACAjB,EAAAS,QAAA,IAAAvB,KAAAK,wBAAA6B,WAXA;AAaA,WAAAhB,GACA,gBAAAlB,KAAAiC,OAAA,YAAAjC,KAAAiC,KACA,CACA,UAAAJ,GACA,eAAA7B,KAAAiC,KACA,CACA,SAAAA,GACA,MAAAE,YACAA,EAAAC,QACAA,EAAAC,gBACAA,GACArC,KAAAgB,KAAAC;AACA,OAAAkB,EACA,OACAC,EACA,UACAC,EACA,aADA,CAGA,CACAxC,SAAA,KAAAC,OAAAwC,EAAAtC,KAAAC,UAAA,SAAAlB,EAAAwD,SAAA;AACA,SAAAC,GACA,IAAAA;AACA,GAAAxC,KAAA6B,OACAW,EAAAxC,KAAAW,aAAA6B,OAAA;IACA,CAGAA,EAAA,IAFAxC,KAAAS,cAAA+B,OAAA,MACAxC,KAAAU,gBAAA8B,OAAA,GAEA,CACA,OAAAA,EAAAC,OAAAC,KAAAtB,KAAApB,KAAAM,YAAAc,IAAAuB,MAAA,EAAA3C,KAAAO,aAAAqC,yBACA,CACA/C,SAAA,KAAAC,OAAAwC,EAAAtC,KAAAC,UAAA,SAAAlB,EAAAwD,SAAA;AACA1C,SAAA,QAAAP,EAAAuD,uBAAA,EAAAtD,EAAAuD,uBAsCA,CACA1B,GAAA,WACA2B,MAAA,u4CACAC,WAAA,6IACAC,MAAA,KAAAhE,EAAAiE,GAAAhE,EAAAS,QAAAR,EAAAQ,QAAAN,EAAA8D,MACAC,cAAA,IACApD,MA5CA,GA8CAnB,EAAAc,QAAAC,C,GC5JAhB,OAAA,0UAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GACA;AAEAC,OAAAC,eAAAZ,EAAA,cACAa,OAAA,IAEAb,EAAAc,aAAA;AACA,MAAA0D,UAAAvE,EAAAa,QACAE,SAAA,KAAAC,OAAAC,EAAAC,KAAAC,UAAA,YAAAjB,EAAAkB,UAAA;AACAC,GAAA,MAAAL,OAAAM,EAAAJ,KAAA;AACAH,SAAA,KAAAC,OAAAC,EAAAC,KAAAC,UAAA,eAAAjB,EAAAkB,UAAA;AACAI,GAAA,MAAAR,OAAAM,EAAAJ,KAAA;AACAH,SAAA,KAAAC,OAAAC,EAAAC,KAAAC,UAAA,gBAAAlB,EAAAyB,UAAA;AACAC,GAAA,MAAAX,OAAAM,EAAAJ,KAAA;AACAH,SAAA,KAAAC,OAAAC,EAAAC,KAAAC,UAAA,kBAAAlB,EAAAyB,UAAA;AACAE,GAAA,MAAAZ,OAAAM,EAAAJ,KAAA;AACAY,kBAAA,QAAAxB,EAAAO,SAAA,CAAAkB,EAAAC,KACA,MAAAC,MACAA,GACAf,KAAAgB;AACA,IAAAD,EACA;AAEA,MAAAI,EAAA,6BAAAJ,EAAAK,KACAX,EAAAT,KAAAG,SAAAkB,WAAAF;AACAnB,KAAAS,eACAA,EAAAa,YACAR,EAAAS,QAAA,IAAAd,EAAAe,iBAXA;AAaAC,oBAAA,QAAArC,EAAAO,SAAA,CAAAkB,EAAAC,KACA,MAAAC,MACAA,GACAf,KAAAgB,MACAU,UACAA,GACA1B,KAAAM;AACA,IAAAS,IAAAW,EACA;AAEA,MAAAP,EAAA,+BAAAJ,EAAAK,KACAV,EAAAV,KAAAG,SAAAkB,WAAAF;AACAnB,KAAAU,iBACAA,EAAAY,YACAR,EAAAS,QAAA,IAAAb,EAAAc,iBAdA;AAgBA,SAAAgB,GAGA,UAFAxC,KAAAS,cAAA+B,OAAA,MACAxC,KAAAU,gBAAA8B,OAAA,IACAC,OAAAC,KAAAtB,KAAApB,KAAAM,YAAAc,GACA,CACAvB,SAAA,KAAAC,OAAAwC,EAAAtC,KAAAC,UAAA,SAAAlB,EAAAwD,SAAA;AACA1C,SAAA,QAAAP,EAAAuD,uBAAA,EAAAtD,EAAAuD,uBAgCA,CACA1B,GAAA,WACA2B,MAAA,gvCACAC,WAAA,0IACAC,MAAA,KAAAhE,EAAAiE,GAAAhE,EAAAS,QAAAR,EAAAQ,QAAAN,EAAA8D,MACAC,cAAA,IACApD,MAtCA,GAwCAnB,EAAAc,QAAA0D,C,GC3FAzE,OAAA,uRAAAC,EAAAyE,EAAAxE,EAAAS,EAAAgE,GACA;AAEA/D,OAAAC,eAAAZ,EAAA,cACAa,OAAA,IAEAb,EAAAc,aAAA;AACA,MAAA6D,GAAA,EAAA1E,EAAA+D,uBAAA,EAAAtD,EAAAuD,uBAQA,CACA1B,GAAA,WACA2B,MAAA,uMACAC,WAAA,qJACAC,MAAA,KAAAK,EAAA3D,SACAyD,cAAA,KACA,EAAAG,EAAA5D,cAAA8D,EAAA;AACA5E,EAAAc,QAAA6D,C,GCtBA5E,OAAA,sRAAAC,EAAA6E,EAAA5E,EAAAS,EAAAgE,GACA;AAEA/D,OAAAC,eAAAZ,EAAA,cACAa,OAAA,IAEAb,EAAAc,aAAA;AACA,MAAA6D,GAAA,EAAA1E,EAAA+D,uBAAA,EAAAtD,EAAAuD,uBAQA,CACA1B,GAAA,WACA2B,MAAA,yMACAC,WAAA,uJACAC,MAAA,KAAAS,EAAA/D,SACAyD,cAAA,KACA,EAAAG,EAAA5D,cAAA8D,EAAA;AACA5E,EAAAc,QAAA6D,C,GCtBA5E,OAAA,uKAAAC,EAAA8E,EAAA3E,EAAA4E,GACA;AAEApE,OAAAC,eAAAZ,EAAA,cACAa,OAAA,IAEAb,EAAAc,aAAA;AAGA,MAAAkE,UAAA7E,EAAAW,QACAE,SAAA,KAAAC,OAAAC,EAAAC,KAAAC,UAAA,eAAAjB,EAAAkB,UAAA;AACAI,GAAA,MAAAR,OAAAM,EAAAJ,KAAA;AACAH,SAAA,KAAAC,OAAAC,EAAAC,KAAAC,UAAA,YAAAjB,EAAAkB,UAAA;AACAC,GAAA,MAAAL,OAAAM,EAAAJ,KAAA;AACAH,SAAA,KAAAC,OAAAC,EAAAC,KAAAC,UAAA,gBAAAjB,EAAAkB,UAAA;AACAK,GAAA,MAAAT,OAAAM,EAAAJ,KAAA;AACA,WAAA8B,CAAAX,GACA,IACA2C,EAAAC,UAAAC,OAAA,QAAAP,IAAAM,UAAA,GAAAA,UAAA,GAXA;AAYA,OAFAA,UAAAC,OAAA,QAAAP,IAAAM,UAAA,KAAAA,UAAA,IAIA,YADA/D,KAAAkC;AAGA,MAAA+B,EAAAjE,KAAAO,aAAA2D,4BACAC,EAAAnE,KAAAM,YAAA8D,YAAAC;AACAJ,GAAAE,GAGAnE,KAAAsE,QAAAnD,IACAnB,KAAAkC,QACAlC,KAAAsE,MAAAnD,EACAnB,KAAAuE,SAAAvE,KAAAG,SAAAkB,WAAAF,GACAnB,KAAAuE,SAAAC,SACA,EAAAZ,EAAAa,eACAzE,KAAA0E,iBAAA,EAAAf,EAAAgB,UAAA3E,UAAAkC,MAAA4B,IAGA,CACA,KAAA5B,GACAlC,KAAA0E,mBACA,EAAAf,EAAAiB,QAAA5E,KAAA0E,iBACA1E,KAAA0E,gBAAA,MAEA1E,KAAAuE,UAAArC,QACAlC,KAAAuE,SAAA,KACAvE,KAAAsE,MAAA,IACA,EAEAzF,EAAAc,QAAAkE,C","ignoreList":[]}