@dcl/sdk 7.0.6-3999809037.commit-0a47a3c → 7.0.6-4009020955.commit-08722f5
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/cli/commands/build/helpers.d.ts +25 -0
- package/cli/commands/build/helpers.js +50 -0
- package/cli/commands/build/helpers.ts +95 -0
- package/cli/commands/build/index.d.ts +19 -0
- package/cli/commands/build/index.js +64 -0
- package/cli/commands/build/index.ts +91 -0
- package/cli/commands/init/index.d.ts +3 -1
- package/cli/commands/init/index.js +9 -15
- package/cli/commands/init/index.ts +12 -16
- package/cli/commands/init/repos.js +1 -1
- package/cli/commands/init/repos.ts +1 -2
- package/cli/commands/preview/bff.d.ts +3 -0
- package/cli/commands/preview/bff.js +50 -0
- package/cli/commands/preview/bff.ts +59 -0
- package/cli/commands/preview/catalyst.d.ts +5 -0
- package/cli/commands/preview/catalyst.js +24 -0
- package/cli/commands/preview/catalyst.ts +31 -0
- package/cli/commands/preview/coordinates.d.ts +20 -0
- package/cli/commands/preview/coordinates.js +90 -0
- package/cli/commands/preview/coordinates.ts +146 -0
- package/cli/commands/preview/endpoints.d.ts +10 -0
- package/cli/commands/preview/endpoints.js +500 -0
- package/cli/commands/preview/endpoints.ts +594 -0
- package/cli/commands/preview/eth.d.ts +2 -0
- package/cli/commands/preview/eth.js +6 -0
- package/cli/commands/preview/eth.ts +3 -0
- package/cli/commands/preview/index.d.ts +18 -0
- package/cli/commands/preview/index.js +75 -0
- package/cli/commands/preview/index.ts +88 -0
- package/cli/commands/preview/port.d.ts +1 -0
- package/cli/commands/preview/port.js +21 -0
- package/cli/commands/preview/port.ts +15 -0
- package/cli/commands/preview/project.d.ts +14 -0
- package/cli/commands/preview/project.js +77 -0
- package/cli/commands/preview/project.ts +112 -0
- package/cli/commands/preview/types.d.ts +13 -0
- package/cli/commands/preview/types.js +3 -0
- package/cli/commands/preview/types.ts +19 -0
- package/cli/commands/preview/wire.d.ts +14 -0
- package/cli/commands/preview/wire.js +28 -0
- package/cli/commands/preview/wire.ts +48 -0
- package/cli/commands/preview/ws.d.ts +7 -0
- package/cli/commands/preview/ws.js +16 -0
- package/cli/commands/preview/ws.ts +24 -0
- package/cli/commands/start/index.d.ts +29 -0
- package/cli/commands/start/index.js +121 -0
- package/cli/commands/start/index.ts +132 -0
- package/cli/components/fetch.d.ts +5 -0
- package/cli/components/fetch.js +34 -0
- package/cli/components/fetch.ts +11 -0
- package/cli/components/fs.d.ts +11 -0
- package/cli/components/fs.js +58 -0
- package/cli/components/fs.ts +48 -0
- package/cli/components/index.d.ts +7 -0
- package/cli/components/index.js +13 -0
- package/cli/components/index.ts +14 -0
- package/cli/index.d.ts +2 -0
- package/cli/index.js +8 -8
- package/cli/index.ts +15 -12
- package/cli/utils/args.js +2 -2
- package/cli/utils/args.ts +2 -8
- package/cli/utils/commands.d.ts +2 -1
- package/cli/utils/commands.js +8 -8
- package/cli/utils/commands.ts +11 -11
- package/cli/utils/exec.d.ts +8 -0
- package/cli/utils/exec.js +33 -0
- package/cli/utils/exec.ts +38 -0
- package/cli/utils/fs.d.ts +9 -8
- package/cli/utils/fs.js +7 -47
- package/cli/utils/fs.ts +11 -67
- package/cli/utils/handler.d.ts +6 -0
- package/cli/utils/handler.js +19 -0
- package/cli/utils/handler.ts +23 -0
- package/cli/utils/object.d.ts +9 -0
- package/cli/utils/object.js +45 -0
- package/cli/utils/object.ts +62 -0
- package/cli/utils/out-messages.d.ts +1 -0
- package/cli/utils/out-messages.js +8 -0
- package/cli/utils/out-messages.ts +3 -0
- package/internal/Observable.js +3 -7
- package/internal/provider.js +1 -1
- package/internal/transports/rendererTransport.js +2 -3
- package/messageBus.js +1 -1
- package/observables.js +1 -1
- package/package.json +18 -7
- package/src/internal/Observable.ts +9 -44
- package/src/internal/provider.ts +3 -11
- package/src/internal/transports/rendererTransport.ts +4 -12
- package/src/messageBus.ts +1 -4
- package/src/observables.ts +27 -63
- package/tsconfig.cli.json +10 -1
- package/cli/utils/spinner.d.ts +0 -15
- package/cli/utils/spinner.js +0 -41
- package/cli/utils/spinner.ts +0 -44
@@ -0,0 +1,62 @@
|
|
1
|
+
export type Primitive = string | number
|
2
|
+
export type Dict = { [key: string]: Dict | Primitive | Primitive[] }
|
3
|
+
|
4
|
+
/*
|
5
|
+
* Returns true if value is a "Primitive"
|
6
|
+
*/
|
7
|
+
export const isPrimitive = (value: any): value is Primitive =>
|
8
|
+
(typeof value === 'string' && value.length > 0) || (typeof value === 'number' && !Number.isNaN(value))
|
9
|
+
|
10
|
+
/*
|
11
|
+
* Returns true if both parameters are equal
|
12
|
+
*/
|
13
|
+
export const eqPrimitive = (value: Primitive, value2: Primitive): boolean => value === value2
|
14
|
+
|
15
|
+
/*
|
16
|
+
* Returns true if value is a JS Object
|
17
|
+
*/
|
18
|
+
export const isObject = (value: any): value is Dict =>
|
19
|
+
typeof value === 'object' && !Array.isArray(value) && value !== null
|
20
|
+
|
21
|
+
/*
|
22
|
+
* Returns true if second paramter is a "Primitive" and equal to first parameter
|
23
|
+
*/
|
24
|
+
export const isPrimitiveEqualTo = (val: Primitive, val2: any): val2 is Primitive =>
|
25
|
+
isPrimitive(val2) && eqPrimitive(val, val2)
|
26
|
+
|
27
|
+
/*
|
28
|
+
* Returns true if "original" has all of the props described in "comparator"
|
29
|
+
* NOTE: comparator can provide a list of valid "Primitives" to match values from "original"
|
30
|
+
* EX:
|
31
|
+
* original = { prop1: "some-val" }
|
32
|
+
* comparator = { prop1: [1, 2, "some-val"] }
|
33
|
+
* will return true
|
34
|
+
*/
|
35
|
+
export const hasPrimitiveKeys = <T extends Dict>(original: Record<string, unknown>, comparator: T): boolean => {
|
36
|
+
for (const [key, value] of Object.entries(comparator)) {
|
37
|
+
const originalValue = original[key]
|
38
|
+
if (originalValue === undefined) {
|
39
|
+
return false
|
40
|
+
} else if (isPrimitive(value) && !isPrimitiveEqualTo(value, originalValue)) {
|
41
|
+
return false
|
42
|
+
} else if (Array.isArray(value)) {
|
43
|
+
if (Array.isArray(originalValue)) {
|
44
|
+
const set = new Set(value)
|
45
|
+
for (const v of originalValue) {
|
46
|
+
if (!set.has(v)) return false
|
47
|
+
}
|
48
|
+
} else {
|
49
|
+
const foundPrimitive = value.some((val) => isPrimitive(val) && isPrimitiveEqualTo(val, originalValue))
|
50
|
+
if (!foundPrimitive) {
|
51
|
+
return false
|
52
|
+
}
|
53
|
+
}
|
54
|
+
} else if (isObject(value)) {
|
55
|
+
if (isObject(originalValue) && !hasPrimitiveKeys(originalValue, value)) {
|
56
|
+
return false
|
57
|
+
}
|
58
|
+
}
|
59
|
+
}
|
60
|
+
|
61
|
+
return true
|
62
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
export declare function toStringList(strs: string[]): string;
|
@@ -0,0 +1,8 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.toStringList = void 0;
|
4
|
+
function toStringList(strs) {
|
5
|
+
return strs.map(($) => `\t* ${$}\n`).join('');
|
6
|
+
}
|
7
|
+
exports.toStringList = toStringList;
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0LW1lc3NhZ2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsib3V0LW1lc3NhZ2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQWdCLFlBQVksQ0FBQyxJQUFjO0lBQ3pDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtBQUMvQyxDQUFDO0FBRkQsb0NBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gdG9TdHJpbmdMaXN0KHN0cnM6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgcmV0dXJuIHN0cnMubWFwKCgkKSA9PiBgXFx0KiAkeyR9XFxuYCkuam9pbignJylcbn1cbiJdfQ==
|
package/internal/Observable.js
CHANGED
@@ -61,8 +61,7 @@ export class Observable {
|
|
61
61
|
}
|
62
62
|
removeCallback(callback, scope) {
|
63
63
|
for (let index = 0; index < this._observers.length; index++) {
|
64
|
-
if (this._observers[index].callback === callback &&
|
65
|
-
(!scope || scope === this._observers[index].scope)) {
|
64
|
+
if (this._observers[index].callback === callback && (!scope || scope === this._observers[index].scope)) {
|
66
65
|
this._deferUnregister(this._observers[index]);
|
67
66
|
return true;
|
68
67
|
}
|
@@ -85,10 +84,7 @@ export class Observable {
|
|
85
84
|
}
|
86
85
|
if (obs.mask & mask) {
|
87
86
|
if (obs.scope) {
|
88
|
-
state.lastReturnValue = obs.callback.apply(obs.scope, [
|
89
|
-
eventData,
|
90
|
-
state
|
91
|
-
]);
|
87
|
+
state.lastReturnValue = obs.callback.apply(obs.scope, [eventData, state]);
|
92
88
|
}
|
93
89
|
else {
|
94
90
|
state.lastReturnValue = obs.callback(eventData, state);
|
@@ -187,4 +183,4 @@ export class Observable {
|
|
187
183
|
return false;
|
188
184
|
}
|
189
185
|
}
|
190
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT2JzZXJ2YWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbnRlcm5hbC9PYnNlcnZhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sT0FBTyxrQkFBa0I7SUFrQzdCLFlBQ0UsSUFBWSxFQUNaLGlCQUFpQixHQUFHLEtBQUssRUFDekIsTUFBWSxFQUNaLGFBQW1CO1FBRW5CLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQTtJQUNoRSxDQUFDO0lBVU0sU0FBUyxDQUNkLElBQVksRUFDWixpQkFBaUIsR0FBRyxLQUFLLEVBQ3pCLE1BQVksRUFDWixhQUFtQjtRQUVuQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtRQUNoQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUE7UUFDMUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7UUFDcEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUE7UUFDbEMsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0NBQ0Y7QUFNRCxNQUFNLE9BQU8sUUFBUTtJQWVuQixZQUlTLFFBQWdFLEVBSWhFLElBQVksRUFJWixRQUFhLElBQUk7UUFSakIsYUFBUSxHQUFSLFFBQVEsQ0FBd0Q7UUFJaEUsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUlaLFVBQUssR0FBTCxLQUFLLENBQVk7UUF2Qm5CLHlCQUFvQixHQUFHLEtBQUssQ0FBQTtRQUc1Qix3QkFBbUIsR0FBRyxLQUFLLENBQUE7SUFxQi9CLENBQUM7Q0FDTDtBQVlELE1BQU0sT0FBTyxVQUFVO0lBV3JCLFlBQVksZUFBaUQ7UUFWckQsZUFBVSxHQUFHLElBQUksS0FBSyxFQUFlLENBQUE7UUFJckMscUJBQWdCLEdBQTZDLElBQUksQ0FBQTtRQU92RSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksa0JBQWtCLENBQUMsQ0FBQyxD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TyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ2hFLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDekIsQ0FBQztJQUlPLE9BQU8sQ0FBQyxRQUE0QjtRQUMxQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsT0FBTyxLQUFLLENBQUE7U0FDYjtRQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRS9DLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUNoQyxPQUFPLElBQUksQ0FBQTtTQUNaO1FBRUQsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEEgY2xhc3Mgc2VydmVzIGFzIGEgbWVkaXVtIGJldHdlZW4gdGhlIG9ic2VydmFibGUgYW5kIGl0cyBvYnNlcnZlcnNcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWRcbiAqL1xuZXhwb3J0IGNsYXNzIE9ic2VydmVyRXZlbnRTdGF0ZSB7XG4gIC8qKlxuICAgKiBBbiBPYnNlcnZlciBjYW4gc2V0IHRoaXMgcHJvcGVydHkgdG8gdHJ1ZSB0byBwcmV2ZW50IHN1YnNlcXVlbnQgb2JzZXJ2ZXJzIG9mIGJlaW5nIG5vdGlmaWVkXG4gICAqL1xuICBwdWJsaWMgc2tpcE5leHRPYnNlcnZlcnMhOiBib29sZWFuXG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbWFzayB2YWx1ZSB0aGF0IHdlcmUgdXNlZCB0byB0cmlnZ2VyIHRoZSBldmVudCBjb3JyZXNwb25kaW5nIHRvIHRoaXMgRXZlbnRTdGF0ZSBvYmplY3RcbiAgICovXG4gIHB1YmxpYyBtYXNrITogbnVtYmVyXG5cbiAgLyoqXG4gICAqIFRoZSBvYmplY3QgdGhhdCBvcmlnaW5hbGx5IG5vdGlmaWVkIHRoZSBldmVudFxuICAgKi9cbiAgcHVibGljIHRhcmdldD86IGFueVxuXG4gIC8qKlxuICAgKiBUaGUgY3VycmVudCBvYmplY3QgaW4gdGhlIGJ1YmJsaW5nIHBoYXNlXG4gICAqL1xuICBwdWJsaWMgY3VycmVudFRhcmdldD86IGFueVxuXG4gIC8qKlxuICAgKiBUaGlzIHdpbGwgYmUgcG9wdWxhdGVkIHdpdGggdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgbGFzdCBmdW5jdGlvbiB0aGF0IHdhcyBleGVjdXRlZC5cbiAgICogSWYgaXQgaXMgdGhlIGZpcnN0IGZ1bmN0aW9uIGluIHRoZSBjYWxsYmFjayBjaGFpbiBpdCB3aWxsIGJlIHRoZSBldmVudCBkYXRhLlxuICAgKi9cbiAgcHVibGljIGxhc3RSZXR1cm5WYWx1ZT86IGFueVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgRXZlbnRTdGF0ZVxuICAgKiBAcGFyYW0gbWFzayAtIGRlZmluZXMgdGhlIG1hc2sgYXNzb2NpYXRlZCB3aXRoIHRoaXMgc3RhdGVcbiAgICogQHBhcmFtIHNraXBOZXh0T2JzZXJ2ZXJzIC0gZGVmaW5lcyBhIGZsYWcgd2hpY2ggd2lsbCBpbnN0cnVjdCB0aGUgb2JzZXJ2YWJsZSB0byBza2lwIGZvbGxvd2luZyBvYnNlcnZlcnMgd2hlbiBzZXQgdG8gdHJ1ZVxuICAgKiBAcGFyYW0gdGFyZ2V0IC0gZGVmaW5lcyB0aGUgb3JpZ2luYWwgdGFyZ2V0IG9mIHRoZSBzdGF0ZVxuICAgKiBAcGFyYW0gY3VycmVudFRhcmdldCAtIGRlZmluZXMgdGhlIGN1cnJlbnQgdGFyZ2V0IG9mIHRoZSBzdGF0ZVxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgbWFzazogbnVtYmVyLFxuICAgIHNraXBOZXh0T2JzZXJ2ZXJzID0gZmFsc2UsXG4gICAgdGFyZ2V0PzogYW55LFxuICAgIGN1cnJlbnRUYXJnZXQ/OiBhbnlcbiAgKSB7XG4gICAgdGhpcy5pbml0YWxpemUobWFzaywgc2tpcE5leHRPYnNlcnZlcnMsIHRhcmdldCwgY3VycmVudFRhcmdldClcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSBjdXJyZW50IGV2ZW50IHN0YXRlXG4gICAqIEBwYXJhbSBtYXNrIC0gZGVmaW5lcyB0aGUgbWFzayBhc3NvY2lhdGVkIHdpdGggdGhpcyBzdGF0ZVxuICAgKiBAcGFyYW0gc2tpcE5leHRPYnNlcnZlcnMgLSBkZWZpbmVzIGEgZmxhZyB3aGljaCB3aWxsIGluc3RydWN0IHRoZSBvYnNlcnZhYmxlIHRvIHNraXAgZm9sbG93aW5nIG9ic2VydmVycyB3aGVuIHNldCB0byB0cnVlXG4gICAqIEBwYXJhbSB0YXJnZXQgLSBkZWZpbmVzIHRoZSBvcmlnaW5hbCB0YXJnZXQgb2YgdGhlIHN0YXRlXG4gICAqIEBwYXJhbSBjdXJyZW50VGFyZ2V0IC0gZGVmaW5lcyB0aGUgY3VycmVudCB0YXJnZXQgb2YgdGhlIHN0YXRlXG4gICAqIEByZXR1cm5zIHRoZSBjdXJyZW50IGV2ZW50IHN0YXRlXG4gICAqL1xuICBwdWJsaWMgaW5pdGFsaXplKFxuICAgIG1hc2s6IG51bWJlcixcbiAgICBza2lwTmV4dE9ic2VydmVycyA9IGZhbHNlLFxuICAgIHRhcmdldD86IGFueSxcbiAgICBjdXJyZW50VGFyZ2V0PzogYW55XG4gICk6IE9ic2VydmVyRXZlbnRTdGF0ZSB7XG4gICAgdGhpcy5tYXNrID0gbWFza1xuICAgIHRoaXMuc2tpcE5leHRPYnNlcnZlcnMgPSBza2lwTmV4dE9ic2VydmVyc1xuICAgIHRoaXMudGFyZ2V0ID0gdGFyZ2V0XG4gICAgdGhpcy5jdXJyZW50VGFyZ2V0ID0gY3VycmVudFRhcmdldFxuICAgIHJldHVybiB0aGlzXG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnQgYW4gT2JzZXJ2ZXIgcmVnaXN0ZXJlZCB0byBhIGdpdmVuIE9ic2VydmFibGUgb2JqZWN0LlxuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZFxuICovXG5leHBvcnQgY2xhc3MgT2JzZXJ2ZXI8VD4ge1xuICAvKipcbiAgICogR2V0cyBvciBzZXRzIGEgcHJvcGVydHkgZGVmaW5pbmcgdGhhdCB0aGUgb2JzZXJ2ZXIgYXMgdG8gYmUgdW5yZWdpc3RlcmVkIGFmdGVyIHRoZSBuZXh0IG5vdGlmaWNhdGlvblxuICAgKi9cbiAgcHVibGljIHVucmVnaXN0ZXJPbk5leHRDYWxsID0gZmFsc2VcblxuICAvKiogRm9yIGludGVybmFsIHVzYWdlICovXG4gIHB1YmxpYyBfd2lsbEJlVW5yZWdpc3RlcmVkID0gZmFsc2VcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBvYnNlcnZlclxuICAgKiBAcGFyYW0gY2FsbGJhY2sgLSBkZWZpbmVzIHRoZSBjYWxsYmFjayB0byBjYWxsIHdoZW4gdGhlIG9ic2VydmVyIGlzIG5vdGlmaWVkXG4gICAqIEBwYXJhbSBtYXNrIC0gZGVmaW5lcyB0aGUgbWFzayBvZiB0aGUgb2JzZXJ2ZXIgKHVzZWQgdG8gZmlsdGVyIG5vdGlmaWNhdGlvbnMpXG4gICAqIEBwYXJhbSBzY29wZSAtIGRlZmluZXMgdGhlIGN1cnJlbnQgc2NvcGUgdXNlZCB0byByZXN0b3JlIHRoZSBKUyBjb250ZXh0XG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHRoZSBjYWxsYmFjayB0byBjYWxsIHdoZW4gdGhlIG9ic2VydmVyIGlzIG5vdGlmaWVkXG4gICAgICovXG4gICAgcHVibGljIGNhbGxiYWNrOiAoZXZlbnREYXRhOiBULCBldmVudFN0YXRlOiBPYnNlcnZlckV2ZW50U3RhdGUpID0+IHZvaWQsXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0aGUgbWFzayBvZiB0aGUgb2JzZXJ2ZXIgKHVzZWQgdG8gZmlsdGVyIG5vdGlmaWNhdGlvbnMpXG4gICAgICovXG4gICAgcHVibGljIG1hc2s6IG51bWJlcixcbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHRoZSBjdXJyZW50IHNjb3BlIHVzZWQgdG8gcmVzdG9yZSB0aGUgSlMgY29udGV4dFxuICAgICAqL1xuICAgIHB1YmxpYyBzY29wZTogYW55ID0gbnVsbFxuICApIHt9XG59XG5cbi8qKlxuICogVGhlIE9ic2VydmFibGUgY2xhc3MgaXMgYSBzaW1wbGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIE9ic2VydmFibGUgcGF0dGVybi5cbiAqXG4gKiBUaGVyZSdzIG9uZSBzbGlnaHQgcGFydGljdWxhcml0eSB0aG91Z2g6IGEgZ2l2ZW4gT2JzZXJ2YWJsZSBjYW4gbm90aWZ5IGl0cyBvYnNlcnZlciB1c2luZyBhIHBhcnRpY3VsYXIgbWFzayB2YWx1ZSwgb25seSB0aGUgT2JzZXJ2ZXJzIHJlZ2lzdGVyZWQgd2l0aCB0aGlzIG1hc2sgdmFsdWUgd2lsbCBiZSBub3RpZmllZC5cbiAqIFRoaXMgZW5hYmxlIGEgbW9yZSBmaW5lIGdyYWluZWQgZXhlY3V0aW9uIHdpdGhvdXQgaGF2aW5nIHRvIHJlbHkgb24gbXVsdGlwbGUgZGlmZmVyZW50IE9ic2VydmFibGUgb2JqZWN0cy5cbiAqIEZvciBpbnN0YW5jZSB5b3UgbWF5IGhhdmUgYSBnaXZlbiBPYnNlcnZhYmxlIHRoYXQgaGF2ZSBmb3VyIGRpZmZlcmVudCB0eXBlcyBvZiBub3RpZmljYXRpb25zOiBNb3ZlIChtYXNrID0gMHgwMSksIFN0b3AgKG1hc2sgPSAweDAyKSwgVHVybiBSaWdodCAobWFzayA9IDBYMDQpLCBUdXJuIExlZnQgKG1hc2sgPSAwWDA4KS5cbiAqIEEgZ2l2ZW4gb2JzZXJ2ZXIgY2FuIHJlZ2lzdGVyIGl0c2VsZiB3aXRoIG9ubHkgTW92ZSBhbmQgU3RvcCAobWFzayA9IDB4MDMpLCB0aGVuIGl0IHdpbGwgb25seSBiZSBub3RpZmllZCB3aGVuIG9uZSBvZiB0aGVzZSB0d28gb2NjdXJzIGFuZCB3aWxsIG5ldmVyIGJlIGZvciBUdXJuIExlZnQvUmlnaHQuXG4gKlxuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZFxuICovXG5leHBvcnQgY2xhc3MgT2JzZXJ2YWJsZTxUPiB7XG4gIHByaXZhdGUgX29ic2VydmVycyA9IG5ldyBBcnJheTxPYnNlcnZlcjxUPj4oKVxuXG4gIHByaXZhdGUgX2V2ZW50U3RhdGU6IE9ic2VydmVyRXZlbnRTdGF0ZVxuXG4gIHByaXZhdGUgX29uT2JzZXJ2ZXJBZGRlZDogbnVsbCB8ICgob2JzZXJ2ZXI6IE9ic2VydmVyPFQ+KSA9PiB2b2lkKSA9IG51bGxcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBvYnNlcnZhYmxlXG4gICAqIEBwYXJhbSBvbk9ic2VydmVyQWRkZWQgLSBkZWZpbmVzIGEgY2FsbGJhY2sgdG8gY2FsbCB3aGVuIGEgbmV3IG9ic2VydmVyIGlzIGFkZGVkXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihvbk9ic2VydmVyQWRkZWQ/OiAob2JzZXJ2ZXI6IE9ic2VydmVyPFQ+KSA9PiB2b2lkKSB7XG4gICAgdGhpcy5fZXZlbnRTdGF0ZSA9IG5ldyBPYnNlcnZlckV2ZW50U3RhdGUoMClcblxuICAgIGlmIChvbk9ic2VydmVyQWRkZWQpIHtcbiAgICAgIHRoaXMuX29uT2JzZXJ2ZXJBZGRlZCA9IG9uT2JzZXJ2ZXJBZGRlZFxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgT2JzZXJ2ZXIgd2l0aCB0aGUgc3BlY2lmaWVkIGNhbGxiYWNrXG4gICAqIEBwYXJhbSBjYWxsYmFjayAtIHRoZSBjYWxsYmFjayB0aGF0IHdpbGwgYmUgZXhlY3V0ZWQgZm9yIHRoYXQgT2JzZXJ2ZXJcbiAgICogQHBhcmFtIG1hc2sgLSB0aGUgbWFzayB1c2VkIHRvIGZpbHRlciBvYnNlcnZlcnNcbiAgICogQHBhcmFtIGluc2VydEZpcnN0IC0gaWYgdHJ1ZSB0aGUgY2FsbGJhY2sgd2lsbCBiZSBpbnNlcnRlZCBhdCB0aGUgZmlyc3QgcG9zaXRpb24sIGhlbmNlIGV4ZWN1dGVkIGJlZm9yZSB0aGUgb3RoZXJzIG9uZXMuIElmIGZhbHNlIChkZWZhdWx0IGJlaGF2aW9yKSB0aGUgY2FsbGJhY2sgd2lsbCBiZSBpbnNlcnRlZCBhdCB0aGUgbGFzdCBwb3NpdGlvbiwgZXhlY3V0ZWQgYWZ0ZXIgYWxsIHRoZSBvdGhlcnMgYWxyZWFkeSBwcmVzZW50LlxuICAgKiBAcGFyYW0gc2NvcGUgLSBvcHRpb25hbCBzY29wZSBmb3IgdGhlIGNhbGxiYWNrIHRvIGJlIGNhbGxlZCBmcm9tXG4gICAqIEBwYXJhbSB1bnJlZ2lzdGVyT25GaXJzdENhbGwgLSBkZWZpbmVzIGlmIHRoZSBvYnNlcnZlciBhcyB0byBiZSB1bnJlZ2lzdGVyZWQgYWZ0ZXIgdGhlIG5leHQgbm90aWZpY2F0aW9uXG4gICAqIEByZXR1cm5zIHRoZSBuZXcgb2JzZXJ2ZXIgY3JlYXRlZCBmb3IgdGhlIGNhbGxiYWNrXG4gICAqL1xuICBwdWJsaWMgYWRkKFxuICAgIGNhbGxiYWNrOiAoZXZlbnREYXRhOiBULCBldmVudFN0YXRlOiBPYnNlcnZlckV2ZW50U3RhdGUpID0+IHZvaWQsXG4gICAgbWFzazogbnVtYmVyID0gLTEsXG4gICAgaW5zZXJ0Rmlyc3QgPSBmYWxzZSxcbiAgICBzY29wZTogYW55ID0gbnVsbCxcbiAgICB1bnJlZ2lzdGVyT25GaXJzdENhbGwgPSBmYWxzZVxuICApOiBudWxsIHwgT2JzZXJ2ZXI8VD4ge1xuICAgIGlmICghY2FsbGJhY2spIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgT2JzZXJ2ZXIoY2FsbGJhY2ssIG1hc2ssIHNjb3BlKVxuICAgIG9ic2VydmVyLnVucmVnaXN0ZXJPbk5leHRDYWxsID0gdW5yZWdpc3Rlck9uRmlyc3RDYWxsXG5cbiAgICBpZiAoaW5zZXJ0Rmlyc3QpIHtcbiAgICAgIHRoaXMuX29ic2VydmVycy51bnNoaWZ0KG9ic2VydmVyKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9vYnNlcnZlcnMucHVzaChvYnNlcnZlcilcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fb25PYnNlcnZlckFkZGVkKSB7XG4gICAgICB0aGlzLl9vbk9ic2VydmVyQWRkZWQob2JzZXJ2ZXIpXG4gICAgfVxuXG4gICAgcmV0dXJuIG9ic2VydmVyXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IE9ic2VydmVyIHdpdGggdGhlIHNwZWNpZmllZCBjYWxsYmFjayBhbmQgdW5yZWdpc3RlcnMgYWZ0ZXIgdGhlIG5leHQgbm90aWZpY2F0aW9uXG4gICAqIEBwYXJhbSBjYWxsYmFjayAtIHRoZSBjYWxsYmFjayB0aGF0IHdpbGwgYmUgZXhlY3V0ZWQgZm9yIHRoYXQgT2JzZXJ2ZXJcbiAgICogQHJldHVybnMgdGhlIG5ldyBvYnNlcnZlciBjcmVhdGVkIGZvciB0aGUgY2FsbGJhY2tcbiAgICovXG4gIHB1YmxpYyBhZGRPbmNlKFxuICAgIGNhbGxiYWNrOiAoZXZlbnREYXRhOiBULCBldmVudFN0YXRlOiBPYnNlcnZlckV2ZW50U3RhdGUpID0+IHZvaWRcbiAgKTogbnVsbCB8IE9ic2VydmVyPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5hZGQoY2FsbGJhY2ssIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHRydWUpXG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGFuIE9ic2VydmVyIGZyb20gdGhlIE9ic2VydmFibGUgb2JqZWN0XG4gICAqIEBwYXJhbSBvYnNlcnZlciAtIHRoZSBpbnN0YW5jZSBvZiB0aGUgT2JzZXJ2ZXIgdG8gcmVtb3ZlXG4gICAqIEByZXR1cm5zIGZhbHNlIGlmIGl0IGRvZXNuJ3QgYmVsb25nIHRvIHRoaXMgT2JzZXJ2YWJsZVxuICAgKi9cbiAgcHVibGljIHJlbW92ZShvYnNlcnZlcjogbnVsbCB8IE9ic2VydmVyPFQ+KTogYm9vbGVhbiB7XG4gICAgaWYgKCFvYnNlcnZlcikge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLl9vYnNlcnZlcnMuaW5kZXhPZihvYnNlcnZlcilcblxuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgIHRoaXMuX2RlZmVyVW5yZWdpc3RlcihvYnNlcnZlcilcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGEgY2FsbGJhY2sgZnJvbSB0aGUgT2JzZXJ2YWJsZSBvYmplY3RcbiAgICogQHBhcmFtIGNhbGxiYWNrIC0gdGhlIGNhbGxiYWNrIHRvIHJlbW92ZVxuICAgKiBAcGFyYW0gc2NvcGUgLSBvcHRpb25hbCBzY29wZS4gSWYgdXNlZCBvbmx5IHRoZSBjYWxsYmFja3Mgd2l0aCB0aGlzIHNjb3BlIHdpbGwgYmUgcmVtb3ZlZFxuICAgKiBAcmV0dXJucyBmYWxzZSBpZiBpdCBkb2Vzbid0IGJlbG9uZyB0byB0aGlzIE9ic2VydmFibGVcbiAgICovXG4gIHB1YmxpYyByZW1vdmVDYWxsYmFjayhcbiAgICBjYWxsYmFjazogKGV2ZW50RGF0YTogVCwgZXZlbnRTdGF0ZTogT2JzZXJ2ZXJFdmVudFN0YXRlKSA9PiB2b2lkLFxuICAgIHNjb3BlPzogYW55XG4gICk6IGJvb2xlYW4ge1xuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLl9vYnNlcnZlcnMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuX29ic2VydmVyc1tpbmRleF0uY2FsbGJhY2sgPT09IGNhbGxiYWNrICYmXG4gICAgICAgICghc2NvcGUgfHwgc2NvcGUgPT09IHRoaXMuX29ic2VydmVyc1tpbmRleF0uc2NvcGUpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5fZGVmZXJVbnJlZ2lzdGVyKHRoaXMuX29ic2VydmVyc1tpbmRleF0pXG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvKipcbiAgICogTm90aWZ5IGFsbCBPYnNlcnZlcnMgYnkgY2FsbGluZyB0aGVpciByZXNwZWN0aXZlIGNhbGxiYWNrIHdpdGggdGhlIGdpdmVuIGRhdGFcbiAgICogV2lsbCByZXR1cm4gdHJ1ZSBpZiBhbGwgb2JzZXJ2ZXJzIHdlcmUgZXhlY3V0ZWQsIGZhbHNlIGlmIGFuIG9ic2VydmVyIHNldCBza2lwTmV4dE9ic2VydmVycyB0byB0cnVlLCB0aGVuIHByZXZlbnQgdGhlIHN1YnNlcXVlbnQgb25lcyB0byBleGVjdXRlXG4gICAqIEBwYXJhbSBldmVudERhdGEgLSBkZWZpbmVzIHRoZSBkYXRhIHRvIHNlbmQgdG8gYWxsIG9ic2VydmVyc1xuICAgKiBAcGFyYW0gbWFzayAtIGRlZmluZXMgdGhlIG1hc2sgb2YgdGhlIGN1cnJlbnQgbm90aWZpY2F0aW9uIChvYnNlcnZlcnMgd2l0aCBpbmNvbXBhdGlibGUgbWFzayAoaWUgbWFzayAmIG9ic2VydmVyLm1hc2sgPT09IDApIHdpbGwgbm90IGJlIG5vdGlmaWVkKVxuICAgKiBAcGFyYW0gdGFyZ2V0IC0gZGVmaW5lcyB0aGUgb3JpZ2luYWwgdGFyZ2V0IG9mIHRoZSBzdGF0ZVxuICAgKiBAcGFyYW0gY3VycmVudFRhcmdldCAtIGRlZmluZXMgdGhlIGN1cnJlbnQgdGFyZ2V0IG9mIHRoZSBzdGF0ZVxuICAgKiBAcmV0dXJucyBmYWxzZSBpZiB0aGUgY29tcGxldGUgb2JzZXJ2ZXIgY2hhaW4gd2FzIG5vdCBwcm9jZXNzZWQgKGJlY2F1c2Ugb25lIG9ic2VydmVyIHNldCB0aGUgc2tpcE5leHRPYnNlcnZlcnMgdG8gdHJ1ZSlcbiAgICovXG4gIHB1YmxpYyBub3RpZnlPYnNlcnZlcnMoXG4gICAgZXZlbnREYXRhOiBULFxuICAgIG1hc2s6IG51bWJlciA9IC0xLFxuICAgIHRhcmdldD86IGFueSxcbiAgICBjdXJyZW50VGFyZ2V0PzogYW55XG4gICk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5fb2JzZXJ2ZXJzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuX2V2ZW50U3RhdGVcbiAgICBzdGF0ZS5tYXNrID0gbWFza1xuICAgIHN0YXRlLnRhcmdldCA9IHRhcmdldFxuICAgIHN0YXRlLmN1cnJlbnRUYXJnZXQgPSBjdXJyZW50VGFyZ2V0XG4gICAgc3RhdGUuc2tpcE5leHRPYnNlcnZlcnMgPSBmYWxzZVxuICAgIHN0YXRlLmxhc3RSZXR1cm5WYWx1ZSA9IGV2ZW50RGF0YVxuXG4gICAgZm9yIChjb25zdCBvYnMgb2YgdGhpcy5fb2JzZXJ2ZXJzKSB7XG4gICAgICBpZiAob2JzLl93aWxsQmVVbnJlZ2lzdGVyZWQpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgaWYgKG9icy5tYXNrICYgbWFzaykge1xuICAgICAgICBpZiAob2JzLnNjb3BlKSB7XG4gICAgICAgICAgc3RhdGUubGFzdFJldHVyblZhbHVlID0gb2JzLmNhbGxiYWNrLmFwcGx5KG9icy5zY29wZSwgW1xuICAgICAgICAgICAgZXZlbnREYXRhLFxuICAgICAgICAgICAgc3RhdGVcbiAgICAgICAgICBdKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0YXRlLmxhc3RSZXR1cm5WYWx1ZSA9IG9icy5jYWxsYmFjayhldmVudERhdGEsIHN0YXRlKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9icy51bnJlZ2lzdGVyT25OZXh0Q2FsbCkge1xuICAgICAgICAgIHRoaXMuX2RlZmVyVW5yZWdpc3RlcihvYnMpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChzdGF0ZS5za2lwTmV4dE9ic2VydmVycykge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsaW5nIHRoaXMgd2lsbCBleGVjdXRlIGVhY2ggY2FsbGJhY2ssIGV4cGVjdGluZyBpdCB0byBiZSBhIHByb21pc2Ugb3IgcmV0dXJuIGEgdmFsdWUuXG4gICAqIElmIGF0IGFueSBwb2ludCBpbiB0aGUgY2hhaW4gb25lIGZ1bmN0aW9uIGZhaWxzLCB0aGUgcHJvbWlzZSB3aWxsIGZhaWwgYW5kIHRoZSBleGVjdXRpb24gd2lsbCBub3QgY29udGludWUuXG4gICAqIFRoaXMgaXMgdXNlZnVsIHdoZW4gYSBjaGFpbiBvZiBldmVudHMgKHNvbWV0aW1lcyBhc3luYyBldmVudHMpIGlzIG5lZWRlZCB0byBpbml0aWFsaXplIGEgY2VydGFpbiBvYmplY3RcbiAgICogYW5kIGl0IGlzIGNydWNpYWwgdGhhdCBhbGwgY2FsbGJhY2tzIHdpbGwgYmUgZXhlY3V0ZWQuXG4gICAqIFRoZSBvcmRlciBvZiB0aGUgY2FsbGJhY2tzIGlzIGtlcHQsIGNhbGxiYWNrcyBhcmUgbm90IGV4ZWN1dGVkIHBhcmFsbGVsLlxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnREYXRhIC0gVGhlIGRhdGEgdG8gYmUgc2VudCB0byBlYWNoIGNhbGxiYWNrXG4gICAqIEBwYXJhbSBtYXNrIC0gaXMgdXNlZCB0byBmaWx0ZXIgb2JzZXJ2ZXJzIGRlZmF1bHRzIHRvIC0xXG4gICAqIEBwYXJhbSB0YXJnZXQgLSBkZWZpbmVzIHRoZSBjYWxsYmFjayB0YXJnZXQgKHNlZSBFdmVudFN0YXRlKVxuICAgKiBAcGFyYW0gY3VycmVudFRhcmdldCAtIGRlZmluZXMgaGUgY3VycmVudCBvYmplY3QgaW4gdGhlIGJ1YmJsaW5nIHBoYXNlXG4gICAqIEByZXR1cm5zIHdpbGwgcmV0dXJuIGEgUHJvbWlzZSB0aGFuIHJlc29sdmVzIHdoZW4gYWxsIGNhbGxiYWNrcyBleGVjdXRlZCBzdWNjZXNzZnVsbHkuXG4gICAqL1xuICBwdWJsaWMgbm90aWZ5T2JzZXJ2ZXJzV2l0aFByb21pc2UoXG4gICAgZXZlbnREYXRhOiBULFxuICAgIG1hc2s6IG51bWJlciA9IC0xLFxuICAgIHRhcmdldD86IGFueSxcbiAgICBjdXJyZW50VGFyZ2V0PzogYW55XG4gICk6IFByb21pc2U8VD4ge1xuICAgIC8vIGNyZWF0ZSBhbiBlbXB0eSBwcm9taXNlXG4gICAgbGV0IHA6IFByb21pc2U8YW55PiA9IFByb21pc2UucmVzb2x2ZShldmVudERhdGEpXG5cbiAgICAvLyBubyBvYnNlcnZlcnM/IHJldHVybiB0aGlzIHByb21pc2UuXG4gICAgaWYgKCF0aGlzLl9vYnNlcnZlcnMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gcFxuICAgIH1cblxuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5fZXZlbnRTdGF0ZVxuICAgIHN0YXRlLm1hc2sgPSBtYXNrXG4gICAgc3RhdGUudGFyZ2V0ID0gdGFyZ2V0XG4gICAgc3RhdGUuY3VycmVudFRhcmdldCA9IGN1cnJlbnRUYXJnZXRcbiAgICBzdGF0ZS5za2lwTmV4dE9ic2VydmVycyA9IGZhbHNlXG5cbiAgICAvLyBleGVjdXRlIG9uZSBjYWxsYmFjayBhZnRlciBhbm90aGVyIChub3QgdXNpbmcgUHJvbWlzZS5hbGwsIHRoZSBvcmRlciBpcyBpbXBvcnRhbnQpXG4gICAgdGhpcy5fb2JzZXJ2ZXJzLmZvckVhY2goKG9icykgPT4ge1xuICAgICAgaWYgKHN0YXRlLnNraXBOZXh0T2JzZXJ2ZXJzKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgaWYgKG9icy5fd2lsbEJlVW5yZWdpc3RlcmVkKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgaWYgKG9icy5tYXNrICYgbWFzaykge1xuICAgICAgICBpZiAob2JzLnNjb3BlKSB7XG4gICAgICAgICAgcCA9IHAudGhlbigobGFzdFJldHVybmVkVmFsdWUpID0+IHtcbiAgICAgICAgICAgIHN0YXRlLmxhc3RSZXR1cm5WYWx1ZSA9IGxhc3RSZXR1cm5lZFZhbHVlXG4gICAgICAgICAgICByZXR1cm4gb2JzLmNhbGxiYWNrLmFwcGx5KG9icy5zY29wZSwgW2V2ZW50RGF0YSwgc3RhdGVdKVxuICAgICAgICAgIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcCA9IHAudGhlbigobGFzdFJldHVybmVkVmFsdWUpID0+IHtcbiAgICAgICAgICAgIHN0YXRlLmxhc3RSZXR1cm5WYWx1ZSA9IGxhc3RSZXR1cm5lZFZhbHVlXG4gICAgICAgICAgICByZXR1cm4gb2JzLmNhbGxiYWNrKGV2ZW50RGF0YSwgc3RhdGUpXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICBpZiAob2JzLnVucmVnaXN0ZXJPbk5leHRDYWxsKSB7XG4gICAgICAgICAgdGhpcy5fZGVmZXJVbnJlZ2lzdGVyKG9icylcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG5cbiAgICAvLyByZXR1cm4gdGhlIGV2ZW50RGF0YVxuICAgIHJldHVybiBwLnRoZW4oKCkgPT4ge1xuICAgICAgcmV0dXJuIGV2ZW50RGF0YVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogTm90aWZ5IGEgc3BlY2lmaWMgb2JzZXJ2ZXJcbiAgICogQHBhcmFtIG9ic2VydmVyIC0gZGVmaW5lcyB0aGUgb2JzZXJ2ZXIgdG8gbm90aWZ5XG4gICAqIEBwYXJhbSBldmVudERhdGEgLSBkZWZpbmVzIHRoZSBkYXRhIHRvIGJlIHNlbnQgdG8gZWFjaCBjYWxsYmFja1xuICAgKiBAcGFyYW0gbWFzayAtIGlzIHVzZWQgdG8gZmlsdGVyIG9ic2VydmVycyBkZWZhdWx0cyB0byAtMVxuICAgKi9cbiAgcHVibGljIG5vdGlmeU9ic2VydmVyKFxuICAgIG9ic2VydmVyOiBPYnNlcnZlcjxUPixcbiAgICBldmVudERhdGE6IFQsXG4gICAgbWFzazogbnVtYmVyID0gLTFcbiAgKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLl9ldmVudFN0YXRlXG4gICAgc3RhdGUubWFzayA9IG1hc2tcbiAgICBzdGF0ZS5za2lwTmV4dE9ic2VydmVycyA9IGZhbHNlXG5cbiAgICBvYnNlcnZlci5jYWxsYmFjayhldmVudERhdGEsIHN0YXRlKVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYSBib29sZWFuIGluZGljYXRpbmcgaWYgdGhlIG9ic2VydmFibGUgaGFzIGF0IGxlYXN0IG9uZSBvYnNlcnZlclxuICAgKiBAcmV0dXJucyB0cnVlIGlzIHRoZSBPYnNlcnZhYmxlIGhhcyBhdCBsZWFzdCBvbmUgT2JzZXJ2ZXIgcmVnaXN0ZXJlZFxuICAgKi9cbiAgcHVibGljIGhhc09ic2VydmVycygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fb2JzZXJ2ZXJzLmxlbmd0aCA+IDBcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciB0aGUgbGlzdCBvZiBvYnNlcnZlcnNcbiAgICovXG4gIHB1YmxpYyBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLl9vYnNlcnZlcnMgPSBuZXcgQXJyYXk8T2JzZXJ2ZXI8VD4+KClcbiAgICB0aGlzLl9vbk9ic2VydmVyQWRkZWQgPSBudWxsXG4gIH1cblxuICAvKipcbiAgICogQ2xvbmUgdGhlIGN1cnJlbnQgb2JzZXJ2YWJsZVxuICAgKiBAcmV0dXJucyBhIG5ldyBvYnNlcnZhYmxlXG4gICAqL1xuICBwdWJsaWMgY2xvbmUoKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IE9ic2VydmFibGU8VD4oKVxuXG4gICAgcmVzdWx0Ll9vYnNlcnZlcnMgPSB0aGlzLl9vYnNlcnZlcnMuc2xpY2UoMClcblxuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIC8qKlxuICAgKiBEb2VzIHRoaXMgb2JzZXJ2YWJsZSBoYW5kbGVzIG9ic2VydmVyIHJlZ2lzdGVyZWQgd2l0aCBhIGdpdmVuIG1hc2tcbiAgICogQHBhcmFtIG1hc2sgLSBkZWZpbmVzIHRoZSBtYXNrIHRvIGJlIHRlc3RlZFxuICAgKiBAcmV0dXJucyB3aGV0aGVyIG9yIG5vdCBvbmUgb2JzZXJ2ZXIgcmVnaXN0ZXJlZCB3aXRoIHRoZSBnaXZlbiBtYXNrIGlzIGhhbmRlbGVkXG4gICAqL1xuICBwdWJsaWMgaGFzU3BlY2lmaWNNYXNrKG1hc2s6IG51bWJlciA9IC0xKTogYm9vbGVhbiB7XG4gICAgZm9yIChjb25zdCBvYnMgb2YgdGhpcy5fb2JzZXJ2ZXJzKSB7XG4gICAgICBpZiAob2JzLm1hc2sgJiBtYXNrIHx8IG9icy5tYXNrID09PSBtYXNrKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcHJpdmF0ZSBfZGVmZXJVbnJlZ2lzdGVyKG9ic2VydmVyOiBPYnNlcnZlcjxUPik6IHZvaWQge1xuICAgIG9ic2VydmVyLnVucmVnaXN0ZXJPbk5leHRDYWxsID0gZmFsc2VcbiAgICBvYnNlcnZlci5fd2lsbEJlVW5yZWdpc3RlcmVkID0gdHJ1ZVxuICAgIFByb21pc2UucmVzb2x2ZSgpXG4gICAgICAudGhlbi5iaW5kKFByb21pc2UucmVzb2x2ZSgpKShhc3luYyAoKSA9PiB0aGlzLl9yZW1vdmUob2JzZXJ2ZXIpKVxuICAgICAgLmNhdGNoKGNvbnNvbGUuZXJyb3IpXG4gIH1cblxuICAvLyBUaGlzIHNob3VsZCBvbmx5IGJlIGNhbGxlZCB3aGVuIG5vdCBpdGVyYXRpbmcgb3ZlciBfb2JzZXJ2ZXJzIHRvIGF2b2lkIGNhbGxiYWNrIHNraXBwaW5nLlxuICAvLyBSZW1vdmVzIGFuIG9ic2VydmVyIGZyb20gdGhlIF9vYnNlcnZlciBBcnJheS5cbiAgcHJpdmF0ZSBfcmVtb3ZlKG9ic2VydmVyOiBudWxsIHwgT2JzZXJ2ZXI8VD4pOiBib29sZWFuIHtcbiAgICBpZiAoIW9ic2VydmVyKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICBjb25zdCBpbmRleCA9IHRoaXMuX29ic2VydmVycy5pbmRleE9mKG9ic2VydmVyKVxuXG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgdGhpcy5fb2JzZXJ2ZXJzLnNwbGljZShpbmRleCwgMSlcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cbiJdfQ==
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT2JzZXJ2YWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbnRlcm5hbC9PYnNlcnZhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sT0FBTyxrQkFBa0I7SUFrQzdCLFlBQVksSUFBWSxFQUFFLGlCQUFpQixHQUFHLEtBQUssRUFBRSxNQUFZLEVBQUUsYUFBbUI7UUFDcEYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFBO0lBQ2hFLENBQUM7SUFVTSxTQUFTLENBQUMsSUFBWSxFQUFFLGlCQUFpQixHQUFHLEtBQUssRUFBRSxNQUFZLEVBQUUsYUFBbUI7UUFDekYsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFBO1FBQzFDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO1FBQ3BCLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFBO1FBQ2xDLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztDQUNGO0FBTUQsTUFBTSxPQUFPLFFBQVE7SUFlbkIsWUFJUyxRQUFnRSxFQUloRSxJQUFZLEVBSVosUUFBYSxJQUFJO1FBUmpCLGFBQVEsR0FBUixRQUFRLENBQXdEO1FBSWhFLFNBQUksR0FBSixJQUFJLENBQVE7UUFJWixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBdkJuQix5QkFBb0IsR0FBRyxLQUFLLENBQUE7UUFHNUIsd0JBQW1CLEdBQUcsS0FBSyxDQUFBO0lBcUIvQixDQUFDO0NBQ0w7QUFZRCxNQUFNLE9BQU8sVUFBVTtJQVdyQixZQUFZLGVBQWlEO1FBVnJELGVBQVUsR0FBRyxJQUFJLEtBQUssRUFBZSxDQUFBO1FBSXJDLHFCQUFnQixHQUE2QyxJQUFJLENBQUE7UUFPdkUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLGtCQUFrQixDQUFDLENBQUMsQ0FB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QUMsQ0FBQzthQUNoRSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3pCLENBQUM7SUFJTyxPQUFPLENBQUMsUUFBNEI7UUFDMUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNiLE9BQU8sS0FBSyxDQUFBO1NBQ2I7UUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUUvQyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNoQixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUE7WUFDaEMsT0FBTyxJQUFJLENBQUE7U0FDWjtRQUVELE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBIGNsYXNzIHNlcnZlcyBhcyBhIG1lZGl1bSBiZXR3ZWVuIHRoZSBvYnNlcnZhYmxlIGFuZCBpdHMgb2JzZXJ2ZXJzXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkXG4gKi9cbmV4cG9ydCBjbGFzcyBPYnNlcnZlckV2ZW50U3RhdGUge1xuICAvKipcbiAgICogQW4gT2JzZXJ2ZXIgY2FuIHNldCB0aGlzIHByb3BlcnR5IHRvIHRydWUgdG8gcHJldmVudCBzdWJzZXF1ZW50IG9ic2VydmVycyBvZiBiZWluZyBub3RpZmllZFxuICAgKi9cbiAgcHVibGljIHNraXBOZXh0T2JzZXJ2ZXJzITogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG1hc2sgdmFsdWUgdGhhdCB3ZXJlIHVzZWQgdG8gdHJpZ2dlciB0aGUgZXZlbnQgY29ycmVzcG9uZGluZyB0byB0aGlzIEV2ZW50U3RhdGUgb2JqZWN0XG4gICAqL1xuICBwdWJsaWMgbWFzayE6IG51bWJlclxuXG4gIC8qKlxuICAgKiBUaGUgb2JqZWN0IHRoYXQgb3JpZ2luYWxseSBub3RpZmllZCB0aGUgZXZlbnRcbiAgICovXG4gIHB1YmxpYyB0YXJnZXQ/OiBhbnlcblxuICAvKipcbiAgICogVGhlIGN1cnJlbnQgb2JqZWN0IGluIHRoZSBidWJibGluZyBwaGFzZVxuICAgKi9cbiAgcHVibGljIGN1cnJlbnRUYXJnZXQ/OiBhbnlcblxuICAvKipcbiAgICogVGhpcyB3aWxsIGJlIHBvcHVsYXRlZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGxhc3QgZnVuY3Rpb24gdGhhdCB3YXMgZXhlY3V0ZWQuXG4gICAqIElmIGl0IGlzIHRoZSBmaXJzdCBmdW5jdGlvbiBpbiB0aGUgY2FsbGJhY2sgY2hhaW4gaXQgd2lsbCBiZSB0aGUgZXZlbnQgZGF0YS5cbiAgICovXG4gIHB1YmxpYyBsYXN0UmV0dXJuVmFsdWU/OiBhbnlcblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IEV2ZW50U3RhdGVcbiAgICogQHBhcmFtIG1hc2sgLSBkZWZpbmVzIHRoZSBtYXNrIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHN0YXRlXG4gICAqIEBwYXJhbSBza2lwTmV4dE9ic2VydmVycyAtIGRlZmluZXMgYSBmbGFnIHdoaWNoIHdpbGwgaW5zdHJ1Y3QgdGhlIG9ic2VydmFibGUgdG8gc2tpcCBmb2xsb3dpbmcgb2JzZXJ2ZXJzIHdoZW4gc2V0IHRvIHRydWVcbiAgICogQHBhcmFtIHRhcmdldCAtIGRlZmluZXMgdGhlIG9yaWdpbmFsIHRhcmdldCBvZiB0aGUgc3RhdGVcbiAgICogQHBhcmFtIGN1cnJlbnRUYXJnZXQgLSBkZWZpbmVzIHRoZSBjdXJyZW50IHRhcmdldCBvZiB0aGUgc3RhdGVcbiAgICovXG4gIGNvbnN0cnVjdG9yKG1hc2s6IG51bWJlciwgc2tpcE5leHRPYnNlcnZlcnMgPSBmYWxzZSwgdGFyZ2V0PzogYW55LCBjdXJyZW50VGFyZ2V0PzogYW55KSB7XG4gICAgdGhpcy5pbml0YWxpemUobWFzaywgc2tpcE5leHRPYnNlcnZlcnMsIHRhcmdldCwgY3VycmVudFRhcmdldClcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSBjdXJyZW50IGV2ZW50IHN0YXRlXG4gICAqIEBwYXJhbSBtYXNrIC0gZGVmaW5lcyB0aGUgbWFzayBhc3NvY2lhdGVkIHdpdGggdGhpcyBzdGF0ZVxuICAgKiBAcGFyYW0gc2tpcE5leHRPYnNlcnZlcnMgLSBkZWZpbmVzIGEgZmxhZyB3aGljaCB3aWxsIGluc3RydWN0IHRoZSBvYnNlcnZhYmxlIHRvIHNraXAgZm9sbG93aW5nIG9ic2VydmVycyB3aGVuIHNldCB0byB0cnVlXG4gICAqIEBwYXJhbSB0YXJnZXQgLSBkZWZpbmVzIHRoZSBvcmlnaW5hbCB0YXJnZXQgb2YgdGhlIHN0YXRlXG4gICAqIEBwYXJhbSBjdXJyZW50VGFyZ2V0IC0gZGVmaW5lcyB0aGUgY3VycmVudCB0YXJnZXQgb2YgdGhlIHN0YXRlXG4gICAqIEByZXR1cm5zIHRoZSBjdXJyZW50IGV2ZW50IHN0YXRlXG4gICAqL1xuICBwdWJsaWMgaW5pdGFsaXplKG1hc2s6IG51bWJlciwgc2tpcE5leHRPYnNlcnZlcnMgPSBmYWxzZSwgdGFyZ2V0PzogYW55LCBjdXJyZW50VGFyZ2V0PzogYW55KTogT2JzZXJ2ZXJFdmVudFN0YXRlIHtcbiAgICB0aGlzLm1hc2sgPSBtYXNrXG4gICAgdGhpcy5za2lwTmV4dE9ic2VydmVycyA9IHNraXBOZXh0T2JzZXJ2ZXJzXG4gICAgdGhpcy50YXJnZXQgPSB0YXJnZXRcbiAgICB0aGlzLmN1cnJlbnRUYXJnZXQgPSBjdXJyZW50VGFyZ2V0XG4gICAgcmV0dXJuIHRoaXNcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudCBhbiBPYnNlcnZlciByZWdpc3RlcmVkIHRvIGEgZ2l2ZW4gT2JzZXJ2YWJsZSBvYmplY3QuXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkXG4gKi9cbmV4cG9ydCBjbGFzcyBPYnNlcnZlcjxUPiB7XG4gIC8qKlxuICAgKiBHZXRzIG9yIHNldHMgYSBwcm9wZXJ0eSBkZWZpbmluZyB0aGF0IHRoZSBvYnNlcnZlciBhcyB0byBiZSB1bnJlZ2lzdGVyZWQgYWZ0ZXIgdGhlIG5leHQgbm90aWZpY2F0aW9uXG4gICAqL1xuICBwdWJsaWMgdW5yZWdpc3Rlck9uTmV4dENhbGwgPSBmYWxzZVxuXG4gIC8qKiBGb3IgaW50ZXJuYWwgdXNhZ2UgKi9cbiAgcHVibGljIF93aWxsQmVVbnJlZ2lzdGVyZWQgPSBmYWxzZVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IG9ic2VydmVyXG4gICAqIEBwYXJhbSBjYWxsYmFjayAtIGRlZmluZXMgdGhlIGNhbGxiYWNrIHRvIGNhbGwgd2hlbiB0aGUgb2JzZXJ2ZXIgaXMgbm90aWZpZWRcbiAgICogQHBhcmFtIG1hc2sgLSBkZWZpbmVzIHRoZSBtYXNrIG9mIHRoZSBvYnNlcnZlciAodXNlZCB0byBmaWx0ZXIgbm90aWZpY2F0aW9ucylcbiAgICogQHBhcmFtIHNjb3BlIC0gZGVmaW5lcyB0aGUgY3VycmVudCBzY29wZSB1c2VkIHRvIHJlc3RvcmUgdGhlIEpTIGNvbnRleHRcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8qKlxuICAgICAqIERlZmluZXMgdGhlIGNhbGxiYWNrIHRvIGNhbGwgd2hlbiB0aGUgb2JzZXJ2ZXIgaXMgbm90aWZpZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgY2FsbGJhY2s6IChldmVudERhdGE6IFQsIGV2ZW50U3RhdGU6IE9ic2VydmVyRXZlbnRTdGF0ZSkgPT4gdm9pZCxcbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHRoZSBtYXNrIG9mIHRoZSBvYnNlcnZlciAodXNlZCB0byBmaWx0ZXIgbm90aWZpY2F0aW9ucylcbiAgICAgKi9cbiAgICBwdWJsaWMgbWFzazogbnVtYmVyLFxuICAgIC8qKlxuICAgICAqIERlZmluZXMgdGhlIGN1cnJlbnQgc2NvcGUgdXNlZCB0byByZXN0b3JlIHRoZSBKUyBjb250ZXh0XG4gICAgICovXG4gICAgcHVibGljIHNjb3BlOiBhbnkgPSBudWxsXG4gICkge31cbn1cblxuLyoqXG4gKiBUaGUgT2JzZXJ2YWJsZSBjbGFzcyBpcyBhIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgT2JzZXJ2YWJsZSBwYXR0ZXJuLlxuICpcbiAqIFRoZXJlJ3Mgb25lIHNsaWdodCBwYXJ0aWN1bGFyaXR5IHRob3VnaDogYSBnaXZlbiBPYnNlcnZhYmxlIGNhbiBub3RpZnkgaXRzIG9ic2VydmVyIHVzaW5nIGEgcGFydGljdWxhciBtYXNrIHZhbHVlLCBvbmx5IHRoZSBPYnNlcnZlcnMgcmVnaXN0ZXJlZCB3aXRoIHRoaXMgbWFzayB2YWx1ZSB3aWxsIGJlIG5vdGlmaWVkLlxuICogVGhpcyBlbmFibGUgYSBtb3JlIGZpbmUgZ3JhaW5lZCBleGVjdXRpb24gd2l0aG91dCBoYXZpbmcgdG8gcmVseSBvbiBtdWx0aXBsZSBkaWZmZXJlbnQgT2JzZXJ2YWJsZSBvYmplY3RzLlxuICogRm9yIGluc3RhbmNlIHlvdSBtYXkgaGF2ZSBhIGdpdmVuIE9ic2VydmFibGUgdGhhdCBoYXZlIGZvdXIgZGlmZmVyZW50IHR5cGVzIG9mIG5vdGlmaWNhdGlvbnM6IE1vdmUgKG1hc2sgPSAweDAxKSwgU3RvcCAobWFzayA9IDB4MDIpLCBUdXJuIFJpZ2h0IChtYXNrID0gMFgwNCksIFR1cm4gTGVmdCAobWFzayA9IDBYMDgpLlxuICogQSBnaXZlbiBvYnNlcnZlciBjYW4gcmVnaXN0ZXIgaXRzZWxmIHdpdGggb25seSBNb3ZlIGFuZCBTdG9wIChtYXNrID0gMHgwMyksIHRoZW4gaXQgd2lsbCBvbmx5IGJlIG5vdGlmaWVkIHdoZW4gb25lIG9mIHRoZXNlIHR3byBvY2N1cnMgYW5kIHdpbGwgbmV2ZXIgYmUgZm9yIFR1cm4gTGVmdC9SaWdodC5cbiAqXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkXG4gKi9cbmV4cG9ydCBjbGFzcyBPYnNlcnZhYmxlPFQ+IHtcbiAgcHJpdmF0ZSBfb2JzZXJ2ZXJzID0gbmV3IEFycmF5PE9ic2VydmVyPFQ+PigpXG5cbiAgcHJpdmF0ZSBfZXZlbnRTdGF0ZTogT2JzZXJ2ZXJFdmVudFN0YXRlXG5cbiAgcHJpdmF0ZSBfb25PYnNlcnZlckFkZGVkOiBudWxsIHwgKChvYnNlcnZlcjogT2JzZXJ2ZXI8VD4pID0+IHZvaWQpID0gbnVsbFxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IG9ic2VydmFibGVcbiAgICogQHBhcmFtIG9uT2JzZXJ2ZXJBZGRlZCAtIGRlZmluZXMgYSBjYWxsYmFjayB0byBjYWxsIHdoZW4gYSBuZXcgb2JzZXJ2ZXIgaXMgYWRkZWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKG9uT2JzZXJ2ZXJBZGRlZD86IChvYnNlcnZlcjogT2JzZXJ2ZXI8VD4pID0+IHZvaWQpIHtcbiAgICB0aGlzLl9ldmVudFN0YXRlID0gbmV3IE9ic2VydmVyRXZlbnRTdGF0ZSgwKVxuXG4gICAgaWYgKG9uT2JzZXJ2ZXJBZGRlZCkge1xuICAgICAgdGhpcy5fb25PYnNlcnZlckFkZGVkID0gb25PYnNlcnZlckFkZGVkXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBPYnNlcnZlciB3aXRoIHRoZSBzcGVjaWZpZWQgY2FsbGJhY2tcbiAgICogQHBhcmFtIGNhbGxiYWNrIC0gdGhlIGNhbGxiYWNrIHRoYXQgd2lsbCBiZSBleGVjdXRlZCBmb3IgdGhhdCBPYnNlcnZlclxuICAgKiBAcGFyYW0gbWFzayAtIHRoZSBtYXNrIHVzZWQgdG8gZmlsdGVyIG9ic2VydmVyc1xuICAgKiBAcGFyYW0gaW5zZXJ0Rmlyc3QgLSBpZiB0cnVlIHRoZSBjYWxsYmFjayB3aWxsIGJlIGluc2VydGVkIGF0IHRoZSBmaXJzdCBwb3NpdGlvbiwgaGVuY2UgZXhlY3V0ZWQgYmVmb3JlIHRoZSBvdGhlcnMgb25lcy4gSWYgZmFsc2UgKGRlZmF1bHQgYmVoYXZpb3IpIHRoZSBjYWxsYmFjayB3aWxsIGJlIGluc2VydGVkIGF0IHRoZSBsYXN0IHBvc2l0aW9uLCBleGVjdXRlZCBhZnRlciBhbGwgdGhlIG90aGVycyBhbHJlYWR5IHByZXNlbnQuXG4gICAqIEBwYXJhbSBzY29wZSAtIG9wdGlvbmFsIHNjb3BlIGZvciB0aGUgY2FsbGJhY2sgdG8gYmUgY2FsbGVkIGZyb21cbiAgICogQHBhcmFtIHVucmVnaXN0ZXJPbkZpcnN0Q2FsbCAtIGRlZmluZXMgaWYgdGhlIG9ic2VydmVyIGFzIHRvIGJlIHVucmVnaXN0ZXJlZCBhZnRlciB0aGUgbmV4dCBub3RpZmljYXRpb25cbiAgICogQHJldHVybnMgdGhlIG5ldyBvYnNlcnZlciBjcmVhdGVkIGZvciB0aGUgY2FsbGJhY2tcbiAgICovXG4gIHB1YmxpYyBhZGQoXG4gICAgY2FsbGJhY2s6IChldmVudERhdGE6IFQsIGV2ZW50U3RhdGU6IE9ic2VydmVyRXZlbnRTdGF0ZSkgPT4gdm9pZCxcbiAgICBtYXNrOiBudW1iZXIgPSAtMSxcbiAgICBpbnNlcnRGaXJzdCA9IGZhbHNlLFxuICAgIHNjb3BlOiBhbnkgPSBudWxsLFxuICAgIHVucmVnaXN0ZXJPbkZpcnN0Q2FsbCA9IGZhbHNlXG4gICk6IG51bGwgfCBPYnNlcnZlcjxUPiB7XG4gICAgaWYgKCFjYWxsYmFjaykge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBPYnNlcnZlcihjYWxsYmFjaywgbWFzaywgc2NvcGUpXG4gICAgb2JzZXJ2ZXIudW5yZWdpc3Rlck9uTmV4dENhbGwgPSB1bnJlZ2lzdGVyT25GaXJzdENhbGxcblxuICAgIGlmIChpbnNlcnRGaXJzdCkge1xuICAgICAgdGhpcy5fb2JzZXJ2ZXJzLnVuc2hpZnQob2JzZXJ2ZXIpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX29ic2VydmVycy5wdXNoKG9ic2VydmVyKVxuICAgIH1cblxuICAgIGlmICh0aGlzLl9vbk9ic2VydmVyQWRkZWQpIHtcbiAgICAgIHRoaXMuX29uT2JzZXJ2ZXJBZGRlZChvYnNlcnZlcilcbiAgICB9XG5cbiAgICByZXR1cm4gb2JzZXJ2ZXJcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgT2JzZXJ2ZXIgd2l0aCB0aGUgc3BlY2lmaWVkIGNhbGxiYWNrIGFuZCB1bnJlZ2lzdGVycyBhZnRlciB0aGUgbmV4dCBub3RpZmljYXRpb25cbiAgICogQHBhcmFtIGNhbGxiYWNrIC0gdGhlIGNhbGxiYWNrIHRoYXQgd2lsbCBiZSBleGVjdXRlZCBmb3IgdGhhdCBPYnNlcnZlclxuICAgKiBAcmV0dXJucyB0aGUgbmV3IG9ic2VydmVyIGNyZWF0ZWQgZm9yIHRoZSBjYWxsYmFja1xuICAgKi9cbiAgcHVibGljIGFkZE9uY2UoY2FsbGJhY2s6IChldmVudERhdGE6IFQsIGV2ZW50U3RhdGU6IE9ic2VydmVyRXZlbnRTdGF0ZSkgPT4gdm9pZCk6IG51bGwgfCBPYnNlcnZlcjxUPiB7XG4gICAgcmV0dXJuIHRoaXMuYWRkKGNhbGxiYWNrLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB0cnVlKVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhbiBPYnNlcnZlciBmcm9tIHRoZSBPYnNlcnZhYmxlIG9iamVjdFxuICAgKiBAcGFyYW0gb2JzZXJ2ZXIgLSB0aGUgaW5zdGFuY2Ugb2YgdGhlIE9ic2VydmVyIHRvIHJlbW92ZVxuICAgKiBAcmV0dXJucyBmYWxzZSBpZiBpdCBkb2Vzbid0IGJlbG9uZyB0byB0aGlzIE9ic2VydmFibGVcbiAgICovXG4gIHB1YmxpYyByZW1vdmUob2JzZXJ2ZXI6IG51bGwgfCBPYnNlcnZlcjxUPik6IGJvb2xlYW4ge1xuICAgIGlmICghb2JzZXJ2ZXIpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5fb2JzZXJ2ZXJzLmluZGV4T2Yob2JzZXJ2ZXIpXG5cbiAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICB0aGlzLl9kZWZlclVucmVnaXN0ZXIob2JzZXJ2ZXIpXG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhIGNhbGxiYWNrIGZyb20gdGhlIE9ic2VydmFibGUgb2JqZWN0XG4gICAqIEBwYXJhbSBjYWxsYmFjayAtIHRoZSBjYWxsYmFjayB0byByZW1vdmVcbiAgICogQHBhcmFtIHNjb3BlIC0gb3B0aW9uYWwgc2NvcGUuIElmIHVzZWQgb25seSB0aGUgY2FsbGJhY2tzIHdpdGggdGhpcyBzY29wZSB3aWxsIGJlIHJlbW92ZWRcbiAgICogQHJldHVybnMgZmFsc2UgaWYgaXQgZG9lc24ndCBiZWxvbmcgdG8gdGhpcyBPYnNlcnZhYmxlXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlQ2FsbGJhY2soY2FsbGJhY2s6IChldmVudERhdGE6IFQsIGV2ZW50U3RhdGU6IE9ic2VydmVyRXZlbnRTdGF0ZSkgPT4gdm9pZCwgc2NvcGU/OiBhbnkpOiBib29sZWFuIHtcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5fb2JzZXJ2ZXJzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgaWYgKHRoaXMuX29ic2VydmVyc1tpbmRleF0uY2FsbGJhY2sgPT09IGNhbGxiYWNrICYmICghc2NvcGUgfHwgc2NvcGUgPT09IHRoaXMuX29ic2VydmVyc1tpbmRleF0uc2NvcGUpKSB7XG4gICAgICAgIHRoaXMuX2RlZmVyVW5yZWdpc3Rlcih0aGlzLl9vYnNlcnZlcnNbaW5kZXhdKVxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgLyoqXG4gICAqIE5vdGlmeSBhbGwgT2JzZXJ2ZXJzIGJ5IGNhbGxpbmcgdGhlaXIgcmVzcGVjdGl2ZSBjYWxsYmFjayB3aXRoIHRoZSBnaXZlbiBkYXRhXG4gICAqIFdpbGwgcmV0dXJuIHRydWUgaWYgYWxsIG9ic2VydmVycyB3ZXJlIGV4ZWN1dGVkLCBmYWxzZSBpZiBhbiBvYnNlcnZlciBzZXQgc2tpcE5leHRPYnNlcnZlcnMgdG8gdHJ1ZSwgdGhlbiBwcmV2ZW50IHRoZSBzdWJzZXF1ZW50IG9uZXMgdG8gZXhlY3V0ZVxuICAgKiBAcGFyYW0gZXZlbnREYXRhIC0gZGVmaW5lcyB0aGUgZGF0YSB0byBzZW5kIHRvIGFsbCBvYnNlcnZlcnNcbiAgICogQHBhcmFtIG1hc2sgLSBkZWZpbmVzIHRoZSBtYXNrIG9mIHRoZSBjdXJyZW50IG5vdGlmaWNhdGlvbiAob2JzZXJ2ZXJzIHdpdGggaW5jb21wYXRpYmxlIG1hc2sgKGllIG1hc2sgJiBvYnNlcnZlci5tYXNrID09PSAwKSB3aWxsIG5vdCBiZSBub3RpZmllZClcbiAgICogQHBhcmFtIHRhcmdldCAtIGRlZmluZXMgdGhlIG9yaWdpbmFsIHRhcmdldCBvZiB0aGUgc3RhdGVcbiAgICogQHBhcmFtIGN1cnJlbnRUYXJnZXQgLSBkZWZpbmVzIHRoZSBjdXJyZW50IHRhcmdldCBvZiB0aGUgc3RhdGVcbiAgICogQHJldHVybnMgZmFsc2UgaWYgdGhlIGNvbXBsZXRlIG9ic2VydmVyIGNoYWluIHdhcyBub3QgcHJvY2Vzc2VkIChiZWNhdXNlIG9uZSBvYnNlcnZlciBzZXQgdGhlIHNraXBOZXh0T2JzZXJ2ZXJzIHRvIHRydWUpXG4gICAqL1xuICBwdWJsaWMgbm90aWZ5T2JzZXJ2ZXJzKGV2ZW50RGF0YTogVCwgbWFzazogbnVtYmVyID0gLTEsIHRhcmdldD86IGFueSwgY3VycmVudFRhcmdldD86IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5fb2JzZXJ2ZXJzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuX2V2ZW50U3RhdGVcbiAgICBzdGF0ZS5tYXNrID0gbWFza1xuICAgIHN0YXRlLnRhcmdldCA9IHRhcmdldFxuICAgIHN0YXRlLmN1cnJlbnRUYXJnZXQgPSBjdXJyZW50VGFyZ2V0XG4gICAgc3RhdGUuc2tpcE5leHRPYnNlcnZlcnMgPSBmYWxzZVxuICAgIHN0YXRlLmxhc3RSZXR1cm5WYWx1ZSA9IGV2ZW50RGF0YVxuXG4gICAgZm9yIChjb25zdCBvYnMgb2YgdGhpcy5fb2JzZXJ2ZXJzKSB7XG4gICAgICBpZiAob2JzLl93aWxsQmVVbnJlZ2lzdGVyZWQpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgaWYgKG9icy5tYXNrICYgbWFzaykge1xuICAgICAgICBpZiAob2JzLnNjb3BlKSB7XG4gICAgICAgICAgc3RhdGUubGFzdFJldHVyblZhbHVlID0gb2JzLmNhbGxiYWNrLmFwcGx5KG9icy5zY29wZSwgW2V2ZW50RGF0YSwgc3RhdGVdKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0YXRlLmxhc3RSZXR1cm5WYWx1ZSA9IG9icy5jYWxsYmFjayhldmVudERhdGEsIHN0YXRlKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9icy51bnJlZ2lzdGVyT25OZXh0Q2FsbCkge1xuICAgICAgICAgIHRoaXMuX2RlZmVyVW5yZWdpc3RlcihvYnMpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChzdGF0ZS5za2lwTmV4dE9ic2VydmVycykge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsaW5nIHRoaXMgd2lsbCBleGVjdXRlIGVhY2ggY2FsbGJhY2ssIGV4cGVjdGluZyBpdCB0byBiZSBhIHByb21pc2Ugb3IgcmV0dXJuIGEgdmFsdWUuXG4gICAqIElmIGF0IGFueSBwb2ludCBpbiB0aGUgY2hhaW4gb25lIGZ1bmN0aW9uIGZhaWxzLCB0aGUgcHJvbWlzZSB3aWxsIGZhaWwgYW5kIHRoZSBleGVjdXRpb24gd2lsbCBub3QgY29udGludWUuXG4gICAqIFRoaXMgaXMgdXNlZnVsIHdoZW4gYSBjaGFpbiBvZiBldmVudHMgKHNvbWV0aW1lcyBhc3luYyBldmVudHMpIGlzIG5lZWRlZCB0byBpbml0aWFsaXplIGEgY2VydGFpbiBvYmplY3RcbiAgICogYW5kIGl0IGlzIGNydWNpYWwgdGhhdCBhbGwgY2FsbGJhY2tzIHdpbGwgYmUgZXhlY3V0ZWQuXG4gICAqIFRoZSBvcmRlciBvZiB0aGUgY2FsbGJhY2tzIGlzIGtlcHQsIGNhbGxiYWNrcyBhcmUgbm90IGV4ZWN1dGVkIHBhcmFsbGVsLlxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnREYXRhIC0gVGhlIGRhdGEgdG8gYmUgc2VudCB0byBlYWNoIGNhbGxiYWNrXG4gICAqIEBwYXJhbSBtYXNrIC0gaXMgdXNlZCB0byBmaWx0ZXIgb2JzZXJ2ZXJzIGRlZmF1bHRzIHRvIC0xXG4gICAqIEBwYXJhbSB0YXJnZXQgLSBkZWZpbmVzIHRoZSBjYWxsYmFjayB0YXJnZXQgKHNlZSBFdmVudFN0YXRlKVxuICAgKiBAcGFyYW0gY3VycmVudFRhcmdldCAtIGRlZmluZXMgaGUgY3VycmVudCBvYmplY3QgaW4gdGhlIGJ1YmJsaW5nIHBoYXNlXG4gICAqIEByZXR1cm5zIHdpbGwgcmV0dXJuIGEgUHJvbWlzZSB0aGFuIHJlc29sdmVzIHdoZW4gYWxsIGNhbGxiYWNrcyBleGVjdXRlZCBzdWNjZXNzZnVsbHkuXG4gICAqL1xuICBwdWJsaWMgbm90aWZ5T2JzZXJ2ZXJzV2l0aFByb21pc2UoZXZlbnREYXRhOiBULCBtYXNrOiBudW1iZXIgPSAtMSwgdGFyZ2V0PzogYW55LCBjdXJyZW50VGFyZ2V0PzogYW55KTogUHJvbWlzZTxUPiB7XG4gICAgLy8gY3JlYXRlIGFuIGVtcHR5IHByb21pc2VcbiAgICBsZXQgcDogUHJvbWlzZTxhbnk+ID0gUHJvbWlzZS5yZXNvbHZlKGV2ZW50RGF0YSlcblxuICAgIC8vIG5vIG9ic2VydmVycz8gcmV0dXJuIHRoaXMgcHJvbWlzZS5cbiAgICBpZiAoIXRoaXMuX29ic2VydmVycy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBwXG4gICAgfVxuXG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLl9ldmVudFN0YXRlXG4gICAgc3RhdGUubWFzayA9IG1hc2tcbiAgICBzdGF0ZS50YXJnZXQgPSB0YXJnZXRcbiAgICBzdGF0ZS5jdXJyZW50VGFyZ2V0ID0gY3VycmVudFRhcmdldFxuICAgIHN0YXRlLnNraXBOZXh0T2JzZXJ2ZXJzID0gZmFsc2VcblxuICAgIC8vIGV4ZWN1dGUgb25lIGNhbGxiYWNrIGFmdGVyIGFub3RoZXIgKG5vdCB1c2luZyBQcm9taXNlLmFsbCwgdGhlIG9yZGVyIGlzIGltcG9ydGFudClcbiAgICB0aGlzLl9vYnNlcnZlcnMuZm9yRWFjaCgob2JzKSA9PiB7XG4gICAgICBpZiAoc3RhdGUuc2tpcE5leHRPYnNlcnZlcnMpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBpZiAob2JzLl93aWxsQmVVbnJlZ2lzdGVyZWQpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBpZiAob2JzLm1hc2sgJiBtYXNrKSB7XG4gICAgICAgIGlmIChvYnMuc2NvcGUpIHtcbiAgICAgICAgICBwID0gcC50aGVuKChsYXN0UmV0dXJuZWRWYWx1ZSkgPT4ge1xuICAgICAgICAgICAgc3RhdGUubGFzdFJldHVyblZhbHVlID0gbGFzdFJldHVybmVkVmFsdWVcbiAgICAgICAgICAgIHJldHVybiBvYnMuY2FsbGJhY2suYXBwbHkob2JzLnNjb3BlLCBbZXZlbnREYXRhLCBzdGF0ZV0pXG4gICAgICAgICAgfSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwID0gcC50aGVuKChsYXN0UmV0dXJuZWRWYWx1ZSkgPT4ge1xuICAgICAgICAgICAgc3RhdGUubGFzdFJldHVyblZhbHVlID0gbGFzdFJldHVybmVkVmFsdWVcbiAgICAgICAgICAgIHJldHVybiBvYnMuY2FsbGJhY2soZXZlbnREYXRhLCBzdGF0ZSlcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICAgIGlmIChvYnMudW5yZWdpc3Rlck9uTmV4dENhbGwpIHtcbiAgICAgICAgICB0aGlzLl9kZWZlclVucmVnaXN0ZXIob2JzKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcblxuICAgIC8vIHJldHVybiB0aGUgZXZlbnREYXRhXG4gICAgcmV0dXJuIHAudGhlbigoKSA9PiB7XG4gICAgICByZXR1cm4gZXZlbnREYXRhXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBOb3RpZnkgYSBzcGVjaWZpYyBvYnNlcnZlclxuICAgKiBAcGFyYW0gb2JzZXJ2ZXIgLSBkZWZpbmVzIHRoZSBvYnNlcnZlciB0byBub3RpZnlcbiAgICogQHBhcmFtIGV2ZW50RGF0YSAtIGRlZmluZXMgdGhlIGRhdGEgdG8gYmUgc2VudCB0byBlYWNoIGNhbGxiYWNrXG4gICAqIEBwYXJhbSBtYXNrIC0gaXMgdXNlZCB0byBmaWx0ZXIgb2JzZXJ2ZXJzIGRlZmF1bHRzIHRvIC0xXG4gICAqL1xuICBwdWJsaWMgbm90aWZ5T2JzZXJ2ZXIob2JzZXJ2ZXI6IE9ic2VydmVyPFQ+LCBldmVudERhdGE6IFQsIG1hc2s6IG51bWJlciA9IC0xKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLl9ldmVudFN0YXRlXG4gICAgc3RhdGUubWFzayA9IG1hc2tcbiAgICBzdGF0ZS5za2lwTmV4dE9ic2VydmVycyA9IGZhbHNlXG5cbiAgICBvYnNlcnZlci5jYWxsYmFjayhldmVudERhdGEsIHN0YXRlKVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYSBib29sZWFuIGluZGljYXRpbmcgaWYgdGhlIG9ic2VydmFibGUgaGFzIGF0IGxlYXN0IG9uZSBvYnNlcnZlclxuICAgKiBAcmV0dXJucyB0cnVlIGlzIHRoZSBPYnNlcnZhYmxlIGhhcyBhdCBsZWFzdCBvbmUgT2JzZXJ2ZXIgcmVnaXN0ZXJlZFxuICAgKi9cbiAgcHVibGljIGhhc09ic2VydmVycygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fb2JzZXJ2ZXJzLmxlbmd0aCA+IDBcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciB0aGUgbGlzdCBvZiBvYnNlcnZlcnNcbiAgICovXG4gIHB1YmxpYyBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLl9vYnNlcnZlcnMgPSBuZXcgQXJyYXk8T2JzZXJ2ZXI8VD4+KClcbiAgICB0aGlzLl9vbk9ic2VydmVyQWRkZWQgPSBudWxsXG4gIH1cblxuICAvKipcbiAgICogQ2xvbmUgdGhlIGN1cnJlbnQgb2JzZXJ2YWJsZVxuICAgKiBAcmV0dXJucyBhIG5ldyBvYnNlcnZhYmxlXG4gICAqL1xuICBwdWJsaWMgY2xvbmUoKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IE9ic2VydmFibGU8VD4oKVxuXG4gICAgcmVzdWx0Ll9vYnNlcnZlcnMgPSB0aGlzLl9vYnNlcnZlcnMuc2xpY2UoMClcblxuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIC8qKlxuICAgKiBEb2VzIHRoaXMgb2JzZXJ2YWJsZSBoYW5kbGVzIG9ic2VydmVyIHJlZ2lzdGVyZWQgd2l0aCBhIGdpdmVuIG1hc2tcbiAgICogQHBhcmFtIG1hc2sgLSBkZWZpbmVzIHRoZSBtYXNrIHRvIGJlIHRlc3RlZFxuICAgKiBAcmV0dXJucyB3aGV0aGVyIG9yIG5vdCBvbmUgb2JzZXJ2ZXIgcmVnaXN0ZXJlZCB3aXRoIHRoZSBnaXZlbiBtYXNrIGlzIGhhbmRlbGVkXG4gICAqL1xuICBwdWJsaWMgaGFzU3BlY2lmaWNNYXNrKG1hc2s6IG51bWJlciA9IC0xKTogYm9vbGVhbiB7XG4gICAgZm9yIChjb25zdCBvYnMgb2YgdGhpcy5fb2JzZXJ2ZXJzKSB7XG4gICAgICBpZiAob2JzLm1hc2sgJiBtYXNrIHx8IG9icy5tYXNrID09PSBtYXNrKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcHJpdmF0ZSBfZGVmZXJVbnJlZ2lzdGVyKG9ic2VydmVyOiBPYnNlcnZlcjxUPik6IHZvaWQge1xuICAgIG9ic2VydmVyLnVucmVnaXN0ZXJPbk5leHRDYWxsID0gZmFsc2VcbiAgICBvYnNlcnZlci5fd2lsbEJlVW5yZWdpc3RlcmVkID0gdHJ1ZVxuICAgIFByb21pc2UucmVzb2x2ZSgpXG4gICAgICAudGhlbi5iaW5kKFByb21pc2UucmVzb2x2ZSgpKShhc3luYyAoKSA9PiB0aGlzLl9yZW1vdmUob2JzZXJ2ZXIpKVxuICAgICAgLmNhdGNoKGNvbnNvbGUuZXJyb3IpXG4gIH1cblxuICAvLyBUaGlzIHNob3VsZCBvbmx5IGJlIGNhbGxlZCB3aGVuIG5vdCBpdGVyYXRpbmcgb3ZlciBfb2JzZXJ2ZXJzIHRvIGF2b2lkIGNhbGxiYWNrIHNraXBwaW5nLlxuICAvLyBSZW1vdmVzIGFuIG9ic2VydmVyIGZyb20gdGhlIF9vYnNlcnZlciBBcnJheS5cbiAgcHJpdmF0ZSBfcmVtb3ZlKG9ic2VydmVyOiBudWxsIHwgT2JzZXJ2ZXI8VD4pOiBib29sZWFuIHtcbiAgICBpZiAoIW9ic2VydmVyKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICBjb25zdCBpbmRleCA9IHRoaXMuX29ic2VydmVycy5pbmRleE9mKG9ic2VydmVyKVxuXG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgdGhpcy5fb2JzZXJ2ZXJzLnNwbGljZShpbmRleCwgMSlcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cbiJdfQ==
|
package/internal/provider.js
CHANGED
@@ -25,4 +25,4 @@ export function getEthereumProvider(sendAsync) {
|
|
25
25
|
}
|
26
26
|
};
|
27
27
|
}
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW50ZXJuYWwvcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBdUJBLE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxTQUF3QjtJQUMxRCxLQUFLLFVBQVUsT0FBTyxDQUFDLE9BQTJCO1FBQ2hELE1BQU0sUUFBUSxHQUFHLE1BQU0sU0FBUyxDQUFDO1lBQy9CLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRTtZQUNkLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtZQUN0QixVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1NBQzNDLENBQUMsQ0FBQTtRQUNGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDN0MsQ0FBQztJQUVELE9BQU87UUFFTCxJQUFJLENBQUMsT0FBMkIsRUFBRSxRQUFzRDtZQUN0RixJQUFJLE9BQU8sSUFBSSxRQUFRLElBQUksUUFBUSxZQUFZLFFBQVEsRUFBRTtnQkFDdkQsT0FBTyxDQUFDLE9BQU8sQ0FBQztxQkFDYixJQUFJLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7cUJBQ25DLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQTthQUNuQjtpQkFBTTtnQkFDTCxNQUFNLElBQUksS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUE7YUFDakU7UUFDSCxDQUFDO1FBQ0QsU0FBUyxDQUFDLE9BQTJCLEVBQUUsUUFBcUQ7WUFDMUYsT0FBTyxDQUFDLE9BQU8sQ0FBQztpQkFDYixJQUFJLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQ25DLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNwQixDQUFDO0tBQ0YsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNlbmRBc3luY1Jlc3BvbnNlIHtcbiAganNvbkFueVJlc3BvbnNlOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZW5kQXN5bmNSZXF1ZXN0IHtcbiAgaWQ6IG51bWJlclxuICBtZXRob2Q6IHN0cmluZ1xuICBqc29uUGFyYW1zOiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgUlBDU2VuZGFibGVNZXNzYWdlID0ge1xuICBqc29ucnBjOiAnMi4wJ1xuICBpZDogbnVtYmVyXG4gIG1ldGhvZDogc3RyaW5nXG4gIHBhcmFtczogYW55W11cbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlRGljdCB7XG4gIFtrZXk6IHN0cmluZ106IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBTZW5kQXN5bmNUeXBlID0gKHBhcmFtczogU2VuZEFzeW5jUmVxdWVzdCkgPT4gUHJvbWlzZTxTZW5kQXN5bmNSZXNwb25zZT5cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEV0aGVyZXVtUHJvdmlkZXIoc2VuZEFzeW5jOiBTZW5kQXN5bmNUeXBlKSB7XG4gIGFzeW5jIGZ1bmN0aW9uIHJlcXVlc3QobWVzc2FnZTogUlBDU2VuZGFibGVNZXNzYWdlKSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZW5kQXN5bmMoe1xuICAgICAgaWQ6IG1lc3NhZ2UuaWQsXG4gICAgICBtZXRob2Q6IG1lc3NhZ2UubWV0aG9kLFxuICAgICAganNvblBhcmFtczogSlNPTi5zdHJpbmdpZnkobWVzc2FnZS5wYXJhbXMpXG4gICAgfSlcbiAgICByZXR1cm4gSlNPTi5wYXJzZShyZXNwb25zZS5qc29uQW55UmVzcG9uc2UpXG4gIH1cblxuICByZXR1cm4ge1xuICAgIC8vIEBpbnRlcm5hbFxuICAgIHNlbmQobWVzc2FnZTogUlBDU2VuZGFibGVNZXNzYWdlLCBjYWxsYmFjaz86IChlcnJvcjogRXJyb3IgfCBudWxsLCByZXN1bHQ/OiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgIGlmIChtZXNzYWdlICYmIGNhbGxiYWNrICYmIGNhbGxiYWNrIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgICAgcmVxdWVzdChtZXNzYWdlKVxuICAgICAgICAgIC50aGVuKCh4OiBhbnkpID0+IGNhbGxiYWNrKG51bGwsIHgpKVxuICAgICAgICAgIC5jYXRjaChjYWxsYmFjaylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRGVjZW50cmFsYW5kIHByb3ZpZGVyIG9ubHkgYWxsb3dzIGFzeW5jIGNhbGxzJylcbiAgICAgIH1cbiAgICB9LFxuICAgIHNlbmRBc3luYyhtZXNzYWdlOiBSUENTZW5kYWJsZU1lc3NhZ2UsIGNhbGxiYWNrOiAoZXJyb3I6IEVycm9yIHwgbnVsbCwgcmVzdWx0PzogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICByZXF1ZXN0KG1lc3NhZ2UpXG4gICAgICAgIC50aGVuKCh4OiBhbnkpID0+IGNhbGxiYWNrKG51bGwsIHgpKVxuICAgICAgICAuY2F0Y2goY2FsbGJhY2spXG4gICAgfVxuICB9XG59XG4iXX0=
|
@@ -24,8 +24,7 @@ export function createRendererTransport(engineApi) {
|
|
24
24
|
}
|
25
25
|
},
|
26
26
|
filter(message) {
|
27
|
-
if ((message.type === CrdtMessageType.PUT_COMPONENT ||
|
28
|
-
message.type === CrdtMessageType.DELETE_COMPONENT) &&
|
27
|
+
if ((message.type === CrdtMessageType.PUT_COMPONENT || message.type === CrdtMessageType.DELETE_COMPONENT) &&
|
29
28
|
message.componentId > MAX_STATIC_COMPONENT) {
|
30
29
|
return false;
|
31
30
|
}
|
@@ -34,4 +33,4 @@ export function createRendererTransport(engineApi) {
|
|
34
33
|
};
|
35
34
|
return rendererTransport;
|
36
35
|
}
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyZXJUcmFuc3BvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJuYWwvdHJhbnNwb3J0cy9yZW5kZXJlclRyYW5zcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQStCLGVBQWUsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQTtBQU9oRixNQUFNLFVBQVUsdUJBQXVCLENBQUMsU0FBZ0M7SUFDdEUsS0FBSyxVQUFVLGNBQWMsQ0FBQyxPQUFtQjtRQUMvQyxNQUFNLFFBQVEsR0FBRyxNQUFNLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQztZQUNsRCxJQUFJLEVBQUUsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDO1NBQzlCLENBQUMsQ0FBQTtRQUVGLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDckQsSUFBSSxpQkFBaUIsQ0FBQyxTQUFTLEVBQUU7Z0JBQy9CLEtBQUssTUFBTSxTQUFTLElBQUksUUFBUSxDQUFDLElBQUksRUFBRTtvQkFDckMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFBO2lCQUN2QzthQUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsTUFBTSxpQkFBaUIsR0FBYztRQUNuQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU87WUFDaEIsSUFBSTtnQkFDRixNQUFNLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQTthQUM5QjtZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNkLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUE7Z0JBQ3BCLFFBQVEsQ0FBQTthQUNUO1FBQ0gsQ0FBQztRQUNELE1BQU0sQ0FBQyxPQUF5QjtZQUU5QixJQUNFLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxlQUFlLENBQUMsYUFBYSxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDLGdCQUFnQixDQUFDO2dCQUVwRyxPQUFlLENBQUMsV0FBVyxHQUFHLG9CQUFvQixFQUNuRDtnQkFDQSxPQUFPLEtBQUssQ0FBQTthQUNiO1lBRUQsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFBO1FBQ2xCLENBQUM7S0FDRixDQUFBO0lBRUQsT0FBTyxpQkFBaUIsQ0FBQTtBQUMxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNwb3J0LCBUcmFuc3BvcnRNZXNzYWdlLCBDcmR0TWVzc2FnZVR5cGUgfSBmcm9tICdAZGNsL2VjcydcbmltcG9ydCB7IE1BWF9TVEFUSUNfQ09NUE9ORU5UIH0gZnJvbSAnQGRjbC9lY3MvZGlzdC9jb21wb25lbnRzL2NvbXBvbmVudC1udW1iZXInXG5pbXBvcnQgdHlwZSB7IENyZHRTZW5kVG9SZW5kZXJlclJlcXVlc3QsIENyZHRTZW5kVG9SZXNwb25zZSB9IGZyb20gJ35zeXN0ZW0vRW5naW5lQXBpJ1xuXG5leHBvcnQgdHlwZSBFbmdpbmVBcGlGb3JUcmFuc3BvcnQgPSB7XG4gIGNyZHRTZW5kVG9SZW5kZXJlcihib2R5OiBDcmR0U2VuZFRvUmVuZGVyZXJSZXF1ZXN0KTogUHJvbWlzZTxDcmR0U2VuZFRvUmVzcG9uc2U+XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZW5kZXJlclRyYW5zcG9ydChlbmdpbmVBcGk6IEVuZ2luZUFwaUZvclRyYW5zcG9ydCk6IFRyYW5zcG9ydCB7XG4gIGFzeW5jIGZ1bmN0aW9uIHNlbmRUb1JlbmRlcmVyKG1lc3NhZ2U6IFVpbnQ4QXJyYXkpIHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGVuZ2luZUFwaS5jcmR0U2VuZFRvUmVuZGVyZXIoe1xuICAgICAgZGF0YTogbmV3IFVpbnQ4QXJyYXkobWVzc2FnZSlcbiAgICB9KVxuXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLmRhdGEgJiYgcmVzcG9uc2UuZGF0YS5sZW5ndGgpIHtcbiAgICAgIGlmIChyZW5kZXJlclRyYW5zcG9ydC5vbm1lc3NhZ2UpIHtcbiAgICAgICAgZm9yIChjb25zdCBieXRlQXJyYXkgb2YgcmVzcG9uc2UuZGF0YSkge1xuICAgICAgICAgIHJlbmRlcmVyVHJhbnNwb3J0Lm9ubWVzc2FnZShieXRlQXJyYXkpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCByZW5kZXJlclRyYW5zcG9ydDogVHJhbnNwb3J0ID0ge1xuICAgIGFzeW5jIHNlbmQobWVzc2FnZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgc2VuZFRvUmVuZGVyZXIobWVzc2FnZSlcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpXG4gICAgICAgIGRlYnVnZ2VyXG4gICAgICB9XG4gICAgfSxcbiAgICBmaWx0ZXIobWVzc2FnZTogVHJhbnNwb3J0TWVzc2FnZSkge1xuICAgICAgLy8gT25seSBzZW5kIHJlbmRlcmVyIGNvbXBvbmVudHMgKFByb3RvIEdlbmVyYXRlZClcbiAgICAgIGlmIChcbiAgICAgICAgKG1lc3NhZ2UudHlwZSA9PT0gQ3JkdE1lc3NhZ2VUeXBlLlBVVF9DT01QT05FTlQgfHwgbWVzc2FnZS50eXBlID09PSBDcmR0TWVzc2FnZVR5cGUuREVMRVRFX0NPTVBPTkVOVCkgJiZcbiAgICAgICAgLy8gZmlsdGVyIG91dCBtZXNzYWdlcyBmb3Igbm9uLWNvcmUgY29tcG9uZW50c1xuICAgICAgICAobWVzc2FnZSBhcyBhbnkpLmNvbXBvbmVudElkID4gTUFYX1NUQVRJQ19DT01QT05FTlRcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICEhbWVzc2FnZVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZW5kZXJlclRyYW5zcG9ydFxufVxuIl19
|
package/messageBus.js
CHANGED
@@ -40,4 +40,4 @@ export class MessageBus {
|
|
40
40
|
});
|
41
41
|
}
|
42
42
|
}
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZUJ1cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNyYy9tZXNzYWdlQnVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBVyxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDdkQsT0FBTyxLQUFLLHdCQUF3QixNQUFNLGtDQUFrQyxDQUFBO0FBTTVFLE1BQU0sT0FBTyxVQUFVO0lBSXJCO1FBSFEsaUJBQVksR0FBYSxFQUFFLENBQUE7UUFDM0IsYUFBUSxHQUFHLEtBQUssQ0FBQTtJQUVULENBQUM7SUFFaEIsRUFBRSxDQUFDLE9BQWUsRUFBRSxRQUE4QztRQUNoRSxPQUFPLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM5QixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtZQUUvQixJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssT0FBTyxFQUFFO2dCQUN6QixRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUE7YUFDOUI7UUFDSCxDQUFDLENBQUUsQ0FBQTtJQUNMLENBQUM7SUFHRCxPQUFPLENBQUMsT0FBZTtRQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUUvQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDZCxDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQWUsRUFBRSxPQUF5QjtRQUM3QyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUE7UUFDMUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUMzQixjQUFjLENBQUMsZUFBZSxDQUFDO1lBQzdCLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLE1BQU0sRUFBRSxNQUFNO1NBQ2YsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVPLEtBQUs7UUFDWCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUM7WUFBRSxPQUFNO1FBQzFDLElBQUksSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFNO1FBRXpCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFHLENBQUE7UUFFMUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUE7UUFFcEIsd0JBQXdCLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQzdDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDSixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQTtZQUNyQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDZCxDQUFDLEVBQ0QsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNKLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFBO1FBQ3ZCLENBQUMsQ0FDRixDQUFBO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2ZXIgfSBmcm9tICcuL2ludGVybmFsL09ic2VydmFibGUnXG5pbXBvcnQgeyBJRXZlbnRzLCBvbkNvbW1zTWVzc2FnZSB9IGZyb20gJy4vb2JzZXJ2YWJsZXMnXG5pbXBvcnQgKiBhcyBjb21tdW5pY2F0aW9uc0NvbnRyb2xsZXIgZnJvbSAnfnN5c3RlbS9Db21tdW5pY2F0aW9uc0NvbnRyb2xsZXInXG5cbi8qKlxuICogQGFscGhhXG4gKiBAZGVwcmVjYXRlZCB0aGlzIHdpbGwgb25seSBleGlzdCBmb3IgYSBmZXcgcmVsZWFzZXMgaW4gRUNTN1xuICovXG5leHBvcnQgY2xhc3MgTWVzc2FnZUJ1cyB7XG4gIHByaXZhdGUgbWVzc2FnZVF1ZXVlOiBzdHJpbmdbXSA9IFtdXG4gIHByaXZhdGUgZmx1c2hpbmcgPSBmYWxzZVxuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBvbihtZXNzYWdlOiBzdHJpbmcsIGNhbGxiYWNrOiAodmFsdWU6IGFueSwgc2VuZGVyOiBzdHJpbmcpID0+IHZvaWQpOiBPYnNlcnZlcjxJRXZlbnRzWydjb21tcyddPiB7XG4gICAgcmV0dXJuIG9uQ29tbXNNZXNzYWdlLmFkZCgoZSkgPT4ge1xuICAgICAgY29uc3QgbSA9IEpTT04ucGFyc2UoZS5tZXNzYWdlKVxuXG4gICAgICBpZiAobS5tZXNzYWdlID09PSBtZXNzYWdlKSB7XG4gICAgICAgIGNhbGxiYWNrKG0ucGF5bG9hZCwgZS5zZW5kZXIpXG4gICAgICB9XG4gICAgfSkhXG4gIH1cblxuICAvLyBAaW50ZXJuYWxcbiAgc2VuZFJhdyhtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICB0aGlzLm1lc3NhZ2VRdWV1ZS5wdXNoKG1lc3NhZ2UpXG5cbiAgICB0aGlzLmZsdXNoKClcbiAgfVxuXG4gIGVtaXQobWVzc2FnZTogc3RyaW5nLCBwYXlsb2FkOiBSZWNvcmQ8YW55LCBhbnk+KSB7XG4gICAgY29uc3QgbWVzc2FnZVRvU2VuZCA9IEpTT04uc3RyaW5naWZ5KHsgbWVzc2FnZSwgcGF5bG9hZCB9KVxuICAgIHRoaXMuc2VuZFJhdyhtZXNzYWdlVG9TZW5kKVxuICAgIG9uQ29tbXNNZXNzYWdlLm5vdGlmeU9ic2VydmVycyh7XG4gICAgICBtZXNzYWdlOiBtZXNzYWdlVG9TZW5kLFxuICAgICAgc2VuZGVyOiAnc2VsZidcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBmbHVzaCgpIHtcbiAgICBpZiAodGhpcy5tZXNzYWdlUXVldWUubGVuZ3RoID09PSAwKSByZXR1cm5cbiAgICBpZiAodGhpcy5mbHVzaGluZykgcmV0dXJuXG5cbiAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5tZXNzYWdlUXVldWUuc2hpZnQoKSFcblxuICAgIHRoaXMuZmx1c2hpbmcgPSB0cnVlXG5cbiAgICBjb21tdW5pY2F0aW9uc0NvbnRyb2xsZXIuc2VuZCh7IG1lc3NhZ2UgfSkudGhlbihcbiAgICAgIChfKSA9PiB7XG4gICAgICAgIHRoaXMuZmx1c2hpbmcgPSBmYWxzZVxuICAgICAgICB0aGlzLmZsdXNoKClcbiAgICAgIH0sXG4gICAgICAoXykgPT4ge1xuICAgICAgICB0aGlzLmZsdXNoaW5nID0gZmFsc2VcbiAgICAgIH1cbiAgICApXG4gIH1cbn1cbiJdfQ==
|
package/observables.js
CHANGED
@@ -72,4 +72,4 @@ export async function pollEvents(sendBatch) {
|
|
72
72
|
}
|
73
73
|
}
|
74
74
|
}
|
75
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzcmMvb2JzZXJ2YWJsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBSWxELElBQUksaUJBQWlCLEdBRUEsS0FBSyxJQUFJLEVBQUUsR0FBRSxDQUFDLENBQUE7QUFpWW5DLFNBQVMsZ0JBQWdCLENBQUMsU0FBaUI7SUFDekMsT0FBTyxHQUFHLEVBQUU7UUFDVixpQkFBaUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDaEUsQ0FBQyxDQUFBO0FBQ0gsQ0FBQztBQU9ELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksVUFBVSxDQUNsRCxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FDakMsQ0FBQTtBQUtELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxzQkFBc0IsQ0FBQTtBQU9sRCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLFVBQVUsQ0FDbEQsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQ2pDLENBQUE7QUFLRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsc0JBQXNCLENBQUE7QUFPbEQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxVQUFVLENBQ2xELGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUMvQixDQUFBO0FBTUQsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsSUFBSSxVQUFVLENBRXhELGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQTtBQU12QyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxVQUFVLENBQ3hDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUMvQixDQUFBO0FBTUQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxVQUFV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ZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICcuL2ludGVybmFsL09ic2VydmFibGUnXG5pbXBvcnQgeyBRdWF0ZXJuaW9uVHlwZSwgVmVjdG9yM1R5cGUgfSBmcm9tICdAZGNsL2VjcydcbmltcG9ydCB7IE1hbnlFbnRpdHlBY3Rpb24sIFNlbmRCYXRjaFJlc3BvbnNlIH0gZnJvbSAnfnN5c3RlbS9FbmdpbmVBcGknXG5cbmxldCBzdWJzY3JpYmVGdW5jdGlvbjogKGV2ZW50OiB7XG4gIGV2ZW50SWQ6IHN0cmluZ1xufSkgPT4gUHJvbWlzZTxhbnk+ID0gYXN5bmMgKCkgPT4ge31cblxuLyoqIEBwdWJsaWMgKi9cbmV4cG9ydCB0eXBlIElucHV0RXZlbnRSZXN1bHQgPSB7XG4gIC8qKiBPcmlnaW4gb2YgdGhlIHJheSwgcmVsYXRpdmUgdG8gdGhlIHNjZW5lICovXG4gIG9yaWdpbjogVmVjdG9yM1R5cGVcbiAgLyoqIERpcmVjdGlvbiB2ZWN0b3Igb2YgdGhlIHJheSAobm9ybWFsaXplZCkgKi9cbiAgZGlyZWN0aW9uOiBWZWN0b3IzVHlwZVxuICAvKiogSUQgb2YgdGhlIHBvaW50ZXIgdGhhdCB0cmlnZ2VyZWQgdGhlIGV2ZW50ICovXG4gIGJ1dHRvbklkOiBudW1iZXJcbiAgLyoqIERvZXMgdGhpcyBwb2ludGVyIGV2ZW50IGhpdCBhbnkgb2JqZWN0PyAqL1xuICBoaXQ/OiB7XG4gICAgLyoqIExlbmd0aCBvZiB0aGUgcmF5ICovXG4gICAgbGVuZ3RoOiBudW1iZXJcbiAgICAvKiogSWYgdGhlIHJheSBoaXRzIGEgbWVzaCB0aGUgaW50ZXJzZWN0aW9uIHBvaW50IHdpbGwgYmUgdGhpcyAqL1xuICAgIGhpdFBvaW50OiBWZWN0b3IzVHlwZVxuICAgIC8qKiBJZiB0aGUgbWVzaCBoYXMgYSBuYW1lLCBpdCB3aWxsIGJlIGFzc2lnbmVkIHRvIG1lc2hOYW1lICovXG4gICAgbWVzaE5hbWU6IHN0cmluZ1xuICAgIC8qKiBOb3JtYWwgb2YgdGhlIGhpdCAqL1xuICAgIG5vcm1hbDogVmVjdG9yM1R5cGVcbiAgICAvKiogTm9ybWFsIG9mIHRoZSBoaXQsIGluIHdvcmxkIHNwYWNlICovXG4gICAgd29ybGROb3JtYWw6IFZlY3RvcjNUeXBlXG4gICAgLyoqIEhpdCBlbnRpdHkgSUQgaWYgYW55ICovXG4gICAgZW50aXR5SWQ6IHVua25vd25cbiAgfVxufVxuXG4vKiogQHB1YmxpYyAqL1xuZXhwb3J0IHR5cGUgR2xvYmFsSW5wdXRFdmVudFJlc3VsdCA9IElucHV0RXZlbnRSZXN1bHQgJiB7XG4gIC8qKlxuICAgKiBET1dOID0gMCxcbiAgICogVVAgPSAxXG4gICAqL1xuICB0eXBlOiAwIHwgMVxufVxuXG4vKiogQHB1YmxpYyAqL1xuZXhwb3J0IHR5cGUgUmF5Y2FzdFJlc3BvbnNlUGF5bG9hZDxUPiA9IHtcbiAgcXVlcnlJZDogc3RyaW5nXG4gIHF1ZXJ5VHlwZTogc3RyaW5nXG4gIHBheWxvYWQ6IFRcbn1cblxuLyoqIEBwdWJsaWMgKi9cbmV4cG9ydCB0eXBlIEdpem1vRHJhZ0VuZEV2ZW50ID0ge1xuICB0eXBlOiAnZ2l6bW9EcmFnRW5kZWQnXG4gIHRyYW5zZm9ybXM6IEFycmF5PHtcbiAgICBwb3NpdGlvbjogVmVjdG9yM1R5cGVcbiAgICByb3RhdGlvbjogUXVhdGVybmlvblR5cGVcbiAgICBzY2FsZTogVmVjdG9yM1R5cGVcbiAgICBlbnRpdHlJZDogdW5rbm93blxuICB9PlxufVxuXG4vKiogQHB1YmxpYyAqL1xuZXhwb3J0IHR5cGUgR2l6bW9TZWxlY3RlZEV2ZW50ID0ge1xuICB0eXBlOiAnZ2l6bW9TZWxlY3RlZCdcbiAgZ2l6bW9UeXBlOiAnTU9WRScgfCAnUk9UQVRFJyB8ICdTQ0FMRScgfCAnTk9ORSdcbiAgZW50aXRpZXM6IHN0cmluZ1tdXG59XG5cbi8vLyAtLS0gRVZFTlRTIC0tLVxuXG4vKiogQHB1YmxpYyAqL1xuZXhwb3J0IHR5cGUgSUV2ZW50TmFtZXMgPSBrZXlvZiBJRXZlbnRzXG5cbi8qKiBAcHVibGljICovXG5leHBvcnQgdHlwZSBFbmdpbmVFdmVudDxUIGV4dGVuZHMgSUV2ZW50TmFtZXMgPSBJRXZlbnROYW1lcywgViA9IElFdmVudHNbVF0+ID0ge1xuICAvKiogZXZlbnROYW1lICovXG4gIHR5cGU6IFRcbiAgZGF0YTogUmVhZG9ubHk8Vj5cbn1cblxuLyoqXG4gKiBAcHVibGljXG4gKiBOb3RlOiBEb24ndCB1c2UgYG9uYCBwcmVmaXggZm9yIElFdmVudHMgdG8gYXZvaWQgcmVkdW5kYW5jeSB3aXRoIGBldmVudC5vbihcIm9uRXZlbnROYW1lXCIpYCBzeW50YXguXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUV2ZW50cyB7XG4gIC8qKlxuICAgKiBgcG9zaXRpb25DaGFuZ2VkYCBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNhbWVyYSBjaGFuZ2VzXG4gICAqIFRoaXMgZXZlbnQgaXMgdGhyb3R0bGVkIHRvIDEwIHRpbWVzIHBlciBzZWNvbmQuXG4gICAqL1xuICBwb3NpdGlvbkNoYW5nZWQ6IHtcbiAgICAvKiogQ2FtZXJhIHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBiYXNlIHBhcmNlbCBvZiB0aGUgc2NlbmUgKi9cbiAgICBwb3NpdGlvbjogVmVjdG9yM1R5cGVcblxuICAgIC8qKiBDYW1lcmEgcG9zaXRpb24sIHRoaXMgaXMgYSBhYnNvbHV0ZSB3b3JsZCBwb3NpdGlvbiAqL1xuICAgIGNhbWVyYVBvc2l0aW9uOiBWZWN0b3IzVHlwZVxuXG4gICAgLyoqIEV5ZSBoZWlnaHQsIGluIG1ldGVycy4gKi9cbiAgICBwbGF5ZXJIZWlnaHQ6IG51bWJlclxuICB9XG5cbiAgLyoqXG4gICAqIGByb3RhdGlvbkNoYW5nZWRgIGlzIHRyaWdnZXJlZCB3aGVuIHRoZSByb3RhdGlvbiBvZiB0aGUgY2FtZXJhIGNoYW5nZXMuXG4gICAqIFRoaXMgZXZlbnQgaXMgdGhyb3R0bGVkIHRvIDEwIHRpbWVzIHBlciBzZWNvbmQuXG4gICAqL1xuICByb3RhdGlvbkNoYW5nZWQ6IHtcbiAgICAvKiogRGVncmVlIHZlY3Rvci4gU2FtZSBhcyBlbnRpdGllcyAqL1xuICAgIHJvdGF0aW9uOiBWZWN0b3IzVHlwZVxuICAgIC8qKiBSb3RhdGlvbiBxdWF0ZXJuaW9uLCB1c2VmdWwgaW4gc29tZSBzY2VuYXJpb3MuICovXG4gICAgcXVhdGVybmlvbjogUXVhdGVybmlvblR5cGVcbiAgfVxuXG4gIC8qKlxuICAgKiBgY2FtZXJhTW9kZUNoYW5nZWRgIGlzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIGNoYW5nZXMgdGhlIGNhbWVyYSBtb2RlXG4gICAqL1xuICBjYW1lcmFNb2RlQ2hhbmdlZDoge1xuICAgIC8qKlxuICAgICAqIEZJUlNUX1BFUlNPTiA9IDAsXG4gICAgICogVEhJUkRfUEVSU09OID0gMSxcbiAgICAgKiBGUkVFX0NBTUVSQSA9IDJcbiAgICAgKi9cbiAgICBjYW1lcmFNb2RlOiAwIHwgMSB8IDJcbiAgfVxuXG4gIC8qKlxuICAgKiBgaWRsZVN0YXRlQ2hhbmdlZGAgaXMgdHJpZ2dlcmVkIHdoZW4gdGhlIHVzZXIgbm90IG1vdmVzIGZvciBhIGRlZmluZWQgcGVyaW9kIG9mIHRpbWVcbiAgICovXG4gIGlkbGVTdGF0ZUNoYW5nZWQ6IHtcbiAgICBpc0lkbGU6IGJvb2xlYW5cbiAgfVxuXG4gIHBsYXllckV4cHJlc3Npb246IHtcbiAgICBleHByZXNzaW9uSWQ6IHN0cmluZ1xuICB9XG5cbiAgLyoqXG4gICAqIGBwb2ludGVyVXBgIGlzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIHJlbGVhc2VzIGFuIGlucHV0IHBvaW50ZXIuXG4gICAqIEl0IGNvdWxkIGJlIGEgVlIgY29udHJvbGxlciwgYSB0b3VjaCBzY3JlZW4gb3IgdGhlIG1vdXNlLlxuICAgKi9cbiAgcG9pbnRlclVwOiBJbnB1dEV2ZW50UmVzdWx0XG5cbiAgLyoqXG4gICAqIGBwb2ludGVyRG93bmAgaXMgdHJpZ2dlcmVkIHdoZW4gdGhlIHVzZXIgcHJlc3MgYW4gaW5wdXQgcG9pbnRlci5cbiAgICogSXQgY291bGQgYmUgYSBWUiBjb250cm9sbGVyLCBhIHRvdWNoIHNjcmVlbiBvciB0aGUgbW91c2UuXG4gICAqL1xuICBwb2ludGVyRG93bjogSW5wdXRFdmVudFJlc3VsdFxuXG4gIC8qKlxuICAgKiBgcG9pbnRlckV2ZW50YCBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgdXNlciBwcmVzcyBvciByZWxlYXNlcyBhbiBpbnB1dCBwb2ludGVyLlxuICAgKiBJdCBjb3VsZCBiZSBhIFZSIGNvbnRyb2xsZXIsIGEgdG91Y2ggc2NyZWVuIG9yIHRoZSBtb3VzZS5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGFjdGlvbkJ1dHRvbkV2ZW50IGluc3RlYWRcbiAgICovXG4gIHBvaW50ZXJFdmVudDogR2xvYmFsSW5wdXRFdmVudFJlc3VsdFxuXG4gIC8qKlxuICAgKiBgYWN0aW9uQnV0dG9uRXZlbnRgIGlzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIHByZXNzIG9yIHJlbGVhc2VzIGFuIGlucHV0IHBvaW50ZXIuXG4gICAqIEl0IGNvdWxkIGJlIGEgVlIgY29udHJvbGxlciwgYSB0b3VjaCBzY3JlZW4gb3IgdGhlIG1vdXNlLlxuICAgKlxuICAgKiBUaGlzIGV2ZW50IGlzIGV4YWN0bHkgdGhlIHNhbWUgYXMgYHBvaW50ZXJFdmVudGAgYnV0IHRoZSBsb2dpYyBpbiB0aGUgRUNTIGhhZCBhbiB1bnNvbHZhYmxlXG4gICAqIGNvbmRpdGlvbiB0aGF0IHJlcXVpcmVkIHVzIHRvIGNyZWF0ZSB0aGlzIG5ldyBldmVudCB0byBoYW5kbGUgbW9yZSBjYXNlcyBmb3IgbmV3IGJ1dHRvbnMuXG4gICAqL1xuICBhY3Rpb25CdXR0b25FdmVudDogR2xvYmFsSW5wdXRFdmVudFJlc3VsdFxuXG4gIC8qKlxuICAgKiBgcmF5Y2FzdFJlc3BvbnNlYCBpcyB0cmlnZ2VyZWQgaW4gcmVzcG9uc2UgdG8gYSByYXljYXN0IHF1ZXJ5XG4gICAqL1xuICByYXljYXN0UmVzcG9uc2U6IFJheWNhc3RSZXNwb25zZVBheWxvYWQ8YW55PlxuXG4gIC8qKlxuICAgKiBgY2hhdE1lc3NhZ2VgIGlzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIHNlbmRzIGEgbWVzc2FnZSB0aHJvdWdoIGNoYXQgZW50aXR5LlxuICAgKi9cbiAgY2hhdE1lc3NhZ2U6IHtcbiAgICBpZDogc3RyaW5nXG4gICAgc2VuZGVyOiBzdHJpbmdcbiAgICBtZXNzYWdlOiBzdHJpbmdcbiAgICBpc0NvbW1hbmQ6IGJvb2xlYW5cbiAgfVxuXG4gIC8qKlxuICAgKiBgb25DaGFuZ2VgIGlzIHRyaWdnZXJlZCB3aGVuIGFuIGVudGl0eSBjaGFuZ2VzIGl0cyBvd24gaW50ZXJuYWwgc3RhdGUuXG4gICAqIERpc3BhdGNoZWQgYnkgdGhlIGB1aS0qYCBlbnRpdGllcyB3aGVuIHRoZWlyIHZhbHVlIGlzIGNoYW5nZWQuIEl0IHRyaWdnZXJzIGEgY2FsbGJhY2suXG4gICAqIE5vdGljZTogT25seSBlbnRpdGllcyB3aXRoIElEIHdpbGwgYmUgbGlzdGVuaW5nIGZvciBjbGljayBldmVudHMuXG4gICAqL1xuICBvbkNoYW5nZToge1xuICAgIHZhbHVlPzogYW55XG4gICAgLyoqIElEIG9mIHRoZSBwb2ludGVyIHRoYXQgdHJpZ2dlcmVkIHRoZSBldmVudCAqL1xuICAgIHBvaW50ZXJJZD86IG51bWJlclxuICB9XG5cbiAgLyoqXG4gICAqIGBvbkVudGVyYCBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgdXNlciBoaXRzIHRoZSBcIkVudGVyXCIga2V5IGZyb20gdGhlIGtleWJvYXJkXG4gICAqIFVzZWQgcHJpbmNpcGFsbHkgYnkgdGhlIENoYXQgaW50ZXJuYWwgc2NlbmVcbiAgICovXG4gIG9uRW50ZXI6IHVua25vd25cblxuICAvKipcbiAgICogYG9uUG9pbnRlckxvY2tgIGlzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIGNsaWNrcyB0aGUgd29ybGQgY2FudmFzIGFuZCB0aGVcbiAgICogcG9pbnRlciBsb2NrcyB0byBpdCBzbyB0aGUgcG9pbnRlciBtb3ZlcyB0aGUgY2FtZXJhXG4gICAqL1xuICBvblBvaW50ZXJMb2NrOiB7XG4gICAgbG9ja2VkPzogYm9vbGVhblxuICB9XG5cbiAgLyoqXG4gICAqIGBvbkFuaW1hdGlvbkVuZGAgaXMgdHJpZ2dlcmVkIHdoZW4gYW4gYW5pbWF0aW9uIGNsaXAgZ2V0cyBmaW5pc2hcbiAgICovXG4gIG9uQW5pbWF0aW9uRW5kOiB7XG4gICAgY2xpcE5hbWU6IHN0cmluZ1xuICB9XG5cbiAgLyoqXG4gICAqIGBvbkZvY3VzYCBpcyB0cmlnZ2VyZWQgd2hlbiBhbiBlbnRpdHkgZm9jdXMgaXMgYWN0aXZlLlxuICAgKiBEaXNwYXRjaGVkIGJ5IHRoZSBgdWktaW5wdXRgIGFuZCBgdWktcGFzc3dvcmRgIGVudGl0aWVzIHdoZW4gdGhlIHZhbHVlIGlzIGNoYW5nZWQuXG4gICAqIEl0IHRyaWdnZXJzIGEgY2FsbGJhY2suXG4gICAqXG4gICAqIE5vdGljZTogT25seSBlbnRpdGllcyB3aXRoIElEIHdpbGwgYmUgbGlzdGVuaW5nIGZvciBjbGljayBldmVudHMuXG4gICAqL1xuICBvbkZvY3VzOiB7XG4gICAgLyoqIElEIG9mIHRoZSBlbnRpdGl5IG9mIHRoZSBldmVudCAqL1xuICAgIGVudGl0eUlkOiB1bmtub3duXG4gICAgLyoqIElEIG9mIHRoZSBwb2ludGVyIHRoYXQgdHJpZ2dlcmVkIHRoZSBldmVudCAqL1xuICAgIHBvaW50ZXJJZDogbnVtYmVyXG4gIH1cblxuICAvKipcbiAgICogYG9uQmx1cmAgaXMgdHJpZ2dlcmVkIHdoZW4gYW4gZW50aXR5IGxvc2VzIGl0cyBmb2N1cy5cbiAgICogRGlzcGF0Y2hlZCBieSB0aGUgYHVpLWlucHV0YCBhbmQgYHVpLXBhc3N3b3JkYCBlbnRpdGllcyB3aGVuIHRoZSB2YWx1ZSBpcyBjaGFuZ2VkLlxuICAgKiAgSXQgdHJpZ2dlcnMgYSBjYWxsYmFjay5cbiAgICpcbiAgICogTm90aWNlOiBPbmx5IGVudGl0aWVzIHdpdGggSUQgd2lsbCBiZSBsaXN0ZW5pbmcgZm9yIGNsaWNrIGV2ZW50cy5cbiAgICovXG4gIG9uQmx1cjoge1xuICAgIC8qKiBJRCBvZiB0aGUgZW50aXRpeSBvZiB0aGUgZXZlbnQgKi9cbiAgICBlbnRpdHlJZDogdW5rbm93blxuICAgIC8qKiBJRCBvZiB0aGUgcG9pbnRlciB0aGF0IHRyaWdnZXJlZCB0aGUgZXZlbnQgKi9cbiAgICBwb2ludGVySWQ6IG51bWJlclxuICB9XG5cbiAgLyoqIFRoZSBvbkNsaWNrIGV2ZW50IGlzIG9ubHkgdXNlZCBmb3IgVUkgZWxlbWVudHMgKi9cbiAgb25DbGljazoge1xuICAgIGVudGl0eUlkOiB1bmtub3duXG4gIH1cblxuICAvKipcbiAgICogVGhpcyBldmVudCBnZXRzIHRyaWdnZXJlZCB3aGVuIGFuIGVudGl0eSBsZWF2ZXMgdGhlIHNjZW5lIGZlbmNlcy5cbiAgICovXG4gIGVudGl0eU91dE9mU2NlbmU6IHtcbiAgICBlbnRpdHlJZDogdW5rbm93blxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgZ2V0cyB0cmlnZ2VyZWQgd2hlbiBhbiBlbnRpdHkgZW50ZXJzIHRoZSBzY2VuZSBmZW5jZXMuXG4gICAqL1xuICBlbnRpdHlCYWNrSW5TY2VuZToge1xuICAgIGVudGl0eUlkOiB1bmtub3duXG4gIH1cblxuICAvKipcbiAgICogVGhpcyBldmVudCBnZXRzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIGVudGVycyB0aGUgc2NlbmVcbiAgICovXG4gIG9uRW50ZXJTY2VuZToge1xuICAgIHVzZXJJZDogc3RyaW5nXG4gIH1cblxuICAvKipcbiAgICogVGhpcyBldmVudCBnZXRzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIGxlYXZlcyB0aGUgc2NlbmVcbiAgICovXG4gIG9uTGVhdmVTY2VuZToge1xuICAgIHVzZXJJZDogc3RyaW5nXG4gIH1cblxuICAvKipcbiAgICogVGhpcyBldmVudCBnZXRzIHRyaWdnZXJlZCBhZnRlciByZWNlaXZpbmcgYSBjb21tcyBtZXNzYWdlLlxuICAgKi9cbiAgY29tbXM6IHtcbiAgICBzZW5kZXI6IHN0cmluZ1xuICAgIG1lc3NhZ2U6IHN0cmluZ1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgaXMgdHJpZ2dlcmVkIG9uY2UgdGhlIHNjZW5lIHNob3VsZCBzdGFydC5cbiAgICovXG4gIHNjZW5lU3RhcnQ6IHVua25vd25cblxuICAvKipcbiAgICogVGhpcyBpcyB0cmlnZ2VyZWQgb25jZSB0aGUgYnVpbGRlciBzY2VuZSBpcyBsb2FkZWQuXG4gICAqL1xuICBidWlsZGVyU2NlbmVTdGFydDogdW5rbm93blxuXG4gIC8qKlxuICAgKiBUaGlzIGlzIHRyaWdnZXJlZCBvbmNlIHRoZSBidWlsZGVyIHNjZW5lIGlzIHVubG9hZGVkLlxuICAgKi9cbiAgYnVpbGRlclNjZW5lVW5sb2FkZWQ6IHVua25vd25cblxuICAvKipcbiAgICogQWZ0ZXIgY2hlY2tpbmcgZW50aXRpZXMgb3V0c2lkZSB0aGUgZmVuY2VzLCBpZiBhbnkgaXMgb3V0c2lkZSwgdGhpcyBldmVudFxuICAgKiB3aWxsIGJlIHRyaWdnZXJlZCB3aXRoIGFsbCB0aGUgZW50aXRpZXMgb3V0c2lkZSB0aGUgc2NlbmUuXG4gICAqL1xuICBlbnRpdGllc091dE9mQm91bmRhcmllczoge1xuICAgIGVudGl0aWVzOiBzdHJpbmdbXVxuICB9XG5cbiAgdXVpZEV2ZW50OiB7XG4gICAgdXVpZDogc3RyaW5nXG4gICAgcGF5bG9hZDogYW55XG4gIH1cblxuICBvblRleHRTdWJtaXQ6IHtcbiAgICB0ZXh0OiBzdHJpbmdcbiAgfVxuXG4gIG1ldHJpY3NVcGRhdGU6IHtcbiAgICBnaXZlbjogUmVjb3JkPHN0cmluZywgbnVtYmVyPlxuICAgIGxpbWl0OiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+XG4gIH1cblxuICBsaW1pdHNFeGNlZWRlZDoge1xuICAgIGdpdmVuOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+XG4gICAgbGltaXQ6IFJlY29yZDxzdHJpbmcsIG51bWJlcj5cbiAgfVxuXG4gIC8qKiBGb3IgZ2l6bW9zICovXG4gIGdpem1vRXZlbnQ6IEdpem1vRHJhZ0VuZEV2ZW50IHwgR2l6bW9TZWxlY3RlZEV2ZW50XG5cbiAgZXh0ZXJuYWxBY3Rpb246IHtcbiAgICB0eXBlOiBzdHJpbmdcbiAgICBba2V5OiBzdHJpbmddOiBhbnlcbiAgfVxuXG4gIHN0YXRlRXZlbnQ6IHtcbiAgICB0eXBlOiBzdHJpbmdcbiAgICBwYXlsb2FkOiBhbnlcbiAgfVxuXG4gIC8qKiBUaGlzIGlzIHRyaWdnZXJlZCBhdCBsZWFzdCBmb3IgZWFjaCB2aWRlb1N0YXR1cyBjaGFuZ2UgKi9cbiAgdmlkZW9FdmVudDoge1xuICAgIGNvbXBvbmVudElkOiBzdHJpbmdcbiAgICB2aWRlb0NsaXBJZDogc3RyaW5nXG4gICAgLyoqIFN0YXR1cywgY2FuIGJlIE5PTkUgPSAwLCBFUlJPUiA9IDEsIExPQURJTkcgPSAyLCBSRUFEWSA9IDMsIFBMQVlJTkcgPSA0LEJVRkZFUklORyA9IDUgKi9cbiAgICB2aWRlb1N0YXR1czogbnVtYmVyXG4gICAgLyoqIEN1cnJlbnQgb2Zmc2V0IHBvc2l0aW9uIGluIHNlY29uZHMgKi9cbiAgICBjdXJyZW50T2Zmc2V0OiBudW1iZXJcbiAgICAvKiogVmlkZW8gbGVuZ3RoIGluIHNlY29uZHMuIENhbiBiZSAtMSAqL1xuICAgIHRvdGFsVmlkZW9MZW5ndGg6IG51bWJlclxuICB9XG5cbiAgLyoqIFRoaXMgaXMgdHJpZ2dlciBldmVyeXRpbWUgYSBwcm9maWxlIGlzIGNoYW5nZWQgKi9cbiAgcHJvZmlsZUNoYW5nZWQ6IHtcbiAgICBldGhBZGRyZXNzOiBzdHJpbmdcbiAgICB2ZXJzaW9uOiBudW1iZXJcbiAgfVxuXG4gIC8qKiBUcmlnZ2VyZWQgd2hlbiBwZWVyJ3MgYXZhdGFyIGlzIGNvbm5lY3RlZCBhbmQgdmlzaWJsZSAqL1xuICBwbGF5ZXJDb25uZWN0ZWQ6IHtcbiAgICB1c2VySWQ6IHN0cmluZ1xuICB9XG5cbiAgLyoqIFRyaWdnZXJlZCB3aGVuIHBlZXIgZGlzY29ubmVjdCBhbmQvb3IgaXQgYXZhdGFyIGlzIHNldCBpbnZpc2libGUgYnkgY29tbXMgKi9cbiAgcGxheWVyRGlzY29ubmVjdGVkOiB7XG4gICAgdXNlcklkOiBzdHJpbmdcbiAgfVxuXG4gIC8qKiBUcmlnZ2VyZWQgd2hlbiBjdXJyZW50IHJlYWxtIG9yIGlzbGFuZCBjaGFuZ2VzICovXG4gIG9uUmVhbG1DaGFuZ2VkOiB7XG4gICAgZG9tYWluOiBzdHJpbmdcbiAgICByb29tOiBzdHJpbmdcbiAgICBzZXJ2ZXJOYW1lOiBzdHJpbmdcbiAgICBkaXNwbGF5TmFtZTogc3RyaW5nXG4gIH1cblxuICAvKiogVHJpZ2dlcmVkIHdoZW4gb3RoZXIgcGxheWVyJ3MgYXZhdGFyIGlzIGNsaWNrZWQgKi9cbiAgcGxheWVyQ2xpY2tlZDoge1xuICAgIHVzZXJJZDogc3RyaW5nXG4gICAgcmF5OiB7XG4gICAgICBvcmlnaW46IFZlY3RvcjNUeXBlXG4gICAgICBkaXJlY3Rpb246IFZlY3RvcjNUeXBlXG4gICAgICBkaXN0YW5jZTogbnVtYmVyXG4gICAgfVxuICB9XG5cbiAgLyoqIFRyaWdnZXJlZCB3aGVuIHBvaW50ZXIgc3RhcnQgaG92ZXJpbmcgYW4gZW50aXRpZXMnIHNoYXBlICovXG4gIHBvaW50ZXJIb3ZlckVudGVyOiB1bmtub3duXG5cbiAgLyoqIFRyaWdnZXJlZCB3aGVuIHBvaW50ZXIgc3RvcCBob3ZlcmluZyBhbiBlbnRpdGllcycgc2hhcGUgKi9cbiAgcG9pbnRlckhvdmVyRXhpdDogdW5rbm93blxufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICogVGhpcyBmdW5jdGlvbiBnZW5lcmF0ZXMgYSBjYWxsYmFjayB0aGF0IGlzIHBhc3NlZCB0byB0aGUgT2JzZXJ2YWJsZVxuICogY29uc3RydWN0b3IgdG8gc3Vic2NyaWJlIHRvIHRoZSBldmVudHMgb2YgdGhlIERlY2VudHJhbGFuZEludGVyZmFjZVxuICovXG5mdW5jdGlvbiBjcmVhdGVTdWJzY3JpYmVyKGV2ZW50TmFtZTogc3RyaW5nKSB7XG4gIHJldHVybiAoKSA9PiB7XG4gICAgc3Vic2NyaWJlRnVuY3Rpb24oeyBldmVudElkOiBldmVudE5hbWUgfSkuY2F0Y2goY29uc29sZS5lcnJvcilcbiAgfVxufVxuXG4vKipcbiAqIFRoZXNlIGV2ZW50cyBhcmUgdHJpZ2dlcmVkIGFmdGVyIHlvdXIgY2hhcmFjdGVyIGVudGVycyB0aGUgc2NlbmUuXG4gKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICovXG5leHBvcnQgY29uc3Qgb25FbnRlclNjZW5lT2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlPElFdmVudHNbJ29uRW50ZXJTY2VuZSddPihcbiAgY3JlYXRlU3Vic2NyaWJlcignb25FbnRlclNjZW5lJylcbilcblxuLyoqIEBwdWJsaWNcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLiBVc2Ugb25FbnRlclNjZW5lT2JzZXJ2YWJsZSBpbnN0ZWFkLiAqL1xuZXhwb3J0IGNvbnN0IG9uRW50ZXJTY2VuZSA9IG9uRW50ZXJTY2VuZU9ic2VydmFibGVcblxuLyoqXG4gKiBUaGVzZSBldmVudHMgYXJlIHRyaWdnZXJlZCBhZnRlciB5b3VyIGNoYXJhY3RlciBsZWF2ZXMgdGhlIHNjZW5lLlxuICogQHB1YmxpY1xuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IG9uTGVhdmVTY2VuZU9ic2VydmFibGUgPSBuZXcgT2JzZXJ2YWJsZTxJRXZlbnRzWydvbkxlYXZlU2NlbmUnXT4oXG4gIGNyZWF0ZVN1YnNjcmliZXIoJ29uTGVhdmVTY2VuZScpXG4pXG5cbi8qKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC4gVXNlIG9uTGVhdmVTY2VuZU9ic2VydmFibGUgaW5zdGVhZC4gKi9cbmV4cG9ydCBjb25zdCBvbkxlYXZlU2NlbmUgPSBvbkxlYXZlU2NlbmVPYnNlcnZhYmxlXG5cbi8qKlxuICogVGhpcyBldmVudCBpcyB0cmlnZ2VyZWQgYWZ0ZXIgYWxsIHRoZSByZXNvdXJjZXMgb2YgdGhlIHNjZW5lIHdlcmUgbG9hZGVkIChtb2RlbHMsIHRleHR1cmVzLCBldGMuLi4pXG4gKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICovXG5leHBvcnQgY29uc3Qgb25TY2VuZVJlYWR5T2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlPElFdmVudHNbJ3NjZW5lU3RhcnQnXT4oXG4gIGNyZWF0ZVN1YnNjcmliZXIoJ3NjZW5lU3RhcnQnKVxuKVxuXG4vKipcbiAqIEBwdWJsaWNcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBvblBsYXllckV4cHJlc3Npb25PYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGU8XG4gIElFdmVudHNbJ3BsYXllckV4cHJlc3Npb24nXVxuPihjcmVhdGVTdWJzY3JpYmVyKCdwbGF5ZXJFeHByZXNzaW9uJykpXG5cbi8qKlxuICogQHB1YmxpY1xuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IG9uVmlkZW9FdmVudCA9IG5ldyBPYnNlcnZhYmxlPElFdmVudHNbJ3ZpZGVvRXZlbnQnXT4oXG4gIGNyZWF0ZVN1YnNjcmliZXIoJ3ZpZGVvRXZlbnQnKVxuKVxuXG4vKipcbiAqIEBwdWJsaWNcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBvblByb2ZpbGVDaGFuZ2VkID0gbmV3IE9ic2VydmFibGU8SUV2ZW50c1sncHJvZmlsZUNoYW5nZWQnXT4oXG4gIGNyZWF0ZVN1YnNjcmliZXIoJ3Byb2ZpbGVDaGFuZ2VkJylcbilcblxuLyoqXG4gKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICovXG5leHBvcnQgY29uc3Qgb25QbGF5ZXJDb25uZWN0ZWRPYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGU8XG4gIElFdmVudHNbJ3BsYXllckNvbm5lY3RlZCddXG4+KGNyZWF0ZVN1YnNjcmliZXIoJ3BsYXllckNvbm5lY3RlZCcpKVxuXG4vKipcbiAqIEBwdWJsaWNcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBvblBsYXllckRpc2Nvbm5lY3RlZE9ic2VydmFibGUgPSBuZXcgT2JzZXJ2YWJsZTxcbiAgSUV2ZW50c1sncGxheWVyRGlzY29ubmVjdGVkJ11cbj4oY3JlYXRlU3Vic2NyaWJlcigncGxheWVyRGlzY29ubmVjdGVkJykpXG5cbi8qKlxuICogQHB1YmxpY1xuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IG9uUmVhbG1DaGFuZ2VkT2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlPFxuICBJRXZlbnRzWydvblJlYWxtQ2hhbmdlZCddXG4+KGNyZWF0ZVN1YnNjcmliZXIoJ29uUmVhbG1DaGFuZ2VkJykpXG5cbi8qKlxuICogQHB1YmxpY1xuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IG9uUGxheWVyQ2xpY2tlZE9ic2VydmFibGUgPSBuZXcgT2JzZXJ2YWJsZTxcbiAgSUV2ZW50c1sncGxheWVyQ2xpY2tlZCddXG4+KGNyZWF0ZVN1YnNjcmliZXIoJ3BsYXllckNsaWNrZWQnKSlcblxuLyoqXG4gKiBAaW50ZXJ0ZXJuYWxcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBvbkNvbW1zTWVzc2FnZSA9IG5ldyBPYnNlcnZhYmxlPElFdmVudHNbJ2NvbW1zJ10+KFxuICBjcmVhdGVTdWJzY3JpYmVyKCdjb21tcycpXG4pXG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRTdWJzY3JpYmVGdW5jdGlvbihcbiAgZm46IChldmVudDogeyBldmVudElkOiBzdHJpbmcgfSkgPT4gUHJvbWlzZTxhbnk+XG4pIHtcbiAgc3Vic2NyaWJlRnVuY3Rpb24gPSBmblxufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICogQGRlcHJlY2F0ZWQgdGhpcyBpcyBhbiBPTEQgQVBJLlxuICogVGhpcyBmdW5jdGlvbiB1c2VzIHRoZSBTREs2IHNlbmRCYXRjaCB0byBwb2xsIGV2ZW50cyBmcm9tIHRoZSByZW5kZXJlclxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcG9sbEV2ZW50cyhcbiAgc2VuZEJhdGNoOiAoYm9keTogTWFueUVudGl0eUFjdGlvbikgPT4gUHJvbWlzZTxTZW5kQmF0Y2hSZXNwb25zZT5cbikge1xuICBjb25zdCB7IGV2ZW50cyB9ID0gYXdhaXQgc2VuZEJhdGNoKHsgYWN0aW9uczogW10gfSlcbiAgZm9yIChjb25zdCBlIG9mIGV2ZW50cykge1xuICAgIGlmIChlLmdlbmVyaWMpIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKGUuZ2VuZXJpYy5ldmVudERhdGEpXG4gICAgICBzd2l0Y2ggKGUuZ2VuZXJpYy5ldmVudElkKSB7XG4gICAgICAgIGNhc2UgJ29uRW50ZXJTY2VuZSc6IHtcbiAgICAgICAgICBvbkVudGVyU2NlbmVPYnNlcnZhYmxlLm5vdGlmeU9ic2VydmVycyhcbiAgICAgICAgICAgIGRhdGEgYXMgSUV2ZW50c1snb25FbnRlclNjZW5lJ11cbiAgICAgICAgICApXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdvbkxlYXZlU2NlbmUnOiB7XG4gICAgICAgICAgb25MZWF2ZVNjZW5lT2JzZXJ2YWJsZS5ub3RpZnlPYnNlcnZlcnMoXG4gICAgICAgICAgICBkYXRhIGFzIElFdmVudHNbJ29uTGVhdmVTY2VuZSddXG4gICAgICAgICAgKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnc2NlbmVTdGFydCc6IHtcbiAgICAgICAgICBvblNjZW5lUmVhZHlPYnNlcnZhYmxlLm5vdGlmeU9ic2VydmVycyhkYXRhIGFzIElFdmVudHNbJ3NjZW5lU3RhcnQnXSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3BsYXllckV4cHJlc3Npb24nOiB7XG4gICAgICAgICAgb25QbGF5ZXJFeHByZXNzaW9uT2JzZXJ2YWJsZS5ub3RpZnlPYnNlcnZlcnMoXG4gICAgICAgICAgICBkYXRhIGFzIElFdmVudHNbJ3BsYXllckV4cHJlc3Npb24nXVxuICAgICAgICAgIClcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3ZpZGVvRXZlbnQnOiB7XG4gICAgICAgICAgY29uc3QgdmlkZW9EYXRhID0gZGF0YSBhcyBJRXZlbnRzWyd2aWRlb0V2ZW50J11cbiAgICAgICAgICBvblZpZGVvRXZlbnQubm90aWZ5T2JzZXJ2ZXJzKHZpZGVvRGF0YSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3Byb2ZpbGVDaGFuZ2VkJzoge1xuICAgICAgICAgIG9uUHJvZmlsZUNoYW5nZWQubm90aWZ5T2JzZXJ2ZXJzKGRhdGEgYXMgSUV2ZW50c1sncHJvZmlsZUNoYW5nZWQnXSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3BsYXllckNvbm5lY3RlZCc6IHtcbiAgICAgICAgICBvblBsYXllckNvbm5lY3RlZE9ic2VydmFibGUubm90aWZ5T2JzZXJ2ZXJzKFxuICAgICAgICAgICAgZGF0YSBhcyBJRXZlbnRzWydwbGF5ZXJDb25uZWN0ZWQnXVxuICAgICAgICAgIClcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3BsYXllckRpc2Nvbm5lY3RlZCc6IHtcbiAgICAgICAgICBvblBsYXllckRpc2Nvbm5lY3RlZE9ic2VydmFibGUubm90aWZ5T2JzZXJ2ZXJzKFxuICAgICAgICAgICAgZGF0YSBhcyBJRXZlbnRzWydwbGF5ZXJEaXNjb25uZWN0ZWQnXVxuICAgICAgICAgIClcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ29uUmVhbG1DaGFuZ2VkJzoge1xuICAgICAgICAgIG9uUmVhbG1DaGFuZ2VkT2JzZXJ2YWJsZS5ub3RpZnlPYnNlcnZlcnMoXG4gICAgICAgICAgICBkYXRhIGFzIElFdmVudHNbJ29uUmVhbG1DaGFuZ2VkJ11cbiAgICAgICAgICApXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdwbGF5ZXJDbGlja2VkJzoge1xuICAgICAgICAgIG9uUGxheWVyQ2xpY2tlZE9ic2VydmFibGUubm90aWZ5T2JzZXJ2ZXJzKFxuICAgICAgICAgICAgZGF0YSBhcyBJRXZlbnRzWydwbGF5ZXJDbGlja2VkJ11cbiAgICAgICAgICApXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzcmMvb2JzZXJ2YWJsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBSWxELElBQUksaUJBQWlCLEdBQWlELEtBQUssSUFBSSxFQUFFLEdBQUUsQ0FBQyxDQUFBO0FBaVlwRixTQUFTLGdCQUFnQixDQUFDLFNBQWlCO0lBQ3pDLE9BQU8sR0FBRyxFQUFFO1FBQ1YsaUJBQWlCLENBQUMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hFLENBQUMsQ0FBQTtBQUNILENBQUM7QUFPRCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLFVBQVUsQ0FBMEIsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQTtBQUsvRyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsc0JBQXNCLENBQUE7QUFPbEQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxVQUFVLENBQTBCLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUE7QUFLL0csTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLHNCQUFzQixDQUFBO0FBT2xELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksVUFBVSxDQUF3QixnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFBO0FBTTNHLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLElBQUksVUFBVSxDQUN4RCxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUNyQyxDQUFBO0FBTUQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksVUFBVSxDQUF3QixnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFBO0FBTWpHLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksVUFB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dCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAnLi9pbnRlcm5hbC9PYnNlcnZhYmxlJ1xuaW1wb3J0IHsgUXVhdGVybmlvblR5cGUsIFZlY3RvcjNUeXBlIH0gZnJvbSAnQGRjbC9lY3MnXG5pbXBvcnQgeyBNYW55RW50aXR5QWN0aW9uLCBTZW5kQmF0Y2hSZXNwb25zZSB9IGZyb20gJ35zeXN0ZW0vRW5naW5lQXBpJ1xuXG5sZXQgc3Vic2NyaWJlRnVuY3Rpb246IChldmVudDogeyBldmVudElkOiBzdHJpbmcgfSkgPT4gUHJvbWlzZTxhbnk+ID0gYXN5bmMgKCkgPT4ge31cblxuLyoqIEBwdWJsaWMgKi9cbmV4cG9ydCB0eXBlIElucHV0RXZlbnRSZXN1bHQgPSB7XG4gIC8qKiBPcmlnaW4gb2YgdGhlIHJheSwgcmVsYXRpdmUgdG8gdGhlIHNjZW5lICovXG4gIG9yaWdpbjogVmVjdG9yM1R5cGVcbiAgLyoqIERpcmVjdGlvbiB2ZWN0b3Igb2YgdGhlIHJheSAobm9ybWFsaXplZCkgKi9cbiAgZGlyZWN0aW9uOiBWZWN0b3IzVHlwZVxuICAvKiogSUQgb2YgdGhlIHBvaW50ZXIgdGhhdCB0cmlnZ2VyZWQgdGhlIGV2ZW50ICovXG4gIGJ1dHRvbklkOiBudW1iZXJcbiAgLyoqIERvZXMgdGhpcyBwb2ludGVyIGV2ZW50IGhpdCBhbnkgb2JqZWN0PyAqL1xuICBoaXQ/OiB7XG4gICAgLyoqIExlbmd0aCBvZiB0aGUgcmF5ICovXG4gICAgbGVuZ3RoOiBudW1iZXJcbiAgICAvKiogSWYgdGhlIHJheSBoaXRzIGEgbWVzaCB0aGUgaW50ZXJzZWN0aW9uIHBvaW50IHdpbGwgYmUgdGhpcyAqL1xuICAgIGhpdFBvaW50OiBWZWN0b3IzVHlwZVxuICAgIC8qKiBJZiB0aGUgbWVzaCBoYXMgYSBuYW1lLCBpdCB3aWxsIGJlIGFzc2lnbmVkIHRvIG1lc2hOYW1lICovXG4gICAgbWVzaE5hbWU6IHN0cmluZ1xuICAgIC8qKiBOb3JtYWwgb2YgdGhlIGhpdCAqL1xuICAgIG5vcm1hbDogVmVjdG9yM1R5cGVcbiAgICAvKiogTm9ybWFsIG9mIHRoZSBoaXQsIGluIHdvcmxkIHNwYWNlICovXG4gICAgd29ybGROb3JtYWw6IFZlY3RvcjNUeXBlXG4gICAgLyoqIEhpdCBlbnRpdHkgSUQgaWYgYW55ICovXG4gICAgZW50aXR5SWQ6IHVua25vd25cbiAgfVxufVxuXG4vKiogQHB1YmxpYyAqL1xuZXhwb3J0IHR5cGUgR2xvYmFsSW5wdXRFdmVudFJlc3VsdCA9IElucHV0RXZlbnRSZXN1bHQgJiB7XG4gIC8qKlxuICAgKiBET1dOID0gMCxcbiAgICogVVAgPSAxXG4gICAqL1xuICB0eXBlOiAwIHwgMVxufVxuXG4vKiogQHB1YmxpYyAqL1xuZXhwb3J0IHR5cGUgUmF5Y2FzdFJlc3BvbnNlUGF5bG9hZDxUPiA9IHtcbiAgcXVlcnlJZDogc3RyaW5nXG4gIHF1ZXJ5VHlwZTogc3RyaW5nXG4gIHBheWxvYWQ6IFRcbn1cblxuLyoqIEBwdWJsaWMgKi9cbmV4cG9ydCB0eXBlIEdpem1vRHJhZ0VuZEV2ZW50ID0ge1xuICB0eXBlOiAnZ2l6bW9EcmFnRW5kZWQnXG4gIHRyYW5zZm9ybXM6IEFycmF5PHtcbiAgICBwb3NpdGlvbjogVmVjdG9yM1R5cGVcbiAgICByb3RhdGlvbjogUXVhdGVybmlvblR5cGVcbiAgICBzY2FsZTogVmVjdG9yM1R5cGVcbiAgICBlbnRpdHlJZDogdW5rbm93blxuICB9PlxufVxuXG4vKiogQHB1YmxpYyAqL1xuZXhwb3J0IHR5cGUgR2l6bW9TZWxlY3RlZEV2ZW50ID0ge1xuICB0eXBlOiAnZ2l6bW9TZWxlY3RlZCdcbiAgZ2l6bW9UeXBlOiAnTU9WRScgfCAnUk9UQVRFJyB8ICdTQ0FMRScgfCAnTk9ORSdcbiAgZW50aXRpZXM6IHN0cmluZ1tdXG59XG5cbi8vLyAtLS0gRVZFTlRTIC0tLVxuXG4vKiogQHB1YmxpYyAqL1xuZXhwb3J0IHR5cGUgSUV2ZW50TmFtZXMgPSBrZXlvZiBJRXZlbnRzXG5cbi8qKiBAcHVibGljICovXG5leHBvcnQgdHlwZSBFbmdpbmVFdmVudDxUIGV4dGVuZHMgSUV2ZW50TmFtZXMgPSBJRXZlbnROYW1lcywgViA9IElFdmVudHNbVF0+ID0ge1xuICAvKiogZXZlbnROYW1lICovXG4gIHR5cGU6IFRcbiAgZGF0YTogUmVhZG9ubHk8Vj5cbn1cblxuLyoqXG4gKiBAcHVibGljXG4gKiBOb3RlOiBEb24ndCB1c2UgYG9uYCBwcmVmaXggZm9yIElFdmVudHMgdG8gYXZvaWQgcmVkdW5kYW5jeSB3aXRoIGBldmVudC5vbihcIm9uRXZlbnROYW1lXCIpYCBzeW50YXguXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUV2ZW50cyB7XG4gIC8qKlxuICAgKiBgcG9zaXRpb25DaGFuZ2VkYCBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNhbWVyYSBjaGFuZ2VzXG4gICAqIFRoaXMgZXZlbnQgaXMgdGhyb3R0bGVkIHRvIDEwIHRpbWVzIHBlciBzZWNvbmQuXG4gICAqL1xuICBwb3NpdGlvbkNoYW5nZWQ6IHtcbiAgICAvKiogQ2FtZXJhIHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBiYXNlIHBhcmNlbCBvZiB0aGUgc2NlbmUgKi9cbiAgICBwb3NpdGlvbjogVmVjdG9yM1R5cGVcblxuICAgIC8qKiBDYW1lcmEgcG9zaXRpb24sIHRoaXMgaXMgYSBhYnNvbHV0ZSB3b3JsZCBwb3NpdGlvbiAqL1xuICAgIGNhbWVyYVBvc2l0aW9uOiBWZWN0b3IzVHlwZVxuXG4gICAgLyoqIEV5ZSBoZWlnaHQsIGluIG1ldGVycy4gKi9cbiAgICBwbGF5ZXJIZWlnaHQ6IG51bWJlclxuICB9XG5cbiAgLyoqXG4gICAqIGByb3RhdGlvbkNoYW5nZWRgIGlzIHRyaWdnZXJlZCB3aGVuIHRoZSByb3RhdGlvbiBvZiB0aGUgY2FtZXJhIGNoYW5nZXMuXG4gICAqIFRoaXMgZXZlbnQgaXMgdGhyb3R0bGVkIHRvIDEwIHRpbWVzIHBlciBzZWNvbmQuXG4gICAqL1xuICByb3RhdGlvbkNoYW5nZWQ6IHtcbiAgICAvKiogRGVncmVlIHZlY3Rvci4gU2FtZSBhcyBlbnRpdGllcyAqL1xuICAgIHJvdGF0aW9uOiBWZWN0b3IzVHlwZVxuICAgIC8qKiBSb3RhdGlvbiBxdWF0ZXJuaW9uLCB1c2VmdWwgaW4gc29tZSBzY2VuYXJpb3MuICovXG4gICAgcXVhdGVybmlvbjogUXVhdGVybmlvblR5cGVcbiAgfVxuXG4gIC8qKlxuICAgKiBgY2FtZXJhTW9kZUNoYW5nZWRgIGlzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIGNoYW5nZXMgdGhlIGNhbWVyYSBtb2RlXG4gICAqL1xuICBjYW1lcmFNb2RlQ2hhbmdlZDoge1xuICAgIC8qKlxuICAgICAqIEZJUlNUX1BFUlNPTiA9IDAsXG4gICAgICogVEhJUkRfUEVSU09OID0gMSxcbiAgICAgKiBGUkVFX0NBTUVSQSA9IDJcbiAgICAgKi9cbiAgICBjYW1lcmFNb2RlOiAwIHwgMSB8IDJcbiAgfVxuXG4gIC8qKlxuICAgKiBgaWRsZVN0YXRlQ2hhbmdlZGAgaXMgdHJpZ2dlcmVkIHdoZW4gdGhlIHVzZXIgbm90IG1vdmVzIGZvciBhIGRlZmluZWQgcGVyaW9kIG9mIHRpbWVcbiAgICovXG4gIGlkbGVTdGF0ZUNoYW5nZWQ6IHtcbiAgICBpc0lkbGU6IGJvb2xlYW5cbiAgfVxuXG4gIHBsYXllckV4cHJlc3Npb246IHtcbiAgICBleHByZXNzaW9uSWQ6IHN0cmluZ1xuICB9XG5cbiAgLyoqXG4gICAqIGBwb2ludGVyVXBgIGlzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIHJlbGVhc2VzIGFuIGlucHV0IHBvaW50ZXIuXG4gICAqIEl0IGNvdWxkIGJlIGEgVlIgY29udHJvbGxlciwgYSB0b3VjaCBzY3JlZW4gb3IgdGhlIG1vdXNlLlxuICAgKi9cbiAgcG9pbnRlclVwOiBJbnB1dEV2ZW50UmVzdWx0XG5cbiAgLyoqXG4gICAqIGBwb2ludGVyRG93bmAgaXMgdHJpZ2dlcmVkIHdoZW4gdGhlIHVzZXIgcHJlc3MgYW4gaW5wdXQgcG9pbnRlci5cbiAgICogSXQgY291bGQgYmUgYSBWUiBjb250cm9sbGVyLCBhIHRvdWNoIHNjcmVlbiBvciB0aGUgbW91c2UuXG4gICAqL1xuICBwb2ludGVyRG93bjogSW5wdXRFdmVudFJlc3VsdFxuXG4gIC8qKlxuICAgKiBgcG9pbnRlckV2ZW50YCBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgdXNlciBwcmVzcyBvciByZWxlYXNlcyBhbiBpbnB1dCBwb2ludGVyLlxuICAgKiBJdCBjb3VsZCBiZSBhIFZSIGNvbnRyb2xsZXIsIGEgdG91Y2ggc2NyZWVuIG9yIHRoZSBtb3VzZS5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGFjdGlvbkJ1dHRvbkV2ZW50IGluc3RlYWRcbiAgICovXG4gIHBvaW50ZXJFdmVudDogR2xvYmFsSW5wdXRFdmVudFJlc3VsdFxuXG4gIC8qKlxuICAgKiBgYWN0aW9uQnV0dG9uRXZlbnRgIGlzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIHByZXNzIG9yIHJlbGVhc2VzIGFuIGlucHV0IHBvaW50ZXIuXG4gICAqIEl0IGNvdWxkIGJlIGEgVlIgY29udHJvbGxlciwgYSB0b3VjaCBzY3JlZW4gb3IgdGhlIG1vdXNlLlxuICAgKlxuICAgKiBUaGlzIGV2ZW50IGlzIGV4YWN0bHkgdGhlIHNhbWUgYXMgYHBvaW50ZXJFdmVudGAgYnV0IHRoZSBsb2dpYyBpbiB0aGUgRUNTIGhhZCBhbiB1bnNvbHZhYmxlXG4gICAqIGNvbmRpdGlvbiB0aGF0IHJlcXVpcmVkIHVzIHRvIGNyZWF0ZSB0aGlzIG5ldyBldmVudCB0byBoYW5kbGUgbW9yZSBjYXNlcyBmb3IgbmV3IGJ1dHRvbnMuXG4gICAqL1xuICBhY3Rpb25CdXR0b25FdmVudDogR2xvYmFsSW5wdXRFdmVudFJlc3VsdFxuXG4gIC8qKlxuICAgKiBgcmF5Y2FzdFJlc3BvbnNlYCBpcyB0cmlnZ2VyZWQgaW4gcmVzcG9uc2UgdG8gYSByYXljYXN0IHF1ZXJ5XG4gICAqL1xuICByYXljYXN0UmVzcG9uc2U6IFJheWNhc3RSZXNwb25zZVBheWxvYWQ8YW55PlxuXG4gIC8qKlxuICAgKiBgY2hhdE1lc3NhZ2VgIGlzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIHNlbmRzIGEgbWVzc2FnZSB0aHJvdWdoIGNoYXQgZW50aXR5LlxuICAgKi9cbiAgY2hhdE1lc3NhZ2U6IHtcbiAgICBpZDogc3RyaW5nXG4gICAgc2VuZGVyOiBzdHJpbmdcbiAgICBtZXNzYWdlOiBzdHJpbmdcbiAgICBpc0NvbW1hbmQ6IGJvb2xlYW5cbiAgfVxuXG4gIC8qKlxuICAgKiBgb25DaGFuZ2VgIGlzIHRyaWdnZXJlZCB3aGVuIGFuIGVudGl0eSBjaGFuZ2VzIGl0cyBvd24gaW50ZXJuYWwgc3RhdGUuXG4gICAqIERpc3BhdGNoZWQgYnkgdGhlIGB1aS0qYCBlbnRpdGllcyB3aGVuIHRoZWlyIHZhbHVlIGlzIGNoYW5nZWQuIEl0IHRyaWdnZXJzIGEgY2FsbGJhY2suXG4gICAqIE5vdGljZTogT25seSBlbnRpdGllcyB3aXRoIElEIHdpbGwgYmUgbGlzdGVuaW5nIGZvciBjbGljayBldmVudHMuXG4gICAqL1xuICBvbkNoYW5nZToge1xuICAgIHZhbHVlPzogYW55XG4gICAgLyoqIElEIG9mIHRoZSBwb2ludGVyIHRoYXQgdHJpZ2dlcmVkIHRoZSBldmVudCAqL1xuICAgIHBvaW50ZXJJZD86IG51bWJlclxuICB9XG5cbiAgLyoqXG4gICAqIGBvbkVudGVyYCBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgdXNlciBoaXRzIHRoZSBcIkVudGVyXCIga2V5IGZyb20gdGhlIGtleWJvYXJkXG4gICAqIFVzZWQgcHJpbmNpcGFsbHkgYnkgdGhlIENoYXQgaW50ZXJuYWwgc2NlbmVcbiAgICovXG4gIG9uRW50ZXI6IHVua25vd25cblxuICAvKipcbiAgICogYG9uUG9pbnRlckxvY2tgIGlzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIGNsaWNrcyB0aGUgd29ybGQgY2FudmFzIGFuZCB0aGVcbiAgICogcG9pbnRlciBsb2NrcyB0byBpdCBzbyB0aGUgcG9pbnRlciBtb3ZlcyB0aGUgY2FtZXJhXG4gICAqL1xuICBvblBvaW50ZXJMb2NrOiB7XG4gICAgbG9ja2VkPzogYm9vbGVhblxuICB9XG5cbiAgLyoqXG4gICAqIGBvbkFuaW1hdGlvbkVuZGAgaXMgdHJpZ2dlcmVkIHdoZW4gYW4gYW5pbWF0aW9uIGNsaXAgZ2V0cyBmaW5pc2hcbiAgICovXG4gIG9uQW5pbWF0aW9uRW5kOiB7XG4gICAgY2xpcE5hbWU6IHN0cmluZ1xuICB9XG5cbiAgLyoqXG4gICAqIGBvbkZvY3VzYCBpcyB0cmlnZ2VyZWQgd2hlbiBhbiBlbnRpdHkgZm9jdXMgaXMgYWN0aXZlLlxuICAgKiBEaXNwYXRjaGVkIGJ5IHRoZSBgdWktaW5wdXRgIGFuZCBgdWktcGFzc3dvcmRgIGVudGl0aWVzIHdoZW4gdGhlIHZhbHVlIGlzIGNoYW5nZWQuXG4gICAqIEl0IHRyaWdnZXJzIGEgY2FsbGJhY2suXG4gICAqXG4gICAqIE5vdGljZTogT25seSBlbnRpdGllcyB3aXRoIElEIHdpbGwgYmUgbGlzdGVuaW5nIGZvciBjbGljayBldmVudHMuXG4gICAqL1xuICBvbkZvY3VzOiB7XG4gICAgLyoqIElEIG9mIHRoZSBlbnRpdGl5IG9mIHRoZSBldmVudCAqL1xuICAgIGVudGl0eUlkOiB1bmtub3duXG4gICAgLyoqIElEIG9mIHRoZSBwb2ludGVyIHRoYXQgdHJpZ2dlcmVkIHRoZSBldmVudCAqL1xuICAgIHBvaW50ZXJJZDogbnVtYmVyXG4gIH1cblxuICAvKipcbiAgICogYG9uQmx1cmAgaXMgdHJpZ2dlcmVkIHdoZW4gYW4gZW50aXR5IGxvc2VzIGl0cyBmb2N1cy5cbiAgICogRGlzcGF0Y2hlZCBieSB0aGUgYHVpLWlucHV0YCBhbmQgYHVpLXBhc3N3b3JkYCBlbnRpdGllcyB3aGVuIHRoZSB2YWx1ZSBpcyBjaGFuZ2VkLlxuICAgKiAgSXQgdHJpZ2dlcnMgYSBjYWxsYmFjay5cbiAgICpcbiAgICogTm90aWNlOiBPbmx5IGVudGl0aWVzIHdpdGggSUQgd2lsbCBiZSBsaXN0ZW5pbmcgZm9yIGNsaWNrIGV2ZW50cy5cbiAgICovXG4gIG9uQmx1cjoge1xuICAgIC8qKiBJRCBvZiB0aGUgZW50aXRpeSBvZiB0aGUgZXZlbnQgKi9cbiAgICBlbnRpdHlJZDogdW5rbm93blxuICAgIC8qKiBJRCBvZiB0aGUgcG9pbnRlciB0aGF0IHRyaWdnZXJlZCB0aGUgZXZlbnQgKi9cbiAgICBwb2ludGVySWQ6IG51bWJlclxuICB9XG5cbiAgLyoqIFRoZSBvbkNsaWNrIGV2ZW50IGlzIG9ubHkgdXNlZCBmb3IgVUkgZWxlbWVudHMgKi9cbiAgb25DbGljazoge1xuICAgIGVudGl0eUlkOiB1bmtub3duXG4gIH1cblxuICAvKipcbiAgICogVGhpcyBldmVudCBnZXRzIHRyaWdnZXJlZCB3aGVuIGFuIGVudGl0eSBsZWF2ZXMgdGhlIHNjZW5lIGZlbmNlcy5cbiAgICovXG4gIGVudGl0eU91dE9mU2NlbmU6IHtcbiAgICBlbnRpdHlJZDogdW5rbm93blxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgZ2V0cyB0cmlnZ2VyZWQgd2hlbiBhbiBlbnRpdHkgZW50ZXJzIHRoZSBzY2VuZSBmZW5jZXMuXG4gICAqL1xuICBlbnRpdHlCYWNrSW5TY2VuZToge1xuICAgIGVudGl0eUlkOiB1bmtub3duXG4gIH1cblxuICAvKipcbiAgICogVGhpcyBldmVudCBnZXRzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIGVudGVycyB0aGUgc2NlbmVcbiAgICovXG4gIG9uRW50ZXJTY2VuZToge1xuICAgIHVzZXJJZDogc3RyaW5nXG4gIH1cblxuICAvKipcbiAgICogVGhpcyBldmVudCBnZXRzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIGxlYXZlcyB0aGUgc2NlbmVcbiAgICovXG4gIG9uTGVhdmVTY2VuZToge1xuICAgIHVzZXJJZDogc3RyaW5nXG4gIH1cblxuICAvKipcbiAgICogVGhpcyBldmVudCBnZXRzIHRyaWdnZXJlZCBhZnRlciByZWNlaXZpbmcgYSBjb21tcyBtZXNzYWdlLlxuICAgKi9cbiAgY29tbXM6IHtcbiAgICBzZW5kZXI6IHN0cmluZ1xuICAgIG1lc3NhZ2U6IHN0cmluZ1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgaXMgdHJpZ2dlcmVkIG9uY2UgdGhlIHNjZW5lIHNob3VsZCBzdGFydC5cbiAgICovXG4gIHNjZW5lU3RhcnQ6IHVua25vd25cblxuICAvKipcbiAgICogVGhpcyBpcyB0cmlnZ2VyZWQgb25jZSB0aGUgYnVpbGRlciBzY2VuZSBpcyBsb2FkZWQuXG4gICAqL1xuICBidWlsZGVyU2NlbmVTdGFydDogdW5rbm93blxuXG4gIC8qKlxuICAgKiBUaGlzIGlzIHRyaWdnZXJlZCBvbmNlIHRoZSBidWlsZGVyIHNjZW5lIGlzIHVubG9hZGVkLlxuICAgKi9cbiAgYnVpbGRlclNjZW5lVW5sb2FkZWQ6IHVua25vd25cblxuICAvKipcbiAgICogQWZ0ZXIgY2hlY2tpbmcgZW50aXRpZXMgb3V0c2lkZSB0aGUgZmVuY2VzLCBpZiBhbnkgaXMgb3V0c2lkZSwgdGhpcyBldmVudFxuICAgKiB3aWxsIGJlIHRyaWdnZXJlZCB3aXRoIGFsbCB0aGUgZW50aXRpZXMgb3V0c2lkZSB0aGUgc2NlbmUuXG4gICAqL1xuICBlbnRpdGllc091dE9mQm91bmRhcmllczoge1xuICAgIGVudGl0aWVzOiBzdHJpbmdbXVxuICB9XG5cbiAgdXVpZEV2ZW50OiB7XG4gICAgdXVpZDogc3RyaW5nXG4gICAgcGF5bG9hZDogYW55XG4gIH1cblxuICBvblRleHRTdWJtaXQ6IHtcbiAgICB0ZXh0OiBzdHJpbmdcbiAgfVxuXG4gIG1ldHJpY3NVcGRhdGU6IHtcbiAgICBnaXZlbjogUmVjb3JkPHN0cmluZywgbnVtYmVyPlxuICAgIGxpbWl0OiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+XG4gIH1cblxuICBsaW1pdHNFeGNlZWRlZDoge1xuICAgIGdpdmVuOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+XG4gICAgbGltaXQ6IFJlY29yZDxzdHJpbmcsIG51bWJlcj5cbiAgfVxuXG4gIC8qKiBGb3IgZ2l6bW9zICovXG4gIGdpem1vRXZlbnQ6IEdpem1vRHJhZ0VuZEV2ZW50IHwgR2l6bW9TZWxlY3RlZEV2ZW50XG5cbiAgZXh0ZXJuYWxBY3Rpb246IHtcbiAgICB0eXBlOiBzdHJpbmdcbiAgICBba2V5OiBzdHJpbmddOiBhbnlcbiAgfVxuXG4gIHN0YXRlRXZlbnQ6IHtcbiAgICB0eXBlOiBzdHJpbmdcbiAgICBwYXlsb2FkOiBhbnlcbiAgfVxuXG4gIC8qKiBUaGlzIGlzIHRyaWdnZXJlZCBhdCBsZWFzdCBmb3IgZWFjaCB2aWRlb1N0YXR1cyBjaGFuZ2UgKi9cbiAgdmlkZW9FdmVudDoge1xuICAgIGNvbXBvbmVudElkOiBzdHJpbmdcbiAgICB2aWRlb0NsaXBJZDogc3RyaW5nXG4gICAgLyoqIFN0YXR1cywgY2FuIGJlIE5PTkUgPSAwLCBFUlJPUiA9IDEsIExPQURJTkcgPSAyLCBSRUFEWSA9IDMsIFBMQVlJTkcgPSA0LEJVRkZFUklORyA9IDUgKi9cbiAgICB2aWRlb1N0YXR1czogbnVtYmVyXG4gICAgLyoqIEN1cnJlbnQgb2Zmc2V0IHBvc2l0aW9uIGluIHNlY29uZHMgKi9cbiAgICBjdXJyZW50T2Zmc2V0OiBudW1iZXJcbiAgICAvKiogVmlkZW8gbGVuZ3RoIGluIHNlY29uZHMuIENhbiBiZSAtMSAqL1xuICAgIHRvdGFsVmlkZW9MZW5ndGg6IG51bWJlclxuICB9XG5cbiAgLyoqIFRoaXMgaXMgdHJpZ2dlciBldmVyeXRpbWUgYSBwcm9maWxlIGlzIGNoYW5nZWQgKi9cbiAgcHJvZmlsZUNoYW5nZWQ6IHtcbiAgICBldGhBZGRyZXNzOiBzdHJpbmdcbiAgICB2ZXJzaW9uOiBudW1iZXJcbiAgfVxuXG4gIC8qKiBUcmlnZ2VyZWQgd2hlbiBwZWVyJ3MgYXZhdGFyIGlzIGNvbm5lY3RlZCBhbmQgdmlzaWJsZSAqL1xuICBwbGF5ZXJDb25uZWN0ZWQ6IHtcbiAgICB1c2VySWQ6IHN0cmluZ1xuICB9XG5cbiAgLyoqIFRyaWdnZXJlZCB3aGVuIHBlZXIgZGlzY29ubmVjdCBhbmQvb3IgaXQgYXZhdGFyIGlzIHNldCBpbnZpc2libGUgYnkgY29tbXMgKi9cbiAgcGxheWVyRGlzY29ubmVjdGVkOiB7XG4gICAgdXNlcklkOiBzdHJpbmdcbiAgfVxuXG4gIC8qKiBUcmlnZ2VyZWQgd2hlbiBjdXJyZW50IHJlYWxtIG9yIGlzbGFuZCBjaGFuZ2VzICovXG4gIG9uUmVhbG1DaGFuZ2VkOiB7XG4gICAgZG9tYWluOiBzdHJpbmdcbiAgICByb29tOiBzdHJpbmdcbiAgICBzZXJ2ZXJOYW1lOiBzdHJpbmdcbiAgICBkaXNwbGF5TmFtZTogc3RyaW5nXG4gIH1cblxuICAvKiogVHJpZ2dlcmVkIHdoZW4gb3RoZXIgcGxheWVyJ3MgYXZhdGFyIGlzIGNsaWNrZWQgKi9cbiAgcGxheWVyQ2xpY2tlZDoge1xuICAgIHVzZXJJZDogc3RyaW5nXG4gICAgcmF5OiB7XG4gICAgICBvcmlnaW46IFZlY3RvcjNUeXBlXG4gICAgICBkaXJlY3Rpb246IFZlY3RvcjNUeXBlXG4gICAgICBkaXN0YW5jZTogbnVtYmVyXG4gICAgfVxuICB9XG5cbiAgLyoqIFRyaWdnZXJlZCB3aGVuIHBvaW50ZXIgc3RhcnQgaG92ZXJpbmcgYW4gZW50aXRpZXMnIHNoYXBlICovXG4gIHBvaW50ZXJIb3ZlckVudGVyOiB1bmtub3duXG5cbiAgLyoqIFRyaWdnZXJlZCB3aGVuIHBvaW50ZXIgc3RvcCBob3ZlcmluZyBhbiBlbnRpdGllcycgc2hhcGUgKi9cbiAgcG9pbnRlckhvdmVyRXhpdDogdW5rbm93blxufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICogVGhpcyBmdW5jdGlvbiBnZW5lcmF0ZXMgYSBjYWxsYmFjayB0aGF0IGlzIHBhc3NlZCB0byB0aGUgT2JzZXJ2YWJsZVxuICogY29uc3RydWN0b3IgdG8gc3Vic2NyaWJlIHRvIHRoZSBldmVudHMgb2YgdGhlIERlY2VudHJhbGFuZEludGVyZmFjZVxuICovXG5mdW5jdGlvbiBjcmVhdGVTdWJzY3JpYmVyKGV2ZW50TmFtZTogc3RyaW5nKSB7XG4gIHJldHVybiAoKSA9PiB7XG4gICAgc3Vic2NyaWJlRnVuY3Rpb24oeyBldmVudElkOiBldmVudE5hbWUgfSkuY2F0Y2goY29uc29sZS5lcnJvcilcbiAgfVxufVxuXG4vKipcbiAqIFRoZXNlIGV2ZW50cyBhcmUgdHJpZ2dlcmVkIGFmdGVyIHlvdXIgY2hhcmFjdGVyIGVudGVycyB0aGUgc2NlbmUuXG4gKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICovXG5leHBvcnQgY29uc3Qgb25FbnRlclNjZW5lT2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlPElFdmVudHNbJ29uRW50ZXJTY2VuZSddPihjcmVhdGVTdWJzY3JpYmVyKCdvbkVudGVyU2NlbmUnKSlcblxuLyoqIEBwdWJsaWNcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLiBVc2Ugb25FbnRlclNjZW5lT2JzZXJ2YWJsZSBpbnN0ZWFkLiAqL1xuZXhwb3J0IGNvbnN0IG9uRW50ZXJTY2VuZSA9IG9uRW50ZXJTY2VuZU9ic2VydmFibGVcblxuLyoqXG4gKiBUaGVzZSBldmVudHMgYXJlIHRyaWdnZXJlZCBhZnRlciB5b3VyIGNoYXJhY3RlciBsZWF2ZXMgdGhlIHNjZW5lLlxuICogQHB1YmxpY1xuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IG9uTGVhdmVTY2VuZU9ic2VydmFibGUgPSBuZXcgT2JzZXJ2YWJsZTxJRXZlbnRzWydvbkxlYXZlU2NlbmUnXT4oY3JlYXRlU3Vic2NyaWJlcignb25MZWF2ZVNjZW5lJykpXG5cbi8qKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC4gVXNlIG9uTGVhdmVTY2VuZU9ic2VydmFibGUgaW5zdGVhZC4gKi9cbmV4cG9ydCBjb25zdCBvbkxlYXZlU2NlbmUgPSBvbkxlYXZlU2NlbmVPYnNlcnZhYmxlXG5cbi8qKlxuICogVGhpcyBldmVudCBpcyB0cmlnZ2VyZWQgYWZ0ZXIgYWxsIHRoZSByZXNvdXJjZXMgb2YgdGhlIHNjZW5lIHdlcmUgbG9hZGVkIChtb2RlbHMsIHRleHR1cmVzLCBldGMuLi4pXG4gKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICovXG5leHBvcnQgY29uc3Qgb25TY2VuZVJlYWR5T2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlPElFdmVudHNbJ3NjZW5lU3RhcnQnXT4oY3JlYXRlU3Vic2NyaWJlcignc2NlbmVTdGFydCcpKVxuXG4vKipcbiAqIEBwdWJsaWNcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBvblBsYXllckV4cHJlc3Npb25PYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGU8SUV2ZW50c1sncGxheWVyRXhwcmVzc2lvbiddPihcbiAgY3JlYXRlU3Vic2NyaWJlcigncGxheWVyRXhwcmVzc2lvbicpXG4pXG5cbi8qKlxuICogQHB1YmxpY1xuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IG9uVmlkZW9FdmVudCA9IG5ldyBPYnNlcnZhYmxlPElFdmVudHNbJ3ZpZGVvRXZlbnQnXT4oY3JlYXRlU3Vic2NyaWJlcigndmlkZW9FdmVudCcpKVxuXG4vKipcbiAqIEBwdWJsaWNcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBvblByb2ZpbGVDaGFuZ2VkID0gbmV3IE9ic2VydmFibGU8SUV2ZW50c1sncHJvZmlsZUNoYW5nZWQnXT4oY3JlYXRlU3Vic2NyaWJlcigncHJvZmlsZUNoYW5nZWQnKSlcblxuLyoqXG4gKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICovXG5leHBvcnQgY29uc3Qgb25QbGF5ZXJDb25uZWN0ZWRPYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGU8SUV2ZW50c1sncGxheWVyQ29ubmVjdGVkJ10+KFxuICBjcmVhdGVTdWJzY3JpYmVyKCdwbGF5ZXJDb25uZWN0ZWQnKVxuKVxuXG4vKipcbiAqIEBwdWJsaWNcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBvblBsYXllckRpc2Nvbm5lY3RlZE9ic2VydmFibGUgPSBuZXcgT2JzZXJ2YWJsZTxJRXZlbnRzWydwbGF5ZXJEaXNjb25uZWN0ZWQnXT4oXG4gIGNyZWF0ZVN1YnNjcmliZXIoJ3BsYXllckRpc2Nvbm5lY3RlZCcpXG4pXG5cbi8qKlxuICogQHB1YmxpY1xuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IG9uUmVhbG1DaGFuZ2VkT2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlPElFdmVudHNbJ29uUmVhbG1DaGFuZ2VkJ10+KGNyZWF0ZVN1YnNjcmliZXIoJ29uUmVhbG1DaGFuZ2VkJykpXG5cbi8qKlxuICogQHB1YmxpY1xuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IG9uUGxheWVyQ2xpY2tlZE9ic2VydmFibGUgPSBuZXcgT2JzZXJ2YWJsZTxJRXZlbnRzWydwbGF5ZXJDbGlja2VkJ10+KGNyZWF0ZVN1YnNjcmliZXIoJ3BsYXllckNsaWNrZWQnKSlcblxuLyoqXG4gKiBAaW50ZXJ0ZXJuYWxcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBvbkNvbW1zTWVzc2FnZSA9IG5ldyBPYnNlcnZhYmxlPElFdmVudHNbJ2NvbW1zJ10+KGNyZWF0ZVN1YnNjcmliZXIoJ2NvbW1zJykpXG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRTdWJzY3JpYmVGdW5jdGlvbihmbjogKGV2ZW50OiB7IGV2ZW50SWQ6IHN0cmluZyB9KSA9PiBQcm9taXNlPGFueT4pIHtcbiAgc3Vic2NyaWJlRnVuY3Rpb24gPSBmblxufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICogQGRlcHJlY2F0ZWQgdGhpcyBpcyBhbiBPTEQgQVBJLlxuICogVGhpcyBmdW5jdGlvbiB1c2VzIHRoZSBTREs2IHNlbmRCYXRjaCB0byBwb2xsIGV2ZW50cyBmcm9tIHRoZSByZW5kZXJlclxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcG9sbEV2ZW50cyhzZW5kQmF0Y2g6IChib2R5OiBNYW55RW50aXR5QWN0aW9uKSA9PiBQcm9taXNlPFNlbmRCYXRjaFJlc3BvbnNlPikge1xuICBjb25zdCB7IGV2ZW50cyB9ID0gYXdhaXQgc2VuZEJhdGNoKHsgYWN0aW9uczogW10gfSlcbiAgZm9yIChjb25zdCBlIG9mIGV2ZW50cykge1xuICAgIGlmIChlLmdlbmVyaWMpIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKGUuZ2VuZXJpYy5ldmVudERhdGEpXG4gICAgICBzd2l0Y2ggKGUuZ2VuZXJpYy5ldmVudElkKSB7XG4gICAgICAgIGNhc2UgJ29uRW50ZXJTY2VuZSc6IHtcbiAgICAgICAgICBvbkVudGVyU2NlbmVPYnNlcnZhYmxlLm5vdGlmeU9ic2VydmVycyhkYXRhIGFzIElFdmVudHNbJ29uRW50ZXJTY2VuZSddKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnb25MZWF2ZVNjZW5lJzoge1xuICAgICAgICAgIG9uTGVhdmVTY2VuZU9ic2VydmFibGUubm90aWZ5T2JzZXJ2ZXJzKGRhdGEgYXMgSUV2ZW50c1snb25MZWF2ZVNjZW5lJ10pXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdzY2VuZVN0YXJ0Jzoge1xuICAgICAgICAgIG9uU2NlbmVSZWFkeU9ic2VydmFibGUubm90aWZ5T2JzZXJ2ZXJzKGRhdGEgYXMgSUV2ZW50c1snc2NlbmVTdGFydCddKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAncGxheWVyRXhwcmVzc2lvbic6IHtcbiAgICAgICAgICBvblBsYXllckV4cHJlc3Npb25PYnNlcnZhYmxlLm5vdGlmeU9ic2VydmVycyhkYXRhIGFzIElFdmVudHNbJ3BsYXllckV4cHJlc3Npb24nXSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3ZpZGVvRXZlbnQnOiB7XG4gICAgICAgICAgY29uc3QgdmlkZW9EYXRhID0gZGF0YSBhcyBJRXZlbnRzWyd2aWRlb0V2ZW50J11cbiAgICAgICAgICBvblZpZGVvRXZlbnQubm90aWZ5T2JzZXJ2ZXJzKHZpZGVvRGF0YSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3Byb2ZpbGVDaGFuZ2VkJzoge1xuICAgICAgICAgIG9uUHJvZmlsZUNoYW5nZWQubm90aWZ5T2JzZXJ2ZXJzKGRhdGEgYXMgSUV2ZW50c1sncHJvZmlsZUNoYW5nZWQnXSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3BsYXllckNvbm5lY3RlZCc6IHtcbiAgICAgICAgICBvblBsYXllckNvbm5lY3RlZE9ic2VydmFibGUubm90aWZ5T2JzZXJ2ZXJzKGRhdGEgYXMgSUV2ZW50c1sncGxheWVyQ29ubmVjdGVkJ10pXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdwbGF5ZXJEaXNjb25uZWN0ZWQnOiB7XG4gICAgICAgICAgb25QbGF5ZXJEaXNjb25uZWN0ZWRPYnNlcnZhYmxlLm5vdGlmeU9ic2VydmVycyhkYXRhIGFzIElFdmVudHNbJ3BsYXllckRpc2Nvbm5lY3RlZCddKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnb25SZWFsbUNoYW5nZWQnOiB7XG4gICAgICAgICAgb25SZWFsbUNoYW5nZWRPYnNlcnZhYmxlLm5vdGlmeU9ic2VydmVycyhkYXRhIGFzIElFdmVudHNbJ29uUmVhbG1DaGFuZ2VkJ10pXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdwbGF5ZXJDbGlja2VkJzoge1xuICAgICAgICAgIG9uUGxheWVyQ2xpY2tlZE9ic2VydmFibGUubm90aWZ5T2JzZXJ2ZXJzKGRhdGEgYXMgSUV2ZW50c1sncGxheWVyQ2xpY2tlZCddKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@dcl/sdk",
|
3
|
-
"version": "7.0.6-
|
3
|
+
"version": "7.0.6-4009020955.commit-08722f5",
|
4
4
|
"description": "",
|
5
5
|
"main": "./index.js",
|
6
6
|
"typings": "./index.d.ts",
|
@@ -20,21 +20,32 @@
|
|
20
20
|
"author": "Decentraland",
|
21
21
|
"license": "Apache-2.0",
|
22
22
|
"dependencies": {
|
23
|
-
"@dcl/dcl-rollup": "7.0.6-
|
24
|
-
"@dcl/ecs": "7.0.6-
|
23
|
+
"@dcl/dcl-rollup": "7.0.6-4009020955.commit-08722f5",
|
24
|
+
"@dcl/ecs": "7.0.6-4009020955.commit-08722f5",
|
25
25
|
"@dcl/ecs-math": "2.0.1-20221129185242.commit-40495c1",
|
26
|
-
"@dcl/js-runtime": "7.0.6-
|
26
|
+
"@dcl/js-runtime": "7.0.6-4009020955.commit-08722f5",
|
27
27
|
"@dcl/kernel": "2.0.0-3766760530.commit-239d2a9",
|
28
|
-
"@dcl/
|
28
|
+
"@dcl/mini-comms": "1.0.0",
|
29
|
+
"@dcl/react-ecs": "7.0.6-4009020955.commit-08722f5",
|
30
|
+
"@dcl/schemas": "5.14.0",
|
29
31
|
"@dcl/unity-renderer": "1.0.68557-20221221195847.commit-f743b85",
|
32
|
+
"@types/inquirer": "^8.2.5",
|
33
|
+
"@well-known-components/env-config-provider": "^1.1.2-20220801195549.commit-101c273",
|
34
|
+
"@well-known-components/http-server": "^1.1.6-20220927190058.commit-2dfb235",
|
35
|
+
"@well-known-components/logger": "^3.0.0",
|
36
|
+
"@well-known-components/metrics": "^2.0.1-20220909150423.commit-8f7e5bc",
|
30
37
|
"arg": "5.0.2",
|
31
38
|
"extract-zip": "2.0.1",
|
32
39
|
"inquirer": "^8.2.5",
|
40
|
+
"node-fetch": "^2.6.8",
|
41
|
+
"open": "^8.4.0",
|
33
42
|
"ora": "6.1.2",
|
43
|
+
"portfinder": "^1.0.32",
|
34
44
|
"undici": "^5.14.0"
|
35
45
|
},
|
36
46
|
"devDependencies": {
|
37
|
-
"@types/
|
47
|
+
"@types/node-fetch": "^2.6.1",
|
48
|
+
"@types/ws": "^8.5.4"
|
38
49
|
},
|
39
50
|
"minCliVersion": "3.14.1",
|
40
51
|
"typedoc": {
|
@@ -43,5 +54,5 @@
|
|
43
54
|
"displayName": "SDK",
|
44
55
|
"tsconfig": "./tsconfig.json"
|
45
56
|
},
|
46
|
-
"commit": "
|
57
|
+
"commit": "08722f5fb9539e46f90cc94b5f9634ef0ef314ea"
|
47
58
|
}
|
@@ -36,12 +36,7 @@ export class ObserverEventState {
|
|
36
36
|
* @param target - defines the original target of the state
|
37
37
|
* @param currentTarget - defines the current target of the state
|
38
38
|
*/
|
39
|
-
constructor(
|
40
|
-
mask: number,
|
41
|
-
skipNextObservers = false,
|
42
|
-
target?: any,
|
43
|
-
currentTarget?: any
|
44
|
-
) {
|
39
|
+
constructor(mask: number, skipNextObservers = false, target?: any, currentTarget?: any) {
|
45
40
|
this.initalize(mask, skipNextObservers, target, currentTarget)
|
46
41
|
}
|
47
42
|
|
@@ -53,12 +48,7 @@ export class ObserverEventState {
|
|
53
48
|
* @param currentTarget - defines the current target of the state
|
54
49
|
* @returns the current event state
|
55
50
|
*/
|
56
|
-
public initalize(
|
57
|
-
mask: number,
|
58
|
-
skipNextObservers = false,
|
59
|
-
target?: any,
|
60
|
-
currentTarget?: any
|
61
|
-
): ObserverEventState {
|
51
|
+
public initalize(mask: number, skipNextObservers = false, target?: any, currentTarget?: any): ObserverEventState {
|
62
52
|
this.mask = mask
|
63
53
|
this.skipNextObservers = skipNextObservers
|
64
54
|
this.target = target
|
@@ -172,9 +162,7 @@ export class Observable<T> {
|
|
172
162
|
* @param callback - the callback that will be executed for that Observer
|
173
163
|
* @returns the new observer created for the callback
|
174
164
|
*/
|
175
|
-
public addOnce(
|
176
|
-
callback: (eventData: T, eventState: ObserverEventState) => void
|
177
|
-
): null | Observer<T> {
|
165
|
+
public addOnce(callback: (eventData: T, eventState: ObserverEventState) => void): null | Observer<T> {
|
178
166
|
return this.add(callback, undefined, undefined, undefined, true)
|
179
167
|
}
|
180
168
|
|
@@ -204,15 +192,9 @@ export class Observable<T> {
|
|
204
192
|
* @param scope - optional scope. If used only the callbacks with this scope will be removed
|
205
193
|
* @returns false if it doesn't belong to this Observable
|
206
194
|
*/
|
207
|
-
public removeCallback(
|
208
|
-
callback: (eventData: T, eventState: ObserverEventState) => void,
|
209
|
-
scope?: any
|
210
|
-
): boolean {
|
195
|
+
public removeCallback(callback: (eventData: T, eventState: ObserverEventState) => void, scope?: any): boolean {
|
211
196
|
for (let index = 0; index < this._observers.length; index++) {
|
212
|
-
if (
|
213
|
-
this._observers[index].callback === callback &&
|
214
|
-
(!scope || scope === this._observers[index].scope)
|
215
|
-
) {
|
197
|
+
if (this._observers[index].callback === callback && (!scope || scope === this._observers[index].scope)) {
|
216
198
|
this._deferUnregister(this._observers[index])
|
217
199
|
return true
|
218
200
|
}
|
@@ -230,12 +212,7 @@ export class Observable<T> {
|
|
230
212
|
* @param currentTarget - defines the current target of the state
|
231
213
|
* @returns false if the complete observer chain was not processed (because one observer set the skipNextObservers to true)
|
232
214
|
*/
|
233
|
-
public notifyObservers(
|
234
|
-
eventData: T,
|
235
|
-
mask: number = -1,
|
236
|
-
target?: any,
|
237
|
-
currentTarget?: any
|
238
|
-
): boolean {
|
215
|
+
public notifyObservers(eventData: T, mask: number = -1, target?: any, currentTarget?: any): boolean {
|
239
216
|
if (!this._observers.length) {
|
240
217
|
return true
|
241
218
|
}
|
@@ -254,10 +231,7 @@ export class Observable<T> {
|
|
254
231
|
|
255
232
|
if (obs.mask & mask) {
|
256
233
|
if (obs.scope) {
|
257
|
-
state.lastReturnValue = obs.callback.apply(obs.scope, [
|
258
|
-
eventData,
|
259
|
-
state
|
260
|
-
])
|
234
|
+
state.lastReturnValue = obs.callback.apply(obs.scope, [eventData, state])
|
261
235
|
} else {
|
262
236
|
state.lastReturnValue = obs.callback(eventData, state)
|
263
237
|
}
|
@@ -286,12 +260,7 @@ export class Observable<T> {
|
|
286
260
|
* @param currentTarget - defines he current object in the bubbling phase
|
287
261
|
* @returns will return a Promise than resolves when all callbacks executed successfully.
|
288
262
|
*/
|
289
|
-
public notifyObserversWithPromise(
|
290
|
-
eventData: T,
|
291
|
-
mask: number = -1,
|
292
|
-
target?: any,
|
293
|
-
currentTarget?: any
|
294
|
-
): Promise<T> {
|
263
|
+
public notifyObserversWithPromise(eventData: T, mask: number = -1, target?: any, currentTarget?: any): Promise<T> {
|
295
264
|
// create an empty promise
|
296
265
|
let p: Promise<any> = Promise.resolve(eventData)
|
297
266
|
|
@@ -344,11 +313,7 @@ export class Observable<T> {
|
|
344
313
|
* @param eventData - defines the data to be sent to each callback
|
345
314
|
* @param mask - is used to filter observers defaults to -1
|
346
315
|
*/
|
347
|
-
public notifyObserver(
|
348
|
-
observer: Observer<T>,
|
349
|
-
eventData: T,
|
350
|
-
mask: number = -1
|
351
|
-
): void {
|
316
|
+
public notifyObserver(observer: Observer<T>, eventData: T, mask: number = -1): void {
|
352
317
|
const state = this._eventState
|
353
318
|
state.mask = mask
|
354
319
|
state.skipNextObservers = false
|
package/src/internal/provider.ts
CHANGED
@@ -19,9 +19,7 @@ export interface MessageDict {
|
|
19
19
|
[key: string]: string
|
20
20
|
}
|
21
21
|
|
22
|
-
export type SendAsyncType = (
|
23
|
-
params: SendAsyncRequest
|
24
|
-
) => Promise<SendAsyncResponse>
|
22
|
+
export type SendAsyncType = (params: SendAsyncRequest) => Promise<SendAsyncResponse>
|
25
23
|
|
26
24
|
export function getEthereumProvider(sendAsync: SendAsyncType) {
|
27
25
|
async function request(message: RPCSendableMessage) {
|
@@ -35,10 +33,7 @@ export function getEthereumProvider(sendAsync: SendAsyncType) {
|
|
35
33
|
|
36
34
|
return {
|
37
35
|
// @internal
|
38
|
-
send(
|
39
|
-
message: RPCSendableMessage,
|
40
|
-
callback?: (error: Error | null, result?: any) => void
|
41
|
-
): void {
|
36
|
+
send(message: RPCSendableMessage, callback?: (error: Error | null, result?: any) => void): void {
|
42
37
|
if (message && callback && callback instanceof Function) {
|
43
38
|
request(message)
|
44
39
|
.then((x: any) => callback(null, x))
|
@@ -47,10 +42,7 @@ export function getEthereumProvider(sendAsync: SendAsyncType) {
|
|
47
42
|
throw new Error('Decentraland provider only allows async calls')
|
48
43
|
}
|
49
44
|
},
|
50
|
-
sendAsync(
|
51
|
-
message: RPCSendableMessage,
|
52
|
-
callback: (error: Error | null, result?: any) => void
|
53
|
-
): void {
|
45
|
+
sendAsync(message: RPCSendableMessage, callback: (error: Error | null, result?: any) => void): void {
|
54
46
|
request(message)
|
55
47
|
.then((x: any) => callback(null, x))
|
56
48
|
.catch(callback)
|