bry-biometric-collector 2.1.2-RC01 → 2.2.0-RC02
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/CameraBtn_cf55ed47_2.2.0-RC02.js +643 -0
- package/dist/DocumentCollector_e8c9f640_2.2.0-RC02.js +1427 -0
- package/dist/FaceCollector_aea262f0_2.2.0-RC02.js +2168 -0
- package/dist/bry-biometric-collector-main.js +1 -1
- package/dist/{en-us_35a3a8da_2.1.2-RC01.js → en-us_46223587_2.2.0-RC02.js} +19 -13
- package/dist/{face_api_0e3ce8c8_2.1.2-RC01.js → face_api_0e3ce8c8_2.2.0-RC02.js} +1 -1
- package/dist/{fingersApi_777a2f82_2.1.2-RC01.js → fingersApi_a130549b_2.2.0-RC02.js} +2 -2
- package/dist/{index-no-detector_acb82d83_2.1.2-RC01.js → index-no-detector_acb82d83_2.2.0-RC02.js} +1 -1
- package/dist/index.js +1 -1
- package/dist/{main_5d3f699b_2.1.2-RC01.js → main_a9bb653b_2.2.0-RC02.js} +5296 -5133
- package/dist/{pt-br_1a694022_2.1.2-RC01.js → pt-br_7b1f22cd_2.2.0-RC02.js} +9 -3
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/dist/CameraBtn_e7168665_2.1.2-RC01.js +0 -508
- package/dist/DocumentCollector_a0fbe6b1_2.1.2-RC01.js +0 -1386
- package/dist/FaceCollector_0b2d7ad0_2.1.2-RC01.js +0 -2186
@@ -0,0 +1,643 @@
|
|
1
|
+
import { ay as ae, S as z, r as q, t as K, w as F, x as r, y as T, z as N, B as j, D as U, a8 as J, ba as C, bb as V, bc as P, aJ as A, aK as I, aV as v, aL as p, aQ as f, bd as k, aS as E, be as O, aW as g, b0 as M, bf as S, bg as oe, bh as Q, at as L, I as Z, aT as ne, aX as ie, aY as ce, aP as ue, aN as re, aZ as fe, ab as me } from "./main_a9bb653b_2.2.0-RC02.js";
|
2
|
+
var y = /* @__PURE__ */ ((i) => (i.OK = "OK", i.DEVICE_NOT_FOUND_ERROR = "DEVICE_NOT_FOUND_ERROR", i.CAMERA_DENIED_ERROR = "CAMERA_DENIED_ERROR", i.CAMERA_IN_USE_ERROR = "CAMERA_IN_USE_ERROR", i.CAMERA_CLOSED_ERROR = "CAMERA_CLOSED_ERROR", i.CAMERA_UNSUPPORTED = "CAMERA_UNSUPPORTED", i.CAMERA_ORIENTATION_PORTRAIT = "CAMERA_ORIENTATION_PORTRAIT", i.CAMERA_ORIENTATION_LANDSCAPE = "CAMERA_ORIENTATION_LANDSCAPE", i))(y || {});
|
3
|
+
const H = ae(
|
4
|
+
"OK"
|
5
|
+
/* OK */
|
6
|
+
), w = "src/lib/faceTab/cameraStatus/CameraStatus.svelte";
|
7
|
+
function W(i) {
|
8
|
+
let t, c, u, a, _, l, m, o, d, h, x = [
|
9
|
+
{ class: "text-[8em] mx-auto" },
|
10
|
+
{ xmlns: "http://www.w3.org/2000/svg" },
|
11
|
+
{ width: "1em" },
|
12
|
+
{ height: "1em" },
|
13
|
+
{ viewBox: "0 0 256 256" },
|
14
|
+
/*$$props*/
|
15
|
+
i[2]
|
16
|
+
], b = {};
|
17
|
+
for (let n = 0; n < x.length; n += 1)
|
18
|
+
b = C(b, x[n]);
|
19
|
+
const R = {
|
20
|
+
c: function() {
|
21
|
+
t = k("svg"), c = k("path"), u = E(), a = A("span"), a.textContent = "O dispositivo precisa estar na posição paisagem.", _ = E(), l = A("span"), l.textContent = "Por favor, vire o dispositivo ou pressione o botão abaixo.", m = E(), o = A("button"), o.textContent = "Ajustar Orientação", v(c, "fill", "currentColor"), v(c, "d", "M208 56h-27.72l-13.63-20.44A8 8 0 0 0 160 32H96a8 8 0 0 0-6.65 3.56L75.71 56H48a24 24 0 0 0-24 24v112a24 24 0 0 0 24 24h160a24 24 0 0 0 24-24V80a24 24 0 0 0-24-24m-51.19 110.4A48.21 48.21 0 0 1 96 163.77V168a8 8 0 0 1-16 0v-24a8 8 0 0 1 8-8h24a8 8 0 0 1 0 16h-5.15a32.12 32.12 0 0 0 40.34 1.61a8 8 0 0 1 9.62 12.79M176 120a8 8 0 0 1-8 8h-24a8 8 0 0 1 0-16h5.15a32.12 32.12 0 0 0-40.34-1.61a8 8 0 0 1-9.62-12.79a48.21 48.21 0 0 1 60.81 2.63V96a8 8 0 0 1 16 0Z"), p(c, w, 173, 6, 8313), O(t, b), p(t, w, 165, 4, 8138), v(a, "class", "text-xl font-bold text-center"), p(a, w, 178, 4, 8842), v(l, "class", "m-auto text-base block text-center"), p(l, w, 179, 4, 8946), v(o, "class", "z-20 ce-dui-btn ce-dui-btn-outline ce-dui-btn-primary m-auto"), p(o, w, 180, 4, 9065);
|
22
|
+
},
|
23
|
+
m: function(e, s) {
|
24
|
+
r(e, t, s), g(t, c), r(e, u, s), r(e, a, s), r(e, _, s), r(e, l, s), r(e, m, s), r(e, o, s), d || (h = M(
|
25
|
+
o,
|
26
|
+
"click",
|
27
|
+
/*click_handler_6*/
|
28
|
+
i[9],
|
29
|
+
!1,
|
30
|
+
!1,
|
31
|
+
!1,
|
32
|
+
!1
|
33
|
+
), d = !0);
|
34
|
+
},
|
35
|
+
p: function(e, s) {
|
36
|
+
O(t, b = S(x, [
|
37
|
+
{ class: "text-[8em] mx-auto" },
|
38
|
+
{ xmlns: "http://www.w3.org/2000/svg" },
|
39
|
+
{ width: "1em" },
|
40
|
+
{ height: "1em" },
|
41
|
+
{ viewBox: "0 0 256 256" },
|
42
|
+
s & /*$$props*/
|
43
|
+
4 && /*$$props*/
|
44
|
+
e[2]
|
45
|
+
]));
|
46
|
+
},
|
47
|
+
d: function(e) {
|
48
|
+
e && f(t), e && f(u), e && f(a), e && f(_), e && f(l), e && f(m), e && f(o), d = !1, h();
|
49
|
+
}
|
50
|
+
};
|
51
|
+
return N("SvelteRegisterBlock", {
|
52
|
+
block: R,
|
53
|
+
id: W.name,
|
54
|
+
type: "if",
|
55
|
+
source: "(164:81) ",
|
56
|
+
ctx: i
|
57
|
+
}), R;
|
58
|
+
}
|
59
|
+
function X(i) {
|
60
|
+
let t, c, u, a, _, l, m, o, d, h, x = [
|
61
|
+
{ class: "text-[8em] mx-auto" },
|
62
|
+
{ xmlns: "http://www.w3.org/2000/svg" },
|
63
|
+
{ width: "1em" },
|
64
|
+
{ height: "1em" },
|
65
|
+
{ viewBox: "0 0 256 256" },
|
66
|
+
/*$$props*/
|
67
|
+
i[2]
|
68
|
+
], b = {};
|
69
|
+
for (let n = 0; n < x.length; n += 1)
|
70
|
+
b = C(b, x[n]);
|
71
|
+
const R = {
|
72
|
+
c: function() {
|
73
|
+
t = k("svg"), c = k("path"), u = E(), a = A("span"), a.textContent = "O dispositivo precisa estar na posição retrato.", _ = E(), l = A("span"), l.textContent = "Por favor, vire o dispositivo ou pressione o botão abaixo.", m = E(), o = A("button"), o.textContent = "Ajustar Orientação", v(c, "fill", "currentColor"), v(c, "d", "M208 56h-27.72l-13.63-20.44A8 8 0 0 0 160 32H96a8 8 0 0 0-6.65 3.56L75.71 56H48a24 24 0 0 0-24 24v112a24 24 0 0 0 24 24h160a24 24 0 0 0 24-24V80a24 24 0 0 0-24-24m-51.19 110.4A48.21 48.21 0 0 1 96 163.77V168a8 8 0 0 1-16 0v-24a8 8 0 0 1 8-8h24a8 8 0 0 1 0 16h-5.15a32.12 32.12 0 0 0 40.34 1.61a8 8 0 0 1 9.62 12.79M176 120a8 8 0 0 1-8 8h-24a8 8 0 0 1 0-16h5.15a32.12 32.12 0 0 0-40.34-1.61a8 8 0 0 1-9.62-12.79a48.21 48.21 0 0 1 60.81 2.63V96a8 8 0 0 1 16 0Z"), p(c, w, 150, 6, 7078), O(t, b), p(t, w, 142, 4, 6903), v(a, "class", "text-xl font-bold text-center"), p(a, w, 155, 4, 7607), v(l, "class", "m-auto text-base block text-center"), p(l, w, 156, 4, 7710), v(o, "class", "z-20 ce-dui-btn ce-dui-btn-outline ce-dui-btn-primary m-auto"), p(o, w, 157, 4, 7829);
|
74
|
+
},
|
75
|
+
m: function(e, s) {
|
76
|
+
r(e, t, s), g(t, c), r(e, u, s), r(e, a, s), r(e, _, s), r(e, l, s), r(e, m, s), r(e, o, s), d || (h = M(
|
77
|
+
o,
|
78
|
+
"click",
|
79
|
+
/*click_handler_5*/
|
80
|
+
i[8],
|
81
|
+
!1,
|
82
|
+
!1,
|
83
|
+
!1,
|
84
|
+
!1
|
85
|
+
), d = !0);
|
86
|
+
},
|
87
|
+
p: function(e, s) {
|
88
|
+
O(t, b = S(x, [
|
89
|
+
{ class: "text-[8em] mx-auto" },
|
90
|
+
{ xmlns: "http://www.w3.org/2000/svg" },
|
91
|
+
{ width: "1em" },
|
92
|
+
{ height: "1em" },
|
93
|
+
{ viewBox: "0 0 256 256" },
|
94
|
+
s & /*$$props*/
|
95
|
+
4 && /*$$props*/
|
96
|
+
e[2]
|
97
|
+
]));
|
98
|
+
},
|
99
|
+
d: function(e) {
|
100
|
+
e && f(t), e && f(u), e && f(a), e && f(_), e && f(l), e && f(m), e && f(o), d = !1, h();
|
101
|
+
}
|
102
|
+
};
|
103
|
+
return N("SvelteRegisterBlock", {
|
104
|
+
block: R,
|
105
|
+
id: X.name,
|
106
|
+
type: "if",
|
107
|
+
source: "(141:80) ",
|
108
|
+
ctx: i
|
109
|
+
}), R;
|
110
|
+
}
|
111
|
+
function Y(i) {
|
112
|
+
let t, c, u, a, _, l, m, o, d, h, x = [
|
113
|
+
{ class: "text-[8em] mx-auto" },
|
114
|
+
{ xmlns: "http://www.w3.org/2000/svg" },
|
115
|
+
{ width: "1em" },
|
116
|
+
{ height: "1em" },
|
117
|
+
{ viewBox: "0 0 256 256" },
|
118
|
+
/*$$props*/
|
119
|
+
i[2]
|
120
|
+
], b = {};
|
121
|
+
for (let n = 0; n < x.length; n += 1)
|
122
|
+
b = C(b, x[n]);
|
123
|
+
const R = {
|
124
|
+
c: function() {
|
125
|
+
t = k("svg"), c = k("path"), u = E(), a = A("span"), a.textContent = "A câmera não atende os requisitos necessários.", _ = E(), l = A("span"), l.textContent = "Por favor, conecte outra câmera e tente novamente.", m = E(), o = A("button"), o.textContent = "Reiniciar", v(c, "fill", "currentColor"), v(c, "d", "M249.45 69.31a12 12 0 0 0-12.51 1L212 88.43V72a20 20 0 0 0-20-20h-68.12a12 12 0 0 0 0 24H188v68a12 12 0 0 0 4.46 9.33c.15.13.31.25.48.38l44 32A12 12 0 0 0 256 176V80a12 12 0 0 0-6.55-10.69M232 152.43l-20-14.54v-19.78l20-14.54ZM56.88 31.93a12 12 0 1 0-17.76 16.14L42.69 52H32a20 20 0 0 0-20 20v112a20 20 0 0 0 20 20h148.87l18.25 20.07a12 12 0 0 0 17.76-16.14ZM36 180V76h28.51l94.55 104Z"), p(c, w, 127, 6, 5942), O(t, b), p(t, w, 119, 4, 5767), v(a, "class", "text-xl font-bold text-center"), p(a, w, 132, 4, 6398), v(l, "class", "m-auto text-base block text-center"), p(l, w, 133, 4, 6500), v(o, "class", "z-20 ce-dui-btn ce-dui-btn-outline ce-dui-btn-primary m-auto"), p(o, w, 134, 4, 6611);
|
126
|
+
},
|
127
|
+
m: function(e, s) {
|
128
|
+
r(e, t, s), g(t, c), r(e, u, s), r(e, a, s), r(e, _, s), r(e, l, s), r(e, m, s), r(e, o, s), d || (h = M(
|
129
|
+
o,
|
130
|
+
"click",
|
131
|
+
/*click_handler_4*/
|
132
|
+
i[7],
|
133
|
+
!1,
|
134
|
+
!1,
|
135
|
+
!1,
|
136
|
+
!1
|
137
|
+
), d = !0);
|
138
|
+
},
|
139
|
+
p: function(e, s) {
|
140
|
+
O(t, b = S(x, [
|
141
|
+
{ class: "text-[8em] mx-auto" },
|
142
|
+
{ xmlns: "http://www.w3.org/2000/svg" },
|
143
|
+
{ width: "1em" },
|
144
|
+
{ height: "1em" },
|
145
|
+
{ viewBox: "0 0 256 256" },
|
146
|
+
s & /*$$props*/
|
147
|
+
4 && /*$$props*/
|
148
|
+
e[2]
|
149
|
+
]));
|
150
|
+
},
|
151
|
+
d: function(e) {
|
152
|
+
e && f(t), e && f(u), e && f(a), e && f(_), e && f(l), e && f(m), e && f(o), d = !1, h();
|
153
|
+
}
|
154
|
+
};
|
155
|
+
return N("SvelteRegisterBlock", {
|
156
|
+
block: R,
|
157
|
+
id: Y.name,
|
158
|
+
type: "if",
|
159
|
+
source: "(118:71) ",
|
160
|
+
ctx: i
|
161
|
+
}), R;
|
162
|
+
}
|
163
|
+
function G(i) {
|
164
|
+
let t, c, u, a, _, l, m, o, d, h, x = [
|
165
|
+
{ class: "text-[8em] mx-auto" },
|
166
|
+
{ xmlns: "http://www.w3.org/2000/svg" },
|
167
|
+
{ width: "1em" },
|
168
|
+
{ height: "1em" },
|
169
|
+
{ viewBox: "0 0 256 256" },
|
170
|
+
/*$$props*/
|
171
|
+
i[2]
|
172
|
+
], b = {};
|
173
|
+
for (let n = 0; n < x.length; n += 1)
|
174
|
+
b = C(b, x[n]);
|
175
|
+
const R = {
|
176
|
+
c: function() {
|
177
|
+
t = k("svg"), c = k("path"), u = E(), a = A("span"), a.textContent = "Por favor, permaneça na mesma aba durante a coleta biométrica.", _ = E(), l = A("span"), l.textContent = "Clique no botão Reiniciar para capturar novamente.", m = E(), o = A("button"), o.textContent = "Reiniciar", v(c, "fill", "currentColor"), v(c, "d", "M236.8 188.09L149.35 36.22a24.76 24.76 0 0 0-42.7 0L19.2 188.09a23.51 23.51 0 0 0 0 23.72A24.35 24.35 0 0 0 40.55 224h174.9a24.35 24.35 0 0 0 21.33-12.19a23.51 23.51 0 0 0 .02-23.72m-13.87 15.71a8.5 8.5 0 0 1-7.48 4.2H40.55a8.5 8.5 0 0 1-7.48-4.2a7.59 7.59 0 0 1 0-7.72l87.45-151.87a8.75 8.75 0 0 1 15 0l87.45 151.87a7.59 7.59 0 0 1-.04 7.72M120 144v-40a8 8 0 0 1 16 0v40a8 8 0 0 1-16 0m20 36a12 12 0 1 1-12-12a12 12 0 0 1 12 12"), p(c, w, 104, 6, 4756), O(t, b), p(t, w, 96, 4, 4581), v(a, "class", "text-xl font-bold text-center"), p(a, w, 109, 4, 5255), v(l, "class", "m-auto text-base block text-center"), p(l, w, 110, 4, 5373), v(o, "class", "z-20 ce-dui-btn ce-dui-btn-outline ce-dui-btn-primary m-auto"), p(o, w, 111, 4, 5484);
|
178
|
+
},
|
179
|
+
m: function(e, s) {
|
180
|
+
r(e, t, s), g(t, c), r(e, u, s), r(e, a, s), r(e, _, s), r(e, l, s), r(e, m, s), r(e, o, s), d || (h = M(
|
181
|
+
o,
|
182
|
+
"click",
|
183
|
+
/*click_handler_3*/
|
184
|
+
i[6],
|
185
|
+
!1,
|
186
|
+
!1,
|
187
|
+
!1,
|
188
|
+
!1
|
189
|
+
), d = !0);
|
190
|
+
},
|
191
|
+
p: function(e, s) {
|
192
|
+
O(t, b = S(x, [
|
193
|
+
{ class: "text-[8em] mx-auto" },
|
194
|
+
{ xmlns: "http://www.w3.org/2000/svg" },
|
195
|
+
{ width: "1em" },
|
196
|
+
{ height: "1em" },
|
197
|
+
{ viewBox: "0 0 256 256" },
|
198
|
+
s & /*$$props*/
|
199
|
+
4 && /*$$props*/
|
200
|
+
e[2]
|
201
|
+
]));
|
202
|
+
},
|
203
|
+
d: function(e) {
|
204
|
+
e && f(t), e && f(u), e && f(a), e && f(_), e && f(l), e && f(m), e && f(o), d = !1, h();
|
205
|
+
}
|
206
|
+
};
|
207
|
+
return N("SvelteRegisterBlock", {
|
208
|
+
block: R,
|
209
|
+
id: G.name,
|
210
|
+
type: "if",
|
211
|
+
source: "(95:72) ",
|
212
|
+
ctx: i
|
213
|
+
}), R;
|
214
|
+
}
|
215
|
+
function $(i) {
|
216
|
+
let t, c, u, a, _, l, m, o, d, h, x = [
|
217
|
+
{ class: "text-[8em] mx-auto" },
|
218
|
+
{ xmlns: "http://www.w3.org/2000/svg" },
|
219
|
+
{ width: "1em" },
|
220
|
+
{ height: "1em" },
|
221
|
+
{ viewBox: "0 0 256 256" },
|
222
|
+
/*$$props*/
|
223
|
+
i[2]
|
224
|
+
], b = {};
|
225
|
+
for (let n = 0; n < x.length; n += 1)
|
226
|
+
b = C(b, x[n]);
|
227
|
+
const R = {
|
228
|
+
c: function() {
|
229
|
+
t = k("svg"), c = k("path"), u = E(), a = A("span"), a.textContent = "A câmera está em uso.", _ = E(), l = A("span"), l.textContent = "Certifique-se de que a câmera não está sendo utilizada por nenhuma outra aplicação e clique no botão abaixo.", m = E(), o = A("button"), o.textContent = "Reiniciar", v(c, "fill", "currentColor"), v(c, "d", "M56.88 31.93a12 12 0 1 0-17.76 16.14l4 4.37A28 28 0 0 0 20 80v112a28 28 0 0 0 28 28h147.42l3.7 4.07a12 12 0 0 0 17.76-16.14Zm49.35 90L136 154.64a24 24 0 0 1-29.77-32.75ZM48 196a4 4 0 0 1-4-4V80a4 4 0 0 1 4-4h16.51l24.92 27.41a48 48 0 0 0 63.34 69.67L173.6 196ZM236 80v94.14a12 12 0 0 1-24 0V80a4 4 0 0 0-4-4h-32a12 12 0 0 1-10-5.34L153.57 52h-51.51a12 12 0 0 1 0-24H160a12 12 0 0 1 10 5.34L182.42 52H208a28 28 0 0 1 28 28"), p(c, w, 76, 6, 3468), O(t, b), p(t, w, 68, 4, 3293), v(a, "class", "text-xl font-bold text-center"), p(a, w, 81, 4, 3960), v(l, "class", "m-auto text-base block text-center"), p(l, w, 82, 4, 4037), v(o, "class", "z-20 ce-dui-btn ce-dui-btn-outline ce-dui-btn-primary m-auto"), p(o, w, 85, 4, 4218);
|
230
|
+
},
|
231
|
+
m: function(e, s) {
|
232
|
+
r(e, t, s), g(t, c), r(e, u, s), r(e, a, s), r(e, _, s), r(e, l, s), r(e, m, s), r(e, o, s), d || (h = M(
|
233
|
+
o,
|
234
|
+
"click",
|
235
|
+
/*click_handler_2*/
|
236
|
+
i[5],
|
237
|
+
!1,
|
238
|
+
!1,
|
239
|
+
!1,
|
240
|
+
!1
|
241
|
+
), d = !0);
|
242
|
+
},
|
243
|
+
p: function(e, s) {
|
244
|
+
O(t, b = S(x, [
|
245
|
+
{ class: "text-[8em] mx-auto" },
|
246
|
+
{ xmlns: "http://www.w3.org/2000/svg" },
|
247
|
+
{ width: "1em" },
|
248
|
+
{ height: "1em" },
|
249
|
+
{ viewBox: "0 0 256 256" },
|
250
|
+
s & /*$$props*/
|
251
|
+
4 && /*$$props*/
|
252
|
+
e[2]
|
253
|
+
]));
|
254
|
+
},
|
255
|
+
d: function(e) {
|
256
|
+
e && f(t), e && f(u), e && f(a), e && f(_), e && f(l), e && f(m), e && f(o), d = !1, h();
|
257
|
+
}
|
258
|
+
};
|
259
|
+
return N("SvelteRegisterBlock", {
|
260
|
+
block: R,
|
261
|
+
id: $.name,
|
262
|
+
type: "if",
|
263
|
+
source: "(67:72) ",
|
264
|
+
ctx: i
|
265
|
+
}), R;
|
266
|
+
}
|
267
|
+
function ee(i) {
|
268
|
+
let t, c, u, a, _, l, m, o, d, h, x = [
|
269
|
+
{ class: "text-[8em] mx-auto" },
|
270
|
+
{ xmlns: "http://www.w3.org/2000/svg" },
|
271
|
+
{ width: "1em" },
|
272
|
+
{ height: "1em" },
|
273
|
+
{ viewBox: "0 0 256 256" },
|
274
|
+
/*$$props*/
|
275
|
+
i[2]
|
276
|
+
], b = {};
|
277
|
+
for (let n = 0; n < x.length; n += 1)
|
278
|
+
b = C(b, x[n]);
|
279
|
+
const R = {
|
280
|
+
c: function() {
|
281
|
+
t = k("svg"), c = k("path"), u = E(), a = A("span"), a.textContent = "A câmera não foi detectada.", _ = E(), l = A("span"), l.textContent = "Por favor, conecte a sua câmera, espere alguns instantes e clique no botão Reiniciar.", m = E(), o = A("button"), o.textContent = "Reiniciar", v(c, "fill", "currentColor"), v(c, "d", "m137 168l11.52-11.51a12 12 0 0 0-17-17L120 151l-15-15l11.52-11.51a12 12 0 0 0-17-17L88 119l-15.51-15.49a12 12 0 0 0-17 17L59 124l-20.46 20.49a36 36 0 0 0 0 50.91l2.55 2.54l-25.58 25.57a12 12 0 0 0 17 17l25.57-25.58l2.54 2.55a36.06 36.06 0 0 0 50.91 0L132 197l3.51 3.52a12 12 0 0 0 17-17Zm-42.46 32.49a12 12 0 0 1-17 0l-22.03-22.06a12 12 0 0 1 0-17L76 141l39 39Zm146-185a12 12 0 0 0-17 0l-25.6 25.6l-2.54-2.55a36.05 36.05 0 0 0-50.91 0L124 59l-3.51-3.52a12 12 0 0 0-17 17l80 80a12 12 0 0 0 17-17L197 132l20.49-20.49a36 36 0 0 0 0-50.91l-2.55-2.54l25.58-25.57a12 12 0 0 0-.03-16.98Zm-40 79L180 115l-39-39l20.49-20.49a12 12 0 0 1 17 0l22.06 22.06a12 12 0 0 1 0 17Z"), p(c, w, 47, 6, 1922), O(t, b), p(t, w, 39, 4, 1747), v(a, "class", "text-xl font-bold text-center"), p(a, w, 52, 4, 2654), v(l, "class", "m-auto text-base block text-center"), p(l, w, 53, 4, 2737), v(o, "class", "z-20 ce-dui-btn ce-dui-btn-outline ce-dui-btn-primary m-auto"), p(o, w, 56, 4, 2895);
|
282
|
+
},
|
283
|
+
m: function(e, s) {
|
284
|
+
r(e, t, s), g(t, c), r(e, u, s), r(e, a, s), r(e, _, s), r(e, l, s), r(e, m, s), r(e, o, s), d || (h = M(
|
285
|
+
o,
|
286
|
+
"click",
|
287
|
+
/*click_handler_1*/
|
288
|
+
i[4],
|
289
|
+
!1,
|
290
|
+
!1,
|
291
|
+
!1,
|
292
|
+
!1
|
293
|
+
), d = !0);
|
294
|
+
},
|
295
|
+
p: function(e, s) {
|
296
|
+
O(t, b = S(x, [
|
297
|
+
{ class: "text-[8em] mx-auto" },
|
298
|
+
{ xmlns: "http://www.w3.org/2000/svg" },
|
299
|
+
{ width: "1em" },
|
300
|
+
{ height: "1em" },
|
301
|
+
{ viewBox: "0 0 256 256" },
|
302
|
+
s & /*$$props*/
|
303
|
+
4 && /*$$props*/
|
304
|
+
e[2]
|
305
|
+
]));
|
306
|
+
},
|
307
|
+
d: function(e) {
|
308
|
+
e && f(t), e && f(u), e && f(a), e && f(_), e && f(l), e && f(m), e && f(o), d = !1, h();
|
309
|
+
}
|
310
|
+
};
|
311
|
+
return N("SvelteRegisterBlock", {
|
312
|
+
block: R,
|
313
|
+
id: ee.name,
|
314
|
+
type: "if",
|
315
|
+
source: "(38:75) ",
|
316
|
+
ctx: i
|
317
|
+
}), R;
|
318
|
+
}
|
319
|
+
function te(i) {
|
320
|
+
let t, c, u, a, _, l, m, o, d, h, x = [
|
321
|
+
{ class: "text-[8em] mx-auto" },
|
322
|
+
{ xmlns: "http://www.w3.org/2000/svg" },
|
323
|
+
{ width: "1em" },
|
324
|
+
{ height: "1em" },
|
325
|
+
{ viewBox: "0 0 256 256" },
|
326
|
+
/*$$props*/
|
327
|
+
i[2]
|
328
|
+
], b = {};
|
329
|
+
for (let n = 0; n < x.length; n += 1)
|
330
|
+
b = C(b, x[n]);
|
331
|
+
const R = {
|
332
|
+
c: function() {
|
333
|
+
t = k("svg"), c = k("path"), u = E(), a = A("span"), a.textContent = "Por favor, conceda permissão de acesso à câmera.", _ = E(), l = A("span"), l.textContent = "Após conceder a permissão, clique no botão Reiniciar.", m = E(), o = A("button"), o.textContent = "Reiniciar", v(c, "fill", "currentColor"), v(c, "d", "M249.45 69.31a12 12 0 0 0-12.51 1L212 88.43V72a20 20 0 0 0-20-20h-68.12a12 12 0 0 0 0 24H188v68a12 12 0 0 0 4.46 9.33c.15.13.31.25.48.38l44 32A12 12 0 0 0 256 176V80a12 12 0 0 0-6.55-10.69M232 152.43l-20-14.54v-19.78l20-14.54ZM56.88 31.93a12 12 0 1 0-17.76 16.14L42.69 52H32a20 20 0 0 0-20 20v112a20 20 0 0 0 20 20h148.87l18.25 20.07a12 12 0 0 0 17.76-16.14ZM36 180V76h28.51l94.55 104Z"), p(c, w, 20, 6, 658), O(t, b), p(t, w, 12, 4, 483), v(a, "class", "text-xl font-bold text-center"), p(a, w, 25, 4, 1114), v(l, "class", "m-auto text-base block text-center"), p(l, w, 26, 4, 1218), v(o, "class", "z-20 ce-dui-btn ce-dui-btn-outline ce-dui-btn-primary m-auto"), p(o, w, 27, 4, 1332);
|
334
|
+
},
|
335
|
+
m: function(e, s) {
|
336
|
+
r(e, t, s), g(t, c), r(e, u, s), r(e, a, s), r(e, _, s), r(e, l, s), r(e, m, s), r(e, o, s), d || (h = M(
|
337
|
+
o,
|
338
|
+
"click",
|
339
|
+
/*click_handler*/
|
340
|
+
i[3],
|
341
|
+
!1,
|
342
|
+
!1,
|
343
|
+
!1,
|
344
|
+
!1
|
345
|
+
), d = !0);
|
346
|
+
},
|
347
|
+
p: function(e, s) {
|
348
|
+
O(t, b = S(x, [
|
349
|
+
{ class: "text-[8em] mx-auto" },
|
350
|
+
{ xmlns: "http://www.w3.org/2000/svg" },
|
351
|
+
{ width: "1em" },
|
352
|
+
{ height: "1em" },
|
353
|
+
{ viewBox: "0 0 256 256" },
|
354
|
+
s & /*$$props*/
|
355
|
+
4 && /*$$props*/
|
356
|
+
e[2]
|
357
|
+
]));
|
358
|
+
},
|
359
|
+
d: function(e) {
|
360
|
+
e && f(t), e && f(u), e && f(a), e && f(_), e && f(l), e && f(m), e && f(o), d = !1, h();
|
361
|
+
}
|
362
|
+
};
|
363
|
+
return N("SvelteRegisterBlock", {
|
364
|
+
block: R,
|
365
|
+
id: te.name,
|
366
|
+
type: "if",
|
367
|
+
source: "(11:2) {#if $cameraStatusStore === CameraStatusEnum.CAMERA_DENIED_ERROR}",
|
368
|
+
ctx: i
|
369
|
+
}), R;
|
370
|
+
}
|
371
|
+
function se(i) {
|
372
|
+
let t;
|
373
|
+
function c(l, m) {
|
374
|
+
if (
|
375
|
+
/*$cameraStatusStore*/
|
376
|
+
l[1] === y.CAMERA_DENIED_ERROR
|
377
|
+
)
|
378
|
+
return te;
|
379
|
+
if (
|
380
|
+
/*$cameraStatusStore*/
|
381
|
+
l[1] === y.DEVICE_NOT_FOUND_ERROR
|
382
|
+
)
|
383
|
+
return ee;
|
384
|
+
if (
|
385
|
+
/*$cameraStatusStore*/
|
386
|
+
l[1] === y.CAMERA_IN_USE_ERROR
|
387
|
+
)
|
388
|
+
return $;
|
389
|
+
if (
|
390
|
+
/*$cameraStatusStore*/
|
391
|
+
l[1] === y.CAMERA_CLOSED_ERROR
|
392
|
+
)
|
393
|
+
return G;
|
394
|
+
if (
|
395
|
+
/*$cameraStatusStore*/
|
396
|
+
l[1] === y.CAMERA_UNSUPPORTED
|
397
|
+
)
|
398
|
+
return Y;
|
399
|
+
if (
|
400
|
+
/*$cameraStatusStore*/
|
401
|
+
l[1] === y.CAMERA_ORIENTATION_PORTRAIT
|
402
|
+
)
|
403
|
+
return X;
|
404
|
+
if (
|
405
|
+
/*$cameraStatusStore*/
|
406
|
+
l[1] === y.CAMERA_ORIENTATION_LANDSCAPE
|
407
|
+
)
|
408
|
+
return W;
|
409
|
+
}
|
410
|
+
let u = c(i), a = u && u(i);
|
411
|
+
const _ = {
|
412
|
+
c: function() {
|
413
|
+
t = A("div"), a && a.c(), this.c = I, v(t, "class", "flex flex-col gap-4 justify-center absolute -translate-y-1/2 -translate-x-1/2 top-1/2 left-1/2 overflow-visible text-nowrap"), p(t, w, 7, 0, 222);
|
414
|
+
},
|
415
|
+
l: function(m) {
|
416
|
+
throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option");
|
417
|
+
},
|
418
|
+
m: function(m, o) {
|
419
|
+
r(m, t, o), a && a.m(t, null);
|
420
|
+
},
|
421
|
+
p: function(m, [o]) {
|
422
|
+
u === (u = c(m)) && a ? a.p(m, o) : (a && a.d(1), a = u && u(m), a && (a.c(), a.m(t, null)));
|
423
|
+
},
|
424
|
+
i: I,
|
425
|
+
o: I,
|
426
|
+
d: function(m) {
|
427
|
+
m && f(t), a && a.d();
|
428
|
+
}
|
429
|
+
};
|
430
|
+
return N("SvelteRegisterBlock", {
|
431
|
+
block: _,
|
432
|
+
id: se.name,
|
433
|
+
type: "component",
|
434
|
+
source: "",
|
435
|
+
ctx: i
|
436
|
+
}), _;
|
437
|
+
}
|
438
|
+
function de(i, t, c) {
|
439
|
+
let u;
|
440
|
+
j(H, "cameraStatusStore"), U(i, H, (n) => c(1, u = n));
|
441
|
+
let { $$slots: a = {}, $$scope: _ } = t;
|
442
|
+
J("camera-status", a, []);
|
443
|
+
let { handler: l = () => {
|
444
|
+
} } = t;
|
445
|
+
const m = () => {
|
446
|
+
l(), console.log("canicna", l);
|
447
|
+
}, o = () => {
|
448
|
+
l(), console.log("canicna", l);
|
449
|
+
}, d = () => {
|
450
|
+
l(), console.log("canicna", l);
|
451
|
+
}, h = () => {
|
452
|
+
l();
|
453
|
+
}, x = () => {
|
454
|
+
l();
|
455
|
+
}, b = () => {
|
456
|
+
P(!0);
|
457
|
+
}, R = () => {
|
458
|
+
P(!1);
|
459
|
+
};
|
460
|
+
return i.$$set = (n) => {
|
461
|
+
c(2, t = C(C({}, t), V(n))), "handler" in n && c(0, l = n.handler);
|
462
|
+
}, i.$capture_state = () => ({
|
463
|
+
handler: l,
|
464
|
+
CameraStatusEnum: y,
|
465
|
+
cameraStatusStore: H,
|
466
|
+
lockScreen: P,
|
467
|
+
$cameraStatusStore: u
|
468
|
+
}), i.$inject_state = (n) => {
|
469
|
+
c(2, t = C(C({}, t), n)), "handler" in t && c(0, l = n.handler);
|
470
|
+
}, t && "$$inject" in t && i.$inject_state(t.$$inject), t = V(t), [
|
471
|
+
l,
|
472
|
+
u,
|
473
|
+
t,
|
474
|
+
m,
|
475
|
+
o,
|
476
|
+
d,
|
477
|
+
h,
|
478
|
+
x,
|
479
|
+
b,
|
480
|
+
R
|
481
|
+
];
|
482
|
+
}
|
483
|
+
class _e extends z {
|
484
|
+
constructor(t) {
|
485
|
+
super(), q(
|
486
|
+
this,
|
487
|
+
{
|
488
|
+
target: this.shadowRoot,
|
489
|
+
props: F(this.attributes),
|
490
|
+
customElement: !0
|
491
|
+
},
|
492
|
+
de,
|
493
|
+
se,
|
494
|
+
K,
|
495
|
+
{ handler: 0 },
|
496
|
+
null
|
497
|
+
), t && (t.target && r(t.target, this, t.anchor), t.props && (this.$set(t.props), T()));
|
498
|
+
}
|
499
|
+
static get observedAttributes() {
|
500
|
+
return ["handler"];
|
501
|
+
}
|
502
|
+
get handler() {
|
503
|
+
return this.$$.ctx[0];
|
504
|
+
}
|
505
|
+
set handler(t) {
|
506
|
+
this.$$set({ handler: t }), T();
|
507
|
+
}
|
508
|
+
}
|
509
|
+
customElements.define("camera-status", _e);
|
510
|
+
function we(i, { delay: t = 0, duration: c = 400, easing: u = oe } = {}) {
|
511
|
+
const a = +getComputedStyle(i).opacity;
|
512
|
+
return {
|
513
|
+
delay: t,
|
514
|
+
duration: c,
|
515
|
+
easing: u,
|
516
|
+
css: (_) => `opacity: ${_ * a}`
|
517
|
+
};
|
518
|
+
}
|
519
|
+
const D = "src/lib/conf/CameraBtn.svelte";
|
520
|
+
function le(i) {
|
521
|
+
let t, c, u, a, _, l, m, o, d, h, x;
|
522
|
+
t = new Q({ $$inline: !0 });
|
523
|
+
let b = [
|
524
|
+
{ xmlns: "http://www.w3.org/2000/svg" },
|
525
|
+
{ width: "3em" },
|
526
|
+
{ height: "3em" },
|
527
|
+
{ viewBox: "0 0 256 256" },
|
528
|
+
/*$$props*/
|
529
|
+
i[3]
|
530
|
+
], R = {};
|
531
|
+
for (let e = 0; e < b.length; e += 1)
|
532
|
+
R = C(R, b[e]);
|
533
|
+
const n = {
|
534
|
+
c: function() {
|
535
|
+
ne(t.$$.fragment), c = E(), u = A("div"), a = A("label"), _ = k("svg"), l = k("path"), this.c = I, v(l, "fill", "currentColor"), v(l, "d", "M208 56h-27.72l-13.63-20.44A8 8 0 0 0 160 32H96a8 8 0 0 0-6.65 3.56L75.71 56H48a24 24 0 0 0-24 24v112a24 24 0 0 0 24 24h160a24 24 0 0 0 24-24V80a24 24 0 0 0-24-24m-51.19 110.4A48.21 48.21 0 0 1 96 163.77V168a8 8 0 0 1-16 0v-24a8 8 0 0 1 8-8h24a8 8 0 0 1 0 16h-5.15a32.12 32.12 0 0 0 40.34 1.61a8 8 0 0 1 9.62 12.79M176 120a8 8 0 0 1-8 8h-24a8 8 0 0 1 0-16h5.15a32.12 32.12 0 0 0-40.34-1.61a8 8 0 0 1-9.62-12.79a48.21 48.21 0 0 1 60.81 2.63V96a8 8 0 0 1 16 0Z"), p(l, D, 22, 6, 838), O(_, R), p(_, D, 21, 5, 731), v(a, "tabindex", "0"), a.hidden = m = /*$cameraDevicesStore*/
|
536
|
+
i[2].length == 1, v(a, "class", "ce-dui-btn ce-dui-btn-ghost m-1"), p(a, D, 20, 2, 624), v(u, "class", o = "ce-dui-dropdown ce-dui-dropdown-top absolute z-10 right-0 sm:block " + /*className*/
|
537
|
+
i[0]), p(u, D, 12, 0, 353);
|
538
|
+
},
|
539
|
+
l: function(s) {
|
540
|
+
throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option");
|
541
|
+
},
|
542
|
+
m: function(s, B) {
|
543
|
+
ie(t, s, B), r(s, c, B), r(s, u, B), g(u, a), g(a, _), g(_, l), d = !0, h || (x = M(
|
544
|
+
u,
|
545
|
+
"click",
|
546
|
+
/*click_handler*/
|
547
|
+
i[4],
|
548
|
+
!1,
|
549
|
+
!1,
|
550
|
+
!1,
|
551
|
+
!1
|
552
|
+
), h = !0);
|
553
|
+
},
|
554
|
+
p: function(s, [B]) {
|
555
|
+
O(_, R = S(b, [
|
556
|
+
{ xmlns: "http://www.w3.org/2000/svg" },
|
557
|
+
{ width: "3em" },
|
558
|
+
{ height: "3em" },
|
559
|
+
{ viewBox: "0 0 256 256" },
|
560
|
+
B & /*$$props*/
|
561
|
+
8 && /*$$props*/
|
562
|
+
s[3]
|
563
|
+
])), (!d || B & /*$cameraDevicesStore*/
|
564
|
+
4 && m !== (m = /*$cameraDevicesStore*/
|
565
|
+
s[2].length == 1)) && ce(a, "hidden", m), (!d || B & /*className*/
|
566
|
+
1 && o !== (o = "ce-dui-dropdown ce-dui-dropdown-top absolute z-10 right-0 sm:block " + /*className*/
|
567
|
+
s[0])) && v(u, "class", o);
|
568
|
+
},
|
569
|
+
i: function(s) {
|
570
|
+
d || (ue(t.$$.fragment, s), d = !0);
|
571
|
+
},
|
572
|
+
o: function(s) {
|
573
|
+
re(t.$$.fragment, s), d = !1;
|
574
|
+
},
|
575
|
+
d: function(s) {
|
576
|
+
fe(t, s), s && f(c), s && f(u), h = !1, x();
|
577
|
+
}
|
578
|
+
};
|
579
|
+
return N("SvelteRegisterBlock", {
|
580
|
+
block: n,
|
581
|
+
id: le.name,
|
582
|
+
type: "component",
|
583
|
+
source: "",
|
584
|
+
ctx: i
|
585
|
+
}), n;
|
586
|
+
}
|
587
|
+
function ve(i, t, c) {
|
588
|
+
let u, a;
|
589
|
+
j(L, "swapCamera"), U(i, L, (d) => c(1, u = d)), j(Z, "cameraDevicesStore"), U(i, Z, (d) => c(2, a = d));
|
590
|
+
let { $$slots: _ = {}, $$scope: l } = t;
|
591
|
+
J("camera-btn", _, []);
|
592
|
+
let { className: m = "" } = t;
|
593
|
+
const o = () => {
|
594
|
+
me(L, u = !u, u);
|
595
|
+
};
|
596
|
+
return i.$$set = (d) => {
|
597
|
+
c(3, t = C(C({}, t), V(d))), "className" in d && c(0, m = d.className);
|
598
|
+
}, i.$capture_state = () => ({
|
599
|
+
swapCamera: L,
|
600
|
+
ConfModal: Q,
|
601
|
+
cameraDevicesStore: Z,
|
602
|
+
className: m,
|
603
|
+
$swapCamera: u,
|
604
|
+
$cameraDevicesStore: a
|
605
|
+
}), i.$inject_state = (d) => {
|
606
|
+
c(3, t = C(C({}, t), d)), "className" in t && c(0, m = d.className);
|
607
|
+
}, t && "$$inject" in t && i.$inject_state(t.$$inject), t = V(t), [m, u, a, t, o];
|
608
|
+
}
|
609
|
+
class be extends z {
|
610
|
+
constructor(t) {
|
611
|
+
super(), q(
|
612
|
+
this,
|
613
|
+
{
|
614
|
+
target: this.shadowRoot,
|
615
|
+
props: F(this.attributes),
|
616
|
+
customElement: !0
|
617
|
+
},
|
618
|
+
ve,
|
619
|
+
le,
|
620
|
+
K,
|
621
|
+
{ className: 0 },
|
622
|
+
null
|
623
|
+
), t && (t.target && r(t.target, this, t.anchor), t.props && (this.$set(t.props), T()));
|
624
|
+
}
|
625
|
+
static get observedAttributes() {
|
626
|
+
return ["className"];
|
627
|
+
}
|
628
|
+
get className() {
|
629
|
+
return this.$$.ctx[0];
|
630
|
+
}
|
631
|
+
set className(t) {
|
632
|
+
this.$$set({ className: t }), T();
|
633
|
+
}
|
634
|
+
}
|
635
|
+
customElements.define("camera-btn", be);
|
636
|
+
export {
|
637
|
+
y as C,
|
638
|
+
_e as a,
|
639
|
+
be as b,
|
640
|
+
H as c,
|
641
|
+
we as f
|
642
|
+
};
|
643
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FtZXJhQnRuX2NmNTVlZDQ3XzIuMi4wLVJDMDIuanMiLCJzb3VyY2VzIjpbIi4uL3NyYy9saWIvZmFjZVRhYi9jYW1lcmFTdGF0dXMvY2FtZXJhU3RhdHVzU3RvcmUudHMiLCIuLi9zcmMvbGliL2ZhY2VUYWIvY2FtZXJhU3RhdHVzL0NhbWVyYVN0YXR1cy5zdmVsdGUiLCIuLi9ub2RlX21vZHVsZXMvc3ZlbHRlL3RyYW5zaXRpb24vaW5kZXgubWpzIiwiLi4vc3JjL2xpYi9jb25mL0NhbWVyYUJ0bi5zdmVsdGUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd3JpdGFibGUgfSBmcm9tICdzdmVsdGUvc3RvcmUnO1xuXG5leHBvcnQgY29uc3QgZW51bSBDYW1lcmFTdGF0dXNFbnVtIHtcbiAgT0sgPSAnT0snLFxuICBERVZJQ0VfTk9UX0ZPVU5EX0VSUk9SID0gJ0RFVklDRV9OT1RfRk9VTkRfRVJST1InLFxuICBDQU1FUkFfREVOSUVEX0VSUk9SID0gJ0NBTUVSQV9ERU5JRURfRVJST1InLCAvLyBvciBkaXNtaXNzZWRcbiAgQ0FNRVJBX0lOX1VTRV9FUlJPUiA9ICdDQU1FUkFfSU5fVVNFX0VSUk9SJyxcbiAgQ0FNRVJBX0NMT1NFRF9FUlJPUiA9ICdDQU1FUkFfQ0xPU0VEX0VSUk9SJyxcbiAgQ0FNRVJBX1VOU1VQUE9SVEVEID0gJ0NBTUVSQV9VTlNVUFBPUlRFRCcsXG4gIENBTUVSQV9PUklFTlRBVElPTl9QT1JUUkFJVCA9ICdDQU1FUkFfT1JJRU5UQVRJT05fUE9SVFJBSVQnLFxuICBDQU1FUkFfT1JJRU5UQVRJT05fTEFORFNDQVBFID0gJ0NBTUVSQV9PUklFTlRBVElPTl9MQU5EU0NBUEUnLFxufVxuXG5leHBvcnQgY29uc3QgY2FtZXJhU3RhdHVzU3RvcmUgPSB3cml0YWJsZTxDYW1lcmFTdGF0dXNFbnVtPihDYW1lcmFTdGF0dXNFbnVtLk9LKTtcbiIsIjxzdmVsdGU6b3B0aW9ucyB0YWc9XCJjYW1lcmEtc3RhdHVzXCIgLz5cblxuPHNjcmlwdCBsYW5nPVwidHNcIj5cbiAgZXhwb3J0IGxldCBoYW5kbGVyOiBGdW5jdGlvbiA9ICgpID0+IHt9O1xuICBpbXBvcnQgeyBDYW1lcmFTdGF0dXNFbnVtLCBjYW1lcmFTdGF0dXNTdG9yZSB9IGZyb20gJy4vY2FtZXJhU3RhdHVzU3RvcmUnO1xuICBpbXBvcnQgeyBsb2NrU2NyZWVuIH0gZnJvbSAnLi4vLi4vdXRpbC91dGlsJztcbjwvc2NyaXB0PlxuXG48ZGl2XG4gIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtNCBqdXN0aWZ5LWNlbnRlciBhYnNvbHV0ZSAtdHJhbnNsYXRlLXktMS8yIC10cmFuc2xhdGUteC0xLzIgdG9wLTEvMiBsZWZ0LTEvMiBvdmVyZmxvdy12aXNpYmxlIHRleHQtbm93cmFwXCJcbj5cbiAgeyNpZiAkY2FtZXJhU3RhdHVzU3RvcmUgPT09IENhbWVyYVN0YXR1c0VudW0uQ0FNRVJBX0RFTklFRF9FUlJPUn1cbiAgICA8IS0tIGljb25pZnkgcGg6dmlkZW8tY2FtZXJhLXNsYXNoLWJvbGQgLS0+XG4gICAgPHN2Z1xuICAgICAgY2xhc3M9XCJ0ZXh0LVs4ZW1dIG14LWF1dG9cIlxuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICB3aWR0aD1cIjFlbVwiXG4gICAgICBoZWlnaHQ9XCIxZW1cIlxuICAgICAgdmlld0JveD1cIjAgMCAyNTYgMjU2XCJcbiAgICAgIHsuLi4kJHByb3BzfVxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICBkPVwiTTI0OS40NSA2OS4zMWExMiAxMiAwIDAgMC0xMi41MSAxTDIxMiA4OC40M1Y3MmEyMCAyMCAwIDAgMC0yMC0yMGgtNjguMTJhMTIgMTIgMCAwIDAgMCAyNEgxODh2NjhhMTIgMTIgMCAwIDAgNC40NiA5LjMzYy4xNS4xMy4zMS4yNS40OC4zOGw0NCAzMkExMiAxMiAwIDAgMCAyNTYgMTc2VjgwYTEyIDEyIDAgMCAwLTYuNTUtMTAuNjlNMjMyIDE1Mi40M2wtMjAtMTQuNTR2LTE5Ljc4bDIwLTE0LjU0Wk01Ni44OCAzMS45M2ExMiAxMiAwIDEgMC0xNy43NiAxNi4xNEw0Mi42OSA1MkgzMmEyMCAyMCAwIDAgMC0yMCAyMHYxMTJhMjAgMjAgMCAwIDAgMjAgMjBoMTQ4Ljg3bDE4LjI1IDIwLjA3YTEyIDEyIDAgMCAwIDE3Ljc2LTE2LjE0Wk0zNiAxODBWNzZoMjguNTFsOTQuNTUgMTA0WlwiXG4gICAgICAvPlxuICAgIDwvc3ZnPlxuICAgIDxzcGFuIGNsYXNzPVwidGV4dC14bCBmb250LWJvbGQgdGV4dC1jZW50ZXJcIj5Qb3IgZmF2b3IsIGNvbmNlZGEgcGVybWlzc8OjbyBkZSBhY2Vzc28gw6AgY8OibWVyYS48L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJtLWF1dG8gdGV4dC1iYXNlIGJsb2NrIHRleHQtY2VudGVyXCI+QXDDs3MgY29uY2VkZXIgYSBwZXJtaXNzw6NvLCBjbGlxdWUgbm8gYm90w6NvIFJlaW5pY2lhci48L3NwYW4+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJ6LTIwIGNlLWR1aS1idG4gY2UtZHVpLWJ0bi1vdXRsaW5lIGNlLWR1aS1idG4tcHJpbWFyeSBtLWF1dG9cIlxuICAgICAgb246Y2xpY2s9eygpID0+IHtcbiAgICAgICAgaGFuZGxlcigpO1xuICAgICAgICBjb25zb2xlLmxvZygnY2FuaWNuYScsIGhhbmRsZXIpO1xuICAgICAgICAvLyBjYXB0dXJpbmcgPSB0cnVlO1xuICAgICAgICAvLyBjYW1lcmFEZW5pZWQgPSBmYWxzZTtcbiAgICAgICAgLy8gb3BlbkNhbWVyYSgpO1xuICAgICAgfX0+UmVpbmljaWFyPC9idXR0b25cbiAgICA+XG4gIHs6ZWxzZSBpZiAkY2FtZXJhU3RhdHVzU3RvcmUgPT09IENhbWVyYVN0YXR1c0VudW0uREVWSUNFX05PVF9GT1VORF9FUlJPUn1cbiAgICA8IS0tIGljb25pZnkgcGg6dmlkZW8tY2FtZXJhLXNsYXNoLWJvbGQgLS0+XG4gICAgPHN2Z1xuICAgICAgY2xhc3M9XCJ0ZXh0LVs4ZW1dIG14LWF1dG9cIlxuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICB3aWR0aD1cIjFlbVwiXG4gICAgICBoZWlnaHQ9XCIxZW1cIlxuICAgICAgdmlld0JveD1cIjAgMCAyNTYgMjU2XCJcbiAgICAgIHsuLi4kJHByb3BzfVxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICBkPVwibTEzNyAxNjhsMTEuNTItMTEuNTFhMTIgMTIgMCAwIDAtMTctMTdMMTIwIDE1MWwtMTUtMTVsMTEuNTItMTEuNTFhMTIgMTIgMCAwIDAtMTctMTdMODggMTE5bC0xNS41MS0xNS40OWExMiAxMiAwIDAgMC0xNyAxN0w1OSAxMjRsLTIwLjQ2IDIwLjQ5YTM2IDM2IDAgMCAwIDAgNTAuOTFsMi41NSAyLjU0bC0yNS41OCAyNS41N2ExMiAxMiAwIDAgMCAxNyAxN2wyNS41Ny0yNS41OGwyLjU0IDIuNTVhMzYuMDYgMzYuMDYgMCAwIDAgNTAuOTEgMEwxMzIgMTk3bDMuNTEgMy41MmExMiAxMiAwIDAgMCAxNy0xN1ptLTQyLjQ2IDMyLjQ5YTEyIDEyIDAgMCAxLTE3IDBsLTIyLjAzLTIyLjA2YTEyIDEyIDAgMCAxIDAtMTdMNzYgMTQxbDM5IDM5Wm0xNDYtMTg1YTEyIDEyIDAgMCAwLTE3IDBsLTI1LjYgMjUuNmwtMi41NC0yLjU1YTM2LjA1IDM2LjA1IDAgMCAwLTUwLjkxIDBMMTI0IDU5bC0zLjUxLTMuNTJhMTIgMTIgMCAwIDAtMTcgMTdsODAgODBhMTIgMTIgMCAwIDAgMTctMTdMMTk3IDEzMmwyMC40OS0yMC40OWEzNiAzNiAwIDAgMCAwLTUwLjkxbC0yLjU1LTIuNTRsMjUuNTgtMjUuNTdhMTIgMTIgMCAwIDAtLjAzLTE2Ljk4Wm0tNDAgNzlMMTgwIDExNWwtMzktMzlsMjAuNDktMjAuNDlhMTIgMTIgMCAwIDEgMTcgMGwyMi4wNiAyMi4wNmExMiAxMiAwIDAgMSAwIDE3WlwiXG4gICAgICAvPlxuICAgIDwvc3ZnPlxuICAgIDxzcGFuIGNsYXNzPVwidGV4dC14bCBmb250LWJvbGQgdGV4dC1jZW50ZXJcIj5BIGPDom1lcmEgbsOjbyBmb2kgZGV0ZWN0YWRhLjwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cIm0tYXV0byB0ZXh0LWJhc2UgYmxvY2sgdGV4dC1jZW50ZXJcIlxuICAgICAgPlBvciBmYXZvciwgY29uZWN0ZSBhIHN1YSBjw6JtZXJhLCBlc3BlcmUgYWxndW5zIGluc3RhbnRlcyBlIGNsaXF1ZSBubyBib3TDo28gUmVpbmljaWFyLjwvc3BhblxuICAgID5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cInotMjAgY2UtZHVpLWJ0biBjZS1kdWktYnRuLW91dGxpbmUgY2UtZHVpLWJ0bi1wcmltYXJ5IG0tYXV0b1wiXG4gICAgICBvbjpjbGljaz17KCkgPT4ge1xuICAgICAgICBoYW5kbGVyKCk7XG4gICAgICAgIGNvbnNvbGUubG9nKCdjYW5pY25hJywgaGFuZGxlcik7XG4gICAgICAgIC8vIGNhcHR1cmluZyA9IHRydWU7XG4gICAgICAgIC8vIGRldmljZU5vdEZvdW5kID0gZmFsc2U7XG4gICAgICAgIC8vIG9wZW5DYW1lcmEoKTtcbiAgICAgIH19PlJlaW5pY2lhcjwvYnV0dG9uXG4gICAgPlxuICB7OmVsc2UgaWYgJGNhbWVyYVN0YXR1c1N0b3JlID09PSBDYW1lcmFTdGF0dXNFbnVtLkNBTUVSQV9JTl9VU0VfRVJST1J9XG4gICAgPCEtLSBpY29uaWZ5IHBoOndhcm5pbmcgLS0+XG4gICAgPHN2Z1xuICAgICAgY2xhc3M9XCJ0ZXh0LVs4ZW1dIG14LWF1dG9cIlxuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICB3aWR0aD1cIjFlbVwiXG4gICAgICBoZWlnaHQ9XCIxZW1cIlxuICAgICAgdmlld0JveD1cIjAgMCAyNTYgMjU2XCJcbiAgICAgIHsuLi4kJHByb3BzfVxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICBkPVwiTTU2Ljg4IDMxLjkzYTEyIDEyIDAgMSAwLTE3Ljc2IDE2LjE0bDQgNC4zN0EyOCAyOCAwIDAgMCAyMCA4MHYxMTJhMjggMjggMCAwIDAgMjggMjhoMTQ3LjQybDMuNyA0LjA3YTEyIDEyIDAgMCAwIDE3Ljc2LTE2LjE0Wm00OS4zNSA5MEwxMzYgMTU0LjY0YTI0IDI0IDAgMCAxLTI5Ljc3LTMyLjc1Wk00OCAxOTZhNCA0IDAgMCAxLTQtNFY4MGE0IDQgMCAwIDEgNC00aDE2LjUxbDI0LjkyIDI3LjQxYTQ4IDQ4IDAgMCAwIDYzLjM0IDY5LjY3TDE3My42IDE5NlpNMjM2IDgwdjk0LjE0YTEyIDEyIDAgMCAxLTI0IDBWODBhNCA0IDAgMCAwLTQtNGgtMzJhMTIgMTIgMCAwIDEtMTAtNS4zNEwxNTMuNTcgNTJoLTUxLjUxYTEyIDEyIDAgMCAxIDAtMjRIMTYwYTEyIDEyIDAgMCAxIDEwIDUuMzRMMTgyLjQyIDUySDIwOGEyOCAyOCAwIDAgMSAyOCAyOFwiXG4gICAgICAvPlxuICAgIDwvc3ZnPlxuICAgIDxzcGFuIGNsYXNzPVwidGV4dC14bCBmb250LWJvbGQgdGV4dC1jZW50ZXJcIj5BIGPDom1lcmEgZXN0w6EgZW0gdXNvLjwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cIm0tYXV0byB0ZXh0LWJhc2UgYmxvY2sgdGV4dC1jZW50ZXJcIlxuICAgICAgPkNlcnRpZmlxdWUtc2UgZGUgcXVlIGEgY8OibWVyYSBuw6NvIGVzdMOhIHNlbmRvIHV0aWxpemFkYSBwb3IgbmVuaHVtYSBvdXRyYSBhcGxpY2HDp8OjbyBlIGNsaXF1ZSBubyBib3TDo28gYWJhaXhvLjwvc3BhblxuICAgID5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cInotMjAgY2UtZHVpLWJ0biBjZS1kdWktYnRuLW91dGxpbmUgY2UtZHVpLWJ0bi1wcmltYXJ5IG0tYXV0b1wiXG4gICAgICBvbjpjbGljaz17KCkgPT4ge1xuICAgICAgICBoYW5kbGVyKCk7XG4gICAgICAgIGNvbnNvbGUubG9nKCdjYW5pY25hJywgaGFuZGxlcik7XG4gICAgICAgIC8vIGNhcHR1cmluZyA9IHRydWU7XG4gICAgICAgIC8vIG9wZW5DYW1lcmEoKTtcbiAgICAgIH19PlJlaW5pY2lhcjwvYnV0dG9uXG4gICAgPlxuICB7OmVsc2UgaWYgJGNhbWVyYVN0YXR1c1N0b3JlID09PSBDYW1lcmFTdGF0dXNFbnVtLkNBTUVSQV9DTE9TRURfRVJST1J9XG4gICAgPCEtLSBpY29uaWZ5IHBoOndhcm5pbmcgLS0+XG4gICAgPHN2Z1xuICAgICAgY2xhc3M9XCJ0ZXh0LVs4ZW1dIG14LWF1dG9cIlxuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICB3aWR0aD1cIjFlbVwiXG4gICAgICBoZWlnaHQ9XCIxZW1cIlxuICAgICAgdmlld0JveD1cIjAgMCAyNTYgMjU2XCJcbiAgICAgIHsuLi4kJHByb3BzfVxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICBkPVwiTTIzNi44IDE4OC4wOUwxNDkuMzUgMzYuMjJhMjQuNzYgMjQuNzYgMCAwIDAtNDIuNyAwTDE5LjIgMTg4LjA5YTIzLjUxIDIzLjUxIDAgMCAwIDAgMjMuNzJBMjQuMzUgMjQuMzUgMCAwIDAgNDAuNTUgMjI0aDE3NC45YTI0LjM1IDI0LjM1IDAgMCAwIDIxLjMzLTEyLjE5YTIzLjUxIDIzLjUxIDAgMCAwIC4wMi0yMy43Mm0tMTMuODcgMTUuNzFhOC41IDguNSAwIDAgMS03LjQ4IDQuMkg0MC41NWE4LjUgOC41IDAgMCAxLTcuNDgtNC4yYTcuNTkgNy41OSAwIDAgMSAwLTcuNzJsODcuNDUtMTUxLjg3YTguNzUgOC43NSAwIDAgMSAxNSAwbDg3LjQ1IDE1MS44N2E3LjU5IDcuNTkgMCAwIDEtLjA0IDcuNzJNMTIwIDE0NHYtNDBhOCA4IDAgMCAxIDE2IDB2NDBhOCA4IDAgMCAxLTE2IDBtMjAgMzZhMTIgMTIgMCAxIDEtMTItMTJhMTIgMTIgMCAwIDEgMTIgMTJcIlxuICAgICAgLz5cbiAgICA8L3N2Zz5cbiAgICA8c3BhbiBjbGFzcz1cInRleHQteGwgZm9udC1ib2xkIHRleHQtY2VudGVyXCI+UG9yIGZhdm9yLCBwZXJtYW5lw6dhIG5hIG1lc21hIGFiYSBkdXJhbnRlIGEgY29sZXRhIGJpb23DqXRyaWNhLjwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cIm0tYXV0byB0ZXh0LWJhc2UgYmxvY2sgdGV4dC1jZW50ZXJcIj5DbGlxdWUgbm8gYm90w6NvIFJlaW5pY2lhciBwYXJhIGNhcHR1cmFyIG5vdmFtZW50ZS48L3NwYW4+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJ6LTIwIGNlLWR1aS1idG4gY2UtZHVpLWJ0bi1vdXRsaW5lIGNlLWR1aS1idG4tcHJpbWFyeSBtLWF1dG9cIlxuICAgICAgb246Y2xpY2s9eygpID0+IHtcbiAgICAgICAgaGFuZGxlcigpO1xuICAgICAgfX0+UmVpbmljaWFyPC9idXR0b25cbiAgICA+XG4gIHs6ZWxzZSBpZiAkY2FtZXJhU3RhdHVzU3RvcmUgPT09IENhbWVyYVN0YXR1c0VudW0uQ0FNRVJBX1VOU1VQUE9SVEVEfVxuICAgIDwhLS0gaWNvbmlmeSBwaDp2aWRlby1jYW1lcmEtc2xhc2gtYm9sZCAtLT5cbiAgICA8c3ZnXG4gICAgICBjbGFzcz1cInRleHQtWzhlbV0gbXgtYXV0b1wiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgIHdpZHRoPVwiMWVtXCJcbiAgICAgIGhlaWdodD1cIjFlbVwiXG4gICAgICB2aWV3Qm94PVwiMCAwIDI1NiAyNTZcIlxuICAgICAgey4uLiQkcHJvcHN9XG4gICAgPlxuICAgICAgPHBhdGhcbiAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgIGQ9XCJNMjQ5LjQ1IDY5LjMxYTEyIDEyIDAgMCAwLTEyLjUxIDFMMjEyIDg4LjQzVjcyYTIwIDIwIDAgMCAwLTIwLTIwaC02OC4xMmExMiAxMiAwIDAgMCAwIDI0SDE4OHY2OGExMiAxMiAwIDAgMCA0LjQ2IDkuMzNjLjE1LjEzLjMxLjI1LjQ4LjM4bDQ0IDMyQTEyIDEyIDAgMCAwIDI1NiAxNzZWODBhMTIgMTIgMCAwIDAtNi41NS0xMC42OU0yMzIgMTUyLjQzbC0yMC0xNC41NHYtMTkuNzhsMjAtMTQuNTRaTTU2Ljg4IDMxLjkzYTEyIDEyIDAgMSAwLTE3Ljc2IDE2LjE0TDQyLjY5IDUySDMyYTIwIDIwIDAgMCAwLTIwIDIwdjExMmEyMCAyMCAwIDAgMCAyMCAyMGgxNDguODdsMTguMjUgMjAuMDdhMTIgMTIgMCAwIDAgMTcuNzYtMTYuMTRaTTM2IDE4MFY3NmgyOC41MWw5NC41NSAxMDRaXCJcbiAgICAgIC8+XG4gICAgPC9zdmc+XG4gICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXhsIGZvbnQtYm9sZCB0ZXh0LWNlbnRlclwiPkEgY8OibWVyYSBuw6NvIGF0ZW5kZSBvcyByZXF1aXNpdG9zIG5lY2Vzc8Ohcmlvcy48L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJtLWF1dG8gdGV4dC1iYXNlIGJsb2NrIHRleHQtY2VudGVyXCI+UG9yIGZhdm9yLCBjb25lY3RlIG91dHJhIGPDom1lcmEgZSB0ZW50ZSBub3ZhbWVudGUuPC9zcGFuPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiei0yMCBjZS1kdWktYnRuIGNlLWR1aS1idG4tb3V0bGluZSBjZS1kdWktYnRuLXByaW1hcnkgbS1hdXRvXCJcbiAgICAgIG9uOmNsaWNrPXsoKSA9PiB7XG4gICAgICAgIGhhbmRsZXIoKTtcbiAgICAgIH19PlJlaW5pY2lhcjwvYnV0dG9uXG4gICAgPlxuICB7OmVsc2UgaWYgJGNhbWVyYVN0YXR1c1N0b3JlID09PSBDYW1lcmFTdGF0dXNFbnVtLkNBTUVSQV9PUklFTlRBVElPTl9QT1JUUkFJVH1cbiAgICA8IS0tIGljb25pZnkgcGg6dmlkZW8tY2FtZXJhLXNsYXNoLWJvbGQgLS0+XG4gICAgPHN2Z1xuICAgICAgY2xhc3M9XCJ0ZXh0LVs4ZW1dIG14LWF1dG9cIlxuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICB3aWR0aD1cIjFlbVwiXG4gICAgICBoZWlnaHQ9XCIxZW1cIlxuICAgICAgdmlld0JveD1cIjAgMCAyNTYgMjU2XCJcbiAgICAgIHsuLi4kJHByb3BzfVxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICBkPVwiTTIwOCA1NmgtMjcuNzJsLTEzLjYzLTIwLjQ0QTggOCAwIDAgMCAxNjAgMzJIOTZhOCA4IDAgMCAwLTYuNjUgMy41Nkw3NS43MSA1Nkg0OGEyNCAyNCAwIDAgMC0yNCAyNHYxMTJhMjQgMjQgMCAwIDAgMjQgMjRoMTYwYTI0IDI0IDAgMCAwIDI0LTI0VjgwYTI0IDI0IDAgMCAwLTI0LTI0bS01MS4xOSAxMTAuNEE0OC4yMSA0OC4yMSAwIDAgMSA5NiAxNjMuNzdWMTY4YTggOCAwIDAgMS0xNiAwdi0yNGE4IDggMCAwIDEgOC04aDI0YTggOCAwIDAgMSAwIDE2aC01LjE1YTMyLjEyIDMyLjEyIDAgMCAwIDQwLjM0IDEuNjFhOCA4IDAgMCAxIDkuNjIgMTIuNzlNMTc2IDEyMGE4IDggMCAwIDEtOCA4aC0yNGE4IDggMCAwIDEgMC0xNmg1LjE1YTMyLjEyIDMyLjEyIDAgMCAwLTQwLjM0LTEuNjFhOCA4IDAgMCAxLTkuNjItMTIuNzlhNDguMjEgNDguMjEgMCAwIDEgNjAuODEgMi42M1Y5NmE4IDggMCAwIDEgMTYgMFpcIlxuICAgICAgLz5cbiAgICA8L3N2Zz5cbiAgICA8c3BhbiBjbGFzcz1cInRleHQteGwgZm9udC1ib2xkIHRleHQtY2VudGVyXCI+TyBkaXNwb3NpdGl2byBwcmVjaXNhIGVzdGFyIG5hIHBvc2nDp8OjbyByZXRyYXRvLjwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cIm0tYXV0byB0ZXh0LWJhc2UgYmxvY2sgdGV4dC1jZW50ZXJcIj5Qb3IgZmF2b3IsIHZpcmUgbyBkaXNwb3NpdGl2byBvdSBwcmVzc2lvbmUgbyBib3TDo28gYWJhaXhvLjwvc3Bhbj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cInotMjAgY2UtZHVpLWJ0biBjZS1kdWktYnRuLW91dGxpbmUgY2UtZHVpLWJ0bi1wcmltYXJ5IG0tYXV0b1wiXG4gICAgICBvbjpjbGljaz17KCkgPT4ge1xuICAgICAgICBsb2NrU2NyZWVuKHRydWUpO1xuICAgICAgfX0+QWp1c3RhciBPcmllbnRhw6fDo288L2J1dHRvblxuICAgID5cbiAgezplbHNlIGlmICRjYW1lcmFTdGF0dXNTdG9yZSA9PT0gQ2FtZXJhU3RhdHVzRW51bS5DQU1FUkFfT1JJRU5UQVRJT05fTEFORFNDQVBFfVxuICAgIDwhLS0gaWNvbmlmeSBwaDp2aWRlby1jYW1lcmEtc2xhc2gtYm9sZCAtLT5cbiAgICA8c3ZnXG4gICAgICBjbGFzcz1cInRleHQtWzhlbV0gbXgtYXV0b1wiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgIHdpZHRoPVwiMWVtXCJcbiAgICAgIGhlaWdodD1cIjFlbVwiXG4gICAgICB2aWV3Qm94PVwiMCAwIDI1NiAyNTZcIlxuICAgICAgey4uLiQkcHJvcHN9XG4gICAgPlxuICAgICAgPHBhdGhcbiAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgIGQ9XCJNMjA4IDU2aC0yNy43MmwtMTMuNjMtMjAuNDRBOCA4IDAgMCAwIDE2MCAzMkg5NmE4IDggMCAwIDAtNi42NSAzLjU2TDc1LjcxIDU2SDQ4YTI0IDI0IDAgMCAwLTI0IDI0djExMmEyNCAyNCAwIDAgMCAyNCAyNGgxNjBhMjQgMjQgMCAwIDAgMjQtMjRWODBhMjQgMjQgMCAwIDAtMjQtMjRtLTUxLjE5IDExMC40QTQ4LjIxIDQ4LjIxIDAgMCAxIDk2IDE2My43N1YxNjhhOCA4IDAgMCAxLTE2IDB2LTI0YTggOCAwIDAgMSA4LThoMjRhOCA4IDAgMCAxIDAgMTZoLTUuMTVhMzIuMTIgMzIuMTIgMCAwIDAgNDAuMzQgMS42MWE4IDggMCAwIDEgOS42MiAxMi43OU0xNzYgMTIwYTggOCAwIDAgMS04IDhoLTI0YTggOCAwIDAgMSAwLTE2aDUuMTVhMzIuMTIgMzIuMTIgMCAwIDAtNDAuMzQtMS42MWE4IDggMCAwIDEtOS42Mi0xMi43OWE0OC4yMSA0OC4yMSAwIDAgMSA2MC44MSAyLjYzVjk2YTggOCAwIDAgMSAxNiAwWlwiXG4gICAgICAvPlxuICAgIDwvc3ZnPlxuICAgIDxzcGFuIGNsYXNzPVwidGV4dC14bCBmb250LWJvbGQgdGV4dC1jZW50ZXJcIj5PIGRpc3Bvc2l0aXZvIHByZWNpc2EgZXN0YXIgbmEgcG9zacOnw6NvIHBhaXNhZ2VtLjwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cIm0tYXV0byB0ZXh0LWJhc2UgYmxvY2sgdGV4dC1jZW50ZXJcIj5Qb3IgZmF2b3IsIHZpcmUgbyBkaXNwb3NpdGl2byBvdSBwcmVzc2lvbmUgbyBib3TDo28gYWJhaXhvLjwvc3Bhbj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cInotMjAgY2UtZHVpLWJ0biBjZS1kdWktYnRuLW91dGxpbmUgY2UtZHVpLWJ0bi1wcmltYXJ5IG0tYXV0b1wiXG4gICAgICBvbjpjbGljaz17KCkgPT4ge1xuICAgICAgICBsb2NrU2NyZWVuKGZhbHNlKTtcbiAgICAgIH19PkFqdXN0YXIgT3JpZW50YcOnw6NvPC9idXR0b25cbiAgICA+XG4gIHsvaWZ9XG48L2Rpdj5cbiIsImltcG9ydCB7IGN1YmljSW5PdXQsIGxpbmVhciwgY3ViaWNPdXQgfSBmcm9tICcuLi9lYXNpbmcvaW5kZXgubWpzJztcbmltcG9ydCB7IHNwbGl0X2Nzc191bml0LCBpc19mdW5jdGlvbiwgYXNzaWduIH0gZnJvbSAnLi4vaW50ZXJuYWwvaW5kZXgubWpzJztcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5Db3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcblBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG5wdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG5USEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcblJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG5BTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbklORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG5MT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG5PVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcblBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcblxyXG5mdW5jdGlvbiBfX3Jlc3QocywgZSkge1xyXG4gICAgdmFyIHQgPSB7fTtcclxuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxyXG4gICAgICAgIHRbcF0gPSBzW3BdO1xyXG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxyXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XHJcbiAgICAgICAgfVxyXG4gICAgcmV0dXJuIHQ7XHJcbn1cblxuZnVuY3Rpb24gYmx1cihub2RlLCB7IGRlbGF5ID0gMCwgZHVyYXRpb24gPSA0MDAsIGVhc2luZyA9IGN1YmljSW5PdXQsIGFtb3VudCA9IDUsIG9wYWNpdHkgPSAwIH0gPSB7fSkge1xuICAgIGNvbnN0IHN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShub2RlKTtcbiAgICBjb25zdCB0YXJnZXRfb3BhY2l0eSA9ICtzdHlsZS5vcGFjaXR5O1xuICAgIGNvbnN0IGYgPSBzdHlsZS5maWx0ZXIgPT09ICdub25lJyA/ICcnIDogc3R5bGUuZmlsdGVyO1xuICAgIGNvbnN0IG9kID0gdGFyZ2V0X29wYWNpdHkgKiAoMSAtIG9wYWNpdHkpO1xuICAgIGNvbnN0IFt2YWx1ZSwgdW5pdF0gPSBzcGxpdF9jc3NfdW5pdChhbW91bnQpO1xuICAgIHJldHVybiB7XG4gICAgICAgIGRlbGF5LFxuICAgICAgICBkdXJhdGlvbixcbiAgICAgICAgZWFzaW5nLFxuICAgICAgICBjc3M6IChfdCwgdSkgPT4gYG9wYWNpdHk6ICR7dGFyZ2V0X29wYWNpdHkgLSAob2QgKiB1KX07IGZpbHRlcjogJHtmfSBibHVyKCR7dSAqIHZhbHVlfSR7dW5pdH0pO2BcbiAgICB9O1xufVxuZnVuY3Rpb24gZmFkZShub2RlLCB7IGRlbGF5ID0gMCwgZHVyYXRpb24gPSA0MDAsIGVhc2luZyA9IGxpbmVhciB9ID0ge30pIHtcbiAgICBjb25zdCBvID0gK2dldENvbXB1dGVkU3R5bGUobm9kZSkub3BhY2l0eTtcbiAgICByZXR1cm4ge1xuICAgICAgICBkZWxheSxcbiAgICAgICAgZHVyYXRpb24sXG4gICAgICAgIGVhc2luZyxcbiAgICAgICAgY3NzOiB0ID0+IGBvcGFjaXR5OiAke3QgKiBvfWBcbiAgICB9O1xufVxuZnVuY3Rpb24gZmx5KG5vZGUsIHsgZGVsYXkgPSAwLCBkdXJhdGlvbiA9IDQwMCwgZWFzaW5nID0gY3ViaWNPdXQsIHggPSAwLCB5ID0gMCwgb3BhY2l0eSA9IDAgfSA9IHt9KSB7XG4gICAgY29uc3Qgc3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKG5vZGUpO1xuICAgIGNvbnN0IHRhcmdldF9vcGFjaXR5ID0gK3N0eWxlLm9wYWNpdHk7XG4gICAgY29uc3QgdHJhbnNmb3JtID0gc3R5bGUudHJhbnNmb3JtID09PSAnbm9uZScgPyAnJyA6IHN0eWxlLnRyYW5zZm9ybTtcbiAgICBjb25zdCBvZCA9IHRhcmdldF9vcGFjaXR5ICogKDEgLSBvcGFjaXR5KTtcbiAgICBjb25zdCBbeFZhbHVlLCB4VW5pdF0gPSBzcGxpdF9jc3NfdW5pdCh4KTtcbiAgICBjb25zdCBbeVZhbHVlLCB5VW5pdF0gPSBzcGxpdF9jc3NfdW5pdCh5KTtcbiAgICByZXR1cm4ge1xuICAgICAgICBkZWxheSxcbiAgICAgICAgZHVyYXRpb24sXG4gICAgICAgIGVhc2luZyxcbiAgICAgICAgY3NzOiAodCwgdSkgPT4gYFxuXHRcdFx0dHJhbnNmb3JtOiAke3RyYW5zZm9ybX0gdHJhbnNsYXRlKCR7KDEgLSB0KSAqIHhWYWx1ZX0ke3hVbml0fSwgJHsoMSAtIHQpICogeVZhbHVlfSR7eVVuaXR9KTtcblx0XHRcdG9wYWNpdHk6ICR7dGFyZ2V0X29wYWNpdHkgLSAob2QgKiB1KX1gXG4gICAgfTtcbn1cbmZ1bmN0aW9uIHNsaWRlKG5vZGUsIHsgZGVsYXkgPSAwLCBkdXJhdGlvbiA9IDQwMCwgZWFzaW5nID0gY3ViaWNPdXQsIGF4aXMgPSAneScgfSA9IHt9KSB7XG4gICAgY29uc3Qgc3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKG5vZGUpO1xuICAgIGNvbnN0IG9wYWNpdHkgPSArc3R5bGUub3BhY2l0eTtcbiAgICBjb25zdCBwcmltYXJ5X3Byb3BlcnR5ID0gYXhpcyA9PT0gJ3knID8gJ2hlaWdodCcgOiAnd2lkdGgnO1xuICAgIGNvbnN0IHByaW1hcnlfcHJvcGVydHlfdmFsdWUgPSBwYXJzZUZsb2F0KHN0eWxlW3ByaW1hcnlfcHJvcGVydHldKTtcbiAgICBjb25zdCBzZWNvbmRhcnlfcHJvcGVydGllcyA9IGF4aXMgPT09ICd5JyA/IFsndG9wJywgJ2JvdHRvbSddIDogWydsZWZ0JywgJ3JpZ2h0J107XG4gICAgY29uc3QgY2FwaXRhbGl6ZWRfc2Vjb25kYXJ5X3Byb3BlcnRpZXMgPSBzZWNvbmRhcnlfcHJvcGVydGllcy5tYXAoKGUpID0+IGAke2VbMF0udG9VcHBlckNhc2UoKX0ke2Uuc2xpY2UoMSl9YCk7XG4gICAgY29uc3QgcGFkZGluZ19zdGFydF92YWx1ZSA9IHBhcnNlRmxvYXQoc3R5bGVbYHBhZGRpbmcke2NhcGl0YWxpemVkX3NlY29uZGFyeV9wcm9wZXJ0aWVzWzBdfWBdKTtcbiAgICBjb25zdCBwYWRkaW5nX2VuZF92YWx1ZSA9IHBhcnNlRmxvYXQoc3R5bGVbYHBhZGRpbmcke2NhcGl0YWxpemVkX3NlY29uZGFyeV9wcm9wZXJ0aWVzWzFdfWBdKTtcbiAgICBjb25zdCBtYXJnaW5fc3RhcnRfdmFsdWUgPSBwYXJzZUZsb2F0KHN0eWxlW2BtYXJnaW4ke2NhcGl0YWxpemVkX3NlY29uZGFyeV9wcm9wZXJ0aWVzWzBdfWBdKTtcbiAgICBjb25zdCBtYXJnaW5fZW5kX3ZhbHVlID0gcGFyc2VGbG9hdChzdHlsZVtgbWFyZ2luJHtjYXBpdGFsaXplZF9zZWNvbmRhcnlfcHJvcGVydGllc1sxXX1gXSk7XG4gICAgY29uc3QgYm9yZGVyX3dpZHRoX3N0YXJ0X3ZhbHVlID0gcGFyc2VGbG9hdChzdHlsZVtgYm9yZGVyJHtjYXBpdGFsaXplZF9zZWNvbmRhcnlfcHJvcGVydGllc1swXX1XaWR0aGBdKTtcbiAgICBjb25zdCBib3JkZXJfd2lkdGhfZW5kX3ZhbHVlID0gcGFyc2VGbG9hdChzdHlsZVtgYm9yZGVyJHtjYXBpdGFsaXplZF9zZWNvbmRhcnlfcHJvcGVydGllc1sxXX1XaWR0aGBdKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBkZWxheSxcbiAgICAgICAgZHVyYXRpb24sXG4gICAgICAgIGVhc2luZyxcbiAgICAgICAgY3NzOiB0ID0+ICdvdmVyZmxvdzogaGlkZGVuOycgK1xuICAgICAgICAgICAgYG9wYWNpdHk6ICR7TWF0aC5taW4odCAqIDIwLCAxKSAqIG9wYWNpdHl9O2AgK1xuICAgICAgICAgICAgYCR7cHJpbWFyeV9wcm9wZXJ0eX06ICR7dCAqIHByaW1hcnlfcHJvcGVydHlfdmFsdWV9cHg7YCArXG4gICAgICAgICAgICBgcGFkZGluZy0ke3NlY29uZGFyeV9wcm9wZXJ0aWVzWzBdfTogJHt0ICogcGFkZGluZ19zdGFydF92YWx1ZX1weDtgICtcbiAgICAgICAgICAgIGBwYWRkaW5nLSR7c2Vjb25kYXJ5X3Byb3BlcnRpZXNbMV19OiAke3QgKiBwYWRkaW5nX2VuZF92YWx1ZX1weDtgICtcbiAgICAgICAgICAgIGBtYXJnaW4tJHtzZWNvbmRhcnlfcHJvcGVydGllc1swXX06ICR7dCAqIG1hcmdpbl9zdGFydF92YWx1ZX1weDtgICtcbiAgICAgICAgICAgIGBtYXJnaW4tJHtzZWNvbmRhcnlfcHJvcGVydGllc1sxXX06ICR7dCAqIG1hcmdpbl9lbmRfdmFsdWV9cHg7YCArXG4gICAgICAgICAgICBgYm9yZGVyLSR7c2Vjb25kYXJ5X3Byb3BlcnRpZXNbMF19LXdpZHRoOiAke3QgKiBib3JkZXJfd2lkdGhfc3RhcnRfdmFsdWV9cHg7YCArXG4gICAgICAgICAgICBgYm9yZGVyLSR7c2Vjb25kYXJ5X3Byb3BlcnRpZXNbMV19LXdpZHRoOiAke3QgKiBib3JkZXJfd2lkdGhfZW5kX3ZhbHVlfXB4O2BcbiAgICB9O1xufVxuZnVuY3Rpb24gc2NhbGUobm9kZSwgeyBkZWxheSA9IDAsIGR1cmF0aW9uID0gNDAwLCBlYXNpbmcgPSBjdWJpY091dCwgc3RhcnQgPSAwLCBvcGFjaXR5ID0gMCB9ID0ge30pIHtcbiAgICBjb25zdCBzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUobm9kZSk7XG4gICAgY29uc3QgdGFyZ2V0X29wYWNpdHkgPSArc3R5bGUub3BhY2l0eTtcbiAgICBjb25zdCB0cmFuc2Zvcm0gPSBzdHlsZS50cmFuc2Zvcm0gPT09ICdub25lJyA/ICcnIDogc3R5bGUudHJhbnNmb3JtO1xuICAgIGNvbnN0IHNkID0gMSAtIHN0YXJ0O1xuICAgIGNvbnN0IG9kID0gdGFyZ2V0X29wYWNpdHkgKiAoMSAtIG9wYWNpdHkpO1xuICAgIHJldHVybiB7XG4gICAgICAgIGRlbGF5LFxuICAgICAgICBkdXJhdGlvbixcbiAgICAgICAgZWFzaW5nLFxuICAgICAgICBjc3M6IChfdCwgdSkgPT4gYFxuXHRcdFx0dHJhbnNmb3JtOiAke3RyYW5zZm9ybX0gc2NhbGUoJHsxIC0gKHNkICogdSl9KTtcblx0XHRcdG9wYWNpdHk6ICR7dGFyZ2V0X29wYWNpdHkgLSAob2QgKiB1KX1cblx0XHRgXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGRyYXcobm9kZSwgeyBkZWxheSA9IDAsIHNwZWVkLCBkdXJhdGlvbiwgZWFzaW5nID0gY3ViaWNJbk91dCB9ID0ge30pIHtcbiAgICBsZXQgbGVuID0gbm9kZS5nZXRUb3RhbExlbmd0aCgpO1xuICAgIGNvbnN0IHN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShub2RlKTtcbiAgICBpZiAoc3R5bGUuc3Ryb2tlTGluZWNhcCAhPT0gJ2J1dHQnKSB7XG4gICAgICAgIGxlbiArPSBwYXJzZUludChzdHlsZS5zdHJva2VXaWR0aCk7XG4gICAgfVxuICAgIGlmIChkdXJhdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChzcGVlZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBkdXJhdGlvbiA9IDgwMDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGR1cmF0aW9uID0gbGVuIC8gc3BlZWQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZW9mIGR1cmF0aW9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGR1cmF0aW9uID0gZHVyYXRpb24obGVuKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgZGVsYXksXG4gICAgICAgIGR1cmF0aW9uLFxuICAgICAgICBlYXNpbmcsXG4gICAgICAgIGNzczogKF8sIHUpID0+IGBcblx0XHRcdHN0cm9rZS1kYXNoYXJyYXk6ICR7bGVufTtcblx0XHRcdHN0cm9rZS1kYXNob2Zmc2V0OiAke3UgKiBsZW59O1xuXHRcdGBcbiAgICB9O1xufVxuZnVuY3Rpb24gY3Jvc3NmYWRlKF9hKSB7XG4gICAgdmFyIHsgZmFsbGJhY2sgfSA9IF9hLCBkZWZhdWx0cyA9IF9fcmVzdChfYSwgW1wiZmFsbGJhY2tcIl0pO1xuICAgIGNvbnN0IHRvX3JlY2VpdmUgPSBuZXcgTWFwKCk7XG4gICAgY29uc3QgdG9fc2VuZCA9IG5ldyBNYXAoKTtcbiAgICBmdW5jdGlvbiBjcm9zc2ZhZGUoZnJvbV9ub2RlLCBub2RlLCBwYXJhbXMpIHtcbiAgICAgICAgY29uc3QgeyBkZWxheSA9IDAsIGR1cmF0aW9uID0gZCA9PiBNYXRoLnNxcnQoZCkgKiAzMCwgZWFzaW5nID0gY3ViaWNPdXQgfSA9IGFzc2lnbihhc3NpZ24oe30sIGRlZmF1bHRzKSwgcGFyYW1zKTtcbiAgICAgICAgY29uc3QgZnJvbSA9IGZyb21fbm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgdG8gPSBub2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCBkeCA9IGZyb20ubGVmdCAtIHRvLmxlZnQ7XG4gICAgICAgIGNvbnN0IGR5ID0gZnJvbS50b3AgLSB0by50b3A7XG4gICAgICAgIGNvbnN0IGR3ID0gZnJvbS53aWR0aCAvIHRvLndpZHRoO1xuICAgICAgICBjb25zdCBkaCA9IGZyb20uaGVpZ2h0IC8gdG8uaGVpZ2h0O1xuICAgICAgICBjb25zdCBkID0gTWF0aC5zcXJ0KGR4ICogZHggKyBkeSAqIGR5KTtcbiAgICAgICAgY29uc3Qgc3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKG5vZGUpO1xuICAgICAgICBjb25zdCB0cmFuc2Zvcm0gPSBzdHlsZS50cmFuc2Zvcm0gPT09ICdub25lJyA/ICcnIDogc3R5bGUudHJhbnNmb3JtO1xuICAgICAgICBjb25zdCBvcGFjaXR5ID0gK3N0eWxlLm9wYWNpdHk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkZWxheSxcbiAgICAgICAgICAgIGR1cmF0aW9uOiBpc19mdW5jdGlvbihkdXJhdGlvbikgPyBkdXJhdGlvbihkKSA6IGR1cmF0aW9uLFxuICAgICAgICAgICAgZWFzaW5nLFxuICAgICAgICAgICAgY3NzOiAodCwgdSkgPT4gYFxuXHRcdFx0XHRvcGFjaXR5OiAke3QgKiBvcGFjaXR5fTtcblx0XHRcdFx0dHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG5cdFx0XHRcdHRyYW5zZm9ybTogJHt0cmFuc2Zvcm19IHRyYW5zbGF0ZSgke3UgKiBkeH1weCwke3UgKiBkeX1weCkgc2NhbGUoJHt0ICsgKDEgLSB0KSAqIGR3fSwgJHt0ICsgKDEgLSB0KSAqIGRofSk7XG5cdFx0XHRgXG4gICAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRyYW5zaXRpb24oaXRlbXMsIGNvdW50ZXJwYXJ0cywgaW50cm8pIHtcbiAgICAgICAgcmV0dXJuIChub2RlLCBwYXJhbXMpID0+IHtcbiAgICAgICAgICAgIGl0ZW1zLnNldChwYXJhbXMua2V5LCBub2RlKTtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGNvdW50ZXJwYXJ0cy5oYXMocGFyYW1zLmtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3RoZXJfbm9kZSA9IGNvdW50ZXJwYXJ0cy5nZXQocGFyYW1zLmtleSk7XG4gICAgICAgICAgICAgICAgICAgIGNvdW50ZXJwYXJ0cy5kZWxldGUocGFyYW1zLmtleSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjcm9zc2ZhZGUob3RoZXJfbm9kZSwgbm9kZSwgcGFyYW1zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gaWYgdGhlIG5vZGUgaXMgZGlzYXBwZWFyaW5nIGFsdG9nZXRoZXJcbiAgICAgICAgICAgICAgICAvLyAoaS5lLiB3YXNuJ3QgY2xhaW1lZCBieSB0aGUgb3RoZXIgbGlzdClcbiAgICAgICAgICAgICAgICAvLyB0aGVuIHdlIG5lZWQgdG8gc3VwcGx5IGFuIG91dHJvXG4gICAgICAgICAgICAgICAgaXRlbXMuZGVsZXRlKHBhcmFtcy5rZXkpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxsYmFjayAmJiBmYWxsYmFjayhub2RlLCBwYXJhbXMsIGludHJvKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBbXG4gICAgICAgIHRyYW5zaXRpb24odG9fc2VuZCwgdG9fcmVjZWl2ZSwgZmFsc2UpLFxuICAgICAgICB0cmFuc2l0aW9uKHRvX3JlY2VpdmUsIHRvX3NlbmQsIHRydWUpXG4gICAgXTtcbn1cblxuZXhwb3J0IHsgYmx1ciwgY3Jvc3NmYWRlLCBkcmF3LCBmYWRlLCBmbHksIHNjYWxlLCBzbGlkZSB9O1xuIiwiPCEtLSBzdmVsdGUtaWdub3JlIG1pc3NpbmctZGVjbGFyYXRpb24gLS0+XG48c3ZlbHRlOm9wdGlvbnMgdGFnPVwiY2FtZXJhLWJ0blwiIC8+XG5cbjxzY3JpcHQgbGFuZz1cInRzXCI+XG4gIGltcG9ydCB7IHN3YXBDYW1lcmEgfSBmcm9tICcuL2NvbmZTdG9yZSc7XG4gIGltcG9ydCBDb25mTW9kYWwgZnJvbSAnLi9Db25mTW9kYWwuc3ZlbHRlJztcbiAgaW1wb3J0IHsgY2FtZXJhRGV2aWNlc1N0b3JlIH0gZnJvbSAnLi4vZmFjZVRhYi9mYWNlU3RvcmUnO1xuICBleHBvcnQgbGV0IGNsYXNzTmFtZSA9ICcnO1xuPC9zY3JpcHQ+XG5cbjxDb25mTW9kYWwgLz5cblxuPCEtLSBzdmVsdGUtaWdub3JlIGExMXktY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAtLT5cbjxkaXZcbiAgb246Y2xpY2s9eygpID0+IHtcbiAgICAkc3dhcENhbWVyYSA9ICEkc3dhcENhbWVyYTtcbiAgfX1cbiAgY2xhc3M9XCJjZS1kdWktZHJvcGRvd24gY2UtZHVpLWRyb3Bkb3duLXRvcCBhYnNvbHV0ZSB6LTEwIHJpZ2h0LTAgc206YmxvY2sge2NsYXNzTmFtZX1cIlxuPlxuICA8IS0tIHN2ZWx0ZS1pZ25vcmUgYTExeS1sYWJlbC1oYXMtYXNzb2NpYXRlZC1jb250cm9sIC0tPlxuICA8IS0tIHN2ZWx0ZS1pZ25vcmUgYTExeS1uby1ub25pbnRlcmFjdGl2ZS10YWJpbmRleCAtLT5cbiAgPGxhYmVsIHRhYmluZGV4PVwiMFwiIGhpZGRlbj17JGNhbWVyYURldmljZXNTdG9yZS5sZW5ndGggPT0gMX0gIGNsYXNzPVwiY2UtZHVpLWJ0biBjZS1kdWktYnRuLWdob3N0IG0tMVwiXG4gICAgPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiM2VtXCIgaGVpZ2h0PVwiM2VtXCIgdmlld0JveD1cIjAgMCAyNTYgMjU2XCIgey4uLiQkcHJvcHN9PlxuICAgICAgPHBhdGhcbiAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgIGQ9XCJNMjA4IDU2aC0yNy43MmwtMTMuNjMtMjAuNDRBOCA4IDAgMCAwIDE2MCAzMkg5NmE4IDggMCAwIDAtNi42NSAzLjU2TDc1LjcxIDU2SDQ4YTI0IDI0IDAgMCAwLTI0IDI0djExMmEyNCAyNCAwIDAgMCAyNCAyNGgxNjBhMjQgMjQgMCAwIDAgMjQtMjRWODBhMjQgMjQgMCAwIDAtMjQtMjRtLTUxLjE5IDExMC40QTQ4LjIxIDQ4LjIxIDAgMCAxIDk2IDE2My43N1YxNjhhOCA4IDAgMCAxLTE2IDB2LTI0YTggOCAwIDAgMSA4LThoMjRhOCA4IDAgMCAxIDAgMTZoLTUuMTVhMzIuMTIgMzIuMTIgMCAwIDAgNDAuMzQgMS42MWE4IDggMCAwIDEgOS42MiAxMi43OU0xNzYgMTIwYTggOCAwIDAgMS04IDhoLTI0YTggOCAwIDAgMSAwLTE2aDUuMTVhMzIuMTIgMzIuMTIgMCAwIDAtNDAuMzQtMS42MWE4IDggMCAwIDEtOS42Mi0xMi43OWE0OC4yMSA0OC4yMSAwIDAgMSA2MC44MSAyLjYzVjk2YTggOCAwIDAgMSAxNiAwWlwiXG4gICAgICAvPlxuICAgIDwvc3ZnPjwvbGFiZWxcbiAgPlxuPC9kaXY+XG4iXSwibmFtZXMiOlsiQ2FtZXJhU3RhdHVzRW51bSIsImNhbWVyYVN0YXR1c1N0b3JlIiwid3JpdGFibGUiLCJjdHgiLCJpbnNlcnRfZGV2IiwidGFyZ2V0Iiwic3ZnIiwiYW5jaG9yIiwiYXBwZW5kX2RldiIsInBhdGgiLCJzcGFuMCIsInNwYW4xIiwiYnV0dG9uIiwiY3JlYXRlX2lmX2Jsb2NrIiwiY3JlYXRlX2lmX2Jsb2NrXzEiLCJjcmVhdGVfaWZfYmxvY2tfMiIsImNyZWF0ZV9pZl9ibG9ja18zIiwiY3JlYXRlX2lmX2Jsb2NrXzQiLCJjcmVhdGVfaWZfYmxvY2tfNSIsImNyZWF0ZV9pZl9ibG9ja182IiwiZGl2IiwiaGFuZGxlciIsImxvY2tTY3JlZW4iLCJmYWRlIiwibm9kZSIsImRlbGF5IiwiZHVyYXRpb24iLCJlYXNpbmciLCJsaW5lYXIiLCJvIiwidCIsImxhYmVsIiwiY2xhc3NOYW1lIiwiJCRwcm9wcyIsInNldF9zdG9yZV92YWx1ZSIsInN3YXBDYW1lcmEiLCIkc3dhcENhbWVyYSJdLCJtYXBwaW5ncyI6IjtBQUVrQixJQUFBQSxzQkFBQUEsT0FDaEJBLEVBQUEsS0FBSyxNQUNMQSxFQUFBLHlCQUF5QiwwQkFDekJBLEVBQUEsc0JBQXNCLHVCQUN0QkEsRUFBQSxzQkFBc0IsdUJBQ3RC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
|