podwatch 1.1.1 → 1.1.3

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 +1 @@
1
- {"version":3,"file":"budget.d.ts","sourceRoot":"","sources":["../../src/hooks/budget.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAO7C,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAuBhF"}
1
+ {"version":3,"file":"budget.d.ts","sourceRoot":"","sources":["../../src/hooks/budget.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAO7C,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CA0BhF"}
@@ -20,18 +20,26 @@ function registerBudgetHooks(api, config) {
20
20
  // -----------------------------------------------------------------------
21
21
  // before_prompt_build — inject budget warning into prompt
22
22
  // -----------------------------------------------------------------------
23
- api.registerHook("before_prompt_build", async () => {
24
- if (!config.enableBudgetEnforcement)
25
- return;
26
- const budget = transmitter_js_1.transmitter.getCachedBudget();
27
- if (!budget?.hardStopActive)
28
- return;
29
- return {
30
- prependContext: "BUDGET HARD STOP ACTIVE. Your spending limit has been reached. " +
31
- "Reply ONLY with a brief message telling the user their budget is exceeded " +
32
- "and to visit podwatch.app/costs to resume. Do not use any tools. Do not perform any analysis.",
33
- };
34
- }, { name: "podwatch-budget-prompt-build" });
23
+ api.on("before_prompt_build", async () => {
24
+ try {
25
+ if (!config.enableBudgetEnforcement)
26
+ return;
27
+ const budget = transmitter_js_1.transmitter.getCachedBudget();
28
+ if (!budget?.hardStopActive)
29
+ return;
30
+ return {
31
+ prependContext: "BUDGET HARD STOP ACTIVE. Your spending limit has been reached. " +
32
+ "Reply ONLY with a brief message telling the user their budget is exceeded " +
33
+ "and to visit podwatch.app/costs to resume. Do not use any tools. Do not perform any analysis.",
34
+ };
35
+ }
36
+ catch (err) {
37
+ try {
38
+ console.error("[podwatch/budget] before_prompt_build handler error:", err);
39
+ }
40
+ catch { }
41
+ }
42
+ });
35
43
  api.logger.info("[podwatch/budget] Hard stop hooks registered");
36
44
  }
37
45
  //# sourceMappingURL=budget.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"budget.js","sourceRoot":"","sources":["../../src/hooks/budget.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;AAUH,kDAuBC;AA7BD,sDAAgD;AAEhD,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E,SAAgB,mBAAmB,CAAC,GAAc,EAAE,MAAsB;IACxE,0EAA0E;IAC1E,0DAA0D;IAC1D,0EAA0E;IAC1E,GAAG,CAAC,YAAY,CACd,qBAAqB,EACrB,KAAK,IAAiD,EAAE;QACtD,IAAI,CAAC,MAAM,CAAC,uBAAuB;YAAE,OAAO;QAE5C,MAAM,MAAM,GAAG,4BAAW,CAAC,eAAe,EAAE,CAAC;QAC7C,IAAI,CAAC,MAAM,EAAE,cAAc;YAAE,OAAO;QAEpC,OAAO;YACL,cAAc,EACZ,iEAAiE;gBACjE,4EAA4E;gBAC5E,+FAA+F;SAClG,CAAC;IACJ,CAAC,EACD,EAAE,IAAI,EAAE,8BAA8B,EAAE,CACzC,CAAC;IAEF,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;AAClE,CAAC"}
1
+ {"version":3,"file":"budget.js","sourceRoot":"","sources":["../../src/hooks/budget.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;AAUH,kDA0BC;AAhCD,sDAAgD;AAEhD,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E,SAAgB,mBAAmB,CAAC,GAAc,EAAE,MAAsB;IACxE,0EAA0E;IAC1E,0DAA0D;IAC1D,0EAA0E;IAC1E,GAAG,CAAC,EAAE,CACJ,qBAAqB,EACrB,KAAK,IAAiD,EAAE;QACtD,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,uBAAuB;gBAAE,OAAO;YAE5C,MAAM,MAAM,GAAG,4BAAW,CAAC,eAAe,EAAE,CAAC;YAC7C,IAAI,CAAC,MAAM,EAAE,cAAc;gBAAE,OAAO;YAEpC,OAAO;gBACL,cAAc,EACZ,iEAAiE;oBACjE,4EAA4E;oBAC5E,+FAA+F;aAClG,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC;gBAAC,OAAO,CAAC,KAAK,CAAC,sDAAsD,EAAE,GAAG,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QAC9F,CAAC;IACH,CAAC,CACF,CAAC;IAEF,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;AAClE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cost.d.ts","sourceRoot":"","sources":["../../src/hooks/cost.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAclD;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAE3D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,cAAc,EACtB,kBAAkB,EAAE,OAAO,GAC1B,IAAI,CAiFN"}
1
+ {"version":3,"file":"cost.d.ts","sourceRoot":"","sources":["../../src/hooks/cost.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAclD;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAE3D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,cAAc,EACtB,kBAAkB,EAAE,OAAO,GAC1B,IAAI,CA6FN"}
@@ -45,74 +45,96 @@ function _clearSessionIndex(sessionKey) {
45
45
  function registerCostHandler(api, config, diagnosticsEnabled) {
46
46
  // before_agent_start carries the full message history with usage on each assistant turn
47
47
  api.on("before_agent_start", async (event, ctx) => {
48
- if (!event?.messages || !Array.isArray(event.messages))
49
- return;
50
- const sessionKey = ctx?.sessionKey ?? "__default__";
51
- // Get per-session index (defaults to 0 for new sessions)
52
- let lastSeenIndex = lastSeenIndexMap.get(sessionKey) ?? 0;
53
- // Bounds check: if messages were compacted, reset to 0
54
- if (lastSeenIndex > event.messages.length) {
55
- lastSeenIndex = 0;
56
- }
57
- // Only process new messages since last invocation
58
- const newMessages = event.messages.slice(lastSeenIndex);
59
- lastSeenIndexMap.set(sessionKey, event.messages.length);
60
- if (newMessages.length === 0)
61
- return;
62
- // Detect heartbeat-triggered turns by scanning the last user message
63
- // OpenClaw heartbeat prompts always contain "HEARTBEAT" (e.g. "Read HEARTBEAT.md")
64
- let isHeartbeat = false;
65
- for (let i = event.messages.length - 1; i >= 0; i--) {
66
- const m = event.messages[i];
67
- if (m?.role === "user") {
68
- const text = typeof m.content === "string" ? m.content : JSON.stringify(m.content ?? "");
69
- if (/HEARTBEAT/i.test(text)) {
70
- isHeartbeat = true;
48
+ try {
49
+ if (!event || typeof event !== "object")
50
+ return;
51
+ if (!event.messages || !Array.isArray(event.messages))
52
+ return;
53
+ const safeCtx = (ctx && typeof ctx === "object") ? ctx : {};
54
+ const sessionKey = safeCtx?.sessionKey ?? "__default__";
55
+ // Get per-session index (defaults to 0 for new sessions)
56
+ let lastSeenIndex = lastSeenIndexMap.get(sessionKey) ?? 0;
57
+ // Bounds check: if messages were compacted, reset to 0
58
+ if (lastSeenIndex > event.messages.length) {
59
+ lastSeenIndex = 0;
60
+ }
61
+ // Only process new messages since last invocation
62
+ const newMessages = event.messages.slice(lastSeenIndex);
63
+ lastSeenIndexMap.set(sessionKey, event.messages.length);
64
+ if (newMessages.length === 0)
65
+ return;
66
+ // Detect heartbeat-triggered turns by scanning the last user message
67
+ // OpenClaw heartbeat prompts always contain "HEARTBEAT" (e.g. "Read HEARTBEAT.md")
68
+ let isHeartbeat = false;
69
+ for (let i = event.messages.length - 1; i >= 0; i--) {
70
+ const m = event.messages[i];
71
+ if (m?.role === "user") {
72
+ const text = typeof m.content === "string" ? m.content : JSON.stringify(m.content ?? "");
73
+ if (/HEARTBEAT/i.test(text)) {
74
+ isHeartbeat = true;
75
+ }
76
+ break; // only check the last user message
71
77
  }
72
- break; // only check the last user message
78
+ }
79
+ // Generate a turn_id for this batch of cost events (per before_agent_start invocation)
80
+ // This links all cost events from the same LLM turn together
81
+ const turnId = generateTurnId();
82
+ for (const msg of newMessages) {
83
+ if (!msg || typeof msg !== "object")
84
+ continue;
85
+ // Only assistant messages have usage data
86
+ if (msg.role !== "assistant")
87
+ continue;
88
+ if (!msg.usage)
89
+ continue;
90
+ // Skip zero-cost internal messages (delivery-mirror, etc.)
91
+ if (msg.provider === "openclaw" || msg.model === "delivery-mirror")
92
+ continue;
93
+ if (msg.usage.totalTokens === 0 && !msg.usage.input && !msg.usage.output)
94
+ continue;
95
+ const costTotal = msg.usage.cost?.total ?? undefined;
96
+ transmitter_js_1.transmitter.enqueue({
97
+ type: "cost",
98
+ ts: msg.timestamp ?? Date.now(),
99
+ sessionKey: safeCtx?.sessionKey,
100
+ agentId: safeCtx?.agentId,
101
+ provider: msg.provider,
102
+ model: msg.model,
103
+ inputTokens: msg.usage.input ?? 0,
104
+ outputTokens: msg.usage.output ?? 0,
105
+ cacheReadTokens: msg.usage.cacheRead ?? 0,
106
+ cacheWriteTokens: msg.usage.cacheWrite ?? 0,
107
+ totalTokens: msg.usage.totalTokens ?? ((msg.usage.input ?? 0) + (msg.usage.output ?? 0)),
108
+ costUsd: costTotal,
109
+ costBreakdown: msg.usage.cost, // full {input, output, cacheRead, cacheWrite, total} object
110
+ durationMs: undefined,
111
+ correlationId: turnId, // Link cost events per turn
112
+ // Tag heartbeat-triggered cost events so the dashboard can distinguish them
113
+ ...(isHeartbeat ? { sessionType: "heartbeat" } : {}),
114
+ });
73
115
  }
74
116
  }
75
- // Generate a turn_id for this batch of cost events (per before_agent_start invocation)
76
- // This links all cost events from the same LLM turn together
77
- const turnId = generateTurnId();
78
- for (const msg of newMessages) {
79
- // Only assistant messages have usage data
80
- if (msg.role !== "assistant")
81
- continue;
82
- if (!msg.usage)
83
- continue;
84
- // Skip zero-cost internal messages (delivery-mirror, etc.)
85
- if (msg.provider === "openclaw" || msg.model === "delivery-mirror")
86
- continue;
87
- if (msg.usage.totalTokens === 0 && !msg.usage.input && !msg.usage.output)
88
- continue;
89
- const costTotal = msg.usage.cost?.total ?? undefined;
90
- transmitter_js_1.transmitter.enqueue({
91
- type: "cost",
92
- ts: msg.timestamp ?? Date.now(),
93
- sessionKey: ctx?.sessionKey,
94
- agentId: ctx?.agentId,
95
- provider: msg.provider,
96
- model: msg.model,
97
- inputTokens: msg.usage.input ?? 0,
98
- outputTokens: msg.usage.output ?? 0,
99
- cacheReadTokens: msg.usage.cacheRead ?? 0,
100
- cacheWriteTokens: msg.usage.cacheWrite ?? 0,
101
- totalTokens: msg.usage.totalTokens ?? ((msg.usage.input ?? 0) + (msg.usage.output ?? 0)),
102
- costUsd: costTotal,
103
- costBreakdown: msg.usage.cost, // full {input, output, cacheRead, cacheWrite, total} object
104
- durationMs: undefined,
105
- correlationId: turnId, // Link cost events per turn
106
- // Tag heartbeat-triggered cost events so the dashboard can distinguish them
107
- ...(isHeartbeat ? { sessionType: "heartbeat" } : {}),
108
- });
117
+ catch (err) {
118
+ try {
119
+ console.error("[podwatch/cost] before_agent_start handler error:", err);
120
+ }
121
+ catch { }
109
122
  }
110
123
  }, { name: "podwatch-cost" });
111
124
  // Clean up session index on session end to prevent memory leaks
112
125
  api.on("session_end", async (_event, ctx) => {
113
- const sessionKey = ctx?.sessionKey;
114
- if (sessionKey) {
115
- lastSeenIndexMap.delete(sessionKey);
126
+ try {
127
+ const safeCtx = (ctx && typeof ctx === "object") ? ctx : {};
128
+ const sessionKey = safeCtx?.sessionKey;
129
+ if (sessionKey) {
130
+ lastSeenIndexMap.delete(sessionKey);
131
+ }
132
+ }
133
+ catch (err) {
134
+ try {
135
+ console.error("[podwatch/cost] session_end handler error:", err);
136
+ }
137
+ catch { }
116
138
  }
117
139
  }, { name: "podwatch-cost-cleanup" });
118
140
  api.logger.info("[podwatch/cost] Cost tracking via before_agent_start message history");
@@ -1 +1 @@
1
- {"version":3,"file":"cost.js","sourceRoot":"","sources":["../../src/hooks/cost.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cost.js","sourceRoot":"","sources":["../../src/hooks/cost.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/hooks/lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AA4BlD;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CA4HhF"}
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/hooks/lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AA4BlD;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CA2IhF"}
@@ -90,65 +90,92 @@ function registerLifecycleHandlers(api, config) {
90
90
  // gateway_start — best-effort re-scan (in case it ever fires)
91
91
  // -----------------------------------------------------------------------
92
92
  api.on("gateway_start", async (event) => {
93
- // Check config changes on gateway restart (config may have changed)
94
- if (api.config) {
95
- (0, config_monitor_js_1.checkConfigChanges)(api.config);
93
+ try {
94
+ // Check config changes on gateway restart (config may have changed)
95
+ if (api.config) {
96
+ (0, config_monitor_js_1.checkConfigChanges)(api.config);
97
+ }
98
+ // Re-run scan as best-effort; pulse is already running
99
+ void runScan(api.config?.agents?.defaults?.workspace);
100
+ }
101
+ catch (err) {
102
+ try {
103
+ console.error("[podwatch/lifecycle] gateway_start handler error:", err);
104
+ }
105
+ catch { }
96
106
  }
97
- // Re-run scan as best-effort; pulse is already running
98
- void runScan(api.config?.agents?.defaults?.workspace);
99
107
  }, { name: "podwatch-gateway-start" });
100
108
  // -----------------------------------------------------------------------
101
109
  // gateway_stop — graceful shutdown
102
110
  // -----------------------------------------------------------------------
103
111
  api.on("gateway_stop", async () => {
104
- // Stop intervals
105
- if (pulseTimer) {
106
- clearTimeout(pulseTimer);
107
- pulseTimer = null;
108
- }
109
- if (scanTimer) {
110
- clearInterval(scanTimer);
111
- scanTimer = null;
112
+ try {
113
+ // Stop intervals
114
+ if (pulseTimer) {
115
+ clearTimeout(pulseTimer);
116
+ pulseTimer = null;
117
+ }
118
+ if (scanTimer) {
119
+ clearInterval(scanTimer);
120
+ scanTimer = null;
121
+ }
122
+ // Unsubscribe from diagnostic events
123
+ const unsubscribe = api.__podwatch_unsubscribeDiagnostics;
124
+ if (typeof unsubscribe === "function") {
125
+ unsubscribe();
126
+ }
127
+ // Flush remaining events
128
+ await transmitter_js_1.transmitter.shutdown();
129
+ api.logger.info("[podwatch/lifecycle] Graceful shutdown complete");
112
130
  }
113
- // Unsubscribe from diagnostic events
114
- const unsubscribe = api.__podwatch_unsubscribeDiagnostics;
115
- if (typeof unsubscribe === "function") {
116
- unsubscribe();
131
+ catch (err) {
132
+ try {
133
+ console.error("[podwatch/lifecycle] gateway_stop handler error:", err);
134
+ }
135
+ catch { }
117
136
  }
118
- // Flush remaining events
119
- await transmitter_js_1.transmitter.shutdown();
120
- api.logger.info("[podwatch/lifecycle] Graceful shutdown complete");
121
137
  }, { name: "podwatch-gateway-stop" });
122
138
  // -----------------------------------------------------------------------
123
139
  // before_compaction — context window pressure
124
140
  // -----------------------------------------------------------------------
125
141
  api.on("before_compaction", async (event, ctx) => {
126
- transmitter_js_1.transmitter.enqueue({
127
- type: "compaction",
128
- ts: Date.now(),
129
- messageCount: event.messageCount,
130
- tokenCount: event.tokenCount,
131
- sessionKey: ctx.sessionKey,
132
- agentId: ctx.agentId,
133
- });
134
- // Context pressure alert — only if both fields are available
135
- if (typeof event.tokenCount === "number" &&
136
- typeof event.contextLimit === "number") {
137
- const contextLimit = event.contextLimit;
138
- const ratio = event.tokenCount / contextLimit;
139
- if (ratio > 0.8) {
140
- transmitter_js_1.transmitter.enqueue({
141
- type: "alert",
142
- ts: Date.now(),
143
- severity: "warning",
144
- pattern: "context_pressure",
145
- tokenCount: event.tokenCount,
146
- contextLimit,
147
- ratio,
148
- sessionKey: ctx.sessionKey,
149
- agentId: ctx.agentId,
150
- });
142
+ try {
143
+ if (!event || typeof event !== "object")
144
+ return;
145
+ const safeCtx = (ctx && typeof ctx === "object") ? ctx : {};
146
+ transmitter_js_1.transmitter.enqueue({
147
+ type: "compaction",
148
+ ts: Date.now(),
149
+ messageCount: typeof event.messageCount === "number" ? event.messageCount : 0,
150
+ tokenCount: event.tokenCount,
151
+ sessionKey: safeCtx.sessionKey,
152
+ agentId: safeCtx.agentId,
153
+ });
154
+ // Context pressure alert only if both fields are available
155
+ if (typeof event.tokenCount === "number" &&
156
+ typeof event.contextLimit === "number") {
157
+ const contextLimit = event.contextLimit;
158
+ const ratio = event.tokenCount / contextLimit;
159
+ if (ratio > 0.8) {
160
+ transmitter_js_1.transmitter.enqueue({
161
+ type: "alert",
162
+ ts: Date.now(),
163
+ severity: "warning",
164
+ pattern: "context_pressure",
165
+ tokenCount: event.tokenCount,
166
+ contextLimit,
167
+ ratio,
168
+ sessionKey: safeCtx.sessionKey,
169
+ agentId: safeCtx.agentId,
170
+ });
171
+ }
172
+ }
173
+ }
174
+ catch (err) {
175
+ try {
176
+ console.error("[podwatch/lifecycle] before_compaction handler error:", err);
151
177
  }
178
+ catch { }
152
179
  }
153
180
  }, { name: "podwatch-compaction" });
154
181
  }
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/hooks/lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/hooks/lifecycle.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/hooks/security.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAmDlD;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CA0K/E"}
1
+ {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/hooks/security.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAmDlD;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CA+L/E"}