@versini/sassysaint 8.90.2 → 8.91.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/dist/chunks/{AboutChangelog.Bzj36blr.js → AboutChangelog.DghwIbGm.js} +3 -3
- package/dist/chunks/AboutEntry.RlLAPOEe.js +89 -0
- package/dist/chunks/{App.BLhkVXVz.js → App.DkMgrvIO.js} +635 -613
- package/dist/chunks/{Chart.Ck03N8tk.js → Chart.v7akUZT3.js} +2 -2
- package/dist/chunks/ChatBubbleAssistant.Bu1x35ya.js +71 -0
- package/dist/chunks/{ChatBubbleUser.D0_zGRN6.js → ChatBubbleUser.DiGyPZ2b.js} +3 -3
- package/dist/chunks/{ChatHistoryTable.DffhDAId.js → ChatHistoryTable.BgPyiv-W.js} +8 -8
- package/dist/chunks/{HistoryEntry.CyZKhE-r.js → HistoryEntry.BhfYcwPP.js} +38 -37
- package/dist/chunks/{ProfileEntry.CKZk7T66.js → ProfileEntry.FFqtFIdd.js} +21 -20
- package/dist/chunks/{SettingsEntry.Bmq54xRJ.js → SettingsEntry.BI15jO5w.js} +25 -24
- package/dist/chunks/{UsageEntry.CUOJVTSh.js → UsageEntry.DB1Dgup7.js} +26 -25
- package/dist/chunks/{UserMemoriesPanel.CewUKKEO.js → UserMemoriesPanel.CGE_KomO.js} +13 -12
- package/dist/chunks/{index.Cdezl5BS.js → index.8SDxHLuq.js} +638 -642
- package/dist/chunks/{index.CGkK3Bq7.js → index.BE8w381j.js} +1 -1
- package/dist/chunks/{index.Ds35lAgW.js → index.BRlTWyjo.js} +2 -2
- package/dist/chunks/{index.BnVRcTCh.js → index.C7z08Bcn.js} +1 -1
- package/dist/chunks/{index.DA-sTqbx.js → index.CEi6RNum.js} +1 -1
- package/dist/chunks/{index.25VgFBJF.js → index.CRj1aLR-.js} +1 -1
- package/dist/chunks/{index.D6Jf67I7.js → index.DBoCLIQA.js} +1 -1
- package/dist/chunks/{index.B2fv-jn6.js → index.eCKoB2IJ.js} +3 -3
- package/dist/chunks/{index.XVjKijS9.js → index.mhC0_M_t.js} +1 -1
- package/dist/chunks/{useMarkdown.CAyTbBaF.js → useMarkdown.fdak3xWv.js} +6 -6
- package/dist/components/SassySaint/SassySaint.js +1 -1
- package/dist/index.js +4 -4
- package/dist/style.css +2 -2
- package/package.json +3 -3
- package/dist/chunks/AboutEntry.SY2SIeDZ.js +0 -69
- package/dist/chunks/ChatBubbleAssistant.DtgiothS.js +0 -82
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { jsxs as n, jsx as t } from "react/jsx-runtime";
|
|
2
|
-
import { n as je, useEntitlements as
|
|
3
|
-
import { useCapability as Te, Panel as ot, Toggle as l } from "./App.
|
|
4
|
-
import { TextArea as Ne } from "./index.
|
|
2
|
+
import { n as je, useEntitlements as Ve, AppContext as Fe, useUserPreferences as We, w as ie, useLocalStorage as de, LOCAL_STORAGE_OLED_MODE as $e, LOCAL_STORAGE_FULL_SCREEN as ze, e as ue, canEvaluateModels as He, W as Ye, getCacheInfo as qe, isServiceWorkerEnabled as Ke, SETTINGS_TITLE as Qe, Card as f, CARDS as r, V as Je, Button as v, PROMPTS_DESCRIPTION as Xe, K as me, L as Ze, j as he, applyOledMode as fe, APP_SET_OLED_MODE as Ee, APP_SET_FULL_SCREEN as Se, getCurrentGeoLocation as et, graphQLRequest as pe, handleServiceWorkerToggle as tt, SERVICE_TYPES as ge } from "./index.8SDxHLuq.js";
|
|
3
|
+
import { useCapability as Te, Panel as ot, Toggle as l } from "./App.DkMgrvIO.js";
|
|
4
|
+
import { TextArea as Ne } from "./index.BE8w381j.js";
|
|
5
5
|
import { useContext as st, useState as s, useMemo as at, useCallback as nt, useEffect as be } from "react";
|
|
6
6
|
const ut = ({
|
|
7
7
|
open: Ce,
|
|
8
8
|
onOpenChange: A
|
|
9
9
|
}) => {
|
|
10
|
-
const { getAccessToken: I, user: R } = je(), { allowedModels:
|
|
10
|
+
const { getAccessToken: I, user: R } = je(), { allowedModels: w, status: B } = Ve(), { dispatch: g } = st(Fe), {
|
|
11
11
|
data: o,
|
|
12
12
|
isSuccess: ye,
|
|
13
13
|
refetch: x
|
|
@@ -16,15 +16,15 @@ const ut = ({
|
|
|
16
16
|
getAccessToken: I
|
|
17
17
|
}), [G, T] = s({
|
|
18
18
|
loadingLocation: !1
|
|
19
|
-
}), [
|
|
19
|
+
}), [L, U] = s({
|
|
20
20
|
prompts: []
|
|
21
|
-
}), [j,
|
|
21
|
+
}), [j, V] = s(""), [F, N] = s(""), [W, $] = s(!1), [z, H] = s(!1), [b, Y] = s(!1), [C, q] = s(!1), [K, Q] = s(!1), [k, J] = s(!1), [E, X] = s(null), [Z, ee] = s(!1), [te, oe] = s(!1), se = Te(ie.TOOL.MEMORIES), ae = Te(ie.ADDON.REASONING), [i, Ie] = de({
|
|
22
22
|
key: $e,
|
|
23
23
|
initialValue: !1
|
|
24
|
-
}), [u,
|
|
24
|
+
}), [u, we] = de({
|
|
25
25
|
key: ze,
|
|
26
26
|
initialValue: !1
|
|
27
|
-
}), [m, M] = s(!1), [S, D] = s(!1), [ne, re] = s(ue),
|
|
27
|
+
}), [m, M] = s(!1), [S, D] = s(!1), [ne, re] = s(ue), Le = at(() => He(w, B) ? Ye(w) : !1, [w, B]), ke = (e) => {
|
|
28
28
|
oe(e);
|
|
29
29
|
}, Me = (e) => {
|
|
30
30
|
$(e);
|
|
@@ -35,7 +35,7 @@ const ut = ({
|
|
|
35
35
|
}, Oe = (e) => {
|
|
36
36
|
ae && Q(e);
|
|
37
37
|
}, Pe = (e) => {
|
|
38
|
-
|
|
38
|
+
J(e);
|
|
39
39
|
}, ve = (e) => {
|
|
40
40
|
M(e);
|
|
41
41
|
}, Ae = (e) => {
|
|
@@ -51,7 +51,7 @@ const ut = ({
|
|
|
51
51
|
params: {
|
|
52
52
|
user: R?.username,
|
|
53
53
|
instructions: j,
|
|
54
|
-
location:
|
|
54
|
+
location: F,
|
|
55
55
|
provider: o?.provider,
|
|
56
56
|
/**
|
|
57
57
|
* When nested model selection is disabled, explicitly clear any stored
|
|
@@ -59,7 +59,7 @@ const ut = ({
|
|
|
59
59
|
* string signals to backend to use provider's default model.
|
|
60
60
|
*/
|
|
61
61
|
model: k && o?.model || "",
|
|
62
|
-
tags:
|
|
62
|
+
tags: L.prompts,
|
|
63
63
|
sendOnEnter: W,
|
|
64
64
|
useMemory: z,
|
|
65
65
|
showDetails: te,
|
|
@@ -70,7 +70,7 @@ const ut = ({
|
|
|
70
70
|
}), C !== b && (await tt(C), Y(C)), m !== i && (Ie(m), fe(m), g({
|
|
71
71
|
type: Ee,
|
|
72
72
|
payload: { oledMode: m }
|
|
73
|
-
})), S !== u && (
|
|
73
|
+
})), S !== u && (we(S), g({
|
|
74
74
|
type: Se,
|
|
75
75
|
payload: { fullScreen: S }
|
|
76
76
|
})), x(), T({
|
|
@@ -136,7 +136,7 @@ const ut = ({
|
|
|
136
136
|
try {
|
|
137
137
|
ee(!0);
|
|
138
138
|
const e = await qe();
|
|
139
|
-
|
|
139
|
+
X(e);
|
|
140
140
|
} catch {
|
|
141
141
|
} finally {
|
|
142
142
|
ee(!1);
|
|
@@ -145,11 +145,11 @@ const ut = ({
|
|
|
145
145
|
return be(() => {
|
|
146
146
|
if (!o)
|
|
147
147
|
return;
|
|
148
|
-
o.instructions &&
|
|
148
|
+
o.instructions && V(o.instructions), o.location && N(o.location), o.tags && U({ prompts: o.tags }), o.sendOnEnter !== void 0 && $(o.sendOnEnter), o.useMemory !== void 0 && H(o.useMemory), o.showDetails !== void 0 && oe(o.showDetails), o.showReasoningButton !== void 0 && Q(o.showReasoningButton), o.useNestedModelSelection !== void 0 && J(o.useNestedModelSelection), o.themeMode !== void 0 && re(o.themeMode);
|
|
149
149
|
const e = Ke();
|
|
150
150
|
Y(e), q(e), M(i), D(u);
|
|
151
151
|
}, [o, i, u]), be(() => {
|
|
152
|
-
b ? ce() :
|
|
152
|
+
b ? ce() : X(null);
|
|
153
153
|
}, [b, ce]), ye ? /* @__PURE__ */ n(
|
|
154
154
|
ot,
|
|
155
155
|
{
|
|
@@ -158,8 +158,9 @@ const ut = ({
|
|
|
158
158
|
title: Qe,
|
|
159
159
|
animation: !0,
|
|
160
160
|
animationType: "fade",
|
|
161
|
+
blurEffect: "large",
|
|
161
162
|
footer: /* @__PURE__ */ n(
|
|
162
|
-
|
|
163
|
+
Ze,
|
|
163
164
|
{
|
|
164
165
|
columnGap: 2,
|
|
165
166
|
alignHorizontal: "flex-end",
|
|
@@ -252,7 +253,7 @@ const ut = ({
|
|
|
252
253
|
children: [
|
|
253
254
|
/* @__PURE__ */ n("p", { className: "text-sm", children: [
|
|
254
255
|
"What would you like ",
|
|
255
|
-
/* @__PURE__ */ t("em", { children:
|
|
256
|
+
/* @__PURE__ */ t("em", { children: Je }),
|
|
256
257
|
" to know about you to provide better responses?"
|
|
257
258
|
] }),
|
|
258
259
|
/* @__PURE__ */ t(
|
|
@@ -266,7 +267,7 @@ const ut = ({
|
|
|
266
267
|
label: "Custom Instructions",
|
|
267
268
|
value: j,
|
|
268
269
|
onChange: (e) => {
|
|
269
|
-
|
|
270
|
+
V(e.target.value);
|
|
270
271
|
},
|
|
271
272
|
helperText: "Press ENTER to add a new line."
|
|
272
273
|
}
|
|
@@ -288,7 +289,7 @@ const ut = ({
|
|
|
288
289
|
mode: "alt-system",
|
|
289
290
|
name: "location",
|
|
290
291
|
label: "Location",
|
|
291
|
-
value:
|
|
292
|
+
value: F,
|
|
292
293
|
onChange: (e) => {
|
|
293
294
|
N(e.target.value);
|
|
294
295
|
},
|
|
@@ -317,8 +318,8 @@ const ut = ({
|
|
|
317
318
|
className: "prose-dark dark:prose-lighter mt-4",
|
|
318
319
|
noBorder: !0,
|
|
319
320
|
children: [
|
|
320
|
-
/* @__PURE__ */ t("p", { className: "text-sm", children:
|
|
321
|
-
|
|
321
|
+
/* @__PURE__ */ t("p", { className: "text-sm", children: Xe }),
|
|
322
|
+
L.prompts && L.prompts.slice(0, 3).map((e) => /* @__PURE__ */ n(
|
|
322
323
|
f,
|
|
323
324
|
{
|
|
324
325
|
mode: "dark",
|
|
@@ -412,7 +413,7 @@ const ut = ({
|
|
|
412
413
|
checked: K
|
|
413
414
|
}
|
|
414
415
|
),
|
|
415
|
-
|
|
416
|
+
Le && /* @__PURE__ */ t(
|
|
416
417
|
l,
|
|
417
418
|
{
|
|
418
419
|
noBorder: !0,
|
|
@@ -502,8 +503,8 @@ const ut = ({
|
|
|
502
503
|
},
|
|
503
504
|
a
|
|
504
505
|
)) }) }, e.name)),
|
|
505
|
-
E.totalItems === 0 && !
|
|
506
|
-
] }) : /* @__PURE__ */ t("p", { className: "text-xs opacity-70 m-0", children:
|
|
506
|
+
E.totalItems === 0 && !Z && /* @__PURE__ */ t("p", { className: "italic m-0 opacity-70", children: "No cached assets yet." })
|
|
507
|
+
] }) : /* @__PURE__ */ t("p", { className: "text-xs opacity-70 m-0", children: Z ? "Loading cache info..." : "No cache info available." })
|
|
507
508
|
] })
|
|
508
509
|
]
|
|
509
510
|
}
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import { jsxs as i, jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import { n as L, useUniqueId as v, useUserChatStats as z, useChatsUsage as _, USAGE_TITLE as B, Card as A, CARDS as a, L as u, j
|
|
3
|
-
import { Panel as
|
|
4
|
-
import { useState as C, Suspense as H, lazy as
|
|
2
|
+
import { n as L, useUniqueId as v, useUserChatStats as z, useChatsUsage as _, USAGE_TITLE as B, Card as A, CARDS as a, L as u, j as h, Button as o, renderDataAsList as b, pluralize as T } from "./index.8SDxHLuq.js";
|
|
3
|
+
import { Panel as P } from "./App.DkMgrvIO.js";
|
|
4
|
+
import { useState as C, Suspense as H, lazy as G } from "react";
|
|
5
5
|
const s = [0, 3, 6, 9], n = {
|
|
6
6
|
TOKEN: "token",
|
|
7
7
|
MODEL: "model"
|
|
8
|
-
},
|
|
8
|
+
}, K = G(
|
|
9
9
|
() => import(
|
|
10
10
|
/* webpackChunkName: "chart-highcharts" */
|
|
11
|
-
"./Chart.
|
|
11
|
+
"./Chart.v7akUZT3.js"
|
|
12
12
|
)
|
|
13
13
|
), R = ({
|
|
14
14
|
open: E,
|
|
15
|
-
onOpenChange:
|
|
15
|
+
onOpenChange: g
|
|
16
16
|
}) => {
|
|
17
|
-
const { getAccessToken:
|
|
18
|
-
user:
|
|
19
|
-
getAccessToken:
|
|
20
|
-
}), { data:
|
|
21
|
-
user:
|
|
22
|
-
getAccessToken:
|
|
23
|
-
}),
|
|
17
|
+
const { getAccessToken: I, user: S } = L(), N = v(), { data: r, isSuccess: f } = z({
|
|
18
|
+
user: S?.username,
|
|
19
|
+
getAccessToken: I
|
|
20
|
+
}), { data: t, isSuccess: x } = _({
|
|
21
|
+
user: S?.username,
|
|
22
|
+
getAccessToken: I
|
|
23
|
+
}), M = Math.floor((/* @__PURE__ */ new Date()).getMonth() / 3) * 3, [c, p] = C(M), [l, k] = C(n.MODEL), U = (d) => {
|
|
24
24
|
d.preventDefault();
|
|
25
25
|
const m = (s.indexOf(c) + 1) % s.length;
|
|
26
26
|
p(s[m]);
|
|
@@ -30,13 +30,14 @@ const s = [0, 3, 6, 9], n = {
|
|
|
30
30
|
p(s[m]);
|
|
31
31
|
};
|
|
32
32
|
return /* @__PURE__ */ i(
|
|
33
|
-
|
|
33
|
+
P,
|
|
34
34
|
{
|
|
35
35
|
open: E,
|
|
36
|
-
onOpenChange:
|
|
36
|
+
onOpenChange: g,
|
|
37
37
|
title: B,
|
|
38
38
|
animation: !0,
|
|
39
39
|
animationType: "fade",
|
|
40
|
+
blurEffect: "large",
|
|
40
41
|
footer: /* @__PURE__ */ e(
|
|
41
42
|
u,
|
|
42
43
|
{
|
|
@@ -50,7 +51,7 @@ const s = [0, 3, 6, 9], n = {
|
|
|
50
51
|
variant: "secondary",
|
|
51
52
|
focusMode: "light",
|
|
52
53
|
noBorder: !0,
|
|
53
|
-
onClick: () =>
|
|
54
|
+
onClick: () => g(!1),
|
|
54
55
|
children: "Dismiss"
|
|
55
56
|
}
|
|
56
57
|
) })
|
|
@@ -63,7 +64,7 @@ const s = [0, 3, 6, 9], n = {
|
|
|
63
64
|
header: a.MAIN_STATISTICS.USAGE,
|
|
64
65
|
className: "prose-dark dark:prose-lighter mb-4 min-h-[555px]",
|
|
65
66
|
noBorder: !0,
|
|
66
|
-
children:
|
|
67
|
+
children: x && t && t.tokenUsage && t.tokenUsage.series && t.tokenUsage.series.length ? /* @__PURE__ */ i(H, { fallback: /* @__PURE__ */ e("div", {}), children: [
|
|
67
68
|
/* @__PURE__ */ e(u, { className: "mb-2", alignHorizontal: "center", children: /* @__PURE__ */ i(h, { children: [
|
|
68
69
|
/* @__PURE__ */ e(
|
|
69
70
|
o,
|
|
@@ -88,9 +89,9 @@ const s = [0, 3, 6, 9], n = {
|
|
|
88
89
|
)
|
|
89
90
|
] }) }),
|
|
90
91
|
/* @__PURE__ */ e(
|
|
91
|
-
|
|
92
|
+
K,
|
|
92
93
|
{
|
|
93
|
-
tokenUsage: l === n.TOKEN ?
|
|
94
|
+
tokenUsage: l === n.TOKEN ? t.tokenUsage.series : t.modelUsage?.series || [],
|
|
94
95
|
page: c,
|
|
95
96
|
viewMode: l
|
|
96
97
|
}
|
|
@@ -126,18 +127,18 @@ const s = [0, 3, 6, 9], n = {
|
|
|
126
127
|
header: a.MAIN_STATISTICS.TITLE,
|
|
127
128
|
className: "prose-dark dark:prose-lighter min-h-[170px]",
|
|
128
129
|
noBorder: !0,
|
|
129
|
-
children:
|
|
130
|
+
children: f ? b(
|
|
130
131
|
N,
|
|
131
132
|
{
|
|
132
|
-
[T(a.MAIN_STATISTICS.TOTAL,
|
|
133
|
+
[T(a.MAIN_STATISTICS.TOTAL, r.totalChats)]: r.totalChats,
|
|
133
134
|
[T(
|
|
134
135
|
a.MAIN_STATISTICS.TOTAL_PRIVATE,
|
|
135
|
-
|
|
136
|
-
)]:
|
|
136
|
+
r.privateChats
|
|
137
|
+
)]: r.privateChats,
|
|
137
138
|
[T(
|
|
138
139
|
a.MAIN_STATISTICS.TOTAL_DELETED,
|
|
139
|
-
|
|
140
|
-
)]:
|
|
140
|
+
r.deletedChats
|
|
141
|
+
)]: r.deletedChats
|
|
141
142
|
},
|
|
142
143
|
!0
|
|
143
144
|
) : null
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jsx as e, jsxs as r, Fragment as L } from "react/jsx-runtime";
|
|
2
|
-
import { L as E, j
|
|
3
|
-
import { Panel as se, Toggle as _, ConfirmationPanel as te, Tooltip as z } from "./App.
|
|
4
|
-
import { W as re, j as ie, G as D, M as s, F as B, H as oe, D as ne } from "./index.
|
|
2
|
+
import { L as E, j as f, Button as b, n as ke, useLocalStorage as Q, LOCAL_STORAGE_PREFIX as Z, LOCAL_STORAGE_SORT_MEMORY_DIRECTION as we, e$1 as l, LOCAL_STORAGE_SORT_MEMORY_COLUMN as Te, useUserMemories as Se, useExpiredMemories as ve, useDeleteMemory as De, useDeleteAllActiveMemories as be, useDeleteAllExpiredMemories as Me, useUpdateMemory as Ee, useRestoreMemory as Re, ButtonIcon as O, IconEdit as Ie, IconDelete as ee, IconRestore as Le } from "./index.8SDxHLuq.js";
|
|
3
|
+
import { Panel as se, Toggle as _, ConfirmationPanel as te, Tooltip as z } from "./App.DkMgrvIO.js";
|
|
4
|
+
import { W as re, j as ie, G as D, M as s, F as B, H as oe, D as ne } from "./index.mhC0_M_t.js";
|
|
5
5
|
import A from "clsx";
|
|
6
6
|
import { useState as y, useEffect as Oe, useRef as le } from "react";
|
|
7
|
-
import { TextArea as _e } from "./index.
|
|
7
|
+
import { TextArea as _e } from "./index.BE8w381j.js";
|
|
8
8
|
const ze = ({
|
|
9
9
|
open: C,
|
|
10
10
|
onOpenChange: M,
|
|
@@ -189,7 +189,7 @@ const ze = ({
|
|
|
189
189
|
] })
|
|
190
190
|
}
|
|
191
191
|
);
|
|
192
|
-
},
|
|
192
|
+
}, $e = ({
|
|
193
193
|
open: C,
|
|
194
194
|
onOpenChange: M,
|
|
195
195
|
user: c
|
|
@@ -209,8 +209,8 @@ const ze = ({
|
|
|
209
209
|
enabled: C && m === "active"
|
|
210
210
|
}), {
|
|
211
211
|
data: g,
|
|
212
|
-
isLoading:
|
|
213
|
-
isError:
|
|
212
|
+
isLoading: H,
|
|
213
|
+
isError: $
|
|
214
214
|
} = ve({
|
|
215
215
|
user: c,
|
|
216
216
|
query: R,
|
|
@@ -326,6 +326,7 @@ const ze = ({
|
|
|
326
326
|
title: "User Memories",
|
|
327
327
|
animation: !0,
|
|
328
328
|
animationType: "fade",
|
|
329
|
+
blurEffect: "large",
|
|
329
330
|
footer: /* @__PURE__ */ r(E, { columnGap: 2, alignHorizontal: "flex-end", children: [
|
|
330
331
|
/* @__PURE__ */ e(f, { children: /* @__PURE__ */ e(
|
|
331
332
|
b,
|
|
@@ -564,9 +565,9 @@ const ze = ({
|
|
|
564
565
|
}
|
|
565
566
|
) : /* @__PURE__ */ e("p", { className: "m-0 italic opacity-70", children: "No memories stored." }))
|
|
566
567
|
] }) : /* @__PURE__ */ r(L, { children: [
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
568
|
+
H && /* @__PURE__ */ e("p", { className: "m-0", children: "Loading expired memories..." }),
|
|
569
|
+
$ && /* @__PURE__ */ e("p", { className: "m-0 text-red-500", children: "Failed to load expired memories." }),
|
|
570
|
+
!H && !$ && (g && g.items.length > 0 ? /* @__PURE__ */ r(re, { stickyHeader: !0, stickyFooter: !0, compact: !0, mode: "alt-system", children: [
|
|
570
571
|
/* @__PURE__ */ e(ie, { children: /* @__PURE__ */ r(D, { children: [
|
|
571
572
|
/* @__PURE__ */ e(s, { className: "sr-only", children: "Row" }),
|
|
572
573
|
/* @__PURE__ */ e(s, { children: "Memory" }),
|
|
@@ -751,6 +752,6 @@ const ze = ({
|
|
|
751
752
|
] });
|
|
752
753
|
};
|
|
753
754
|
export {
|
|
754
|
-
|
|
755
|
-
|
|
755
|
+
$e as UserMemoriesPanel,
|
|
756
|
+
$e as default
|
|
756
757
|
};
|