matterbridge 3.1.4 → 3.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,7 +4,7 @@
4
4
  * @file plugins.ts
5
5
  * @author Luca Liguori
6
6
  * @created 2024-07-14
7
- * @version 1.1.2
7
+ * @version 1.2.0
8
8
  * @license Apache-2.0
9
9
  *
10
10
  * Copyright 2024, 2025, 2026 Luca Liguori.
@@ -23,8 +23,8 @@
23
23
  */
24
24
  import EventEmitter from 'node:events';
25
25
  import { LogLevel } from 'node-ansi-logger';
26
- import { Matterbridge } from './matterbridge.js';
27
- import { MatterbridgePlatform, PlatformConfig, PlatformSchema } from './matterbridgePlatform.js';
26
+ import type { Matterbridge } from './matterbridge.js';
27
+ import type { MatterbridgePlatform, PlatformConfig, PlatformSchema } from './matterbridgePlatform.js';
28
28
  import { RegisteredPlugin } from './matterbridgeTypes.js';
29
29
  interface PluginManagerEvents {
30
30
  added: [name: string];
@@ -40,7 +40,6 @@ interface PluginManagerEvents {
40
40
  }
41
41
  export declare class PluginManager extends EventEmitter<PluginManagerEvents> {
42
42
  private _plugins;
43
- private nodeContext;
44
43
  private matterbridge;
45
44
  private log;
46
45
  constructor(matterbridge: Matterbridge);
@@ -166,26 +165,6 @@ export declare class PluginManager extends EventEmitter<PluginManagerEvents> {
166
165
  * @returns {Promise<RegisteredPlugin | null>} A promise that resolves to the added plugin object, or null if the plugin could not be added.
167
166
  */
168
167
  add(nameOrPath: string): Promise<RegisteredPlugin | null>;
169
- /**
170
- * Installs a plugin by its name.
171
- *
172
- * This method first uninstalls any existing version of the plugin, then installs the plugin globally using npm.
173
- * It logs the installation process and retrieves the installed version of the plugin.
174
- *
175
- * @param {string} name - The name of the plugin to install.
176
- * @returns {Promise<string | undefined>} A promise that resolves to the installed version of the plugin, or undefined if the installation failed.
177
- */
178
- install(name: string): Promise<string | undefined>;
179
- /**
180
- * Uninstalls a plugin by its name.
181
- *
182
- * This method uninstalls a globally installed plugin using npm. It logs the uninstallation process
183
- * and returns the name of the uninstalled plugin if successful, or undefined if the uninstallation failed.
184
- *
185
- * @param {string} name - The name of the plugin to uninstall.
186
- * @returns {Promise<string | undefined>} A promise that resolves to the name of the uninstalled plugin, or undefined if the uninstallation failed.
187
- */
188
- uninstall(name: string): Promise<string | undefined>;
189
168
  /**
190
169
  * Loads a plugin and returns the corresponding MatterbridgePlatform instance.
191
170
  *
@@ -1 +1 @@
1
- {"version":3,"file":"pluginManager.d.ts","sourceRoot":"","sources":["../src/pluginManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pluginManager.d.ts","sourceRoot":"","sources":["../src/pluginManager.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * @file plugins.ts
5
5
  * @author Luca Liguori
6
6
  * @created 2024-07-14
7
- * @version 1.1.2
7
+ * @version 1.2.0
8
8
  * @license Apache-2.0
9
9
  *
10
10
  * Copyright 2024, 2025, 2026 Luca Liguori.
@@ -26,16 +26,14 @@ import EventEmitter from 'node:events';
26
26
  // AnsiLogger module
27
27
  import { AnsiLogger, UNDERLINE, UNDERLINEOFF, BLUE, db, er, nf, nt, rs, wr } from 'node-ansi-logger';
28
28
  import { plg, typ } from './matterbridgeTypes.js';
29
+ import { logError } from './utils/error.js';
29
30
  export class PluginManager extends EventEmitter {
30
31
  _plugins = new Map();
31
- nodeContext;
32
32
  matterbridge;
33
33
  log;
34
34
  constructor(matterbridge) {
35
35
  super();
36
36
  this.matterbridge = matterbridge;
37
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
38
- this.nodeContext = matterbridge.nodeContext;
39
37
  this.log = new AnsiLogger({ logName: 'PluginManager', logTimestampFormat: 4 /* TimestampFormat.TIME_MILLIS */, logLevel: matterbridge.log.logLevel });
40
38
  this.log.debug('Matterbridge plugin manager starting...');
41
39
  }
@@ -72,8 +70,7 @@ export class PluginManager extends EventEmitter {
72
70
  await callback(plugin);
73
71
  }
74
72
  catch (err) {
75
- this.log.error(`Error processing forEach plugin ${plg}${plugin.name}${er}: ${err instanceof Error ? err.message + '\n' + err.stack : err}`);
76
- // throw error;
73
+ logError(this.log, `Error processing forEach plugin ${plg}${plugin.name}${er}`, err);
77
74
  }
78
75
  });
79
76
  await Promise.all(tasks);
@@ -90,8 +87,11 @@ export class PluginManager extends EventEmitter {
90
87
  * @returns {Promise<RegisteredPlugin[]>} A promise that resolves to an array of registered plugins.
91
88
  */
92
89
  async loadFromStorage() {
90
+ if (!this.matterbridge.nodeContext) {
91
+ throw new Error('loadFromStorage: node context is not available.');
92
+ }
93
93
  // Load the array from storage and convert it to a map
94
- const pluginsArray = await this.nodeContext.get('plugins', []);
94
+ const pluginsArray = await this.matterbridge.nodeContext.get('plugins', []);
95
95
  for (const plugin of pluginsArray)
96
96
  this._plugins.set(plugin.name, plugin);
97
97
  return pluginsArray;
@@ -105,6 +105,9 @@ export class PluginManager extends EventEmitter {
105
105
  * @returns {Promise<RegisteredPlugin[]>} A promise that resolves to an array of registered plugins.
106
106
  */
107
107
  async saveToStorage() {
108
+ if (!this.matterbridge.nodeContext) {
109
+ throw new Error('loadFromStorage: node context is not available.');
110
+ }
108
111
  // Convert the map to an array
109
112
  const plugins = [];
110
113
  const pluginArrayFromMap = Array.from(this._plugins.values());
@@ -119,7 +122,7 @@ export class PluginManager extends EventEmitter {
119
122
  enabled: plugin.enabled,
120
123
  });
121
124
  }
122
- await this.nodeContext.set('plugins', plugins);
125
+ await this.matterbridge.nodeContext.set('plugins', plugins);
123
126
  this.log.debug(`Saved ${BLUE}${plugins.length}${db} plugins to storage`);
124
127
  return plugins.length;
125
128
  }
@@ -210,7 +213,7 @@ export class PluginManager extends EventEmitter {
210
213
  return packageJsonPath;
211
214
  }
212
215
  catch (err) {
213
- this.log.error(`Failed to resolve plugin path ${plg}${pluginPath}${er}: ${err instanceof Error ? err.message + '\n' + err.stack : err}`);
216
+ logError(this.log, `Failed to resolve plugin path ${plg}${pluginPath}${er}`, err);
214
217
  return null;
215
218
  }
216
219
  }
@@ -387,7 +390,7 @@ export class PluginManager extends EventEmitter {
387
390
  return packageJson;
388
391
  }
389
392
  catch (err) {
390
- this.log.error(`Failed to parse package.json of plugin ${plg}${plugin.name}${er}: ${err instanceof Error ? err.message + '\n' + err.stack : err}`);
393
+ logError(this.log, `Failed to parse package.json of plugin ${plg}${plugin.name}${er}`, err);
391
394
  plugin.error = true;
392
395
  return null;
393
396
  }
@@ -433,7 +436,7 @@ export class PluginManager extends EventEmitter {
433
436
  return plugin;
434
437
  }
435
438
  catch (err) {
436
- this.log.error(`Failed to parse package.json of plugin ${plg}${nameOrPath}${er}: ${err instanceof Error ? err.message + '\n' + err.stack : err}`);
439
+ logError(this.log, `Failed to parse package.json of plugin ${plg}${nameOrPath}${er}`, err);
437
440
  return null;
438
441
  }
439
442
  }
@@ -478,7 +481,7 @@ export class PluginManager extends EventEmitter {
478
481
  return plugin;
479
482
  }
480
483
  catch (err) {
481
- this.log.error(`Failed to parse package.json of plugin ${plg}${nameOrPath}${er}: ${err instanceof Error ? err.message + '\n' + err.stack : err}`);
484
+ logError(this.log, `Failed to parse package.json of plugin ${plg}${nameOrPath}${er}`, err);
482
485
  return null;
483
486
  }
484
487
  }
@@ -523,7 +526,7 @@ export class PluginManager extends EventEmitter {
523
526
  return plugin;
524
527
  }
525
528
  catch (err) {
526
- this.log.error(`Failed to parse package.json of plugin ${plg}${nameOrPath}${er}: ${err instanceof Error ? err.message + '\n' + err.stack : err}`);
529
+ logError(this.log, `Failed to parse package.json of plugin ${plg}${nameOrPath}${er}`, err);
527
530
  return null;
528
531
  }
529
532
  }
@@ -566,88 +569,14 @@ export class PluginManager extends EventEmitter {
566
569
  await this.saveToStorage();
567
570
  const plugin = this._plugins.get(packageJson.name);
568
571
  this.emit('added', packageJson.name);
572
+ // istanbul ignore next
569
573
  return plugin || null;
570
574
  }
571
575
  catch (err) {
572
- this.log.error(`Failed to parse package.json of plugin ${plg}${nameOrPath}${er}: ${err instanceof Error ? err.message + '\n' + err.stack : err}`);
576
+ logError(this.log, `Failed to parse package.json of plugin ${plg}${nameOrPath}${er}`, err);
573
577
  return null;
574
578
  }
575
579
  }
576
- /**
577
- * Installs a plugin by its name.
578
- *
579
- * This method first uninstalls any existing version of the plugin, then installs the plugin globally using npm.
580
- * It logs the installation process and retrieves the installed version of the plugin.
581
- *
582
- * @param {string} name - The name of the plugin to install.
583
- * @returns {Promise<string | undefined>} A promise that resolves to the installed version of the plugin, or undefined if the installation failed.
584
- */
585
- async install(name) {
586
- const { exec } = await import('node:child_process');
587
- await this.uninstall(name);
588
- this.log.info(`Installing plugin ${plg}${name}${nf}`);
589
- return new Promise((resolve) => {
590
- exec(`npm install -g ${name} --omit=dev`, (error, stdout, stderr) => {
591
- if (error) {
592
- this.log.error(`Failed to install plugin ${plg}${name}${er}: ${error}`);
593
- this.log.debug(`Failed to install plugin ${plg}${name}${db}: ${stderr}`);
594
- resolve(undefined);
595
- }
596
- else {
597
- this.log.info(`Installed plugin ${plg}${name}${nf}`);
598
- this.log.debug(`Installed plugin ${plg}${name}${db}: ${stdout}`);
599
- // Get the installed version
600
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
601
- exec(`npm list -g ${name} --depth=0`, (listError, listStdout, listStderr) => {
602
- if (listError) {
603
- this.log.error(`List error: ${listError}`);
604
- resolve(undefined);
605
- }
606
- // Clean the output to get only the package name and version
607
- const lines = listStdout.split('\n');
608
- const versionLine = lines.find((line) => line.includes(`${name}@`));
609
- if (versionLine) {
610
- const version = versionLine.split('@')[1].trim();
611
- this.log.info(`Installed plugin ${plg}${name}@${version}${nf}`);
612
- this.emit('installed', name, version);
613
- resolve(version);
614
- }
615
- else {
616
- resolve(undefined);
617
- }
618
- });
619
- }
620
- });
621
- });
622
- }
623
- /**
624
- * Uninstalls a plugin by its name.
625
- *
626
- * This method uninstalls a globally installed plugin using npm. It logs the uninstallation process
627
- * and returns the name of the uninstalled plugin if successful, or undefined if the uninstallation failed.
628
- *
629
- * @param {string} name - The name of the plugin to uninstall.
630
- * @returns {Promise<string | undefined>} A promise that resolves to the name of the uninstalled plugin, or undefined if the uninstallation failed.
631
- */
632
- async uninstall(name) {
633
- const { exec } = await import('node:child_process');
634
- this.log.info(`Uninstalling plugin ${plg}${name}${nf}`);
635
- return new Promise((resolve) => {
636
- exec(`npm uninstall -g ${name}`, (error, stdout, stderr) => {
637
- if (error) {
638
- this.log.error(`Failed to uninstall plugin ${plg}${name}${er}: ${error}`);
639
- this.log.debug(`Failed to uninstall plugin ${plg}${name}${db}: ${stderr}`);
640
- resolve(undefined);
641
- }
642
- else {
643
- this.log.info(`Uninstalled plugin ${plg}${name}${nf}`);
644
- this.log.debug(`Uninstalled plugin ${plg}${name}${db}: ${stdout}`);
645
- this.emit('uninstalled', name);
646
- resolve(name);
647
- }
648
- });
649
- });
650
- }
651
580
  /**
652
581
  * Loads a plugin and returns the corresponding MatterbridgePlatform instance.
653
582
  *
@@ -692,7 +621,7 @@ export class PluginManager extends EventEmitter {
692
621
  plugin.schemaJson = await this.loadSchema(plugin);
693
622
  config.name = plugin.name;
694
623
  config.version = packageJson.version;
695
- const log = new AnsiLogger({ logName: plugin.description ?? 'No description', logTimestampFormat: 4 /* TimestampFormat.TIME_MILLIS */, logLevel: config.debug ? "debug" /* LogLevel.DEBUG */ : this.matterbridge.log.logLevel });
624
+ const log = new AnsiLogger({ logName: plugin.description, logTimestampFormat: 4 /* TimestampFormat.TIME_MILLIS */, logLevel: config.debug ? "debug" /* LogLevel.DEBUG */ : this.matterbridge.log.logLevel });
696
625
  const platform = pluginInstance.default(this.matterbridge, log, config);
697
626
  config.type = platform.type;
698
627
  platform.name = packageJson.name;
@@ -726,7 +655,7 @@ export class PluginManager extends EventEmitter {
726
655
  }
727
656
  }
728
657
  catch (err) {
729
- this.log.error(`Failed to load plugin ${plg}${plugin.name}${er}: ${err instanceof Error ? err.message + '\n' + err.stack : err}`);
658
+ logError(this.log, `Failed to load plugin ${plg}${plugin.name}${er}`, err);
730
659
  plugin.error = true;
731
660
  }
732
661
  return undefined;
@@ -765,7 +694,7 @@ export class PluginManager extends EventEmitter {
765
694
  }
766
695
  catch (err) {
767
696
  plugin.error = true;
768
- this.log.error(`Failed to start plugin ${plg}${plugin.name}${er}: ${err instanceof Error ? err.message + '\n' + err.stack : err}`);
697
+ logError(this.log, `Failed to start plugin ${plg}${plugin.name}${er}`, err);
769
698
  }
770
699
  return undefined;
771
700
  }
@@ -802,7 +731,7 @@ export class PluginManager extends EventEmitter {
802
731
  }
803
732
  catch (err) {
804
733
  plugin.error = true;
805
- this.log.error(`Failed to configure plugin ${plg}${plugin.name}${er}: ${err instanceof Error ? err.message + '\n' + err.stack : err}`);
734
+ logError(this.log, `Failed to configure plugin ${plg}${plugin.name}${er}`, err);
806
735
  }
807
736
  return undefined;
808
737
  }
@@ -857,7 +786,7 @@ export class PluginManager extends EventEmitter {
857
786
  return plugin;
858
787
  }
859
788
  catch (err) {
860
- this.log.error(`Failed to shut down plugin ${plg}${plugin.name}${er}: ${err instanceof Error ? err.message + '\n' + err.stack : err}`);
789
+ logError(this.log, `Failed to shut down plugin ${plg}${plugin.name}${er}`, err);
861
790
  }
862
791
  return undefined;
863
792
  }
@@ -875,6 +804,7 @@ export class PluginManager extends EventEmitter {
875
804
  const { promises } = await import('node:fs');
876
805
  const { shelly_config, somfytahoma_config, zigbee2mqtt_config } = await import('./defaultConfigSchema.js');
877
806
  const configFile = path.join(this.matterbridge.matterbridgeDirectory, `${plugin.name}.config.json`);
807
+ const defaultConfigFile = plugin.path.replace('package.json', `${plugin.name}.config.json`);
878
808
  try {
879
809
  await promises.access(configFile);
880
810
  const data = await promises.readFile(configFile, 'utf8');
@@ -893,15 +823,27 @@ export class PluginManager extends EventEmitter {
893
823
  catch (err) {
894
824
  const nodeErr = err;
895
825
  if (nodeErr.code === 'ENOENT') {
826
+ this.log.debug(`Config file ${configFile} for plugin ${plg}${plugin.name}${db} does not exist, creating new config file...`);
896
827
  let config;
897
- if (plugin.name === 'matterbridge-zigbee2mqtt')
898
- config = zigbee2mqtt_config;
899
- else if (plugin.name === 'matterbridge-somfy-tahoma')
900
- config = somfytahoma_config;
901
- else if (plugin.name === 'matterbridge-shelly')
902
- config = shelly_config;
903
- else
904
- config = { name: plugin.name, type: plugin.type, debug: false, unregisterOnShutdown: false };
828
+ try {
829
+ await promises.access(defaultConfigFile);
830
+ const data = await promises.readFile(defaultConfigFile, 'utf8');
831
+ config = JSON.parse(data);
832
+ this.log.debug(`Loaded default config file ${defaultConfigFile} for plugin ${plg}${plugin.name}${db}.`);
833
+ }
834
+ catch (_err) {
835
+ this.log.debug(`Default config file ${defaultConfigFile} for plugin ${plg}${plugin.name}${db} does not exist, creating new config file...`);
836
+ // TODO: Remove this when all these plugins have their own default config file
837
+ // istanbul ignore next if
838
+ if (plugin.name === 'matterbridge-zigbee2mqtt')
839
+ config = zigbee2mqtt_config;
840
+ else if (plugin.name === 'matterbridge-somfy-tahoma')
841
+ config = somfytahoma_config;
842
+ else if (plugin.name === 'matterbridge-shelly')
843
+ config = shelly_config;
844
+ else
845
+ config = { name: plugin.name, type: plugin.type, debug: false, unregisterOnShutdown: false };
846
+ }
905
847
  try {
906
848
  await promises.writeFile(configFile, JSON.stringify(config, null, 2), 'utf8');
907
849
  this.log.debug(`Created config file ${configFile} for plugin ${plg}${plugin.name}${db}.`);
@@ -909,12 +851,12 @@ export class PluginManager extends EventEmitter {
909
851
  return config;
910
852
  }
911
853
  catch (err) {
912
- this.log.error(`Error creating config file ${configFile} for plugin ${plg}${plugin.name}${er}: ${err instanceof Error ? err.message + '\n' + err.stack : err}`);
854
+ logError(this.log, `Error creating config file ${configFile} for plugin ${plg}${plugin.name}${er}`, err);
913
855
  return config;
914
856
  }
915
857
  }
916
858
  else {
917
- this.log.error(`Error accessing config file ${configFile} for plugin ${plg}${plugin.name}${er}: ${err instanceof Error ? err.message + '\n' + err.stack : err}`);
859
+ logError(this.log, `Error accessing config file ${configFile} for plugin ${plg}${plugin.name}${er}`, err);
918
860
  return { name: plugin.name, type: plugin.type, debug: false, unregisterOnShutdown: false };
919
861
  }
920
862
  }
@@ -950,7 +892,7 @@ export class PluginManager extends EventEmitter {
950
892
  return Promise.resolve();
951
893
  }
952
894
  catch (err) {
953
- this.log.error(`Error saving config file ${configFile} for plugin ${plg}${plugin.name}${er}: ${err instanceof Error ? err.message + '\n' + err.stack : err}`);
895
+ logError(this.log, `Error saving config file ${configFile} for plugin ${plg}${plugin.name}${er}`, err);
954
896
  return Promise.reject(err);
955
897
  }
956
898
  }
@@ -989,7 +931,7 @@ export class PluginManager extends EventEmitter {
989
931
  // this.log.debug(`Saved config file ${configFile} for plugin ${plg}${plugin.name}${db}.\nConfig:${rs}\n`, config);
990
932
  }
991
933
  catch (err) {
992
- this.log.error(`Error saving config file ${configFile} for plugin ${plg}${plugin.name}${er}: ${err instanceof Error ? err.message + '\n' + err.stack : err}`);
934
+ logError(this.log, `Error saving config file ${configFile} for plugin ${plg}${plugin.name}${er}`, err);
993
935
  return;
994
936
  }
995
937
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pluginManager.js","sourceRoot":"","sources":["../src/pluginManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pluginManager.js","sourceRoot":"","sources":["../src/pluginManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * This file contains the error functions.
3
+ *
4
+ * @file error.ts
5
+ * @author Luca Liguori
6
+ * @created 2025-07-17
7
+ * @version 1.0.0
8
+ * @license Apache-2.0
9
+ *
10
+ * Copyright 2025, 2026, 2027 Luca Liguori.
11
+ *
12
+ * Licensed under the Apache License, Version 2.0 (the "License");
13
+ * you may not use this file except in compliance with the License.
14
+ * You may obtain a copy of the License at
15
+ *
16
+ * http://www.apache.org/licenses/LICENSE-2.0
17
+ *
18
+ * Unless required by applicable law or agreed to in writing, software
19
+ * distributed under the License is distributed on an "AS IS" BASIS,
20
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21
+ * See the License for the specific language governing permissions and
22
+ * limitations under the License.
23
+ */
24
+ import type { AnsiLogger } from 'node-ansi-logger';
25
+ /**
26
+ * Logs an error message using the provided AnsiLogger instance.
27
+ *
28
+ * @param {AnsiLogger} log - The AnsiLogger instance to use for logging.
29
+ * @param {string} message - The error message to log.
30
+ * @param {unknown} error - The error object or value to log. If it's an Error instance,
31
+ * its message and stack trace will be included in the log.
32
+ */
33
+ export declare function logError(log: AnsiLogger, message: string, error: unknown): void;
34
+ /**
35
+ * Logs an error message using the provided AnsiLogger instance with detailed inspection.
36
+ * Uses util.inspect to get a detailed view of the error with a stack depth of 10 levels.
37
+ * If the error is an Error instance, it also includes the error message.
38
+ *
39
+ * @param {AnsiLogger} log - The AnsiLogger instance to use for logging.
40
+ * @param {string} message - The error message to log.
41
+ * @param {unknown} error - The error object or value to log. Will be inspected with depth 10.
42
+ */
43
+ export declare function inspectError(log: AnsiLogger, message: string, error: unknown): void;
44
+ //# sourceMappingURL=error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/utils/error.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAE/E;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAInF"}