@lodashventure/medusa-review 1.4.19 → 1.4.22
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/.medusa/server/src/api/admin/reviews/route.js +3 -2
- package/.medusa/server/src/api/admin/reviews/status/route.js +5 -5
- package/.medusa/server/src/api/store/reviews/route.js +9 -9
- package/.medusa/server/src/utils/z.js +13 -0
- package/.medusa/server/src/workflows/review/getReviewsWorkflow.js +48 -4
- package/package.json +1 -1
|
@@ -5,7 +5,8 @@ const getReviewsWorkflow_1 = require("../../../workflows/review/getReviewsWorkfl
|
|
|
5
5
|
const createReviewWorkflow_1 = require("../../../workflows/review/createReviewWorkflow");
|
|
6
6
|
const GET = async (req, res) => {
|
|
7
7
|
// Extract filters from query parameters
|
|
8
|
-
const
|
|
8
|
+
const validatedQuery = (req.validatedQuery ?? {});
|
|
9
|
+
const { product_id, status } = validatedQuery;
|
|
9
10
|
const { result } = await (0, getReviewsWorkflow_1.getReviewsWorkflow)().run({
|
|
10
11
|
input: {
|
|
11
12
|
queryConfig: req.queryConfig,
|
|
@@ -36,4 +37,4 @@ const POST = async (req, res) => {
|
|
|
36
37
|
res.json(result);
|
|
37
38
|
};
|
|
38
39
|
exports.POST = POST;
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3Jldmlld3Mvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS0EscUZBR3NEO0FBQ3RELHlGQUFzRjtBQUcvRSxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQ3RCLEdBQTRDLEVBQzVDLEdBQW1CLEVBQ25CLEVBQUU7SUFDRix3Q0FBd0M7SUFDeEMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxHQUFHLENBQUMsY0FBYyxJQUFJLEVBQUUsQ0FBb0IsQ0FBQztJQUNyRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLGNBRzlCLENBQUM7SUFFRixNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFBLHVDQUFrQixHQUFFLENBQUMsR0FBRyxDQUFDO1FBQ2hELEtBQUssRUFBRTtZQUNMLFdBQVcsRUFBRSxHQUFHLENBQUMsV0FBVztZQUM1QixPQUFPLEVBQUU7Z0JBQ1AsTUFBTSxFQUFFLElBQUk7Z0JBQ1osR0FBRyxDQUFDLFVBQVUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDO2dCQUNqQyxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7YUFDMUI7U0FDRjtLQUNGLENBQUMsQ0FBQztJQUVILEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDbkIsQ0FBQyxDQUFDO0FBdkJXLFFBQUEsR0FBRyxPQXVCZDtBQUVLLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDdkIsR0FBbUQsRUFDbkQsR0FBbUIsRUFDbkIsRUFBRTtJQUNGOzs7T0FHRztJQUNILE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxZQUFZLEVBQUUsVUFBVSxLQUFLLE1BQU0sQ0FBQztJQUV4RCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFBLDJDQUFvQixFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDM0QsS0FBSyxFQUFFO1lBQ0wsR0FBRyxHQUFHLENBQUMsYUFBYTtZQUNwQixRQUFRLEVBQUUsT0FBTztZQUNqQixNQUFNLEVBQUUsVUFBVTtZQUNsQixNQUFNLEVBQUUsRUFBRTtTQUNYO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNuQixDQUFDLENBQUM7QUFwQlcsUUFBQSxJQUFJLFFBb0JmIn0=
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PostAdminUpdateReviewsStatusSchema = void 0;
|
|
4
4
|
exports.POST = POST;
|
|
5
|
-
const
|
|
5
|
+
const z_1 = require("../../../../utils/z");
|
|
6
6
|
const updateReviewWorkflow_1 = require("../../../../workflows/review/updateReviewWorkflow");
|
|
7
|
-
exports.PostAdminUpdateReviewsStatusSchema =
|
|
8
|
-
ids:
|
|
9
|
-
status:
|
|
7
|
+
exports.PostAdminUpdateReviewsStatusSchema = z_1.z.object({
|
|
8
|
+
ids: z_1.z.array(z_1.z.string()),
|
|
9
|
+
status: z_1.z.enum(["pending", "approved", "rejected"]),
|
|
10
10
|
});
|
|
11
11
|
async function POST(req, res) {
|
|
12
12
|
const { ids, status } = req.validatedBody;
|
|
@@ -18,4 +18,4 @@ async function POST(req, res) {
|
|
|
18
18
|
});
|
|
19
19
|
res.json(result);
|
|
20
20
|
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3Jldmlld3Mvc3RhdHVzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVVBLG9CQWNDO0FBdEJELDJDQUF3QztBQUN4Qyw0RkFBeUY7QUFFNUUsUUFBQSxrQ0FBa0MsR0FBRyxLQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3pELEdBQUcsRUFBRSxLQUFDLENBQUMsS0FBSyxDQUFDLEtBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN4QixNQUFNLEVBQUUsS0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7Q0FDcEQsQ0FBQyxDQUFDO0FBRUksS0FBSyxVQUFVLElBQUksQ0FDeEIsR0FBd0UsRUFDeEUsR0FBbUI7SUFFbkIsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDO0lBRTFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUEsMkNBQW9CLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUMzRCxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN0QixFQUFFO1lBQ0YsTUFBTTtTQUNQLENBQUMsQ0FBQztLQUNKLENBQUMsQ0FBQztJQUVILEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDbkIsQ0FBQyJ9
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.POST = exports.PostStoreReviewSchema = void 0;
|
|
4
|
-
const
|
|
4
|
+
const z_1 = require("../../../utils/z");
|
|
5
5
|
const createReviewWorkflow_1 = require("../../../workflows/review/createReviewWorkflow");
|
|
6
6
|
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
7
|
-
exports.PostStoreReviewSchema =
|
|
8
|
-
parent_id:
|
|
9
|
-
title:
|
|
10
|
-
content:
|
|
11
|
-
rating:
|
|
7
|
+
exports.PostStoreReviewSchema = z_1.z.object({
|
|
8
|
+
parent_id: z_1.z.string().optional(),
|
|
9
|
+
title: z_1.z.string().optional(),
|
|
10
|
+
content: z_1.z.string(),
|
|
11
|
+
rating: z_1.z.preprocess((val) => {
|
|
12
12
|
if (val && typeof val === "string") {
|
|
13
13
|
return parseInt(val);
|
|
14
14
|
}
|
|
15
15
|
return val;
|
|
16
|
-
},
|
|
17
|
-
product_id:
|
|
16
|
+
}, z_1.z.number().min(1).max(5).optional()),
|
|
17
|
+
product_id: z_1.z.string(),
|
|
18
18
|
});
|
|
19
19
|
const POST = async (req, res) => {
|
|
20
20
|
const input = req.body;
|
|
@@ -54,4 +54,4 @@ const POST = async (req, res) => {
|
|
|
54
54
|
}
|
|
55
55
|
};
|
|
56
56
|
exports.POST = POST;
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3Jldmlld3Mvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBTUEsd0NBQXFDO0FBQ3JDLHlGQUFzRjtBQUV0Riw0REFHcUM7QUFFeEIsUUFBQSxxQkFBcUIsR0FBRyxLQUFDLENBQUMsTUFBTSxDQUFDO0lBQzVDLFNBQVMsRUFBRSxLQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2hDLEtBQUssRUFBRSxLQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzVCLE9BQU8sRUFBRSxLQUFDLENBQUMsTUFBTSxFQUFFO0lBQ25CLE1BQU0sRUFBRSxLQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDM0IsSUFBSSxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbkMsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkIsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQyxFQUFFLEtBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3ZDLFVBQVUsRUFBRSxLQUFDLENBQUMsTUFBTSxFQUFFO0NBQ3ZCLENBQUMsQ0FBQztBQVFJLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDdkIsR0FBa0IsRUFDbEIsR0FBbUIsRUFDbkIsRUFBRTtJQUNGLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7SUFDdkIsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztJQUU3QixNQUFNLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxHQUFHLE1BQU0sSUFBQSxnQ0FBbUIsRUFBQyxHQUFHLENBQUMsS0FBWSxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ2hGLEtBQUssRUFBRTtZQUNMLEtBQUssRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUM3QixRQUFRLEVBQUUsQ0FBQyxDQUFDLFlBQVk7Z0JBQ3hCLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUTtnQkFDcEIsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztnQkFDcEMsTUFBTSxFQUFFLFFBQVE7YUFDakIsQ0FBQyxDQUFDLElBQUksRUFBRTtTQUNWO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakQsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFO1FBQ2YsT0FBTyxFQUFFLElBQUksQ0FBQyxHQUFHO1FBQ2pCLFFBQVEsRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLFFBQVEsSUFBSSxFQUFFO0tBQ2hELENBQUMsQ0FBQyxDQUFDO0lBRUosSUFBSSxDQUFDO1FBQ0gsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUEsMkNBQW9CLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUNuRSxLQUFLLEVBQUU7Z0JBQ0wsR0FBRyxLQUFLO2dCQUNSLFdBQVcsRUFBRSxHQUFHLENBQUMsWUFBWSxFQUFFLFFBQVE7Z0JBQ3ZDLE1BQU07YUFDUDtTQUNGLENBQUMsQ0FBQztRQUVILEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixJQUFBLGdDQUFtQixFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDakMsS0FBSyxFQUFFO2dCQUNMLEdBQUcsRUFBRSxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2FBQzFDO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxLQUFLLENBQUM7SUFDZCxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBMUNXLFFBQUEsSUFBSSxRQTBDZiJ9
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.z = void 0;
|
|
4
|
+
const module_1 = require("module");
|
|
5
|
+
/**
|
|
6
|
+
* Ensure we always use the same Zod version that Medusa ships with (v3).
|
|
7
|
+
* Resolving Zod through the framework's require avoids mixing major versions.
|
|
8
|
+
*/
|
|
9
|
+
const frameworkRequire = (0, module_1.createRequire)(require.resolve("@medusajs/framework"));
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
11
|
+
const { z } = frameworkRequire("zod");
|
|
12
|
+
exports.z = z;
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiei5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91dGlscy96LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUF1QztBQUd2Qzs7O0dBR0c7QUFDSCxNQUFNLGdCQUFnQixHQUFHLElBQUEsc0JBQWEsRUFBQyxPQUFPLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQztBQUUvRSw4REFBOEQ7QUFDOUQsTUFBTSxFQUFFLENBQUMsRUFBRSxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBZSxDQUFDO0FBRTNDLGNBQUMifQ==
|
|
@@ -4,9 +4,53 @@ exports.getReviewsWorkflow = exports.GetReviewsSchema = void 0;
|
|
|
4
4
|
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
5
|
const framework_1 = require("@medusajs/framework");
|
|
6
6
|
const workflows_sdk_2 = require("@medusajs/framework/workflows-sdk");
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
const z_1 = require("../../utils/z");
|
|
8
|
+
const numberParam = (schema) => z_1.z.preprocess((val) => {
|
|
9
|
+
if (val === undefined || val === null || val === "") {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
if (typeof val === "string") {
|
|
13
|
+
const parsed = Number(val);
|
|
14
|
+
return Number.isNaN(parsed) ? undefined : parsed;
|
|
15
|
+
}
|
|
16
|
+
return val;
|
|
17
|
+
}, schema.optional());
|
|
18
|
+
const booleanParam = () => z_1.z.preprocess((val) => {
|
|
19
|
+
if (val === undefined || val === null || val === "") {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
if (typeof val === "string") {
|
|
23
|
+
if (val.toLowerCase() === "true") {
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
if (val.toLowerCase() === "false") {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return val;
|
|
31
|
+
}, z_1.z.boolean().optional());
|
|
32
|
+
exports.GetReviewsSchema = z_1.z.object({
|
|
33
|
+
limit: numberParam(z_1.z.number().int().positive()),
|
|
34
|
+
offset: numberParam(z_1.z.number().int().min(0)),
|
|
35
|
+
order: z_1.z.string().optional(),
|
|
36
|
+
fields: z_1.z.string().optional(),
|
|
37
|
+
with_deleted: booleanParam(),
|
|
38
|
+
product_id: z_1.z.string().optional(),
|
|
39
|
+
status: z_1.z.enum(["pending", "approved", "rejected"]).optional(),
|
|
40
|
+
parent: z_1.z
|
|
41
|
+
.preprocess((val) => {
|
|
42
|
+
if (val === undefined) {
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
if (val === null) {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
if (typeof val === "string") {
|
|
49
|
+
return val.toLowerCase() === "null" ? null : val;
|
|
50
|
+
}
|
|
51
|
+
return undefined;
|
|
52
|
+
}, z_1.z.union([z_1.z.string(), z_1.z.null()]).optional())
|
|
53
|
+
.optional(),
|
|
10
54
|
});
|
|
11
55
|
const getReviewsStep = (0, workflows_sdk_2.createStep)("get-reviews-step", async (input) => {
|
|
12
56
|
const query = framework_1.container.resolve("query");
|
|
@@ -44,4 +88,4 @@ exports.getReviewsWorkflow = (0, workflows_sdk_1.createWorkflow)("get-reviews",
|
|
|
44
88
|
const reviews = getReviewsStep(input);
|
|
45
89
|
return new workflows_sdk_1.WorkflowResponse(reviews);
|
|
46
90
|
});
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0UmV2aWV3c1dvcmtmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9yZXZpZXcvZ2V0UmV2aWV3c1dvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUcyQztBQUUzQyxtREFBK0Q7QUFDL0QscUVBQTZFO0FBRTdFLHFDQUFrQztBQUVsQyxNQUFNLFdBQVcsR0FBRyxDQUFDLE1BQXFCLEVBQUUsRUFBRSxDQUM1QyxLQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7SUFDbkIsSUFBSSxHQUFHLEtBQUssU0FBUyxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQ3BELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzVCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQixPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ25ELENBQUM7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztBQUV4QixNQUFNLFlBQVksR0FBRyxHQUFHLEVBQUUsQ0FDeEIsS0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO0lBQ25CLElBQUksR0FBRyxLQUFLLFNBQVMsSUFBSSxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUNwRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM1QixJQUFJLEdBQUcsQ0FBQyxX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
|