@getopenpay/openpay-js 0.5.13 → 0.5.15

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.
Files changed (47) hide show
  1. package/dist/{ExportResult-B-YLKMaU.js → ExportResult-BacsqwKA.js} +1 -1
  2. package/dist/{Resource-BZeevyoh.js → Resource-Ds5bbQ3b.js} +4 -4
  3. package/dist/SimpleSpanProcessor-0bSccE1S.js +910 -0
  4. package/dist/_commonjsHelpers-CdLE1o9f.js +30 -0
  5. package/dist/detect-resources-UwRkF4Xd.js +862 -0
  6. package/dist/{diag-api-CHLb_Weo.js → diag-api-CMlZXyyv.js} +2 -2
  7. package/dist/index-1jECpTsg.js +147 -0
  8. package/dist/index-BZEpD-f0.js +6718 -0
  9. package/dist/index-BhZy-TW3.js +430 -0
  10. package/dist/index-BmKZeOoc.js +1619 -0
  11. package/dist/index-CDdbDQxQ.js +6 -0
  12. package/dist/index-CWTkU3J-.js +18 -0
  13. package/dist/index-DFO-DCsT.js +127 -0
  14. package/dist/index-DsxDp11a.js +28 -0
  15. package/dist/index-JNJd_YS1.js +1012 -0
  16. package/dist/index-j7i6AeZa.js +7005 -0
  17. package/dist/index.d.ts +29 -4
  18. package/dist/index.es.js +2 -2
  19. package/dist/index.umd.js +45 -45
  20. package/dist/lifecycle-D1BdEbZs.js +119 -0
  21. package/dist/{metrics-api-ClKmMX3Y.js → metrics-api-C9pRFfr-.js} +2 -2
  22. package/dist/sdk-info-ChuKu8zW.js +285 -0
  23. package/dist/suppress-tracing-B94rObkn.js +17 -0
  24. package/dist/url-CdPstDG9.js +798 -0
  25. package/dist/utils--M6ihaNw.js +101 -0
  26. package/dist/utils-De78ey-v.js +12 -0
  27. package/dist/utils-VJ-0MC7c.js +270 -0
  28. package/package.json +4 -4
  29. package/dist/SimpleSpanProcessor-CwJD-GjM.js +0 -957
  30. package/dist/_commonjsHelpers-f76XedMs.js +0 -25
  31. package/dist/detect-resources-BatabDmW.js +0 -854
  32. package/dist/index-ByaN1AdQ.js +0 -6685
  33. package/dist/index-CU4AI3HW.js +0 -52
  34. package/dist/index-Cb34s3AM.js +0 -1599
  35. package/dist/index-CmtkHZgE.js +0 -330
  36. package/dist/index-CtZ-xuHu.js +0 -7041
  37. package/dist/index-D5OCmVN-.js +0 -19
  38. package/dist/index-DLJd6nUV.js +0 -150
  39. package/dist/index-DjekHBls.js +0 -431
  40. package/dist/index-DoKHV9rR.js +0 -130
  41. package/dist/index-_ZTp3kCj.js +0 -830
  42. package/dist/lifecycle-BjQ-7GLm.js +0 -119
  43. package/dist/sdk-info-DYuuxEVK.js +0 -484
  44. package/dist/url-BAeEv8aD.js +0 -797
  45. package/dist/utils--qqdHZ_b.js +0 -142
  46. package/dist/utils-Bf8wDuNo.js +0 -381
  47. package/dist/utils-CX5YT7yI.js +0 -14
@@ -1,19 +0,0 @@
1
- import { A as r, b as e, B as o, a as p, C as n, F as S, I as c, N as l, P as m, R as t, d, S as i, e as P, c as B, T as I } from "./SimpleSpanProcessor-CwJD-GjM.js";
2
- export {
3
- r as AlwaysOffSampler,
4
- e as AlwaysOnSampler,
5
- o as BasicTracerProvider,
6
- p as BatchSpanProcessor,
7
- n as ConsoleSpanExporter,
8
- S as ForceFlushState,
9
- c as InMemorySpanExporter,
10
- l as NoopSpanProcessor,
11
- m as ParentBasedSampler,
12
- t as RandomIdGenerator,
13
- d as SamplingDecision,
14
- i as SimpleSpanProcessor,
15
- P as Span,
16
- B as TraceIdRatioBasedSampler,
17
- I as Tracer
18
- };
19
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiaW5kZXgtIX57MDAxfX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImV4cG9ydCB7IEEgYXMgQWx3YXlzT2ZmU2FtcGxlciwgYiBhcyBBbHdheXNPblNhbXBsZXIsIEIgYXMgQmFzaWNUcmFjZXJQcm92aWRlciwgYSBhcyBCYXRjaFNwYW5Qcm9jZXNzb3IsIEMgYXMgQ29uc29sZVNwYW5FeHBvcnRlciwgRiBhcyBGb3JjZUZsdXNoU3RhdGUsIEkgYXMgSW5NZW1vcnlTcGFuRXhwb3J0ZXIsIE4gYXMgTm9vcFNwYW5Qcm9jZXNzb3IsIFAgYXMgUGFyZW50QmFzZWRTYW1wbGVyLCBSIGFzIFJhbmRvbUlkR2VuZXJhdG9yLCBkIGFzIFNhbXBsaW5nRGVjaXNpb24sIFMgYXMgU2ltcGxlU3BhblByb2Nlc3NvciwgZSBhcyBTcGFuLCBjIGFzIFRyYWNlSWRSYXRpb0Jhc2VkU2FtcGxlciwgVCBhcyBUcmFjZXIgfSBmcm9tICcuL1NpbXBsZVNwYW5Qcm9jZXNzb3ItIX57MDAyfX4uanMnOyJdLAogICJtYXBwaW5ncyI6ICJBQUFBLFNBQWMsS0FBTEEsR0FBNEIsS0FBTEMsR0FBMkIsS0FBTEMsR0FBK0IsS0FBTEMsR0FBOEIsS0FBTEMsR0FBK0IsS0FBTEMsR0FBMkIsS0FBTEMsR0FBZ0MsS0FBTEMsR0FBNkIsS0FBTEMsR0FBOEIsS0FBTEMsR0FBNkIsR0FBdUIsS0FBTEMsR0FBK0IsS0FBTEMsR0FBZ0IsS0FBTEMsR0FBb0MsS0FBTEMsU0FBbUI7IiwKICAibmFtZXMiOiBbIkEiLCAiYiIsICJCIiwgImEiLCAiQyIsICJGIiwgIkkiLCAiTiIsICJQIiwgIlIiLCAiUyIsICJlIiwgImMiLCAiVCJdCn0K
@@ -1,150 +0,0 @@
1
- import { b as I, t as l, i as D, T as o, d as T, e as b } from "./index-CtZ-xuHu.js";
2
- var C = I("OpenTelemetry SDK Context Key SUPPRESS_TRACING");
3
- function A(r) {
4
- return r.getValue(C) === !0;
5
- }
6
- var p = I("OpenTelemetry Context Key B3 Debug Flag"), f = "b3", v = "x-b3-traceid", g = "x-b3-spanid", c = "x-b3-sampled", N = "x-b3-parentspanid", S = "x-b3-flags", V = /* @__PURE__ */ new Set([!0, "true", "True", "1", 1]), B = /* @__PURE__ */ new Set([!1, "false", "False", "0", 0]);
7
- function F(r) {
8
- return r === o.SAMPLED || r === o.NONE;
9
- }
10
- function R(r) {
11
- return Array.isArray(r) ? r[0] : r;
12
- }
13
- function d(r, t, e) {
14
- var n = t.get(r, e);
15
- return R(n);
16
- }
17
- function m(r, t) {
18
- var e = d(r, t, v);
19
- return typeof e == "string" ? e.padStart(32, "0") : "";
20
- }
21
- function x(r, t) {
22
- var e = d(r, t, g);
23
- return typeof e == "string" ? e : "";
24
- }
25
- function h(r, t) {
26
- var e = d(r, t, S);
27
- return e === "1" ? "1" : void 0;
28
- }
29
- function U(r, t) {
30
- var e = d(r, t, c), n = h(r, t);
31
- if (n === "1" || V.has(e))
32
- return o.SAMPLED;
33
- if (e === void 0 || B.has(e))
34
- return o.NONE;
35
- }
36
- var G = (
37
- /** @class */
38
- function() {
39
- function r() {
40
- }
41
- return r.prototype.inject = function(t, e, n) {
42
- var a = l.getSpanContext(t);
43
- if (!(!a || !D(a) || A(t))) {
44
- var i = t.getValue(p);
45
- n.set(e, v, a.traceId), n.set(e, g, a.spanId), i === "1" ? n.set(e, S, i) : a.traceFlags !== void 0 && n.set(e, c, (o.SAMPLED & a.traceFlags) === o.SAMPLED ? "1" : "0");
46
- }
47
- }, r.prototype.extract = function(t, e, n) {
48
- var a = m(e, n), i = x(e, n), u = U(e, n), s = h(e, n);
49
- return T(a) && b(i) && F(u) ? (t = t.setValue(p, s), l.setSpanContext(t, {
50
- traceId: a,
51
- spanId: i,
52
- isRemote: !0,
53
- traceFlags: u
54
- })) : t;
55
- }, r.prototype.fields = function() {
56
- return [
57
- v,
58
- g,
59
- S,
60
- c,
61
- N
62
- ];
63
- }, r;
64
- }()
65
- ), H = function(r, t) {
66
- var e = typeof Symbol == "function" && r[Symbol.iterator];
67
- if (!e) return r;
68
- var n = e.call(r), a, i = [], u;
69
- try {
70
- for (; (t === void 0 || t-- > 0) && !(a = n.next()).done; ) i.push(a.value);
71
- } catch (s) {
72
- u = { error: s };
73
- } finally {
74
- try {
75
- a && !a.done && (e = n.return) && e.call(n);
76
- } finally {
77
- if (u) throw u.error;
78
- }
79
- }
80
- return i;
81
- }, X = /((?:[0-9a-f]{16}){1,2})-([0-9a-f]{16})(?:-([01d](?![0-9a-f])))?(?:-([0-9a-f]{16}))?/, j = "0".repeat(16), w = /* @__PURE__ */ new Set(["d", "1"]), O = "d";
82
- function K(r) {
83
- return r.length === 32 ? r : "" + j + r;
84
- }
85
- function Y(r) {
86
- return r && w.has(r) ? o.SAMPLED : o.NONE;
87
- }
88
- var k = (
89
- /** @class */
90
- function() {
91
- function r() {
92
- }
93
- return r.prototype.inject = function(t, e, n) {
94
- var a = l.getSpanContext(t);
95
- if (!(!a || !D(a) || A(t))) {
96
- var i = t.getValue(p) || a.traceFlags & 1, u = a.traceId + "-" + a.spanId + "-" + i;
97
- n.set(e, f, u);
98
- }
99
- }, r.prototype.extract = function(t, e, n) {
100
- var a = n.get(e, f), i = Array.isArray(a) ? a[0] : a;
101
- if (typeof i != "string")
102
- return t;
103
- var u = i.match(X);
104
- if (!u)
105
- return t;
106
- var s = H(u, 4), L = s[1], P = s[2], _ = s[3], y = K(L);
107
- if (!T(y) || !b(P))
108
- return t;
109
- var M = Y(_);
110
- return _ === O && (t = t.setValue(p, _)), l.setSpanContext(t, {
111
- traceId: y,
112
- spanId: P,
113
- isRemote: !0,
114
- traceFlags: M
115
- });
116
- }, r.prototype.fields = function() {
117
- return [f];
118
- }, r;
119
- }()
120
- ), E;
121
- (function(r) {
122
- r[r.SINGLE_HEADER = 0] = "SINGLE_HEADER", r[r.MULTI_HEADER = 1] = "MULTI_HEADER";
123
- })(E || (E = {}));
124
- var z = (
125
- /** @class */
126
- function() {
127
- function r(t) {
128
- t === void 0 && (t = {}), this._b3MultiPropagator = new G(), this._b3SinglePropagator = new k(), t.injectEncoding === E.MULTI_HEADER ? (this._inject = this._b3MultiPropagator.inject, this._fields = this._b3MultiPropagator.fields()) : (this._inject = this._b3SinglePropagator.inject, this._fields = this._b3SinglePropagator.fields());
129
- }
130
- return r.prototype.inject = function(t, e, n) {
131
- A(t) || this._inject(t, e, n);
132
- }, r.prototype.extract = function(t, e, n) {
133
- var a = n.get(e, f), i = Array.isArray(a) ? a[0] : a;
134
- return i ? this._b3SinglePropagator.extract(t, e, n) : this._b3MultiPropagator.extract(t, e, n);
135
- }, r.prototype.fields = function() {
136
- return this._fields;
137
- }, r;
138
- }()
139
- );
140
- export {
141
- E as B3InjectEncoding,
142
- z as B3Propagator,
143
- f as B3_CONTEXT_HEADER,
144
- S as X_B3_FLAGS,
145
- N as X_B3_PARENT_SPAN_ID,
146
- c as X_B3_SAMPLED,
147
- g as X_B3_SPAN_ID,
148
- v as X_B3_TRACE_ID
149
- };
150
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiaW5kZXgtIX57MDBqfX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IGIgYXMgY3JlYXRlQ29udGV4dEtleSwgdCBhcyB0cmFjZSwgaSBhcyBpc1NwYW5Db250ZXh0VmFsaWQsIFQgYXMgVHJhY2VGbGFncywgZCBhcyBpc1ZhbGlkVHJhY2VJZCwgZSBhcyBpc1ZhbGlkU3BhbklkIH0gZnJvbSAnLi9pbmRleC0hfnswMDZ9fi5qcyc7XG5cbi8qXG4gKiBDb3B5cmlnaHQgVGhlIE9wZW5UZWxlbWV0cnkgQXV0aG9yc1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG52YXIgU1VQUFJFU1NfVFJBQ0lOR19LRVkgPSBjcmVhdGVDb250ZXh0S2V5KCdPcGVuVGVsZW1ldHJ5IFNESyBDb250ZXh0IEtleSBTVVBQUkVTU19UUkFDSU5HJyk7XG5mdW5jdGlvbiBpc1RyYWNpbmdTdXBwcmVzc2VkKGNvbnRleHQpIHtcbiAgICByZXR1cm4gY29udGV4dC5nZXRWYWx1ZShTVVBQUkVTU19UUkFDSU5HX0tFWSkgPT09IHRydWU7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgVGhlIE9wZW5UZWxlbWV0cnkgQXV0aG9yc1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiogc2hhcmVkIGNvbnRleHQgZm9yIHN0b3JpbmcgYW4gZXh0cmFjdGVkIGIzIGRlYnVnIGZsYWcgKi9cbnZhciBCM19ERUJVR19GTEFHX0tFWSA9IGNyZWF0ZUNvbnRleHRLZXkoJ09wZW5UZWxlbWV0cnkgQ29udGV4dCBLZXkgQjMgRGVidWcgRmxhZycpO1xuXG4vKlxuICogQ29weXJpZ2h0IFRoZSBPcGVuVGVsZW1ldHJ5IEF1dGhvcnNcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqIEIzIHNpbmdsZS1oZWFkZXIga2V5ICovXG52YXIgQjNfQ09OVEVYVF9IRUFERVIgPSAnYjMnO1xuLyogYjMgbXVsdGktaGVhZGVyIGtleXMgKi9cbnZhciBYX0IzX1RSQUNFX0lEID0gJ3gtYjMtdHJhY2VpZCc7XG52YXIgWF9CM19TUEFOX0lEID0gJ3gtYjMtc3BhbmlkJztcbnZhciBYX0IzX1NBTVBMRUQgPSAneC1iMy1zYW1wbGVkJztcbnZhciBYX0IzX1BBUkVOVF9TUEFOX0lEID0gJ3gtYjMtcGFyZW50c3BhbmlkJztcbnZhciBYX0IzX0ZMQUdTID0gJ3gtYjMtZmxhZ3MnO1xuXG4vKlxuICogQ29weXJpZ2h0IFRoZSBPcGVuVGVsZW1ldHJ5IEF1dGhvcnNcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xudmFyIFZBTElEX1NBTVBMRURfVkFMVUVTID0gbmV3IFNldChbdHJ1ZSwgJ3RydWUnLCAnVHJ1ZScsICcxJywgMV0pO1xudmFyIFZBTElEX1VOU0FNUExFRF9WQUxVRVMgPSBuZXcgU2V0KFtmYWxzZSwgJ2ZhbHNlJywgJ0ZhbHNlJywgJzAnLCAwXSk7XG5mdW5jdGlvbiBpc1ZhbGlkU2FtcGxlZFZhbHVlKHNhbXBsZWQpIHtcbiAgICByZXR1cm4gc2FtcGxlZCA9PT0gVHJhY2VGbGFncy5TQU1QTEVEIHx8IHNhbXBsZWQgPT09IFRyYWNlRmxhZ3MuTk9ORTtcbn1cbmZ1bmN0aW9uIHBhcnNlSGVhZGVyKGhlYWRlcikge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KGhlYWRlcikgPyBoZWFkZXJbMF0gOiBoZWFkZXI7XG59XG5mdW5jdGlvbiBnZXRIZWFkZXJWYWx1ZShjYXJyaWVyLCBnZXR0ZXIsIGtleSkge1xuICAgIHZhciBoZWFkZXIgPSBnZXR0ZXIuZ2V0KGNhcnJpZXIsIGtleSk7XG4gICAgcmV0dXJuIHBhcnNlSGVhZGVyKGhlYWRlcik7XG59XG5mdW5jdGlvbiBnZXRUcmFjZUlkKGNhcnJpZXIsIGdldHRlcikge1xuICAgIHZhciB0cmFjZUlkID0gZ2V0SGVhZGVyVmFsdWUoY2FycmllciwgZ2V0dGVyLCBYX0IzX1RSQUNFX0lEKTtcbiAgICBpZiAodHlwZW9mIHRyYWNlSWQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiB0cmFjZUlkLnBhZFN0YXJ0KDMyLCAnMCcpO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG59XG5mdW5jdGlvbiBnZXRTcGFuSWQoY2FycmllciwgZ2V0dGVyKSB7XG4gICAgdmFyIHNwYW5JZCA9IGdldEhlYWRlclZhbHVlKGNhcnJpZXIsIGdldHRlciwgWF9CM19TUEFOX0lEKTtcbiAgICBpZiAodHlwZW9mIHNwYW5JZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHNwYW5JZDtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xufVxuZnVuY3Rpb24gZ2V0RGVidWcoY2FycmllciwgZ2V0dGVyKSB7XG4gICAgdmFyIGRlYnVnID0gZ2V0SGVhZGVyVmFsdWUoY2FycmllciwgZ2V0dGVyLCBYX0IzX0ZMQUdTKTtcbiAgICByZXR1cm4gZGVidWcgPT09ICcxJyA/ICcxJyA6IHVuZGVmaW5lZDtcbn1cbmZ1bmN0aW9uIGdldFRyYWNlRmxhZ3MoY2FycmllciwgZ2V0dGVyKSB7XG4gICAgdmFyIHRyYWNlRmxhZ3MgPSBnZXRIZWFkZXJWYWx1ZShjYXJyaWVyLCBnZXR0ZXIsIFhfQjNfU0FNUExFRCk7XG4gICAgdmFyIGRlYnVnID0gZ2V0RGVidWcoY2FycmllciwgZ2V0dGVyKTtcbiAgICBpZiAoZGVidWcgPT09ICcxJyB8fCBWQUxJRF9TQU1QTEVEX1ZBTFVFUy5oYXModHJhY2VGbGFncykpIHtcbiAgICAgICAgcmV0dXJuIFRyYWNlRmxhZ3MuU0FNUExFRDtcbiAgICB9XG4gICAgaWYgKHRyYWNlRmxhZ3MgPT09IHVuZGVmaW5lZCB8fCBWQUxJRF9VTlNBTVBMRURfVkFMVUVTLmhhcyh0cmFjZUZsYWdzKSkge1xuICAgICAgICByZXR1cm4gVHJhY2VGbGFncy5OT05FO1xuICAgIH1cbiAgICAvLyBUaGlzIGluZGljYXRlcyB0byBpc1ZhbGlkU2FtcGxlZFZhbHVlIHRoYXQgdGhpcyBpcyBub3QgdmFsaWRcbiAgICByZXR1cm47XG59XG4vKipcbiAqIFByb3BhZ2F0b3IgZm9yIHRoZSBCMyBtdWx0aXBsZS1oZWFkZXIgSFRUUCBmb3JtYXQuXG4gKiBCYXNlZCBvbjogaHR0cHM6Ly9naXRodWIuY29tL29wZW56aXBraW4vYjMtcHJvcGFnYXRpb25cbiAqL1xudmFyIEIzTXVsdGlQcm9wYWdhdG9yID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEIzTXVsdGlQcm9wYWdhdG9yKCkge1xuICAgIH1cbiAgICBCM011bHRpUHJvcGFnYXRvci5wcm90b3R5cGUuaW5qZWN0ID0gZnVuY3Rpb24gKGNvbnRleHQsIGNhcnJpZXIsIHNldHRlcikge1xuICAgICAgICB2YXIgc3BhbkNvbnRleHQgPSB0cmFjZS5nZXRTcGFuQ29udGV4dChjb250ZXh0KTtcbiAgICAgICAgaWYgKCFzcGFuQ29udGV4dCB8fFxuICAgICAgICAgICAgIWlzU3BhbkNvbnRleHRWYWxpZChzcGFuQ29udGV4dCkgfHxcbiAgICAgICAgICAgIGlzVHJhY2luZ1N1cHByZXNzZWQoY29udGV4dCkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHZhciBkZWJ1ZyA9IGNvbnRleHQuZ2V0VmFsdWUoQjNfREVCVUdfRkxBR19LRVkpO1xuICAgICAgICBzZXR0ZXIuc2V0KGNhcnJpZXIsIFhfQjNfVFJBQ0VfSUQsIHNwYW5Db250ZXh0LnRyYWNlSWQpO1xuICAgICAgICBzZXR0ZXIuc2V0KGNhcnJpZXIsIFhfQjNfU1BBTl9JRCwgc3BhbkNvbnRleHQuc3BhbklkKTtcbiAgICAgICAgLy8gQWNjb3JkaW5nIHRvIHRoZSBCMyBzcGVjLCBpZiB0aGUgZGVidWcgZmxhZyBpcyBzZXQsXG4gICAgICAgIC8vIHRoZSBzYW1wbGVkIGZsYWcgc2hvdWxkbid0IGJlIHByb3BhZ2F0ZWQgYXMgd2VsbC5cbiAgICAgICAgaWYgKGRlYnVnID09PSAnMScpIHtcbiAgICAgICAgICAgIHNldHRlci5zZXQoY2FycmllciwgWF9CM19GTEFHUywgZGVidWcpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHNwYW5Db250ZXh0LnRyYWNlRmxhZ3MgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgLy8gV2Ugc2V0IHRoZSBoZWFkZXIgb25seSBpZiB0aGVyZSBpcyBhbiBleGlzdGluZyBzYW1wbGluZyBkZWNpc2lvbi5cbiAgICAgICAgICAgIC8vIE90aGVyd2lzZSB3ZSB3aWxsIG9taXQgaXQgPT4gQWJzZW50LlxuICAgICAgICAgICAgc2V0dGVyLnNldChjYXJyaWVyLCBYX0IzX1NBTVBMRUQsIChUcmFjZUZsYWdzLlNBTVBMRUQgJiBzcGFuQ29udGV4dC50cmFjZUZsYWdzKSA9PT0gVHJhY2VGbGFncy5TQU1QTEVEXG4gICAgICAgICAgICAgICAgPyAnMSdcbiAgICAgICAgICAgICAgICA6ICcwJyk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIEIzTXVsdGlQcm9wYWdhdG9yLnByb3RvdHlwZS5leHRyYWN0ID0gZnVuY3Rpb24gKGNvbnRleHQsIGNhcnJpZXIsIGdldHRlcikge1xuICAgICAgICB2YXIgdHJhY2VJZCA9IGdldFRyYWNlSWQoY2FycmllciwgZ2V0dGVyKTtcbiAgICAgICAgdmFyIHNwYW5JZCA9IGdldFNwYW5JZChjYXJyaWVyLCBnZXR0ZXIpO1xuICAgICAgICB2YXIgdHJhY2VGbGFncyA9IGdldFRyYWNlRmxhZ3MoY2FycmllciwgZ2V0dGVyKTtcbiAgICAgICAgdmFyIGRlYnVnID0gZ2V0RGVidWcoY2FycmllciwgZ2V0dGVyKTtcbiAgICAgICAgaWYgKGlzVmFsaWRUcmFjZUlkKHRyYWNlSWQpICYmXG4gICAgICAgICAgICBpc1ZhbGlkU3BhbklkKHNwYW5JZCkgJiZcbiAgICAgICAgICAgIGlzVmFsaWRTYW1wbGVkVmFsdWUodHJhY2VGbGFncykpIHtcbiAgICAgICAgICAgIGNvbnRleHQgPSBjb250ZXh0LnNldFZhbHVlKEIzX0RFQlVHX0ZMQUdfS0VZLCBkZWJ1Zyk7XG4gICAgICAgICAgICByZXR1cm4gdHJhY2Uuc2V0U3BhbkNvbnRleHQoY29udGV4dCwge1xuICAgICAgICAgICAgICAgIHRyYWNlSWQ6IHRyYWNlSWQsXG4gICAgICAgICAgICAgICAgc3BhbklkOiBzcGFuSWQsXG4gICAgICAgICAgICAgICAgaXNSZW1vdGU6IHRydWUsXG4gICAgICAgICAgICAgICAgdHJhY2VGbGFnczogdHJhY2VGbGFncyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb250ZXh0O1xuICAgIH07XG4gICAgQjNNdWx0aVByb3BhZ2F0b3IucHJvdG90eXBlLmZpZWxkcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIFhfQjNfVFJBQ0VfSUQsXG4gICAgICAgICAgICBYX0IzX1NQQU5fSUQsXG4gICAgICAgICAgICBYX0IzX0ZMQUdTLFxuICAgICAgICAgICAgWF9CM19TQU1QTEVELFxuICAgICAgICAgICAgWF9CM19QQVJFTlRfU1BBTl9JRCxcbiAgICAgICAgXTtcbiAgICB9O1xuICAgIHJldHVybiBCM011bHRpUHJvcGFnYXRvcjtcbn0oKSk7XG5cbi8qXG4gKiBDb3B5cmlnaHQgVGhlIE9wZW5UZWxlbWV0cnkgQXV0aG9yc1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG52YXIgX19yZWFkID0gKHVuZGVmaW5lZCAmJiB1bmRlZmluZWQuX19yZWFkKSB8fCBmdW5jdGlvbiAobywgbikge1xuICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9bU3ltYm9sLml0ZXJhdG9yXTtcbiAgICBpZiAoIW0pIHJldHVybiBvO1xuICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xuICAgIHRyeSB7XG4gICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyb3IpIHsgZSA9IHsgZXJyb3I6IGVycm9yIH07IH1cbiAgICBmaW5hbGx5IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpW1wicmV0dXJuXCJdKSkgbS5jYWxsKGkpO1xuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxuICAgIH1cbiAgICByZXR1cm4gYXI7XG59O1xudmFyIEIzX0NPTlRFWFRfUkVHRVggPSAvKCg/OlswLTlhLWZdezE2fSl7MSwyfSktKFswLTlhLWZdezE2fSkoPzotKFswMWRdKD8hWzAtOWEtZl0pKSk/KD86LShbMC05YS1mXXsxNn0pKT8vO1xudmFyIFBBRERJTkcgPSAnMCcucmVwZWF0KDE2KTtcbnZhciBTQU1QTEVEX1ZBTFVFUyA9IG5ldyBTZXQoWydkJywgJzEnXSk7XG52YXIgREVCVUdfU1RBVEUgPSAnZCc7XG5mdW5jdGlvbiBjb252ZXJ0VG9UcmFjZUlkMTI4KHRyYWNlSWQpIHtcbiAgICByZXR1cm4gdHJhY2VJZC5sZW5ndGggPT09IDMyID8gdHJhY2VJZCA6IFwiXCIgKyBQQURESU5HICsgdHJhY2VJZDtcbn1cbmZ1bmN0aW9uIGNvbnZlcnRUb1RyYWNlRmxhZ3Moc2FtcGxpbmdTdGF0ZSkge1xuICAgIGlmIChzYW1wbGluZ1N0YXRlICYmIFNBTVBMRURfVkFMVUVTLmhhcyhzYW1wbGluZ1N0YXRlKSkge1xuICAgICAgICByZXR1cm4gVHJhY2VGbGFncy5TQU1QTEVEO1xuICAgIH1cbiAgICByZXR1cm4gVHJhY2VGbGFncy5OT05FO1xufVxuLyoqXG4gKiBQcm9wYWdhdG9yIGZvciB0aGUgQjMgc2luZ2xlLWhlYWRlciBIVFRQIGZvcm1hdC5cbiAqIEJhc2VkIG9uOiBodHRwczovL2dpdGh1Yi5jb20vb3BlbnppcGtpbi9iMy1wcm9wYWdhdGlvblxuICovXG52YXIgQjNTaW5nbGVQcm9wYWdhdG9yID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEIzU2luZ2xlUHJvcGFnYXRvcigpIHtcbiAgICB9XG4gICAgQjNTaW5nbGVQcm9wYWdhdG9yLnByb3RvdHlwZS5pbmplY3QgPSBmdW5jdGlvbiAoY29udGV4dCwgY2Fycmllciwgc2V0dGVyKSB7XG4gICAgICAgIHZhciBzcGFuQ29udGV4dCA9IHRyYWNlLmdldFNwYW5Db250ZXh0KGNvbnRleHQpO1xuICAgICAgICBpZiAoIXNwYW5Db250ZXh0IHx8XG4gICAgICAgICAgICAhaXNTcGFuQ29udGV4dFZhbGlkKHNwYW5Db250ZXh0KSB8fFxuICAgICAgICAgICAgaXNUcmFjaW5nU3VwcHJlc3NlZChjb250ZXh0KSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdmFyIHNhbXBsaW5nU3RhdGUgPSBjb250ZXh0LmdldFZhbHVlKEIzX0RFQlVHX0ZMQUdfS0VZKSB8fCBzcGFuQ29udGV4dC50cmFjZUZsYWdzICYgMHgxO1xuICAgICAgICB2YXIgdmFsdWUgPSBzcGFuQ29udGV4dC50cmFjZUlkICsgXCItXCIgKyBzcGFuQ29udGV4dC5zcGFuSWQgKyBcIi1cIiArIHNhbXBsaW5nU3RhdGU7XG4gICAgICAgIHNldHRlci5zZXQoY2FycmllciwgQjNfQ09OVEVYVF9IRUFERVIsIHZhbHVlKTtcbiAgICB9O1xuICAgIEIzU2luZ2xlUHJvcGFnYXRvci5wcm90b3R5cGUuZXh0cmFjdCA9IGZ1bmN0aW9uIChjb250ZXh0LCBjYXJyaWVyLCBnZXR0ZXIpIHtcbiAgICAgICAgdmFyIGhlYWRlciA9IGdldHRlci5nZXQoY2FycmllciwgQjNfQ09OVEVYVF9IRUFERVIpO1xuICAgICAgICB2YXIgYjNDb250ZXh0ID0gQXJyYXkuaXNBcnJheShoZWFkZXIpID8gaGVhZGVyWzBdIDogaGVhZGVyO1xuICAgICAgICBpZiAodHlwZW9mIGIzQ29udGV4dCAhPT0gJ3N0cmluZycpXG4gICAgICAgICAgICByZXR1cm4gY29udGV4dDtcbiAgICAgICAgdmFyIG1hdGNoID0gYjNDb250ZXh0Lm1hdGNoKEIzX0NPTlRFWFRfUkVHRVgpO1xuICAgICAgICBpZiAoIW1hdGNoKVxuICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQ7XG4gICAgICAgIHZhciBfYSA9IF9fcmVhZChtYXRjaCwgNCksIGV4dHJhY3RlZFRyYWNlSWQgPSBfYVsxXSwgc3BhbklkID0gX2FbMl0sIHNhbXBsaW5nU3RhdGUgPSBfYVszXTtcbiAgICAgICAgdmFyIHRyYWNlSWQgPSBjb252ZXJ0VG9UcmFjZUlkMTI4KGV4dHJhY3RlZFRyYWNlSWQpO1xuICAgICAgICBpZiAoIWlzVmFsaWRUcmFjZUlkKHRyYWNlSWQpIHx8ICFpc1ZhbGlkU3BhbklkKHNwYW5JZCkpXG4gICAgICAgICAgICByZXR1cm4gY29udGV4dDtcbiAgICAgICAgdmFyIHRyYWNlRmxhZ3MgPSBjb252ZXJ0VG9UcmFjZUZsYWdzKHNhbXBsaW5nU3RhdGUpO1xuICAgICAgICBpZiAoc2FtcGxpbmdTdGF0ZSA9PT0gREVCVUdfU1RBVEUpIHtcbiAgICAgICAgICAgIGNvbnRleHQgPSBjb250ZXh0LnNldFZhbHVlKEIzX0RFQlVHX0ZMQUdfS0VZLCBzYW1wbGluZ1N0YXRlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJhY2Uuc2V0U3BhbkNvbnRleHQoY29udGV4dCwge1xuICAgICAgICAgICAgdHJhY2VJZDogdHJhY2VJZCxcbiAgICAgICAgICAgIHNwYW5JZDogc3BhbklkLFxuICAgICAgICAgICAgaXNSZW1vdGU6IHRydWUsXG4gICAgICAgICAgICB0cmFjZUZsYWdzOiB0cmFjZUZsYWdzLFxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIEIzU2luZ2xlUHJvcGFnYXRvci5wcm90b3R5cGUuZmllbGRzID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gW0IzX0NPTlRFWFRfSEVBREVSXTtcbiAgICB9O1xuICAgIHJldHVybiBCM1NpbmdsZVByb3BhZ2F0b3I7XG59KCkpO1xuXG4vKlxuICogQ29weXJpZ2h0IFRoZSBPcGVuVGVsZW1ldHJ5IEF1dGhvcnNcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqIEVudW1lcmF0aW9uIG9mIEIzIGluamVjdCBlbmNvZGluZ3MgKi9cbnZhciBCM0luamVjdEVuY29kaW5nO1xuKGZ1bmN0aW9uIChCM0luamVjdEVuY29kaW5nKSB7XG4gICAgQjNJbmplY3RFbmNvZGluZ1tCM0luamVjdEVuY29kaW5nW1wiU0lOR0xFX0hFQURFUlwiXSA9IDBdID0gXCJTSU5HTEVfSEVBREVSXCI7XG4gICAgQjNJbmplY3RFbmNvZGluZ1tCM0luamVjdEVuY29kaW5nW1wiTVVMVElfSEVBREVSXCJdID0gMV0gPSBcIk1VTFRJX0hFQURFUlwiO1xufSkoQjNJbmplY3RFbmNvZGluZyB8fCAoQjNJbmplY3RFbmNvZGluZyA9IHt9KSk7XG5cbi8qXG4gKiBDb3B5cmlnaHQgVGhlIE9wZW5UZWxlbWV0cnkgQXV0aG9yc1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKipcbiAqIFByb3BhZ2F0b3IgdGhhdCBleHRyYWN0cyBCMyBjb250ZXh0IGluIGJvdGggc2luZ2xlIGFuZCBtdWx0aS1oZWFkZXIgdmFyaWFudHMsXG4gKiB3aXRoIGNvbmZpZ3VyYWJsZSBpbmplY3Rpb24gZm9ybWF0IGRlZmF1bHRpbmcgdG8gQjMgc2luZ2xlLWhlYWRlci4gRHVlIHRvXG4gKiB0aGUgYXN5bW1ldHJ5IGluIGluamVjdGlvbiBhbmQgZXh0cmFjdGlvbiBmb3JtYXRzIHRoaXMgaXMgbm90IHN1aXRhYmxlIHRvXG4gKiBiZSBpbXBsZW1lbnRlZCBhcyBhIGNvbXBvc2l0ZSBwcm9wYWdhdG9yLlxuICogQmFzZWQgb246IGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuemlwa2luL2IzLXByb3BhZ2F0aW9uXG4gKi9cbnZhciBCM1Byb3BhZ2F0b3IgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gQjNQcm9wYWdhdG9yKGNvbmZpZykge1xuICAgICAgICBpZiAoY29uZmlnID09PSB2b2lkIDApIHsgY29uZmlnID0ge307IH1cbiAgICAgICAgdGhpcy5fYjNNdWx0aVByb3BhZ2F0b3IgPSBuZXcgQjNNdWx0aVByb3BhZ2F0b3IoKTtcbiAgICAgICAgdGhpcy5fYjNTaW5nbGVQcm9wYWdhdG9yID0gbmV3IEIzU2luZ2xlUHJvcGFnYXRvcigpO1xuICAgICAgICBpZiAoY29uZmlnLmluamVjdEVuY29kaW5nID09PSBCM0luamVjdEVuY29kaW5nLk1VTFRJX0hFQURFUikge1xuICAgICAgICAgICAgdGhpcy5faW5qZWN0ID0gdGhpcy5fYjNNdWx0aVByb3BhZ2F0b3IuaW5qZWN0O1xuICAgICAgICAgICAgdGhpcy5fZmllbGRzID0gdGhpcy5fYjNNdWx0aVByb3BhZ2F0b3IuZmllbGRzKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9pbmplY3QgPSB0aGlzLl9iM1NpbmdsZVByb3BhZ2F0b3IuaW5qZWN0O1xuICAgICAgICAgICAgdGhpcy5fZmllbGRzID0gdGhpcy5fYjNTaW5nbGVQcm9wYWdhdG9yLmZpZWxkcygpO1xuICAgICAgICB9XG4gICAgfVxuICAgIEIzUHJvcGFnYXRvci5wcm90b3R5cGUuaW5qZWN0ID0gZnVuY3Rpb24gKGNvbnRleHQsIGNhcnJpZXIsIHNldHRlcikge1xuICAgICAgICBpZiAoaXNUcmFjaW5nU3VwcHJlc3NlZChjb250ZXh0KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2luamVjdChjb250ZXh0LCBjYXJyaWVyLCBzZXR0ZXIpO1xuICAgIH07XG4gICAgQjNQcm9wYWdhdG9yLnByb3RvdHlwZS5leHRyYWN0ID0gZnVuY3Rpb24gKGNvbnRleHQsIGNhcnJpZXIsIGdldHRlcikge1xuICAgICAgICB2YXIgaGVhZGVyID0gZ2V0dGVyLmdldChjYXJyaWVyLCBCM19DT05URVhUX0hFQURFUik7XG4gICAgICAgIHZhciBiM0NvbnRleHQgPSBBcnJheS5pc0FycmF5KGhlYWRlcikgPyBoZWFkZXJbMF0gOiBoZWFkZXI7XG4gICAgICAgIGlmIChiM0NvbnRleHQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9iM1NpbmdsZVByb3BhZ2F0b3IuZXh0cmFjdChjb250ZXh0LCBjYXJyaWVyLCBnZXR0ZXIpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2IzTXVsdGlQcm9wYWdhdG9yLmV4dHJhY3QoY29udGV4dCwgY2FycmllciwgZ2V0dGVyKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgQjNQcm9wYWdhdG9yLnByb3RvdHlwZS5maWVsZHMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maWVsZHM7XG4gICAgfTtcbiAgICByZXR1cm4gQjNQcm9wYWdhdG9yO1xufSgpKTtcblxuZXhwb3J0IHsgQjNJbmplY3RFbmNvZGluZywgQjNQcm9wYWdhdG9yLCBCM19DT05URVhUX0hFQURFUiwgWF9CM19GTEFHUywgWF9CM19QQVJFTlRfU1BBTl9JRCwgWF9CM19TQU1QTEVELCBYX0IzX1NQQU5fSUQsIFhfQjNfVFJBQ0VfSUQgfTsiXSwKICAibWFwcGluZ3MiOiAiQUFBQSxTQUFTLEtBQUtBLEdBQWtCLEtBQUtDLEdBQU8sS0FBS0MsR0FBb0IsS0FBS0MsR0FBWSxLQUFLQyxHQUFnQixLQUFLQyxTQUFxQjtBQWlCckksSUFBSUMsSUFBdUJOLEVBQWlCLGdEQUFnRDtBQUM1RixTQUFTTyxFQUFvQkMsR0FBUztBQUNsQyxTQUFPQSxFQUFRLFNBQVNGLENBQW9CLE1B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SyxRQUFRQSxHQUFTZSxHQUFTWSxDQUFNO0FBQUEsSUFDekMsR0FDQXlCLEVBQWEsVUFBVSxVQUFVLFNBQVVwRCxHQUFTZSxHQUFTQyxHQUFRO0FBQ2pFLFVBQUlILElBQVNHLEVBQU8sSUFBSUQsR0FBU2IsQ0FBaUIsR0FDOUM2QyxJQUFZLE1BQU0sUUFBUWxDLENBQU0sSUFBSUEsRUFBTyxDQUFDLElBQUlBO0FBQ3BELGFBQUlrQyxJQUNPLEtBQUssb0JBQW9CLFFBQVEvQyxHQUFTZSxHQUFTQyxDQUFNLElBR3pELEtBQUssbUJBQW1CLFFBQVFoQixHQUFTZSxHQUFTQyxDQUFNO0FBQUEsSUFFdkUsR0FDQW9DLEVBQWEsVUFBVSxTQUFTLFdBQVk7QUFDeEMsYUFBTyxLQUFLO0FBQUEsSUFDaEIsR0FDT0E7QUFBQSxFQUNYLEVBQUU7QUFBQTsiLAogICJuYW1lcyI6IFsiY3JlYXRlQ29udGV4dEtleSIsICJ0cmFjZSIsICJpc1NwYW5Db250ZXh0VmFsaWQiLCAiVHJhY2VGbGFncyIsICJpc1ZhbGlkVHJhY2VJZCIsICJpc1ZhbGlkU3BhbklkIiwgIlNVUFBSRVNTX1RSQUNJTkdfS0VZIiwgImlzVHJhY2luZ1N1cHByZXNzZWQiLCAiY29udGV4dCIsICJCM19ERUJVR19GTEFHX0tFWSIsICJCM19DT05URVhUX0hFQURFUiIsICJYX0IzX1RSQUNFX0lEIiwgIlhfQjNfU1BBTl9JRCIsICJYX0IzX1NBTVBMRUQiLCAiWF9CM19QQVJFTlRfU1BBTl9JRCIsICJYX0IzX0ZMQUdTIiwgIlZBTElEX1NBTVBMRURfVkFMVUVTIiwgIlZBTElEX1VOU0FNUExFRF9WQUxVRVMiLCAiaXNWYWxpZFNhbXBsZWRWYWx1ZSIsICJzYW1wbGVkIiwgInBhcnNlSGVhZGVyIiwgImhlYWRlciIsICJnZXRIZWFkZXJWYWx1ZSIsICJjYXJyaWVyIiwgImdldHRlciIsICJrZXkiLCAiZ2V0VHJhY2VJZCIsICJ0cmFjZUlkIiwgImdldFNwYW5JZCIsICJzcGFuSWQiLCAiZ2V0RGVidWciLCAiZGVidWciLCAiZ2V0VHJhY2VGbGFncyIsICJ0cmFjZUZsYWdzIiwgIkIzTXVsdGlQcm9wYWdhdG9yIiwgInNldHRlciIsICJzcGFuQ29udGV4dCIsICJfX3JlYWQiLCAibyIsICJuIiwgIm0iLCAiaSIsICJyIiwgImFyIiwgImUiLCAiZXJyb3IiLCAiQjNfQ09OVEVYVF9SRUdFWCIsICJQQURESU5HIiwgIlNBTVBMRURfVkFMVUVTIiwgIkRFQlVHX1NUQVRFIiwgImNvbnZlcnRUb1RyYWNlSWQxMjgiLCAiY29udmVydFRvVHJhY2VGbGFncyIsICJzYW1wbGluZ1N0YXRlIiwgIkIzU2luZ2xlUHJvcGFnYXRvciIsICJ2YWx1ZSIsICJiM0NvbnRleHQiLCAibWF0Y2giLCAiX2EiLCAiZXh0cmFjdGVkVHJhY2VJZCIsICJCM0luamVjdEVuY29kaW5nIiwgIkIzUHJvcGFnYXRvciIsICJjb25maWciXQp9Cg==