@getopenpay/openpay-js-react 0.5.16 → 0.5.17
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/.tsbuildinfo +1 -1
- package/dist/{Resource-D6e1SVqp-BeOAe8CK.js → Resource-Ci2cMsNJ-r_pjpkns.js} +2 -2
- package/dist/{SimpleSpanProcessor-B5oeCAH_-CNwRvldN.js → SimpleSpanProcessor-B0eU7C8A-CjPgIH6s.js} +14 -14
- package/dist/{detect-resources-D-FR6I1M-DgVqsro8.js → detect-resources-ChhXDAxq-Btymf6C7.js} +6 -6
- package/dist/{diag-api-7f_bGNCd-CpEfr1jK.js → diag-api-DC4dxlqZ-DOFCnxry.js} +2 -2
- package/dist/{index-Ck97EOCA-Zm6JWqpV.js → index-1sGeF-S8-Cf5_9V8Q.js} +2 -2
- package/dist/{index-uguPxhWW-DM-QuCEc.js → index-925BJ6Jo-FMJz60P8.js} +5 -5
- package/dist/{index-CfN_T6km-BTbU3RrT.js → index-BE9m_H38-DZJya01O.js} +2 -2
- package/dist/{index-ghrKKt8-.js → index-BRlq-xUA.js} +366 -364
- package/dist/{index-C1R5n4f5-BEiNGyPJ.js → index-BXyoTbrS-DGGjVY6j.js} +6 -6
- package/dist/{index-SfjGhwLd-D8Gzvy7d.js → index-C3N5jtkQ-BnMnAIzy.js} +2 -2
- package/dist/{index-Bk9VFx-5-BeIAJsOs.js → index-CD5ZzJ0E-BNo61tUq.js} +5 -5
- package/dist/{index-Zrl0yXaO-DZcZ2j3o.js → index-CfmI3mSs-kdYEhELt.js} +2 -2
- package/dist/{index-DjSIi8qA-DbNOQoO0.js → index-DHKyZPe5-DB9begqh.js} +24 -24
- package/dist/{index-BFik66y9-BRo2pwAy.js → index-v1SRbPSI-Ck3VxOS9.js} +30 -30
- package/dist/index.d.ts +6 -1
- package/dist/index.js +5 -5
- package/dist/{metrics-api-Db6Frex7-qndTY0vL.js → metrics-api-B-98-wmH-CgGZj7qs.js} +7 -7
- package/dist/{suppress-tracing-CDURENlV-rNvzoerf.js → suppress-tracing-BuitcWA2-BFsdq8P_.js} +2 -2
- package/dist/url-CTAMV9Fr-n8hDYbJZ.js +798 -0
- package/dist/{utils-BhSCC4TN-CdIRB2pa.js → utils-CKW-Vl9c-CCUGWG5V.js} +2 -2
- package/dist/{utils-cMYN_8r4-CH-hT-iy.js → utils-DCVGrgLr-DxhyWIXT.js} +4 -4
- package/package.json +1 -1
- package/dist/url-CIe6o1oH-CoerVU9o.js +0 -798
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { y as v, h as
|
|
2
|
-
import { a as X, u as J, s as
|
|
3
|
-
import { r as O } from "./diag-api-
|
|
1
|
+
import { y as v, h as B, dC as St, g as dt, w as yt, dG as It, O as ht, a as At, dH as mt, dE as vt, dK as gt, c as Ct, dL as Nt, dD as Mt, dF as bt, p as Ut, dJ as wt, dI as Dt } from "./url-CTAMV9Fr-n8hDYbJZ.js";
|
|
2
|
+
import { a as X, u as J, s as Bt } from "./suppress-tracing-BuitcWA2-BFsdq8P_.js";
|
|
3
|
+
import { r as O } from "./diag-api-DC4dxlqZ-DOFCnxry.js";
|
|
4
4
|
import { A as Q, a as Xt } from "./ExportResult-BacsqwKA-wgTHEn_9.js";
|
|
5
|
-
import {
|
|
5
|
+
import { b as u, M as N, h as q, H as M, T as K, Z as jt, d as Gt } from "./index-BRlq-xUA.js";
|
|
6
6
|
import { bm as xt, bl as Ht } from "./sdk-info-ChuKu8zW-BkU0NT3O.js";
|
|
7
7
|
var s;
|
|
8
8
|
(function(t) {
|
|
@@ -227,10 +227,10 @@ function Tt(t) {
|
|
|
227
227
|
} catch {
|
|
228
228
|
}
|
|
229
229
|
}
|
|
230
|
-
var
|
|
230
|
+
var h;
|
|
231
231
|
(function(t) {
|
|
232
232
|
t.AlwaysOff = "always_off", t.AlwaysOn = "always_on", t.ParentBasedAlwaysOff = "parentbased_always_off", t.ParentBasedAlwaysOn = "parentbased_always_on", t.ParentBasedTraceIdRatio = "parentbased_traceidratio", t.TraceIdRatio = "traceidratio";
|
|
233
|
-
})(
|
|
233
|
+
})(h || (h = {}));
|
|
234
234
|
var re = ",", ne = ["OTEL_SDK_DISABLED"];
|
|
235
235
|
function oe(t) {
|
|
236
236
|
return ne.indexOf(t) > -1;
|
|
@@ -321,7 +321,7 @@ var R = 1 / 0, L = 128, Et = 128, ut = 128, G = {
|
|
|
321
321
|
OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT: Et,
|
|
322
322
|
OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT: ut,
|
|
323
323
|
OTEL_TRACES_EXPORTER: "",
|
|
324
|
-
OTEL_TRACES_SAMPLER:
|
|
324
|
+
OTEL_TRACES_SAMPLER: h.ParentBasedAlwaysOn,
|
|
325
325
|
OTEL_TRACES_SAMPLER_ARG: "",
|
|
326
326
|
OTEL_LOGS_EXPORTER: "",
|
|
327
327
|
OTEL_EXPORTER_OTLP_INSECURE: "",
|
|
@@ -410,11 +410,11 @@ function x(t) {
|
|
|
410
410
|
return e;
|
|
411
411
|
}
|
|
412
412
|
function fe() {
|
|
413
|
-
var t = x(
|
|
413
|
+
var t = x(B);
|
|
414
414
|
return Object.assign({}, G, t);
|
|
415
415
|
}
|
|
416
416
|
function Oe() {
|
|
417
|
-
return x(
|
|
417
|
+
return x(B);
|
|
418
418
|
}
|
|
419
419
|
var pe = function(t, e) {
|
|
420
420
|
var n = typeof Symbol == "function" && t[Symbol.iterator];
|
|
@@ -467,7 +467,7 @@ var Ie = function(t) {
|
|
|
467
467
|
}
|
|
468
468
|
};
|
|
469
469
|
throw new TypeError(e ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
470
|
-
},
|
|
470
|
+
}, he = (
|
|
471
471
|
/** @class */
|
|
472
472
|
(function() {
|
|
473
473
|
function t(e) {
|
|
@@ -512,7 +512,7 @@ var Ie = function(t) {
|
|
|
512
512
|
return this._fields.slice();
|
|
513
513
|
}, t;
|
|
514
514
|
})()
|
|
515
|
-
), U = "[_0-9a-z-*/]",
|
|
515
|
+
), U = "[_0-9a-z-*/]", Ae = "[a-z]" + U + "{0,255}", me = "[a-z0-9]" + U + "{0,240}@[a-z]" + U + "{0,13}", ve = new RegExp("^(?:" + Ae + "|" + me + ")$"), ge = /^[ -~]{0,255}[!-~]$/, Ce = /,|=/;
|
|
516
516
|
function Ne(t) {
|
|
517
517
|
return ve.test(t);
|
|
518
518
|
}
|
|
@@ -554,7 +554,7 @@ var $ = 32, be = 512, Z = ",", z = "=", lt = (
|
|
|
554
554
|
return e._internalState = new Map(this._internalState), e;
|
|
555
555
|
}, t;
|
|
556
556
|
})()
|
|
557
|
-
), P = "traceparent", S = "tracestate", Ue = "00", we = "(?!ff)[\\da-f]{2}",
|
|
557
|
+
), P = "traceparent", S = "tracestate", Ue = "00", we = "(?!ff)[\\da-f]{2}", De = "(?![0]{32})[\\da-f]{32}", Be = "(?![0]{16})[\\da-f]{16}", Xe = "[\\da-f]{2}", je = new RegExp("^\\s?(" + we + ")-(" + De + ")-(" + Be + ")-(" + Xe + ")(-.*)?\\s?$");
|
|
558
558
|
function ct(t) {
|
|
559
559
|
var e = je.exec(t);
|
|
560
560
|
return !e || e[1] === "00" && e[5] ? null : {
|
|
@@ -608,7 +608,7 @@ function He(t) {
|
|
|
608
608
|
function Ve(t) {
|
|
609
609
|
return t.getValue(H);
|
|
610
610
|
}
|
|
611
|
-
var
|
|
611
|
+
var D = (
|
|
612
612
|
/** @class */
|
|
613
613
|
(function() {
|
|
614
614
|
function t() {
|
|
@@ -639,7 +639,7 @@ var B = (
|
|
|
639
639
|
(function() {
|
|
640
640
|
function t(e) {
|
|
641
641
|
var n, r, o, a;
|
|
642
|
-
this._root = e.root, this._root || (Tt(new Error("ParentBasedSampler must have a root sampler configured")), this._root = new d()), this._remoteParentSampled = (n = e.remoteParentSampled) !== null && n !== void 0 ? n : new d(), this._remoteParentNotSampled = (r = e.remoteParentNotSampled) !== null && r !== void 0 ? r : new
|
|
642
|
+
this._root = e.root, this._root || (Tt(new Error("ParentBasedSampler must have a root sampler configured")), this._root = new d()), this._remoteParentSampled = (n = e.remoteParentSampled) !== null && n !== void 0 ? n : new d(), this._remoteParentNotSampled = (r = e.remoteParentNotSampled) !== null && r !== void 0 ? r : new D(), this._localParentSampled = (o = e.localParentSampled) !== null && o !== void 0 ? o : new d(), this._localParentNotSampled = (a = e.localParentNotSampled) !== null && a !== void 0 ? a : new D();
|
|
643
643
|
}
|
|
644
644
|
return t.prototype.shouldSample = function(e, n, r, o, a, i) {
|
|
645
645
|
var _ = N.getSpanContext(e);
|
|
@@ -712,7 +712,7 @@ function nr() {
|
|
|
712
712
|
return n;
|
|
713
713
|
}
|
|
714
714
|
function C(t) {
|
|
715
|
-
return
|
|
715
|
+
return A(t) ? t.slice() : t;
|
|
716
716
|
}
|
|
717
717
|
function Rt(t, e, n, r) {
|
|
718
718
|
n === void 0 && (n = 0);
|
|
@@ -720,8 +720,8 @@ function Rt(t, e, n, r) {
|
|
|
720
720
|
if (!(n > rr)) {
|
|
721
721
|
if (n++, y(t) || y(e) || Lt(e))
|
|
722
722
|
o = C(e);
|
|
723
|
-
else if (
|
|
724
|
-
if (o = t.slice(),
|
|
723
|
+
else if (A(t)) {
|
|
724
|
+
if (o = t.slice(), A(e))
|
|
725
725
|
for (var a = 0, i = e.length; a < i; a++)
|
|
726
726
|
o.push(C(e[a]));
|
|
727
727
|
else if (f(e))
|
|
@@ -764,14 +764,14 @@ function W(t, e, n) {
|
|
|
764
764
|
}
|
|
765
765
|
return !1;
|
|
766
766
|
}
|
|
767
|
-
function
|
|
767
|
+
function A(t) {
|
|
768
768
|
return Array.isArray(t);
|
|
769
769
|
}
|
|
770
770
|
function Lt(t) {
|
|
771
771
|
return typeof t == "function";
|
|
772
772
|
}
|
|
773
773
|
function f(t) {
|
|
774
|
-
return !y(t) && !
|
|
774
|
+
return !y(t) && !A(t) && !Lt(t) && typeof t == "object";
|
|
775
775
|
}
|
|
776
776
|
function y(t) {
|
|
777
777
|
return typeof t == "string" || typeof t == "number" || typeof t == "boolean" || typeof t > "u" || t instanceof Date || t instanceof RegExp || t === null;
|
|
@@ -919,11 +919,11 @@ var sr = {
|
|
|
919
919
|
};
|
|
920
920
|
const dr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
921
921
|
__proto__: null,
|
|
922
|
-
AlwaysOffSampler:
|
|
922
|
+
AlwaysOffSampler: D,
|
|
923
923
|
AlwaysOnSampler: d,
|
|
924
924
|
AnchoredClock: Yt,
|
|
925
925
|
BindOnceFuture: lr,
|
|
926
|
-
CompositePropagator:
|
|
926
|
+
CompositePropagator: he,
|
|
927
927
|
DEFAULT_ATTRIBUTE_COUNT_LIMIT: L,
|
|
928
928
|
DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT: R,
|
|
929
929
|
DEFAULT_ENVIRONMENT: G,
|
|
@@ -944,13 +944,13 @@ const dr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
944
944
|
TraceIdRatioBasedSampler: Ke,
|
|
945
945
|
TraceState: lt,
|
|
946
946
|
get TracesSamplerValues() {
|
|
947
|
-
return
|
|
947
|
+
return h;
|
|
948
948
|
},
|
|
949
949
|
VERSION: xt,
|
|
950
950
|
W3CBaggagePropagator: zt,
|
|
951
951
|
W3CTraceContextPropagator: Ge,
|
|
952
|
-
_globalThis:
|
|
953
|
-
addHrTimes:
|
|
952
|
+
_globalThis: B,
|
|
953
|
+
addHrTimes: Dt,
|
|
954
954
|
baggageUtils: sr,
|
|
955
955
|
callWithTimeout: ir,
|
|
956
956
|
deleteRPCMetadata: He,
|
|
@@ -973,11 +973,11 @@ const dr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
973
973
|
isTimeInput: vt,
|
|
974
974
|
isTimeInputHrTime: mt,
|
|
975
975
|
isTracingSuppressed: X,
|
|
976
|
-
isUrlIgnored:
|
|
976
|
+
isUrlIgnored: At,
|
|
977
977
|
isWrapped: _r,
|
|
978
978
|
loggingErrorHandler: it,
|
|
979
979
|
merge: nr,
|
|
980
|
-
millisToHrTime:
|
|
980
|
+
millisToHrTime: ht,
|
|
981
981
|
otperformance: It,
|
|
982
982
|
parseEnvironment: x,
|
|
983
983
|
parseTraceParent: ct,
|
|
@@ -987,7 +987,7 @@ const dr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
987
987
|
suppressTracing: J,
|
|
988
988
|
timeInputToHrTime: yt,
|
|
989
989
|
unrefTimer: ye,
|
|
990
|
-
unsuppressTracing:
|
|
990
|
+
unsuppressTracing: Bt,
|
|
991
991
|
urlMatches: dt
|
|
992
992
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
993
993
|
export {
|
|
@@ -999,7 +999,7 @@ export {
|
|
|
999
999
|
Ge as V,
|
|
1000
1000
|
zt as Z,
|
|
1001
1001
|
ot as a,
|
|
1002
|
-
|
|
1002
|
+
h as b,
|
|
1003
1003
|
Oe as c,
|
|
1004
1004
|
L as d,
|
|
1005
1005
|
fr as e,
|
|
@@ -1007,6 +1007,6 @@ export {
|
|
|
1007
1007
|
s as l,
|
|
1008
1008
|
nr as n,
|
|
1009
1009
|
R as p,
|
|
1010
|
-
|
|
1010
|
+
he as v
|
|
1011
1011
|
};
|
|
1012
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiaW5kZXgtQkZpazY2eTktIX57MDBpfX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IHkgYXMgeV8sIGggYXMgaF8sIGRDIGFzIGZfLCBnIGFzIGdfLCB3IGFzIHdlJDEsIGRHIGFzIFIkMSwgTyBhcyBPJDEsIGEgYXMgWmUkMSwgZEggYXMgTl8sIGRFIGFzIHFlJDEsIGRLIGFzIFFlJDEsIGMgYXMgeGUkMSwgZEwgYXMga2UkMSwgZEQgYXMgamUkMSwgZEYgYXMgWGUkMSwgcCBhcyBwXywgZEogYXMgcl8sIGRJIGFzIGJfIH0gZnJvbSAnLi91cmwtQ0llNm8xb0gtIX57MDBifX4uanMnO1xuaW1wb3J0IHsgYSwgdSwgcyB9IGZyb20gJy4vc3VwcHJlc3MtdHJhY2luZy1DRFVSRU5sVi0hfnswMG59fi5qcyc7XG5pbXBvcnQgeyByIH0gZnJvbSAnLi9kaWFnLWFwaS03Zl9iR05DZC0hfnswMGF9fi5qcyc7XG5pbXBvcnQgeyBBIGFzIEEkMSwgYSBhcyBhJDEgfSBmcm9tICcuL0V4cG9ydFJlc3VsdC1CYWNzcXdLQS0hfnswMGx9fi5qcyc7XG5pbXBvcnQgeyBjIGFzIFokMSwgTSBhcyBNZSQxLCB5IGFzIHluLCBCIGFzIEJ0LCBUIGFzIFRlJDEsIFogYXMgWmksIGQgYXMgZHMgfSBmcm9tICcuL2luZGV4LSF+ezAwN31+LmpzJztcbmltcG9ydCB7IGJtIGFzIHRTLCBibCBhcyBUQSB9IGZyb20gJy4vc2RrLWluZm8tQ2h1S3U4elctIX57MDBqfX4uanMnO1xuXG52YXIgbDtcbihmdW5jdGlvbihyKSB7XG4gIHJbci5OT1RfUkVDT1JEID0gMF0gPSBcIk5PVF9SRUNPUkRcIiwgcltyLlJFQ09SRCA9IDFdID0gXCJSRUNPUkRcIiwgcltyLlJFQ09SRF9BTkRfU0FNUExFRCA9IDJdID0gXCJSRUNPUkRfQU5EX1NBTVBMRURcIjtcbn0pKGwgfHwgKGwgPSB7fSkpO1xudmFyIHhyID0gXCI9XCIsIFUgPSBcIjtcIiwgSSA9IFwiLFwiLCBtID0gXCJiYWdnYWdlXCIsIEZyID0gMTgwLCBLciA9IDQwOTYsIFlyID0gODE5MiwgenIgPSBmdW5jdGlvbihyLCBlKSB7XG4gIHZhciB0ID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgcltTeW1ib2wuaXRlcmF0b3JdO1xuICBpZiAoIXQpIHJldHVybiByO1xuICB2YXIgbiA9IHQuY2FsbChyKSwgYSwgaSA9IFtdLCBvO1xuICB0cnkge1xuICAgIGZvciAoOyAoZSA9PT0gdm9pZCAwIHx8IGUtLSA+IDApICYmICEoYSA9IG4ubmV4dCgpKS5kb25lOyApIGkucHVzaChhLnZhbHVlKTtcbiAgfSBjYXRjaCAoXykge1xuICAgIG8gPSB7IGVycm9yOiBfIH07XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIGEgJiYgIWEuZG9uZSAmJiAodCA9IG4ucmV0dXJuKSAmJiB0LmNhbGwobik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChvKSB0aHJvdyBvLmVycm9yO1xuICAgIH1cbiAgfVxuICByZXR1cm4gaTtcbn07XG5mdW5jdGlvbiBycihyKSB7XG4gIHJldHVybiByLnJlZHVjZShmdW5jdGlvbihlLCB0KSB7XG4gICAgdmFyIG4gPSBcIlwiICsgZSArIChlICE9PSBcIlwiID8gSSA6IFwiXCIpICsgdDtcbiAgICByZXR1cm4gbi5sZW5ndGggPiBZciA/IGUgOiBuO1xuICB9LCBcIlwiKTtcbn1cbmZ1bmN0aW9uIGVyKHIpIHtcbiAgcmV0dXJuIHIuZ2V0QWxsRW50cmllcygpLm1hcChmdW5jdGlvbihlKSB7XG4gICAgdmFyIHQgPSB6cihlLCAyKSwgbiA9IHRbMF0sIGEgPSB0WzFdLCBpID0gZW5jb2RlVVJJQ29tcG9uZW50KG4pICsgXCI9XCIgKyBlbmNvZGVVUklDb21wb25lbnQoYS52YWx1ZSk7XG4gICAgcmV0dXJuIGEubWV0YWRhdGEgIT09IHZvaWQgMCAmJiAoaSArPSBVICsgYS5tZXRhZGF0YS50b1N0cmluZygpKSwgaTtcbiAgfSk7XG59XG5mdW5jdGlvbiB3KHIpIHtcbiAgdmFyIGUgPSByLnNwbGl0KFUpO1xuICBpZiAoIShlLmxlbmd0aCA8PSAwKSkge1xuICAgIHZhciB0ID0gZS5zaGlmdCgpO1xuICAgIGlmICh0KSB7XG4gICAgICB2YXIgbiA9IHQuaW5kZXhPZih4cik7XG4gICAgICBpZiAoIShuIDw9IDApKSB7XG4gICAgICAgIHZhciBhID0gZGVjb2RlVVJJQ29tcG9uZW50KHQuc3Vic3RyaW5nKDAsIG4pLnRyaW0oKSksIGkgPSBkZWNvZGVVUklDb21wb25lbnQodC5zdWJzdHJpbmcobiArIDEpLnRyaW0oKSksIG87XG4gICAgICAgIHJldHVybiBlLmxlbmd0aCA+IDAgJiYgKG8gPSBmXyhlLmpvaW4oVSkpKSwgeyBrZXk6IGEsIHZhbHVlOiBpLCBtZXRhZGF0YTogbyB9O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gV3Iocikge1xuICByZXR1cm4gdHlwZW9mIHIgIT0gXCJzdHJpbmdcIiB8fCByLmxlbmd0aCA9PT0gMCA/IHt9IDogci5zcGxpdChJKS5tYXAoZnVuY3Rpb24oZSkge1xuICAgIHJldHVybiB3KGUpO1xuICB9KS5maWx0ZXIoZnVuY3Rpb24oZSkge1xuICAgIHJldHVybiBlICE9PSB2b2lkIDAgJiYgZS52YWx1ZS5sZW5ndGggPiAwO1xuICB9KS5yZWR1Y2UoZnVuY3Rpb24oZSwgdCkge1xuICAgIHJldHVybiBlW3Qua2V5XSA9IHQudmFsdWUsIGU7XG4gIH0sIHt9KTtcbn1cbnZhciBaciA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICAoZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gcigpIHtcbiAgICB9XG4gICAgcmV0dXJuIHIucHJvdG90eXBlLmluamVjdCA9IGZ1bmN0aW9uKGUsIHQsIG4pIHtcbiAgICAgIHZhciBhJDEgPSB5Xy5nZXRCYWdnYWdlKGUpO1xuICAgICAgaWYgKCEoIWEkMSB8fCBhKGUpKSkge1xuICAgICAgICB2YXIgaSA9IGVyKGEkMSkuZmlsdGVyKGZ1bmN0aW9uKF8pIHtcbiAgICAgICAgICByZXR1cm4gXy5sZW5ndGggPD0gS3I7XG4gICAgICAgIH0pLnNsaWNlKDAsIEZyKSwgbyA9IHJyKGkpO1xuICAgICAgICBvLmxlbmd0aCA+IDAgJiYgbi5zZXQodCwgbSwgbyk7XG4gICAgICB9XG4gICAgfSwgci5wcm90b3R5cGUuZXh0cmFjdCA9IGZ1bmN0aW9uKGUsIHQsIG4pIHtcbiAgICAgIHZhciBhID0gbi5nZXQodCwgbSksIGkgPSBBcnJheS5pc0FycmF5KGEpID8gYS5qb2luKEkpIDogYTtcbiAgICAgIGlmICghaSlcbiAgICAgICAgcmV0dXJuIGU7XG4gICAgICB2YXIgbyA9IHt9O1xuICAgICAgaWYgKGkubGVuZ3RoID09PSAwKVxuICAgICAgICByZXR1cm4gZTtcbiAgICAgIHZhciBfID0gaS5zcGxpdChJKTtcbiAgICAgIHJldHVybiBfLmZvckVhY2goZnVuY3Rpb24oRSkge1xuICAgICAgICB2YXIgVCA9IHcoRSk7XG4gICAgICAgIGlmIChUKSB7XG4gICAgICAgICAgdmFyIHMgPSB7IHZhbHVlOiBULnZhbHVlIH07XG4gICAgICAgICAgVC5tZXRhZGF0YSAmJiAocy5tZXRhZGF0YSA9IFQubWV0YWRhdGEpLCBvW1Qua2V5XSA9IHM7XG4gICAgICAgIH1cbiAgICAgIH0pLCBPYmplY3QuZW50cmllcyhvKS5sZW5ndGggPT09IDAgPyBlIDogeV8uc2V0QmFnZ2FnZShlLCB5Xy5jcmVhdGVCYWdnYWdlKG8pKTtcbiAgICB9LCByLnByb3RvdHlwZS5maWVsZHMgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBbbV07XG4gICAgfSwgcjtcbiAgfSkoKVxuKSwgJHIgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIoZSwgdCkge1xuICAgICAgdGhpcy5fbW9ub3RvbmljQ2xvY2sgPSB0LCB0aGlzLl9lcG9jaE1pbGxpcyA9IGUubm93KCksIHRoaXMuX3BlcmZvcm1hbmNlTWlsbGlzID0gdC5ub3coKTtcbiAgICB9XG4gICAgcmV0dXJuIHIucHJvdG90eXBlLm5vdyA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGUgPSB0aGlzLl9tb25vdG9uaWNDbG9jay5ub3coKSAtIHRoaXMuX3BlcmZvcm1hbmNlTWlsbGlzO1xuICAgICAgcmV0dXJuIHRoaXMuX2Vwb2NoTWlsbGlzICsgZTtcbiAgICB9LCByO1xuICB9KSgpXG4pLCB0ciA9IGZ1bmN0aW9uKHIpIHtcbiAgdmFyIGUgPSB0eXBlb2YgU3ltYm9sID09IFwiZnVuY3Rpb25cIiAmJiBTeW1ib2wuaXRlcmF0b3IsIHQgPSBlICYmIHJbZV0sIG4gPSAwO1xuICBpZiAodCkgcmV0dXJuIHQuY2FsbChyKTtcbiAgaWYgKHIgJiYgdHlwZW9mIHIubGVuZ3RoID09IFwibnVtYmVyXCIpIHJldHVybiB7XG4gICAgbmV4dDogZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gciAmJiBuID49IHIubGVuZ3RoICYmIChyID0gdm9pZCAwKSwgeyB2YWx1ZTogciAmJiByW24rK10sIGRvbmU6ICFyIH07XG4gICAgfVxuICB9O1xuICB0aHJvdyBuZXcgVHlwZUVycm9yKGUgPyBcIk9iamVjdCBpcyBub3QgaXRlcmFibGUuXCIgOiBcIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XG59LCBKciA9IGZ1bmN0aW9uKHIsIGUpIHtcbiAgdmFyIHQgPSB0eXBlb2YgU3ltYm9sID09IFwiZnVuY3Rpb25cIiAmJiByW1N5bWJvbC5pdGVyYXRvcl07XG4gIGlmICghdCkgcmV0dXJuIHI7XG4gIHZhciBuID0gdC5jYWxsKHIpLCBhLCBpID0gW10sIG87XG4gIHRyeSB7XG4gICAgZm9yICg7IChlID09PSB2b2lkIDAgfHwgZS0tID4gMCkgJiYgIShhID0gbi5uZXh0KCkpLmRvbmU7ICkgaS5wdXNoKGEudmFsdWUpO1xuICB9IGNhdGNoIChfKSB7XG4gICAgbyA9IHsgZXJyb3I6IF8gfTtcbiAgfSBmaW5hbGx5IHtcbiAgICB0cnkge1xuICAgICAgYSAmJiAhYS5kb25lICYmICh0ID0gbi5yZXR1cm4pICYmIHQuY2FsbChuKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWYgKG8pIHRocm93IG8uZXJyb3I7XG4gICAgfVxuICB9XG4gIHJldHVybiBpO1xufTtcbmZ1bmN0aW9uIFFyKHIkMSkge1xuICB2YXIgZSwgdCwgbiA9IHt9O1xuICBpZiAodHlwZW9mIHIkMSAhPSBcIm9iamVjdFwiIHx8IHIkMSA9PSBudWxsKVxuICAgIHJldHVybiBuO1xuICB0cnkge1xuICAgIGZvciAodmFyIGEgPSB0cihPYmplY3QuZW50cmllcyhyJDEpKSwgaSA9IGEubmV4dCgpOyAhaS5kb25lOyBpID0gYS5uZXh0KCkpIHtcbiAgICAgIHZhciBvID0gSnIoaS52YWx1ZSwgMiksIF8gPSBvWzBdLCBFID0gb1sxXTtcbiAgICAgIGlmICghbnIoXykpIHtcbiAgICAgICAgci53YXJuKFwiSW52YWxpZCBhdHRyaWJ1dGUga2V5OiBcIiArIF8pO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICghYXIoRSkpIHtcbiAgICAgICAgci53YXJuKFwiSW52YWxpZCBhdHRyaWJ1dGUgdmFsdWUgc2V0IGZvciBrZXk6IFwiICsgXyk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgQXJyYXkuaXNBcnJheShFKSA/IG5bX10gPSBFLnNsaWNlKCkgOiBuW19dID0gRTtcbiAgICB9XG4gIH0gY2F0Y2ggKFQpIHtcbiAgICBlID0geyBlcnJvcjogVCB9O1xuICB9IGZpbmFsbHkge1xuICAgIHRyeSB7XG4gICAgICBpICYmICFpLmRvbmUgJiYgKHQgPSBhLnJldHVybikgJiYgdC5jYWxsKGEpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAoZSkgdGhyb3cgZS5lcnJvcjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG47XG59XG5mdW5jdGlvbiBucihyKSB7XG4gIHJldHVybiB0eXBlb2YgciA9PSBcInN0cmluZ1wiICYmIHIubGVuZ3RoID4gMDtcbn1cbmZ1bmN0aW9uIGFyKHIpIHtcbiAgcmV0dXJuIHIgPT0gbnVsbCA/IHRydWUgOiBBcnJheS5pc0FycmF5KHIpID8gcXIocikgOiBpcihyKTtcbn1cbmZ1bmN0aW9uIHFyKHIpIHtcbiAgdmFyIGUsIHQsIG47XG4gIHRyeSB7XG4gICAgZm9yICh2YXIgYSA9IHRyKHIpLCBpID0gYS5uZXh0KCk7ICFpLmRvbmU7IGkgPSBhLm5leHQoKSkge1xuICAgICAgdmFyIG8gPSBpLnZhbHVlO1xuICAgICAgaWYgKG8gIT0gbnVsbCkge1xuICAgICAgICBpZiAoIW4pIHtcbiAgICAgICAgICBpZiAoaXIobykpIHtcbiAgICAgICAgICAgIG4gPSB0eXBlb2YgbztcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gITE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBvICE9PSBuKVxuICAgICAgICAgIHJldHVybiAhMTtcbiAgICAgIH1cbiAgICB9XG4gIH0gY2F0Y2ggKF8pIHtcbiAgICBlID0geyBlcnJvcjogXyB9O1xuICB9IGZpbmFsbHkge1xuICAgIHRyeSB7XG4gICAgICBpICYmICFpLmRvbmUgJiYgKHQgPSBhLnJldHVybikgJiYgdC5jYWxsKGEpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAoZSkgdGhyb3cgZS5lcnJvcjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG5mdW5jdGlvbiBpcihyKSB7XG4gIHN3aXRjaCAodHlwZW9mIHIpIHtcbiAgICBjYXNlIFwibnVtYmVyXCI6XG4gICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiBvcigpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKHIkMSkge1xuICAgIHIuZXJyb3Ioa3IociQxKSk7XG4gIH07XG59XG5mdW5jdGlvbiBrcihyKSB7XG4gIHJldHVybiB0eXBlb2YgciA9PSBcInN0cmluZ1wiID8gciA6IEpTT04uc3RyaW5naWZ5KHJlKHIpKTtcbn1cbmZ1bmN0aW9uIHJlKHIpIHtcbiAgZm9yICh2YXIgZSA9IHt9LCB0ID0gcjsgdCAhPT0gbnVsbDsgKVxuICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHQpLmZvckVhY2goZnVuY3Rpb24obikge1xuICAgICAgaWYgKCFlW25dKSB7XG4gICAgICAgIHZhciBhID0gdFtuXTtcbiAgICAgICAgYSAmJiAoZVtuXSA9IFN0cmluZyhhKSk7XG4gICAgICB9XG4gICAgfSksIHQgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodCk7XG4gIHJldHVybiBlO1xufVxudmFyIF9yID0gb3IoKTtcbmZ1bmN0aW9uIGVlKHIpIHtcbiAgX3IgPSByO1xufVxuZnVuY3Rpb24gRXIocikge1xuICB0cnkge1xuICAgIF9yKHIpO1xuICB9IGNhdGNoIHtcbiAgfVxufVxudmFyIHY7XG4oZnVuY3Rpb24ocikge1xuICByLkFsd2F5c09mZiA9IFwiYWx3YXlzX29mZlwiLCByLkFsd2F5c09uID0gXCJhbHdheXNfb25cIiwgci5QYXJlbnRCYXNlZEFsd2F5c09mZiA9IFwicGFyZW50YmFzZWRfYWx3YXlzX29mZlwiLCByLlBhcmVudEJhc2VkQWx3YXlzT24gPSBcInBhcmVudGJhc2VkX2Fsd2F5c19vblwiLCByLlBhcmVudEJhc2VkVHJhY2VJZFJhdGlvID0gXCJwYXJlbnRiYXNlZF90cmFjZWlkcmF0aW9cIiwgci5UcmFjZUlkUmF0aW8gPSBcInRyYWNlaWRyYXRpb1wiO1xufSkodiB8fCAodiA9IHt9KSk7XG52YXIgdGUgPSBcIixcIiwgbmUgPSBbXCJPVEVMX1NES19ESVNBQkxFRFwiXTtcbmZ1bmN0aW9uIGFlKHIpIHtcbiAgcmV0dXJuIG5lLmluZGV4T2YocikgPiAtMTtcbn1cbnZhciBpZSA9IFtcbiAgXCJPVEVMX0JTUF9FWFBPUlRfVElNRU9VVFwiLFxuICBcIk9URUxfQlNQX01BWF9FWFBPUlRfQkFUQ0hfU0laRVwiLFxuICBcIk9URUxfQlNQX01BWF9RVUVVRV9TSVpFXCIsXG4gIFwiT1RFTF9CU1BfU0NIRURVTEVfREVMQVlcIixcbiAgXCJPVEVMX0JMUlBfRVhQT1JUX1RJTUVPVVRcIixcbiAgXCJPVEVMX0JMUlBfTUFYX0VYUE9SVF9CQVRDSF9TSVpFXCIsXG4gIFwiT1RFTF9CTFJQX01BWF9RVUVVRV9TSVpFXCIsXG4gIFwiT1RFTF9CTFJQX1NDSEVEVUxFX0RFTEFZXCIsXG4gIFwiT1RFTF9BVFRSSUJVVEVfVkFMVUVfTEVOR1RIX0xJTUlUXCIsXG4gIFwiT1RFTF9BVFRSSUJVVEVfQ09VTlRfTElNSVRcIixcbiAgXCJPVEVMX1NQQU5fQVRUUklCVVRFX1ZBTFVFX0xFTkdUSF9MSU1JVFwiLFxuICBcIk9URUxfU1BBTl9BVFRSSUJVVEVfQ09VTlRfTElNSVRcIixcbiAgXCJPVEVMX0xPR1JFQ09SRF9BVFRSSUJVVEVfVkFMVUVfTEVOR1RIX0xJTUlUXCIsXG4gIFwiT1RFTF9MT0dSRUNPUkRfQVRUUklCVVRFX0NPVU5UX0xJTUlUXCIsXG4gIFwiT1RFTF9TUEFOX0VWRU5UX0NPVU5UX0xJTUlUXCIsXG4gIFwiT1RFTF9TUEFOX0xJTktfQ09VTlRfTElNSVRcIixcbiAgXCJPVEVMX1NQQU5fQVRUUklCVVRFX1BFUl9FVkVOVF9DT1VOVF9MSU1JVFwiLFxuICBcIk9URUxfU1BBTl9BVFRSSUJVVEVfUEVSX0xJTktfQ09VTlRfTElNSVRcIixcbiAgXCJPVEVMX0VYUE9SVEVSX09UTFBfVElNRU9VVFwiLFxuICBcIk9URUxfRVhQT1JURVJfT1RMUF9UUkFDRVNfVElNRU9VVFwiLFxuICBcIk9URUxfRVhQT1JURVJfT1RMUF9NRVRSSUNTX1RJTUVPVVRcIixcbiAgXCJPVEVMX0VYUE9SVEVSX09UTFBfTE9HU19USU1FT1VUXCIsXG4gIFwiT1RFTF9FWFBPUlRFUl9KQUVHRVJfQUdFTlRfUE9SVFwiXG5dO1xuZnVuY3Rpb24gb2Uocikge1xuICByZXR1cm4gaWUuaW5kZXhPZihyKSA+IC0xO1xufVxudmFyIF9lID0gW1xuICBcIk9URUxfTk9fUEFUQ0hfTU9EVUxFU1wiLFxuICBcIk9URUxfUFJPUEFHQVRPUlNcIixcbiAgXCJPVEVMX1NFTUNPTlZfU1RBQklMSVRZX09QVF9JTlwiXG5dO1xuZnVuY3Rpb24gRWUocikge1xuICByZXR1cm4gX2UuaW5kZXhPZihyKSA+IC0xO1xufVxudmFyIHAgPSAxIC8gMCwgZCA9IDEyOCwgVHIgPSAxMjgsIHVyID0gMTI4LCBWID0ge1xuICBPVEVMX1NES19ESVNBQkxFRDogZmFsc2UsXG4gIENPTlRBSU5FUl9OQU1FOiBcIlwiLFxuICBFQ1NfQ09OVEFJTkVSX01FVEFEQVRBX1VSSV9WNDogXCJcIixcbiAgRUNTX0NPTlRBSU5FUl9NRVRBREFUQV9VUkk6IFwiXCIsXG4gIEhPU1ROQU1FOiBcIlwiLFxuICBLVUJFUk5FVEVTX1NFUlZJQ0VfSE9TVDogXCJcIixcbiAgTkFNRVNQQUNFOiBcIlwiLFxuICBPVEVMX0JTUF9FWFBPUlRfVElNRU9VVDogM2U0LFxuICBPVEVMX0JTUF9NQVhfRVhQT1JUX0JBVENIX1NJWkU6IDUxMixcbiAgT1RFTF9CU1BfTUFYX1FVRVVFX1NJWkU6IDIwNDgsXG4gIE9URUxfQlNQX1NDSEVEVUxFX0RFTEFZOiA1ZTMsXG4gIE9URUxfQkxSUF9FWFBPUlRfVElNRU9VVDogM2U0LFxuICBPVEVMX0JMUlBfTUFYX0VYUE9SVF9CQVRDSF9TSVpFOiA1MTIsXG4gIE9URUxfQkxSUF9NQVhfUVVFVUVfU0laRTogMjA0OCxcbiAgT1RFTF9CTFJQX1NDSEVEVUxFX0RFTEFZOiA1ZTMsXG4gIE9URUxfRVhQT1JURVJfSkFFR0VSX0FHRU5UX0hPU1Q6IFwiXCIsXG4gIE9URUxfRVhQT1JURVJfSkFFR0VSX0FHRU5UX1BPUlQ6IDY4MzIsXG4gIE9URUxfRVhQT1JURVJfSkFFR0VSX0VORFBPSU5UOiBcIlwiLFxuICBPVEVMX0VYUE9SVEVSX0pBRUdFUl9QQVNTV09SRDogXCJcIixcbiAgT1RFTF9FWFBPUlRFUl9KQUVHRVJfVVNFUjogXCJcIixcbiAgT1RFTF9FWFBPUlRFUl9PVExQX0VORFBPSU5UOiBcIlwiLFxuICBPVEVMX0VYUE9SVEVSX09UTFBfVFJBQ0VTX0VORFBPSU5UOiBcIlwiLFxuICBPVEVMX0VYUE9SVEVSX09UTFBfTUVUUklDU19FTkRQT0lOVDogXCJcIixcbiAgT1RFTF9FWFBPUlRFUl9PVExQX0xPR1NfRU5EUE9JTlQ6IFwiXCIsXG4gIE9URUxfRVhQT1JURVJfT1RMUF9IRUFERVJTOiBcIlwiLFxuICBPVEVMX0VYUE9SVEVSX09UTFBfVFJBQ0VTX0hFQURFUlM6IFwiXCIsXG4gIE9URUxfRVhQT1JURVJfT1RMUF9NRVRSSUNTX0hFQURFUlM6IFwiXCIsXG4gIE9URUxfRVhQT1JURVJfT1RMUF9MT0dTX0hFQURFUlM6IFwiXCIsXG4gIE9URUxfRVhQT1JURVJfT1RMUF9USU1FT1VUOiAxZTQsXG4gIE9URUxfRVhQT1JURVJfT1RMUF9UUkFDRVNfVElNRU9VVDogMWU0LFxuICBPVEVMX0VYUE9SVEVSX09UTFBfTUVUUklDU19USU1FT1VUOiAxZTQsXG4gIE9URUxfRVhQT1JURVJfT1RMUF9MT0dTX1RJTUVPVVQ6IDFlNCxcbiAgT1RFTF9FWFBPUlRFUl9aSVBLSU5fRU5EUE9JTlQ6IFwiaHR0cDovL2xvY2FsaG9zdDo5NDExL2FwaS92Mi9zcGFuc1wiLFxuICBPVEVMX0xPR19MRVZFTDogWiQxLklORk8sXG4gIE9URUxfTk9fUEFUQ0hfTU9EVUxFUzogW10sXG4gIE9URUxfUFJPUEFHQVRPUlM6IFtcInRyYWNlY29udGV4dFwiLCBcImJhZ2dhZ2VcIl0sXG4gIE9URUxfUkVTT1VSQ0VfQVRUUklCVVRFUzogXCJcIixcbiAgT1RFTF9TRVJWSUNFX05BTUU6IFwiXCIsXG4gIE9URUxfQVRUUklCVVRFX1ZBTFVFX0xFTkdUSF9MSU1JVDogcCxcbiAgT1RFTF9BVFRSSUJVVEVfQ09VTlRfTElNSVQ6IGQsXG4gIE9URUxfU1BBTl9BVFRSSUJVVEVfVkFMVUVfTEVOR1RIX0xJTUlUOiBwLFxuICBPVEVMX1NQQU5fQVRUUklCVVRFX0NPVU5UX0xJTUlUOiBkLFxuICBPVEVMX0xPR1JFQ09SRF9BVFRSSUJVVEVfVkFMVUVfTEVOR1RIX0xJTUlUOiBwLFxuICBPVEVMX0xPR1JFQ09SRF9BVFRSSUJVVEVfQ09VTlRfTElNSVQ6IGQsXG4gIE9URUxfU1BBTl9FVkVOVF9DT1VOVF9MSU1JVDogMTI4LFxuICBPVEVMX1NQQU5fTElOS19DT1VOVF9MSU1JVDogMTI4LFxuICBPVEVMX1NQQU5fQVRUUklCVVRFX1BFUl9FVkVOVF9DT1VOVF9MSU1JVDogVHIsXG4gIE9URUxfU1BBTl9BVFRSSUJVVEVfUEVSX0xJTktfQ09VTlRfTElNSVQ6IHVyLFxuICBPVEVMX1RSQUNFU19FWFBPUlRFUjogXCJcIixcbiAgT1RFTF9UUkFDRVNfU0FNUExFUjogdi5QYXJlbnRCYXNlZEFsd2F5c09uLFxuICBPVEVMX1RSQUNFU19TQU1QTEVSX0FSRzogXCJcIixcbiAgT1RFTF9MT0dTX0VYUE9SVEVSOiBcIlwiLFxuICBPVEVMX0VYUE9SVEVSX09UTFBfSU5TRUNVUkU6IFwiXCIsXG4gIE9URUxfRVhQT1JURVJfT1RMUF9UUkFDRVNfSU5TRUNVUkU6IFwiXCIsXG4gIE9URUxfRVhQT1JURVJfT1RMUF9NRVRSSUNTX0lOU0VDVVJFOiBcIlwiLFxuICBPVEVMX0VYUE9SVEVSX09UTFBfTE9HU19JTlNFQ1VSRTogXCJcIixcbiAgT1RFTF9FWFBPUlRFUl9PVExQX0NFUlRJRklDQVRFOiBcIlwiLFxuICBPVEVMX0VYUE9SVEVSX09UTFBfVFJBQ0VTX0NFUlRJRklDQVRFOiBcIlwiLFxuICBPVEVMX0VYUE9SVEVSX09UTFBfTUVUUklDU19DRVJUSUZJQ0FURTogXCJcIixcbiAgT1RFTF9FWFBPUlRFUl9PVExQX0xPR1NfQ0VSVElGSUNBVEU6IFwiXCIsXG4gIE9URUxfRVhQT1JURVJfT1RMUF9DT01QUkVTU0lPTjogXCJcIixcbiAgT1RFTF9FWFBPUlRFUl9PVExQX1RSQUNFU19DT01QUkVTU0lPTjogXCJcIixcbiAgT1RFTF9FWFBPUlRFUl9PVExQX01FVFJJQ1NfQ09NUFJFU1NJT046IFwiXCIsXG4gIE9URUxfRVhQT1JURVJfT1RMUF9MT0dTX0NPTVBSRVNTSU9OOiBcIlwiLFxuICBPVEVMX0VYUE9SVEVSX09UTFBfQ0xJRU5UX0tFWTogXCJcIixcbiAgT1RFTF9FWFBPUlRFUl9PVExQX1RSQUNFU19DTElFTlRfS0VZOiBcIlwiLFxuICBPVEVMX0VYUE9SVEVSX09UTFBfTUVUUklDU19DTElFTlRfS0VZOiBcIlwiLFxuICBPVEVMX0VYUE9SVEVSX09UTFBfTE9HU19DTElFTlRfS0VZOiBcIlwiLFxuICBPVEVMX0VYUE9SVEVSX09UTFBfQ0xJRU5UX0NFUlRJRklDQVRFOiBcIlwiLFxuICBPVEVMX0VYUE9SVEVSX09UTFBfVFJBQ0VTX0NMSUVOVF9DRVJUSUZJQ0FURTogXCJcIixcbiAgT1RFTF9FWFBPUlRFUl9PVExQX01FVFJJQ1NfQ0xJRU5UX0NFUlRJRklDQVRFOiBcIlwiLFxuICBPVEVMX0VYUE9SVEVSX09UTFBfTE9HU19DTElFTlRfQ0VSVElGSUNBVEU6IFwiXCIsXG4gIE9URUxfRVhQT1JURVJfT1RMUF9QUk9UT0NPTDogXCJodHRwL3Byb3RvYnVmXCIsXG4gIE9URUxfRVhQT1JURVJfT1RMUF9UUkFDRVNfUFJPVE9DT0w6IFwiaHR0cC9wcm90b2J1ZlwiLFxuICBPVEVMX0VYUE9SVEVSX09UTFBfTUVUUklDU19QUk9UT0NPTDogXCJodHRwL3Byb3RvYnVmXCIsXG4gIE9URUxfRVhQT1JURVJfT1RMUF9MT0dTX1BST1RPQ09MOiBcImh0dHAvcHJvdG9idWZcIixcbiAgT1RFTF9FWFBPUlRFUl9PVExQX01FVFJJQ1NfVEVNUE9SQUxJVFlfUFJFRkVSRU5DRTogXCJjdW11bGF0aXZlXCIsXG4gIE9URUxfU0VNQ09OVl9TVEFCSUxJVFlfT1BUX0lOOiBbXVxufTtcbmZ1bmN0aW9uIFRlKHIsIGUsIHQpIHtcbiAgaWYgKCEodHlwZW9mIHRbcl0gPiBcInVcIikpIHtcbiAgICB2YXIgbiA9IFN0cmluZyh0W3JdKTtcbiAgICBlW3JdID0gbi50b0xvd2VyQ2FzZSgpID09PSBcInRydWVcIjtcbiAgfVxufVxuZnVuY3Rpb24gdWUociwgZSwgdCwgbiwgYSkge1xuICBpZiAobiA9PT0gdm9pZCAwICYmIChuID0gLTEgLyAwKSwgYSA9PT0gdm9pZCAwICYmIChhID0gMSAvIDApLCB0eXBlb2YgdFtyXSA8IFwidVwiKSB7XG4gICAgdmFyIGkgPSBOdW1iZXIodFtyXSk7XG4gICAgaXNOYU4oaSkgfHwgKGkgPCBuID8gZVtyXSA9IG4gOiBpID4gYSA/IGVbcl0gPSBhIDogZVtyXSA9IGkpO1xuICB9XG59XG5mdW5jdGlvbiBmZShyLCBlLCB0LCBuKSB7XG4gIG4gPT09IHZvaWQgMCAmJiAobiA9IHRlKTtcbiAgdmFyIGEgPSB0W3JdO1xuICB0eXBlb2YgYSA9PSBcInN0cmluZ1wiICYmIChlW3JdID0gYS5zcGxpdChuKS5tYXAoZnVuY3Rpb24oaSkge1xuICAgIHJldHVybiBpLnRyaW0oKTtcbiAgfSkpO1xufVxudmFyIHNlID0ge1xuICBBTEw6IFokMS5BTEwsXG4gIFZFUkJPU0U6IFokMS5WRVJCT1NFLFxuICBERUJVRzogWiQxLkRFQlVHLFxuICBJTkZPOiBaJDEuSU5GTyxcbiAgV0FSTjogWiQxLldBUk4sXG4gIEVSUk9SOiBaJDEuRVJST1IsXG4gIE5PTkU6IFokMS5OT05FXG59O1xuZnVuY3Rpb24gbGUociwgZSwgdCkge1xuICB2YXIgbiA9IHRbcl07XG4gIGlmICh0eXBlb2YgbiA9PSBcInN0cmluZ1wiKSB7XG4gICAgdmFyIGEgPSBzZVtuLnRvVXBwZXJDYXNlKCldO1xuICAgIGEgIT0gbnVsbCAmJiAoZVtyXSA9IGEpO1xuICB9XG59XG5mdW5jdGlvbiBqKHIpIHtcbiAgdmFyIGUgPSB7fTtcbiAgZm9yICh2YXIgdCBpbiBWKSB7XG4gICAgdmFyIG4gPSB0O1xuICAgIHN3aXRjaCAobikge1xuICAgICAgY2FzZSBcIk9URUxfTE9HX0xFVkVMXCI6XG4gICAgICAgIGxlKG4sIGUsIHIpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGlmIChhZShuKSlcbiAgICAgICAgICBUZShuLCBlLCByKTtcbiAgICAgICAgZWxzZSBpZiAob2UobikpXG4gICAgICAgICAgdWUobiwgZSwgcik7XG4gICAgICAgIGVsc2UgaWYgKEVlKG4pKVxuICAgICAgICAgIGZlKG4sIGUsIHIpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICB2YXIgYSA9IHJbbl07XG4gICAgICAgICAgdHlwZW9mIGEgPCBcInVcIiAmJiBhICE9PSBudWxsICYmIChlW25dID0gU3RyaW5nKGEpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gZTtcbn1cbmZ1bmN0aW9uIE9lKCkge1xuICB2YXIgciA9IGooaF8pO1xuICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgViwgcik7XG59XG5mdW5jdGlvbiBjZSgpIHtcbiAgcmV0dXJuIGooaF8pO1xufVxudmFyIFJlID0gZnVuY3Rpb24ociwgZSkge1xuICB2YXIgdCA9IHR5cGVvZiBTeW1ib2wgPT0gXCJmdW5jdGlvblwiICYmIHJbU3ltYm9sLml0ZXJhdG9yXTtcbiAgaWYgKCF0KSByZXR1cm4gcjtcbiAgdmFyIG4gPSB0LmNhbGwociksIGEsIGkgPSBbXSwgbztcbiAgdHJ5IHtcbiAgICBmb3IgKDsgKGUgPT09IHZvaWQgMCB8fCBlLS0gPiAwKSAmJiAhKGEgPSBuLm5leHQoKSkuZG9uZTsgKSBpLnB1c2goYS52YWx1ZSk7XG4gIH0gY2F0Y2ggKF8pIHtcbiAgICBvID0geyBlcnJvcjogXyB9O1xuICB9IGZpbmFsbHkge1xuICAgIHRyeSB7XG4gICAgICBhICYmICFhLmRvbmUgJiYgKHQgPSBuLnJldHVybikgJiYgdC5jYWxsKG4pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAobykgdGhyb3cgby5lcnJvcjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGk7XG59LCBwZSA9IGZ1bmN0aW9uKHIsIGUsIHQpIHtcbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIGZvciAodmFyIG4gPSAwLCBhID0gZS5sZW5ndGgsIGk7IG4gPCBhOyBuKyspXG4gICAgKGkgfHwgIShuIGluIGUpKSAmJiAoaSB8fCAoaSA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUsIDAsIG4pKSwgaVtuXSA9IGVbbl0pO1xuICByZXR1cm4gci5jb25jYXQoaSB8fCBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlKSk7XG59O1xuZnVuY3Rpb24gZGUocikge1xuICByZXR1cm4gYnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZywgcGUoW10sIFJlKEEkMShyKSksIGZhbHNlKSkpO1xufVxudmFyIExlID0gOCwgQWUgPSAxNiwgUGUgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgLyogQF9fUFVSRV9fICovIChmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiByKCkge1xuICAgICAgdGhpcy5nZW5lcmF0ZVRyYWNlSWQgPSBZKEFlKSwgdGhpcy5nZW5lcmF0ZVNwYW5JZCA9IFkoTGUpO1xuICAgIH1cbiAgICByZXR1cm4gcjtcbiAgfSkoKVxuKSwgUiA9IEFycmF5KDMyKTtcbmZ1bmN0aW9uIFkocikge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgZm9yICh2YXIgdCA9IDA7IHQgPCByICogMjsgdCsrKVxuICAgICAgUlt0XSA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDE2KSArIDQ4LCBSW3RdID49IDU4ICYmIChSW3RdICs9IDM5KTtcbiAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLCBSLnNsaWNlKDAsIHIgKiAyKSk7XG4gIH07XG59XG5mdW5jdGlvbiBTZShyKSB7XG59XG52YXIgSWUgPSBmdW5jdGlvbihyKSB7XG4gIHZhciBlID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCB0ID0gZSAmJiByW2VdLCBuID0gMDtcbiAgaWYgKHQpIHJldHVybiB0LmNhbGwocik7XG4gIGlmIChyICYmIHR5cGVvZiByLmxlbmd0aCA9PSBcIm51bWJlclwiKSByZXR1cm4ge1xuICAgIG5leHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHIgJiYgbiA+PSByLmxlbmd0aCAmJiAociA9IHZvaWQgMCksIHsgdmFsdWU6IHIgJiYgcltuKytdLCBkb25lOiAhciB9O1xuICAgIH1cbiAgfTtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihlID8gXCJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLlwiIDogXCJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xufSwgdmUgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIkMShlKSB7XG4gICAgICBlID09PSB2b2lkIDAgJiYgKGUgPSB7fSk7XG4gICAgICB2YXIgdDtcbiAgICAgIHRoaXMuX3Byb3BhZ2F0b3JzID0gKHQgPSBlLnByb3BhZ2F0b3JzKSAhPT0gbnVsbCAmJiB0ICE9PSB2b2lkIDAgPyB0IDogW10sIHRoaXMuX2ZpZWxkcyA9IEFycmF5LmZyb20obmV3IFNldCh0aGlzLl9wcm9wYWdhdG9ycy5tYXAoZnVuY3Rpb24obikge1xuICAgICAgICByZXR1cm4gdHlwZW9mIG4uZmllbGRzID09IFwiZnVuY3Rpb25cIiA/IG4uZmllbGRzKCkgOiBbXTtcbiAgICAgIH0pLnJlZHVjZShmdW5jdGlvbihuLCBhKSB7XG4gICAgICAgIHJldHVybiBuLmNvbmNhdChhKTtcbiAgICAgIH0sIFtdKSkpO1xuICAgIH1cbiAgICByZXR1cm4gciQxLnByb3RvdHlwZS5pbmplY3QgPSBmdW5jdGlvbihlLCB0LCBuKSB7XG4gICAgICB2YXIgYSwgaTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGZvciAodmFyIG8gPSBJZSh0aGlzLl9wcm9wYWdhdG9ycyksIF8gPSBvLm5leHQoKTsgIV8uZG9uZTsgXyA9IG8ubmV4dCgpKSB7XG4gICAgICAgICAgdmFyIEUgPSBfLnZhbHVlO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBFLmluamVjdChlLCB0LCBuKTtcbiAgICAgICAgICB9IGNhdGNoIChUKSB7XG4gICAgICAgICAgICByLndhcm4oXCJGYWlsZWQgdG8gaW5qZWN0IHdpdGggXCIgKyBFLmNvbnN0cnVjdG9yLm5hbWUgKyBcIi4gRXJyOiBcIiArIFQubWVzc2FnZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChUKSB7XG4gICAgICAgIGEgPSB7IGVycm9yOiBUIH07XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIF8gJiYgIV8uZG9uZSAmJiAoaSA9IG8ucmV0dXJuKSAmJiBpLmNhbGwobyk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgaWYgKGEpIHRocm93IGEuZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCByJDEucHJvdG90eXBlLmV4dHJhY3QgPSBmdW5jdGlvbihlLCB0LCBuKSB7XG4gICAgICByZXR1cm4gdGhpcy5fcHJvcGFnYXRvcnMucmVkdWNlKGZ1bmN0aW9uKGEsIGkpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gaS5leHRyYWN0KGEsIHQsIG4pO1xuICAgICAgICB9IGNhdGNoIChvKSB7XG4gICAgICAgICAgci53YXJuKFwiRmFpbGVkIHRvIGV4dHJhY3Qgd2l0aCBcIiArIGkuY29uc3RydWN0b3IubmFtZSArIFwiLiBFcnI6IFwiICsgby5tZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYTtcbiAgICAgIH0sIGUpO1xuICAgIH0sIHIkMS5wcm90b3R5cGUuZmllbGRzID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZmllbGRzLnNsaWNlKCk7XG4gICAgfSwgciQxO1xuICB9KSgpXG4pLCBCID0gXCJbXzAtOWEtei0qL11cIiwgeWUgPSBcIlthLXpdXCIgKyBCICsgXCJ7MCwyNTV9XCIsIGhlID0gXCJbYS16MC05XVwiICsgQiArIFwiezAsMjQwfUBbYS16XVwiICsgQiArIFwiezAsMTN9XCIsIGdlID0gbmV3IFJlZ0V4cChcIl4oPzpcIiArIHllICsgXCJ8XCIgKyBoZSArIFwiKSRcIiksIG1lID0gL15bIC1+XXswLDI1NX1bIS1+XSQvLCBDZSA9IC8sfD0vO1xuZnVuY3Rpb24gTmUocikge1xuICByZXR1cm4gZ2UudGVzdChyKTtcbn1cbmZ1bmN0aW9uIE1lKHIpIHtcbiAgcmV0dXJuIG1lLnRlc3QocikgJiYgIUNlLnRlc3Qocik7XG59XG52YXIgeiA9IDMyLCBVZSA9IDUxMiwgVyA9IFwiLFwiLCBaID0gXCI9XCIsIGZyID0gKFxuICAvKiogQGNsYXNzICovXG4gIChmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiByKGUpIHtcbiAgICAgIHRoaXMuX2ludGVybmFsU3RhdGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpLCBlICYmIHRoaXMuX3BhcnNlKGUpO1xuICAgIH1cbiAgICByZXR1cm4gci5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24oZSwgdCkge1xuICAgICAgdmFyIG4gPSB0aGlzLl9jbG9uZSgpO1xuICAgICAgcmV0dXJuIG4uX2ludGVybmFsU3RhdGUuaGFzKGUpICYmIG4uX2ludGVybmFsU3RhdGUuZGVsZXRlKGUpLCBuLl9pbnRlcm5hbFN0YXRlLnNldChlLCB0KSwgbjtcbiAgICB9LCByLnByb3RvdHlwZS51bnNldCA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgIHZhciB0ID0gdGhpcy5fY2xvbmUoKTtcbiAgICAgIHJldHVybiB0Ll9pbnRlcm5hbFN0YXRlLmRlbGV0ZShlKSwgdDtcbiAgICB9LCByLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbihlKSB7XG4gICAgICByZXR1cm4gdGhpcy5faW50ZXJuYWxTdGF0ZS5nZXQoZSk7XG4gICAgfSwgci5wcm90b3R5cGUuc2VyaWFsaXplID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgZSA9IHRoaXM7XG4gICAgICByZXR1cm4gdGhpcy5fa2V5cygpLnJlZHVjZShmdW5jdGlvbih0LCBuKSB7XG4gICAgICAgIHJldHVybiB0LnB1c2gobiArIFogKyBlLmdldChuKSksIHQ7XG4gICAgICB9LCBbXSkuam9pbihXKTtcbiAgICB9LCByLnByb3RvdHlwZS5fcGFyc2UgPSBmdW5jdGlvbihlKSB7XG4gICAgICBlLmxlbmd0aCA+IFVlIHx8ICh0aGlzLl9pbnRlcm5hbFN0YXRlID0gZS5zcGxpdChXKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKHQsIG4pIHtcbiAgICAgICAgdmFyIGEgPSBuLnRyaW0oKSwgaSA9IGEuaW5kZXhPZihaKTtcbiAgICAgICAgaWYgKGkgIT09IC0xKSB7XG4gICAgICAgICAgdmFyIG8gPSBhLnNsaWNlKDAsIGkpLCBfID0gYS5zbGljZShpICsgMSwgbi5sZW5ndGgpO1xuICAgICAgICAgIE5lKG8pICYmIE1lKF8pICYmIHQuc2V0KG8sIF8pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgICAgfSwgLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKSksIHRoaXMuX2ludGVybmFsU3RhdGUuc2l6ZSA+IHogJiYgKHRoaXMuX2ludGVybmFsU3RhdGUgPSBuZXcgTWFwKEFycmF5LmZyb20odGhpcy5faW50ZXJuYWxTdGF0ZS5lbnRyaWVzKCkpLnJldmVyc2UoKS5zbGljZSgwLCB6KSkpKTtcbiAgICB9LCByLnByb3RvdHlwZS5fa2V5cyA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5faW50ZXJuYWxTdGF0ZS5rZXlzKCkpLnJldmVyc2UoKTtcbiAgICB9LCByLnByb3RvdHlwZS5fY2xvbmUgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBlID0gbmV3IHIoKTtcbiAgICAgIHJldHVybiBlLl9pbnRlcm5hbFN0YXRlID0gbmV3IE1hcCh0aGlzLl9pbnRlcm5hbFN0YXRlKSwgZTtcbiAgICB9LCByO1xuICB9KSgpXG4pLCBMID0gXCJ0cmFjZXBhcmVudFwiLCBBID0gXCJ0cmFjZXN0YXRlXCIsIEJlID0gXCIwMFwiLCBiZSA9IFwiKD8hZmYpW1xcXFxkYS1mXXsyfVwiLCBEZSA9IFwiKD8hWzBdezMyfSlbXFxcXGRhLWZdezMyfVwiLCBYZSA9IFwiKD8hWzBdezE2fSlbXFxcXGRhLWZdezE2fVwiLCBHZSA9IFwiW1xcXFxkYS1mXXsyfVwiLCB3ZSA9IG5ldyBSZWdFeHAoXCJeXFxcXHM/KFwiICsgYmUgKyBcIiktKFwiICsgRGUgKyBcIiktKFwiICsgWGUgKyBcIiktKFwiICsgR2UgKyBcIikoLS4qKT9cXFxccz8kXCIpO1xuZnVuY3Rpb24gc3Iocikge1xuICB2YXIgZSA9IHdlLmV4ZWMocik7XG4gIHJldHVybiAhZSB8fCBlWzFdID09PSBcIjAwXCIgJiYgZVs1XSA/IG51bGwgOiB7XG4gICAgdHJhY2VJZDogZVsyXSxcbiAgICBzcGFuSWQ6IGVbM10sXG4gICAgdHJhY2VGbGFnczogcGFyc2VJbnQoZVs0XSwgMTYpXG4gIH07XG59XG52YXIgVmUgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIoKSB7XG4gICAgfVxuICAgIHJldHVybiByLnByb3RvdHlwZS5pbmplY3QgPSBmdW5jdGlvbihlLCB0LCBuKSB7XG4gICAgICB2YXIgYSQxID0gTWUkMS5nZXRTcGFuQ29udGV4dChlKTtcbiAgICAgIGlmICghKCFhJDEgfHwgYShlKSB8fCAheW4oYSQxKSkpIHtcbiAgICAgICAgdmFyIGkgPSBCZSArIFwiLVwiICsgYSQxLnRyYWNlSWQgKyBcIi1cIiArIGEkMS5zcGFuSWQgKyBcIi0wXCIgKyBOdW1iZXIoYSQxLnRyYWNlRmxhZ3MgfHwgQnQuTk9ORSkudG9TdHJpbmcoMTYpO1xuICAgICAgICBuLnNldCh0LCBMLCBpKSwgYSQxLnRyYWNlU3RhdGUgJiYgbi5zZXQodCwgQSwgYSQxLnRyYWNlU3RhdGUuc2VyaWFsaXplKCkpO1xuICAgICAgfVxuICAgIH0sIHIucHJvdG90eXBlLmV4dHJhY3QgPSBmdW5jdGlvbihlLCB0LCBuKSB7XG4gICAgICB2YXIgYSA9IG4uZ2V0KHQsIEwpO1xuICAgICAgaWYgKCFhKVxuICAgICAgICByZXR1cm4gZTtcbiAgICAgIHZhciBpID0gQXJyYXkuaXNBcnJheShhKSA/IGFbMF0gOiBhO1xuICAgICAgaWYgKHR5cGVvZiBpICE9IFwic3RyaW5nXCIpXG4gICAgICAgIHJldHVybiBlO1xuICAgICAgdmFyIG8gPSBzcihpKTtcbiAgICAgIGlmICghbylcbiAgICAgICAgcmV0dXJuIGU7XG4gICAgICBvLmlzUmVtb3RlID0gdHJ1ZTtcbiAgICAgIHZhciBfID0gbi5nZXQodCwgQSk7XG4gICAgICBpZiAoXykge1xuICAgICAgICB2YXIgRSA9IEFycmF5LmlzQXJyYXkoXykgPyBfLmpvaW4oXCIsXCIpIDogXztcbiAgICAgICAgby50cmFjZVN0YXRlID0gbmV3IGZyKHR5cGVvZiBFID09IFwic3RyaW5nXCIgPyBFIDogdm9pZCAwKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBNZSQxLnNldFNwYW5Db250ZXh0KGUsIG8pO1xuICAgIH0sIHIucHJvdG90eXBlLmZpZWxkcyA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIFtMLCBBXTtcbiAgICB9LCByO1xuICB9KSgpXG4pLCBIID0gWmkoXCJPcGVuVGVsZW1ldHJ5IFNESyBDb250ZXh0IEtleSBSUENfTUVUQURBVEFcIiksIGI7XG4oZnVuY3Rpb24ocikge1xuICByLkhUVFAgPSBcImh0dHBcIjtcbn0pKGIgfHwgKGIgPSB7fSkpO1xuZnVuY3Rpb24gamUociwgZSkge1xuICByZXR1cm4gci5zZXRWYWx1ZShILCBlKTtcbn1cbmZ1bmN0aW9uIEhlKHIpIHtcbiAgcmV0dXJuIHIuZGVsZXRlVmFsdWUoSCk7XG59XG5mdW5jdGlvbiB4ZShyKSB7XG4gIHJldHVybiByLmdldFZhbHVlKEgpO1xufVxudmFyIEQgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIoKSB7XG4gICAgfVxuICAgIHJldHVybiByLnByb3RvdHlwZS5zaG91bGRTYW1wbGUgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRlY2lzaW9uOiBsLk5PVF9SRUNPUkRcbiAgICAgIH07XG4gICAgfSwgci5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBcIkFsd2F5c09mZlNhbXBsZXJcIjtcbiAgICB9LCByO1xuICB9KSgpXG4pLCBQID0gKFxuICAvKiogQGNsYXNzICovXG4gIChmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiByKCkge1xuICAgIH1cbiAgICByZXR1cm4gci5wcm90b3R5cGUuc2hvdWxkU2FtcGxlID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBkZWNpc2lvbjogbC5SRUNPUkRfQU5EX1NBTVBMRURcbiAgICAgIH07XG4gICAgfSwgci5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBcIkFsd2F5c09uU2FtcGxlclwiO1xuICAgIH0sIHI7XG4gIH0pKClcbiksIEZlID0gKFxuICAvKiogQGNsYXNzICovXG4gIChmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiByKGUpIHtcbiAgICAgIHZhciB0LCBuLCBhLCBpO1xuICAgICAgdGhpcy5fcm9vdCA9IGUucm9vdCwgdGhpcy5fcm9vdCB8fCAoRXIobmV3IEVycm9yKFwiUGFyZW50QmFzZWRTYW1wbGVyIG11c3QgaGF2ZSBhIHJvb3Qgc2FtcGxlciBjb25maWd1cmVkXCIpKSwgdGhpcy5fcm9vdCA9IG5ldyBQKCkpLCB0aGlzLl9yZW1vdGVQYXJlbnRTYW1wbGVkID0gKHQgPSBlLnJlbW90ZVBhcmVudFNhbXBsZWQpICE9PSBudWxsICYmIHQgIT09IHZvaWQgMCA/IHQgOiBuZXcgUCgpLCB0aGlzLl9yZW1vdGVQYXJlbnROb3RTYW1wbGVkID0gKG4gPSBlLnJlbW90ZVBhcmVudE5vdFNhbXBsZWQpICE9PSBudWxsICYmIG4gIT09IHZvaWQgMCA/IG4gOiBuZXcgRCgpLCB0aGlzLl9sb2NhbFBhcmVudFNhbXBsZWQgPSAoYSA9IGUubG9jYWxQYXJlbnRTYW1wbGVkKSAhPT0gbnVsbCAmJiBhICE9PSB2b2lkIDAgPyBhIDogbmV3IFAoKSwgdGhpcy5fbG9jYWxQYXJlbnROb3RTYW1wbGVkID0gKGkgPSBlLmxvY2FsUGFyZW50Tm90U2FtcGxlZCkgIT09IG51bGwgJiYgaSAhPT0gdm9pZCAwID8gaSA6IG5ldyBEKCk7XG4gICAgfVxuICAgIHJldHVybiByLnByb3RvdHlwZS5zaG91bGRTYW1wbGUgPSBmdW5jdGlvbihlLCB0LCBuLCBhLCBpLCBvKSB7XG4gICAgICB2YXIgXyA9IE1lJDEuZ2V0U3BhbkNvbnRleHQoZSk7XG4gICAgICByZXR1cm4gIV8gfHwgIXluKF8pID8gdGhpcy5fcm9vdC5zaG91bGRTYW1wbGUoZSwgdCwgbiwgYSwgaSwgbykgOiBfLmlzUmVtb3RlID8gXy50cmFjZUZsYWdzICYgQnQuU0FNUExFRCA/IHRoaXMuX3JlbW90ZVBhcmVudFNhbXBsZWQuc2hvdWxkU2FtcGxlKGUsIHQsIG4sIGEsIGksIG8pIDogdGhpcy5fcmVtb3RlUGFyZW50Tm90U2FtcGxlZC5zaG91bGRTYW1wbGUoZSwgdCwgbiwgYSwgaSwgbykgOiBfLnRyYWNlRmxhZ3MgJiBCdC5TQU1QTEVEID8gdGhpcy5fbG9jYWxQYXJlbnRTYW1wbGVkLnNob3VsZFNhbXBsZShlLCB0LCBuLCBhLCBpLCBvKSA6IHRoaXMuX2xvY2FsUGFyZW50Tm90U2FtcGxlZC5zaG91bGRTYW1wbGUoZSwgdCwgbiwgYSwgaSwgbyk7XG4gICAgfSwgci5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBcIlBhcmVudEJhc2Vke3Jvb3Q9XCIgKyB0aGlzLl9yb290LnRvU3RyaW5nKCkgKyBcIiwgcmVtb3RlUGFyZW50U2FtcGxlZD1cIiArIHRoaXMuX3JlbW90ZVBhcmVudFNhbXBsZWQudG9TdHJpbmcoKSArIFwiLCByZW1vdGVQYXJlbnROb3RTYW1wbGVkPVwiICsgdGhpcy5fcmVtb3RlUGFyZW50Tm90U2FtcGxlZC50b1N0cmluZygpICsgXCIsIGxvY2FsUGFyZW50U2FtcGxlZD1cIiArIHRoaXMuX2xvY2FsUGFyZW50U2FtcGxlZC50b1N0cmluZygpICsgXCIsIGxvY2FsUGFyZW50Tm90U2FtcGxlZD1cIiArIHRoaXMuX2xvY2FsUGFyZW50Tm90U2FtcGxlZC50b1N0cmluZygpICsgXCJ9XCI7XG4gICAgfSwgcjtcbiAgfSkoKVxuKSwgS2UgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIoZSkge1xuICAgICAgZSA9PT0gdm9pZCAwICYmIChlID0gMCksIHRoaXMuX3JhdGlvID0gZSwgdGhpcy5fcmF0aW8gPSB0aGlzLl9ub3JtYWxpemUoZSksIHRoaXMuX3VwcGVyQm91bmQgPSBNYXRoLmZsb29yKHRoaXMuX3JhdGlvICogNDI5NDk2NzI5NSk7XG4gICAgfVxuICAgIHJldHVybiByLnByb3RvdHlwZS5zaG91bGRTYW1wbGUgPSBmdW5jdGlvbihlLCB0KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBkZWNpc2lvbjogZHModCkgJiYgdGhpcy5fYWNjdW11bGF0ZSh0KSA8IHRoaXMuX3VwcGVyQm91bmQgPyBsLlJFQ09SRF9BTkRfU0FNUExFRCA6IGwuTk9UX1JFQ09SRFxuICAgICAgfTtcbiAgICB9LCByLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIFwiVHJhY2VJZFJhdGlvQmFzZWR7XCIgKyB0aGlzLl9yYXRpbyArIFwifVwiO1xuICAgIH0sIHIucHJvdG90eXBlLl9ub3JtYWxpemUgPSBmdW5jdGlvbihlKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIGUgIT0gXCJudW1iZXJcIiB8fCBpc05hTihlKSA/IDAgOiBlID49IDEgPyAxIDogZSA8PSAwID8gMCA6IGU7XG4gICAgfSwgci5wcm90b3R5cGUuX2FjY3VtdWxhdGUgPSBmdW5jdGlvbihlKSB7XG4gICAgICBmb3IgKHZhciB0ID0gMCwgbiA9IDA7IG4gPCBlLmxlbmd0aCAvIDg7IG4rKykge1xuICAgICAgICB2YXIgYSA9IG4gKiA4LCBpID0gcGFyc2VJbnQoZS5zbGljZShhLCBhICsgOCksIDE2KTtcbiAgICAgICAgdCA9ICh0IF4gaSkgPj4+IDA7XG4gICAgICB9XG4gICAgICByZXR1cm4gdDtcbiAgICB9LCByO1xuICB9KSgpXG4pLCBZZSA9IFwiW29iamVjdCBPYmplY3RdXCIsIHplID0gXCJbb2JqZWN0IE51bGxdXCIsIFdlID0gXCJbb2JqZWN0IFVuZGVmaW5lZF1cIiwgWmUgPSBGdW5jdGlvbi5wcm90b3R5cGUsIGxyID0gWmUudG9TdHJpbmcsICRlID0gbHIuY2FsbChPYmplY3QpLCBKZSA9IFFlKE9iamVjdC5nZXRQcm90b3R5cGVPZiwgT2JqZWN0KSwgT3IgPSBPYmplY3QucHJvdG90eXBlLCBjciA9IE9yLmhhc093blByb3BlcnR5LCBmID0gU3ltYm9sID8gU3ltYm9sLnRvU3RyaW5nVGFnIDogdm9pZCAwLCBSciA9IE9yLnRvU3RyaW5nO1xuZnVuY3Rpb24gUWUociwgZSkge1xuICByZXR1cm4gZnVuY3Rpb24odCkge1xuICAgIHJldHVybiByKGUodCkpO1xuICB9O1xufVxuZnVuY3Rpb24gJChyKSB7XG4gIGlmICghcWUocikgfHwga2UocikgIT09IFllKVxuICAgIHJldHVybiBmYWxzZTtcbiAgdmFyIGUgPSBKZShyKTtcbiAgaWYgKGUgPT09IG51bGwpXG4gICAgcmV0dXJuIHRydWU7XG4gIHZhciB0ID0gY3IuY2FsbChlLCBcImNvbnN0cnVjdG9yXCIpICYmIGUuY29uc3RydWN0b3I7XG4gIHJldHVybiB0eXBlb2YgdCA9PSBcImZ1bmN0aW9uXCIgJiYgdCBpbnN0YW5jZW9mIHQgJiYgbHIuY2FsbCh0KSA9PT0gJGU7XG59XG5mdW5jdGlvbiBxZShyKSB7XG4gIHJldHVybiByICE9IG51bGwgJiYgdHlwZW9mIHIgPT0gXCJvYmplY3RcIjtcbn1cbmZ1bmN0aW9uIGtlKHIpIHtcbiAgcmV0dXJuIHIgPT0gbnVsbCA/IHIgPT09IHZvaWQgMCA/IFdlIDogemUgOiBmICYmIGYgaW4gT2JqZWN0KHIpID8gcnQocikgOiBldChyKTtcbn1cbmZ1bmN0aW9uIHJ0KHIpIHtcbiAgdmFyIGUgPSBjci5jYWxsKHIsIGYpLCB0ID0gcltmXSwgbiA9IGZhbHNlO1xuICB0cnkge1xuICAgIHJbZl0gPSB2b2lkIDAsIG4gPSAhMDtcbiAgfSBjYXRjaCB7XG4gIH1cbiAgdmFyIGEgPSBSci5jYWxsKHIpO1xuICByZXR1cm4gbiAmJiAoZSA/IHJbZl0gPSB0IDogZGVsZXRlIHJbZl0pLCBhO1xufVxuZnVuY3Rpb24gZXQocikge1xuICByZXR1cm4gUnIuY2FsbChyKTtcbn1cbnZhciB0dCA9IDIwO1xuZnVuY3Rpb24gbnQoKSB7XG4gIGZvciAodmFyIHIgPSBbXSwgZSA9IDA7IGUgPCBhcmd1bWVudHMubGVuZ3RoOyBlKyspXG4gICAgcltlXSA9IGFyZ3VtZW50c1tlXTtcbiAgZm9yICh2YXIgdCA9IHIuc2hpZnQoKSwgbiA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgV2Vha01hcCgpOyByLmxlbmd0aCA+IDA7IClcbiAgICB0ID0gcHIodCwgci5zaGlmdCgpLCAwLCBuKTtcbiAgcmV0dXJuIHQ7XG59XG5mdW5jdGlvbiBDKHIpIHtcbiAgcmV0dXJuIHkocikgPyByLnNsaWNlKCkgOiByO1xufVxuZnVuY3Rpb24gcHIociwgZSwgdCwgbikge1xuICB0ID09PSB2b2lkIDAgJiYgKHQgPSAwKTtcbiAgdmFyIGE7XG4gIGlmICghKHQgPiB0dCkpIHtcbiAgICBpZiAodCsrLCBTKHIpIHx8IFMoZSkgfHwgZHIoZSkpXG4gICAgICBhID0gQyhlKTtcbiAgICBlbHNlIGlmICh5KHIpKSB7XG4gICAgICBpZiAoYSA9IHIuc2xpY2UoKSwgeShlKSlcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIG8gPSBlLmxlbmd0aDsgaSA8IG87IGkrKylcbiAgICAgICAgICBhLnB1c2goQyhlW2ldKSk7XG4gICAgICBlbHNlIGlmIChPKGUpKVxuICAgICAgICBmb3IgKHZhciBfID0gT2JqZWN0LmtleXMoZSksIGkgPSAwLCBvID0gXy5sZW5ndGg7IGkgPCBvOyBpKyspIHtcbiAgICAgICAgICB2YXIgRSA9IF9baV07XG4gICAgICAgICAgYVtFXSA9IEMoZVtFXSk7XG4gICAgICAgIH1cbiAgICB9IGVsc2UgaWYgKE8ocikpXG4gICAgICBpZiAoTyhlKSkge1xuICAgICAgICBpZiAoIWF0KHIsIGUpKVxuICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICBhID0gT2JqZWN0LmFzc2lnbih7fSwgcik7XG4gICAgICAgIGZvciAodmFyIF8gPSBPYmplY3Qua2V5cyhlKSwgaSA9IDAsIG8gPSBfLmxlbmd0aDsgaSA8IG87IGkrKykge1xuICAgICAgICAgIHZhciBFID0gX1tpXSwgVCA9IGVbRV07XG4gICAgICAgICAgaWYgKFMoVCkpXG4gICAgICAgICAgICB0eXBlb2YgVCA+IFwidVwiID8gZGVsZXRlIGFbRV0gOiBhW0VdID0gVDtcbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHZhciBzID0gYVtFXSwgaCA9IFQ7XG4gICAgICAgICAgICBpZiAoSihyLCBFLCBuKSB8fCBKKGUsIEUsIG4pKVxuICAgICAgICAgICAgICBkZWxldGUgYVtFXTtcbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICBpZiAoTyhzKSAmJiBPKGgpKSB7XG4gICAgICAgICAgICAgICAgdmFyIHggPSBuLmdldChzKSB8fCBbXSwgRiA9IG4uZ2V0KGgpIHx8IFtdO1xuICAgICAgICAgICAgICAgIHgucHVzaCh7IG9iajogciwga2V5OiBFIH0pLCBGLnB1c2goeyBvYmo6IGUsIGtleTogRSB9KSwgbi5zZXQocywgeCksIG4uc2V0KGgsIEYpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGFbRV0gPSBwcihhW0VdLCBULCB0LCBuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZVxuICAgICAgICBhID0gZTtcbiAgICByZXR1cm4gYTtcbiAgfVxufVxuZnVuY3Rpb24gSihyLCBlLCB0KSB7XG4gIGZvciAodmFyIG4gPSB0LmdldChyW2VdKSB8fCBbXSwgYSA9IDAsIGkgPSBuLmxlbmd0aDsgYSA8IGk7IGErKykge1xuICAgIHZhciBvID0gblthXTtcbiAgICBpZiAoby5rZXkgPT09IGUgJiYgby5vYmogPT09IHIpXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiB5KHIpIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkocik7XG59XG5mdW5jdGlvbiBkcihyKSB7XG4gIHJldHVybiB0eXBlb2YgciA9PSBcImZ1bmN0aW9uXCI7XG59XG5mdW5jdGlvbiBPKHIpIHtcbiAgcmV0dXJuICFTKHIpICYmICF5KHIpICYmICFkcihyKSAmJiB0eXBlb2YgciA9PSBcIm9iamVjdFwiO1xufVxuZnVuY3Rpb24gUyhyKSB7XG4gIHJldHVybiB0eXBlb2YgciA9PSBcInN0cmluZ1wiIHx8IHR5cGVvZiByID09IFwibnVtYmVyXCIgfHwgdHlwZW9mIHIgPT0gXCJib29sZWFuXCIgfHwgdHlwZW9mIHIgPiBcInVcIiB8fCByIGluc3RhbmNlb2YgRGF0ZSB8fCByIGluc3RhbmNlb2YgUmVnRXhwIHx8IHIgPT09IG51bGw7XG59XG5mdW5jdGlvbiBhdChyLCBlKSB7XG4gIHJldHVybiAhKCEkKHIpIHx8ICEkKGUpKTtcbn1cbnZhciBpdCA9IC8qIEBfX1BVUkVfXyAqLyAoZnVuY3Rpb24oKSB7XG4gIHZhciByID0gZnVuY3Rpb24oZSwgdCkge1xuICAgIHJldHVybiByID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24obiwgYSkge1xuICAgICAgbi5fX3Byb3RvX18gPSBhO1xuICAgIH0gfHwgZnVuY3Rpb24obiwgYSkge1xuICAgICAgZm9yICh2YXIgaSBpbiBhKSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSwgaSkgJiYgKG5baV0gPSBhW2ldKTtcbiAgICB9LCByKGUsIHQpO1xuICB9O1xuICByZXR1cm4gZnVuY3Rpb24oZSwgdCkge1xuICAgIGlmICh0eXBlb2YgdCAhPSBcImZ1bmN0aW9uXCIgJiYgdCAhPT0gbnVsbClcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDbGFzcyBleHRlbmRzIHZhbHVlIFwiICsgU3RyaW5nKHQpICsgXCIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbFwiKTtcbiAgICByKGUsIHQpO1xuICAgIGZ1bmN0aW9uIG4oKSB7XG4gICAgICB0aGlzLmNvbnN0cnVjdG9yID0gZTtcbiAgICB9XG4gICAgZS5wcm90b3R5cGUgPSB0ID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZSh0KSA6IChuLnByb3RvdHlwZSA9IHQucHJvdG90eXBlLCBuZXcgbigpKTtcbiAgfTtcbn0pKCksIExyID0gKFxuICAvKiogQGNsYXNzICovXG4gIChmdW5jdGlvbihyKSB7XG4gICAgaXQoZSwgcik7XG4gICAgZnVuY3Rpb24gZSh0KSB7XG4gICAgICB2YXIgbiA9IHIuY2FsbCh0aGlzLCB0KSB8fCB0aGlzO1xuICAgICAgcmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZihuLCBlLnByb3RvdHlwZSksIG47XG4gICAgfVxuICAgIHJldHVybiBlO1xuICB9KShFcnJvcilcbik7XG5mdW5jdGlvbiBvdChyLCBlKSB7XG4gIHZhciB0LCBuID0gbmV3IFByb21pc2UoZnVuY3Rpb24oaSwgbykge1xuICAgIHQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgbyhuZXcgTHIoXCJPcGVyYXRpb24gdGltZWQgb3V0LlwiKSk7XG4gICAgfSwgZSk7XG4gIH0pO1xuICByZXR1cm4gUHJvbWlzZS5yYWNlKFtyLCBuXSkudGhlbihmdW5jdGlvbihhKSB7XG4gICAgcmV0dXJuIGNsZWFyVGltZW91dCh0KSwgYTtcbiAgfSwgZnVuY3Rpb24oYSkge1xuICAgIHRocm93IGNsZWFyVGltZW91dCh0KSwgYTtcbiAgfSk7XG59XG5mdW5jdGlvbiBfdChyKSB7XG4gIHJldHVybiB0eXBlb2YgciA9PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIHIuX19vcmlnaW5hbCA9PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIHIuX191bndyYXAgPT0gXCJmdW5jdGlvblwiICYmIHIuX193cmFwcGVkID09PSB0cnVlO1xufVxudmFyIEV0ID0gKFxuICAvKiogQGNsYXNzICovXG4gIChmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiByKCkge1xuICAgICAgdmFyIGUgPSB0aGlzO1xuICAgICAgdGhpcy5fcHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHQsIG4pIHtcbiAgICAgICAgZS5fcmVzb2x2ZSA9IHQsIGUuX3JlamVjdCA9IG47XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLnByb3RvdHlwZSwgXCJwcm9taXNlXCIsIHtcbiAgICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wcm9taXNlO1xuICAgICAgfSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSksIHIucHJvdG90eXBlLnJlc29sdmUgPSBmdW5jdGlvbihlKSB7XG4gICAgICB0aGlzLl9yZXNvbHZlKGUpO1xuICAgIH0sIHIucHJvdG90eXBlLnJlamVjdCA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgIHRoaXMuX3JlamVjdChlKTtcbiAgICB9LCByO1xuICB9KSgpXG4pLCBUdCA9IGZ1bmN0aW9uKHIsIGUpIHtcbiAgdmFyIHQgPSB0eXBlb2YgU3ltYm9sID09IFwiZnVuY3Rpb25cIiAmJiByW1N5bWJvbC5pdGVyYXRvcl07XG4gIGlmICghdCkgcmV0dXJuIHI7XG4gIHZhciBuID0gdC5jYWxsKHIpLCBhLCBpID0gW10sIG87XG4gIHRyeSB7XG4gICAgZm9yICg7IChlID09PSB2b2lkIDAgfHwgZS0tID4gMCkgJiYgIShhID0gbi5uZXh0KCkpLmRvbmU7ICkgaS5wdXNoKGEudmFsdWUpO1xuICB9IGNhdGNoIChfKSB7XG4gICAgbyA9IHsgZXJyb3I6IF8gfTtcbiAgfSBmaW5hbGx5IHtcbiAgICB0cnkge1xuICAgICAgYSAmJiAhYS5kb25lICYmICh0ID0gbi5yZXR1cm4pICYmIHQuY2FsbChuKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWYgKG8pIHRocm93IG8uZXJyb3I7XG4gICAgfVxuICB9XG4gIHJldHVybiBpO1xufSwgdXQgPSBmdW5jdGlvbihyLCBlLCB0KSB7XG4gIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyKSBmb3IgKHZhciBuID0gMCwgYSA9IGUubGVuZ3RoLCBpOyBuIDwgYTsgbisrKVxuICAgIChpIHx8ICEobiBpbiBlKSkgJiYgKGkgfHwgKGkgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlLCAwLCBuKSksIGlbbl0gPSBlW25dKTtcbiAgcmV0dXJuIHIuY29uY2F0KGkgfHwgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZSkpO1xufSwgZnQgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIoZSwgdCkge1xuICAgICAgdGhpcy5fY2FsbGJhY2sgPSBlLCB0aGlzLl90aGF0ID0gdCwgdGhpcy5faXNDYWxsZWQgPSBmYWxzZSwgdGhpcy5fZGVmZXJyZWQgPSBuZXcgRXQoKTtcbiAgICB9XG4gICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLnByb3RvdHlwZSwgXCJpc0NhbGxlZFwiLCB7XG4gICAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNDYWxsZWQ7XG4gICAgICB9LFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KSwgT2JqZWN0LmRlZmluZVByb3BlcnR5KHIucHJvdG90eXBlLCBcInByb21pc2VcIiwge1xuICAgICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZmVycmVkLnByb21pc2U7XG4gICAgICB9LFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KSwgci5wcm90b3R5cGUuY2FsbCA9IGZ1bmN0aW9uKCkge1xuICAgICAgZm9yICh2YXIgZSwgdCA9IHRoaXMsIG4gPSBbXSwgYSA9IDA7IGEgPCBhcmd1bWVudHMubGVuZ3RoOyBhKyspXG4gICAgICAgIG5bYV0gPSBhcmd1bWVudHNbYV07XG4gICAgICBpZiAoIXRoaXMuX2lzQ2FsbGVkKSB7XG4gICAgICAgIHRoaXMuX2lzQ2FsbGVkID0gdHJ1ZTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBQcm9taXNlLnJlc29sdmUoKGUgPSB0aGlzLl9jYWxsYmFjaykuY2FsbC5hcHBseShlLCB1dChbdGhpcy5fdGhhdF0sIFR0KG4pLCAhMSkpKS50aGVuKGZ1bmN0aW9uKGkpIHtcbiAgICAgICAgICAgIHJldHVybiB0Ll9kZWZlcnJlZC5yZXNvbHZlKGkpO1xuICAgICAgICAgIH0sIGZ1bmN0aW9uKGkpIHtcbiAgICAgICAgICAgIHJldHVybiB0Ll9kZWZlcnJlZC5yZWplY3QoaSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGkpIHtcbiAgICAgICAgICB0aGlzLl9kZWZlcnJlZC5yZWplY3QoaSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLl9kZWZlcnJlZC5wcm9taXNlO1xuICAgIH0sIHI7XG4gIH0pKClcbik7XG5mdW5jdGlvbiBzdChyLCBlKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih0KSB7XG4gICAgVGUkMS53aXRoKHUoVGUkMS5hY3RpdmUoKSksIGZ1bmN0aW9uKCkge1xuICAgICAgci5leHBvcnQoZSwgZnVuY3Rpb24obikge1xuICAgICAgICB0KG4pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufVxudmFyIGx0ID0ge1xuICBnZXRLZXlQYWlyczogZXIsXG4gIHNlcmlhbGl6ZUtleVBhaXJzOiBycixcbiAgcGFyc2VLZXlQYWlyc0ludG9SZWNvcmQ6IFdyLFxuICBwYXJzZVBhaXJLZXlWYWx1ZTogd1xufSwgT3QgPSB7XG4gIF9leHBvcnQ6IHN0XG59O1xuY29uc3QgUHQgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmZyZWV6ZSgvKiBAX19QVVJFX18gKi8gT2JqZWN0LmRlZmluZVByb3BlcnR5KHtcbiAgX19wcm90b19fOiBudWxsLFxuICBBbHdheXNPZmZTYW1wbGVyOiBELFxuICBBbHdheXNPblNhbXBsZXI6IFAsXG4gIEFuY2hvcmVkQ2xvY2s6ICRyLFxuICBCaW5kT25jZUZ1dHVyZTogZnQsXG4gIENvbXBvc2l0ZVByb3BhZ2F0b3I6IHZlLFxuICBERUZBVUxUX0FUVFJJQlVURV9DT1VOVF9MSU1JVDogZCxcbiAgREVGQVVMVF9BVFRSSUJVVEVfVkFMVUVfTEVOR1RIX0xJTUlUOiBwLFxuICBERUZBVUxUX0VOVklST05NRU5UOiBWLFxuICBERUZBVUxUX1NQQU5fQVRUUklCVVRFX1BFUl9FVkVOVF9DT1VOVF9MSU1JVDogVHIsXG4gIERFRkFVTFRfU1BBTl9BVFRSSUJVVEVfUEVSX0xJTktfQ09VTlRfTElNSVQ6IHVyLFxuICBnZXQgRXhwb3J0UmVzdWx0Q29kZSgpIHtcbiAgICByZXR1cm4gYSQxO1xuICB9LFxuICBQYXJlbnRCYXNlZFNhbXBsZXI6IEZlLFxuICBnZXQgUlBDVHlwZSgpIHtcbiAgICByZXR1cm4gYjtcbiAgfSxcbiAgUmFuZG9tSWRHZW5lcmF0b3I6IFBlLFxuICBTREtfSU5GTzogVEEsXG4gIFRSQUNFX1BBUkVOVF9IRUFERVI6IEwsXG4gIFRSQUNFX1NUQVRFX0hFQURFUjogQSxcbiAgVGltZW91dEVycm9yOiBMcixcbiAgVHJhY2VJZFJhdGlvQmFzZWRTYW1wbGVyOiBLZSxcbiAgVHJhY2VTdGF0ZTogZnIsXG4gIGdldCBUcmFjZXNTYW1wbGVyVmFsdWVzKCkge1xuICAgIHJldHVybiB2O1xuICB9LFxuICBWRVJTSU9OOiB0UyxcbiAgVzNDQmFnZ2FnZVByb3BhZ2F0b3I6IFpyLFxuICBXM0NUcmFjZUNvbnRleHRQcm9wYWdhdG9yOiBWZSxcbiAgX2dsb2JhbFRoaXM6IGhfLFxuICBhZGRIclRpbWVzOiBiXyxcbiAgYmFnZ2FnZVV0aWxzOiBsdCxcbiAgY2FsbFdpdGhUaW1lb3V0OiBvdCxcbiAgZGVsZXRlUlBDTWV0YWRhdGE6IEhlLFxuICBnZXRFbnY6IE9lLFxuICBnZXRFbnZXaXRob3V0RGVmYXVsdHM6IGNlLFxuICBnZXRSUENNZXRhZGF0YTogeGUsXG4gIGdldFRpbWVPcmlnaW46IHJfLFxuICBnbG9iYWxFcnJvckhhbmRsZXI6IEVyLFxuICBoZXhUb0Jhc2U2NDogZGUsXG4gIGhleFRvQmluYXJ5OiBBJDEsXG4gIGhyVGltZTogcF8sXG4gIGhyVGltZUR1cmF0aW9uOiBYZSQxLFxuICBoclRpbWVUb01pY3Jvc2Vjb25kczogamUkMSxcbiAgaHJUaW1lVG9NaWxsaXNlY29uZHM6IGtlJDEsXG4gIGhyVGltZVRvTmFub3NlY29uZHM6IHhlJDEsXG4gIGhyVGltZVRvVGltZVN0YW1wOiBRZSQxLFxuICBpbnRlcm5hbDogT3QsXG4gIGlzQXR0cmlidXRlS2V5OiBucixcbiAgaXNBdHRyaWJ1dGVWYWx1ZTogYXIsXG4gIGlzVGltZUlucHV0OiBxZSQxLFxuICBpc1RpbWVJbnB1dEhyVGltZTogTl8sXG4gIGlzVHJhY2luZ1N1cHByZXNzZWQ6IGEsXG4gIGlzVXJsSWdub3JlZDogWmUkMSxcbiAgaXNXcmFwcGVkOiBfdCxcbiAgbG9nZ2luZ0Vycm9ySGFuZGxlcjogb3IsXG4gIG1lcmdlOiBudCxcbiAgbWlsbGlzVG9IclRpbWU6IE8kMSxcbiAgb3RwZXJmb3JtYW5jZTogUiQxLFxuICBwYXJzZUVudmlyb25tZW50OiBqLFxuICBwYXJzZVRyYWNlUGFyZW50OiBzcixcbiAgc2FuaXRpemVBdHRyaWJ1dGVzOiBRcixcbiAgc2V0R2xvYmFsRXJyb3JIYW5kbGVyOiBlZSxcbiAgc2V0UlBDTWV0YWRhdGE6IGplLFxuICBzdXBwcmVzc1RyYWNpbmc6IHUsXG4gIHRpbWVJbnB1dFRvSHJUaW1lOiB3ZSQxLFxuICB1bnJlZlRpbWVyOiBTZSxcbiAgdW5zdXBwcmVzc1RyYWNpbmc6IHMsXG4gIHVybE1hdGNoZXM6IGdfXG59LCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6IFwiTW9kdWxlXCIgfSkpO1xuXG5leHBvcnQgeyBFciBhcyBFLCBPZSBhcyBPLCBQdCBhcyBQLCBRciBhcyBRLCBTZSBhcyBTLCBWZSBhcyBWLCBaciBhcyBaLCBhciBhcyBhLCB2IGFzIGIsIGNlIGFzIGMsIGQsIE90IGFzIGUsIGZ0IGFzIGYsIGwsIG50IGFzIG4sIHAsIHZlIGFzIHYgfTsiXSwKICAibWFwcGluZ3MiOiAiQUFBQSxTQUFTLEtBQUtBLEdBQUksS0FBS0MsR0FBSSxNQUFNQyxJQUFJLEtBQUtDLElBQUksS0FBS0MsSUFBTSxNQUFNQyxJQUFLLEtBQUtDLElBQUssS0FBS0MsSUFBTSxNQUFNQyxJQUFJLE1BQU1DLElBQU0sTUFBTUMsSUFBTSxLQUFLQyxJQUFNLE1BQU1DLElBQU0sTUFBTUMsSUFBTSxNQUFNQyxJQUFNLEtBQUtDLElBQUksTUFBTUMsSUFBSSxNQUFNQyxVQUFVO0FBQzdNLFNBQVMsS0FBQUMsR0FBRyxLQUFBQyxHQUFHLEtBQUFDLFVBQVM7QUFDeEIsU0FBUyxLQUFBQyxTQUFTO0FBQ2xCLFNBQVMsS0FBS0MsR0FBSyxLQUFLQyxVQUFXO0FBQ25DLFNBQVMsS0FBS0MsR0FBSyxLQUFLQyxHQUFNLEtBQUtDLEdBQUksS0FBS0MsR0FBSSxLQUFLQyxHQUFNLEtBQUtDLElBQUksS0FBS0MsVUFBVTtBQUNuRixTQUFTLE1BQU1DLElBQUksTUFBTUMsVUFBVTtBQUVuQyxJQUFJQztBQUFBLENBQ0gsU0FBU1osR0FBRztBQUNYLEVBQUFBLEVBQUVBLEVBQUUsYUFBYSxDQUFDLElBQUksY0FBY0EsRUFBRUEsRUFBRSxTQUFTLENBQUMsSUFBSSxVQUFVQSxFQUFFQSxFQUFFLHFCQUFxQixDQUFDLElBQUk7QUFDaEcsR0FBR1ksTUFBTUEsSUFBSSxDQUFDLEVBQUU7QUFDaEIsSUFB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QixrQkFBa0IrQjtBQUFBLEVBQ2xCLG9CQUFvQnpEO0FBQUEsRUFDcEIsdUJBQXVCO0FBQUEsRUFDdkIsZ0JBQWdCNEQ7QUFBQSxFQUNoQixpQkFBaUJoRztBQUFBLEVBQ2pCLG1CQUFtQmY7QUFBQSxFQUNuQixZQUFZd0Y7QUFBQSxFQUNaLG1CQUFtQnhFO0FBQUEsRUFDbkIsWUFBWWpCO0FBQ2QsR0FBRyxPQUFPLGFBQWEsRUFBRSxPQUFPLFNBQVMsQ0FBQyxDQUFDOyIsCiAgIm5hbWVzIjogWyJ5XyIsICJoXyIsICJmXyIsICJnXyIsICJ3ZSQxIiwgIlIkMSIsICJPJDEiLCAiWmUkMSIsICJOXyIsICJxZSQxIiwgIlFlJDEiLCAieGUkMSIsICJrZSQxIiwgImplJDEiLCAiWGUkMSIsICJwXyIsICJyXyIsICJiXyIsICJhIiwgInUiLCAicyIsICJyIiwgIkEkMSIsICJhJDEiLCAiWiQxIiwgIk1lJDEiLCAieW4iLCAiQnQiLCAiVGUkMSIsICJaaSIsICJkcyIsICJ0UyIsICJUQSIsICJsIiwgInhyIiwgIlUiLCAibSIsICJGciIsICJLciIsICJZciIsICJ6ciIsICJ0IiwgIm4iLCAiaSIsICJvIiwgInJyIiwgImVyIiwgInciLCAiV3IiLCAiWnIiLCAiRSIsICJUIiwgIiRyIiwgInRyIiwgIkpyIiwgIlFyIiwgInIkMSIsICJuciIsICJhciIsICJxciIsICJpciIsICJvciIsICJrciIsICJyZSIsICJfciIsICJFciIsICJ2IiwgInRlIiwgImFlIiwgImllIiwgIm9lIiwgIkVlIiwgInAiLCAiZCIsICJUciIsICJ1ciIsICJWIiwgIlRlIiwgImZlIiwgInNlIiwgImxlIiwgImoiLCAiT2UiLCAiY2UiLCAiUmUiLCAicGUiLCAiZGUiLCAiTGUiLCAiQWUiLCAiUGUiLCAiWSIsICJSIiwgIlNlIiwgInZlIiwgIkIiLCAieWUiLCAiaGUiLCAiZ2UiLCAibWUiLCAieiIsICJVZSIsICJXIiwgIloiLCAiZnIiLCAiTCIsICJBIiwgIkJlIiwgImJlIiwgIkRlIiwgIlhlIiwgIkdlIiwgIndlIiwgInNyIiwgIlZlIiwgImIiLCAiamUiLCAieGUiLCAiRCIsICJQIiwgIlllIiwgInplIiwgIldlIiwgIlplIiwgImxyIiwgIiRlIiwgIkplIiwgIlFlIiwgIk9yIiwgImNyIiwgImYiLCAiUnIiLCAiJCIsICJxZSIsICJrZSIsICJydCIsICJldCIsICJ0dCIsICJudCIsICJwciIsICJ5IiwgIlMiLCAiZHIiLCAiTyIsICJhdCIsICJoIiwgIkoiLCAieCIsICJpdCIsICJMciIsICJvdCIsICJfdCIsICJFdCIsICJUdCIsICJ1dCIsICJmdCIsICJzdCIsICJsdCIsICJPdCIsICJQdCJdCn0K
|
|
1012
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiaW5kZXgtdjFTUmJQU0ktIX57MDBpfX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IHkgYXMgeV8sIGggYXMgaF8sIGRDIGFzIGZfLCBnIGFzIGdfLCB3IGFzIHdlJDEsIGRHIGFzIFIkMSwgTyBhcyBPJDEsIGEgYXMgWmUkMSwgZEggYXMgTl8sIGRFIGFzIHFlJDEsIGRLIGFzIFFlJDEsIGMgYXMgeGUkMSwgZEwgYXMga2UkMSwgZEQgYXMgamUkMSwgZEYgYXMgWGUkMSwgcCBhcyBwXywgZEogYXMgcl8sIGRJIGFzIGJfIH0gZnJvbSAnLi91cmwtQ1RBTVY5RnItIX57MDBifX4uanMnO1xuaW1wb3J0IHsgYSwgdSwgcyB9IGZyb20gJy4vc3VwcHJlc3MtdHJhY2luZy1CdWl0Y1dBMi0hfnswMG59fi5qcyc7XG5pbXBvcnQgeyByIH0gZnJvbSAnLi9kaWFnLWFwaS1EQzRkeGxxWi0hfnswMGF9fi5qcyc7XG5pbXBvcnQgeyBBIGFzIEEkMSwgYSBhcyBhJDEgfSBmcm9tICcuL0V4cG9ydFJlc3VsdC1CYWNzcXdLQS0hfnswMGx9fi5qcyc7XG5pbXBvcnQgeyBiIGFzIFokMSwgTSBhcyBNZSQxLCBoIGFzIGhuLCBIIGFzIEh0LCBUIGFzIFRlJDEsIFogYXMgWmksIGQgYXMgZHMgfSBmcm9tICcuL2luZGV4LSF+ezAwN31+LmpzJztcbmltcG9ydCB7IGJtIGFzIHRTLCBibCBhcyBUQSB9IGZyb20gJy4vc2RrLWluZm8tQ2h1S3U4elctIX57MDBqfX4uanMnO1xuXG52YXIgbDtcbihmdW5jdGlvbihyKSB7XG4gIHJbci5OT1RfUkVDT1JEID0gMF0gPSBcIk5PVF9SRUNPUkRcIiwgcltyLlJFQ09SRCA9IDFdID0gXCJSRUNPUkRcIiwgcltyLlJFQ09SRF9BTkRfU0FNUExFRCA9IDJdID0gXCJSRUNPUkRfQU5EX1NBTVBMRURcIjtcbn0pKGwgfHwgKGwgPSB7fSkpO1xudmFyIHhyID0gXCI9XCIsIFUgPSBcIjtcIiwgSSA9IFwiLFwiLCBtID0gXCJiYWdnYWdlXCIsIEZyID0gMTgwLCBLciA9IDQwOTYsIFlyID0gODE5MiwgenIgPSBmdW5jdGlvbihyLCBlKSB7XG4gIHZhciB0ID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgcltTeW1ib2wuaXRlcmF0b3JdO1xuICBpZiAoIXQpIHJldHVybiByO1xuICB2YXIgbiA9IHQuY2FsbChyKSwgYSwgaSA9IFtdLCBvO1xuICB0cnkge1xuICAgIGZvciAoOyAoZSA9PT0gdm9pZCAwIHx8IGUtLSA+IDApICYmICEoYSA9IG4ubmV4dCgpKS5kb25lOyApIGkucHVzaChhLnZhbHVlKTtcbiAgfSBjYXRjaCAoXykge1xuICAgIG8gPSB7IGVycm9yOiBfIH07XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIGEgJiYgIWEuZG9uZSAmJiAodCA9IG4ucmV0dXJuKSAmJiB0LmNhbGwobik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChvKSB0aHJvdyBvLmVycm9yO1xuICAgIH1cbiAgfVxuICByZXR1cm4gaTtcbn07XG5mdW5jdGlvbiBycihyKSB7XG4gIHJldHVybiByLnJlZHVjZShmdW5jdGlvbihlLCB0KSB7XG4gICAgdmFyIG4gPSBcIlwiICsgZSArIChlICE9PSBcIlwiID8gSSA6IFwiXCIpICsgdDtcbiAgICByZXR1cm4gbi5sZW5ndGggPiBZciA/IGUgOiBuO1xuICB9LCBcIlwiKTtcbn1cbmZ1bmN0aW9uIGVyKHIpIHtcbiAgcmV0dXJuIHIuZ2V0QWxsRW50cmllcygpLm1hcChmdW5jdGlvbihlKSB7XG4gICAgdmFyIHQgPSB6cihlLCAyKSwgbiA9IHRbMF0sIGEgPSB0WzFdLCBpID0gZW5jb2RlVVJJQ29tcG9uZW50KG4pICsgXCI9XCIgKyBlbmNvZGVVUklDb21wb25lbnQoYS52YWx1ZSk7XG4gICAgcmV0dXJuIGEubWV0YWRhdGEgIT09IHZvaWQgMCAmJiAoaSArPSBVICsgYS5tZXRhZGF0YS50b1N0cmluZygpKSwgaTtcbiAgfSk7XG59XG5mdW5jdGlvbiB3KHIpIHtcbiAgdmFyIGUgPSByLnNwbGl0KFUpO1xuICBpZiAoIShlLmxlbmd0aCA8PSAwKSkge1xuICAgIHZhciB0ID0gZS5zaGlmdCgpO1xuICAgIGlmICh0KSB7XG4gICAgICB2YXIgbiA9IHQuaW5kZXhPZih4cik7XG4gICAgICBpZiAoIShuIDw9IDApKSB7XG4gICAgICAgIHZhciBhID0gZGVjb2RlVVJJQ29tcG9uZW50KHQuc3Vic3RyaW5nKDAsIG4pLnRyaW0oKSksIGkgPSBkZWNvZGVVUklDb21wb25lbnQodC5zdWJzdHJpbmcobiArIDEpLnRyaW0oKSksIG87XG4gICAgICAgIHJldHVybiBlLmxlbmd0aCA+IDAgJiYgKG8gPSBmXyhlLmpvaW4oVSkpKSwgeyBrZXk6IGEsIHZhbHVlOiBpLCBtZXRhZGF0YTogbyB9O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gV3Iocikge1xuICByZXR1cm4gdHlwZW9mIHIgIT0gXCJzdHJpbmdcIiB8fCByLmxlbmd0aCA9PT0gMCA/IHt9IDogci5zcGxpdChJKS5tYXAoZnVuY3Rpb24oZSkge1xuICAgIHJldHVybiB3KGUpO1xuICB9KS5maWx0ZXIoZnVuY3Rpb24oZSkge1xuICAgIHJldHVybiBlICE9PSB2b2lkIDAgJiYgZS52YWx1ZS5sZW5ndGggPiAwO1xuICB9KS5yZWR1Y2UoZnVuY3Rpb24oZSwgdCkge1xuICAgIHJldHVybiBlW3Qua2V5XSA9IHQudmFsdWUsIGU7XG4gIH0sIHt9KTtcbn1cbnZhciBaciA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICAoZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gcigpIHtcbiAgICB9XG4gICAgcmV0dXJuIHIucHJvdG90eXBlLmluamVjdCA9IGZ1bmN0aW9uKGUsIHQsIG4pIHtcbiAgICAgIHZhciBhJDEgPSB5Xy5nZXRCYWdnYWdlKGUpO1xuICAgICAgaWYgKCEoIWEkMSB8fCBhKGUpKSkge1xuICAgICAgICB2YXIgaSA9IGVyKGEkMSkuZmlsdGVyKGZ1bmN0aW9uKF8pIHtcbiAgICAgICAgICByZXR1cm4gXy5sZW5ndGggPD0gS3I7XG4gICAgICAgIH0pLnNsaWNlKDAsIEZyKSwgbyA9IHJyKGkpO1xuICAgICAgICBvLmxlbmd0aCA+IDAgJiYgbi5zZXQodCwgbSwgbyk7XG4gICAgICB9XG4gICAgfSwgci5wcm90b3R5cGUuZXh0cmFjdCA9IGZ1bmN0aW9uKGUsIHQsIG4pIHtcbiAgICAgIHZhciBhID0gbi5nZXQodCwgbSksIGkgPSBBcnJheS5pc0FycmF5KGEpID8gYS5qb2luKEkpIDogYTtcbiAgICAgIGlmICghaSlcbiAgICAgICAgcmV0dXJuIGU7XG4gICAgICB2YXIgbyA9IHt9O1xuICAgICAgaWYgKGkubGVuZ3RoID09PSAwKVxuICAgICAgICByZXR1cm4gZTtcbiAgICAgIHZhciBfID0gaS5zcGxpdChJKTtcbiAgICAgIHJldHVybiBfLmZvckVhY2goZnVuY3Rpb24oRSkge1xuICAgICAgICB2YXIgVCA9IHcoRSk7XG4gICAgICAgIGlmIChUKSB7XG4gICAgICAgICAgdmFyIHMgPSB7IHZhbHVlOiBULnZhbHVlIH07XG4gICAgICAgICAgVC5tZXRhZGF0YSAmJiAocy5tZXRhZGF0YSA9IFQubWV0YWRhdGEpLCBvW1Qua2V5XSA9IHM7XG4gICAgICAgIH1cbiAgICAgIH0pLCBPYmplY3QuZW50cmllcyhvKS5sZW5ndGggPT09IDAgPyBlIDogeV8uc2V0QmFnZ2FnZShlLCB5Xy5jcmVhdGVCYWdnYWdlKG8pKTtcbiAgICB9LCByLnByb3RvdHlwZS5maWVsZHMgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBbbV07XG4gICAgfSwgcjtcbiAgfSkoKVxuKSwgJHIgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIoZSwgdCkge1xuICAgICAgdGhpcy5fbW9ub3RvbmljQ2xvY2sgPSB0LCB0aGlzLl9lcG9jaE1pbGxpcyA9IGUubm93KCksIHRoaXMuX3BlcmZvcm1hbmNlTWlsbGlzID0gdC5ub3coKTtcbiAgICB9XG4gICAgcmV0dXJuIHIucHJvdG90eXBlLm5vdyA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGUgPSB0aGlzLl9tb25vdG9uaWNDbG9jay5ub3coKSAtIHRoaXMuX3BlcmZvcm1hbmNlTWlsbGlzO1xuICAgICAgcmV0dXJuIHRoaXMuX2Vwb2NoTWlsbGlzICsgZTtcbiAgICB9LCByO1xuICB9KSgpXG4pLCB0ciA9IGZ1bmN0aW9uKHIpIHtcbiAgdmFyIGUgPSB0eXBlb2YgU3ltYm9sID09IFwiZnVuY3Rpb25cIiAmJiBTeW1ib2wuaXRlcmF0b3IsIHQgPSBlICYmIHJbZV0sIG4gPSAwO1xuICBpZiAodCkgcmV0dXJuIHQuY2FsbChyKTtcbiAgaWYgKHIgJiYgdHlwZW9mIHIubGVuZ3RoID09IFwibnVtYmVyXCIpIHJldHVybiB7XG4gICAgbmV4dDogZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gciAmJiBuID49IHIubGVuZ3RoICYmIChyID0gdm9pZCAwKSwgeyB2YWx1ZTogciAmJiByW24rK10sIGRvbmU6ICFyIH07XG4gICAgfVxuICB9O1xuICB0aHJvdyBuZXcgVHlwZUVycm9yKGUgPyBcIk9iamVjdCBpcyBub3QgaXRlcmFibGUuXCIgOiBcIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XG59LCBKciA9IGZ1bmN0aW9uKHIsIGUpIHtcbiAgdmFyIHQgPSB0eXBlb2YgU3ltYm9sID09IFwiZnVuY3Rpb25cIiAmJiByW1N5bWJvbC5pdGVyYXRvcl07XG4gIGlmICghdCkgcmV0dXJuIHI7XG4gIHZhciBuID0gdC5jYWxsKHIpLCBhLCBpID0gW10sIG87XG4gIHRyeSB7XG4gICAgZm9yICg7IChlID09PSB2b2lkIDAgfHwgZS0tID4gMCkgJiYgIShhID0gbi5uZXh0KCkpLmRvbmU7ICkgaS5wdXNoKGEudmFsdWUpO1xuICB9IGNhdGNoIChfKSB7XG4gICAgbyA9IHsgZXJyb3I6IF8gfTtcbiAgfSBmaW5hbGx5IHtcbiAgICB0cnkge1xuICAgICAgYSAmJiAhYS5kb25lICYmICh0ID0gbi5yZXR1cm4pICYmIHQuY2FsbChuKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWYgKG8pIHRocm93IG8uZXJyb3I7XG4gICAgfVxuICB9XG4gIHJldHVybiBpO1xufTtcbmZ1bmN0aW9uIFFyKHIkMSkge1xuICB2YXIgZSwgdCwgbiA9IHt9O1xuICBpZiAodHlwZW9mIHIkMSAhPSBcIm9iamVjdFwiIHx8IHIkMSA9PSBudWxsKVxuICAgIHJldHVybiBuO1xuICB0cnkge1xuICAgIGZvciAodmFyIGEgPSB0cihPYmplY3QuZW50cmllcyhyJDEpKSwgaSA9IGEubmV4dCgpOyAhaS5kb25lOyBpID0gYS5uZXh0KCkpIHtcbiAgICAgIHZhciBvID0gSnIoaS52YWx1ZSwgMiksIF8gPSBvWzBdLCBFID0gb1sxXTtcbiAgICAgIGlmICghbnIoXykpIHtcbiAgICAgICAgci53YXJuKFwiSW52YWxpZCBhdHRyaWJ1dGUga2V5OiBcIiArIF8pO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICghYXIoRSkpIHtcbiAgICAgICAgci53YXJuKFwiSW52YWxpZCBhdHRyaWJ1dGUgdmFsdWUgc2V0IGZvciBrZXk6IFwiICsgXyk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgQXJyYXkuaXNBcnJheShFKSA/IG5bX10gPSBFLnNsaWNlKCkgOiBuW19dID0gRTtcbiAgICB9XG4gIH0gY2F0Y2ggKFQpIHtcbiAgICBlID0geyBlcnJvcjogVCB9O1xuICB9IGZpbmFsbHkge1xuICAgIHRyeSB7XG4gICAgICBpICYmICFpLmRvbmUgJiYgKHQgPSBhLnJldHVybikgJiYgdC5jYWxsKGEpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAoZSkgdGhyb3cgZS5lcnJvcjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG47XG59XG5mdW5jdGlvbiBucihyKSB7XG4gIHJldHVybiB0eXBlb2YgciA9PSBcInN0cmluZ1wiICYmIHIubGVuZ3RoID4gMDtcbn1cbmZ1bmN0aW9uIGFyKHIpIHtcbiAgcmV0dXJuIHIgPT0gbnVsbCA/IHRydWUgOiBBcnJheS5pc0FycmF5KHIpID8gcXIocikgOiBpcihyKTtcbn1cbmZ1bmN0aW9uIHFyKHIpIHtcbiAgdmFyIGUsIHQsIG47XG4gIHRyeSB7XG4gICAgZm9yICh2YXIgYSA9IHRyKHIpLCBpID0gYS5uZXh0KCk7ICFpLmRvbmU7IGkgPSBhLm5leHQoKSkge1xuICAgICAgdmFyIG8gPSBpLnZhbHVlO1xuICAgICAgaWYgKG8gIT0gbnVsbCkge1xuICAgICAgICBpZiAoIW4pIHtcbiAgICAgICAgICBpZiAoaXIobykpIHtcbiAgICAgICAgICAgIG4gPSB0eXBlb2YgbztcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gITE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBvICE9PSBuKVxuICAgICAgICAgIHJldHVybiAhMTtcbiAgICAgIH1cbiAgICB9XG4gIH0gY2F0Y2ggKF8pIHtcbiAgICBlID0geyBlcnJvcjogXyB9O1xuICB9IGZpbmFsbHkge1xuICAgIHRyeSB7XG4gICAgICBpICYmICFpLmRvbmUgJiYgKHQgPSBhLnJldHVybikgJiYgdC5jYWxsKGEpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAoZSkgdGhyb3cgZS5lcnJvcjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG5mdW5jdGlvbiBpcihyKSB7XG4gIHN3aXRjaCAodHlwZW9mIHIpIHtcbiAgICBjYXNlIFwibnVtYmVyXCI6XG4gICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiBvcigpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKHIkMSkge1xuICAgIHIuZXJyb3Ioa3IociQxKSk7XG4gIH07XG59XG5mdW5jdGlvbiBrcihyKSB7XG4gIHJldHVybiB0eXBlb2YgciA9PSBcInN0cmluZ1wiID8gciA6IEpTT04uc3RyaW5naWZ5KHJlKHIpKTtcbn1cbmZ1bmN0aW9uIHJlKHIpIHtcbiAgZm9yICh2YXIgZSA9IHt9LCB0ID0gcjsgdCAhPT0gbnVsbDsgKVxuICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHQpLmZvckVhY2goZnVuY3Rpb24obikge1xuICAgICAgaWYgKCFlW25dKSB7XG4gICAgICAgIHZhciBhID0gdFtuXTtcbiAgICAgICAgYSAmJiAoZVtuXSA9IFN0cmluZyhhKSk7XG4gICAgICB9XG4gICAgfSksIHQgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodCk7XG4gIHJldHVybiBlO1xufVxudmFyIF9yID0gb3IoKTtcbmZ1bmN0aW9uIGVlKHIpIHtcbiAgX3IgPSByO1xufVxuZnVuY3Rpb24gRXIocikge1xuICB0cnkge1xuICAgIF9yKHIpO1xuICB9IGNhdGNoIHtcbiAgfVxufVxudmFyIHY7XG4oZnVuY3Rpb24ocikge1xuICByLkFsd2F5c09mZiA9IFwiYWx3YXlzX29mZlwiLCByLkFsd2F5c09uID0gXCJhbHdheXNfb25cIiwgci5QYXJlbnRCYXNlZEFsd2F5c09mZiA9IFwicGFyZW50YmFzZWRfYWx3YXlzX29mZlwiLCByLlBhcmVudEJhc2VkQWx3YXlzT24gPSBcInBhcmVudGJhc2VkX2Fsd2F5c19vblwiLCByLlBhcmVudEJhc2VkVHJhY2VJZFJhdGlvID0gXCJwYXJlbnRiYXNlZF90cmFjZWlkcmF0aW9cIiwgci5UcmFjZUlkUmF0aW8gPSBcInRyYWNlaWRyYXRpb1wiO1xufSkodiB8fCAodiA9IHt9KSk7XG52YXIgdGUgPSBcIixcIiwgbmUgPSBbXCJPVEVMX1NES19ESVNBQkxFRFwiXTtcbmZ1bmN0aW9uIGFlKHIpIHtcbiAgcmV0dXJuIG5lLmluZGV4T2YocikgPiAtMTtcbn1cbnZhciBpZSA9IFtcbiAgXCJPVEVMX0JTUF9FWFBPUlRfVElNRU9VVFwiLFxuICBcIk9URUxfQlNQX01BWF9FWFBPUlRfQkFUQ0hfU0laRVwiLFxuICBcIk9URUxfQlNQX01BWF9RVUVVRV9TSVpFXCIsXG4gIFwiT1RFTF9CU1BfU0NIRURVTEVfREVMQVlcIixcbiAgXCJPVEVMX0JMUlBfRVhQT1JUX1RJTUVPVVRcIixcbiAgXCJPVEVMX0JMUlBfTUFYX0VYUE9SVF9CQVRDSF9TSVpFXCIsXG4gIFwiT1RFTF9CTFJQX01BWF9RVUVVRV9TSVpFXCIsXG4gIFwiT1RFTF9CTFJQX1NDSEVEVUxFX0RFTEFZXCIsXG4gIFwiT1RFTF9BVFRSSUJVVEVfVkFMVUVfTEVOR1RIX0xJTUlUXCIsXG4gIFwiT1RFTF9BVFRSSUJVVEVfQ09VTlRfTElNSVRcIixcbiAgXCJPVEVMX1NQQU5fQVRUUklCVVRFX1ZBTFVFX0xFTkdUSF9MSU1JVFwiLFxuICBcIk9URUxfU1BBTl9BVFRSSUJVVEVfQ09VTlRfTElNSVRcIixcbiAgXCJPVEVMX0xPR1JFQ09SRF9BVFRSSUJVVEVfVkFMVUVfTEVOR1RIX0xJTUlUXCIsXG4gIFwiT1RFTF9MT0dSRUNPUkRfQVRUUklCVVRFX0NPVU5UX0xJTUlUXCIsXG4gIFwiT1RFTF9TUEFOX0VWRU5UX0NPVU5UX0xJTUlUXCIsXG4gIFwiT1RFTF9TUEFOX0xJTktfQ09VTlRfTElNSVRcIixcbiAgXCJPVEVMX1NQQU5fQVRUUklCVVRFX1BFUl9FVkVOVF9DT1VOVF9MSU1JVFwiLFxuICBcIk9URUxfU1BBTl9BVFRSSUJVVEVfUEVSX0xJTktfQ09VTlRfTElNSVRcIixcbiAgXCJPVEVMX0VYUE9SVEVSX09UTFBfVElNRU9VVFwiLFxuICBcIk9URUxfRVhQT1JURVJfT1RMUF9UUkFDRVNfVElNRU9VVFwiLFxuICBcIk9URUxfRVhQT1JURVJfT1RMUF9NRVRSSUNTX1RJTUVPVVRcIixcbiAgXCJPVEVMX0VYUE9SVEVSX09UTFBfTE9HU19USU1FT1VUXCIsXG4gIFwiT1RFTF9FWFBPUlRFUl9KQUVHRVJfQUdFTlRfUE9SVFwiXG5dO1xuZnVuY3Rpb24gb2Uocikge1xuICByZXR1cm4gaWUuaW5kZXhPZihyKSA+IC0xO1xufVxudmFyIF9lID0gW1xuICBcIk9URUxfTk9fUEFUQ0hfTU9EVUxFU1wiLFxuICBcIk9URUxfUFJPUEFHQVRPUlNcIixcbiAgXCJPVEVMX1NFTUNPTlZfU1RBQklMSVRZX09QVF9JTlwiXG5dO1xuZnVuY3Rpb24gRWUocikge1xuICByZXR1cm4gX2UuaW5kZXhPZihyKSA+IC0xO1xufVxudmFyIHAgPSAxIC8gMCwgZCA9IDEyOCwgVHIgPSAxMjgsIHVyID0gMTI4LCBWID0ge1xuICBPVEVMX1NES19ESVNBQkxFRDogZmFsc2UsXG4gIENPTlRBSU5FUl9OQU1FOiBcIlwiLFxuICBFQ1NfQ09OVEFJTkVSX01FVEFEQVRBX1VSSV9WNDogXCJcIixcbiAgRUNTX0NPTlRBSU5FUl9NRVRBREFUQV9VUkk6IFwiXCIsXG4gIEhPU1ROQU1FOiBcIlwiLFxuICBLVUJFUk5FVEVTX1NFUlZJQ0VfSE9TVDogXCJcIixcbiAgTkFNRVNQQUNFOiBcIlwiLFxuICBPVEVMX0JTUF9FWFBPUlRfVElNRU9VVDogM2U0LFxuICBPVEVMX0JTUF9NQVhfRVhQT1JUX0JBVENIX1NJWkU6IDUxMixcbiAgT1RFTF9CU1BfTUFYX1FVRVVFX1NJWkU6IDIwNDgsXG4gIE9URUxfQlNQX1NDSEVEVUxFX0RFTEFZOiA1ZTMsXG4gIE9URUxfQkxSUF9FWFBPUlRfVElNRU9VVDogM2U0LFxuICBPVEVMX0JMUlBfTUFYX0VYUE9SVF9CQVRDSF9TSVpFOiA1MTIsXG4gIE9URUxfQkxSUF9NQVhfUVVFVUVfU0laRTogMjA0OCxcbiAgT1RFTF9CTFJQX1NDSEVEVUxFX0RFTEFZOiA1ZTMsXG4gIE9URUxfRVhQT1JURVJfSkFFR0VSX0FHRU5UX0hPU1Q6IFwiXCIsXG4gIE9URUxfRVhQT1JURVJfSkFFR0VSX0FHRU5UX1BPUlQ6IDY4MzIsXG4gIE9URUxfRVhQT1JURVJfSkFFR0VSX0VORFBPSU5UOiBcIlwiLFxuICBPVEVMX0VYUE9SVEVSX0pBRUdFUl9QQVNTV09SRDogXCJcIixcbiAgT1RFTF9FWFBPUlRFUl9KQUVHRVJfVVNFUjogXCJcIixcbiAgT1RFTF9FWFBPUlRFUl9PVExQX0VORFBPSU5UOiBcIlwiLFxuICBPVEVMX0VYUE9SVEVSX09UTFBfVFJBQ0VTX0VORFBPSU5UOiBcIlwiLFxuICBPVEVMX0VYUE9SVEVSX09UTFBfTUVUUklDU19FTkRQT0lOVDogXCJcIixcbiAgT1RFTF9FWFBPUlRFUl9PVExQX0xPR1NfRU5EUE9JTlQ6IFwiXCIsXG4gIE9URUxfRVhQT1JURVJfT1RMUF9IRUFERVJTOiBcIlwiLFxuICBPVEVMX0VYUE9SVEVSX09UTFBfVFJBQ0VTX0hFQURFUlM6IFwiXCIsXG4gIE9URUxfRVhQT1JURVJfT1RMUF9NRVRSSUNTX0hFQURFUlM6IFwiXCIsXG4gIE9URUxfRVhQT1JURVJfT1RMUF9MT0dTX0hFQURFUlM6IFwiXCIsXG4gIE9URUxfRVhQT1JURVJfT1RMUF9USU1FT1VUOiAxZTQsXG4gIE9URUxfRVhQT1JURVJfT1RMUF9UUkFDRVNfVElNRU9VVDogMWU0LFxuICBPVEVMX0VYUE9SVEVSX09UTFBfTUVUUklDU19USU1FT1VUOiAxZTQsXG4gIE9URUxfRVhQT1JURVJfT1RMUF9MT0dTX1RJTUVPVVQ6IDFlNCxcbiAgT1RFTF9FWFBPUlRFUl9aSVBLSU5fRU5EUE9JTlQ6IFwiaHR0cDovL2xvY2FsaG9zdDo5NDExL2FwaS92Mi9zcGFuc1wiLFxuICBPVEVMX0xPR19MRVZFTDogWiQxLklORk8sXG4gIE9URUxfTk9fUEFUQ0hfTU9EVUxFUzogW10sXG4gIE9URUxfUFJPUEFHQVRPUlM6IFtcInRyYWNlY29udGV4dFwiLCBcImJhZ2dhZ2VcIl0sXG4gIE9URUxfUkVTT1VSQ0VfQVRUUklCVVRFUzogXCJcIixcbiAgT1RFTF9TRVJWSUNFX05BTUU6IFwiXCIsXG4gIE9URUxfQVRUUklCVVRFX1ZBTFVFX0xFTkdUSF9MSU1JVDogcCxcbiAgT1RFTF9BVFRSSUJVVEVfQ09VTlRfTElNSVQ6IGQsXG4gIE9URUxfU1BBTl9BVFRSSUJVVEVfVkFMVUVfTEVOR1RIX0xJTUlUOiBwLFxuICBPVEVMX1NQQU5fQVRUUklCVVRFX0NPVU5UX0xJTUlUOiBkLFxuICBPVEVMX0xPR1JFQ09SRF9BVFRSSUJVVEVfVkFMVUVfTEVOR1RIX0xJTUlUOiBwLFxuICBPVEVMX0xPR1JFQ09SRF9BVFRSSUJVVEVfQ09VTlRfTElNSVQ6IGQsXG4gIE9URUxfU1BBTl9FVkVOVF9DT1VOVF9MSU1JVDogMTI4LFxuICBPVEVMX1NQQU5fTElOS19DT1VOVF9MSU1JVDogMTI4LFxuICBPVEVMX1NQQU5fQVRUUklCVVRFX1BFUl9FVkVOVF9DT1VOVF9MSU1JVDogVHIsXG4gIE9URUxfU1BBTl9BVFRSSUJVVEVfUEVSX0xJTktfQ09VTlRfTElNSVQ6IHVyLFxuICBPVEVMX1RSQUNFU19FWFBPUlRFUjogXCJcIixcbiAgT1RFTF9UUkFDRVNfU0FNUExFUjogdi5QYXJlbnRCYXNlZEFsd2F5c09uLFxuICBPVEVMX1RSQUNFU19TQU1QTEVSX0FSRzogXCJcIixcbiAgT1RFTF9MT0dTX0VYUE9SVEVSOiBcIlwiLFxuICBPVEVMX0VYUE9SVEVSX09UTFBfSU5TRUNVUkU6IFwiXCIsXG4gIE9URUxfRVhQT1JURVJfT1RMUF9UUkFDRVNfSU5TRUNVUkU6IFwiXCIsXG4gIE9URUxfRVhQT1JURVJfT1RMUF9NRVRSSUNTX0lOU0VDVVJFOiBcIlwiLFxuICBPVEVMX0VYUE9SVEVSX09UTFBfTE9HU19JTlNFQ1VSRTogXCJcIixcbiAgT1RFTF9FWFBPUlRFUl9PVExQX0NFUlRJRklDQVRFOiBcIlwiLFxuICBPVEVMX0VYUE9SVEVSX09UTFBfVFJBQ0VTX0NFUlRJRklDQVRFOiBcIlwiLFxuICBPVEVMX0VYUE9SVEVSX09UTFBfTUVUUklDU19DRVJUSUZJQ0FURTogXCJcIixcbiAgT1RFTF9FWFBPUlRFUl9PVExQX0xPR1NfQ0VSVElGSUNBVEU6IFwiXCIsXG4gIE9URUxfRVhQT1JURVJfT1RMUF9DT01QUkVTU0lPTjogXCJcIixcbiAgT1RFTF9FWFBPUlRFUl9PVExQX1RSQUNFU19DT01QUkVTU0lPTjogXCJcIixcbiAgT1RFTF9FWFBPUlRFUl9PVExQX01FVFJJQ1NfQ09NUFJFU1NJT046IFwiXCIsXG4gIE9URUxfRVhQT1JURVJfT1RMUF9MT0dTX0NPTVBSRVNTSU9OOiBcIlwiLFxuICBPVEVMX0VYUE9SVEVSX09UTFBfQ0xJRU5UX0tFWTogXCJcIixcbiAgT1RFTF9FWFBPUlRFUl9PVExQX1RSQUNFU19DTElFTlRfS0VZOiBcIlwiLFxuICBPVEVMX0VYUE9SVEVSX09UTFBfTUVUUklDU19DTElFTlRfS0VZOiBcIlwiLFxuICBPVEVMX0VYUE9SVEVSX09UTFBfTE9HU19DTElFTlRfS0VZOiBcIlwiLFxuICBPVEVMX0VYUE9SVEVSX09UTFBfQ0xJRU5UX0NFUlRJRklDQVRFOiBcIlwiLFxuICBPVEVMX0VYUE9SVEVSX09UTFBfVFJBQ0VTX0NMSUVOVF9DRVJUSUZJQ0FURTogXCJcIixcbiAgT1RFTF9FWFBPUlRFUl9PVExQX01FVFJJQ1NfQ0xJRU5UX0NFUlRJRklDQVRFOiBcIlwiLFxuICBPVEVMX0VYUE9SVEVSX09UTFBfTE9HU19DTElFTlRfQ0VSVElGSUNBVEU6IFwiXCIsXG4gIE9URUxfRVhQT1JURVJfT1RMUF9QUk9UT0NPTDogXCJodHRwL3Byb3RvYnVmXCIsXG4gIE9URUxfRVhQT1JURVJfT1RMUF9UUkFDRVNfUFJPVE9DT0w6IFwiaHR0cC9wcm90b2J1ZlwiLFxuICBPVEVMX0VYUE9SVEVSX09UTFBfTUVUUklDU19QUk9UT0NPTDogXCJodHRwL3Byb3RvYnVmXCIsXG4gIE9URUxfRVhQT1JURVJfT1RMUF9MT0dTX1BST1RPQ09MOiBcImh0dHAvcHJvdG9idWZcIixcbiAgT1RFTF9FWFBPUlRFUl9PVExQX01FVFJJQ1NfVEVNUE9SQUxJVFlfUFJFRkVSRU5DRTogXCJjdW11bGF0aXZlXCIsXG4gIE9URUxfU0VNQ09OVl9TVEFCSUxJVFlfT1BUX0lOOiBbXVxufTtcbmZ1bmN0aW9uIFRlKHIsIGUsIHQpIHtcbiAgaWYgKCEodHlwZW9mIHRbcl0gPiBcInVcIikpIHtcbiAgICB2YXIgbiA9IFN0cmluZyh0W3JdKTtcbiAgICBlW3JdID0gbi50b0xvd2VyQ2FzZSgpID09PSBcInRydWVcIjtcbiAgfVxufVxuZnVuY3Rpb24gdWUociwgZSwgdCwgbiwgYSkge1xuICBpZiAobiA9PT0gdm9pZCAwICYmIChuID0gLTEgLyAwKSwgYSA9PT0gdm9pZCAwICYmIChhID0gMSAvIDApLCB0eXBlb2YgdFtyXSA8IFwidVwiKSB7XG4gICAgdmFyIGkgPSBOdW1iZXIodFtyXSk7XG4gICAgaXNOYU4oaSkgfHwgKGkgPCBuID8gZVtyXSA9IG4gOiBpID4gYSA/IGVbcl0gPSBhIDogZVtyXSA9IGkpO1xuICB9XG59XG5mdW5jdGlvbiBmZShyLCBlLCB0LCBuKSB7XG4gIG4gPT09IHZvaWQgMCAmJiAobiA9IHRlKTtcbiAgdmFyIGEgPSB0W3JdO1xuICB0eXBlb2YgYSA9PSBcInN0cmluZ1wiICYmIChlW3JdID0gYS5zcGxpdChuKS5tYXAoZnVuY3Rpb24oaSkge1xuICAgIHJldHVybiBpLnRyaW0oKTtcbiAgfSkpO1xufVxudmFyIHNlID0ge1xuICBBTEw6IFokMS5BTEwsXG4gIFZFUkJPU0U6IFokMS5WRVJCT1NFLFxuICBERUJVRzogWiQxLkRFQlVHLFxuICBJTkZPOiBaJDEuSU5GTyxcbiAgV0FSTjogWiQxLldBUk4sXG4gIEVSUk9SOiBaJDEuRVJST1IsXG4gIE5PTkU6IFokMS5OT05FXG59O1xuZnVuY3Rpb24gbGUociwgZSwgdCkge1xuICB2YXIgbiA9IHRbcl07XG4gIGlmICh0eXBlb2YgbiA9PSBcInN0cmluZ1wiKSB7XG4gICAgdmFyIGEgPSBzZVtuLnRvVXBwZXJDYXNlKCldO1xuICAgIGEgIT0gbnVsbCAmJiAoZVtyXSA9IGEpO1xuICB9XG59XG5mdW5jdGlvbiBqKHIpIHtcbiAgdmFyIGUgPSB7fTtcbiAgZm9yICh2YXIgdCBpbiBWKSB7XG4gICAgdmFyIG4gPSB0O1xuICAgIHN3aXRjaCAobikge1xuICAgICAgY2FzZSBcIk9URUxfTE9HX0xFVkVMXCI6XG4gICAgICAgIGxlKG4sIGUsIHIpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGlmIChhZShuKSlcbiAgICAgICAgICBUZShuLCBlLCByKTtcbiAgICAgICAgZWxzZSBpZiAob2UobikpXG4gICAgICAgICAgdWUobiwgZSwgcik7XG4gICAgICAgIGVsc2UgaWYgKEVlKG4pKVxuICAgICAgICAgIGZlKG4sIGUsIHIpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICB2YXIgYSA9IHJbbl07XG4gICAgICAgICAgdHlwZW9mIGEgPCBcInVcIiAmJiBhICE9PSBudWxsICYmIChlW25dID0gU3RyaW5nKGEpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gZTtcbn1cbmZ1bmN0aW9uIE9lKCkge1xuICB2YXIgciA9IGooaF8pO1xuICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgViwgcik7XG59XG5mdW5jdGlvbiBjZSgpIHtcbiAgcmV0dXJuIGooaF8pO1xufVxudmFyIFJlID0gZnVuY3Rpb24ociwgZSkge1xuICB2YXIgdCA9IHR5cGVvZiBTeW1ib2wgPT0gXCJmdW5jdGlvblwiICYmIHJbU3ltYm9sLml0ZXJhdG9yXTtcbiAgaWYgKCF0KSByZXR1cm4gcjtcbiAgdmFyIG4gPSB0LmNhbGwociksIGEsIGkgPSBbXSwgbztcbiAgdHJ5IHtcbiAgICBmb3IgKDsgKGUgPT09IHZvaWQgMCB8fCBlLS0gPiAwKSAmJiAhKGEgPSBuLm5leHQoKSkuZG9uZTsgKSBpLnB1c2goYS52YWx1ZSk7XG4gIH0gY2F0Y2ggKF8pIHtcbiAgICBvID0geyBlcnJvcjogXyB9O1xuICB9IGZpbmFsbHkge1xuICAgIHRyeSB7XG4gICAgICBhICYmICFhLmRvbmUgJiYgKHQgPSBuLnJldHVybikgJiYgdC5jYWxsKG4pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAobykgdGhyb3cgby5lcnJvcjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGk7XG59LCBwZSA9IGZ1bmN0aW9uKHIsIGUsIHQpIHtcbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIGZvciAodmFyIG4gPSAwLCBhID0gZS5sZW5ndGgsIGk7IG4gPCBhOyBuKyspXG4gICAgKGkgfHwgIShuIGluIGUpKSAmJiAoaSB8fCAoaSA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUsIDAsIG4pKSwgaVtuXSA9IGVbbl0pO1xuICByZXR1cm4gci5jb25jYXQoaSB8fCBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlKSk7XG59O1xuZnVuY3Rpb24gZGUocikge1xuICByZXR1cm4gYnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZywgcGUoW10sIFJlKEEkMShyKSksIGZhbHNlKSkpO1xufVxudmFyIExlID0gOCwgQWUgPSAxNiwgUGUgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgLyogQF9fUFVSRV9fICovIChmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiByKCkge1xuICAgICAgdGhpcy5nZW5lcmF0ZVRyYWNlSWQgPSBZKEFlKSwgdGhpcy5nZW5lcmF0ZVNwYW5JZCA9IFkoTGUpO1xuICAgIH1cbiAgICByZXR1cm4gcjtcbiAgfSkoKVxuKSwgUiA9IEFycmF5KDMyKTtcbmZ1bmN0aW9uIFkocikge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgZm9yICh2YXIgdCA9IDA7IHQgPCByICogMjsgdCsrKVxuICAgICAgUlt0XSA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDE2KSArIDQ4LCBSW3RdID49IDU4ICYmIChSW3RdICs9IDM5KTtcbiAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLCBSLnNsaWNlKDAsIHIgKiAyKSk7XG4gIH07XG59XG5mdW5jdGlvbiBTZShyKSB7XG59XG52YXIgSWUgPSBmdW5jdGlvbihyKSB7XG4gIHZhciBlID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCB0ID0gZSAmJiByW2VdLCBuID0gMDtcbiAgaWYgKHQpIHJldHVybiB0LmNhbGwocik7XG4gIGlmIChyICYmIHR5cGVvZiByLmxlbmd0aCA9PSBcIm51bWJlclwiKSByZXR1cm4ge1xuICAgIG5leHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHIgJiYgbiA+PSByLmxlbmd0aCAmJiAociA9IHZvaWQgMCksIHsgdmFsdWU6IHIgJiYgcltuKytdLCBkb25lOiAhciB9O1xuICAgIH1cbiAgfTtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihlID8gXCJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLlwiIDogXCJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xufSwgdmUgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIkMShlKSB7XG4gICAgICBlID09PSB2b2lkIDAgJiYgKGUgPSB7fSk7XG4gICAgICB2YXIgdDtcbiAgICAgIHRoaXMuX3Byb3BhZ2F0b3JzID0gKHQgPSBlLnByb3BhZ2F0b3JzKSAhPT0gbnVsbCAmJiB0ICE9PSB2b2lkIDAgPyB0IDogW10sIHRoaXMuX2ZpZWxkcyA9IEFycmF5LmZyb20obmV3IFNldCh0aGlzLl9wcm9wYWdhdG9ycy5tYXAoZnVuY3Rpb24obikge1xuICAgICAgICByZXR1cm4gdHlwZW9mIG4uZmllbGRzID09IFwiZnVuY3Rpb25cIiA/IG4uZmllbGRzKCkgOiBbXTtcbiAgICAgIH0pLnJlZHVjZShmdW5jdGlvbihuLCBhKSB7XG4gICAgICAgIHJldHVybiBuLmNvbmNhdChhKTtcbiAgICAgIH0sIFtdKSkpO1xuICAgIH1cbiAgICByZXR1cm4gciQxLnByb3RvdHlwZS5pbmplY3QgPSBmdW5jdGlvbihlLCB0LCBuKSB7XG4gICAgICB2YXIgYSwgaTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGZvciAodmFyIG8gPSBJZSh0aGlzLl9wcm9wYWdhdG9ycyksIF8gPSBvLm5leHQoKTsgIV8uZG9uZTsgXyA9IG8ubmV4dCgpKSB7XG4gICAgICAgICAgdmFyIEUgPSBfLnZhbHVlO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBFLmluamVjdChlLCB0LCBuKTtcbiAgICAgICAgICB9IGNhdGNoIChUKSB7XG4gICAgICAgICAgICByLndhcm4oXCJGYWlsZWQgdG8gaW5qZWN0IHdpdGggXCIgKyBFLmNvbnN0cnVjdG9yLm5hbWUgKyBcIi4gRXJyOiBcIiArIFQubWVzc2FnZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChUKSB7XG4gICAgICAgIGEgPSB7IGVycm9yOiBUIH07XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIF8gJiYgIV8uZG9uZSAmJiAoaSA9IG8ucmV0dXJuKSAmJiBpLmNhbGwobyk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgaWYgKGEpIHRocm93IGEuZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCByJDEucHJvdG90eXBlLmV4dHJhY3QgPSBmdW5jdGlvbihlLCB0LCBuKSB7XG4gICAgICByZXR1cm4gdGhpcy5fcHJvcGFnYXRvcnMucmVkdWNlKGZ1bmN0aW9uKGEsIGkpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gaS5leHRyYWN0KGEsIHQsIG4pO1xuICAgICAgICB9IGNhdGNoIChvKSB7XG4gICAgICAgICAgci53YXJuKFwiRmFpbGVkIHRvIGV4dHJhY3Qgd2l0aCBcIiArIGkuY29uc3RydWN0b3IubmFtZSArIFwiLiBFcnI6IFwiICsgby5tZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYTtcbiAgICAgIH0sIGUpO1xuICAgIH0sIHIkMS5wcm90b3R5cGUuZmllbGRzID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZmllbGRzLnNsaWNlKCk7XG4gICAgfSwgciQxO1xuICB9KSgpXG4pLCBCID0gXCJbXzAtOWEtei0qL11cIiwgeWUgPSBcIlthLXpdXCIgKyBCICsgXCJ7MCwyNTV9XCIsIGhlID0gXCJbYS16MC05XVwiICsgQiArIFwiezAsMjQwfUBbYS16XVwiICsgQiArIFwiezAsMTN9XCIsIGdlID0gbmV3IFJlZ0V4cChcIl4oPzpcIiArIHllICsgXCJ8XCIgKyBoZSArIFwiKSRcIiksIG1lID0gL15bIC1+XXswLDI1NX1bIS1+XSQvLCBDZSA9IC8sfD0vO1xuZnVuY3Rpb24gTmUocikge1xuICByZXR1cm4gZ2UudGVzdChyKTtcbn1cbmZ1bmN0aW9uIE1lKHIpIHtcbiAgcmV0dXJuIG1lLnRlc3QocikgJiYgIUNlLnRlc3Qocik7XG59XG52YXIgeiA9IDMyLCBVZSA9IDUxMiwgVyA9IFwiLFwiLCBaID0gXCI9XCIsIGZyID0gKFxuICAvKiogQGNsYXNzICovXG4gIChmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiByKGUpIHtcbiAgICAgIHRoaXMuX2ludGVybmFsU3RhdGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpLCBlICYmIHRoaXMuX3BhcnNlKGUpO1xuICAgIH1cbiAgICByZXR1cm4gci5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24oZSwgdCkge1xuICAgICAgdmFyIG4gPSB0aGlzLl9jbG9uZSgpO1xuICAgICAgcmV0dXJuIG4uX2ludGVybmFsU3RhdGUuaGFzKGUpICYmIG4uX2ludGVybmFsU3RhdGUuZGVsZXRlKGUpLCBuLl9pbnRlcm5hbFN0YXRlLnNldChlLCB0KSwgbjtcbiAgICB9LCByLnByb3RvdHlwZS51bnNldCA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgIHZhciB0ID0gdGhpcy5fY2xvbmUoKTtcbiAgICAgIHJldHVybiB0Ll9pbnRlcm5hbFN0YXRlLmRlbGV0ZShlKSwgdDtcbiAgICB9LCByLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbihlKSB7XG4gICAgICByZXR1cm4gdGhpcy5faW50ZXJuYWxTdGF0ZS5nZXQoZSk7XG4gICAgfSwgci5wcm90b3R5cGUuc2VyaWFsaXplID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgZSA9IHRoaXM7XG4gICAgICByZXR1cm4gdGhpcy5fa2V5cygpLnJlZHVjZShmdW5jdGlvbih0LCBuKSB7XG4gICAgICAgIHJldHVybiB0LnB1c2gobiArIFogKyBlLmdldChuKSksIHQ7XG4gICAgICB9LCBbXSkuam9pbihXKTtcbiAgICB9LCByLnByb3RvdHlwZS5fcGFyc2UgPSBmdW5jdGlvbihlKSB7XG4gICAgICBlLmxlbmd0aCA+IFVlIHx8ICh0aGlzLl9pbnRlcm5hbFN0YXRlID0gZS5zcGxpdChXKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKHQsIG4pIHtcbiAgICAgICAgdmFyIGEgPSBuLnRyaW0oKSwgaSA9IGEuaW5kZXhPZihaKTtcbiAgICAgICAgaWYgKGkgIT09IC0xKSB7XG4gICAgICAgICAgdmFyIG8gPSBhLnNsaWNlKDAsIGkpLCBfID0gYS5zbGljZShpICsgMSwgbi5sZW5ndGgpO1xuICAgICAgICAgIE5lKG8pICYmIE1lKF8pICYmIHQuc2V0KG8sIF8pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgICAgfSwgLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKSksIHRoaXMuX2ludGVybmFsU3RhdGUuc2l6ZSA+IHogJiYgKHRoaXMuX2ludGVybmFsU3RhdGUgPSBuZXcgTWFwKEFycmF5LmZyb20odGhpcy5faW50ZXJuYWxTdGF0ZS5lbnRyaWVzKCkpLnJldmVyc2UoKS5zbGljZSgwLCB6KSkpKTtcbiAgICB9LCByLnByb3RvdHlwZS5fa2V5cyA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5faW50ZXJuYWxTdGF0ZS5rZXlzKCkpLnJldmVyc2UoKTtcbiAgICB9LCByLnByb3RvdHlwZS5fY2xvbmUgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBlID0gbmV3IHIoKTtcbiAgICAgIHJldHVybiBlLl9pbnRlcm5hbFN0YXRlID0gbmV3IE1hcCh0aGlzLl9pbnRlcm5hbFN0YXRlKSwgZTtcbiAgICB9LCByO1xuICB9KSgpXG4pLCBMID0gXCJ0cmFjZXBhcmVudFwiLCBBID0gXCJ0cmFjZXN0YXRlXCIsIEJlID0gXCIwMFwiLCBiZSA9IFwiKD8hZmYpW1xcXFxkYS1mXXsyfVwiLCBEZSA9IFwiKD8hWzBdezMyfSlbXFxcXGRhLWZdezMyfVwiLCBYZSA9IFwiKD8hWzBdezE2fSlbXFxcXGRhLWZdezE2fVwiLCBHZSA9IFwiW1xcXFxkYS1mXXsyfVwiLCB3ZSA9IG5ldyBSZWdFeHAoXCJeXFxcXHM/KFwiICsgYmUgKyBcIiktKFwiICsgRGUgKyBcIiktKFwiICsgWGUgKyBcIiktKFwiICsgR2UgKyBcIikoLS4qKT9cXFxccz8kXCIpO1xuZnVuY3Rpb24gc3Iocikge1xuICB2YXIgZSA9IHdlLmV4ZWMocik7XG4gIHJldHVybiAhZSB8fCBlWzFdID09PSBcIjAwXCIgJiYgZVs1XSA/IG51bGwgOiB7XG4gICAgdHJhY2VJZDogZVsyXSxcbiAgICBzcGFuSWQ6IGVbM10sXG4gICAgdHJhY2VGbGFnczogcGFyc2VJbnQoZVs0XSwgMTYpXG4gIH07XG59XG52YXIgVmUgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIoKSB7XG4gICAgfVxuICAgIHJldHVybiByLnByb3RvdHlwZS5pbmplY3QgPSBmdW5jdGlvbihlLCB0LCBuKSB7XG4gICAgICB2YXIgYSQxID0gTWUkMS5nZXRTcGFuQ29udGV4dChlKTtcbiAgICAgIGlmICghKCFhJDEgfHwgYShlKSB8fCAhaG4oYSQxKSkpIHtcbiAgICAgICAgdmFyIGkgPSBCZSArIFwiLVwiICsgYSQxLnRyYWNlSWQgKyBcIi1cIiArIGEkMS5zcGFuSWQgKyBcIi0wXCIgKyBOdW1iZXIoYSQxLnRyYWNlRmxhZ3MgfHwgSHQuTk9ORSkudG9TdHJpbmcoMTYpO1xuICAgICAgICBuLnNldCh0LCBMLCBpKSwgYSQxLnRyYWNlU3RhdGUgJiYgbi5zZXQodCwgQSwgYSQxLnRyYWNlU3RhdGUuc2VyaWFsaXplKCkpO1xuICAgICAgfVxuICAgIH0sIHIucHJvdG90eXBlLmV4dHJhY3QgPSBmdW5jdGlvbihlLCB0LCBuKSB7XG4gICAgICB2YXIgYSA9IG4uZ2V0KHQsIEwpO1xuICAgICAgaWYgKCFhKVxuICAgICAgICByZXR1cm4gZTtcbiAgICAgIHZhciBpID0gQXJyYXkuaXNBcnJheShhKSA/IGFbMF0gOiBhO1xuICAgICAgaWYgKHR5cGVvZiBpICE9IFwic3RyaW5nXCIpXG4gICAgICAgIHJldHVybiBlO1xuICAgICAgdmFyIG8gPSBzcihpKTtcbiAgICAgIGlmICghbylcbiAgICAgICAgcmV0dXJuIGU7XG4gICAgICBvLmlzUmVtb3RlID0gdHJ1ZTtcbiAgICAgIHZhciBfID0gbi5nZXQodCwgQSk7XG4gICAgICBpZiAoXykge1xuICAgICAgICB2YXIgRSA9IEFycmF5LmlzQXJyYXkoXykgPyBfLmpvaW4oXCIsXCIpIDogXztcbiAgICAgICAgby50cmFjZVN0YXRlID0gbmV3IGZyKHR5cGVvZiBFID09IFwic3RyaW5nXCIgPyBFIDogdm9pZCAwKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBNZSQxLnNldFNwYW5Db250ZXh0KGUsIG8pO1xuICAgIH0sIHIucHJvdG90eXBlLmZpZWxkcyA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIFtMLCBBXTtcbiAgICB9LCByO1xuICB9KSgpXG4pLCBIID0gWmkoXCJPcGVuVGVsZW1ldHJ5IFNESyBDb250ZXh0IEtleSBSUENfTUVUQURBVEFcIiksIGI7XG4oZnVuY3Rpb24ocikge1xuICByLkhUVFAgPSBcImh0dHBcIjtcbn0pKGIgfHwgKGIgPSB7fSkpO1xuZnVuY3Rpb24gamUociwgZSkge1xuICByZXR1cm4gci5zZXRWYWx1ZShILCBlKTtcbn1cbmZ1bmN0aW9uIEhlKHIpIHtcbiAgcmV0dXJuIHIuZGVsZXRlVmFsdWUoSCk7XG59XG5mdW5jdGlvbiB4ZShyKSB7XG4gIHJldHVybiByLmdldFZhbHVlKEgpO1xufVxudmFyIEQgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIoKSB7XG4gICAgfVxuICAgIHJldHVybiByLnByb3RvdHlwZS5zaG91bGRTYW1wbGUgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRlY2lzaW9uOiBsLk5PVF9SRUNPUkRcbiAgICAgIH07XG4gICAgfSwgci5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBcIkFsd2F5c09mZlNhbXBsZXJcIjtcbiAgICB9LCByO1xuICB9KSgpXG4pLCBQID0gKFxuICAvKiogQGNsYXNzICovXG4gIChmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiByKCkge1xuICAgIH1cbiAgICByZXR1cm4gci5wcm90b3R5cGUuc2hvdWxkU2FtcGxlID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBkZWNpc2lvbjogbC5SRUNPUkRfQU5EX1NBTVBMRURcbiAgICAgIH07XG4gICAgfSwgci5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBcIkFsd2F5c09uU2FtcGxlclwiO1xuICAgIH0sIHI7XG4gIH0pKClcbiksIEZlID0gKFxuICAvKiogQGNsYXNzICovXG4gIChmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiByKGUpIHtcbiAgICAgIHZhciB0LCBuLCBhLCBpO1xuICAgICAgdGhpcy5fcm9vdCA9IGUucm9vdCwgdGhpcy5fcm9vdCB8fCAoRXIobmV3IEVycm9yKFwiUGFyZW50QmFzZWRTYW1wbGVyIG11c3QgaGF2ZSBhIHJvb3Qgc2FtcGxlciBjb25maWd1cmVkXCIpKSwgdGhpcy5fcm9vdCA9IG5ldyBQKCkpLCB0aGlzLl9yZW1vdGVQYXJlbnRTYW1wbGVkID0gKHQgPSBlLnJlbW90ZVBhcmVudFNhbXBsZWQpICE9PSBudWxsICYmIHQgIT09IHZvaWQgMCA/IHQgOiBuZXcgUCgpLCB0aGlzLl9yZW1vdGVQYXJlbnROb3RTYW1wbGVkID0gKG4gPSBlLnJlbW90ZVBhcmVudE5vdFNhbXBsZWQpICE9PSBudWxsICYmIG4gIT09IHZvaWQgMCA/IG4gOiBuZXcgRCgpLCB0aGlzLl9sb2NhbFBhcmVudFNhbXBsZWQgPSAoYSA9IGUubG9jYWxQYXJlbnRTYW1wbGVkKSAhPT0gbnVsbCAmJiBhICE9PSB2b2lkIDAgPyBhIDogbmV3IFAoKSwgdGhpcy5fbG9jYWxQYXJlbnROb3RTYW1wbGVkID0gKGkgPSBlLmxvY2FsUGFyZW50Tm90U2FtcGxlZCkgIT09IG51bGwgJiYgaSAhPT0gdm9pZCAwID8gaSA6IG5ldyBEKCk7XG4gICAgfVxuICAgIHJldHVybiByLnByb3RvdHlwZS5zaG91bGRTYW1wbGUgPSBmdW5jdGlvbihlLCB0LCBuLCBhLCBpLCBvKSB7XG4gICAgICB2YXIgXyA9IE1lJDEuZ2V0U3BhbkNvbnRleHQoZSk7XG4gICAgICByZXR1cm4gIV8gfHwgIWhuKF8pID8gdGhpcy5fcm9vdC5zaG91bGRTYW1wbGUoZSwgdCwgbiwgYSwgaSwgbykgOiBfLmlzUmVtb3RlID8gXy50cmFjZUZsYWdzICYgSHQuU0FNUExFRCA/IHRoaXMuX3JlbW90ZVBhcmVudFNhbXBsZWQuc2hvdWxkU2FtcGxlKGUsIHQsIG4sIGEsIGksIG8pIDogdGhpcy5fcmVtb3RlUGFyZW50Tm90U2FtcGxlZC5zaG91bGRTYW1wbGUoZSwgdCwgbiwgYSwgaSwgbykgOiBfLnRyYWNlRmxhZ3MgJiBIdC5TQU1QTEVEID8gdGhpcy5fbG9jYWxQYXJlbnRTYW1wbGVkLnNob3VsZFNhbXBsZShlLCB0LCBuLCBhLCBpLCBvKSA6IHRoaXMuX2xvY2FsUGFyZW50Tm90U2FtcGxlZC5zaG91bGRTYW1wbGUoZSwgdCwgbiwgYSwgaSwgbyk7XG4gICAgfSwgci5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBcIlBhcmVudEJhc2Vke3Jvb3Q9XCIgKyB0aGlzLl9yb290LnRvU3RyaW5nKCkgKyBcIiwgcmVtb3RlUGFyZW50U2FtcGxlZD1cIiArIHRoaXMuX3JlbW90ZVBhcmVudFNhbXBsZWQudG9TdHJpbmcoKSArIFwiLCByZW1vdGVQYXJlbnROb3RTYW1wbGVkPVwiICsgdGhpcy5fcmVtb3RlUGFyZW50Tm90U2FtcGxlZC50b1N0cmluZygpICsgXCIsIGxvY2FsUGFyZW50U2FtcGxlZD1cIiArIHRoaXMuX2xvY2FsUGFyZW50U2FtcGxlZC50b1N0cmluZygpICsgXCIsIGxvY2FsUGFyZW50Tm90U2FtcGxlZD1cIiArIHRoaXMuX2xvY2FsUGFyZW50Tm90U2FtcGxlZC50b1N0cmluZygpICsgXCJ9XCI7XG4gICAgfSwgcjtcbiAgfSkoKVxuKSwgS2UgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIoZSkge1xuICAgICAgZSA9PT0gdm9pZCAwICYmIChlID0gMCksIHRoaXMuX3JhdGlvID0gZSwgdGhpcy5fcmF0aW8gPSB0aGlzLl9ub3JtYWxpemUoZSksIHRoaXMuX3VwcGVyQm91bmQgPSBNYXRoLmZsb29yKHRoaXMuX3JhdGlvICogNDI5NDk2NzI5NSk7XG4gICAgfVxuICAgIHJldHVybiByLnByb3RvdHlwZS5zaG91bGRTYW1wbGUgPSBmdW5jdGlvbihlLCB0KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBkZWNpc2lvbjogZHModCkgJiYgdGhpcy5fYWNjdW11bGF0ZSh0KSA8IHRoaXMuX3VwcGVyQm91bmQgPyBsLlJFQ09SRF9BTkRfU0FNUExFRCA6IGwuTk9UX1JFQ09SRFxuICAgICAgfTtcbiAgICB9LCByLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIFwiVHJhY2VJZFJhdGlvQmFzZWR7XCIgKyB0aGlzLl9yYXRpbyArIFwifVwiO1xuICAgIH0sIHIucHJvdG90eXBlLl9ub3JtYWxpemUgPSBmdW5jdGlvbihlKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIGUgIT0gXCJudW1iZXJcIiB8fCBpc05hTihlKSA/IDAgOiBlID49IDEgPyAxIDogZSA8PSAwID8gMCA6IGU7XG4gICAgfSwgci5wcm90b3R5cGUuX2FjY3VtdWxhdGUgPSBmdW5jdGlvbihlKSB7XG4gICAgICBmb3IgKHZhciB0ID0gMCwgbiA9IDA7IG4gPCBlLmxlbmd0aCAvIDg7IG4rKykge1xuICAgICAgICB2YXIgYSA9IG4gKiA4LCBpID0gcGFyc2VJbnQoZS5zbGljZShhLCBhICsgOCksIDE2KTtcbiAgICAgICAgdCA9ICh0IF4gaSkgPj4+IDA7XG4gICAgICB9XG4gICAgICByZXR1cm4gdDtcbiAgICB9LCByO1xuICB9KSgpXG4pLCBZZSA9IFwiW29iamVjdCBPYmplY3RdXCIsIHplID0gXCJbb2JqZWN0IE51bGxdXCIsIFdlID0gXCJbb2JqZWN0IFVuZGVmaW5lZF1cIiwgWmUgPSBGdW5jdGlvbi5wcm90b3R5cGUsIGxyID0gWmUudG9TdHJpbmcsICRlID0gbHIuY2FsbChPYmplY3QpLCBKZSA9IFFlKE9iamVjdC5nZXRQcm90b3R5cGVPZiwgT2JqZWN0KSwgT3IgPSBPYmplY3QucHJvdG90eXBlLCBjciA9IE9yLmhhc093blByb3BlcnR5LCBmID0gU3ltYm9sID8gU3ltYm9sLnRvU3RyaW5nVGFnIDogdm9pZCAwLCBSciA9IE9yLnRvU3RyaW5nO1xuZnVuY3Rpb24gUWUociwgZSkge1xuICByZXR1cm4gZnVuY3Rpb24odCkge1xuICAgIHJldHVybiByKGUodCkpO1xuICB9O1xufVxuZnVuY3Rpb24gJChyKSB7XG4gIGlmICghcWUocikgfHwga2UocikgIT09IFllKVxuICAgIHJldHVybiBmYWxzZTtcbiAgdmFyIGUgPSBKZShyKTtcbiAgaWYgKGUgPT09IG51bGwpXG4gICAgcmV0dXJuIHRydWU7XG4gIHZhciB0ID0gY3IuY2FsbChlLCBcImNvbnN0cnVjdG9yXCIpICYmIGUuY29uc3RydWN0b3I7XG4gIHJldHVybiB0eXBlb2YgdCA9PSBcImZ1bmN0aW9uXCIgJiYgdCBpbnN0YW5jZW9mIHQgJiYgbHIuY2FsbCh0KSA9PT0gJGU7XG59XG5mdW5jdGlvbiBxZShyKSB7XG4gIHJldHVybiByICE9IG51bGwgJiYgdHlwZW9mIHIgPT0gXCJvYmplY3RcIjtcbn1cbmZ1bmN0aW9uIGtlKHIpIHtcbiAgcmV0dXJuIHIgPT0gbnVsbCA/IHIgPT09IHZvaWQgMCA/IFdlIDogemUgOiBmICYmIGYgaW4gT2JqZWN0KHIpID8gcnQocikgOiBldChyKTtcbn1cbmZ1bmN0aW9uIHJ0KHIpIHtcbiAgdmFyIGUgPSBjci5jYWxsKHIsIGYpLCB0ID0gcltmXSwgbiA9IGZhbHNlO1xuICB0cnkge1xuICAgIHJbZl0gPSB2b2lkIDAsIG4gPSAhMDtcbiAgfSBjYXRjaCB7XG4gIH1cbiAgdmFyIGEgPSBSci5jYWxsKHIpO1xuICByZXR1cm4gbiAmJiAoZSA/IHJbZl0gPSB0IDogZGVsZXRlIHJbZl0pLCBhO1xufVxuZnVuY3Rpb24gZXQocikge1xuICByZXR1cm4gUnIuY2FsbChyKTtcbn1cbnZhciB0dCA9IDIwO1xuZnVuY3Rpb24gbnQoKSB7XG4gIGZvciAodmFyIHIgPSBbXSwgZSA9IDA7IGUgPCBhcmd1bWVudHMubGVuZ3RoOyBlKyspXG4gICAgcltlXSA9IGFyZ3VtZW50c1tlXTtcbiAgZm9yICh2YXIgdCA9IHIuc2hpZnQoKSwgbiA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgV2Vha01hcCgpOyByLmxlbmd0aCA+IDA7IClcbiAgICB0ID0gcHIodCwgci5zaGlmdCgpLCAwLCBuKTtcbiAgcmV0dXJuIHQ7XG59XG5mdW5jdGlvbiBDKHIpIHtcbiAgcmV0dXJuIHkocikgPyByLnNsaWNlKCkgOiByO1xufVxuZnVuY3Rpb24gcHIociwgZSwgdCwgbikge1xuICB0ID09PSB2b2lkIDAgJiYgKHQgPSAwKTtcbiAgdmFyIGE7XG4gIGlmICghKHQgPiB0dCkpIHtcbiAgICBpZiAodCsrLCBTKHIpIHx8IFMoZSkgfHwgZHIoZSkpXG4gICAgICBhID0gQyhlKTtcbiAgICBlbHNlIGlmICh5KHIpKSB7XG4gICAgICBpZiAoYSA9IHIuc2xpY2UoKSwgeShlKSlcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIG8gPSBlLmxlbmd0aDsgaSA8IG87IGkrKylcbiAgICAgICAgICBhLnB1c2goQyhlW2ldKSk7XG4gICAgICBlbHNlIGlmIChPKGUpKVxuICAgICAgICBmb3IgKHZhciBfID0gT2JqZWN0LmtleXMoZSksIGkgPSAwLCBvID0gXy5sZW5ndGg7IGkgPCBvOyBpKyspIHtcbiAgICAgICAgICB2YXIgRSA9IF9baV07XG4gICAgICAgICAgYVtFXSA9IEMoZVtFXSk7XG4gICAgICAgIH1cbiAgICB9IGVsc2UgaWYgKE8ocikpXG4gICAgICBpZiAoTyhlKSkge1xuICAgICAgICBpZiAoIWF0KHIsIGUpKVxuICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICBhID0gT2JqZWN0LmFzc2lnbih7fSwgcik7XG4gICAgICAgIGZvciAodmFyIF8gPSBPYmplY3Qua2V5cyhlKSwgaSA9IDAsIG8gPSBfLmxlbmd0aDsgaSA8IG87IGkrKykge1xuICAgICAgICAgIHZhciBFID0gX1tpXSwgVCA9IGVbRV07XG4gICAgICAgICAgaWYgKFMoVCkpXG4gICAgICAgICAgICB0eXBlb2YgVCA+IFwidVwiID8gZGVsZXRlIGFbRV0gOiBhW0VdID0gVDtcbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHZhciBzID0gYVtFXSwgaCA9IFQ7XG4gICAgICAgICAgICBpZiAoSihyLCBFLCBuKSB8fCBKKGUsIEUsIG4pKVxuICAgICAgICAgICAgICBkZWxldGUgYVtFXTtcbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICBpZiAoTyhzKSAmJiBPKGgpKSB7XG4gICAgICAgICAgICAgICAgdmFyIHggPSBuLmdldChzKSB8fCBbXSwgRiA9IG4uZ2V0KGgpIHx8IFtdO1xuICAgICAgICAgICAgICAgIHgucHVzaCh7IG9iajogciwga2V5OiBFIH0pLCBGLnB1c2goeyBvYmo6IGUsIGtleTogRSB9KSwgbi5zZXQocywgeCksIG4uc2V0KGgsIEYpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGFbRV0gPSBwcihhW0VdLCBULCB0LCBuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZVxuICAgICAgICBhID0gZTtcbiAgICByZXR1cm4gYTtcbiAgfVxufVxuZnVuY3Rpb24gSihyLCBlLCB0KSB7XG4gIGZvciAodmFyIG4gPSB0LmdldChyW2VdKSB8fCBbXSwgYSA9IDAsIGkgPSBuLmxlbmd0aDsgYSA8IGk7IGErKykge1xuICAgIHZhciBvID0gblthXTtcbiAgICBpZiAoby5rZXkgPT09IGUgJiYgby5vYmogPT09IHIpXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiB5KHIpIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkocik7XG59XG5mdW5jdGlvbiBkcihyKSB7XG4gIHJldHVybiB0eXBlb2YgciA9PSBcImZ1bmN0aW9uXCI7XG59XG5mdW5jdGlvbiBPKHIpIHtcbiAgcmV0dXJuICFTKHIpICYmICF5KHIpICYmICFkcihyKSAmJiB0eXBlb2YgciA9PSBcIm9iamVjdFwiO1xufVxuZnVuY3Rpb24gUyhyKSB7XG4gIHJldHVybiB0eXBlb2YgciA9PSBcInN0cmluZ1wiIHx8IHR5cGVvZiByID09IFwibnVtYmVyXCIgfHwgdHlwZW9mIHIgPT0gXCJib29sZWFuXCIgfHwgdHlwZW9mIHIgPiBcInVcIiB8fCByIGluc3RhbmNlb2YgRGF0ZSB8fCByIGluc3RhbmNlb2YgUmVnRXhwIHx8IHIgPT09IG51bGw7XG59XG5mdW5jdGlvbiBhdChyLCBlKSB7XG4gIHJldHVybiAhKCEkKHIpIHx8ICEkKGUpKTtcbn1cbnZhciBpdCA9IC8qIEBfX1BVUkVfXyAqLyAoZnVuY3Rpb24oKSB7XG4gIHZhciByID0gZnVuY3Rpb24oZSwgdCkge1xuICAgIHJldHVybiByID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24obiwgYSkge1xuICAgICAgbi5fX3Byb3RvX18gPSBhO1xuICAgIH0gfHwgZnVuY3Rpb24obiwgYSkge1xuICAgICAgZm9yICh2YXIgaSBpbiBhKSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSwgaSkgJiYgKG5baV0gPSBhW2ldKTtcbiAgICB9LCByKGUsIHQpO1xuICB9O1xuICByZXR1cm4gZnVuY3Rpb24oZSwgdCkge1xuICAgIGlmICh0eXBlb2YgdCAhPSBcImZ1bmN0aW9uXCIgJiYgdCAhPT0gbnVsbClcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDbGFzcyBleHRlbmRzIHZhbHVlIFwiICsgU3RyaW5nKHQpICsgXCIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbFwiKTtcbiAgICByKGUsIHQpO1xuICAgIGZ1bmN0aW9uIG4oKSB7XG4gICAgICB0aGlzLmNvbnN0cnVjdG9yID0gZTtcbiAgICB9XG4gICAgZS5wcm90b3R5cGUgPSB0ID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZSh0KSA6IChuLnByb3RvdHlwZSA9IHQucHJvdG90eXBlLCBuZXcgbigpKTtcbiAgfTtcbn0pKCksIExyID0gKFxuICAvKiogQGNsYXNzICovXG4gIChmdW5jdGlvbihyKSB7XG4gICAgaXQoZSwgcik7XG4gICAgZnVuY3Rpb24gZSh0KSB7XG4gICAgICB2YXIgbiA9IHIuY2FsbCh0aGlzLCB0KSB8fCB0aGlzO1xuICAgICAgcmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZihuLCBlLnByb3RvdHlwZSksIG47XG4gICAgfVxuICAgIHJldHVybiBlO1xuICB9KShFcnJvcilcbik7XG5mdW5jdGlvbiBvdChyLCBlKSB7XG4gIHZhciB0LCBuID0gbmV3IFByb21pc2UoZnVuY3Rpb24oaSwgbykge1xuICAgIHQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgbyhuZXcgTHIoXCJPcGVyYXRpb24gdGltZWQgb3V0LlwiKSk7XG4gICAgfSwgZSk7XG4gIH0pO1xuICByZXR1cm4gUHJvbWlzZS5yYWNlKFtyLCBuXSkudGhlbihmdW5jdGlvbihhKSB7XG4gICAgcmV0dXJuIGNsZWFyVGltZW91dCh0KSwgYTtcbiAgfSwgZnVuY3Rpb24oYSkge1xuICAgIHRocm93IGNsZWFyVGltZW91dCh0KSwgYTtcbiAgfSk7XG59XG5mdW5jdGlvbiBfdChyKSB7XG4gIHJldHVybiB0eXBlb2YgciA9PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIHIuX19vcmlnaW5hbCA9PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIHIuX191bndyYXAgPT0gXCJmdW5jdGlvblwiICYmIHIuX193cmFwcGVkID09PSB0cnVlO1xufVxudmFyIEV0ID0gKFxuICAvKiogQGNsYXNzICovXG4gIChmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiByKCkge1xuICAgICAgdmFyIGUgPSB0aGlzO1xuICAgICAgdGhpcy5fcHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHQsIG4pIHtcbiAgICAgICAgZS5fcmVzb2x2ZSA9IHQsIGUuX3JlamVjdCA9IG47XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLnByb3RvdHlwZSwgXCJwcm9taXNlXCIsIHtcbiAgICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wcm9taXNlO1xuICAgICAgfSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSksIHIucHJvdG90eXBlLnJlc29sdmUgPSBmdW5jdGlvbihlKSB7XG4gICAgICB0aGlzLl9yZXNvbHZlKGUpO1xuICAgIH0sIHIucHJvdG90eXBlLnJlamVjdCA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgIHRoaXMuX3JlamVjdChlKTtcbiAgICB9LCByO1xuICB9KSgpXG4pLCBUdCA9IGZ1bmN0aW9uKHIsIGUpIHtcbiAgdmFyIHQgPSB0eXBlb2YgU3ltYm9sID09IFwiZnVuY3Rpb25cIiAmJiByW1N5bWJvbC5pdGVyYXRvcl07XG4gIGlmICghdCkgcmV0dXJuIHI7XG4gIHZhciBuID0gdC5jYWxsKHIpLCBhLCBpID0gW10sIG87XG4gIHRyeSB7XG4gICAgZm9yICg7IChlID09PSB2b2lkIDAgfHwgZS0tID4gMCkgJiYgIShhID0gbi5uZXh0KCkpLmRvbmU7ICkgaS5wdXNoKGEudmFsdWUpO1xuICB9IGNhdGNoIChfKSB7XG4gICAgbyA9IHsgZXJyb3I6IF8gfTtcbiAgfSBmaW5hbGx5IHtcbiAgICB0cnkge1xuICAgICAgYSAmJiAhYS5kb25lICYmICh0ID0gbi5yZXR1cm4pICYmIHQuY2FsbChuKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWYgKG8pIHRocm93IG8uZXJyb3I7XG4gICAgfVxuICB9XG4gIHJldHVybiBpO1xufSwgdXQgPSBmdW5jdGlvbihyLCBlLCB0KSB7XG4gIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyKSBmb3IgKHZhciBuID0gMCwgYSA9IGUubGVuZ3RoLCBpOyBuIDwgYTsgbisrKVxuICAgIChpIHx8ICEobiBpbiBlKSkgJiYgKGkgfHwgKGkgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlLCAwLCBuKSksIGlbbl0gPSBlW25dKTtcbiAgcmV0dXJuIHIuY29uY2F0KGkgfHwgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZSkpO1xufSwgZnQgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIoZSwgdCkge1xuICAgICAgdGhpcy5fY2FsbGJhY2sgPSBlLCB0aGlzLl90aGF0ID0gdCwgdGhpcy5faXNDYWxsZWQgPSBmYWxzZSwgdGhpcy5fZGVmZXJyZWQgPSBuZXcgRXQoKTtcbiAgICB9XG4gICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLnByb3RvdHlwZSwgXCJpc0NhbGxlZFwiLCB7XG4gICAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNDYWxsZWQ7XG4gICAgICB9LFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KSwgT2JqZWN0LmRlZmluZVByb3BlcnR5KHIucHJvdG90eXBlLCBcInByb21pc2VcIiwge1xuICAgICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZmVycmVkLnByb21pc2U7XG4gICAgICB9LFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KSwgci5wcm90b3R5cGUuY2FsbCA9IGZ1bmN0aW9uKCkge1xuICAgICAgZm9yICh2YXIgZSwgdCA9IHRoaXMsIG4gPSBbXSwgYSA9IDA7IGEgPCBhcmd1bWVudHMubGVuZ3RoOyBhKyspXG4gICAgICAgIG5bYV0gPSBhcmd1bWVudHNbYV07XG4gICAgICBpZiAoIXRoaXMuX2lzQ2FsbGVkKSB7XG4gICAgICAgIHRoaXMuX2lzQ2FsbGVkID0gdHJ1ZTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBQcm9taXNlLnJlc29sdmUoKGUgPSB0aGlzLl9jYWxsYmFjaykuY2FsbC5hcHBseShlLCB1dChbdGhpcy5fdGhhdF0sIFR0KG4pLCAhMSkpKS50aGVuKGZ1bmN0aW9uKGkpIHtcbiAgICAgICAgICAgIHJldHVybiB0Ll9kZWZlcnJlZC5yZXNvbHZlKGkpO1xuICAgICAgICAgIH0sIGZ1bmN0aW9uKGkpIHtcbiAgICAgICAgICAgIHJldHVybiB0Ll9kZWZlcnJlZC5yZWplY3QoaSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGkpIHtcbiAgICAgICAgICB0aGlzLl9kZWZlcnJlZC5yZWplY3QoaSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLl9kZWZlcnJlZC5wcm9taXNlO1xuICAgIH0sIHI7XG4gIH0pKClcbik7XG5mdW5jdGlvbiBzdChyLCBlKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih0KSB7XG4gICAgVGUkMS53aXRoKHUoVGUkMS5hY3RpdmUoKSksIGZ1bmN0aW9uKCkge1xuICAgICAgci5leHBvcnQoZSwgZnVuY3Rpb24obikge1xuICAgICAgICB0KG4pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufVxudmFyIGx0ID0ge1xuICBnZXRLZXlQYWlyczogZXIsXG4gIHNlcmlhbGl6ZUtleVBhaXJzOiBycixcbiAgcGFyc2VLZXlQYWlyc0ludG9SZWNvcmQ6IFdyLFxuICBwYXJzZVBhaXJLZXlWYWx1ZTogd1xufSwgT3QgPSB7XG4gIF9leHBvcnQ6IHN0XG59O1xuY29uc3QgUHQgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmZyZWV6ZSgvKiBAX19QVVJFX18gKi8gT2JqZWN0LmRlZmluZVByb3BlcnR5KHtcbiAgX19wcm90b19fOiBudWxsLFxuICBBbHdheXNPZmZTYW1wbGVyOiBELFxuICBBbHdheXNPblNhbXBsZXI6IFAsXG4gIEFuY2hvcmVkQ2xvY2s6ICRyLFxuICBCaW5kT25jZUZ1dHVyZTogZnQsXG4gIENvbXBvc2l0ZVByb3BhZ2F0b3I6IHZlLFxuICBERUZBVUxUX0FUVFJJQlVURV9DT1VOVF9MSU1JVDogZCxcbiAgREVGQVVMVF9BVFRSSUJVVEVfVkFMVUVfTEVOR1RIX0xJTUlUOiBwLFxuICBERUZBVUxUX0VOVklST05NRU5UOiBWLFxuICBERUZBVUxUX1NQQU5fQVRUUklCVVRFX1BFUl9FVkVOVF9DT1VOVF9MSU1JVDogVHIsXG4gIERFRkFVTFRfU1BBTl9BVFRSSUJVVEVfUEVSX0xJTktfQ09VTlRfTElNSVQ6IHVyLFxuICBnZXQgRXhwb3J0UmVzdWx0Q29kZSgpIHtcbiAgICByZXR1cm4gYSQxO1xuICB9LFxuICBQYXJlbnRCYXNlZFNhbXBsZXI6IEZlLFxuICBnZXQgUlBDVHlwZSgpIHtcbiAgICByZXR1cm4gYjtcbiAgfSxcbiAgUmFuZG9tSWRHZW5lcmF0b3I6IFBlLFxuICBTREtfSU5GTzogVEEsXG4gIFRSQUNFX1BBUkVOVF9IRUFERVI6IEwsXG4gIFRSQUNFX1NUQVRFX0hFQURFUjogQSxcbiAgVGltZW91dEVycm9yOiBMcixcbiAgVHJhY2VJZFJhdGlvQmFzZWRTYW1wbGVyOiBLZSxcbiAgVHJhY2VTdGF0ZTogZnIsXG4gIGdldCBUcmFjZXNTYW1wbGVyVmFsdWVzKCkge1xuICAgIHJldHVybiB2O1xuICB9LFxuICBWRVJTSU9OOiB0UyxcbiAgVzNDQmFnZ2FnZVByb3BhZ2F0b3I6IFpyLFxuICBXM0NUcmFjZUNvbnRleHRQcm9wYWdhdG9yOiBWZSxcbiAgX2dsb2JhbFRoaXM6IGhfLFxuICBhZGRIclRpbWVzOiBiXyxcbiAgYmFnZ2FnZVV0aWxzOiBsdCxcbiAgY2FsbFdpdGhUaW1lb3V0OiBvdCxcbiAgZGVsZXRlUlBDTWV0YWRhdGE6IEhlLFxuICBnZXRFbnY6IE9lLFxuICBnZXRFbnZXaXRob3V0RGVmYXVsdHM6IGNlLFxuICBnZXRSUENNZXRhZGF0YTogeGUsXG4gIGdldFRpbWVPcmlnaW46IHJfLFxuICBnbG9iYWxFcnJvckhhbmRsZXI6IEVyLFxuICBoZXhUb0Jhc2U2NDogZGUsXG4gIGhleFRvQmluYXJ5OiBBJDEsXG4gIGhyVGltZTogcF8sXG4gIGhyVGltZUR1cmF0aW9uOiBYZSQxLFxuICBoclRpbWVUb01pY3Jvc2Vjb25kczogamUkMSxcbiAgaHJUaW1lVG9NaWxsaXNlY29uZHM6IGtlJDEsXG4gIGhyVGltZVRvTmFub3NlY29uZHM6IHhlJDEsXG4gIGhyVGltZVRvVGltZVN0YW1wOiBRZSQxLFxuICBpbnRlcm5hbDogT3QsXG4gIGlzQXR0cmlidXRlS2V5OiBucixcbiAgaXNBdHRyaWJ1dGVWYWx1ZTogYXIsXG4gIGlzVGltZUlucHV0OiBxZSQxLFxuICBpc1RpbWVJbnB1dEhyVGltZTogTl8sXG4gIGlzVHJhY2luZ1N1cHByZXNzZWQ6IGEsXG4gIGlzVXJsSWdub3JlZDogWmUkMSxcbiAgaXNXcmFwcGVkOiBfdCxcbiAgbG9nZ2luZ0Vycm9ySGFuZGxlcjogb3IsXG4gIG1lcmdlOiBudCxcbiAgbWlsbGlzVG9IclRpbWU6IE8kMSxcbiAgb3RwZXJmb3JtYW5jZTogUiQxLFxuICBwYXJzZUVudmlyb25tZW50OiBqLFxuICBwYXJzZVRyYWNlUGFyZW50OiBzcixcbiAgc2FuaXRpemVBdHRyaWJ1dGVzOiBRcixcbiAgc2V0R2xvYmFsRXJyb3JIYW5kbGVyOiBlZSxcbiAgc2V0UlBDTWV0YWRhdGE6IGplLFxuICBzdXBwcmVzc1RyYWNpbmc6IHUsXG4gIHRpbWVJbnB1dFRvSHJUaW1lOiB3ZSQxLFxuICB1bnJlZlRpbWVyOiBTZSxcbiAgdW5zdXBwcmVzc1RyYWNpbmc6IHMsXG4gIHVybE1hdGNoZXM6IGdfXG59LCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6IFwiTW9kdWxlXCIgfSkpO1xuXG5leHBvcnQgeyBFciBhcyBFLCBPZSBhcyBPLCBQdCBhcyBQLCBRciBhcyBRLCBTZSBhcyBTLCBWZSBhcyBWLCBaciBhcyBaLCBhciBhcyBhLCB2IGFzIGIsIGNlIGFzIGMsIGQsIE90IGFzIGUsIGZ0IGFzIGYsIGwsIG50IGFzIG4sIHAsIHZlIGFzIHYgfTsiXSwKICAibWFwcGluZ3MiOiAiQUFBQSxTQUFTLEtBQUtBLEdBQUksS0FBS0MsR0FBSSxNQUFNQyxJQUFJLEtBQUtDLElBQUksS0FBS0MsSUFBTSxNQUFNQyxJQUFLLEtBQUtDLElBQUssS0FBS0MsSUFBTSxNQUFNQyxJQUFJLE1BQU1DLElBQU0sTUFBTUMsSUFBTSxLQUFLQyxJQUFNLE1BQU1DLElBQU0sTUFBTUMsSUFBTSxNQUFNQyxJQUFNLEtBQUtDLElBQUksTUFBTUMsSUFBSSxNQUFNQyxVQUFVO0FBQzdNLFNBQVMsS0FBQUMsR0FBRyxLQUFBQyxHQUFHLEtBQUFDLFVBQVM7QUFDeEIsU0FBUyxLQUFBQyxTQUFTO0FBQ2xCLFNBQVMsS0FBS0MsR0FBSyxLQUFLQyxVQUFXO0FBQ25DLFNBQVMsS0FBS0MsR0FBSyxLQUFLQyxHQUFNLEtBQUtDLEdBQUksS0FBS0MsR0FBSSxLQUFLQyxHQUFNLEtBQUtDLElBQUksS0FBS0MsVUFBVTtBQUNuRixTQUFTLE1BQU1DLElBQUksTUFBTUMsVUFBVTtBQUVuQyxJQUFJQztBQUFBLENBQ0gsU0FBU1osR0FBRztBQUNYLEVBQUFBLEVBQUVBLEVBQUUsYUFBYSxDQUFDLElBQUksY0FBY0EsRUFBRUEsRUFBRSxTQUFTLENBQUMsSUFBSSxVQUFVQSxFQUFFQSxFQUFFLHFCQUFxQixDQUFDLElBQUk7QUFDaEcsR0FBR1ksTUFBTUEsSUFBSSxDQUFDLEVBQUU7QUFDaEIsSUFBSUMsS0FBSyxLQUFLQyxJQUFJLEtBQUssSUFBSSxLQUFLQyxJQUFJLFdBQVdDLEtBQUssS0FBS0MsS0FBSyxNQUFNQyxLQUFLLE1BQU1DLEtBQUssU0FBU25CLEdBQUcsR0FBRztBQUNqRyxNQUFJb0IsSUFBSSxPQUFPLFVBQVUsY0FBY3BCLEVBQUUsT0FBTyxRQUFRO0FBQ3hELE1BQUksQ0FBQ29CLEVBQUcsUUFBT3BCO0FBQ2YsTUFBSXFCLElBQUlELEVBQUUsS0FBS3BCLENBQUMsR0FBR0gsR0FBR3lCLElBQUksQ0FBQyxHQUFHQztBQUM5QixNQUFJO0FBQ0YsWUFBUSxNQUFNLFVBQVUsTUFBTSxNQUFNLEVBQUUxQixJQUFJd0IsRUFBRSxLQUFLLEdBQUcsT0FBUSxDQUFBQyxFQUFFLEtBQUt6QixFQUFFLEtBQUs7QUFBQSxFQUM1RSxTQUFTLEdBQUc7QUFDVixJQUFBMEIsSUFBSSxFQUFFLE9BQU8sRUFBRTtBQUFBLEVBQ2pCLFVBQUU7QUFDQSxRQUFJO0FBQ0YsTUFBQTFCLEtBQUssQ0FBQ0EsRUFBRSxTQUFTdUIsSUFBSUMsRUFBRSxXQUFXRCxFQUFFLEtBQUtDLENBQUM7QUFBQSxJQUM1QyxVQUFFO0FBQ0EsVUFBSUUsRUFBRyxPQUFNQSxFQUFFO0FBQUEsSUFDakI7QUFBQSxFQUNGO0FBQ0EsU0FBT0Q7QUFDVDtBQUNBLFNBQVNFLEdBQUd4QixHQUFHO0FBQ2IsU0FBT0EsRUFBRSxPQUFPLFNBQVMsR0FBR29CLEdBQUc7QUFDN0IsUUFBSUMsSUFBSSxLQUFLLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTUQ7QUFDdkMsV0FBT0MsRUFBRSxTQUFTSCxLQUFLLElBQUlHO0FBQUEsRUFDN0IsR0FBRyxFQUFFO0FBQ1A7QUFDQSxTQUFTSSxHQUFHekIsR0FBRztBQUNiLFNBQU9BLEVBQUUsY0FBYyxFQUFFLElBQUksU0FBUyxHQUFHO0FBQ3ZDLFFBQUlvQixJQUFJRCxHQUFHLEdBQUcsQ0FBQyxHQUFHRSxJQUFJRCxFQUFFLENBQUMsR0FBR3ZCLElBQUl1QixFQUFFLENBQUMsR0FBR0UsSUFBSSxtQkFBbUJELENBQUMsSUFBSSxNQUFNLG1CQUFtQnhCLEVBQUUsS0FBSztBQUNsRyxXQUFPQSxFQUFFLGFBQWEsV0FBV3lCLEtBQUtSLElBQUlqQixFQUFFLFNBQVMsU0FBUyxJQUFJeUI7QUFBQSxFQUNwRSxDQUFDO0FBQ0g7QUFDQSxTQUFTSSxFQUFFMUIsR0FBRztBQUNaLE1BQUksSUFBSUEsRUFBRSxNQUFNYyxDQUFDO0FBQ2pCLE1BQUksRUFBRSxFQUFFLFVBQVUsSUFBSTtBQUNwQixRQUFJTSxJQUFJLEVBQUUsTUFBTTtBQUNoQixRQUFJQSxHQUFHO0FBQ0wsVUFBSUMsSUFBSUQsRUFBRSxRQUFRUCxFQUFFO0FBQ3BCLFVBQUksRUFBRVEsS0FBSyxJQUFJO0FBQ2IsWUFBSXhCLElBQUksbUJBQW1CdUIsRUFBRSxVQUFVLEdBQUdDLENBQUMsRUFBRSxLQUFLLENBQUMsR0FBR0MsSUFBSSxtQkFBbUJGLEVBQUUsVUFBVUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUdFO0FBQ3pHLGVBQU8sRUFBRSxTQUFTLE1BQU1BLElBQUkxQyxHQUFHLEVBQUUsS0FBS2lDLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBS2pCLEdBQUcsT0FBT3lCLEdBQUcsVUFBVUMsRUFBRTtBQUFBLE1BQzlFO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRjtBQUNBLFNBQVNJLEdBQUczQixHQUFHO0FBQ2IsU0FBTyxPQUFPQSxLQUFLLFlBQVlBLEVBQUUsV0FBVyxJQUFJLENBQUMsSUFBSUEsRUFBRSxNQUFNLENBQUMsRUFBRSxJQUFJLFNBQVMsR0FBRztBQUM5RSxXQUFPMEIsRUFBRSxDQUFDO0FBQUEsRUFDWixDQUFDLEVBQUUsT0FBTyxTQUFTLEdBQUc7QUFDcEIsV0FBTyxNQUFNLFVBQVUsRUFBRSxNQUFNLFNBQVM7QUFBQSxFQUMxQyxDQUFDLEVBQUUsT0FBTyxTQUFTLEdBQUdOLEdBQUc7QUFDdkIsV0FBTyxFQUFFQSxFQUFFLEdBQUcsSUFBSUEsRUFBRSxPQUFPO0FBQUEsRUFDN0IsR0FBRyxDQUFDLENBQUM7QUFDUDtBQUNBLElBQUlRO0FBQUE7QUFBQSxHQUVELFdBQVc7QUFDVixhQUFTNUIsSUFBSTtBQUFBLElBQ2I7QUFDQSxXQUFPQSxFQUFFLFVBQVUsU0FBUyxTQUFTLEdBQUdvQixHQUFHQyxHQUFHO0FBQzVDLFVBQUluQixJQUFNdkIsRUFBRyxXQUFXLENBQUM7QUFDekIsVUFBSSxFQUFFLENBQUN1QixLQUFPTCxFQUFFLENBQUMsSUFBSTtBQUNuQixZQUFJeUIsSUFBSUcsR0FBR3ZCLENBQUcsRUFBRSxPQUFPLFNBQVMsR0FBRztBQUNqQyxpQkFBTyxFQUFFLFVBQVVlO0FBQUEsUUFDckIsQ0FBQyxFQUFFLE1BQU0sR0FBR0QsRUFBRSxHQUFHTyxJQUFJQyxHQUFHRixDQUFDO0FBQ3pCLFFBQUFDLEVBQUUsU0FBUyxLQUFLRixFQUFFLElBQUlELEdBQUdMLEdBQUdRLENBQUM7QUFBQSxNQUMvQjtBQUFBLElBQ0YsR0FBR3ZCLEVBQUUsVUFBVSxVQUFVLFNBQVMsR0FBR29CLEdBQUdDLEdBQUc7QUFDekMsVUFBSXhCLElBQUl3QixFQUFFLElBQUlELEdBQUdMLENBQUMsR0FBR08sSUFBSSxNQUFNLFFBQVF6QixDQUFDLElBQUlBLEVBQUUsS0FBSyxDQUFDLElBQUlBO0FBQ3hELFVBQUksQ0FBQ3lCO0FBQ0gsZUFBTztBQUNULFVBQUlDLElBQUksQ0FBQztBQUNULFVBQUlELEVBQUUsV0FBVztBQUNmLGVBQU87QUFDVCxVQUFJLElBQUlBLEVBQUUsTUFBTSxDQUFDO0FBQ2pCLGFBQU8sRUFBRSxRQUFRLFNBQVNPLEdBQUc7QUFDM0IsWUFBSUMsSUFBSUosRUFBRUcsQ0FBQztBQUNYLFlBQUlDLEdBQUc7QUFDTCxjQUFJL0IsSUFBSSxFQUFFLE9BQU8rQixFQUFFLE1BQU07QUFDekIsVUFBQUEsRUFBRSxhQUFhL0IsRUFBRSxXQUFXK0IsRUFBRSxXQUFXUCxFQUFFTyxFQUFFLEdBQUcsSUFBSS9CO0FBQUEsUUFDdEQ7QUFBQSxNQUNGLENBQUMsR0FBRyxPQUFPLFFBQVF3QixDQUFDLEVBQUUsV0FBVyxJQUFJLElBQUk1QyxFQUFHLFdBQVcsR0FBR0EsRUFBRyxjQUFjNEMsQ0FBQyxDQUFDO0FBQUEsSUFDL0UsR0FBR3ZCLEVBQUUsVUFBVSxTQUFTLFdBQVc7QUFDakMsYUFBTyxDQUFDZSxDQUFDO0FBQUEsSUFDWCxHQUFHZjtBQUFBLEVBQ0wsR0FBRztBQUFBLEdBQ0YrQjtBQUFBO0FBQUEsR0FFQSxXQUFXO0FBQ1YsYUFBUy9CLEVBQUUsR0FBR29CLEdBQUc7QUFDZixXQUFLLGtCQUFrQkEsR0FBRyxLQUFLLGVBQWUsRUFBRSxJQUFJLEdBQUcsS0FBSyxxQkFBcUJBLEVBQUUsSUFBSTtBQUFBLElBQ3pGO0FBQ0EsV0FBT3BCLEVBQUUsVUFBVSxNQUFNLFdBQVc7QUFDbEMsVUFBSSxJQUFJLEtBQUssZ0JBQWdCLElBQUksSUFBSSxLQUFLO0FBQzFDLGFBQU8sS0FBSyxlQUFlO0FBQUEsSUFDN0IsR0FBR0E7QUFBQSxFQUNMLEdBQUc7QUFBQSxHQUNGZ0MsS0FBSyxTQUFTaEMsR0FBRztBQUNsQixNQUFJLElBQUksT0FBTyxVQUFVLGNBQWMsT0FBTyxVQUFVb0IsSUFBSSxLQUFLcEIsRUFBRSxDQUFDLEdBQUdxQixJQUFJO0FBQzNFLE1BQUlELEVBQUcsUUFBT0EsRUFBRSxLQUFLcEIsQ0FBQztBQUN0QixNQUFJQSxLQUFLLE9BQU9BLEVBQUUsVUFBVSxTQUFVLFFBQU87QUFBQSxJQUMzQyxNQUFNLFdBQVc7QUFDZixhQUFPQSxLQUFLcUIsS0FBS3JCLEVBQUUsV0FBV0EsSUFBSSxTQUFTLEVBQUUsT0FBT0EsS0FBS0EsRUFBRXFCLEdBQUcsR0FBRyxNQUFNLENBQUNyQixFQUFFO0FBQUEsSUFDNUU7QUFBQSxFQUNGO0FBQ0EsUUFBTSxJQUFJLFVBQVUsSUFBSSw0QkFBNEIsaUNBQWlDO0FBQ3ZGLEdBQUdpQyxLQUFLLFNBQVNqQyxHQUFHLEdBQUc7QUFDckIsTUFBSW9CLElBQUksT0FBTyxVQUFVLGNBQWNwQixFQUFFLE9BQU8sUUFBUTtBQUN4RCxNQUFJLENBQUNvQixFQUFHLFFBQU9wQjtBQUNmLE1BQUlxQixJQUFJRCxFQUFFLEtBQUtwQixDQUFDLEdBQUdILEdBQUd5QixJQUFJLENBQUMsR0FBR0M7QUFDOUIsTUFBSTtBQUNGLFlBQVEsTUFBTSxVQUFVLE1BQU0sTUFBTSxFQUFFMUIsSUFBSXdCLEVBQUUsS0FBSyxHQUFHLE9BQVEsQ0FBQUMsRUFBRSxLQUFLekIsRUFBRSxLQUFLO0FBQUEsRUFDNUUsU0FBUyxHQUFHO0FBQ1YsSUFBQTBCLElBQUksRUFBRSxPQUFPLEVBQUU7QUFBQSxFQUNqQixVQUFFO0FBQ0EsUUFBSTtBQUNGLE1BQUExQixLQUFLLENBQUNBLEVBQUUsU0FBU3VCLElBQUlDLEVBQUUsV0FBV0QsRUFBRSxLQUFLQyxDQUFDO0FBQUEsSUFDNUMsVUFBRTtBQUNBLFVBQUlFLEVBQUcsT0FBTUEsRUFBRTtBQUFBLElBQ2pCO0FBQUEsRUFDRjtBQUNBLFNBQU9EO0FBQ1Q7QUFDQSxTQUFTWSxHQUFHQyxHQUFLO0FBQ2YsTUFBSSxHQUFHZixHQUFHQyxJQUFJLENBQUM7QUFDZixNQUFJLE9BQU9jLEtBQU8sWUFBWUEsS0FBTztBQUNuQyxXQUFPZDtBQUNULE1BQUk7QUFDRixhQUFTeEIsSUFBSW1DLEdBQUcsT0FBTyxRQUFRRyxDQUFHLENBQUMsR0FBR2IsSUFBSXpCLEVBQUUsS0FBSyxHQUFHLENBQUN5QixFQUFFLE1BQU1BLElBQUl6QixFQUFFLEtBQUssR0FBRztBQUN6RSxVQUFJMEIsSUFBSVUsR0FBR1gsRUFBRSxPQUFPLENBQUMsR0FBRyxJQUFJQyxFQUFFLENBQUMsR0FBR00sSUFBSU4sRUFBRSxDQUFDO0FBQ3pDLFVBQUksQ0FBQ2EsR0FBRyxDQUFDLEdBQUc7QUFDVixRQUFBcEMsRUFBRSxLQUFLLDRCQUE0QixDQUFDO0FBQ3BDO0FBQUEsTUFDRjtBQUNBLFVBQUksQ0FBQ3FDLEdBQUdSLENBQUMsR0FBRztBQUNWLFFBQUE3QixFQUFFLEtBQUssMENBQTBDLENBQUM7QUFDbEQ7QUFBQSxNQUNGO0FBQ0EsWUFBTSxRQUFRNkIsQ0FBQyxJQUFJUixFQUFFLENBQUMsSUFBSVEsRUFBRSxNQUFNLElBQUlSLEVBQUUsQ0FBQyxJQUFJUTtBQUFBLElBQy9DO0FBQUEsRUFDRixTQUFTQyxHQUFHO0FBQ1YsUUFBSSxFQUFFLE9BQU9BLEVBQUU7QUFBQSxFQUNqQixVQUFFO0FBQ0EsUUFBSTtBQUNGLE1BQUFSLEtBQUssQ0FBQ0EsRUFBRSxTQUFTRixJQUFJdkIsRUFBRSxXQUFXdUIsRUFBRSxLQUFLdkIsQ0FBQztBQUFBLElBQzVDLFVBQUU7QUFDQSxVQUFJLEVBQUcsT0FBTSxFQUFFO0FBQUEsSUFDakI7QUFBQSxFQUNGO0FBQ0EsU0FBT3dCO0FBQ1Q7QUFDQSxTQUFTZSxHQUFHcEMsR0FBRztBQUNiLFNBQU8sT0FBT0EsS0FBSyxZQUFZQSxFQUFFLFNBQVM7QUFDNUM7QUFDQSxTQUFTcUMsR0FBR3JDLEdBQUc7QUFDYixTQUFPQSxLQUFLLE9BQU8sS0FBTyxNQUFNLFFBQVFBLENBQUMsSUFBSXNDLEdBQUd0QyxDQUFDLElBQUl1QyxHQUFHdkMsQ0FBQztBQUMzRDtBQUNBLFNBQVNzQyxHQUFHdEMsR0FBRztBQUNiLE1BQUksR0FBR29CLEdBQUdDO0FBQ1YsTUFBSTtBQUNGLGFBQVN4QixJQUFJbUMsR0FBR2hDLENBQUMsR0FBR3NCLElBQUl6QixFQUFFLEtBQUssR0FBRyxDQUFDeUIsRUFBRSxNQUFNQSxJQUFJekIsRUFBRSxLQUFLLEdBQUc7QUFDdkQsVUFBSTBCLElBQUlELEVBQUU7QUFDVixVQUFJQyxLQUFLLE1BQU07QUFDYixZQUFJLENBQUNGLEdBQUc7QUFDTixjQUFJa0IsR0FBR2hCLENBQUMsR0FBRztBQUNULFlBQUFGLElBQUksT0FBT0U7QUFDWDtBQUFBLFVBQ0Y7QUFDQSxpQkFBTztBQUFBLFFBQ1Q7QUFDQSxZQUFJLE9BQU9BLE1BQU1GO0FBQ2YsaUJBQU87QUFBQSxNQUNYO0FBQUEsSUFDRjtBQUFBLEVBQ0YsU0FBUyxHQUFHO0FBQ1YsUUFBSSxFQUFFLE9BQU8sRUFBRTtBQUFBLEVBQ2pCLFVBQUU7QUFDQSxRQUFJO0FBQ0YsTUFBQUMsS0FBSyxDQUFDQSxFQUFFLFNBQVNGLElBQUl2QixFQUFFLFdBQVd1QixFQUFFLEtBQUt2QixDQUFDO0FBQUEsSUFDNUMsVUFBRTtBQUNBLFVBQUksRUFBRyxPQUFNLEVBQUU7QUFBQSxJQUNqQjtBQUFBLEVBQ0Y7QUFDQSxTQUFPO0FBQ1Q7QUFDQSxTQUFTMEMsR0FBR3ZDLEdBQUc7QUFDYixVQUFRLE9BQU9BLEdBQUc7QUFBQSxJQUNoQixLQUFLO0FBQUEsSUFDTCxLQUFLO0FBQUEsSUFDTCxLQUFLO0FBQ0gsYUFBTztBQUFBLEVBQ1g7QUFDQSxTQUFPO0FBQ1Q7QUFDQSxTQUFTd0MsS0FBSztBQUNaLFNBQU8sU0FBU0wsR0FBSztBQUNuQixJQUFBbkMsRUFBRSxNQUFNeUMsR0FBR04sQ0FBRyxDQUFDO0FBQUEsRUFDakI7QUFDRjtBQUNBLFNBQVNNLEdBQUd6QyxHQUFHO0FBQ2IsU0FBTyxPQUFPQSxLQUFLLFdBQVdBLElBQUksS0FBSyxVQUFVMEMsR0FBRzFDLENBQUMsQ0FBQztBQUN4RDtBQUNBLFNBQVMwQyxHQUFHMUMsR0FBRztBQUNiLFdBQVMsSUFBSSxDQUFDLEdBQUdvQixJQUFJcEIsR0FBR29CLE1BQU07QUFDNUIsV0FBTyxvQkFBb0JBLENBQUMsRUFBRSxRQUFRLFNBQVNDLEdBQUc7QUFDaEQsVUFBSSxDQUFDLEVBQUVBLENBQUMsR0FBRztBQUNULFlBQUl4QixJQUFJdUIsRUFBRUMsQ0FBQztBQUNYLFFBQUF4QixNQUFNLEVBQUV3QixDQUFDLElBQUksT0FBT3hCLENBQUM7QUFBQSxNQUN2QjtBQUFBLElBQ0YsQ0FBQyxHQUFHdUIsSUFBSSxPQUFPLGVBQWVBLENBQUM7QUFDakMsU0FBTztBQUNUO0FBQ0EsSUFBSXVCLEtBQUtILEdBQUc7QUFDWixTQUFTLEdBQUd4QyxHQUFHO0FBQ2IsRUFBQTJDLEtBQUszQztBQUNQO0FBQ0EsU0FBUzRDLEdBQUc1QyxHQUFHO0FBQ2IsTUFBSTtBQUNGLElBQUEyQyxHQUFHM0MsQ0FBQztBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1I7QUFDRjtBQUNBLElBQUk2QztBQUFBLENBQ0gsU0FBUzdDLEdBQUc7QUFDWCxFQUFBQSxFQUFFLFlBQVksY0FBY0EsRUFBRSxXQUFXLGFBQWFBLEVBQUUsdUJBQXVCLDBCQUEwQkEsRUFBRSxzQkFBc0IseUJBQXlCQSxFQUFFLDBCQUEwQiw0QkFBNEJBLEVBQUUsZUFBZTtBQUNyTyxHQUFHNkMsTUFBTUEsSUFBSSxDQUFDLEVBQUU7QUFDaEIsSUFBSUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxtQkFBbUI7QUFDdkMsU0FBU0MsR0FBRy9DLEdBQUc7QUFDYixTQUFPLEdBQUcsUUFBUUEsQ0FBQyxJQUFJO0FBQ3pCO0FBQ0EsSUFBSWdELEtBQUs7QUFBQSxFQUNQO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUNGO0FBQ0EsU0FBU0MsR0FBR2pELEdBQUc7QUFDYixTQUFPZ0QsR0FBRyxRQUFRaEQsQ0FBQyxJQUFJO0FBQ3pCO0FBQ0EsSUFBSSxLQUFLO0FBQUEsRUFDUDtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQ0Y7QUFDQSxTQUFTa0QsR0FBR2xELEdBQUc7QUFDYixTQUFPLEdBQUcsUUFBUUEsQ0FBQyxJQUFJO0FBQ3pCO0FBQ0EsSUFBSW1ELElBQUksT0FBT0MsSUFBSSxLQUFLQyxLQUFLLEtBQUtDLEtBQUssS0FBS0MsSUFBSTtBQUFBLEVBQzlDLG1CQUFtQjtBQUFBLEVBQ25CLGdCQUFnQjtBQUFBLEVBQ2hCLCtCQUErQjtBQUFBLEVBQy9CLDRCQUE0QjtBQUFBLEVBQzVCLFVBQVU7QUFBQSxFQUNWLHlCQUF5QjtBQUFBLEVBQ3pCLFdBQVc7QUFBQSxFQUNYLHlCQUF5QjtBQUFBLEVBQ3pCLGdDQUFnQztBQUFBLEVBQ2hDLHlCQUF5QjtBQUFBLEVBQ3pCLHlCQUF5QjtBQUFBLEVBQ3pCLDBCQUEwQjtBQUFBLEVBQzFCLGlDQUFpQztBQUFBLEVBQ2pDLDBCQUEwQjtBQUFBLEVBQzFCLDBCQUEwQjtBQUFBLEVBQzFCLGlDQUFpQztBQUFBLEVBQ2pDLGlDQUFpQztBQUFBLEVBQ2pDLCtCQUErQjtBQUFBLEVBQy9CLCtCQUErQjtBQUFBLEVBQy9CLDJCQUEyQjtBQUFBLEVBQzNCLDZCQUE2QjtBQUFBLEVBQzdCLG9DQUFvQztBQUFBLEVBQ3BDLHFDQUFxQztBQUFBLEVBQ3JDLGtDQUFrQztBQUFBLEVBQ2xDLDRCQUE0QjtBQUFBLEVBQzVCLG1DQUFtQztBQUFBLEVBQ25DLG9DQUFvQztBQUFBLEVBQ3BDLGlDQUFpQztBQUFBLEVBQ2pDLDRCQUE0QjtBQUFBLEVBQzVCLG1DQUFtQztBQUFBLEVBQ25DLG9DQUFvQztBQUFBLEVBQ3BDLGlDQUFpQztBQUFBLEVBQ2pDLCtCQUErQjtBQUFBLEVBQy9CLGdCQUFnQnBELEVBQUk7QUFBQSxFQUNwQix1QkFBdUIsQ0FBQztBQUFBLEVBQ3hCLGtCQUFrQixDQUFDLGdCQUFnQixTQUFTO0FBQUEsRUFDNUMsMEJBQTBCO0FBQUEsRUFDMUIsbUJBQW1CO0FBQUEsRUFDbkIsbUNBQW1DZ0Q7QUFBQSxFQUNuQyw0QkFBNEJDO0FBQUEsRUFDNUIsd0NBQXdDRDtBQUFBLEVBQ3hDLGlDQUFpQ0M7QUFBQSxFQUNqQyw2Q0FBNkNEO0FBQUEsRUFDN0Msc0NBQXNDQztBQUFBLEVBQ3RDLDZCQUE2QjtBQUFBLEVBQzdCLDRCQUE0QjtBQUFBLEVBQzVCLDJDQUEyQ0M7QUFBQSxFQUMzQywwQ0FBMENDO0FBQUEsRUFDMUMsc0JBQXNCO0FBQUEsRUFDdEIscUJBQXFCVCxFQUFFO0FBQUEsRUFDdkIseUJBQXlCO0FBQUEsRUFDekIsb0JBQW9CO0FBQUEsRUFDcEIsNkJBQTZCO0FBQUEsRUFDN0Isb0NBQW9DO0FBQUEsRUFDcEMscUNBQXFDO0FBQUEsRUFDckMsa0NBQWtDO0FBQUEsRUFDbEMsZ0NBQWdDO0FBQUEsRUFDaEMsdUNBQXVDO0FBQUEsRUFDdkMsd0NBQXdDO0FBQUEsRUFDeEMscUNBQXFDO0FBQUEsRUFDckMsZ0NBQWdDO0FBQUEsRUFDaEMsdUNBQXVDO0FBQUEsRUFDdkMsd0NBQXdDO0FBQUEsRUFDeEMscUNBQXFDO0FBQUEsRUFDckMsK0JBQStCO0FBQUEsRUFDL0Isc0NBQXNDO0FBQUEsRUFDdEMsdUNBQXVDO0FBQUEsRUFDdkMsb0NBQW9DO0FBQUEsRUFDcEMsdUNBQXVDO0FBQUEsRUFDdkMsOENBQThDO0FBQUEsRUFDOUMsK0NBQStDO0FBQUEsRUFDL0MsNENBQTRDO0FBQUEsRUFDNUMsNkJBQTZCO0FBQUEsRUFDN0Isb0NBQW9DO0FBQUEsRUFDcEMscUNBQXFDO0FBQUEsRUFDckMsa0NBQWtDO0FBQUEsRUFDbEMsbURBQW1EO0FBQUEsRUFDbkQsK0JBQStCLENBQUM7QUFDbEM7QUFDQSxTQUFTVyxHQUFHeEQsR0FBRyxHQUFHb0IsR0FBRztBQUNuQixNQUFJLEVBQUUsT0FBT0EsRUFBRXBCLENBQUMsSUFBSSxNQUFNO0FBQ3hCLFFBQUlxQixJQUFJLE9BQU9ELEVBQUVwQixDQUFDLENBQUM7QUFDbkIsTUFBRUEsQ0FBQyxJQUFJcUIsRUFBRSxZQUFZLE1BQU07QUFBQSxFQUM3QjtBQUNGO0FBQ0EsU0FBUyxHQUFHckIsR0FBRyxHQUFHb0IsR0FBR0MsR0FBR3hCLEdBQUc7QUFDekIsTUFBSXdCLE1BQU0sV0FBV0EsSUFBSSxTQUFTeEIsTUFBTSxXQUFXQSxJQUFJLFFBQVEsT0FBT3VCLEVBQUVwQixDQUFDLElBQUksS0FBSztBQUNoRixRQUFJc0IsSUFBSSxPQUFPRixFQUFFcEIsQ0FBQyxDQUFDO0FBQ25CLFVBQU1zQixDQUFDLE1BQU1BLElBQUlELElBQUksRUFBRXJCLENBQUMsSUFBSXFCLElBQUlDLElBQUl6QixJQUFJLEVBQUVHLENBQUMsSUFBSUgsSUFBSSxFQUFFRyxDQUFDLElBQUlzQjtBQUFBLEVBQzVEO0FBQ0Y7QUFDQSxTQUFTbUMsR0FBR3pELEdBQUcsR0FBR29CLEdBQUdDLEdBQUc7QUFDdEIsRUFBQUEsTUFBTSxXQUFXQSxJQUFJeUI7QUFDckIsTUFBSWpELElBQUl1QixFQUFFcEIsQ0FBQztBQUNYLFNBQU9ILEtBQUssYUFBYSxFQUFFRyxDQUFDLElBQUlILEVBQUUsTUFBTXdCLENBQUMsRUFBRSxJQUFJLFNBQVNDLEdBQUc7QUFDekQsV0FBT0EsRUFBRSxLQUFLO0FBQUEsRUFDaEIsQ0FBQztBQUNIO0FBQ0EsSUFBSW9DLEtBQUs7QUFBQSxFQUNQLEtBQUt2RCxFQUFJO0FBQUEsRUFDVCxTQUFTQSxFQUFJO0FBQUEsRUFDYixPQUFPQSxFQUFJO0FBQUEsRUFDWCxNQUFNQSxFQUFJO0FBQUEsRUFDVixNQUFNQSxFQUFJO0FBQUEsRUFDVixPQUFPQSxFQUFJO0FBQUEsRUFDWCxNQUFNQSxFQUFJO0FBQ1o7QUFDQSxTQUFTd0QsR0FBRzNELEdBQUcsR0FBR29CLEdBQUc7QUFDbkIsTUFBSUMsSUFBSUQsRUFBRXBCLENBQUM7QUFDWCxNQUFJLE9BQU9xQixLQUFLLFVBQVU7QUFDeEIsUUFBSXhCLElBQUk2RCxHQUFHckMsRUFBRSxZQUFZLENBQUM7QUFDMUIsSUFBQXhCLEtBQUssU0FBUyxFQUFFRyxDQUFDLElBQUlIO0FBQUEsRUFDdkI7QUFDRjtBQUNBLFNBQVMrRCxFQUFFNUQsR0FBRztBQUNaLE1BQUksSUFBSSxDQUFDO0FBQ1QsV0FBU29CLEtBQUttQyxHQUFHO0FBQ2YsUUFBSWxDLElBQUlEO0FBQ1IsWUFBUUMsR0FBRztBQUFBLE1BQ1QsS0FBSztBQUNILFFBQUFzQyxHQUFHdEMsR0FBRyxHQUFHckIsQ0FBQztBQUNWO0FBQUEsTUFDRjtBQUNFLFlBQUkrQyxHQUFHMUIsQ0FBQztBQUNOLFVBQUFtQyxHQUFHbkMsR0FBRyxHQUFHckIsQ0FBQztBQUFBLGlCQUNIaUQsR0FBRzVCLENBQUM7QUFDWCxhQUFHQSxHQUFHLEdBQUdyQixDQUFDO0FBQUEsaUJBQ0hrRCxHQUFHN0IsQ0FBQztBQUNYLFVBQUFvQyxHQUFHcEMsR0FBRyxHQUFHckIsQ0FBQztBQUFBLGFBQ1A7QUFDSCxjQUFJSCxJQUFJRyxFQUFFcUIsQ0FBQztBQUNYLGlCQUFPeEIsSUFBSSxPQUFPQSxNQUFNLFNBQVMsRUFBRXdCLENBQUMsSUFBSSxPQUFPeEIsQ0FBQztBQUFBLFFBQ2xEO0FBQUEsSUFDSjtBQUFBLEVBQ0Y7QUFDQSxTQUFPO0FBQ1Q7QUFDQSxTQUFTZ0UsS0FBSztBQUNaLE1BQUk3RCxJQUFJNEQsRUFBRWhGLENBQUU7QUFDWixTQUFPLE9BQU8sT0FBTyxDQUFDLEdBQUcyRSxHQUFHdkQsQ0FBQztBQUMvQjtBQUNBLFNBQVM4RCxLQUFLO0FBQ1osU0FBT0YsRUFBRWhGLENBQUU7QUFDYjtBQUNBLElBQUltRixLQUFLLFNBQVMvRCxHQUFHLEdBQUc7QUFDdEIsTUFBSW9CLElBQUksT0FBTyxVQUFVLGNBQWNwQixFQUFFLE9BQU8sUUFBUTtBQUN4RCxNQUFJLENBQUNvQixFQUFHLFFBQU9wQjtBQUNmLE1BQUlxQixJQUFJRCxFQUFFLEtBQUtwQixDQUFDLEdBQUdILEdBQUd5QixJQUFJLENBQUMsR0FBR0M7QUFDOUIsTUFBSTtBQUNGLFlBQVEsTUFBTSxVQUFVLE1BQU0sTUFBTSxFQUFFMUIsSUFBSXdCLEVBQUUsS0FBSyxHQUFHLE9BQVEsQ0FBQUMsRUFBRSxLQUFLekIsRUFBRSxLQUFLO0FBQUEsRUFDNUUsU0FBUyxHQUFHO0FBQ1YsSUFBQTBCLElBQUksRUFBRSxPQUFPLEVBQUU7QUFBQSxFQUNqQixVQUFFO0FBQ0EsUUFBSTtBQUNGLE1BQUExQixLQUFLLENBQUNBLEVBQUUsU0FBU3VCLElBQUlDLEVBQUUsV0FBV0QsRUFBRSxLQUFLQyxDQUFDO0FBQUEsSUFDNUMsVUFBRTtBQUNBLFVBQUlFLEVBQUcsT0FBTUEsRUFBRTtBQUFBLElBQ2pCO0FBQUEsRUFDRjtBQUNBLFNBQU9EO0FBQ1QsR0FBRzBDLEtBQUssU0FBU2hFLEdBQUcsR0FBR29CLEdBQUc7QUFDeEIsTUFBSSxVQUFVLFdBQVcsRUFBRyxVQUFTQyxJQUFJLEdBQUd4QixJQUFJLEVBQUUsUUFBUXlCLEdBQUdELElBQUl4QixHQUFHd0I7QUFDbEUsS0FBQ0MsS0FBSyxFQUFFRCxLQUFLLFFBQVFDLE1BQU1BLElBQUksTUFBTSxVQUFVLE1BQU0sS0FBSyxHQUFHLEdBQUdELENBQUMsSUFBSUMsRUFBRUQsQ0FBQyxJQUFJLEVBQUVBLENBQUM7QUFDakYsU0FBT3JCLEVBQUUsT0FBT3NCLEtBQUssTUFBTSxVQUFVLE1BQU0sS0FBSyxDQUFDLENBQUM7QUFDcEQ7QUFDQSxTQUFTMkMsR0FBR2pFLEdBQUc7QUFDYixTQUFPLEtBQUssT0FBTyxhQUFhLE1BQU0sUUFBUWdFLEdBQUcsQ0FBQyxHQUFHRCxHQUFHOUQsRUFBSUQsQ0FBQyxDQUFDLEdBQUcsRUFBSyxDQUFDLENBQUM7QUFDMUU7QUFDQSxJQUFJa0UsS0FBSyxHQUFHQyxLQUFLLElBQUlDO0FBQUE7QUFBQSxFQUVGLDRCQUFXO0FBQzFCLGFBQVNwRSxJQUFJO0FBQ1gsV0FBSyxrQkFBa0JxRSxFQUFFRixFQUFFLEdBQUcsS0FBSyxpQkFBaUJFLEVBQUVILEVBQUU7QUFBQSxJQUMxRDtBQUNBLFdBQU9sRTtBQUFBLEVBQ1QsR0FBRztBQUFBLEdBQ0ZzRSxJQUFJLE1BQU0sRUFBRTtBQUNmLFNBQVNELEVBQUVyRSxHQUFHO0FBQ1osU0FBTyxXQUFXO0FBQ2hCLGFBQVNvQixJQUFJLEdBQUdBLElBQUlwQixJQUFJLEdBQUdvQjtBQUN6QixNQUFBa0QsRUFBRWxELENBQUMsSUFBSSxLQUFLLE1BQU0sS0FBSyxPQUFPLElBQUksRUFBRSxJQUFJLElBQUlrRCxFQUFFbEQsQ0FBQyxLQUFLLE9BQU9rRCxFQUFFbEQsQ0FBQyxLQUFLO0FBQ3JFLFdBQU8sT0FBTyxhQUFhLE1BQU0sTUFBTWtELEVBQUUsTUFBTSxHQUFHdEUsSUFBSSxDQUFDLENBQUM7QUFBQSxFQUMxRDtBQUNGO0FBQ0EsU0FBU3VFLEdBQUd2RSxHQUFHO0FBQ2Y7QUFDQSxJQUFJLEtBQUssU0FBU0EsR0FBRztBQUNuQixNQUFJLElBQUksT0FBTyxVQUFVLGNBQWMsT0FBTyxVQUFVb0IsSUFBSSxLQUFLcEIsRUFBRSxDQUFDLEdBQUdxQixJQUFJO0FBQzNFLE1BQUlELEVBQUcsUUFBT0EsRUFBRSxLQUFLcEIsQ0FBQztBQUN0QixNQUFJQSxLQUFLLE9BQU9BLEVBQUUsVUFBVSxTQUFVLFFBQU87QUFBQSxJQUMzQyxNQUFNLFdBQVc7QUFDZixhQUFPQSxLQUFLcUIsS0FBS3JCLEVBQUUsV0FBV0EsSUFBSSxTQUFTLEVBQUUsT0FBT0EsS0FBS0EsRUFBRXFCLEdBQUcsR0FBRyxNQUFNLENBQUNyQixFQUFFO0FBQUEsSUFDNUU7QUFBQSxFQUNGO0FBQ0EsUUFBTSxJQUFJLFVBQVUsSUFBSSw0QkFBNEIsaUNBQWlDO0FBQ3ZGLEdBQUd3RTtBQUFBO0FBQUEsR0FFQSxXQUFXO0FBQ1YsYUFBU3JDLEVBQUksR0FBRztBQUNkLFlBQU0sV0FBVyxJQUFJLENBQUM7QUFDdEIsVUFBSWY7QUFDSixXQUFLLGdCQUFnQkEsSUFBSSxFQUFFLGlCQUFpQixRQUFRQSxNQUFNLFNBQVNBLElBQUksQ0FBQyxHQUFHLEtBQUssVUFBVSxNQUFNLEtBQUssSUFBSSxJQUFJLEtBQUssYUFBYSxJQUFJLFNBQVNDLEdBQUc7QUFDN0ksZUFBTyxPQUFPQSxFQUFFLFVBQVUsYUFBYUEsRUFBRSxPQUFPLElBQUksQ0FBQztBQUFBLE1BQ3ZELENBQUMsRUFBRSxPQUFPLFNBQVNBLEdBQUd4QixHQUFHO0FBQ3ZCLGVBQU93QixFQUFFLE9BQU94QixDQUFDO0FBQUEsTUFDbkIsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQUEsSUFDVDtBQUNBLFdBQU9zQyxFQUFJLFVBQVUsU0FBUyxTQUFTLEdBQUdmLEdBQUdDLEdBQUc7QUFDOUMsVUFBSXhCLEdBQUd5QjtBQUNQLFVBQUk7QUFDRixpQkFBU0MsSUFBSSxHQUFHLEtBQUssWUFBWSxHQUFHLElBQUlBLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxNQUFNLElBQUlBLEVBQUUsS0FBSyxHQUFHO0FBQ3ZFLGNBQUlNLElBQUksRUFBRTtBQUNWLGNBQUk7QUFDRixZQUFBQSxFQUFFLE9BQU8sR0FBR1QsR0FBR0MsQ0FBQztBQUFBLFVBQ2xCLFNBQVNTLEdBQUc7QUFDVixZQUFBOUIsRUFBRSxLQUFLLDJCQUEyQjZCLEVBQUUsWUFBWSxPQUFPLFlBQVlDLEVBQUUsT0FBTztBQUFBLFVBQzlFO0FBQUEsUUFDRjtBQUFBLE1BQ0YsU0FBU0EsR0FBRztBQUNWLFFBQUFqQyxJQUFJLEVBQUUsT0FBT2lDLEVBQUU7QUFBQSxNQUNqQixVQUFFO0FBQ0EsWUFBSTtBQUNGLGVBQUssQ0FBQyxFQUFFLFNBQVNSLElBQUlDLEVBQUUsV0FBV0QsRUFBRSxLQUFLQyxDQUFDO0FBQUEsUUFDNUMsVUFBRTtBQUNBLGNBQUkxQixFQUFHLE9BQU1BLEVBQUU7QUFBQSxRQUNqQjtBQUFBLE1BQ0Y7QUFBQSxJQUNGLEdBQUdzQyxFQUFJLFVBQVUsVUFBVSxTQUFTLEdBQUdmLEdBQUdDLEdBQUc7QUFDM0MsYUFBTyxLQUFLLGFBQWEsT0FBTyxTQUFTeEIsR0FBR3lCLEdBQUc7QUFDN0MsWUFBSTtBQUNGLGlCQUFPQSxFQUFFLFFBQVF6QixHQUFHdUIsR0FBR0MsQ0FBQztBQUFBLFFBQzFCLFNBQVNFLEdBQUc7QUFDVixVQUFBdkIsRUFBRSxLQUFLLDRCQUE0QnNCLEVBQUUsWUFBWSxPQUFPLFlBQVlDLEVBQUUsT0FBTztBQUFBLFFBQy9FO0FBQ0EsZUFBTzFCO0FBQUEsTUFDVCxHQUFHLENBQUM7QUFBQSxJQUNOLEdBQUdzQyxFQUFJLFVBQVUsU0FBUyxXQUFXO0FBQ25DLGFBQU8sS0FBSyxRQUFRLE1BQU07QUFBQSxJQUM1QixHQUFHQTtBQUFBLEVBQ0wsR0FBRztBQUFBLEdBQ0ZzQyxJQUFJLGdCQUFnQkMsS0FBSyxVQUFVRCxJQUFJLFdBQVdFLEtBQUssYUFBYUYsSUFBSSxrQkFBa0JBLElBQUksVUFBVUcsS0FBSyxJQUFJLE9BQU8sU0FBU0YsS0FBSyxNQUFNQyxLQUFLLElBQUksR0FBR0UsS0FBSyx1QkFBdUIsS0FBSztBQUM1TCxTQUFTLEdBQUc3RSxHQUFHO0FBQ2IsU0FBTzRFLEdBQUcsS0FBSzVFLENBQUM7QUFDbEI7QUFDQSxTQUFTLEdBQUdBLEdBQUc7QUFDYixTQUFPNkUsR0FBRyxLQUFLN0UsQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLQSxDQUFDO0FBQ2pDO0FBQ0EsSUFBSThFLElBQUksSUFBSUMsS0FBSyxLQUFLQyxJQUFJLEtBQUtDLElBQUksS0FBS0M7QUFBQTtBQUFBLEdBRXJDLFdBQVc7QUFDVixhQUFTbEYsRUFBRSxHQUFHO0FBQ1osV0FBSyxpQkFBaUMsb0JBQUksSUFBSSxHQUFHLEtBQUssS0FBSyxPQUFPLENBQUM7QUFBQSxJQUNyRTtBQUNBLFdBQU9BLEVBQUUsVUFBVSxNQUFNLFNBQVMsR0FBR29CLEdBQUc7QUFDdEMsVUFBSUMsSUFBSSxLQUFLLE9BQU87QUFDcEIsYUFBT0EsRUFBRSxlQUFlLElBQUksQ0FBQyxLQUFLQSxFQUFFLGVBQWUsT0FBTyxDQUFDLEdBQUdBLEVBQUUsZUFBZSxJQUFJLEdBQUdELENBQUMsR0FBR0M7QUFBQSxJQUM1RixHQUFHckIsRUFBRSxVQUFVLFFBQVEsU0FBUyxHQUFHO0FBQ2pDLFVBQUlvQixJQUFJLEtBQUssT0FBTztBQUNwQixhQUFPQSxFQUFFLGVBQWUsT0FBTyxDQUFDLEdBQUdBO0FBQUEsSUFDckMsR0FBR3BCLEVBQUUsVUFBVSxNQUFNLFNBQVMsR0FBRztBQUMvQixhQUFPLEtBQUssZUFBZSxJQUFJLENBQUM7QUFBQSxJQUNsQyxHQUFHQSxFQUFFLFVBQVUsWUFBWSxXQUFXO0FBQ3BDLFVBQUksSUFBSTtBQUNSLGFBQU8sS0FBSyxNQUFNLEVBQUUsT0FBTyxTQUFTb0IsR0FBR0MsR0FBRztBQUN4QyxlQUFPRCxFQUFFLEtBQUtDLElBQUk0RCxJQUFJLEVBQUUsSUFBSTVELENBQUMsQ0FBQyxHQUFHRDtBQUFBLE1BQ25DLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSzRELENBQUM7QUFBQSxJQUNmLEdBQUdoRixFQUFFLFVBQVUsU0FBUyxTQUFTLEdBQUc7QUFDbEMsUUFBRSxTQUFTK0UsT0FBTyxLQUFLLGlCQUFpQixFQUFFLE1BQU1DLENBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxTQUFTNUQsR0FBR0MsR0FBRztBQUNqRixZQUFJeEIsSUFBSXdCLEVBQUUsS0FBSyxHQUFHQyxJQUFJekIsRUFBRSxRQUFRb0YsQ0FBQztBQUNqQyxZQUFJM0QsTUFBTSxJQUFJO0FBQ1osY0FBSUMsSUFBSTFCLEVBQUUsTUFBTSxHQUFHeUIsQ0FBQyxHQUFHLElBQUl6QixFQUFFLE1BQU15QixJQUFJLEdBQUdELEVBQUUsTUFBTTtBQUNsRCxhQUFHRSxDQUFDLEtBQUssR0FBRyxDQUFDLEtBQUtILEVBQUUsSUFBSUcsR0FBRyxDQUFDO0FBQUEsUUFDOUI7QUFDQSxlQUFPSDtBQUFBLE1BQ1QsR0FBbUIsb0JBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxlQUFlLE9BQU8wRCxNQUFNLEtBQUssaUJBQWlCLElBQUksSUFBSSxNQUFNLEtBQUssS0FBSyxlQUFlLFFBQVEsQ0FBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLEdBQUdBLENBQUMsQ0FBQztBQUFBLElBQy9KLEdBQUc5RSxFQUFFLFVBQVUsUUFBUSxXQUFXO0FBQ2hDLGFBQU8sTUFBTSxLQUFLLEtBQUssZUFBZSxLQUFLLENBQUMsRUFBRSxRQUFRO0FBQUEsSUFDeEQsR0FBR0EsRUFBRSxVQUFVLFNBQVMsV0FBVztBQUNqQyxVQUFJLElBQUksSUFBSUEsRUFBRTtBQUNkLGFBQU8sRUFBRSxpQkFBaUIsSUFBSSxJQUFJLEtBQUssY0FBYyxHQUFHO0FBQUEsSUFDMUQsR0FBR0E7QUFBQSxFQUNMLEdBQUc7QUFBQSxHQUNGbUYsSUFBSSxlQUFlQyxJQUFJLGNBQWNDLEtBQUssTUFBTUMsS0FBSyxxQkFBcUIsS0FBSywyQkFBMkJDLEtBQUssMkJBQTJCQyxLQUFLLGVBQWVDLEtBQUssSUFBSSxPQUFPLFdBQVdILEtBQUssUUFBUSxLQUFLLFFBQVFDLEtBQUssUUFBUUMsS0FBSyxjQUFjO0FBQ3RQLFNBQVNFLEdBQUcxRixHQUFHO0FBQ2IsTUFBSSxJQUFJeUYsR0FBRyxLQUFLekYsQ0FBQztBQUNqQixTQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxRQUFRLEVBQUUsQ0FBQyxJQUFJLE9BQU87QUFBQSxJQUMxQyxTQUFTLEVBQUUsQ0FBQztBQUFBLElBQ1osUUFBUSxFQUFFLENBQUM7QUFBQSxJQUNYLFlBQVksU0FBUyxFQUFFLENBQUMsR0FBRyxFQUFFO0FBQUEsRUFDL0I7QUFDRjtBQUNBLElBQUkyRjtBQUFBO0FBQUEsR0FFRCxXQUFXO0FBQ1YsYUFBUzNGLElBQUk7QUFBQSxJQUNiO0FBQ0EsV0FBT0EsRUFBRSxVQUFVLFNBQVMsU0FBUyxHQUFHb0IsR0FBR0MsR0FBRztBQUM1QyxVQUFJbkIsSUFBTUUsRUFBSyxlQUFlLENBQUM7QUFDL0IsVUFBSSxFQUFFLENBQUNGLEtBQU9MLEVBQUUsQ0FBQyxLQUFLLENBQUNRLEVBQUdILENBQUcsSUFBSTtBQUMvQixZQUFJb0IsSUFBSStELEtBQUssTUFBTW5GLEVBQUksVUFBVSxNQUFNQSxFQUFJLFNBQVMsT0FBTyxPQUFPQSxFQUFJLGNBQWNJLEVBQUcsSUFBSSxFQUFFLFNBQVMsRUFBRTtBQUN4RyxRQUFBZSxFQUFFLElBQUlELEdBQUcrRCxHQUFHN0QsQ0FBQyxHQUFHcEIsRUFBSSxjQUFjbUIsRUFBRSxJQUFJRCxHQUFHZ0UsR0FBR2xGLEVBQUksV0FBVyxVQUFVLENBQUM7QUFBQSxNQUMxRTtBQUFBLElBQ0YsR0FBR0YsRUFBRSxVQUFVLFVBQVUsU0FBUyxHQUFHb0IsR0FBR0MsR0FBRztBQUN6QyxVQUFJeEIsSUFBSXdCLEVBQUUsSUFBSUQsR0FBRytELENBQUM7QUFDbEIsVUFBSSxDQUFDdEY7QUFDSCxlQUFPO0FBQ1QsVUFBSXlCLElBQUksTUFBTSxRQUFRekIsQ0FBQyxJQUFJQSxFQUFFLENBQUMsSUFBSUE7QUFDbEMsVUFBSSxPQUFPeUIsS0FBSztBQUNkLGVBQU87QUFDVCxVQUFJQyxJQUFJbUUsR0FBR3BFLENBQUM7QUFDWixVQUFJLENBQUNDO0FBQ0gsZUFBTztBQUNULE1BQUFBLEVBQUUsV0FBVztBQUNiLFVBQUksSUFBSUYsRUFBRSxJQUFJRCxHQUFHZ0UsQ0FBQztBQUNsQixVQUFJLEdBQUc7QUFDTCxZQUFJdkQsSUFBSSxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxHQUFHLElBQUk7QUFDekMsUUFBQU4sRUFBRSxhQUFhLElBQUkyRCxHQUFHLE9BQU9yRCxLQUFLLFdBQVdBLElBQUksTUFBTTtBQUFBLE1BQ3pEO0FBQ0EsYUFBT3pCLEVBQUssZUFBZSxHQUFHbUIsQ0FBQztBQUFBLElBQ2pDLEdBQUd2QixFQUFFLFVBQVUsU0FBUyxXQUFXO0FBQ2pDLGFBQU8sQ0FBQ21GLEdBQUdDLENBQUM7QUFBQSxJQUNkLEdBQUdwRjtBQUFBLEVBQ0wsR0FBRztBQUFBLEdBQ0YsSUFBSVEsR0FBRyw0Q0FBNEMsR0FBR29GO0FBQUEsQ0FDeEQsU0FBUzVGLEdBQUc7QUFDWCxFQUFBQSxFQUFFLE9BQU87QUFDWCxHQUFHNEYsTUFBTUEsSUFBSSxDQUFDLEVBQUU7QUFDaEIsU0FBU0MsR0FBRzdGLEdBQUcsR0FBRztBQUNoQixTQUFPQSxFQUFFLFNBQVMsR0FBRyxDQUFDO0FBQ3hCO0FBQ0EsU0FBUyxHQUFHQSxHQUFHO0FBQ2IsU0FBT0EsRUFBRSxZQUFZLENBQUM7QUFDeEI7QUFDQSxTQUFTOEYsR0FBRzlGLEdBQUc7QUFDYixTQUFPQSxFQUFFLFNBQVMsQ0FBQztBQUNyQjtBQUNBLElBQUk7QUFBQTtBQUFBLEdBRUQsV0FBVztBQUNWLGFBQVNBLElBQUk7QUFBQSxJQUNiO0FBQ0EsV0FBT0EsRUFBRSxVQUFVLGVBQWUsV0FBVztBQUMzQyxhQUFPO0FBQUEsUUFDTCxVQUFVWSxFQUFFO0FBQUEsTUFDZDtBQUFBLElBQ0YsR0FBR1osRUFBRSxVQUFVLFdBQVcsV0FBVztBQUNuQyxhQUFPO0FBQUEsSUFDVCxHQUFHQTtBQUFBLEVBQ0wsR0FBRztBQUFBLEdBQ0YrRjtBQUFBO0FBQUEsR0FFQSxXQUFXO0FBQ1YsYUFBUy9GLElBQUk7QUFBQSxJQUNiO0FBQ0EsV0FBT0EsRUFBRSxVQUFVLGVBQWUsV0FBVztBQUMzQyxhQUFPO0FBQUEsUUFDTCxVQUFVWSxFQUFFO0FBQUEsTUFDZDtBQUFBLElBQ0YsR0FBR1osRUFBRSxVQUFVLFdBQVcsV0FBVztBQUNuQyxhQUFPO0FBQUEsSUFDVCxHQUFHQTtBQUFBLEVBQ0wsR0FBRztBQUFBLEdBQ0Y7QUFBQTtBQUFBLEdBRUEsV0FBVztBQUNWLGFBQVNBLEVBQUUsR0FBRztBQUNaLFVBQUlvQixHQUFHQyxHQUFHeEIsR0FBR3lCO0FBQ2IsV0FBSyxRQUFRLEVBQUUsTUFBTSxLQUFLLFVBQVVzQixHQUFHLElBQUksTUFBTSx3REFBd0QsQ0FBQyxHQUFHLEtBQUssUUFBUSxJQUFJbUQsRUFBRSxJQUFJLEtBQUssd0JBQXdCM0UsSUFBSSxFQUFFLHlCQUF5QixRQUFRQSxNQUFNLFNBQVNBLElBQUksSUFBSTJFLEVBQUUsR0FBRyxLQUFLLDJCQUEyQjFFLElBQUksRUFBRSw0QkFBNEIsUUFBUUEsTUFBTSxTQUFTQSxJQUFJLElBQUksRUFBRSxHQUFHLEtBQUssdUJBQXVCeEIsSUFBSSxFQUFFLHdCQUF3QixRQUFRQSxNQUFNLFNBQVNBLElBQUksSUFBSWtHLEVBQUUsR0FBRyxLQUFLLDBCQUEwQnpFLElBQUksRUFBRSwyQkFBMkIsUUFBUUEsTUFBTSxTQUFTQSxJQUFJLElBQUksRUFBRTtBQUFBLElBQzNnQjtBQUNBLFdBQU90QixFQUFFLFVBQVUsZUFBZSxTQUFTLEdBQUdvQixHQUFHQyxHQUFHeEIsR0FBR3lCLEdBQUdDLEdBQUc7QUFDM0QsVUFBSSxJQUFJbkIsRUFBSyxlQUFlLENBQUM7QUFDN0IsYUFBTyxDQUFDLEtBQUssQ0FBQ0MsRUFBRyxDQUFDLElBQUksS0FBSyxNQUFNLGFBQWEsR0FBR2UsR0FBR0MsR0FBR3hCLEdBQUd5QixHQUFHQyxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsYUFBYWpCLEVBQUcsVUFBVSxLQUFLLHFCQUFxQixhQUFhLEdBQUdjLEdBQUdDLEdBQUd4QixHQUFHeUIsR0FBR0MsQ0FBQyxJQUFJLEtBQUssd0JBQXdCLGFBQWEsR0FBR0gsR0FBR0MsR0FBR3hCLEdBQUd5QixHQUFHQyxDQUFDLElBQUksRUFBRSxhQUFhakIsRUFBRyxVQUFVLEtBQUssb0JBQW9CLGFBQWEsR0FBR2MsR0FBR0MsR0FBR3hCLEdBQUd5QixHQUFHQyxDQUFDLElBQUksS0FBSyx1QkFBdUIsYUFBYSxHQUFHSCxHQUFHQyxHQUFHeEIsR0FBR3lCLEdBQUdDLENBQUM7QUFBQSxJQUNyWCxHQUFHdkIsRUFBRSxVQUFVLFdBQVcsV0FBVztBQUNuQyxhQUFPLHNCQUFzQixLQUFLLE1BQU0sU0FBUyxJQUFJLDJCQUEyQixLQUFLLHFCQUFxQixTQUFTLElBQUksOEJBQThCLEtBQUssd0JBQXdCLFNBQVMsSUFBSSwwQkFBMEIsS0FBSyxvQkFBb0IsU0FBUyxJQUFJLDZCQUE2QixLQUFLLHVCQUF1QixTQUFTLElBQUk7QUFBQSxJQUN2VSxHQUFHQTtBQUFBLEVBQ0wsR0FBRztBQUFBLEdBQ0Y7QUFBQTtBQUFBLEdBRUEsV0FBVztBQUNWLGFBQVNBLEVBQUUsR0FBRztBQUNaLFlBQU0sV0FBVyxJQUFJLElBQUksS0FBSyxTQUFTLEdBQUcsS0FBSyxTQUFTLEtBQUssV0FBVyxDQUFDLEdBQUcsS0FBSyxjQUFjLEtBQUssTUFBTSxLQUFLLFNBQVMsVUFBVTtBQUFBLElBQ3BJO0FBQ0EsV0FBT0EsRUFBRSxVQUFVLGVBQWUsU0FBUyxHQUFHb0IsR0FBRztBQUMvQyxhQUFPO0FBQUEsUUFDTCxVQUFVWCxHQUFHVyxDQUFDLEtBQUssS0FBSyxZQUFZQSxDQUFDLElBQUksS0FBSyxjQUFjUixFQUFFLHFCQUFxQkEsRUFBRTtBQUFBLE1BQ3ZGO0FBQUEsSUFDRixHQUFHWixFQUFFLFVBQVUsV0FBVyxXQUFXO0FBQ25DLGFBQU8sdUJBQXVCLEtBQUssU0FBUztBQUFBLElBQzlDLEdBQUdBLEVBQUUsVUFBVSxhQUFhLFNBQVMsR0FBRztBQUN0QyxhQUFPLE9BQU8sS0FBSyxZQUFZLE1BQU0sQ0FBQyxJQUFJLElBQUksS0FBSyxJQUFJLElBQUksS0FBSyxJQUFJLElBQUk7QUFBQSxJQUMxRSxHQUFHQSxFQUFFLFVBQVUsY0FBYyxTQUFTLEdBQUc7QUFDdkMsZUFBU29CLElBQUksR0FBR0MsSUFBSSxHQUFHQSxJQUFJLEVBQUUsU0FBUyxHQUFHQSxLQUFLO0FBQzVDLFlBQUl4QixJQUFJd0IsSUFBSSxHQUFHQyxJQUFJLFNBQVMsRUFBRSxNQUFNekIsR0FBR0EsSUFBSSxDQUFDLEdBQUcsRUFBRTtBQUNqRCxRQUFBdUIsS0FBS0EsSUFBSUUsT0FBTztBQUFBLE1BQ2xCO0FBQ0EsYUFBT0Y7QUFBQSxJQUNULEdBQUdwQjtBQUFBLEVBQ0wsR0FBRztBQUFBLEdBQ0ZnRyxLQUFLLG1CQUFtQkMsS0FBSyxpQkFBaUJDLEtBQUssc0JBQXNCQyxLQUFLLFNBQVMsV0FBV0MsS0FBS0QsR0FBRyxVQUFVRSxLQUFLRCxHQUFHLEtBQUssTUFBTSxHQUFHRSxLQUFLQyxHQUFHLE9BQU8sZ0JBQWdCLE1BQU0sR0FBR0MsS0FBSyxPQUFPLFdBQVdDLEtBQUtELEdBQUcsZ0JBQWdCRSxJQUFJLFNBQVMsT0FBTyxjQUFjLFFBQVFDLEtBQUtILEdBQUc7QUFDdFIsU0FBU0QsR0FBR3ZHLEdBQUcsR0FBRztBQUNoQixTQUFPLFNBQVNvQixHQUFHO0FBQ2pCLFdBQU9wQixFQUFFLEVBQUVvQixDQUFDLENBQUM7QUFBQSxFQUNmO0FBQ0Y7QUFDQSxTQUFTd0YsRUFBRTVHLEdBQUc7QUFDWixNQUFJLENBQUM2RyxHQUFHN0csQ0FBQyxLQUFLOEcsR0FBRzlHLENBQUMsTUFBTWdHO0FBQ3RCLFdBQU87QUFDVCxNQUFJLElBQUlNLEdBQUd0RyxDQUFDO0FBQ1osTUFBSSxNQUFNO0FBQ1IsV0FBTztBQUNULE1BQUlvQixJQUFJcUYsR0FBRyxLQUFLLEdBQUcsYUFBYSxLQUFLLEVBQUU7QUFDdkMsU0FBTyxPQUFPckYsS0FBSyxjQUFjQSxhQUFhQSxLQUFLZ0YsR0FBRyxLQUFLaEYsQ0FBQyxNQUFNaUY7QUFDcEU7QUFDQSxTQUFTUSxHQUFHN0csR0FBRztBQUNiLFNBQU9BLEtBQUssUUFBUSxPQUFPQSxLQUFLO0FBQ2xDO0FBQ0EsU0FBUzhHLEdBQUc5RyxHQUFHO0FBQ2IsU0FBT0EsS0FBSyxPQUFPQSxNQUFNLFNBQVNrRyxLQUFLRCxLQUFLUyxLQUFLQSxLQUFLLE9BQU8xRyxDQUFDLElBQUkrRyxHQUFHL0csQ0FBQyxJQUFJZ0gsR0FBR2hILENBQUM7QUFDaEY7QUFDQSxTQUFTK0csR0FBRy9HLEdBQUc7QUFDYixNQUFJLElBQUl5RyxHQUFHLEtBQUt6RyxHQUFHMEcsQ0FBQyxHQUFHdEYsSUFBSXBCLEVBQUUwRyxDQUFDLEdBQUdyRixJQUFJO0FBQ3JDLE1BQUk7QUFDRixJQUFBckIsRUFBRTBHLENBQUMsSUFBSSxRQUFRckYsSUFBSTtBQUFBLEVBQ3JCLFFBQVE7QUFBQSxFQUNSO0FBQ0EsTUFBSXhCLElBQUk4RyxHQUFHLEtBQUszRyxDQUFDO0FBQ2pCLFNBQU9xQixNQUFNLElBQUlyQixFQUFFMEcsQ0FBQyxJQUFJdEYsSUFBSSxPQUFPcEIsRUFBRTBHLENBQUMsSUFBSTdHO0FBQzVDO0FBQ0EsU0FBU21ILEdBQUdoSCxHQUFHO0FBQ2IsU0FBTzJHLEdBQUcsS0FBSzNHLENBQUM7QUFDbEI7QUFDQSxJQUFJaUgsS0FBSztBQUNULFNBQVNDLEtBQUs7QUFDWixXQUFTbEgsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksVUFBVSxRQUFRO0FBQzVDLElBQUFBLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQztBQUNwQixXQUFTb0IsSUFBSXBCLEVBQUUsTUFBTSxHQUFHcUIsSUFBb0Isb0JBQUksUUFBUSxHQUFHckIsRUFBRSxTQUFTO0FBQ3BFLElBQUFvQixJQUFJK0YsR0FBRy9GLEdBQUdwQixFQUFFLE1BQU0sR0FBRyxHQUFHcUIsQ0FBQztBQUMzQixTQUFPRDtBQUNUO0FBQ0EsU0FBUyxFQUFFcEIsR0FBRztBQUNaLFNBQU9vSCxFQUFFcEgsQ0FBQyxJQUFJQSxFQUFFLE1BQU0sSUFBSUE7QUFDNUI7QUFDQSxTQUFTbUgsR0FBR25ILEdBQUcsR0FBR29CLEdBQUdDLEdBQUc7QUFDdEIsRUFBQUQsTUFBTSxXQUFXQSxJQUFJO0FBQ3JCLE1BQUl2QjtBQUNKLE1BQUksRUFBRXVCLElBQUk2RixLQUFLO0FBQ2IsUUFBSTdGLEtBQUtpRyxFQUFFckgsQ0FBQyxLQUFLcUgsRUFBRSxDQUFDLEtBQUtDLEdBQUcsQ0FBQztBQUMzQixNQUFBekgsSUFBSSxFQUFFLENBQUM7QUFBQSxhQUNBdUgsRUFBRXBILENBQUM7QUFDVixVQUFJSCxJQUFJRyxFQUFFLE1BQU0sR0FBR29ILEVBQUUsQ0FBQztBQUNwQixpQkFBUzlGLElBQUksR0FBR0MsSUFBSSxFQUFFLFFBQVFELElBQUlDLEdBQUdEO0FBQ25DLFVBQUF6QixFQUFFLEtBQUssRUFBRSxFQUFFeUIsQ0FBQyxDQUFDLENBQUM7QUFBQSxlQUNUaUcsRUFBRSxDQUFDO0FBQ1YsaUJBQVMsSUFBSSxPQUFPLEtBQUssQ0FBQyxHQUFHakcsSUFBSSxHQUFHQyxJQUFJLEVBQUUsUUFBUUQsSUFBSUMsR0FBR0QsS0FBSztBQUM1RCxjQUFJTyxJQUFJLEVBQUVQLENBQUM7QUFDWCxVQUFBekIsRUFBRWdDLENBQUMsSUFBSSxFQUFFLEVBQUVBLENBQUMsQ0FBQztBQUFBLFFBQ2Y7QUFBQSxlQUNPMEYsRUFBRXZILENBQUM7QUFDWixVQUFJdUgsRUFBRSxDQUFDLEdBQUc7QUFDUixZQUFJLENBQUNDLEdBQUd4SCxHQUFHLENBQUM7QUFDVixpQkFBTztBQUNULFFBQUFILElBQUksT0FBTyxPQUFPLENBQUMsR0FBR0csQ0FBQztBQUN2QixpQkFBUyxJQUFJLE9BQU8sS0FBSyxDQUFDLEdBQUdzQixJQUFJLEdBQUdDLElBQUksRUFBRSxRQUFRRCxJQUFJQyxHQUFHRCxLQUFLO0FBQzVELGNBQUlPLElBQUksRUFBRVAsQ0FBQyxHQUFHUSxJQUFJLEVBQUVELENBQUM7QUFDckIsY0FBSXdGLEVBQUV2RixDQUFDO0FBQ0wsbUJBQU9BLElBQUksTUFBTSxPQUFPakMsRUFBRWdDLENBQUMsSUFBSWhDLEVBQUVnQyxDQUFDLElBQUlDO0FBQUEsZUFDbkM7QUFDSCxnQkFBSS9CLElBQUlGLEVBQUVnQyxDQUFDLEdBQUc0RixJQUFJM0Y7QUFDbEIsZ0JBQUk0RixFQUFFMUgsR0FBRzZCLEdBQUdSLENBQUMsS0FBS3FHLEVBQUUsR0FBRzdGLEdBQUdSLENBQUM7QUFDekIscUJBQU94QixFQUFFZ0MsQ0FBQztBQUFBLGlCQUNQO0FBQ0gsa0JBQUkwRixFQUFFeEgsQ0FBQyxLQUFLd0gsRUFBRUUsQ0FBQyxHQUFHO0FBQ2hCLG9CQUFJRSxJQUFJdEcsRUFBRSxJQUFJdEIsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJc0IsRUFBRSxJQUFJb0csQ0FBQyxLQUFLLENBQUM7QUFDekMsZ0JBQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUszSCxHQUFHLEtBQUs2QixFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEdBQUcsS0FBS0EsRUFBRSxDQUFDLEdBQUdSLEVBQUUsSUFBSXRCLEdBQUc0SCxDQUFDLEdBQUd0RyxFQUFFLElBQUlvRyxHQUFHLENBQUM7QUFBQSxjQUNqRjtBQUNBLGNBQUE1SCxFQUFFZ0MsQ0FBQyxJQUFJc0YsR0FBR3RILEVBQUVnQyxDQUFDLEdBQUdDLEdBQUdWLEdBQUdDLENBQUM7QUFBQSxZQUN6QjtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUNFLFFBQUF4QixJQUFJO0FBQ1IsV0FBT0E7QUFBQSxFQUNUO0FBQ0Y7QUFDQSxTQUFTNkgsRUFBRTFILEdBQUcsR0FBR29CLEdBQUc7QUFDbEIsV0FBU0MsSUFBSUQsRUFBRSxJQUFJcEIsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUdILElBQUksR0FBR3lCLElBQUlELEVBQUUsUUFBUXhCLElBQUl5QixHQUFHekIsS0FBSztBQUMvRCxRQUFJMEIsSUFBSUYsRUFBRXhCLENBQUM7QUFDWCxRQUFJMEIsRUFBRSxRQUFRLEtBQUtBLEVBQUUsUUFBUXZCO0FBQzNCLGFBQU87QUFBQSxFQUNYO0FBQ0EsU0FBTztBQUNUO0FBQ0EsU0FBU29ILEVBQUVwSCxHQUFHO0FBQ1osU0FBTyxNQUFNLFFBQVFBLENBQUM7QUFDeEI7QUFDQSxTQUFTc0gsR0FBR3RILEdBQUc7QUFDYixTQUFPLE9BQU9BLEtBQUs7QUFDckI7QUFDQSxTQUFTdUgsRUFBRXZILEdBQUc7QUFDWixTQUFPLENBQUNxSCxFQUFFckgsQ0FBQyxLQUFLLENBQUNvSCxFQUFFcEgsQ0FBQyxLQUFLLENBQUNzSCxHQUFHdEgsQ0FBQyxLQUFLLE9BQU9BLEtBQUs7QUFDakQ7QUFDQSxTQUFTcUgsRUFBRXJILEdBQUc7QUFDWixTQUFPLE9BQU9BLEtBQUssWUFBWSxPQUFPQSxLQUFLLFlBQVksT0FBT0EsS0FBSyxhQUFhLE9BQU9BLElBQUksT0FBT0EsYUFBYSxRQUFRQSxhQUFhLFVBQVVBLE1BQU07QUFDdEo7QUFDQSxTQUFTd0gsR0FBR3hILEdBQUcsR0FBRztBQUNoQixTQUFPLEVBQUUsQ0FBQzRHLEVBQUU1RyxDQUFDLEtBQUssQ0FBQzRHLEVBQUUsQ0FBQztBQUN4QjtBQUNBLElBQUlnQixLQUFzQiw0QkFBVztBQUNuQyxNQUFJNUgsSUFBSSxTQUFTLEdBQUdvQixHQUFHO0FBQ3JCLFdBQU9wQixJQUFJLE9BQU8sa0JBQWtCLEVBQUUsV0FBVyxDQUFDLEVBQUUsYUFBYSxTQUFTLFNBQVNxQixHQUFHeEIsR0FBRztBQUN2RixNQUFBd0IsRUFBRSxZQUFZeEI7QUFBQSxJQUNoQixLQUFLLFNBQVN3QixHQUFHeEIsR0FBRztBQUNsQixlQUFTeUIsS0FBS3pCLEVBQUcsUUFBTyxVQUFVLGVBQWUsS0FBS0EsR0FBR3lCLENBQUMsTUFBTUQsRUFBRUMsQ0FBQyxJQUFJekIsRUFBRXlCLENBQUM7QUFBQSxJQUM1RSxHQUFHdEIsRUFBRSxHQUFHb0IsQ0FBQztBQUFBLEVBQ1g7QUFDQSxTQUFPLFNBQVMsR0FBR0EsR0FBRztBQUNwQixRQUFJLE9BQU9BLEtBQUssY0FBY0EsTUFBTTtBQUNsQyxZQUFNLElBQUksVUFBVSx5QkFBeUIsT0FBT0EsQ0FBQyxJQUFJLCtCQUErQjtBQUMxRixJQUFBcEIsRUFBRSxHQUFHb0IsQ0FBQztBQUNOLGFBQVNDLElBQUk7QUFDWCxXQUFLLGNBQWM7QUFBQSxJQUNyQjtBQUNBLE1BQUUsWUFBWUQsTUFBTSxPQUFPLE9BQU8sT0FBT0EsQ0FBQyxLQUFLQyxFQUFFLFlBQVlELEVBQUUsV0FBVyxJQUFJQyxFQUFFO0FBQUEsRUFDbEY7QUFDRixHQUFHLEdBQUd3RztBQUFBO0FBQUEsR0FFSCxTQUFTN0gsR0FBRztBQUNYLElBQUE0SCxHQUFHLEdBQUc1SCxDQUFDO0FBQ1AsYUFBUyxFQUFFb0IsR0FBRztBQUNaLFVBQUlDLElBQUlyQixFQUFFLEtBQUssTUFBTW9CLENBQUMsS0FBSztBQUMzQixhQUFPLE9BQU8sZUFBZUMsR0FBRyxFQUFFLFNBQVMsR0FBR0E7QUFBQSxJQUNoRDtBQUNBLFdBQU87QUFBQSxFQUNULEdBQUcsS0FBSztBQUFBO0FBRVYsU0FBU3lHLEdBQUc5SCxHQUFHLEdBQUc7QUFDaEIsTUFBSW9CLEdBQUdDLElBQUksSUFBSSxRQUFRLFNBQVNDLEdBQUdDLEdBQUc7QUFDcEMsSUFBQUgsSUFBSSxXQUFXLFdBQVc7QUFDeEIsTUFBQUcsRUFBRSxJQUFJc0csR0FBRyxzQkFBc0IsQ0FBQztBQUFBLElBQ2xDLEdBQUcsQ0FBQztBQUFBLEVBQ04sQ0FBQztBQUNELFNBQU8sUUFBUSxLQUFLLENBQUM3SCxHQUFHcUIsQ0FBQyxDQUFDLEVBQUUsS0FBSyxTQUFTeEIsR0FBRztBQUMzQyxXQUFPLGFBQWF1QixDQUFDLEdBQUd2QjtBQUFBLEVBQzFCLEdBQUcsU0FBU0EsR0FBRztBQUNiLFVBQU0sYUFBYXVCLENBQUMsR0FBR3ZCO0FBQUEsRUFDekIsQ0FBQztBQUNIO0FBQ0EsU0FBU2tJLEdBQUcvSCxHQUFHO0FBQ2IsU0FBTyxPQUFPQSxLQUFLLGNBQWMsT0FBT0EsRUFBRSxjQUFjLGNBQWMsT0FBT0EsRUFBRSxZQUFZLGNBQWNBLEVBQUUsY0FBYztBQUMzSDtBQUNBLElBQUlnSTtBQUFBO0FBQUEsR0FFRCxXQUFXO0FBQ1YsYUFBU2hJLElBQUk7QUFDWCxVQUFJLElBQUk7QUFDUixXQUFLLFdBQVcsSUFBSSxRQUFRLFNBQVNvQixHQUFHQyxHQUFHO0FBQ3pDLFVBQUUsV0FBV0QsR0FBRyxFQUFFLFVBQVVDO0FBQUEsTUFDOUIsQ0FBQztBQUFBLElBQ0g7QUFDQSxXQUFPLE9BQU8sZUFBZXJCLEVBQUUsV0FBVyxXQUFXO0FBQUEsTUFDbkQsS0FBSyxXQUFXO0FBQ2QsZUFBTyxLQUFLO0FBQUEsTUFDZDtBQUFBLE1BQ0EsWUFBWTtBQUFBLE1BQ1osY0FBYztBQUFBLElBQ2hCLENBQUMsR0FBR0EsRUFBRSxVQUFVLFVBQVUsU0FBUyxHQUFHO0FBQ3BDLFdBQUssU0FBUyxDQUFDO0FBQUEsSUFDakIsR0FBR0EsRUFBRSxVQUFVLFNBQVMsU0FBUyxHQUFHO0FBQ2xDLFdBQUssUUFBUSxDQUFDO0FBQUEsSUFDaEIsR0FBR0E7QUFBQSxFQUNMLEdBQUc7QUFBQSxHQUNGaUksS0FBSyxTQUFTakksR0FBRyxHQUFHO0FBQ3JCLE1BQUlvQixJQUFJLE9BQU8sVUFBVSxjQUFjcEIsRUFBRSxPQUFPLFFBQVE7QUFDeEQsTUFBSSxDQUFDb0IsRUFBRyxRQUFPcEI7QUFDZixNQUFJcUIsSUFBSUQsRUFBRSxLQUFLcEIsQ0FBQyxHQUFHSCxHQUFHeUIsSUFBSSxDQUFDLEdBQUdDO0FBQzlCLE1BQUk7QUFDRixZQUFRLE1BQU0sVUFBVSxNQUFNLE1BQU0sRUFBRTFCLElBQUl3QixFQUFFLEtBQUssR0FBRyxPQUFRLENBQUFDLEVBQUUsS0FBS3pCLEVBQUUsS0FBSztBQUFBLEVBQzVFLFNBQVMsR0FBRztBQUNWLElBQUEwQixJQUFJLEVBQUUsT0FBTyxFQUFFO0FBQUEsRUFDakIsVUFBRTtBQUNBLFFBQUk7QUFDRixNQUFBMUIsS0FBSyxDQUFDQSxFQUFFLFNBQVN1QixJQUFJQyxFQUFFLFdBQVdELEVBQUUsS0FBS0MsQ0FBQztBQUFBLElBQzVDLFVBQUU7QUFDQSxVQUFJRSxFQUFHLE9BQU1BLEVBQUU7QUFBQSxJQUNqQjtBQUFBLEVBQ0Y7QUFDQSxTQUFPRDtBQUNULEdBQUc0RyxLQUFLLFNBQVNsSSxHQUFHLEdBQUdvQixHQUFHO0FBQ3hCLE1BQUksVUFBVSxXQUFXLEVBQUcsVUFBU0MsSUFBSSxHQUFHeEIsSUFBSSxFQUFFLFFBQVF5QixHQUFHRCxJQUFJeEIsR0FBR3dCO0FBQ2xFLEtBQUNDLEtBQUssRUFBRUQsS0FBSyxRQUFRQyxNQUFNQSxJQUFJLE1BQU0sVUFBVSxNQUFNLEtBQUssR0FBRyxHQUFHRCxDQUFDLElBQUlDLEVBQUVELENBQUMsSUFBSSxFQUFFQSxDQUFDO0FBQ2pGLFNBQU9yQixFQUFFLE9BQU9zQixLQUFLLE1BQU0sVUFBVSxNQUFNLEtBQUssQ0FBQyxDQUFDO0FBQ3BELEdBQUc2RztBQUFBO0FBQUEsR0FFQSxXQUFXO0FBQ1YsYUFBU25JLEVBQUUsR0FBR29CLEdBQUc7QUFDZixXQUFLLFlBQVksR0FBRyxLQUFLLFFBQVFBLEdBQUcsS0FBSyxZQUFZLElBQU8sS0FBSyxZQUFZLElBQUk0RyxHQUFHO0FBQUEsSUFDdEY7QUFDQSxXQUFPLE9BQU8sZUFBZWhJLEVBQUUsV0FBVyxZQUFZO0FBQUEsTUFDcEQsS0FBSyxXQUFXO0FBQ2QsZUFBTyxLQUFLO0FBQUEsTUFDZDtBQUFBLE1BQ0EsWUFBWTtBQUFBLE1BQ1osY0FBYztBQUFBLElBQ2hCLENBQUMsR0FBRyxPQUFPLGVBQWVBLEVBQUUsV0FBVyxXQUFXO0FBQUEsTUFDaEQsS0FBSyxXQUFXO0FBQ2QsZUFBTyxLQUFLLFVBQVU7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsWUFBWTtBQUFBLE1BQ1osY0FBYztBQUFBLElBQ2hCLENBQUMsR0FBR0EsRUFBRSxVQUFVLE9BQU8sV0FBVztBQUNoQyxlQUFTLEdBQUdvQixJQUFJLE1BQU1DLElBQUksQ0FBQyxHQUFHeEIsSUFBSSxHQUFHQSxJQUFJLFVBQVUsUUFBUUE7QUFDekQsUUFBQXdCLEVBQUV4QixDQUFDLElBQUksVUFBVUEsQ0FBQztBQUNwQixVQUFJLENBQUMsS0FBSyxXQUFXO0FBQ25CLGFBQUssWUFBWTtBQUNqQixZQUFJO0FBQ0Ysa0JBQVEsU0FBUyxJQUFJLEtBQUssV0FBVyxLQUFLLE1BQU0sR0FBR3FJLEdBQUcsQ0FBQyxLQUFLLEtBQUssR0FBR0QsR0FBRzVHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssU0FBU0MsR0FBRztBQUNoRyxtQkFBT0YsRUFBRSxVQUFVLFFBQVFFLENBQUM7QUFBQSxVQUM5QixHQUFHLFNBQVNBLEdBQUc7QUFDYixtQkFBT0YsRUFBRSxVQUFVLE9BQU9FLENBQUM7QUFBQSxVQUM3QixDQUFDO0FBQUEsUUFDSCxTQUFTQSxHQUFHO0FBQ1YsZUFBSyxVQUFVLE9BQU9BLENBQUM7QUFBQSxRQUN6QjtBQUFBLE1BQ0Y7QUFDQSxhQUFPLEtBQUssVUFBVTtBQUFBLElBQ3hCLEdBQUd0QjtBQUFBLEVBQ0wsR0FBRztBQUFBO0FBRUwsU0FBU29JLEdBQUdwSSxHQUFHLEdBQUc7QUFDaEIsU0FBTyxJQUFJLFFBQVEsU0FBU29CLEdBQUc7QUFDN0IsSUFBQWIsRUFBSyxLQUFLVCxFQUFFUyxFQUFLLE9BQU8sQ0FBQyxHQUFHLFdBQVc7QUFDckMsTUFBQVAsRUFBRSxPQUFPLEdBQUcsU0FBU3FCLEdBQUc7QUFDdEIsUUFBQUQsRUFBRUMsQ0FBQztBQUFBLE1BQ0wsQ0FBQztBQUFBLElBQ0gsQ0FBQztBQUFBLEVBQ0gsQ0FBQztBQUNIO0FBQ0EsSUFBSWdILEtBQUs7QUFBQSxFQUNQLGFBQWE1RztBQUFBLEVBQ2IsbUJBQW1CRDtBQUFBLEVBQ25CLHlCQUF5Qkc7QUFBQSxFQUN6QixtQkFBbUJEO0FBQ3JCLEdBQUc0RyxLQUFLO0FBQUEsRUFDTixTQUFTRjtBQUNYO0FBQ0EsTUFBTUcsS0FBcUIsdUJBQU8sT0FBdUIsdUJBQU8sZUFBZTtBQUFBLEVBQzdFLFdBQVc7QUFBQSxFQUNYLGtCQUFrQjtBQUFBLEVBQ2xCLGlCQUFpQnhDO0FBQUEsRUFDakIsZUFBZWhFO0FBQUEsRUFDZixnQkFBZ0JvRztBQUFBLEVBQ2hCLHFCQUFxQjNEO0FBQUEsRUFDckIsK0JBQStCcEI7QUFBQSxFQUMvQixzQ0FBc0NEO0FBQUEsRUFDdEMscUJBQXFCSTtBQUFBLEVBQ3JCLDhDQUE4Q0Y7QUFBQSxFQUM5Qyw2Q0FBNkNDO0FBQUEsRUFDN0MsSUFBSSxtQkFBbUI7QUFDckIsV0FBT3BEO0FBQUEsRUFDVDtBQUFBLEVBQ0Esb0JBQW9CO0FBQUEsRUFDcEIsSUFBSSxVQUFVO0FBQ1osV0FBTzBGO0FBQUEsRUFDVDtBQUFBLEVBQ0EsbUJBQW1CeEI7QUFBQSxFQUNuQixVQUFVekQ7QUFBQSxFQUNWLHFCQUFxQndFO0FBQUEsRUFDckIsb0JBQW9CQztBQUFBLEVBQ3BCLGNBQWN5QztBQUFBLEVBQ2QsMEJBQTBCO0FBQUEsRUFDMUIsWUFBWTNDO0FBQUEsRUFDWixJQUFJLHNCQUFzQjtBQUN4QixXQUFPckM7QUFBQSxFQUNUO0FBQUEsRUFDQSxTQUFTbkM7QUFBQSxFQUNULHNCQUFzQmtCO0FBQUEsRUFDdEIsMkJBQTJCK0Q7QUFBQSxFQUMzQixhQUFhL0c7QUFBQSxFQUNiLFlBQVlnQjtBQUFBLEVBQ1osY0FBY3lJO0FBQUEsRUFDZCxpQkFBaUJQO0FBQUEsRUFDakIsbUJBQW1CO0FBQUEsRUFDbkIsUUFBUWpFO0FBQUEsRUFDUix1QkFBdUJDO0FBQUEsRUFDdkIsZ0JBQWdCZ0M7QUFBQSxFQUNoQixlQUFlbkc7QUFBQSxFQUNmLG9CQUFvQmlEO0FBQUEsRUFDcEIsYUFBYXFCO0FBQUEsRUFDYixhQUFhaEU7QUFBQSxFQUNiLFFBQVFQO0FBQUEsRUFDUixnQkFBZ0JEO0FBQUEsRUFDaEIsc0JBQXNCRDtBQUFBLEVBQ3RCLHNCQUFzQkQ7QUFBQSxFQUN0QixxQkFBcUJEO0FBQUEsRUFDckIsbUJBQW1CRDtBQUFBLEVBQ25CLFVBQVVpSjtBQUFBLEVBQ1YsZ0JBQWdCbEc7QUFBQSxFQUNoQixrQkFBa0JDO0FBQUEsRUFDbEIsYUFBYWpEO0FBQUEsRUFDYixtQkFBbUJEO0FBQUEsRUFDbkIscUJBQXFCVTtBQUFBLEVBQ3JCLGNBQWNYO0FBQUEsRUFDZCxXQUFXNkk7QUFBQSxFQUNYLHFCQUFxQnZGO0FBQUEsRUFDckIsT0FBTzBFO0FBQUEsRUFDUCxnQkFBZ0JqSTtBQUFBLEVBQ2hCLGVBQWVEO0FBQUEsRUFDZixrQkFBa0I0RTtBQUFBLEVBQ2xCLGtCQUFrQjhCO0FBQUEsRUFDbEIsb0JBQW9CeEQ7QUFBQSxFQUNwQix1QkFBdUI7QUFBQSxFQUN2QixnQkFBZ0IyRDtBQUFBLEVBQ2hCLGlCQUFpQi9GO0FBQUEsRUFDakIsbUJBQW1CZjtBQUFBLEVBQ25CLFlBQVl3RjtBQUFBLEVBQ1osbUJBQW1CeEU7QUFBQSxFQUNuQixZQUFZakI7QUFDZCxHQUFHLE9BQU8sYUFBYSxFQUFFLE9BQU8sU0FBUyxDQUFDLENBQUM7IiwKICAibmFtZXMiOiBbInlfIiwgImhfIiwgImZfIiwgImdfIiwgIndlJDEiLCAiUiQxIiwgIk8kMSIsICJaZSQxIiwgIk5fIiwgInFlJDEiLCAiUWUkMSIsICJ4ZSQxIiwgImtlJDEiLCAiamUkMSIsICJYZSQxIiwgInBfIiwgInJfIiwgImJfIiwgImEiLCAidSIsICJzIiwgInIiLCAiQSQxIiwgImEkMSIsICJaJDEiLCAiTWUkMSIsICJobiIsICJIdCIsICJUZSQxIiwgIlppIiwgImRzIiwgInRTIiwgIlRBIiwgImwiLCAieHIiLCAiVSIsICJtIiwgIkZyIiwgIktyIiwgIllyIiwgInpyIiwgInQiLCAibiIsICJpIiwgIm8iLCAicnIiLCAiZXIiLCAidyIsICJXciIsICJaciIsICJFIiwgIlQiLCAiJHIiLCAidHIiLCAiSnIiLCAiUXIiLCAiciQxIiwgIm5yIiwgImFyIiwgInFyIiwgImlyIiwgIm9yIiwgImtyIiwgInJlIiwgIl9yIiwgIkVyIiwgInYiLCAidGUiLCAiYWUiLCAiaWUiLCAib2UiLCAiRWUiLCAicCIsICJkIiwgIlRyIiwgInVyIiwgIlYiLCAiVGUiLCAiZmUiLCAic2UiLCAibGUiLCAiaiIsICJPZSIsICJjZSIsICJSZSIsICJwZSIsICJkZSIsICJMZSIsICJBZSIsICJQZSIsICJZIiwgIlIiLCAiU2UiLCAidmUiLCAiQiIsICJ5ZSIsICJoZSIsICJnZSIsICJtZSIsICJ6IiwgIlVlIiwgIlciLCAiWiIsICJmciIsICJMIiwgIkEiLCAiQmUiLCAiYmUiLCAiWGUiLCAiR2UiLCAid2UiLCAic3IiLCAiVmUiLCAiYiIsICJqZSIsICJ4ZSIsICJQIiwgIlllIiwgInplIiwgIldlIiwgIlplIiwgImxyIiwgIiRlIiwgIkplIiwgIlFlIiwgIk9yIiwgImNyIiwgImYiLCAiUnIiLCAiJCIsICJxZSIsICJrZSIsICJydCIsICJldCIsICJ0dCIsICJudCIsICJwciIsICJ5IiwgIlMiLCAiZHIiLCAiTyIsICJhdCIsICJoIiwgIkoiLCAieCIsICJpdCIsICJMciIsICJvdCIsICJfdCIsICJFdCIsICJUdCIsICJ1dCIsICJmdCIsICJzdCIsICJsdCIsICJPdCIsICJQdCJdCn0K
|
package/dist/index.d.ts
CHANGED
|
@@ -268,6 +268,11 @@ declare type CustomInitParams = {
|
|
|
268
268
|
* This is working with current version of Stripe element (v3). This is not guaranteed to work with future versions of Stripe element.
|
|
269
269
|
*/
|
|
270
270
|
onAuthenticationStatusChange?: (isAuthenticated: boolean) => void;
|
|
271
|
+
/**
|
|
272
|
+
* This will be called once the `linkAuthenticationElement` is ready.
|
|
273
|
+
* This is just a wrapper for `linkAuthenticationElement.once('ready')`.
|
|
274
|
+
*/
|
|
275
|
+
onAuthenticationElementReady?: () => void;
|
|
271
276
|
};
|
|
272
277
|
|
|
273
278
|
googlePay?: {
|
|
@@ -1013,7 +1018,7 @@ declare const RequiredFormFields = z.object({
|
|
|
1013
1018
|
|
|
1014
1019
|
declare type RequiredFormFields = z.infer<typeof RequiredFormFields>;
|
|
1015
1020
|
|
|
1016
|
-
declare type StripeLinkController = {
|
|
1021
|
+
export declare type StripeLinkController = {
|
|
1017
1022
|
mountButton: (selector?: string) => void;
|
|
1018
1023
|
dismountButton: () => void;
|
|
1019
1024
|
waitForButtonToMount: () => Promise<HTMLElement>;
|
package/dist/index.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import "penpal";
|
|
2
|
-
import {
|
|
2
|
+
import { C as n, j as r, k as o, l, E as d, F as i, m as E, P as p, n as C, o as F, u, q as y } from "./index-BRlq-xUA.js";
|
|
3
3
|
import "uuid";
|
|
4
4
|
import "chalk";
|
|
5
5
|
export {
|
|
6
6
|
n as CardCvcElement,
|
|
7
7
|
r as CardElement,
|
|
8
8
|
o as CardExpiryElement,
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
l as CardNumberElement,
|
|
10
|
+
d as ElementsForm,
|
|
11
|
+
i as FieldName,
|
|
12
12
|
E as LoopEnvironment,
|
|
13
13
|
p as PayInFailed,
|
|
14
14
|
C as PayInState,
|
|
@@ -16,4 +16,4 @@ export {
|
|
|
16
16
|
u as useOpenPayElements,
|
|
17
17
|
y as validateNonCdeFormFields
|
|
18
18
|
};
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiaW5kZXguanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCAncGVucGFsJztcbmV4cG9ydCB7IEMgYXMgQ2FyZEN2Y0VsZW1lbnQsIGogYXMgQ2FyZEVsZW1lbnQsIGsgYXMgQ2FyZEV4cGlyeUVsZW1lbnQsIGwgYXMgQ2FyZE51bWJlckVsZW1lbnQsIEUgYXMgRWxlbWVudHNGb3JtLCBGIGFzIEZpZWxkTmFtZSwgbSBhcyBMb29wRW52aXJvbm1lbnQsIFAgYXMgUGF5SW5GYWlsZWQsIG4gYXMgUGF5SW5TdGF0ZSwgbyBhcyBTdWJtaXRNZXRob2RzLCB1IGFzIHVzZU9wZW5QYXlFbGVtZW50cywgcSBhcyB2YWxpZGF0ZU5vbkNkZUZvcm1GaWVsZHMgfSBmcm9tICcuL2luZGV4LSF+ezAwN31+LmpzJztcbmltcG9ydCAndXVpZCc7XG5pbXBvcnQgJ2NoYWxrJzsiXSwKICAibWFwcGluZ3MiOiAiQUFBQSxPQUFPO0FBQ1AsU0FBYyxLQUFMQSxHQUEwQixLQUFMQyxHQUF1QixLQUFMQyxHQUE2QixHQUF3QixLQUFMQyxHQUF3QixLQUFMQyxHQUFxQixLQUFMQyxHQUEyQixLQUFMQyxHQUF1QixLQUFMQyxHQUFzQixLQUFMQyxHQUF5QixHQUF5QixLQUFMQyxTQUFxQztBQUM5USxPQUFPO0FBQ1AsT0FBTzsiLAogICJuYW1lcyI6IFsiQyIsICJqIiwgImsiLCAiRSIsICJGIiwgIm0iLCAiUCIsICJuIiwgIm8iLCAicSJdCn0K
|