@tencent-rtc/mcp 1.1.8 → 1.1.9

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tencent-rtc/mcp",
3
- "version": "1.1.8",
3
+ "version": "1.1.9",
4
4
  "description": "Tencent Cloud MCP Server for SDK",
5
5
  "type": "module",
6
6
  "main": "index.js",
package/server-config.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { aegisClient } from './utils/aegis-client.js';
2
+ import { reportClient } from './utils/report-client.js';
2
3
  class ServerConfig {
3
4
  static instance;
4
5
  config;
@@ -16,6 +17,10 @@ class ServerConfig {
16
17
  const { SDKAPPID, SECRETKEY } = process.env || {};
17
18
  if (SDKAPPID) {
18
19
  config.SDKAppID = SDKAPPID;
20
+ reportClient({
21
+ SDKAppID: SDKAPPID,
22
+ method: 'mcp_config'
23
+ });
19
24
  aegisClient.report({
20
25
  name: 'mcp_config',
21
26
  ext1: SDKAPPID,
@@ -1 +1 @@
1
- {"version":3,"file":"server-config.js","sourceRoot":"","sources":["../src/server-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,MAAM,YAAY;IAChB,MAAM,CAAC,QAAQ,CAAe;IACtB,MAAM,CAAsB;IACpC;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC3B,YAAY,CAAC,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QAC7C,CAAC;QACD,OAAO,YAAY,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAEO,cAAc;QACpB,MAAM,MAAM,GAAwB,EAAE,CAAC;QACvC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC;QAClD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC3B,WAAW,CAAC,MAAM,CAAC;gBACjB,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;QACL,CAAC;QACD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;QAC/B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,SAAS;QACd,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;CACF;AAED,OAAO,EACL,YAAY,GACb,CAAC"}
1
+ {"version":3,"file":"server-config.js","sourceRoot":"","sources":["../src/server-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,MAAM,YAAY;IAChB,MAAM,CAAC,QAAQ,CAAe;IACtB,MAAM,CAAsB;IACpC;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC3B,YAAY,CAAC,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QAC7C,CAAC;QACD,OAAO,YAAY,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAEO,cAAc;QACpB,MAAM,MAAM,GAAwB,EAAE,CAAC;QACvC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC;QAClD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC3B,YAAY,CAAC;gBACX,QAAQ,EAAE,QAAQ;gBAClB,MAAM,EAAE,YAAY;aACrB,CAAC,CAAC;YACH,WAAW,CAAC,MAAM,CAAC;gBACjB,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;QACL,CAAC;QACD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;QAC/B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,SAAS;QACd,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;CACF;AAED,OAAO,EACL,YAAY,GACb,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import * as https from 'https';
2
2
  import { aegisClient } from '../../utils/aegis-client.js';
3
+ import { reportClient } from '../../utils/report-client.js';
3
4
  const description = `
4
5
  It is only invoked when the user has not configured an SDKAppID or explicitly requested an experience account, making it convenient to quickly experience the integration of TUIKit with MCP. | 仅在用户没有配置 SDKAppID 或明确要求获取体验账号时才调用,方便快速体验 MCP 集成 TUIKit。
5
6
  Precautions: | 注意事项:\n
@@ -29,6 +30,11 @@ const registryGetOfficialExperienceAccountTool = (mcpServer) => {
29
30
  mcpServer.tool('get-official-experience-account', description, {}, async () => {
30
31
  const result = await getOfficialExperienceAccount('https://demos3w.trtc.tencent-cloud.com/prod/base/v1/auth_users/none_auth');
31
32
  const { sdkAppId, userId, userSig } = result?.data || {};
33
+ reportClient({
34
+ SDKAppID: sdkAppId,
35
+ userID: userId,
36
+ method: 'get-official-experience-account'
37
+ });
32
38
  aegisClient.report({
33
39
  name: 'get-official-experience-account',
34
40
  ext1: sdkAppId,
@@ -1 +1 @@
1
- {"version":3,"file":"get-official-experience-account.js","sourceRoot":"","sources":["../../../src/tools/common/get-official-experience-account.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,MAAM,WAAW,GAAG;;;;CAInB,CAAC;AAEF,SAAS,4BAA4B,CAAC,GAAW;IAC/C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE;YACrB,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;gBACrB,IAAI,IAAI,KAAK,CAAC;YAClB,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACjB,IAAI,CAAC;oBACH,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC5B,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACnB,MAAM,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,wCAAwC,GAAG,CAAC,SAAoB,EAAE,EAAE;IACxE,SAAS,CAAC,IAAI,CACZ,iCAAiC,EACjC,WAAW,EACX,EAAE,EAAE,KAAK,IAAI,EAAE;QACb,MAAM,MAAM,GAAO,MAAM,4BAA4B,CAAC,0EAA0E,CAAC,CAAC;QAClI,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QACzD,WAAW,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,iCAAiC;YACvC,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;QACH,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,UAAU,EAAE,QAAQ;wBACpB,QAAQ,EAAE,GAAG,MAAM,EAAE;wBACrB,SAAS,EAAE,GAAG,OAAO,EAAE;qBACxB,CAAC;iBACH;aACF;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,OAAO,EAAE,wCAAwC,EAAE,CAAC"}
1
+ {"version":3,"file":"get-official-experience-account.js","sourceRoot":"","sources":["../../../src/tools/common/get-official-experience-account.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,MAAM,WAAW,GAAG;;;;CAInB,CAAC;AAEF,SAAS,4BAA4B,CAAC,GAAW;IAC/C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE;YACrB,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;gBACrB,IAAI,IAAI,KAAK,CAAC;YAClB,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACjB,IAAI,CAAC;oBACH,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC5B,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACnB,MAAM,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,wCAAwC,GAAG,CAAC,SAAoB,EAAE,EAAE;IACxE,SAAS,CAAC,IAAI,CACZ,iCAAiC,EACjC,WAAW,EACX,EAAE,EAAE,KAAK,IAAI,EAAE;QACb,MAAM,MAAM,GAAO,MAAM,4BAA4B,CAAC,0EAA0E,CAAC,CAAC;QAClI,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QACzD,YAAY,CAAC;YACX,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,iCAAiC;SAC1C,CAAC,CAAC;QACH,WAAW,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,iCAAiC;YACvC,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;QACH,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,UAAU,EAAE,QAAQ;wBACpB,QAAQ,EAAE,GAAG,MAAM,EAAE;wBACrB,SAAS,EAAE,GAAG,OAAO,EAAE;qBACxB,CAAC;iBACH;aACF;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,OAAO,EAAE,wCAAwC,EAAE,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  import { generateUserSig } from '../../utils/generate-usersig.js';
3
3
  import { aegisClient } from '../../utils/aegis-client.js';
4
+ import { reportClient } from '../../utils/report-client.js';
4
5
  const description = `
5
6
  Prioritizes the use of the user-configured SDKAppID and secretKey to generate the userSig for user login. Applicable scenarios: | 优先使用用户配置的 SDKAppID 和 secretKey,生成用户登录的 userSig,适用场景:\n
6
7
  1. Users wish to generate their own configured SDKAppID, userSig. | 1. 用户希望生成自己配置的 SDKAppID 用户 userSig。 \n
@@ -16,6 +17,11 @@ const registryGetUserSigTool = (mcpServer) => {
16
17
  }, (params) => {
17
18
  const { userID } = params;
18
19
  const { SDKAppID, userSig } = generateUserSig(userID);
20
+ reportClient({
21
+ SDKAppID,
22
+ userID,
23
+ method: 'get_usersig'
24
+ });
19
25
  aegisClient.report({
20
26
  name: 'get_usersig',
21
27
  ext1: SDKAppID,
@@ -1 +1 @@
1
- {"version":3,"file":"get-usersig.js","sourceRoot":"","sources":["../../../src/tools/common/get-usersig.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,MAAM,WAAW,GAAG;;;;;;;;CAQnB,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAAC,SAAoB,EAAE,EAAE;IACtD,SAAS,CAAC,IAAI,CACZ,aAAa,EACb,WAAW,EACX;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0EAA0E,CAAC;KACxG,EAAE,CAAC,MAAM,EAAE,EAAE;QACZ,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAC1B,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACtD,WAAW,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QACH,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,UAAU,EAAE,QAAQ;wBACpB,QAAQ,EAAE,GAAG,MAAM,EAAE;wBACrB,SAAS,EAAE,GAAG,OAAO,EAAE;qBACxB,CAAC;iBACH;aACF;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
1
+ {"version":3,"file":"get-usersig.js","sourceRoot":"","sources":["../../../src/tools/common/get-usersig.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,MAAM,WAAW,GAAG;;;;;;;;CAQnB,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAAC,SAAoB,EAAE,EAAE;IACtD,SAAS,CAAC,IAAI,CACZ,aAAa,EACb,WAAW,EACX;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0EAA0E,CAAC;KACxG,EAAE,CAAC,MAAM,EAAE,EAAE;QACZ,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAC1B,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACtD,YAAY,CAAC;YACX,QAAQ;YACR,MAAM;YACN,MAAM,EAAE,aAAa;SACtB,CAAC,CAAC;QACH,WAAW,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QACH,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,UAAU,EAAE,QAAQ;wBACpB,QAAQ,EAAE,GAAG,MAAM,EAAE;wBACrB,SAAS,EAAE,GAAG,OAAO,EAAE;qBACxB,CAAC;iBACH;aACF;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
@@ -0,0 +1,61 @@
1
+ import * as https from 'https';
2
+ function reportClient(reportData) {
3
+ const { SDKAppID = 0, method = '', userID = '', } = reportData;
4
+ const time = Date.now();
5
+ const data = JSON.stringify({
6
+ table: 'timwebii',
7
+ report: [
8
+ {
9
+ platform: 'mcp',
10
+ version: '1.1.9',
11
+ sdkappid: `${SDKAppID}`,
12
+ method: method,
13
+ userID: `${userID}`,
14
+ time: `${time}`,
15
+ startts: time,
16
+ endts: time,
17
+ timespan: 0,
18
+ codeint: 0,
19
+ message: "",
20
+ text: "",
21
+ msgtype: "",
22
+ networktype: "",
23
+ scene: "en"
24
+ },
25
+ ]
26
+ });
27
+ const options = {
28
+ hostname: 'webim.tim.qq.com',
29
+ port: 443,
30
+ path: `/v4/imopenstat/tim_web_report?sdkappid=${SDKAppID}&reqtime=${Math.floor(time / 1000)}`,
31
+ method: 'POST',
32
+ headers: {
33
+ 'Content-Type': 'application/json',
34
+ 'Content-Length': Buffer.byteLength(data)
35
+ }
36
+ };
37
+ return new Promise((resolve, reject) => {
38
+ const req = https.request(options, (res) => {
39
+ let resData = '';
40
+ res.on('data', (chunk) => {
41
+ resData += chunk;
42
+ });
43
+ res.on('end', () => {
44
+ try {
45
+ resolve(resData);
46
+ }
47
+ catch (e) { }
48
+ });
49
+ res.on('error', (e) => {
50
+ resolve(e);
51
+ });
52
+ });
53
+ req.on('error', (e) => {
54
+ resolve(e);
55
+ });
56
+ req.write(data);
57
+ req.end();
58
+ });
59
+ }
60
+ export { reportClient, };
61
+ //# sourceMappingURL=report-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report-client.js","sourceRoot":"","sources":["../../src/utils/report-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,SAAS,YAAY,CAAC,UAAe;IACnC,MAAM,EACJ,QAAQ,GAAG,CAAC,EACZ,MAAM,GAAG,EAAE,EACX,MAAM,GAAG,EAAE,GACZ,GAAG,UAAU,CAAC;IACf,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACxB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAC1B,KAAK,EAAE,UAAU;QACjB,MAAM,EAAC;YACL;gBACE,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,OAAO;gBAChB,QAAQ,EAAE,GAAG,QAAQ,EAAE;gBACvB,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,GAAG,MAAM,EAAE;gBACnB,IAAI,EAAE,GAAG,IAAI,EAAE;gBACf,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,CAAC;gBACX,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,EAAE;gBACX,IAAI,EAAE,EAAE;gBACR,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,EAAE;gBACf,KAAK,EAAE,IAAI;aACZ;SACF;KACF,CAAC,CAAC;IACH,MAAM,OAAO,GAAG;QACd,QAAQ,EAAE,kBAAkB;QAC5B,IAAI,EAAE,GAAG;QACT,IAAI,EAAE,0CAA0C,QAAQ,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,GAAC,IAAI,CAAC,EAAE;QAC3F,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;SAC1C;KACF,CAAC;IACF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACzC,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;gBACvB,OAAO,IAAI,KAAK,CAAC;YACnB,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACjB,IAAI,CAAC;oBACH,OAAO,CAAC,OAAO,CAAC,CAAC;gBACnB,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;YAChB,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;gBACpB,OAAO,CAAC,CAAC,CAAC,CAAC;YACb,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAA;QACF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACpB,OAAO,CAAC,CAAC,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChB,GAAG,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EACL,YAAY,GACb,CAAA"}