@statewalker/fsm 0.37.0 → 0.38.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.
@@ -2,12 +2,23 @@ import type { FsmProcess } from "../core/fsm-process.ts";
2
2
  import type { FsmState } from "../core/fsm-state.ts";
3
3
  import { getPrinter, type Printer } from "./printer.ts";
4
4
 
5
+ /**
6
+ * Trace every state of `process`: as each state is created, attach a state tracer —
7
+ * so you can watch the machine move as a readable stream of enter/exit markers
8
+ * without editing any handler. Hooks `onStateCreate` and delegates to
9
+ * {@link setStateTracer}; pass a `print` sink to override the process printer.
10
+ */
5
11
  export function setProcessTracer(process: FsmProcess, print?: Printer) {
6
12
  return process.onStateCreate((state: FsmState) => {
7
13
  setStateTracer(state, print);
8
14
  });
9
15
  }
10
16
 
17
+ /**
18
+ * Trace one state's lifecycle: emit `<key event="…">` on enter and `</key>` on exit
19
+ * (XML-like, so nested states read as nested tags). Falls back to the state's
20
+ * printer ({@link getPrinter}) when no `print` sink is given.
21
+ */
11
22
  export function setStateTracer(state: FsmState, print?: Printer) {
12
23
  state.onEnter(() => {
13
24
  const printLine = print || getPrinter(state);
package/bin/cli.js DELETED
@@ -1,5 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- import { startNodeProcesses } from "../dist/bin/node-runner.js";
4
-
5
- startNodeProcesses();
@@ -1,16 +0,0 @@
1
- import { n as LauncherConfig } from "../launcher-6VUDviTj.js";
2
-
3
- //#region src/bin/node-runner.d.ts
4
- declare function startProcesses({
5
- onExit,
6
- modules,
7
- context
8
- }: {
9
- onExit?: () => Promise<void> | void;
10
- modules: unknown[];
11
- context?: LauncherConfig["context"];
12
- }): Promise<() => Promise<void>>;
13
- declare function startNodeProcesses(modules?: string[]): Promise<void>;
14
- //#endregion
15
- export { startNodeProcesses as default, startNodeProcesses, startProcesses };
16
- //# sourceMappingURL=node-runner-UJp8T_oP.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"node-runner-UJp8T_oP.d.ts","names":[],"sources":["../../src/bin/node-runner.ts"],"mappings":";;;iBAOsB,cAAA;;;;;iBAKL;EALK,OAAA,EAAA,OAAA,EAAc;EAAA,OAAA,CAAA,EAOxB,cAPwB,CAAA,SAAA,CAAA;IAQnC,OAPC,CAAA,GAAA,GAOD,OAPC,CAAA,IAAA,CAAA,CAAA;AACA,iBA6BoB,kBAAA,CA7BpB,OAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EA6B4D,OA7B5D,CAAA,IAAA,CAAA"}
@@ -1,40 +0,0 @@
1
- import { n as launcher } from "../launcher-CASrMAOa.js";
2
- //#region src/bin/node-runner.ts
3
- function resolveModulesPaths(baseUrl, ...refs) {
4
- return refs.map((ref) => new URL(ref, baseUrl).pathname);
5
- }
6
- async function startProcesses({ onExit, modules, context }) {
7
- const processDefs = [];
8
- for (const mod of modules) {
9
- const imported = typeof mod === "string" || mod instanceof URL ? await import(String(mod)) : mod;
10
- if (imported && typeof imported === "object") processDefs.push(imported);
11
- }
12
- if (onExit) processDefs.push({
13
- name: "Exit",
14
- config: { key: "Exit" },
15
- handlers: [() => onExit]
16
- });
17
- return await launcher({
18
- processes: processDefs,
19
- context
20
- });
21
- }
22
- async function startNodeProcesses(modules) {
23
- try {
24
- if (!modules) modules = process.argv.slice(2);
25
- const terminate = await startProcesses({
26
- modules: resolveModulesPaths(`file://${process.cwd()}/`, ...modules),
27
- onExit: () => process.exit(0)
28
- });
29
- process.on("SIGINT", terminate);
30
- process.on("SIGTERM", terminate);
31
- process.stdin.resume();
32
- } catch (err) {
33
- console.error("Fatal error:", err);
34
- process.exit(1);
35
- }
36
- }
37
- //#endregion
38
- export { startNodeProcesses as default, startNodeProcesses, startProcesses };
39
-
40
- //# sourceMappingURL=node-runner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"node-runner.js","names":[],"sources":["../../src/bin/node-runner.ts"],"sourcesContent":["import type { LauncherConfig, ProcessDef } from \"../orchestrator/launcher.ts\";\nimport { launcher } from \"../orchestrator/launcher.ts\";\n\nfunction resolveModulesPaths(baseUrl: string, ...refs: string[]): string[] {\n return refs.map((ref) => new URL(ref, baseUrl).pathname);\n}\n\nexport async function startProcesses({\n onExit,\n modules,\n context,\n}: {\n onExit?: () => Promise<void> | void;\n modules: unknown[];\n context?: LauncherConfig[\"context\"];\n}) {\n const processDefs: ProcessDef[] = [];\n for (const mod of modules) {\n const imported =\n typeof mod === \"string\" || mod instanceof URL\n ? await import(String(mod))\n : mod;\n if (imported && typeof imported === \"object\") {\n processDefs.push(imported as ProcessDef);\n }\n }\n\n if (onExit) {\n processDefs.push({\n name: \"Exit\",\n config: { key: \"Exit\" },\n handlers: [() => onExit],\n });\n }\n\n return await launcher({ processes: processDefs, context });\n}\n\nexport async function startNodeProcesses(modules?: string[]): Promise<void> {\n try {\n if (!modules) {\n modules = process.argv.slice(2);\n }\n const terminate = await startProcesses({\n modules: resolveModulesPaths(`file://${process.cwd()}/`, ...modules),\n onExit: () => process.exit(0),\n });\n process.on(\"SIGINT\", terminate);\n process.on(\"SIGTERM\", terminate);\n process.stdin.resume();\n } catch (err) {\n console.error(\"Fatal error:\", err);\n process.exit(1);\n }\n}\n\nexport default startNodeProcesses;\n"],"mappings":";;AAGA,SAAS,oBAAoB,SAAiB,GAAG,MAA0B;AACzE,QAAO,KAAK,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,CAAC,SAAS;;AAG1D,eAAsB,eAAe,EACnC,QACA,SACA,WAKC;CACD,MAAM,cAA4B,EAAE;AACpC,MAAK,MAAM,OAAO,SAAS;EACzB,MAAM,WACJ,OAAO,QAAQ,YAAY,eAAe,MACtC,MAAM,OAAO,OAAO,IAAI,IACxB;AACN,MAAI,YAAY,OAAO,aAAa,SAClC,aAAY,KAAK,SAAuB;;AAI5C,KAAI,OACF,aAAY,KAAK;EACf,MAAM;EACN,QAAQ,EAAE,KAAK,QAAQ;EACvB,UAAU,OAAO,OAAO;EACzB,CAAC;AAGJ,QAAO,MAAM,SAAS;EAAE,WAAW;EAAa;EAAS,CAAC;;AAG5D,eAAsB,mBAAmB,SAAmC;AAC1E,KAAI;AACF,MAAI,CAAC,QACH,WAAU,QAAQ,KAAK,MAAM,EAAE;EAEjC,MAAM,YAAY,MAAM,eAAe;GACrC,SAAS,oBAAoB,UAAU,QAAQ,KAAK,CAAC,IAAI,GAAG,QAAQ;GACpE,cAAc,QAAQ,KAAK,EAAE;GAC9B,CAAC;AACF,UAAQ,GAAG,UAAU,UAAU;AAC/B,UAAQ,GAAG,WAAW,UAAU;AAChC,UAAQ,MAAM,QAAQ;UACf,KAAK;AACZ,UAAQ,MAAM,gBAAgB,IAAI;AAClC,UAAQ,KAAK,EAAE"}
@@ -1,129 +0,0 @@
1
- import { a as HandlerRegistry, c as toStageHandlers, d as FsmEventKey, f as FsmStateConfig, g as STATE_INITIAL, h as STATE_FINAL, i as launcher, l as EVENT_ANY, m as STATE_ANY, n as LauncherConfig, o as StageHandler, p as FsmStateKey, r as ProcessDef, s as createHandlerRegistry, t as KEY_LAUNCH_PROCESS, u as EVENT_EMPTY } from "./launcher-6VUDviTj.js";
2
-
3
- //#region src/core/fsm-base-class.d.ts
4
- type Handler<P extends unknown[] = unknown[], R = unknown> = (...args: P) => R;
5
- declare class FsmBaseClass {
6
- handlers: Record<string, Handler[]>;
7
- protected _addHandler<T>(type: string, handler: T, direct?: boolean): () => void;
8
- protected _removeHandler<T>(type: string, handler: T): void;
9
- _runHandler(type: string, ...args: unknown[]): Promise<void>;
10
- _handleError(error: Error | unknown): Promise<void>;
11
- }
12
- declare function bindMethods<T>(obj: T, ...methods: (string | symbol)[]): T;
13
- //#endregion
14
- //#region src/core/fsm-state-descriptor.d.ts
15
- declare class FsmStateDescriptor {
16
- transitions: Record<string, Record<string, string>>;
17
- states: Record<string, FsmStateDescriptor>;
18
- static build(config: FsmStateConfig): FsmStateDescriptor;
19
- getTargetStateKey(stateKey: string, eventKey: string): string;
20
- }
21
- //# sourceMappingURL=fsm-state-descriptor.d.ts.map
22
- //#endregion
23
- //#region src/core/fsm-state.d.ts
24
- type FsmStateDump = Record<string, unknown> & {
25
- key: string;
26
- data: Record<string, unknown>;
27
- };
28
- type FsmStateHandler = (state: FsmState, ...args: unknown[]) => void | Promise<void>;
29
- type FsmStateDumpHandler = (state: FsmState, dump: FsmStateDump) => void | Promise<void>;
30
- type FsmStateErrorHandler = (state: FsmState, error: unknown) => void | Promise<void>;
31
- declare class FsmState extends FsmBaseClass {
32
- process: FsmProcess;
33
- key: string;
34
- parent?: FsmState;
35
- descriptor?: FsmStateDescriptor;
36
- constructor(process: FsmProcess, parent: FsmState | undefined, key: string, descriptor?: FsmStateDescriptor);
37
- onEnter(handler: FsmStateHandler): () => void;
38
- onExit(handler: FsmStateHandler): () => void;
39
- onStateError(handler: FsmStateErrorHandler): () => void;
40
- dump(handler: FsmStateDumpHandler): () => void;
41
- restore(handler: FsmStateDumpHandler): () => void;
42
- _handleError(error: Error | unknown): Promise<void>;
43
- }
44
- //# sourceMappingURL=fsm-state.d.ts.map
45
- //#endregion
46
- //#region src/core/fsm-process.d.ts
47
- declare const STATUS_NONE = 0;
48
- declare const STATUS_FIRST = 1;
49
- declare const STATUS_NEXT = 2;
50
- declare const STATUS_LEAF = 4;
51
- declare const STATUS_LAST = 8;
52
- declare const STATUS_FINISHED = 16;
53
- declare const STATUS_ENTER: number;
54
- declare const STATUS_EXIT: number;
55
- type FsmProcessHandler = (process: FsmProcess, ...args: unknown[]) => void | Promise<void>;
56
- type FsmProcessDump = Record<string, unknown> & {
57
- status: number;
58
- event?: string;
59
- stack: FsmStateDump[];
60
- };
61
- type FsmProcessDumpHandler = (process: FsmProcess, dump: FsmProcessDump) => void | Promise<void>;
62
- declare class FsmProcess extends FsmBaseClass {
63
- state?: FsmState;
64
- event?: string;
65
- nextEvent?: string;
66
- running: boolean;
67
- mask: number;
68
- status: number;
69
- config: FsmStateConfig;
70
- rootDescriptor: FsmStateDescriptor;
71
- constructor(config: FsmStateConfig);
72
- shutdown(event?: string): Promise<void>;
73
- dispatch(event: string): Promise<boolean>;
74
- dump(...args: unknown[]): Promise<FsmProcessDump>;
75
- restore(dump: FsmProcessDump, ...args: unknown[]): Promise<this>;
76
- onStateCreate(handler: FsmStateHandler): () => void;
77
- onStateError(handler: (state: FsmState, error: unknown) => void | Promise<void>): () => void;
78
- _handleStateError(state: FsmState, error: Error | unknown): Promise<void>;
79
- _newState(parent: FsmState | undefined, key: string, descriptor: FsmStateDescriptor | undefined): Promise<FsmState>;
80
- _getSubstate(parent: FsmState | undefined, prevStateKey: string | undefined): Promise<FsmState | undefined>;
81
- _newSubstate(parent: FsmState | undefined, toState: string): Promise<FsmState>;
82
- _update(): Promise<boolean>;
83
- }
84
- //# sourceMappingURL=fsm-process.d.ts.map
85
- //#endregion
86
- //#region src/orchestrator/start-process.d.ts
87
- interface ProcessHandle {
88
- shutdown(): Promise<void>;
89
- dump(...args: unknown[]): Promise<FsmProcessDump>;
90
- restore(dump: FsmProcessDump, ...args: unknown[]): Promise<void>;
91
- }
92
- declare const KEY_DISPATCH = "fsm:dispatch";
93
- declare const KEY_TERMINATE = "fsm:terminate";
94
- declare const KEY_STATES = "fsm:states";
95
- declare const KEY_EVENT = "fsm:event";
96
- declare function getStateTransitions(state?: FsmState): [from: string, event: string, to: string][];
97
- declare function isStateTransitionEnabled(process: FsmProcess, event: string): boolean;
98
- declare function startProcess<C = unknown>(context: C, config: FsmStateConfig, load: (state: string, event: string | undefined) => StageHandler<C>[] | Promise<StageHandler<C>[]>, startEvent?: string): Promise<ProcessHandle>;
99
- /** @deprecated Use `startProcess` instead */
100
- declare const startFsmProcess: typeof startProcess;
101
- //# sourceMappingURL=start-process.d.ts.map
102
- //#endregion
103
- //#region src/utils/printer.d.ts
104
- type Printer = (...args: unknown[]) => void;
105
- type PrinterConfig = {
106
- prefix?: string;
107
- print?: (...args: unknown[]) => void;
108
- lineNumbers?: boolean;
109
- };
110
- declare function preparePrinter(process: FsmProcess, {
111
- prefix,
112
- print,
113
- lineNumbers
114
- }: PrinterConfig): Printer;
115
- declare function setProcessPrinter(process: FsmProcess, config?: PrinterConfig): void;
116
- declare function getProcessPrinter(process: FsmProcess): Printer;
117
- declare function getPrinter(state: {
118
- process: FsmProcess;
119
- }): Printer;
120
- //# sourceMappingURL=printer.d.ts.map
121
- //#endregion
122
- //#region src/utils/tracer.d.ts
123
- declare function setProcessTracer(process: FsmProcess, print?: Printer): () => void;
124
- declare function setStateTracer(state: FsmState, print?: Printer): void;
125
- //# sourceMappingURL=tracer.d.ts.map
126
-
127
- //#endregion
128
- export { EVENT_ANY, EVENT_EMPTY, FsmBaseClass, FsmEventKey, FsmProcess, FsmProcessDump, FsmProcessDumpHandler, FsmProcessHandler, FsmState, FsmStateConfig, FsmStateDescriptor, FsmStateDump, FsmStateDumpHandler, FsmStateErrorHandler, FsmStateHandler, FsmStateKey, HandlerRegistry, KEY_DISPATCH, KEY_EVENT, KEY_LAUNCH_PROCESS, KEY_STATES, KEY_TERMINATE, LauncherConfig, Printer, PrinterConfig, ProcessDef, ProcessHandle, STATE_ANY, STATE_FINAL, STATE_INITIAL, STATUS_ENTER, STATUS_EXIT, STATUS_FINISHED, STATUS_FIRST, STATUS_LAST, STATUS_LEAF, STATUS_NEXT, STATUS_NONE, StageHandler, bindMethods, createHandlerRegistry, getPrinter, getProcessPrinter, getStateTransitions, isStateTransitionEnabled, launcher, preparePrinter, setProcessPrinter, setProcessTracer, setStateTracer, startFsmProcess, startProcess, toStageHandlers };
129
- //# sourceMappingURL=index-vTjnkbGW.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-vTjnkbGW.d.ts","names":[],"sources":["../src/core/fsm-base-class.ts","../src/core/fsm-state-descriptor.ts","../src/core/fsm-state.ts","../src/core/fsm-process.ts","../src/orchestrator/start-process.ts","../src/utils/printer.ts","../src/utils/tracer.ts"],"mappings":"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"}
@@ -1,48 +0,0 @@
1
- //#region src/core/fsm-state-config.d.ts
2
- declare const STATE_ANY = "*";
3
- declare const STATE_INITIAL = "";
4
- declare const STATE_FINAL = "";
5
- declare const EVENT_ANY = "*";
6
- declare const EVENT_EMPTY = "";
7
- type FsmStateKey = string;
8
- type FsmEventKey = string;
9
- type FsmStateConfig = {
10
- key: FsmStateKey;
11
- transitions?: [from: FsmStateKey, event: FsmEventKey, to: FsmStateKey][];
12
- states?: FsmStateConfig[];
13
- } & Record<string, unknown>;
14
- //# sourceMappingURL=fsm-state-config.d.ts.map
15
- //#endregion
16
- //#region src/orchestrator/handler-registry.d.ts
17
- /** A handler invoked when a state is entered. */
18
- type StageHandler<C = Record<string, unknown>> = (context: C) => void | (() => void | Promise<void>) | Promise<void | (() => void | Promise<void>)> | AsyncGenerator<string, void, unknown> | Generator<string, void, unknown>;
19
- /** Maps a state key to a handler module key for auto-discovery. */
20
- type PatternFn = (state: string) => string;
21
- interface HandlerRegistry {
22
- register(processName: string, config: FsmStateConfig): () => void;
23
- registerHandlers(processName: string, ...modules: unknown[]): () => void;
24
- getConfig(processName: string): FsmStateConfig;
25
- getLoader<C>(processName: string, patterns?: PatternFn[]): (state: string, event?: string) => StageHandler<C>[];
26
- }
27
- declare function createHandlerRegistry(): HandlerRegistry;
28
- declare function toStageHandlers<C>(value: unknown, accept: (key: string, value: unknown) => boolean): StageHandler<C>[];
29
- //#endregion
30
- //#region src/orchestrator/launcher.d.ts
31
- declare const KEY_LAUNCH_PROCESS = "fsm:launch";
32
- interface LauncherConfig {
33
- processes: ProcessDef[];
34
- start?: string[];
35
- context?: (parent: Record<string, unknown>) => Record<string, unknown>;
36
- }
37
- interface ProcessDef {
38
- name: string;
39
- config: FsmStateConfig;
40
- handlers?: (StageHandler | Record<string, StageHandler | StageHandler[]>)[];
41
- start?: boolean;
42
- }
43
- declare function launcher(config: LauncherConfig): Promise<() => Promise<void>>;
44
- //# sourceMappingURL=launcher.d.ts.map
45
-
46
- //#endregion
47
- export { HandlerRegistry as a, toStageHandlers as c, FsmEventKey as d, FsmStateConfig as f, STATE_INITIAL as g, STATE_FINAL as h, launcher as i, EVENT_ANY as l, STATE_ANY as m, LauncherConfig as n, StageHandler as o, FsmStateKey as p, ProcessDef as r, createHandlerRegistry as s, KEY_LAUNCH_PROCESS as t, EVENT_EMPTY as u };
48
- //# sourceMappingURL=launcher-6VUDviTj.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"launcher-6VUDviTj.d.ts","names":[],"sources":["../src/core/fsm-state-config.ts","../src/orchestrator/handler-registry.ts","../src/orchestrator/launcher.ts"],"mappings":";cAAa,SAAA;AAAA,cACA,aAAA,GADS,EAAA;AACT,cACA,WAAA,GADa,EAAA;AACb,cACA,SAAA,GADW,GAAA;AACX,cACA,WAAA,GADS,EAAA;AACT,KAED,WAAA,GAFY,MAAA;AAEZ,KACA,WAAA,GADW,MAAA;AACX,KACA,cAAA,GADW;EACX,GAAA,EACL,WADK;EAAc,WAAA,CAAA,EAAA,CAAA,IAAA,EAEH,WAFG,EAAA,KAAA,EAEiB,WAFjB,EAAA,EAAA,EAEkC,WAFlC,CAAA,EAAA;QACnB,CAAA,EAEI,cAFJ,EAAA;IAGH,MAFmB,CAAA,MAAA,EAAA,OAAA,CAAA;;;;AAVvB;AACa,KCED,YDFc,CAAA,ICEG,MDFH,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA,GAAA,CAAA,OAAA,ECGf,CDHe,EAAA,GAAA,IAAA,GAAA,CAAA,GAAA,GAAA,IAAA,GCMR,ODNQ,CAAA,IAAA,CAAA,CAAA,GCOtB,ODPsB,CAAA,IAAA,GAAA,CAAA,GAAA,GAAA,IAAA,GCOO,ODPP,CAAA,IAAA,CAAA,CAAA,CAAA,GCQtB,cDRsB,CAAA,MAAA,EAAA,IAAA,EAAA,OAAA,CAAA,GCStB,SDTsB,CAAA,MAAA,EAAA,IAAA,EAAA,OAAA,CAAA;AAC1B;AACA,KCUK,SAAA,GDViB,CAAA,KAAA,EAAA,MAAA,EAAA,GAAA,MAAA;AACT,UCkBI,eAAA,CDlBO;EAEZ,QAAA,CAAA,WAAW,EAAA,MAAA,EAAA,MAAA,ECiBiB,cDjBjB,CAAA,EAAA,GAAA,GAAA,IAAA;EACX,gBAAW,CAAA,WAAA,EAAA,MAAA,EAAA,GAAA,OAAA,EAAA,OAAA,EAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EACX,SAAA,CAAA,WAAc,EAAA,MAAA,CAAA,ECiBQ,cDjBR;EAAA,SAAA,CAAA,CAAA,CAAA,CAAA,WAAA,EAAA,MAAA,EAAA,QAAA,CAAA,ECoBX,SDpBW,EAAA,CAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,MAAA,EAAA,GCqBc,YDrBd,CCqB2B,CDrB3B,CAAA,EAAA;;AAEH,iBCsBP,qBAAA,CAAA,CDtBO,ECsBkB,eDtBlB;AAAoB,iBCiF3B,eDjF2B,CAAA,CAAA,CAAA,CAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,CAAA,GAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,GAAA,OAAA,CAAA,ECoFxC,YDpFwC,CCoF3B,CDpF2B,CAAA,EAAA;;;AAT9B,cEIA,kBAAA,GFJa,YAAA;AACb,UEKI,cAAA,CFLO;EACX,SAAA,EEKA,UFLS,EAAA;EACT,KAAA,CAAA,EAAA,MAAW,EAAA;EAEZ,OAAA,CAAA,EAAA,CAAA,MAAW,EEIF,MFJE,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,GEI0B,MFJ1B,CAAA,MAAA,EAAA,OAAA,CAAA;AACvB;AACY,UEKK,UAAA,CFLS;EAAA,IAAA,EAAA,MAAA;QACnB,EEMG,cFNH;UACgB,CAAA,EAAA,CEMT,YFNS,GEMM,MFNN,CAAA,MAAA,EEMqB,YFNrB,GEMoC,YFNpC,EAAA,CAAA,CAAA,EAAA;OAAoB,CAAA,EAAA,OAAA;;AAChC,iBESW,QAAA,CFTX,MAAA,EEUD,cFVC,CAAA,EEWR,OFXQ,CAAA,GAAA,GEWM,OFXN,CAAA,IAAA,CAAA,CAAA"}