@angular/core 18.0.0-rc.2 → 18.0.0-rc.3
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/esm2022/primitives/event-dispatch/src/action_resolver.mjs +5 -1
- package/esm2022/primitives/event-dispatch/src/attribute.mjs +4 -15
- package/esm2022/primitives/event-dispatch/src/cache.mjs +2 -35
- package/esm2022/primitives/event-dispatch/src/dispatcher.mjs +15 -28
- package/esm2022/primitives/event-dispatch/src/event_info.mjs +16 -1
- package/esm2022/primitives/event-dispatch/src/property.mjs +1 -7
- package/esm2022/src/change_detection/scheduling/exhaustive_check_no_changes.mjs +5 -5
- package/esm2022/src/change_detection/scheduling/zoneless_scheduling_impl.mjs +8 -2
- package/esm2022/src/errors.mjs +1 -1
- package/esm2022/src/hydration/event_replay.mjs +11 -6
- package/esm2022/src/render3/component_ref.mjs +1 -1
- package/esm2022/src/render3/instructions/change_detection.mjs +17 -6
- package/esm2022/src/version.mjs +1 -1
- package/esm2022/testing/src/logger.mjs +3 -3
- package/event-dispatch-contract.min.js +1 -1
- package/fesm2022/core.mjs +38 -16
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/primitives/event-dispatch.mjs +38 -82
- package/fesm2022/primitives/event-dispatch.mjs.map +1 -1
- package/fesm2022/primitives/signals.mjs +1 -1
- package/fesm2022/rxjs-interop.mjs +1 -1
- package/fesm2022/testing.mjs +1 -1
- package/index.d.ts +4 -3
- package/package.json +1 -1
- package/primitives/event-dispatch/index.d.ts +16 -4
- package/primitives/signals/index.d.ts +1 -1
- package/rxjs-interop/index.d.ts +1 -1
- package/schematics/migrations/invalid-two-way-bindings/bundle.js +5 -1
- package/schematics/migrations/invalid-two-way-bindings/bundle.js.map +3 -3
- package/schematics/ng-generate/control-flow-migration/bundle.js +5 -1
- package/schematics/ng-generate/control-flow-migration/bundle.js.map +3 -3
- package/schematics/ng-generate/standalone-migration/bundle.js +38 -19
- package/schematics/ng-generate/standalone-migration/bundle.js.map +3 -3
- package/testing/index.d.ts +1 -1
- package/esm2022/primitives/event-dispatch/src/legacy_dispatcher.mjs +0 -259
|
@@ -33,7 +33,11 @@ export class ActionResolver {
|
|
|
33
33
|
this.syntheticMouseEventSupport = syntheticMouseEventSupport;
|
|
34
34
|
}
|
|
35
35
|
resolve(eventInfo) {
|
|
36
|
+
if (eventInfoLib.getResolved(eventInfo)) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
36
39
|
this.populateAction(eventInfo);
|
|
40
|
+
eventInfoLib.setResolved(eventInfo, true);
|
|
37
41
|
}
|
|
38
42
|
/**
|
|
39
43
|
* Searches for a jsaction that the DOM event maps to and creates an
|
|
@@ -218,4 +222,4 @@ export class ActionResolver {
|
|
|
218
222
|
this.populateClickOnlyAction = populateClickOnlyAction;
|
|
219
223
|
}
|
|
220
224
|
}
|
|
221
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uX3Jlc29sdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9wcmltaXRpdmVzL2V2ZW50LWRpc3BhdGNoL3NyYy9hY3Rpb25fcmVzb2x2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUN0QyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDdkMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLFlBQVksQ0FBQztBQUVqQyxPQUFPLEtBQUssS0FBSyxNQUFNLFNBQVMsQ0FBQztBQUNqQyxPQUFPLEtBQUssWUFBWSxNQUFNLGNBQWMsQ0FBQztBQUM3QyxPQUFPLEtBQUssUUFBUSxNQUFNLFNBQVMsQ0FBQztBQUVwQzs7O0dBR0c7QUFDSCxNQUFNLGdCQUFnQixHQUE0QixFQUFFLENBQUM7QUFFckQ7O0dBRUc7QUFDSCxNQUFNLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztBQUVuQyx3REFBd0Q7QUFDeEQsTUFBTSxrQkFBa0IsR0FBVyxTQUFTLENBQUMsS0FBSyxDQUFDO0FBRW5ELG1DQUFtQztBQUNuQyxNQUFNLE9BQU8sY0FBYztJQWN6QixZQUFZLEVBQ1YsMEJBQTBCLEdBQUcsS0FBSyxNQUdoQyxFQUFFO1FBakJFLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUdsQyxnQ0FBMkIsR0FBaUQsU0FBUyxDQUFDO1FBRXRGLCtCQUEwQixHQUFpRCxTQUFTLENBQUM7UUFFckYsNEJBQXVCLEdBSW5CLFNBQVMsQ0FBQztRQU9wQixJQUFJLENBQUMsMEJBQTBCLEdBQUcsMEJBQTBCLENBQUM7SUFDL0QsQ0FBQztJQUVELE9BQU8sQ0FBQyxTQUFpQztRQUN2QyxJQUFJLENBQUMsY0FBYyxD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LEdBQUcsMEJBQTBCLENBQUM7UUFDN0QsSUFBSSxDQUFDLHVCQUF1QixHQUFHLHVCQUF1QixDQUFDO0lBQ3pELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0F0dHJpYnV0ZX0gZnJvbSAnLi9hdHRyaWJ1dGUnO1xuaW1wb3J0IHtDaGFyfSBmcm9tICcuL2NoYXInO1xuaW1wb3J0IHtFdmVudFR5cGV9IGZyb20gJy4vZXZlbnRfdHlwZSc7XG5pbXBvcnQge09XTkVSfSBmcm9tICcuL3Byb3BlcnR5JztcbmltcG9ydCAqIGFzIGExMXlDbGljayBmcm9tICcuL2ExMXlfY2xpY2snO1xuaW1wb3J0ICogYXMgY2FjaGUgZnJvbSAnLi9jYWNoZSc7XG5pbXBvcnQgKiBhcyBldmVudEluZm9MaWIgZnJvbSAnLi9ldmVudF9pbmZvJztcbmltcG9ydCAqIGFzIGV2ZW50TGliIGZyb20gJy4vZXZlbnQnO1xuXG4vKipcbiAqIFNpbmNlIG1hcHMgZnJvbSBldmVudCB0byBhY3Rpb24gYXJlIGltbXV0YWJsZSB3ZSBjYW4gdXNlIGEgc2luZ2xlIG1hcFxuICogdG8gcmVwcmVzZW50IHRoZSBlbXB0eSBtYXAuXG4gKi9cbmNvbnN0IEVNUFRZX0FDVElPTl9NQVA6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9ID0ge307XG5cbi8qKlxuICogVGhpcyByZWd1bGFyIGV4cHJlc3Npb24gbWF0Y2hlcyBhIHNlbWljb2xvbi5cbiAqL1xuY29uc3QgUkVHRVhQX1NFTUlDT0xPTiA9IC9cXHMqO1xccyovO1xuXG4vKiogSWYgbm8gZXZlbnQgdHlwZSBpcyBkZWZpbmVkLCBkZWZhdWx0cyB0byBgY2xpY2tgLiAqL1xuY29uc3QgREVGQVVMVF9FVkVOVF9UWVBFOiBzdHJpbmcgPSBFdmVudFR5cGUuQ0xJQ0s7XG5cbi8qKiBSZXNvbHZlcyBhY3Rpb25zIGZvciBFdmVudHMuICovXG5leHBvcnQgY2xhc3MgQWN0aW9uUmVzb2x2ZXIge1xuICBwcml2YXRlIGExMXlDbGlja1N1cHBvcnQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSByZWFkb25seSBzeW50aGV0aWNNb3VzZUV2ZW50U3VwcG9ydDogYm9vbGVhbjtcblxuICBwcml2YXRlIHVwZGF0ZUV2ZW50SW5mb0ZvckExMXlDbGljaz86IChldmVudEluZm86IGV2ZW50SW5mb0xpYi5FdmVudEluZm8pID0+IHZvaWQgPSB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBwcmV2ZW50RGVmYXVsdEZvckExMXlDbGljaz86IChldmVudEluZm86IGV2ZW50SW5mb0xpYi5FdmVudEluZm8pID0+IHZvaWQgPSB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBwb3B1bGF0ZUNsaWNrT25seUFjdGlvbj86IChcbiAgICBhY3Rpb25FbGVtZW50OiBFbGVtZW50LFxuICAgIGV2ZW50SW5mbzogZXZlbnRJbmZvTGliLkV2ZW50SW5mbyxcbiAgICBhY3Rpb25NYXA6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9LFxuICApID0+IHZvaWQgPSB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3Ioe1xuICAgIHN5bnRoZXRpY01vdXNlRXZlbnRTdXBwb3J0ID0gZmFsc2UsXG4gIH06IHtcbiAgICBzeW50aGV0aWNNb3VzZUV2ZW50U3VwcG9ydD86IGJvb2xlYW47XG4gIH0gPSB7fSkge1xuICAgIHRoaXMuc3ludGhldGljTW91c2VFdmVudFN1cHBvcnQgPSBzeW50aGV0aWNNb3VzZUV2ZW50U3VwcG9ydDtcbiAgfVxuXG4gIHJlc29sdmUoZXZlbnRJbmZvOiBldmVudEluZm9MaWIuRXZlbnRJbmZvKSB7XG4gICAgdGhpcy5wb3B1bGF0ZUFjdGlvbihldmVudEluZm8pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlYXJjaGVzIGZvciBhIGpzYWN0aW9uIHRoYXQgdGhlIERPTSBldmVudCBtYXBzIHRvIGFuZCBjcmVhdGVzIGFuXG4gICAqIG9iamVjdCBjb250YWluaW5nIGV2ZW50IGluZm9ybWF0aW9uIHVzZWQgZm9yIGRpc3BhdGNoaW5nIGJ5XG4gICAqIGpzYWN0aW9uLkRpc3BhdGNoZXIuIFRoaXMgbWV0aG9kIHBvcHVsYXRlcyB0aGUgYGFjdGlvbmAgYW5kIGBhY3Rpb25FbGVtZW50YFxuICAgKiBmaWVsZHMgb2YgdGhlIEV2ZW50SW5mbyBvYmplY3QgcGFzc2VkIGluIGJ5IGZpbmRpbmcgdGhlIGZpcnN0XG4gICAqIGpzYWN0aW9uIGF0dHJpYnV0ZSBhYm92ZSB0aGUgdGFyZ2V0IE5vZGUgb2YgdGhlIGV2ZW50LCBhbmQgYmVsb3dcbiAgICogdGhlIGNvbnRhaW5lciBOb2RlLCB0aGF0IHNwZWNpZmllcyBhIGpzYWN0aW9uIGZvciB0aGUgZXZlbnRcbiAgICogdHlwZS4gSWYgbm8gc3VjaCBqc2FjdGlvbiBpcyBmb3VuZCwgdGhlbiBhY3Rpb24gaXMgdW5kZWZpbmVkLlxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnRJbmZvIGBFdmVudEluZm9gIHRvIHNldCBgYWN0aW9uYCBhbmQgYGFjdGlvbkVsZW1lbnRgIGlmIGFuXG4gICAqICAgIGFjdGlvbiBpcyBmb3VuZCBvbiBhbnkgYEVsZW1lbnRgIGluIHRoZSBwYXRoIG9mIHRoZSBgRXZlbnRgLlxuICAgKi9cbiAgcHJpdmF0ZSBwb3B1bGF0ZUFjdGlvbihldmVudEluZm86IGV2ZW50SW5mb0xpYi5FdmVudEluZm8pIHtcbiAgICAvLyBXZSBkaXN0aW5ndWlzaCBtb2RpZmllZCBhbmQgcGxhaW4gY2xpY2tzIGluIG9yZGVyIHRvIHN1cHBvcnQgdGhlXG4gICAgLy8gZGVmYXVsdCBicm93c2VyIGJlaGF2aW9yIG9mIG1vZGlmaWVkIGNsaWNrcyBvbiBsaW5rczsgdXN1YWxseSB0b1xuICAgIC8vIG9wZW4gdGhlIFVSTCBvZiB0aGUgbGluayBpbiBuZXcgdGFiIG9yIG5ldyB3aW5kb3cgb24gY3RybC9jbWRcbiAgICAvLyBjbGljay4gQSBET00gJ2NsaWNrJyBldmVudCBpcyBtYXBwZWQgdG8gdGhlIGpzYWN0aW9uICdjbGljaydcbiAgICAvLyBldmVudCBpZmYgdGhlcmUgaXMgbm8gbW9kaWZpZXIgcHJlc2VudCBvbiB0aGUgZXZlbnQuIElmIHRoZXJlIGlzXG4gICAgLy8gYSBtb2RpZmllciwgaXQncyBtYXBwZWQgdG8gJ2NsaWNrbW9kJyBpbnN0ZWFkLlxuICAgIC8vXG4gICAgLy8gSXQncyBhbGxvd2VkIHRvIG9taXQgdGhlIGV2ZW50IGluIHRoZSBqc2FjdGlvbiBhdHRyaWJ1dGUuIEluIHRoYXRcbiAgICAvLyBjYXNlLCAnY2xpY2snIGlzIGFzc3VtZWQuIFRodXMgdGhlIGZvbGxvd2luZyB0d28gYXJlIGVxdWl2YWxlbnQ6XG4gICAgLy9cbiAgICAvLyAgIDxhIGhyZWY9XCJzb21ldXJsXCIganNhY3Rpb249XCJnbmEuZnVcIj5cbiAgICAvLyAgIDxhIGhyZWY9XCJzb21ldXJsXCIganNhY3Rpb249XCJjbGljazpnbmEuZnVcIj5cbiAgICAvL1xuICAgIC8vIEZvciB1bm1vZGlmaWVkIGNsaWNrcywgRXZlbnRDb250cmFjdCBpbnZva2VzIHRoZSBqc2FjdGlvblxuICAgIC8vICdnbmEuZnUnLiBGb3IgbW9kaWZpZWQgY2xpY2tzLCBFdmVudENvbnRyYWN0IHdvbid0IGZpbmQgYVxuICAgIC8vIHN1aXRhYmxlIGFjdGlvbiBhbmQgbGVhdmUgdGhlIGV2ZW50IHRvIGJlIGhhbmRsZWQgYnkgdGhlXG4gICAgLy8gYnJvd3Nlci5cbiAgICAvL1xuICAgIC8vIEluIG9yZGVyIHRvIGFsc28gaW52b2tlIGEganNhY3Rpb24gaGFuZGxlciBmb3IgYSBtb2RpZmllciBjbGljayxcbiAgICAvLyAnY2xpY2ttb2QnIG5lZWRzIHRvIGJlIHVzZWQ6XG4gICAgLy9cbiAgICAvLyAgIDxhIGhyZWY9XCJzb21ldXJsXCIganNhY3Rpb249XCJjbGlja21vZDpnbmEuZnVcIj5cbiAgICAvL1xuICAgIC8vIEV2ZW50Q29udHJhY3QgaW52b2tlcyB0aGUganNhY3Rpb24gJ2duYS5mdScgZm9yIG1vZGlmaWVkXG4gICAgLy8gY2xpY2tzLiBVbm1vZGlmaWVkIGNsaWNrcyBhcmUgbGVmdCB0byB0aGUgYnJvd3Nlci5cbiAgICAvL1xuICAgIC8vIEluIG9yZGVyIHRvIHNldCB1cCB0aGUgZXZlbnQgY29udHJhY3QgdG8gaGFuZGxlIGJvdGggY2xpY2tvbmx5IGFuZFxuICAgIC8vIGNsaWNrbW9kLCBvbmx5IGFkZEV2ZW50KEV2ZW50VHlwZS5DTElDSykgaXMgbmVjZXNzYXJ5LlxuICAgIC8vXG4gICAgLy8gSW4gb3JkZXIgdG8gc2V0IHVwIHRoZSBldmVudCBjb250cmFjdCB0byBoYW5kbGUgY2xpY2ssXG4gICAgLy8gYWRkRXZlbnQoKSBpcyBuZWNlc3NhcnkgZm9yIENMSUNLLCBLRVlET1dOLCBhbmQgS0VZUFJFU1MgZXZlbnQgdHlwZXMuICBJZlxuICAgIC8vIGExMXkgY2xpY2sgc3VwcG9ydCBpcyBlbmFibGVkLCBhZGRFdmVudCgpIHdpbGwgc2V0IHVwIHRoZSBhcHByb3ByaWF0ZSBrZXlcbiAgICAvLyBldmVudCBoYW5kbGVyIGF1dG9tYXRpY2FsbHkuXG4gICAgaWYgKFxuICAgICAgZXZlbnRJbmZvTGliLmdldEV2ZW50VHlwZShldmVudEluZm8pID09PSBFdmVudFR5cGUuQ0xJQ0sgJiZcbiAgICAgIGV2ZW50TGliLmlzTW9kaWZpZWRDbGlja0V2ZW50KGV2ZW50SW5mb0xpYi5nZXRFdmVudChldmVudEluZm8pKVxuICAgICkge1xuICAgICAgZXZlbnRJbmZvTGliLnNldEV2ZW50VHlwZShldmVudEluZm8sIEV2ZW50VHlwZS5DTElDS01PRCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmExMXlDbGlja1N1cHBvcnQpIHtcbiAgICAgIHRoaXMudXBkYXRlRXZlbnRJbmZvRm9yQTExeUNsaWNrIShldmVudEluZm8pO1xuICAgIH1cblxuICAgIC8vIFdhbGsgdG8gdGhlIHBhcmVudCBub2RlLCB1bmxlc3MgdGhlIG5vZGUgaGFzIGEgZGlmZmVyZW50IG93bmVyIGluXG4gICAgLy8gd2hpY2ggY2FzZSB3ZSB3YWxrIHRvIHRoZSBvd25lci4gQXR0ZW1wdCB0byB3YWxrIHRvIGhvc3Qgb2YgYVxuICAgIC8vIHNoYWRvdyByb290IGlmIG5lZWRlZC5cbiAgICBsZXQgYWN0aW9uRWxlbWVudDogRWxlbWVudCB8IG51bGwgPSBldmVudEluZm9MaWIuZ2V0VGFyZ2V0RWxlbWVudChldmVudEluZm8pO1xuICAgIHdoaWxlIChhY3Rpb25FbGVtZW50ICYmIGFjdGlvbkVsZW1lbnQgIT09IGV2ZW50SW5mb0xpYi5nZXRDb250YWluZXIoZXZlbnRJbmZvKSkge1xuICAgICAgaWYgKGFjdGlvbkVsZW1lbnQubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFKSB7XG4gICAgICAgIHRoaXMucG9wdWxhdGVBY3Rpb25PbkVsZW1lbnQoYWN0aW9uRWxlbWVudCwgZXZlbnRJbmZvKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGV2ZW50SW5mb0xpYi5nZXRBY3Rpb24oZXZlbnRJbmZvKSkge1xuICAgICAgICAvLyBBbiBldmVudCBpcyBoYW5kbGVkIGJ5IGF0IG1vc3Qgb25lIGpzYWN0aW9uLiBUaHVzIHdlIHN0b3AgYXQgdGhlXG4gICAgICAgIC8vIGZpcnN0IG1hdGNoaW5nIGpzYWN0aW9uIHNwZWNpZmllZCBpbiBhIGpzYWN0aW9uIGF0dHJpYnV0ZSB1cCB0aGVcbiAgICAgICAgLy8gYW5jZXN0b3IgY2hhaW4gb2YgdGhlIGV2ZW50IHRhcmdldCBub2RlLlxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGlmIChhY3Rpb25FbGVtZW50W09XTkVSXSkge1xuICAgICAgICBhY3Rpb25FbGVtZW50ID0gYWN0aW9uRWxlbWVudFtPV05FUl0gYXMgRWxlbWVudDtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoYWN0aW9uRWxlbWVudC5wYXJlbnROb2RlPy5ub2RlTmFtZSAhPT0gJyNkb2N1bWVudC1mcmFnbWVudCcpIHtcbiAgICAgICAgYWN0aW9uRWxlbWVudCA9IGFjdGlvbkVsZW1lbnQucGFyZW50Tm9kZSBhcyBFbGVtZW50IHwgbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFjdGlvbkVsZW1lbnQgPSAoYWN0aW9uRWxlbWVudC5wYXJlbnROb2RlIGFzIFNoYWRvd1Jvb3QgfCBudWxsKT8uaG9zdCA/PyBudWxsO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGFjdGlvbiA9IGV2ZW50SW5mb0xpYi5nZXRBY3Rpb24oZXZlbnRJbmZvKTtcbiAgICBpZiAoIWFjdGlvbikge1xuICAgICAgLy8gTm8gYWN0aW9uIGZvdW5kLlxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmExMXlDbGlja1N1cHBvcnQpIHtcbiAgICAgIHRoaXMucHJldmVudERlZmF1bHRGb3JBMTF5Q2xpY2shKGV2ZW50SW5mbyk7XG4gICAgfVxuXG4gICAgLy8gV2UgYXR0ZW1wdCB0byBoYW5kbGUgdGhlIG1vdXNlZW50ZXIvbW91c2VsZWF2ZSBldmVudHMgaGVyZSBieVxuICAgIC8vIGRldGVjdGluZyB3aGV0aGVyIHRoZSBtb3VzZW92ZXIvbW91c2VvdXQgZXZlbnRzIGNvcnJlc3BvbmQgdG9cbiAgICAvLyBlbnRlcmluZy9sZWF2aW5nIGFuIGVsZW1lbnQuXG4gICAgaWYgKHRoaXMuc3ludGhldGljTW91c2VFdmVudFN1cHBvcnQpIHtcbiAgICAgIGlmIChcbiAgICAgICAgZXZlbnRJbmZvTGliLmdldEV2ZW50VHlwZShldmVudEluZm8pID09PSBFdmVudFR5cGUuTU9VU0VFTlRFUiB8fFxuICAgICAgICBldmVudEluZm9MaWIuZ2V0RXZlbnRUeXBlKGV2ZW50SW5mbykgPT09IEV2ZW50VHlwZS5NT1VTRUxFQVZFIHx8XG4gICAgICAgIGV2ZW50SW5mb0xpYi5nZXRFdmVudFR5cGUoZXZlbnRJbmZvKSA9PT0gRXZlbnRUeXBlLlBPSU5URVJFTlRFUiB8fFxuICAgICAgICBldmVudEluZm9MaWIuZ2V0RXZlbnRUeXBlKGV2ZW50SW5mbykgPT09IEV2ZW50VHlwZS5QT0lOVEVSTEVBVkVcbiAgICAgICkge1xuICAgICAgICAvLyBXZSBhdHRlbXB0IHRvIGhhbmRsZSB0aGUgbW91c2VlbnRlci9tb3VzZWxlYXZlIGV2ZW50cyBoZXJlIGJ5XG4gICAgICAgIC8vIGRldGVjdGluZyB3aGV0aGVyIHRoZSBtb3VzZW92ZXIvbW91c2VvdXQgZXZlbnRzIGNvcnJlc3BvbmQgdG9cbiAgICAgICAgLy8gZW50ZXJpbmcvbGVhdmluZyBhbiBlbGVtZW50LlxuICAgICAgICBpZiAoXG4gICAgICAgICAgZXZlbnRMaWIuaXNNb3VzZVNwZWNpYWxFdmVudChcbiAgICAgICAgICAgIGV2ZW50SW5mb0xpYi5nZXRFdmVudChldmVudEluZm8pLFxuICAgICAgICAgICAgZXZlbnRJbmZvTGliLmdldEV2ZW50VHlwZShldmVudEluZm8pLFxuICAgICAgICAgICAgZXZlbnRJbmZvTGliLmdldEFjdGlvbkVsZW1lbnQoYWN0aW9uKSxcbiAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgIC8vIElmIGJvdGggbW91c2VvdmVyL21vdXNlb3V0IGFuZCBtb3VzZWVudGVyL21vdXNlbGVhdmUgZXZlbnRzIGFyZVxuICAgICAgICAgIC8vIGVuYWJsZWQsIHR3byBzZXBhcmF0ZSBoYW5kbGVycyBmb3IgbW91c2VvdmVyL21vdXNlb3V0IGFyZVxuICAgICAgICAgIC8vIHJlZ2lzdGVyZWQuIEJvdGggaGFuZGxlcnMgd2lsbCBzZWUgdGhlIHNhbWUgZXZlbnQgaW5zdGFuY2VcbiAgICAgICAgICAvLyBzbyB3ZSBjcmVhdGUgYSBjb3B5IHRvIGF2b2lkIGludGVyZmVyaW5nIHdpdGggdGhlIGRpc3BhdGNoaW5nIG9mXG4gICAgICAgICAgLy8gdGhlIG1vdXNlb3Zlci9tb3VzZW91dCBldmVudC5cbiAgICAgICAgICBjb25zdCBjb3BpZWRFdmVudCA9IGV2ZW50TGliLmNyZWF0ZU1vdXNlU3BlY2lhbEV2ZW50KFxuICAgICAgICAgICAgZXZlbnRJbmZvTGliLmdldEV2ZW50KGV2ZW50SW5mbyksXG4gICAgICAgICAgICBldmVudEluZm9MaWIuZ2V0QWN0aW9uRWxlbWVudChhY3Rpb24pLFxuICAgICAgICAgICk7XG4gICAgICAgICAgZXZlbnRJbmZvTGliLnNldEV2ZW50KGV2ZW50SW5mbywgY29waWVkRXZlbnQpO1xuICAgICAgICAgIC8vIFNpbmNlIHRoZSBtb3VzZWVudGVyL21vdXNlbGVhdmUgZXZlbnRzIGRvIG5vdCBidWJibGUsIHRoZSB0YXJnZXRcbiAgICAgICAgICAvLyBvZiB0aGUgZXZlbnQgaXMgdGVjaG5pY2FsbHkgdGhlIGBhY3Rpb25FbGVtZW50YCAodGhlIG5vZGUgd2l0aCB0aGVcbiAgICAgICAgICAvLyBganNhY3Rpb25gIGF0dHJpYnV0ZSlcbiAgICAgICAgICBldmVudEluZm9MaWIuc2V0VGFyZ2V0RWxlbWVudChldmVudEluZm8sIGV2ZW50SW5mb0xpYi5nZXRBY3Rpb25FbGVtZW50KGFjdGlvbikpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGV2ZW50SW5mb0xpYi51bnNldEFjdGlvbihldmVudEluZm8pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFjY2Vzc2VzIHRoZSBqc2FjdGlvbiBtYXAgb24gYSBub2RlIGFuZCByZXRyaWV2ZXMgdGhlIG5hbWUgb2YgdGhlXG4gICAqIGFjdGlvbiB0aGUgZ2l2ZW4gZXZlbnQgaXMgbWFwcGVkIHRvLCBpZiBhbnkuIEl0IHBhcnNlcyB0aGVcbiAgICogYXR0cmlidXRlIHZhbHVlIGFuZCBzdG9yZXMgaXQgaW4gYSBwcm9wZXJ0eSBvbiB0aGUgbm9kZSBmb3JcbiAgICogc3Vic2VxdWVudCByZXRyaWV2YWwgd2l0aG91dCByZS1wYXJzaW5nIGFuZCByZS1hY2Nlc3NpbmcgdGhlXG4gICAqIGF0dHJpYnV0ZS5cbiAgICpcbiAgICogQHBhcmFtIGFjdGlvbkVsZW1lbnQgVGhlIERPTSBub2RlIHRvIHJldHJpZXZlIHRoZSBqc2FjdGlvbiBtYXAgZnJvbS5cbiAgICogQHBhcmFtIGV2ZW50SW5mbyBgRXZlbnRJbmZvYCB0byBzZXQgYGFjdGlvbmAgYW5kIGBhY3Rpb25FbGVtZW50YCBpZiBhblxuICAgKiAgICBhY3Rpb24gaXMgZm91bmQgb24gdGhlIGBhY3Rpb25FbGVtZW50YC5cbiAgICovXG4gIHByaXZhdGUgcG9wdWxhdGVBY3Rpb25PbkVsZW1lbnQoYWN0aW9uRWxlbWVudDogRWxlbWVudCwgZXZlbnRJbmZvOiBldmVudEluZm9MaWIuRXZlbnRJbmZvKSB7XG4gICAgY29uc3QgYWN0aW9uTWFwID0gdGhpcy5wYXJzZUFjdGlvbnMoYWN0aW9uRWxlbWVudCk7XG5cbiAgICBjb25zdCBhY3Rpb25OYW1lID0gYWN0aW9uTWFwW2V2ZW50SW5mb0xpYi5nZXRFdmVudFR5cGUoZXZlbnRJbmZvKV07XG4gICAgaWYgKGFjdGlvbk5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgZXZlbnRJbmZvTGliLnNldEFjdGlvbihldmVudEluZm8sIGFjdGlvbk5hbWUsIGFjdGlvbkVsZW1lbnQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmExMXlDbGlja1N1cHBvcnQpIHtcbiAgICAgIHRoaXMucG9wdWxhdGVDbGlja09ubHlBY3Rpb24hKGFjdGlvbkVsZW1lbnQsIGV2ZW50SW5mbywgYWN0aW9uTWFwKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUGFyc2VzIGFuZCBjYWNoZXMgYW4gZWxlbWVudCdzIGpzYWN0aW9uIGVsZW1lbnQgaW50byBhIG1hcC5cbiAgICpcbiAgICogVGhpcyBpcyBwcmltYXJpbHkgZm9yIGludGVybmFsIHVzZS5cbiAgICpcbiAgICogQHBhcmFtIGFjdGlvbkVsZW1lbnQgVGhlIERPTSBub2RlIHRvIHJldHJpZXZlIHRoZSBqc2FjdGlvbiBtYXAgZnJvbS5cbiAgICogQHJldHVybiBNYXAgZnJvbSBldmVudCB0byBxdWFsaWZpZWQgbmFtZSBvZiB0aGUganNhY3Rpb24gYm91bmQgdG8gaXQuXG4gICAqL1xuICBwcml2YXRlIHBhcnNlQWN0aW9ucyhhY3Rpb25FbGVtZW50OiBFbGVtZW50KToge1trZXk6IHN0cmluZ106IHN0cmluZ30ge1xuICAgIGxldCBhY3Rpb25NYXA6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9IHwgdW5kZWZpbmVkID0gY2FjaGUuZ2V0KGFjdGlvbkVsZW1lbnQpO1xuICAgIGlmICghYWN0aW9uTWFwKSB7XG4gICAgICBjb25zdCBqc2FjdGlvbkF0dHJpYnV0ZSA9IGFjdGlvbkVsZW1lbnQuZ2V0QXR0cmlidXRlKEF0dHJpYnV0ZS5KU0FDVElPTik7XG4gICAgICBpZiAoIWpzYWN0aW9uQXR0cmlidXRlKSB7XG4gICAgICAgIGFjdGlvbk1hcCA9IEVNUFRZX0FDVElPTl9NQVA7XG4gICAgICAgIGNhY2hlLnNldChhY3Rpb25FbGVtZW50LCBhY3Rpb25NYXApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWN0aW9uTWFwID0gY2FjaGUuZ2V0UGFyc2VkKGpzYWN0aW9uQXR0cmlidXRlKTtcbiAgICAgICAgaWYgKCFhY3Rpb25NYXApIHtcbiAgICAgICAgICBhY3Rpb25NYXAgPSB7fTtcbiAgICAgICAgICBjb25zdCB2YWx1ZXMgPSBqc2FjdGlvbkF0dHJpYnV0ZS5zcGxpdChSRUdFWFBfU0VNSUNPTE9OKTtcbiAgICAgICAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCB2YWx1ZXMubGVuZ3RoOyBpZHgrKykge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB2YWx1ZXNbaWR4XTtcbiAgICAgICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBjb2xvbiA9IHZhbHVlLmluZGV4T2YoQ2hhci5FVkVOVF9BQ1RJT05fU0VQQVJBVE9SKTtcbiAgICAgICAgICAgIGNvbnN0IGhhc0NvbG9uID0gY29sb24gIT09IC0xO1xuICAgICAgICAgICAgY29uc3QgdHlwZSA9IGhhc0NvbG9uID8gdmFsdWUuc3Vic3RyKDAsIGNvbG9uKS50cmltKCkgOiBERUZBVUxUX0VWRU5UX1RZUEU7XG4gICAgICAgICAgICBjb25zdCBhY3Rpb24gPSBoYXNDb2xvbiA/IHZhbHVlLnN1YnN0cihjb2xvbiArIDEpLnRyaW0oKSA6IHZhbHVlO1xuICAgICAgICAgICAgYWN0aW9uTWFwW3R5cGVdID0gYWN0aW9uO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYWNoZS5zZXRQYXJzZWQoanNhY3Rpb25BdHRyaWJ1dGUsIGFjdGlvbk1hcCk7XG4gICAgICAgIH1cbiAgICAgICAgY2FjaGUuc2V0KGFjdGlvbkVsZW1lbnQsIGFjdGlvbk1hcCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBhY3Rpb25NYXA7XG4gIH1cblxuICBhZGRBMTF5Q2xpY2tTdXBwb3J0KFxuICAgIHVwZGF0ZUV2ZW50SW5mb0ZvckExMXlDbGljazogdHlwZW9mIGExMXlDbGljay51cGRhdGVFdmVudEluZm9Gb3JBMTF5Q2xpY2ssXG4gICAgcHJldmVudERlZmF1bHRGb3JBMTF5Q2xpY2s6IHR5cGVvZiBhMTF5Q2xpY2sucHJldmVudERlZmF1bHRGb3JBMTF5Q2xpY2ssXG4gICAgcG9wdWxhdGVDbGlja09ubHlBY3Rpb246IHR5cGVvZiBhMTF5Q2xpY2sucG9wdWxhdGVDbGlja09ubHlBY3Rpb24sXG4gICkge1xuICAgIHRoaXMuYTExeUNsaWNrU3VwcG9ydCA9IHRydWU7XG4gICAgdGhpcy51cGRhdGVFdmVudEluZm9Gb3JBMTF5Q2xpY2sgPSB1cGRhdGVFdmVudEluZm9Gb3JBMTF5Q2xpY2s7XG4gICAgdGhpcy5wcmV2ZW50RGVmYXVsdEZvckExMXlDbGljayA9IHByZXZlbnREZWZhdWx0Rm9yQTExeUNsaWNrO1xuICAgIHRoaXMucG9wdWxhdGVDbGlja09ubHlBY3Rpb24gPSBwb3B1bGF0ZUNsaWNrT25seUFjdGlvbjtcbiAgfVxufVxuIl19
|
|
225
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uX3Jlc29sdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9wcmltaXRpdmVzL2V2ZW50LWRpc3BhdGNoL3NyYy9hY3Rpb25fcmVzb2x2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUN0QyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDdkMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLFlBQVksQ0FBQztBQUVqQyxPQUFPLEtBQUssS0FBSyxNQUFNLFNBQVMsQ0FBQztBQUNqQyxPQUFPLEtBQUssWUFBWSxNQUFNLGNBQWMsQ0FBQztBQUM3QyxPQUFPLEtBQUssUUFBUSxNQUFNLFNBQVMsQ0FBQztBQUVwQzs7O0dBR0c7QUFDSCxNQUFNLGdCQUFnQixHQUE0QixFQUFFLENBQUM7QUFFckQ7O0dBRUc7QUFDSCxNQUFNLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztBQUVuQyx3REFBd0Q7QUFDeEQsTUFBTSxrQkFBa0IsR0FBVyxTQUFTLENBQUMsS0FBSyxDQUFDO0FBRW5ELG1DQUFtQztBQUNuQyxNQUFNLE9BQU8sY0FBYztJQWN6QixZQUFZLEVBQ1YsMEJBQTBCLEdBQUcsS0FBSyxNQUdoQyxFQUFFO1FBakJFLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUdsQyxnQ0FBMkIsR0FBaUQsU0FBUyxDQUFDO1FBRXRGLCtCQUEwQixHQUFpRCxTQUFTLENBQUM7UUFFckYsNEJBQXVCLEdBSW5CLFNBQVMsQ0FBQztRQU9wQixJQUFJLENBQUMsMEJBQTBCLEdBQUcsMEJBQTBCLENBQUM7SUFDL0QsQ0FBQztJQUVELE9BQU8sQ0FBQyxTQUFpQztRQUN2QyxJQUFJLFlBQVksQ0FBQyxX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RSwwQkFBdUUsRUFDdkUsdUJBQWlFO1FBRWpFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDLDJCQUEyQixHQUFHLDJCQUEyQixDQUFDO1FBQy9ELElBQUksQ0FBQywwQkFBMEIsR0FBRywwQkFBMEIsQ0FBQztRQUM3RCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsdUJBQXVCLENBQUM7SUFDekQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7QXR0cmlidXRlfSBmcm9tICcuL2F0dHJpYnV0ZSc7XG5pbXBvcnQge0NoYXJ9IGZyb20gJy4vY2hhcic7XG5pbXBvcnQge0V2ZW50VHlwZX0gZnJvbSAnLi9ldmVudF90eXBlJztcbmltcG9ydCB7T1dORVJ9IGZyb20gJy4vcHJvcGVydHknO1xuaW1wb3J0ICogYXMgYTExeUNsaWNrIGZyb20gJy4vYTExeV9jbGljayc7XG5pbXBvcnQgKiBhcyBjYWNoZSBmcm9tICcuL2NhY2hlJztcbmltcG9ydCAqIGFzIGV2ZW50SW5mb0xpYiBmcm9tICcuL2V2ZW50X2luZm8nO1xuaW1wb3J0ICogYXMgZXZlbnRMaWIgZnJvbSAnLi9ldmVudCc7XG5cbi8qKlxuICogU2luY2UgbWFwcyBmcm9tIGV2ZW50IHRvIGFjdGlvbiBhcmUgaW1tdXRhYmxlIHdlIGNhbiB1c2UgYSBzaW5nbGUgbWFwXG4gKiB0byByZXByZXNlbnQgdGhlIGVtcHR5IG1hcC5cbiAqL1xuY29uc3QgRU1QVFlfQUNUSU9OX01BUDoge1trZXk6IHN0cmluZ106IHN0cmluZ30gPSB7fTtcblxuLyoqXG4gKiBUaGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiBtYXRjaGVzIGEgc2VtaWNvbG9uLlxuICovXG5jb25zdCBSRUdFWFBfU0VNSUNPTE9OID0gL1xccyo7XFxzKi87XG5cbi8qKiBJZiBubyBldmVudCB0eXBlIGlzIGRlZmluZWQsIGRlZmF1bHRzIHRvIGBjbGlja2AuICovXG5jb25zdCBERUZBVUxUX0VWRU5UX1RZUEU6IHN0cmluZyA9IEV2ZW50VHlwZS5DTElDSztcblxuLyoqIFJlc29sdmVzIGFjdGlvbnMgZm9yIEV2ZW50cy4gKi9cbmV4cG9ydCBjbGFzcyBBY3Rpb25SZXNvbHZlciB7XG4gIHByaXZhdGUgYTExeUNsaWNrU3VwcG9ydDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIHJlYWRvbmx5IHN5bnRoZXRpY01vdXNlRXZlbnRTdXBwb3J0OiBib29sZWFuO1xuXG4gIHByaXZhdGUgdXBkYXRlRXZlbnRJbmZvRm9yQTExeUNsaWNrPzogKGV2ZW50SW5mbzogZXZlbnRJbmZvTGliLkV2ZW50SW5mbykgPT4gdm9pZCA9IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIHByZXZlbnREZWZhdWx0Rm9yQTExeUNsaWNrPzogKGV2ZW50SW5mbzogZXZlbnRJbmZvTGliLkV2ZW50SW5mbykgPT4gdm9pZCA9IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIHBvcHVsYXRlQ2xpY2tPbmx5QWN0aW9uPzogKFxuICAgIGFjdGlvbkVsZW1lbnQ6IEVsZW1lbnQsXG4gICAgZXZlbnRJbmZvOiBldmVudEluZm9MaWIuRXZlbnRJbmZvLFxuICAgIGFjdGlvbk1hcDoge1trZXk6IHN0cmluZ106IHN0cmluZ30sXG4gICkgPT4gdm9pZCA9IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcih7XG4gICAgc3ludGhldGljTW91c2VFdmVudFN1cHBvcnQgPSBmYWxzZSxcbiAgfToge1xuICAgIHN5bnRoZXRpY01vdXNlRXZlbnRTdXBwb3J0PzogYm9vbGVhbjtcbiAgfSA9IHt9KSB7XG4gICAgdGhpcy5zeW50aGV0aWNNb3VzZUV2ZW50U3VwcG9ydCA9IHN5bnRoZXRpY01vdXNlRXZlbnRTdXBwb3J0O1xuICB9XG5cbiAgcmVzb2x2ZShldmVudEluZm86IGV2ZW50SW5mb0xpYi5FdmVudEluZm8pIHtcbiAgICBpZiAoZXZlbnRJbmZvTGliLmdldFJlc29sdmVkKGV2ZW50SW5mbykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5wb3B1bGF0ZUFjdGlvbihldmVudEluZm8pO1xuICAgIGV2ZW50SW5mb0xpYi5zZXRSZXNvbHZlZChldmVudEluZm8sIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlYXJjaGVzIGZvciBhIGpzYWN0aW9uIHRoYXQgdGhlIERPTSBldmVudCBtYXBzIHRvIGFuZCBjcmVhdGVzIGFuXG4gICAqIG9iamVjdCBjb250YWluaW5nIGV2ZW50IGluZm9ybWF0aW9uIHVzZWQgZm9yIGRpc3BhdGNoaW5nIGJ5XG4gICAqIGpzYWN0aW9uLkRpc3BhdGNoZXIuIFRoaXMgbWV0aG9kIHBvcHVsYXRlcyB0aGUgYGFjdGlvbmAgYW5kIGBhY3Rpb25FbGVtZW50YFxuICAgKiBmaWVsZHMgb2YgdGhlIEV2ZW50SW5mbyBvYmplY3QgcGFzc2VkIGluIGJ5IGZpbmRpbmcgdGhlIGZpcnN0XG4gICAqIGpzYWN0aW9uIGF0dHJpYnV0ZSBhYm92ZSB0aGUgdGFyZ2V0IE5vZGUgb2YgdGhlIGV2ZW50LCBhbmQgYmVsb3dcbiAgICogdGhlIGNvbnRhaW5lciBOb2RlLCB0aGF0IHNwZWNpZmllcyBhIGpzYWN0aW9uIGZvciB0aGUgZXZlbnRcbiAgICogdHlwZS4gSWYgbm8gc3VjaCBqc2FjdGlvbiBpcyBmb3VuZCwgdGhlbiBhY3Rpb24gaXMgdW5kZWZpbmVkLlxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnRJbmZvIGBFdmVudEluZm9gIHRvIHNldCBgYWN0aW9uYCBhbmQgYGFjdGlvbkVsZW1lbnRgIGlmIGFuXG4gICAqICAgIGFjdGlvbiBpcyBmb3VuZCBvbiBhbnkgYEVsZW1lbnRgIGluIHRoZSBwYXRoIG9mIHRoZSBgRXZlbnRgLlxuICAgKi9cbiAgcHJpdmF0ZSBwb3B1bGF0ZUFjdGlvbihldmVudEluZm86IGV2ZW50SW5mb0xpYi5FdmVudEluZm8pIHtcbiAgICAvLyBXZSBkaXN0aW5ndWlzaCBtb2RpZmllZCBhbmQgcGxhaW4gY2xpY2tzIGluIG9yZGVyIHRvIHN1cHBvcnQgdGhlXG4gICAgLy8gZGVmYXVsdCBicm93c2VyIGJlaGF2aW9yIG9mIG1vZGlmaWVkIGNsaWNrcyBvbiBsaW5rczsgdXN1YWxseSB0b1xuICAgIC8vIG9wZW4gdGhlIFVSTCBvZiB0aGUgbGluayBpbiBuZXcgdGFiIG9yIG5ldyB3aW5kb3cgb24gY3RybC9jbWRcbiAgICAvLyBjbGljay4gQSBET00gJ2NsaWNrJyBldmVudCBpcyBtYXBwZWQgdG8gdGhlIGpzYWN0aW9uICdjbGljaydcbiAgICAvLyBldmVudCBpZmYgdGhlcmUgaXMgbm8gbW9kaWZpZXIgcHJlc2VudCBvbiB0aGUgZXZlbnQuIElmIHRoZXJlIGlzXG4gICAgLy8gYSBtb2RpZmllciwgaXQncyBtYXBwZWQgdG8gJ2NsaWNrbW9kJyBpbnN0ZWFkLlxuICAgIC8vXG4gICAgLy8gSXQncyBhbGxvd2VkIHRvIG9taXQgdGhlIGV2ZW50IGluIHRoZSBqc2FjdGlvbiBhdHRyaWJ1dGUuIEluIHRoYXRcbiAgICAvLyBjYXNlLCAnY2xpY2snIGlzIGFzc3VtZWQuIFRodXMgdGhlIGZvbGxvd2luZyB0d28gYXJlIGVxdWl2YWxlbnQ6XG4gICAgLy9cbiAgICAvLyAgIDxhIGhyZWY9XCJzb21ldXJsXCIganNhY3Rpb249XCJnbmEuZnVcIj5cbiAgICAvLyAgIDxhIGhyZWY9XCJzb21ldXJsXCIganNhY3Rpb249XCJjbGljazpnbmEuZnVcIj5cbiAgICAvL1xuICAgIC8vIEZvciB1bm1vZGlmaWVkIGNsaWNrcywgRXZlbnRDb250cmFjdCBpbnZva2VzIHRoZSBqc2FjdGlvblxuICAgIC8vICdnbmEuZnUnLiBGb3IgbW9kaWZpZWQgY2xpY2tzLCBFdmVudENvbnRyYWN0IHdvbid0IGZpbmQgYVxuICAgIC8vIHN1aXRhYmxlIGFjdGlvbiBhbmQgbGVhdmUgdGhlIGV2ZW50IHRvIGJlIGhhbmRsZWQgYnkgdGhlXG4gICAgLy8gYnJvd3Nlci5cbiAgICAvL1xuICAgIC8vIEluIG9yZGVyIHRvIGFsc28gaW52b2tlIGEganNhY3Rpb24gaGFuZGxlciBmb3IgYSBtb2RpZmllciBjbGljayxcbiAgICAvLyAnY2xpY2ttb2QnIG5lZWRzIHRvIGJlIHVzZWQ6XG4gICAgLy9cbiAgICAvLyAgIDxhIGhyZWY9XCJzb21ldXJsXCIganNhY3Rpb249XCJjbGlja21vZDpnbmEuZnVcIj5cbiAgICAvL1xuICAgIC8vIEV2ZW50Q29udHJhY3QgaW52b2tlcyB0aGUganNhY3Rpb24gJ2duYS5mdScgZm9yIG1vZGlmaWVkXG4gICAgLy8gY2xpY2tzLiBVbm1vZGlmaWVkIGNsaWNrcyBhcmUgbGVmdCB0byB0aGUgYnJvd3Nlci5cbiAgICAvL1xuICAgIC8vIEluIG9yZGVyIHRvIHNldCB1cCB0aGUgZXZlbnQgY29udHJhY3QgdG8gaGFuZGxlIGJvdGggY2xpY2tvbmx5IGFuZFxuICAgIC8vIGNsaWNrbW9kLCBvbmx5IGFkZEV2ZW50KEV2ZW50VHlwZS5DTElDSykgaXMgbmVjZXNzYXJ5LlxuICAgIC8vXG4gICAgLy8gSW4gb3JkZXIgdG8gc2V0IHVwIHRoZSBldmVudCBjb250cmFjdCB0byBoYW5kbGUgY2xpY2ssXG4gICAgLy8gYWRkRXZlbnQoKSBpcyBuZWNlc3NhcnkgZm9yIENMSUNLLCBLRVlET1dOLCBhbmQgS0VZUFJFU1MgZXZlbnQgdHlwZXMuICBJZlxuICAgIC8vIGExMXkgY2xpY2sgc3VwcG9ydCBpcyBlbmFibGVkLCBhZGRFdmVudCgpIHdpbGwgc2V0IHVwIHRoZSBhcHByb3ByaWF0ZSBrZXlcbiAgICAvLyBldmVudCBoYW5kbGVyIGF1dG9tYXRpY2FsbHkuXG4gICAgaWYgKFxuICAgICAgZXZlbnRJbmZvTGliLmdldEV2ZW50VHlwZShldmVudEluZm8pID09PSBFdmVudFR5cGUuQ0xJQ0sgJiZcbiAgICAgIGV2ZW50TGliLmlzTW9kaWZpZWRDbGlja0V2ZW50KGV2ZW50SW5mb0xpYi5nZXRFdmVudChldmVudEluZm8pKVxuICAgICkge1xuICAgICAgZXZlbnRJbmZvTGliLnNldEV2ZW50VHlwZShldmVudEluZm8sIEV2ZW50VHlwZS5DTElDS01PRCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmExMXlDbGlja1N1cHBvcnQpIHtcbiAgICAgIHRoaXMudXBkYXRlRXZlbnRJbmZvRm9yQTExeUNsaWNrIShldmVudEluZm8pO1xuICAgIH1cblxuICAgIC8vIFdhbGsgdG8gdGhlIHBhcmVudCBub2RlLCB1bmxlc3MgdGhlIG5vZGUgaGFzIGEgZGlmZmVyZW50IG93bmVyIGluXG4gICAgLy8gd2hpY2ggY2FzZSB3ZSB3YWxrIHRvIHRoZSBvd25lci4gQXR0ZW1wdCB0byB3YWxrIHRvIGhvc3Qgb2YgYVxuICAgIC8vIHNoYWRvdyByb290IGlmIG5lZWRlZC5cbiAgICBsZXQgYWN0aW9uRWxlbWVudDogRWxlbWVudCB8IG51bGwgPSBldmVudEluZm9MaWIuZ2V0VGFyZ2V0RWxlbWVudChldmVudEluZm8pO1xuICAgIHdoaWxlIChhY3Rpb25FbGVtZW50ICYmIGFjdGlvbkVsZW1lbnQgIT09IGV2ZW50SW5mb0xpYi5nZXRDb250YWluZXIoZXZlbnRJbmZvKSkge1xuICAgICAgaWYgKGFjdGlvbkVsZW1lbnQubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFKSB7XG4gICAgICAgIHRoaXMucG9wdWxhdGVBY3Rpb25PbkVsZW1lbnQoYWN0aW9uRWxlbWVudCwgZXZlbnRJbmZvKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGV2ZW50SW5mb0xpYi5nZXRBY3Rpb24oZXZlbnRJbmZvKSkge1xuICAgICAgICAvLyBBbiBldmVudCBpcyBoYW5kbGVkIGJ5IGF0IG1vc3Qgb25lIGpzYWN0aW9uLiBUaHVzIHdlIHN0b3AgYXQgdGhlXG4gICAgICAgIC8vIGZpcnN0IG1hdGNoaW5nIGpzYWN0aW9uIHNwZWNpZmllZCBpbiBhIGpzYWN0aW9uIGF0dHJpYnV0ZSB1cCB0aGVcbiAgICAgICAgLy8gYW5jZXN0b3IgY2hhaW4gb2YgdGhlIGV2ZW50IHRhcmdldCBub2RlLlxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGlmIChhY3Rpb25FbGVtZW50W09XTkVSXSkge1xuICAgICAgICBhY3Rpb25FbGVtZW50ID0gYWN0aW9uRWxlbWVudFtPV05FUl0gYXMgRWxlbWVudDtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoYWN0aW9uRWxlbWVudC5wYXJlbnROb2RlPy5ub2RlTmFtZSAhPT0gJyNkb2N1bWVudC1mcmFnbWVudCcpIHtcbiAgICAgICAgYWN0aW9uRWxlbWVudCA9IGFjdGlvbkVsZW1lbnQucGFyZW50Tm9kZSBhcyBFbGVtZW50IHwgbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFjdGlvbkVsZW1lbnQgPSAoYWN0aW9uRWxlbWVudC5wYXJlbnROb2RlIGFzIFNoYWRvd1Jvb3QgfCBudWxsKT8uaG9zdCA/PyBudWxsO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGFjdGlvbiA9IGV2ZW50SW5mb0xpYi5nZXRBY3Rpb24oZXZlbnRJbmZvKTtcbiAgICBpZiAoIWFjdGlvbikge1xuICAgICAgLy8gTm8gYWN0aW9uIGZvdW5kLlxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmExMXlDbGlja1N1cHBvcnQpIHtcbiAgICAgIHRoaXMucHJldmVudERlZmF1bHRGb3JBMTF5Q2xpY2shKGV2ZW50SW5mbyk7XG4gICAgfVxuXG4gICAgLy8gV2UgYXR0ZW1wdCB0byBoYW5kbGUgdGhlIG1vdXNlZW50ZXIvbW91c2VsZWF2ZSBldmVudHMgaGVyZSBieVxuICAgIC8vIGRldGVjdGluZyB3aGV0aGVyIHRoZSBtb3VzZW92ZXIvbW91c2VvdXQgZXZlbnRzIGNvcnJlc3BvbmQgdG9cbiAgICAvLyBlbnRlcmluZy9sZWF2aW5nIGFuIGVsZW1lbnQuXG4gICAgaWYgKHRoaXMuc3ludGhldGljTW91c2VFdmVudFN1cHBvcnQpIHtcbiAgICAgIGlmIChcbiAgICAgICAgZXZlbnRJbmZvTGliLmdldEV2ZW50VHlwZShldmVudEluZm8pID09PSBFdmVudFR5cGUuTU9VU0VFTlRFUiB8fFxuICAgICAgICBldmVudEluZm9MaWIuZ2V0RXZlbnRUeXBlKGV2ZW50SW5mbykgPT09IEV2ZW50VHlwZS5NT1VTRUxFQVZFIHx8XG4gICAgICAgIGV2ZW50SW5mb0xpYi5nZXRFdmVudFR5cGUoZXZlbnRJbmZvKSA9PT0gRXZlbnRUeXBlLlBPSU5URVJFTlRFUiB8fFxuICAgICAgICBldmVudEluZm9MaWIuZ2V0RXZlbnRUeXBlKGV2ZW50SW5mbykgPT09IEV2ZW50VHlwZS5QT0lOVEVSTEVBVkVcbiAgICAgICkge1xuICAgICAgICAvLyBXZSBhdHRlbXB0IHRvIGhhbmRsZSB0aGUgbW91c2VlbnRlci9tb3VzZWxlYXZlIGV2ZW50cyBoZXJlIGJ5XG4gICAgICAgIC8vIGRldGVjdGluZyB3aGV0aGVyIHRoZSBtb3VzZW92ZXIvbW91c2VvdXQgZXZlbnRzIGNvcnJlc3BvbmQgdG9cbiAgICAgICAgLy8gZW50ZXJpbmcvbGVhdmluZyBhbiBlbGVtZW50LlxuICAgICAgICBpZiAoXG4gICAgICAgICAgZXZlbnRMaWIuaXNNb3VzZVNwZWNpYWxFdmVudChcbiAgICAgICAgICAgIGV2ZW50SW5mb0xpYi5nZXRFdmVudChldmVudEluZm8pLFxuICAgICAgICAgICAgZXZlbnRJbmZvTGliLmdldEV2ZW50VHlwZShldmVudEluZm8pLFxuICAgICAgICAgICAgZXZlbnRJbmZvTGliLmdldEFjdGlvbkVsZW1lbnQoYWN0aW9uKSxcbiAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgIC8vIElmIGJvdGggbW91c2VvdmVyL21vdXNlb3V0IGFuZCBtb3VzZWVudGVyL21vdXNlbGVhdmUgZXZlbnRzIGFyZVxuICAgICAgICAgIC8vIGVuYWJsZWQsIHR3byBzZXBhcmF0ZSBoYW5kbGVycyBmb3IgbW91c2VvdmVyL21vdXNlb3V0IGFyZVxuICAgICAgICAgIC8vIHJlZ2lzdGVyZWQuIEJvdGggaGFuZGxlcnMgd2lsbCBzZWUgdGhlIHNhbWUgZXZlbnQgaW5zdGFuY2VcbiAgICAgICAgICAvLyBzbyB3ZSBjcmVhdGUgYSBjb3B5IHRvIGF2b2lkIGludGVyZmVyaW5nIHdpdGggdGhlIGRpc3BhdGNoaW5nIG9mXG4gICAgICAgICAgLy8gdGhlIG1vdXNlb3Zlci9tb3VzZW91dCBldmVudC5cbiAgICAgICAgICBjb25zdCBjb3BpZWRFdmVudCA9IGV2ZW50TGliLmNyZWF0ZU1vdXNlU3BlY2lhbEV2ZW50KFxuICAgICAgICAgICAgZXZlbnRJbmZvTGliLmdldEV2ZW50KGV2ZW50SW5mbyksXG4gICAgICAgICAgICBldmVudEluZm9MaWIuZ2V0QWN0aW9uRWxlbWVudChhY3Rpb24pLFxuICAgICAgICAgICk7XG4gICAgICAgICAgZXZlbnRJbmZvTGliLnNldEV2ZW50KGV2ZW50SW5mbywgY29waWVkRXZlbnQpO1xuICAgICAgICAgIC8vIFNpbmNlIHRoZSBtb3VzZWVudGVyL21vdXNlbGVhdmUgZXZlbnRzIGRvIG5vdCBidWJibGUsIHRoZSB0YXJnZXRcbiAgICAgICAgICAvLyBvZiB0aGUgZXZlbnQgaXMgdGVjaG5pY2FsbHkgdGhlIGBhY3Rpb25FbGVtZW50YCAodGhlIG5vZGUgd2l0aCB0aGVcbiAgICAgICAgICAvLyBganNhY3Rpb25gIGF0dHJpYnV0ZSlcbiAgICAgICAgICBldmVudEluZm9MaWIuc2V0VGFyZ2V0RWxlbWVudChldmVudEluZm8sIGV2ZW50SW5mb0xpYi5nZXRBY3Rpb25FbGVtZW50KGFjdGlvbikpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGV2ZW50SW5mb0xpYi51bnNldEFjdGlvbihldmVudEluZm8pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFjY2Vzc2VzIHRoZSBqc2FjdGlvbiBtYXAgb24gYSBub2RlIGFuZCByZXRyaWV2ZXMgdGhlIG5hbWUgb2YgdGhlXG4gICAqIGFjdGlvbiB0aGUgZ2l2ZW4gZXZlbnQgaXMgbWFwcGVkIHRvLCBpZiBhbnkuIEl0IHBhcnNlcyB0aGVcbiAgICogYXR0cmlidXRlIHZhbHVlIGFuZCBzdG9yZXMgaXQgaW4gYSBwcm9wZXJ0eSBvbiB0aGUgbm9kZSBmb3JcbiAgICogc3Vic2VxdWVudCByZXRyaWV2YWwgd2l0aG91dCByZS1wYXJzaW5nIGFuZCByZS1hY2Nlc3NpbmcgdGhlXG4gICAqIGF0dHJpYnV0ZS5cbiAgICpcbiAgICogQHBhcmFtIGFjdGlvbkVsZW1lbnQgVGhlIERPTSBub2RlIHRvIHJldHJpZXZlIHRoZSBqc2FjdGlvbiBtYXAgZnJvbS5cbiAgICogQHBhcmFtIGV2ZW50SW5mbyBgRXZlbnRJbmZvYCB0byBzZXQgYGFjdGlvbmAgYW5kIGBhY3Rpb25FbGVtZW50YCBpZiBhblxuICAgKiAgICBhY3Rpb24gaXMgZm91bmQgb24gdGhlIGBhY3Rpb25FbGVtZW50YC5cbiAgICovXG4gIHByaXZhdGUgcG9wdWxhdGVBY3Rpb25PbkVsZW1lbnQoYWN0aW9uRWxlbWVudDogRWxlbWVudCwgZXZlbnRJbmZvOiBldmVudEluZm9MaWIuRXZlbnRJbmZvKSB7XG4gICAgY29uc3QgYWN0aW9uTWFwID0gdGhpcy5wYXJzZUFjdGlvbnMoYWN0aW9uRWxlbWVudCk7XG5cbiAgICBjb25zdCBhY3Rpb25OYW1lID0gYWN0aW9uTWFwW2V2ZW50SW5mb0xpYi5nZXRFdmVudFR5cGUoZXZlbnRJbmZvKV07XG4gICAgaWYgKGFjdGlvbk5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgZXZlbnRJbmZvTGliLnNldEFjdGlvbihldmVudEluZm8sIGFjdGlvbk5hbWUsIGFjdGlvbkVsZW1lbnQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmExMXlDbGlja1N1cHBvcnQpIHtcbiAgICAgIHRoaXMucG9wdWxhdGVDbGlja09ubHlBY3Rpb24hKGFjdGlvbkVsZW1lbnQsIGV2ZW50SW5mbywgYWN0aW9uTWFwKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUGFyc2VzIGFuZCBjYWNoZXMgYW4gZWxlbWVudCdzIGpzYWN0aW9uIGVsZW1lbnQgaW50byBhIG1hcC5cbiAgICpcbiAgICogVGhpcyBpcyBwcmltYXJpbHkgZm9yIGludGVybmFsIHVzZS5cbiAgICpcbiAgICogQHBhcmFtIGFjdGlvbkVsZW1lbnQgVGhlIERPTSBub2RlIHRvIHJldHJpZXZlIHRoZSBqc2FjdGlvbiBtYXAgZnJvbS5cbiAgICogQHJldHVybiBNYXAgZnJvbSBldmVudCB0byBxdWFsaWZpZWQgbmFtZSBvZiB0aGUganNhY3Rpb24gYm91bmQgdG8gaXQuXG4gICAqL1xuICBwcml2YXRlIHBhcnNlQWN0aW9ucyhhY3Rpb25FbGVtZW50OiBFbGVtZW50KToge1trZXk6IHN0cmluZ106IHN0cmluZ30ge1xuICAgIGxldCBhY3Rpb25NYXA6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9IHwgdW5kZWZpbmVkID0gY2FjaGUuZ2V0KGFjdGlvbkVsZW1lbnQpO1xuICAgIGlmICghYWN0aW9uTWFwKSB7XG4gICAgICBjb25zdCBqc2FjdGlvbkF0dHJpYnV0ZSA9IGFjdGlvbkVsZW1lbnQuZ2V0QXR0cmlidXRlKEF0dHJpYnV0ZS5KU0FDVElPTik7XG4gICAgICBpZiAoIWpzYWN0aW9uQXR0cmlidXRlKSB7XG4gICAgICAgIGFjdGlvbk1hcCA9IEVNUFRZX0FDVElPTl9NQVA7XG4gICAgICAgIGNhY2hlLnNldChhY3Rpb25FbGVtZW50LCBhY3Rpb25NYXApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWN0aW9uTWFwID0gY2FjaGUuZ2V0UGFyc2VkKGpzYWN0aW9uQXR0cmlidXRlKTtcbiAgICAgICAgaWYgKCFhY3Rpb25NYXApIHtcbiAgICAgICAgICBhY3Rpb25NYXAgPSB7fTtcbiAgICAgICAgICBjb25zdCB2YWx1ZXMgPSBqc2FjdGlvbkF0dHJpYnV0ZS5zcGxpdChSRUdFWFBfU0VNSUNPTE9OKTtcbiAgICAgICAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCB2YWx1ZXMubGVuZ3RoOyBpZHgrKykge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB2YWx1ZXNbaWR4XTtcbiAgICAgICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBjb2xvbiA9IHZhbHVlLmluZGV4T2YoQ2hhci5FVkVOVF9BQ1RJT05fU0VQQVJBVE9SKTtcbiAgICAgICAgICAgIGNvbnN0IGhhc0NvbG9uID0gY29sb24gIT09IC0xO1xuICAgICAgICAgICAgY29uc3QgdHlwZSA9IGhhc0NvbG9uID8gdmFsdWUuc3Vic3RyKDAsIGNvbG9uKS50cmltKCkgOiBERUZBVUxUX0VWRU5UX1RZUEU7XG4gICAgICAgICAgICBjb25zdCBhY3Rpb24gPSBoYXNDb2xvbiA/IHZhbHVlLnN1YnN0cihjb2xvbiArIDEpLnRyaW0oKSA6IHZhbHVlO1xuICAgICAgICAgICAgYWN0aW9uTWFwW3R5cGVdID0gYWN0aW9uO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYWNoZS5zZXRQYXJzZWQoanNhY3Rpb25BdHRyaWJ1dGUsIGFjdGlvbk1hcCk7XG4gICAgICAgIH1cbiAgICAgICAgY2FjaGUuc2V0KGFjdGlvbkVsZW1lbnQsIGFjdGlvbk1hcCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBhY3Rpb25NYXA7XG4gIH1cblxuICBhZGRBMTF5Q2xpY2tTdXBwb3J0KFxuICAgIHVwZGF0ZUV2ZW50SW5mb0ZvckExMXlDbGljazogdHlwZW9mIGExMXlDbGljay51cGRhdGVFdmVudEluZm9Gb3JBMTF5Q2xpY2ssXG4gICAgcHJldmVudERlZmF1bHRGb3JBMTF5Q2xpY2s6IHR5cGVvZiBhMTF5Q2xpY2sucHJldmVudERlZmF1bHRGb3JBMTF5Q2xpY2ssXG4gICAgcG9wdWxhdGVDbGlja09ubHlBY3Rpb246IHR5cGVvZiBhMTF5Q2xpY2sucG9wdWxhdGVDbGlja09ubHlBY3Rpb24sXG4gICkge1xuICAgIHRoaXMuYTExeUNsaWNrU3VwcG9ydCA9IHRydWU7XG4gICAgdGhpcy51cGRhdGVFdmVudEluZm9Gb3JBMTF5Q2xpY2sgPSB1cGRhdGVFdmVudEluZm9Gb3JBMTF5Q2xpY2s7XG4gICAgdGhpcy5wcmV2ZW50RGVmYXVsdEZvckExMXlDbGljayA9IHByZXZlbnREZWZhdWx0Rm9yQTExeUNsaWNrO1xuICAgIHRoaXMucG9wdWxhdGVDbGlja09ubHlBY3Rpb24gPSBwb3B1bGF0ZUNsaWNrT25seUFjdGlvbjtcbiAgfVxufVxuIl19
|
|
@@ -13,22 +13,11 @@
|
|
|
13
13
|
* an optional DOM event name and a jsaction name. If the optional
|
|
14
14
|
* DOM event name is omitted, 'click' is assumed. The jsaction names
|
|
15
15
|
* are dot separated pairs of a namespace and a simple jsaction
|
|
16
|
-
* name.
|
|
17
|
-
* ancestor element with a jsnamespace attribute, if there is
|
|
18
|
-
* any. If there is no ancestor with a jsnamespace attribute, the
|
|
19
|
-
* simple name is assumed to be the jsaction name.
|
|
16
|
+
* name.
|
|
20
17
|
*
|
|
21
|
-
*
|
|
18
|
+
* See grammar in README.md for expected syntax in the attribute value.
|
|
22
19
|
*/
|
|
23
20
|
export const JSACTION = 'jsaction';
|
|
24
|
-
/**
|
|
25
|
-
* The jsnamespace attribute provides the namespace part of the
|
|
26
|
-
* jaction names occurring in the jsaction attribute where it's
|
|
27
|
-
* missing.
|
|
28
|
-
*
|
|
29
|
-
* Used by EventContract.
|
|
30
|
-
*/
|
|
31
|
-
export const JSNAMESPACE = 'jsnamespace';
|
|
32
21
|
/**
|
|
33
22
|
* The oi attribute is a log impression tag for impression logging
|
|
34
23
|
* and action tracking. For an element that carries a jsaction
|
|
@@ -66,5 +55,5 @@ export const JSINSTANCE = 'jsinstance';
|
|
|
66
55
|
* Used by ActionFlow.
|
|
67
56
|
*/
|
|
68
57
|
export const JSTRACK = 'jstrack';
|
|
69
|
-
export const Attribute = { JSACTION,
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
export const Attribute = { JSACTION, OI, VED, VET, JSINSTANCE, JSTRACK };
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9wcmltaXRpdmVzL2V2ZW50LWRpc3BhdGNoL3NyYy9hdHRyaWJ1dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUg7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDO0FBRW5DOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQztBQUV2Qjs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUM7QUFFekI7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQztBQUV6Qjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQztBQUV2Qzs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQztBQUVqQyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsRUFBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8qKlxuICogVGhlIGpzYWN0aW9uIGF0dHJpYnV0ZSBkZWZpbmVzIGEgbWFwcGluZyBvZiBhIERPTSBldmVudCB0byBhXG4gKiBnZW5lcmljIGV2ZW50IChha2EganNhY3Rpb24pLCB0byB3aGljaCB0aGUgYWN0dWFsIGV2ZW50IGhhbmRsZXJzXG4gKiB0aGF0IGltcGxlbWVudCB0aGUgYmVoYXZpb3Igb2YgdGhlIGFwcGxpY2F0aW9uIGFyZSBib3VuZC4gVGhlXG4gKiB2YWx1ZSBpcyBhIHNlbWljb2xvbiBzZXBhcmF0ZWQgbGlzdCBvZiBjb2xvbiBzZXBhcmF0ZWQgcGFpcnMgb2ZcbiAqIGFuIG9wdGlvbmFsIERPTSBldmVudCBuYW1lIGFuZCBhIGpzYWN0aW9uIG5hbWUuIElmIHRoZSBvcHRpb25hbFxuICogRE9NIGV2ZW50IG5hbWUgaXMgb21pdHRlZCwgJ2NsaWNrJyBpcyBhc3N1bWVkLiBUaGUganNhY3Rpb24gbmFtZXNcbiAqIGFyZSBkb3Qgc2VwYXJhdGVkIHBhaXJzIG9mIGEgbmFtZXNwYWNlIGFuZCBhIHNpbXBsZSBqc2FjdGlvblxuICogbmFtZS5cbiAqXG4gKiBTZWUgZ3JhbW1hciBpbiBSRUFETUUubWQgZm9yIGV4cGVjdGVkIHN5bnRheCBpbiB0aGUgYXR0cmlidXRlIHZhbHVlLlxuICovXG5leHBvcnQgY29uc3QgSlNBQ1RJT04gPSAnanNhY3Rpb24nO1xuXG4vKipcbiAqIFRoZSBvaSBhdHRyaWJ1dGUgaXMgYSBsb2cgaW1wcmVzc2lvbiB0YWcgZm9yIGltcHJlc3Npb24gbG9nZ2luZ1xuICogYW5kIGFjdGlvbiB0cmFja2luZy4gRm9yIGFuIGVsZW1lbnQgdGhhdCBjYXJyaWVzIGEganNhY3Rpb25cbiAqIGF0dHJpYnV0ZSwgdGhlIGVsZW1lbnQgaXMgaWRlbnRpZmllZCBmb3IgdGhlIHB1cnBvc2Ugb2ZcbiAqIGltcHJlc3Npb24gbG9nZ2luZyBhbmQgY2xpY2sgdHJhY2tpbmcgYnkgdGhlIGRvdCBzZXBhcmF0ZWQgcGF0aFxuICogb2YgYWxsIG9pIGF0dHJpYnV0ZXMgaW4gdGhlIGNoYWluIG9mIGFuY2VzdG9ycyBvZiB0aGUgZWxlbWVudC5cbiAqXG4gKiBVc2VkIGJ5IEFjdGlvbkZsb3cuXG4gKi9cbmV4cG9ydCBjb25zdCBPSSA9ICdvaSc7XG5cbi8qKlxuICogVGhlIHZlZCBhdHRyaWJ1dGUgaXMgYW4gZW5jb2RlZCBDbGlja1RyYWNraW5nQ0dJIHByb3RvIHRvIHRyYWNrXG4gKiB2aXN1YWwgZWxlbWVudHMuXG4gKlxuICogVXNlZCBieSBBY3Rpb25GbG93LlxuICovXG5leHBvcnQgY29uc3QgVkVEID0gJ3ZlZCc7XG5cbi8qKlxuICogVGhlIHZldCBhdHRyaWJ1dGUgaXMgdGhlIHZpc3VhbCBlbGVtZW50IHR5cGUgdXNlZCB0byBpZGVudGlmeSB0cmFja2VkXG4gKiB2aXN1YWwgZWxlbWVudHMuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVQgPSAndmV0JztcblxuLyoqXG4gKiBTdXBwb3J0IGZvciBpdGVyYXRpb24gb24gcmVwcm9jZXNzaW5nLlxuICpcbiAqIFVzZWQgYnkgQWN0aW9uRmxvdy5cbiAqL1xuZXhwb3J0IGNvbnN0IEpTSU5TVEFOQ0UgPSAnanNpbnN0YW5jZSc7XG5cbi8qKlxuICogQWxsIGNsaWNrIGpzYWN0aW9ucyB0aGF0IGhhcHBlbiBvbiB0aGUgZWxlbWVudCB0aGF0IGNhcnJpZXMgdGhpc1xuICogYXR0cmlidXRlIG9yIGl0cyBkZXNjZW5kYW50cyBhcmUgYXV0b21hdGljYWxseSBsb2dnZWQuXG4gKiBJbXByZXNzaW9ucyBvZiBqc2FjdGlvbnMgb24gdGhlc2UgZWxlbWVudHMgYXJlIHRyYWNrZWQgdG9vLCBpZlxuICogcmVxdWVzdGVkIGJ5IHRoZSBpbXByZXNzaW9uKCkgbWV0aG9kIG9mIEFjdGlvbkZsb3cuXG4gKlxuICogVXNlZCBieSBBY3Rpb25GbG93LlxuICovXG5leHBvcnQgY29uc3QgSlNUUkFDSyA9ICdqc3RyYWNrJztcblxuZXhwb3J0IGNvbnN0IEF0dHJpYnV0ZSA9IHtKU0FDVElPTiwgT0ksIFZFRCwgVkVULCBKU0lOU1RBTkNFLCBKU1RSQUNLfTtcbiJdfQ==
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Use of this source code is governed by an MIT-style license that can be
|
|
6
6
|
* found in the LICENSE file at https://angular.io/license
|
|
7
7
|
*/
|
|
8
|
-
import { JSACTION
|
|
8
|
+
import { JSACTION } from './property';
|
|
9
9
|
/**
|
|
10
10
|
* Map from jsaction annotation to a parsed map from event name to action name.
|
|
11
11
|
*/
|
|
@@ -59,37 +59,4 @@ export function clear(element) {
|
|
|
59
59
|
delete element[JSACTION];
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
|
-
|
|
63
|
-
* Reads the cached jsaction namespace from the given DOM
|
|
64
|
-
* Element. Undefined means there is no cached value; null is a cached
|
|
65
|
-
* jsnamespace attribute that's absent.
|
|
66
|
-
*
|
|
67
|
-
* @param element .
|
|
68
|
-
* @return .
|
|
69
|
-
*/
|
|
70
|
-
export function getNamespace(element) {
|
|
71
|
-
// @ts-ignore
|
|
72
|
-
return element[JSNAMESPACE];
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Writes the cached jsaction namespace to the given DOM Element. Null
|
|
76
|
-
* represents a jsnamespace attribute that's absent.
|
|
77
|
-
*
|
|
78
|
-
* @param element .
|
|
79
|
-
* @param jsnamespace .
|
|
80
|
-
*/
|
|
81
|
-
export function setNamespace(element, jsnamespace) {
|
|
82
|
-
// @ts-ignore
|
|
83
|
-
element[JSNAMESPACE] = jsnamespace;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Clears the cached jsaction namespace from the given DOM Element.
|
|
87
|
-
*
|
|
88
|
-
* @param element .
|
|
89
|
-
*/
|
|
90
|
-
export function clearNamespace(element) {
|
|
91
|
-
if (JSNAMESPACE in element) {
|
|
92
|
-
delete element[JSNAMESPACE];
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3ByaW1pdGl2ZXMvZXZlbnQtZGlzcGF0Y2gvc3JjL2NhY2hlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBQyxRQUFRLEVBQUUsV0FBVyxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBRWpEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLEdBQTZDLEVBQUUsQ0FBQztBQUVoRTs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxHQUFHLENBQUMsT0FBZ0I7SUFDbEMsYUFBYTtJQUNiLE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQzNCLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsR0FBRyxDQUFDLE9BQWdCLEVBQUUsU0FBa0M7SUFDdEUsYUFBYTtJQUNiLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxTQUFTLENBQUM7QUFDaEMsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBQyxJQUFZO0lBQ3BDLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzFCLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxTQUFTLENBQUMsSUFBWSxFQUFFLE1BQStCO0lBQ3JFLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUM7QUFDNUIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsS0FBSyxDQUFDLE9BQWdCO0lBQ3BDLElBQUksUUFBUSxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3hCLE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNCLENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsT0FBZ0I7SUFDM0MsYUFBYTtJQUNiLE9BQU8sT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQzlCLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLE9BQWdCLEVBQUUsV0FBMEI7SUFDdkUsYUFBYTtJQUNiLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxXQUFXLENBQUM7QUFDckMsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQWdCO0lBQzdDLElBQUksV0FBVyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzNCLE9BQU8sT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7SlNBQ1RJT04sIEpTTkFNRVNQQUNFfSBmcm9tICcuL3Byb3BlcnR5JztcblxuLyoqXG4gKiBNYXAgZnJvbSBqc2FjdGlvbiBhbm5vdGF0aW9uIHRvIGEgcGFyc2VkIG1hcCBmcm9tIGV2ZW50IG5hbWUgdG8gYWN0aW9uIG5hbWUuXG4gKi9cbmNvbnN0IHBhcnNlQ2FjaGU6IHtba2V5OiBzdHJpbmddOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfX0gPSB7fTtcblxuLyoqXG4gKiBSZWFkcyB0aGUganNhY3Rpb24gcGFyc2VyIGNhY2hlIGZyb20gdGhlIGdpdmVuIERPTSBFbGVtZW50LlxuICpcbiAqIEBwYXJhbSBlbGVtZW50IC5cbiAqIEByZXR1cm4gTWFwIGZyb20gZXZlbnQgdG8gcXVhbGlmaWVkIG5hbWUgb2YgdGhlIGpzYWN0aW9uIGJvdW5kIHRvIGl0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0KGVsZW1lbnQ6IEVsZW1lbnQpOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSB7XG4gIC8vIEB0cy1pZ25vcmVcbiAgcmV0dXJuIGVsZW1lbnRbSlNBQ1RJT05dO1xufVxuXG4vKipcbiAqIFdyaXRlcyB0aGUganNhY3Rpb24gcGFyc2VyIGNhY2hlIHRvIHRoZSBnaXZlbiBET00gRWxlbWVudC5cbiAqXG4gKiBAcGFyYW0gZWxlbWVudCAuXG4gKiBAcGFyYW0gYWN0aW9uTWFwIE1hcCBmcm9tIGV2ZW50IHRvIHF1YWxpZmllZCBuYW1lIG9mIHRoZSBqc2FjdGlvbiBib3VuZCB0b1xuICogICAgIGl0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0KGVsZW1lbnQ6IEVsZW1lbnQsIGFjdGlvbk1hcDoge1trZXk6IHN0cmluZ106IHN0cmluZ30pIHtcbiAgLy8gQHRzLWlnbm9yZVxuICBlbGVtZW50W0pTQUNUSU9OXSA9IGFjdGlvbk1hcDtcbn1cblxuLyoqXG4gKiBMb29rcyB1cCB0aGUgcGFyc2VkIGFjdGlvbiBtYXAgZnJvbSB0aGUgc291cmNlIGpzYWN0aW9uIGF0dHJpYnV0ZSB2YWx1ZS5cbiAqXG4gKiBAcGFyYW0gdGV4dCBVbnBhcnNlZCBqc2FjdGlvbiBhdHRyaWJ1dGUgdmFsdWUuXG4gKiBAcmV0dXJuIFBhcnNlZCBqc2FjdGlvbiBhdHRyaWJ1dGUgdmFsdWUsIGlmIGFscmVhZHkgcHJlc2VudCBpbiB0aGUgY2FjaGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYXJzZWQodGV4dDogc3RyaW5nKToge1trZXk6IHN0cmluZ106IHN0cmluZ30gfCB1bmRlZmluZWQge1xuICByZXR1cm4gcGFyc2VDYWNoZVt0ZXh0XTtcbn1cblxuLyoqXG4gKiBJbnNlcnRzIHRoZSBwYXJzZSByZXN1bHQgZm9yIHRoZSBnaXZlbiBzb3VyY2UganNhY3Rpb24gdmFsdWUgaW50byB0aGUgY2FjaGUuXG4gKlxuICogQHBhcmFtIHRleHQgVW5wYXJzZWQganNhY3Rpb24gYXR0cmlidXRlIHZhbHVlLlxuICogQHBhcmFtIHBhcnNlZCBBdHRyaWJ1dGUgdmFsdWUgcGFyc2VkIGludG8gdGhlIGFjdGlvbiBtYXAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRQYXJzZWQodGV4dDogc3RyaW5nLCBwYXJzZWQ6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9KSB7XG4gIHBhcnNlQ2FjaGVbdGV4dF0gPSBwYXJzZWQ7XG59XG5cbi8qKlxuICogQ2xlYXJzIHRoZSBqc2FjdGlvbiBwYXJzZXIgY2FjaGUgZnJvbSB0aGUgZ2l2ZW4gRE9NIEVsZW1lbnQuXG4gKlxuICogQHBhcmFtIGVsZW1lbnQgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xlYXIoZWxlbWVudDogRWxlbWVudCkge1xuICBpZiAoSlNBQ1RJT04gaW4gZWxlbWVudCkge1xuICAgIGRlbGV0ZSBlbGVtZW50W0pTQUNUSU9OXTtcbiAgfVxufVxuXG4vKipcbiAqIFJlYWRzIHRoZSBjYWNoZWQganNhY3Rpb24gbmFtZXNwYWNlIGZyb20gdGhlIGdpdmVuIERPTVxuICogRWxlbWVudC4gVW5kZWZpbmVkIG1lYW5zIHRoZXJlIGlzIG5vIGNhY2hlZCB2YWx1ZTsgbnVsbCBpcyBhIGNhY2hlZFxuICoganNuYW1lc3BhY2UgYXR0cmlidXRlIHRoYXQncyBhYnNlbnQuXG4gKlxuICogQHBhcmFtIGVsZW1lbnQgLlxuICogQHJldHVybiAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXROYW1lc3BhY2UoZWxlbWVudDogRWxlbWVudCk6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQge1xuICAvLyBAdHMtaWdub3JlXG4gIHJldHVybiBlbGVtZW50W0pTTkFNRVNQQUNFXTtcbn1cblxuLyoqXG4gKiBXcml0ZXMgdGhlIGNhY2hlZCBqc2FjdGlvbiBuYW1lc3BhY2UgdG8gdGhlIGdpdmVuIERPTSBFbGVtZW50LiBOdWxsXG4gKiByZXByZXNlbnRzIGEganNuYW1lc3BhY2UgYXR0cmlidXRlIHRoYXQncyBhYnNlbnQuXG4gKlxuICogQHBhcmFtIGVsZW1lbnQgLlxuICogQHBhcmFtIGpzbmFtZXNwYWNlIC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldE5hbWVzcGFjZShlbGVtZW50OiBFbGVtZW50LCBqc25hbWVzcGFjZTogc3RyaW5nIHwgbnVsbCkge1xuICAvLyBAdHMtaWdub3JlXG4gIGVsZW1lbnRbSlNOQU1FU1BBQ0VdID0ganNuYW1lc3BhY2U7XG59XG5cbi8qKlxuICogQ2xlYXJzIHRoZSBjYWNoZWQganNhY3Rpb24gbmFtZXNwYWNlIGZyb20gdGhlIGdpdmVuIERPTSBFbGVtZW50LlxuICpcbiAqIEBwYXJhbSBlbGVtZW50IC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyTmFtZXNwYWNlKGVsZW1lbnQ6IEVsZW1lbnQpIHtcbiAgaWYgKEpTTkFNRVNQQUNFIGluIGVsZW1lbnQpIHtcbiAgICBkZWxldGUgZWxlbWVudFtKU05BTUVTUEFDRV07XG4gIH1cbn1cbiJdfQ==
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3ByaW1pdGl2ZXMvZXZlbnQtZGlzcGF0Y2gvc3JjL2NhY2hlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFFcEM7O0dBRUc7QUFDSCxNQUFNLFVBQVUsR0FBNkMsRUFBRSxDQUFDO0FBRWhFOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLEdBQUcsQ0FBQyxPQUFnQjtJQUNsQyxhQUFhO0lBQ2IsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDM0IsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxHQUFHLENBQUMsT0FBZ0IsRUFBRSxTQUFrQztJQUN0RSxhQUFhO0lBQ2IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLFNBQVMsQ0FBQztBQUNoQyxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUFDLElBQVk7SUFDcEMsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDMUIsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBQyxJQUFZLEVBQUUsTUFBK0I7SUFDckUsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQztBQUM1QixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxLQUFLLENBQUMsT0FBZ0I7SUFDcEMsSUFBSSxRQUFRLElBQUksT0FBTyxFQUFFLENBQUM7UUFDeEIsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0IsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtKU0FDVElPTn0gZnJvbSAnLi9wcm9wZXJ0eSc7XG5cbi8qKlxuICogTWFwIGZyb20ganNhY3Rpb24gYW5ub3RhdGlvbiB0byBhIHBhcnNlZCBtYXAgZnJvbSBldmVudCBuYW1lIHRvIGFjdGlvbiBuYW1lLlxuICovXG5jb25zdCBwYXJzZUNhY2hlOiB7W2tleTogc3RyaW5nXToge1trZXk6IHN0cmluZ106IHN0cmluZ319ID0ge307XG5cbi8qKlxuICogUmVhZHMgdGhlIGpzYWN0aW9uIHBhcnNlciBjYWNoZSBmcm9tIHRoZSBnaXZlbiBET00gRWxlbWVudC5cbiAqXG4gKiBAcGFyYW0gZWxlbWVudCAuXG4gKiBAcmV0dXJuIE1hcCBmcm9tIGV2ZW50IHRvIHF1YWxpZmllZCBuYW1lIG9mIHRoZSBqc2FjdGlvbiBib3VuZCB0byBpdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldChlbGVtZW50OiBFbGVtZW50KToge1trZXk6IHN0cmluZ106IHN0cmluZ30ge1xuICAvLyBAdHMtaWdub3JlXG4gIHJldHVybiBlbGVtZW50W0pTQUNUSU9OXTtcbn1cblxuLyoqXG4gKiBXcml0ZXMgdGhlIGpzYWN0aW9uIHBhcnNlciBjYWNoZSB0byB0aGUgZ2l2ZW4gRE9NIEVsZW1lbnQuXG4gKlxuICogQHBhcmFtIGVsZW1lbnQgLlxuICogQHBhcmFtIGFjdGlvbk1hcCBNYXAgZnJvbSBldmVudCB0byBxdWFsaWZpZWQgbmFtZSBvZiB0aGUganNhY3Rpb24gYm91bmQgdG9cbiAqICAgICBpdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldChlbGVtZW50OiBFbGVtZW50LCBhY3Rpb25NYXA6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9KSB7XG4gIC8vIEB0cy1pZ25vcmVcbiAgZWxlbWVudFtKU0FDVElPTl0gPSBhY3Rpb25NYXA7XG59XG5cbi8qKlxuICogTG9va3MgdXAgdGhlIHBhcnNlZCBhY3Rpb24gbWFwIGZyb20gdGhlIHNvdXJjZSBqc2FjdGlvbiBhdHRyaWJ1dGUgdmFsdWUuXG4gKlxuICogQHBhcmFtIHRleHQgVW5wYXJzZWQganNhY3Rpb24gYXR0cmlidXRlIHZhbHVlLlxuICogQHJldHVybiBQYXJzZWQganNhY3Rpb24gYXR0cmlidXRlIHZhbHVlLCBpZiBhbHJlYWR5IHByZXNlbnQgaW4gdGhlIGNhY2hlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFyc2VkKHRleHQ6IHN0cmluZyk6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9IHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHBhcnNlQ2FjaGVbdGV4dF07XG59XG5cbi8qKlxuICogSW5zZXJ0cyB0aGUgcGFyc2UgcmVzdWx0IGZvciB0aGUgZ2l2ZW4gc291cmNlIGpzYWN0aW9uIHZhbHVlIGludG8gdGhlIGNhY2hlLlxuICpcbiAqIEBwYXJhbSB0ZXh0IFVucGFyc2VkIGpzYWN0aW9uIGF0dHJpYnV0ZSB2YWx1ZS5cbiAqIEBwYXJhbSBwYXJzZWQgQXR0cmlidXRlIHZhbHVlIHBhcnNlZCBpbnRvIHRoZSBhY3Rpb24gbWFwLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0UGFyc2VkKHRleHQ6IHN0cmluZywgcGFyc2VkOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSkge1xuICBwYXJzZUNhY2hlW3RleHRdID0gcGFyc2VkO1xufVxuXG4vKipcbiAqIENsZWFycyB0aGUganNhY3Rpb24gcGFyc2VyIGNhY2hlIGZyb20gdGhlIGdpdmVuIERPTSBFbGVtZW50LlxuICpcbiAqIEBwYXJhbSBlbGVtZW50IC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyKGVsZW1lbnQ6IEVsZW1lbnQpIHtcbiAgaWYgKEpTQUNUSU9OIGluIGVsZW1lbnQpIHtcbiAgICBkZWxldGUgZWxlbWVudFtKU0FDVElPTl07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -17,12 +17,12 @@ import * as eventLib from './event';
|
|
|
17
17
|
export class Dispatcher {
|
|
18
18
|
/**
|
|
19
19
|
* Options are:
|
|
20
|
-
*
|
|
20
|
+
* - `eventReplayer`: When the event contract dispatches replay events
|
|
21
21
|
* to the Dispatcher, the Dispatcher collects them and in the next tick
|
|
22
|
-
* dispatches them to the `eventReplayer`.
|
|
22
|
+
* dispatches them to the `eventReplayer`. Defaults to dispatching to `dispatchDelegate`.
|
|
23
23
|
* @param dispatchDelegate A function that should handle dispatching an `EventInfoWrapper` to handlers.
|
|
24
24
|
*/
|
|
25
|
-
constructor(dispatchDelegate, { actionResolver
|
|
25
|
+
constructor(dispatchDelegate, { actionResolver, eventReplayer = createEventReplayer(dispatchDelegate), } = {}) {
|
|
26
26
|
this.dispatchDelegate = dispatchDelegate;
|
|
27
27
|
/** Whether the event replay is scheduled. */
|
|
28
28
|
this.eventReplayScheduled = false;
|
|
@@ -59,9 +59,6 @@ export class Dispatcher {
|
|
|
59
59
|
eventLib.preventDefault(eventInfoWrapper.getEvent());
|
|
60
60
|
}
|
|
61
61
|
if (eventInfoWrapper.getIsReplay()) {
|
|
62
|
-
if (!this.eventReplayer) {
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
62
|
this.scheduleEventInfoWrapperReplay(eventInfoWrapper);
|
|
66
63
|
return;
|
|
67
64
|
}
|
|
@@ -74,7 +71,7 @@ export class Dispatcher {
|
|
|
74
71
|
*/
|
|
75
72
|
scheduleEventInfoWrapperReplay(eventInfoWrapper) {
|
|
76
73
|
this.replayEventInfoWrappers.push(eventInfoWrapper);
|
|
77
|
-
if (this.eventReplayScheduled
|
|
74
|
+
if (this.eventReplayScheduled) {
|
|
78
75
|
return;
|
|
79
76
|
}
|
|
80
77
|
this.eventReplayScheduled = true;
|
|
@@ -84,26 +81,16 @@ export class Dispatcher {
|
|
|
84
81
|
});
|
|
85
82
|
}
|
|
86
83
|
}
|
|
87
|
-
/**
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
*/
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
const event = eventInfoWrapper.getEvent();
|
|
101
|
-
// There are some cases where users of the `Dispatcher` will call dispatch
|
|
102
|
-
// with a fake event that does not support `stopPropagation`.
|
|
103
|
-
if (!event.stopPropagation) {
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
event.stopPropagation();
|
|
84
|
+
/**
|
|
85
|
+
* Creates an `EventReplayer` that calls the `replay` function for every `eventInfoWrapper` in
|
|
86
|
+
* the queue.
|
|
87
|
+
*/
|
|
88
|
+
export function createEventReplayer(replay) {
|
|
89
|
+
return (eventInfoWrappers) => {
|
|
90
|
+
for (const eventInfoWrapper of eventInfoWrappers) {
|
|
91
|
+
replay(eventInfoWrapper);
|
|
92
|
+
}
|
|
93
|
+
};
|
|
107
94
|
}
|
|
108
95
|
/**
|
|
109
96
|
* Returns true if the default action of this event should be prevented before
|
|
@@ -126,4 +113,4 @@ export function registerDispatcher(eventContract, dispatcher) {
|
|
|
126
113
|
dispatcher.dispatch(eventInfo);
|
|
127
114
|
}, Restriction.I_AM_THE_JSACTION_FRAMEWORK);
|
|
128
115
|
}
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvcHJpbWl0aXZlcy9ldmVudC1kaXNwYXRjaC9zcmMvZGlzcGF0Y2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQVksZ0JBQWdCLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDekQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUN2QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTFDLE9BQU8sS0FBSyxRQUFRLE1BQU0sU0FBUyxDQUFDO0FBb0JwQzs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLFVBQVU7SUFhckI7Ozs7OztPQU1HO0lBQ0gsWUFDbUIsZ0JBQThELEVBQy9FLEVBQ0UsY0FBYyxHQUFHLFNBQVMsRUFDMUIsYUFBYSxHQUFHLFNBQVMsTUFDc0MsRUFBRTtRQUpsRCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQThDO1FBZGpGLDZDQUE2QztRQUNyQyx5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFFckMsMkJBQTJCO1FBQ1YsNEJBQXVCLEdBQXVCLEVBQUUsQ0FBQztRQWdCaEUsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDckMsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BbUJHO0lBQ0gsUUFBUSxDQUFDLFNBQW9CO1FBQzNCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4QyxNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUM1QyxJQUFJLE1BQU0sSUFBSSxxQ0FBcUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztZQUN0RixRQUFRLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUNELElBQUksZ0JBQWdCLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUN4QixPQUFPO1lBQ1QsQ0FBQztZQUNELElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3RELE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyw4QkFBOEIsQ0FBQyxnQkFBa0M7UUFDdkUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3BELElBQUksSUFBSSxDQUFDLG9CQUFvQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JELE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztRQUNqQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUMxQixJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxhQUFjLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFFRCwyQ0FBMkM7QUFDM0MsTUFBTSxVQUFVLGVBQWUsQ0FBQyxnQkFBa0M7SUFDaEUsSUFDRSxRQUFRLENBQUMsT0FBTztRQUNoQixDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixFQUFFLENBQUMsT0FBTyxLQUFLLE9BQU87WUFDdEQsZ0JBQWdCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxPQUFPLEtBQUssVUFBVSxDQUFDO1FBQzdELGdCQUFnQixDQUFDLFlBQVksRUFBRSxLQUFLLFNBQVMsQ0FBQyxLQUFLLEVBQ25ELENBQUM7UUFDRDs7OztXQUlHO1FBQ0gsT0FBTztJQUNULENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMxQywwRUFBMEU7SUFDMUUsNkRBQTZEO0lBQzdELElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDM0IsT0FBTztJQUNULENBQUM7SUFDRCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7QUFDMUIsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQVMscUNBQXFDLENBQzVDLGFBQXNCLEVBQ3RCLGdCQUFrQztJQUVsQyx5RUFBeUU7SUFDekUsNEVBQTRFO0lBQzVFLHlFQUF5RTtJQUN6RSxpRUFBaUU7SUFDakUsT0FBTyxDQUNMLENBQUMsYUFBYSxDQUFDLE9BQU8sS0FBSyxHQUFHLElBQUksZ0JBQWdCLENBQUMsWUFBWSxFQUFFLEtBQUssU0FBUyxDQUFDLEtBQUssQ0FBQztRQUN0RixnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsS0FBSyxTQUFTLENBQUMsUUFBUSxDQUN2RCxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxhQUFxQyxFQUFFLFVBQXNCO0lBQzlGLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFvQixFQUFFLEVBQUU7UUFDMUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNqQyxDQUFDLEVBQUUsV0FBVyxDQUFDLDJCQUEyQixDQUFDLENBQUM7QUFDOUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0V2ZW50SW5mbywgRXZlbnRJbmZvV3JhcHBlcn0gZnJvbSAnLi9ldmVudF9pbmZvJztcbmltcG9ydCB7RXZlbnRUeXBlfSBmcm9tICcuL2V2ZW50X3R5cGUnO1xuaW1wb3J0IHtSZXN0cmljdGlvbn0gZnJvbSAnLi9yZXN0cmljdGlvbic7XG5pbXBvcnQge1VucmVuYW1lZEV2ZW50Q29udHJhY3R9IGZyb20gJy4vZXZlbnRjb250cmFjdCc7XG5pbXBvcnQgKiBhcyBldmVudExpYiBmcm9tICcuL2V2ZW50JztcbmltcG9ydCB7QWN0aW9uUmVzb2x2ZXJ9IGZyb20gJy4vYWN0aW9uX3Jlc29sdmVyJztcblxuLyoqXG4gKiBBIHJlcGxheWVyIGlzIGEgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgd2hlbiB0aGVyZSBhcmUgcXVldWVkIGV2ZW50cyxcbiAqIGVpdGhlciBmcm9tIHRoZSBgRXZlbnRDb250cmFjdGAgb3Igd2hlbiB0aGVyZSBhcmUgbm8gZGV0ZWN0ZWQgaGFuZGxlcnMuXG4gKi9cbmV4cG9ydCB0eXBlIFJlcGxheWVyID0gKGV2ZW50SW5mb1dyYXBwZXJzOiBFdmVudEluZm9XcmFwcGVyW10pID0+IHZvaWQ7XG5cbi8qKlxuICogQSBoYW5kbGVyIGlzIGRpc3BhdGNoZWQgdG8gZHVyaW5nIG5vcm1hbCBoYW5kbGluZy5cbiAqL1xuZXhwb3J0IHR5cGUgRXZlbnRJbmZvSGFuZGxlciA9IChldmVudEluZm9XcmFwcGVyOiBFdmVudEluZm9XcmFwcGVyKSA9PiB2b2lkO1xuXG4vKipcbiAqIEEgZ2xvYmFsIGhhbmRsZXIgaXMgZGlzcGF0Y2hlZCB0byBiZWZvcmUgbm9ybWFsIGhhbmRsZXIgZGlzcGF0Y2guIFJldHVybmluZ1xuICogZmFsc2Ugd2lsbCBgcHJldmVudERlZmF1bHRgIG9uIHRoZSBldmVudC5cbiAqL1xuZXhwb3J0IHR5cGUgR2xvYmFsSGFuZGxlciA9IChldmVudDogRXZlbnQpID0+IGJvb2xlYW4gfCB2b2lkO1xuXG4vKipcbiAqIFJlY2VpdmVzIGEgRE9NIGV2ZW50LCBkZXRlcm1pbmVzIHRoZSBqc2FjdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlIHNvdXJjZVxuICogZWxlbWVudCBvZiB0aGUgRE9NIGV2ZW50LCBhbmQgaW52b2tlcyB0aGUgaGFuZGxlciBhc3NvY2lhdGVkIHdpdGggdGhlXG4gKiBqc2FjdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIERpc3BhdGNoZXIge1xuICAvLyBUaGUgQWN0aW9uUmVzb2x2ZXIgdG8gdXNlIHRvIHJlc29sdmUgYWN0aW9ucy5cbiAgcHJpdmF0ZSBhY3Rpb25SZXNvbHZlcj86IEFjdGlvblJlc29sdmVyO1xuXG4gIC8qKiBUaGUgcmVwbGF5ZXIgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlcmUgYXJlIHF1ZXVlZCBldmVudHMuICovXG4gIHByaXZhdGUgZXZlbnRSZXBsYXllcj86IFJlcGxheWVyO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBldmVudCByZXBsYXkgaXMgc2NoZWR1bGVkLiAqL1xuICBwcml2YXRlIGV2ZW50UmVwbGF5U2NoZWR1bGVkID0gZmFsc2U7XG5cbiAgLyoqIFRoZSBxdWV1ZSBvZiBldmVudHMuICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVwbGF5RXZlbnRJbmZvV3JhcHBlcnM6IEV2ZW50SW5mb1dyYXBwZXJbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBPcHRpb25zIGFyZTpcbiAgICogICAxLiBgZXZlbnRSZXBsYXllcmA6IFdoZW4gdGhlIGV2ZW50IGNvbnRyYWN0IGRpc3BhdGNoZXMgcmVwbGF5IGV2ZW50c1xuICAgKiAgICAgIHRvIHRoZSBEaXNwYXRjaGVyLCB0aGUgRGlzcGF0Y2hlciBjb2xsZWN0cyB0aGVtIGFuZCBpbiB0aGUgbmV4dCB0aWNrXG4gICAqICAgICAgZGlzcGF0Y2hlcyB0aGVtIHRvIHRoZSBgZXZlbnRSZXBsYXllcmAuXG4gICAqIEBwYXJhbSBkaXNwYXRjaERlbGVnYXRlIEEgZnVuY3Rpb24gdGhhdCBzaG91bGQgaGFuZGxlIGRpc3BhdGNoaW5nIGFuIGBFdmVudEluZm9XcmFwcGVyYCB0byBoYW5kbGVycy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlzcGF0Y2hEZWxlZ2F0ZTogKGV2ZW50SW5mb1dyYXBwZXI6IEV2ZW50SW5mb1dyYXBwZXIpID0+IHZvaWQsXG4gICAge1xuICAgICAgYWN0aW9uUmVzb2x2ZXIgPSB1bmRlZmluZWQsXG4gICAgICBldmVudFJlcGxheWVyID0gdW5kZWZpbmVkLFxuICAgIH06IHthY3Rpb25SZXNvbHZlcj86IEFjdGlvblJlc29sdmVyOyBldmVudFJlcGxheWVyPzogUmVwbGF5ZXJ9ID0ge30sXG4gICkge1xuICAgIHRoaXMuYWN0aW9uUmVzb2x2ZXIgPSBhY3Rpb25SZXNvbHZlcjtcbiAgICB0aGlzLmV2ZW50UmVwbGF5ZXIgPSBldmVudFJlcGxheWVyO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlY2VpdmVzIGFuIGV2ZW50IG9yIHRoZSBldmVudCBxdWV1ZSBmcm9tIHRoZSBFdmVudENvbnRyYWN0LiBUaGUgZXZlbnRcbiAgICogcXVldWUgaXMgY29waWVkIGFuZCBpdCBhdHRlbXB0cyB0byByZXBsYXkuXG4gICAqIElmIGV2ZW50IGluZm8gaXMgcGFzc2VkIGluIGl0IGxvb2tzIGZvciBhbiBhY3Rpb24gaGFuZGxlciB0aGF0IGNhbiBoYW5kbGVcbiAgICogdGhlIGdpdmVuIGV2ZW50LiAgSWYgdGhlcmUgaXMgbm8gaGFuZGxlciByZWdpc3RlcmVkIHF1ZXVlcyB0aGUgZXZlbnQgYW5kXG4gICAqIGNoZWNrcyBpZiBhIGxvYWRlciBpcyByZWdpc3RlcmVkIGZvciB0aGUgZ2l2ZW4gbmFtZXNwYWNlLiBJZiBzbywgY2FsbHMgaXQuXG4gICAqXG4gICAqIEFsdGVybmF0aXZlbHksIGlmIGluIGdsb2JhbCBkaXNwYXRjaCBtb2RlLCBjYWxscyBhbGwgcmVnaXN0ZXJlZCBnbG9iYWxcbiAgICogaGFuZGxlcnMgZm9yIHRoZSBhcHByb3ByaWF0ZSBldmVudCB0eXBlLlxuICAgKlxuICAgKiBUaGUgdGhyZWUgZnVuY3Rpb25hbGl0aWVzIG9mIHRoaXMgY2FsbCBhcmUgZGVsaWJlcmF0ZWx5IG5vdCBzcGxpdCBpbnRvXG4gICAqIHRocmVlIG1ldGhvZHMgKGFuZCB0aGVuIGRlY2xhcmVkIGFzIGFuIGFic3RyYWN0IGludGVyZmFjZSksIGJlY2F1c2UgdGhlXG4gICAqIGludGVyZmFjZSBpcyB1c2VkIGJ5IEV2ZW50Q29udHJhY3QsIHdoaWNoIGxpdmVzIGluIGEgZGlmZmVyZW50IGpzYmluYXJ5LlxuICAgKiBUaGVyZWZvcmUgdGhlIGludGVyZmFjZSBiZXR3ZWVuIHRoZSB0aHJlZSBpcyBkZWZpbmVkIGVudGlyZWx5IGluIHRlcm1zIHRoYXRcbiAgICogYXJlIGludmFyaWFudCB1bmRlciBqc2NvbXBpbGVyIHByb2Nlc3NpbmcgKEZ1bmN0aW9uIGFuZCBBcnJheSwgYXMgb3Bwb3NlZFxuICAgKiB0byBhIGN1c3RvbSB0eXBlIHdpdGggbWV0aG9kIG5hbWVzKS5cbiAgICpcbiAgICogQHBhcmFtIGV2ZW50SW5mbyBUaGUgaW5mbyBmb3IgdGhlIGV2ZW50IHRoYXQgdHJpZ2dlcmVkIHRoaXMgY2FsbCBvciB0aGVcbiAgICogICAgIHF1ZXVlIG9mIGV2ZW50cyBmcm9tIEV2ZW50Q29udHJhY3QuXG4gICAqL1xuICBkaXNwYXRjaChldmVudEluZm86IEV2ZW50SW5mbyk6IHZvaWQge1xuICAgIGNvbnN0IGV2ZW50SW5mb1dyYXBwZXIgPSBuZXcgRXZlbnRJbmZvV3JhcHBlcihldmVudEluZm8pO1xuICAgIHRoaXMuYWN0aW9uUmVzb2x2ZXI/LnJlc29sdmUoZXZlbnRJbmZvKTtcbiAgICBjb25zdCBhY3Rpb24gPSBldmVudEluZm9XcmFwcGVyLmdldEFjdGlvbigpO1xuICAgIGlmIChhY3Rpb24gJiYgc2hvdWxkUHJldmVudERlZmF1bHRCZWZvcmVEaXNwYXRjaGluZyhhY3Rpb24uZWxlbWVudCwgZXZlbnRJbmZvV3JhcHBlcikpIHtcbiAgICAgIGV2ZW50TGliLnByZXZlbnREZWZhdWx0KGV2ZW50SW5mb1dyYXBwZXIuZ2V0RXZlbnQoKSk7XG4gICAgfVxuICAgIGlmIChldmVudEluZm9XcmFwcGVyLmdldElzUmVwbGF5KCkpIHtcbiAgICAgIGlmICghdGhpcy5ldmVudFJlcGxheWVyKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2NoZWR1bGVFdmVudEluZm9XcmFwcGVyUmVwbGF5KGV2ZW50SW5mb1dyYXBwZXIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmRpc3BhdGNoRGVsZWdhdGUoZXZlbnRJbmZvV3JhcHBlcik7XG4gIH1cblxuICAvKipcbiAgICogU2NoZWR1bGVzIGFuIGBFdmVudEluZm9XcmFwcGVyYCBmb3IgcmVwbGF5LiBUaGUgcmVwbGF5aW5nIHdpbGwgaGFwcGVuIGluIGl0cyBvd25cbiAgICogc3RhY2sgb25jZSB0aGUgY3VycmVudCBmbG93IGNlZGVzIGNvbnRyb2wuIFRoaXMgaXMgZG9uZSB0byBtaW1pY1xuICAgKiBicm93c2VyIGV2ZW50IGhhbmRsaW5nLlxuICAgKi9cbiAgcHJpdmF0ZSBzY2hlZHVsZUV2ZW50SW5mb1dyYXBwZXJSZXBsYXkoZXZlbnRJbmZvV3JhcHBlcjogRXZlbnRJbmZvV3JhcHBlcikge1xuICAgIHRoaXMucmVwbGF5RXZlbnRJbmZvV3JhcHBlcnMucHVzaChldmVudEluZm9XcmFwcGVyKTtcbiAgICBpZiAodGhpcy5ldmVudFJlcGxheVNjaGVkdWxlZCB8fCAhdGhpcy5ldmVudFJlcGxheWVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZXZlbnRSZXBsYXlTY2hlZHVsZWQgPSB0cnVlO1xuICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy5ldmVudFJlcGxheVNjaGVkdWxlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5ldmVudFJlcGxheWVyISh0aGlzLnJlcGxheUV2ZW50SW5mb1dyYXBwZXJzKTtcbiAgICB9KTtcbiAgfVxufVxuXG4vKiogU3RvcCBwcm9wYWdhdGlvbiBmb3IgYW4gYEV2ZW50SW5mb2AuICovXG5leHBvcnQgZnVuY3Rpb24gc3RvcFByb3BhZ2F0aW9uKGV2ZW50SW5mb1dyYXBwZXI6IEV2ZW50SW5mb1dyYXBwZXIpIHtcbiAgaWYgKFxuICAgIGV2ZW50TGliLmlzR2Vja28gJiZcbiAgICAoZXZlbnRJbmZvV3JhcHBlci5nZXRUYXJnZXRFbGVtZW50KCkudGFnTmFtZSA9PT0gJ0lOUFVUJyB8fFxuICAgICAgZXZlbnRJbmZvV3JhcHBlci5nZXRUYXJnZXRFbGVtZW50KCkudGFnTmFtZSA9PT0gJ1RFWFRBUkVBJykgJiZcbiAgICBldmVudEluZm9XcmFwcGVyLmdldEV2ZW50VHlwZSgpID09PSBFdmVudFR5cGUuRk9DVVNcbiAgKSB7XG4gICAgLyoqXG4gICAgICogRG8gbm90aGluZyBzaW5jZSBzdG9wcGluZyBwcm9wYWdhdGlvbiBvbiBhIGZvY3VzIGV2ZW50IG9uIGFuIGlucHV0XG4gICAgICogZWxlbWVudCBpbiBGaXJlZm94IG1ha2VzIHRoZSB0ZXh0IGN1cnNvciBkaXNhcHBlYXI6XG4gICAgICogaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTA5Njg0XG4gICAgICovXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgZXZlbnQgPSBldmVudEluZm9XcmFwcGVyLmdldEV2ZW50KCk7XG4gIC8vIFRoZXJlIGFyZSBzb21lIGNhc2VzIHdoZXJlIHVzZXJzIG9mIHRoZSBgRGlzcGF0Y2hlcmAgd2lsbCBjYWxsIGRpc3BhdGNoXG4gIC8vIHdpdGggYSBmYWtlIGV2ZW50IHRoYXQgZG9lcyBub3Qgc3VwcG9ydCBgc3RvcFByb3BhZ2F0aW9uYC5cbiAgaWYgKCFldmVudC5zdG9wUHJvcGFnYXRpb24pIHtcbiAgICByZXR1cm47XG4gIH1cbiAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBkZWZhdWx0IGFjdGlvbiBvZiB0aGlzIGV2ZW50IHNob3VsZCBiZSBwcmV2ZW50ZWQgYmVmb3JlXG4gKiB0aGlzIGV2ZW50IGlzIGRpc3BhdGNoZWQuXG4gKi9cbmZ1bmN0aW9uIHNob3VsZFByZXZlbnREZWZhdWx0QmVmb3JlRGlzcGF0Y2hpbmcoXG4gIGFjdGlvbkVsZW1lbnQ6IEVsZW1lbnQsXG4gIGV2ZW50SW5mb1dyYXBwZXI6IEV2ZW50SW5mb1dyYXBwZXIsXG4pOiBib29sZWFuIHtcbiAgLy8gUHJldmVudCBicm93c2VyIGZyb20gZm9sbG93aW5nIDxhPiBub2RlIGxpbmtzIGlmIGEganNhY3Rpb24gaXMgcHJlc2VudFxuICAvLyBhbmQgd2UgYXJlIGRpc3BhdGNoaW5nIHRoZSBhY3Rpb24gbm93LiBOb3RlIHRoYXQgdGhlIHRhcmdldEVsZW1lbnQgbWF5IGJlXG4gIC8vIGEgY2hpbGQgb2YgYW4gYW5jaG9yIHRoYXQgaGFzIGEganNhY3Rpb24gYXR0YWNoZWQuIEZvciB0aGF0IHJlYXNvbiwgd2VcbiAgLy8gbmVlZCB0byBjaGVjayB0aGUgYWN0aW9uRWxlbWVudCByYXRoZXIgdGhhbiB0aGUgdGFyZ2V0RWxlbWVudC5cbiAgcmV0dXJuIChcbiAgICAoYWN0aW9uRWxlbWVudC50YWdOYW1lID09PSAnQScgJiYgZXZlbnRJbmZvV3JhcHBlci5nZXRFdmVudFR5cGUoKSA9PT0gRXZlbnRUeXBlLkNMSUNLKSB8fFxuICAgIGV2ZW50SW5mb1dyYXBwZXIuZ2V0RXZlbnRUeXBlKCkgPT09IEV2ZW50VHlwZS5DTElDS01PRFxuICApO1xufVxuXG4vKipcbiAqIFJlZ2lzdGVycyBkZWZlcnJlZCBmdW5jdGlvbmFsaXR5IGZvciBhbiBFdmVudENvbnRyYWN0IGFuZCBhIEpzYWN0aW9uXG4gKiBEaXNwYXRjaGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJEaXNwYXRjaGVyKGV2ZW50Q29udHJhY3Q6IFVucmVuYW1lZEV2ZW50Q29udHJhY3QsIGRpc3BhdGNoZXI6IERpc3BhdGNoZXIpIHtcbiAgZXZlbnRDb250cmFjdC5lY3JkKChldmVudEluZm86IEV2ZW50SW5mbykgPT4ge1xuICAgIGRpc3BhdGNoZXIuZGlzcGF0Y2goZXZlbnRJbmZvKTtcbiAgfSwgUmVzdHJpY3Rpb24uSV9BTV9USEVfSlNBQ1RJT05fRlJBTUVXT1JLKTtcbn1cbiJdfQ==
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvcHJpbWl0aXZlcy9ldmVudC1kaXNwYXRjaC9zcmMvZGlzcGF0Y2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQVksZ0JBQWdCLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDekQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUN2QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTFDLE9BQU8sS0FBSyxRQUFRLE1BQU0sU0FBUyxDQUFDO0FBU3BDOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sVUFBVTtJQWFyQjs7Ozs7O09BTUc7SUFDSCxZQUNtQixnQkFBOEQsRUFDL0UsRUFDRSxjQUFjLEVBQ2QsYUFBYSxHQUFHLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLE1BQ1UsRUFBRTtRQUpsRCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQThDO1FBZGpGLDZDQUE2QztRQUNyQyx5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFFckMsMkJBQTJCO1FBQ1YsNEJBQXVCLEdBQXVCLEVBQUUsQ0FBQztRQWdCaEUsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDckMsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BbUJHO0lBQ0gsUUFBUSxDQUFDLFNBQW9CO1FBQzNCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4QyxNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUM1QyxJQUFJLE1BQU0sSUFBSSxxQ0FBcUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztZQUN0RixRQUFRLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUNELElBQUksZ0JBQWdCLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsOEJBQThCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUN0RCxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssOEJBQThCLENBQUMsZ0JBQWtDO1FBQ3ZFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNwRCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQzlCLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztRQUNqQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUMxQixJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDbkQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsTUFBb0Q7SUFDdEYsT0FBTyxDQUFDLGlCQUFxQyxFQUFFLEVBQUU7UUFDL0MsS0FBSyxNQUFNLGdCQUFnQixJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDakQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLHFDQUFxQyxDQUM1QyxhQUFzQixFQUN0QixnQkFBa0M7SUFFbEMseUVBQXlFO0lBQ3pFLDRFQUE0RTtJQUM1RSx5RUFBeUU7SUFDekUsaUVBQWlFO0lBQ2pFLE9BQU8sQ0FDTCxDQUFDLGFBQWEsQ0FBQyxPQUFPLEtBQUssR0FBRyxJQUFJLGdCQUFnQixDQUFDLFlBQVksRUFBRSxLQUFLLFNBQVMsQ0FBQyxLQUFLLENBQUM7UUFDdEYsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLEtBQUssU0FBUyxDQUFDLFFBQVEsQ0FDdkQsQ0FBQztBQUNKLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsYUFBcUMsRUFBRSxVQUFzQjtJQUM5RixhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBb0IsRUFBRSxFQUFFO1FBQzFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDakMsQ0FBQyxFQUFFLFdBQVcsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0FBQzlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtFdmVudEluZm8sIEV2ZW50SW5mb1dyYXBwZXJ9IGZyb20gJy4vZXZlbnRfaW5mbyc7XG5pbXBvcnQge0V2ZW50VHlwZX0gZnJvbSAnLi9ldmVudF90eXBlJztcbmltcG9ydCB7UmVzdHJpY3Rpb259IGZyb20gJy4vcmVzdHJpY3Rpb24nO1xuaW1wb3J0IHtVbnJlbmFtZWRFdmVudENvbnRyYWN0fSBmcm9tICcuL2V2ZW50Y29udHJhY3QnO1xuaW1wb3J0ICogYXMgZXZlbnRMaWIgZnJvbSAnLi9ldmVudCc7XG5pbXBvcnQge0FjdGlvblJlc29sdmVyfSBmcm9tICcuL2FjdGlvbl9yZXNvbHZlcic7XG5cbi8qKlxuICogQSByZXBsYXllciBpcyBhIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIHdoZW4gdGhlcmUgYXJlIHF1ZXVlZCBldmVudHMsXG4gKiBlaXRoZXIgZnJvbSB0aGUgYEV2ZW50Q29udHJhY3RgIG9yIHdoZW4gdGhlcmUgYXJlIG5vIGRldGVjdGVkIGhhbmRsZXJzLlxuICovXG5leHBvcnQgdHlwZSBSZXBsYXllciA9IChldmVudEluZm9XcmFwcGVyczogRXZlbnRJbmZvV3JhcHBlcltdKSA9PiB2b2lkO1xuXG4vKipcbiAqIFJlY2VpdmVzIGEgRE9NIGV2ZW50LCBkZXRlcm1pbmVzIHRoZSBqc2FjdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlIHNvdXJjZVxuICogZWxlbWVudCBvZiB0aGUgRE9NIGV2ZW50LCBhbmQgaW52b2tlcyB0aGUgaGFuZGxlciBhc3NvY2lhdGVkIHdpdGggdGhlXG4gKiBqc2FjdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIERpc3BhdGNoZXIge1xuICAvLyBUaGUgQWN0aW9uUmVzb2x2ZXIgdG8gdXNlIHRvIHJlc29sdmUgYWN0aW9ucy5cbiAgcHJpdmF0ZSBhY3Rpb25SZXNvbHZlcj86IEFjdGlvblJlc29sdmVyO1xuXG4gIC8qKiBUaGUgcmVwbGF5ZXIgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlcmUgYXJlIHF1ZXVlZCBldmVudHMuICovXG4gIHByaXZhdGUgZXZlbnRSZXBsYXllcjogUmVwbGF5ZXI7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGV2ZW50IHJlcGxheSBpcyBzY2hlZHVsZWQuICovXG4gIHByaXZhdGUgZXZlbnRSZXBsYXlTY2hlZHVsZWQgPSBmYWxzZTtcblxuICAvKiogVGhlIHF1ZXVlIG9mIGV2ZW50cy4gKi9cbiAgcHJpdmF0ZSByZWFkb25seSByZXBsYXlFdmVudEluZm9XcmFwcGVyczogRXZlbnRJbmZvV3JhcHBlcltdID0gW107XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgYXJlOlxuICAgKiAgIC0gYGV2ZW50UmVwbGF5ZXJgOiBXaGVuIHRoZSBldmVudCBjb250cmFjdCBkaXNwYXRjaGVzIHJlcGxheSBldmVudHNcbiAgICogICAgICB0byB0aGUgRGlzcGF0Y2hlciwgdGhlIERpc3BhdGNoZXIgY29sbGVjdHMgdGhlbSBhbmQgaW4gdGhlIG5leHQgdGlja1xuICAgKiAgICAgIGRpc3BhdGNoZXMgdGhlbSB0byB0aGUgYGV2ZW50UmVwbGF5ZXJgLiBEZWZhdWx0cyB0byBkaXNwYXRjaGluZyB0byBgZGlzcGF0Y2hEZWxlZ2F0ZWAuXG4gICAqIEBwYXJhbSBkaXNwYXRjaERlbGVnYXRlIEEgZnVuY3Rpb24gdGhhdCBzaG91bGQgaGFuZGxlIGRpc3BhdGNoaW5nIGFuIGBFdmVudEluZm9XcmFwcGVyYCB0byBoYW5kbGVycy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlzcGF0Y2hEZWxlZ2F0ZTogKGV2ZW50SW5mb1dyYXBwZXI6IEV2ZW50SW5mb1dyYXBwZXIpID0+IHZvaWQsXG4gICAge1xuICAgICAgYWN0aW9uUmVzb2x2ZXIsXG4gICAgICBldmVudFJlcGxheWVyID0gY3JlYXRlRXZlbnRSZXBsYXllcihkaXNwYXRjaERlbGVnYXRlKSxcbiAgICB9OiB7YWN0aW9uUmVzb2x2ZXI/OiBBY3Rpb25SZXNvbHZlcjsgZXZlbnRSZXBsYXllcj86IFJlcGxheWVyfSA9IHt9LFxuICApIHtcbiAgICB0aGlzLmFjdGlvblJlc29sdmVyID0gYWN0aW9uUmVzb2x2ZXI7XG4gICAgdGhpcy5ldmVudFJlcGxheWVyID0gZXZlbnRSZXBsYXllcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWNlaXZlcyBhbiBldmVudCBvciB0aGUgZXZlbnQgcXVldWUgZnJvbSB0aGUgRXZlbnRDb250cmFjdC4gVGhlIGV2ZW50XG4gICAqIHF1ZXVlIGlzIGNvcGllZCBhbmQgaXQgYXR0ZW1wdHMgdG8gcmVwbGF5LlxuICAgKiBJZiBldmVudCBpbmZvIGlzIHBhc3NlZCBpbiBpdCBsb29rcyBmb3IgYW4gYWN0aW9uIGhhbmRsZXIgdGhhdCBjYW4gaGFuZGxlXG4gICAqIHRoZSBnaXZlbiBldmVudC4gIElmIHRoZXJlIGlzIG5vIGhhbmRsZXIgcmVnaXN0ZXJlZCBxdWV1ZXMgdGhlIGV2ZW50IGFuZFxuICAgKiBjaGVja3MgaWYgYSBsb2FkZXIgaXMgcmVnaXN0ZXJlZCBmb3IgdGhlIGdpdmVuIG5hbWVzcGFjZS4gSWYgc28sIGNhbGxzIGl0LlxuICAgKlxuICAgKiBBbHRlcm5hdGl2ZWx5LCBpZiBpbiBnbG9iYWwgZGlzcGF0Y2ggbW9kZSwgY2FsbHMgYWxsIHJlZ2lzdGVyZWQgZ2xvYmFsXG4gICAqIGhhbmRsZXJzIGZvciB0aGUgYXBwcm9wcmlhdGUgZXZlbnQgdHlwZS5cbiAgICpcbiAgICogVGhlIHRocmVlIGZ1bmN0aW9uYWxpdGllcyBvZiB0aGlzIGNhbGwgYXJlIGRlbGliZXJhdGVseSBub3Qgc3BsaXQgaW50b1xuICAgKiB0aHJlZSBtZXRob2RzIChhbmQgdGhlbiBkZWNsYXJlZCBhcyBhbiBhYnN0cmFjdCBpbnRlcmZhY2UpLCBiZWNhdXNlIHRoZVxuICAgKiBpbnRlcmZhY2UgaXMgdXNlZCBieSBFdmVudENvbnRyYWN0LCB3aGljaCBsaXZlcyBpbiBhIGRpZmZlcmVudCBqc2JpbmFyeS5cbiAgICogVGhlcmVmb3JlIHRoZSBpbnRlcmZhY2UgYmV0d2VlbiB0aGUgdGhyZWUgaXMgZGVmaW5lZCBlbnRpcmVseSBpbiB0ZXJtcyB0aGF0XG4gICAqIGFyZSBpbnZhcmlhbnQgdW5kZXIganNjb21waWxlciBwcm9jZXNzaW5nIChGdW5jdGlvbiBhbmQgQXJyYXksIGFzIG9wcG9zZWRcbiAgICogdG8gYSBjdXN0b20gdHlwZSB3aXRoIG1ldGhvZCBuYW1lcykuXG4gICAqXG4gICAqIEBwYXJhbSBldmVudEluZm8gVGhlIGluZm8gZm9yIHRoZSBldmVudCB0aGF0IHRyaWdnZXJlZCB0aGlzIGNhbGwgb3IgdGhlXG4gICAqICAgICBxdWV1ZSBvZiBldmVudHMgZnJvbSBFdmVudENvbnRyYWN0LlxuICAgKi9cbiAgZGlzcGF0Y2goZXZlbnRJbmZvOiBFdmVudEluZm8pOiB2b2lkIHtcbiAgICBjb25zdCBldmVudEluZm9XcmFwcGVyID0gbmV3IEV2ZW50SW5mb1dyYXBwZXIoZXZlbnRJbmZvKTtcbiAgICB0aGlzLmFjdGlvblJlc29sdmVyPy5yZXNvbHZlKGV2ZW50SW5mbyk7XG4gICAgY29uc3QgYWN0aW9uID0gZXZlbnRJbmZvV3JhcHBlci5nZXRBY3Rpb24oKTtcbiAgICBpZiAoYWN0aW9uICYmIHNob3VsZFByZXZlbnREZWZhdWx0QmVmb3JlRGlzcGF0Y2hpbmcoYWN0aW9uLmVsZW1lbnQsIGV2ZW50SW5mb1dyYXBwZXIpKSB7XG4gICAgICBldmVudExpYi5wcmV2ZW50RGVmYXVsdChldmVudEluZm9XcmFwcGVyLmdldEV2ZW50KCkpO1xuICAgIH1cbiAgICBpZiAoZXZlbnRJbmZvV3JhcHBlci5nZXRJc1JlcGxheSgpKSB7XG4gICAgICB0aGlzLnNjaGVkdWxlRXZlbnRJbmZvV3JhcHBlclJlcGxheShldmVudEluZm9XcmFwcGVyKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kaXNwYXRjaERlbGVnYXRlKGV2ZW50SW5mb1dyYXBwZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNjaGVkdWxlcyBhbiBgRXZlbnRJbmZvV3JhcHBlcmAgZm9yIHJlcGxheS4gVGhlIHJlcGxheWluZyB3aWxsIGhhcHBlbiBpbiBpdHMgb3duXG4gICAqIHN0YWNrIG9uY2UgdGhlIGN1cnJlbnQgZmxvdyBjZWRlcyBjb250cm9sLiBUaGlzIGlzIGRvbmUgdG8gbWltaWNcbiAgICogYnJvd3NlciBldmVudCBoYW5kbGluZy5cbiAgICovXG4gIHByaXZhdGUgc2NoZWR1bGVFdmVudEluZm9XcmFwcGVyUmVwbGF5KGV2ZW50SW5mb1dyYXBwZXI6IEV2ZW50SW5mb1dyYXBwZXIpIHtcbiAgICB0aGlzLnJlcGxheUV2ZW50SW5mb1dyYXBwZXJzLnB1c2goZXZlbnRJbmZvV3JhcHBlcik7XG4gICAgaWYgKHRoaXMuZXZlbnRSZXBsYXlTY2hlZHVsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5ldmVudFJlcGxheVNjaGVkdWxlZCA9IHRydWU7XG4gICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLmV2ZW50UmVwbGF5U2NoZWR1bGVkID0gZmFsc2U7XG4gICAgICB0aGlzLmV2ZW50UmVwbGF5ZXIodGhpcy5yZXBsYXlFdmVudEluZm9XcmFwcGVycyk7XG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIGBFdmVudFJlcGxheWVyYCB0aGF0IGNhbGxzIHRoZSBgcmVwbGF5YCBmdW5jdGlvbiBmb3IgZXZlcnkgYGV2ZW50SW5mb1dyYXBwZXJgIGluXG4gKiB0aGUgcXVldWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFdmVudFJlcGxheWVyKHJlcGxheTogKGV2ZW50SW5mb1dyYXBwZXI6IEV2ZW50SW5mb1dyYXBwZXIpID0+IHZvaWQpIHtcbiAgcmV0dXJuIChldmVudEluZm9XcmFwcGVyczogRXZlbnRJbmZvV3JhcHBlcltdKSA9PiB7XG4gICAgZm9yIChjb25zdCBldmVudEluZm9XcmFwcGVyIG9mIGV2ZW50SW5mb1dyYXBwZXJzKSB7XG4gICAgICByZXBsYXkoZXZlbnRJbmZvV3JhcHBlcik7XG4gICAgfVxuICB9O1xufVxuXG4vKipcbiAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZGVmYXVsdCBhY3Rpb24gb2YgdGhpcyBldmVudCBzaG91bGQgYmUgcHJldmVudGVkIGJlZm9yZVxuICogdGhpcyBldmVudCBpcyBkaXNwYXRjaGVkLlxuICovXG5mdW5jdGlvbiBzaG91bGRQcmV2ZW50RGVmYXVsdEJlZm9yZURpc3BhdGNoaW5nKFxuICBhY3Rpb25FbGVtZW50OiBFbGVtZW50LFxuICBldmVudEluZm9XcmFwcGVyOiBFdmVudEluZm9XcmFwcGVyLFxuKTogYm9vbGVhbiB7XG4gIC8vIFByZXZlbnQgYnJvd3NlciBmcm9tIGZvbGxvd2luZyA8YT4gbm9kZSBsaW5rcyBpZiBhIGpzYWN0aW9uIGlzIHByZXNlbnRcbiAgLy8gYW5kIHdlIGFyZSBkaXNwYXRjaGluZyB0aGUgYWN0aW9uIG5vdy4gTm90ZSB0aGF0IHRoZSB0YXJnZXRFbGVtZW50IG1heSBiZVxuICAvLyBhIGNoaWxkIG9mIGFuIGFuY2hvciB0aGF0IGhhcyBhIGpzYWN0aW9uIGF0dGFjaGVkLiBGb3IgdGhhdCByZWFzb24sIHdlXG4gIC8vIG5lZWQgdG8gY2hlY2sgdGhlIGFjdGlvbkVsZW1lbnQgcmF0aGVyIHRoYW4gdGhlIHRhcmdldEVsZW1lbnQuXG4gIHJldHVybiAoXG4gICAgKGFjdGlvbkVsZW1lbnQudGFnTmFtZSA9PT0gJ0EnICYmIGV2ZW50SW5mb1dyYXBwZXIuZ2V0RXZlbnRUeXBlKCkgPT09IEV2ZW50VHlwZS5DTElDSykgfHxcbiAgICBldmVudEluZm9XcmFwcGVyLmdldEV2ZW50VHlwZSgpID09PSBFdmVudFR5cGUuQ0xJQ0tNT0RcbiAgKTtcbn1cblxuLyoqXG4gKiBSZWdpc3RlcnMgZGVmZXJyZWQgZnVuY3Rpb25hbGl0eSBmb3IgYW4gRXZlbnRDb250cmFjdCBhbmQgYSBKc2FjdGlvblxuICogRGlzcGF0Y2hlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyRGlzcGF0Y2hlcihldmVudENvbnRyYWN0OiBVbnJlbmFtZWRFdmVudENvbnRyYWN0LCBkaXNwYXRjaGVyOiBEaXNwYXRjaGVyKSB7XG4gIGV2ZW50Q29udHJhY3QuZWNyZCgoZXZlbnRJbmZvOiBFdmVudEluZm8pID0+IHtcbiAgICBkaXNwYXRjaGVyLmRpc3BhdGNoKGV2ZW50SW5mbyk7XG4gIH0sIFJlc3RyaWN0aW9uLklfQU1fVEhFX0pTQUNUSU9OX0ZSQU1FV09SSyk7XG59XG4iXX0=
|
|
@@ -81,6 +81,14 @@ export function getA11yClickKey(eventInfo) {
|
|
|
81
81
|
export function setA11yClickKey(eventInfo, a11yClickKey) {
|
|
82
82
|
eventInfo.eiack = a11yClickKey;
|
|
83
83
|
}
|
|
84
|
+
/** Added for readability when accessing stable property names. */
|
|
85
|
+
export function getResolved(eventInfo) {
|
|
86
|
+
return eventInfo.eir;
|
|
87
|
+
}
|
|
88
|
+
/** Added for readability when accessing stable property names. */
|
|
89
|
+
export function setResolved(eventInfo, resolved) {
|
|
90
|
+
eventInfo.eir = resolved;
|
|
91
|
+
}
|
|
84
92
|
/** Clones an `EventInfo` */
|
|
85
93
|
export function cloneEventInfo(eventInfo) {
|
|
86
94
|
return {
|
|
@@ -92,6 +100,7 @@ export function cloneEventInfo(eventInfo) {
|
|
|
92
100
|
timeStamp: eventInfo.timeStamp,
|
|
93
101
|
eirp: eventInfo.eirp,
|
|
94
102
|
eiack: eventInfo.eiack,
|
|
103
|
+
eir: eventInfo.eir,
|
|
95
104
|
};
|
|
96
105
|
}
|
|
97
106
|
/**
|
|
@@ -192,8 +201,14 @@ export class EventInfoWrapper {
|
|
|
192
201
|
setIsReplay(replay) {
|
|
193
202
|
setIsReplay(this.eventInfo, replay);
|
|
194
203
|
}
|
|
204
|
+
getResolved() {
|
|
205
|
+
return getResolved(this.eventInfo);
|
|
206
|
+
}
|
|
207
|
+
setResolved(resolved) {
|
|
208
|
+
setResolved(this.eventInfo, resolved);
|
|
209
|
+
}
|
|
195
210
|
clone() {
|
|
196
211
|
return new EventInfoWrapper(cloneEventInfo(this.eventInfo));
|
|
197
212
|
}
|
|
198
213
|
}
|
|
199
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRfaW5mby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvcHJpbWl0aXZlcy9ldmVudC1kaXNwYXRjaC9zcmMvZXZlbnRfaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFvREgsa0VBQWtFO0FBQ2xFLE1BQU0sVUFBVSxZQUFZLENBQUMsU0FBb0I7SUFDL0MsT0FBTyxTQUFTLENBQUMsU0FBUyxDQUFDO0FBQzdCLENBQUM7QUFFRCxrRUFBa0U7QUFDbEUsTUFBTSxVQUFVLFlBQVksQ0FBQyxTQUFvQixFQUFFLFNBQWlCO0lBQ2xFLFNBQVMsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0FBQ2xDLENBQUM7QUFFRCxrRUFBa0U7QUFDbEUsTUFBTSxVQUFVLFFBQVEsQ0FBQyxTQUFvQjtJQUMzQyxPQUFPLFNBQVMsQ0FBQyxLQUFLLENBQUM7QUFDekIsQ0FBQztBQUVELGtFQUFrRTtBQUNsRSxNQUFNLFVBQVUsUUFBUSxDQUFDLFNBQW9CLEVBQUUsS0FBWTtJQUN6RCxTQUFTLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztBQUMxQixDQUFDO0FBRUQsa0VBQWtFO0FBQ2xFLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxTQUFvQjtJQUNuRCxPQUFPLFNBQVMsQ0FBQyxhQUFhLENBQUM7QUFDakMsQ0FBQztBQUVELGtFQUFrRTtBQUNsRSxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsU0FBb0IsRUFBRSxhQUFzQjtJQUMzRSxTQUFTLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztBQUMxQyxDQUFDO0FBRUQsa0VBQWtFO0FBQ2xFLE1BQU0sVUFBVSxZQUFZLENBQUMsU0FBb0I7SUFDL0MsT0FBTyxTQUFTLENBQUMsR0FBRyxDQUFDO0FBQ3ZCLENBQUM7QUFFRCxrRUFBa0U7QUFDbEUsTUFBTSxVQUFVLFlBQVksQ0FBQyxTQUFvQixFQUFFLFNBQWtCO0lBQ25F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KipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBSZWNvcmRzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBhY3Rpb24gdGhhdCBzaG91bGQgaGFuZGxlIGEgZ2l2ZW4gYEV2ZW50YC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBY3Rpb25JbmZvIHtcbiAgbmFtZTogc3RyaW5nO1xuICBlbGVtZW50OiBFbGVtZW50O1xufVxuXG50eXBlIEFjdGlvbkluZm9JbnRlcm5hbCA9IFtuYW1lOiBzdHJpbmcsIGVsZW1lbnQ6IEVsZW1lbnRdO1xuXG4vKipcbiAqIFJlY29yZHMgaW5mb3JtYXRpb24gZm9yIGxhdGVyIGhhbmRsaW5nIG9mIGV2ZW50cy4gVGhpcyB0eXBlIGlzXG4gKiBzaGFyZWQsIGFuZCBpbnN0YW5jZXMgb2YgaXQgYXJlIHBhc3NlZCwgYmV0d2VlbiB0aGUgZXZlbnRjb250cmFjdFxuICogYW5kIHRoZSBkaXNwYXRjaGVyIGpzYmluYXJ5LiBUaGVyZWZvcmUsIHRoZSBmaWVsZHMgb2YgdGhpcyB0eXBlIGFyZVxuICogcmVmZXJlbmNlZCBieSBzdHJpbmcgbGl0ZXJhbHMgcmF0aGVyIHRoYW4gcHJvcGVydHkgbGl0ZXJhbHNcbiAqIHRocm91Z2hvdXQgdGhlIGNvZGUuXG4gKlxuICogJ3RhcmdldEVsZW1lbnQnIGlzIHRoZSBlbGVtZW50IHRoZSBhY3Rpb24gb2NjdXJyZWQgb24sICdhY3Rpb25FbGVtZW50J1xuICogaXMgdGhlIGVsZW1lbnQgdGhhdCBoYXMgdGhlIGpzYWN0aW9uIGhhbmRsZXIuXG4gKlxuICogQSBudWxsICdhY3Rpb25FbGVtZW50JyBpZGVudGlmaWVzIGFuIEV2ZW50SW5mbyBpbnN0YW5jZSB0aGF0IGRpZG4ndCBtYXRjaCBhXG4gKiBqc2FjdGlvbiBhdHRyaWJ1dGUuICBUaGlzIGFsbG93cyB1cyB0byBleGVjdXRlIGdsb2JhbCBldmVudCBoYW5kbGVycyB3aXRoIHRoZVxuICogYXBwcm9wcmlhdGUgZXZlbnQgdHlwZSAoaW5jbHVkaW5nIGExMXkgY2xpY2tzIGFuZCBjdXN0b20gZXZlbnRzKS5cbiAqIFRoZSBkZWNsYXJlIHBvcnRpb24gb2YgdGhpcyBpbnRlcmZhY2UgY3JlYXRlcyBhIHNldCBvZiBleHRlcm5zIHRoYXQgbWFrZSBzdXJlXG4gKiByZW5hbWluZyBkb2Vzbid0IGhhcHBlbiBmb3IgRXZlbnRJbmZvLiBUaGlzIGlzIGltcG9ydGFudCBzaW5jZSBFdmVudEluZm9cbiAqIGlzIHNoYXJlZCBhY3Jvc3MgbXVsdGlwbGUgYmluYXJpZXMuXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBFdmVudEluZm8ge1xuICBldmVudFR5cGU6IHN0cmluZztcbiAgZXZlbnQ6IEV2ZW50O1xuICB0YXJnZXRFbGVtZW50OiBFbGVtZW50O1xuICAvKiogVGhlIGVsZW1lbnQgdGhhdCBpcyB0aGUgY29udGFpbmVyIGZvciB0aGlzIEV2ZW50LiAqL1xuICBlaWM6IEVsZW1lbnQ7XG4gIHRpbWVTdGFtcDogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIGFjdGlvbiBwYXJzZWQgZnJvbSB0aGUgSlNBY3Rpb24gZWxlbWVudC5cbiAgICovXG4gIGVpYT86IEFjdGlvbkluZm9JbnRlcm5hbDtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBgRXZlbnRgIGlzIGEgcmVwbGF5IGV2ZW50LCBtZWFuaW5nIG5vIGRpc3BhdGNoZXIgd2FzXG4gICAqIGluc3RhbGxlZCB3aGVuIHRoaXMgYEV2ZW50YCB3YXMgb3JpZ2luYWxseSBkaXNwYXRjaGVkLlxuICAgKi9cbiAgZWlycD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgYEV2ZW50YCByZXByZXNlbnRzIGEgYGtleWRvd25gIGV2ZW50IHRoYXQgc2hvdWxkIGJlIHByb2Nlc3NlZFxuICAgKiBhcyBhIGBjbGlja2AuIE9ubHkgdXNlZCB3aGVuIGExMXkgY2xpY2sgZXZlbnRzIGlzIG9uLlxuICAgKi9cbiAgZWlhY2s/OiBib29sZWFuO1xufVxuXG4vKiogQWRkZWQgZm9yIHJlYWRhYmlsaXR5IHdoZW4gYWNjZXNzaW5nIHN0YWJsZSBwcm9wZXJ0eSBuYW1lcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFdmVudFR5cGUoZXZlbnRJbmZvOiBFdmVudEluZm8pIHtcbiAgcmV0dXJuIGV2ZW50SW5mby5ldmVudFR5cGU7XG59XG5cbi8qKiBBZGRlZCBmb3IgcmVhZGFiaWxpdHkgd2hlbiBhY2Nlc3Npbmcgc3RhYmxlIHByb3BlcnR5IG5hbWVzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldEV2ZW50VHlwZShldmVudEluZm86IEV2ZW50SW5mbywgZXZlbnRUeXBlOiBzdHJpbmcpIHtcbiAgZXZlbnRJbmZvLmV2ZW50VHlwZSA9IGV2ZW50VHlwZTtcbn1cblxuLyoqIEFkZGVkIGZvciByZWFkYWJpbGl0eSB3aGVuIGFjY2Vzc2luZyBzdGFibGUgcHJvcGVydHkgbmFtZXMuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXZlbnQoZXZlbnRJbmZvOiBFdmVudEluZm8pIHtcbiAgcmV0dXJuIGV2ZW50SW5mby5ldmVudDtcbn1cblxuLyoqIEFkZGVkIGZvciByZWFkYWJpbGl0eSB3aGVuIGFjY2Vzc2luZyBzdGFibGUgcHJvcGVydHkgbmFtZXMuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0RXZlbnQoZXZlbnRJbmZvOiBFdmVudEluZm8sIGV2ZW50OiBFdmVudCkge1xuICBldmVudEluZm8uZXZlbnQgPSBldmVudDtcbn1cblxuLyoqIEFkZGVkIGZvciByZWFkYWJpbGl0eSB3aGVuIGFjY2Vzc2luZyBzdGFibGUgcHJvcGVydHkgbmFtZXMuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGFyZ2V0RWxlbWVudChldmVudEluZm86IEV2ZW50SW5mbykge1xuICByZXR1cm4gZXZlbnRJbmZvLnRhcmdldEVsZW1lbnQ7XG59XG5cbi8qKiBBZGRlZCBmb3IgcmVhZGFiaWxpdHkgd2hlbiBhY2Nlc3Npbmcgc3RhYmxlIHByb3BlcnR5IG5hbWVzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldFRhcmdldEVsZW1lbnQoZXZlbnRJbmZvOiBFdmVudEluZm8sIHRhcmdldEVsZW1lbnQ6IEVsZW1lbnQpIHtcbiAgZXZlbnRJbmZvLnRhcmdldEVsZW1lbnQgPSB0YXJnZXRFbGVtZW50O1xufVxuXG4vKiogQWRkZWQgZm9yIHJlYWRhYmlsaXR5IHdoZW4gYWNjZXNzaW5nIHN0YWJsZSBwcm9wZXJ0eSBuYW1lcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb250YWluZXIoZXZlbnRJbmZvOiBFdmVudEluZm8pIHtcbiAgcmV0dXJuIGV2ZW50SW5mby5laWM7XG59XG5cbi8qKiBBZGRlZCBmb3IgcmVhZGFiaWxpdHkgd2hlbiBhY2Nlc3Npbmcgc3RhYmxlIHByb3BlcnR5IG5hbWVzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldENvbnRhaW5lcihldmVudEluZm86IEV2ZW50SW5mbywgY29udGFpbmVyOiBFbGVtZW50KSB7XG4gIGV2ZW50SW5mby5laWMgPSBjb250YWluZXI7XG59XG5cbi8qKiBBZGRlZCBmb3IgcmVhZGFiaWxpdHkgd2hlbiBhY2Nlc3Npbmcgc3RhYmxlIHByb3BlcnR5IG5hbWVzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRpbWVzdGFtcChldmVudEluZm86IEV2ZW50SW5mbykge1xuICByZXR1cm4gZXZlbnRJbmZvLnRpbWVTdGFtcDtcbn1cblxuLyoqIEFkZGVkIGZvciByZWFkYWJpbGl0eSB3aGVuIGFjY2Vzc2luZyBzdGFibGUgcHJvcGVydHkgbmFtZXMuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0VGltZXN0YW1wKGV2ZW50SW5mbzogRXZlbnRJbmZvLCB0aW1lc3RhbXA6IG51bWJlcikge1xuICBldmVudEluZm8udGltZVN0YW1wID0gdGltZXN0YW1wO1xufVxuXG4vKiogQWRkZWQgZm9yIHJlYWRhYmlsaXR5IHdoZW4gYWNjZXNzaW5nIHN0YWJsZSBwcm9wZXJ0eSBuYW1lcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBY3Rpb24oZXZlbnRJbmZvOiBFdmVudEluZm8pIHtcbiAgcmV0dXJuIGV2ZW50SW5mby5laWE7XG59XG5cbi8qKiBBZGRlZCBmb3IgcmVhZGFiaWxpdHkgd2hlbiBhY2Nlc3Npbmcgc3RhYmxlIHByb3BlcnR5IG5hbWVzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldEFjdGlvbihldmVudEluZm86IEV2ZW50SW5mbywgYWN0aW9uTmFtZTogc3RyaW5nLCBhY3Rpb25FbGVtZW50OiBFbGVtZW50KSB7XG4gIGV2ZW50SW5mby5laWEgPSBbYWN0aW9uTmFtZSwgYWN0aW9uRWxlbWVudF07XG59XG5cbi8qKiBBZGRlZCBmb3IgcmVhZGFiaWxpdHkgd2hlbiBhY2Nlc3Npbmcgc3RhYmxlIHByb3BlcnR5IG5hbWVzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVuc2V0QWN0aW9uKGV2ZW50SW5mbzogRXZlbnRJbmZvKSB7XG4gIGV2ZW50SW5mby5laWEgPSB1bmRlZmluZWQ7XG59XG5cbi8qKiBBZGRlZCBmb3IgcmVhZGFiaWxpdHkgd2hlbiBhY2Nlc3Npbmcgc3RhYmxlIHByb3BlcnR5IG5hbWVzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFjdGlvbk5hbWUoYWN0aW9uSW5mbzogQWN0aW9uSW5mb0ludGVybmFsKSB7XG4gIHJldHVybiBhY3Rpb25JbmZvWzBdO1xufVxuXG4vKiogQWRkZWQgZm9yIHJlYWRhYmlsaXR5IHdoZW4gYWNjZXNzaW5nIHN0YWJsZSBwcm9wZXJ0eSBuYW1lcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBY3Rpb25FbGVtZW50KGFjdGlvbkluZm86IEFjdGlvbkluZm9JbnRlcm5hbCkge1xuICByZXR1cm4gYWN0aW9uSW5mb1sxXTtcbn1cblxuLyoqIEFkZGVkIGZvciByZWFkYWJpbGl0eSB3aGVuIGFjY2Vzc2luZyBzdGFibGUgcHJvcGVydHkgbmFtZXMuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SXNSZXBsYXkoZXZlbnRJbmZvOiBFdmVudEluZm8pIHtcbiAgcmV0dXJuIGV2ZW50SW5mby5laXJwO1xufVxuXG4vKiogQWRkZWQgZm9yIHJlYWRhYmlsaXR5IHdoZW4gYWNjZXNzaW5nIHN0YWJsZSBwcm9wZXJ0eSBuYW1lcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRJc1JlcGxheShldmVudEluZm86IEV2ZW50SW5mbywgcmVwbGF5OiBib29sZWFuKSB7XG4gIGV2ZW50SW5mby5laXJwID0gcmVwbGF5O1xufVxuXG4vKiogQWRkZWQgZm9yIHJlYWRhYmlsaXR5IHdoZW4gYWNjZXNzaW5nIHN0YWJsZSBwcm9wZXJ0eSBuYW1lcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBMTF5Q2xpY2tLZXkoZXZlbnRJbmZvOiBFdmVudEluZm8pIHtcbiAgcmV0dXJuIGV2ZW50SW5mby5laWFjaztcbn1cblxuLyoqIEFkZGVkIGZvciByZWFkYWJpbGl0eSB3aGVuIGFjY2Vzc2luZyBzdGFibGUgcHJvcGVydHkgbmFtZXMuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0QTExeUNsaWNrS2V5KGV2ZW50SW5mbzogRXZlbnRJbmZvLCBhMTF5Q2xpY2tLZXk6IGJvb2xlYW4pIHtcbiAgZXZlbnRJbmZvLmVpYWNrID0gYTExeUNsaWNrS2V5O1xufVxuXG4vKiogQ2xvbmVzIGFuIGBFdmVudEluZm9gICovXG5leHBvcnQgZnVuY3Rpb24gY2xvbmVFdmVudEluZm8oZXZlbnRJbmZvOiBFdmVudEluZm8pOiBFdmVudEluZm8ge1xuICByZXR1cm4ge1xuICAgIGV2ZW50VHlwZTogZXZlbnRJbmZvLmV2ZW50VHlwZSxcbiAgICBldmVudDogZXZlbnRJbmZvLmV2ZW50LFxuICAgIHRhcmdldEVsZW1lbnQ6IGV2ZW50SW5mby50YXJnZXRFbGVtZW50LFxuICAgIGVpYzogZXZlbnRJbmZvLmVpYyxcbiAgICBlaWE6IGV2ZW50SW5mby5laWEsXG4gICAgdGltZVN0YW1wOiBldmVudEluZm8udGltZVN0YW1wLFxuICAgIGVpcnA6IGV2ZW50SW5mby5laXJwLFxuICAgIGVpYWNrOiBldmVudEluZm8uZWlhY2ssXG4gIH07XG59XG5cbi8qKlxuICogVXRpbGl0eSBmdW5jdGlvbiBmb3IgY3JlYXRpbmcgYW4gYEV2ZW50SW5mb2AuXG4gKlxuICogVGhpcyBjYW4gYmUgdXNlZCBmcm9tIGNvZGUtc2l6ZSBzZW5zaXRpdmUgY29tcGlsYXRpb24gdW5pdHMsIGFzIHRha2luZ1xuICogcGFyYW1ldGVycyB2cy4gYW4gYE9iamVjdGAgbGl0ZXJhbCByZWR1Y2VzIGNvZGUgc2l6ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUV2ZW50SW5mb0Zyb21QYXJhbWV0ZXJzKFxuICBldmVudFR5cGU6IHN0cmluZyxcbiAgZXZlbnQ6IEV2ZW50LFxuICB0YXJnZXRFbGVtZW50OiBFbGVtZW50LFxuICBjb250YWluZXI6IEVsZW1lbnQsXG4gIHRpbWVzdGFtcDogbnVtYmVyLFxuICBhY3Rpb24/OiBBY3Rpb25JbmZvSW50ZXJuYWwsXG4gIGlzUmVwbGF5PzogYm9vbGVhbixcbiAgYTExeUNsaWNrS2V5PzogYm9vbGVhbixcbik6IEV2ZW50SW5mbyB7XG4gIHJldHVybiB7XG4gICAgZXZlbnRUeXBlLFxuICAgIGV2ZW50LFxuICAgIHRhcmdldEVsZW1lbnQsXG4gICAgZWljOiBjb250YWluZXIsXG4gICAgdGltZVN0YW1wOiB0aW1lc3RhbXAsXG4gICAgZWlhOiBhY3Rpb24sXG4gICAgZWlycDogaXNSZXBsYXksXG4gICAgZWlhY2s6IGExMXlDbGlja0tleSxcbiAgfTtcbn1cblxuLyoqXG4gKiBVdGlsaXR5IGZ1bmN0aW9uIGZvciBjcmVhdGluZyBhbiBgRXZlbnRJbmZvYC5cbiAqXG4gKiBUaGlzIHNob3VsZCBiZSB1c2VkIGluIGNvbXBpbGF0aW9uIHVuaXRzIHRoYXQgYXJlIGxlc3Mgc2Vuc2l0aXZlIHRvIGNvZGVcbiAqIHNpemUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFdmVudEluZm8oe1xuICBldmVudFR5cGUsXG4gIGV2ZW50LFxuICB0YXJnZXRFbGVtZW50LFxuICBjb250YWluZXIsXG4gIHRpbWVzdGFtcCxcbiAgYWN0aW9uLFxuICBpc1JlcGxheSxcbiAgYTExeUNsaWNrS2V5LFxufToge1xuICBldmVudFR5cGU6IHN0cmluZztcbiAgZXZlbnQ6IEV2ZW50O1xuICB0YXJnZXRFbGVtZW50OiBFbGVtZW50O1xuICBjb250YWluZXI6IEVsZW1lbnQ7XG4gIHRpbWVzdGFtcDogbnVtYmVyO1xuICBhY3Rpb24/OiBBY3Rpb25JbmZvO1xuICBpc1JlcGxheT86IGJvb2xlYW47XG4gIGExMXlDbGlja0tleT86IGJvb2xlYW47XG59KTogRXZlbnRJbmZvIHtcbiAgcmV0dXJuIHtcbiAgICBldmVudFR5cGUsXG4gICAgZXZlbnQsXG4gICAgdGFyZ2V0RWxlbWVudCxcbiAgICBlaWM6IGNvbnRhaW5lcixcbiAgICB0aW1lU3RhbXA6IHRpbWVzdGFtcCxcbiAgICBlaWE6IGFjdGlvbiA/IFthY3Rpb24ubmFtZSwgYWN0aW9uLmVsZW1lbnRdIDogdW5kZWZpbmVkLFxuICAgIGVpcnA6IGlzUmVwbGF5LFxuICAgIGVpYWNrOiBhMTF5Q2xpY2tLZXksXG4gIH07XG59XG5cbi8qKlxuICogVXRpbGl0eSBjbGFzcyBhcm91bmQgYW4gYEV2ZW50SW5mb2AuXG4gKlxuICogVGhpcyBzaG91bGQgYmUgdXNlZCBpbiBjb21waWxhdGlvbiB1bml0cyB0aGF0IGFyZSBsZXNzIHNlbnNpdGl2ZSB0byBjb2RlXG4gKiBzaXplLlxuICovXG5leHBvcnQgY2xhc3MgRXZlbnRJbmZvV3JhcHBlciB7XG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGV2ZW50SW5mbzogRXZlbnRJbmZvKSB7fVxuXG4gIGdldEV2ZW50VHlwZSgpIHtcbiAgICByZXR1cm4gZ2V0RXZlbnRUeXBlKHRoaXMuZXZlbnRJbmZvKTtcbiAgfVxuXG4gIHNldEV2ZW50VHlwZShldmVudFR5cGU6IHN0cmluZykge1xuICAgIHNldEV2ZW50VHlwZSh0aGlzLmV2ZW50SW5mbywgZXZlbnRUeXBlKTtcbiAgfVxuXG4gIGdldEV2ZW50KCkge1xuICAgIHJldHVybiBnZXRFdmVudCh0aGlzLmV2ZW50SW5mbyk7XG4gIH1cblxuICBzZXRFdmVudChldmVudDogRXZlbnQpIHtcbiAgICBzZXRFdmVudCh0aGlzLmV2ZW50SW5mbywgZXZlbnQpO1xuICB9XG5cbiAgZ2V0VGFyZ2V0RWxlbWVudCgpIHtcbiAgICByZXR1cm4gZ2V0VGFyZ2V0RWxlbWVudCh0aGlzLmV2ZW50SW5mbyk7XG4gIH1cblxuICBzZXRUYXJnZXRFbGVtZW50KHRhcmdldEVsZW1lbnQ6IEVsZW1lbnQpIHtcbiAgICBzZXRUYXJnZXRFbGVtZW50KHRoaXMuZXZlbnRJbmZvLCB0YXJnZXRFbGVtZW50KTtcbiAgfVxuXG4gIGdldENvbnRhaW5lcigpIHtcbiAgICByZXR1cm4gZ2V0Q29udGFpbmVyKHRoaXMuZXZlbnRJbmZvKTtcbiAgfVxuXG4gIHNldENvbnRhaW5lcihjb250YWluZXI6IEVsZW1lbnQpIHtcbiAgICBzZXRDb250YWluZXIodGhpcy5ldmVudEluZm8sIGNvbnRhaW5lcik7XG4gIH1cbiAgZ2V0VGltZXN0YW1wKCkge1xuICAgIHJldHVybiBnZXRUaW1lc3RhbXAodGhpcy5ldmVudEluZm8pO1xuICB9XG5cbiAgc2V0VGltZXN0YW1wKHRpbWVzdGFtcDogbnVtYmVyKSB7XG4gICAgc2V0VGltZXN0YW1wKHRoaXMuZXZlbnRJbmZvLCB0aW1lc3RhbXApO1xuICB9XG5cbiAgZ2V0QWN0aW9uKCkge1xuICAgIGNvbnN0IGFjdGlvbiA9IGdldEFjdGlvbih0aGlzLmV2ZW50SW5mbyk7XG4gICAgaWYgKCFhY3Rpb24pIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IGFjdGlvblswXSxcbiAgICAgIGVsZW1lbnQ6IGFjdGlvblsxXSxcbiAgICB9O1xuICB9XG5cbiAgc2V0QWN0aW9uKGFjdGlvbjogQWN0aW9uSW5mbyB8IHVuZGVmaW5lZCkge1xuICAgIGlmICghYWN0aW9uKSB7XG4gICAgICB1bnNldEFjdGlvbih0aGlzLmV2ZW50SW5mbyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHNldEFjdGlvbih0aGlzLmV2ZW50SW5mbywgYWN0aW9uLm5hbWUsIGFjdGlvbi5lbGVtZW50KTtcbiAgfVxuXG4gIGdldElzUmVwbGF5KCkge1xuICAgIHJldHVybiBnZXRJc1JlcGxheSh0aGlzLmV2ZW50SW5mbyk7XG4gIH1cblxuICBzZXRJc1JlcGxheShyZXBsYXk6IGJvb2xlYW4pIHtcbiAgICBzZXRJc1JlcGxheSh0aGlzLmV2ZW50SW5mbywgcmVwbGF5KTtcbiAgfVxuXG4gIGNsb25lKCkge1xuICAgIHJldHVybiBuZXcgRXZlbnRJbmZvV3JhcHBlcihjbG9uZUV2ZW50SW5mbyh0aGlzLmV2ZW50SW5mbykpO1xuICB9XG59XG4iXX0=
|
|
214
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRfaW5mby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvcHJpbWl0aXZlcy9ldmVudC1kaXNwYXRjaC9zcmMvZXZlbnRfaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFzREgsa0VBQWtFO0FBQ2xFLE1BQU0sVUFBVSxZQUFZLENBQUMsU0FBb0I7SUFDL0MsT0FBTyxTQUFTLENBQUMsU0FBUyxDQUFDO0FBQzdCLENBQUM7QUFFRCxrRUFBa0U7QUFDbEUsTUFBTSxVQUFVLFlBQVksQ0FBQyxTQUFvQixFQUFFLFNBQWlCO0lBQ2xFLFNBQVMsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0FBQ2xDLENBQUM7QUFFRCxrRUFBa0U7QUFDbEUsTUFBTSxVQUFVLFFBQVEsQ0FBQyxTQUFvQjtJQUMzQyxPQUFPLFNBQVMsQ0FBQyxLQUFLLENBQUM7QUFDekIsQ0FBQztBQUVELGtFQUFrRTtBQUNsRSxNQUFNLFVBQVUsUUFBUSxDQUFDLFNBQW9CLEVBQUUsS0FBWTtJQUN6RCxTQUFTLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztBQUMxQixDQUFDO0FBRUQsa0VBQWtFO0FBQ2xFLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxTQUFvQjtJQUNuRCxPQUFPLFNBQVMsQ0FBQyxhQUFhLENBQUM7QUFDakMsQ0FBQztBQUVELGtFQUFrRTtBQUNsRSxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsU0FBb0IsRUFBRSxhQUFzQjtJQUMzRSxTQUFTLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztBQUMxQyxDQUFDO0FBRUQsa0VBQWtFO0FBQ2xFLE1BQU0sVUFBVSxZQUFZLENBQUMsU0FBb0I7SUFDL0MsT0FBTyxTQUFTLENBQUMsR0FBRyxDQUFDO0FBQ3ZCLENBQUM7QUFFRCxrRUFBa0U7QUFDbEUsTUFBTSxVQUFVLFlBQVksQ0FBQyxTQUFvQixFQUFFLFNBQWtCO0lBQ25F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UyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFlO1FBQ3pCLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxXQUFXLENBQUMsUUFBaUI7UUFDM0IsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELEtBQUs7UUFDSCxPQUFPLElBQUksZ0JBQWdCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIFJlY29yZHMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGFjdGlvbiB0aGF0IHNob3VsZCBoYW5kbGUgYSBnaXZlbiBgRXZlbnRgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvbkluZm8ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGVsZW1lbnQ6IEVsZW1lbnQ7XG59XG5cbnR5cGUgQWN0aW9uSW5mb0ludGVybmFsID0gW25hbWU6IHN0cmluZywgZWxlbWVudDogRWxlbWVudF07XG5cbi8qKlxuICogUmVjb3JkcyBpbmZvcm1hdGlvbiBmb3IgbGF0ZXIgaGFuZGxpbmcgb2YgZXZlbnRzLiBUaGlzIHR5cGUgaXNcbiAqIHNoYXJlZCwgYW5kIGluc3RhbmNlcyBvZiBpdCBhcmUgcGFzc2VkLCBiZXR3ZWVuIHRoZSBldmVudGNvbnRyYWN0XG4gKiBhbmQgdGhlIGRpc3BhdGNoZXIganNiaW5hcnkuIFRoZXJlZm9yZSwgdGhlIGZpZWxkcyBvZiB0aGlzIHR5cGUgYXJlXG4gKiByZWZlcmVuY2VkIGJ5IHN0cmluZyBsaXRlcmFscyByYXRoZXIgdGhhbiBwcm9wZXJ0eSBsaXRlcmFsc1xuICogdGhyb3VnaG91dCB0aGUgY29kZS5cbiAqXG4gKiAndGFyZ2V0RWxlbWVudCcgaXMgdGhlIGVsZW1lbnQgdGhlIGFjdGlvbiBvY2N1cnJlZCBvbiwgJ2FjdGlvbkVsZW1lbnQnXG4gKiBpcyB0aGUgZWxlbWVudCB0aGF0IGhhcyB0aGUganNhY3Rpb24gaGFuZGxlci5cbiAqXG4gKiBBIG51bGwgJ2FjdGlvbkVsZW1lbnQnIGlkZW50aWZpZXMgYW4gRXZlbnRJbmZvIGluc3RhbmNlIHRoYXQgZGlkbid0IG1hdGNoIGFcbiAqIGpzYWN0aW9uIGF0dHJpYnV0ZS4gIFRoaXMgYWxsb3dzIHVzIHRvIGV4ZWN1dGUgZ2xvYmFsIGV2ZW50IGhhbmRsZXJzIHdpdGggdGhlXG4gKiBhcHByb3ByaWF0ZSBldmVudCB0eXBlIChpbmNsdWRpbmcgYTExeSBjbGlja3MgYW5kIGN1c3RvbSBldmVudHMpLlxuICogVGhlIGRlY2xhcmUgcG9ydGlvbiBvZiB0aGlzIGludGVyZmFjZSBjcmVhdGVzIGEgc2V0IG9mIGV4dGVybnMgdGhhdCBtYWtlIHN1cmVcbiAqIHJlbmFtaW5nIGRvZXNuJ3QgaGFwcGVuIGZvciBFdmVudEluZm8uIFRoaXMgaXMgaW1wb3J0YW50IHNpbmNlIEV2ZW50SW5mb1xuICogaXMgc2hhcmVkIGFjcm9zcyBtdWx0aXBsZSBiaW5hcmllcy5cbiAqL1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEV2ZW50SW5mbyB7XG4gIGV2ZW50VHlwZTogc3RyaW5nO1xuICBldmVudDogRXZlbnQ7XG4gIHRhcmdldEVsZW1lbnQ6IEVsZW1lbnQ7XG4gIC8qKiBUaGUgZWxlbWVudCB0aGF0IGlzIHRoZSBjb250YWluZXIgZm9yIHRoaXMgRXZlbnQuICovXG4gIGVpYzogRWxlbWVudDtcbiAgdGltZVN0YW1wOiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgYWN0aW9uIHBhcnNlZCBmcm9tIHRoZSBKU0FjdGlvbiBlbGVtZW50LlxuICAgKi9cbiAgZWlhPzogQWN0aW9uSW5mb0ludGVybmFsO1xuICAvKipcbiAgICogV2hldGhlciB0aGlzIGBFdmVudGAgaXMgYSByZXBsYXkgZXZlbnQsIG1lYW5pbmcgbm8gZGlzcGF0Y2hlciB3YXNcbiAgICogaW5zdGFsbGVkIHdoZW4gdGhpcyBgRXZlbnRgIHdhcyBvcmlnaW5hbGx5IGRpc3BhdGNoZWQuXG4gICAqL1xuICBlaXJwPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBgRXZlbnRgIHJlcHJlc2VudHMgYSBga2V5ZG93bmAgZXZlbnQgdGhhdCBzaG91bGQgYmUgcHJvY2Vzc2VkXG4gICAqIGFzIGEgYGNsaWNrYC4gT25seSB1c2VkIHdoZW4gYTExeSBjbGljayBldmVudHMgaXMgb24uXG4gICAqL1xuICBlaWFjaz86IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIGFjdGlvbiByZXNvbHV0aW9uIGhhcyBhbHJlYWR5IHJ1biBvbiB0aGlzIGBFdmVudEluZm9gLiAqL1xuICBlaXI/OiBib29sZWFuO1xufVxuXG4vKiogQWRkZWQgZm9yIHJlYWRhYmlsaXR5IHdoZW4gYWNjZXNzaW5nIHN0YWJsZSBwcm9wZXJ0eSBuYW1lcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFdmVudFR5cGUoZXZlbnRJbmZvOiBFdmVudEluZm8pIHtcbiAgcmV0dXJuIGV2ZW50SW5mby5ldmVudFR5cGU7XG59XG5cbi8qKiBBZGRlZCBmb3IgcmVhZGFiaWxpdHkgd2hlbiBhY2Nlc3Npbmcgc3RhYmxlIHByb3BlcnR5IG5hbWVzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldEV2ZW50VHlwZShldmVudEluZm86IEV2ZW50SW5mbywgZXZlbnRUeXBlOiBzdHJpbmcpIHtcbiAgZXZlbnRJbmZvLmV2ZW50VHlwZSA9IGV2ZW50VHlwZTtcbn1cblxuLyoqIEFkZGVkIGZvciByZWFkYWJpbGl0eSB3aGVuIGFjY2Vzc2luZyBzdGFibGUgcHJvcGVydHkgbmFtZXMuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXZlbnQoZXZlbnRJbmZvOiBFdmVudEluZm8pIHtcbiAgcmV0dXJuIGV2ZW50SW5mby5ldmVudDtcbn1cblxuLyoqIEFkZGVkIGZvciByZWFkYWJpbGl0eSB3aGVuIGFjY2Vzc2luZyBzdGFibGUgcHJvcGVydHkgbmFtZXMuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0RXZlbnQoZXZlbnRJbmZvOiBFdmVudEluZm8sIGV2ZW50OiBFdmVudCkge1xuICBldmVudEluZm8uZXZlbnQgPSBldmVudDtcbn1cblxuLyoqIEFkZGVkIGZvciByZWFkYWJpbGl0eSB3aGVuIGFjY2Vzc2luZyBzdGFibGUgcHJvcGVydHkgbmFtZXMuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGFyZ2V0RWxlbWVudChldmVudEluZm86IEV2ZW50SW5mbykge1xuICByZXR1cm4gZXZlbnRJbmZvLnRhcmdldEVsZW1lbnQ7XG59XG5cbi8qKiBBZGRlZCBmb3IgcmVhZGFiaWxpdHkgd2hlbiBhY2Nlc3Npbmcgc3RhYmxlIHByb3BlcnR5IG5hbWVzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldFRhcmdldEVsZW1lbnQoZXZlbnRJbmZvOiBFdmVudEluZm8sIHRhcmdldEVsZW1lbnQ6IEVsZW1lbnQpIHtcbiAgZXZlbnRJbmZvLnRhcmdldEVsZW1lbnQgPSB0YXJnZXRFbGVtZW50O1xufVxuXG4vKiogQWRkZWQgZm9yIHJlYWRhYmlsaXR5IHdoZW4gYWNjZXNzaW5nIHN0YWJsZSBwcm9wZXJ0eSBuYW1lcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb250YWluZXIoZXZlbnRJbmZvOiBFdmVudEluZm8pIHtcbiAgcmV0dXJuIGV2ZW50SW5mby5laWM7XG59XG5cbi8qKiBBZGRlZCBmb3IgcmVhZGFiaWxpdHkgd2hlbiBhY2Nlc3Npbmcgc3RhYmxlIHByb3BlcnR5IG5hbWVzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldENvbnRhaW5lcihldmVudEluZm86IEV2ZW50SW5mbywgY29udGFpbmVyOiBFbGVtZW50KSB7XG4gIGV2ZW50SW5mby5laWMgPSBjb250YWluZXI7XG59XG5cbi8qKiBBZGRlZCBmb3IgcmVhZGFiaWxpdHkgd2hlbiBhY2Nlc3Npbmcgc3RhYmxlIHByb3BlcnR5IG5hbWVzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRpbWVzdGFtcChldmVudEluZm86IEV2ZW50SW5mbykge1xuICByZXR1cm4gZXZlbnRJbmZvLnRpbWVTdGFtcDtcbn1cblxuLyoqIEFkZGVkIGZvciByZWFkYWJpbGl0eSB3aGVuIGFjY2Vzc2luZyBzdGFibGUgcHJvcGVydHkgbmFtZXMuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0VGltZXN0YW1wKGV2ZW50SW5mbzogRXZlbnRJbmZvLCB0aW1lc3RhbXA6IG51bWJlcikge1xuICBldmVudEluZm8udGltZVN0YW1wID0gdGltZXN0YW1wO1xufVxuXG4vKiogQWRkZWQgZm9yIHJlYWRhYmlsaXR5IHdoZW4gYWNjZXNzaW5nIHN0YWJsZSBwcm9wZXJ0eSBuYW1lcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBY3Rpb24oZXZlbnRJbmZvOiBFdmVudEluZm8pIHtcbiAgcmV0dXJuIGV2ZW50SW5mby5laWE7XG59XG5cbi8qKiBBZGRlZCBmb3IgcmVhZGFiaWxpdHkgd2hlbiBhY2Nlc3Npbmcgc3RhYmxlIHByb3BlcnR5IG5hbWVzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldEFjdGlvbihldmVudEluZm86IEV2ZW50SW5mbywgYWN0aW9uTmFtZTogc3RyaW5nLCBhY3Rpb25FbGVtZW50OiBFbGVtZW50KSB7XG4gIGV2ZW50SW5mby5laWEgPSBbYWN0aW9uTmFtZSwgYWN0aW9uRWxlbWVudF07XG59XG5cbi8qKiBBZGRlZCBmb3IgcmVhZGFiaWxpdHkgd2hlbiBhY2Nlc3Npbmcgc3RhYmxlIHByb3BlcnR5IG5hbWVzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVuc2V0QWN0aW9uKGV2ZW50SW5mbzogRXZlbnRJbmZvKSB7XG4gIGV2ZW50SW5mby5laWEgPSB1bmRlZmluZWQ7XG59XG5cbi8qKiBBZGRlZCBmb3IgcmVhZGFiaWxpdHkgd2hlbiBhY2Nlc3Npbmcgc3RhYmxlIHByb3BlcnR5IG5hbWVzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFjdGlvbk5hbWUoYWN0aW9uSW5mbzogQWN0aW9uSW5mb0ludGVybmFsKSB7XG4gIHJldHVybiBhY3Rpb25JbmZvWzBdO1xufVxuXG4vKiogQWRkZWQgZm9yIHJlYWRhYmlsaXR5IHdoZW4gYWNjZXNzaW5nIHN0YWJsZSBwcm9wZXJ0eSBuYW1lcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBY3Rpb25FbGVtZW50KGFjdGlvbkluZm86IEFjdGlvbkluZm9JbnRlcm5hbCkge1xuICByZXR1cm4gYWN0aW9uSW5mb1sxXTtcbn1cblxuLyoqIEFkZGVkIGZvciByZWFkYWJpbGl0eSB3aGVuIGFjY2Vzc2luZyBzdGFibGUgcHJvcGVydHkgbmFtZXMuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SXNSZXBsYXkoZXZlbnRJbmZvOiBFdmVudEluZm8pIHtcbiAgcmV0dXJuIGV2ZW50SW5mby5laXJwO1xufVxuXG4vKiogQWRkZWQgZm9yIHJlYWRhYmlsaXR5IHdoZW4gYWNjZXNzaW5nIHN0YWJsZSBwcm9wZXJ0eSBuYW1lcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRJc1JlcGxheShldmVudEluZm86IEV2ZW50SW5mbywgcmVwbGF5OiBib29sZWFuKSB7XG4gIGV2ZW50SW5mby5laXJwID0gcmVwbGF5O1xufVxuXG4vKiogQWRkZWQgZm9yIHJlYWRhYmlsaXR5IHdoZW4gYWNjZXNzaW5nIHN0YWJsZSBwcm9wZXJ0eSBuYW1lcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBMTF5Q2xpY2tLZXkoZXZlbnRJbmZvOiBFdmVudEluZm8pIHtcbiAgcmV0dXJuIGV2ZW50SW5mby5laWFjaztcbn1cblxuLyoqIEFkZGVkIGZvciByZWFkYWJpbGl0eSB3aGVuIGFjY2Vzc2luZyBzdGFibGUgcHJvcGVydHkgbmFtZXMuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0QTExeUNsaWNrS2V5KGV2ZW50SW5mbzogRXZlbnRJbmZvLCBhMTF5Q2xpY2tLZXk6IGJvb2xlYW4pIHtcbiAgZXZlbnRJbmZvLmVpYWNrID0gYTExeUNsaWNrS2V5O1xufVxuXG4vKiogQWRkZWQgZm9yIHJlYWRhYmlsaXR5IHdoZW4gYWNjZXNzaW5nIHN0YWJsZSBwcm9wZXJ0eSBuYW1lcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvbHZlZChldmVudEluZm86IEV2ZW50SW5mbykge1xuICByZXR1cm4gZXZlbnRJbmZvLmVpcjtcbn1cblxuLyoqIEFkZGVkIGZvciByZWFkYWJpbGl0eSB3aGVuIGFjY2Vzc2luZyBzdGFibGUgcHJvcGVydHkgbmFtZXMuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0UmVzb2x2ZWQoZXZlbnRJbmZvOiBFdmVudEluZm8sIHJlc29sdmVkOiBib29sZWFuKSB7XG4gIGV2ZW50SW5mby5laXIgPSByZXNvbHZlZDtcbn1cblxuLyoqIENsb25lcyBhbiBgRXZlbnRJbmZvYCAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsb25lRXZlbnRJbmZvKGV2ZW50SW5mbzogRXZlbnRJbmZvKTogRXZlbnRJbmZvIHtcbiAgcmV0dXJuIHtcbiAgICBldmVudFR5cGU6IGV2ZW50SW5mby5ldmVudFR5cGUsXG4gICAgZXZlbnQ6IGV2ZW50SW5mby5ldmVudCxcbiAgICB0YXJnZXRFbGVtZW50OiBldmVudEluZm8udGFyZ2V0RWxlbWVudCxcbiAgICBlaWM6IGV2ZW50SW5mby5laWMsXG4gICAgZWlhOiBldmVudEluZm8uZWlhLFxuICAgIHRpbWVTdGFtcDogZXZlbnRJbmZvLnRpbWVTdGFtcCxcbiAgICBlaXJwOiBldmVudEluZm8uZWlycCxcbiAgICBlaWFjazogZXZlbnRJbmZvLmVpYWNrLFxuICAgIGVpcjogZXZlbnRJbmZvLmVpcixcbiAgfTtcbn1cblxuLyoqXG4gKiBVdGlsaXR5IGZ1bmN0aW9uIGZvciBjcmVhdGluZyBhbiBgRXZlbnRJbmZvYC5cbiAqXG4gKiBUaGlzIGNhbiBiZSB1c2VkIGZyb20gY29kZS1zaXplIHNlbnNpdGl2ZSBjb21waWxhdGlvbiB1bml0cywgYXMgdGFraW5nXG4gKiBwYXJhbWV0ZXJzIHZzLiBhbiBgT2JqZWN0YCBsaXRlcmFsIHJlZHVjZXMgY29kZSBzaXplLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRXZlbnRJbmZvRnJvbVBhcmFtZXRlcnMoXG4gIGV2ZW50VHlwZTogc3RyaW5nLFxuICBldmVudDogRXZlbnQsXG4gIHRhcmdldEVsZW1lbnQ6IEVsZW1lbnQsXG4gIGNvbnRhaW5lcjogRWxlbWVudCxcbiAgdGltZXN0YW1wOiBudW1iZXIsXG4gIGFjdGlvbj86IEFjdGlvbkluZm9JbnRlcm5hbCxcbiAgaXNSZXBsYXk/OiBib29sZWFuLFxuICBhMTF5Q2xpY2tLZXk/OiBib29sZWFuLFxuKTogRXZlbnRJbmZvIHtcbiAgcmV0dXJuIHtcbiAgICBldmVudFR5cGUsXG4gICAgZXZlbnQsXG4gICAgdGFyZ2V0RWxlbWVudCxcbiAgICBlaWM6IGNvbnRhaW5lcixcbiAgICB0aW1lU3RhbXA6IHRpbWVzdGFtcCxcbiAgICBlaWE6IGFjdGlvbixcbiAgICBlaXJwOiBpc1JlcGxheSxcbiAgICBlaWFjazogYTExeUNsaWNrS2V5LFxuICB9O1xufVxuXG4vKipcbiAqIFV0aWxpdHkgZnVuY3Rpb24gZm9yIGNyZWF0aW5nIGFuIGBFdmVudEluZm9gLlxuICpcbiAqIFRoaXMgc2hvdWxkIGJlIHVzZWQgaW4gY29tcGlsYXRpb24gdW5pdHMgdGhhdCBhcmUgbGVzcyBzZW5zaXRpdmUgdG8gY29kZVxuICogc2l6ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUV2ZW50SW5mbyh7XG4gIGV2ZW50VHlwZSxcbiAgZXZlbnQsXG4gIHRhcmdldEVsZW1lbnQsXG4gIGNvbnRhaW5lcixcbiAgdGltZXN0YW1wLFxuICBhY3Rpb24sXG4gIGlzUmVwbGF5LFxuICBhMTF5Q2xpY2tLZXksXG59OiB7XG4gIGV2ZW50VHlwZTogc3RyaW5nO1xuICBldmVudDogRXZlbnQ7XG4gIHRhcmdldEVsZW1lbnQ6IEVsZW1lbnQ7XG4gIGNvbnRhaW5lcjogRWxlbWVudDtcbiAgdGltZXN0YW1wOiBudW1iZXI7XG4gIGFjdGlvbj86IEFjdGlvbkluZm87XG4gIGlzUmVwbGF5PzogYm9vbGVhbjtcbiAgYTExeUNsaWNrS2V5PzogYm9vbGVhbjtcbn0pOiBFdmVudEluZm8ge1xuICByZXR1cm4ge1xuICAgIGV2ZW50VHlwZSxcbiAgICBldmVudCxcbiAgICB0YXJnZXRFbGVtZW50LFxuICAgIGVpYzogY29udGFpbmVyLFxuICAgIHRpbWVTdGFtcDogdGltZXN0YW1wLFxuICAgIGVpYTogYWN0aW9uID8gW2FjdGlvbi5uYW1lLCBhY3Rpb24uZWxlbWVudF0gOiB1bmRlZmluZWQsXG4gICAgZWlycDogaXNSZXBsYXksXG4gICAgZWlhY2s6IGExMXlDbGlja0tleSxcbiAgfTtcbn1cblxuLyoqXG4gKiBVdGlsaXR5IGNsYXNzIGFyb3VuZCBhbiBgRXZlbnRJbmZvYC5cbiAqXG4gKiBUaGlzIHNob3VsZCBiZSB1c2VkIGluIGNvbXBpbGF0aW9uIHVuaXRzIHRoYXQgYXJlIGxlc3Mgc2Vuc2l0aXZlIHRvIGNvZGVcbiAqIHNpemUuXG4gKi9cbmV4cG9ydCBjbGFzcyBFdmVudEluZm9XcmFwcGVyIHtcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgZXZlbnRJbmZvOiBFdmVudEluZm8pIHt9XG5cbiAgZ2V0RXZlbnRUeXBlKCkge1xuICAgIHJldHVybiBnZXRFdmVudFR5cGUodGhpcy5ldmVudEluZm8pO1xuICB9XG5cbiAgc2V0RXZlbnRUeXBlKGV2ZW50VHlwZTogc3RyaW5nKSB7XG4gICAgc2V0RXZlbnRUeXBlKHRoaXMuZXZlbnRJbmZvLCBldmVudFR5cGUpO1xuICB9XG5cbiAgZ2V0RXZlbnQoKSB7XG4gICAgcmV0dXJuIGdldEV2ZW50KHRoaXMuZXZlbnRJbmZvKTtcbiAgfVxuXG4gIHNldEV2ZW50KGV2ZW50OiBFdmVudCkge1xuICAgIHNldEV2ZW50KHRoaXMuZXZlbnRJbmZvLCBldmVudCk7XG4gIH1cblxuICBnZXRUYXJnZXRFbGVtZW50KCkge1xuICAgIHJldHVybiBnZXRUYXJnZXRFbGVtZW50KHRoaXMuZXZlbnRJbmZvKTtcbiAgfVxuXG4gIHNldFRhcmdldEVsZW1lbnQodGFyZ2V0RWxlbWVudDogRWxlbWVudCkge1xuICAgIHNldFRhcmdldEVsZW1lbnQodGhpcy5ldmVudEluZm8sIHRhcmdldEVsZW1lbnQpO1xuICB9XG5cbiAgZ2V0Q29udGFpbmVyKCkge1xuICAgIHJldHVybiBnZXRDb250YWluZXIodGhpcy5ldmVudEluZm8pO1xuICB9XG5cbiAgc2V0Q29udGFpbmVyKGNvbnRhaW5lcjogRWxlbWVudCkge1xuICAgIHNldENvbnRhaW5lcih0aGlzLmV2ZW50SW5mbywgY29udGFpbmVyKTtcbiAgfVxuICBnZXRUaW1lc3RhbXAoKSB7XG4gICAgcmV0dXJuIGdldFRpbWVzdGFtcCh0aGlzLmV2ZW50SW5mbyk7XG4gIH1cblxuICBzZXRUaW1lc3RhbXAodGltZXN0YW1wOiBudW1iZXIpIHtcbiAgICBzZXRUaW1lc3RhbXAodGhpcy5ldmVudEluZm8sIHRpbWVzdGFtcCk7XG4gIH1cblxuICBnZXRBY3Rpb24oKSB7XG4gICAgY29uc3QgYWN0aW9uID0gZ2V0QWN0aW9uKHRoaXMuZXZlbnRJbmZvKTtcbiAgICBpZiAoIWFjdGlvbikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogYWN0aW9uWzBdLFxuICAgICAgZWxlbWVudDogYWN0aW9uWzFdLFxuICAgIH07XG4gIH1cblxuICBzZXRBY3Rpb24oYWN0aW9uOiBBY3Rpb25JbmZvIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKCFhY3Rpb24pIHtcbiAgICAgIHVuc2V0QWN0aW9uKHRoaXMuZXZlbnRJbmZvKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc2V0QWN0aW9uKHRoaXMuZXZlbnRJbmZvLCBhY3Rpb24ubmFtZSwgYWN0aW9uLmVsZW1lbnQpO1xuICB9XG5cbiAgZ2V0SXNSZXBsYXkoKSB7XG4gICAgcmV0dXJuIGdldElzUmVwbGF5KHRoaXMuZXZlbnRJbmZvKTtcbiAgfVxuXG4gIHNldElzUmVwbGF5KHJlcGxheTogYm9vbGVhbikge1xuICAgIHNldElzUmVwbGF5KHRoaXMuZXZlbnRJbmZvLCByZXBsYXkpO1xuICB9XG5cbiAgZ2V0UmVzb2x2ZWQoKSB7XG4gICAgcmV0dXJuIGdldFJlc29sdmVkKHRoaXMuZXZlbnRJbmZvKTtcbiAgfVxuXG4gIHNldFJlc29sdmVkKHJlc29sdmVkOiBib29sZWFuKSB7XG4gICAgc2V0UmVzb2x2ZWQodGhpcy5ldmVudEluZm8sIHJlc29sdmVkKTtcbiAgfVxuXG4gIGNsb25lKCkge1xuICAgIHJldHVybiBuZXcgRXZlbnRJbmZvV3JhcHBlcihjbG9uZUV2ZW50SW5mbyh0aGlzLmV2ZW50SW5mbykpO1xuICB9XG59XG4iXX0=
|
|
@@ -14,11 +14,6 @@
|
|
|
14
14
|
* property lookup is faster than attribute access.
|
|
15
15
|
*/
|
|
16
16
|
export const JSACTION = '__jsaction';
|
|
17
|
-
/**
|
|
18
|
-
* The parsed value of the jsnamespace attribute is stored in this
|
|
19
|
-
* property on the DOM node.
|
|
20
|
-
*/
|
|
21
|
-
export const JSNAMESPACE = '__jsnamespace';
|
|
22
17
|
/** The value of the oi attribute as a property, for faster access. */
|
|
23
18
|
export const OI = '__oi';
|
|
24
19
|
/**
|
|
@@ -31,8 +26,7 @@ export const OWNER = '__owner';
|
|
|
31
26
|
/** All properties that are used by jsaction. */
|
|
32
27
|
export const Property = {
|
|
33
28
|
JSACTION,
|
|
34
|
-
JSNAMESPACE,
|
|
35
29
|
OI,
|
|
36
30
|
OWNER,
|
|
37
31
|
};
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3ByaW1pdGl2ZXMvZXZlbnQtZGlzcGF0Y2gvc3JjL3Byb3BlcnR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVIOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDO0FBRXJDLHNFQUFzRTtBQUN0RSxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDO0FBRXpCOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQztBQUUvQixnREFBZ0Q7QUFDaEQsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHO0lBQ3RCLFFBQVE7SUFDUixFQUFFO0lBQ0YsS0FBSztDQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBUaGUgcGFyc2VkIHZhbHVlIG9mIHRoZSBqc2FjdGlvbiBhdHRyaWJ1dGUgaXMgc3RvcmVkIGluIHRoaXNcbiAqIHByb3BlcnR5IG9uIHRoZSBET00gbm9kZS4gVGhlIHBhcnNlZCB2YWx1ZSBpcyBhbiBPYmplY3QuIFRoZVxuICogcHJvcGVydHkgbmFtZXMgb2YgdGhlIG9iamVjdCBhcmUgdGhlIGV2ZW50czsgdGhlIHZhbHVlcyBhcmUgdGhlXG4gKiBuYW1lcyBvZiB0aGUgYWN0aW9ucy4gVGhpcyBwcm9wZXJ0eSBpcyBhdHRhY2hlZCBldmVuIG9uIG5vZGVzXG4gKiB0aGF0IGRvbid0IGhhdmUgYSBqc2FjdGlvbiBhdHRyaWJ1dGUgYXMgYW4gb3B0aW1pemF0aW9uLCBiZWNhdXNlXG4gKiBwcm9wZXJ0eSBsb29rdXAgaXMgZmFzdGVyIHRoYW4gYXR0cmlidXRlIGFjY2Vzcy5cbiAqL1xuZXhwb3J0IGNvbnN0IEpTQUNUSU9OID0gJ19fanNhY3Rpb24nO1xuXG4vKiogVGhlIHZhbHVlIG9mIHRoZSBvaSBhdHRyaWJ1dGUgYXMgYSBwcm9wZXJ0eSwgZm9yIGZhc3RlciBhY2Nlc3MuICovXG5leHBvcnQgY29uc3QgT0kgPSAnX19vaSc7XG5cbi8qKlxuICogVGhlIG93bmVyIHByb3BlcnR5IHJlZmVyZW5jZXMgYW4gYSBsb2dpY2FsIG93bmVyIGZvciBhIERPTSBub2RlLiBKU0FjdGlvblxuICogd2lsbCBmb2xsb3cgdGhpcyByZWZlcmVuY2UgaW5zdGVhZCBvZiBwYXJlbnROb2RlIHdoZW4gdHJhdmVyc2luZyB0aGUgRE9NXG4gKiB0byBmaW5kIGpzYWN0aW9uIGF0dHJpYnV0ZXMuIFRoaXMgYWxsb3dzIG92ZXJsYXlpbmcgYSBsb2dpY2FsIHN0cnVjdHVyZVxuICogb3ZlciBhIGRvY3VtZW50IHdoZXJlIHRoZSBET00gc3RydWN0dXJlIGNhbid0IHJlZmxlY3QgdGhhdCBzdHJ1Y3R1cmUuXG4gKi9cbmV4cG9ydCBjb25zdCBPV05FUiA9ICdfX293bmVyJztcblxuLyoqIEFsbCBwcm9wZXJ0aWVzIHRoYXQgYXJlIHVzZWQgYnkganNhY3Rpb24uICovXG5leHBvcnQgY29uc3QgUHJvcGVydHkgPSB7XG4gIEpTQUNUSU9OLFxuICBPSSxcbiAgT1dORVIsXG59O1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBOb2RlIHtcbiAgICBbSlNBQ1RJT05dPzogc3RyaW5nO1xuICAgIFtPSV0/OiBzdHJpbmc7XG4gICAgW09XTkVSXT86IFBhcmVudE5vZGU7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -21,9 +21,9 @@ import { ZONELESS_ENABLED } from './zoneless_scheduling';
|
|
|
21
21
|
*
|
|
22
22
|
* @param options Used to configure when the check will execute.
|
|
23
23
|
* - `interval` will periodically run exhaustive `checkNoChanges` on application views
|
|
24
|
-
* - `useNgZoneOnStable` will
|
|
24
|
+
* - `useNgZoneOnStable` will use ZoneJS to determine when change detection might have run
|
|
25
25
|
* in an application using ZoneJS to drive change detection. When the `NgZone.onStable` would
|
|
26
|
-
* have
|
|
26
|
+
* have emitted, all views attached to the `ApplicationRef` are checked for changes.
|
|
27
27
|
* - 'exhaustive' means that all views attached to `ApplicationRef` and all the descendants of those views will be
|
|
28
28
|
* checked for changes (excluding those subtrees which are detached via `ChangeDetectorRef.detach()`).
|
|
29
29
|
* This is useful because the check that runs after regular change detection does not work for components using `ChangeDetectionStrategy.OnPush`.
|
|
@@ -57,7 +57,7 @@ export function provideExperimentalCheckNoChangesForDebug(options) {
|
|
|
57
57
|
useValue: () => {
|
|
58
58
|
if (options?.useNgZoneOnStable &&
|
|
59
59
|
!(inject(NgZone) instanceof DebugNgZoneForCheckNoChanges)) {
|
|
60
|
-
throw new Error('`
|
|
60
|
+
throw new Error('`provideExperimentalCheckNoChangesForDebug` with `useNgZoneOnStable` must be after any other provider for `NgZone`.');
|
|
61
61
|
}
|
|
62
62
|
},
|
|
63
63
|
},
|
|
@@ -70,7 +70,7 @@ export function provideExperimentalCheckNoChangesForDebug(options) {
|
|
|
70
70
|
export class DebugNgZoneForCheckNoChanges extends NgZone {
|
|
71
71
|
constructor(checkNoChangesMode) {
|
|
72
72
|
const zonelessEnabled = inject(ZONELESS_ENABLED);
|
|
73
|
-
// Use
|
|
73
|
+
// Use coalescing to ensure we aren't ever running this check synchronously
|
|
74
74
|
super({
|
|
75
75
|
shouldCoalesceEventChangeDetection: true,
|
|
76
76
|
shouldCoalesceRunChangeDetection: zonelessEnabled,
|
|
@@ -147,4 +147,4 @@ function exhaustiveCheckNoChangesInterval(interval, checkNoChangesMode) {
|
|
|
147
147
|
},
|
|
148
148
|
};
|
|
149
149
|
}
|
|
150
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhoYXVzdGl2ZV9jaGVja19ub19jaGFuZ2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvY2hhbmdlX2RldGVjdGlvbi9zY2hlZHVsaW5nL2V4aGF1c3RpdmVfY2hlY2tfbm9fY2hhbmdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDakUsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDeEUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUUxQyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDbkYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFdkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFDSCxNQUFNLFVBQVUseUNBQXlDLENBQUMsT0FJekQ7SUFDQyxJQUFJLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUNsRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssU0FBUyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDakUs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RUQsS0FBSyxNQUFNLElBQUksSUFBSSxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7Z0NBQzNDLElBQUksQ0FBQztvQ0FDSCxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2dDQUNuRixDQUFDO2dDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7b0NBQ1gsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQ0FDOUIsQ0FBQzs0QkFDSCxDQUFDOzRCQUVELHNCQUFzQixFQUFFLENBQUM7d0JBQzNCLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztvQkFDZixDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUNELHNCQUFzQixFQUFFLENBQUM7WUFDM0IsQ0FBQyxDQUFDO1FBQ0osQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7QXBwbGljYXRpb25SZWZ9IGZyb20gJy4uLy4uL2FwcGxpY2F0aW9uL2FwcGxpY2F0aW9uX3JlZic7XG5pbXBvcnQge0NoYW5nZURldGVjdGlvblNjaGVkdWxlckltcGx9IGZyb20gJy4vem9uZWxlc3Nfc2NoZWR1bGluZ19pbXBsJztcbmltcG9ydCB7aW5qZWN0fSBmcm9tICcuLi8uLi9kaS9pbmplY3Rvcl9jb21wYXRpYmlsaXR5JztcbmltcG9ydCB7bWFrZUVudmlyb25tZW50UHJvdmlkZXJzfSBmcm9tICcuLi8uLi9kaS9wcm92aWRlcl9jb2xsZWN0aW9uJztcbmltcG9ydCB7Tmdab25lfSBmcm9tICcuLi8uLi96b25lL25nX3pvbmUnO1xuXG5pbXBvcnQge0Vudmlyb25tZW50SW5qZWN0b3J9IGZyb20gJy4uLy4uL2RpL3IzX2luamVjdG9yJztcbmltcG9ydCB7RU5WSVJPTk1FTlRfSU5JVElBTElaRVJ9IGZyb20gJy4uLy4uL2RpL2luaXRpYWxpemVyX3Rva2VuJztcbmltcG9ydCB7Q2hlY2tOb0NoYW5nZXNNb2RlfSBmcm9tICcuLi8uLi9yZW5kZXIzL3N0YXRlJztcbmltcG9ydCB7RXJyb3JIYW5kbGVyfSBmcm9tICcuLi8uLi9lcnJvcl9oYW5kbGVyJztcbmltcG9ydCB7Y2hlY2tOb0NoYW5nZXNJbnRlcm5hbH0gZnJvbSAnLi4vLi4vcmVuZGVyMy9pbnN0cnVjdGlvbnMvY2hhbmdlX2RldGVjdGlvbic7XG5pbXBvcnQge1pPTkVMRVNTX0VOQUJMRUR9IGZyb20gJy4vem9uZWxlc3Nfc2NoZWR1bGluZyc7XG5cbi8qKlxuICogVXNlZCB0byBwZXJpb2RpY2FsbHkgdmVyaWZ5IG5vIGV4cHJlc3Npb25zIGhhdmUgY2hhbmdlZCBhZnRlciB0aGV5IHdlcmUgY2hlY2tlZC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyBVc2VkIHRvIGNvbmZpZ3VyZSB3aGVuIHRoZSBjaGVjayB3aWxsIGV4ZWN1dGUuXG4gKiAgIC0gYGludGVydmFsYCB3aWxsIHBlcmlvZGljYWxseSBydW4gZXhoYXVzdGl2ZSBgY2hlY2tOb0NoYW5nZXNgIG9uIGFwcGxpY2F0aW9uIHZpZXdzXG4gKiAgIC0gYHVzZU5nWm9uZU9uU3RhYmxlYCB3aWxsIHVzIFpvbmVKUyB0byBkZXRlcm1pbmUgd2hlbiBjaGFuZ2UgZGV0ZWN0aW9uIG1pZ2h0IGhhdmUgcnVuXG4gKiAgICAgIGluIGFuIGFwcGxpY2F0aW9uIHVzaW5nIFpvbmVKUyB0byBkcml2ZSBjaGFuZ2UgZGV0ZWN0aW9uLiBXaGVuIHRoZSBgTmdab25lLm9uU3RhYmxlYCB3b3VsZFxuICogICAgICBoYXZlIGVtaXQsIGFsbCB2aWV3cyBhdHRhY2hlZCB0byB0aGUgYEFwcGxpY2F0aW9uUmVmYCBhcmUgY2hlY2tlZCBmb3IgY2hhbmdlcy5cbiAqICAgLSAnZXhoYXVzdGl2ZScgbWVhbnMgdGhhdCBhbGwgdmlld3MgYXR0YWNoZWQgdG8gYEFwcGxpY2F0aW9uUmVmYCBhbmQgYWxsIHRoZSBkZXNjZW5kYW50cyBvZiB0aG9zZSB2aWV3cyB3aWxsIGJlXG4gKiAgICAgY2hlY2tlZCBmb3IgY2hhbmdlcyAoZXhjbHVkaW5nIHRob3NlIHN1YnRyZWVzIHdoaWNoIGFyZSBkZXRhY2hlZCB2aWEgYENoYW5nZURldGVjdG9yUmVmLmRldGFjaCgpYCkuXG4gKiAgICAgVGhpcyBpcyB1c2VmdWwgYmVjYXVzZSB0aGUgY2hlY2sgdGhhdCBydW5zIGFmdGVyIHJlZ3VsYXIgY2hhbmdlIGRldGVjdGlvbiBkb2VzIG5vdCB3b3JrIGZvciBjb21wb25lbnRzIHVzaW5nIGBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hgLlxuICogICAgIFRoaXMgY2hlY2sgaXMgd2lsbCBzdXJmYWNlIGFueSBleGlzdGluZyBlcnJvcnMgaGlkZGVuIGJ5IGBPblB1c2hgIGNvbXBvbmVudHMuIEJ5IGRlZmF1bHQsIHRoaXMgY2hlY2sgaXMgZXhoYXVzdGl2ZVxuICogICAgIGFuZCB3aWxsIGFsd2F5cyBjaGVjayBhbGwgdmlld3MsIHJlZ2FyZGxlc3Mgb2YgdGhlaXIgXCJkaXJ0eVwiIHN0YXRlIGFuZCBgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3lgLlxuICpcbiAqIFdoZW4gdGhlIGB1c2VOZ1pvbmVPblN0YWJsZWAgb3B0aW9uIGlzIGB0cnVlYCwgdGhpcyBmdW5jdGlvbiB3aWxsIHByb3ZpZGUgaXRzIG93biBgTmdab25lYCBpbXBsZW1lbnRhdGlvbiBhbmQgbmVlZHNcbiAqIHRvIGNvbWUgYWZ0ZXIgYW55IG90aGVyIGBOZ1pvbmVgIHByb3ZpZGVyLCBpbmNsdWRpbmcgYHByb3ZpZGVab25lQ2hhbmdlRGV0ZWN0aW9uKClgIGFuZCBgcHJvdmlkZUV4cGVyaW1lbnRhbFpvbmVsZXNzQ2hhbmdlRGV0ZWN0aW9uKClgLlxuICpcbiAqIEBleHBlcmltZW50YWxcbiAqIEBwdWJsaWNBcGlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVFeHBlcmltZW50YWxDaGVja05vQ2hhbmdlc0ZvckRlYnVnKG9wdGlvbnM6IHtcbiAgaW50ZXJ2YWw/OiBudW1iZXI7XG4gIHVzZU5nWm9uZU9uU3RhYmxlPzogYm9vbGVhbjtcbiAgZXhoYXVzdGl2ZT86IGJvb2xlYW47XG59KSB7XG4gIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcbiAgICBpZiAob3B0aW9ucy5pbnRlcnZhbCA9PT0gdW5kZWZpbmVkICYmICFvcHRpb25zLnVzZU5nWm9uZU9uU3RhYmxlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ011c3QgcHJvdmlkZSBvbmUgb2YgYHVzZU5nWm9uZU9uU3RhYmxlYCBvciBgaW50ZXJ2YWxgJyk7XG4gICAgfVxuICAgIGNvbnN0IGNoZWNrTm9DaGFuZ2VzTW9kZSA9XG4gICAgICBvcHRpb25zPy5leGhhdXN0aXZlID09PSBmYWxzZVxuICAgICAgICA/IENoZWNrTm9DaGFuZ2VzTW9kZS5Pbmx5RGlydHlWaWV3c1xuICAgICAgICA6IENoZWNrTm9DaGFuZ2VzTW9kZS5FeGhhdXN0aXZlO1xuICAgIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgICAgb3B0aW9ucz8udXNlTmdab25lT25TdGFibGVcbiAgICAgICAgPyB7cHJvdmlkZTogTmdab25lLCB1c2VGYWN0b3J5OiAoKSA9PiBuZXcgRGVidWdOZ1pvbmVGb3JDaGVja05vQ2hhbmdlcyhjaGVja05vQ2hhbmdlc01vZGUpfVxuICAgICAgICA6IFtdLFxuICAgICAgb3B0aW9ucz8uaW50ZXJ2YWwgIT09IHVuZGVmaW5lZFxuICAgICAgICA/IGV4aGF1c3RpdmVDaGVja05vQ2hhbmdlc0ludGVydmFsKG9wdGlvbnMuaW50ZXJ2YWwsIGNoZWNrTm9DaGFuZ2VzTW9kZSlcbiAgICAgICAgOiBbXSxcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZTogRU5WSVJPTk1FTlRfSU5JVElBTElaRVIsXG4gICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB1c2VWYWx1ZTogKCkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIG9wdGlvbnM/LnVzZU5nWm9uZU9uU3RhYmxlICYmXG4gICAgICAgICAgICAhKGluamVjdChOZ1pvbmUpIGluc3RhbmNlb2YgRGVidWdOZ1pvbmVGb3JDaGVja05vQ2hhbmdlcylcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgJ2Bwcm92aWRlQ2hlY2tOb0NoYW5nZXNGb3JEZWJ1Z2Agd2l0aCBgdXNlTmdab25lT25TdGFibGVgIG11c3QgYmUgYWZ0ZXIgYW55IG90aGVyIHByb3ZpZGVyIGZvciBgTmdab25lYC4nLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF0pO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW10pO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEZWJ1Z05nWm9uZUZvckNoZWNrTm9DaGFuZ2VzIGV4dGVuZHMgTmdab25lIHtcbiAgcHJpdmF0ZSBhcHBsaWNhdGlvblJlZj86IEFwcGxpY2F0aW9uUmVmO1xuICBwcml2YXRlIHNjaGVkdWxlcj86IENoYW5nZURldGVjdGlvblNjaGVkdWxlckltcGw7XG4gIHByaXZhdGUgZXJyb3JIYW5kbGVyPzogRXJyb3JIYW5kbGVyO1xuICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY2hlY2tOb0NoYW5nZXNNb2RlOiBDaGVja05vQ2hhbmdlc01vZGUpIHtcbiAgICBjb25zdCB6b25lbGVzc0VuYWJsZWQgPSBpbmplY3QoWk9ORUxFU1NfRU5BQkxFRCk7XG4gICAgLy8gVXNlIGNvYWxzZWNpbmcgdG8gZW5zdXJlIHdlIGFyZW4ndCBldmVyIHJ1bm5pbmcgdGhpcyBjaGVjayBzeW5jaHJvbm91c2x5XG4gICAgc3VwZXIoe1xuICAgICAgc2hvdWxkQ29hbGVzY2VFdmVudENoYW5nZURldGVjdGlvbjogdHJ1ZSxcbiAgICAgIHNob3VsZENvYWxlc2NlUnVuQ2hhbmdlRGV0ZWN0aW9uOiB6b25lbGVzc0VuYWJsZWQsXG4gICAgfSk7XG5cbiAgICBpZiAoem9uZWxlc3NFbmFibGVkKSB7XG4gICAgICAvLyBwcmV2ZW50IGVtaXRzIHRvIGVuc3VyZSBjb2RlIGRvZXNuJ3QgcmVseSBvbiB0aGVzZVxuICAgICAgdGhpcy5vbk1pY3JvdGFza0VtcHR5LmVtaXQgPSAoKSA9PiB7fTtcbiAgICAgIHRoaXMub25TdGFibGUuZW1pdCA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5zY2hlZHVsZXIgfHw9IHRoaXMuaW5qZWN0b3IuZ2V0KENoYW5nZURldGVjdGlvblNjaGVkdWxlckltcGwpO1xuICAgICAgICBpZiAodGhpcy5zY2hlZHVsZXIucGVuZGluZ1JlbmRlclRhc2tJZCB8fCB0aGlzLnNjaGVkdWxlci5ydW5uaW5nVGljaykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNoZWNrQXBwbGljYXRpb25WaWV3cygpO1xuICAgICAgfTtcbiAgICAgIHRoaXMub25VbnN0YWJsZS5lbWl0ID0gKCkgPT4ge307XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICB0aGlzLm9uU3RhYmxlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jaGVja0FwcGxpY2F0aW9uVmlld3MoKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoZWNrQXBwbGljYXRpb25WaWV3cygpIHtcbiAgICB0aGlzLmFwcGxpY2F0aW9uUmVmIHx8PSB0aGlzLmluamVjdG9yLmdldChBcHBsaWNhdGlvblJlZik7XG4gICAgZm9yIChjb25zdCB2aWV3IG9mIHRoaXMuYXBwbGljYXRpb25SZWYuYWxsVmlld3MpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNoZWNrTm9DaGFuZ2VzSW50ZXJuYWwodmlldy5fbFZpZXcsIHRoaXMuY2hlY2tOb0NoYW5nZXNNb2RlLCB2aWV3Lm5vdGlmeUVycm9ySGFuZGxlcik7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRoaXMuZXJyb3JIYW5kbGVyIHx8PSB0aGlzLmluamVjdG9yLmdldChFcnJvckhhbmRsZXIpO1xuICAgICAgICB0aGlzLmVycm9ySGFuZGxlci5oYW5kbGVFcnJvcihlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZXhoYXVzdGl2ZUNoZWNrTm9DaGFuZ2VzSW50ZXJ2YWwoXG4gIGludGVydmFsOiBudW1iZXIsXG4gIGNoZWNrTm9DaGFuZ2VzTW9kZTogQ2hlY2tOb0NoYW5nZXNNb2RlLFxuKSB7XG4gIHJldHVybiB7XG4gICAgcHJvdmlkZTogRU5WSVJPTk1FTlRfSU5JVElBTElaRVIsXG4gICAgbXVsdGk6IHRydWUsXG4gICAgdXNlRmFjdG9yeTogKCkgPT4ge1xuICAgICAgY29uc3QgYXBwbGljYXRpb25SZWYgPSBpbmplY3QoQXBwbGljYXRpb25SZWYpO1xuICAgICAgY29uc3QgZXJyb3JIYW5kbGVyID0gaW5qZWN0KEVycm9ySGFuZGxlcik7XG4gICAgICBjb25zdCBzY2hlZHVsZXIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0aW9uU2NoZWR1bGVySW1wbCk7XG4gICAgICBjb25zdCBuZ1pvbmUgPSBpbmplY3QoTmdab25lKTtcblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgZnVuY3Rpb24gc2NoZWR1bGVDaGVja05vQ2hhbmdlcygpIHtcbiAgICAgICAgICBuZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChhcHBsaWNhdGlvblJlZi5kZXN0cm95ZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKHNjaGVkdWxlci5wZW5kaW5nUmVuZGVyVGFza0lkIHx8IHNjaGVkdWxlci5ydW5uaW5nVGljaykge1xuICAgICAgICAgICAgICAgIHNjaGVkdWxlQ2hlY2tOb0NoYW5nZXMoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBmb3IgKGNvbnN0IHZpZXcgb2YgYXBwbGljYXRpb25SZWYuYWxsVmlld3MpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgY2hlY2tOb0NoYW5nZXNJbnRlcm5hbCh2aWV3Ll9sVmlldywgY2hlY2tOb0NoYW5nZXNNb2RlLCB2aWV3Lm5vdGlmeUVycm9ySGFuZGxlcik7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgZXJyb3JIYW5kbGVyLmhhbmRsZUVycm9yKGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHNjaGVkdWxlQ2hlY2tOb0NoYW5nZXMoKTtcbiAgICAgICAgICAgIH0sIGludGVydmFsKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBzY2hlZHVsZUNoZWNrTm9DaGFuZ2VzKCk7XG4gICAgICB9O1xuICAgIH0sXG4gIH07XG59XG4iXX0=
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhoYXVzdGl2ZV9jaGVja19ub19jaGFuZ2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvY2hhbmdlX2RldGVjdGlvbi9zY2hlZHVsaW5nL2V4aGF1c3RpdmVfY2hlY2tfbm9fY2hhbmdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDakUsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDeEUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUUxQyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDbkYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFdkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFDSCxNQUFNLFVBQVUseUNBQXlDLENBQUMsT0FJekQ7SUFDQyxJQUFJLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUNsRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssU0FBUyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDakUs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RUQsS0FBSyxNQUFNLElBQUksSUFBSSxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7Z0NBQzNDLElBQUksQ0FBQztvQ0FDSCxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2dDQUNuRixDQUFDO2dDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7b0NBQ1gsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQ0FDOUIsQ0FBQzs0QkFDSCxDQUFDOzRCQUVELHNCQUFzQixFQUFFLENBQUM7d0JBQzNCLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztvQkFDZixDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUNELHNCQUFzQixFQUFFLENBQUM7WUFDM0IsQ0FBQyxDQUFDO1FBQ0osQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7QXBwbGljYXRpb25SZWZ9IGZyb20gJy4uLy4uL2FwcGxpY2F0aW9uL2FwcGxpY2F0aW9uX3JlZic7XG5pbXBvcnQge0NoYW5nZURldGVjdGlvblNjaGVkdWxlckltcGx9IGZyb20gJy4vem9uZWxlc3Nfc2NoZWR1bGluZ19pbXBsJztcbmltcG9ydCB7aW5qZWN0fSBmcm9tICcuLi8uLi9kaS9pbmplY3Rvcl9jb21wYXRpYmlsaXR5JztcbmltcG9ydCB7bWFrZUVudmlyb25tZW50UHJvdmlkZXJzfSBmcm9tICcuLi8uLi9kaS9wcm92aWRlcl9jb2xsZWN0aW9uJztcbmltcG9ydCB7Tmdab25lfSBmcm9tICcuLi8uLi96b25lL25nX3pvbmUnO1xuXG5pbXBvcnQge0Vudmlyb25tZW50SW5qZWN0b3J9IGZyb20gJy4uLy4uL2RpL3IzX2luamVjdG9yJztcbmltcG9ydCB7RU5WSVJPTk1FTlRfSU5JVElBTElaRVJ9IGZyb20gJy4uLy4uL2RpL2luaXRpYWxpemVyX3Rva2VuJztcbmltcG9ydCB7Q2hlY2tOb0NoYW5nZXNNb2RlfSBmcm9tICcuLi8uLi9yZW5kZXIzL3N0YXRlJztcbmltcG9ydCB7RXJyb3JIYW5kbGVyfSBmcm9tICcuLi8uLi9lcnJvcl9oYW5kbGVyJztcbmltcG9ydCB7Y2hlY2tOb0NoYW5nZXNJbnRlcm5hbH0gZnJvbSAnLi4vLi4vcmVuZGVyMy9pbnN0cnVjdGlvbnMvY2hhbmdlX2RldGVjdGlvbic7XG5pbXBvcnQge1pPTkVMRVNTX0VOQUJMRUR9IGZyb20gJy4vem9uZWxlc3Nfc2NoZWR1bGluZyc7XG5cbi8qKlxuICogVXNlZCB0byBwZXJpb2RpY2FsbHkgdmVyaWZ5IG5vIGV4cHJlc3Npb25zIGhhdmUgY2hhbmdlZCBhZnRlciB0aGV5IHdlcmUgY2hlY2tlZC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyBVc2VkIHRvIGNvbmZpZ3VyZSB3aGVuIHRoZSBjaGVjayB3aWxsIGV4ZWN1dGUuXG4gKiAgIC0gYGludGVydmFsYCB3aWxsIHBlcmlvZGljYWxseSBydW4gZXhoYXVzdGl2ZSBgY2hlY2tOb0NoYW5nZXNgIG9uIGFwcGxpY2F0aW9uIHZpZXdzXG4gKiAgIC0gYHVzZU5nWm9uZU9uU3RhYmxlYCB3aWxsIHVzZSBab25lSlMgdG8gZGV0ZXJtaW5lIHdoZW4gY2hhbmdlIGRldGVjdGlvbiBtaWdodCBoYXZlIHJ1blxuICogICAgICBpbiBhbiBhcHBsaWNhdGlvbiB1c2luZyBab25lSlMgdG8gZHJpdmUgY2hhbmdlIGRldGVjdGlvbi4gV2hlbiB0aGUgYE5nWm9uZS5vblN0YWJsZWAgd291bGRcbiAqICAgICAgaGF2ZSBlbWl0dGVkLCBhbGwgdmlld3MgYXR0YWNoZWQgdG8gdGhlIGBBcHBsaWNhdGlvblJlZmAgYXJlIGNoZWNrZWQgZm9yIGNoYW5nZXMuXG4gKiAgIC0gJ2V4aGF1c3RpdmUnIG1lYW5zIHRoYXQgYWxsIHZpZXdzIGF0dGFjaGVkIHRvIGBBcHBsaWNhdGlvblJlZmAgYW5kIGFsbCB0aGUgZGVzY2VuZGFudHMgb2YgdGhvc2Ugdmlld3Mgd2lsbCBiZVxuICogICAgIGNoZWNrZWQgZm9yIGNoYW5nZXMgKGV4Y2x1ZGluZyB0aG9zZSBzdWJ0cmVlcyB3aGljaCBhcmUgZGV0YWNoZWQgdmlhIGBDaGFuZ2VEZXRlY3RvclJlZi5kZXRhY2goKWApLlxuICogICAgIFRoaXMgaXMgdXNlZnVsIGJlY2F1c2UgdGhlIGNoZWNrIHRoYXQgcnVucyBhZnRlciByZWd1bGFyIGNoYW5nZSBkZXRlY3Rpb24gZG9lcyBub3Qgd29yayBmb3IgY29tcG9uZW50cyB1c2luZyBgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoYC5cbiAqICAgICBUaGlzIGNoZWNrIGlzIHdpbGwgc3VyZmFjZSBhbnkgZXhpc3RpbmcgZXJyb3JzIGhpZGRlbiBieSBgT25QdXNoYCBjb21wb25lbnRzLiBCeSBkZWZhdWx0LCB0aGlzIGNoZWNrIGlzIGV4aGF1c3RpdmVcbiAqICAgICBhbmQgd2lsbCBhbHdheXMgY2hlY2sgYWxsIHZpZXdzLCByZWdhcmRsZXNzIG9mIHRoZWlyIFwiZGlydHlcIiBzdGF0ZSBhbmQgYENoYW5nZURldGVjdGlvblN0cmF0ZWd5YC5cbiAqXG4gKiBXaGVuIHRoZSBgdXNlTmdab25lT25TdGFibGVgIG9wdGlvbiBpcyBgdHJ1ZWAsIHRoaXMgZnVuY3Rpb24gd2lsbCBwcm92aWRlIGl0cyBvd24gYE5nWm9uZWAgaW1wbGVtZW50YXRpb24gYW5kIG5lZWRzXG4gKiB0byBjb21lIGFmdGVyIGFueSBvdGhlciBgTmdab25lYCBwcm92aWRlciwgaW5jbHVkaW5nIGBwcm92aWRlWm9uZUNoYW5nZURldGVjdGlvbigpYCBhbmQgYHByb3ZpZGVFeHBlcmltZW50YWxab25lbGVzc0NoYW5nZURldGVjdGlvbigpYC5cbiAqXG4gKiBAZXhwZXJpbWVudGFsXG4gKiBAcHVibGljQXBpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlRXhwZXJpbWVudGFsQ2hlY2tOb0NoYW5nZXNGb3JEZWJ1ZyhvcHRpb25zOiB7XG4gIGludGVydmFsPzogbnVtYmVyO1xuICB1c2VOZ1pvbmVPblN0YWJsZT86IGJvb2xlYW47XG4gIGV4aGF1c3RpdmU/OiBib29sZWFuO1xufSkge1xuICBpZiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSB7XG4gICAgaWYgKG9wdGlvbnMuaW50ZXJ2YWwgPT09IHVuZGVmaW5lZCAmJiAhb3B0aW9ucy51c2VOZ1pvbmVPblN0YWJsZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNdXN0IHByb3ZpZGUgb25lIG9mIGB1c2VOZ1pvbmVPblN0YWJsZWAgb3IgYGludGVydmFsYCcpO1xuICAgIH1cbiAgICBjb25zdCBjaGVja05vQ2hhbmdlc01vZGUgPVxuICAgICAgb3B0aW9ucz8uZXhoYXVzdGl2ZSA9PT0gZmFsc2VcbiAgICAgICAgPyBDaGVja05vQ2hhbmdlc01vZGUuT25seURpcnR5Vmlld3NcbiAgICAgICAgOiBDaGVja05vQ2hhbmdlc01vZGUuRXhoYXVzdGl2ZTtcbiAgICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICAgIG9wdGlvbnM/LnVzZU5nWm9uZU9uU3RhYmxlXG4gICAgICAgID8ge3Byb3ZpZGU6IE5nWm9uZSwgdXNlRmFjdG9yeTogKCkgPT4gbmV3IERlYnVnTmdab25lRm9yQ2hlY2tOb0NoYW5nZXMoY2hlY2tOb0NoYW5nZXNNb2RlKX1cbiAgICAgICAgOiBbXSxcbiAgICAgIG9wdGlvbnM/LmludGVydmFsICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyBleGhhdXN0aXZlQ2hlY2tOb0NoYW5nZXNJbnRlcnZhbChvcHRpb25zLmludGVydmFsLCBjaGVja05vQ2hhbmdlc01vZGUpXG4gICAgICAgIDogW10sXG4gICAgICB7XG4gICAgICAgIHByb3ZpZGU6IEVOVklST05NRU5UX0lOSVRJQUxJWkVSLFxuICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgdXNlVmFsdWU6ICgpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBvcHRpb25zPy51c2VOZ1pvbmVPblN0YWJsZSAmJlxuICAgICAgICAgICAgIShpbmplY3QoTmdab25lKSBpbnN0YW5jZW9mIERlYnVnTmdab25lRm9yQ2hlY2tOb0NoYW5nZXMpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICdgcHJvdmlkZUV4cGVyaW1lbnRhbENoZWNrTm9DaGFuZ2VzRm9yRGVidWdgIHdpdGggYHVzZU5nWm9uZU9uU3RhYmxlYCBtdXN0IGJlIGFmdGVyIGFueSBvdGhlciBwcm92aWRlciBmb3IgYE5nWm9uZWAuJyxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtdKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGVidWdOZ1pvbmVGb3JDaGVja05vQ2hhbmdlcyBleHRlbmRzIE5nWm9uZSB7XG4gIHByaXZhdGUgYXBwbGljYXRpb25SZWY/OiBBcHBsaWNhdGlvblJlZjtcbiAgcHJpdmF0ZSBzY2hlZHVsZXI/OiBDaGFuZ2VEZXRlY3Rpb25TY2hlZHVsZXJJbXBsO1xuICBwcml2YXRlIGVycm9ySGFuZGxlcj86IEVycm9ySGFuZGxlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChFbnZpcm9ubWVudEluamVjdG9yKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNoZWNrTm9DaGFuZ2VzTW9kZTogQ2hlY2tOb0NoYW5nZXNNb2RlKSB7XG4gICAgY29uc3Qgem9uZWxlc3NFbmFibGVkID0gaW5qZWN0KFpPTkVMRVNTX0VOQUJMRUQpO1xuICAgIC8vIFVzZSBjb2FsZXNjaW5nIHRvIGVuc3VyZSB3ZSBhcmVuJ3QgZXZlciBydW5uaW5nIHRoaXMgY2hlY2sgc3luY2hyb25vdXNseVxuICAgIHN1cGVyKHtcbiAgICAgIHNob3VsZENvYWxlc2NlRXZlbnRDaGFuZ2VEZXRlY3Rpb246IHRydWUsXG4gICAgICBzaG91bGRDb2FsZXNjZVJ1bkNoYW5nZURldGVjdGlvbjogem9uZWxlc3NFbmFibGVkLFxuICAgIH0pO1xuXG4gICAgaWYgKHpvbmVsZXNzRW5hYmxlZCkge1xuICAgICAgLy8gcHJldmVudCBlbWl0cyB0byBlbnN1cmUgY29kZSBkb2Vzbid0IHJlbHkgb24gdGhlc2VcbiAgICAgIHRoaXMub25NaWNyb3Rhc2tFbXB0eS5lbWl0ID0gKCkgPT4ge307XG4gICAgICB0aGlzLm9uU3RhYmxlLmVtaXQgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuc2NoZWR1bGVyIHx8PSB0aGlzLmluamVjdG9yLmdldChDaGFuZ2VEZXRlY3Rpb25TY2hlZHVsZXJJbXBsKTtcbiAgICAgICAgaWYgKHRoaXMuc2NoZWR1bGVyLnBlbmRpbmdSZW5kZXJUYXNrSWQgfHwgdGhpcy5zY2hlZHVsZXIucnVubmluZ1RpY2spIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jaGVja0FwcGxpY2F0aW9uVmlld3MoKTtcbiAgICAgIH07XG4gICAgICB0aGlzLm9uVW5zdGFibGUuZW1pdCA9ICgpID0+IHt9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgdGhpcy5vblN0YWJsZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuY2hlY2tBcHBsaWNhdGlvblZpZXdzKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0FwcGxpY2F0aW9uVmlld3MoKSB7XG4gICAgdGhpcy5hcHBsaWNhdGlvblJlZiB8fD0gdGhpcy5pbmplY3Rvci5nZXQoQXBwbGljYXRpb25SZWYpO1xuICAgIGZvciAoY29uc3QgdmlldyBvZiB0aGlzLmFwcGxpY2F0aW9uUmVmLmFsbFZpZXdzKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjaGVja05vQ2hhbmdlc0ludGVybmFsKHZpZXcuX2xWaWV3LCB0aGlzLmNoZWNrTm9DaGFuZ2VzTW9kZSwgdmlldy5ub3RpZnlFcnJvckhhbmRsZXIpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aGlzLmVycm9ySGFuZGxlciB8fD0gdGhpcy5pbmplY3Rvci5nZXQoRXJyb3JIYW5kbGVyKTtcbiAgICAgICAgdGhpcy5lcnJvckhhbmRsZXIuaGFuZGxlRXJyb3IoZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGV4aGF1c3RpdmVDaGVja05vQ2hhbmdlc0ludGVydmFsKFxuICBpbnRlcnZhbDogbnVtYmVyLFxuICBjaGVja05vQ2hhbmdlc01vZGU6IENoZWNrTm9DaGFuZ2VzTW9kZSxcbikge1xuICByZXR1cm4ge1xuICAgIHByb3ZpZGU6IEVOVklST05NRU5UX0lOSVRJQUxJWkVSLFxuICAgIG11bHRpOiB0cnVlLFxuICAgIHVzZUZhY3Rvcnk6ICgpID0+IHtcbiAgICAgIGNvbnN0IGFwcGxpY2F0aW9uUmVmID0gaW5qZWN0KEFwcGxpY2F0aW9uUmVmKTtcbiAgICAgIGNvbnN0IGVycm9ySGFuZGxlciA9IGluamVjdChFcnJvckhhbmRsZXIpO1xuICAgICAgY29uc3Qgc2NoZWR1bGVyID0gaW5qZWN0KENoYW5nZURldGVjdGlvblNjaGVkdWxlckltcGwpO1xuICAgICAgY29uc3Qgbmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGZ1bmN0aW9uIHNjaGVkdWxlQ2hlY2tOb0NoYW5nZXMoKSB7XG4gICAgICAgICAgbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoYXBwbGljYXRpb25SZWYuZGVzdHJveWVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChzY2hlZHVsZXIucGVuZGluZ1JlbmRlclRhc2tJZCB8fCBzY2hlZHVsZXIucnVubmluZ1RpY2spIHtcbiAgICAgICAgICAgICAgICBzY2hlZHVsZUNoZWNrTm9DaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgZm9yIChjb25zdCB2aWV3IG9mIGFwcGxpY2F0aW9uUmVmLmFsbFZpZXdzKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgIGNoZWNrTm9DaGFuZ2VzSW50ZXJuYWwodmlldy5fbFZpZXcsIGNoZWNrTm9DaGFuZ2VzTW9kZSwgdmlldy5ub3RpZnlFcnJvckhhbmRsZXIpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgIGVycm9ySGFuZGxlci5oYW5kbGVFcnJvcihlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBzY2hlZHVsZUNoZWNrTm9DaGFuZ2VzKCk7XG4gICAgICAgICAgICB9LCBpbnRlcnZhbCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgc2NoZWR1bGVDaGVja05vQ2hhbmdlcygpO1xuICAgICAgfTtcbiAgICB9LFxuICB9O1xufVxuIl19
|