@eddyskywalker/dsh-chatgpt-subscription 0.4.0 → 0.6.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.
- package/CHANGELOG.md +56 -0
- package/README.md +67 -1
- package/lib/client.js +2255 -742
- package/lib/client.js.map +1 -1
- package/lib/index.js +17139 -12058
- package/lib/types/client/CodexSubscriptionSection.d.ts +1 -1
- package/lib/types/client/CodexSubscriptionSection.d.ts.map +1 -1
- package/lib/types/client/ProviderHubSection.d.ts.map +1 -1
- package/lib/types/client/antigravity/AntigravitySection.d.ts.map +1 -1
- package/lib/types/client/antigravity/locales.d.ts +24 -192
- package/lib/types/client/antigravity/locales.d.ts.map +1 -1
- package/lib/types/client/api.d.ts +13 -1
- package/lib/types/client/api.d.ts.map +1 -1
- package/lib/types/client/command-code/CommandCodeSection.d.ts.map +1 -1
- package/lib/types/client/command-code/locales.d.ts +66 -201
- package/lib/types/client/command-code/locales.d.ts.map +1 -1
- package/lib/types/client/common/AccountPoolSection.d.ts +55 -0
- package/lib/types/client/common/AccountPoolSection.d.ts.map +1 -0
- package/lib/types/client/common/account-pool-labels.d.ts +43 -0
- package/lib/types/client/common/account-pool-labels.d.ts.map +1 -0
- package/lib/types/client/common/styles.d.ts +11 -0
- package/lib/types/client/common/styles.d.ts.map +1 -0
- package/lib/types/client/index.d.ts +1 -0
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/client/kimi-code/KimiCodeSection.d.ts.map +1 -1
- package/lib/types/client/kimi-code/locales.d.ts +63 -336
- package/lib/types/client/kimi-code/locales.d.ts.map +1 -1
- package/lib/types/client/locales.d.ts +41 -1
- package/lib/types/client/locales.d.ts.map +1 -1
- package/lib/types/client/workbuddy/WorkBuddyComposerQuota.d.ts +26 -0
- package/lib/types/client/workbuddy/WorkBuddyComposerQuota.d.ts.map +1 -0
- package/lib/types/client/workbuddy/WorkBuddySection.d.ts +41 -0
- package/lib/types/client/workbuddy/WorkBuddySection.d.ts.map +1 -0
- package/lib/types/client/workbuddy/locales.d.ts +563 -0
- package/lib/types/client/workbuddy/locales.d.ts.map +1 -0
- package/lib/types/client/workbuddy/styles.d.ts +11 -0
- package/lib/types/client/workbuddy/styles.d.ts.map +1 -0
- package/lib/types/host/antigravity/account-pool.d.ts +15 -5
- package/lib/types/host/antigravity/account-pool.d.ts.map +1 -1
- package/lib/types/host/antigravity/routes.d.ts.map +1 -1
- package/lib/types/host/codex-account-pool.d.ts +64 -0
- package/lib/types/host/codex-account-pool.d.ts.map +1 -0
- package/lib/types/host/command-code/account-pool.d.ts +60 -0
- package/lib/types/host/command-code/account-pool.d.ts.map +1 -0
- package/lib/types/host/command-code/adapter.d.ts +11 -1
- package/lib/types/host/command-code/adapter.d.ts.map +1 -1
- package/lib/types/host/command-code/client.d.ts +17 -1
- package/lib/types/host/command-code/client.d.ts.map +1 -1
- package/lib/types/host/command-code/oauth.d.ts +4 -1
- package/lib/types/host/command-code/oauth.d.ts.map +1 -1
- package/lib/types/host/command-code/routes.d.ts +11 -2
- package/lib/types/host/command-code/routes.d.ts.map +1 -1
- package/lib/types/host/common/account-pool.d.ts +197 -0
- package/lib/types/host/common/account-pool.d.ts.map +1 -0
- package/lib/types/host/common/home.d.ts +8 -0
- package/lib/types/host/common/home.d.ts.map +1 -0
- package/lib/types/host/kimi-code/account-pool.d.ts +48 -0
- package/lib/types/host/kimi-code/account-pool.d.ts.map +1 -0
- package/lib/types/host/kimi-code/adapter.d.ts +10 -1
- package/lib/types/host/kimi-code/adapter.d.ts.map +1 -1
- package/lib/types/host/kimi-code/client.d.ts +16 -0
- package/lib/types/host/kimi-code/client.d.ts.map +1 -1
- package/lib/types/host/kimi-code/oauth.d.ts +2 -0
- package/lib/types/host/kimi-code/oauth.d.ts.map +1 -1
- package/lib/types/host/kimi-code/routes.d.ts +10 -2
- package/lib/types/host/kimi-code/routes.d.ts.map +1 -1
- package/lib/types/host/oauth-service.d.ts +41 -2
- package/lib/types/host/oauth-service.d.ts.map +1 -1
- package/lib/types/host/preset-sync.d.ts +7 -1
- package/lib/types/host/preset-sync.d.ts.map +1 -1
- package/lib/types/host/responses-client.d.ts +15 -0
- package/lib/types/host/responses-client.d.ts.map +1 -1
- package/lib/types/host/routes.d.ts +2 -1
- package/lib/types/host/routes.d.ts.map +1 -1
- package/lib/types/host/usage-service.d.ts +15 -0
- package/lib/types/host/usage-service.d.ts.map +1 -1
- package/lib/types/host/workbuddy/account-pool.d.ts +106 -0
- package/lib/types/host/workbuddy/account-pool.d.ts.map +1 -0
- package/lib/types/host/workbuddy/adapter.d.ts +97 -0
- package/lib/types/host/workbuddy/adapter.d.ts.map +1 -0
- package/lib/types/host/workbuddy/client.d.ts +90 -0
- package/lib/types/host/workbuddy/client.d.ts.map +1 -0
- package/lib/types/host/workbuddy/mapper.d.ts +114 -0
- package/lib/types/host/workbuddy/mapper.d.ts.map +1 -0
- package/lib/types/host/workbuddy/model-catalog.d.ts +108 -0
- package/lib/types/host/workbuddy/model-catalog.d.ts.map +1 -0
- package/lib/types/host/workbuddy/oauth.d.ts +38 -0
- package/lib/types/host/workbuddy/oauth.d.ts.map +1 -0
- package/lib/types/host/workbuddy/routes.d.ts +33 -0
- package/lib/types/host/workbuddy/routes.d.ts.map +1 -0
- package/lib/types/host/workbuddy/token-store.d.ts +216 -0
- package/lib/types/host/workbuddy/token-store.d.ts.map +1 -0
- package/lib/types/host/workbuddy/types.d.ts +127 -0
- package/lib/types/host/workbuddy/types.d.ts.map +1 -0
- package/lib/types/index.d.ts +10 -0
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/shared/account-pool-contracts.d.ts +55 -0
- package/lib/types/shared/account-pool-contracts.d.ts.map +1 -0
- package/lib/types/shared/antigravity-contracts.d.ts +4 -10
- package/lib/types/shared/antigravity-contracts.d.ts.map +1 -1
- package/lib/types/shared/command-code-contracts.d.ts +14 -0
- package/lib/types/shared/command-code-contracts.d.ts.map +1 -1
- package/lib/types/shared/contracts.d.ts +6 -0
- package/lib/types/shared/contracts.d.ts.map +1 -1
- package/lib/types/shared/kimi-code-contracts.d.ts +14 -0
- package/lib/types/shared/kimi-code-contracts.d.ts.map +1 -1
- package/lib/types/shared/workbuddy-contracts.d.ts +204 -0
- package/lib/types/shared/workbuddy-contracts.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -126,6 +126,26 @@ export declare const zh: {
|
|
|
126
126
|
readonly imagePreviewOpenOriginal: "打开原图";
|
|
127
127
|
readonly retry: "重试";
|
|
128
128
|
readonly unknown: "未知";
|
|
129
|
+
readonly accountPool: string;
|
|
130
|
+
readonly addAccount: string;
|
|
131
|
+
readonly accountCount: string;
|
|
132
|
+
readonly primaryAccount: string;
|
|
133
|
+
readonly activeAccount: string;
|
|
134
|
+
readonly setPrimary: string;
|
|
135
|
+
readonly deleteAccount: string;
|
|
136
|
+
readonly cooling: string;
|
|
137
|
+
readonly cooldownLeft: string;
|
|
138
|
+
readonly clearCooldown: string;
|
|
139
|
+
readonly needsRelogin: string;
|
|
140
|
+
readonly relogin: string;
|
|
141
|
+
readonly rotationStrategy: string;
|
|
142
|
+
readonly strategySequential: string;
|
|
143
|
+
readonly strategyRoundRobin: string;
|
|
144
|
+
readonly strategySticky: string;
|
|
145
|
+
readonly noAccounts: string;
|
|
146
|
+
readonly storageNotice: string;
|
|
147
|
+
readonly email: string;
|
|
148
|
+
readonly lastUsed: string;
|
|
129
149
|
};
|
|
130
150
|
export declare const en: Record<keyof typeof zh, string>;
|
|
131
151
|
export type LocaleKey = keyof typeof zh;
|
|
@@ -257,7 +277,27 @@ export declare const dictionaries: {
|
|
|
257
277
|
readonly imagePreviewOpenOriginal: "打开原图";
|
|
258
278
|
readonly retry: "重试";
|
|
259
279
|
readonly unknown: "未知";
|
|
280
|
+
readonly accountPool: string;
|
|
281
|
+
readonly addAccount: string;
|
|
282
|
+
readonly accountCount: string;
|
|
283
|
+
readonly primaryAccount: string;
|
|
284
|
+
readonly activeAccount: string;
|
|
285
|
+
readonly setPrimary: string;
|
|
286
|
+
readonly deleteAccount: string;
|
|
287
|
+
readonly cooling: string;
|
|
288
|
+
readonly cooldownLeft: string;
|
|
289
|
+
readonly clearCooldown: string;
|
|
290
|
+
readonly needsRelogin: string;
|
|
291
|
+
readonly relogin: string;
|
|
292
|
+
readonly rotationStrategy: string;
|
|
293
|
+
readonly strategySequential: string;
|
|
294
|
+
readonly strategyRoundRobin: string;
|
|
295
|
+
readonly strategySticky: string;
|
|
296
|
+
readonly noAccounts: string;
|
|
297
|
+
readonly storageNotice: string;
|
|
298
|
+
readonly email: string;
|
|
299
|
+
readonly lastUsed: string;
|
|
260
300
|
};
|
|
261
|
-
en: Record<"
|
|
301
|
+
en: Record<"accountId" | "relogin" | "pending" | "tokens" | "title" | "hubTitle" | "intro" | "account" | "signedOut" | "signedIn" | "plan" | "expires" | "storage" | "storageWindows" | "storageMacKeychain" | "storageLinuxFile" | "storageMemory" | "storageUnavailable" | "securityWindows" | "securityMacKeychain" | "securityLinuxFile" | "securityMemory" | "securityUnavailable" | "signIn" | "signInAgain" | "cancel" | "signOut" | "refreshToken" | "popupBlocked" | "continueLogin" | "loading" | "connection" | "provider" | "connectionState" | "connected" | "untested" | "testConnection" | "testing" | "latency" | "enableProvider" | "selectAll" | "unselectAll" | "models" | "modelsHint" | "proxySettings" | "proxyMode" | "proxyModeHint" | "proxyModeAuto" | "proxyModeCustom" | "proxyModeDirect" | "customProxyUrl" | "customProxyUrlHint" | "customProxyUrlPlaceholder" | "saveProxyUrl" | "proxyDetected" | "proxyDetectedEffective" | "proxyNoneDetected" | "proxyDirectHint" | "enhancements" | "fastMode" | "fastModeHint" | "outputVerbosity" | "outputVerbosityHint" | "verbosityLow" | "verbosityMedium" | "verbosityHigh" | "reasoningSummary" | "reasoningSummaryHint" | "summaryAuto" | "summaryConcise" | "summaryDetailed" | "summaryNone" | "searchProvider" | "searchProviderHint" | "searchProviderDsh" | "searchProviderCodex" | "providerDefault" | "contextWindows" | "contextWindowsHint" | "contextWindow" | "contextWindowInvalid" | "saveContextWindow" | "save" | "quickQuota" | "quickQuotaHint" | "quota" | "quotaIntro" | "refreshQuota" | "refreshing" | "noQuota" | "quotaSignedOut" | "stale" | "updated" | "primary" | "secondary" | "limitWindow" | "used" | "remaining" | "available" | "unavailable" | "unlimited" | "credits" | "monthlySpend" | "resetCredits" | "resetCreditExpires" | "useResetCredit" | "usingResetCredit" | "useResetCreditConfirm" | "resetCreditUsed" | "spendControlReached" | "limit" | "exhausted" | "resets" | "quickQuotaLabel" | "quickQuotaLoading" | "imageToolRunning" | "imageToolDone" | "imageToolFailed" | "image" | "openImage" | "openNamedImage" | "imageLoading" | "imageLoadFailed" | "imagePreviewClose" | "imagePreviewOpenOriginal" | "retry" | "unknown" | "accountPool" | "addAccount" | "accountCount" | "primaryAccount" | "activeAccount" | "setPrimary" | "deleteAccount" | "cooling" | "cooldownLeft" | "clearCooldown" | "needsRelogin" | "rotationStrategy" | "strategySequential" | "strategyRoundRobin" | "strategySticky" | "noAccounts" | "storageNotice" | "email" | "lastUsed", string>;
|
|
262
302
|
};
|
|
263
303
|
//# sourceMappingURL=locales.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../../src/client/locales.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,EAAE,EAAG,0BAAmC,CAAA;
|
|
1
|
+
{"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../../src/client/locales.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,EAAE,EAAG,0BAAmC,CAAA;AAIrD,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkIL,CAAA;AAEV,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,OAAO,EAAE,EAAE,MAAM,CAgI9C,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,EAAE,CAAA;AACvC,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAa,CAAA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ModelDirectoryState } from '@deepseek-ai/dsh-client-ui-model-selection/client';
|
|
2
|
+
import type { PropsLocale, PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots';
|
|
3
|
+
import type { WorkBuddyWebStatus } from '../../shared/workbuddy-contracts.ts';
|
|
4
|
+
import type { SnapshotStore } from '../store.ts';
|
|
5
|
+
import { NS_WORKBUDDY } from './locales.ts';
|
|
6
|
+
type Props = PropsRuntime<'conversation.input.right'> & PropsLocale<typeof NS_WORKBUDDY> & {
|
|
7
|
+
directory: SnapshotStore<ModelDirectoryState>;
|
|
8
|
+
loadModelDirectory: () => void;
|
|
9
|
+
};
|
|
10
|
+
interface BadgeFacts {
|
|
11
|
+
text: string;
|
|
12
|
+
tooltip: string;
|
|
13
|
+
level: 'normal' | 'warning' | 'danger';
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Pick the most meaningful number for the badge.
|
|
17
|
+
*
|
|
18
|
+
* A bounded allowance is what a user spends down, so it wins over a bare credit
|
|
19
|
+
* balance; the balance shows only when no percentage is reported. The billing
|
|
20
|
+
* payload reports both a cycle meter and a package meter, and the cycle meter
|
|
21
|
+
* is the one that actually resets, so it is preferred when both exist.
|
|
22
|
+
*/
|
|
23
|
+
export declare function selectBadgeFacts(status: WorkBuddyWebStatus | null): BadgeFacts | null;
|
|
24
|
+
export declare function WorkBuddyComposerQuota({ directory, loadModelDirectory }: Props): React.JSX.Element | null;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=WorkBuddyComposerQuota.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkBuddyComposerQuota.d.ts","sourceRoot":"","sources":["../../../../src/client/workbuddy/WorkBuddyComposerQuota.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAA;AAC5F,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AACjF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAmB3C,KAAK,KAAK,GAAG,YAAY,CAAC,0BAA0B,CAAC,GACnD,WAAW,CAAC,OAAO,YAAY,CAAC,GAAG;IACjC,SAAS,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAA;IAC7C,kBAAkB,EAAE,MAAM,IAAI,CAAA;CAC/B,CAAA;AAEH,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAA;CACvC;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,GAAG,UAAU,GAAG,IAAI,CAyBrF;AAED,wBAAgB,sBAAsB,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAgEzG"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { WorkBuddyModelOption, WorkBuddyReasoningEffort } from '../../shared/workbuddy-contracts.ts';
|
|
3
|
+
interface Props {
|
|
4
|
+
onModelChange?: () => void;
|
|
5
|
+
loadModelDirectory?: () => void;
|
|
6
|
+
}
|
|
7
|
+
/** Parse "1M", "512K", "200000" into a positive integer token count. */
|
|
8
|
+
export declare function parsePositiveCapacity(value: string): number | null;
|
|
9
|
+
export declare function formatCapacity(value: number): string;
|
|
10
|
+
/** Mask a UIN so the card shows identity without publishing the full number. */
|
|
11
|
+
export declare function maskUin(uin?: string | null): string;
|
|
12
|
+
/** Shorten an absolute credential path to its file name for display. */
|
|
13
|
+
export declare function displayFile(file?: string | null): string;
|
|
14
|
+
/** One selectable default reasoning level, with the models that declare it. */
|
|
15
|
+
export interface ReasoningEffortChoice {
|
|
16
|
+
value: WorkBuddyReasoningEffort;
|
|
17
|
+
/** Model names that accept this level, in catalog order. */
|
|
18
|
+
models: string[];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Reasoning levels the default-effort control may offer.
|
|
22
|
+
*
|
|
23
|
+
* The levels come from what this account's models actually declare — never from
|
|
24
|
+
* the shipped enum alone. The setting is one global default applied to whichever
|
|
25
|
+
* model a conversation uses, so the list is their union; each entry carries the
|
|
26
|
+
* models behind it, and a level only some models accept is labelled as such.
|
|
27
|
+
* Order follows {@link WORKBUDDY_REASONING_EFFORTS}, which is the escalating
|
|
28
|
+
* order the upstream ladder uses.
|
|
29
|
+
*/
|
|
30
|
+
export declare function reasoningEffortChoices(models: WorkBuddyModelOption[]): ReasoningEffortChoice[];
|
|
31
|
+
/**
|
|
32
|
+
* Whether a saved default is unusable for every model on this account.
|
|
33
|
+
*
|
|
34
|
+
* The adapter drops a level the chosen model does not accept instead of sending
|
|
35
|
+
* it, so a value that no model declares silently does nothing. Reporting it is
|
|
36
|
+
* what keeps that from looking like the setting was applied.
|
|
37
|
+
*/
|
|
38
|
+
export declare function unsupportedReasoningEffort(configured: WorkBuddyReasoningEffort | null | undefined, models: WorkBuddyModelOption[]): WorkBuddyReasoningEffort | null;
|
|
39
|
+
export declare function WorkBuddySection({ onModelChange, loadModelDirectory }: Props): React.ReactElement;
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=WorkBuddySection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkBuddySection.d.ts","sourceRoot":"","sources":["../../../../src/client/workbuddy/WorkBuddySection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAA;AAChF,OAAO,KAAK,EAEV,oBAAoB,EACpB,wBAAwB,EAEzB,MAAM,qCAAqC,CAAA;AAuB5C,UAAU,KAAK;IACb,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAC1B,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAA;CAChC;AAiED,wEAAwE;AACxE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOlE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIpD;AAuBD,gFAAgF;AAChF,wBAAgB,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAInD;AAED,wEAAwE;AACxE,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAIxD;AAED,+EAA+E;AAC/E,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,wBAAwB,CAAA;IAC/B,4DAA4D;IAC5D,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,oBAAoB,EAAE,GAAG,qBAAqB,EAAE,CAY9F;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,wBAAwB,GAAG,IAAI,GAAG,SAAS,EACvD,MAAM,EAAE,oBAAoB,EAAE,GAC7B,wBAAwB,GAAG,IAAI,CAIjC;AA+BD,wBAAgB,gBAAgB,CAAC,EAAE,aAAa,EAAE,kBAAkB,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,YAAY,CA4uBjG"}
|