@angular/core 16.1.0-next.0 → 16.1.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/esm2022/src/change_detection/change_detector_ref.mjs +2 -2
  2. package/esm2022/src/compiler/compiler_facade_interface.mjs +1 -1
  3. package/esm2022/src/core_private_export.mjs +1 -2
  4. package/esm2022/src/core_render3_private_export.mjs +2 -2
  5. package/esm2022/src/di/forward_ref.mjs +29 -2
  6. package/esm2022/src/di/r3_injector.mjs +6 -3
  7. package/esm2022/src/errors.mjs +1 -1
  8. package/esm2022/src/hydration/api.mjs +31 -3
  9. package/esm2022/src/i18n/locale_data_api.mjs +2 -2
  10. package/esm2022/src/interface/lifecycle_hooks.mjs +1 -1
  11. package/esm2022/src/render3/bindings.mjs +2 -2
  12. package/esm2022/src/render3/component.mjs +4 -4
  13. package/esm2022/src/render3/definition.mjs +6 -6
  14. package/esm2022/src/render3/di.mjs +5 -2
  15. package/esm2022/src/render3/errors.mjs +24 -3
  16. package/esm2022/src/render3/features/host_directives_feature.mjs +2 -2
  17. package/esm2022/src/render3/features/input_transforms_feature.mjs +13 -0
  18. package/esm2022/src/render3/index.mjs +3 -2
  19. package/esm2022/src/render3/instructions/listener.mjs +1 -3
  20. package/esm2022/src/render3/jit/environment.mjs +2 -1
  21. package/esm2022/src/render3/jit/module.mjs +11 -11
  22. package/esm2022/src/render3/node_manipulation.mjs +4 -2
  23. package/esm2022/src/signals/src/api.mjs +5 -3
  24. package/esm2022/src/transfer_state.mjs +7 -23
  25. package/esm2022/src/version.mjs +1 -1
  26. package/esm2022/testing/src/logger.mjs +3 -3
  27. package/esm2022/testing/src/test_bed_common.mjs +1 -1
  28. package/fesm2022/core.mjs +133 -60
  29. package/fesm2022/core.mjs.map +1 -1
  30. package/fesm2022/rxjs-interop.mjs +5 -3
  31. package/fesm2022/rxjs-interop.mjs.map +1 -1
  32. package/fesm2022/testing.mjs +99 -53
  33. package/fesm2022/testing.mjs.map +1 -1
  34. package/index.d.ts +56 -18
  35. package/package.json +1 -1
  36. package/rxjs-interop/index.d.ts +1 -1
  37. package/schematics/ng-generate/standalone-migration/bundle.js +362 -60
  38. package/schematics/ng-generate/standalone-migration/bundle.js.map +4 -4
  39. package/testing/index.d.ts +5 -5
@@ -7,9 +7,14 @@
7
7
  */
8
8
  import { RuntimeError } from '../errors';
9
9
  import { getComponentDef } from './definition';
10
+ import { getDeclarationComponentDef } from './instructions/element_validation';
10
11
  import { TVIEW } from './interfaces/view';
11
12
  import { INTERPOLATION_DELIMITER } from './util/misc_utils';
12
13
  import { stringifyForError } from './util/stringify_utils';
14
+ /**
15
+ * The max length of the string representation of a value in an error message
16
+ */
17
+ const VALUE_STRING_LENGTH_LIMIT = 200;
13
18
  /** Verifies that a given type is a Standalone Component. */
14
19
  export function assertStandaloneComponentType(type) {
15
20
  assertComponentDef(type);
@@ -35,9 +40,11 @@ export function throwMultipleComponentError(tNode, first, second) {
35
40
  `${stringifyForError(second)}`);
36
41
  }
37
42
  /** Throws an ExpressionChangedAfterChecked error if checkNoChanges mode is on. */
38
- export function throwErrorIfNoChangesMode(creationMode, oldValue, currValue, propName) {
43
+ export function throwErrorIfNoChangesMode(creationMode, oldValue, currValue, propName, lView) {
44
+ const hostComponentDef = getDeclarationComponentDef(lView);
45
+ const componentClassName = hostComponentDef?.type?.name;
39
46
  const field = propName ? ` for '${propName}'` : '';
40
- let msg = `ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value${field}: '${oldValue}'. Current value: '${currValue}'.`;
47
+ let msg = `ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value${field}: '${formatValue(oldValue)}'. Current value: '${formatValue(currValue)}'.${componentClassName ? ` Expression location: ${componentClassName} component` : ''}`;
41
48
  if (creationMode) {
42
49
  msg +=
43
50
  ` It seems like the view has been created after its parent and its children have been dirty checked.` +
@@ -45,6 +52,20 @@ export function throwErrorIfNoChangesMode(creationMode, oldValue, currValue, pro
45
52
  }
46
53
  throw new RuntimeError(-100 /* RuntimeErrorCode.EXPRESSION_CHANGED_AFTER_CHECKED */, msg);
47
54
  }
55
+ function formatValue(value) {
56
+ let strValue = String(value);
57
+ // JSON.stringify will throw on circular references
58
+ try {
59
+ if (Array.isArray(value) || strValue === '[object Object]') {
60
+ strValue = JSON.stringify(value);
61
+ }
62
+ }
63
+ catch (error) {
64
+ }
65
+ return strValue.length > VALUE_STRING_LENGTH_LIMIT ?
66
+ (strValue.substring(0, VALUE_STRING_LENGTH_LIMIT) + '…') :
67
+ strValue;
68
+ }
48
69
  function constructDetailsForInterpolation(lView, rootIndex, expressionIndex, meta, changedValue) {
49
70
  const [propName, prefix, ...chunks] = meta.split(INTERPOLATION_DELIMITER);
50
71
  let oldValue = prefix, newValue = prefix;
@@ -95,4 +116,4 @@ export function getExpressionChangedErrorDetails(lView, bindingIndex, oldValue,
95
116
  }
96
117
  return { propName: undefined, oldValue, newValue };
97
118
  }
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvcmVuZGVyMy9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLFlBQVksRUFBbUIsTUFBTSxXQUFXLENBQUM7QUFHekQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUU3QyxPQUFPLEVBQVEsS0FBSyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFFekQsNERBQTREO0FBQzVELE1BQU0sVUFBVSw2QkFBNkIsQ0FBQyxJQUFtQjtJQUMvRCxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFFLENBQUM7SUFDNUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUU7UUFDNUIsTUFBTSxJQUFJLFlBQVksb0RBRWxCLE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDLDBDQUEwQztZQUNwRSwyREFBMkQ7WUFDM0Qsd0JBQXdCLGlCQUFpQixDQUFDLElBQUksQ0FBQyxpQkFBaUI7WUFDaEUsaURBQWlELENBQUMsQ0FBQztLQUM1RDtBQUNILENBQUM7QUFFRCxtREFBbUQ7QUFDbkQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLElBQW1CO0lBQ3BELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDMUIsTUFBTSxJQUFJLFlBQVksbURBRWxCLE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDLGdDQUFnQztZQUMxRCxnREFBZ0QsQ0FBQyxDQUFDO0tBQzNEO0FBQ0gsQ0FBQztBQUVELGlGQUFpRjtBQUNqRixNQUFN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LENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNoRSxHQUFHLEVBQUUsQ0FBQztTQUNQO1FBQ0QsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQzVCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNyRSw2RkFBNkY7WUFDN0YscUZBQXFGO1lBQ3JGLElBQUksT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxZQUFZLEdBQUcsR0FBRyxFQUFFO2dCQUN4RCxPQUFPLGdDQUFnQyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQzthQUNuRjtTQUNGO0tBQ0Y7SUFDRCxPQUFPLEVBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFDLENBQUM7QUFDbkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7UnVudGltZUVycm9yLCBSdW50aW1lRXJyb3JDb2RlfSBmcm9tICcuLi9lcnJvcnMnO1xuaW1wb3J0IHtUeXBlfSBmcm9tICcuLi9pbnRlcmZhY2UvdHlwZSc7XG5cbmltcG9ydCB7Z2V0Q29tcG9uZW50RGVmfSBmcm9tICcuL2RlZmluaXRpb24nO1xuaW1wb3J0IHtUTm9kZX0gZnJvbSAnLi9pbnRlcmZhY2VzL25vZGUnO1xuaW1wb3J0IHtMVmlldywgVFZJRVd9IGZyb20gJy4vaW50ZXJmYWNlcy92aWV3JztcbmltcG9ydCB7SU5URVJQT0xBVElPTl9ERUxJTUlURVJ9IGZyb20gJy4vdXRpbC9taXNjX3V0aWxzJztcbmltcG9ydCB7c3RyaW5naWZ5Rm9yRXJyb3J9IGZyb20gJy4vdXRpbC9zdHJpbmdpZnlfdXRpbHMnO1xuXG4vKiogVmVyaWZpZXMgdGhhdCBhIGdpdmVuIHR5cGUgaXMgYSBTdGFuZGFsb25lIENvbXBvbmVudC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRTdGFuZGFsb25lQ29tcG9uZW50VHlwZSh0eXBlOiBUeXBlPHVua25vd24+KSB7XG4gIGFzc2VydENvbXBvbmVudERlZih0eXBlKTtcbiAgY29uc3QgY29tcG9uZW50RGVmID0gZ2V0Q29tcG9uZW50RGVmKHR5cGUpITtcbiAgaWYgKCFjb21wb25lbnREZWYuc3RhbmRhbG9uZSkge1xuICAgIHRocm93IG5ldyBSdW50aW1lRXJyb3IoXG4gICAgICAgIFJ1bnRpbWVFcnJvckNvZGUuVFlQRV9JU19OT1RfU1RBTkRBTE9ORSxcbiAgICAgICAgYFRoZSAke3N0cmluZ2lmeUZvckVycm9yKHR5cGUpfSBjb21wb25lbnQgaXMgbm90IG1hcmtlZCBhcyBzdGFuZGFsb25lLCBgICtcbiAgICAgICAgICAgIGBidXQgQW5ndWxhciBleHBlY3RzIHRvIGhhdmUgYSBzdGFuZGFsb25lIGNvbXBvbmVudCBoZXJlLiBgICtcbiAgICAgICAgICAgIGBQbGVhc2UgbWFrZSBzdXJlIHRoZSAke3N0cmluZ2lmeUZvckVycm9yKHR5cGUpfSBjb21wb25lbnQgaGFzIGAgK1xuICAgICAgICAgICAgYHRoZSBcXGBzdGFuZGFsb25lOiB0cnVlXFxgIGZsYWcgaW4gdGhlIGRlY29yYXRvci5gKTtcbiAgfVxufVxuXG4vKiogVmVyaWZpZXMgd2hldGhlciBhIGdpdmVuIHR5cGUgaXMgYSBjb21wb25lbnQgKi9cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRDb21wb25lbnREZWYodHlwZTogVHlwZTx1bmtub3duPikge1xuICBpZiAoIWdldENvbXBvbmVudERlZih0eXBlKSkge1xuICAgIHRocm93IG5ldyBSdW50aW1lRXJyb3IoXG4gICAgICAgIFJ1bnRpbWVFcnJvckNvZGUuTUlTU0lOR19HRU5FUkFURURfREVGLFxuICAgICAgICBgVGhlICR7c3RyaW5naWZ5Rm9yRXJyb3IodHlwZSl9IGlzIG5vdCBhbiBBbmd1bGFyIGNvbXBvbmVudCwgYCArXG4gICAgICAgICAgICBgbWFrZSBzdXJlIGl0IGhhcyB0aGUgXFxgQENvbXBvbmVudFxcYCBkZWNvcmF0b3IuYCk7XG4gIH1cbn1cblxuLyoqIENhbGxlZCB3aGVuIHRoZXJlIGFyZSBtdWx0aXBsZSBjb21wb25lbnQgc2VsZWN0b3JzIHRoYXQgbWF0Y2ggYSBnaXZlbiBub2RlICovXG5leHBvcnQgZnVuY3Rpb24gdGhyb3dNdWx0aXBsZUNvbXBvbmVudEVycm9yKFxuICAgIHROb2RlOiBUTm9kZSwgZmlyc3Q6IFR5cGU8dW5rbm93bj4sIHNlY29uZDogVHlwZTx1bmtub3duPik6IG5ldmVyIHtcbiAgdGhyb3cgbmV3IFJ1bnRpbWVFcnJvcihcbiAgICAgIFJ1bnRpbWVFcnJvckNvZGUuTVVMVElQTEVfQ09NUE9ORU5UU19NQVRDSCxcbiAgICAgIGBNdWx0aXBsZSBjb21wb25lbnRzIG1hdGNoIG5vZGUgd2l0aCB0YWduYW1lICR7dE5vZGUudmFsdWV9OiBgICtcbiAgICAgICAgICBgJHtzdHJpbmdpZnlGb3JFcnJvcihmaXJzdCl9IGFuZCBgICtcbiAgICAgICAgICBgJHtzdHJpbmdpZnlGb3JFcnJvcihzZWNvbmQpfWApO1xufVxuXG4vKiogVGhyb3dzIGFuIEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJDaGVja2VkIGVycm9yIGlmIGNoZWNrTm9DaGFuZ2VzIG1vZGUgaXMgb24uICovXG5leHBvcnQgZnVuY3Rpb24gdGhyb3dFcnJvcklmTm9DaGFuZ2VzTW9kZShcbiAgICBjcmVhdGlvbk1vZGU6IGJvb2xlYW4sIG9sZFZhbHVlOiBhbnksIGN1cnJWYWx1ZTogYW55LCBwcm9wTmFtZT86IHN0cmluZyk6IG5ldmVyIHtcbiAgY29uc3QgZmllbGQgPSBwcm9wTmFtZSA/IGAgZm9yICcke3Byb3BOYW1lfSdgIDogJyc7XG4gIGxldCBtc2cgPVxuICAgICAgYEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3I6IEV4cHJlc3Npb24gaGFzIGNoYW5nZWQgYWZ0ZXIgaXQgd2FzIGNoZWNrZWQuIFByZXZpb3VzIHZhbHVlJHtcbiAgICAgICAgICBmaWVsZH06ICcke29sZFZhbHVlfScuIEN1cnJlbnQgdmFsdWU6ICcke2N1cnJWYWx1ZX0nLmA7XG4gIGlmIChjcmVhdGlvbk1vZGUpIHtcbiAgICBtc2cgKz1cbiAgICAgICAgYCBJdCBzZWVtcyBsaWtlIHRoZSB2aWV3IGhhcyBiZWVuIGNyZWF0ZWQgYWZ0ZXIgaXRzIHBhcmVudCBhbmQgaXRzIGNoaWxkcmVuIGhhdmUgYmVlbiBkaXJ0eSBjaGVja2VkLmAgK1xuICAgICAgICBgIEhhcyBpdCBiZWVuIGNyZWF0ZWQgaW4gYSBjaGFuZ2UgZGV0ZWN0aW9uIGhvb2s/YDtcbiAgfVxuICB0aHJvdyBuZXcgUnVudGltZUVycm9yKFJ1bnRpbWVFcnJvckNvZGUuRVhQUkVTU0lPTl9DSEFOR0VEX0FGVEVSX0NIRUNLRUQsIG1zZyk7XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdERldGFpbHNGb3JJbnRlcnBvbGF0aW9uKFxuICAgIGxWaWV3OiBMVmlldywgcm9vdEluZGV4OiBudW1iZXIsIGV4cHJlc3Npb25JbmRleDogbnVtYmVyLCBtZXRhOiBzdHJpbmcsIGNoYW5nZWRWYWx1ZTogYW55KSB7XG4gIGNvbnN0IFtwcm9wTmFtZSwgcHJlZml4LCAuLi5jaHVua3NdID0gbWV0YS5zcGxpdChJTlRFUlBPTEFUSU9OX0RFTElNSVRFUik7XG4gIGxldCBvbGRWYWx1ZSA9IHByZWZpeCwgbmV3VmFsdWUgPSBwcmVmaXg7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY2h1bmtzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3Qgc2xvdElkeCA9IHJvb3RJbmRleCArIGk7XG4gICAgb2xkVmFsdWUgKz0gYCR7bFZpZXdbc2xvdElkeF19JHtjaHVua3NbaV19YDtcbiAgICBuZXdWYWx1ZSArPSBgJHtzbG90SWR4ID09PSBleHByZXNzaW9uSW5kZXggPyBjaGFuZ2VkVmFsdWUgOiBsVmlld1tzbG90SWR4XX0ke2NodW5rc1tpXX1gO1xuICB9XG4gIHJldHVybiB7cHJvcE5hbWUsIG9sZFZhbHVlLCBuZXdWYWx1ZX07XG59XG5cbi8qKlxuICogQ29uc3RydWN0cyBhbiBvYmplY3QgdGhhdCBjb250YWlucyBkZXRhaWxzIGZvciB0aGUgRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvcjpcbiAqIC0gcHJvcGVydHkgbmFtZSAoZm9yIHByb3BlcnR5IGJpbmRpbmdzIG9yIGludGVycG9sYXRpb25zKVxuICogLSBvbGQgYW5kIG5ldyB2YWx1ZXMsIGVucmljaGVkIHVzaW5nIGluZm9ybWF0aW9uIGZyb20gbWV0YWRhdGFcbiAqXG4gKiBNb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBtZXRhZGF0YSBzdG9yYWdlIGZvcm1hdCBjYW4gYmUgZm91bmQgaW4gYHN0b3JlUHJvcGVydHlCaW5kaW5nTWV0YWRhdGFgXG4gKiBmdW5jdGlvbiBkZXNjcmlwdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEV4cHJlc3Npb25DaGFuZ2VkRXJyb3JEZXRhaWxzKFxuICAgIGxWaWV3OiBMVmlldywgYmluZGluZ0luZGV4OiBudW1iZXIsIG9sZFZhbHVlOiBhbnksXG4gICAgbmV3VmFsdWU6IGFueSk6IHtwcm9wTmFtZT86IHN0cmluZywgb2xkVmFsdWU6IGFueSwgbmV3VmFsdWU6IGFueX0ge1xuICBjb25zdCB0RGF0YSA9IGxWaWV3W1RWSUVXXS5kYXRhO1xuICBjb25zdCBtZXRhZGF0YSA9IHREYXRhW2JpbmRpbmdJbmRleF07XG5cbiAgaWYgKHR5cGVvZiBtZXRhZGF0YSA9PT0gJ3N0cmluZycpIHtcbiAgICAvLyBtZXRhZGF0YSBmb3IgcHJvcGVydHkgaW50ZXJwb2xhdGlvblxuICAgIGlmIChtZXRhZGF0YS5pbmRleE9mKElOVEVSUE9MQVRJT05fREVMSU1JVEVSKSA+IC0xKSB7XG4gICAgICByZXR1cm4gY29uc3RydWN0RGV0YWlsc0ZvckludGVycG9sYXRpb24oXG4gICAgICAgICAgbFZpZXcsIGJpbmRpbmdJbmRleCwgYmluZGluZ0luZGV4LCBtZXRhZGF0YSwgbmV3VmFsdWUpO1xuICAgIH1cbiAgICAvLyBtZXRhZGF0YSBmb3IgcHJvcGVydHkgYmluZGluZ1xuICAgIHJldHVybiB7cHJvcE5hbWU6IG1ldGFkYXRhLCBvbGRWYWx1ZSwgbmV3VmFsdWV9O1xuICB9XG5cbiAgLy8gbWV0YWRhdGEgaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhpcyBleHByZXNzaW9uLCBjaGVjayBpZiB0aGlzIGV4cHJlc3Npb24gaXMgYSBwYXJ0IG9mIHRoZVxuICAvLyBwcm9wZXJ0eSBpbnRlcnBvbGF0aW9uIGJ5IGdvaW5nIGZyb20gdGhlIGN1cnJlbnQgYmluZGluZyBpbmRleCBsZWZ0IGFuZCBsb29rIGZvciBhIHN0cmluZyB0aGF0XG4gIC8vIGNvbnRhaW5zIElOVEVSUE9MQVRJT05fREVMSU1JVEVSLCB0aGUgbGF5b3V0IGluIHRWaWV3LmRhdGEgZm9yIHRoaXMgY2FzZSB3aWxsIGxvb2sgbGlrZSB0aGlzOlxuICAvLyBbLi4uLCAnaWTvv71QcmVmaXgg77+9IGFuZCDvv70gc3VmZml4JywgbnVsbCwgbnVsbCwgbnVsbCwgLi4uXVxuICBpZiAobWV0YWRhdGEgPT09IG51bGwpIHtcbiAgICBsZXQgaWR4ID0gYmluZGluZ0luZGV4IC0gMTtcbiAgICB3aGlsZSAodHlwZW9mIHREYXRhW2lkeF0gIT09ICdzdHJpbmcnICYmIHREYXRhW2lkeCArIDFdID09PSBudWxsKSB7XG4gICAgICBpZHgtLTtcbiAgICB9XG4gICAgY29uc3QgbWV0YSA9IHREYXRhW2lkeF07XG4gICAgaWYgKHR5cGVvZiBtZXRhID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgbWF0Y2hlcyA9IG1ldGEubWF0Y2gobmV3IFJlZ0V4cChJTlRFUlBPTEFUSU9OX0RFTElNSVRFUiwgJ2cnKSk7XG4gICAgICAvLyBmaXJzdCBpbnRlcnBvbGF0aW9uIGRlbGltaXRlciBzZXBhcmF0ZXMgcHJvcGVydHkgbmFtZSBmcm9tIGludGVycG9sYXRpb24gcGFydHMgKGluIGNhc2Ugb2ZcbiAgICAgIC8vIHByb3BlcnR5IGludGVycG9sYXRpb25zKSwgc28gd2Ugc3VidHJhY3Qgb25lIGZyb20gdG90YWwgbnVtYmVyIG9mIGZvdW5kIGRlbGltaXRlcnNcbiAgICAgIGlmIChtYXRjaGVzICYmIChtYXRjaGVzLmxlbmd0aCAtIDEpID4gYmluZGluZ0luZGV4IC0gaWR4KSB7XG4gICAgICAgIHJldHVybiBjb25zdHJ1Y3REZXRhaWxzRm9ySW50ZXJwb2xhdGlvbihsVmlldywgaWR4LCBiaW5kaW5nSW5kZXgsIG1ldGEsIG5ld1ZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHtwcm9wTmFtZTogdW5kZWZpbmVkLCBvbGRWYWx1ZSwgbmV3VmFsdWV9O1xufVxuIl19
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvcmVuZGVyMy9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLFlBQVksRUFBbUIsTUFBTSxXQUFXLENBQUM7QUFHekQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUM3QyxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUU3RSxPQUFPLEVBQVEsS0FBSyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFFekQ7O0dBRUc7QUFDSCxNQUFNLHlCQUF5QixHQUFHLEdBQUcsQ0FBQztBQUV0Qyw0REFBNEQ7QUFDNUQsTUFBTSxVQUFVLDZCQUE2QixDQUFDLElBQW1CO0lBQy9ELGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUUsQ0FBQztJQUM1QyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRTtRQUM1QixNQUFNLElBQUksWUFBWSxvREFFbEIsT0FBTyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsMENBQTBDO1lBQ3BFLDJEQUEyRDtZQUMzRCx3QkFBd0IsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGlCQUFpQjtZQUNoRSxpREFBaUQsQ0FBQyxDQUFDO0tBQzVEO0FBQ0gsQ0FBQztBQUVELG1EQUFtRDtBQUNuRCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsSUFBbUI7SUFDcEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUMxQixNQUFNLElBQUksWUFBWSxtREFFbEIsT0FBTyxp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RSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3JFLDZGQUE2RjtZQUM3RixxRkFBcUY7WUFDckYsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLFlBQVksR0FBRyxHQUFHLEVBQUU7Z0JBQ3hELE9BQU8sZ0NBQWdDLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2FBQ25GO1NBQ0Y7S0FDRjtJQUNELE9BQU8sRUFBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUMsQ0FBQztBQUNuRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtSdW50aW1lRXJyb3IsIFJ1bnRpbWVFcnJvckNvZGV9IGZyb20gJy4uL2Vycm9ycyc7XG5pbXBvcnQge1R5cGV9IGZyb20gJy4uL2ludGVyZmFjZS90eXBlJztcblxuaW1wb3J0IHtnZXRDb21wb25lbnREZWZ9IGZyb20gJy4vZGVmaW5pdGlvbic7XG5pbXBvcnQge2dldERlY2xhcmF0aW9uQ29tcG9uZW50RGVmfSBmcm9tICcuL2luc3RydWN0aW9ucy9lbGVtZW50X3ZhbGlkYXRpb24nO1xuaW1wb3J0IHtUTm9kZX0gZnJvbSAnLi9pbnRlcmZhY2VzL25vZGUnO1xuaW1wb3J0IHtMVmlldywgVFZJRVd9IGZyb20gJy4vaW50ZXJmYWNlcy92aWV3JztcbmltcG9ydCB7SU5URVJQT0xBVElPTl9ERUxJTUlURVJ9IGZyb20gJy4vdXRpbC9taXNjX3V0aWxzJztcbmltcG9ydCB7c3RyaW5naWZ5Rm9yRXJyb3J9IGZyb20gJy4vdXRpbC9zdHJpbmdpZnlfdXRpbHMnO1xuXG4vKipcbiAqIFRoZSBtYXggbGVuZ3RoIG9mIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSB2YWx1ZSBpbiBhbiBlcnJvciBtZXNzYWdlXG4gKi9cbmNvbnN0IFZBTFVFX1NUUklOR19MRU5HVEhfTElNSVQgPSAyMDA7XG5cbi8qKiBWZXJpZmllcyB0aGF0IGEgZ2l2ZW4gdHlwZSBpcyBhIFN0YW5kYWxvbmUgQ29tcG9uZW50LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydFN0YW5kYWxvbmVDb21wb25lbnRUeXBlKHR5cGU6IFR5cGU8dW5rbm93bj4pIHtcbiAgYXNzZXJ0Q29tcG9uZW50RGVmKHR5cGUpO1xuICBjb25zdCBjb21wb25lbnREZWYgPSBnZXRDb21wb25lbnREZWYodHlwZSkhO1xuICBpZiAoIWNvbXBvbmVudERlZi5zdGFuZGFsb25lKSB7XG4gICAgdGhyb3cgbmV3IFJ1bnRpbWVFcnJvcihcbiAgICAgICAgUnVudGltZUVycm9yQ29kZS5UWVBFX0lTX05PVF9TVEFOREFMT05FLFxuICAgICAgICBgVGhlICR7c3RyaW5naWZ5Rm9yRXJyb3IodHlwZSl9IGNvbXBvbmVudCBpcyBub3QgbWFya2VkIGFzIHN0YW5kYWxvbmUsIGAgK1xuICAgICAgICAgICAgYGJ1dCBBbmd1bGFyIGV4cGVjdHMgdG8gaGF2ZSBhIHN0YW5kYWxvbmUgY29tcG9uZW50IGhlcmUuIGAgK1xuICAgICAgICAgICAgYFBsZWFzZSBtYWtlIHN1cmUgdGhlICR7c3RyaW5naWZ5Rm9yRXJyb3IodHlwZSl9IGNvbXBvbmVudCBoYXMgYCArXG4gICAgICAgICAgICBgdGhlIFxcYHN0YW5kYWxvbmU6IHRydWVcXGAgZmxhZyBpbiB0aGUgZGVjb3JhdG9yLmApO1xuICB9XG59XG5cbi8qKiBWZXJpZmllcyB3aGV0aGVyIGEgZ2l2ZW4gdHlwZSBpcyBhIGNvbXBvbmVudCAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydENvbXBvbmVudERlZih0eXBlOiBUeXBlPHVua25vd24+KSB7XG4gIGlmICghZ2V0Q29tcG9uZW50RGVmKHR5cGUpKSB7XG4gICAgdGhyb3cgbmV3IFJ1bnRpbWVFcnJvcihcbiAgICAgICAgUnVudGltZUVycm9yQ29kZS5NSVNTSU5HX0dFTkVSQVRFRF9ERUYsXG4gICAgICAgIGBUaGUgJHtzdHJpbmdpZnlGb3JFcnJvcih0eXBlKX0gaXMgbm90IGFuIEFuZ3VsYXIgY29tcG9uZW50LCBgICtcbiAgICAgICAgICAgIGBtYWtlIHN1cmUgaXQgaGFzIHRoZSBcXGBAQ29tcG9uZW50XFxgIGRlY29yYXRvci5gKTtcbiAgfVxufVxuXG4vKiogQ2FsbGVkIHdoZW4gdGhlcmUgYXJlIG11bHRpcGxlIGNvbXBvbmVudCBzZWxlY3RvcnMgdGhhdCBtYXRjaCBhIGdpdmVuIG5vZGUgKi9cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd011bHRpcGxlQ29tcG9uZW50RXJyb3IoXG4gICAgdE5vZGU6IFROb2RlLCBmaXJzdDogVHlwZTx1bmtub3duPiwgc2Vjb25kOiBUeXBlPHVua25vd24+KTogbmV2ZXIge1xuICB0aHJvdyBuZXcgUnVudGltZUVycm9yKFxuICAgICAgUnVudGltZUVycm9yQ29kZS5NVUxUSVBMRV9DT01QT05FTlRTX01BVENILFxuICAgICAgYE11bHRpcGxlIGNvbXBvbmVudHMgbWF0Y2ggbm9kZSB3aXRoIHRhZ25hbWUgJHt0Tm9kZS52YWx1ZX06IGAgK1xuICAgICAgICAgIGAke3N0cmluZ2lmeUZvckVycm9yKGZpcnN0KX0gYW5kIGAgK1xuICAgICAgICAgIGAke3N0cmluZ2lmeUZvckVycm9yKHNlY29uZCl9YCk7XG59XG5cbi8qKiBUaHJvd3MgYW4gRXhwcmVzc2lvbkNoYW5nZWRBZnRlckNoZWNrZWQgZXJyb3IgaWYgY2hlY2tOb0NoYW5nZXMgbW9kZSBpcyBvbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd0Vycm9ySWZOb0NoYW5nZXNNb2RlKFxuICAgIGNyZWF0aW9uTW9kZTogYm9vbGVhbiwgb2xkVmFsdWU6IGFueSwgY3VyclZhbHVlOiBhbnksIHByb3BOYW1lOiBzdHJpbmd8dW5kZWZpbmVkLFxuICAgIGxWaWV3OiBMVmlldyk6IG5ldmVyIHtcbiAgY29uc3QgaG9zdENvbXBvbmVudERlZiA9IGdldERlY2xhcmF0aW9uQ29tcG9uZW50RGVmKGxWaWV3KTtcbiAgY29uc3QgY29tcG9uZW50Q2xhc3NOYW1lID0gaG9zdENvbXBvbmVudERlZj8udHlwZT8ubmFtZTtcbiAgY29uc3QgZmllbGQgPSBwcm9wTmFtZSA/IGAgZm9yICcke3Byb3BOYW1lfSdgIDogJyc7XG4gIGxldCBtc2cgPVxuICAgICAgYEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3I6IEV4cHJlc3Npb24gaGFzIGNoYW5nZWQgYWZ0ZXIgaXQgd2FzIGNoZWNrZWQuIFByZXZpb3VzIHZhbHVlJHtcbiAgICAgICAgICBmaWVsZH06ICcke2Zvcm1hdFZhbHVlKG9sZFZhbHVlKX0nLiBDdXJyZW50IHZhbHVlOiAnJHtmb3JtYXRWYWx1ZShjdXJyVmFsdWUpfScuJHtcbiAgICAgICAgICBjb21wb25lbnRDbGFzc05hbWUgPyBgIEV4cHJlc3Npb24gbG9jYXRpb246ICR7Y29tcG9uZW50Q2xhc3NOYW1lfSBjb21wb25lbnRgIDogJyd9YDtcbiAgaWYgKGNyZWF0aW9uTW9kZSkge1xuICAgIG1zZyArPVxuICAgICAgICBgIEl0IHNlZW1zIGxpa2UgdGhlIHZpZXcgaGFzIGJlZW4gY3JlYXRlZCBhZnRlciBpdHMgcGFyZW50IGFuZCBpdHMgY2hpbGRyZW4gaGF2ZSBiZWVuIGRpcnR5IGNoZWNrZWQuYCArXG4gICAgICAgIGAgSGFzIGl0IGJlZW4gY3JlYXRlZCBpbiBhIGNoYW5nZSBkZXRlY3Rpb24gaG9vaz9gO1xuICB9XG4gIHRocm93IG5ldyBSdW50aW1lRXJyb3IoUnVudGltZUVycm9yQ29kZS5FWFBSRVNTSU9OX0NIQU5HRURfQUZURVJfQ0hFQ0tFRCwgbXNnKTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0VmFsdWUodmFsdWU6IHVua25vd24pOiBzdHJpbmcge1xuICBsZXQgc3RyVmFsdWU6IHN0cmluZyA9IFN0cmluZyh2YWx1ZSk7XG5cbiAgLy8gSlNPTi5zdHJpbmdpZnkgd2lsbCB0aHJvdyBvbiBjaXJjdWxhciByZWZlcmVuY2VzXG4gIHRyeSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpIHx8IHN0clZhbHVlID09PSAnW29iamVjdCBPYmplY3RdJykge1xuICAgICAgc3RyVmFsdWUgPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgfVxuICB9IGNhdGNoIChlcnJvcikge1xuICB9XG4gIHJldHVybiBzdHJWYWx1ZS5sZW5ndGggPiBWQUxVRV9TVFJJTkdfTEVOR1RIX0xJTUlUID9cbiAgICAgIChzdHJWYWx1ZS5zdWJzdHJpbmcoMCwgVkFMVUVfU1RSSU5HX0xFTkdUSF9MSU1JVCkgKyAn4oCmJykgOlxuICAgICAgc3RyVmFsdWU7XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdERldGFpbHNGb3JJbnRlcnBvbGF0aW9uKFxuICAgIGxWaWV3OiBMVmlldywgcm9vdEluZGV4OiBudW1iZXIsIGV4cHJlc3Npb25JbmRleDogbnVtYmVyLCBtZXRhOiBzdHJpbmcsIGNoYW5nZWRWYWx1ZTogYW55KSB7XG4gIGNvbnN0IFtwcm9wTmFtZSwgcHJlZml4LCAuLi5jaHVua3NdID0gbWV0YS5zcGxpdChJTlRFUlBPTEFUSU9OX0RFTElNSVRFUik7XG4gIGxldCBvbGRWYWx1ZSA9IHByZWZpeCwgbmV3VmFsdWUgPSBwcmVmaXg7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY2h1bmtzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3Qgc2xvdElkeCA9IHJvb3RJbmRleCArIGk7XG4gICAgb2xkVmFsdWUgKz0gYCR7bFZpZXdbc2xvdElkeF19JHtjaHVua3NbaV19YDtcbiAgICBuZXdWYWx1ZSArPSBgJHtzbG90SWR4ID09PSBleHByZXNzaW9uSW5kZXggPyBjaGFuZ2VkVmFsdWUgOiBsVmlld1tzbG90SWR4XX0ke2NodW5rc1tpXX1gO1xuICB9XG4gIHJldHVybiB7cHJvcE5hbWUsIG9sZFZhbHVlLCBuZXdWYWx1ZX07XG59XG5cbi8qKlxuICogQ29uc3RydWN0cyBhbiBvYmplY3QgdGhhdCBjb250YWlucyBkZXRhaWxzIGZvciB0aGUgRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvcjpcbiAqIC0gcHJvcGVydHkgbmFtZSAoZm9yIHByb3BlcnR5IGJpbmRpbmdzIG9yIGludGVycG9sYXRpb25zKVxuICogLSBvbGQgYW5kIG5ldyB2YWx1ZXMsIGVucmljaGVkIHVzaW5nIGluZm9ybWF0aW9uIGZyb20gbWV0YWRhdGFcbiAqXG4gKiBNb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBtZXRhZGF0YSBzdG9yYWdlIGZvcm1hdCBjYW4gYmUgZm91bmQgaW4gYHN0b3JlUHJvcGVydHlCaW5kaW5nTWV0YWRhdGFgXG4gKiBmdW5jdGlvbiBkZXNjcmlwdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEV4cHJlc3Npb25DaGFuZ2VkRXJyb3JEZXRhaWxzKFxuICAgIGxWaWV3OiBMVmlldywgYmluZGluZ0luZGV4OiBudW1iZXIsIG9sZFZhbHVlOiBhbnksXG4gICAgbmV3VmFsdWU6IGFueSk6IHtwcm9wTmFtZT86IHN0cmluZywgb2xkVmFsdWU6IGFueSwgbmV3VmFsdWU6IGFueX0ge1xuICBjb25zdCB0RGF0YSA9IGxWaWV3W1RWSUVXXS5kYXRhO1xuICBjb25zdCBtZXRhZGF0YSA9IHREYXRhW2JpbmRpbmdJbmRleF07XG5cbiAgaWYgKHR5cGVvZiBtZXRhZGF0YSA9PT0gJ3N0cmluZycpIHtcbiAgICAvLyBtZXRhZGF0YSBmb3IgcHJvcGVydHkgaW50ZXJwb2xhdGlvblxuICAgIGlmIChtZXRhZGF0YS5pbmRleE9mKElOVEVSUE9MQVRJT05fREVMSU1JVEVSKSA+IC0xKSB7XG4gICAgICByZXR1cm4gY29uc3RydWN0RGV0YWlsc0ZvckludGVycG9sYXRpb24oXG4gICAgICAgICAgbFZpZXcsIGJpbmRpbmdJbmRleCwgYmluZGluZ0luZGV4LCBtZXRhZGF0YSwgbmV3VmFsdWUpO1xuICAgIH1cbiAgICAvLyBtZXRhZGF0YSBmb3IgcHJvcGVydHkgYmluZGluZ1xuICAgIHJldHVybiB7cHJvcE5hbWU6IG1ldGFkYXRhLCBvbGRWYWx1ZSwgbmV3VmFsdWV9O1xuICB9XG5cbiAgLy8gbWV0YWRhdGEgaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhpcyBleHByZXNzaW9uLCBjaGVjayBpZiB0aGlzIGV4cHJlc3Npb24gaXMgYSBwYXJ0IG9mIHRoZVxuICAvLyBwcm9wZXJ0eSBpbnRlcnBvbGF0aW9uIGJ5IGdvaW5nIGZyb20gdGhlIGN1cnJlbnQgYmluZGluZyBpbmRleCBsZWZ0IGFuZCBsb29rIGZvciBhIHN0cmluZyB0aGF0XG4gIC8vIGNvbnRhaW5zIElOVEVSUE9MQVRJT05fREVMSU1JVEVSLCB0aGUgbGF5b3V0IGluIHRWaWV3LmRhdGEgZm9yIHRoaXMgY2FzZSB3aWxsIGxvb2sgbGlrZSB0aGlzOlxuICAvLyBbLi4uLCAnaWTvv71QcmVmaXgg77+9IGFuZCDvv70gc3VmZml4JywgbnVsbCwgbnVsbCwgbnVsbCwgLi4uXVxuICBpZiAobWV0YWRhdGEgPT09IG51bGwpIHtcbiAgICBsZXQgaWR4ID0gYmluZGluZ0luZGV4IC0gMTtcbiAgICB3aGlsZSAodHlwZW9mIHREYXRhW2lkeF0gIT09ICdzdHJpbmcnICYmIHREYXRhW2lkeCArIDFdID09PSBudWxsKSB7XG4gICAgICBpZHgtLTtcbiAgICB9XG4gICAgY29uc3QgbWV0YSA9IHREYXRhW2lkeF07XG4gICAgaWYgKHR5cGVvZiBtZXRhID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgbWF0Y2hlcyA9IG1ldGEubWF0Y2gobmV3IFJlZ0V4cChJTlRFUlBPTEFUSU9OX0RFTElNSVRFUiwgJ2cnKSk7XG4gICAgICAvLyBmaXJzdCBpbnRlcnBvbGF0aW9uIGRlbGltaXRlciBzZXBhcmF0ZXMgcHJvcGVydHkgbmFtZSBmcm9tIGludGVycG9sYXRpb24gcGFydHMgKGluIGNhc2Ugb2ZcbiAgICAgIC8vIHByb3BlcnR5IGludGVycG9sYXRpb25zKSwgc28gd2Ugc3VidHJhY3Qgb25lIGZyb20gdG90YWwgbnVtYmVyIG9mIGZvdW5kIGRlbGltaXRlcnNcbiAgICAgIGlmIChtYXRjaGVzICYmIChtYXRjaGVzLmxlbmd0aCAtIDEpID4gYmluZGluZ0luZGV4IC0gaWR4KSB7XG4gICAgICAgIHJldHVybiBjb25zdHJ1Y3REZXRhaWxzRm9ySW50ZXJwb2xhdGlvbihsVmlldywgaWR4LCBiaW5kaW5nSW5kZXgsIG1ldGEsIG5ld1ZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHtwcm9wTmFtZTogdW5kZWZpbmVkLCBvbGRWYWx1ZSwgbmV3VmFsdWV9O1xufVxuIl19
@@ -152,11 +152,11 @@ function validateMappings(bindingType, def, hostDirectiveBindings) {
152
152
  throw new RuntimeError(311 /* RuntimeErrorCode.HOST_DIRECTIVE_UNDEFINED_BINDING */, `Directive ${className} does not have an ${bindingType} with a public name of ${publicName}.`);
153
153
  }
154
154
  const remappedPublicName = hostDirectiveBindings[publicName];
155
- if (bindings.hasOwnProperty(remappedPublicName) &&
155
+ if (bindings.hasOwnProperty(remappedPublicName) && remappedPublicName !== publicName &&
156
156
  bindings[remappedPublicName] !== publicName) {
157
157
  throw new RuntimeError(312 /* RuntimeErrorCode.HOST_DIRECTIVE_CONFLICTING_ALIAS */, `Cannot alias ${bindingType} ${publicName} of host directive ${className} to ${remappedPublicName}, because it already has a different ${bindingType} with the same public name.`);
158
158
  }
159
159
  }
160
160
  }
161
161
  }
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdF9kaXJlY3RpdmVzX2ZlYXR1cmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9yZW5kZXIzL2ZlYXR1cmVzL2hvc3RfZGlyZWN0aXZlc19mZWF0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUMzQyxPQUFPLEVBQUMsWUFBWSxFQUFtQixNQUFNLGNBQWMsQ0FBQztBQUU1RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxlQUFlLEVBQUUsZUFBZSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBVS9EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUFDLGlCQUM2QjtJQUNuRSxPQUFPLENBQUMsVUFBaUMsRUFBRSxFQUFFO1FBQzNDLFVBQVUsQ0FBQyxxQkFBcUIsR0FBRyxxQkFBcUIsQ0FBQztRQUN6RCxVQUFVLENBQUMsY0FBYztZQUNyQixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3JGLE9BQU8sT0FBTyxHQUFHLEtBQUssVUFBVSxDQUFDLENBQUM7b0JBQzlCLEVBQUMsU0FBUyxFQUFFLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUM7b0JBQzVFO3dCQUNFLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsU0FBUyxD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QXFCLEVBQUU7UUFDOUMsSUFBSSxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ3hDLE1BQU0sSUFBSSxZQUFZLDhEQUVsQixhQUFhLFNBQVMscUJBQXFCLFdBQVcsMEJBQ2xELFVBQVUsR0FBRyxDQUFDLENBQUM7YUFDeEI7WUFFRCxNQUFNLGtCQUFrQixHQUFHLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBRTdELElBQUksUUFBUSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQztnQkFDM0MsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEtBQUssVUFBVSxFQUFFO2dCQUMvQyxNQUFNLElBQUksWUFBWSw4REFFbEIsZ0JBQWdCLFdBQVcsSUFBSSxVQUFVLHNCQUFzQixTQUFTLE9BQ3BFLGtCQUFrQix3Q0FDbEIsV0FBVyw2QkFBNkIsQ0FBQyxDQUFDO2FBQ25EO1NBQ0Y7S0FDRjtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7cmVzb2x2ZUZvcndhcmRSZWZ9IGZyb20gJy4uLy4uL2RpJztcbmltcG9ydCB7UnVudGltZUVycm9yLCBSdW50aW1lRXJyb3JDb2RlfSBmcm9tICcuLi8uLi9lcnJvcnMnO1xuaW1wb3J0IHtUeXBlfSBmcm9tICcuLi8uLi9pbnRlcmZhY2UvdHlwZSc7XG5pbXBvcnQge2Fzc2VydEVxdWFsfSBmcm9tICcuLi8uLi91dGlsL2Fzc2VydCc7XG5pbXBvcnQge0VNUFRZX09CSn0gZnJvbSAnLi4vLi4vdXRpbC9lbXB0eSc7XG5pbXBvcnQge2dldENvbXBvbmVudERlZiwgZ2V0RGlyZWN0aXZlRGVmfSBmcm9tICcuLi9kZWZpbml0aW9uJztcbmltcG9ydCB7RGlyZWN0aXZlRGVmLCBIb3N0RGlyZWN0aXZlQmluZGluZ01hcCwgSG9zdERpcmVjdGl2ZURlZiwgSG9zdERpcmVjdGl2ZURlZnN9IGZyb20gJy4uL2ludGVyZmFjZXMvZGVmaW5pdGlvbic7XG5cbi8qKiBWYWx1ZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBkZWZpbmUgYSBob3N0IGRpcmVjdGl2ZSB0aHJvdWdoIHRoZSBgSG9zdERpcmVjdGl2ZXNGZWF0dXJlYC4gKi9cbnR5cGUgSG9zdERpcmVjdGl2ZUNvbmZpZyA9IFR5cGU8dW5rbm93bj58e1xuICBkaXJlY3RpdmU6IFR5cGU8dW5rbm93bj47XG4gIGlucHV0cz86IHN0cmluZ1tdO1xuICBvdXRwdXRzPzogc3RyaW5nW107XG59O1xuXG4vKipcbiAqIFRoaXMgZmVhdHVyZSBhZGRzIHRoZSBob3N0IGRpcmVjdGl2ZXMgYmVoYXZpb3IgdG8gYSBkaXJlY3RpdmUgZGVmaW5pdGlvbiBieSBwYXRjaGluZyBhXG4gKiBmdW5jdGlvbiBvbnRvIGl0LiBUaGUgZXhwZWN0YXRpb24gaXMgdGhhdCB0aGUgcnVudGltZSB3aWxsIGludm9rZSB0aGUgZnVuY3Rpb24gZHVyaW5nXG4gKiBkaXJlY3RpdmUgbWF0Y2hpbmcuXG4gKlxuICogRm9yIGV4YW1wbGU6XG4gKiBgYGB0c1xuICogY2xhc3MgQ29tcG9uZW50V2l0aEhvc3REaXJlY3RpdmUge1xuICogICBzdGF0aWMgybVjbXAgPSBkZWZpbmVDb21wb25lbnQoe1xuICogICAgdHlwZTogQ29tcG9uZW50V2l0aEhvc3REaXJlY3RpdmUsXG4gKiAgICBmZWF0dXJlczogW8m1ybVIb3N0RGlyZWN0aXZlc0ZlYXR1cmUoW1xuICogICAgICBTaW1wbGVIb3N0RGlyZWN0aXZlLFxuICogICAgICB7ZGlyZWN0aXZlOiBBZHZhbmNlZEhvc3REaXJlY3RpdmUsIGlucHV0czogWydmb286IGFsaWFzJ10sIG91dHB1dHM6IFsnYmFyJ119LFxuICogICAgXSldXG4gKiAgfSk7XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBAY29kZUdlbkFwaVxuICovXG5leHBvcnQgZnVuY3Rpb24gybXJtUhvc3REaXJlY3RpdmVzRmVhdHVyZShyYXdIb3N0RGlyZWN0aXZlczogSG9zdERpcmVjdGl2ZUNvbmZpZ1tdfFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoKSA9PiBIb3N0RGlyZWN0aXZlQ29uZmlnW10pKSB7XG4gIHJldHVybiAoZGVmaW5pdGlvbjogRGlyZWN0aXZlRGVmPHVua25vd24+KSA9PiB7XG4gICAgZGVmaW5pdGlvbi5maW5kSG9zdERpcmVjdGl2ZURlZnMgPSBmaW5kSG9zdERpcmVjdGl2ZURlZnM7XG4gICAgZGVmaW5pdGlvbi5ob3N0RGlyZWN0aXZlcyA9XG4gICAgICAgIChBcnJheS5pc0FycmF5KHJhd0hvc3REaXJlY3RpdmVzKSA/IHJhd0hvc3REaXJlY3RpdmVzIDogcmF3SG9zdERpcmVjdGl2ZXMoKSkubWFwKGRpciA9PiB7XG4gICAgICAgICAgcmV0dXJuIHR5cGVvZiBkaXIgPT09ICdmdW5jdGlvbicgP1xuICAgICAgICAgICAgICB7ZGlyZWN0aXZlOiByZXNvbHZlRm9yd2FyZFJlZihkaXIpLCBpbnB1dHM6IEVNUFRZX09CSiwgb3V0cHV0czogRU1QVFlfT0JKfSA6XG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBkaXJlY3RpdmU6IHJlc29sdmVGb3J3YXJkUmVmKGRpci5kaXJlY3RpdmUpLFxuICAgICAgICAgICAgICAgIGlucHV0czogYmluZGluZ0FycmF5VG9NYXAoZGlyLmlucHV0cyksXG4gICAgICAgICAgICAgICAgb3V0cHV0czogYmluZGluZ0FycmF5VG9NYXAoZGlyLm91dHB1dHMpXG4gICAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICB9O1xufVxuXG5mdW5jdGlvbiBmaW5kSG9zdERpcmVjdGl2ZURlZnMoXG4gICAgY3VycmVudERlZjogRGlyZWN0aXZlRGVmPHVua25vd24+LCBtYXRjaGVkRGVmczogRGlyZWN0aXZlRGVmPHVua25vd24+W10sXG4gICAgaG9zdERpcmVjdGl2ZURlZnM6IEhvc3REaXJlY3RpdmVEZWZzKTogdm9pZCB7XG4gIGlmIChjdXJyZW50RGVmLmhvc3REaXJlY3RpdmVzICE9PSBudWxsKSB7XG4gICAgZm9yIChjb25zdCBob3N0RGlyZWN0aXZlQ29uZmlnIG9mIGN1cnJlbnREZWYuaG9zdERpcmVjdGl2ZXMpIHtcbiAgICAgIGNvbnN0IGhvc3REaXJlY3RpdmVEZWYgPSBnZXREaXJlY3RpdmVEZWYoaG9zdERpcmVjdGl2ZUNvbmZpZy5kaXJlY3RpdmUpITtcblxuICAgICAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkge1xuICAgICAgICB2YWxpZGF0ZUhvc3REaXJlY3RpdmUoaG9zdERpcmVjdGl2ZUNvbmZpZywgaG9zdERpcmVjdGl2ZURlZiwgbWF0Y2hlZERlZnMpO1xuICAgICAgfVxuXG4gICAgICAvLyBXZSBuZWVkIHRvIHBhdGNoIHRoZSBgZGVjbGFyZWRJbnB1dHNgIHNvIHRoYXRcbiAgICAgIC8vIGBuZ09uQ2hhbmdlc2AgY2FuIG1hcCB0aGUgcHJvcGVydGllcyBjb3JyZWN0bHkuXG4gICAgICBwYXRjaERlY2xhcmVkSW5wdXRzKGhvc3REaXJlY3RpdmVEZWYuZGVjbGFyZWRJbnB1dHMsIGhvc3REaXJlY3RpdmVDb25maWcuaW5wdXRzKTtcblxuICAgICAgLy8gSG9zdCBkaXJlY3RpdmVzIGV4ZWN1dGUgYmVmb3JlIHRoZSBob3N0IHNvIHRoYXQgaXRzIGhvc3QgYmluZGluZ3MgY2FuIGJlIG92ZXJ3cml0dGVuLlxuICAgICAgZmluZEhvc3REaXJlY3RpdmVEZWZzKGhvc3REaXJlY3RpdmVEZWYsIG1hdGNoZWREZWZzLCBob3N0RGlyZWN0aXZlRGVmcyk7XG4gICAgICBob3N0RGlyZWN0aXZlRGVmcy5zZXQoaG9zdERpcmVjdGl2ZURlZiwgaG9zdERpcmVjdGl2ZUNvbmZpZyk7XG4gICAgICBtYXRjaGVkRGVmcy5wdXNoKGhvc3REaXJlY3RpdmVEZWYpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIGFycmF5IGluIHRoZSBmb3JtIG9mIGBbJ3B1YmxpY05hbWUnLCAnYWxpYXMnLCAnb3RoZXJQdWJsaWNOYW1lJywgJ290aGVyQWxpYXMnXWAgaW50b1xuICogYSBtYXAgaW4gdGhlIGZvcm0gb2YgYHtwdWJsaWNOYW1lOiAnYWxpYXMnLCBvdGhlclB1YmxpY05hbWU6ICdvdGhlckFsaWFzJ31gLlxuICovXG5mdW5jdGlvbiBiaW5kaW5nQXJyYXlUb01hcChiaW5kaW5nczogc3RyaW5nW118dW5kZWZpbmVkKTogSG9zdERpcmVjdGl2ZUJpbmRpbmdNYXAge1xuICBpZiAoYmluZGluZ3MgPT09IHVuZGVmaW5lZCB8fCBiaW5kaW5ncy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gRU1QVFlfT0JKO1xuICB9XG5cbiAgY29uc3QgcmVzdWx0OiBIb3N0RGlyZWN0aXZlQmluZGluZ01hcCA9IHt9O1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYmluZGluZ3MubGVuZ3RoOyBpICs9IDIpIHtcbiAgICByZXN1bHRbYmluZGluZ3NbaV1dID0gYmluZGluZ3NbaSArIDFdO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBgbmdPbkNoYW5nZXNgIGhhcyBzb21lIGxlZnRvdmVyIGxlZ2FjeSBWaWV3RW5naW5lIGJlaGF2aW9yIHdoZXJlIHRoZSBrZXlzIGluc2lkZSB0aGVcbiAqIGBTaW1wbGVDaGFuZ2VzYCBldmVudCByZWZlciB0byB0aGUgKmRlY2xhcmVkKiBuYW1lIG9mIHRoZSBpbnB1dCwgbm90IGl0cyBwdWJsaWMgbmFtZSBvciBpdHNcbiAqIG1pbmlmaWVkIG5hbWUuIEUuZy4gaW4gYEBJbnB1dCgnYWxpYXMnKSBmb286IHN0cmluZ2AsIHRoZSBuYW1lIGluIHRoZSBgU2ltcGxlQ2hhbmdlc2Agb2JqZWN0XG4gKiB3aWxsIGFsd2F5cyBiZSBgZm9vYCwgYW5kIG5vdCBgYWxpYXNgIG9yIHRoZSBtaW5pZmllZCBuYW1lIG9mIGBmb29gIGluIGFwcHMgdXNpbmcgcHJvcGVydHlcbiAqIG1pbmlmaWNhdGlvbi5cbiAqXG4gKiBUaGlzIGlzIGFjaGlldmVkIHRocm91Z2ggdGhlIGBEaXJlY3RpdmVEZWYuZGVjbGFyZWRJbnB1dHNgIG1hcCB0aGF0IGlzIGNvbnN0cnVjdGVkIHdoZW4gdGhlXG4gKiBkZWZpbml0aW9uIGlzIGRlY2xhcmVkLiBXaGVuIGEgcHJvcGVydHkgaXMgd3JpdHRlbiB0byB0aGUgZGlyZWN0aXZlIGluc3RhbmNlLCB0aGVcbiAqIGBOZ09uQ2hhbmdlc0ZlYXR1cmVgIHdpbGwgdHJ5IHRvIHJlbWFwIHRoZSBwcm9wZXJ0eSBuYW1lIGJlaW5nIHdyaXR0ZW4gdG8gdXNpbmcgdGhlXG4gKiBgZGVjbGFyZWRJbnB1dHNgLlxuICpcbiAqIFNpbmNlIHRoZSBob3N0IGRpcmVjdGl2ZSBpbnB1dCByZW1hcHBpbmcgaGFwcGVucyBkdXJpbmcgZGlyZWN0aXZlIG1hdGNoaW5nLCBgZGVjbGFyZWRJbnB1dHNgXG4gKiB3b24ndCBjb250YWluIHRoZSBuZXcgYWxpYXMgdGhhdCB0aGUgaW5wdXQgaXMgYXZhaWxhYmxlIHVuZGVyLiBUaGlzIGZ1bmN0aW9uIGFkZHJlc3NlcyB0aGVcbiAqIGlzc3VlIGJ5IHBhdGNoaW5nIHRoZSBob3N0IGRpcmVjdGl2ZSBhbGlhc2VzIHRvIHRoZSBgZGVjbGFyZWRJbnB1dHNgLiBUaGVyZSBpcyAqbm90KiBhIHJpc2sgb2ZcbiAqIHRoaXMgcGF0Y2hpbmcgYWNjaWRlbnRhbGx5IGludHJvZHVjaW5nIG5ldyBpbnB1dHMgdG8gdGhlIGhvc3QgZGlyZWN0aXZlLCBiZWNhdXNlIGBkZWNsYXJlZElucHV0c2BcbiAqIGlzIHVzZWQgKm9ubHkqIGJ5IHRoZSBgTmdPbkNoYW5nZXNGZWF0dXJlYCB3aGVuIGRldGVybWluaW5nIHdoYXQgbmFtZSBpcyB1c2VkIGluIHRoZVxuICogYFNpbXBsZUNoYW5nZXNgIG9iamVjdCB3aGljaCB3b24ndCBiZSByZWFjaGVkIGlmIGFuIGlucHV0IGRvZXNuJ3QgZXhpc3QuXG4gKi9cbmZ1bmN0aW9uIHBhdGNoRGVjbGFyZWRJbnB1dHMoXG4gICAgZGVjbGFyZWRJbnB1dHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sIGV4cG9zZWRJbnB1dHM6IEhvc3REaXJlY3RpdmVCaW5kaW5nTWFwKTogdm9pZCB7XG4gIGZvciAoY29uc3QgcHVibGljTmFtZSBpbiBleHBvc2VkSW5wdXRzKSB7XG4gICAgaWYgKGV4cG9zZWRJbnB1dHMuaGFzT3duUHJvcGVydHkocHVibGljTmFtZSkpIHtcbiAgICAgIGNvbnN0IHJlbWFwcGVkUHVibGljTmFtZSA9IGV4cG9zZWRJbnB1dHNbcHVibGljTmFtZV07XG4gICAgICBjb25zdCBwcml2YXRlTmFtZSA9IGRlY2xhcmVkSW5wdXRzW3B1YmxpY05hbWVdO1xuXG4gICAgICAvLyBXZSAqdGVjaG5pY2FsbHkqIHNob3VsZG4ndCBiZSBhYmxlIHRvIGhpdCB0aGlzIGNhc2UgYmVjYXVzZSB3ZSBjYW4ndCBoYXZlIG11bHRpcGxlXG4gICAgICAvLyBpbnB1dHMgb24gdGhlIHNhbWUgcHJvcGVydHkgYW5kIHdlIGhhdmUgdmFsaWRhdGlvbnMgYWdhaW5zdCBjb25mbGljdGluZyBhbGlhc2VzIGluXG4gICAgICAvLyBgdmFsaWRhdGVNYXBwaW5nc2AuIElmIHdlIHNvbWVob3cgZGlkLCBpdCB3b3VsZCBsZWFkIHRvIGBuZ09uQ2hhbmdlc2AgYmVpbmcgaW52b2tlZFxuICAgICAgLy8gd2l0aCB0aGUgd3JvbmcgbmFtZSBzbyB3ZSBoYXZlIGEgbm9uLXVzZXItZnJpZW5kbHkgYXNzZXJ0aW9uIGhlcmUganVzdCBpbiBjYXNlLlxuICAgICAgaWYgKCh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpICYmXG4gICAgICAgICAgZGVjbGFyZWRJbnB1dHMuaGFzT3duUHJvcGVydHkocmVtYXBwZWRQdWJsaWNOYW1lKSkge1xuICAgICAgICBhc3NlcnRFcXVhbChcbiAgICAgICAgICAgIGRlY2xhcmVkSW5wdXRzW3JlbWFwcGVkUHVibGljTmFtZV0sIGRlY2xhcmVkSW5wdXRzW3B1YmxpY05hbWVdLFxuICAgICAgICAgICAgYENvbmZsaWN0aW5nIGhvc3QgZGlyZWN0aXZlIGlucHV0IGFsaWFzICR7cHVibGljTmFtZX0uYCk7XG4gICAgICB9XG5cbiAgICAgIGRlY2xhcmVkSW5wdXRzW3JlbWFwcGVkUHVibGljTmFtZV0gPSBwcml2YXRlTmFtZTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBWZXJpZmllcyB0aGF0IHRoZSBob3N0IGRpcmVjdGl2ZSBoYXMgYmVlbiBjb25maWd1cmVkIGNvcnJlY3RseS5cbiAqIEBwYXJhbSBob3N0RGlyZWN0aXZlQ29uZmlnIEhvc3QgZGlyZWN0aXZlIGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICogQHBhcmFtIGRpcmVjdGl2ZURlZiBEaXJlY3RpdmUgZGVmaW5pdGlvbiBvZiB0aGUgaG9zdCBkaXJlY3RpdmUuXG4gKiBAcGFyYW0gbWF0Y2hlZERlZnMgRGlyZWN0aXZlcyB0aGF0IGhhdmUgYmVlbiBtYXRjaGVkIHNvIGZhci5cbiAqL1xuZnVuY3Rpb24gdmFsaWRhdGVIb3N0RGlyZWN0aXZlKFxuICAgIGhvc3REaXJlY3RpdmVDb25maWc6IEhvc3REaXJlY3RpdmVEZWY8dW5rbm93bj4sIGRpcmVjdGl2ZURlZjogRGlyZWN0aXZlRGVmPGFueT58bnVsbCxcbiAgICBtYXRjaGVkRGVmczogRGlyZWN0aXZlRGVmPHVua25vd24+W10pOiBhc3NlcnRzIGRpcmVjdGl2ZURlZiBpcyBEaXJlY3RpdmVEZWY8dW5rbm93bj4ge1xuICBjb25zdCB0eXBlID0gaG9zdERpcmVjdGl2ZUNvbmZpZy5kaXJlY3RpdmU7XG5cbiAgaWYgKGRpcmVjdGl2ZURlZiA9PT0gbnVsbCkge1xuICAgIGlmIChnZXRDb21wb25lbnREZWYodHlwZSkgIT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBSdW50aW1lRXJyb3IoXG4gICAgICAgICAgUnVudGltZUVycm9yQ29kZS5IT1NUX0RJUkVDVElWRV9DT01QT05FTlQsXG4gICAgICAgICAgYEhvc3QgZGlyZWN0aXZlICR7dHlwZS5uYW1lfSBjYW5ub3QgYmUgYSBjb21wb25lbnQuYCk7XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IFJ1bnRpbWVFcnJvcihcbiAgICAgICAgUnVudGltZUVycm9yQ29kZS5IT1NUX0RJUkVDVElWRV9VTlJFU09MVkFCTEUsXG4gICAgICAgIGBDb3VsZCBub3QgcmVzb2x2ZSBtZXRhZGF0YSBmb3IgaG9zdCBkaXJlY3RpdmUgJHt0eXBlLm5hbWV9LiBgICtcbiAgICAgICAgICAgIGBNYWtlIHN1cmUgdGhhdCB0aGUgJHt0eXBlLm5hbWV9IGNsYXNzIGlzIGFubm90YXRlZCB3aXRoIGFuIEBEaXJlY3RpdmUgZGVjb3JhdG9yLmApO1xuICB9XG5cbiAgaWYgKCFkaXJlY3RpdmVEZWYuc3RhbmRhbG9uZSkge1xuICAgIHRocm93IG5ldyBSdW50aW1lRXJyb3IoXG4gICAgICAgIFJ1bnRpbWVFcnJvckNvZGUuSE9TVF9ESVJFQ1RJVkVfTk9UX1NUQU5EQUxPTkUsXG4gICAgICAgIGBIb3N0IGRpcmVjdGl2ZSAke2RpcmVjdGl2ZURlZi50eXBlLm5hbWV9IG11c3QgYmUgc3RhbmRhbG9uZS5gKTtcbiAgfVxuXG4gIGlmIChtYXRjaGVkRGVmcy5pbmRleE9mKGRpcmVjdGl2ZURlZikgPiAtMSkge1xuICAgIHRocm93IG5ldyBSdW50aW1lRXJyb3IoXG4gICAgICAgIFJ1bnRpbWVFcnJvckNvZGUuRFVQTElDQVRFX0RJUkVDVElUVkUsXG4gICAgICAgIGBEaXJlY3RpdmUgJHtkaXJlY3RpdmVEZWYudHlwZS5uYW1lfSBtYXRjaGVzIG11bHRpcGxlIHRpbWVzIG9uIHRoZSBzYW1lIGVsZW1lbnQuIGAgK1xuICAgICAgICAgICAgYERpcmVjdGl2ZXMgY2FuIG9ubHkgbWF0Y2ggYW4gZWxlbWVudCBvbmNlLmApO1xuICB9XG5cbiAgdmFsaWRhdGVNYXBwaW5ncygnaW5wdXQnLCBkaXJlY3RpdmVEZWYsIGhvc3REaXJlY3RpdmVDb25maWcuaW5wdXRzKTtcbiAgdmFsaWRhdGVNYXBwaW5ncygnb3V0cHV0JywgZGlyZWN0aXZlRGVmLCBob3N0RGlyZWN0aXZlQ29uZmlnLm91dHB1dHMpO1xufVxuXG4vKipcbiAqIENoZWNrcyB0aGF0IHRoZSBob3N0IGRpcmVjdGl2ZSBpbnB1dHMvb3V0cHV0cyBjb25maWd1cmF0aW9uIGlzIHZhbGlkLlxuICogQHBhcmFtIGJpbmRpbmdUeXBlIEtpbmQgb2YgYmluZGluZyB0aGF0IGlzIGJlaW5nIHZhbGlkYXRlZC4gVXNlZCBpbiB0aGUgZXJyb3IgbWVzc2FnZS5cbiAqIEBwYXJhbSBkZWYgRGVmaW5pdGlvbiBvZiB0aGUgaG9zdCBkaXJlY3RpdmUgdGhhdCBpcyBiZWluZyB2YWxpZGF0ZWQgYWdhaW5zdC5cbiAqIEBwYXJhbSBob3N0RGlyZWN0aXZlQmluZGluZ3MgSG9zdCBkaXJlY3RpdmUgbWFwcGluZyBvYmplY3QgdGhhdCBzaG9sZCBiZSB2YWxpZGF0ZWQuXG4gKi9cbmZ1bmN0aW9uIHZhbGlkYXRlTWFwcGluZ3MoXG4gICAgYmluZGluZ1R5cGU6ICdpbnB1dCd8J291dHB1dCcsIGRlZjogRGlyZWN0aXZlRGVmPHVua25vd24+LFxuICAgIGhvc3REaXJlY3RpdmVCaW5kaW5nczogSG9zdERpcmVjdGl2ZUJpbmRpbmdNYXApIHtcbiAgY29uc3QgY2xhc3NOYW1lID0gZGVmLnR5cGUubmFtZTtcbiAgY29uc3QgYmluZGluZ3M6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSBiaW5kaW5nVHlwZSA9PT0gJ2lucHV0JyA/IGRlZi5pbnB1dHMgOiBkZWYub3V0cHV0cztcblxuICBmb3IgKGNvbnN0IHB1YmxpY05hbWUgaW4gaG9zdERpcmVjdGl2ZUJpbmRpbmdzKSB7XG4gICAgaWYgKGhvc3REaXJlY3RpdmVCaW5kaW5ncy5oYXNPd25Qcm9wZXJ0eShwdWJsaWNOYW1lKSkge1xuICAgICAgaWYgKCFiaW5kaW5ncy5oYXNPd25Qcm9wZXJ0eShwdWJsaWNOYW1lKSkge1xuICAgICAgICB0aHJvdyBuZXcgUnVudGltZUVycm9yKFxuICAgICAgICAgICAgUnVudGltZUVycm9yQ29kZS5IT1NUX0RJUkVDVElWRV9VTkRFRklORURfQklORElORyxcbiAgICAgICAgICAgIGBEaXJlY3RpdmUgJHtjbGFzc05hbWV9IGRvZXMgbm90IGhhdmUgYW4gJHtiaW5kaW5nVHlwZX0gd2l0aCBhIHB1YmxpYyBuYW1lIG9mICR7XG4gICAgICAgICAgICAgICAgcHVibGljTmFtZX0uYCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlbWFwcGVkUHVibGljTmFtZSA9IGhvc3REaXJlY3RpdmVCaW5kaW5nc1twdWJsaWNOYW1lXTtcblxuICAgICAgaWYgKGJpbmRpbmdzLmhhc093blByb3BlcnR5KHJlbWFwcGVkUHVibGljTmFtZSkgJiZcbiAgICAgICAgICBiaW5kaW5nc1tyZW1hcHBlZFB1YmxpY05hbWVdICE9PSBwdWJsaWNOYW1lKSB7XG4gICAgICAgIHRocm93IG5ldyBSdW50aW1lRXJyb3IoXG4gICAgICAgICAgICBSdW50aW1lRXJyb3JDb2RlLkhPU1RfRElSRUNUSVZFX0NPTkZMSUNUSU5HX0FMSUFTLFxuICAgICAgICAgICAgYENhbm5vdCBhbGlhcyAke2JpbmRpbmdUeXBlfSAke3B1YmxpY05hbWV9IG9mIGhvc3QgZGlyZWN0aXZlICR7Y2xhc3NOYW1lfSB0byAke1xuICAgICAgICAgICAgICAgIHJlbWFwcGVkUHVibGljTmFtZX0sIGJlY2F1c2UgaXQgYWxyZWFkeSBoYXMgYSBkaWZmZXJlbnQgJHtcbiAgICAgICAgICAgICAgICBiaW5kaW5nVHlwZX0gd2l0aCB0aGUgc2FtZSBwdWJsaWMgbmFtZS5gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdF9kaXJlY3RpdmVzX2ZlYXR1cmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9yZW5kZXIzL2ZlYXR1cmVzL2hvc3RfZGlyZWN0aXZlc19mZWF0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUMzQyxPQUFPLEVBQUMsWUFBWSxFQUFtQixNQUFNLGNBQWMsQ0FBQztBQUU1RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxlQUFlLEVBQUUsZUFBZSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBVS9EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUFDLGlCQUM2QjtJQUNuRSxPQUFPLENBQUMsVUFBaUMsRUFBRSxFQUFFO1FBQzNDLFVBQVUsQ0FBQyxxQkFBcUIsR0FBRyxxQkFBcUIsQ0FBQztRQUN6RCxVQUFVLENBQUMsY0FBYztZQUNyQixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3JGLE9BQU8sT0FBTyxHQUFHLEtBQUssVUFBVSxDQUFDLENBQUM7b0JBQzlCLEVBQUMsU0FBUyxFQUFFLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUM7b0JBQzVFO3dCQUNFLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDO3dCQUMzQyxNQUFNLEVBQUUsaUJBQWlCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQzt3QkFDckMsT0FBTyxFQUFFLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7cUJBQ3hDLENBQUM7WUFDUixDQUFDLENBQUMsQ0FBQztJQUNULENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLHFCQUFxQixDQUMxQixVQUFpQyxFQUFFLFdBQW9DLEVBQ3ZFLGlCQUFvQztJQUN0QyxJQUFJLFVBQVUsQ0FBQyxjQUFjLEtBQUssSUFBSSxFQUFFO1FBQ3RDLEtBQUssTUFBTSxtQkFBbUIsSUFBSSxVQUFVLENBQUMsY0FBYyxFQUFFO1lBQzNELE1BQU0sZ0JBQWdCLEdBQUcsZUFBZSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBRSxDQUFDO1lBRXpFLElBQUksT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsRUFBRTtnQkFDakQscUJBQXFCLENBQUMsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDLENBQUM7YUFDM0U7WUFFRCxnREFBZ0Q7WUFDaEQsa0RBQWtEO1lBQ2xELG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLGNBQWMsRUFBRSxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUVqRix3RkFBd0Y7WUFDeEYscUJBQXFCLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFDeEUsaUJBQWlCLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLG1CQUFtQixDQUFDLENBQUM7WUFDN0QsV0FBVyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ3BDO0tBQ0Y7QUFDSCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxpQkFBaUIsQ0FBQyxRQUE0QjtJQUNyRCxJQUFJLFFBQVEsS0FBSyxTQUFTLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDbkQsT0FBTyxTQUFTLENBQUM7S0FDbEI7SUFFRCxNQUFNLE1BQU0sR0FBNEIsRUFBRSxDQUFDO0lBRTNDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDM0MsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7S0FDdkM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUNILFNBQVMsbUJBQW1CLENBQ3hCLGNBQXNDLEVBQUUsYUFBc0M7SUFDaEYsS0FBSyxNQUFNLFVBQVUsSUFBSSxhQUFhLEVBQUU7UUFDdEMsSUFBSSxhQUFhLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQzVDLE1BQU0sa0JBQWtCLEdBQUcsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3JELE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUUvQyxxRkFBcUY7WUFDckYscUZBQXFGO1lBQ3JGLHNGQUFzRjtZQUN0RixrRkFBa0Y7WUFDbEYsSUFBSSxDQUFDLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLENBQUM7Z0JBQy9DLGNBQWMsQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsRUFBRTtnQkFDckQsV0FBVyxDQUNQLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxVQUFVLENBQUMsRUFDOUQsMENBQTBDLFVBQVUsR0FBRyxDQUFDLENBQUM7YUFDOUQ7WUFFRCxjQUFjLENBQUMsa0JBQWtCLENBQUMsR0FBRyxXQUFXLENBQUM7U0FDbEQ7S0FDRjtBQUNILENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMscUJBQXFCLENBQzFCLG1CQUE4QyxFQUFFLFlBQW9DLEVBQ3BGLFdBQW9DO0lBQ3RDLE1BQU0sSUFBSSxHQUFHLG1CQUFtQixDQUFDLFNBQVMsQ0FBQztJQUUzQyxJQUFJLFlBQVksS0FBSyxJQUFJLEVBQUU7UUFDekIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ2xDLE1BQU0sSUFBSSxZQUFZLHNEQUVsQixrQkFBa0IsSUFBSSxDQUFDLElBQUkseUJBQXlCLENBQUMsQ0FBQztTQUMzRDtRQUVELE1BQU0sSUFBSSxZQUFZLHlEQUVsQixpREFBaUQsSUFBSSxDQUFDLElBQUksSUFBSTtZQUMxRCxzQkFBc0IsSUFBSSxDQUFDLElBQUksbURBQW1ELENBQUMsQ0FBQztLQUM3RjtJQUVELElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFO1FBQzVCLE1BQU0sSUFBSSxZQUFZLDJEQUVsQixrQkFBa0IsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLHNCQUFzQixDQUFDLENBQUM7S0FDckU7SUFFRCxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7UUFDMUMsTUFBTSxJQUFJLFlBQVksa0RBRWxCLGFBQWEsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLCtDQUErQztZQUM5RSw0Q0FBNEMsQ0FBQyxDQUFDO0tBQ3ZEO0lBRUQsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwRSxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3hFLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMsZ0JBQWdCLENBQ3JCLFdBQTZCLEVBQUUsR0FBMEIsRUFDekQscUJBQThDO0lBQ2hELE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ2hDLE1BQU0sUUFBUSxHQUEyQixXQUFXLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO0lBRTVGLEtBQUssTUFBTSxVQUFVLElBQUkscUJBQXFCLEVBQUU7UUFDOUMsSUFBSSxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ3hDLE1BQU0sSUFBSSxZQUFZLDhEQUVsQixhQUFhLFNBQVMscUJBQXFCLFdBQVcsMEJBQ2xELFVBQVUsR0FBRyxDQUFDLENBQUM7YUFDeEI7WUFFRCxNQUFNLGtCQUFrQixHQUFHLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBRTdELElBQUksUUFBUSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLGtCQUFrQixLQUFLLFVBQVU7Z0JBQ2hGLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLFVBQVUsRUFBRTtnQkFDL0MsTUFBTSxJQUFJLFlBQVksOERBRWxCLGdCQUFnQixXQUFXLElBQUksVUFBVSxzQkFBc0IsU0FBUyxPQUNwRSxrQkFBa0Isd0NBQ2xCLFdBQVcsNkJBQTZCLENBQUMsQ0FBQzthQUNuRDtTQUNGO0tBQ0Y7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge3Jlc29sdmVGb3J3YXJkUmVmfSBmcm9tICcuLi8uLi9kaSc7XG5pbXBvcnQge1J1bnRpbWVFcnJvciwgUnVudGltZUVycm9yQ29kZX0gZnJvbSAnLi4vLi4vZXJyb3JzJztcbmltcG9ydCB7VHlwZX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlL3R5cGUnO1xuaW1wb3J0IHthc3NlcnRFcXVhbH0gZnJvbSAnLi4vLi4vdXRpbC9hc3NlcnQnO1xuaW1wb3J0IHtFTVBUWV9PQkp9IGZyb20gJy4uLy4uL3V0aWwvZW1wdHknO1xuaW1wb3J0IHtnZXRDb21wb25lbnREZWYsIGdldERpcmVjdGl2ZURlZn0gZnJvbSAnLi4vZGVmaW5pdGlvbic7XG5pbXBvcnQge0RpcmVjdGl2ZURlZiwgSG9zdERpcmVjdGl2ZUJpbmRpbmdNYXAsIEhvc3REaXJlY3RpdmVEZWYsIEhvc3REaXJlY3RpdmVEZWZzfSBmcm9tICcuLi9pbnRlcmZhY2VzL2RlZmluaXRpb24nO1xuXG4vKiogVmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGVmaW5lIGEgaG9zdCBkaXJlY3RpdmUgdGhyb3VnaCB0aGUgYEhvc3REaXJlY3RpdmVzRmVhdHVyZWAuICovXG50eXBlIEhvc3REaXJlY3RpdmVDb25maWcgPSBUeXBlPHVua25vd24+fHtcbiAgZGlyZWN0aXZlOiBUeXBlPHVua25vd24+O1xuICBpbnB1dHM/OiBzdHJpbmdbXTtcbiAgb3V0cHV0cz86IHN0cmluZ1tdO1xufTtcblxuLyoqXG4gKiBUaGlzIGZlYXR1cmUgYWRkcyB0aGUgaG9zdCBkaXJlY3RpdmVzIGJlaGF2aW9yIHRvIGEgZGlyZWN0aXZlIGRlZmluaXRpb24gYnkgcGF0Y2hpbmcgYVxuICogZnVuY3Rpb24gb250byBpdC4gVGhlIGV4cGVjdGF0aW9uIGlzIHRoYXQgdGhlIHJ1bnRpbWUgd2lsbCBpbnZva2UgdGhlIGZ1bmN0aW9uIGR1cmluZ1xuICogZGlyZWN0aXZlIG1hdGNoaW5nLlxuICpcbiAqIEZvciBleGFtcGxlOlxuICogYGBgdHNcbiAqIGNsYXNzIENvbXBvbmVudFdpdGhIb3N0RGlyZWN0aXZlIHtcbiAqICAgc3RhdGljIMm1Y21wID0gZGVmaW5lQ29tcG9uZW50KHtcbiAqICAgIHR5cGU6IENvbXBvbmVudFdpdGhIb3N0RGlyZWN0aXZlLFxuICogICAgZmVhdHVyZXM6IFvJtcm1SG9zdERpcmVjdGl2ZXNGZWF0dXJlKFtcbiAqICAgICAgU2ltcGxlSG9zdERpcmVjdGl2ZSxcbiAqICAgICAge2RpcmVjdGl2ZTogQWR2YW5jZWRIb3N0RGlyZWN0aXZlLCBpbnB1dHM6IFsnZm9vOiBhbGlhcyddLCBvdXRwdXRzOiBbJ2JhciddfSxcbiAqICAgIF0pXVxuICogIH0pO1xuICogfVxuICogYGBgXG4gKlxuICogQGNvZGVHZW5BcGlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIMm1ybVIb3N0RGlyZWN0aXZlc0ZlYXR1cmUocmF3SG9zdERpcmVjdGl2ZXM6IEhvc3REaXJlY3RpdmVDb25maWdbXXxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKCkgPT4gSG9zdERpcmVjdGl2ZUNvbmZpZ1tdKSkge1xuICByZXR1cm4gKGRlZmluaXRpb246IERpcmVjdGl2ZURlZjx1bmtub3duPikgPT4ge1xuICAgIGRlZmluaXRpb24uZmluZEhvc3REaXJlY3RpdmVEZWZzID0gZmluZEhvc3REaXJlY3RpdmVEZWZzO1xuICAgIGRlZmluaXRpb24uaG9zdERpcmVjdGl2ZXMgPVxuICAgICAgICAoQXJyYXkuaXNBcnJheShyYXdIb3N0RGlyZWN0aXZlcykgPyByYXdIb3N0RGlyZWN0aXZlcyA6IHJhd0hvc3REaXJlY3RpdmVzKCkpLm1hcChkaXIgPT4ge1xuICAgICAgICAgIHJldHVybiB0eXBlb2YgZGlyID09PSAnZnVuY3Rpb24nID9cbiAgICAgICAgICAgICAge2RpcmVjdGl2ZTogcmVzb2x2ZUZvcndhcmRSZWYoZGlyKSwgaW5wdXRzOiBFTVBUWV9PQkosIG91dHB1dHM6IEVNUFRZX09CSn0gOlxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGlyZWN0aXZlOiByZXNvbHZlRm9yd2FyZFJlZihkaXIuZGlyZWN0aXZlKSxcbiAgICAgICAgICAgICAgICBpbnB1dHM6IGJpbmRpbmdBcnJheVRvTWFwKGRpci5pbnB1dHMpLFxuICAgICAgICAgICAgICAgIG91dHB1dHM6IGJpbmRpbmdBcnJheVRvTWFwKGRpci5vdXRwdXRzKVxuICAgICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gZmluZEhvc3REaXJlY3RpdmVEZWZzKFxuICAgIGN1cnJlbnREZWY6IERpcmVjdGl2ZURlZjx1bmtub3duPiwgbWF0Y2hlZERlZnM6IERpcmVjdGl2ZURlZjx1bmtub3duPltdLFxuICAgIGhvc3REaXJlY3RpdmVEZWZzOiBIb3N0RGlyZWN0aXZlRGVmcyk6IHZvaWQge1xuICBpZiAoY3VycmVudERlZi5ob3N0RGlyZWN0aXZlcyAhPT0gbnVsbCkge1xuICAgIGZvciAoY29uc3QgaG9zdERpcmVjdGl2ZUNvbmZpZyBvZiBjdXJyZW50RGVmLmhvc3REaXJlY3RpdmVzKSB7XG4gICAgICBjb25zdCBob3N0RGlyZWN0aXZlRGVmID0gZ2V0RGlyZWN0aXZlRGVmKGhvc3REaXJlY3RpdmVDb25maWcuZGlyZWN0aXZlKSE7XG5cbiAgICAgIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcbiAgICAgICAgdmFsaWRhdGVIb3N0RGlyZWN0aXZlKGhvc3REaXJlY3RpdmVDb25maWcsIGhvc3REaXJlY3RpdmVEZWYsIG1hdGNoZWREZWZzKTtcbiAgICAgIH1cblxuICAgICAgLy8gV2UgbmVlZCB0byBwYXRjaCB0aGUgYGRlY2xhcmVkSW5wdXRzYCBzbyB0aGF0XG4gICAgICAvLyBgbmdPbkNoYW5nZXNgIGNhbiBtYXAgdGhlIHByb3BlcnRpZXMgY29ycmVjdGx5LlxuICAgICAgcGF0Y2hEZWNsYXJlZElucHV0cyhob3N0RGlyZWN0aXZlRGVmLmRlY2xhcmVkSW5wdXRzLCBob3N0RGlyZWN0aXZlQ29uZmlnLmlucHV0cyk7XG5cbiAgICAgIC8vIEhvc3QgZGlyZWN0aXZlcyBleGVjdXRlIGJlZm9yZSB0aGUgaG9zdCBzbyB0aGF0IGl0cyBob3N0IGJpbmRpbmdzIGNhbiBiZSBvdmVyd3JpdHRlbi5cbiAgICAgIGZpbmRIb3N0RGlyZWN0aXZlRGVmcyhob3N0RGlyZWN0aXZlRGVmLCBtYXRjaGVkRGVmcywgaG9zdERpcmVjdGl2ZURlZnMpO1xuICAgICAgaG9zdERpcmVjdGl2ZURlZnMuc2V0KGhvc3REaXJlY3RpdmVEZWYsIGhvc3REaXJlY3RpdmVDb25maWcpO1xuICAgICAgbWF0Y2hlZERlZnMucHVzaChob3N0RGlyZWN0aXZlRGVmKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBhcnJheSBpbiB0aGUgZm9ybSBvZiBgWydwdWJsaWNOYW1lJywgJ2FsaWFzJywgJ290aGVyUHVibGljTmFtZScsICdvdGhlckFsaWFzJ11gIGludG9cbiAqIGEgbWFwIGluIHRoZSBmb3JtIG9mIGB7cHVibGljTmFtZTogJ2FsaWFzJywgb3RoZXJQdWJsaWNOYW1lOiAnb3RoZXJBbGlhcyd9YC5cbiAqL1xuZnVuY3Rpb24gYmluZGluZ0FycmF5VG9NYXAoYmluZGluZ3M6IHN0cmluZ1tdfHVuZGVmaW5lZCk6IEhvc3REaXJlY3RpdmVCaW5kaW5nTWFwIHtcbiAgaWYgKGJpbmRpbmdzID09PSB1bmRlZmluZWQgfHwgYmluZGluZ3MubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIEVNUFRZX09CSjtcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdDogSG9zdERpcmVjdGl2ZUJpbmRpbmdNYXAgPSB7fTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGJpbmRpbmdzLmxlbmd0aDsgaSArPSAyKSB7XG4gICAgcmVzdWx0W2JpbmRpbmdzW2ldXSA9IGJpbmRpbmdzW2kgKyAxXTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogYG5nT25DaGFuZ2VzYCBoYXMgc29tZSBsZWZ0b3ZlciBsZWdhY3kgVmlld0VuZ2luZSBiZWhhdmlvciB3aGVyZSB0aGUga2V5cyBpbnNpZGUgdGhlXG4gKiBgU2ltcGxlQ2hhbmdlc2AgZXZlbnQgcmVmZXIgdG8gdGhlICpkZWNsYXJlZCogbmFtZSBvZiB0aGUgaW5wdXQsIG5vdCBpdHMgcHVibGljIG5hbWUgb3IgaXRzXG4gKiBtaW5pZmllZCBuYW1lLiBFLmcuIGluIGBASW5wdXQoJ2FsaWFzJykgZm9vOiBzdHJpbmdgLCB0aGUgbmFtZSBpbiB0aGUgYFNpbXBsZUNoYW5nZXNgIG9iamVjdFxuICogd2lsbCBhbHdheXMgYmUgYGZvb2AsIGFuZCBub3QgYGFsaWFzYCBvciB0aGUgbWluaWZpZWQgbmFtZSBvZiBgZm9vYCBpbiBhcHBzIHVzaW5nIHByb3BlcnR5XG4gKiBtaW5pZmljYXRpb24uXG4gKlxuICogVGhpcyBpcyBhY2hpZXZlZCB0aHJvdWdoIHRoZSBgRGlyZWN0aXZlRGVmLmRlY2xhcmVkSW5wdXRzYCBtYXAgdGhhdCBpcyBjb25zdHJ1Y3RlZCB3aGVuIHRoZVxuICogZGVmaW5pdGlvbiBpcyBkZWNsYXJlZC4gV2hlbiBhIHByb3BlcnR5IGlzIHdyaXR0ZW4gdG8gdGhlIGRpcmVjdGl2ZSBpbnN0YW5jZSwgdGhlXG4gKiBgTmdPbkNoYW5nZXNGZWF0dXJlYCB3aWxsIHRyeSB0byByZW1hcCB0aGUgcHJvcGVydHkgbmFtZSBiZWluZyB3cml0dGVuIHRvIHVzaW5nIHRoZVxuICogYGRlY2xhcmVkSW5wdXRzYC5cbiAqXG4gKiBTaW5jZSB0aGUgaG9zdCBkaXJlY3RpdmUgaW5wdXQgcmVtYXBwaW5nIGhhcHBlbnMgZHVyaW5nIGRpcmVjdGl2ZSBtYXRjaGluZywgYGRlY2xhcmVkSW5wdXRzYFxuICogd29uJ3QgY29udGFpbiB0aGUgbmV3IGFsaWFzIHRoYXQgdGhlIGlucHV0IGlzIGF2YWlsYWJsZSB1bmRlci4gVGhpcyBmdW5jdGlvbiBhZGRyZXNzZXMgdGhlXG4gKiBpc3N1ZSBieSBwYXRjaGluZyB0aGUgaG9zdCBkaXJlY3RpdmUgYWxpYXNlcyB0byB0aGUgYGRlY2xhcmVkSW5wdXRzYC4gVGhlcmUgaXMgKm5vdCogYSByaXNrIG9mXG4gKiB0aGlzIHBhdGNoaW5nIGFjY2lkZW50YWxseSBpbnRyb2R1Y2luZyBuZXcgaW5wdXRzIHRvIHRoZSBob3N0IGRpcmVjdGl2ZSwgYmVjYXVzZSBgZGVjbGFyZWRJbnB1dHNgXG4gKiBpcyB1c2VkICpvbmx5KiBieSB0aGUgYE5nT25DaGFuZ2VzRmVhdHVyZWAgd2hlbiBkZXRlcm1pbmluZyB3aGF0IG5hbWUgaXMgdXNlZCBpbiB0aGVcbiAqIGBTaW1wbGVDaGFuZ2VzYCBvYmplY3Qgd2hpY2ggd29uJ3QgYmUgcmVhY2hlZCBpZiBhbiBpbnB1dCBkb2Vzbid0IGV4aXN0LlxuICovXG5mdW5jdGlvbiBwYXRjaERlY2xhcmVkSW5wdXRzKFxuICAgIGRlY2xhcmVkSW5wdXRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LCBleHBvc2VkSW5wdXRzOiBIb3N0RGlyZWN0aXZlQmluZGluZ01hcCk6IHZvaWQge1xuICBmb3IgKGNvbnN0IHB1YmxpY05hbWUgaW4gZXhwb3NlZElucHV0cykge1xuICAgIGlmIChleHBvc2VkSW5wdXRzLmhhc093blByb3BlcnR5KHB1YmxpY05hbWUpKSB7XG4gICAgICBjb25zdCByZW1hcHBlZFB1YmxpY05hbWUgPSBleHBvc2VkSW5wdXRzW3B1YmxpY05hbWVdO1xuICAgICAgY29uc3QgcHJpdmF0ZU5hbWUgPSBkZWNsYXJlZElucHV0c1twdWJsaWNOYW1lXTtcblxuICAgICAgLy8gV2UgKnRlY2huaWNhbGx5KiBzaG91bGRuJ3QgYmUgYWJsZSB0byBoaXQgdGhpcyBjYXNlIGJlY2F1c2Ugd2UgY2FuJ3QgaGF2ZSBtdWx0aXBsZVxuICAgICAgLy8gaW5wdXRzIG9uIHRoZSBzYW1lIHByb3BlcnR5IGFuZCB3ZSBoYXZlIHZhbGlkYXRpb25zIGFnYWluc3QgY29uZmxpY3RpbmcgYWxpYXNlcyBpblxuICAgICAgLy8gYHZhbGlkYXRlTWFwcGluZ3NgLiBJZiB3ZSBzb21laG93IGRpZCwgaXQgd291bGQgbGVhZCB0byBgbmdPbkNoYW5nZXNgIGJlaW5nIGludm9rZWRcbiAgICAgIC8vIHdpdGggdGhlIHdyb25nIG5hbWUgc28gd2UgaGF2ZSBhIG5vbi11c2VyLWZyaWVuZGx5IGFzc2VydGlvbiBoZXJlIGp1c3QgaW4gY2FzZS5cbiAgICAgIGlmICgodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSAmJlxuICAgICAgICAgIGRlY2xhcmVkSW5wdXRzLmhhc093blByb3BlcnR5KHJlbWFwcGVkUHVibGljTmFtZSkpIHtcbiAgICAgICAgYXNzZXJ0RXF1YWwoXG4gICAgICAgICAgICBkZWNsYXJlZElucHV0c1tyZW1hcHBlZFB1YmxpY05hbWVdLCBkZWNsYXJlZElucHV0c1twdWJsaWNOYW1lXSxcbiAgICAgICAgICAgIGBDb25mbGljdGluZyBob3N0IGRpcmVjdGl2ZSBpbnB1dCBhbGlhcyAke3B1YmxpY05hbWV9LmApO1xuICAgICAgfVxuXG4gICAgICBkZWNsYXJlZElucHV0c1tyZW1hcHBlZFB1YmxpY05hbWVdID0gcHJpdmF0ZU5hbWU7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogVmVyaWZpZXMgdGhhdCB0aGUgaG9zdCBkaXJlY3RpdmUgaGFzIGJlZW4gY29uZmlndXJlZCBjb3JyZWN0bHkuXG4gKiBAcGFyYW0gaG9zdERpcmVjdGl2ZUNvbmZpZyBIb3N0IGRpcmVjdGl2ZSBjb25maWd1cmF0aW9uIG9iamVjdC5cbiAqIEBwYXJhbSBkaXJlY3RpdmVEZWYgRGlyZWN0aXZlIGRlZmluaXRpb24gb2YgdGhlIGhvc3QgZGlyZWN0aXZlLlxuICogQHBhcmFtIG1hdGNoZWREZWZzIERpcmVjdGl2ZXMgdGhhdCBoYXZlIGJlZW4gbWF0Y2hlZCBzbyBmYXIuXG4gKi9cbmZ1bmN0aW9uIHZhbGlkYXRlSG9zdERpcmVjdGl2ZShcbiAgICBob3N0RGlyZWN0aXZlQ29uZmlnOiBIb3N0RGlyZWN0aXZlRGVmPHVua25vd24+LCBkaXJlY3RpdmVEZWY6IERpcmVjdGl2ZURlZjxhbnk+fG51bGwsXG4gICAgbWF0Y2hlZERlZnM6IERpcmVjdGl2ZURlZjx1bmtub3duPltdKTogYXNzZXJ0cyBkaXJlY3RpdmVEZWYgaXMgRGlyZWN0aXZlRGVmPHVua25vd24+IHtcbiAgY29uc3QgdHlwZSA9IGhvc3REaXJlY3RpdmVDb25maWcuZGlyZWN0aXZlO1xuXG4gIGlmIChkaXJlY3RpdmVEZWYgPT09IG51bGwpIHtcbiAgICBpZiAoZ2V0Q29tcG9uZW50RGVmKHR5cGUpICE9PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgUnVudGltZUVycm9yKFxuICAgICAgICAgIFJ1bnRpbWVFcnJvckNvZGUuSE9TVF9ESVJFQ1RJVkVfQ09NUE9ORU5ULFxuICAgICAgICAgIGBIb3N0IGRpcmVjdGl2ZSAke3R5cGUubmFtZX0gY2Fubm90IGJlIGEgY29tcG9uZW50LmApO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBSdW50aW1lRXJyb3IoXG4gICAgICAgIFJ1bnRpbWVFcnJvckNvZGUuSE9TVF9ESVJFQ1RJVkVfVU5SRVNPTFZBQkxFLFxuICAgICAgICBgQ291bGQgbm90IHJlc29sdmUgbWV0YWRhdGEgZm9yIGhvc3QgZGlyZWN0aXZlICR7dHlwZS5uYW1lfS4gYCArXG4gICAgICAgICAgICBgTWFrZSBzdXJlIHRoYXQgdGhlICR7dHlwZS5uYW1lfSBjbGFzcyBpcyBhbm5vdGF0ZWQgd2l0aCBhbiBARGlyZWN0aXZlIGRlY29yYXRvci5gKTtcbiAgfVxuXG4gIGlmICghZGlyZWN0aXZlRGVmLnN0YW5kYWxvbmUpIHtcbiAgICB0aHJvdyBuZXcgUnVudGltZUVycm9yKFxuICAgICAgICBSdW50aW1lRXJyb3JDb2RlLkhPU1RfRElSRUNUSVZFX05PVF9TVEFOREFMT05FLFxuICAgICAgICBgSG9zdCBkaXJlY3RpdmUgJHtkaXJlY3RpdmVEZWYudHlwZS5uYW1lfSBtdXN0IGJlIHN0YW5kYWxvbmUuYCk7XG4gIH1cblxuICBpZiAobWF0Y2hlZERlZnMuaW5kZXhPZihkaXJlY3RpdmVEZWYpID4gLTEpIHtcbiAgICB0aHJvdyBuZXcgUnVudGltZUVycm9yKFxuICAgICAgICBSdW50aW1lRXJyb3JDb2RlLkRVUExJQ0FURV9ESVJFQ1RJVFZFLFxuICAgICAgICBgRGlyZWN0aXZlICR7ZGlyZWN0aXZlRGVmLnR5cGUubmFtZX0gbWF0Y2hlcyBtdWx0aXBsZSB0aW1lcyBvbiB0aGUgc2FtZSBlbGVtZW50LiBgICtcbiAgICAgICAgICAgIGBEaXJlY3RpdmVzIGNhbiBvbmx5IG1hdGNoIGFuIGVsZW1lbnQgb25jZS5gKTtcbiAgfVxuXG4gIHZhbGlkYXRlTWFwcGluZ3MoJ2lucHV0JywgZGlyZWN0aXZlRGVmLCBob3N0RGlyZWN0aXZlQ29uZmlnLmlucHV0cyk7XG4gIHZhbGlkYXRlTWFwcGluZ3MoJ291dHB1dCcsIGRpcmVjdGl2ZURlZiwgaG9zdERpcmVjdGl2ZUNvbmZpZy5vdXRwdXRzKTtcbn1cblxuLyoqXG4gKiBDaGVja3MgdGhhdCB0aGUgaG9zdCBkaXJlY3RpdmUgaW5wdXRzL291dHB1dHMgY29uZmlndXJhdGlvbiBpcyB2YWxpZC5cbiAqIEBwYXJhbSBiaW5kaW5nVHlwZSBLaW5kIG9mIGJpbmRpbmcgdGhhdCBpcyBiZWluZyB2YWxpZGF0ZWQuIFVzZWQgaW4gdGhlIGVycm9yIG1lc3NhZ2UuXG4gKiBAcGFyYW0gZGVmIERlZmluaXRpb24gb2YgdGhlIGhvc3QgZGlyZWN0aXZlIHRoYXQgaXMgYmVpbmcgdmFsaWRhdGVkIGFnYWluc3QuXG4gKiBAcGFyYW0gaG9zdERpcmVjdGl2ZUJpbmRpbmdzIEhvc3QgZGlyZWN0aXZlIG1hcHBpbmcgb2JqZWN0IHRoYXQgc2hvbGQgYmUgdmFsaWRhdGVkLlxuICovXG5mdW5jdGlvbiB2YWxpZGF0ZU1hcHBpbmdzKFxuICAgIGJpbmRpbmdUeXBlOiAnaW5wdXQnfCdvdXRwdXQnLCBkZWY6IERpcmVjdGl2ZURlZjx1bmtub3duPixcbiAgICBob3N0RGlyZWN0aXZlQmluZGluZ3M6IEhvc3REaXJlY3RpdmVCaW5kaW5nTWFwKSB7XG4gIGNvbnN0IGNsYXNzTmFtZSA9IGRlZi50eXBlLm5hbWU7XG4gIGNvbnN0IGJpbmRpbmdzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0gYmluZGluZ1R5cGUgPT09ICdpbnB1dCcgPyBkZWYuaW5wdXRzIDogZGVmLm91dHB1dHM7XG5cbiAgZm9yIChjb25zdCBwdWJsaWNOYW1lIGluIGhvc3REaXJlY3RpdmVCaW5kaW5ncykge1xuICAgIGlmIChob3N0RGlyZWN0aXZlQmluZGluZ3MuaGFzT3duUHJvcGVydHkocHVibGljTmFtZSkpIHtcbiAgICAgIGlmICghYmluZGluZ3MuaGFzT3duUHJvcGVydHkocHVibGljTmFtZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFcnJvcihcbiAgICAgICAgICAgIFJ1bnRpbWVFcnJvckNvZGUuSE9TVF9ESVJFQ1RJVkVfVU5ERUZJTkVEX0JJTkRJTkcsXG4gICAgICAgICAgICBgRGlyZWN0aXZlICR7Y2xhc3NOYW1lfSBkb2VzIG5vdCBoYXZlIGFuICR7YmluZGluZ1R5cGV9IHdpdGggYSBwdWJsaWMgbmFtZSBvZiAke1xuICAgICAgICAgICAgICAgIHB1YmxpY05hbWV9LmApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZW1hcHBlZFB1YmxpY05hbWUgPSBob3N0RGlyZWN0aXZlQmluZGluZ3NbcHVibGljTmFtZV07XG5cbiAgICAgIGlmIChiaW5kaW5ncy5oYXNPd25Qcm9wZXJ0eShyZW1hcHBlZFB1YmxpY05hbWUpICYmIHJlbWFwcGVkUHVibGljTmFtZSAhPT0gcHVibGljTmFtZSAmJlxuICAgICAgICAgIGJpbmRpbmdzW3JlbWFwcGVkUHVibGljTmFtZV0gIT09IHB1YmxpY05hbWUpIHtcbiAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFcnJvcihcbiAgICAgICAgICAgIFJ1bnRpbWVFcnJvckNvZGUuSE9TVF9ESVJFQ1RJVkVfQ09ORkxJQ1RJTkdfQUxJQVMsXG4gICAgICAgICAgICBgQ2Fubm90IGFsaWFzICR7YmluZGluZ1R5cGV9ICR7cHVibGljTmFtZX0gb2YgaG9zdCBkaXJlY3RpdmUgJHtjbGFzc05hbWV9IHRvICR7XG4gICAgICAgICAgICAgICAgcmVtYXBwZWRQdWJsaWNOYW1lfSwgYmVjYXVzZSBpdCBhbHJlYWR5IGhhcyBhIGRpZmZlcmVudCAke1xuICAgICAgICAgICAgICAgIGJpbmRpbmdUeXBlfSB3aXRoIHRoZSBzYW1lIHB1YmxpYyBuYW1lLmApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ // TODO(crisbeto): move input transforms runtime functionality here.
9
+ /**
10
+ * @codeGenApi
11
+ */
12
+ export function ɵɵInputTransformsFeature(definition) { }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRfdHJhbnNmb3Jtc19mZWF0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvcmVuZGVyMy9mZWF0dXJlcy9pbnB1dF90cmFuc2Zvcm1zX2ZlYXR1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBSUgsb0VBQW9FO0FBQ3BFOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHdCQUF3QixDQUFDLFVBQStDLElBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudERlZiwgRGlyZWN0aXZlRGVmfSBmcm9tICcuLi9pbnRlcmZhY2VzL2RlZmluaXRpb24nO1xuXG4vLyBUT0RPKGNyaXNiZXRvKTogbW92ZSBpbnB1dCB0cmFuc2Zvcm1zIHJ1bnRpbWUgZnVuY3Rpb25hbGl0eSBoZXJlLlxuLyoqXG4gKiBAY29kZUdlbkFwaVxuICovXG5leHBvcnQgZnVuY3Rpb24gybXJtUlucHV0VHJhbnNmb3Jtc0ZlYXR1cmUoZGVmaW5pdGlvbjogRGlyZWN0aXZlRGVmPGFueT58Q29tcG9uZW50RGVmPGFueT4pOiB2b2lkIHt9XG4iXX0=
@@ -10,6 +10,7 @@ import { ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineNgModule, ɵɵdefin
10
10
  import { ɵɵCopyDefinitionFeature } from './features/copy_definition_feature';
11
11
  import { ɵɵHostDirectivesFeature } from './features/host_directives_feature';
12
12
  import { ɵɵInheritDefinitionFeature } from './features/inherit_definition_feature';
13
+ import { ɵɵInputTransformsFeature } from './features/input_transforms_feature';
13
14
  import { ɵɵNgOnChangesFeature } from './features/ng_onchanges_feature';
14
15
  import { ɵɵProvidersFeature } from './features/providers_feature';
15
16
  import { ɵɵStandaloneFeature } from './features/standalone_feature';
@@ -30,5 +31,5 @@ export { NO_CHANGE } from './tokens';
30
31
  export { ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow } from './util/misc_utils';
31
32
  export { ɵɵtemplateRefExtractor } from './view_engine_compatibility_prebound';
32
33
  // clang-format on
33
- export { getComponent, getDirectiveMetadata, getDirectives, getHostElement, getRenderedText, LifecycleHooksFeature, ɵɵCopyDefinitionFeature, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵStandaloneFeature, };
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9yZW5kZXIzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDM0ksT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDakYsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFHbEUsT0FBTyxFQUFpRCxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUcxSyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsd0JBQXdCLEVBQUUsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekYsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBQyxXQUFXLEVBQUUsV0FBVyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDL0QsbUJBQW1CO0FBQ25CLE9BQU8sRUFDTCxhQUFhLEVBQ2IsS0FBSyxFQUNMLFNBQVMsRUFFVCxXQUFXLEVBQ1gsdUJBQXVCLEVBQ3ZC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LEVBQUUsc0JBQXNCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxrQkFBa0I7QUFFbEIsT0FBTyxFQVFMLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsYUFBYSxFQUNiLGNBQWMsRUFDZCxlQUFlLEVBQ2YscUJBQXFCLEVBR3JCLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixZQUFZLEVBR1osdUJBQXVCLEVBQ3ZCLDBCQUEwQixFQUcxQixvQkFBb0IsRUFFcEIsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsbUJBQW1CLEdBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7TGlmZWN5Y2xlSG9va3NGZWF0dXJlfSBmcm9tICcuL2NvbXBvbmVudF9yZWYnO1xuaW1wb3J0IHvJtcm1ZGVmaW5lQ29tcG9uZW50LCDJtcm1ZGVmaW5lRGlyZWN0aXZlLCDJtcm1ZGVmaW5lTmdNb2R1bGUsIMm1ybVkZWZpbmVQaXBlLCDJtcm1c2V0Q29tcG9uZW50U2NvcGUsIMm1ybVzZXROZ01vZHVsZVNjb3BlfSBmcm9tICcuL2RlZmluaXRpb24nO1xuaW1wb3J0IHvJtcm1Q29weURlZmluaXRpb25GZWF0dXJlfSBmcm9tICcuL2ZlYXR1cmVzL2NvcHlfZGVmaW5pdGlvbl9mZWF0dXJlJztcbmltcG9ydCB7ybXJtUhvc3REaXJlY3RpdmVzRmVhdHVyZX0gZnJvbSAnLi9mZWF0dXJlcy9ob3N0X2RpcmVjdGl2ZXNfZmVhdHVyZSc7XG5pbXBvcnQge8m1ybVJbmhlcml0RGVmaW5pdGlvbkZlYXR1cmV9IGZyb20gJy4vZmVhdHVyZXMvaW5oZXJpdF9kZWZpbml0aW9uX2ZlYXR1cmUnO1xuaW1wb3J0IHvJtcm1TmdPbkNoYW5nZXNGZWF0dXJlfSBmcm9tICcuL2ZlYXR1cmVzL25nX29uY2hhbmdlc19mZWF0dXJlJztcbmltcG9ydCB7ybXJtVByb3ZpZGVyc0ZlYXR1cmV9IGZyb20gJy4vZmVhdHVyZXMvcHJvdmlkZXJzX2ZlYXR1cmUnO1xuaW1wb3J0IHvJtcm1U3RhbmRhbG9uZUZlYXR1cmV9IGZyb20gJy4vZmVhdHVyZXMvc3RhbmRhbG9uZV9mZWF0dXJlJztcbmltcG9ydCB7Q29tcG9uZW50RGVmLCBDb21wb25lbnRUZW1wbGF0ZSwgQ29tcG9uZW50VHlwZSwgRGlyZWN0aXZlRGVmLCBEaXJlY3RpdmVUeXBlLCBQaXBlRGVmfSBmcm9tICcuL2ludGVyZmFjZXMvZGVmaW5pdGlvbic7XG5pbXBvcnQge8m1ybVDb21wb25lbnREZWNsYXJhdGlvbiwgybXJtURpcmVjdGl2ZURlY2xhcmF0aW9uLCDJtcm1RmFjdG9yeURlY2xhcmF0aW9uLCDJtcm1SW5qZWN0b3JEZWNsYXJhdGlvbiwgybXJtU5nTW9kdWxlRGVjbGFyYXRpb24sIMm1ybVQaXBlRGVjbGFyYXRpb259IGZyb20gJy4vaW50ZXJmYWNlcy9wdWJsaWNfZGVmaW5pdGlvbnMnO1xuaW1wb3J0IHtDb21wb25lbnREZWJ1Z01ldGFkYXRhLCBEaXJlY3RpdmVEZWJ1Z01ldGFkYXRhLCBnZXRDb21wb25lbnQsIGdldERpcmVjdGl2ZU1ldGFkYXRhLCBnZXREaXJlY3RpdmVzLCBnZXRIb3N0RWxlbWVudCwgZ2V0UmVuZGVyZWRUZXh0fSBmcm9tICcuL3V0aWwvZGlzY292ZXJ5X3V0aWxzJztcblxuZXhwb3J0IHtOZ01vZHVsZVR5cGV9IGZyb20gJy4uL21ldGFkYXRhL25nX21vZHVsZV9kZWYnO1xuZXhwb3J0IHtDb21wb25lbnRGYWN0b3J5LCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIENvbXBvbmVudFJlZn0gZnJvbSAnLi9jb21wb25lbnRfcmVmJztcbmV4cG9ydCB7ybXJtWdldEluaGVyaXRlZEZhY3Rvcnl9IGZyb20gJy4vZGknO1xuZXhwb3J0IHtnZXRMb2NhbGVJZCwgc2V0TG9jYWxlSWR9IGZyb20gJy4vaTE4bi9pMThuX2xvY2FsZV9pZCc7XG4vLyBjbGFuZy1mb3JtYXQgb2ZmXG5leHBvcnQge1xuICBkZXRlY3RDaGFuZ2VzLFxuICBzdG9yZSxcbiAgybXJtWFkdmFuY2UsXG5cbiAgybXJtWF0dHJpYnV0ZSxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlMSxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlMixcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlMyxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlNCxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlNSxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlNixcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlNyxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlOCxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlVixcblxuICDJtcm1Y2xhc3NNYXAsXG4gIMm1ybVjbGFzc01hcEludGVycG9sYXRlMSxcbiAgybXJtWNsYXNzTWFwSW50ZXJwb2xhdGUyLFxuICDJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTMsXG4gIMm1ybVjbGFzc01hcEludGVycG9sYXRlNCxcbiAgybXJtWNsYXNzTWFwSW50ZXJwb2xhdGU1LFxuICDJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTYsXG4gIMm1ybVjbGFzc01hcEludGVycG9sYXRlNyxcbiAgybXJtWNsYXNzTWFwSW50ZXJwb2xhdGU4LFxuICDJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZVYsXG5cbiAgybXJtWNsYXNzUHJvcCxcblxuICDJtcm1ZGlyZWN0aXZlSW5qZWN0LFxuXG4gIMm1ybVlbGVtZW50LFxuXG4gIMm1ybVlbGVtZW50Q29udGFpbmVyLFxuICDJtcm1ZWxlbWVudENvbnRhaW5lckVuZCxcbiAgybXJtWVsZW1lbnRDb250YWluZXJTdGFydCxcbiAgybXJtWVsZW1lbnRFbmQsXG4gIMm1ybVlbGVtZW50U3RhcnQsXG5cbiAgybXJtWdldEN1cnJlbnRWaWV3LFxuICDJtcm1aG9zdFByb3BlcnR5LFxuICDJtcm1aW5qZWN0QXR0cmlidXRlLFxuICDJtcm1aW52YWxpZEZhY3RvcnksXG5cbiAgybXJtWxpc3RlbmVyLFxuXG4gIMm1ybVuYW1lc3BhY2VIVE1MLFxuICDJtcm1bmFtZXNwYWNlTWF0aE1MLFxuICDJtcm1bmFtZXNwYWNlU1ZHLFxuXG4gIMm1ybVuZXh0Q29udGV4dCxcblxuICDJtcm1cHJvamVjdGlvbixcbiAgybXJtXByb2plY3Rpb25EZWYsXG4gIMm1ybVwcm9wZXJ0eSxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGUsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlMSxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGUyLFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTMsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlNCxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGU1LFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTYsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlNyxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGU4LFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZVYsXG5cbiAgybXJtXJlZmVyZW5jZSxcblxuICDJtcm1c3R5bGVNYXAsXG4gIMm1ybVzdHlsZU1hcEludGVycG9sYXRlMSxcbiAgybXJtXN0eWxlTWFwSW50ZXJwb2xhdGUyLFxuICDJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTMsXG4gIMm1ybVzdHlsZU1hcEludGVycG9sYXRlNCxcbiAgybXJtXN0eWxlTWFwSW50ZXJwb2xhdGU1LFxuICDJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTYsXG4gIMm1ybVzdHlsZU1hcEludGVycG9sYXRlNyxcbiAgybXJtXN0eWxlTWFwSW50ZXJwb2xhdGU4LFxuICDJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZVYsXG5cbiAgybXJtXN0eWxlUHJvcCxcbiAgybXJtXN0eWxlUHJvcEludGVycG9sYXRlMSxcbiAgybXJtXN0eWxlUHJvcEludGVycG9sYXRlMixcbiAgybXJtXN0eWxlUHJvcEludGVycG9sYXRlMyxcbiAgybXJtXN0eWxlUHJvcEludGVycG9sYXRlNCxcbiAgybXJtXN0eWxlUHJvcEludGVycG9sYXRlNSxcbiAgybXJtXN0eWxlUHJvcEludGVycG9sYXRlNixcbiAgybXJtXN0eWxlUHJvcEludGVycG9sYXRlNyxcbiAgybXJtXN0eWxlUHJvcEludGVycG9sYXRlOCxcbiAgybXJtXN0eWxlUHJvcEludGVycG9sYXRlVixcblxuICDJtcm1c3ludGhldGljSG9zdExpc3RlbmVyLFxuICDJtcm1c3ludGhldGljSG9zdFByb3BlcnR5LFxuXG4gIMm1ybV0ZW1wbGF0ZSxcblxuICDJtcm1dGV4dCxcbiAgybXJtXRleHRJbnRlcnBvbGF0ZSxcbiAgybXJtXRleHRJbnRlcnBvbGF0ZTEsXG4gIMm1ybV0ZXh0SW50ZXJwb2xhdGUyLFxuICDJtcm1dGV4dEludGVycG9sYXRlMyxcbiAgybXJtXRleHRJbnRlcnBvbGF0ZTQsXG4gIMm1ybV0ZXh0SW50ZXJwb2xhdGU1LFxuICDJtcm1dGV4dEludGVycG9sYXRlNixcbiAgybXJtXRleHRJbnRlcnBvbGF0ZTcsXG4gIMm1ybV0ZXh0SW50ZXJwb2xhdGU4LFxuICDJtcm1dGV4dEludGVycG9sYXRlVixcbiAgybVnZXRVbmtub3duRWxlbWVudFN0cmljdE1vZGUsXG4gIMm1c2V0VW5rbm93bkVsZW1lbnRTdHJpY3RNb2RlLFxuICDJtWdldFVua25vd25Qcm9wZXJ0eVN0cmljdE1vZGUsXG4gIMm1c2V0VW5rbm93blByb3BlcnR5U3RyaWN0TW9kZVxufSBmcm9tICcuL2luc3RydWN0aW9ucy9hbGwnO1xuZXhwb3J0IHvJtcm1aTE4biwgybXJtWkxOG5BcHBseSwgybXJtWkxOG5BdHRyaWJ1dGVzLCDJtcm1aTE4bkVuZCwgybXJtWkxOG5FeHAsybXJtWkxOG5Qb3N0cHJvY2VzcywgybXJtWkxOG5TdGFydH0gZnJvbSAnLi9pbnN0cnVjdGlvbnMvaTE4bic7XG5leHBvcnQge1JlbmRlckZsYWdzfSBmcm9tICcuL2ludGVyZmFjZXMvZGVmaW5pdGlvbic7XG5leHBvcnQge1xuICBBdHRyaWJ1dGVNYXJrZXJcbn0gZnJvbSAnLi9pbnRlcmZhY2VzL25vZGUnO1xuZXhwb3J0IHtDc3NTZWxlY3Rvckxpc3QsIFByb2plY3Rpb25TbG90c30gZnJvbSAnLi9pbnRlcmZhY2VzL3Byb2plY3Rpb24nO1xuZXhwb3J0IHtcbiAgc2V0Q2xhc3NNZXRhZGF0YSxcbn0gZnJvbSAnLi9tZXRhZGF0YSc7XG5leHBvcnQge05nTW9kdWxlRmFjdG9yeSwgTmdNb2R1bGVSZWYsIGNyZWF0ZUVudmlyb25tZW50SW5qZWN0b3J9IGZyb20gJy4vbmdfbW9kdWxlX3JlZic7XG5leHBvcnQge1xuICDJtcm1cGlwZSxcbiAgybXJtXBpcGVCaW5kMSxcbiAgybXJtXBpcGVCaW5kMixcbiAgybXJtXBpcGVCaW5kMyxcbiAgybXJtXBpcGVCaW5kNCxcbiAgybXJtXBpcGVCaW5kVixcbn0gZnJvbSAnLi9waXBlJztcbmV4cG9ydCB7XG4gIMm1ybVwdXJlRnVuY3Rpb24wLFxuICDJtcm1cHVyZUZ1bmN0aW9uMSxcbiAgybXJtXB1cmVGdW5jdGlvbjIsXG4gIMm1ybVwdXJlRnVuY3Rpb24zLFxuICDJtcm1cHVyZUZ1bmN0aW9uNCxcbiAgybXJtXB1cmVGdW5jdGlvbjUsXG4gIMm1ybVwdXJlRnVuY3Rpb242LFxuICDJtcm1cHVyZUZ1bmN0aW9uNyxcbiAgybXJtXB1cmVGdW5jdGlvbjgsXG4gIMm1ybVwdXJlRnVuY3Rpb25WLFxufSBmcm9tICcuL3B1cmVfZnVuY3Rpb24nO1xuZXhwb3J0IHtcbiAgybXJtWNvbnRlbnRRdWVyeSxcbiAgybXJtWxvYWRRdWVyeSxcbiAgybXJtXF1ZXJ5UmVmcmVzaCxcbiAgybXJtXZpZXdRdWVyeX0gZnJvbSAnLi9xdWVyeSc7XG5leHBvcnQge1xuICDJtcm1ZGlzYWJsZUJpbmRpbmdzLFxuXG4gIMm1ybVlbmFibGVCaW5kaW5ncyxcbiAgybXJtXJlc2V0VmlldyxcbiAgybXJtXJlc3RvcmVWaWV3LFxufSBmcm9tICcuL3N0YXRlJztcbmV4cG9ydCB7Tk9fQ0hBTkdFfSBmcm9tICcuL3Rva2Vucyc7XG5leHBvcnQgeyDJtcm1cmVzb2x2ZUJvZHksIMm1ybVyZXNvbHZlRG9jdW1lbnQsybXJtXJlc29sdmVXaW5kb3d9IGZyb20gJy4vdXRpbC9taXNjX3V0aWxzJztcbmV4cG9ydCB7IMm1ybV0ZW1wbGF0ZVJlZkV4dHJhY3Rvcn0gZnJvbSAnLi92aWV3X2VuZ2luZV9jb21wYXRpYmlsaXR5X3ByZWJvdW5kJztcbi8vIGNsYW5nLWZvcm1hdCBvblxuXG5leHBvcnQge1xuICBDb21wb25lbnREZWJ1Z01ldGFkYXRhLFxuICBDb21wb25lbnREZWYsXG4gIENvbXBvbmVudFRlbXBsYXRlLFxuICBDb21wb25lbnRUeXBlLFxuICBEaXJlY3RpdmVEZWJ1Z01ldGFkYXRhLFxuICBEaXJlY3RpdmVEZWYsXG4gIERpcmVjdGl2ZVR5cGUsXG4gIGdldENvbXBvbmVudCxcbiAgZ2V0RGlyZWN0aXZlTWV0YWRhdGEsXG4gIGdldERpcmVjdGl2ZXMsXG4gIGdldEhvc3RFbGVtZW50LFxuICBnZXRSZW5kZXJlZFRleHQsXG4gIExpZmVjeWNsZUhvb2tzRmVhdHVyZSxcbiAgUGlwZURlZixcbiAgybXJtUNvbXBvbmVudERlY2xhcmF0aW9uLFxuICDJtcm1Q29weURlZmluaXRpb25GZWF0dXJlLFxuICDJtcm1ZGVmaW5lQ29tcG9uZW50LFxuICDJtcm1ZGVmaW5lRGlyZWN0aXZlLFxuICDJtcm1ZGVmaW5lTmdNb2R1bGUsXG4gIMm1ybVkZWZpbmVQaXBlLFxuICDJtcm1RGlyZWN0aXZlRGVjbGFyYXRpb24sXG4gIMm1ybVGYWN0b3J5RGVjbGFyYXRpb24sXG4gIMm1ybVIb3N0RGlyZWN0aXZlc0ZlYXR1cmUsXG4gIMm1ybVJbmhlcml0RGVmaW5pdGlvbkZlYXR1cmUsXG4gIMm1ybVJbmplY3RvckRlY2xhcmF0aW9uLFxuICDJtcm1TmdNb2R1bGVEZWNsYXJhdGlvbixcbiAgybXJtU5nT25DaGFuZ2VzRmVhdHVyZSxcbiAgybXJtVBpcGVEZWNsYXJhdGlvbixcbiAgybXJtVByb3ZpZGVyc0ZlYXR1cmUsXG4gIMm1ybVzZXRDb21wb25lbnRTY29wZSxcbiAgybXJtXNldE5nTW9kdWxlU2NvcGUsXG4gIMm1ybVTdGFuZGFsb25lRmVhdHVyZSxcbn07XG4iXX0=
34
+ export { getComponent, getDirectiveMetadata, getDirectives, getHostElement, getRenderedText, LifecycleHooksFeature, ɵɵCopyDefinitionFeature, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵInputTransformsFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵStandaloneFeature, };
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9yZW5kZXIzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDM0ksT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDakYsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDN0UsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFHbEUsT0FBTyxFQUFpRCxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUcxSyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsd0JBQXdCLEVBQUUsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekYsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBQyxXQUFXLEVBQUUsV0FBVyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDL0QsbUJBQW1CO0FBQ25CLE9BQU8sRUFDTCxhQUFhLEVB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aUIsRUFBQyxlQUFlLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRixPQUFPLEVBQUUsc0JBQXNCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxrQkFBa0I7QUFFbEIsT0FBTyxFQVFMLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsYUFBYSxFQUNiLGNBQWMsRUFDZCxlQUFlLEVBQ2YscUJBQXFCLEVBR3JCLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixZQUFZLEVBR1osdUJBQXVCLEVBQ3ZCLDBCQUEwQixFQUUxQix3QkFBd0IsRUFFeEIsb0JBQW9CLEVBRXBCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLG1CQUFtQixHQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge0xpZmVjeWNsZUhvb2tzRmVhdHVyZX0gZnJvbSAnLi9jb21wb25lbnRfcmVmJztcbmltcG9ydCB7ybXJtWRlZmluZUNvbXBvbmVudCwgybXJtWRlZmluZURpcmVjdGl2ZSwgybXJtWRlZmluZU5nTW9kdWxlLCDJtcm1ZGVmaW5lUGlwZSwgybXJtXNldENvbXBvbmVudFNjb3BlLCDJtcm1c2V0TmdNb2R1bGVTY29wZX0gZnJvbSAnLi9kZWZpbml0aW9uJztcbmltcG9ydCB7ybXJtUNvcHlEZWZpbml0aW9uRmVhdHVyZX0gZnJvbSAnLi9mZWF0dXJlcy9jb3B5X2RlZmluaXRpb25fZmVhdHVyZSc7XG5pbXBvcnQge8m1ybVIb3N0RGlyZWN0aXZlc0ZlYXR1cmV9IGZyb20gJy4vZmVhdHVyZXMvaG9zdF9kaXJlY3RpdmVzX2ZlYXR1cmUnO1xuaW1wb3J0IHvJtcm1SW5oZXJpdERlZmluaXRpb25GZWF0dXJlfSBmcm9tICcuL2ZlYXR1cmVzL2luaGVyaXRfZGVmaW5pdGlvbl9mZWF0dXJlJztcbmltcG9ydCB7ybXJtUlucHV0VHJhbnNmb3Jtc0ZlYXR1cmV9IGZyb20gJy4vZmVhdHVyZXMvaW5wdXRfdHJhbnNmb3Jtc19mZWF0dXJlJztcbmltcG9ydCB7ybXJtU5nT25DaGFuZ2VzRmVhdHVyZX0gZnJvbSAnLi9mZWF0dXJlcy9uZ19vbmNoYW5nZXNfZmVhdHVyZSc7XG5pbXBvcnQge8m1ybVQcm92aWRlcnNGZWF0dXJlfSBmcm9tICcuL2ZlYXR1cmVzL3Byb3ZpZGVyc19mZWF0dXJlJztcbmltcG9ydCB7ybXJtVN0YW5kYWxvbmVGZWF0dXJlfSBmcm9tICcuL2ZlYXR1cmVzL3N0YW5kYWxvbmVfZmVhdHVyZSc7XG5pbXBvcnQge0NvbXBvbmVudERlZiwgQ29tcG9uZW50VGVtcGxhdGUsIENvbXBvbmVudFR5cGUsIERpcmVjdGl2ZURlZiwgRGlyZWN0aXZlVHlwZSwgUGlwZURlZn0gZnJvbSAnLi9pbnRlcmZhY2VzL2RlZmluaXRpb24nO1xuaW1wb3J0IHvJtcm1Q29tcG9uZW50RGVjbGFyYXRpb24sIMm1ybVEaXJlY3RpdmVEZWNsYXJhdGlvbiwgybXJtUZhY3RvcnlEZWNsYXJhdGlvbiwgybXJtUluamVjdG9yRGVjbGFyYXRpb24sIMm1ybVOZ01vZHVsZURlY2xhcmF0aW9uLCDJtcm1UGlwZURlY2xhcmF0aW9ufSBmcm9tICcuL2ludGVyZmFjZXMvcHVibGljX2RlZmluaXRpb25zJztcbmltcG9ydCB7Q29tcG9uZW50RGVidWdNZXRhZGF0YSwgRGlyZWN0aXZlRGVidWdNZXRhZGF0YSwgZ2V0Q29tcG9uZW50LCBnZXREaXJlY3RpdmVNZXRhZGF0YSwgZ2V0RGlyZWN0aXZlcywgZ2V0SG9zdEVsZW1lbnQsIGdldFJlbmRlcmVkVGV4dH0gZnJvbSAnLi91dGlsL2Rpc2NvdmVyeV91dGlscyc7XG5cbmV4cG9ydCB7TmdNb2R1bGVUeXBlfSBmcm9tICcuLi9tZXRhZGF0YS9uZ19tb2R1bGVfZGVmJztcbmV4cG9ydCB7Q29tcG9uZW50RmFjdG9yeSwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBDb21wb25lbnRSZWZ9IGZyb20gJy4vY29tcG9uZW50X3JlZic7XG5leHBvcnQge8m1ybVnZXRJbmhlcml0ZWRGYWN0b3J5fSBmcm9tICcuL2RpJztcbmV4cG9ydCB7Z2V0TG9jYWxlSWQsIHNldExvY2FsZUlkfSBmcm9tICcuL2kxOG4vaTE4bl9sb2NhbGVfaWQnO1xuLy8gY2xhbmctZm9ybWF0IG9mZlxuZXhwb3J0IHtcbiAgZGV0ZWN0Q2hhbmdlcyxcbiAgc3RvcmUsXG4gIMm1ybVhZHZhbmNlLFxuXG4gIMm1ybVhdHRyaWJ1dGUsXG4gIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTEsXG4gIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTIsXG4gIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTMsXG4gIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTQsXG4gIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTUsXG4gIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTYsXG4gIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTcsXG4gIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTgsXG4gIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZVYsXG5cbiAgybXJtWNsYXNzTWFwLFxuICDJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTEsXG4gIMm1ybVjbGFzc01hcEludGVycG9sYXRlMixcbiAgybXJtWNsYXNzTWFwSW50ZXJwb2xhdGUzLFxuICDJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTQsXG4gIMm1ybVjbGFzc01hcEludGVycG9sYXRlNSxcbiAgybXJtWNsYXNzTWFwSW50ZXJwb2xhdGU2LFxuICDJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTcsXG4gIMm1ybVjbGFzc01hcEludGVycG9sYXRlOCxcbiAgybXJtWNsYXNzTWFwSW50ZXJwb2xhdGVWLFxuXG4gIMm1ybVjbGFzc1Byb3AsXG5cbiAgybXJtWRpcmVjdGl2ZUluamVjdCxcblxuICDJtcm1ZWxlbWVudCxcblxuICDJtcm1ZWxlbWVudENvbnRhaW5lcixcbiAgybXJtWVsZW1lbnRDb250YWluZXJFbmQsXG4gIMm1ybVlbGVtZW50Q29udGFpbmVyU3RhcnQsXG4gIMm1ybVlbGVtZW50RW5kLFxuICDJtcm1ZWxlbWVudFN0YXJ0LFxuXG4gIMm1ybVnZXRDdXJyZW50VmlldyxcbiAgybXJtWhvc3RQcm9wZXJ0eSxcbiAgybXJtWluamVjdEF0dHJpYnV0ZSxcbiAgybXJtWludmFsaWRGYWN0b3J5LFxuXG4gIMm1ybVsaXN0ZW5lcixcblxuICDJtcm1bmFtZXNwYWNlSFRNTCxcbiAgybXJtW5hbWVzcGFjZU1hdGhNTCxcbiAgybXJtW5hbWVzcGFjZVNWRyxcblxuICDJtcm1bmV4dENvbnRleHQsXG5cbiAgybXJtXByb2plY3Rpb24sXG4gIMm1ybVwcm9qZWN0aW9uRGVmLFxuICDJtcm1cHJvcGVydHksXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlLFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTEsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlMixcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGUzLFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTQsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlNSxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGU2LFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTcsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlOCxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGVWLFxuXG4gIMm1ybVyZWZlcmVuY2UsXG5cbiAgybXJtXN0eWxlTWFwLFxuICDJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTEsXG4gIMm1ybVzdHlsZU1hcEludGVycG9sYXRlMixcbiAgybXJtXN0eWxlTWFwSW50ZXJwb2xhdGUzLFxuICDJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTQsXG4gIMm1ybVzdHlsZU1hcEludGVycG9sYXRlNSxcbiAgybXJtXN0eWxlTWFwSW50ZXJwb2xhdGU2LFxuICDJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTcsXG4gIMm1ybVzdHlsZU1hcEludGVycG9sYXRlOCxcbiAgybXJtXN0eWxlTWFwSW50ZXJwb2xhdGVWLFxuXG4gIMm1ybVzdHlsZVByb3AsXG4gIMm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTEsXG4gIMm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTIsXG4gIMm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTMsXG4gIMm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTQsXG4gIMm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTUsXG4gIMm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTYsXG4gIMm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTcsXG4gIMm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTgsXG4gIMm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZVYsXG5cbiAgybXJtXN5bnRoZXRpY0hvc3RMaXN0ZW5lcixcbiAgybXJtXN5bnRoZXRpY0hvc3RQcm9wZXJ0eSxcblxuICDJtcm1dGVtcGxhdGUsXG5cbiAgybXJtXRleHQsXG4gIMm1ybV0ZXh0SW50ZXJwb2xhdGUsXG4gIMm1ybV0ZXh0SW50ZXJwb2xhdGUxLFxuICDJtcm1dGV4dEludGVycG9sYXRlMixcbiAgybXJtXRleHRJbnRlcnBvbGF0ZTMsXG4gIMm1ybV0ZXh0SW50ZXJwb2xhdGU0LFxuICDJtcm1dGV4dEludGVycG9sYXRlNSxcbiAgybXJtXRleHRJbnRlcnBvbGF0ZTYsXG4gIMm1ybV0ZXh0SW50ZXJwb2xhdGU3LFxuICDJtcm1dGV4dEludGVycG9sYXRlOCxcbiAgybXJtXRleHRJbnRlcnBvbGF0ZVYsXG4gIMm1Z2V0VW5rbm93bkVsZW1lbnRTdHJpY3RNb2RlLFxuICDJtXNldFVua25vd25FbGVtZW50U3RyaWN0TW9kZSxcbiAgybVnZXRVbmtub3duUHJvcGVydHlTdHJpY3RNb2RlLFxuICDJtXNldFVua25vd25Qcm9wZXJ0eVN0cmljdE1vZGVcbn0gZnJvbSAnLi9pbnN0cnVjdGlvbnMvYWxsJztcbmV4cG9ydCB7ybXJtWkxOG4sIMm1ybVpMThuQXBwbHksIMm1ybVpMThuQXR0cmlidXRlcywgybXJtWkxOG5FbmQsIMm1ybVpMThuRXhwLMm1ybVpMThuUG9zdHByb2Nlc3MsIMm1ybVpMThuU3RhcnR9IGZyb20gJy4vaW5zdHJ1Y3Rpb25zL2kxOG4nO1xuZXhwb3J0IHtSZW5kZXJGbGFnc30gZnJvbSAnLi9pbnRlcmZhY2VzL2RlZmluaXRpb24nO1xuZXhwb3J0IHtcbiAgQXR0cmlidXRlTWFya2VyXG59IGZyb20gJy4vaW50ZXJmYWNlcy9ub2RlJztcbmV4cG9ydCB7Q3NzU2VsZWN0b3JMaXN0LCBQcm9qZWN0aW9uU2xvdHN9IGZyb20gJy4vaW50ZXJmYWNlcy9wcm9qZWN0aW9uJztcbmV4cG9ydCB7XG4gIHNldENsYXNzTWV0YWRhdGEsXG59IGZyb20gJy4vbWV0YWRhdGEnO1xuZXhwb3J0IHtOZ01vZHVsZUZhY3RvcnksIE5nTW9kdWxlUmVmLCBjcmVhdGVFbnZpcm9ubWVudEluamVjdG9yfSBmcm9tICcuL25nX21vZHVsZV9yZWYnO1xuZXhwb3J0IHtcbiAgybXJtXBpcGUsXG4gIMm1ybVwaXBlQmluZDEsXG4gIMm1ybVwaXBlQmluZDIsXG4gIMm1ybVwaXBlQmluZDMsXG4gIMm1ybVwaXBlQmluZDQsXG4gIMm1ybVwaXBlQmluZFYsXG59IGZyb20gJy4vcGlwZSc7XG5leHBvcnQge1xuICDJtcm1cHVyZUZ1bmN0aW9uMCxcbiAgybXJtXB1cmVGdW5jdGlvbjEsXG4gIMm1ybVwdXJlRnVuY3Rpb24yLFxuICDJtcm1cHVyZUZ1bmN0aW9uMyxcbiAgybXJtXB1cmVGdW5jdGlvbjQsXG4gIMm1ybVwdXJlRnVuY3Rpb241LFxuICDJtcm1cHVyZUZ1bmN0aW9uNixcbiAgybXJtXB1cmVGdW5jdGlvbjcsXG4gIMm1ybVwdXJlRnVuY3Rpb244LFxuICDJtcm1cHVyZUZ1bmN0aW9uVixcbn0gZnJvbSAnLi9wdXJlX2Z1bmN0aW9uJztcbmV4cG9ydCB7XG4gIMm1ybVjb250ZW50UXVlcnksXG4gIMm1ybVsb2FkUXVlcnksXG4gIMm1ybVxdWVyeVJlZnJlc2gsXG4gIMm1ybV2aWV3UXVlcnl9IGZyb20gJy4vcXVlcnknO1xuZXhwb3J0IHtcbiAgybXJtWRpc2FibGVCaW5kaW5ncyxcblxuICDJtcm1ZW5hYmxlQmluZGluZ3MsXG4gIMm1ybVyZXNldFZpZXcsXG4gIMm1ybVyZXN0b3JlVmlldyxcbn0gZnJvbSAnLi9zdGF0ZSc7XG5leHBvcnQge05PX0NIQU5HRX0gZnJvbSAnLi90b2tlbnMnO1xuZXhwb3J0IHsgybXJtXJlc29sdmVCb2R5LCDJtcm1cmVzb2x2ZURvY3VtZW50LMm1ybVyZXNvbHZlV2luZG93fSBmcm9tICcuL3V0aWwvbWlzY191dGlscyc7XG5leHBvcnQgeyDJtcm1dGVtcGxhdGVSZWZFeHRyYWN0b3J9IGZyb20gJy4vdmlld19lbmdpbmVfY29tcGF0aWJpbGl0eV9wcmVib3VuZCc7XG4vLyBjbGFuZy1mb3JtYXQgb25cblxuZXhwb3J0IHtcbiAgQ29tcG9uZW50RGVidWdNZXRhZGF0YSxcbiAgQ29tcG9uZW50RGVmLFxuICBDb21wb25lbnRUZW1wbGF0ZSxcbiAgQ29tcG9uZW50VHlwZSxcbiAgRGlyZWN0aXZlRGVidWdNZXRhZGF0YSxcbiAgRGlyZWN0aXZlRGVmLFxuICBEaXJlY3RpdmVUeXBlLFxuICBnZXRDb21wb25lbnQsXG4gIGdldERpcmVjdGl2ZU1ldGFkYXRhLFxuICBnZXREaXJlY3RpdmVzLFxuICBnZXRIb3N0RWxlbWVudCxcbiAgZ2V0UmVuZGVyZWRUZXh0LFxuICBMaWZlY3ljbGVIb29rc0ZlYXR1cmUsXG4gIFBpcGVEZWYsXG4gIMm1ybVDb21wb25lbnREZWNsYXJhdGlvbixcbiAgybXJtUNvcHlEZWZpbml0aW9uRmVhdHVyZSxcbiAgybXJtWRlZmluZUNvbXBvbmVudCxcbiAgybXJtWRlZmluZURpcmVjdGl2ZSxcbiAgybXJtWRlZmluZU5nTW9kdWxlLFxuICDJtcm1ZGVmaW5lUGlwZSxcbiAgybXJtURpcmVjdGl2ZURlY2xhcmF0aW9uLFxuICDJtcm1RmFjdG9yeURlY2xhcmF0aW9uLFxuICDJtcm1SG9zdERpcmVjdGl2ZXNGZWF0dXJlLFxuICDJtcm1SW5oZXJpdERlZmluaXRpb25GZWF0dXJlLFxuICDJtcm1SW5qZWN0b3JEZWNsYXJhdGlvbixcbiAgybXJtUlucHV0VHJhbnNmb3Jtc0ZlYXR1cmUsXG4gIMm1ybVOZ01vZHVsZURlY2xhcmF0aW9uLFxuICDJtcm1TmdPbkNoYW5nZXNGZWF0dXJlLFxuICDJtcm1UGlwZURlY2xhcmF0aW9uLFxuICDJtcm1UHJvdmlkZXJzRmVhdHVyZSxcbiAgybXJtXNldENvbXBvbmVudFNjb3BlLFxuICDJtcm1c2V0TmdNb2R1bGVTY29wZSxcbiAgybXJtVN0YW5kYWxvbmVGZWF0dXJlLFxufTtcbiJdfQ==
@@ -235,10 +235,8 @@ function wrapListener(tNode, lView, context, listenerFn, wrapWithPreventDefault)
235
235
  }
236
236
  if (wrapWithPreventDefault && result === false) {
237
237
  e.preventDefault();
238
- // Necessary for legacy browsers that don't support preventDefault (e.g. IE)
239
- e.returnValue = false;
240
238
  }
241
239
  return result;
242
240
  };
243
241
  }
244
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGVuZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9yZW5kZXIzL2luc3RydWN0aW9ucy9saXN0ZW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFHSCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFJL0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFTLFFBQVEsRUFBUSxNQUFNLG9CQUFvQixDQUFDO0FBQzVFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsUUFBUSxFQUFnQixNQUFNLGFBQWEsQ0FBQztBQUNwRCxPQUFPLEVBQUMsc0JBQXNCLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDckYsT0FBTyxFQUFDLHdCQUF3QixFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRTNGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsdUJBQXVCLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixFQUFDLE1BQU0sVUFBVSxDQUFDO0FBSTlHOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FDdEIsU0FBaUIsRUFBRSxVQUE0QixFQUFFLFVBQW9CLEVBQ3JFLG1CQUEwQztJQUM1QyxNQUFNLEtBQUssR0FBRyxRQUFRLEVBQVcsQ0FBQztJQUNsQyxNQUFNLEtBQUssR0FBRyxRQUFRLEVBQUUsQ0FBQztJQUN6QixNQUFNLEtBQUssR0FBRyxl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LEtBQUssRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQztZQUN2RixjQUFjLEdBQVMsY0FBZSxDQUFDLG9CQUFvQixDQUFDO1NBQzdEO1FBRUQsSUFBSSxzQkFBc0IsSUFBSSxNQUFNLEtBQUssS0FBSyxFQUFFO1lBQzlDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNuQiw0RUFBNEU7WUFDNUUsQ0FBQyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7U0FDdkI7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cblxuaW1wb3J0IHthc3NlcnRJbmRleEluUmFuZ2V9IGZyb20gJy4uLy4uL3V0aWwvYXNzZXJ0JztcbmltcG9ydCB7aXNTdWJzY3JpYmFibGV9IGZyb20gJy4uLy4uL3V0aWwvbGFuZyc7XG5pbXBvcnQge1Byb3BlcnR5QWxpYXNWYWx1ZSwgVE5vZGUsIFROb2RlVHlwZX0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ub2RlJztcbmltcG9ydCB7R2xvYmFsVGFyZ2V0UmVzb2x2ZXIsIFJlbmRlcmVyfSBmcm9tICcuLi9pbnRlcmZhY2VzL3JlbmRlcmVyJztcbmltcG9ydCB7UkVsZW1lbnR9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVuZGVyZXJfZG9tJztcbmltcG9ydCB7aXNEaXJlY3RpdmVIb3N0fSBmcm9tICcuLi9pbnRlcmZhY2VzL3R5cGVfY2hlY2tzJztcbmltcG9ydCB7Q0xFQU5VUCwgQ09OVEVYVCwgTFZpZXcsIFJFTkRFUkVSLCBUVmlld30gZnJvbSAnLi4vaW50ZXJmYWNlcy92aWV3JztcbmltcG9ydCB7YXNzZXJ0VE5vZGVUeXBlfSBmcm9tICcuLi9ub2RlX2Fzc2VydCc7XG5pbXBvcnQge3Byb2ZpbGVyLCBQcm9maWxlckV2ZW50fSBmcm9tICcuLi9wcm9maWxlcic7XG5pbXBvcnQge2dldEN1cnJlbnREaXJlY3RpdmVEZWYsIGdldEN1cnJlbnRUTm9kZSwgZ2V0TFZpZXcsIGdldFRWaWV3fSBmcm9tICcuLi9zdGF0ZSc7XG5pbXBvcnQge2dldENvbXBvbmVudExWaWV3QnlJbmRleCwgZ2V0TmF0aXZlQnlUTm9kZSwgdW53cmFwUk5vZGV9IGZyb20gJy4uL3V0aWwvdmlld191dGlscyc7XG5cbmltcG9ydCB7bWFya1ZpZXdEaXJ0eX0gZnJvbSAnLi9tYXJrX3ZpZXdfZGlydHknO1xuaW1wb3J0IHtnZXRPckNyZWF0ZUxWaWV3Q2xlYW51cCwgZ2V0T3JDcmVhdGVUVmlld0NsZWFudXAsIGhhbmRsZUVycm9yLCBsb2FkQ29tcG9uZW50UmVuZGVyZXJ9IGZyb20gJy4vc2hhcmVkJztcblxuXG5cbi8qKlxuICogQWRkcyBhbiBldmVudCBsaXN0ZW5lciB0byB0aGUgY3VycmVudCBub2RlLlxuICpcbiAqIElmIGFuIG91dHB1dCBleGlzdHMgb24gb25lIG9mIHRoZSBub2RlJ3MgZGlyZWN0aXZlcywgaXQgYWxzbyBzdWJzY3JpYmVzIHRvIHRoZSBvdXRwdXRcbiAqIGFuZCBzYXZlcyB0aGUgc3Vic2NyaXB0aW9uIGZvciBsYXRlciBjbGVhbnVwLlxuICpcbiAqIEBwYXJhbSBldmVudE5hbWUgTmFtZSBvZiB0aGUgZXZlbnRcbiAqIEBwYXJhbSBsaXN0ZW5lckZuIFRoZSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiBldmVudCBlbWl0c1xuICogQHBhcmFtIHVzZUNhcHR1cmUgV2hldGhlciBvciBub3QgdG8gdXNlIGNhcHR1cmUgaW4gZXZlbnQgbGlzdGVuZXIgLSB0aGlzIGFyZ3VtZW50IGlzIGEgcmVtaW5kZXJcbiAqICAgICBmcm9tIHRoZSBSZW5kZXJlcjMgaW5mcmFzdHJ1Y3R1cmUgYW5kIHNob3VsZCBiZSByZW1vdmVkIGZyb20gdGhlIGluc3RydWN0aW9uIGFyZ3VtZW50c1xuICogQHBhcmFtIGV2ZW50VGFyZ2V0UmVzb2x2ZXIgRnVuY3Rpb24gdGhhdCByZXR1cm5zIGdsb2JhbCB0YXJnZXQgaW5mb3JtYXRpb24gaW4gY2FzZSB0aGlzIGxpc3RlbmVyXG4gKiBzaG91bGQgYmUgYXR0YWNoZWQgdG8gYSBnbG9iYWwgb2JqZWN0IGxpa2Ugd2luZG93LCBkb2N1bWVudCBvciBib2R5XG4gKlxuICogQGNvZGVHZW5BcGlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIMm1ybVsaXN0ZW5lcihcbiAgICBldmVudE5hbWU6IHN0cmluZywgbGlzdGVuZXJGbjogKGU/OiBhbnkpID0+IGFueSwgdXNlQ2FwdHVyZT86IGJvb2xlYW4sXG4gICAgZXZlbnRUYXJnZXRSZXNvbHZlcj86IEdsb2JhbFRhcmdldFJlc29sdmVyKTogdHlwZW9mIMm1ybVsaXN0ZW5lciB7XG4gIGNvbnN0IGxWaWV3ID0gZ2V0TFZpZXc8e318bnVsbD4oKTtcbiAgY29uc3QgdFZpZXcgPSBnZXRUVmlldygpO1xuICBjb25zdCB0Tm9kZSA9IGdldEN1cnJlbnRUTm9kZSgpITtcbiAgbGlzdGVuZXJJbnRlcm5hbChcbiAgICAgIHRWaWV3LCBsVmlldywgbFZpZXdbUkVOREVSRVJdLCB0Tm9kZSwgZXZlbnROYW1lLCBsaXN0ZW5lckZuLCBldmVudFRhcmdldFJlc29sdmVyKTtcbiAgcmV0dXJuIMm1ybVsaXN0ZW5lcjtcbn1cblxuLyoqXG4gKiBSZWdpc3RlcnMgYSBzeW50aGV0aWMgaG9zdCBsaXN0ZW5lciAoZS5nLiBgKEBmb28uc3RhcnQpYCkgb24gYSBjb21wb25lbnQgb3IgZGlyZWN0aXZlLlxuICpcbiAqIFRoaXMgaW5zdHJ1Y3Rpb24gaXMgZm9yIGNvbXBhdGliaWxpdHkgcHVycG9zZXMgYW5kIGlzIGRlc2lnbmVkIHRvIGVuc3VyZSB0aGF0IGFcbiAqIHN5bnRoZXRpYyBob3N0IGxpc3RlbmVyIChlLmcuIGBASG9zdExpc3RlbmVyKCdAZm9vLnN0YXJ0JylgKSBwcm9wZXJseSBnZXRzIHJlbmRlcmVkXG4gKiBpbiB0aGUgY29tcG9uZW50J3MgcmVuZGVyZXIuIE5vcm1hbGx5IGFsbCBob3N0IGxpc3RlbmVycyBhcmUgZXZhbHVhdGVkIHdpdGggdGhlXG4gKiBwYXJlbnQgY29tcG9uZW50J3MgcmVuZGVyZXIsIGJ1dCwgaW4gdGhlIGNhc2Ugb2YgYW5pbWF0aW9uIEB0cmlnZ2VycywgdGhleSBuZWVkXG4gKiB0byBiZSBldmFsdWF0ZWQgd2l0aCB0aGUgc3ViIGNvbXBvbmVudCdzIHJlbmRlcmVyIChiZWNhdXNlIHRoYXQncyB3aGVyZSB0aGVcbiAqIGFuaW1hdGlvbiB0cmlnZ2VycyBhcmUgZGVmaW5lZCkuXG4gKlxuICogRG8gbm90IHVzZSB0aGlzIGluc3RydWN0aW9uIGFzIGEgcmVwbGFjZW1lbnQgZm9yIGBsaXN0ZW5lcmAuIFRoaXMgaW5zdHJ1Y3Rpb25cbiAqIG9ubHkgZXhpc3RzIHRvIGVuc3VyZSBjb21wYXRpYmlsaXR5IHdpdGggdGhlIFZpZXdFbmdpbmUncyBob3N0IGJpbmRpbmcgYmVoYXZpb3IuXG4gKlxuICogQHBhcmFtIGV2ZW50TmFtZSBOYW1lIG9mIHRoZSBldmVudFxuICogQHBhcmFtIGxpc3RlbmVyRm4gVGhlIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIGV2ZW50IGVtaXRzXG4gKiBAcGFyYW0gdXNlQ2FwdHVyZSBXaGV0aGVyIG9yIG5vdCB0byB1c2UgY2FwdHVyZSBpbiBldmVudCBsaXN0ZW5lclxuICogQHBhcmFtIGV2ZW50VGFyZ2V0UmVzb2x2ZXIgRnVuY3Rpb24gdGhhdCByZXR1cm5zIGdsb2JhbCB0YXJnZXQgaW5mb3JtYXRpb24gaW4gY2FzZSB0aGlzIGxpc3RlbmVyXG4gKiBzaG91bGQgYmUgYXR0YWNoZWQgdG8gYSBnbG9iYWwgb2JqZWN0IGxpa2Ugd2luZG93LCBkb2N1bWVudCBvciBib2R5XG4gKlxuICogQGNvZGVHZW5BcGlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIMm1ybVzeW50aGV0aWNIb3N0TGlzdGVuZXIoXG4gICAgZXZlbnROYW1lOiBzdHJpbmcsIGxpc3RlbmVyRm46IChlPzogYW55KSA9PiBhbnkpOiB0eXBlb2YgybXJtXN5bnRoZXRpY0hvc3RMaXN0ZW5lciB7XG4gIGNvbnN0IHROb2RlID0gZ2V0Q3VycmVudFROb2RlKCkhO1xuICBjb25zdCBsVmlldyA9IGdldExWaWV3PHt9fG51bGw+KCk7XG4gIGNvbnN0IHRWaWV3ID0gZ2V0VFZpZXcoKTtcbiAgY29uc3QgY3VycmVudERlZiA9IGdldEN1cnJlbnREaXJlY3RpdmVEZWYodFZpZXcuZGF0YSk7XG4gIGNvbnN0IHJlbmRlcmVyID0gbG9hZENvbXBvbmVudFJlbmRlcmVyKGN1cnJlbnREZWYsIHROb2RlLCBsVmlldyk7XG4gIGxpc3RlbmVySW50ZXJuYWwodFZpZXcsIGxWaWV3LCByZW5kZXJlciwgdE5vZGUsIGV2ZW50TmFtZSwgbGlzdGVuZXJGbik7XG4gIHJldHVybiDJtcm1c3ludGhldGljSG9zdExpc3RlbmVyO1xufVxuXG4vKipcbiAqIEEgdXRpbGl0eSBmdW5jdGlvbiB0aGF0IGNoZWNrcyBpZiBhIGdpdmVuIGVsZW1lbnQgaGFzIGFscmVhZHkgYW4gZXZlbnQgaGFuZGxlciByZWdpc3RlcmVkIGZvciBhblxuICogZXZlbnQgd2l0aCBhIHNwZWNpZmllZCBuYW1lLiBUaGUgVFZpZXcuY2xlYW51cCBkYXRhIHN0cnVjdHVyZSBpcyB1c2VkIHRvIGZpbmQgb3V0IHdoaWNoIGV2ZW50c1xuICogYXJlIHJlZ2lzdGVyZWQgZm9yIGEgZ2l2ZW4gZWxlbWVudC5cbiAqL1xuZnVuY3Rpb24gZmluZEV4aXN0aW5nTGlzdGVuZXIoXG4gICAgdFZpZXc6IFRWaWV3LCBsVmlldzogTFZpZXcsIGV2ZW50TmFtZTogc3RyaW5nLCB0Tm9kZUlkeDogbnVtYmVyKTogKChlPzogYW55KSA9PiBhbnkpfG51bGwge1xuICBjb25zdCB0Q2xlYW51cCA9IHRWaWV3LmNsZWFudXA7XG4gIGlmICh0Q2xlYW51cCAhPSBudWxsKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0Q2xlYW51cC5sZW5ndGggLSAxOyBpICs9IDIpIHtcbiAgICAgIGNvbnN0IGNsZWFudXBFdmVudE5hbWUgPSB0Q2xlYW51cFtpXTtcbiAgICAgIGlmIChjbGVhbnVwRXZlbnROYW1lID09PSBldmVudE5hbWUgJiYgdENsZWFudXBbaSArIDFdID09PSB0Tm9kZUlkeCkge1xuICAgICAgICAvLyBXZSBoYXZlIGZvdW5kIGEgbWF0Y2hpbmcgZXZlbnQgbmFtZSBvbiB0aGUgc2FtZSBub2RlIGJ1dCBpdCBtaWdodCBub3QgaGF2ZSBiZWVuXG4gICAgICAgIC8vIHJlZ2lzdGVyZWQgeWV0LCBzbyB3ZSBtdXN0IGV4cGxpY2l0bHkgdmVyaWZ5IGVudHJpZXMgaW4gdGhlIExWaWV3IGNsZWFudXAgZGF0YVxuICAgICAgICAvLyBzdHJ1Y3R1cmVzLlxuICAgICAgICBjb25zdCBsQ2xlYW51cCA9IGxWaWV3W0NMRUFOVVBdITtcbiAgICAgICAgY29uc3QgbGlzdGVuZXJJZHhJbkxDbGVhbnVwID0gdENsZWFudXBbaSArIDJdO1xuICAgICAgICByZXR1cm4gbENsZWFudXAubGVuZ3RoID4gbGlzdGVuZXJJZHhJbkxDbGVhbnVwID8gbENsZWFudXBbbGlzdGVuZXJJZHhJbkxDbGVhbnVwXSA6IG51bGw7XG4gICAgICB9XG4gICAgICAvLyBUVmlldy5jbGVhbnVwIGNhbiBoYXZlIGEgbWl4IG9mIDQtZWxlbWVudHMgZW50cmllcyAoZm9yIGV2ZW50IGhhbmRsZXIgY2xlYW51cHMpIG9yXG4gICAgICAvLyAyLWVsZW1lbnQgZW50cmllcyAoZm9yIGRpcmVjdGl2ZSBhbmQgcXVlcmllcyBkZXN0cm95IGhvb2tzKS4gQXMgc3VjaCB3ZSBjYW4gZW5jb3VudGVyXG4gICAgICAvLyBibG9ja3Mgb2YgNCBvciAyIGl0ZW1zIGluIHRoZSB0Vmlldy5jbGVhbnVwIGFuZCB0aGlzIGlzIHdoeSB3ZSBpdGVyYXRlIG92ZXIgMiBlbGVtZW50c1xuICAgICAgLy8gZmlyc3QgYW5kIGp1bXAgYW5vdGhlciAyIGVsZW1lbnRzIGlmIHdlIGRldGVjdCBsaXN0ZW5lcnMgY2xlYW51cCAoNCBlbGVtZW50cykuIEFsc28gY2hlY2tcbiAgICAgIC8vIGRvY3VtZW50YXRpb24gb2YgVFZpZXcuY2xlYW51cCBmb3IgbW9yZSBkZXRhaWxzIG9mIHRoaXMgZGF0YSBzdHJ1Y3R1cmUgbGF5b3V0LlxuICAgICAgaWYgKHR5cGVvZiBjbGVhbnVwRXZlbnROYW1lID09PSAnc3RyaW5nJykge1xuICAgICAgICBpICs9IDI7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBsaXN0ZW5lckludGVybmFsKFxuICAgIHRWaWV3OiBUVmlldywgbFZpZXc6IExWaWV3PHt9fG51bGw+LCByZW5kZXJlcjogUmVuZGVyZXIsIHROb2RlOiBUTm9kZSwgZXZlbnROYW1lOiBzdHJpbmcsXG4gICAgbGlzdGVuZXJGbjogKGU/OiBhbnkpID0+IGFueSwgZXZlbnRUYXJnZXRSZXNvbHZlcj86IEdsb2JhbFRhcmdldFJlc29sdmVyKTogdm9pZCB7XG4gIGNvbnN0IGlzVE5vZGVEaXJlY3RpdmVIb3N0ID0gaXNEaXJlY3RpdmVIb3N0KHROb2RlKTtcbiAgY29uc3QgZmlyc3RDcmVhdGVQYXNzID0gdFZpZXcuZmlyc3RDcmVhdGVQYXNzO1xuICBjb25zdCB0Q2xlYW51cDogZmFsc2V8YW55W10gPSBmaXJzdENyZWF0ZVBhc3MgJiYgZ2V0T3JDcmVhdGVUVmlld0NsZWFudXAodFZpZXcpO1xuICBjb25zdCBjb250ZXh0ID0gbFZpZXdbQ09OVEVYVF07XG5cbiAgLy8gV2hlbiB0aGUgybXJtWxpc3RlbmVyIGluc3RydWN0aW9uIHdhcyBnZW5lcmF0ZWQgYW5kIGlzIGV4ZWN1dGVkIHdlIGtub3cgdGhhdCB0aGVyZSBpcyBlaXRoZXIgYVxuICAvLyBuYXRpdmUgbGlzdGVuZXIgb3IgYSBkaXJlY3RpdmUgb3V0cHV0IG9uIHRoaXMgZWxlbWVudC4gQXMgc3VjaCB3ZSB3ZSBrbm93IHRoYXQgd2Ugd2lsbCBoYXZlIHRvXG4gIC8vIHJlZ2lzdGVyIGEgbGlzdGVuZXIgYW5kIHN0b3JlIGl0cyBjbGVhbnVwIGZ1bmN0aW9uIG9uIExWaWV3LlxuICBjb25zdCBsQ2xlYW51cCA9IGdldE9yQ3JlYXRlTFZpZXdDbGVhbnVwKGxWaWV3KTtcblxuICBuZ0Rldk1vZGUgJiYgYXNzZXJ0VE5vZGVUeXBlKHROb2RlLCBUTm9kZVR5cGUuQW55Uk5vZGUgfCBUTm9kZVR5cGUuQW55Q29udGFpbmVyKTtcblxuICBsZXQgcHJvY2Vzc091dHB1dHMgPSB0cnVlO1xuXG4gIC8vIEFkZGluZyBhIG5hdGl2ZSBldmVudCBsaXN0ZW5lciBpcyBhcHBsaWNhYmxlIHdoZW46XG4gIC8vIC0gVGhlIGNvcnJlc3BvbmRpbmcgVE5vZGUgcmVwcmVzZW50cyBhIERPTSBlbGVtZW50LlxuICAvLyAtIFRoZSBldmVudCB0YXJnZXQgaGFzIGEgcmVzb2x2ZXIgKHVzdWFsbHkgcmVzdWx0aW5nIGluIGEgZ2xvYmFsIG9iamVjdCxcbiAgLy8gICBzdWNoIGFzIGB3aW5kb3dgIG9yIGBkb2N1bWVudGApLlxuICBpZiAoKHROb2RlLnR5cGUgJiBUTm9kZVR5cGUuQW55Uk5vZGUpIHx8IGV2ZW50VGFyZ2V0UmVzb2x2ZXIpIHtcbiAgICBjb25zdCBuYXRpdmUgPSBnZXROYXRpdmVCeVROb2RlKHROb2RlLCBsVmlldykgYXMgUkVsZW1lbnQ7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnRUYXJnZXRSZXNvbHZlciA/IGV2ZW50VGFyZ2V0UmVzb2x2ZXIobmF0aXZlKSA6IG5hdGl2ZTtcbiAgICBjb25zdCBsQ2xlYW51cEluZGV4ID0gbENsZWFudXAubGVuZ3RoO1xuICAgIGNvbnN0IGlkeE9yVGFyZ2V0R2V0dGVyID0gZXZlbnRUYXJnZXRSZXNvbHZlciA/XG4gICAgICAgIChfbFZpZXc6IExWaWV3KSA9PiBldmVudFRhcmdldFJlc29sdmVyKHVud3JhcFJOb2RlKF9sVmlld1t0Tm9kZS5pbmRleF0pKSA6XG4gICAgICAgIHROb2RlLmluZGV4O1xuXG4gICAgLy8gSW4gb3JkZXIgdG8gbWF0Y2ggY3VycmVudCBiZWhhdmlvciwgbmF0aXZlIERPTSBldmVudCBsaXN0ZW5lcnMgbXVzdCBiZSBhZGRlZCBmb3IgYWxsXG4gICAgLy8gZXZlbnRzIChpbmNsdWRpbmcgb3V0cHV0cykuXG5cbiAgICAvLyBUaGVyZSBtaWdodCBiZSBjYXNlcyB3aGVyZSBtdWx0aXBsZSBkaXJlY3RpdmVzIG9uIHRoZSBzYW1lIGVsZW1lbnQgdHJ5IHRvIHJlZ2lzdGVyIGFuIGV2ZW50XG4gICAgLy8gaGFuZGxlciBmdW5jdGlvbiBmb3IgdGhlIHNhbWUgZXZlbnQuIEluIHRoaXMgc2l0dWF0aW9uIHdlIHdhbnQgdG8gYXZvaWQgcmVnaXN0cmF0aW9uIG9mXG4gICAgLy8gc2V2ZXJhbCBuYXRpdmUgbGlzdGVuZXJzIGFzIGVhY2ggcmVnaXN0cmF0aW9uIHdvdWxkIGJlIGludGVyY2VwdGVkIGJ5IE5nWm9uZSBhbmRcbiAgICAvLyB0cmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb24uIFRoaXMgd291bGQgbWVhbiB0aGF0IGEgc2luZ2xlIHVzZXIgYWN0aW9uIHdvdWxkIHJlc3VsdCBpbiBzZXZlcmFsXG4gICAgLy8gY2hhbmdlIGRldGVjdGlvbnMgYmVpbmcgaW52b2tlZC4gVG8gYXZvaWQgdGhpcyBzaXR1YXRpb24gd2Ugd2FudCB0byBoYXZlIG9ubHkgb25lIGNhbGwgdG9cbiAgICAvLyBuYXRpdmUgaGFuZGxlciByZWdpc3RyYXRpb24gKGZvciB0aGUgc2FtZSBlbGVtZW50IGFuZCBzYW1lIHR5cGUgb2YgZXZlbnQpLlxuICAgIC8vXG4gICAgLy8gSW4gb3JkZXIgdG8gaGF2ZSBqdXN0IG9uZSBuYXRpdmUgZXZlbnQgaGFuZGxlciBpbiBwcmVzZW5jZSBvZiBtdWx0aXBsZSBoYW5kbGVyIGZ1bmN0aW9ucyxcbiAgICAvLyB3ZSBqdXN0IHJlZ2lzdGVyIGEgZmlyc3QgaGFuZGxlciBmdW5jdGlvbiBhcyBhIG5hdGl2ZSBldmVudCBsaXN0ZW5lciBhbmQgdGhlbiBjaGFpblxuICAgIC8vIChjb2FsZXNjZSkgb3RoZXIgaGFuZGxlciBmdW5jdGlvbnMgb24gdG9wIG9mIHRoZSBmaXJzdCBuYXRpdmUgaGFuZGxlciBmdW5jdGlvbi5cbiAgICBsZXQgZXhpc3RpbmdMaXN0ZW5lciA9IG51bGw7XG4gICAgLy8gUGxlYXNlIG5vdGUgdGhhdCB0aGUgY29hbGVzY2luZyBkZXNjcmliZWQgaGVyZSBkb2Vzbid0IGhhcHBlbiBmb3IgZXZlbnRzIHNwZWNpZnlpbmcgYW5cbiAgICAvLyBhbHRlcm5hdGl2ZSB0YXJnZXQgKGV4LiAoZG9jdW1lbnQ6Y2xpY2spKSAtIHRoaXMgaXMgdG8ga2VlcCBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggdGhlXG4gICAgLy8gdmlldyBlbmdpbmUuXG4gICAgLy8gQWxzbywgd2UgZG9uJ3QgaGF2ZSB0byBzZWFyY2ggZm9yIGV4aXN0aW5nIGxpc3RlbmVycyBpcyB0aGVyZSBhcmUgbm8gZGlyZWN0aXZlc1xuICAgIC8vIG1hdGNoaW5nIG9uIGEgZ2l2ZW4gbm9kZSBhcyB3ZSBjYW4ndCByZWdpc3RlciBtdWx0aXBsZSBldmVudCBoYW5kbGVycyBmb3IgdGhlIHNhbWUgZXZlbnQgaW5cbiAgICAvLyBhIHRlbXBsYXRlICh0aGlzIHdvdWxkIG1lYW4gaGF2aW5nIGR1cGxpY2F0ZSBhdHRyaWJ1dGVzKS5cbiAgICBpZiAoIWV2ZW50VGFyZ2V0UmVzb2x2ZXIgJiYgaXNUTm9kZURpcmVjdGl2ZUhvc3QpIHtcbiAgICAgIGV4aXN0aW5nTGlzdGVuZXIgPSBmaW5kRXhpc3RpbmdMaXN0ZW5lcih0VmlldywgbFZpZXcsIGV2ZW50TmFtZSwgdE5vZGUuaW5kZXgpO1xuICAgIH1cbiAgICBpZiAoZXhpc3RpbmdMaXN0ZW5lciAhPT0gbnVsbCkge1xuICAgICAgLy8gQXR0YWNoIGEgbmV3IGxpc3RlbmVyIHRvIGNvYWxlc2NlZCBsaXN0ZW5lcnMgbGlzdCwgbWFpbnRhaW5pbmcgdGhlIG9yZGVyIGluIHdoaWNoXG4gICAgICAvLyBsaXN0ZW5lcnMgYXJlIHJlZ2lzdGVyZWQuIEZvciBwZXJmb3JtYW5jZSByZWFzb25zLCB3ZSBrZWVwIGEgcmVmZXJlbmNlIHRvIHRoZSBsYXN0XG4gICAgICAvLyBsaXN0ZW5lciBpbiB0aGF0IGxpc3QgKGluIGBfX25nTGFzdExpc3RlbmVyRm5fX2AgZmllbGQpLCBzbyB3ZSBjYW4gYXZvaWQgZ29pbmcgdGhyb3VnaFxuICAgICAgLy8gdGhlIGVudGlyZSBzZXQgZWFjaCB0aW1lIHdlIG5lZWQgdG8gYWRkIGEgbmV3IGxpc3RlbmVyLlxuICAgICAgY29uc3QgbGFzdExpc3RlbmVyRm4gPSAoPGFueT5leGlzdGluZ0xpc3RlbmVyKS5fX25nTGFzdExpc3RlbmVyRm5fXyB8fCBleGlzdGluZ0xpc3RlbmVyO1xuICAgICAgbGFzdExpc3RlbmVyRm4uX19uZ05leHRMaXN0ZW5lckZuX18gPSBsaXN0ZW5lckZuO1xuICAgICAgKDxhbnk+ZXhpc3RpbmdMaXN0ZW5lcikuX19uZ0xhc3RMaXN0ZW5lckZuX18gPSBsaXN0ZW5lckZuO1xuICAgICAgcHJvY2Vzc091dHB1dHMgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGlzdGVuZXJGbiA9IHdyYXBMaXN0ZW5lcih0Tm9kZSwgbFZpZXcsIGNvbnRleHQsIGxpc3RlbmVyRm4sIGZhbHNlIC8qKiBwcmV2ZW50RGVmYXVsdCAqLyk7XG4gICAgICBjb25zdCBjbGVhbnVwRm4gPSByZW5kZXJlci5saXN0ZW4odGFyZ2V0IGFzIFJFbGVtZW50LCBldmVudE5hbWUsIGxpc3RlbmVyRm4pO1xuICAgICAgbmdEZXZNb2RlICYmIG5nRGV2TW9kZS5yZW5kZXJlckFkZEV2ZW50TGlzdGVuZXIrKztcblxuICAgICAgbENsZWFudXAucHVzaChsaXN0ZW5lckZuLCBjbGVhbnVwRm4pO1xuICAgICAgdENsZWFudXAgJiYgdENsZWFudXAucHVzaChldmVudE5hbWUsIGlkeE9yVGFyZ2V0R2V0dGVyLCBsQ2xlYW51cEluZGV4LCBsQ2xlYW51cEluZGV4ICsgMSk7XG4gICAgfVxuXG4gIH0gZWxzZSB7XG4gICAgLy8gRXZlbiBpZiB0aGVyZSBpcyBubyBuYXRpdmUgbGlzdGVuZXIgdG8gYWRkLCB3ZSBzdGlsbCBuZWVkIHRvIHdyYXAgdGhlIGxpc3RlbmVyIHNvIHRoYXQgT25QdXNoXG4gICAgLy8gYW5jZXN0b3JzIGFyZSBtYXJrZWQgZGlydHkgd2hlbiBhbiBldmVudCBvY2N1cnMuXG4gICAgbGlzdGVuZXJGbiA9IHdyYXBMaXN0ZW5lcih0Tm9kZSwgbFZpZXcsIGNvbnRleHQsIGxpc3RlbmVyRm4sIGZhbHNlIC8qKiBwcmV2ZW50RGVmYXVsdCAqLyk7XG4gIH1cblxuICAvLyBzdWJzY3JpYmUgdG8gZGlyZWN0aXZlIG91dHB1dHNcbiAgY29uc3Qgb3V0cHV0cyA9IHROb2RlLm91dHB1dHM7XG4gIGxldCBwcm9wczogUHJvcGVydHlBbGlhc1ZhbHVlfHVuZGVmaW5lZDtcbiAgaWYgKHByb2Nlc3NPdXRwdXRzICYmIG91dHB1dHMgIT09IG51bGwgJiYgKHByb3BzID0gb3V0cHV0c1tldmVudE5hbWVdKSkge1xuICAgIGNvbnN0IHByb3BzTGVuZ3RoID0gcHJvcHMubGVuZ3RoO1xuICAgIGlmIChwcm9wc0xlbmd0aCkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcm9wc0xlbmd0aDsgaSArPSAyKSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gcHJvcHNbaV0gYXMgbnVtYmVyO1xuICAgICAgICBuZ0Rldk1vZGUgJiYgYXNzZXJ0SW5kZXhJblJhbmdlKGxWaWV3LCBpbmRleCk7XG4gICAgICAgIGNvbnN0IG1pbmlmaWVkTmFtZSA9IHByb3BzW2kgKyAxXTtcbiAgICAgICAgY29uc3QgZGlyZWN0aXZlSW5zdGFuY2UgPSBsVmlld1tpbmRleF07XG4gICAgICAgIGNvbnN0IG91dHB1dCA9IGRpcmVjdGl2ZUluc3RhbmNlW21pbmlmaWVkTmFtZV07XG5cbiAgICAgICAgaWYgKG5nRGV2TW9kZSAmJiAhaXNTdWJzY3JpYmFibGUob3V0cHV0KSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQE91dHB1dCAke21pbmlmaWVkTmFtZX0gbm90IGluaXRpYWxpemVkIGluICcke1xuICAgICAgICAgICAgICBkaXJlY3RpdmVJbnN0YW5jZS5jb25zdHJ1Y3Rvci5uYW1lfScuYCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSBvdXRwdXQuc3Vic2NyaWJlKGxpc3RlbmVyRm4pO1xuICAgICAgICBjb25zdCBpZHggPSBsQ2xlYW51cC5sZW5ndGg7XG4gICAgICAgIGxDbGVhbnVwLnB1c2gobGlzdGVuZXJGbiwgc3Vic2NyaXB0aW9uKTtcbiAgICAgICAgdENsZWFudXAgJiYgdENsZWFudXAucHVzaChldmVudE5hbWUsIHROb2RlLmluZGV4LCBpZHgsIC0oaWR4ICsgMSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBleGVjdXRlTGlzdGVuZXJXaXRoRXJyb3JIYW5kbGluZyhcbiAgICBsVmlldzogTFZpZXcsIGNvbnRleHQ6IHt9fG51bGwsIGxpc3RlbmVyRm46IChlPzogYW55KSA9PiBhbnksIGU6IGFueSk6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIHByb2ZpbGVyKFByb2ZpbGVyRXZlbnQuT3V0cHV0U3RhcnQsIGNvbnRleHQsIGxpc3RlbmVyRm4pO1xuICAgIC8vIE9ubHkgZXhwbGljaXRseSByZXR1cm5pbmcgZmFsc2UgZnJvbSBhIGxpc3RlbmVyIHNob3VsZCBwcmV2ZW50RGVmYXVsdFxuICAgIHJldHVybiBsaXN0ZW5lckZuKGUpICE9PSBmYWxzZTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBoYW5kbGVFcnJvcihsVmlldywgZXJyb3IpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfSBmaW5hbGx5IHtcbiAgICBwcm9maWxlcihQcm9maWxlckV2ZW50Lk91dHB1dEVuZCwgY29udGV4dCwgbGlzdGVuZXJGbik7XG4gIH1cbn1cblxuLyoqXG4gKiBXcmFwcyBhbiBldmVudCBsaXN0ZW5lciB3aXRoIGEgZnVuY3Rpb24gdGhhdCBtYXJrcyBhbmNlc3RvcnMgZGlydHkgYW5kIHByZXZlbnRzIGRlZmF1bHQgYmVoYXZpb3IsXG4gKiBpZiBhcHBsaWNhYmxlLlxuICpcbiAqIEBwYXJhbSB0Tm9kZSBUaGUgVE5vZGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbGlzdGVuZXJcbiAqIEBwYXJhbSBsVmlldyBUaGUgTFZpZXcgdGhhdCBjb250YWlucyB0aGlzIGxpc3RlbmVyXG4gKiBAcGFyYW0gbGlzdGVuZXJGbiBUaGUgbGlzdGVuZXIgZnVuY3Rpb24gdG8gY2FsbFxuICogQHBhcmFtIHdyYXBXaXRoUHJldmVudERlZmF1bHQgV2hldGhlciBvciBub3QgdG8gcHJldmVudCBkZWZhdWx0IGJlaGF2aW9yXG4gKiAodGhlIHByb2NlZHVyYWwgcmVuZGVyZXIgZG9lcyB0aGlzIGFscmVhZHksIHNvIGluIHRob3NlIGNhc2VzLCB3ZSBzaG91bGQgc2tpcClcbiAqL1xuZnVuY3Rpb24gd3JhcExpc3RlbmVyKFxuICAgIHROb2RlOiBUTm9kZSwgbFZpZXc6IExWaWV3PHt9fG51bGw+LCBjb250ZXh0OiB7fXxudWxsLCBsaXN0ZW5lckZuOiAoZT86IGFueSkgPT4gYW55LFxuICAgIHdyYXBXaXRoUHJldmVudERlZmF1bHQ6IGJvb2xlYW4pOiBFdmVudExpc3RlbmVyIHtcbiAgLy8gTm90ZTogd2UgYXJlIHBlcmZvcm1pbmcgbW9zdCBvZiB0aGUgd29yayBpbiB0aGUgbGlzdGVuZXIgZnVuY3Rpb24gaXRzZWxmXG4gIC8vIHRvIG9wdGltaXplIGxpc3RlbmVyIHJlZ2lzdHJhdGlvbi5cbiAgcmV0dXJuIGZ1bmN0aW9uIHdyYXBMaXN0ZW5lckluX21hcmtEaXJ0eUFuZFByZXZlbnREZWZhdWx0KGU6IGFueSkge1xuICAgIC8vIEl2eSB1c2VzIGBGdW5jdGlvbmAgYXMgYSBzcGVjaWFsIHRva2VuIHRoYXQgYWxsb3dzIHVzIHRvIHVud3JhcCB0aGUgZnVuY3Rpb25cbiAgICAvLyBzbyB0aGF0IGl0IGNhbiBiZSBpbnZva2VkIHByb2dyYW1tYXRpY2FsbHkgYnkgYERlYnVnTm9kZS50cmlnZ2VyRXZlbnRIYW5kbGVyYC5cbiAgICBpZiAoZSA9PT0gRnVuY3Rpb24pIHtcbiAgICAgIHJldHVybiBsaXN0ZW5lckZuO1xuICAgIH1cblxuICAgIC8vIEluIG9yZGVyIHRvIGJlIGJhY2t3YXJkcyBjb21wYXRpYmxlIHdpdGggVmlldyBFbmdpbmUsIGV2ZW50cyBvbiBjb21wb25lbnQgaG9zdCBub2Rlc1xuICAgIC8vIG11c3QgYWxzbyBtYXJrIHRoZSBjb21wb25lbnQgdmlldyBpdHNlbGYgZGlydHkgKGkuZS4gdGhlIHZpZXcgdGhhdCBpdCBvd25zKS5cbiAgICBjb25zdCBzdGFydFZpZXcgPVxuICAgICAgICB0Tm9kZS5jb21wb25lbnRPZmZzZXQgPiAtMSA/IGdldENvbXBvbmVudExWaWV3QnlJbmRleCh0Tm9kZS5pbmRleCwgbFZpZXcpIDogbFZpZXc7XG4gICAgbWFya1ZpZXdEaXJ0eShzdGFydFZpZXcpO1xuXG4gICAgbGV0IHJlc3VsdCA9IGV4ZWN1dGVMaXN0ZW5lcldpdGhFcnJvckhhbmRsaW5nKGxWaWV3LCBjb250ZXh0LCBsaXN0ZW5lckZuLCBlKTtcbiAgICAvLyBBIGp1c3QtaW52b2tlZCBsaXN0ZW5lciBmdW5jdGlvbiBtaWdodCBoYXZlIGNvYWxlc2NlZCBsaXN0ZW5lcnMgc28gd2UgbmVlZCB0byBjaGVjayBmb3JcbiAgICAvLyB0aGVpciBwcmVzZW5jZSBhbmQgaW52b2tlIGFzIG5lZWRlZC5cbiAgICBsZXQgbmV4dExpc3RlbmVyRm4gPSAoPGFueT53cmFwTGlzdGVuZXJJbl9tYXJrRGlydHlBbmRQcmV2ZW50RGVmYXVsdCkuX19uZ05leHRMaXN0ZW5lckZuX187XG4gICAgd2hpbGUgKG5leHRMaXN0ZW5lckZuKSB7XG4gICAgICAvLyBXZSBzaG91bGQgcHJldmVudCBkZWZhdWx0IGlmIGFueSBvZiB0aGUgbGlzdGVuZXJzIGV4cGxpY2l0bHkgcmV0dXJuIGZhbHNlXG4gICAgICByZXN1bHQgPSBleGVjdXRlTGlzdGVuZXJXaXRoRXJyb3JIYW5kbGluZyhsVmlldywgY29udGV4dCwgbmV4dExpc3RlbmVyRm4sIGUpICYmIHJlc3VsdDtcbiAgICAgIG5leHRMaXN0ZW5lckZuID0gKDxhbnk+bmV4dExpc3RlbmVyRm4pLl9fbmdOZXh0TGlzdGVuZXJGbl9fO1xuICAgIH1cblxuICAgIGlmICh3cmFwV2l0aFByZXZlbnREZWZhdWx0ICYmIHJlc3VsdCA9PT0gZmFsc2UpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIC8vIE5lY2Vzc2FyeSBmb3IgbGVnYWN5IGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBwcmV2ZW50RGVmYXVsdCAoZS5nLiBJRSlcbiAgICAgIGUucmV0dXJuVmFsdWUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xufVxuIl19
242
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGVuZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9yZW5kZXIzL2luc3RydWN0aW9ucy9saXN0ZW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFHSCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFJL0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFTLFFBQVEsRUFBUSxNQUFNLG9CQUFvQixDQUFDO0FBQzVFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsUUFBUSxFQUFnQixNQUFNLGFBQWEsQ0FBQztBQUNwRCxPQUFPLEVBQUMsc0JBQXNCLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDckYsT0FBTyxFQUFDLHdCQUF3QixFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRTNGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsdUJBQXVCLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixFQUFDLE1BQU0sVUFBVSxDQUFDO0FBSTlHOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FDdEIsU0FBaUIsRUFBRSxVQUE0QixFQUFFLFVBQW9CLEVBQ3JFLG1CQUEwQztJQUM1QyxNQUFNLEtBQUssR0FBRyxRQUFRLEVBQVcsQ0FBQztJQUNsQyxNQUFNLEtBQUssR0FBRyxRQUFRLEVBQUUsQ0FBQztJQUN6QixNQUFNLEtBQUssR0FBRyxl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LEtBQUssRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQztZQUN2RixjQUFjLEdBQVMsY0FBZSxDQUFDLG9CQUFvQixDQUFDO1NBQzdEO1FBRUQsSUFBSSxzQkFBc0IsSUFBSSxNQUFNLEtBQUssS0FBSyxFQUFFO1lBQzlDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUNwQjtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuXG5pbXBvcnQge2Fzc2VydEluZGV4SW5SYW5nZX0gZnJvbSAnLi4vLi4vdXRpbC9hc3NlcnQnO1xuaW1wb3J0IHtpc1N1YnNjcmliYWJsZX0gZnJvbSAnLi4vLi4vdXRpbC9sYW5nJztcbmltcG9ydCB7UHJvcGVydHlBbGlhc1ZhbHVlLCBUTm9kZSwgVE5vZGVUeXBlfSBmcm9tICcuLi9pbnRlcmZhY2VzL25vZGUnO1xuaW1wb3J0IHtHbG9iYWxUYXJnZXRSZXNvbHZlciwgUmVuZGVyZXJ9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVuZGVyZXInO1xuaW1wb3J0IHtSRWxlbWVudH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZW5kZXJlcl9kb20nO1xuaW1wb3J0IHtpc0RpcmVjdGl2ZUhvc3R9IGZyb20gJy4uL2ludGVyZmFjZXMvdHlwZV9jaGVja3MnO1xuaW1wb3J0IHtDTEVBTlVQLCBDT05URVhULCBMVmlldywgUkVOREVSRVIsIFRWaWV3fSBmcm9tICcuLi9pbnRlcmZhY2VzL3ZpZXcnO1xuaW1wb3J0IHthc3NlcnRUTm9kZVR5cGV9IGZyb20gJy4uL25vZGVfYXNzZXJ0JztcbmltcG9ydCB7cHJvZmlsZXIsIFByb2ZpbGVyRXZlbnR9IGZyb20gJy4uL3Byb2ZpbGVyJztcbmltcG9ydCB7Z2V0Q3VycmVudERpcmVjdGl2ZURlZiwgZ2V0Q3VycmVudFROb2RlLCBnZXRMVmlldywgZ2V0VFZpZXd9IGZyb20gJy4uL3N0YXRlJztcbmltcG9ydCB7Z2V0Q29tcG9uZW50TFZpZXdCeUluZGV4LCBnZXROYXRpdmVCeVROb2RlLCB1bndyYXBSTm9kZX0gZnJvbSAnLi4vdXRpbC92aWV3X3V0aWxzJztcblxuaW1wb3J0IHttYXJrVmlld0RpcnR5fSBmcm9tICcuL21hcmtfdmlld19kaXJ0eSc7XG5pbXBvcnQge2dldE9yQ3JlYXRlTFZpZXdDbGVhbnVwLCBnZXRPckNyZWF0ZVRWaWV3Q2xlYW51cCwgaGFuZGxlRXJyb3IsIGxvYWRDb21wb25lbnRSZW5kZXJlcn0gZnJvbSAnLi9zaGFyZWQnO1xuXG5cblxuLyoqXG4gKiBBZGRzIGFuIGV2ZW50IGxpc3RlbmVyIHRvIHRoZSBjdXJyZW50IG5vZGUuXG4gKlxuICogSWYgYW4gb3V0cHV0IGV4aXN0cyBvbiBvbmUgb2YgdGhlIG5vZGUncyBkaXJlY3RpdmVzLCBpdCBhbHNvIHN1YnNjcmliZXMgdG8gdGhlIG91dHB1dFxuICogYW5kIHNhdmVzIHRoZSBzdWJzY3JpcHRpb24gZm9yIGxhdGVyIGNsZWFudXAuXG4gKlxuICogQHBhcmFtIGV2ZW50TmFtZSBOYW1lIG9mIHRoZSBldmVudFxuICogQHBhcmFtIGxpc3RlbmVyRm4gVGhlIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIGV2ZW50IGVtaXRzXG4gKiBAcGFyYW0gdXNlQ2FwdHVyZSBXaGV0aGVyIG9yIG5vdCB0byB1c2UgY2FwdHVyZSBpbiBldmVudCBsaXN0ZW5lciAtIHRoaXMgYXJndW1lbnQgaXMgYSByZW1pbmRlclxuICogICAgIGZyb20gdGhlIFJlbmRlcmVyMyBpbmZyYXN0cnVjdHVyZSBhbmQgc2hvdWxkIGJlIHJlbW92ZWQgZnJvbSB0aGUgaW5zdHJ1Y3Rpb24gYXJndW1lbnRzXG4gKiBAcGFyYW0gZXZlbnRUYXJnZXRSZXNvbHZlciBGdW5jdGlvbiB0aGF0IHJldHVybnMgZ2xvYmFsIHRhcmdldCBpbmZvcm1hdGlvbiBpbiBjYXNlIHRoaXMgbGlzdGVuZXJcbiAqIHNob3VsZCBiZSBhdHRhY2hlZCB0byBhIGdsb2JhbCBvYmplY3QgbGlrZSB3aW5kb3csIGRvY3VtZW50IG9yIGJvZHlcbiAqXG4gKiBAY29kZUdlbkFwaVxuICovXG5leHBvcnQgZnVuY3Rpb24gybXJtWxpc3RlbmVyKFxuICAgIGV2ZW50TmFtZTogc3RyaW5nLCBsaXN0ZW5lckZuOiAoZT86IGFueSkgPT4gYW55LCB1c2VDYXB0dXJlPzogYm9vbGVhbixcbiAgICBldmVudFRhcmdldFJlc29sdmVyPzogR2xvYmFsVGFyZ2V0UmVzb2x2ZXIpOiB0eXBlb2YgybXJtWxpc3RlbmVyIHtcbiAgY29uc3QgbFZpZXcgPSBnZXRMVmlldzx7fXxudWxsPigpO1xuICBjb25zdCB0VmlldyA9IGdldFRWaWV3KCk7XG4gIGNvbnN0IHROb2RlID0gZ2V0Q3VycmVudFROb2RlKCkhO1xuICBsaXN0ZW5lckludGVybmFsKFxuICAgICAgdFZpZXcsIGxWaWV3LCBsVmlld1tSRU5ERVJFUl0sIHROb2RlLCBldmVudE5hbWUsIGxpc3RlbmVyRm4sIGV2ZW50VGFyZ2V0UmVzb2x2ZXIpO1xuICByZXR1cm4gybXJtWxpc3RlbmVyO1xufVxuXG4vKipcbiAqIFJlZ2lzdGVycyBhIHN5bnRoZXRpYyBob3N0IGxpc3RlbmVyIChlLmcuIGAoQGZvby5zdGFydClgKSBvbiBhIGNvbXBvbmVudCBvciBkaXJlY3RpdmUuXG4gKlxuICogVGhpcyBpbnN0cnVjdGlvbiBpcyBmb3IgY29tcGF0aWJpbGl0eSBwdXJwb3NlcyBhbmQgaXMgZGVzaWduZWQgdG8gZW5zdXJlIHRoYXQgYVxuICogc3ludGhldGljIGhvc3QgbGlzdGVuZXIgKGUuZy4gYEBIb3N0TGlzdGVuZXIoJ0Bmb28uc3RhcnQnKWApIHByb3Blcmx5IGdldHMgcmVuZGVyZWRcbiAqIGluIHRoZSBjb21wb25lbnQncyByZW5kZXJlci4gTm9ybWFsbHkgYWxsIGhvc3QgbGlzdGVuZXJzIGFyZSBldmFsdWF0ZWQgd2l0aCB0aGVcbiAqIHBhcmVudCBjb21wb25lbnQncyByZW5kZXJlciwgYnV0LCBpbiB0aGUgY2FzZSBvZiBhbmltYXRpb24gQHRyaWdnZXJzLCB0aGV5IG5lZWRcbiAqIHRvIGJlIGV2YWx1YXRlZCB3aXRoIHRoZSBzdWIgY29tcG9uZW50J3MgcmVuZGVyZXIgKGJlY2F1c2UgdGhhdCdzIHdoZXJlIHRoZVxuICogYW5pbWF0aW9uIHRyaWdnZXJzIGFyZSBkZWZpbmVkKS5cbiAqXG4gKiBEbyBub3QgdXNlIHRoaXMgaW5zdHJ1Y3Rpb24gYXMgYSByZXBsYWNlbWVudCBmb3IgYGxpc3RlbmVyYC4gVGhpcyBpbnN0cnVjdGlvblxuICogb25seSBleGlzdHMgdG8gZW5zdXJlIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgVmlld0VuZ2luZSdzIGhvc3QgYmluZGluZyBiZWhhdmlvci5cbiAqXG4gKiBAcGFyYW0gZXZlbnROYW1lIE5hbWUgb2YgdGhlIGV2ZW50XG4gKiBAcGFyYW0gbGlzdGVuZXJGbiBUaGUgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gZXZlbnQgZW1pdHNcbiAqIEBwYXJhbSB1c2VDYXB0dXJlIFdoZXRoZXIgb3Igbm90IHRvIHVzZSBjYXB0dXJlIGluIGV2ZW50IGxpc3RlbmVyXG4gKiBAcGFyYW0gZXZlbnRUYXJnZXRSZXNvbHZlciBGdW5jdGlvbiB0aGF0IHJldHVybnMgZ2xvYmFsIHRhcmdldCBpbmZvcm1hdGlvbiBpbiBjYXNlIHRoaXMgbGlzdGVuZXJcbiAqIHNob3VsZCBiZSBhdHRhY2hlZCB0byBhIGdsb2JhbCBvYmplY3QgbGlrZSB3aW5kb3csIGRvY3VtZW50IG9yIGJvZHlcbiAqXG4gKiBAY29kZUdlbkFwaVxuICovXG5leHBvcnQgZnVuY3Rpb24gybXJtXN5bnRoZXRpY0hvc3RMaXN0ZW5lcihcbiAgICBldmVudE5hbWU6IHN0cmluZywgbGlzdGVuZXJGbjogKGU/OiBhbnkpID0+IGFueSk6IHR5cGVvZiDJtcm1c3ludGhldGljSG9zdExpc3RlbmVyIHtcbiAgY29uc3QgdE5vZGUgPSBnZXRDdXJyZW50VE5vZGUoKSE7XG4gIGNvbnN0IGxWaWV3ID0gZ2V0TFZpZXc8e318bnVsbD4oKTtcbiAgY29uc3QgdFZpZXcgPSBnZXRUVmlldygpO1xuICBjb25zdCBjdXJyZW50RGVmID0gZ2V0Q3VycmVudERpcmVjdGl2ZURlZih0Vmlldy5kYXRhKTtcbiAgY29uc3QgcmVuZGVyZXIgPSBsb2FkQ29tcG9uZW50UmVuZGVyZXIoY3VycmVudERlZiwgdE5vZGUsIGxWaWV3KTtcbiAgbGlzdGVuZXJJbnRlcm5hbCh0VmlldywgbFZpZXcsIHJlbmRlcmVyLCB0Tm9kZSwgZXZlbnROYW1lLCBsaXN0ZW5lckZuKTtcbiAgcmV0dXJuIMm1ybVzeW50aGV0aWNIb3N0TGlzdGVuZXI7XG59XG5cbi8qKlxuICogQSB1dGlsaXR5IGZ1bmN0aW9uIHRoYXQgY2hlY2tzIGlmIGEgZ2l2ZW4gZWxlbWVudCBoYXMgYWxyZWFkeSBhbiBldmVudCBoYW5kbGVyIHJlZ2lzdGVyZWQgZm9yIGFuXG4gKiBldmVudCB3aXRoIGEgc3BlY2lmaWVkIG5hbWUuIFRoZSBUVmlldy5jbGVhbnVwIGRhdGEgc3RydWN0dXJlIGlzIHVzZWQgdG8gZmluZCBvdXQgd2hpY2ggZXZlbnRzXG4gKiBhcmUgcmVnaXN0ZXJlZCBmb3IgYSBnaXZlbiBlbGVtZW50LlxuICovXG5mdW5jdGlvbiBmaW5kRXhpc3RpbmdMaXN0ZW5lcihcbiAgICB0VmlldzogVFZpZXcsIGxWaWV3OiBMVmlldywgZXZlbnROYW1lOiBzdHJpbmcsIHROb2RlSWR4OiBudW1iZXIpOiAoKGU/OiBhbnkpID0+IGFueSl8bnVsbCB7XG4gIGNvbnN0IHRDbGVhbnVwID0gdFZpZXcuY2xlYW51cDtcbiAgaWYgKHRDbGVhbnVwICE9IG51bGwpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRDbGVhbnVwLmxlbmd0aCAtIDE7IGkgKz0gMikge1xuICAgICAgY29uc3QgY2xlYW51cEV2ZW50TmFtZSA9IHRDbGVhbnVwW2ldO1xuICAgICAgaWYgKGNsZWFudXBFdmVudE5hbWUgPT09IGV2ZW50TmFtZSAmJiB0Q2xlYW51cFtpICsgMV0gPT09IHROb2RlSWR4KSB7XG4gICAgICAgIC8vIFdlIGhhdmUgZm91bmQgYSBtYXRjaGluZyBldmVudCBuYW1lIG9uIHRoZSBzYW1lIG5vZGUgYnV0IGl0IG1pZ2h0IG5vdCBoYXZlIGJlZW5cbiAgICAgICAgLy8gcmVnaXN0ZXJlZCB5ZXQsIHNvIHdlIG11c3QgZXhwbGljaXRseSB2ZXJpZnkgZW50cmllcyBpbiB0aGUgTFZpZXcgY2xlYW51cCBkYXRhXG4gICAgICAgIC8vIHN0cnVjdHVyZXMuXG4gICAgICAgIGNvbnN0IGxDbGVhbnVwID0gbFZpZXdbQ0xFQU5VUF0hO1xuICAgICAgICBjb25zdCBsaXN0ZW5lcklkeEluTENsZWFudXAgPSB0Q2xlYW51cFtpICsgMl07XG4gICAgICAgIHJldHVybiBsQ2xlYW51cC5sZW5ndGggPiBsaXN0ZW5lcklkeEluTENsZWFudXAgPyBsQ2xlYW51cFtsaXN0ZW5lcklkeEluTENsZWFudXBdIDogbnVsbDtcbiAgICAgIH1cbiAgICAgIC8vIFRWaWV3LmNsZWFudXAgY2FuIGhhdmUgYSBtaXggb2YgNC1lbGVtZW50cyBlbnRyaWVzIChmb3IgZXZlbnQgaGFuZGxlciBjbGVhbnVwcykgb3JcbiAgICAgIC8vIDItZWxlbWVudCBlbnRyaWVzIChmb3IgZGlyZWN0aXZlIGFuZCBxdWVyaWVzIGRlc3Ryb3kgaG9va3MpLiBBcyBzdWNoIHdlIGNhbiBlbmNvdW50ZXJcbiAgICAgIC8vIGJsb2NrcyBvZiA0IG9yIDIgaXRlbXMgaW4gdGhlIHRWaWV3LmNsZWFudXAgYW5kIHRoaXMgaXMgd2h5IHdlIGl0ZXJhdGUgb3ZlciAyIGVsZW1lbnRzXG4gICAgICAvLyBmaXJzdCBhbmQganVtcCBhbm90aGVyIDIgZWxlbWVudHMgaWYgd2UgZGV0ZWN0IGxpc3RlbmVycyBjbGVhbnVwICg0IGVsZW1lbnRzKS4gQWxzbyBjaGVja1xuICAgICAgLy8gZG9jdW1lbnRhdGlvbiBvZiBUVmlldy5jbGVhbnVwIGZvciBtb3JlIGRldGFpbHMgb2YgdGhpcyBkYXRhIHN0cnVjdHVyZSBsYXlvdXQuXG4gICAgICBpZiAodHlwZW9mIGNsZWFudXBFdmVudE5hbWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGkgKz0gMjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIGxpc3RlbmVySW50ZXJuYWwoXG4gICAgdFZpZXc6IFRWaWV3LCBsVmlldzogTFZpZXc8e318bnVsbD4sIHJlbmRlcmVyOiBSZW5kZXJlciwgdE5vZGU6IFROb2RlLCBldmVudE5hbWU6IHN0cmluZyxcbiAgICBsaXN0ZW5lckZuOiAoZT86IGFueSkgPT4gYW55LCBldmVudFRhcmdldFJlc29sdmVyPzogR2xvYmFsVGFyZ2V0UmVzb2x2ZXIpOiB2b2lkIHtcbiAgY29uc3QgaXNUTm9kZURpcmVjdGl2ZUhvc3QgPSBpc0RpcmVjdGl2ZUhvc3QodE5vZGUpO1xuICBjb25zdCBmaXJzdENyZWF0ZVBhc3MgPSB0Vmlldy5maXJzdENyZWF0ZVBhc3M7XG4gIGNvbnN0IHRDbGVhbnVwOiBmYWxzZXxhbnlbXSA9IGZpcnN0Q3JlYXRlUGFzcyAmJiBnZXRPckNyZWF0ZVRWaWV3Q2xlYW51cCh0Vmlldyk7XG4gIGNvbnN0IGNvbnRleHQgPSBsVmlld1tDT05URVhUXTtcblxuICAvLyBXaGVuIHRoZSDJtcm1bGlzdGVuZXIgaW5zdHJ1Y3Rpb24gd2FzIGdlbmVyYXRlZCBhbmQgaXMgZXhlY3V0ZWQgd2Uga25vdyB0aGF0IHRoZXJlIGlzIGVpdGhlciBhXG4gIC8vIG5hdGl2ZSBsaXN0ZW5lciBvciBhIGRpcmVjdGl2ZSBvdXRwdXQgb24gdGhpcyBlbGVtZW50LiBBcyBzdWNoIHdlIHdlIGtub3cgdGhhdCB3ZSB3aWxsIGhhdmUgdG9cbiAgLy8gcmVnaXN0ZXIgYSBsaXN0ZW5lciBhbmQgc3RvcmUgaXRzIGNsZWFudXAgZnVuY3Rpb24gb24gTFZpZXcuXG4gIGNvbnN0IGxDbGVhbnVwID0gZ2V0T3JDcmVhdGVMVmlld0NsZWFudXAobFZpZXcpO1xuXG4gIG5nRGV2TW9kZSAmJiBhc3NlcnRUTm9kZVR5cGUodE5vZGUsIFROb2RlVHlwZS5BbnlSTm9kZSB8IFROb2RlVHlwZS5BbnlDb250YWluZXIpO1xuXG4gIGxldCBwcm9jZXNzT3V0cHV0cyA9IHRydWU7XG5cbiAgLy8gQWRkaW5nIGEgbmF0aXZlIGV2ZW50IGxpc3RlbmVyIGlzIGFwcGxpY2FibGUgd2hlbjpcbiAgLy8gLSBUaGUgY29ycmVzcG9uZGluZyBUTm9kZSByZXByZXNlbnRzIGEgRE9NIGVsZW1lbnQuXG4gIC8vIC0gVGhlIGV2ZW50IHRhcmdldCBoYXMgYSByZXNvbHZlciAodXN1YWxseSByZXN1bHRpbmcgaW4gYSBnbG9iYWwgb2JqZWN0LFxuICAvLyAgIHN1Y2ggYXMgYHdpbmRvd2Agb3IgYGRvY3VtZW50YCkuXG4gIGlmICgodE5vZGUudHlwZSAmIFROb2RlVHlwZS5BbnlSTm9kZSkgfHwgZXZlbnRUYXJnZXRSZXNvbHZlcikge1xuICAgIGNvbnN0IG5hdGl2ZSA9IGdldE5hdGl2ZUJ5VE5vZGUodE5vZGUsIGxWaWV3KSBhcyBSRWxlbWVudDtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudFRhcmdldFJlc29sdmVyID8gZXZlbnRUYXJnZXRSZXNvbHZlcihuYXRpdmUpIDogbmF0aXZlO1xuICAgIGNvbnN0IGxDbGVhbnVwSW5kZXggPSBsQ2xlYW51cC5sZW5ndGg7XG4gICAgY29uc3QgaWR4T3JUYXJnZXRHZXR0ZXIgPSBldmVudFRhcmdldFJlc29sdmVyID9cbiAgICAgICAgKF9sVmlldzogTFZpZXcpID0+IGV2ZW50VGFyZ2V0UmVzb2x2ZXIodW53cmFwUk5vZGUoX2xWaWV3W3ROb2RlLmluZGV4XSkpIDpcbiAgICAgICAgdE5vZGUuaW5kZXg7XG5cbiAgICAvLyBJbiBvcmRlciB0byBtYXRjaCBjdXJyZW50IGJlaGF2aW9yLCBuYXRpdmUgRE9NIGV2ZW50IGxpc3RlbmVycyBtdXN0IGJlIGFkZGVkIGZvciBhbGxcbiAgICAvLyBldmVudHMgKGluY2x1ZGluZyBvdXRwdXRzKS5cblxuICAgIC8vIFRoZXJlIG1pZ2h0IGJlIGNhc2VzIHdoZXJlIG11bHRpcGxlIGRpcmVjdGl2ZXMgb24gdGhlIHNhbWUgZWxlbWVudCB0cnkgdG8gcmVnaXN0ZXIgYW4gZXZlbnRcbiAgICAvLyBoYW5kbGVyIGZ1bmN0aW9uIGZvciB0aGUgc2FtZSBldmVudC4gSW4gdGhpcyBzaXR1YXRpb24gd2Ugd2FudCB0byBhdm9pZCByZWdpc3RyYXRpb24gb2ZcbiAgICAvLyBzZXZlcmFsIG5hdGl2ZSBsaXN0ZW5lcnMgYXMgZWFjaCByZWdpc3RyYXRpb24gd291bGQgYmUgaW50ZXJjZXB0ZWQgYnkgTmdab25lIGFuZFxuICAgIC8vIHRyaWdnZXIgY2hhbmdlIGRldGVjdGlvbi4gVGhpcyB3b3VsZCBtZWFuIHRoYXQgYSBzaW5nbGUgdXNlciBhY3Rpb24gd291bGQgcmVzdWx0IGluIHNldmVyYWxcbiAgICAvLyBjaGFuZ2UgZGV0ZWN0aW9ucyBiZWluZyBpbnZva2VkLiBUbyBhdm9pZCB0aGlzIHNpdHVhdGlvbiB3ZSB3YW50IHRvIGhhdmUgb25seSBvbmUgY2FsbCB0b1xuICAgIC8vIG5hdGl2ZSBoYW5kbGVyIHJlZ2lzdHJhdGlvbiAoZm9yIHRoZSBzYW1lIGVsZW1lbnQgYW5kIHNhbWUgdHlwZSBvZiBldmVudCkuXG4gICAgLy9cbiAgICAvLyBJbiBvcmRlciB0byBoYXZlIGp1c3Qgb25lIG5hdGl2ZSBldmVudCBoYW5kbGVyIGluIHByZXNlbmNlIG9mIG11bHRpcGxlIGhhbmRsZXIgZnVuY3Rpb25zLFxuICAgIC8vIHdlIGp1c3QgcmVnaXN0ZXIgYSBmaXJzdCBoYW5kbGVyIGZ1bmN0aW9uIGFzIGEgbmF0aXZlIGV2ZW50IGxpc3RlbmVyIGFuZCB0aGVuIGNoYWluXG4gICAgLy8gKGNvYWxlc2NlKSBvdGhlciBoYW5kbGVyIGZ1bmN0aW9ucyBvbiB0b3Agb2YgdGhlIGZpcnN0IG5hdGl2ZSBoYW5kbGVyIGZ1bmN0aW9uLlxuICAgIGxldCBleGlzdGluZ0xpc3RlbmVyID0gbnVsbDtcbiAgICAvLyBQbGVhc2Ugbm90ZSB0aGF0IHRoZSBjb2FsZXNjaW5nIGRlc2NyaWJlZCBoZXJlIGRvZXNuJ3QgaGFwcGVuIGZvciBldmVudHMgc3BlY2lmeWluZyBhblxuICAgIC8vIGFsdGVybmF0aXZlIHRhcmdldCAoZXguIChkb2N1bWVudDpjbGljaykpIC0gdGhpcyBpcyB0byBrZWVwIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2l0aCB0aGVcbiAgICAvLyB2aWV3IGVuZ2luZS5cbiAgICAvLyBBbHNvLCB3ZSBkb24ndCBoYXZlIHRvIHNlYXJjaCBmb3IgZXhpc3RpbmcgbGlzdGVuZXJzIGlzIHRoZXJlIGFyZSBubyBkaXJlY3RpdmVzXG4gICAgLy8gbWF0Y2hpbmcgb24gYSBnaXZlbiBub2RlIGFzIHdlIGNhbid0IHJlZ2lzdGVyIG11bHRpcGxlIGV2ZW50IGhhbmRsZXJzIGZvciB0aGUgc2FtZSBldmVudCBpblxuICAgIC8vIGEgdGVtcGxhdGUgKHRoaXMgd291bGQgbWVhbiBoYXZpbmcgZHVwbGljYXRlIGF0dHJpYnV0ZXMpLlxuICAgIGlmICghZXZlbnRUYXJnZXRSZXNvbHZlciAmJiBpc1ROb2RlRGlyZWN0aXZlSG9zdCkge1xuICAgICAgZXhpc3RpbmdMaXN0ZW5lciA9IGZpbmRFeGlzdGluZ0xpc3RlbmVyKHRWaWV3LCBsVmlldywgZXZlbnROYW1lLCB0Tm9kZS5pbmRleCk7XG4gICAgfVxuICAgIGlmIChleGlzdGluZ0xpc3RlbmVyICE9PSBudWxsKSB7XG4gICAgICAvLyBBdHRhY2ggYSBuZXcgbGlzdGVuZXIgdG8gY29hbGVzY2VkIGxpc3RlbmVycyBsaXN0LCBtYWludGFpbmluZyB0aGUgb3JkZXIgaW4gd2hpY2hcbiAgICAgIC8vIGxpc3RlbmVycyBhcmUgcmVnaXN0ZXJlZC4gRm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMsIHdlIGtlZXAgYSByZWZlcmVuY2UgdG8gdGhlIGxhc3RcbiAgICAgIC8vIGxpc3RlbmVyIGluIHRoYXQgbGlzdCAoaW4gYF9fbmdMYXN0TGlzdGVuZXJGbl9fYCBmaWVsZCksIHNvIHdlIGNhbiBhdm9pZCBnb2luZyB0aHJvdWdoXG4gICAgICAvLyB0aGUgZW50aXJlIHNldCBlYWNoIHRpbWUgd2UgbmVlZCB0byBhZGQgYSBuZXcgbGlzdGVuZXIuXG4gICAgICBjb25zdCBsYXN0TGlzdGVuZXJGbiA9ICg8YW55PmV4aXN0aW5nTGlzdGVuZXIpLl9fbmdMYXN0TGlzdGVuZXJGbl9fIHx8IGV4aXN0aW5nTGlzdGVuZXI7XG4gICAgICBsYXN0TGlzdGVuZXJGbi5fX25nTmV4dExpc3RlbmVyRm5fXyA9IGxpc3RlbmVyRm47XG4gICAgICAoPGFueT5leGlzdGluZ0xpc3RlbmVyKS5fX25nTGFzdExpc3RlbmVyRm5fXyA9IGxpc3RlbmVyRm47XG4gICAgICBwcm9jZXNzT3V0cHV0cyA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBsaXN0ZW5lckZuID0gd3JhcExpc3RlbmVyKHROb2RlLCBsVmlldywgY29udGV4dCwgbGlzdGVuZXJGbiwgZmFsc2UgLyoqIHByZXZlbnREZWZhdWx0ICovKTtcbiAgICAgIGNvbnN0IGNsZWFudXBGbiA9IHJlbmRlcmVyLmxpc3Rlbih0YXJnZXQgYXMgUkVsZW1lbnQsIGV2ZW50TmFtZSwgbGlzdGVuZXJGbik7XG4gICAgICBuZ0Rldk1vZGUgJiYgbmdEZXZNb2RlLnJlbmRlcmVyQWRkRXZlbnRMaXN0ZW5lcisrO1xuXG4gICAgICBsQ2xlYW51cC5wdXNoKGxpc3RlbmVyRm4sIGNsZWFudXBGbik7XG4gICAgICB0Q2xlYW51cCAmJiB0Q2xlYW51cC5wdXNoKGV2ZW50TmFtZSwgaWR4T3JUYXJnZXRHZXR0ZXIsIGxDbGVhbnVwSW5kZXgsIGxDbGVhbnVwSW5kZXggKyAxKTtcbiAgICB9XG5cbiAgfSBlbHNlIHtcbiAgICAvLyBFdmVuIGlmIHRoZXJlIGlzIG5vIG5hdGl2ZSBsaXN0ZW5lciB0byBhZGQsIHdlIHN0aWxsIG5lZWQgdG8gd3JhcCB0aGUgbGlzdGVuZXIgc28gdGhhdCBPblB1c2hcbiAgICAvLyBhbmNlc3RvcnMgYXJlIG1hcmtlZCBkaXJ0eSB3aGVuIGFuIGV2ZW50IG9jY3Vycy5cbiAgICBsaXN0ZW5lckZuID0gd3JhcExpc3RlbmVyKHROb2RlLCBsVmlldywgY29udGV4dCwgbGlzdGVuZXJGbiwgZmFsc2UgLyoqIHByZXZlbnREZWZhdWx0ICovKTtcbiAgfVxuXG4gIC8vIHN1YnNjcmliZSB0byBkaXJlY3RpdmUgb3V0cHV0c1xuICBjb25zdCBvdXRwdXRzID0gdE5vZGUub3V0cHV0cztcbiAgbGV0IHByb3BzOiBQcm9wZXJ0eUFsaWFzVmFsdWV8dW5kZWZpbmVkO1xuICBpZiAocHJvY2Vzc091dHB1dHMgJiYgb3V0cHV0cyAhPT0gbnVsbCAmJiAocHJvcHMgPSBvdXRwdXRzW2V2ZW50TmFtZV0pKSB7XG4gICAgY29uc3QgcHJvcHNMZW5ndGggPSBwcm9wcy5sZW5ndGg7XG4gICAgaWYgKHByb3BzTGVuZ3RoKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHByb3BzTGVuZ3RoOyBpICs9IDIpIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSBwcm9wc1tpXSBhcyBudW1iZXI7XG4gICAgICAgIG5nRGV2TW9kZSAmJiBhc3NlcnRJbmRleEluUmFuZ2UobFZpZXcsIGluZGV4KTtcbiAgICAgICAgY29uc3QgbWluaWZpZWROYW1lID0gcHJvcHNbaSArIDFdO1xuICAgICAgICBjb25zdCBkaXJlY3RpdmVJbnN0YW5jZSA9IGxWaWV3W2luZGV4XTtcbiAgICAgICAgY29uc3Qgb3V0cHV0ID0gZGlyZWN0aXZlSW5zdGFuY2VbbWluaWZpZWROYW1lXTtcblxuICAgICAgICBpZiAobmdEZXZNb2RlICYmICFpc1N1YnNjcmliYWJsZShvdXRwdXQpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAT3V0cHV0ICR7bWluaWZpZWROYW1lfSBub3QgaW5pdGlhbGl6ZWQgaW4gJyR7XG4gICAgICAgICAgICAgIGRpcmVjdGl2ZUluc3RhbmNlLmNvbnN0cnVjdG9yLm5hbWV9Jy5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IG91dHB1dC5zdWJzY3JpYmUobGlzdGVuZXJGbik7XG4gICAgICAgIGNvbnN0IGlkeCA9IGxDbGVhbnVwLmxlbmd0aDtcbiAgICAgICAgbENsZWFudXAucHVzaChsaXN0ZW5lckZuLCBzdWJzY3JpcHRpb24pO1xuICAgICAgICB0Q2xlYW51cCAmJiB0Q2xlYW51cC5wdXNoKGV2ZW50TmFtZSwgdE5vZGUuaW5kZXgsIGlkeCwgLShpZHggKyAxKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGV4ZWN1dGVMaXN0ZW5lcldpdGhFcnJvckhhbmRsaW5nKFxuICAgIGxWaWV3OiBMVmlldywgY29udGV4dDoge318bnVsbCwgbGlzdGVuZXJGbjogKGU/OiBhbnkpID0+IGFueSwgZTogYW55KTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgcHJvZmlsZXIoUHJvZmlsZXJFdmVudC5PdXRwdXRTdGFydCwgY29udGV4dCwgbGlzdGVuZXJGbik7XG4gICAgLy8gT25seSBleHBsaWNpdGx5IHJldHVybmluZyBmYWxzZSBmcm9tIGEgbGlzdGVuZXIgc2hvdWxkIHByZXZlbnREZWZhdWx0XG4gICAgcmV0dXJuIGxpc3RlbmVyRm4oZSkgIT09IGZhbHNlO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGhhbmRsZUVycm9yKGxWaWV3LCBlcnJvcik7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IGZpbmFsbHkge1xuICAgIHByb2ZpbGVyKFByb2ZpbGVyRXZlbnQuT3V0cHV0RW5kLCBjb250ZXh0LCBsaXN0ZW5lckZuKTtcbiAgfVxufVxuXG4vKipcbiAqIFdyYXBzIGFuIGV2ZW50IGxpc3RlbmVyIHdpdGggYSBmdW5jdGlvbiB0aGF0IG1hcmtzIGFuY2VzdG9ycyBkaXJ0eSBhbmQgcHJldmVudHMgZGVmYXVsdCBiZWhhdmlvcixcbiAqIGlmIGFwcGxpY2FibGUuXG4gKlxuICogQHBhcmFtIHROb2RlIFRoZSBUTm9kZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBsaXN0ZW5lclxuICogQHBhcmFtIGxWaWV3IFRoZSBMVmlldyB0aGF0IGNvbnRhaW5zIHRoaXMgbGlzdGVuZXJcbiAqIEBwYXJhbSBsaXN0ZW5lckZuIFRoZSBsaXN0ZW5lciBmdW5jdGlvbiB0byBjYWxsXG4gKiBAcGFyYW0gd3JhcFdpdGhQcmV2ZW50RGVmYXVsdCBXaGV0aGVyIG9yIG5vdCB0byBwcmV2ZW50IGRlZmF1bHQgYmVoYXZpb3JcbiAqICh0aGUgcHJvY2VkdXJhbCByZW5kZXJlciBkb2VzIHRoaXMgYWxyZWFkeSwgc28gaW4gdGhvc2UgY2FzZXMsIHdlIHNob3VsZCBza2lwKVxuICovXG5mdW5jdGlvbiB3cmFwTGlzdGVuZXIoXG4gICAgdE5vZGU6IFROb2RlLCBsVmlldzogTFZpZXc8e318bnVsbD4sIGNvbnRleHQ6IHt9fG51bGwsIGxpc3RlbmVyRm46IChlPzogYW55KSA9PiBhbnksXG4gICAgd3JhcFdpdGhQcmV2ZW50RGVmYXVsdDogYm9vbGVhbik6IEV2ZW50TGlzdGVuZXIge1xuICAvLyBOb3RlOiB3ZSBhcmUgcGVyZm9ybWluZyBtb3N0IG9mIHRoZSB3b3JrIGluIHRoZSBsaXN0ZW5lciBmdW5jdGlvbiBpdHNlbGZcbiAgLy8gdG8gb3B0aW1pemUgbGlzdGVuZXIgcmVnaXN0cmF0aW9uLlxuICByZXR1cm4gZnVuY3Rpb24gd3JhcExpc3RlbmVySW5fbWFya0RpcnR5QW5kUHJldmVudERlZmF1bHQoZTogYW55KSB7XG4gICAgLy8gSXZ5IHVzZXMgYEZ1bmN0aW9uYCBhcyBhIHNwZWNpYWwgdG9rZW4gdGhhdCBhbGxvd3MgdXMgdG8gdW53cmFwIHRoZSBmdW5jdGlvblxuICAgIC8vIHNvIHRoYXQgaXQgY2FuIGJlIGludm9rZWQgcHJvZ3JhbW1hdGljYWxseSBieSBgRGVidWdOb2RlLnRyaWdnZXJFdmVudEhhbmRsZXJgLlxuICAgIGlmIChlID09PSBGdW5jdGlvbikge1xuICAgICAgcmV0dXJuIGxpc3RlbmVyRm47XG4gICAgfVxuXG4gICAgLy8gSW4gb3JkZXIgdG8gYmUgYmFja3dhcmRzIGNvbXBhdGlibGUgd2l0aCBWaWV3IEVuZ2luZSwgZXZlbnRzIG9uIGNvbXBvbmVudCBob3N0IG5vZGVzXG4gICAgLy8gbXVzdCBhbHNvIG1hcmsgdGhlIGNvbXBvbmVudCB2aWV3IGl0c2VsZiBkaXJ0eSAoaS5lLiB0aGUgdmlldyB0aGF0IGl0IG93bnMpLlxuICAgIGNvbnN0IHN0YXJ0VmlldyA9XG4gICAgICAgIHROb2RlLmNvbXBvbmVudE9mZnNldCA+IC0xID8gZ2V0Q29tcG9uZW50TFZpZXdCeUluZGV4KHROb2RlLmluZGV4LCBsVmlldykgOiBsVmlldztcbiAgICBtYXJrVmlld0RpcnR5KHN0YXJ0Vmlldyk7XG5cbiAgICBsZXQgcmVzdWx0ID0gZXhlY3V0ZUxpc3RlbmVyV2l0aEVycm9ySGFuZGxpbmcobFZpZXcsIGNvbnRleHQsIGxpc3RlbmVyRm4sIGUpO1xuICAgIC8vIEEganVzdC1pbnZva2VkIGxpc3RlbmVyIGZ1bmN0aW9uIG1pZ2h0IGhhdmUgY29hbGVzY2VkIGxpc3RlbmVycyBzbyB3ZSBuZWVkIHRvIGNoZWNrIGZvclxuICAgIC8vIHRoZWlyIHByZXNlbmNlIGFuZCBpbnZva2UgYXMgbmVlZGVkLlxuICAgIGxldCBuZXh0TGlzdGVuZXJGbiA9ICg8YW55PndyYXBMaXN0ZW5lckluX21hcmtEaXJ0eUFuZFByZXZlbnREZWZhdWx0KS5fX25nTmV4dExpc3RlbmVyRm5fXztcbiAgICB3aGlsZSAobmV4dExpc3RlbmVyRm4pIHtcbiAgICAgIC8vIFdlIHNob3VsZCBwcmV2ZW50IGRlZmF1bHQgaWYgYW55IG9mIHRoZSBsaXN0ZW5lcnMgZXhwbGljaXRseSByZXR1cm4gZmFsc2VcbiAgICAgIHJlc3VsdCA9IGV4ZWN1dGVMaXN0ZW5lcldpdGhFcnJvckhhbmRsaW5nKGxWaWV3LCBjb250ZXh0LCBuZXh0TGlzdGVuZXJGbiwgZSkgJiYgcmVzdWx0O1xuICAgICAgbmV4dExpc3RlbmVyRm4gPSAoPGFueT5uZXh0TGlzdGVuZXJGbikuX19uZ05leHRMaXN0ZW5lckZuX187XG4gICAgfVxuXG4gICAgaWYgKHdyYXBXaXRoUHJldmVudERlZmF1bHQgJiYgcmVzdWx0ID09PSBmYWxzZSkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG59XG4iXX0=
@@ -47,6 +47,7 @@ export const angularCoreEnv = (() => ({
47
47
  'ɵɵProvidersFeature': r3.ɵɵProvidersFeature,
48
48
  'ɵɵCopyDefinitionFeature': r3.ɵɵCopyDefinitionFeature,
49
49
  'ɵɵInheritDefinitionFeature': r3.ɵɵInheritDefinitionFeature,
50
+ 'ɵɵInputTransformsFeature': r3.ɵɵInputTransformsFeature,
50
51
  'ɵɵStandaloneFeature': r3.ɵɵStandaloneFeature,
51
52
  'ɵɵnextContext': r3.ɵɵnextContext,
52
53
  'ɵɵnamespaceHTML': r3.ɵɵnamespaceHTML,
@@ -169,4 +170,4 @@ export const angularCoreEnv = (() => ({
169
170
  'forwardRef': forwardRef,
170
171
  'resolveForwardRef': resolveForwardRef,
171
172
  }))();
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9yZW5kZXIzL2ppdC9lbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsVUFBVSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDbkUsT0FBTyxFQUFDLFFBQVEsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzdFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pFLE9BQU8sS0FBSyx1QkFBdUIsTUFBTSw0Q0FBNEMsQ0FBQztBQUN0RixPQUFPLEtBQUssWUFBWSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRy9COzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQ3ZCLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNMLGFBQWEsRUFBRSxFQUFFLENBQUMsV0FBVztJQUM3Qix5QkFBeUIsRUFBRSxFQUFFLENBQUMsdUJBQXVCO0lBQ3JELHlCQUF5QixFQUFFLEVBQUUsQ0FBQyx1QkFBdUI7SUFDckQseUJBQXlCLEVBQUUsRUFBRSxDQUFDLHVCQUF1QjtJQUNyRCx5QkFBeUIsRUFBRSxFQUFFLENBQUMsdUJBQXVCO0lBQ3JELHlCQUF5QixFQUFFLEVBQUUsQ0FBQyx1QkFBdUI7SUFDckQseUJBQXlCLEVBQUUsRUFBRSxDQUFDLHVCQUF1QjtJQUNyRCx5QkFBeUIsRUFBRSxFQUFFLENBQUMsdUJBQXVCO0lBQ3JELHlCQUF5QixFQUFFLEVBQUUsQ0FBQyx1QkFBdUI7SUFDckQseUJBQXlCLEVBQUUsRUFB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WUFBWSxDQUFDLDBCQUEwQjtJQUNyRSxxQkFBcUIsRUFBRSxZQUFZLENBQUMsbUJBQW1CO0lBQ3ZELDRCQUE0QixFQUFFLFlBQVksQ0FBQywwQkFBMEI7SUFDckUsMkJBQTJCLEVBQUUsdUJBQXVCLENBQUMseUJBQXlCO0lBRTlFLFlBQVksRUFBRSxVQUFVO0lBQ3hCLG1CQUFtQixFQUFFLGlCQUFpQjtDQUN2QyxDQUFDLENBQUMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7Zm9yd2FyZFJlZiwgcmVzb2x2ZUZvcndhcmRSZWZ9IGZyb20gJy4uLy4uL2RpL2ZvcndhcmRfcmVmJztcbmltcG9ydCB7ybXJtWluamVjdCwgybXJtWludmFsaWRGYWN0b3J5RGVwfSBmcm9tICcuLi8uLi9kaS9pbmplY3Rvcl9jb21wYXRpYmlsaXR5JztcbmltcG9ydCB7ybXJtWRlZmluZUluamVjdGFibGUsIMm1ybVkZWZpbmVJbmplY3Rvcn0gZnJvbSAnLi4vLi4vZGkvaW50ZXJmYWNlL2RlZnMnO1xuaW1wb3J0IHtyZWdpc3Rlck5nTW9kdWxlVHlwZX0gZnJvbSAnLi4vLi4vbGlua2VyL25nX21vZHVsZV9yZWdpc3RyYXRpb24nO1xuaW1wb3J0ICogYXMgaWZyYW1lX2F0dHJzX3ZhbGlkYXRpb24gZnJvbSAnLi4vLi4vc2FuaXRpemF0aW9uL2lmcmFtZV9hdHRyc192YWxpZGF0aW9uJztcbmltcG9ydCAqIGFzIHNhbml0aXphdGlvbiBmcm9tICcuLi8uLi9zYW5pdGl6YXRpb24vc2FuaXRpemF0aW9uJztcbmltcG9ydCAqIGFzIHIzIGZyb20gJy4uL2luZGV4JztcblxuXG4vKipcbiAqIEEgbWFwcGluZyBvZiB0aGUgQGFuZ3VsYXIvY29yZSBBUEkgc3VyZmFjZSB1c2VkIGluIGdlbmVyYXRlZCBleHByZXNzaW9ucyB0byB0aGUgYWN0dWFsIHN5bWJvbHMuXG4gKlxuICogVGhpcyBzaG91bGQgYmUga2VwdCB1cCB0byBkYXRlIHdpdGggdGhlIHB1YmxpYyBleHBvcnRzIG9mIEBhbmd1bGFyL2NvcmUuXG4gKi9cbmV4cG9ydCBjb25zdCBhbmd1bGFyQ29yZUVudjoge1tuYW1lOiBzdHJpbmddOiBGdW5jdGlvbn0gPVxuICAgICgoKSA9PiAoe1xuICAgICAgICfJtcm1YXR0cmlidXRlJzogcjMuybXJtWF0dHJpYnV0ZSxcbiAgICAgICAnybXJtWF0dHJpYnV0ZUludGVycG9sYXRlMSc6IHIzLsm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTEsXG4gICAgICAgJ8m1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTInOiByMy7Jtcm1YXR0cmlidXRlSW50ZXJwb2xhdGUyLFxuICAgICAgICfJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGUzJzogcjMuybXJtWF0dHJpYnV0ZUludGVycG9sYXRlMyxcbiAgICAgICAnybXJtWF0dHJpYnV0ZUludGVycG9sYXRlNCc6IHIzLsm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTQsXG4gICAgICAgJ8m1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTUnOiByMy7Jtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU1LFxuICAgICAgICfJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU2JzogcjMuybXJtWF0dHJpYnV0ZUludGVycG9sYXRlNixcbiAgICAgICAnybXJtWF0dHJpYnV0ZUludGVycG9sYXRlNyc6IHIzLsm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTcsXG4gICAgICAgJ8m1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTgnOiByMy7Jtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU4LFxuICAgICAgICfJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGVWJzogcjMuybXJtWF0dHJpYnV0ZUludGVycG9sYXRlVixcbiAgICAgICAnybXJtWRlZmluZUNvbXBvbmVudCc6IHIzLsm1ybVkZWZpbmVDb21wb25lbnQsXG4gICAgICAgJ8m1ybVkZWZpbmVEaXJlY3RpdmUnOiByMy7Jtcm1ZGVmaW5lRGlyZWN0aXZlLFxuICAgICAgICfJtcm1ZGVmaW5lSW5qZWN0YWJsZSc6IMm1ybVkZWZpbmVJbmplY3RhYmxlLFxuICAgICAgICfJtcm1ZGVmaW5lSW5qZWN0b3InOiDJtcm1ZGVmaW5lSW5qZWN0b3IsXG4gICAgICAgJ8m1ybVkZWZpbmVOZ01vZHVsZSc6IHIzLsm1ybVkZWZpbmVOZ01vZHVsZSxcbiAgICAgICAnybXJtWRlZmluZVBpcGUnOiByMy7Jtcm1ZGVmaW5lUGlwZSxcbiAgICAgICAnybXJtWRpcmVjdGl2ZUluamVjdCc6IHIzLsm1ybVkaXJlY3RpdmVJbmplY3QsXG4gICAgICAgJ8m1ybVnZXRJbmhlcml0ZWRGYWN0b3J5JzogcjMuybXJtWdldEluaGVyaXRlZEZhY3RvcnksXG4gICAgICAgJ8m1ybVpbmplY3QnOiDJtcm1aW5qZWN0LFxuICAgICAgICfJtcm1aW5qZWN0QXR0cmlidXRlJzogcjMuybXJtWluamVjdEF0dHJpYnV0ZSxcbiAgICAgICAnybXJtWludmFsaWRGYWN0b3J5JzogcjMuybXJtWludmFsaWRGYWN0b3J5LFxuICAgICAgICfJtcm1aW52YWxpZEZhY3RvcnlEZXAnOiDJtcm1aW52YWxpZEZhY3RvcnlEZXAsXG4gICAgICAgJ8m1ybV0ZW1wbGF0ZVJlZkV4dHJhY3Rvcic6IHIzLsm1ybV0ZW1wbGF0ZVJlZkV4dHJhY3RvcixcbiAgICAgICAnybXJtXJlc2V0Vmlldyc6IHIzLsm1ybVyZXNldFZpZXcsXG4gICAgICAgJ8m1ybVIb3N0RGlyZWN0aXZlc0ZlYXR1cmUnOiByMy7Jtcm1SG9zdERpcmVjdGl2ZXNGZWF0dXJlLFxuICAgICAgICfJtcm1TmdPbkNoYW5nZXNGZWF0dXJlJzogcjMuybXJtU5nT25DaGFuZ2VzRmVhdHVyZSxcbiAgICAgICAnybXJtVByb3ZpZGVyc0ZlYXR1cmUnOiByMy7Jtcm1UHJvdmlkZXJzRmVhdHVyZSxcbiAgICAgICAnybXJtUNvcHlEZWZpbml0aW9uRmVhdHVyZSc6IHIzLsm1ybVDb3B5RGVmaW5pdGlvbkZlYXR1cmUsXG4gICAgICAgJ8m1ybVJbmhlcml0RGVmaW5pdGlvbkZlYXR1cmUnOiByMy7Jtcm1SW5oZXJpdERlZmluaXRpb25GZWF0dXJlLFxuICAgICAgICfJtcm1U3RhbmRhbG9uZUZlYXR1cmUnOiByMy7Jtcm1U3RhbmRhbG9uZUZlYXR1cmUsXG4gICAgICAgJ8m1ybVuZXh0Q29udGV4dCc6IHIzLsm1ybVuZXh0Q29udGV4dCxcbiAgICAgICAnybXJtW5hbWVzcGFjZUhUTUwnOiByMy7Jtcm1bmFtZXNwYWNlSFRNTCxcbiAgICAgICAnybXJtW5hbWVzcGFjZU1hdGhNTCc6IHIzLsm1ybVuYW1lc3BhY2VNYXRoTUwsXG4gICAgICAgJ8m1ybVuYW1lc3BhY2VTVkcnOiByMy7Jtcm1bmFtZXNwYWNlU1ZHLFxuICAgICAgICfJtcm1ZW5hYmxlQmluZGluZ3MnOiByMy7Jtcm1ZW5hYmxlQmluZGluZ3MsXG4gICAgICAgJ8m1ybVkaXNhYmxlQmluZGluZ3MnOiByMy7Jtcm1ZGlzYWJsZUJpbmRpbmdzLFxuICAgICAgICfJtcm1ZWxlbWVudFN0YXJ0JzogcjMuybXJtWVsZW1lbnRTdGFydCxcbiAgICAgICAnybXJtWVsZW1lbnRFbmQnOiByMy7Jtcm1ZWxlbWVudEVuZCxcbiAgICAgICAnybXJtWVsZW1lbnQnOiByMy7Jtcm1ZWxlbWVudCxcbiAgICAgICAnybXJtWVsZW1lbnRDb250YWluZXJTdGFydCc6IHIzLsm1ybVlbGVtZW50Q29udGFpbmVyU3RhcnQsXG4gICAgICAgJ8m1ybVlbGVtZW50Q29udGFpbmVyRW5kJzogcjMuybXJtWVsZW1lbnRDb250YWluZXJFbmQsXG4gICAgICAgJ8m1ybVlbGVtZW50Q29udGFpbmVyJzogcjMuybXJtWVsZW1lbnRDb250YWluZXIsXG4gICAgICAgJ8m1ybVwdXJlRnVuY3Rpb24wJzogcjMuybXJtXB1cmVGdW5jdGlvbjAsXG4gICAgICAgJ8m1ybVwdXJlRnVuY3Rpb24xJzogcjMuybXJtXB1cmVGdW5jdGlvbjEsXG4gICAgICAgJ8m1ybVwdXJlRnVuY3Rpb24yJzogcjMuybXJtXB1cmVGdW5jdGlvbjIsXG4gICAgICAgJ8m1ybVwdXJlRnVuY3Rpb24zJzogcjMuybXJtXB1cmVGdW5jdGlvbjMsXG4gICAgICAgJ8m1ybVwdXJlRnVuY3Rpb240JzogcjMuybXJtXB1cmVGdW5jdGlvbjQsXG4gICAgICAgJ8m1ybVwdXJlRnVuY3Rpb241JzogcjMuybXJtXB1cmVGdW5jdGlvbjUsXG4gICAgICAgJ8m1ybVwdXJlRnVuY3Rpb242JzogcjMuybXJtXB1cmVGdW5jdGlvbjYsXG4gICAgICAgJ8m1ybVwdXJlRnVuY3Rpb243JzogcjMuybXJtXB1cmVGdW5jdGlvbjcsXG4gICAgICAgJ8m1ybVwdXJlRnVuY3Rpb244JzogcjMuybXJtXB1cmVGdW5jdGlvbjgsXG4gICAgICAgJ8m1ybVwdXJlRnVuY3Rpb25WJzogcjMuybXJtXB1cmVGdW5jdGlvblYsXG4gICAgICAgJ8m1ybVnZXRDdXJyZW50Vmlldyc6IHIzLsm1ybVnZXRDdXJyZW50VmlldyxcbiAgICAgICAnybXJtXJlc3RvcmVWaWV3JzogcjMuybXJtXJlc3RvcmVWaWV3LFxuICAgICAgICfJtcm1bGlzdGVuZXInOiByMy7Jtcm1bGlzdGVuZXIsXG4gICAgICAgJ8m1ybVwcm9qZWN0aW9uJzogcjMuybXJtXByb2plY3Rpb24sXG4gICAgICAgJ8m1ybVzeW50aGV0aWNIb3N0UHJvcGVydHknOiByMy7Jtcm1c3ludGhldGljSG9zdFByb3BlcnR5LFxuICAgICAgICfJtcm1c3ludGhldGljSG9zdExpc3RlbmVyJzogcjMuybXJtXN5bnRoZXRpY0hvc3RMaXN0ZW5lcixcbiAgICAgICAnybXJtXBpcGVCaW5kMSc6IHIzLsm1ybVwaXBlQmluZDEsXG4gICAgICAgJ8m1ybVwaXBlQmluZDInOiByMy7Jtcm1cGlwZUJpbmQyLFxuICAgICAgICfJtcm1cGlwZUJpbmQzJzogcjMuybXJtXBpcGVCaW5kMyxcbiAgICAgICAnybXJtXBpcGVCaW5kNCc6IHIzLsm1ybVwaXBlQmluZDQsXG4gICAgICAgJ8m1ybVwaXBlQmluZFYnOiByMy7Jtcm1cGlwZUJpbmRWLFxuICAgICAgICfJtcm1cHJvamVjdGlvbkRlZic6IHIzLsm1ybVwcm9qZWN0aW9uRGVmLFxuICAgICAgICfJtcm1aG9zdFByb3BlcnR5JzogcjMuybXJtWhvc3RQcm9wZXJ0eSxcbiAgICAgICAnybXJtXByb3BlcnR5JzogcjMuybXJtXByb3BlcnR5LFxuICAgICAgICfJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZSc6IHIzLsm1ybVwcm9wZXJ0eUludGVycG9sYXRlLFxuICAgICAgICfJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTEnOiByMy7Jtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTEsXG4gICAgICAgJ8m1ybVwcm9wZXJ0eUludGVycG9sYXRlMic6IHIzLsm1ybVwcm9wZXJ0eUludGVycG9sYXRlMixcbiAgICAgICAnybXJtXByb3BlcnR5SW50ZXJwb2xhdGUzJzogcjMuybXJtXByb3BlcnR5SW50ZXJwb2xhdGUzLFxuICAgICAgICfJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTQnOiByMy7Jtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTQsXG4gICAgICAgJ8m1ybVwcm9wZXJ0eUludGVycG9sYXRlNSc6IHIzLsm1ybVwcm9wZXJ0eUludGVycG9sYXRlNSxcbiAgICAgICAnybXJtXByb3BlcnR5SW50ZXJwb2xhdGU2JzogcjMuybXJtXByb3BlcnR5SW50ZXJwb2xhdGU2LFxuICAgICAgICfJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTcnOiByMy7Jtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTcsXG4gICAgICAgJ8m1ybVwcm9wZXJ0eUludGVycG9sYXRlOCc6IHIzLsm1ybVwcm9wZXJ0eUludGVycG9sYXRlOCxcbiAgICAgICAnybXJtXByb3BlcnR5SW50ZXJwb2xhdGVWJzogcjMuybXJtXByb3BlcnR5SW50ZXJwb2xhdGVWLFxuICAgICAgICfJtcm1cGlwZSc6IHIzLsm1ybVwaXBlLFxuICAgICAgICfJtcm1cXVlcnlSZWZyZXNoJzogcjMuybXJtXF1ZXJ5UmVmcmVzaCxcbiAgICAgICAnybXJtXZpZXdRdWVyeSc6IHIzLsm1ybV2aWV3UXVlcnksXG4gICAgICAgJ8m1ybVsb2FkUXVlcnknOiByMy7Jtcm1bG9hZFF1ZXJ5LFxuICAgICAgICfJtcm1Y29udGVudFF1ZXJ5JzogcjMuybXJtWNvbnRlbnRRdWVyeSxcbiAgICAgICAnybXJtXJlZmVyZW5jZSc6IHIzLsm1ybVyZWZlcmVuY2UsXG4gICAgICAgJ8m1ybVjbGFzc01hcCc6IHIzLsm1ybVjbGFzc01hcCxcbiAgICAgICAnybXJtWNsYXNzTWFwSW50ZXJwb2xhdGUxJzogcjMuybXJtWNsYXNzTWFwSW50ZXJwb2xhdGUxLFxuICAgICAgICfJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTInOiByMy7Jtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTIsXG4gICAgICAgJ8m1ybVjbGFzc01hcEludGVycG9sYXRlMyc6IHIzLsm1ybVjbGFzc01hcEludGVycG9sYXRlMyxcbiAgICAgICAnybXJtWNsYXNzTWFwSW50ZXJwb2xhdGU0JzogcjMuybXJtWNsYXNzTWFwSW50ZXJwb2xhdGU0LFxuICAgICAgICfJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTUnOiByMy7Jtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTUsXG4gICAgICAgJ8m1ybVjbGFzc01hcEludGVycG9sYXRlNic6IHIzLsm1ybVjbGFzc01hcEludGVycG9sYXRlNixcbiAgICAgICAnybXJtWNsYXNzTWFwSW50ZXJwb2xhdGU3JzogcjMuybXJtWNsYXNzTWFwSW50ZXJwb2xhdGU3LFxuICAgICAgICfJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTgnOiByMy7Jtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTgsXG4gICAgICAgJ8m1ybVjbGFzc01hcEludGVycG9sYXRlVic6IHIzLsm1ybVjbGFzc01hcEludGVycG9sYXRlVixcbiAgICAgICAnybXJtXN0eWxlTWFwJzogcjMuybXJtXN0eWxlTWFwLFxuICAgICAgICfJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTEnOiByMy7Jtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTEsXG4gICAgICAgJ8m1ybVzdHlsZU1hcEludGVycG9sYXRlMic6IHIzLsm1ybVzdHlsZU1hcEludGVycG9sYXRlMixcbiAgICAgICAnybXJtXN0eWxlTWFwSW50ZXJwb2xhdGUzJzogcjMuybXJtXN0eWxlTWFwSW50ZXJwb2xhdGUzLFxuICAgICAgICfJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTQnOiByMy7Jtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTQsXG4gICAgICAgJ8m1ybVzdHlsZU1hcEludGVycG9sYXRlNSc6IHIzLsm1ybVzdHlsZU1hcEludGVycG9sYXRlNSxcbiAgICAgICAnybXJtXN0eWxlTWFwSW50ZXJwb2xhdGU2JzogcjMuybXJtXN0eWxlTWFwSW50ZXJwb2xhdGU2LFxuICAgICAgICfJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTcnOiByMy7Jtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTcsXG4gICAgICAgJ8m1ybVzdHlsZU1hcEludGVycG9sYXRlOCc6IHIzLsm1ybVzdHlsZU1hcEludGVycG9sYXRlOCxcbiAgICAgICAnybXJtXN0eWxlTWFwSW50ZXJwb2xhdGVWJzogcjMuybXJtXN0eWxlTWFwSW50ZXJwb2xhdGVWLFxuICAgICAgICfJtcm1c3R5bGVQcm9wJzogcjMuybXJtXN0eWxlUHJvcCxcbiAgICAgICAnybXJtXN0eWxlUHJvcEludGVycG9sYXRlMSc6IHIzLsm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTEsXG4gICAgICAgJ8m1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTInOiByMy7Jtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGUyLFxuICAgICAgICfJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGUzJzogcjMuybXJtXN0eWxlUHJvcEludGVycG9sYXRlMyxcbiAgICAgICAnybXJtXN0eWxlUHJvcEludGVycG9sYXRlNCc6IHIzLsm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTQsXG4gICAgICAgJ8m1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTUnOiByMy7Jtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGU1LFxuICAgICAgICfJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGU2JzogcjMuybXJtXN0eWxlUHJvcEludGVycG9sYXRlNixcbiAgICAgICAnybXJtXN0eWxlUHJvcEludGVycG9sYXRlNyc6IHIzLsm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTcsXG4gICAgICAgJ8m1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTgnOiByMy7Jtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGU4LFxuICAgICAgICfJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGVWJzogcjMuybXJtXN0eWxlUHJvcEludGVycG9sYXRlVixcbiAgICAgICAnybXJtWNsYXNzUHJvcCc6IHIzLsm1ybVjbGFzc1Byb3AsXG4gICAgICAgJ8m1ybVhZHZhbmNlJzogcjMuybXJtWFkdmFuY2UsXG4gICAgICAgJ8m1ybV0ZW1wbGF0ZSc6IHIzLsm1ybV0ZW1wbGF0ZSxcbiAgICAgICAnybXJtXRleHQnOiByMy7Jtcm1dGV4dCxcbiAgICAgICAnybXJtXRleHRJbnRlcnBvbGF0ZSc6IHIzLsm1ybV0ZXh0SW50ZXJwb2xhdGUsXG4gICAgICAgJ8m1ybV0ZXh0SW50ZXJwb2xhdGUxJzogcjMuybXJtXRleHRJbnRlcnBvbGF0ZTEsXG4gICAgICAgJ8m1ybV0ZXh0SW50ZXJwb2xhdGUyJzogcjMuybXJtXRleHRJbnRlcnBvbGF0ZTIsXG4gICAgICAgJ8m1ybV0ZXh0SW50ZXJwb2xhdGUzJzogcjMuybXJtXRleHRJbnRlcnBvbGF0ZTMsXG4gICAgICAgJ8m1ybV0ZXh0SW50ZXJwb2xhdGU0JzogcjMuybXJtXRleHRJbnRlcnBvbGF0ZTQsXG4gICAgICAgJ8m1ybV0ZXh0SW50ZXJwb2xhdGU1JzogcjMuybXJtXRleHRJbnRlcnBvbGF0ZTUsXG4gICAgICAgJ8m1ybV0ZXh0SW50ZXJwb2xhdGU2JzogcjMuybXJtXRleHRJbnRlcnBvbGF0ZTYsXG4gICAgICAgJ8m1ybV0ZXh0SW50ZXJwb2xhdGU3JzogcjMuybXJtXRleHRJbnRlcnBvbGF0ZTcsXG4gICAgICAgJ8m1ybV0ZXh0SW50ZXJwb2xhdGU4JzogcjMuybXJtXRleHRJbnRlcnBvbGF0ZTgsXG4gICAgICAgJ8m1ybV0ZXh0SW50ZXJwb2xhdGVWJzogcjMuybXJtXRleHRJbnRlcnBvbGF0ZVYsXG4gICAgICAgJ8m1ybVpMThuJzogcjMuybXJtWkxOG4sXG4gICAgICAgJ8m1ybVpMThuQXR0cmlidXRlcyc6IHIzLsm1ybVpMThuQXR0cmlidXRlcyxcbiAgICAgICAnybXJtWkxOG5FeHAnOiByMy7Jtcm1aTE4bkV4cCxcbiAgICAgICAnybXJtWkxOG5TdGFydCc6IHIzLsm1ybVpMThuU3RhcnQsXG4gICAgICAgJ8m1ybVpMThuRW5kJzogcjMuybXJtWkxOG5FbmQsXG4gICAgICAgJ8m1ybVpMThuQXBwbHknOiByMy7Jtcm1aTE4bkFwcGx5LFxuICAgICAgICfJtcm1aTE4blBvc3Rwcm9jZXNzJzogcjMuybXJtWkxOG5Qb3N0cHJvY2VzcyxcbiAgICAgICAnybXJtXJlc29sdmVXaW5kb3cnOiByMy7Jtcm1cmVzb2x2ZVdpbmRvdyxcbiAgICAgICAnybXJtXJlc29sdmVEb2N1bWVudCc6IHIzLsm1ybVyZXNvbHZlRG9jdW1lbnQsXG4gICAgICAgJ8m1ybVyZXNvbHZlQm9keSc6IHIzLsm1ybVyZXNvbHZlQm9keSxcbiAgICAgICAnybXJtXNldENvbXBvbmVudFNjb3BlJzogcjMuybXJtXNldENvbXBvbmVudFNjb3BlLFxuICAgICAgICfJtcm1c2V0TmdNb2R1bGVTY29wZSc6IHIzLsm1ybVzZXROZ01vZHVsZVNjb3BlLFxuICAgICAgICfJtcm1cmVnaXN0ZXJOZ01vZHVsZVR5cGUnOiByZWdpc3Rlck5nTW9kdWxlVHlwZSxcblxuICAgICAgICfJtcm1c2FuaXRpemVIdG1sJzogc2FuaXRpemF0aW9uLsm1ybVzYW5pdGl6ZUh0bWwsXG4gICAgICAgJ8m1ybVzYW5pdGl6ZVN0eWxlJzogc2FuaXRpemF0aW9uLsm1ybVzYW5pdGl6ZVN0eWxlLFxuICAgICAgICfJtcm1c2FuaXRpemVSZXNvdXJjZVVybCc6IHNhbml0aXphdGlvbi7Jtcm1c2FuaXRpemVSZXNvdXJjZVVybCxcbiAgICAgICAnybXJtXNhbml0aXplU2NyaXB0Jzogc2FuaXRpemF0aW9uLsm1ybVzYW5pdGl6ZVNjcmlwdCxcbiAgICAgICAnybXJtXNhbml0aXplVXJsJzogc2FuaXRpemF0aW9uLsm1ybVzYW5pdGl6ZVVybCxcbiAgICAgICAnybXJtXNhbml0aXplVXJsT3JSZXNvdXJjZVVybCc6IHNhbml0aXphdGlvbi7Jtcm1c2FuaXRpemVVcmxPclJlc291cmNlVXJsLFxuICAgICAgICfJtcm1dHJ1c3RDb25zdGFudEh0bWwnOiBzYW5pdGl6YXRpb24uybXJtXRydXN0Q29uc3RhbnRIdG1sLFxuICAgICAgICfJtcm1dHJ1c3RDb25zdGFudFJlc291cmNlVXJsJzogc2FuaXRpemF0aW9uLsm1ybV0cnVzdENvbnN0YW50UmVzb3VyY2VVcmwsXG4gICAgICAgJ8m1ybV2YWxpZGF0ZUlmcmFtZUF0dHJpYnV0ZSc6IGlmcmFtZV9hdHRyc192YWxpZGF0aW9uLsm1ybV2YWxpZGF0ZUlmcmFtZUF0dHJpYnV0ZSxcblxuICAgICAgICdmb3J3YXJkUmVmJzogZm9yd2FyZFJlZixcbiAgICAgICAncmVzb2x2ZUZvcndhcmRSZWYnOiByZXNvbHZlRm9yd2FyZFJlZixcbiAgICAgfSkpKCk7XG4iXX0=
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9yZW5kZXIzL2ppdC9lbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsVUFBVSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDbkUsT0FBTyxFQUFDLFFBQVEsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzdFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pFLE9BQU8sS0FBSyx1QkFBdUIsTUFBTSw0Q0FBNEMsQ0FBQztBQUN0RixPQUFPLEtBQUssWUFBWSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRy9COzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQ3ZCLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNMLGFBQWEsRUFBRSxFQUFFLENBQUMsV0FBVztJQUM3Qix5QkFBeUIsRUFBRSxFQUFFLENBQUMsdUJBQXVCO0lBQ3JELHlCQUF5QixFQUFFLEVBQUUsQ0FBQyx1QkFBdUI7SUFDckQseUJBQXlCLEVBQUUsRUFBRSxDQUFDLHVCQUF1QjtJQUNyRCx5QkFBeUIsRUFBRSxFQUFFLENBQUMsdUJBQXVCO0lBQ3JELHlCQUF5QixFQUFFLEVBQUUsQ0FBQyx1QkFBdUI7SUFDckQseUJBQXlCLEVBQUUsRUFBRSxDQUFDLHVCQUF1QjtJQUNyRCx5QkFBeUIsRUFBRSxFQUFFLENBQUMsdUJBQXVCO0lBQ3JELHlCQUF5QixFQUFFLEVBQUUsQ0FBQyx1QkFBdUI7SUFDckQseUJBQXlCLEVBQUUsRUFB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RSxZQUFZLENBQUMsYUFBYTtJQUMzQyw0QkFBNEIsRUFBRSxZQUFZLENBQUMsMEJBQTBCO0lBQ3JFLHFCQUFxQixFQUFFLFlBQVksQ0FBQyxtQkFBbUI7SUFDdkQsNEJBQTRCLEVBQUUsWUFBWSxDQUFDLDBCQUEwQjtJQUNyRSwyQkFBMkIsRUFBRSx1QkFBdUIsQ0FBQyx5QkFBeUI7SUFFOUUsWUFBWSxFQUFFLFVBQVU7SUFDeEIsbUJBQW1CLEVBQUUsaUJBQWlCO0NBQ3ZDLENBQUMsQ0FBQyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtmb3J3YXJkUmVmLCByZXNvbHZlRm9yd2FyZFJlZn0gZnJvbSAnLi4vLi4vZGkvZm9yd2FyZF9yZWYnO1xuaW1wb3J0IHvJtcm1aW5qZWN0LCDJtcm1aW52YWxpZEZhY3RvcnlEZXB9IGZyb20gJy4uLy4uL2RpL2luamVjdG9yX2NvbXBhdGliaWxpdHknO1xuaW1wb3J0IHvJtcm1ZGVmaW5lSW5qZWN0YWJsZSwgybXJtWRlZmluZUluamVjdG9yfSBmcm9tICcuLi8uLi9kaS9pbnRlcmZhY2UvZGVmcyc7XG5pbXBvcnQge3JlZ2lzdGVyTmdNb2R1bGVUeXBlfSBmcm9tICcuLi8uLi9saW5rZXIvbmdfbW9kdWxlX3JlZ2lzdHJhdGlvbic7XG5pbXBvcnQgKiBhcyBpZnJhbWVfYXR0cnNfdmFsaWRhdGlvbiBmcm9tICcuLi8uLi9zYW5pdGl6YXRpb24vaWZyYW1lX2F0dHJzX3ZhbGlkYXRpb24nO1xuaW1wb3J0ICogYXMgc2FuaXRpemF0aW9uIGZyb20gJy4uLy4uL3Nhbml0aXphdGlvbi9zYW5pdGl6YXRpb24nO1xuaW1wb3J0ICogYXMgcjMgZnJvbSAnLi4vaW5kZXgnO1xuXG5cbi8qKlxuICogQSBtYXBwaW5nIG9mIHRoZSBAYW5ndWxhci9jb3JlIEFQSSBzdXJmYWNlIHVzZWQgaW4gZ2VuZXJhdGVkIGV4cHJlc3Npb25zIHRvIHRoZSBhY3R1YWwgc3ltYm9scy5cbiAqXG4gKiBUaGlzIHNob3VsZCBiZSBrZXB0IHVwIHRvIGRhdGUgd2l0aCB0aGUgcHVibGljIGV4cG9ydHMgb2YgQGFuZ3VsYXIvY29yZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGFuZ3VsYXJDb3JlRW52OiB7W25hbWU6IHN0cmluZ106IEZ1bmN0aW9ufSA9XG4gICAgKCgpID0+ICh7XG4gICAgICAgJ8m1ybVhdHRyaWJ1dGUnOiByMy7Jtcm1YXR0cmlidXRlLFxuICAgICAgICfJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGUxJzogcjMuybXJtWF0dHJpYnV0ZUludGVycG9sYXRlMSxcbiAgICAgICAnybXJtWF0dHJpYnV0ZUludGVycG9sYXRlMic6IHIzLsm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTIsXG4gICAgICAgJ8m1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTMnOiByMy7Jtcm1YXR0cmlidXRlSW50ZXJwb2xhdGUzLFxuICAgICAgICfJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU0JzogcjMuybXJtWF0dHJpYnV0ZUludGVycG9sYXRlNCxcbiAgICAgICAnybXJtWF0dHJpYnV0ZUludGVycG9sYXRlNSc6IHIzLsm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTUsXG4gICAgICAgJ8m1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTYnOiByMy7Jtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU2LFxuICAgICAgICfJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU3JzogcjMuybXJtWF0dHJpYnV0ZUludGVycG9sYXRlNyxcbiAgICAgICAnybXJtWF0dHJpYnV0ZUludGVycG9sYXRlOCc6IHIzLsm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTgsXG4gICAgICAgJ8m1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZVYnOiByMy7Jtcm1YXR0cmlidXRlSW50ZXJwb2xhdGVWLFxuICAgICAgICfJtcm1ZGVmaW5lQ29tcG9uZW50JzogcjMuybXJtWRlZmluZUNvbXBvbmVudCxcbiAgICAgICAnybXJtWRlZmluZURpcmVjdGl2ZSc6IHIzLsm1ybVkZWZpbmVEaXJlY3RpdmUsXG4gICAgICAgJ8m1ybVkZWZpbmVJbmplY3RhYmxlJzogybXJtWRlZmluZUluamVjdGFibGUsXG4gICAgICAgJ8m1ybVkZWZpbmVJbmplY3Rvcic6IMm1ybVkZWZpbmVJbmplY3RvcixcbiAgICAgICAnybXJtWRlZmluZU5nTW9kdWxlJzogcjMuybXJtWRlZmluZU5nTW9kdWxlLFxuICAgICAgICfJtcm1ZGVmaW5lUGlwZSc6IHIzLsm1ybVkZWZpbmVQaXBlLFxuICAgICAgICfJtcm1ZGlyZWN0aXZlSW5qZWN0JzogcjMuybXJtWRpcmVjdGl2ZUluamVjdCxcbiAgICAgICAnybXJtWdldEluaGVyaXRlZEZhY3RvcnknOiByMy7Jtcm1Z2V0SW5oZXJpdGVkRmFjdG9yeSxcbiAgICAgICAnybXJtWluamVjdCc6IMm1ybVpbmplY3QsXG4gICAgICAgJ8m1ybVpbmplY3RBdHRyaWJ1dGUnOiByMy7Jtcm1aW5qZWN0QXR0cmlidXRlLFxuICAgICAgICfJtcm1aW52YWxpZEZhY3RvcnknOiByMy7Jtcm1aW52YWxpZEZhY3RvcnksXG4gICAgICAgJ8m1ybVpbnZhbGlkRmFjdG9yeURlcCc6IMm1ybVpbnZhbGlkRmFjdG9yeURlcCxcbiAgICAgICAnybXJtXRlbXBsYXRlUmVmRXh0cmFjdG9yJzogcjMuybXJtXRlbXBsYXRlUmVmRXh0cmFjdG9yLFxuICAgICAgICfJtcm1cmVzZXRWaWV3JzogcjMuybXJtXJlc2V0VmlldyxcbiAgICAgICAnybXJtUhvc3REaXJlY3RpdmVzRmVhdHVyZSc6IHIzLsm1ybVIb3N0RGlyZWN0aXZlc0ZlYXR1cmUsXG4gICAgICAgJ8m1ybVOZ09uQ2hhbmdlc0ZlYXR1cmUnOiByMy7Jtcm1TmdPbkNoYW5nZXNGZWF0dXJlLFxuICAgICAgICfJtcm1UHJvdmlkZXJzRmVhdHVyZSc6IHIzLsm1ybVQcm92aWRlcnNGZWF0dXJlLFxuICAgICAgICfJtcm1Q29weURlZmluaXRpb25GZWF0dXJlJzogcjMuybXJtUNvcHlEZWZpbml0aW9uRmVhdHVyZSxcbiAgICAgICAnybXJtUluaGVyaXREZWZpbml0aW9uRmVhdHVyZSc6IHIzLsm1ybVJbmhlcml0RGVmaW5pdGlvbkZlYXR1cmUsXG4gICAgICAgJ8m1ybVJbnB1dFRyYW5zZm9ybXNGZWF0dXJlJzogcjMuybXJtUlucHV0VHJhbnNmb3Jtc0ZlYXR1cmUsXG4gICAgICAgJ8m1ybVTdGFuZGFsb25lRmVhdHVyZSc6IHIzLsm1ybVTdGFuZGFsb25lRmVhdHVyZSxcbiAgICAgICAnybXJtW5leHRDb250ZXh0JzogcjMuybXJtW5leHRDb250ZXh0LFxuICAgICAgICfJtcm1bmFtZXNwYWNlSFRNTCc6IHIzLsm1ybVuYW1lc3BhY2VIVE1MLFxuICAgICAgICfJtcm1bmFtZXNwYWNlTWF0aE1MJzogcjMuybXJtW5hbWVzcGFjZU1hdGhNTCxcbiAgICAgICAnybXJtW5hbWVzcGFjZVNWRyc6IHIzLsm1ybVuYW1lc3BhY2VTVkcsXG4gICAgICAgJ8m1ybVlbmFibGVCaW5kaW5ncyc6IHIzLsm1ybVlbmFibGVCaW5kaW5ncyxcbiAgICAgICAnybXJtWRpc2FibGVCaW5kaW5ncyc6IHIzLsm1ybVkaXNhYmxlQmluZGluZ3MsXG4gICAgICAgJ8m1ybVlbGVtZW50U3RhcnQnOiByMy7Jtcm1ZWxlbWVudFN0YXJ0LFxuICAgICAgICfJtcm1ZWxlbWVudEVuZCc6IHIzLsm1ybVlbGVtZW50RW5kLFxuICAgICAgICfJtcm1ZWxlbWVudCc6IHIzLsm1ybVlbGVtZW50LFxuICAgICAgICfJtcm1ZWxlbWVudENvbnRhaW5lclN0YXJ0JzogcjMuybXJtWVsZW1lbnRDb250YWluZXJTdGFydCxcbiAgICAgICAnybXJtWVsZW1lbnRDb250YWluZXJFbmQnOiByMy7Jtcm1ZWxlbWVudENvbnRhaW5lckVuZCxcbiAgICAgICAnybXJtWVsZW1lbnRDb250YWluZXInOiByMy7Jtcm1ZWxlbWVudENvbnRhaW5lcixcbiAgICAgICAnybXJtXB1cmVGdW5jdGlvbjAnOiByMy7Jtcm1cHVyZUZ1bmN0aW9uMCxcbiAgICAgICAnybXJtXB1cmVGdW5jdGlvbjEnOiByMy7Jtcm1cHVyZUZ1bmN0aW9uMSxcbiAgICAgICAnybXJtXB1cmVGdW5jdGlvbjInOiByMy7Jtcm1cHVyZUZ1bmN0aW9uMixcbiAgICAgICAnybXJtXB1cmVGdW5jdGlvbjMnOiByMy7Jtcm1cHVyZUZ1bmN0aW9uMyxcbiAgICAgICAnybXJtXB1cmVGdW5jdGlvbjQnOiByMy7Jtcm1cHVyZUZ1bmN0aW9uNCxcbiAgICAgICAnybXJtXB1cmVGdW5jdGlvbjUnOiByMy7Jtcm1cHVyZUZ1bmN0aW9uNSxcbiAgICAgICAnybXJtXB1cmVGdW5jdGlvbjYnOiByMy7Jtcm1cHVyZUZ1bmN0aW9uNixcbiAgICAgICAnybXJtXB1cmVGdW5jdGlvbjcnOiByMy7Jtcm1cHVyZUZ1bmN0aW9uNyxcbiAgICAgICAnybXJtXB1cmVGdW5jdGlvbjgnOiByMy7Jtcm1cHVyZUZ1bmN0aW9uOCxcbiAgICAgICAnybXJtXB1cmVGdW5jdGlvblYnOiByMy7Jtcm1cHVyZUZ1bmN0aW9uVixcbiAgICAgICAnybXJtWdldEN1cnJlbnRWaWV3JzogcjMuybXJtWdldEN1cnJlbnRWaWV3LFxuICAgICAgICfJtcm1cmVzdG9yZVZpZXcnOiByMy7Jtcm1cmVzdG9yZVZpZXcsXG4gICAgICAgJ8m1ybVsaXN0ZW5lcic6IHIzLsm1ybVsaXN0ZW5lcixcbiAgICAgICAnybXJtXByb2plY3Rpb24nOiByMy7Jtcm1cHJvamVjdGlvbixcbiAgICAgICAnybXJtXN5bnRoZXRpY0hvc3RQcm9wZXJ0eSc6IHIzLsm1ybVzeW50aGV0aWNIb3N0UHJvcGVydHksXG4gICAgICAgJ8m1ybVzeW50aGV0aWNIb3N0TGlzdGVuZXInOiByMy7Jtcm1c3ludGhldGljSG9zdExpc3RlbmVyLFxuICAgICAgICfJtcm1cGlwZUJpbmQxJzogcjMuybXJtXBpcGVCaW5kMSxcbiAgICAgICAnybXJtXBpcGVCaW5kMic6IHIzLsm1ybVwaXBlQmluZDIsXG4gICAgICAgJ8m1ybVwaXBlQmluZDMnOiByMy7Jtcm1cGlwZUJpbmQzLFxuICAgICAgICfJtcm1cGlwZUJpbmQ0JzogcjMuybXJtXBpcGVCaW5kNCxcbiAgICAgICAnybXJtXBpcGVCaW5kVic6IHIzLsm1ybVwaXBlQmluZFYsXG4gICAgICAgJ8m1ybVwcm9qZWN0aW9uRGVmJzogcjMuybXJtXByb2plY3Rpb25EZWYsXG4gICAgICAgJ8m1ybVob3N0UHJvcGVydHknOiByMy7Jtcm1aG9zdFByb3BlcnR5LFxuICAgICAgICfJtcm1cHJvcGVydHknOiByMy7Jtcm1cHJvcGVydHksXG4gICAgICAgJ8m1ybVwcm9wZXJ0eUludGVycG9sYXRlJzogcjMuybXJtXByb3BlcnR5SW50ZXJwb2xhdGUsXG4gICAgICAgJ8m1ybVwcm9wZXJ0eUludGVycG9sYXRlMSc6IHIzLsm1ybVwcm9wZXJ0eUludGVycG9sYXRlMSxcbiAgICAgICAnybXJtXByb3BlcnR5SW50ZXJwb2xhdGUyJzogcjMuybXJtXByb3BlcnR5SW50ZXJwb2xhdGUyLFxuICAgICAgICfJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTMnOiByMy7Jtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTMsXG4gICAgICAgJ8m1ybVwcm9wZXJ0eUludGVycG9sYXRlNCc6IHIzLsm1ybVwcm9wZXJ0eUludGVycG9sYXRlNCxcbiAgICAgICAnybXJtXByb3BlcnR5SW50ZXJwb2xhdGU1JzogcjMuybXJtXByb3BlcnR5SW50ZXJwb2xhdGU1LFxuICAgICAgICfJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTYnOiByMy7Jtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTYsXG4gICAgICAgJ8m1ybVwcm9wZXJ0eUludGVycG9sYXRlNyc6IHIzLsm1ybVwcm9wZXJ0eUludGVycG9sYXRlNyxcbiAgICAgICAnybXJtXByb3BlcnR5SW50ZXJwb2xhdGU4JzogcjMuybXJtXByb3BlcnR5SW50ZXJwb2xhdGU4LFxuICAgICAgICfJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZVYnOiByMy7Jtcm1cHJvcGVydHlJbnRlcnBvbGF0ZVYsXG4gICAgICAgJ8m1ybVwaXBlJzogcjMuybXJtXBpcGUsXG4gICAgICAgJ8m1ybVxdWVyeVJlZnJlc2gnOiByMy7Jtcm1cXVlcnlSZWZyZXNoLFxuICAgICAgICfJtcm1dmlld1F1ZXJ5JzogcjMuybXJtXZpZXdRdWVyeSxcbiAgICAgICAnybXJtWxvYWRRdWVyeSc6IHIzLsm1ybVsb2FkUXVlcnksXG4gICAgICAgJ8m1ybVjb250ZW50UXVlcnknOiByMy7Jtcm1Y29udGVudFF1ZXJ5LFxuICAgICAgICfJtcm1cmVmZXJlbmNlJzogcjMuybXJtXJlZmVyZW5jZSxcbiAgICAgICAnybXJtWNsYXNzTWFwJzogcjMuybXJtWNsYXNzTWFwLFxuICAgICAgICfJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTEnOiByMy7Jtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTEsXG4gICAgICAgJ8m1ybVjbGFzc01hcEludGVycG9sYXRlMic6IHIzLsm1ybVjbGFzc01hcEludGVycG9sYXRlMixcbiAgICAgICAnybXJtWNsYXNzTWFwSW50ZXJwb2xhdGUzJzogcjMuybXJtWNsYXNzTWFwSW50ZXJwb2xhdGUzLFxuICAgICAgICfJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTQnOiByMy7Jtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTQsXG4gICAgICAgJ8m1ybVjbGFzc01hcEludGVycG9sYXRlNSc6IHIzLsm1ybVjbGFzc01hcEludGVycG9sYXRlNSxcbiAgICAgICAnybXJtWNsYXNzTWFwSW50ZXJwb2xhdGU2JzogcjMuybXJtWNsYXNzTWFwSW50ZXJwb2xhdGU2LFxuICAgICAgICfJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTcnOiByMy7Jtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTcsXG4gICAgICAgJ8m1ybVjbGFzc01hcEludGVycG9sYXRlOCc6IHIzLsm1ybVjbGFzc01hcEludGVycG9sYXRlOCxcbiAgICAgICAnybXJtWNsYXNzTWFwSW50ZXJwb2xhdGVWJzogcjMuybXJtWNsYXNzTWFwSW50ZXJwb2xhdGVWLFxuICAgICAgICfJtcm1c3R5bGVNYXAnOiByMy7Jtcm1c3R5bGVNYXAsXG4gICAgICAgJ8m1ybVzdHlsZU1hcEludGVycG9sYXRlMSc6IHIzLsm1ybVzdHlsZU1hcEludGVycG9sYXRlMSxcbiAgICAgICAnybXJtXN0eWxlTWFwSW50ZXJwb2xhdGUyJzogcjMuybXJtXN0eWxlTWFwSW50ZXJwb2xhdGUyLFxuICAgICAgICfJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTMnOiByMy7Jtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTMsXG4gICAgICAgJ8m1ybVzdHlsZU1hcEludGVycG9sYXRlNCc6IHIzLsm1ybVzdHlsZU1hcEludGVycG9sYXRlNCxcbiAgICAgICAnybXJtXN0eWxlTWFwSW50ZXJwb2xhdGU1JzogcjMuybXJtXN0eWxlTWFwSW50ZXJwb2xhdGU1LFxuICAgICAgICfJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTYnOiByMy7Jtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTYsXG4gICAgICAgJ8m1ybVzdHlsZU1hcEludGVycG9sYXRlNyc6IHIzLsm1ybVzdHlsZU1hcEludGVycG9sYXRlNyxcbiAgICAgICAnybXJtXN0eWxlTWFwSW50ZXJwb2xhdGU4JzogcjMuybXJtXN0eWxlTWFwSW50ZXJwb2xhdGU4LFxuICAgICAgICfJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZVYnOiByMy7Jtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZVYsXG4gICAgICAgJ8m1ybVzdHlsZVByb3AnOiByMy7Jtcm1c3R5bGVQcm9wLFxuICAgICAgICfJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGUxJzogcjMuybXJtXN0eWxlUHJvcEludGVycG9sYXRlMSxcbiAgICAgICAnybXJtXN0eWxlUHJvcEludGVycG9sYXRlMic6IHIzLsm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTIsXG4gICAgICAgJ8m1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTMnOiByMy7Jtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGUzLFxuICAgICAgICfJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGU0JzogcjMuybXJtXN0eWxlUHJvcEludGVycG9sYXRlNCxcbiAgICAgICAnybXJtXN0eWxlUHJvcEludGVycG9sYXRlNSc6IHIzLsm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTUsXG4gICAgICAgJ8m1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTYnOiByMy7Jtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGU2LFxuICAgICAgICfJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGU3JzogcjMuybXJtXN0eWxlUHJvcEludGVycG9sYXRlNyxcbiAgICAgICAnybXJtXN0eWxlUHJvcEludGVycG9sYXRlOCc6IHIzLsm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTgsXG4gICAgICAgJ8m1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZVYnOiByMy7Jtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGVWLFxuICAgICAgICfJtcm1Y2xhc3NQcm9wJzogcjMuybXJtWNsYXNzUHJvcCxcbiAgICAgICAnybXJtWFkdmFuY2UnOiByMy7Jtcm1YWR2YW5jZSxcbiAgICAgICAnybXJtXRlbXBsYXRlJzogcjMuybXJtXRlbXBsYXRlLFxuICAgICAgICfJtcm1dGV4dCc6IHIzLsm1ybV0ZXh0LFxuICAgICAgICfJtcm1dGV4dEludGVycG9sYXRlJzogcjMuybXJtXRleHRJbnRlcnBvbGF0ZSxcbiAgICAgICAnybXJtXRleHRJbnRlcnBvbGF0ZTEnOiByMy7Jtcm1dGV4dEludGVycG9sYXRlMSxcbiAgICAgICAnybXJtXRleHRJbnRlcnBvbGF0ZTInOiByMy7Jtcm1dGV4dEludGVycG9sYXRlMixcbiAgICAgICAnybXJtXRleHRJbnRlcnBvbGF0ZTMnOiByMy7Jtcm1dGV4dEludGVycG9sYXRlMyxcbiAgICAgICAnybXJtXRleHRJbnRlcnBvbGF0ZTQnOiByMy7Jtcm1dGV4dEludGVycG9sYXRlNCxcbiAgICAgICAnybXJtXRleHRJbnRlcnBvbGF0ZTUnOiByMy7Jtcm1dGV4dEludGVycG9sYXRlNSxcbiAgICAgICAnybXJtXRleHRJbnRlcnBvbGF0ZTYnOiByMy7Jtcm1dGV4dEludGVycG9sYXRlNixcbiAgICAgICAnybXJtXRleHRJbnRlcnBvbGF0ZTcnOiByMy7Jtcm1dGV4dEludGVycG9sYXRlNyxcbiAgICAgICAnybXJtXRleHRJbnRlcnBvbGF0ZTgnOiByMy7Jtcm1dGV4dEludGVycG9sYXRlOCxcbiAgICAgICAnybXJtXRleHRJbnRlcnBvbGF0ZVYnOiByMy7Jtcm1dGV4dEludGVycG9sYXRlVixcbiAgICAgICAnybXJtWkxOG4nOiByMy7Jtcm1aTE4bixcbiAgICAgICAnybXJtWkxOG5BdHRyaWJ1dGVzJzogcjMuybXJtWkxOG5BdHRyaWJ1dGVzLFxuICAgICAgICfJtcm1aTE4bkV4cCc6IHIzLsm1ybVpMThuRXhwLFxuICAgICAgICfJtcm1aTE4blN0YXJ0JzogcjMuybXJtWkxOG5TdGFydCxcbiAgICAgICAnybXJtWkxOG5FbmQnOiByMy7Jtcm1aTE4bkVuZCxcbiAgICAgICAnybXJtWkxOG5BcHBseSc6IHIzLsm1ybVpMThuQXBwbHksXG4gICAgICAgJ8m1ybVpMThuUG9zdHByb2Nlc3MnOiByMy7Jtcm1aTE4blBvc3Rwcm9jZXNzLFxuICAgICAgICfJtcm1cmVzb2x2ZVdpbmRvdyc6IHIzLsm1ybVyZXNvbHZlV2luZG93LFxuICAgICAgICfJtcm1cmVzb2x2ZURvY3VtZW50JzogcjMuybXJtXJlc29sdmVEb2N1bWVudCxcbiAgICAgICAnybXJtXJlc29sdmVCb2R5JzogcjMuybXJtXJlc29sdmVCb2R5LFxuICAgICAgICfJtcm1c2V0Q29tcG9uZW50U2NvcGUnOiByMy7Jtcm1c2V0Q29tcG9uZW50U2NvcGUsXG4gICAgICAgJ8m1ybVzZXROZ01vZHVsZVNjb3BlJzogcjMuybXJtXNldE5nTW9kdWxlU2NvcGUsXG4gICAgICAgJ8m1ybVyZWdpc3Rlck5nTW9kdWxlVHlwZSc6IHJlZ2lzdGVyTmdNb2R1bGVUeXBlLFxuXG4gICAgICAgJ8m1ybVzYW5pdGl6ZUh0bWwnOiBzYW5pdGl6YXRpb24uybXJtXNhbml0aXplSHRtbCxcbiAgICAgICAnybXJtXNhbml0aXplU3R5bGUnOiBzYW5pdGl6YXRpb24uybXJtXNhbml0aXplU3R5bGUsXG4gICAgICAgJ8m1ybVzYW5pdGl6ZVJlc291cmNlVXJsJzogc2FuaXRpemF0aW9uLsm1ybVzYW5pdGl6ZVJlc291cmNlVXJsLFxuICAgICAgICfJtcm1c2FuaXRpemVTY3JpcHQnOiBzYW5pdGl6YXRpb24uybXJtXNhbml0aXplU2NyaXB0LFxuICAgICAgICfJtcm1c2FuaXRpemVVcmwnOiBzYW5pdGl6YXRpb24uybXJtXNhbml0aXplVXJsLFxuICAgICAgICfJtcm1c2FuaXRpemVVcmxPclJlc291cmNlVXJsJzogc2FuaXRpemF0aW9uLsm1ybVzYW5pdGl6ZVVybE9yUmVzb3VyY2VVcmwsXG4gICAgICAgJ8m1ybV0cnVzdENvbnN0YW50SHRtbCc6IHNhbml0aXphdGlvbi7Jtcm1dHJ1c3RDb25zdGFudEh0bWwsXG4gICAgICAgJ8m1ybV0cnVzdENvbnN0YW50UmVzb3VyY2VVcmwnOiBzYW5pdGl6YXRpb24uybXJtXRydXN0Q29uc3RhbnRSZXNvdXJjZVVybCxcbiAgICAgICAnybXJtXZhbGlkYXRlSWZyYW1lQXR0cmlidXRlJzogaWZyYW1lX2F0dHJzX3ZhbGlkYXRpb24uybXJtXZhbGlkYXRlSWZyYW1lQXR0cmlidXRlLFxuXG4gICAgICAgJ2ZvcndhcmRSZWYnOiBmb3J3YXJkUmVmLFxuICAgICAgICdyZXNvbHZlRm9yd2FyZFJlZic6IHJlc29sdmVGb3J3YXJkUmVmLFxuICAgICB9KSkoKTtcbiJdfQ==