@codemind.ec/medusa-plugin-invoice 1.1.0 → 1.2.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/.medusa/server/src/admin/index.js +180 -177
- package/.medusa/server/src/admin/index.mjs +180 -177
- package/.medusa/server/src/modules/invoice-generator/templates/order-invoice.js +3 -10
- package/.medusa/server/src/modules/invoice-generator/templates/quote-proforma.js +3 -2
- package/.medusa/server/src/modules/invoice-generator/templates/strategy.js +19 -1
- package/README.md +91 -25
- package/package.json +1 -1
|
@@ -310,31 +310,42 @@ const config = defineRouteConfig({
|
|
|
310
310
|
label: "Plantillas PDF",
|
|
311
311
|
icon: DocumentText
|
|
312
312
|
});
|
|
313
|
-
const
|
|
313
|
+
const EditCompanyPage = () => {
|
|
314
|
+
const { id } = useParams();
|
|
314
315
|
const navigate = useNavigate();
|
|
315
|
-
const
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
company_phone: "",
|
|
321
|
-
company_email: "",
|
|
322
|
-
company_logo: "",
|
|
323
|
-
notes: "",
|
|
324
|
-
admin_notification_email: "",
|
|
325
|
-
is_default: false
|
|
326
|
-
}
|
|
316
|
+
const queryClient = useQueryClient();
|
|
317
|
+
const { data, isLoading } = useQuery({
|
|
318
|
+
queryFn: () => sdk.client.fetch(`/admin/invoice-config/${id}`),
|
|
319
|
+
queryKey: ["invoice-config", id],
|
|
320
|
+
enabled: !!id
|
|
327
321
|
});
|
|
328
|
-
const
|
|
329
|
-
|
|
322
|
+
const config2 = data == null ? void 0 : data.invoice_config;
|
|
323
|
+
const getDefaults = useCallback(() => ({
|
|
324
|
+
company_name: (config2 == null ? void 0 : config2.company_name) || "",
|
|
325
|
+
company_ruc: (config2 == null ? void 0 : config2.company_ruc) || "",
|
|
326
|
+
company_address: (config2 == null ? void 0 : config2.company_address) || "",
|
|
327
|
+
company_phone: (config2 == null ? void 0 : config2.company_phone) || "",
|
|
328
|
+
company_email: (config2 == null ? void 0 : config2.company_email) || "",
|
|
329
|
+
company_logo: (config2 == null ? void 0 : config2.company_logo) || "",
|
|
330
|
+
notes: (config2 == null ? void 0 : config2.notes) || "",
|
|
331
|
+
admin_notification_email: (config2 == null ? void 0 : config2.admin_notification_email) || "",
|
|
332
|
+
is_default: (config2 == null ? void 0 : config2.is_default) || false
|
|
333
|
+
}), [config2]);
|
|
334
|
+
const form = useForm({ defaultValues: getDefaults() });
|
|
335
|
+
useEffect(() => {
|
|
336
|
+
form.reset(getDefaults());
|
|
337
|
+
}, [getDefaults]);
|
|
338
|
+
const saveMutation = useMutation({
|
|
339
|
+
mutationFn: (payload) => sdk.client.fetch(`/admin/invoice-config/${id}`, {
|
|
330
340
|
method: "POST",
|
|
331
341
|
body: payload
|
|
332
342
|
}),
|
|
333
343
|
onSuccess: () => {
|
|
334
|
-
|
|
335
|
-
|
|
344
|
+
queryClient.invalidateQueries({ queryKey: ["invoice-config", id] });
|
|
345
|
+
queryClient.invalidateQueries({ queryKey: ["invoice-configs"] });
|
|
346
|
+
toast.success("Empresa actualizada");
|
|
336
347
|
},
|
|
337
|
-
onError: () => toast.error("Error al
|
|
348
|
+
onError: () => toast.error("Error al guardar")
|
|
338
349
|
});
|
|
339
350
|
const uploadLogo = async (event) => {
|
|
340
351
|
var _a;
|
|
@@ -347,10 +358,16 @@ const NewCompanyPage = () => {
|
|
|
347
358
|
toast.error("Error al subir el logo.");
|
|
348
359
|
}
|
|
349
360
|
};
|
|
350
|
-
const handleSubmit = form.handleSubmit((
|
|
361
|
+
const handleSubmit = form.handleSubmit((data2) => saveMutation.mutate(data2));
|
|
362
|
+
if (isLoading) {
|
|
363
|
+
return /* @__PURE__ */ jsx(Container, { children: /* @__PURE__ */ jsx("div", { className: "text-center py-10", children: "Cargando..." }) });
|
|
364
|
+
}
|
|
365
|
+
if (!config2) {
|
|
366
|
+
return /* @__PURE__ */ jsx(Container, { children: /* @__PURE__ */ jsx("div", { className: "text-center py-10", children: "Empresa no encontrada" }) });
|
|
367
|
+
}
|
|
351
368
|
return /* @__PURE__ */ jsxs(Container, { className: "divide-y p-0", children: [
|
|
352
369
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between px-6 py-4", children: [
|
|
353
|
-
/* @__PURE__ */ jsx(Heading, { level: "h1", children: "
|
|
370
|
+
/* @__PURE__ */ jsx(Heading, { level: "h1", children: "Editar Empresa" }),
|
|
354
371
|
/* @__PURE__ */ jsx(Button, { variant: "secondary", onClick: () => navigate("/invoice-config/companies"), children: "← Volver" })
|
|
355
372
|
] }),
|
|
356
373
|
/* @__PURE__ */ jsx(FormProvider, { ...form, children: /* @__PURE__ */ jsxs("form", { onSubmit: handleSubmit, className: "flex flex-col gap-4 p-6 max-w-2xl", children: [
|
|
@@ -373,7 +390,7 @@ const NewCompanyPage = () => {
|
|
|
373
390
|
name: "company_name",
|
|
374
391
|
render: ({ field }) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
|
|
375
392
|
/* @__PURE__ */ jsx(Label, { size: "small", weight: "plus", children: "Nombre de la Empresa *" }),
|
|
376
|
-
/* @__PURE__ */ jsx(Input, { ...field
|
|
393
|
+
/* @__PURE__ */ jsx(Input, { ...field })
|
|
377
394
|
] })
|
|
378
395
|
}
|
|
379
396
|
),
|
|
@@ -395,7 +412,7 @@ const NewCompanyPage = () => {
|
|
|
395
412
|
name: "company_address",
|
|
396
413
|
render: ({ field }) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
|
|
397
414
|
/* @__PURE__ */ jsx(Label, { size: "small", weight: "plus", children: "Dirección" }),
|
|
398
|
-
/* @__PURE__ */ jsx(Textarea, { ...field
|
|
415
|
+
/* @__PURE__ */ jsx(Textarea, { ...field })
|
|
399
416
|
] })
|
|
400
417
|
}
|
|
401
418
|
),
|
|
@@ -407,7 +424,7 @@ const NewCompanyPage = () => {
|
|
|
407
424
|
name: "company_phone",
|
|
408
425
|
render: ({ field }) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
|
|
409
426
|
/* @__PURE__ */ jsx(Label, { size: "small", weight: "plus", children: "Teléfono" }),
|
|
410
|
-
/* @__PURE__ */ jsx(Input, { ...field
|
|
427
|
+
/* @__PURE__ */ jsx(Input, { ...field })
|
|
411
428
|
] })
|
|
412
429
|
}
|
|
413
430
|
),
|
|
@@ -418,7 +435,7 @@ const NewCompanyPage = () => {
|
|
|
418
435
|
name: "company_email",
|
|
419
436
|
render: ({ field }) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
|
|
420
437
|
/* @__PURE__ */ jsx(Label, { size: "small", weight: "plus", children: "Email de la Empresa" }),
|
|
421
|
-
/* @__PURE__ */ jsx(Input, { ...field
|
|
438
|
+
/* @__PURE__ */ jsx(Input, { ...field })
|
|
422
439
|
] })
|
|
423
440
|
}
|
|
424
441
|
)
|
|
@@ -430,7 +447,7 @@ const NewCompanyPage = () => {
|
|
|
430
447
|
name: "notes",
|
|
431
448
|
render: ({ field }) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
|
|
432
449
|
/* @__PURE__ */ jsx(Label, { size: "small", weight: "plus", children: "Notas" }),
|
|
433
|
-
/* @__PURE__ */ jsx(Textarea, { ...field
|
|
450
|
+
/* @__PURE__ */ jsx(Textarea, { ...field })
|
|
434
451
|
] })
|
|
435
452
|
}
|
|
436
453
|
),
|
|
@@ -468,47 +485,36 @@ const NewCompanyPage = () => {
|
|
|
468
485
|
),
|
|
469
486
|
/* @__PURE__ */ jsxs("div", { className: "flex gap-2 pt-2", children: [
|
|
470
487
|
/* @__PURE__ */ jsx(Button, { variant: "secondary", onClick: () => navigate("/invoice-config/companies"), children: "Cancelar" }),
|
|
471
|
-
/* @__PURE__ */ jsx(Button, { type: "submit", isLoading:
|
|
488
|
+
/* @__PURE__ */ jsx(Button, { type: "submit", isLoading: saveMutation.isPending, children: "Guardar Cambios" })
|
|
472
489
|
] })
|
|
473
490
|
] }) })
|
|
474
491
|
] });
|
|
475
492
|
};
|
|
476
|
-
const
|
|
477
|
-
const { id } = useParams();
|
|
493
|
+
const NewCompanyPage = () => {
|
|
478
494
|
const navigate = useNavigate();
|
|
479
|
-
const
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
495
|
+
const form = useForm({
|
|
496
|
+
defaultValues: {
|
|
497
|
+
company_name: "",
|
|
498
|
+
company_ruc: "",
|
|
499
|
+
company_address: "",
|
|
500
|
+
company_phone: "",
|
|
501
|
+
company_email: "",
|
|
502
|
+
company_logo: "",
|
|
503
|
+
notes: "",
|
|
504
|
+
admin_notification_email: "",
|
|
505
|
+
is_default: false
|
|
506
|
+
}
|
|
484
507
|
});
|
|
485
|
-
const
|
|
486
|
-
|
|
487
|
-
company_name: (config2 == null ? void 0 : config2.company_name) || "",
|
|
488
|
-
company_ruc: (config2 == null ? void 0 : config2.company_ruc) || "",
|
|
489
|
-
company_address: (config2 == null ? void 0 : config2.company_address) || "",
|
|
490
|
-
company_phone: (config2 == null ? void 0 : config2.company_phone) || "",
|
|
491
|
-
company_email: (config2 == null ? void 0 : config2.company_email) || "",
|
|
492
|
-
company_logo: (config2 == null ? void 0 : config2.company_logo) || "",
|
|
493
|
-
notes: (config2 == null ? void 0 : config2.notes) || "",
|
|
494
|
-
admin_notification_email: (config2 == null ? void 0 : config2.admin_notification_email) || "",
|
|
495
|
-
is_default: (config2 == null ? void 0 : config2.is_default) || false
|
|
496
|
-
}), [config2]);
|
|
497
|
-
const form = useForm({ defaultValues: getDefaults() });
|
|
498
|
-
useEffect(() => {
|
|
499
|
-
form.reset(getDefaults());
|
|
500
|
-
}, [getDefaults]);
|
|
501
|
-
const saveMutation = useMutation({
|
|
502
|
-
mutationFn: (payload) => sdk.client.fetch(`/admin/invoice-config/${id}`, {
|
|
508
|
+
const createMutation = useMutation({
|
|
509
|
+
mutationFn: (payload) => sdk.client.fetch("/admin/invoice-config", {
|
|
503
510
|
method: "POST",
|
|
504
511
|
body: payload
|
|
505
512
|
}),
|
|
506
513
|
onSuccess: () => {
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
toast.success("Empresa actualizada");
|
|
514
|
+
toast.success("Empresa creada exitosamente");
|
|
515
|
+
navigate("/invoice-config/companies");
|
|
510
516
|
},
|
|
511
|
-
onError: () => toast.error("Error al
|
|
517
|
+
onError: () => toast.error("Error al crear la empresa")
|
|
512
518
|
});
|
|
513
519
|
const uploadLogo = async (event) => {
|
|
514
520
|
var _a;
|
|
@@ -521,16 +527,10 @@ const EditCompanyPage = () => {
|
|
|
521
527
|
toast.error("Error al subir el logo.");
|
|
522
528
|
}
|
|
523
529
|
};
|
|
524
|
-
const handleSubmit = form.handleSubmit((
|
|
525
|
-
if (isLoading) {
|
|
526
|
-
return /* @__PURE__ */ jsx(Container, { children: /* @__PURE__ */ jsx("div", { className: "text-center py-10", children: "Cargando..." }) });
|
|
527
|
-
}
|
|
528
|
-
if (!config2) {
|
|
529
|
-
return /* @__PURE__ */ jsx(Container, { children: /* @__PURE__ */ jsx("div", { className: "text-center py-10", children: "Empresa no encontrada" }) });
|
|
530
|
-
}
|
|
530
|
+
const handleSubmit = form.handleSubmit((data) => createMutation.mutate(data));
|
|
531
531
|
return /* @__PURE__ */ jsxs(Container, { className: "divide-y p-0", children: [
|
|
532
532
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between px-6 py-4", children: [
|
|
533
|
-
/* @__PURE__ */ jsx(Heading, { level: "h1", children: "
|
|
533
|
+
/* @__PURE__ */ jsx(Heading, { level: "h1", children: "Nueva Empresa" }),
|
|
534
534
|
/* @__PURE__ */ jsx(Button, { variant: "secondary", onClick: () => navigate("/invoice-config/companies"), children: "← Volver" })
|
|
535
535
|
] }),
|
|
536
536
|
/* @__PURE__ */ jsx(FormProvider, { ...form, children: /* @__PURE__ */ jsxs("form", { onSubmit: handleSubmit, className: "flex flex-col gap-4 p-6 max-w-2xl", children: [
|
|
@@ -553,7 +553,7 @@ const EditCompanyPage = () => {
|
|
|
553
553
|
name: "company_name",
|
|
554
554
|
render: ({ field }) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
|
|
555
555
|
/* @__PURE__ */ jsx(Label, { size: "small", weight: "plus", children: "Nombre de la Empresa *" }),
|
|
556
|
-
/* @__PURE__ */ jsx(Input, { ...field })
|
|
556
|
+
/* @__PURE__ */ jsx(Input, { ...field, placeholder: "Mi Empresa S.A.S." })
|
|
557
557
|
] })
|
|
558
558
|
}
|
|
559
559
|
),
|
|
@@ -575,7 +575,7 @@ const EditCompanyPage = () => {
|
|
|
575
575
|
name: "company_address",
|
|
576
576
|
render: ({ field }) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
|
|
577
577
|
/* @__PURE__ */ jsx(Label, { size: "small", weight: "plus", children: "Dirección" }),
|
|
578
|
-
/* @__PURE__ */ jsx(Textarea, { ...field })
|
|
578
|
+
/* @__PURE__ */ jsx(Textarea, { ...field, placeholder: "Av. Principal 123, Quito" })
|
|
579
579
|
] })
|
|
580
580
|
}
|
|
581
581
|
),
|
|
@@ -587,7 +587,7 @@ const EditCompanyPage = () => {
|
|
|
587
587
|
name: "company_phone",
|
|
588
588
|
render: ({ field }) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
|
|
589
589
|
/* @__PURE__ */ jsx(Label, { size: "small", weight: "plus", children: "Teléfono" }),
|
|
590
|
-
/* @__PURE__ */ jsx(Input, { ...field })
|
|
590
|
+
/* @__PURE__ */ jsx(Input, { ...field, placeholder: "+593 99 123 4567" })
|
|
591
591
|
] })
|
|
592
592
|
}
|
|
593
593
|
),
|
|
@@ -598,7 +598,7 @@ const EditCompanyPage = () => {
|
|
|
598
598
|
name: "company_email",
|
|
599
599
|
render: ({ field }) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
|
|
600
600
|
/* @__PURE__ */ jsx(Label, { size: "small", weight: "plus", children: "Email de la Empresa" }),
|
|
601
|
-
/* @__PURE__ */ jsx(Input, { ...field })
|
|
601
|
+
/* @__PURE__ */ jsx(Input, { ...field, placeholder: "info@empresa.com" })
|
|
602
602
|
] })
|
|
603
603
|
}
|
|
604
604
|
)
|
|
@@ -610,7 +610,7 @@ const EditCompanyPage = () => {
|
|
|
610
610
|
name: "notes",
|
|
611
611
|
render: ({ field }) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
|
|
612
612
|
/* @__PURE__ */ jsx(Label, { size: "small", weight: "plus", children: "Notas" }),
|
|
613
|
-
/* @__PURE__ */ jsx(Textarea, { ...field })
|
|
613
|
+
/* @__PURE__ */ jsx(Textarea, { ...field, placeholder: "Notas internas o pie de página del documento" })
|
|
614
614
|
] })
|
|
615
615
|
}
|
|
616
616
|
),
|
|
@@ -648,23 +648,114 @@ const EditCompanyPage = () => {
|
|
|
648
648
|
),
|
|
649
649
|
/* @__PURE__ */ jsxs("div", { className: "flex gap-2 pt-2", children: [
|
|
650
650
|
/* @__PURE__ */ jsx(Button, { variant: "secondary", onClick: () => navigate("/invoice-config/companies"), children: "Cancelar" }),
|
|
651
|
-
/* @__PURE__ */ jsx(Button, { type: "submit", isLoading:
|
|
651
|
+
/* @__PURE__ */ jsx(Button, { type: "submit", isLoading: createMutation.isPending, children: "Crear Empresa" })
|
|
652
652
|
] })
|
|
653
653
|
] }) })
|
|
654
654
|
] });
|
|
655
655
|
};
|
|
656
|
+
const NewTemplatePage = () => {
|
|
657
|
+
const navigate = useNavigate();
|
|
658
|
+
const [name, setName] = useState("");
|
|
659
|
+
const [slug, setSlug] = useState("");
|
|
660
|
+
const [type, setType] = useState("order_invoice");
|
|
661
|
+
const createMutation = useMutation({
|
|
662
|
+
mutationFn: (payload) => sdk.client.fetch("/admin/invoice-templates", {
|
|
663
|
+
method: "POST",
|
|
664
|
+
body: payload
|
|
665
|
+
}),
|
|
666
|
+
onSuccess: (data) => {
|
|
667
|
+
toast.success("Plantilla creada");
|
|
668
|
+
navigate(`/invoice-config/invoice-templates/${data.invoice_template.id}`);
|
|
669
|
+
},
|
|
670
|
+
onError: () => {
|
|
671
|
+
toast.error("Error al crear la plantilla");
|
|
672
|
+
}
|
|
673
|
+
});
|
|
674
|
+
const handleCreate = () => {
|
|
675
|
+
if (!name || !slug) {
|
|
676
|
+
toast.error("Nombre y slug son requeridos");
|
|
677
|
+
return;
|
|
678
|
+
}
|
|
679
|
+
createMutation.mutate({
|
|
680
|
+
name,
|
|
681
|
+
slug,
|
|
682
|
+
type,
|
|
683
|
+
html_content: getDefaultHtml(type)
|
|
684
|
+
});
|
|
685
|
+
};
|
|
686
|
+
return /* @__PURE__ */ jsxs(Container, { children: [
|
|
687
|
+
/* @__PURE__ */ jsx(Heading, { level: "h1", style: { marginBottom: 24 }, children: "Nueva Plantilla" }),
|
|
688
|
+
/* @__PURE__ */ jsxs("div", { style: { display: "flex", flexDirection: "column", gap: 16, maxWidth: 500 }, children: [
|
|
689
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
690
|
+
/* @__PURE__ */ jsx(Label, { htmlFor: "name", children: "Nombre" }),
|
|
691
|
+
/* @__PURE__ */ jsx(Input, { id: "name", value: name, onChange: (e) => setName(e.target.value), placeholder: "Ej: Mi Comprobante" })
|
|
692
|
+
] }),
|
|
693
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
694
|
+
/* @__PURE__ */ jsx(Label, { htmlFor: "slug", children: "Slug (identificador único)" }),
|
|
695
|
+
/* @__PURE__ */ jsx(
|
|
696
|
+
Input,
|
|
697
|
+
{
|
|
698
|
+
id: "slug",
|
|
699
|
+
value: slug,
|
|
700
|
+
onChange: (e) => setSlug(e.target.value.toLowerCase().replace(/[^a-z0-9_]/g, "_")),
|
|
701
|
+
placeholder: "Ej: my_custom_invoice"
|
|
702
|
+
}
|
|
703
|
+
)
|
|
704
|
+
] }),
|
|
705
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
706
|
+
/* @__PURE__ */ jsx(Label, { htmlFor: "type", children: "Tipo de documento" }),
|
|
707
|
+
/* @__PURE__ */ jsxs(Select, { value: type, onValueChange: setType, children: [
|
|
708
|
+
/* @__PURE__ */ jsx(Select.Trigger, { children: /* @__PURE__ */ jsx(Select.Value, { placeholder: "Seleccionar tipo" }) }),
|
|
709
|
+
/* @__PURE__ */ jsxs(Select.Content, { children: [
|
|
710
|
+
/* @__PURE__ */ jsx(Select.Item, { value: "order_invoice", children: "Comprobante de Pedido" }),
|
|
711
|
+
/* @__PURE__ */ jsx(Select.Item, { value: "quote_proforma", children: "Cotización Proforma" })
|
|
712
|
+
] })
|
|
713
|
+
] })
|
|
714
|
+
] }),
|
|
715
|
+
/* @__PURE__ */ jsxs("div", { style: { display: "flex", gap: 8, marginTop: 16 }, children: [
|
|
716
|
+
/* @__PURE__ */ jsx(Button, { variant: "secondary", onClick: () => navigate("/invoice-config/invoice-templates"), children: "Cancelar" }),
|
|
717
|
+
/* @__PURE__ */ jsx(Button, { onClick: handleCreate, isLoading: createMutation.isPending, children: "Crear Plantilla" })
|
|
718
|
+
] })
|
|
719
|
+
] })
|
|
720
|
+
] });
|
|
721
|
+
};
|
|
722
|
+
function getDefaultHtml(type) {
|
|
723
|
+
if (type === "quote_proforma") {
|
|
724
|
+
return `<!DOCTYPE html>
|
|
725
|
+
<html>
|
|
726
|
+
<head><style>body { font-family: Helvetica, sans-serif; }</style></head>
|
|
727
|
+
<body>
|
|
728
|
+
<h1>COTIZACIÓN {{quote_number}}</h1>
|
|
729
|
+
<p>Fecha: {{date_str}}</p>
|
|
730
|
+
<p>Servicio: {{service_name}}</p>
|
|
731
|
+
<!-- Personaliza tu plantilla aquí -->
|
|
732
|
+
</body>
|
|
733
|
+
</html>`;
|
|
734
|
+
}
|
|
735
|
+
return `<!DOCTYPE html>
|
|
736
|
+
<html>
|
|
737
|
+
<head><style>body { font-family: Helvetica, sans-serif; }</style></head>
|
|
738
|
+
<body>
|
|
739
|
+
<h1>COMPROBANTE {{invoice_id}}</h1>
|
|
740
|
+
<p>Fecha: {{invoice_date}}</p>
|
|
741
|
+
<p>Empresa: {{company_name}}</p>
|
|
742
|
+
<!-- Personaliza tu plantilla aquí -->
|
|
743
|
+
</body>
|
|
744
|
+
</html>`;
|
|
745
|
+
}
|
|
746
|
+
const COMPANY_VARIABLES = [
|
|
747
|
+
{ name: "company_name" },
|
|
748
|
+
{ name: "company_ruc" },
|
|
749
|
+
{ name: "company_address" },
|
|
750
|
+
{ name: "company_phone" },
|
|
751
|
+
{ name: "company_email" },
|
|
752
|
+
{ name: "company_logo_base64" }
|
|
753
|
+
];
|
|
656
754
|
const ORDER_INVOICE_CATEGORIES = [
|
|
657
755
|
{
|
|
658
756
|
label: "Empresa",
|
|
659
757
|
icon: "🏢",
|
|
660
|
-
variables:
|
|
661
|
-
{ name: "company_name" },
|
|
662
|
-
{ name: "company_ruc" },
|
|
663
|
-
{ name: "company_address" },
|
|
664
|
-
{ name: "company_phone" },
|
|
665
|
-
{ name: "company_email" },
|
|
666
|
-
{ name: "company_logo_base64" }
|
|
667
|
-
]
|
|
758
|
+
variables: COMPANY_VARIABLES
|
|
668
759
|
},
|
|
669
760
|
{
|
|
670
761
|
label: "Documento",
|
|
@@ -722,10 +813,7 @@ const QUOTE_PROFORMA_CATEGORIES = [
|
|
|
722
813
|
{
|
|
723
814
|
label: "Empresa",
|
|
724
815
|
icon: "🏢",
|
|
725
|
-
variables: [
|
|
726
|
-
{ name: "company_name" },
|
|
727
|
-
{ name: "company_website" }
|
|
728
|
-
]
|
|
816
|
+
variables: [...COMPANY_VARIABLES, { name: "company_website" }]
|
|
729
817
|
},
|
|
730
818
|
{
|
|
731
819
|
label: "Documento",
|
|
@@ -817,6 +905,11 @@ const SAMPLE_DATA = {
|
|
|
817
905
|
},
|
|
818
906
|
quote_proforma: {
|
|
819
907
|
company_name: "Mi Empresa",
|
|
908
|
+
company_ruc: "1234567890001",
|
|
909
|
+
company_address: "Av. Principal 123, Quito",
|
|
910
|
+
company_phone: "+593 99 123 4567",
|
|
911
|
+
company_email: "info@miempresa.com",
|
|
912
|
+
company_logo_base64: PLACEHOLDER_LOGO_BASE64,
|
|
820
913
|
company_website: "www.miempresa.com",
|
|
821
914
|
quote_number: "QP-2025-0001",
|
|
822
915
|
date_str: "19/06/2025",
|
|
@@ -1055,96 +1148,6 @@ const TemplateEditorPage = () => {
|
|
|
1055
1148
|
] })
|
|
1056
1149
|
] });
|
|
1057
1150
|
};
|
|
1058
|
-
const NewTemplatePage = () => {
|
|
1059
|
-
const navigate = useNavigate();
|
|
1060
|
-
const [name, setName] = useState("");
|
|
1061
|
-
const [slug, setSlug] = useState("");
|
|
1062
|
-
const [type, setType] = useState("order_invoice");
|
|
1063
|
-
const createMutation = useMutation({
|
|
1064
|
-
mutationFn: (payload) => sdk.client.fetch("/admin/invoice-templates", {
|
|
1065
|
-
method: "POST",
|
|
1066
|
-
body: payload
|
|
1067
|
-
}),
|
|
1068
|
-
onSuccess: (data) => {
|
|
1069
|
-
toast.success("Plantilla creada");
|
|
1070
|
-
navigate(`/invoice-config/invoice-templates/${data.invoice_template.id}`);
|
|
1071
|
-
},
|
|
1072
|
-
onError: () => {
|
|
1073
|
-
toast.error("Error al crear la plantilla");
|
|
1074
|
-
}
|
|
1075
|
-
});
|
|
1076
|
-
const handleCreate = () => {
|
|
1077
|
-
if (!name || !slug) {
|
|
1078
|
-
toast.error("Nombre y slug son requeridos");
|
|
1079
|
-
return;
|
|
1080
|
-
}
|
|
1081
|
-
createMutation.mutate({
|
|
1082
|
-
name,
|
|
1083
|
-
slug,
|
|
1084
|
-
type,
|
|
1085
|
-
html_content: getDefaultHtml(type)
|
|
1086
|
-
});
|
|
1087
|
-
};
|
|
1088
|
-
return /* @__PURE__ */ jsxs(Container, { children: [
|
|
1089
|
-
/* @__PURE__ */ jsx(Heading, { level: "h1", style: { marginBottom: 24 }, children: "Nueva Plantilla" }),
|
|
1090
|
-
/* @__PURE__ */ jsxs("div", { style: { display: "flex", flexDirection: "column", gap: 16, maxWidth: 500 }, children: [
|
|
1091
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
1092
|
-
/* @__PURE__ */ jsx(Label, { htmlFor: "name", children: "Nombre" }),
|
|
1093
|
-
/* @__PURE__ */ jsx(Input, { id: "name", value: name, onChange: (e) => setName(e.target.value), placeholder: "Ej: Mi Comprobante" })
|
|
1094
|
-
] }),
|
|
1095
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
1096
|
-
/* @__PURE__ */ jsx(Label, { htmlFor: "slug", children: "Slug (identificador único)" }),
|
|
1097
|
-
/* @__PURE__ */ jsx(
|
|
1098
|
-
Input,
|
|
1099
|
-
{
|
|
1100
|
-
id: "slug",
|
|
1101
|
-
value: slug,
|
|
1102
|
-
onChange: (e) => setSlug(e.target.value.toLowerCase().replace(/[^a-z0-9_]/g, "_")),
|
|
1103
|
-
placeholder: "Ej: my_custom_invoice"
|
|
1104
|
-
}
|
|
1105
|
-
)
|
|
1106
|
-
] }),
|
|
1107
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
1108
|
-
/* @__PURE__ */ jsx(Label, { htmlFor: "type", children: "Tipo de documento" }),
|
|
1109
|
-
/* @__PURE__ */ jsxs(Select, { value: type, onValueChange: setType, children: [
|
|
1110
|
-
/* @__PURE__ */ jsx(Select.Trigger, { children: /* @__PURE__ */ jsx(Select.Value, { placeholder: "Seleccionar tipo" }) }),
|
|
1111
|
-
/* @__PURE__ */ jsxs(Select.Content, { children: [
|
|
1112
|
-
/* @__PURE__ */ jsx(Select.Item, { value: "order_invoice", children: "Comprobante de Pedido" }),
|
|
1113
|
-
/* @__PURE__ */ jsx(Select.Item, { value: "quote_proforma", children: "Cotización Proforma" })
|
|
1114
|
-
] })
|
|
1115
|
-
] })
|
|
1116
|
-
] }),
|
|
1117
|
-
/* @__PURE__ */ jsxs("div", { style: { display: "flex", gap: 8, marginTop: 16 }, children: [
|
|
1118
|
-
/* @__PURE__ */ jsx(Button, { variant: "secondary", onClick: () => navigate("/invoice-config/invoice-templates"), children: "Cancelar" }),
|
|
1119
|
-
/* @__PURE__ */ jsx(Button, { onClick: handleCreate, isLoading: createMutation.isPending, children: "Crear Plantilla" })
|
|
1120
|
-
] })
|
|
1121
|
-
] })
|
|
1122
|
-
] });
|
|
1123
|
-
};
|
|
1124
|
-
function getDefaultHtml(type) {
|
|
1125
|
-
if (type === "quote_proforma") {
|
|
1126
|
-
return `<!DOCTYPE html>
|
|
1127
|
-
<html>
|
|
1128
|
-
<head><style>body { font-family: Helvetica, sans-serif; }</style></head>
|
|
1129
|
-
<body>
|
|
1130
|
-
<h1>COTIZACIÓN {{quote_number}}</h1>
|
|
1131
|
-
<p>Fecha: {{date_str}}</p>
|
|
1132
|
-
<p>Servicio: {{service_name}}</p>
|
|
1133
|
-
<!-- Personaliza tu plantilla aquí -->
|
|
1134
|
-
</body>
|
|
1135
|
-
</html>`;
|
|
1136
|
-
}
|
|
1137
|
-
return `<!DOCTYPE html>
|
|
1138
|
-
<html>
|
|
1139
|
-
<head><style>body { font-family: Helvetica, sans-serif; }</style></head>
|
|
1140
|
-
<body>
|
|
1141
|
-
<h1>COMPROBANTE {{invoice_id}}</h1>
|
|
1142
|
-
<p>Fecha: {{invoice_date}}</p>
|
|
1143
|
-
<p>Empresa: {{company_name}}</p>
|
|
1144
|
-
<!-- Personaliza tu plantilla aquí -->
|
|
1145
|
-
</body>
|
|
1146
|
-
</html>`;
|
|
1147
|
-
}
|
|
1148
1151
|
const i18nTranslations0 = {};
|
|
1149
1152
|
const widgetModule = { widgets: [
|
|
1150
1153
|
{
|
|
@@ -1166,21 +1169,21 @@ const routeModule = {
|
|
|
1166
1169
|
Component: InvoiceTemplatesPage,
|
|
1167
1170
|
path: "/invoice-config/invoice-templates"
|
|
1168
1171
|
},
|
|
1169
|
-
{
|
|
1170
|
-
Component: NewCompanyPage,
|
|
1171
|
-
path: "/invoice-config/companies/new"
|
|
1172
|
-
},
|
|
1173
1172
|
{
|
|
1174
1173
|
Component: EditCompanyPage,
|
|
1175
1174
|
path: "/invoice-config/companies/:id"
|
|
1176
1175
|
},
|
|
1177
1176
|
{
|
|
1178
|
-
Component:
|
|
1179
|
-
path: "/invoice-config/
|
|
1177
|
+
Component: NewCompanyPage,
|
|
1178
|
+
path: "/invoice-config/companies/new"
|
|
1180
1179
|
},
|
|
1181
1180
|
{
|
|
1182
1181
|
Component: NewTemplatePage,
|
|
1183
1182
|
path: "/invoice-config/invoice-templates/new"
|
|
1183
|
+
},
|
|
1184
|
+
{
|
|
1185
|
+
Component: TemplateEditorPage,
|
|
1186
|
+
path: "/invoice-config/invoice-templates/:id"
|
|
1184
1187
|
}
|
|
1185
1188
|
]
|
|
1186
1189
|
};
|
|
@@ -296,21 +296,14 @@ class OrderInvoiceStrategy extends strategy_1.BaseDocumentStrategy {
|
|
|
296
296
|
const { order, items } = input;
|
|
297
297
|
const currency = order.currency_code ?? "USD";
|
|
298
298
|
const invoiceId = `INV-${input.invoiceDisplayId.toString().padStart(6, "0")}`;
|
|
299
|
-
const
|
|
300
|
-
? await this.imageUrlToBase64(config.company_logo)
|
|
301
|
-
: "";
|
|
299
|
+
const companyCtx = await this.buildCompanyContext(config);
|
|
302
300
|
const isHomeDelivery = order.shipping_methods?.some(sm => sm.shipping_option_id === (process.env.HOME_DELIVERY_OPTION_ID || "so_01KAT339XAY8G622P8PSGW7BAZ"));
|
|
303
301
|
const extractCedula = (addr, metadata) => {
|
|
304
302
|
const val = addr?.metadata?.cedula ?? metadata?.cedula;
|
|
305
303
|
return val ? String(val) : "";
|
|
306
304
|
};
|
|
307
305
|
const data = {
|
|
308
|
-
|
|
309
|
-
company_ruc: config.company_ruc ?? "",
|
|
310
|
-
company_address: config.company_address ?? "",
|
|
311
|
-
company_phone: config.company_phone ?? "",
|
|
312
|
-
company_email: config.company_email ?? "",
|
|
313
|
-
company_logo_base64: logoBase64,
|
|
306
|
+
...companyCtx,
|
|
314
307
|
invoice_id: invoiceId,
|
|
315
308
|
invoice_date: new Date(input.created_at).toLocaleDateString("es-ES"),
|
|
316
309
|
order_display_id: String(order.display_id).padStart(6, "0"),
|
|
@@ -345,4 +338,4 @@ class OrderInvoiceStrategy extends strategy_1.BaseDocumentStrategy {
|
|
|
345
338
|
}
|
|
346
339
|
}
|
|
347
340
|
exports.OrderInvoiceStrategy = OrderInvoiceStrategy;
|
|
348
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItaW52b2ljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2ludm9pY2UtZ2VuZXJhdG9yL3RlbXBsYXRlcy9vcmRlci1pbnZvaWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLHlDQUFtRTtBQTREbkUsaUZBQWlGO0FBRWpGOzs7O0dBSUc7QUFDSCxTQUFTLGtCQUFrQixDQUFDLElBQXFCO0lBQzdDLE9BQU8sT0FBUSxJQUFvQyxDQUFDLGFBQWEsS0FBSyxRQUFRLENBQUE7QUFDbEYsQ0FBQztBQUVELGlGQUFpRjtBQUVqRixNQUFNLFdBQVcsR0FBc0I7SUFDbkMsU0FBUyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzVELFVBQVUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUNwQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRztJQUN2RCxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRztJQUNyQixVQUFVLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FDcEIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVM7SUFDbkUsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLFNBQVM7SUFDM0IsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDcEIsWUFBWSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDckIsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDbkIsYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7Q0FDekIsQ0FBQTtBQUVELGlGQUFpRjtBQUVqRixNQUFhLG9CQUFxQixTQUFRLCtCQUF1QztJQUM3RSxLQUFLLENBQUMsdUJBQXVCLENBQ3pCLEtBQXdCLEVBQ3hCLE1BQXlDLEVBQ3pDLFlBQTRCO1FBRTVCLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsS0FBSyxDQUFBO1FBRTlCLHVFQUF1RTtRQUN2RSxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDMUQsQ0FBQztRQUVELDBFQUEwRTtRQUMxRSxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDL0IsTUFBTSxZQUFZLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDLENBQUE7WUFDN0YsTUFBTSxXQUFXLEdBQ2IsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksWUFBWSxLQUFLLGlCQUFpQixDQUFBO1lBRWpFLE9BQU87Z0JBQ0g7b0JBQ0ksS0FBSyxFQUFFO3dCQUNILEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxLQUFLLElBQUksc0JBQXNCLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO3dCQUM1RSxHQUFHLENBQUMsV0FBVzs0QkFDWCxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFxQyxFQUFFLENBQUM7NEJBQ3RJLENBQUMsQ0FBQyxFQUFFLENBQUM7cUJBQ1o7aUJBQ0o7Z0JBQ0QsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFO2dCQUNqRCxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFO2dCQUN6RixFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRTthQUN2RyxDQUFBO1FBQ0wsQ0FBQyxDQUFDLENBQUE7UUFFRixNQUFNLFVBQVUsR0FBRztZQUNmO2dCQUNJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFO2dCQUMxQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRTtnQkFDMUMsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRTtnQkFDakQsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUU7YUFDMUM7WUFDRCxHQUFHLFFBQVE7U0FDZCxDQUFBO1FBRUQsTUFBTSxTQUFTLEdBQUcsT0FBTyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFBO1FBQzdFLE1BQU0sV0FBVyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUMxRSxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsWUFBWTtZQUNsQyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztZQUNsRCxDQUFDLENBQUMsRUFBRSxDQUFBO1FBRVIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLDhCQUE4QixDQUFDLENBQUE7UUFDN0YsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsd0JBQXdCLENBQUMsQ0FBQTtRQUV6RixNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLGtCQUFrQixLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsSUFBSSwrQkFBK0IsQ0FBQyxDQUFDLENBQUE7UUFFN0osTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUE0QyxFQUFFLFFBQXlDLEVBQVUsRUFBRTtZQUN0SCxNQUFNLEdBQUcsR0FBRyxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sSUFBSSxRQUFRLEVBQUUsTUFBTSxDQUFBO1lBQ3RELElBQUksQ0FBQyxHQUFHO2dCQUFFLE9BQU8sRUFBRSxDQUFBO1lBQ25CLE9BQU8sZUFBZSxHQUFHLEVBQUUsQ0FBQTtRQUMvQixDQUFDLENBQUE7UUFDRCxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksYUFBYSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUE7UUFFaEksTUFBTSxXQUFXLEdBQVU7WUFDdkIsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFxQyxFQUFFO1lBQ3JHLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFO1NBQzlDLENBQUE7UUFDRCxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2IsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQXFDLEVBQUUsQ0FBQyxDQUFBO1FBQzFILENBQUM7UUFFRCxNQUFNLFVBQVUsR0FBWTtZQUN4QjtnQkFDSSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRTtnQkFDMUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUU7YUFDM0c7WUFDRDtnQkFDSSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRTtnQkFDM0MsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUU7YUFDNUc7U0FDSixDQUFBO1FBRUQsSUFBSSxDQUFDLGNBQWMsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNqRixVQUFVLENBQUMsSUFBSSxDQUFDO2dCQUNaLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO2dCQUN2QyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRTthQUM3SCxDQUFDLENBQUE7UUFDTixDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsVUFBVSxDQUFDLElBQUksQ0FBQztnQkFDWixFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRTtnQkFDM0MsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRTthQUM1RyxDQUFDLENBQUE7UUFDTixDQUFDO1FBRUQsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNaLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO1lBQ3ZDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO1NBQ3hHLENBQUMsQ0FBQTtRQUVGLE1BQU0sTUFBTSxHQUF5QjtZQUNqQyxRQUFRLEVBQUUsSUFBSTtZQUNkLFdBQVcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUU3QixNQUFNLEVBQUU7Z0JBQ0osTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN2QixPQUFPLEVBQUU7b0JBQ0w7d0JBQ0ksS0FBSyxFQUFFLEdBQUc7d0JBQ1YsS0FBSyxFQUFFOzRCQUNILEdBQUcsQ0FBQyxVQUFVO2dDQUNWLENBQUMsQ0FBQztvQ0FDRTt3Q0FDSSxLQUFLLEVBQUUsVUFBVTt3Q0FDakIsS0FBSyxFQUFFLEVBQUU7d0NBQ1QsTUFBTSxFQUFFLEVBQUU7d0NBQ1YsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBcUI7d0NBQ2pDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBcUM7cUNBQzVEO2lDQUNKO2dDQUNELENBQUMsQ0FBQyxFQUFFLENBQUM7NEJBQ1Q7Z0NBQ0ksSUFBSSxFQUFFLE1BQU0sQ0FBQyxZQUFZLElBQUksc0JBQXNCO2dDQUNuRCxLQUFLLEVBQUUsYUFBYTs2QkFDdkI7eUJBQ0o7cUJBQ0o7b0JBQ0Q7d0JBQ0ksS0FBSyxFQUFFLE1BQU07d0JBQ2IsS0FBSyxFQUFFOzRCQUNIO2dDQUNJLElBQUksRUFBRSx1QkFBdUI7Z0NBQzdCLEtBQUssRUFBRSxjQUFjO2dDQUNyQixTQUFTLEVBQUUsT0FBTzs2QkFDckI7eUJBQ0o7cUJBQ0o7aUJBQ0o7YUFDSjtZQUVELE9BQU8sRUFBRTtnQkFDTDtvQkFDSSxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQXFDO29CQUN6RCxPQUFPLEVBQUU7d0JBQ0wsa0JBQWtCO3dCQUNsQjs0QkFDSSxLQUFLLEVBQUUsR0FBRzs0QkFDVixLQUFLLEVBQUU7Z0NBQ0gsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQXFDLEVBQUU7Z0NBQ2pILEdBQUcsQ0FBQyxNQUFNLENBQUMsV0FBVztvQ0FDbEIsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxNQUFNLENBQUMsV0FBVyxFQUFFLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBcUMsRUFBRSxDQUFDO29DQUM3SCxDQUFDLENBQUMsRUFBRSxDQUFDO2dDQUNULEdBQUcsQ0FBQyxNQUFNLENBQUMsZUFBZTtvQ0FDdEIsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLGVBQWUsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFxQyxFQUFFLENBQUM7b0NBQ3ZILENBQUMsQ0FBQyxFQUFFLENBQUM7Z0NBQ1QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxhQUFhO29DQUNwQixDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQXFDLEVBQUUsQ0FBQztvQ0FDckgsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQ0FDVCxHQUFHLENBQUMsTUFBTSxDQUFDLGFBQWE7b0NBQ3BCLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLENBQUM7b0NBQzNELENBQUMsQ0FBQyxFQUFFLENBQUM7NkJBQ1o7eUJBQ0o7d0JBQ0QsZUFBZTt3QkFDZjs0QkFDSSxLQUFLLEVBQUUsTUFBTTs0QkFDYixLQUFLLEVBQUU7Z0NBQ0gsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQztnQ0FDakIsSUFBSSxFQUFFO29DQUNGO3dDQUNJLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7d0NBQzNDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO3FDQUN0QztvQ0FDRDt3Q0FDSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTt3Q0FDbEMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7cUNBQ3hDO29DQUNEO3dDQUNJLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO3dDQUN0QyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTtxQ0FDdEU7b0NBQ0Q7d0NBQ0ksRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7d0NBQ3pDLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO3FDQUNuRjtpQ0FDSjs2QkFDSjs0QkFDRCxNQUFNLEVBQUUsV0FBVzs0QkFDbkIsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFxQzt5QkFDNUQ7cUJBQ0o7aUJBQ0o7Z0JBQ0QsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO2dCQUNkLFlBQVk7Z0JBQ1o7b0JBQ0ksT0FBTyxFQUFFO3dCQUNMOzRCQUNJLEtBQUssRUFBRSxHQUFHOzRCQUNWLEtBQUssRUFBRSxXQUFXO3lCQUNyQjt3QkFDRDs0QkFDSSxLQUFLLEVBQUUsR0FBRzs0QkFDVixLQUFLLEVBQUU7Z0NBQ0gsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFxQyxFQUFFO2dDQUNyRyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRTs2QkFDL0M7eUJBQ0o7cUJBQ0o7aUJBQ0o7Z0JBQ0QsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO2dCQUNoQixjQUFjO2dCQUNkO29CQUNJLEtBQUssRUFBRTt3QkFDSCxVQUFVLEVBQUUsQ0FBQzt3QkFDYixNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUM7d0JBQ3JDLElBQUksRUFBRSxVQUFVO3FCQUNuQjtvQkFDRCxNQUFNLEVBQUUsV0FBVztpQkFDdEI7Z0JBQ0QsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO2dCQUNkLFNBQVM7Z0JBQ1Q7b0JBQ0ksT0FBTyxFQUFFO3dCQUNMLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFO3dCQUN4Qjs0QkFDSSxLQUFLLEVBQUUsTUFBTTs0QkFDYixLQUFLLEVBQUU7Z0NBQ0gsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQztnQ0FDeEIsSUFBSSxFQUFFLFVBQVU7NkJBQ25COzRCQUNELE1BQU0sRUFBRSxXQUFXO3lCQUN0QjtxQkFDSjtpQkFDSjtnQkFDRCxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7Z0JBQ2hCLFFBQVE7Z0JBQ1IsR0FBRyxDQUFDLGNBQWM7b0JBQ2QsQ0FBQyxDQUFDO3dCQUNFLEVBQUUsSUFBSSxFQUFFLHdCQUF3QixFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFxQyxFQUFFO3dCQUNySCxFQUFFLElBQUksRUFBRSxxSEFBcUgsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBcUMsRUFBRTtxQkFDbk47b0JBQ0QsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDVCxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUs7b0JBQ1osQ0FBQyxDQUFDO3dCQUNFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBcUMsRUFBRTt3QkFDckcsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBcUMsRUFBRTtxQkFDeEc7b0JBQ0QsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDVCxFQUFFLElBQUksRUFBRSx5QkFBeUIsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFxQyxFQUFFO2dCQUMxSSxFQUFFLElBQUksRUFBRSwyRUFBMkUsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQXFDLEVBQUU7YUFDak07WUFFRCxNQUFNLEVBQUU7Z0JBQ0osV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7Z0JBQzNELGNBQWMsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFO2dCQUNuRSxjQUFjLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7Z0JBQ2xELFlBQVksRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO2dCQUM1RCxLQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7Z0JBQ3pDLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO2dCQUNyRCxhQUFhLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtnQkFDN0QsV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUU7Z0JBQ2hFLFdBQVcsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUU7Z0JBQ2pGLFFBQVEsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtnQkFDM0MsVUFBVSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7Z0JBQzFELFVBQVUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO2dCQUMxRCxTQUFTLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFO2dCQUM3RSxZQUFZLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtnQkFDL0QsY0FBYyxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7Z0JBQ2hFLGFBQWEsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVB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
|
|
341
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItaW52b2ljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2ludm9pY2UtZ2VuZXJhdG9yL3RlbXBsYXRlcy9vcmRlci1pbnZvaWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLHlDQUFtRTtBQTREbkUsaUZBQWlGO0FBRWpGOzs7O0dBSUc7QUFDSCxTQUFTLGtCQUFrQixDQUFDLElBQXFCO0lBQzdDLE9BQU8sT0FBUSxJQUFvQyxDQUFDLGFBQWEsS0FBSyxRQUFRLENBQUE7QUFDbEYsQ0FBQztBQUVELGlGQUFpRjtBQUVqRixNQUFNLFdBQVcsR0FBc0I7SUFDbkMsU0FBUyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzVELFVBQVUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUNwQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRztJQUN2RCxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRztJQUNyQixVQUFVLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FDcEIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVM7SUFDbkUsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLFNBQVM7SUFDM0IsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDcEIsWUFBWSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDckIsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDbkIsYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7Q0FDekIsQ0FBQTtBQUVELGlGQUFpRjtBQUVqRixNQUFhLG9CQUFxQixTQUFRLCtCQUF1QztJQUM3RSxLQUFLLENBQUMsdUJBQXVCLENBQ3pCLEtBQXdCLEVBQ3hCLE1BQXlDLEVBQ3pDLFlBQTRCO1FBRTVCLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsS0FBSyxDQUFBO1FBRTlCLHVFQUF1RTtRQUN2RSxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDMUQsQ0FBQztRQUVELDBFQUEwRTtRQUMxRSxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDL0IsTUFBTSxZQUFZLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDLENBQUE7WUFDN0YsTUFBTSxXQUFXLEdBQ2IsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksWUFBWSxLQUFLLGlCQUFpQixDQUFBO1lBRWpFLE9BQU87Z0JBQ0g7b0JBQ0ksS0FBSyxFQUFFO3dCQUNILEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxLQUFLLElBQUksc0JBQXNCLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO3dCQUM1RSxHQUFHLENBQUMsV0FBVzs0QkFDWCxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFxQyxFQUFFLENBQUM7NEJBQ3RJLENBQUMsQ0FBQyxFQUFFLENBQUM7cUJBQ1o7aUJBQ0o7Z0JBQ0QsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFO2dCQUNqRCxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFO2dCQUN6RixFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRTthQUN2RyxDQUFBO1FBQ0wsQ0FBQyxDQUFDLENBQUE7UUFFRixNQUFNLFVBQVUsR0FBRztZQUNmO2dCQUNJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFO2dCQUMxQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRTtnQkFDMUMsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRTtnQkFDakQsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUU7YUFDMUM7WUFDRCxHQUFHLFFBQVE7U0FDZCxDQUFBO1FBRUQsTUFBTSxTQUFTLEdBQUcsT0FBTyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFBO1FBQzdFLE1BQU0sV0FBVyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUMxRSxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsWUFBWTtZQUNsQyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztZQUNsRCxDQUFDLENBQUMsRUFBRSxDQUFBO1FBRVIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLDhCQUE4QixDQUFDLENBQUE7UUFDN0YsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsd0JBQXdCLENBQUMsQ0FBQTtRQUV6RixNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLGtCQUFrQixLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsSUFBSSwrQkFBK0IsQ0FBQyxDQUFDLENBQUE7UUFFN0osTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUE0QyxFQUFFLFFBQXlDLEVBQVUsRUFBRTtZQUN0SCxNQUFNLEdBQUcsR0FBRyxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sSUFBSSxRQUFRLEVBQUUsTUFBTSxDQUFBO1lBQ3RELElBQUksQ0FBQyxHQUFHO2dCQUFFLE9BQU8sRUFBRSxDQUFBO1lBQ25CLE9BQU8sZUFBZSxHQUFHLEVBQUUsQ0FBQTtRQUMvQixDQUFDLENBQUE7UUFDRCxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksYUFBYSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUE7UUFFaEksTUFBTSxXQUFXLEdBQVU7WUFDdkIsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFxQyxFQUFFO1lBQ3JHLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFO1NBQzlDLENBQUE7UUFDRCxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2IsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQXFDLEVBQUUsQ0FBQyxDQUFBO1FBQzFILENBQUM7UUFFRCxNQUFNLFVBQVUsR0FBWTtZQUN4QjtnQkFDSSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRTtnQkFDMUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUU7YUFDM0c7WUFDRDtnQkFDSSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRTtnQkFDM0MsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUU7YUFDNUc7U0FDSixDQUFBO1FBRUQsSUFBSSxDQUFDLGNBQWMsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNqRixVQUFVLENBQUMsSUFBSSxDQUFDO2dCQUNaLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO2dCQUN2QyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRTthQUM3SCxDQUFDLENBQUE7UUFDTixDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsVUFBVSxDQUFDLElBQUksQ0FBQztnQkFDWixFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRTtnQkFDM0MsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRTthQUM1RyxDQUFDLENBQUE7UUFDTixDQUFDO1FBRUQsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNaLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO1lBQ3ZDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO1NBQ3hHLENBQUMsQ0FBQTtRQUVGLE1BQU0sTUFBTSxHQUF5QjtZQUNqQyxRQUFRLEVBQUUsSUFBSTtZQUNkLFdBQVcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUU3QixNQUFNLEVBQUU7Z0JBQ0osTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN2QixPQUFPLEVBQUU7b0JBQ0w7d0JBQ0ksS0FBSyxFQUFFLEdBQUc7d0JBQ1YsS0FBSyxFQUFFOzRCQUNILEdBQUcsQ0FBQyxVQUFVO2dDQUNWLENBQUMsQ0FBQztvQ0FDRTt3Q0FDSSxLQUFLLEVBQUUsVUFBVTt3Q0FDakIsS0FBSyxFQUFFLEVBQUU7d0NBQ1QsTUFBTSxFQUFFLEVBQUU7d0NBQ1YsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBcUI7d0NBQ2pDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBcUM7cUNBQzVEO2lDQUNKO2dDQUNELENBQUMsQ0FBQyxFQUFFLENBQUM7NEJBQ1Q7Z0NBQ0ksSUFBSSxFQUFFLE1BQU0sQ0FBQyxZQUFZLElBQUksc0JBQXNCO2dDQUNuRCxLQUFLLEVBQUUsYUFBYTs2QkFDdkI7eUJBQ0o7cUJBQ0o7b0JBQ0Q7d0JBQ0ksS0FBSyxFQUFFLE1BQU07d0JBQ2IsS0FBSyxFQUFFOzRCQUNIO2dDQUNJLElBQUksRUFBRSx1QkFBdUI7Z0NBQzdCLEtBQUssRUFBRSxjQUFjO2dDQUNyQixTQUFTLEVBQUUsT0FBTzs2QkFDckI7eUJBQ0o7cUJBQ0o7aUJBQ0o7YUFDSjtZQUVELE9BQU8sRUFBRTtnQkFDTDtvQkFDSSxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQXFDO29CQUN6RCxPQUFPLEVBQUU7d0JBQ0wsa0JBQWtCO3dCQUNsQjs0QkFDSSxLQUFLLEVBQUUsR0FBRzs0QkFDVixLQUFLLEVBQUU7Z0NBQ0gsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQXFDLEVBQUU7Z0NBQ2pILEdBQUcsQ0FBQyxNQUFNLENBQUMsV0FBVztvQ0FDbEIsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxNQUFNLENBQUMsV0FBVyxFQUFFLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBcUMsRUFBRSxDQUFDO29DQUM3SCxDQUFDLENBQUMsRUFBRSxDQUFDO2dDQUNULEdBQUcsQ0FBQyxNQUFNLENBQUMsZUFBZTtvQ0FDdEIsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLGVBQWUsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFxQyxFQUFFLENBQUM7b0NBQ3ZILENBQUMsQ0FBQyxFQUFFLENBQUM7Z0NBQ1QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxhQUFhO29DQUNwQixDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQXFDLEVBQUUsQ0FBQztvQ0FDckgsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQ0FDVCxHQUFHLENBQUMsTUFBTSxDQUFDLGFBQWE7b0NBQ3BCLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLENBQUM7b0NBQzNELENBQUMsQ0FBQyxFQUFFLENBQUM7NkJBQ1o7eUJBQ0o7d0JBQ0QsZUFBZTt3QkFDZjs0QkFDSSxLQUFLLEVBQUUsTUFBTTs0QkFDYixLQUFLLEVBQUU7Z0NBQ0gsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQztnQ0FDakIsSUFBSSxFQUFFO29DQUNGO3dDQUNJLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7d0NBQzNDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO3FDQUN0QztvQ0FDRDt3Q0FDSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTt3Q0FDbEMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7cUNBQ3hDO29DQUNEO3dDQUNJLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO3dDQUN0QyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTtxQ0FDdEU7b0NBQ0Q7d0NBQ0ksRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7d0NBQ3pDLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO3FDQUNuRjtpQ0FDSjs2QkFDSjs0QkFDRCxNQUFNLEVBQUUsV0FBVzs0QkFDbkIsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFxQzt5QkFDNUQ7cUJBQ0o7aUJBQ0o7Z0JBQ0QsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO2dCQUNkLFlBQVk7Z0JBQ1o7b0JBQ0ksT0FBTyxFQUFFO3dCQUNMOzRCQUNJLEtBQUssRUFBRSxHQUFHOzRCQUNWLEtBQUssRUFBRSxXQUFXO3lCQUNyQjt3QkFDRDs0QkFDSSxLQUFLLEVBQUUsR0FBRzs0QkFDVixLQUFLLEVBQUU7Z0NBQ0gsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFxQyxFQUFFO2dDQUNyRyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRTs2QkFDL0M7eUJBQ0o7cUJBQ0o7aUJBQ0o7Z0JBQ0QsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO2dCQUNoQixjQUFjO2dCQUNkO29CQUNJLEtBQUssRUFBRTt3QkFDSCxVQUFVLEVBQUUsQ0FBQzt3QkFDYixNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUM7d0JBQ3JDLElBQUksRUFBRSxVQUFVO3FCQUNuQjtvQkFDRCxNQUFNLEVBQUUsV0FBVztpQkFDdEI7Z0JBQ0QsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO2dCQUNkLFNBQVM7Z0JBQ1Q7b0JBQ0ksT0FBTyxFQUFFO3dCQUNMLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFO3dCQUN4Qjs0QkFDSSxLQUFLLEVBQUUsTUFBTTs0QkFDYixLQUFLLEVBQUU7Z0NBQ0gsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQztnQ0FDeEIsSUFBSSxFQUFFLFVBQVU7NkJBQ25COzRCQUNELE1BQU0sRUFBRSxXQUFXO3lCQUN0QjtxQkFDSjtpQkFDSjtnQkFDRCxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7Z0JBQ2hCLFFBQVE7Z0JBQ1IsR0FBRyxDQUFDLGNBQWM7b0JBQ2QsQ0FBQyxDQUFDO3dCQUNFLEVBQUUsSUFBSSxFQUFFLHdCQUF3QixFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFxQyxFQUFFO3dCQUNySCxFQUFFLElBQUksRUFBRSxxSEFBcUgsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBcUMsRUFBRTtxQkFDbk47b0JBQ0QsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDVCxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUs7b0JBQ1osQ0FBQyxDQUFDO3dCQUNFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBcUMsRUFBRTt3QkFDckcsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBcUMsRUFBRTtxQkFDeEc7b0JBQ0QsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDVCxFQUFFLElBQUksRUFBRSx5QkFBeUIsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFxQyxFQUFFO2dCQUMxSSxFQUFFLElBQUksRUFBRSwyRUFBMkUsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQXFDLEVBQUU7YUFDak07WUFFRCxNQUFNLEVBQUU7Z0JBQ0osV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7Z0JBQzNELGNBQWMsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFO2dCQUNuRSxjQUFjLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7Z0JBQ2xELFlBQVksRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO2dCQUM1RCxLQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7Z0JBQ3pDLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO2dCQUNyRCxhQUFhLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtnQkFDN0QsV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUU7Z0JBQ2hFLFdBQVcsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUU7Z0JBQ2pGLFFBQVEsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtnQkFDM0MsVUFBVSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7Z0JBQzFELFVBQVUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO2dCQUMxRCxTQUFTLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFO2dCQUM3RSxZQUFZLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtnQkFDL0QsY0FBYyxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7Z0JBQ2hFLGFBQWEsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVB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
|