@smg-automotive/auth 7.1.0-auth0-update-tweaks.6 → 7.1.0-auth0-update-tweaks.7

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.
@@ -1,7 +1,6 @@
1
1
  'use strict';
2
2
 
3
3
  var server = require('@auth0/nextjs-auth0/server');
4
- var redisSessionStore = require('./redisSessionStore.js');
5
4
  var onCallbackFactory = require('./hooks/onCallbackFactory.js');
6
5
  var beforeSessionSavedFactory = require('./hooks/beforeSessionSavedFactory.js');
7
6
  var auth0 = require('../config/auth0.js');
@@ -18,22 +17,21 @@ const getAuth0Instance = ({ protocol, host, isProxied, onError, }) => {
18
17
  }
19
18
  const auth0Config = auth0.getAuth0Config({ isProxied });
20
19
  const appBaseUrl = `${protocol}://${host}`;
21
- let sessionStore;
22
- if (process.env.AUTH0_CUSTOM_REDIS_URL && process.env.AUTH0_SESSION_NAME) {
23
- // eslint-disable-next-line no-console
24
- console.info('[Auth-package] Creating Redis Session Sore');
25
- sessionStore = new redisSessionStore.RedisSessionStore({
26
- prefix: `${process.env.AUTH0_SESSION_NAME}:`,
27
- ttlSeconds: auth0Config.sessionDuration,
28
- redisUrl: process.env.AUTH0_CUSTOM_REDIS_URL,
29
- });
30
- }
31
- else {
32
- // eslint-disable-next-line no-console
33
- console.info('[Auth-package] Using cookies to store session');
34
- }
20
+ // let sessionStore;
21
+ // if (process.env.AUTH0_CUSTOM_REDIS_URL && process.env.AUTH0_SESSION_NAME) {
22
+ // // eslint-disable-next-line no-console
23
+ // console.info('[Auth-package] Creating Redis Session Sore');
24
+ // sessionStore = new RedisSessionStore({
25
+ // prefix: `${process.env.AUTH0_SESSION_NAME}:`,
26
+ // ttlSeconds: auth0Config.sessionDuration,
27
+ // redisUrl: process.env.AUTH0_CUSTOM_REDIS_URL,
28
+ // });
29
+ // } else {
30
+ // // eslint-disable-next-line no-console
31
+ // console.info('[Auth-package] Using cookies to store session');
32
+ // }
35
33
  const newInstance = new server.Auth0Client({
36
- sessionStore,
34
+ // sessionStore,
37
35
  appBaseUrl,
38
36
  routes: {
39
37
  login: auth0Config.loginEndpoint,
@@ -1 +1 @@
1
- {"version":3,"file":"getAuth0Instance.js","sources":["../../../../src/server/getAuth0Instance.ts"],"sourcesContent":[null],"names":["getAuth0Config","RedisSessionStore","Auth0Client","beforeSessionSavedFactory","onCallbackFactory"],"mappings":";;;;;;;;AAQA,MAAM,SAAS,GAAmB,EAAE;AAQpC,MAAM,gBAAgB,GAAG,CAAC,EACxB,IAAI,EACJ,SAAS,EACT,QAAQ,GACgB,KAAI;AAC5B,IAAA,OAAO,GAAG,QAAQ,CAAA,CAAA,EAAI,IAAI,CAAA,WAAA,EAAc,SAAS,EAAE;AACrD,CAAC;AAEM,MAAM,gBAAgB,GAAG,CAAC,EAC/B,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,OAAO,GAGR,KAAiB;AAChB,IAAA,MAAM,GAAG,GAAG,gBAAgB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AAC3D,IAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC;IAC/B,IAAI,QAAQ,EAAE;AACZ,QAAA,OAAO,QAAQ;IACjB;IAEA,MAAM,WAAW,GAAGA,oBAAc,CAAC,EAAE,SAAS,EAAE,CAAC;AACjD,IAAA,MAAM,UAAU,GAAG,CAAA,EAAG,QAAQ,CAAA,GAAA,EAAM,IAAI,EAAE;AAC1C,IAAA,IAAI,YAAY;AAChB,IAAA,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE;;AAExE,QAAA,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC;QAC1D,YAAY,GAAG,IAAIC,mCAAiB,CAAC;AACnC,YAAA,MAAM,EAAE,CAAA,EAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAA,CAAA,CAAG;YAC5C,UAAU,EAAE,WAAW,CAAC,eAAe;AACvC,YAAA,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB;AAC7C,SAAA,CAAC;IACJ;SAAO;;AAEL,QAAA,OAAO,CAAC,IAAI,CAAC,+CAA+C,CAAC;IAC/D;AAEA,IAAA,MAAM,WAAW,GAAG,IAAIC,kBAAW,CAAC;QAClC,YAAY;QACZ,UAAU;AACV,QAAA,MAAM,EAAE;YACN,KAAK,EAAE,WAAW,CAAC,aAAa;YAChC,MAAM,EAAE,WAAW,CAAC,cAAc;YAClC,QAAQ,EAAE,WAAW,CAAC,gBAAgB;AACvC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,MAAM,EAAE;gBACN,IAAI,EAAE,WAAW,CAAC,iBAAiB;AACpC,aAAA;AACF,SAAA;AACD,QAAA,uBAAuB,EAAE;YACvB,KAAK,EAAE,WAAW,CAAC,MAAM;YACzB,QAAQ,EAAE,WAAW,CAAC,QAAQ;AAC/B,SAAA;AACD,QAAA,yBAAyB,EAAE,KAAK;AAChC,QAAA,kBAAkB,EAAEC,mDAAyB,CAAC,WAAW,CAAC;QAC1D,UAAU,EAAEC,mCAAiB,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACpE,KAAA,CAAC;AACF,IAAA,SAAS,CAAC,GAAG,CAAC,GAAG,WAAW;AAC5B,IAAA,OAAO,WAAW;AACpB;;;;"}
1
+ {"version":3,"file":"getAuth0Instance.js","sources":["../../../../src/server/getAuth0Instance.ts"],"sourcesContent":[null],"names":["getAuth0Config","Auth0Client","beforeSessionSavedFactory","onCallbackFactory"],"mappings":";;;;;;;AAQA,MAAM,SAAS,GAAmB,EAAE;AAQpC,MAAM,gBAAgB,GAAG,CAAC,EACxB,IAAI,EACJ,SAAS,EACT,QAAQ,GACgB,KAAI;AAC5B,IAAA,OAAO,GAAG,QAAQ,CAAA,CAAA,EAAI,IAAI,CAAA,WAAA,EAAc,SAAS,EAAE;AACrD,CAAC;AAEM,MAAM,gBAAgB,GAAG,CAAC,EAC/B,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,OAAO,GAGR,KAAiB;AAChB,IAAA,MAAM,GAAG,GAAG,gBAAgB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AAC3D,IAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC;IAC/B,IAAI,QAAQ,EAAE;AACZ,QAAA,OAAO,QAAQ;IACjB;IAEA,MAAM,WAAW,GAAGA,oBAAc,CAAC,EAAE,SAAS,EAAE,CAAC;AACjD,IAAA,MAAM,UAAU,GAAG,CAAA,EAAG,QAAQ,CAAA,GAAA,EAAM,IAAI,EAAE;;;;;;;;;;;;;;AAe1C,IAAA,MAAM,WAAW,GAAG,IAAIC,kBAAW,CAAC;;QAElC,UAAU;AACV,QAAA,MAAM,EAAE;YACN,KAAK,EAAE,WAAW,CAAC,aAAa;YAChC,MAAM,EAAE,WAAW,CAAC,cAAc;YAClC,QAAQ,EAAE,WAAW,CAAC,gBAAgB;AACvC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,MAAM,EAAE;gBACN,IAAI,EAAE,WAAW,CAAC,iBAAiB;AACpC,aAAA;AACF,SAAA;AACD,QAAA,uBAAuB,EAAE;YACvB,KAAK,EAAE,WAAW,CAAC,MAAM;YACzB,QAAQ,EAAE,WAAW,CAAC,QAAQ;AAC/B,SAAA;AACD,QAAA,yBAAyB,EAAE,KAAK;AAChC,QAAA,kBAAkB,EAAEC,mDAAyB,CAAC,WAAW,CAAC;QAC1D,UAAU,EAAEC,mCAAiB,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACpE,KAAA,CAAC;AACF,IAAA,SAAS,CAAC,GAAG,CAAC,GAAG,WAAW;AAC5B,IAAA,OAAO,WAAW;AACpB;;;;"}
@@ -1,5 +1,4 @@
1
1
  import { Auth0Client } from '@auth0/nextjs-auth0/server';
2
- import { RedisSessionStore } from './redisSessionStore.js';
3
2
  import { onCallbackFactory } from './hooks/onCallbackFactory.js';
4
3
  import { beforeSessionSavedFactory } from './hooks/beforeSessionSavedFactory.js';
5
4
  import { getAuth0Config } from '../config/auth0.js';
@@ -16,22 +15,21 @@ const getAuth0Instance = ({ protocol, host, isProxied, onError, }) => {
16
15
  }
17
16
  const auth0Config = getAuth0Config({ isProxied });
18
17
  const appBaseUrl = `${protocol}://${host}`;
19
- let sessionStore;
20
- if (process.env.AUTH0_CUSTOM_REDIS_URL && process.env.AUTH0_SESSION_NAME) {
21
- // eslint-disable-next-line no-console
22
- console.info('[Auth-package] Creating Redis Session Sore');
23
- sessionStore = new RedisSessionStore({
24
- prefix: `${process.env.AUTH0_SESSION_NAME}:`,
25
- ttlSeconds: auth0Config.sessionDuration,
26
- redisUrl: process.env.AUTH0_CUSTOM_REDIS_URL,
27
- });
28
- }
29
- else {
30
- // eslint-disable-next-line no-console
31
- console.info('[Auth-package] Using cookies to store session');
32
- }
18
+ // let sessionStore;
19
+ // if (process.env.AUTH0_CUSTOM_REDIS_URL && process.env.AUTH0_SESSION_NAME) {
20
+ // // eslint-disable-next-line no-console
21
+ // console.info('[Auth-package] Creating Redis Session Sore');
22
+ // sessionStore = new RedisSessionStore({
23
+ // prefix: `${process.env.AUTH0_SESSION_NAME}:`,
24
+ // ttlSeconds: auth0Config.sessionDuration,
25
+ // redisUrl: process.env.AUTH0_CUSTOM_REDIS_URL,
26
+ // });
27
+ // } else {
28
+ // // eslint-disable-next-line no-console
29
+ // console.info('[Auth-package] Using cookies to store session');
30
+ // }
33
31
  const newInstance = new Auth0Client({
34
- sessionStore,
32
+ // sessionStore,
35
33
  appBaseUrl,
36
34
  routes: {
37
35
  login: auth0Config.loginEndpoint,
@@ -1 +1 @@
1
- {"version":3,"file":"getAuth0Instance.js","sources":["../../../../src/server/getAuth0Instance.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAQA,MAAM,SAAS,GAAmB,EAAE;AAQpC,MAAM,gBAAgB,GAAG,CAAC,EACxB,IAAI,EACJ,SAAS,EACT,QAAQ,GACgB,KAAI;AAC5B,IAAA,OAAO,GAAG,QAAQ,CAAA,CAAA,EAAI,IAAI,CAAA,WAAA,EAAc,SAAS,EAAE;AACrD,CAAC;AAEM,MAAM,gBAAgB,GAAG,CAAC,EAC/B,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,OAAO,GAGR,KAAiB;AAChB,IAAA,MAAM,GAAG,GAAG,gBAAgB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AAC3D,IAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC;IAC/B,IAAI,QAAQ,EAAE;AACZ,QAAA,OAAO,QAAQ;IACjB;IAEA,MAAM,WAAW,GAAG,cAAc,CAAC,EAAE,SAAS,EAAE,CAAC;AACjD,IAAA,MAAM,UAAU,GAAG,CAAA,EAAG,QAAQ,CAAA,GAAA,EAAM,IAAI,EAAE;AAC1C,IAAA,IAAI,YAAY;AAChB,IAAA,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE;;AAExE,QAAA,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC;QAC1D,YAAY,GAAG,IAAI,iBAAiB,CAAC;AACnC,YAAA,MAAM,EAAE,CAAA,EAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAA,CAAA,CAAG;YAC5C,UAAU,EAAE,WAAW,CAAC,eAAe;AACvC,YAAA,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB;AAC7C,SAAA,CAAC;IACJ;SAAO;;AAEL,QAAA,OAAO,CAAC,IAAI,CAAC,+CAA+C,CAAC;IAC/D;AAEA,IAAA,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC;QAClC,YAAY;QACZ,UAAU;AACV,QAAA,MAAM,EAAE;YACN,KAAK,EAAE,WAAW,CAAC,aAAa;YAChC,MAAM,EAAE,WAAW,CAAC,cAAc;YAClC,QAAQ,EAAE,WAAW,CAAC,gBAAgB;AACvC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,MAAM,EAAE;gBACN,IAAI,EAAE,WAAW,CAAC,iBAAiB;AACpC,aAAA;AACF,SAAA;AACD,QAAA,uBAAuB,EAAE;YACvB,KAAK,EAAE,WAAW,CAAC,MAAM;YACzB,QAAQ,EAAE,WAAW,CAAC,QAAQ;AAC/B,SAAA;AACD,QAAA,yBAAyB,EAAE,KAAK;AAChC,QAAA,kBAAkB,EAAE,yBAAyB,CAAC,WAAW,CAAC;QAC1D,UAAU,EAAE,iBAAiB,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACpE,KAAA,CAAC;AACF,IAAA,SAAS,CAAC,GAAG,CAAC,GAAG,WAAW;AAC5B,IAAA,OAAO,WAAW;AACpB;;;;"}
1
+ {"version":3,"file":"getAuth0Instance.js","sources":["../../../../src/server/getAuth0Instance.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAQA,MAAM,SAAS,GAAmB,EAAE;AAQpC,MAAM,gBAAgB,GAAG,CAAC,EACxB,IAAI,EACJ,SAAS,EACT,QAAQ,GACgB,KAAI;AAC5B,IAAA,OAAO,GAAG,QAAQ,CAAA,CAAA,EAAI,IAAI,CAAA,WAAA,EAAc,SAAS,EAAE;AACrD,CAAC;AAEM,MAAM,gBAAgB,GAAG,CAAC,EAC/B,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,OAAO,GAGR,KAAiB;AAChB,IAAA,MAAM,GAAG,GAAG,gBAAgB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AAC3D,IAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC;IAC/B,IAAI,QAAQ,EAAE;AACZ,QAAA,OAAO,QAAQ;IACjB;IAEA,MAAM,WAAW,GAAG,cAAc,CAAC,EAAE,SAAS,EAAE,CAAC;AACjD,IAAA,MAAM,UAAU,GAAG,CAAA,EAAG,QAAQ,CAAA,GAAA,EAAM,IAAI,EAAE;;;;;;;;;;;;;;AAe1C,IAAA,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC;;QAElC,UAAU;AACV,QAAA,MAAM,EAAE;YACN,KAAK,EAAE,WAAW,CAAC,aAAa;YAChC,MAAM,EAAE,WAAW,CAAC,cAAc;YAClC,QAAQ,EAAE,WAAW,CAAC,gBAAgB;AACvC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,MAAM,EAAE;gBACN,IAAI,EAAE,WAAW,CAAC,iBAAiB;AACpC,aAAA;AACF,SAAA;AACD,QAAA,uBAAuB,EAAE;YACvB,KAAK,EAAE,WAAW,CAAC,MAAM;YACzB,QAAQ,EAAE,WAAW,CAAC,QAAQ;AAC/B,SAAA;AACD,QAAA,yBAAyB,EAAE,KAAK;AAChC,QAAA,kBAAkB,EAAE,yBAAyB,CAAC,WAAW,CAAC;QAC1D,UAAU,EAAE,iBAAiB,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACpE,KAAA,CAAC;AACF,IAAA,SAAS,CAAC,GAAG,CAAC,GAAG,WAAW;AAC5B,IAAA,OAAO,WAAW;AACpB;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smg-automotive/auth",
3
- "version": "7.1.0-auth0-update-tweaks.6",
3
+ "version": "7.1.0-auth0-update-tweaks.7",
4
4
  "description": "SMG Automotive auth package",
5
5
  "exports": {
6
6
  ".": {
@@ -1,31 +0,0 @@
1
- 'use strict';
2
-
3
- var redis = require('redis');
4
-
5
- class RedisSessionStore {
6
- #client;
7
- #options;
8
- constructor(options) {
9
- this.#options = options;
10
- this.#client = redis.createClient({ url: options.redisUrl });
11
- this.#client.connect();
12
- }
13
- key(id) {
14
- return `${this.#options.prefix}${id}`;
15
- }
16
- async get(id) {
17
- const raw = await this.#client.get(this.key(id));
18
- return raw ? JSON.parse(raw) : null;
19
- }
20
- async set(id, session) {
21
- await this.#client.set(this.key(id), JSON.stringify(session), {
22
- EX: this.#options.ttlSeconds,
23
- });
24
- }
25
- async delete(id) {
26
- await this.#client.del(this.key(id));
27
- }
28
- }
29
-
30
- exports.RedisSessionStore = RedisSessionStore;
31
- //# sourceMappingURL=redisSessionStore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"redisSessionStore.js","sources":["../../../../src/server/redisSessionStore.ts"],"sourcesContent":[null],"names":["createClient"],"mappings":";;;;MASa,iBAAiB,CAAA;AAC5B,IAAA,OAAO;AACP,IAAA,QAAQ;AAER,IAAA,WAAA,CAAY,OAAiC,EAAA;AAC3C,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;AACvB,QAAA,IAAI,CAAC,OAAO,GAAGA,kBAAY,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;AACtD,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;IACxB;AAEQ,IAAA,GAAG,CAAC,EAAU,EAAA;QACpB,OAAO,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAA,EAAG,EAAE,CAAA,CAAE;IACvC;IAEA,MAAM,GAAG,CAAC,EAAU,EAAA;AAClB,QAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAChD,QAAA,OAAO,GAAG,GAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAiB,GAAG,IAAI;IACtD;AAEA,IAAA,MAAM,GAAG,CAAC,EAAU,EAAE,OAAoB,EAAA;AACxC,QAAA,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;AAC5D,YAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU;AAC7B,SAAA,CAAC;IACJ;IAEA,MAAM,MAAM,CAAC,EAAU,EAAA;AACrB,QAAA,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACtC;AACD;;;;"}
@@ -1,29 +0,0 @@
1
- import { createClient } from 'redis';
2
-
3
- class RedisSessionStore {
4
- #client;
5
- #options;
6
- constructor(options) {
7
- this.#options = options;
8
- this.#client = createClient({ url: options.redisUrl });
9
- this.#client.connect();
10
- }
11
- key(id) {
12
- return `${this.#options.prefix}${id}`;
13
- }
14
- async get(id) {
15
- const raw = await this.#client.get(this.key(id));
16
- return raw ? JSON.parse(raw) : null;
17
- }
18
- async set(id, session) {
19
- await this.#client.set(this.key(id), JSON.stringify(session), {
20
- EX: this.#options.ttlSeconds,
21
- });
22
- }
23
- async delete(id) {
24
- await this.#client.del(this.key(id));
25
- }
26
- }
27
-
28
- export { RedisSessionStore };
29
- //# sourceMappingURL=redisSessionStore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"redisSessionStore.js","sources":["../../../../src/server/redisSessionStore.ts"],"sourcesContent":[null],"names":[],"mappings":";;MASa,iBAAiB,CAAA;AAC5B,IAAA,OAAO;AACP,IAAA,QAAQ;AAER,IAAA,WAAA,CAAY,OAAiC,EAAA;AAC3C,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;AACtD,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;IACxB;AAEQ,IAAA,GAAG,CAAC,EAAU,EAAA;QACpB,OAAO,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAA,EAAG,EAAE,CAAA,CAAE;IACvC;IAEA,MAAM,GAAG,CAAC,EAAU,EAAA;AAClB,QAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAChD,QAAA,OAAO,GAAG,GAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAiB,GAAG,IAAI;IACtD;AAEA,IAAA,MAAM,GAAG,CAAC,EAAU,EAAE,OAAoB,EAAA;AACxC,QAAA,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;AAC5D,YAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU;AAC7B,SAAA,CAAC;IACJ;IAEA,MAAM,MAAM,CAAC,EAAU,EAAA;AACrB,QAAA,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACtC;AACD;;;;"}