dmencu 2.0.20 → 2.0.21
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/client/server/table-tem.d.ts +3 -0
- package/dist/client/server/table-tem.js +239 -0
- package/dist/client/server/types-dmencu.d.ts +48 -0
- package/dist/client/server/types-dmencu.js +33 -0
- package/dist/client/unlogged/css/bootstrap.min.css +6 -6
- package/dist/client/unlogged/tsconfig.json +14 -14
- package/dist/server/server/table-barrios.js +1 -1
- package/dist/server/server/table-comunas copy.d.ts +2 -0
- package/dist/server/server/table-comunas copy.js +28 -0
- package/dist/server/server/table-comunas.js +2 -2
- package/dist/server/server/table-encuestadores.js +7 -7
- package/dist/server/server/table-fracciones.js +1 -1
- package/dist/server/server/table-hogares.js +1 -1
- package/dist/server/server/table-hogares_sup.js +1 -1
- package/dist/server/server/table-manzanas.js +1 -1
- package/dist/server/server/table-parametros.js +1 -1
- package/dist/server/server/table-personal.js +7 -7
- package/dist/server/server/table-personal_rol.js +7 -7
- package/dist/server/server/table-personas.js +1 -1
- package/dist/server/server/table-personas_sup.js +1 -1
- package/dist/server/server/table-radios.js +3 -3
- package/dist/server/server/table-recepcionistas.js +1 -1
- package/dist/server/server/table-visitas.js +1 -1
- package/dist/server/server/table-visitas_sup.js +1 -1
- package/dist/server/server/table-viviendas.js +1 -1
- package/dist/unlogged/unlogged/css/bootstrap.min.css +6 -6
- package/dist/unlogged/unlogged/server/table-tem.d.ts +3 -0
- package/dist/unlogged/unlogged/server/table-tem.js +239 -0
- package/dist/unlogged/unlogged/server/types-dmencu.d.ts +48 -0
- package/dist/unlogged/unlogged/server/types-dmencu.js +33 -0
- package/dist/unlogged/unlogged/tsconfig.json +14 -14
- package/dist/unlogged/unlogged/unlogged/abrir-formulario.d.ts +13 -0
- package/dist/unlogged/unlogged/unlogged/abrir-formulario.js +109 -0
- package/dist/unlogged/unlogged/unlogged/adapt.d.ts +0 -0
- package/dist/unlogged/unlogged/unlogged/adapt.js +8 -0
- package/dist/unlogged/unlogged/unlogged/bypass-formulario.d.ts +202 -0
- package/dist/unlogged/unlogged/unlogged/bypass-formulario.js +1100 -0
- package/dist/unlogged/unlogged/unlogged/redux-formulario.d.ts +349 -0
- package/dist/unlogged/unlogged/unlogged/redux-formulario.js +318 -0
- package/dist/unlogged/unlogged/unlogged/render-formulario.d.ts +86 -0
- package/dist/unlogged/unlogged/unlogged/render-formulario.js +1692 -0
- package/dist/unlogged/unlogged/unlogged/render-general.d.ts +127 -0
- package/dist/unlogged/unlogged/unlogged/render-general.js +176 -0
- package/dist/unlogged/unlogged/unlogged/tipos.d.ts +486 -0
- package/dist/unlogged/unlogged/unlogged/tipos.js +22 -0
- package/dist/unlogged/unlogged/unlogged/unlogged.d.ts +1 -0
- package/dist/unlogged/unlogged/unlogged/unlogged.js +180 -0
- package/install/actualizar-2023-05-14.sql +38 -38
- package/install/actualizar_inconvar.sql +28 -28
- package/install/agregados_tem.sql +4 -4
- package/install/asignar_desasignar_tareas_tem_trg.sql +43 -43
- package/install/metadatos/permisos.tab +11 -11
- package/install/metadatos/roles.tab +10 -10
- package/install/metadatos/roles_permisos.tab +94 -94
- package/install/metadatos/tipovar.tab +9 -9
- package/install/sincro_tareas_areas_tareas_tem_trg.sql +29 -29
- package/install/usuarios_trg.sql +41 -41
- package/install/validar_tareas_tem_trg.sql +67 -67
- package/package.json +91 -91
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as memoizeBadTyped from "memoize-one";
|
|
3
|
+
export declare var memoize: typeof memoizeBadTyped.default;
|
|
4
|
+
import { Store, Action } from "redux";
|
|
5
|
+
import { TipoVariables } from "./tipos";
|
|
6
|
+
export declare const materialIoIconsSvgPath: {
|
|
7
|
+
Add: string;
|
|
8
|
+
ArrowBack: string;
|
|
9
|
+
Assignment: string;
|
|
10
|
+
Check: string;
|
|
11
|
+
CheckBoxOutlineBlankOutlined: string;
|
|
12
|
+
CheckBoxOutlined: string;
|
|
13
|
+
ChevronLeft: string;
|
|
14
|
+
ChevronRight: string;
|
|
15
|
+
Clear: string;
|
|
16
|
+
Close: string;
|
|
17
|
+
Code: string;
|
|
18
|
+
Create: string;
|
|
19
|
+
Delete: string;
|
|
20
|
+
DeleteForever: string;
|
|
21
|
+
DeleteOutline: string;
|
|
22
|
+
Description: string;
|
|
23
|
+
EmojiObjects: string;
|
|
24
|
+
ExitToApp: string;
|
|
25
|
+
ExpandLess: string;
|
|
26
|
+
ExpandMore: string;
|
|
27
|
+
FormatLineSpacing: string;
|
|
28
|
+
Forward: string;
|
|
29
|
+
ForwardOutlined: string;
|
|
30
|
+
Info: string;
|
|
31
|
+
KeyboardArrowUp: string;
|
|
32
|
+
KeyboardArrowDown: string;
|
|
33
|
+
Label: string;
|
|
34
|
+
LocalAtm: string;
|
|
35
|
+
Location: string;
|
|
36
|
+
Menu: string;
|
|
37
|
+
Navigation: string;
|
|
38
|
+
NavigationDown: string;
|
|
39
|
+
RemoveShoppingCart: string;
|
|
40
|
+
Save: string;
|
|
41
|
+
Search: string;
|
|
42
|
+
Send: string;
|
|
43
|
+
Settings: string;
|
|
44
|
+
SyncAlt: string;
|
|
45
|
+
TrendingFlat: string;
|
|
46
|
+
Warning: string;
|
|
47
|
+
};
|
|
48
|
+
export declare const ICON: {
|
|
49
|
+
Add: () => React.JSX.Element;
|
|
50
|
+
ArrowBack: () => React.JSX.Element;
|
|
51
|
+
Assignment: () => React.JSX.Element;
|
|
52
|
+
Check: () => React.JSX.Element;
|
|
53
|
+
CheckBoxOutlineBlankOutlined: () => React.JSX.Element;
|
|
54
|
+
CheckBoxOutlined: () => React.JSX.Element;
|
|
55
|
+
ChevronLeft: () => React.JSX.Element;
|
|
56
|
+
ChevronRight: () => React.JSX.Element;
|
|
57
|
+
Clear: () => React.JSX.Element;
|
|
58
|
+
Close: () => React.JSX.Element;
|
|
59
|
+
Code: () => React.JSX.Element;
|
|
60
|
+
Create: () => React.JSX.Element;
|
|
61
|
+
Delete: () => React.JSX.Element;
|
|
62
|
+
DeleteForever: () => React.JSX.Element;
|
|
63
|
+
DeleteOutline: () => React.JSX.Element;
|
|
64
|
+
Description: () => React.JSX.Element;
|
|
65
|
+
EmojiObjects: () => React.JSX.Element;
|
|
66
|
+
ExitToApp: () => React.JSX.Element;
|
|
67
|
+
ExpandLess: () => React.JSX.Element;
|
|
68
|
+
ExpandMore: () => React.JSX.Element;
|
|
69
|
+
FormatLineSpacing: () => React.JSX.Element;
|
|
70
|
+
Forward: () => React.JSX.Element;
|
|
71
|
+
ForwardOutlined: () => React.JSX.Element;
|
|
72
|
+
Info: () => React.JSX.Element;
|
|
73
|
+
KeyboardArrowUp: () => React.JSX.Element;
|
|
74
|
+
KeyboardArrowDown: () => React.JSX.Element;
|
|
75
|
+
Label: () => React.JSX.Element;
|
|
76
|
+
LocalAtm: () => React.JSX.Element;
|
|
77
|
+
Location: () => React.JSX.Element;
|
|
78
|
+
Menu: () => React.JSX.Element;
|
|
79
|
+
Navigation: () => React.JSX.Element;
|
|
80
|
+
NavigationDown: () => React.JSX.Element;
|
|
81
|
+
RemoveShoppingCart: () => React.JSX.Element;
|
|
82
|
+
Save: () => React.JSX.Element;
|
|
83
|
+
Search: () => React.JSX.Element;
|
|
84
|
+
Send: () => React.JSX.Element;
|
|
85
|
+
Settings: () => React.JSX.Element;
|
|
86
|
+
SyncAlt: () => React.JSX.Element;
|
|
87
|
+
TrendingFlat: () => React.JSX.Element;
|
|
88
|
+
Warning: () => React.JSX.Element;
|
|
89
|
+
};
|
|
90
|
+
export type Styles = React.CSSProperties;
|
|
91
|
+
export type OnUpdate<T> = (data: T) => void;
|
|
92
|
+
export type InputTypes = 'date' | 'number' | 'tel' | 'text';
|
|
93
|
+
export declare function adaptarTipoVarCasillero(casilleroDataType: TipoVariables | 'opciones' | 'si_no'): InputTypes;
|
|
94
|
+
export declare const scrollToTop: () => void;
|
|
95
|
+
export declare const scrollToBottom: () => void;
|
|
96
|
+
export declare function ScrollTop(props: any): React.JSX.Element;
|
|
97
|
+
export type FocusOpts = {
|
|
98
|
+
moveToElement: boolean;
|
|
99
|
+
moveBehavior?: 'auto' | 'smooth';
|
|
100
|
+
};
|
|
101
|
+
export declare function focusToId(id: string, opts: FocusOpts, cb?: (e: HTMLElement) => void): void;
|
|
102
|
+
export type IDispatchers = {
|
|
103
|
+
RESET_OPCIONES: Function;
|
|
104
|
+
};
|
|
105
|
+
export declare function ReseterForm(props: {
|
|
106
|
+
onTryAgain: () => void;
|
|
107
|
+
dispatchers: IDispatchers;
|
|
108
|
+
mensaje: string;
|
|
109
|
+
}): React.JSX.Element;
|
|
110
|
+
export declare class RenderAndCaptureError extends React.Component<{
|
|
111
|
+
dispatchers: IDispatchers;
|
|
112
|
+
mensajeRetorno: string;
|
|
113
|
+
}, {
|
|
114
|
+
hasError: boolean;
|
|
115
|
+
error: Error | {};
|
|
116
|
+
info?: any;
|
|
117
|
+
}> {
|
|
118
|
+
constructor(props: any);
|
|
119
|
+
componentDidCatch(error: Error, info: any): void;
|
|
120
|
+
render(): React.ReactNode;
|
|
121
|
+
}
|
|
122
|
+
export declare function RenderPrincipal<T, T2 extends Action>(props: {
|
|
123
|
+
store: Store<T, T2>;
|
|
124
|
+
dispatchers: IDispatchers;
|
|
125
|
+
mensajeRetorno: string;
|
|
126
|
+
children: React.ReactNode;
|
|
127
|
+
}): React.JSX.Element;
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
(function (factory) {
|
|
2
|
+
if (typeof module === "object" && typeof module.exports === "object") {
|
|
3
|
+
var v = factory(require, exports);
|
|
4
|
+
if (v !== undefined) module.exports = v;
|
|
5
|
+
}
|
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
|
7
|
+
define(["require", "exports", "react", "react-redux", "memoize-one", "like-ar", "./redux-formulario", "@mui/material"], factory);
|
|
8
|
+
}
|
|
9
|
+
})(function (require, exports) {
|
|
10
|
+
"use strict";
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.RenderAndCaptureError = exports.scrollToBottom = exports.scrollToTop = exports.ICON = exports.materialIoIconsSvgPath = exports.memoize = void 0;
|
|
13
|
+
exports.adaptarTipoVarCasillero = adaptarTipoVarCasillero;
|
|
14
|
+
exports.ScrollTop = ScrollTop;
|
|
15
|
+
exports.focusToId = focusToId;
|
|
16
|
+
exports.ReseterForm = ReseterForm;
|
|
17
|
+
exports.RenderPrincipal = RenderPrincipal;
|
|
18
|
+
const React = require("react");
|
|
19
|
+
const react_redux_1 = require("react-redux");
|
|
20
|
+
const memoizeBadTyped = require("memoize-one");
|
|
21
|
+
const likeAr = require("like-ar");
|
|
22
|
+
//@ts-ignore el módulo memoize-one no tiene bien puesto los tipos en su .d.ts
|
|
23
|
+
exports.memoize = memoizeBadTyped;
|
|
24
|
+
const redux_formulario_1 = require("./redux-formulario");
|
|
25
|
+
const material_1 = require("@mui/material");
|
|
26
|
+
// https://material-ui.com/components/material-icons/
|
|
27
|
+
exports.materialIoIconsSvgPath = {
|
|
28
|
+
Add: "M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z",
|
|
29
|
+
ArrowBack: "M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z",
|
|
30
|
+
Assignment: "M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm2 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z",
|
|
31
|
+
Check: "M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z",
|
|
32
|
+
CheckBoxOutlineBlankOutlined: "M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z",
|
|
33
|
+
CheckBoxOutlined: "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM17.99 9l-1.41-1.42-6.59 6.59-2.58-2.57-1.42 1.41 4 3.99z",
|
|
34
|
+
ChevronLeft: "M14.71 6.71a.9959.9959 0 00-1.41 0L8.71 11.3c-.39.39-.39 1.02 0 1.41l4.59 4.59c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L10.83 12l3.88-3.88c.39-.39.38-1.03 0-1.41z",
|
|
35
|
+
ChevronRight: "M9.29 6.71c-.39.39-.39 1.02 0 1.41L13.17 12l-3.88 3.88c-.39.39-.39 1.02 0 1.41.39.39 1.02.39 1.41 0l4.59-4.59c.39-.39.39-1.02 0-1.41L10.7 6.7c-.38-.38-1.02-.38-1.41.01z",
|
|
36
|
+
Clear: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z",
|
|
37
|
+
Close: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z",
|
|
38
|
+
Code: "M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z",
|
|
39
|
+
Create: "M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.9959.9959 0 00-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z",
|
|
40
|
+
Delete: "M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z",
|
|
41
|
+
DeleteForever: "M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zm2.46-7.12l1.41-1.41L12 12.59l2.12-2.12 1.41 1.41L13.41 14l2.12 2.12-1.41 1.41L12 15.41l-2.12 2.12-1.41-1.41L10.59 14l-2.13-2.12zM15.5 4l-1-1h-5l-1 1H5v2h14V4z",
|
|
42
|
+
DeleteOutline: "M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM8 9h8v10H8V9zm7.5-5l-1-1h-5l-1 1H5v2h14V4z",
|
|
43
|
+
Description: "M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z",
|
|
44
|
+
EmojiObjects: "M12 3c-.46 0-.93.04-1.4.14-2.76.53-4.96 2.76-5.48 5.52-.48 2.61.48 5.01 2.22 6.56.43.38.66.91.66 1.47V19c0 1.1.9 2 2 2h.28c.35.6.98 1 1.72 1s1.38-.4 1.72-1H14c1.1 0 2-.9 2-2v-2.31c0-.55.22-1.09.64-1.46C18.09 13.95 19 12.08 19 10c0-3.87-3.13-7-7-7zm2 16h-4v-1h4v1zm0-2h-4v-1h4v1zm-1.5-5.59V14h-1v-2.59L9.67 9.59l.71-.71L12 10.5l1.62-1.62.71.71-1.83 1.82z",
|
|
45
|
+
ExitToApp: "M10.09 15.59L11.5 17l5-5-5-5-1.41 1.41L12.67 11H3v2h9.67l-2.58 2.59zM19 3H5c-1.11 0-2 .9-2 2v4h2V5h14v14H5v-4H3v4c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z",
|
|
46
|
+
ExpandLess: "M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z",
|
|
47
|
+
ExpandMore: "M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z",
|
|
48
|
+
FormatLineSpacing: "M6 7h2.5L5 3.5 1.5 7H4v10H1.5L5 20.5 8.5 17H6V7zm4-2v2h12V5H10zm0 14h12v-2H10v2zm0-6h12v-2H10v2z",
|
|
49
|
+
Forward: "M12 8V4l8 8-8 8v-4H4V8z",
|
|
50
|
+
ForwardOutlined: "M14 8.83L17.17 12 14 15.17V14H6v-4h8V8.83M12 4v4H4v8h8v4l8-8-8-8z",
|
|
51
|
+
Info: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z",
|
|
52
|
+
KeyboardArrowUp: "M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z",
|
|
53
|
+
KeyboardArrowDown: "M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z",
|
|
54
|
+
Label: "M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z",
|
|
55
|
+
LocalAtm: "M11 17h2v-1h1c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1h-3v-1h4V8h-2V7h-2v1h-1c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h3v1H9v2h2v1zm9-13H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4V6h16v12z",
|
|
56
|
+
Location: "M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7m0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5",
|
|
57
|
+
Menu: "M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z",
|
|
58
|
+
Navigation: "M12 2L4.5 20.29l.71.71L12 18l6.79 3 .71-.71z",
|
|
59
|
+
NavigationDown: "M12 22L4.5 3.71l.71 -.71L12 6l6.79 -3 .71 .71z",
|
|
60
|
+
RemoveShoppingCart: "M22.73 22.73L2.77 2.77 2 2l-.73-.73L0 2.54l4.39 4.39 2.21 4.66-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h7.46l1.38 1.38c-.5.36-.83.95-.83 1.62 0 1.1.89 2 1.99 2 .67 0 1.26-.33 1.62-.84L21.46 24l1.27-1.27zM7.42 15c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h2.36l2 2H7.42zm8.13-2c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H6.54l9.01 9zM7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2z",
|
|
61
|
+
Save: "M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7l-4-4zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm3-10H5V5h10v4z",
|
|
62
|
+
Search: "M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z",
|
|
63
|
+
Send: "M2.01 21L23 12 2.01 3 2 10l15 2-15 2z",
|
|
64
|
+
Settings: "M15.95 10.78c.03-.25.05-.51.05-.78s-.02-.53-.06-.78l1.69-1.32c.15-.12.19-.34.1-.51l-1.6-2.77c-.1-.18-.31-.24-.49-.18l-1.99.8c-.42-.32-.86-.58-1.35-.78L12 2.34c-.03-.2-.2-.34-.4-.34H8.4c-.2 0-.36.14-.39.34l-.3 2.12c-.49.2-.94.47-1.35.78l-1.99-.8c-.18-.07-.39 0-.49.18l-1.6 2.77c-.1.18-.06.39.1.51l1.69 1.32c-.04.25-.07.52-.07.78s.02.53.06.78L2.37 12.1c-.15.12-.19.34-.1.51l1.6 2.77c.1.18.31.24.49.18l1.99-.8c.42.32.86.58 1.35.78l.3 2.12c.04.2.2.34.4.34h3.2c.2 0 .37-.14.39-.34l.3-2.12c.49-.2.94-.47 1.35-.78l1.99.8c.18.07.39 0 .49-.18l1.6-2.77c.1-.18.06-.39-.1-.51l-1.67-1.32zM10 13c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3z",
|
|
65
|
+
SyncAlt: "M22 8l-4-4v3H3v2h15v3l4-4zM2 16l4 4v-3h15v-2H6v-3l-4 4z",
|
|
66
|
+
TrendingFlat: "M22 12l-4-4v3H3v2h15v3z",
|
|
67
|
+
Warning: "M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z",
|
|
68
|
+
};
|
|
69
|
+
exports.ICON = likeAr(exports.materialIoIconsSvgPath).map(svgText => () => React.createElement(material_1.SvgIcon, null,
|
|
70
|
+
React.createElement("path", { d: svgText }))).plain();
|
|
71
|
+
function adaptarTipoVarCasillero(casilleroDataType) {
|
|
72
|
+
const adapter = {
|
|
73
|
+
'opciones': 'number',
|
|
74
|
+
'si_no': 'number',
|
|
75
|
+
'numero': 'number',
|
|
76
|
+
'hora': 'tel',
|
|
77
|
+
'horas': 'number',
|
|
78
|
+
'texto': 'text',
|
|
79
|
+
'fecha': 'text'
|
|
80
|
+
};
|
|
81
|
+
return adapter[casilleroDataType];
|
|
82
|
+
}
|
|
83
|
+
const scrollToTop = () => {
|
|
84
|
+
window.scroll({ behavior: 'smooth', top: 0, left: 0 });
|
|
85
|
+
};
|
|
86
|
+
exports.scrollToTop = scrollToTop;
|
|
87
|
+
const scrollToBottom = () => {
|
|
88
|
+
window.scroll({ behavior: 'smooth', top: document.body.clientHeight - window.innerHeight, left: 0 });
|
|
89
|
+
};
|
|
90
|
+
exports.scrollToBottom = scrollToBottom;
|
|
91
|
+
function ScrollTop(props) {
|
|
92
|
+
const { children } = props;
|
|
93
|
+
//const classes = useStylesScrollTop();
|
|
94
|
+
// Note that you normally won't need to set the window ref as useScrollTrigger
|
|
95
|
+
// will default to window.
|
|
96
|
+
// This is only being set here because the demo is in an iframe.
|
|
97
|
+
const trigger = (0, material_1.useScrollTrigger)({
|
|
98
|
+
disableHysteresis: true,
|
|
99
|
+
threshold: 100,
|
|
100
|
+
});
|
|
101
|
+
return (React.createElement(material_1.Zoom, { in: trigger },
|
|
102
|
+
React.createElement("div", { onClick: exports.scrollToTop, role: "presentation" /*className={classes.root}*/ }, children)));
|
|
103
|
+
}
|
|
104
|
+
function focusToId(id, opts, cb) {
|
|
105
|
+
var element = document.getElementById(id);
|
|
106
|
+
var padre = element;
|
|
107
|
+
while (padre && padre.className != 'pregunta' && padre != document.body)
|
|
108
|
+
padre = padre.parentElement;
|
|
109
|
+
if (padre && padre.className == 'pregunta')
|
|
110
|
+
element = padre;
|
|
111
|
+
if (element) {
|
|
112
|
+
if (cb) {
|
|
113
|
+
cb(element);
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
element.focus();
|
|
117
|
+
if (opts.moveToElement) {
|
|
118
|
+
element.scrollIntoView();
|
|
119
|
+
window.scroll({ behavior: opts.moveBehavior || 'auto', top: window.scrollY - 100, left: 0 });
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
function ReseterForm(props) {
|
|
125
|
+
const dispatch = (0, react_redux_1.useDispatch)();
|
|
126
|
+
return React.createElement(React.Fragment, null,
|
|
127
|
+
React.createElement(material_1.Button, { variant: "outlined", onClick: () => {
|
|
128
|
+
dispatch(props.dispatchers.RESET_OPCIONES({}));
|
|
129
|
+
props.onTryAgain();
|
|
130
|
+
} }, props.mensaje));
|
|
131
|
+
}
|
|
132
|
+
class RenderAndCaptureError extends React.Component {
|
|
133
|
+
constructor(props) {
|
|
134
|
+
super(props);
|
|
135
|
+
this.state = { hasError: false, error: {} };
|
|
136
|
+
}
|
|
137
|
+
componentDidCatch(error, info) {
|
|
138
|
+
this.setState({ hasError: true, error, info });
|
|
139
|
+
}
|
|
140
|
+
render() {
|
|
141
|
+
if (this.state.hasError) {
|
|
142
|
+
return React.createElement(React.Fragment, null,
|
|
143
|
+
React.createElement(material_1.Typography, null, "Hubo un problema en la programaci\u00F3n de la pantalla."),
|
|
144
|
+
React.createElement(ReseterForm, { dispatchers: this.props.dispatchers, mensaje: this.props.mensajeRetorno, onTryAgain: () => this.setState({ hasError: false, error: {} }) }),
|
|
145
|
+
React.createElement(material_1.Button, { variant: "outlined", color: "secondary", onClick: () => {
|
|
146
|
+
(0, redux_formulario_1.gotoSincronizar)();
|
|
147
|
+
} }, "ir a la pantalla de sincronizaci\u00F3n"),
|
|
148
|
+
React.createElement(material_1.Typography, null, "Error detectado:"),
|
|
149
|
+
React.createElement(material_1.Typography, null, this.state.error instanceof Error ? this.state.error.message : 'unknown error'),
|
|
150
|
+
React.createElement(material_1.Typography, null, JSON.stringify(this.state.info)));
|
|
151
|
+
}
|
|
152
|
+
return this.props.children;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
exports.RenderAndCaptureError = RenderAndCaptureError;
|
|
156
|
+
const theme = (0, material_1.createTheme)({
|
|
157
|
+
overrides: {
|
|
158
|
+
MuiCssBaseline: {
|
|
159
|
+
'@global': {
|
|
160
|
+
html: {
|
|
161
|
+
WebkitFontSmoothing: 'auto',
|
|
162
|
+
},
|
|
163
|
+
},
|
|
164
|
+
},
|
|
165
|
+
},
|
|
166
|
+
});
|
|
167
|
+
function RenderPrincipal(props) {
|
|
168
|
+
return React.createElement(React.StrictMode, null,
|
|
169
|
+
React.createElement(react_redux_1.Provider, { store: props.store },
|
|
170
|
+
React.createElement(material_1.ThemeProvider, { theme: theme },
|
|
171
|
+
React.createElement(RenderAndCaptureError, { dispatchers: props.dispatchers, mensajeRetorno: props.mensajeRetorno },
|
|
172
|
+
React.createElement(material_1.CssBaseline, null),
|
|
173
|
+
props.children))));
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLWdlbmVyYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdW5sb2dnZWQvcmVuZGVyLWdlbmVyYWwudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQWdGQSwwREFXQztJQVdELDhCQWlCQztJQU9ELDhCQWdCQztJQUlELGtDQVVDO0lBOENELDBDQVdDO0lBck5ELCtCQUErQjtJQUcvQiw2Q0FBaUU7SUFDakUsK0NBQStDO0lBQy9DLGtDQUFrQztJQUVsQyw2RUFBNkU7SUFDbEUsUUFBQSxPQUFPLEdBQWtDLGVBQWUsQ0FBQztJQUVwRSx5REFBa0Q7SUFFbEQsNENBVXVCO0lBSXZCLHFEQUFxRDtJQUN4QyxRQUFBLHNCQUFzQixHQUFDO1FBQ2hDLEdBQUcsRUFBQyxxQ0FBcUM7UUFDekMsU0FBUyxFQUFDLDhEQUE4RDtRQUN4RSxVQUFVLEVBQUUsZ09BQWdPO1FBQzVPLEtBQUssRUFBRSxtREFBbUQ7UUFDMUQsNEJBQTRCLEVBQUUsNEZBQTRGO1FBQzFILGdCQUFnQixFQUFFLHVKQUF1SjtRQUN6SyxXQUFXLEVBQUUsd0tBQXdLO1FBQ3JMLFlBQVksRUFBRSwwS0FBMEs7UUFDeEwsS0FBSyxFQUFFLHVHQUF1RztRQUM5RyxLQUFLLEVBQUUsdUdBQXVHO1FBQzlHLElBQUksRUFBRSw0RkFBNEY7UUFDbEcsTUFBTSxFQUFFLHFKQUFxSjtRQUM3SixNQUFNLEVBQUMsK0VBQStFO1FBQ3RGLGFBQWEsRUFBQyw2TUFBNk07UUFDM04sYUFBYSxFQUFDLHlGQUF5RjtRQUN2RyxXQUFXLEVBQUUsZ0lBQWdJO1FBQzdJLFlBQVksRUFBRSxtV0FBbVc7UUFDalgsU0FBUyxFQUFFLHNLQUFzSztRQUNqTCxVQUFVLEVBQUUsZ0RBQWdEO1FBQzVELFVBQVUsRUFBRSw4Q0FBOEM7UUFDMUQsaUJBQWlCLEVBQUUsa0dBQWtHO1FBQ3JILE9BQU8sRUFBRSx5QkFBeUI7UUFDbEMsZUFBZSxFQUFFLG1FQUFt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Qy9CLENBQUM7S0FDSjtJQTlCRCxzREE4QkM7SUFFRCxNQUFNLEtBQUssR0FBRyxJQUFBLHNCQUFXLEVBQUM7UUFDeEIsU0FBUyxFQUFFO1lBQ1QsY0FBYyxFQUFFO2dCQUNkLFNBQVMsRUFBRTtvQkFDVCxJQUFJLEVBQUU7d0JBQ0osbUJBQW1CLEVBQUUsTUFBTTtxQkFDNUI7aUJBQ0Y7YUFDRjtTQUNGO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsU0FBZ0IsZUFBZSxDQUFzQixLQUFvRztRQUNySixPQUFPLG9CQUFDLEtBQUssQ0FBQyxVQUFVO1lBQ3BCLG9CQUFDLHNCQUFRLElBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO2dCQUN4QixvQkFBQyx3QkFBYSxJQUFDLEtBQUssRUFBRSxLQUFLO29CQUN2QixvQkFBQyxxQkFBcUIsSUFBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxjQUFjLEVBQUUsS0FBSyxDQUFDLGNBQWM7d0JBQ3ZGLG9CQUFDLHNCQUFXLE9BQUc7d0JBQ2QsS0FBSyxDQUFDLFFBQVEsQ0FDSyxDQUNaLENBQ1QsQ0FDSSxDQUFBO0lBQ3ZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0ICogYXMgUmVhY3RET00gZnJvbSBcInJlYWN0LWRvbVwiO1xyXG5pbXBvcnQge3VzZVN0YXRlLCB1c2VFZmZlY3QsIHVzZVJlZn0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFByb3ZpZGVyLCB1c2VTZWxlY3RvciwgdXNlRGlzcGF0Y2ggfSBmcm9tIFwicmVhY3QtcmVkdXhcIjsgXHJcbmltcG9ydCAqIGFzIG1lbW9pemVCYWRUeXBlZCBmcm9tIFwibWVtb2l6ZS1vbmVcIjtcclxuaW1wb3J0ICogYXMgbGlrZUFyIGZyb20gXCJsaWtlLWFyXCI7XHJcblxyXG4vL0B0cy1pZ25vcmUgZWwgbcOzZHVsbyBtZW1vaXplLW9uZSBubyB0aWVuZSBiaWVuIHB1ZXN0byBsb3MgdGlwb3MgZW4gc3UgLmQudHNcclxuZXhwb3J0IHZhciBtZW1vaXplOnR5cGVvZiBtZW1vaXplQmFkVHlwZWQuZGVmYXVsdCA9IG1lbW9pemVCYWRUeXBlZDtcclxuXHJcbmltcG9ydCB7Z290b1NpbmNyb25pemFyfSBmcm9tIFwiLi9yZWR1eC1mb3JtdWxhcmlvXCJcclxuXHJcbmltcG9ydCB7XHJcbiAgICBBcHBCYXIsIEJhZGdlLCBCdXR0b24sIEJ1dHRvbkdyb3VwLCBDYXJkLCBDaGlwLCBDaXJjdWxhclByb2dyZXNzLCBDc3NCYXNlbGluZSwgXHJcbiAgICBEaWFsb2csIERpYWxvZ0FjdGlvbnMsIERpYWxvZ0NvbnRlbnQsIERpYWxvZ0NvbnRlbnRUZXh0LCBcclxuICAgIERpYWxvZ1RpdGxlLCBEaXZpZGVyLCBGYWIsIEdyaWQsIEljb25CdXR0b24sIElucHV0QmFzZSwgXHJcbiAgICBMaXN0LCBMaXN0SXRlbSwgTGlzdEl0ZW1JY29uLCBMaXN0SXRlbVRleHQsIERyYXdlciwgXHJcbiAgICBNZW51LCBNZW51SXRlbSwgUGFwZXIsIFN2Z0ljb24sIFN3aXRjaCwgXHJcbiAgICBUYWJsZSwgVGFibGVCb2R5LCBUYWJsZUNlbGwsIFRhYmxlSGVhZCwgVGFibGVSb3csIFRleHRGaWVsZCwgVGhlbWVQcm92aWRlciwgVG9vbGJhciwgVHlwb2dyYXBoeSwgWm9vbSxcclxuICAgIHVzZVNjcm9sbFRyaWdnZXIsXHJcbiAgICAvLyBzdHlsZXM6XHJcbiAgICBjcmVhdGVTdHlsZXMsIFRoZW1lLCBjcmVhdGVUaGVtZVxyXG59IGZyb20gXCJAbXVpL21hdGVyaWFsXCI7XHJcbmltcG9ydCB7IFN0b3JlLCBBY3Rpb24gfSBmcm9tIFwicmVkdXhcIjtcclxuaW1wb3J0IHsgVGlwb1ZhcmlhYmxlcyB9IGZyb20gXCIuL3RpcG9zXCI7XHJcblxyXG4vLyBodHRwczovL21hdGVyaWFsLXVpLmNvbS9jb21wb25lbnRzL21hdGVyaWFsLWljb25zL1xyXG5leHBvcnQgY29uc3QgbWF0ZXJpYWxJb0ljb25zU3ZnUGF0aD17XHJcbiAgICBBZGQ6XCJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyelwiLFxyXG4gICAgQXJyb3dCYWNrOlwiTTIwIDExSDcuODNsNS41OS01LjU5TDEyIDRsLTggOCA4IDggMS40MS0xLjQxTDcuODMgMTNIMjB2LTJ6XCIsXHJcbiAgICBBc3NpZ25tZW50OiBcIk0xOSAzaC00LjE4QzE0LjQgMS44NCAxMy4zIDEgMTIgMWMtMS4zIDAtMi40Ljg0LTIuODIgMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03IDBjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptMiAxNEg3di0yaDd2MnptMy00SDd2LTJoMTB2MnptMC00SDdWN2gxMHYyelwiLFxyXG4gICAgQ2hlY2s6IFwiTTkgMTYuMTdMNC44MyAxMmwtMS40MiAxLjQxTDkgMTkgMjEgN2wtMS40MS0xLjQxelwiLFxyXG4gICAgQ2hlY2tCb3hPdXRsaW5lQmxhbmtPdXRsaW5lZDogXCJNMTkgNXYxNEg1VjVoMTRtMC0ySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpcIixcclxuICAgIENoZWNrQm94T3V0bGluZWQ6IFwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpNMTcuOTkgOWwtMS40MS0xLjQyLTYuNTkgNi41OS0yLjU4LTIuNTctMS40MiAxLjQxIDQgMy45OXpcIixcclxuICAgIENoZXZyb25MZWZ0OiBcIk0xNC43MSA2LjcxYS45OTU5Ljk5NTkgMCAwMC0xLjQxIDBMOC43MSAxMS4zYy0uMzkuMzktLjM5IDEuMDIgMCAxLjQxbDQuNTkgNC41OWMuMzkuMzkgMS4wMi4zOSAxLjQxIDAgLjM5LS4zOS4zOS0xLjAyIDAtMS40MUwxMC44MyAxMmwzLjg4LTMuODhjLjM5LS4zOS4zOC0xLjAzIDAtMS40MXpcIixcclxuICAgIENoZXZyb25SaWdodDogXCJNOS4yOSA2LjcxYy0uMzkuMzktLjM5IDEuMDIgMCAxLjQxTDEzLjE3IDEybC0zLjg4IDMuODhjLS4zOS4zOS0uMzkgMS4wMiAwIDEuNDEuMzkuMzkgMS4wMi4zOSAxLjQxIDBsNC41OS00LjU5Yy4zOS0uMzkuMzktMS4wMiAwLTEuNDFMMTAuNyA2LjdjLS4zOC0uMzgtMS4wMi0uMzgtMS40MS4wMXpcIixcclxuICAgIENsZWFyOiBcIk0xOSA2LjQxTDE3LjU5IDUgMTIgMTAuNTkgNi40MSA1IDUgNi40MSAxMC41OSAxMiA1IDE3LjU5IDYuNDEgMTkgMTIgMTMuNDEgMTcuNTkgMTkgMTkgMTcuNTkgMTMuNDEgMTJ6XCIsXHJcbiAgICBDbG9zZTogXCJNMTkgNi40MUwxNy41OSA1IDEyIDEwLjU5IDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDEyIDEzLjQxIDE3LjU5IDE5IDE5IDE3LjU5IDEzLjQxIDEyelwiLFxyXG4gICAgQ29kZTogXCJNOS40IDE2LjZMNC44IDEybDQuNi00LjZMOCA2bC02IDYgNiA2IDEuNC0xLjR6bTUuMiAwbDQuNi00LjYtNC42LTQuNkwxNiA2bDYgNi02IDYtMS40LTEuNHpcIixcclxuICAgIENyZWF0ZTogXCJNMyAxNy4yNVYyMWgzLjc1TDE3LjgxIDkuOTRsLTMuNzUtMy43NUwzIDE3LjI1ek0yMC43MSA3LjA0Yy4zOS0uMzkuMzktMS4wMiAwLTEuNDFsLTIuMzQtMi4zNGEuOTk1OS45OTU5IDAgMDAtMS40MSAwbC0xLjgzIDEuODMgMy43NSAzLjc1IDEuODMtMS44M3pcIixcclxuICAgIERlbGV0ZTpcIk02IDE5YzAgMS4xLjkgMiAyIDJoOGMxLjEgMCAyLS45IDItMlY3SDZ2MTJ6TTE5IDRoLTMuNWwtMS0xaC01bC0xIDFINXYyaDE0VjR6XCIsXHJcbiAgICBEZWxldGVGb3JldmVyOlwiTTYgMTljMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yVjdINnYxMnptMi40Ni03LjEybDEuNDEtMS40MUwxMiAxMi41OWwyLjEyLTIuMTIgMS40MSAxLjQxTDEzLjQxIDE0bDIuMTIgMi4xMi0xLjQxIDEuNDFMMTIgMTUuNDFsLTIuMTIgMi4xMi0xLjQxLTEuNDFMMTAuNTkgMTRsLTIuMTMtMi4xMnpNMTUuNSA0bC0xLTFoLTVsLTEgMUg1djJoMTRWNHpcIixcclxuICAgIERlbGV0ZU91dGxpbmU6XCJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyek04IDloOHYxMEg4Vjl6bTcuNS01bC0xLTFoLTVsLTEgMUg1djJoMTRWNHpcIixcclxuICAgIERlc2NyaXB0aW9uOiBcIk0xNCAySDZjLTEuMSAwLTEuOTkuOS0xLjk5IDJMNCAyMGMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTIgMTZIOHYtMmg4djJ6bTAtNEg4di0yaDh2MnptLTMtNVYzLjVMMTguNSA5SDEzelwiLFxyXG4gICAgRW1vamlPYmplY3RzOiBcIk0xMiAzYy0uNDYgMC0uOTMuMDQtMS40LjE0LTIuNzYuNTMtNC45NiAyLjc2LTUuNDggNS41Mi0uNDggMi42MS40OCA1LjAxIDIuMjIgNi41Ni40My4zOC42Ni45MS42NiAxLjQ3VjE5YzAgMS4xLjkgMiAyIDJoLjI4Yy4zNS42Ljk4IDEgMS43MiAxczEuMzgtLjQgMS43Mi0xSDE0YzEuMSAwIDItLjkgMi0ydi0yLjMxYzAtLjU1LjIyLTEuMDkuNjQtMS40NkMxOC4wOSAxMy45NSAxOSAxMi4wOCAxOSAxMGMwLTMuODctMy4xMy03LTctN3ptMiAxNmgtNHYtMWg0djF6bTAtMmgtNHYtMWg0djF6bS0xLjUtNS41OVYxNGgtMXYtMi41OUw5LjY3IDkuNTlsLjcxLS43MUwxMiAxMC41bDEuNjItMS42Mi43MS43MS0xLjgzIDEuODJ6XCIsXHJcbiAgICBFeGl0VG9BcHA6IFwiTTEwLjA5IDE1LjU5TDExLjUgMTdsNS01LTUtNS0xLjQxIDEuNDFMMTIuNjcgMTFIM3YyaDkuNjdsLTIuNTggMi41OXpNMTkgM0g1Yy0xLjExIDAtMiAuOS0yIDJ2NGgyVjVoMTR2MTRINXYtNEgzdjRjMCAxLjEuODkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpcIixcclxuICAgIEV4cGFuZExlc3M6IFwiTTEyIDhsLTYgNiAxLjQxIDEuNDFMMTIgMTAuODNsNC41OSA0LjU4TDE4IDE0elwiLFxyXG4gICAgRXhwYW5kTW9yZTogXCJNMTYuNTkgOC41OUwxMiAxMy4xNyA3LjQxIDguNTkgNiAxMGw2IDYgNi02elwiLFxyXG4gICAgRm9ybWF0TGluZVNwYWNpbmc6IFwiTTYgN2gyLjVMNSAzLjUgMS41IDdINHYxMEgxLjVMNSAyMC41IDguNSAxN0g2Vjd6bTQtMnYyaDEyVjVIMTB6bTAgMTRoMTJ2LTJIMTB2MnptMC02aDEydi0ySDEwdjJ6XCIsXHJcbiAgICBGb3J3YXJkOiBcIk0xMiA4VjRsOCA4LTggOHYtNEg0Vjh6XCIsXHJcbiAgICBGb3J3YXJkT3V0bGluZWQ6IFwiTTE0IDguODNMMTcuMTcgMTIgMTQgMTUuMTdWMTRINnYtNGg4VjguODNNMTIgNHY0SDR2OGg4djRsOC04LTgtOHpcIixcclxuICAgIEluZm86IFwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTEgMTVoLTJ2LTZoMnY2em0wLThoLTJWN2gydjJ6XCIsXHJcbiAgICBLZXlib2FyZEFycm93VXA6IFwiTTcuNDEgMTUuNDFMMTIgMTAuODNsNC41OSA0LjU4TDE4IDE0bC02LTYtNiA2elwiLFxyXG4gICAgS2V5Ym9hcmRBcnJvd0Rvd246IFwiTTcuNDEgOC41OUwxMiAxMy4xN2w0LjU5LTQuNThMMTggMTBsLTYgNi02LTYgMS40MS0xLjQxelwiLFxyXG4gICAgTGFiZWw6IFwiTTE3LjYzIDUuODRDMTcuMjcgNS4zMyAxNi42NyA1IDE2IDVMNSA1LjAxQzMuOSA1LjAxIDMgNS45IDMgN3YxMGMwIDEuMS45IDEuOTkgMiAxLjk5TDE2IDE5Yy42NyAwIDEuMjctLjMzIDEuNjMtLjg0TDIyIDEybC00LjM3LTYuMTZ6XCIsXHJcbiAgICBMb2NhbEF0bTogXCJNMTEgMTdoMnYtMWgxYy41NSAwIDEtLjQ1IDEtMXYtM2MwLS41NS0uNDUtMS0xLTFoLTN2LTFoNFY4aC0yVjdoLTJ2MWgtMWMtLjU1IDAtMSAuNDUtMSAxdjNjMCAuNTUuNDUgMSAxIDFoM3YxSDl2MmgydjF6bTktMTNINGMtMS4xMSAwLTEuOTkuODktMS45OSAyTDIgMThjMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWNmMwLTEuMTEtLjg5LTItMi0yem0wIDE0SDRWNmgxNnYxMnpcIixcclxuICAgIExvY2F0aW9uOiBcIk0xMiAyQzguMTMgMiA1IDUuMTMgNSA5YzAgNS4yNSA3IDEzIDcgMTNzNy03Ljc1IDctMTNjMC0zLjg3LTMuMTMtNy03LTdtMCA5LjVjLTEuMzggMC0yLjUtMS4xMi0yLjUtMi41czEuMTItMi41IDIuNS0yLjUgMi41IDEuMTIgMi41IDIuNS0xLjEyIDIuNS0yLjUgMi41XCIsXHJcbiAgICBNZW51OiBcIk0zIDE4aDE4di0ySDN2MnptMC01aDE4di0ySDN2MnptMC03djJoMThWNkgzelwiLFxyXG4gICAgTmF2aWdhdGlvbjogXCJNMTIgMkw0LjUgMjAuMjlsLjcxLjcxTDEyIDE4bDYuNzkgMyAuNzEtLjcxelwiLFxyXG4gICAgTmF2aWdhdGlvbkRvd246IFwiTTEyIDIyTDQuNSAzLjcxbC43MSAtLjcxTDEyIDZsNi43OSAtMyAuNzEgLjcxelwiLFxyXG4gICAgUmVtb3ZlU2hvcHBpbmdDYXJ0OiBcIk0yMi43MyAyMi43M0wyLjc3IDIuNzcgMiAybC0uNzMtLjczTDAgMi41NGw0LjM5IDQuMzkgMi4yMSA0LjY2LTEuMzUgMi40NWMtLjE2LjI4LS4yNS42MS0uMjUuOTYgMCAxLjEuOSAyIDIgMmg3LjQ2bDEuMzggMS4zOGMtLjUuMzYtLjgzLjk1LS44MyAxLjYyIDAgMS4xLjg5IDIgMS45OSAyIC42NyAwIDEuMjYtLjMzIDEuNjItLjg0TDIxLjQ2IDI0bDEuMjctMS4yN3pNNy40MiAxNWMtLjE0IDAtLjI1LS4xMS0uMjUtLjI1bC4wMy0uMTIuOS0xLjYzaDIuMzZsMiAySDcuNDJ6bTguMTMtMmMuNzUgMCAxLjQxLS40MSAxLjc1LTEuMDNsMy41OC02LjQ5Yy4wOC0uMTQuMTItLjMxLjEyLS40OCAwLS41NS0uNDUtMS0xLTFINi41NGw5LjAxIDl6TTcgMThjLTEuMSAwLTEuOTkuOS0xLjk5IDJTNS45IDIyIDcgMjJzMi0uOSAyLTItLjktMi0yLTJ6XCIsXHJcbiAgICBTYXZlOlwiTTE3IDNINWMtMS4xMSAwLTIgLjktMiAydjE0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjdsLTQtNHptLTUgMTZjLTEuNjYgMC0zLTEuMzQtMy0zczEuMzQtMyAzLTMgMyAxLjM0IDMgMy0xLjM0IDMtMyAzem0zLTEwSDVWNWgxMHY0elwiLFxyXG4gICAgU2VhcmNoOiBcIk0xNS41IDE0aC0uNzlsLS4yOC0uMjdDMTUuNDEgMTIuNTkgMTYgMTEuMTEgMTYgOS41IDE2IDUuOTEgMTMuMDkgMyA5LjUgM1MzIDUuOTEgMyA5LjUgNS45MSAxNiA5LjUgMTZjMS42MSAwIDMuMDktLjU5IDQuMjMtMS41N2wuMjcuMjh2Ljc5bDUgNC45OUwyMC40OSAxOWwtNC45OS01em0tNiAwQzcuMDEgMTQgNSAxMS45OSA1IDkuNVM3LjAxIDUgOS41IDUgMTQgNy4wMSAxNCA5LjUgMTEuOTkgMTQgOS41IDE0elwiLFxyXG4gICAgU2VuZDogXCJNMi4wMSAyMUwyMyAxMiAyLjAxIDMgMiAxMGwxNSAyLTE1IDJ6XCIsXHJcbiAgICBTZXR0aW5nczogXCJNMTUuOTUgMTAuNzhjLjAzLS4yNS4wNS0uNTEuMDUtLjc4cy0uMDItLjUzLS4wNi0uNzhsMS42OS0xLjMyYy4xNS0uMTIuMTktLjM0LjEtLjUxbC0xLjYtMi43N2MtLjEtLjE4LS4zMS0uMjQtLjQ5LS4xOGwtMS45OS44Yy0uNDItLjMyLS44Ni0uNTgtMS4zNS0uNzhMMTIgMi4zNGMtLjAzLS4yLS4yLS4zNC0uNC0uMzRIOC40Yy0uMiAwLS4zNi4xNC0uMzkuMzRsLS4zIDIuMTJjLS40OS4yLS45NC40Ny0xLjM1Ljc4bC0xLjk5LS44Yy0uMTgtLjA3LS4zOSAwLS40OS4xOGwtMS42IDIuNzdjLS4xLjE4LS4wNi4zOS4xLjUxbDEuNjkgMS4zMmMtLjA0LjI1LS4wNy41Mi0uMDcuNzhzLjAyLjUzLjA2Ljc4TDIuMzcgMTIuMWMtLjE1LjEyLS4xOS4zNC0uMS41MWwxLjYgMi43N2MuMS4xOC4zMS4yNC40OS4xOGwxLjk5LS44Yy40Mi4zMi44Ni41OCAxLjM1Ljc4bC4zIDIuMTJjLjA0LjIuMi4zNC40LjM0aDMuMmMuMiAwIC4zNy0uMTQuMzktLjM0bC4zLTIuMTJjLjQ5LS4yLjk0LS40NyAxLjM1LS43OGwxLjk5LjhjLjE4LjA3LjM5IDAgLjQ5LS4xOGwxLjYtMi43N2MuMS0uMTguMDYtLjM5LS4xLS41MWwtMS42Ny0xLjMyek0xMCAxM2MtMS42NSAwLTMtMS4zNS0zLTNzMS4zNS0zIDMtMyAzIDEuMzUgMyAzLTEuMzUgMy0zIDN6XCIsXHJcbiAgICBTeW5jQWx0OlwiTTIyIDhsLTQtNHYzSDN2MmgxNXYzbDQtNHpNMiAxNmw0IDR2LTNoMTV2LTJINnYtM2wtNCA0elwiLFxyXG4gICAgVHJlbmRpbmdGbGF0OlwiTTIyIDEybC00LTR2M0gzdjJoMTV2M3pcIixcclxuICAgIFdhcm5pbmc6IFwiTTEgMjFoMjJMMTIgMiAxIDIxem0xMi0zaC0ydi0yaDJ2MnptMC00aC0ydi00aDJ2NHpcIixcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IElDT04gPSBsaWtlQXIobWF0ZXJpYWxJb0ljb25zU3ZnUGF0aCkubWFwKHN2Z1RleHQ9PiAoKSA9PlxyXG4gICAgPFN2Z0ljb24+PHBhdGggZD17c3ZnVGV4dH0vPjwvU3ZnSWNvbj5cclxuKS5wbGFpbigpO1xyXG5cclxuZXhwb3J0IHR5cGUgU3R5bGVzID0gUmVhY3QuQ1NTUHJvcGVydGllcztcclxuXHJcbmV4cG9ydCB0eXBlIE9uVXBkYXRlPFQ+ID0gKGRhdGE6VCk9PnZvaWRcclxuXHJcbmV4cG9ydCB0eXBlIElucHV0VHlwZXMgPSAnZGF0ZSd8J251bWJlcid8J3RlbCd8J3RleHQnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkYXB0YXJUaXBvVmFyQ2FzaWxsZXJvKGNhc2lsbGVyb0RhdGFUeXBlOlRpcG9WYXJpYWJsZXN8J29wY2lvbmVzJ3wnc2lfbm8nKTpJbnB1dFR5cGVze1xyXG4gICAgY29uc3QgYWRhcHRlcjp7W2tleSBpbiBUaXBvVmFyaWFibGVzfCdvcGNpb25lcyd8J3NpX25vJ106SW5wdXRUeXBlc30gPSB7XHJcbiAgICAgICAgJ29wY2lvbmVzJzonbnVtYmVyJyxcclxuICAgICAgICAnc2lfbm8nOiAnbnVtYmVyJyxcclxuICAgICAgICAnbnVtZXJvJzogJ251bWJlcicsXHJcbiAgICAgICAgJ2hvcmEnOiAndGVsJyxcclxuICAgICAgICAnaG9yYXMnOiAnbnVtYmVyJyxcclxuICAgICAgICAndGV4dG8nOiAndGV4dCcsXHJcbiAgICAgICAgJ2ZlY2hhJzogJ3RleHQnXHJcbiAgICB9XHJcbiAgICByZXR1cm4gYWRhcHRlcltjYXNpbGxlcm9EYXRhVHlwZV1cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IHNjcm9sbFRvVG9wID0gKCkgPT4ge1xyXG4gICAgd2luZG93LnNjcm9sbCh7YmVoYXZpb3I6J3Ntb290aCcsIHRvcDowLCBsZWZ0OjB9KVxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IHNjcm9sbFRvQm90dG9tID0gKCkgPT4ge1xyXG4gICAgd2luZG93LnNjcm9sbCh7YmVoYXZpb3I6J3Ntb290aCcsIHRvcDpkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodC13aW5kb3cuaW5uZXJIZWlnaHQsIGxlZnQ6MH0pXHJcbn07XHJcblxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFNjcm9sbFRvcChwcm9wczogYW55KSB7XHJcbiAgICBjb25zdCB7IGNoaWxkcmVuIH0gPSBwcm9wcztcclxuICAgIC8vY29uc3QgY2xhc3NlcyA9IHVzZVN0eWxlc1Njcm9sbFRvcCgpO1xyXG4gICAgLy8gTm90ZSB0aGF0IHlvdSBub3JtYWxseSB3b24ndCBuZWVkIHRvIHNldCB0aGUgd2luZG93IHJlZiBhcyB1c2VTY3JvbGxUcmlnZ2VyXHJcbiAgICAvLyB3aWxsIGRlZmF1bHQgdG8gd2luZG93LlxyXG4gICAgLy8gVGhpcyBpcyBvbmx5IGJlaW5nIHNldCBoZXJlIGJlY2F1c2UgdGhlIGRlbW8gaXMgaW4gYW4gaWZyYW1lLlxyXG4gICAgY29uc3QgdHJpZ2dlciA9IHVzZVNjcm9sbFRyaWdnZXIoe1xyXG4gICAgICAgIGRpc2FibGVIeXN0ZXJlc2lzOiB0cnVlLFxyXG4gICAgICAgIHRocmVzaG9sZDogMTAwLFxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIDxab29tIGluPXt0cmlnZ2VyfT5cclxuICAgICAgICAgICAgPGRpdiBvbkNsaWNrPXtzY3JvbGxUb1RvcH0gcm9sZT1cInByZXNlbnRhdGlvblwiIC8qY2xhc3NOYW1lPXtjbGFzc2VzLnJvb3R9Ki8+XHJcbiAgICAgICAgICAgICAgICB7Y2hpbGRyZW59XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvWm9vbT5cclxuICAgICk7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEZvY3VzT3B0cz17XHJcbiAgICBtb3ZlVG9FbGVtZW50OiBib29sZWFuXHJcbiAgICBtb3ZlQmVoYXZpb3I/OiAnYXV0bycgfCAnc21vb3RoJ1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZm9jdXNUb0lkKGlkOnN0cmluZywgb3B0czpGb2N1c09wdHMsIGNiPzooZTpIVE1MRWxlbWVudCk9PnZvaWQpe1xyXG4gICAgdmFyIGVsZW1lbnQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xyXG4gICAgdmFyIHBhZHJlPWVsZW1lbnQ7XHJcbiAgICB3aGlsZShwYWRyZSAmJiBwYWRyZS5jbGFzc05hbWUhPSdwcmVndW50YScgJiYgcGFkcmUhPWRvY3VtZW50LmJvZHkpIHBhZHJlID0gcGFkcmUucGFyZW50RWxlbWVudDtcclxuICAgIGlmKHBhZHJlICYmIHBhZHJlLmNsYXNzTmFtZT09J3ByZWd1bnRhJykgZWxlbWVudD1wYWRyZTtcclxuICAgIGlmKGVsZW1lbnQpe1xyXG4gICAgICAgIGlmKGNiKXtcclxuICAgICAgICAgICAgY2IoZWxlbWVudCk7XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgICAgICAgaWYob3B0cy5tb3ZlVG9FbGVtZW50KXtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoKTtcclxuICAgICAgICAgICAgICAgIHdpbmRvdy5zY3JvbGwoe2JlaGF2aW9yOm9wdHMubW92ZUJlaGF2aW9yfHwnYXV0bycsIHRvcDp3aW5kb3cuc2Nyb2xsWS0xMDAsIGxlZnQ6MH0pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIElEaXNwYXRjaGVycyA9IHtSRVNFVF9PUENJT05FUzpGdW5jdGlvbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gUmVzZXRlckZvcm0ocHJvcHM6e29uVHJ5QWdhaW46KCk9PnZvaWQsIGRpc3BhdGNoZXJzOklEaXNwYXRjaGVycywgbWVuc2FqZTpzdHJpbmd9KXtcclxuICAgIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcclxuICAgIHJldHVybiA8PlxyXG4gICAgICAgIDxCdXR0b24gdmFyaWFudD1cIm91dGxpbmVkXCJcclxuICAgICAgICAgICAgb25DbGljaz17KCk9PntcclxuICAgICAgICAgICAgICAgIGRpc3BhdGNoKHByb3BzLmRpc3BhdGNoZXJzLlJFU0VUX09QQ0lPTkVTKHt9KSk7XHJcbiAgICAgICAgICAgICAgICBwcm9wcy5vblRyeUFnYWluKCk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgPntwcm9wcy5tZW5zYWplfTwvQnV0dG9uPlxyXG4gICAgPC8+O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUmVuZGVyQW5kQ2FwdHVyZUVycm9yIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PFxyXG4gICAge2Rpc3BhdGNoZXJzOklEaXNwYXRjaGVycywgbWVuc2FqZVJldG9ybm86c3RyaW5nfSxcclxuICAgIHtoYXNFcnJvcjpib29sZWFuLCBlcnJvcjpFcnJvcnx7fSwgaW5mbz86YW55fVxyXG4+e1xyXG4gICAgY29uc3RydWN0b3IocHJvcHM6YW55KSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7IGhhc0Vycm9yOiBmYWxzZSwgZXJyb3I6e319O1xyXG4gICAgfVxyXG4gICAgY29tcG9uZW50RGlkQ2F0Y2goZXJyb3I6RXJyb3IsIGluZm86YW55KXtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgaGFzRXJyb3I6IHRydWUgLCBlcnJvciwgaW5mbyB9KTtcclxuICAgIH1cclxuICAgIHJlbmRlcigpe1xyXG4gICAgICAgIGlmKHRoaXMuc3RhdGUuaGFzRXJyb3Ipe1xyXG4gICAgICAgICAgICByZXR1cm4gPD5cclxuICAgICAgICAgICAgICAgIDxUeXBvZ3JhcGh5Pkh1Ym8gdW4gcHJvYmxlbWEgZW4gbGEgcHJvZ3JhbWFjacOzbiBkZSBsYSBwYW50YWxsYS48L1R5cG9ncmFwaHk+XHJcbiAgICAgICAgICAgICAgICA8UmVzZXRlckZvcm0gZGlzcGF0Y2hlcnM9e3RoaXMucHJvcHMuZGlzcGF0Y2hlcnN9IG1lbnNhamU9e3RoaXMucHJvcHMubWVuc2FqZVJldG9ybm99IG9uVHJ5QWdhaW49eygpPT5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgaGFzRXJyb3I6IGZhbHNlLCBlcnJvcjp7fX0pXHJcbiAgICAgICAgICAgICAgICB9Lz5cclxuICAgICAgICAgICAgICAgIDxCdXR0b24gdmFyaWFudD1cIm91dGxpbmVkXCIgY29sb3I9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGdvdG9TaW5jcm9uaXphcigpO1xyXG4gICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICA+aXIgYSBsYSBwYW50YWxsYSBkZSBzaW5jcm9uaXphY2nDs248L0J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxUeXBvZ3JhcGh5PkVycm9yIGRldGVjdGFkbzo8L1R5cG9ncmFwaHk+XHJcbiAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeT57dGhpcy5zdGF0ZS5lcnJvciBpbnN0YW5jZW9mIEVycm9yID8gdGhpcy5zdGF0ZS5lcnJvci5tZXNzYWdlIDogJ3Vua25vd24gZXJyb3InfTwvVHlwb2dyYXBoeT5cclxuICAgICAgICAgICAgICAgIDxUeXBvZ3JhcGh5PntKU09OLnN0cmluZ2lmeSh0aGlzLnN0YXRlLmluZm8pfTwvVHlwb2dyYXBoeT5cclxuICAgICAgICAgICAgPC8+O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5wcm9wcy5jaGlsZHJlbjtcclxuICAgIH1cclxufVxyXG5cclxuY29uc3QgdGhlbWUgPSBjcmVhdGVUaGVtZSh7XHJcbiAgb3ZlcnJpZGVzOiB7XHJcbiAgICBNdWlDc3NCYXNlbGluZToge1xyXG4gICAgICAnQGdsb2JhbCc6IHtcclxuICAgICAgICBodG1sOiB7XHJcbiAgICAgICAgICBXZWJraXRGb250U21vb3RoaW5nOiAnYXV0bycsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgfSxcclxufSk7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gUmVuZGVyUHJpbmNpcGFsPFQsVDIgZXh0ZW5kcyBBY3Rpb24+KHByb3BzOntzdG9yZTpTdG9yZTxULFQyPiwgZGlzcGF0Y2hlcnM6SURpc3BhdGNoZXJzLCBtZW5zYWplUmV0b3JubzpzdHJpbmcsIGNoaWxkcmVuOlJlYWN0LlJlYWN0Tm9kZX0pe1xyXG4gICAgcmV0dXJuIDxSZWFjdC5TdHJpY3RNb2RlPlxyXG4gICAgICAgIDxQcm92aWRlciBzdG9yZT17cHJvcHMuc3RvcmV9PlxyXG4gICAgICAgICAgICA8VGhlbWVQcm92aWRlciB0aGVtZT17dGhlbWV9PlxyXG4gICAgICAgICAgICAgICAgPFJlbmRlckFuZENhcHR1cmVFcnJvciBkaXNwYXRjaGVycz17cHJvcHMuZGlzcGF0Y2hlcnN9IG1lbnNhamVSZXRvcm5vPXtwcm9wcy5tZW5zYWplUmV0b3Jub30+XHJcbiAgICAgICAgICAgICAgICAgICAgPENzc0Jhc2VsaW5lIC8+XHJcbiAgICAgICAgICAgICAgICAgICAge3Byb3BzLmNoaWxkcmVufVxyXG4gICAgICAgICAgICAgICAgPC9SZW5kZXJBbmRDYXB0dXJlRXJyb3I+XHJcbiAgICAgICAgICAgIDwvVGhlbWVQcm92aWRlcj4gICAgICAgIFxyXG4gICAgICAgIDwvUHJvdmlkZXI+XHJcbiAgICA8L1JlYWN0LlN0cmljdE1vZGU+XHJcbn1cclxuXHJcbiJdfQ==
|