@po-ui/ng-components 16.2.0 → 16.3.0

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 (70) hide show
  1. package/esm2022/lib/components/po-accordion/index.mjs +2 -1
  2. package/esm2022/lib/components/po-accordion/interfaces/po-accordion-literals.interface.mjs +2 -0
  3. package/esm2022/lib/components/po-accordion/po-accordion-base.component.mjs +150 -2
  4. package/esm2022/lib/components/po-accordion/po-accordion-item/po-accordion-item.component.mjs +63 -6
  5. package/esm2022/lib/components/po-accordion/po-accordion-item-header/po-accordion-item-header.component.mjs +44 -10
  6. package/esm2022/lib/components/po-accordion/po-accordion-manager/po-accordion-manager.component.mjs +43 -0
  7. package/esm2022/lib/components/po-accordion/po-accordion.component.mjs +93 -27
  8. package/esm2022/lib/components/po-accordion/po-accordion.module.mjs +13 -7
  9. package/esm2022/lib/components/po-breadcrumb/po-breadcrumb-base.component.mjs +24 -1
  10. package/esm2022/lib/components/po-breadcrumb/po-breadcrumb-favorite/po-breadcrumb-favorite.component.mjs +11 -6
  11. package/esm2022/lib/components/po-breadcrumb/po-breadcrumb.component.mjs +163 -65
  12. package/esm2022/lib/components/po-breadcrumb/po-breadcrumb.module.mjs +8 -15
  13. package/esm2022/lib/components/po-field/po-input/po-input-base.component.mjs +2 -1
  14. package/esm2022/lib/components/po-field/po-input/po-mask.mjs +1 -1
  15. package/esm2022/lib/components/po-field/po-input-generic/po-input-generic.mjs +20 -1
  16. package/esm2022/lib/components/po-field/po-lookup/po-lookup-base.component.mjs +15 -2
  17. package/esm2022/lib/components/po-field/po-lookup/po-lookup-modal/po-lookup-modal-base.component.mjs +7 -2
  18. package/esm2022/lib/components/po-field/po-lookup/po-lookup-modal/po-lookup-modal.component.mjs +4 -4
  19. package/esm2022/lib/components/po-field/po-lookup/po-lookup.component.mjs +3 -2
  20. package/esm2022/lib/components/po-field/po-lookup/services/po-lookup-modal.service.mjs +3 -2
  21. package/esm2022/lib/components/po-field/po-upload/po-upload-base.service.mjs +6 -2
  22. package/esm2022/lib/components/po-list-view/po-list-view.component.mjs +4 -4
  23. package/esm2022/lib/components/po-popup/po-popup-base.component.mjs +7 -3
  24. package/esm2022/lib/components/po-popup/po-popup.component.mjs +2 -1
  25. package/esm2022/lib/components/po-tree-view/po-tree-view-base.component.mjs +37 -7
  26. package/esm2022/lib/components/po-tree-view/po-tree-view-item/po-tree-view-item.component.mjs +14 -6
  27. package/esm2022/lib/components/po-tree-view/po-tree-view-item/po-tree-view-item.interface.mjs +1 -1
  28. package/esm2022/lib/components/po-tree-view/po-tree-view-item-header/po-tree-view-item-header.component.mjs +50 -16
  29. package/esm2022/lib/components/po-tree-view/po-tree-view.component.mjs +5 -5
  30. package/fesm2022/po-ui-ng-components.mjs +10205 -9783
  31. package/fesm2022/po-ui-ng-components.mjs.map +1 -1
  32. package/lib/components/po-accordion/index.d.ts +1 -0
  33. package/lib/components/po-accordion/interfaces/po-accordion-literals.interface.d.ts +13 -0
  34. package/lib/components/po-accordion/po-accordion-base.component.d.ts +105 -1
  35. package/lib/components/po-accordion/po-accordion-item/po-accordion-item.component.d.ts +41 -1
  36. package/lib/components/po-accordion/po-accordion-item-header/po-accordion-item-header.component.d.ts +7 -1
  37. package/lib/components/po-accordion/po-accordion-manager/po-accordion-manager.component.d.ts +11 -0
  38. package/lib/components/po-accordion/po-accordion.component.d.ts +15 -1
  39. package/lib/components/po-accordion/po-accordion.module.d.ts +6 -2
  40. package/lib/components/po-breadcrumb/po-breadcrumb-base.component.d.ts +3 -0
  41. package/lib/components/po-breadcrumb/po-breadcrumb-favorite/po-breadcrumb-favorite.component.d.ts +2 -1
  42. package/lib/components/po-breadcrumb/po-breadcrumb.component.d.ts +14 -6
  43. package/lib/components/po-breadcrumb/po-breadcrumb.module.d.ts +7 -6
  44. package/lib/components/po-field/po-input-generic/po-input-generic.d.ts +2 -0
  45. package/lib/components/po-field/po-lookup/po-lookup-base.component.d.ts +17 -1
  46. package/lib/components/po-field/po-lookup/po-lookup-modal/po-lookup-modal-base.component.d.ts +4 -1
  47. package/lib/components/po-field/po-lookup/services/po-lookup-modal.service.d.ts +1 -0
  48. package/lib/components/po-field/po-switch/po-switch.component.d.ts +1 -1
  49. package/lib/components/po-modal/po-modal.component.d.ts +1 -1
  50. package/lib/components/po-popup/po-popup-base.component.d.ts +3 -1
  51. package/lib/components/po-tree-view/po-tree-view-base.component.d.ts +14 -1
  52. package/lib/components/po-tree-view/po-tree-view-item/po-tree-view-item.component.d.ts +3 -1
  53. package/lib/components/po-tree-view/po-tree-view-item/po-tree-view-item.interface.d.ts +4 -0
  54. package/lib/components/po-tree-view/po-tree-view-item-header/po-tree-view-item-header.component.d.ts +4 -1
  55. package/package.json +4 -4
  56. package/po-ui-ng-components-16.3.0.tgz +0 -0
  57. package/schematics/ng-add/index.js +1 -1
  58. package/schematics/ng-update/v14/index.js +1 -1
  59. package/schematics/ng-update/v15/index.js +1 -1
  60. package/schematics/ng-update/v16/index.js +1 -1
  61. package/schematics/ng-update/v2/index.js +1 -1
  62. package/schematics/ng-update/v3/index.js +1 -1
  63. package/schematics/ng-update/v4/index.js +1 -1
  64. package/schematics/ng-update/v5/index.js +1 -1
  65. package/schematics/ng-update/v6/index.js +1 -1
  66. package/esm2022/lib/components/po-breadcrumb/po-breadcrumb-dropdown/po-breadcrumb-dropdown.component.mjs +0 -44
  67. package/esm2022/lib/components/po-breadcrumb/po-breadcrumb-item/po-breadcrumb-item.component.mjs +0 -109
  68. package/lib/components/po-breadcrumb/po-breadcrumb-dropdown/po-breadcrumb-dropdown.component.d.ts +0 -14
  69. package/lib/components/po-breadcrumb/po-breadcrumb-item/po-breadcrumb-item.component.d.ts +0 -16
  70. package/po-ui-ng-components-16.2.0.tgz +0 -0
@@ -304,6 +304,7 @@ export class PoInputBaseComponent {
304
304
  }
305
305
  constructor(cd) {
306
306
  this.cd = cd;
307
+ this.objMask = new PoMask(this.mask, this.maskFormatModel);
307
308
  }
308
309
  callOnChange(value) {
309
310
  this.updateModel(value);
@@ -472,4 +473,4 @@ export class PoInputBaseComponent {
472
473
  type: Input,
473
474
  args: ['p-mask-format-model']
474
475
  }] }); })();
475
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8taW5wdXQtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tZmllbGQvcG8taW5wdXQvcG8taW5wdXQtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFHdkcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hHLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBRW5DOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE1BQU0sT0FBZ0Isb0JBQW9CO0lBaVVwQjtJQWhVcEI7Ozs7Ozs7Ozs7T0FVRztJQUM0RCxTQUFTLEdBQVksS0FBSyxDQUFDO0lBRTFGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0F3Qkc7SUFDYyxJQUFJLENBQThCO0lBRW5ELHVCQUF1QjtJQUNMLEtBQUssQ0FBVTtJQUVqQywrQkFBK0I7SUFDZCxJQUFJLENBQVU7SUFFL0IscUNBQXFDO0lBQ3RCLElBQUksQ0FBUztJQUU1Qjs7Ozs7O09BTUc7SUFDdUIsWUFBWSxHQUFZLEVBQUUsQ0FBQztJQUVyRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDa0IsUUFBUSxDQUFVO0lBRXZDOzs7OztPQUtHO0lBQzRELFNBQVMsR0FBWSxLQUFLLENBQUM7SUFFMUY7Ozs7OztPQU1HO0lBQ2UsSUFBSSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBRS9EOzs7Ozs7T0FNRztJQUNnQixLQUFLLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFFakU7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aUI7WUFlSCxRQUFRO2tCQUE1QixLQUFLO21CQUFDLFlBQVk7WUFRNEMsU0FBUztrQkFBdkUsS0FBSzttQkFBQyxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO1lBUzNDLElBQUk7a0JBQXJCLE1BQU07bUJBQUMsUUFBUTtZQVNHLEtBQUs7a0JBQXZCLE1BQU07bUJBQUMsU0FBUztZQVNHLE1BQU07a0JBQXpCLE1BQU07bUJBQUMsVUFBVTtZQVNRLFdBQVc7a0JBQXBDLE1BQU07bUJBQUMsZ0JBQWdCO1lBNEJRLGNBQWM7a0JBQTdDLEtBQUs7bUJBQUMsbUJBQW1CO1lBaUJFLFdBQVc7a0JBQXRDLEtBQUs7bUJBQUMsZUFBZTtZQWdCRyxXQUFXO2tCQUFuQyxLQUFLO21CQUFDLFlBQVk7WUFTTSxXQUFXO2tCQUFuQyxLQUFLO21CQUFDLFlBQVk7WUFnQk0sV0FBVztrQkFBbkMsS0FBSzttQkFBQyxZQUFZO1lBWU8sWUFBWTtrQkFBckMsS0FBSzttQkFBQyxpQkFBaUI7WUFLRixRQUFRO2tCQUE3QixLQUFLO21CQUFDLFNBQVM7WUFhUSxVQUFVO2tCQUFqQyxLQUFLO21CQUFDLFdBQVc7WUFhUSxTQUFTO2tCQUFsQyxLQUFLO21CQUFDLGFBQWE7WUF1Qk0sU0FBUztrQkFBbEMsS0FBSzttQkFBQyxhQUFhO1lBMkJDLE9BQU87a0JBQTNCLEtBQUs7bUJBQUMsUUFBUTtZQWdCbUIsa0JBQWtCO2tCQUFuRCxLQUFLO21CQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgY29udmVydFRvQm9vbGVhbiB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3V0aWwnO1xuaW1wb3J0IHsgbWF4bGVuZ3BvYWlsZWQsIG1pbmxlbmdwb2FpbGVkLCBwYXR0ZXJuRmFpbGVkLCByZXF1aXJlZEZhaWxlZCB9IGZyb20gJy4vLi4vdmFsaWRhdG9ycyc7XG5pbXBvcnQgeyBQb01hc2sgfSBmcm9tICcuL3BvLW1hc2snO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICpcbiAqIEVzdGUgw6kgdW0gY29tcG9uZW50ZSBiYXNlYWRvIGVtIGlucHV0LCBjb20gdsOhcmlhcyBwcm9wcmllZGFkZXMgZG8gaW5wdXQgbmF0aXZvIGUgb3V0cmFzXG4gKiBwcm9wcmllZGFkZXMgZXh0cmFzIGNvbW86IG3DoXNjYXJhLCBwYXR0ZXJuLCBtZW5zYWdlbSBkZSBlcnJvIGUgZXRjLlxuICogVm9jw6ogZGV2ZSBpbmZvcm1hciBhIHZhcmnDoXZlbCBxdWUgY29udMOpbSBvIHZhbG9yIGNvbW8gWyhuZ01vZGVsKV09XCJ2YXJpYXZlbFwiLCBwYXJhIHF1ZSBvXG4gKiBpbnB1dCByZWNlYmEgbyB2YWxvciBkYSB2YXJpw6F2ZWwgZSBwYXJhIHF1ZSBlbGEgcmVjZWJhIGFzIGFsdGVyYcOnw7VlcyBkbyB2YWxvciAodHdvLXdheS1kYXRhYmluZGluZykuXG4gKiBBIHByb3ByaWVkYWRlIG5hbWUgw6kgb2JyaWdhdMOzcmlhIHBhcmEgcXVlIG8gZm9ybXVsw6FyaW8gZSBvIG1vZGVsIGZ1bmNpb25lbSBjb3JyZXRhbWVudGUuXG4gKlxuICogSW1wb3J0YW50ZTpcbiAqXG4gKiAtIENhc28gbyBpbnB1dCB0ZW5oYSB1bSBbKG5nTW9kZWwpXSBzZW0gbyBhdHJpYnV0byBuYW1lLCBvY29ycmVyw6EgdW0gZXJybyBkZSBhbmd1bGFyLlxuICogRW50w6NvIHZvY8OqIHByZWNpc2EgaW5mb3JtYXIgbyBhdHJpYnV0byBuYW1lIG91IG8gYXRyaWJ1dG8gW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiLlxuICogRXhlbXBsbzogWyhuZ01vZGVsKV09XCJwZXNzb2Eubm9tZVwiIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIi5cbiAqXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFBvSW5wdXRCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciB7XG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEFwbGljYSBmb2NvIG5vIGVsZW1lbnRvIGFvIHNlciBpbmljaWFkby5cbiAgICpcbiAgICogPiBDYXNvIG1haXMgZGUgdW0gZWxlbWVudG8gc2VqYSBjb25maWd1cmFkbyBjb20gZXNzYSBwcm9wcmllZGFkZSwgYXBlbmFzIG8gw7psdGltbyBlbGVtZW50byBkZWNsYXJhZG8gY29tIGVsYSB0ZXLDoSBvIGZvY28uXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCh7IGFsaWFzOiAncC1hdXRvLWZvY3VzJywgdHJhbnNmb3JtOiBjb252ZXJ0VG9Cb29sZWFuIH0pIGF1dG9Gb2N1czogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSBvIMOtY29uZSBxdWUgc2Vyw6EgZXhpYmlkbyBubyBpbsOtY2lvIGRvIGNhbXBvLlxuICAgKlxuICAgKiDDiSBwb3Nzw612ZWwgdXNhciBxdWFscXVlciB1bSBkb3Mgw61jb25lcyBkYSBbQmlibGlvdGVjYSBkZSDDrWNvbmVzXSgvZ3VpZGVzL2ljb25zKS4gY29uZm9ybWUgZXhlbXBsbyBhYmFpeG86XG4gICAqIGBgYFxuICAgKiA8cG8taW5wdXQgcC1pY29uPVwicG8taWNvbi11c2VyXCIgcC1sYWJlbD1cIlBPIGlucHV0XCI+PC9wby1pbnB1dD5cbiAgICogYGBgXG4gICAqIFRhbWLDqW0gw6kgcG9zc8OtdmVsIHV0aWxpemFyIG91dHJhcyBmb250ZXMgZGUgw61jb25lcywgcG9yIGV4ZW1wbG8gYSBiaWJsaW90ZWNhICpGb250IEF3ZXNvbWUqLCBkYSBzZWd1aW50ZSBmb3JtYTpcbiAgICogYGBgXG4gICAqIDxwby1pbnB1dCBwLWljb249XCJmYSBmYS1wb2RjYXN0XCIgcC1sYWJlbD1cIlBPIGlucHV0XCI+PC9wby1pbnB1dD5cbiAgICogYGBgXG4gICAqIE91dHJhIG9ww6fDo28gc2VyaWEgYSBjdXN0b21pemHDp8OjbyBkbyDDrWNvbmUgYXRyYXbDqXMgZG8gYFRlbXBsYXRlUmVmYCwgY29uZm9ybWUgZXhlbXBsbyBhYmFpeG86XG4gICAqIGBgYFxuICAgKiA8cG8taW5wdXQgW3AtaWNvbl09XCJ0ZW1wbGF0ZVwiIHAtbGFiZWw9XCJpbnB1dCB0ZW1wbGF0ZSBpb25pY1wiPjwvcG8taW5wdXQ+XG4gICAqXG4gICAqIDxuZy10ZW1wbGF0ZSAjdGVtcGxhdGU+XG4gICAqICA8aW9uLWljb24gc3R5bGU9XCJmb250LXNpemU6IGluaGVyaXRcIiBuYW1lPVwiaGVhcnRcIj48L2lvbi1pY29uPlxuICAgKiA8L25nLXRlbXBsYXRlPlxuICAgKiBgYGBcbiAgICogPiBQYXJhIG8gw61jb25lIGVucXVhZHJhciBjb3JyZXRhbWVudGUsIGRldmUtc2UgdXRpbGl6YXIgYGZvbnQtc2l6ZTogaW5oZXJpdGAgY2FzbyBvIMOtY29uZSB1dGlsaXphZG8gbsOjbyBhcGxpcXVlLW8uXG4gICAqL1xuICBASW5wdXQoJ3AtaWNvbicpIGljb24/OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjx2b2lkPjtcblxuICAvKiogUsOzdHVsbyBkbyBjYW1wby4gKi9cbiAgQElucHV0KCdwLWxhYmVsJykgbGFiZWw/OiBzdHJpbmc7XG5cbiAgLyoqIFRleHRvIGRlIGFwb2lvIGRvIGNhbXBvLiAqL1xuICBASW5wdXQoJ3AtaGVscCcpIGhlbHA/OiBzdHJpbmc7XG5cbiAgLyoqIE5vbWUgZSBpZGVudGlmaWNhZG9yIGRvIGNhbXBvLiAqL1xuICBASW5wdXQoJ25hbWUnKSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBNZW5zYWdlbSBxdWUgc2Vyw6EgYXByZXNlbnRhZGEgcXVhbmRvIG8gYHBhdHRlcm5gIG91IGEgbcOhc2NhcmEgbsOjbyBmb3Igc2F0aXNmZWl0YS5cbiAgICpcbiAgICogPiBFc3RhIG1lbnNhZ2VtIG7Do28gw6kgYXByZXNlbnRhZGEgcXVhbmRvIG8gY2FtcG8gZXN0aXZlciB2YXppbywgbWVzbW8gcXVlIGVsZSBzZWphIHJlcXVlcmlkby5cbiAgICovXG4gIEBJbnB1dCgncC1lcnJvci1wYXR0ZXJuJykgZXJyb3JQYXR0ZXJuPzogc3RyaW5nID0gJyc7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIHNlIGEgaW5kaWNhw6fDo28gZGUgY2FtcG8gb3BjaW9uYWwgc2Vyw6EgZXhpYmlkYS5cbiAgICpcbiAgICogPiBOw6NvIHNlcsOhIGV4aWJpZGEgYSBpbmRpY2HDp8OjbyBzZTpcbiAgICogLSBPIGNhbXBvIGNvbnRlciBgcC1yZXF1aXJlZGA7XG4gICAqIC0gTsOjbyBwb3NzdWlyIGBwLWhlbHBgIGUvb3UgYHAtbGFiZWxgLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3Atb3B0aW9uYWwnKSBvcHRpb25hbDogYm9vbGVhbjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIENvbnZlcnRlIG8gY29udGXDumRvIGRvIGNhbXBvIGVtIG1hacO6c3VsbyBhdXRvbWF0aWNhbWVudGUuXG4gICAqXG4gICAqL1xuICBASW5wdXQoeyBhbGlhczogJ3AtdXBwZXItY2FzZScsIHRyYW5zZm9ybTogY29udmVydFRvQm9vbGVhbiB9KSB1cHBlckNhc2U6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBFdmVudG8gZGlzcGFyYWRvIGFvIHNhaXIgZG8gY2FtcG8uXG4gICAqL1xuICBAT3V0cHV0KCdwLWJsdXInKSBibHVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBFdmVudG8gZGlzcGFyYWRvIGFvIGVudHJhciBkbyBjYW1wby5cbiAgICovXG4gIEBPdXRwdXQoJ3AtZW50ZXInKSBlbnRlcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRXZlbnRvIGRpc3BhcmFkbyBhbyBhbHRlcmFyIHZhbG9yIGUgZGVpeGFyIG8gY2FtcG8uXG4gICAqL1xuICBAT3V0cHV0KCdwLWNoYW5nZScpIGNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRXZlbnRvIGRpc3BhcmFkbyBhbyBhbHRlcmFyIHZhbG9yIGRvIG1vZGVsLlxuICAgKi9cbiAgQE91dHB1dCgncC1jaGFuZ2UtbW9kZWwnKSBjaGFuZ2VNb2RlbDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgdHlwZTogc3RyaW5nO1xuXG4gIG9uQ2hhbmdlUHJvcGFnYXRlOiBhbnkgPSBudWxsO1xuICBvYmpNYXNrOiBhbnk7XG4gIG1vZGVsTGFzdFVwZGF0ZTogYW55O1xuICBwcm90ZWN0ZWQgb25Ub3VjaGVkOiBhbnkgPSBudWxsO1xuXG4gIHByb3RlY3RlZCBwYXNzZWRXcml0ZVZhbHVlOiBib29sZWFuID0gZmFsc2U7XG4gIHByb3RlY3RlZCB2YWxpZGF0b3JDaGFuZ2U6IGFueTtcblxuICBwcml2YXRlIF9tYXhsZW5ndGg/OiBudW1iZXI7XG4gIHByaXZhdGUgX21pbmxlbmd0aD86IG51bWJlcjtcbiAgcHJpdmF0ZSBfbm9BdXRvY29tcGxldGU/OiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX3BsYWNlaG9sZGVyPzogc3RyaW5nID0gJyc7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIGEgcHJvcHJpZWRhZGUgbmF0aXZhIGBhdXRvY29tcGxldGVgIGRvIGNhbXBvIGNvbW8gYG9mZmAuXG4gICAqXG4gICAqID4gTm8gY29tcG9uZW50ZSBgcG8tcGFzc3dvcmRgIHNlcsOhIGRlZmluaWRvIGNvbW8gYG5ldy1wYXNzd29yZGAuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCgncC1uby1hdXRvY29tcGxldGUnKSBzZXQgbm9BdXRvY29tcGxldGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9ub0F1dG9jb21wbGV0ZSA9IGNvbnZlcnRUb0Jvb2xlYW4odmFsdWUpO1xuICB9XG5cbiAgZ2V0IG5vQXV0b2NvbXBsZXRlKCkge1xuICAgIHJldHVybiB0aGlzLl9ub0F1dG9jb21wbGV0ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIE1lbnNhZ2VtIHF1ZSBhcGFyZWNlcsOhIGVucXVhbnRvIG8gY2FtcG8gbsOjbyBlc3RpdmVyIHByZWVuY2hpZG8uXG4gICAqXG4gICAqIEBkZWZhdWx0ICcnXG4gICAqL1xuICBASW5wdXQoJ3AtcGxhY2Vob2xkZXInKSBzZXQgcGxhY2Vob2xkZXIodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3BsYWNlaG9sZGVyID0gdmFsdWUgfHwgJyc7XG4gIH1cbiAgZ2V0IHBsYWNlaG9sZGVyKCkge1xuICAgIHJldHVybiB0aGlzLl9wbGFjZWhvbGRlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogU2UgdmVyZGFkZWlybywgZGVzYWJpbGl0YSBvIGNhbXBvLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZ1xuICBkaXNhYmxlZD86IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCdwLWRpc2FibGVkJykgc2V0IHNldERpc2FibGVkKGRpc2FibGVkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmRpc2FibGVkID0gZGlzYWJsZWQgPT09ICcnID8gdHJ1ZSA6IGNvbnZlcnRUb0Jvb2xlYW4oZGlzYWJsZWQpO1xuXG4gICAgdGhpcy52YWxpZGF0ZU1vZGVsKCk7XG4gIH1cblxuICAvKiogSW5kaWNhIHF1ZSBvIGNhbXBvIHNlcsOhIHNvbWVudGUgbGVpdHVyYS4gKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcbiAgcmVhZG9ubHk/OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgncC1yZWFkb25seScpIHNldCBzZXRSZWFkb25seShyZWFkb25seTogc3RyaW5nKSB7XG4gICAgdGhpcy5yZWFkb25seSA9IHJlYWRvbmx5ID09PSAnJyA/IHRydWUgOiBjb252ZXJ0VG9Cb29sZWFuKHJlYWRvbmx5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSBxdWUgbyBjYW1wbyBzZXLDoSBvYnJpZ2F0w7NyaW8uXG4gICAqID4gRXN0YSBwcm9wcmllZGFkZSDDqSBkZXNjb25zaWRlcmFkYSBxdWFuZG8gbyBpbnB1dCBlc3TDoSBkZXNhYmlsaXRhZG8gYChwLWRpc2FibGVkKWAuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nXG4gIHJlcXVpcmVkPzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoJ3AtcmVxdWlyZWQnKSBzZXQgc2V0UmVxdWlyZWQocmVxdWlyZWQ6IHN0cmluZykge1xuICAgIHRoaXMucmVxdWlyZWQgPSByZXF1aXJlZCA9PT0gJycgPyB0cnVlIDogY29udmVydFRvQm9vbGVhbihyZXF1aXJlZCk7XG5cbiAgICB0aGlzLnZhbGlkYXRlTW9kZWwoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgc2UgYSBpbmRpY2HDp8OjbyBkZSBjYW1wbyBvYnJpZ2F0w7NyaW8gc2Vyw6EgZXhpYmlkYS5cbiAgICpcbiAgICogPiBOw6NvIHNlcsOhIGV4aWJpZGEgYSBpbmRpY2HDp8OjbyBzZTpcbiAgICogLSBOw6NvIHBvc3N1aXIgYHAtaGVscGAgZS9vdSBgcC1sYWJlbGAuXG4gICAqL1xuICBASW5wdXQoJ3Atc2hvdy1yZXF1aXJlZCcpIHNob3dSZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBTZSB2ZXJkYWRlaXJvLCBvIGNhbXBvIHJlY2ViZXLDoSB1bSBib3TDo28gcGFyYSBzZXIgbGltcG8uICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nXG4gIGNsZWFuPzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoJ3AtY2xlYW4nKSBzZXQgc2V0Q2xlYW4oY2xlYW46IHN0cmluZykge1xuICAgIHRoaXMuY2xlYW4gPSBjbGVhbiA9PT0gJycgPyB0cnVlIDogY29udmVydFRvQm9vbGVhbihjbGVhbik7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEV4cHJlc3PDo28gcmVndWxhciBwYXJhIHZhbGlkYXIgbyBjYW1wby5cbiAgICogUXVhbmRvIG8gY2FtcG8gcG9zc3VpciB1bWEgbcOhc2NhcmEgYChwLW1hc2spYCBzZXLDoSBhdXRvbWF0aWNhbWVudGUgdmFsaWRhZG8gcG9yIGVsYSwgcG9yw6ltXG4gICAqIMOpIHBvc3PDrXZlbCBkZWZpbmlyIHVtIHAtcGF0dGVybiBwYXJhIHN1YnN0aXR1aXIgYSB2YWxpZGHDp8OjbyBkYSBtw6FzY2FyYS5cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nXG4gIHBhdHRlcm4/OiBzdHJpbmc7XG4gIEBJbnB1dCgncC1wYXR0ZXJuJykgc2V0IHNldFBhdHRlcm4ocGF0dGVybjogc3RyaW5nKSB7XG4gICAgdGhpcy5wYXR0ZXJuID0gcGF0dGVybjtcblxuICAgIHRoaXMudmFsaWRhdGVNb2RlbCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogSW5kaWNhIGEgcXVhbnRpZGFkZSBtw6F4aW1hIGRlIGNhcmFjdGVyZXMgcXVlIG8gY2FtcG8gYWNlaXRhLlxuICAgKi9cbiAgQElucHV0KCdwLW1heGxlbmd0aCcpIHNldCBtYXhsZW5ndGgodmFsdWU6IG51bWJlcikge1xuICAgIGlmICghaXNOYU4ocGFyc2VJbnQoPGFueT52YWx1ZSwgMTApKSkge1xuICAgICAgdGhpcy5fbWF4bGVuZ3RoID0gcGFyc2VJbnQoPGFueT52YWx1ZSwgMTApO1xuXG4gICAgICB0aGlzLnZhbGlkYXRlTW9kZWwoKTtcbiAgICB9IGVsc2UgaWYgKCF2YWx1ZSkge1xuICAgICAgdGhpcy5fbWF4bGVuZ3RoID0gdW5kZWZpbmVkO1xuXG4gICAgICB0aGlzLnZhbGlkYXRlTW9kZWwoKTtcbiAgICB9XG4gIH1cblxuICBnZXQgbWF4bGVuZ3RoKCkge1xuICAgIHJldHVybiB0aGlzLl9tYXhsZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBJbmRpY2EgYSBxdWFudGlkYWRlIG3DrW5pbWEgZGUgY2FyYWN0ZXJlcyBxdWUgbyBjYW1wbyBhY2VpdGEuXG4gICAqL1xuICBASW5wdXQoJ3AtbWlubGVuZ3RoJykgc2V0IG1pbmxlbmd0aCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKCFpc05hTihwYXJzZUludCg8YW55PnZhbHVlLCAxMCkpKSB7XG4gICAgICB0aGlzLl9taW5sZW5ndGggPSBwYXJzZUludCg8YW55PnZhbHVlLCAxMCk7XG5cbiAgICAgIHRoaXMudmFsaWRhdGVNb2RlbCgpO1xuICAgIH0gZWxzZSBpZiAoIXZhbHVlKSB7XG4gICAgICB0aGlzLl9taW5sZW5ndGggPSB1bmRlZmluZWQ7XG5cbiAgICAgIHRoaXMudmFsaWRhdGVNb2RlbCgpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBtaW5sZW5ndGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuX21pbmxlbmd0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogSW5kaWNhIHVtYSBtw6FzY2FyYSBwYXJhIG8gY2FtcG8uIEV4ZW1wbG9zOiAoKzk5KSAoOTkpIDk5OTk5Py05OTk5LCA5OTk5OS05OTksIDk5OS45OTkuOTk5LTk5LlxuICAgKiBBIG3DoXNjYXJhIGdlcmEgdW1hIHZhbGlkYcOnw6NvIGF1dG9tw6F0aWNhIGRvIGNhbXBvLCBwb2RlbmRvIGVzdGEgc2VyIHN1YnN0aXR1w61kYSBwb3IgdW0gUkVHRVggZXNwZWPDrWZpY29cbiAgICogYXRyYXbDqXMgZGEgcHJvcHJpZWRhZGUgcC1wYXR0ZXJuLlxuICAgKiBPIGNhbXBvIHNlcsOhIHNpbmFsaXphZG8gZSBvIGZvcm11bMOhcmlvIGZpY2Fyw6EgaW52w6FsaWRvIHF1YW5kbyBvIHZhbG9yIGluZm9ybWFkbyBlc3RpdmVyIGZvcmEgZG8gcGFkcsOjbyBkZWZpbmlkbyxcbiAgICogbWVzbW8gcXVhbmRvIGRlc2FiaWxpdGFkby5cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nXG4gIG1hc2s/OiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCdwLW1hc2snKSBzZXQgc2V0TWFzayhtYXNrOiBzdHJpbmcpIHtcbiAgICB0aGlzLm1hc2sgPSBtYXNrO1xuXG4gICAgLy8gQXR1YWxpemEgTcOhc2NhcmEgZG8gQ2FtcG9cbiAgICB0aGlzLm9iak1hc2sgPSBuZXcgUG9NYXNrKHRoaXMubWFzaywgdGhpcy5tYXNrRm9ybWF0TW9kZWwpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBJbmRpY2Egc2UgbyBgbW9kZWxgIHJlY2ViZXLDoSBvIHZhbG9yIGZvcm1hdGFkbyBwZWxhIG3DoXNjYXJhIG91IGFwZW5hcyBvIHZhbG9yIHB1cm8gKHNlbSBmb3JtYXRhw6fDo28pLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZ1xuICBtYXNrRm9ybWF0TW9kZWw/OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgncC1tYXNrLWZvcm1hdC1tb2RlbCcpIHNldCBzZXRNYXNrRm9ybWF0TW9kZWwobWFza0Zvcm1hdE1vZGVsOiBzdHJpbmcpIHtcbiAgICB0aGlzLm1hc2tGb3JtYXRNb2RlbCA9IG1hc2tGb3JtYXRNb2RlbCA9PT0gJycgPyB0cnVlIDogY29udmVydFRvQm9vbGVhbihtYXNrRm9ybWF0TW9kZWwpO1xuXG4gICAgaWYgKHRoaXMub2JqTWFzayBpbnN0YW5jZW9mIFBvTWFzaykge1xuICAgICAgdGhpcy5vYmpNYXNrLmZvcm1hdE1vZGVsID0gdGhpcy5tYXNrRm9ybWF0TW9kZWw7XG5cbiAgICAgIHRoaXMudmFsaWRhdGVNb2RlbCgpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2Q/OiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBjYWxsT25DaGFuZ2UodmFsdWU6IGFueSkge1xuICAgIHRoaXMudXBkYXRlTW9kZWwodmFsdWUpO1xuXG4gICAgdGhpcy5jb250cm9sQ2hhbmdlTW9kZWxFbWl0dGVyKHZhbHVlKTtcbiAgfVxuXG4gIGNhbGxVcGRhdGVNb2RlbFdpdGhUaW1lb3V0KHZhbHVlKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnVwZGF0ZU1vZGVsKHZhbHVlKSk7XG4gIH1cblxuICBjb250cm9sQ2hhbmdlTW9kZWxFbWl0dGVyKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5tb2RlbExhc3RVcGRhdGUgIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLmNoYW5nZU1vZGVsLmVtaXQodmFsdWUpO1xuICAgICAgdGhpcy5tb2RlbExhc3RVcGRhdGUgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICAvLyBGdW7Dp8OjbyBpbXBsZW1lbnRhZGEgZG8gQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgLy8gVXNhZGEgcGFyYSBpbnRlcmNlcHRhciBvcyBlc3RhZG9zIGRlIGhhYmlsaXRhZG8gdmlhIGZvcm1zIGFwaVxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLmNkPy5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8vIEZ1bsOnw6NvIGltcGxlbWVudGFkYSBkbyBDb250cm9sVmFsdWVBY2Nlc3NvclxuICAvLyBVc2FkYSBwYXJhIGludGVyY2VwdGFyIGFzIG11ZGFuw6dhcyBlIG7Do28gYXR1YWxpemFyIGF1dG9tYXRpY2FtZW50ZSBvIE1vZGVsXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZnVuYzogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZVByb3BhZ2F0ZSA9IGZ1bmM7XG4gIH1cblxuICAvLyBGdW7Dp8OjbyBpbXBsZW1lbnRhZGEgZG8gQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgLy8gVXNhZGEgcGFyYSBpbnRlcmNlcHRhciBhcyBtdWRhbsOnYXMgZSBuw6NvIGF0dWFsaXphciBhdXRvbWF0aWNhbWVudGUgbyBNb2RlbFxuICByZWdpc3Rlck9uVG91Y2hlZChmdW5jOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZ1bmM7XG4gIH1cblxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy52YWxpZGF0b3JDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHVwZGF0ZU1vZGVsKHZhbHVlOiBhbnkpIHtcbiAgICAvLyBRdWFuZG8gbyBpbnB1dCBuw6NvIHBvc3N1aSB1bSBmb3JtdWzDoXJpbywgZW50w6NvIGVzdGEgZnVuw6fDo28gbsOjbyDDqSByZWdpc3RyYWRhXG4gICAgaWYgKHRoaXMub25DaGFuZ2VQcm9wYWdhdGUpIHtcbiAgICAgIHRoaXMub25DaGFuZ2VQcm9wYWdhdGUodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlKGM6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIGlmIChyZXF1aXJlZEZhaWxlZCh0aGlzLnJlcXVpcmVkLCB0aGlzLmRpc2FibGVkLCB0aGlzLmdldFNjcmVlblZhbHVlKCkpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICByZXF1aXJlZDoge1xuICAgICAgICAgIHZhbGlkOiBmYWxzZVxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChtYXhsZW5ncG9haWxlZCh0aGlzLm1heGxlbmd0aCwgdGhpcy5nZXRTY3JlZW5WYWx1ZSgpKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbWF4bGVuZ3RoOiB7XG4gICAgICAgICAgdmFsaWQ6IGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKG1pbmxlbmdwb2FpbGVkKHRoaXMubWlubGVuZ3RoLCB0aGlzLmdldFNjcmVlblZhbHVlKCkpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBtaW5sZW5ndGg6IHtcbiAgICAgICAgICB2YWxpZDogZmFsc2VcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAocGF0dGVybkZhaWxlZCh0aGlzLnBhdHRlcm4sIGMudmFsdWUpKSB7XG4gICAgICB0aGlzLnZhbGlkYXRlUGF0dGVybk9uV3JpdGVWYWx1ZShjLnZhbHVlKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhdHRlcm46IHtcbiAgICAgICAgICB2YWxpZDogZmFsc2VcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5leHRyYVZhbGlkYXRpb24oYyk7XG4gIH1cblxuICAvLyBGdW7Dp8OjbyBpbXBsZW1lbnRhZGEgZG8gQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy53cml0ZVZhbHVlTW9kZWwodmFsdWUpO1xuICAgIHRoaXMuY2Q/Lm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHZhbGlkYXRlTW9kZWwoKSB7XG4gICAgaWYgKHRoaXMudmFsaWRhdG9yQ2hhbmdlKSB7XG4gICAgICB0aGlzLnZhbGlkYXRvckNoYW5nZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHV0aWxpemFkbyBwYXJhIHZhbGlkYXIgbyBwYXR0ZXJuIG5hIGluaWNpYWxpemFjYW8sIGZhemVuZG8gZGVzc2EgZm9ybWEgbyBjYW1wbyBmaWNhIHN1am8gKGRpcnR5KS5cbiAgcHJpdmF0ZSB2YWxpZGF0ZVBhdHRlcm5PbldyaXRlVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIGlmICh2YWx1ZSAmJiB0aGlzLnBhc3NlZFdyaXRlVmFsdWUpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZU1vZGVsKHZhbHVlKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnBhc3NlZFdyaXRlVmFsdWUgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRnVuw6fDo28gcXVlIGF0cmlidWkgZm9jbyBhbyBjb21wb25lbnRlLlxuICAgKlxuICAgKiBQYXJhIHV0aWxpesOhLWxhIMOpIG5lY2Vzc8OhcmlvIHRlciBhIGluc3TDom5jaWEgZG8gY29tcG9uZW50ZSBubyBET00sIHBvZGVuZG8gc2VyIHV0aWxpemFkbyBvIFZpZXdDaGlsZCBkYSBzZWd1aW50ZSBmb3JtYTpcbiAgICpcbiAgICogYGBgXG4gICAqIGltcG9ydCB7IFBvTm9tZURvQ29tcG9uZW50ZUNvbXBvbmVudCB9IGZyb20gJ0Bwby11aS9uZy1jb21wb25lbnRzJztcbiAgICpcbiAgICogLi4uXG4gICAqXG4gICAqIEBWaWV3Q2hpbGQoUG9Ob21lRG9Db21wb25lbnRlQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBub21lRG9Db21wb25lbnRlOiBQb05vbWVEb0NvbXBvbmVudGVDb21wb25lbnQ7XG4gICAqXG4gICAqIGZvY3VzQ29tcG9uZW50KCkge1xuICAgKiAgIHRoaXMubm9tZURvQ29tcG9uZW50ZS5mb2N1cygpO1xuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgYWJzdHJhY3QgZm9jdXMoKTogdm9pZDtcblxuICAvLyBNw6l0b2RvIHF1ZSByZWNlYmVyw6EgbyB2YWxvciBkbyBtb2RlbFxuICBhYnN0cmFjdCB3cml0ZVZhbHVlTW9kZWwodmFsdWU6IGFueSk6IHZvaWQ7XG5cbiAgLy8gVmFsaWRhw6fDtWVzIGRvIGNhbXBvXG4gIGFic3RyYWN0IGV4dHJhVmFsaWRhdGlvbihjOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuXG4gIC8vIERldmUgcmV0b3JuYXIgbyB2YWxvciBkbyBjYW1wb1xuICBhYnN0cmFjdCBnZXRTY3JlZW5WYWx1ZSgpOiBzdHJpbmc7XG59XG4iXX0=
476
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8taW5wdXQtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tZmllbGQvcG8taW5wdXQvcG8taW5wdXQtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFHdkcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hHLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBRW5DOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE1BQU0sT0FBZ0Isb0JBQW9CO0lBaVVwQjtJQWhVcEI7Ozs7Ozs7Ozs7T0FVRztJQUM0RCxTQUFTLEdBQVksS0FBSyxDQUFDO0lBRTFGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0F3Qkc7SUFDYyxJQUFJLENBQThCO0lBRW5ELHVCQUF1QjtJQUNMLEtBQUssQ0FBVTtJQUVqQywrQkFBK0I7SUFDZCxJQUFJLENBQVU7SUFFL0IscUNBQXFDO0lBQ3RCLElBQUksQ0FBUztJQUU1Qjs7Ozs7O09BTUc7SUFDdUIsWUFBWSxHQUFZLEVBQUUsQ0FBQztJQUVyRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDa0IsUUFBUSxDQUFVO0lBRXZDOzs7OztPQUtHO0lBQzRELFNBQVMsR0FBWSxLQUFLLENBQUM7SUFFMUY7Ozs7OztPQU1HO0lBQ2UsSUFBSSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBRS9EOzs7Ozs7T0FNRztJQUNnQixLQUFLLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFFakU7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QUFwQixLQUFLO21CQUFDLFFBQVE7WUFHQSxJQUFJO2tCQUFsQixLQUFLO21CQUFDLE1BQU07WUFTYSxZQUFZO2tCQUFyQyxLQUFLO21CQUFDLGlCQUFpQjtZQWVILFFBQVE7a0JBQTVCLEtBQUs7bUJBQUMsWUFBWTtZQVE0QyxTQUFTO2tCQUF2RSxLQUFLO21CQUFDLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7WUFTM0MsSUFBSTtrQkFBckIsTUFBTTttQkFBQyxRQUFRO1lBU0csS0FBSztrQkFBdkIsTUFBTTttQkFBQyxTQUFTO1lBU0csTUFBTTtrQkFBekIsTUFBTTttQkFBQyxVQUFVO1lBU1EsV0FBVztrQkFBcEMsTUFBTTttQkFBQyxnQkFBZ0I7WUE0QlEsY0FBYztrQkFBN0MsS0FBSzttQkFBQyxtQkFBbUI7WUFpQkUsV0FBVztrQkFBdEMsS0FBSzttQkFBQyxlQUFlO1lBZ0JHLFdBQVc7a0JBQW5DLEtBQUs7bUJBQUMsWUFBWTtZQVNNLFdBQVc7a0JBQW5DLEtBQUs7bUJBQUMsWUFBWTtZQWdCTSxXQUFXO2tCQUFuQyxLQUFLO21CQUFDLFlBQVk7WUFZTyxZQUFZO2tCQUFyQyxLQUFLO21CQUFDLGlCQUFpQjtZQUtGLFFBQVE7a0JBQTdCLEtBQUs7bUJBQUMsU0FBUztZQWFRLFVBQVU7a0JBQWpDLEtBQUs7bUJBQUMsV0FBVztZQWFRLFNBQVM7a0JBQWxDLEtBQUs7bUJBQUMsYUFBYTtZQXVCTSxTQUFTO2tCQUFsQyxLQUFLO21CQUFDLGFBQWE7WUEyQkMsT0FBTztrQkFBM0IsS0FBSzttQkFBQyxRQUFRO1lBZ0JtQixrQkFBa0I7a0JBQW5ELEtBQUs7bUJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBjb252ZXJ0VG9Cb29sZWFuIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvdXRpbCc7XG5pbXBvcnQgeyBtYXhsZW5ncG9haWxlZCwgbWlubGVuZ3BvYWlsZWQsIHBhdHRlcm5GYWlsZWQsIHJlcXVpcmVkRmFpbGVkIH0gZnJvbSAnLi8uLi92YWxpZGF0b3JzJztcbmltcG9ydCB7IFBvTWFzayB9IGZyb20gJy4vcG8tbWFzayc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogRXN0ZSDDqSB1bSBjb21wb25lbnRlIGJhc2VhZG8gZW0gaW5wdXQsIGNvbSB2w6FyaWFzIHByb3ByaWVkYWRlcyBkbyBpbnB1dCBuYXRpdm8gZSBvdXRyYXNcbiAqIHByb3ByaWVkYWRlcyBleHRyYXMgY29tbzogbcOhc2NhcmEsIHBhdHRlcm4sIG1lbnNhZ2VtIGRlIGVycm8gZSBldGMuXG4gKiBWb2PDqiBkZXZlIGluZm9ybWFyIGEgdmFyacOhdmVsIHF1ZSBjb250w6ltIG8gdmFsb3IgY29tbyBbKG5nTW9kZWwpXT1cInZhcmlhdmVsXCIsIHBhcmEgcXVlIG9cbiAqIGlucHV0IHJlY2ViYSBvIHZhbG9yIGRhIHZhcmnDoXZlbCBlIHBhcmEgcXVlIGVsYSByZWNlYmEgYXMgYWx0ZXJhw6fDtWVzIGRvIHZhbG9yICh0d28td2F5LWRhdGFiaW5kaW5nKS5cbiAqIEEgcHJvcHJpZWRhZGUgbmFtZSDDqSBvYnJpZ2F0w7NyaWEgcGFyYSBxdWUgbyBmb3JtdWzDoXJpbyBlIG8gbW9kZWwgZnVuY2lvbmVtIGNvcnJldGFtZW50ZS5cbiAqXG4gKiBJbXBvcnRhbnRlOlxuICpcbiAqIC0gQ2FzbyBvIGlucHV0IHRlbmhhIHVtIFsobmdNb2RlbCldIHNlbSBvIGF0cmlidXRvIG5hbWUsIG9jb3JyZXLDoSB1bSBlcnJvIGRlIGFuZ3VsYXIuXG4gKiBFbnTDo28gdm9jw6ogcHJlY2lzYSBpbmZvcm1hciBvIGF0cmlidXRvIG5hbWUgb3UgbyBhdHJpYnV0byBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCIuXG4gKiBFeGVtcGxvOiBbKG5nTW9kZWwpXT1cInBlc3NvYS5ub21lXCIgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiLlxuICpcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUG9JbnB1dEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogQXBsaWNhIGZvY28gbm8gZWxlbWVudG8gYW8gc2VyIGluaWNpYWRvLlxuICAgKlxuICAgKiA+IENhc28gbWFpcyBkZSB1bSBlbGVtZW50byBzZWphIGNvbmZpZ3VyYWRvIGNvbSBlc3NhIHByb3ByaWVkYWRlLCBhcGVuYXMgbyDDumx0aW1vIGVsZW1lbnRvIGRlY2xhcmFkbyBjb20gZWxhIHRlcsOhIG8gZm9jby5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KHsgYWxpYXM6ICdwLWF1dG8tZm9jdXMnLCB0cmFuc2Zvcm06IGNvbnZlcnRUb0Jvb2xlYW4gfSkgYXV0b0ZvY3VzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIG8gw61jb25lIHF1ZSBzZXLDoSBleGliaWRvIG5vIGluw61jaW8gZG8gY2FtcG8uXG4gICAqXG4gICAqIMOJIHBvc3PDrXZlbCB1c2FyIHF1YWxxdWVyIHVtIGRvcyDDrWNvbmVzIGRhIFtCaWJsaW90ZWNhIGRlIMOtY29uZXNdKC9ndWlkZXMvaWNvbnMpLiBjb25mb3JtZSBleGVtcGxvIGFiYWl4bzpcbiAgICogYGBgXG4gICAqIDxwby1pbnB1dCBwLWljb249XCJwby1pY29uLXVzZXJcIiBwLWxhYmVsPVwiUE8gaW5wdXRcIj48L3BvLWlucHV0PlxuICAgKiBgYGBcbiAgICogVGFtYsOpbSDDqSBwb3Nzw612ZWwgdXRpbGl6YXIgb3V0cmFzIGZvbnRlcyBkZSDDrWNvbmVzLCBwb3IgZXhlbXBsbyBhIGJpYmxpb3RlY2EgKkZvbnQgQXdlc29tZSosIGRhIHNlZ3VpbnRlIGZvcm1hOlxuICAgKiBgYGBcbiAgICogPHBvLWlucHV0IHAtaWNvbj1cImZhIGZhLXBvZGNhc3RcIiBwLWxhYmVsPVwiUE8gaW5wdXRcIj48L3BvLWlucHV0PlxuICAgKiBgYGBcbiAgICogT3V0cmEgb3DDp8OjbyBzZXJpYSBhIGN1c3RvbWl6YcOnw6NvIGRvIMOtY29uZSBhdHJhdsOpcyBkbyBgVGVtcGxhdGVSZWZgLCBjb25mb3JtZSBleGVtcGxvIGFiYWl4bzpcbiAgICogYGBgXG4gICAqIDxwby1pbnB1dCBbcC1pY29uXT1cInRlbXBsYXRlXCIgcC1sYWJlbD1cImlucHV0IHRlbXBsYXRlIGlvbmljXCI+PC9wby1pbnB1dD5cbiAgICpcbiAgICogPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZT5cbiAgICogIDxpb24taWNvbiBzdHlsZT1cImZvbnQtc2l6ZTogaW5oZXJpdFwiIG5hbWU9XCJoZWFydFwiPjwvaW9uLWljb24+XG4gICAqIDwvbmctdGVtcGxhdGU+XG4gICAqIGBgYFxuICAgKiA+IFBhcmEgbyDDrWNvbmUgZW5xdWFkcmFyIGNvcnJldGFtZW50ZSwgZGV2ZS1zZSB1dGlsaXphciBgZm9udC1zaXplOiBpbmhlcml0YCBjYXNvIG8gw61jb25lIHV0aWxpemFkbyBuw6NvIGFwbGlxdWUtby5cbiAgICovXG4gIEBJbnB1dCgncC1pY29uJykgaWNvbj86IHN0cmluZyB8IFRlbXBsYXRlUmVmPHZvaWQ+O1xuXG4gIC8qKiBSw7N0dWxvIGRvIGNhbXBvLiAqL1xuICBASW5wdXQoJ3AtbGFiZWwnKSBsYWJlbD86IHN0cmluZztcblxuICAvKiogVGV4dG8gZGUgYXBvaW8gZG8gY2FtcG8uICovXG4gIEBJbnB1dCgncC1oZWxwJykgaGVscD86IHN0cmluZztcblxuICAvKiogTm9tZSBlIGlkZW50aWZpY2Fkb3IgZG8gY2FtcG8uICovXG4gIEBJbnB1dCgnbmFtZScpIG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIE1lbnNhZ2VtIHF1ZSBzZXLDoSBhcHJlc2VudGFkYSBxdWFuZG8gbyBgcGF0dGVybmAgb3UgYSBtw6FzY2FyYSBuw6NvIGZvciBzYXRpc2ZlaXRhLlxuICAgKlxuICAgKiA+IEVzdGEgbWVuc2FnZW0gbsOjbyDDqSBhcHJlc2VudGFkYSBxdWFuZG8gbyBjYW1wbyBlc3RpdmVyIHZhemlvLCBtZXNtbyBxdWUgZWxlIHNlamEgcmVxdWVyaWRvLlxuICAgKi9cbiAgQElucHV0KCdwLWVycm9yLXBhdHRlcm4nKSBlcnJvclBhdHRlcm4/OiBzdHJpbmcgPSAnJztcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZWZpbmUgc2UgYSBpbmRpY2HDp8OjbyBkZSBjYW1wbyBvcGNpb25hbCBzZXLDoSBleGliaWRhLlxuICAgKlxuICAgKiA+IE7Do28gc2Vyw6EgZXhpYmlkYSBhIGluZGljYcOnw6NvIHNlOlxuICAgKiAtIE8gY2FtcG8gY29udGVyIGBwLXJlcXVpcmVkYDtcbiAgICogLSBOw6NvIHBvc3N1aXIgYHAtaGVscGAgZS9vdSBgcC1sYWJlbGAuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCgncC1vcHRpb25hbCcpIG9wdGlvbmFsOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogQ29udmVydGUgbyBjb250ZcO6ZG8gZG8gY2FtcG8gZW0gbWFpw7pzdWxvIGF1dG9tYXRpY2FtZW50ZS5cbiAgICpcbiAgICovXG4gIEBJbnB1dCh7IGFsaWFzOiAncC11cHBlci1jYXNlJywgdHJhbnNmb3JtOiBjb252ZXJ0VG9Cb29sZWFuIH0pIHVwcGVyQ2FzZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEV2ZW50byBkaXNwYXJhZG8gYW8gc2FpciBkbyBjYW1wby5cbiAgICovXG4gIEBPdXRwdXQoJ3AtYmx1cicpIGJsdXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEV2ZW50byBkaXNwYXJhZG8gYW8gZW50cmFyIGRvIGNhbXBvLlxuICAgKi9cbiAgQE91dHB1dCgncC1lbnRlcicpIGVudGVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBFdmVudG8gZGlzcGFyYWRvIGFvIGFsdGVyYXIgdmFsb3IgZSBkZWl4YXIgbyBjYW1wby5cbiAgICovXG4gIEBPdXRwdXQoJ3AtY2hhbmdlJykgY2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBFdmVudG8gZGlzcGFyYWRvIGFvIGFsdGVyYXIgdmFsb3IgZG8gbW9kZWwuXG4gICAqL1xuICBAT3V0cHV0KCdwLWNoYW5nZS1tb2RlbCcpIGNoYW5nZU1vZGVsOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICB0eXBlOiBzdHJpbmc7XG5cbiAgb25DaGFuZ2VQcm9wYWdhdGU6IGFueSA9IG51bGw7XG4gIG9iak1hc2s6IGFueTtcbiAgbW9kZWxMYXN0VXBkYXRlOiBhbnk7XG4gIHByb3RlY3RlZCBvblRvdWNoZWQ6IGFueSA9IG51bGw7XG5cbiAgcHJvdGVjdGVkIHBhc3NlZFdyaXRlVmFsdWU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHZhbGlkYXRvckNoYW5nZTogYW55O1xuXG4gIHByaXZhdGUgX21heGxlbmd0aD86IG51bWJlcjtcbiAgcHJpdmF0ZSBfbWlubGVuZ3RoPzogbnVtYmVyO1xuICBwcml2YXRlIF9ub0F1dG9jb21wbGV0ZT86IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcGxhY2Vob2xkZXI/OiBzdHJpbmcgPSAnJztcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZWZpbmUgYSBwcm9wcmllZGFkZSBuYXRpdmEgYGF1dG9jb21wbGV0ZWAgZG8gY2FtcG8gY29tbyBgb2ZmYC5cbiAgICpcbiAgICogPiBObyBjb21wb25lbnRlIGBwby1wYXNzd29yZGAgc2Vyw6EgZGVmaW5pZG8gY29tbyBgbmV3LXBhc3N3b3JkYC5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KCdwLW5vLWF1dG9jb21wbGV0ZScpIHNldCBub0F1dG9jb21wbGV0ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX25vQXV0b2NvbXBsZXRlID0gY29udmVydFRvQm9vbGVhbih2YWx1ZSk7XG4gIH1cblxuICBnZXQgbm9BdXRvY29tcGxldGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX25vQXV0b2NvbXBsZXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogTWVuc2FnZW0gcXVlIGFwYXJlY2Vyw6EgZW5xdWFudG8gbyBjYW1wbyBuw6NvIGVzdGl2ZXIgcHJlZW5jaGlkby5cbiAgICpcbiAgICogQGRlZmF1bHQgJydcbiAgICovXG4gIEBJbnB1dCgncC1wbGFjZWhvbGRlcicpIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fcGxhY2Vob2xkZXIgPSB2YWx1ZSB8fCAnJztcbiAgfVxuICBnZXQgcGxhY2Vob2xkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBTZSB2ZXJkYWRlaXJvLCBkZXNhYmlsaXRhIG8gY2FtcG8uXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nXG4gIGRpc2FibGVkPzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoJ3AtZGlzYWJsZWQnKSBzZXQgc2V0RGlzYWJsZWQoZGlzYWJsZWQ6IHN0cmluZykge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZCA9PT0gJycgPyB0cnVlIDogY29udmVydFRvQm9vbGVhbihkaXNhYmxlZCk7XG5cbiAgICB0aGlzLnZhbGlkYXRlTW9kZWwoKTtcbiAgfVxuXG4gIC8qKiBJbmRpY2EgcXVlIG8gY2FtcG8gc2Vyw6Egc29tZW50ZSBsZWl0dXJhLiAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZ1xuICByZWFkb25seT86IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCdwLXJlYWRvbmx5Jykgc2V0IHNldFJlYWRvbmx5KHJlYWRvbmx5OiBzdHJpbmcpIHtcbiAgICB0aGlzLnJlYWRvbmx5ID0gcmVhZG9ubHkgPT09ICcnID8gdHJ1ZSA6IGNvbnZlcnRUb0Jvb2xlYW4ocmVhZG9ubHkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIHF1ZSBvIGNhbXBvIHNlcsOhIG9icmlnYXTDs3Jpby5cbiAgICogPiBFc3RhIHByb3ByaWVkYWRlIMOpIGRlc2NvbnNpZGVyYWRhIHF1YW5kbyBvIGlucHV0IGVzdMOhIGRlc2FiaWxpdGFkbyBgKHAtZGlzYWJsZWQpYC5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcbiAgcmVxdWlyZWQ/OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgncC1yZXF1aXJlZCcpIHNldCBzZXRSZXF1aXJlZChyZXF1aXJlZDogc3RyaW5nKSB7XG4gICAgdGhpcy5yZXF1aXJlZCA9IHJlcXVpcmVkID09PSAnJyA/IHRydWUgOiBjb252ZXJ0VG9Cb29sZWFuKHJlcXVpcmVkKTtcblxuICAgIHRoaXMudmFsaWRhdGVNb2RlbCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZSBzZSBhIGluZGljYcOnw6NvIGRlIGNhbXBvIG9icmlnYXTDs3JpbyBzZXLDoSBleGliaWRhLlxuICAgKlxuICAgKiA+IE7Do28gc2Vyw6EgZXhpYmlkYSBhIGluZGljYcOnw6NvIHNlOlxuICAgKiAtIE7Do28gcG9zc3VpciBgcC1oZWxwYCBlL291IGBwLWxhYmVsYC5cbiAgICovXG4gIEBJbnB1dCgncC1zaG93LXJlcXVpcmVkJykgc2hvd1JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFNlIHZlcmRhZGVpcm8sIG8gY2FtcG8gcmVjZWJlcsOhIHVtIGJvdMOjbyBwYXJhIHNlciBsaW1wby4gKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcbiAgY2xlYW4/OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgncC1jbGVhbicpIHNldCBzZXRDbGVhbihjbGVhbjogc3RyaW5nKSB7XG4gICAgdGhpcy5jbGVhbiA9IGNsZWFuID09PSAnJyA/IHRydWUgOiBjb252ZXJ0VG9Cb29sZWFuKGNsZWFuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRXhwcmVzc8OjbyByZWd1bGFyIHBhcmEgdmFsaWRhciBvIGNhbXBvLlxuICAgKiBRdWFuZG8gbyBjYW1wbyBwb3NzdWlyIHVtYSBtw6FzY2FyYSBgKHAtbWFzaylgIHNlcsOhIGF1dG9tYXRpY2FtZW50ZSB2YWxpZGFkbyBwb3IgZWxhLCBwb3LDqW1cbiAgICogw6kgcG9zc8OtdmVsIGRlZmluaXIgdW0gcC1wYXR0ZXJuIHBhcmEgc3Vic3RpdHVpciBhIHZhbGlkYcOnw6NvIGRhIG3DoXNjYXJhLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcbiAgcGF0dGVybj86IHN0cmluZztcbiAgQElucHV0KCdwLXBhdHRlcm4nKSBzZXQgc2V0UGF0dGVybihwYXR0ZXJuOiBzdHJpbmcpIHtcbiAgICB0aGlzLnBhdHRlcm4gPSBwYXR0ZXJuO1xuXG4gICAgdGhpcy52YWxpZGF0ZU1vZGVsKCk7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBJbmRpY2EgYSBxdWFudGlkYWRlIG3DoXhpbWEgZGUgY2FyYWN0ZXJlcyBxdWUgbyBjYW1wbyBhY2VpdGEuXG4gICAqL1xuICBASW5wdXQoJ3AtbWF4bGVuZ3RoJykgc2V0IG1heGxlbmd0aCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKCFpc05hTihwYXJzZUludCg8YW55PnZhbHVlLCAxMCkpKSB7XG4gICAgICB0aGlzLl9tYXhsZW5ndGggPSBwYXJzZUludCg8YW55PnZhbHVlLCAxMCk7XG5cbiAgICAgIHRoaXMudmFsaWRhdGVNb2RlbCgpO1xuICAgIH0gZWxzZSBpZiAoIXZhbHVlKSB7XG4gICAgICB0aGlzLl9tYXhsZW5ndGggPSB1bmRlZmluZWQ7XG5cbiAgICAgIHRoaXMudmFsaWRhdGVNb2RlbCgpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBtYXhsZW5ndGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuX21heGxlbmd0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEluZGljYSBhIHF1YW50aWRhZGUgbcOtbmltYSBkZSBjYXJhY3RlcmVzIHF1ZSBvIGNhbXBvIGFjZWl0YS5cbiAgICovXG4gIEBJbnB1dCgncC1taW5sZW5ndGgnKSBzZXQgbWlubGVuZ3RoKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAoIWlzTmFOKHBhcnNlSW50KDxhbnk+dmFsdWUsIDEwKSkpIHtcbiAgICAgIHRoaXMuX21pbmxlbmd0aCA9IHBhcnNlSW50KDxhbnk+dmFsdWUsIDEwKTtcblxuICAgICAgdGhpcy52YWxpZGF0ZU1vZGVsKCk7XG4gICAgfSBlbHNlIGlmICghdmFsdWUpIHtcbiAgICAgIHRoaXMuX21pbmxlbmd0aCA9IHVuZGVmaW5lZDtcblxuICAgICAgdGhpcy52YWxpZGF0ZU1vZGVsKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IG1pbmxlbmd0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5fbWlubGVuZ3RoO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBJbmRpY2EgdW1hIG3DoXNjYXJhIHBhcmEgbyBjYW1wby4gRXhlbXBsb3M6ICgrOTkpICg5OSkgOTk5OTk/LTk5OTksIDk5OTk5LTk5OSwgOTk5Ljk5OS45OTktOTkuXG4gICAqIEEgbcOhc2NhcmEgZ2VyYSB1bWEgdmFsaWRhw6fDo28gYXV0b23DoXRpY2EgZG8gY2FtcG8sIHBvZGVuZG8gZXN0YSBzZXIgc3Vic3RpdHXDrWRhIHBvciB1bSBSRUdFWCBlc3BlY8OtZmljb1xuICAgKiBhdHJhdsOpcyBkYSBwcm9wcmllZGFkZSBwLXBhdHRlcm4uXG4gICAqIE8gY2FtcG8gc2Vyw6Egc2luYWxpemFkbyBlIG8gZm9ybXVsw6FyaW8gZmljYXLDoSBpbnbDoWxpZG8gcXVhbmRvIG8gdmFsb3IgaW5mb3JtYWRvIGVzdGl2ZXIgZm9yYSBkbyBwYWRyw6NvIGRlZmluaWRvLFxuICAgKiBtZXNtbyBxdWFuZG8gZGVzYWJpbGl0YWRvLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcbiAgbWFzaz86IHN0cmluZyA9ICcnO1xuICBASW5wdXQoJ3AtbWFzaycpIHNldCBzZXRNYXNrKG1hc2s6IHN0cmluZykge1xuICAgIHRoaXMubWFzayA9IG1hc2s7XG5cbiAgICAvLyBBdHVhbGl6YSBNw6FzY2FyYSBkbyBDYW1wb1xuICAgIHRoaXMub2JqTWFzayA9IG5ldyBQb01hc2sodGhpcy5tYXNrLCB0aGlzLm1hc2tGb3JtYXRNb2RlbCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEluZGljYSBzZSBvIGBtb2RlbGAgcmVjZWJlcsOhIG8gdmFsb3IgZm9ybWF0YWRvIHBlbGEgbcOhc2NhcmEgb3UgYXBlbmFzIG8gdmFsb3IgcHVybyAoc2VtIGZvcm1hdGHDp8OjbykuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nXG4gIG1hc2tGb3JtYXRNb2RlbD86IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCdwLW1hc2stZm9ybWF0LW1vZGVsJykgc2V0IHNldE1hc2tGb3JtYXRNb2RlbChtYXNrRm9ybWF0TW9kZWw6IHN0cmluZykge1xuICAgIHRoaXMubWFza0Zvcm1hdE1vZGVsID0gbWFza0Zvcm1hdE1vZGVsID09PSAnJyA/IHRydWUgOiBjb252ZXJ0VG9Cb29sZWFuKG1hc2tGb3JtYXRNb2RlbCk7XG5cbiAgICBpZiAodGhpcy5vYmpNYXNrIGluc3RhbmNlb2YgUG9NYXNrKSB7XG4gICAgICB0aGlzLm9iak1hc2suZm9ybWF0TW9kZWwgPSB0aGlzLm1hc2tGb3JtYXRNb2RlbDtcblxuICAgICAgdGhpcy52YWxpZGF0ZU1vZGVsKCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZD86IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgdGhpcy5vYmpNYXNrID0gbmV3IFBvTWFzayh0aGlzLm1hc2ssIHRoaXMubWFza0Zvcm1hdE1vZGVsKTtcbiAgfVxuXG4gIGNhbGxPbkNoYW5nZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy51cGRhdGVNb2RlbCh2YWx1ZSk7XG5cbiAgICB0aGlzLmNvbnRyb2xDaGFuZ2VNb2RlbEVtaXR0ZXIodmFsdWUpO1xuICB9XG5cbiAgY2FsbFVwZGF0ZU1vZGVsV2l0aFRpbWVvdXQodmFsdWUpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlTW9kZWwodmFsdWUpKTtcbiAgfVxuXG4gIGNvbnRyb2xDaGFuZ2VNb2RlbEVtaXR0ZXIodmFsdWU6IGFueSkge1xuICAgIGlmICh0aGlzLm1vZGVsTGFzdFVwZGF0ZSAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuY2hhbmdlTW9kZWwuZW1pdCh2YWx1ZSk7XG4gICAgICB0aGlzLm1vZGVsTGFzdFVwZGF0ZSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZ1bsOnw6NvIGltcGxlbWVudGFkYSBkbyBDb250cm9sVmFsdWVBY2Nlc3NvclxuICAvLyBVc2FkYSBwYXJhIGludGVyY2VwdGFyIG9zIGVzdGFkb3MgZGUgaGFiaWxpdGFkbyB2aWEgZm9ybXMgYXBpXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIHRoaXMuY2Q/Lm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLy8gRnVuw6fDo28gaW1wbGVtZW50YWRhIGRvIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gIC8vIFVzYWRhIHBhcmEgaW50ZXJjZXB0YXIgYXMgbXVkYW7Dp2FzIGUgbsOjbyBhdHVhbGl6YXIgYXV0b21hdGljYW1lbnRlIG8gTW9kZWxcbiAgcmVnaXN0ZXJPbkNoYW5nZShmdW5jOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlUHJvcGFnYXRlID0gZnVuYztcbiAgfVxuXG4gIC8vIEZ1bsOnw6NvIGltcGxlbWVudGFkYSBkbyBDb250cm9sVmFsdWVBY2Nlc3NvclxuICAvLyBVc2FkYSBwYXJhIGludGVyY2VwdGFyIGFzIG11ZGFuw6dhcyBlIG7Do28gYXR1YWxpemFyIGF1dG9tYXRpY2FtZW50ZSBvIE1vZGVsXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZ1bmM6IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZnVuYztcbiAgfVxuXG4gIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoZm46ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLnZhbGlkYXRvckNoYW5nZSA9IGZuO1xuICB9XG5cbiAgdXBkYXRlTW9kZWwodmFsdWU6IGFueSkge1xuICAgIC8vIFF1YW5kbyBvIGlucHV0IG7Do28gcG9zc3VpIHVtIGZvcm11bMOhcmlvLCBlbnTDo28gZXN0YSBmdW7Dp8OjbyBuw6NvIMOpIHJlZ2lzdHJhZGFcbiAgICBpZiAodGhpcy5vbkNoYW5nZVByb3BhZ2F0ZSkge1xuICAgICAgdGhpcy5vbkNoYW5nZVByb3BhZ2F0ZSh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGUoYzogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XG4gICAgaWYgKHJlcXVpcmVkRmFpbGVkKHRoaXMucmVxdWlyZWQsIHRoaXMuZGlzYWJsZWQsIHRoaXMuZ2V0U2NyZWVuVmFsdWUoKSkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJlcXVpcmVkOiB7XG4gICAgICAgICAgdmFsaWQ6IGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKG1heGxlbmdwb2FpbGVkKHRoaXMubWF4bGVuZ3RoLCB0aGlzLmdldFNjcmVlblZhbHVlKCkpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBtYXhsZW5ndGg6IHtcbiAgICAgICAgICB2YWxpZDogZmFsc2VcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAobWlubGVuZ3BvYWlsZWQodGhpcy5taW5sZW5ndGgsIHRoaXMuZ2V0U2NyZWVuVmFsdWUoKSkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1pbmxlbmd0aDoge1xuICAgICAgICAgIHZhbGlkOiBmYWxzZVxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChwYXR0ZXJuRmFpbGVkKHRoaXMucGF0dGVybiwgYy52YWx1ZSkpIHtcbiAgICAgIHRoaXMudmFsaWRhdGVQYXR0ZXJuT25Xcml0ZVZhbHVlKGMudmFsdWUpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcGF0dGVybjoge1xuICAgICAgICAgIHZhbGlkOiBmYWxzZVxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmV4dHJhVmFsaWRhdGlvbihjKTtcbiAgfVxuXG4gIC8vIEZ1bsOnw6NvIGltcGxlbWVudGFkYSBkbyBDb250cm9sVmFsdWVBY2Nlc3NvclxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLndyaXRlVmFsdWVNb2RlbCh2YWx1ZSk7XG4gICAgdGhpcy5jZD8ubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdmFsaWRhdGVNb2RlbCgpIHtcbiAgICBpZiAodGhpcy52YWxpZGF0b3JDaGFuZ2UpIHtcbiAgICAgIHRoaXMudmFsaWRhdG9yQ2hhbmdlKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gdXRpbGl6YWRvIHBhcmEgdmFsaWRhciBvIHBhdHRlcm4gbmEgaW5pY2lhbGl6YWNhbywgZmF6ZW5kbyBkZXNzYSBmb3JtYSBvIGNhbXBvIGZpY2Egc3VqbyAoZGlydHkpLlxuICBwcml2YXRlIHZhbGlkYXRlUGF0dGVybk9uV3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlICYmIHRoaXMucGFzc2VkV3JpdGVWYWx1ZSkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlTW9kZWwodmFsdWUpO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMucGFzc2VkV3JpdGVWYWx1ZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGdW7Dp8OjbyBxdWUgYXRyaWJ1aSBmb2NvIGFvIGNvbXBvbmVudGUuXG4gICAqXG4gICAqIFBhcmEgdXRpbGl6w6EtbGEgw6kgbmVjZXNzw6FyaW8gdGVyIGEgaW5zdMOibmNpYSBkbyBjb21wb25lbnRlIG5vIERPTSwgcG9kZW5kbyBzZXIgdXRpbGl6YWRvIG8gVmlld0NoaWxkIGRhIHNlZ3VpbnRlIGZvcm1hOlxuICAgKlxuICAgKiBgYGBcbiAgICogaW1wb3J0IHsgUG9Ob21lRG9Db21wb25lbnRlQ29tcG9uZW50IH0gZnJvbSAnQHBvLXVpL25nLWNvbXBvbmVudHMnO1xuICAgKlxuICAgKiAuLi5cbiAgICpcbiAgICogQFZpZXdDaGlsZChQb05vbWVEb0NvbXBvbmVudGVDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIG5vbWVEb0NvbXBvbmVudGU6IFBvTm9tZURvQ29tcG9uZW50ZUNvbXBvbmVudDtcbiAgICpcbiAgICogZm9jdXNDb21wb25lbnQoKSB7XG4gICAqICAgdGhpcy5ub21lRG9Db21wb25lbnRlLmZvY3VzKCk7XG4gICAqIH1cbiAgICogYGBgXG4gICAqL1xuICBhYnN0cmFjdCBmb2N1cygpOiB2b2lkO1xuXG4gIC8vIE3DqXRvZG8gcXVlIHJlY2ViZXLDoSBvIHZhbG9yIGRvIG1vZGVsXG4gIGFic3RyYWN0IHdyaXRlVmFsdWVNb2RlbCh2YWx1ZTogYW55KTogdm9pZDtcblxuICAvLyBWYWxpZGHDp8O1ZXMgZG8gY2FtcG9cbiAgYWJzdHJhY3QgZXh0cmFWYWxpZGF0aW9uKGM6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbiAgLy8gRGV2ZSByZXRvcm5hciBvIHZhbG9yIGRvIGNhbXBvXG4gIGFic3RyYWN0IGdldFNjcmVlblZhbHVlKCk6IHN0cmluZztcbn1cbiJdfQ==
@@ -460,4 +460,4 @@ export class PoMask {
460
460
  }
461
461
  }
462
462
  }
463
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbWFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC9wby1pbnB1dC9wby1tYXNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sTUFBTTtJQUNqQixJQUFJLEdBQVcsRUFBRSxDQUFDO0lBQ2xCLFdBQVcsR0FBWSxLQUFLLENBQUM7SUFDN0Isc0JBQXNCO0lBQ3RCLGVBQWUsR0FBVyxDQUFDLENBQUM7SUFDNUIsYUFBYSxHQUFXLENBQUMsQ0FBQztJQUUxQixPQUFPLEdBQVcsRUFBRSxDQUFDO0lBQ3JCLElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsWUFBWSxDQUFTO0lBQ3JCLElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQUksZUFBZSxDQUFDLEtBQWE7UUFDL0IsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUVELFlBQVksQ0FBUztJQUNyQixJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLGVBQWUsQ0FBQyxLQUFhO1FBQy9CLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFFRCxjQUFjLENBQVU7SUFFeEIsWUFBWSxJQUFZLEVBQUUsV0FBb0I7UUFDNUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFXO1FB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QUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNwQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ3hDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQzthQUN6QztZQUNELE9BQU8sT0FBTyxDQUFDO1NBQ2hCO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQYXJhIHVzYXIgbyBwby1tYXNrIMOpIHByZWNpc28gaW5zdGFuY2lhciBlc3RhIGNsYXNzZSBwYXNzYW5kbyBhIG3DoXNjYXJhIGNvbW9cbiAqIHByaW1laXJvIHBhcsOibWV0cm8sIGUgbm8gc2VndW5kbyBwYXLDom1ldHJvLCBkZXZlIHNlIGluZm9ybWFkbyB0cnVlLCBjYXNvIHF1ZWlyYVxuICogcXVlIG8gbW9kZWwgc2VqYSBmb3JtYXRhZG8gb3UgZmFsc2UgcGFyYSBvIHF1ZSBvIG1vZGVsIHNlamEgbGltcG8uXG4gKi9cbmV4cG9ydCBjbGFzcyBQb01hc2sge1xuICBtYXNrOiBzdHJpbmcgPSAnJztcbiAgZm9ybWF0TW9kZWw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLy8gY29udHJvbGUgZGUgcG9zacOnw6NvXG4gIGluaXRpYWxQb3NpdGlvbjogbnVtYmVyID0gMDtcbiAgZmluYWxQb3NpdGlvbjogbnVtYmVyID0gMDtcblxuICBwYXR0ZXJuOiBzdHJpbmcgPSAnJztcbiAgZ2V0IGdldFBhdHRlcm4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wYXR0ZXJuO1xuICB9XG5cbiAgdmFsdWVUb0lucHV0OiBzdHJpbmc7XG4gIGdldCBnZXRWYWx1ZVRvSW5wdXQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZVRvSW5wdXQ7XG4gIH1cbiAgc2V0IHNldFZhbHVlVG9JbnB1dCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZVRvSW5wdXQgPSB2YWx1ZTtcbiAgfVxuXG4gIHZhbHVlVG9Nb2RlbDogc3RyaW5nO1xuICBnZXQgZ2V0VmFsdWVUb01vZGVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVUb01vZGVsO1xuICB9XG4gIHNldCBzZXRWYWx1ZVRvTW9kZWwodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWVUb01vZGVsID0gdmFsdWU7XG4gIH1cblxuICBmb3JtYXR0aW5nRW5kczogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihtYXNrOiBzdHJpbmcsIGZvcm1hdE1vZGVsOiBib29sZWFuKSB7XG4gICAgdGhpcy5tYXNrID0gbWFzaztcbiAgICB0aGlzLmZvcm1hdE1vZGVsID0gZm9ybWF0TW9kZWw7XG4gICAgdGhpcy5wYXR0ZXJuID0gdGhpcy5nZXRSZWdleEZyb21NYXNrKG1hc2spO1xuICB9XG5cbiAga2V5dXAoJGV2ZW50OiBhbnkpIHtcbiAgICBpZiAodGhpcy5tYXNrKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9ICRldmVudC50YXJnZXQudmFsdWU7XG4gICAgICAvLyBmb3JtYXRhIG8gdmFsb3IgcXVhbmRvIGZvciBjb2xhZG8gY29tIGNvbnRyb2wgKyB2IGUgcmVwb3NpY2lvbmEgbyBjdXJzb3JcbiAgICAgIGlmICgkZXZlbnQua2V5Q29kZSA9PT0gMTcgfHwgJGV2ZW50LmtleUNvZGUgPT09IDkxKSB7XG4gICAgICAgICRldmVudC50YXJnZXQudmFsdWUgPSB0aGlzLmNvbnRyb2xGb3JtYXR0aW5nKHZhbHVlKTtcbiAgICAgICAgdGhpcy5yZXNldFBvc2l0aW9ucygkZXZlbnQpO1xuICAgICAgfVxuXG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgc3dpdGNoICgkZXZlbnQua2V5Q29kZSkge1xuICAgICAgICBjYXNlIDM3OiAvLyBzZXRhIGVzcXVlcmRhXG4gICAgICAgICAgaWYgKHRoaXMuaW5pdGlhbFBvc2l0aW9uID4gMCkge1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsUG9zaXRpb24tLTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5zZXRQb3NpdGlvbk5vdFNoaWZ0S2V5KCRldmVudCk7XG4gICAgICAgICAgdGhpcy5zZXRTZWxlY3Rpb25SYW5nZSgkZXZlbnQpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgMzk6IC8vIHNldGEgZGlyZWl0YVxuICAgICAgICAgIGlmICh0aGlzLmluaXRpYWxQb3NpdGlvbiA8IHZhbHVlLnRvU3RyaW5nKCkubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxQb3NpdGlvbisrO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnNldFBvc2l0aW9uTm90U2hpZnRLZXkoJGV2ZW50KTtcbiAgICAgICAgICB0aGlzLnNldFNlbGVjdGlvblJhbmdlKCRldmVudCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAzNTogLy8gZW5kXG4gICAgICAgICAgdGhpcy5maW5hbFBvc2l0aW9uID0gdmFsdWUudG9TdHJpbmcoKS5sZW5ndGg7XG4gICAgICAgICAgaWYgKCRldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgICAgdGhpcy5zZXRQb3NpdGlvbnMoJGV2ZW50KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsUG9zaXRpb24gPSB0aGlzLmZpbmFsUG9zaXRpb247XG4gICAgICAgICAgICB0aGlzLnNldFBvc2l0aW9ucygkZXZlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIDM2OiAvLyBIT01FXG4gICAgICAgICAgaWYgKCRldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgICAgdGhpcy5maW5hbFBvc2l0aW9uID0gdGhpcy5pbml0aWFsUG9zaXRpb247XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxQb3NpdGlvbiA9IDA7XG4gICAgICAgICAgICB0aGlzLnNldFBvc2l0aW9ucygkZXZlbnQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxQb3NpdGlvbiA9IDA7XG4gICAgICAgICAgICB0aGlzLmZpbmFsUG9zaXRpb24gPSAwO1xuICAgICAgICAgICAgdGhpcy5zZXRQb3NpdGlvbnMoJGV2ZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2V0UG9zaXRpb25Ob3RTaGlmdEtleSgkZXZlbnQ6IGFueSkge1xuICAgIGlmICghJGV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICB0aGlzLmZpbmFsUG9zaXRpb24gPSB0aGlzLmluaXRpYWxQb3NpdGlvbjtcbiAgICB9XG4gIH1cblxuICBzZXRTZWxlY3Rpb25SYW5nZSgkZXZlbnQ6IGFueSkge1xuICAgIGlmICh0aGlzLmluaXRpYWxQb3NpdGlvbiA+IHRoaXMuZmluYWxQb3NpdGlvbikge1xuICAgICAgJGV2ZW50LnRhcmdldC5zZXRTZWxlY3Rpb25SYW5nZSh0aGlzLmZpbmFsUG9zaXRpb24sIHRoaXMuaW5pdGlhbFBvc2l0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgJGV2ZW50LnRhcmdldC5zZXRTZWxlY3Rpb25SYW5nZSh0aGlzLmluaXRpYWxQb3NpdGlvbiwgdGhpcy5maW5hbFBvc2l0aW9uKTtcbiAgICB9XG4gIH1cblxuICBrZXlkb3duKCRldmVudDogYW55KSB7XG4gICAgaWYgKHRoaXMubWFzaykge1xuICAgICAgbGV0IHZhbHVlOiBzdHJpbmcgPSAkZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgICAgaWYgKCRldmVudC5rZXlDb2RlID09PSA5KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCEkZXZlbnQuY3RybEtleSAmJiAhJGV2ZW50Lm1ldGFLZXkpIHtcbiAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG5cbiAgICAgIC8vIE7Do28gZmF6IG5hZGEgcXVhbmRvIGZvciBkaWdpdGFkbyBDVFJMIG91IENPTU1BTkQgZSBWXG4gICAgICAvLyBKw6EgZXN0w6Egc2VuZG8gdHJhdGFkbyBubyBldmVudG8ga2V5dXBcbiAgICAgIGlmIChcbiAgICAgICAgJGV2ZW50LmN0cmxLZXkgfHxcbiAgICAgICAgKCRldmVudC5tZXRhS2V5ICYmICRldmVudC5rZXlDb2RlICE9PSA4NikgfHxcbiAgICAgICAgKCRldmVudC5rZXlDb2RlID49IDM3ICYmICRldmVudC5rZXlDb2RlIDw9IDQwKSB8fFxuICAgICAgICAkZXZlbnQua2V5Q29kZSA9PT0gMTYgfHxcbiAgICAgICAgJGV2ZW50LmtleUNvZGUgPT09IDlcbiAgICAgICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIFZhbGlkYSBhIHRlY2xhIGRpZ2l0YWRhXG4gICAgICBpZiAodGhpcy5pc0tleVZhbGlkKCRldmVudC5rZXlDb2RlKSkge1xuICAgICAgICBpZiAodGhpcy5maW5hbFBvc2l0aW9uID09PSBudWxsKSB7XG4gICAgICAgICAgdGhpcy5maW5hbFBvc2l0aW9uID0gdGhpcy5pbml0aWFsUG9zaXRpb247XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZXZlcnRQb3NpdGlvbnModGhpcy5pbml0aWFsUG9zaXRpb24sIHRoaXMuZmluYWxQb3NpdGlvbik7XG5cbiAgICAgICAgc3dpdGNoICgkZXZlbnQua2V5Q29kZSkge1xuICAgICAgICAgIGNhc2UgODogLy8gYmFja3NwYWNlXG4gICAgICAgICAgICB0aGlzLmdldFBvc2l0aW9uKCRldmVudCk7XG4gICAgICAgICAgICBpZiAodGhpcy5pbml0aWFsUG9zaXRpb24gPCAwKSB7XG4gICAgICAgICAgICAgIHRoaXMuaW5pdGlhbFBvc2l0aW9uID0gMDtcbiAgICAgICAgICAgICAgdGhpcy5zZXRQb3NpdGlvbnMoJGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmluaXRpYWxQb3NpdGlvbiA9PT0gdGhpcy5maW5hbFBvc2l0aW9uKSB7XG4gICAgICAgICAgICAgIHRoaXMuY2hlY2tNYXNrQmVmb3JlKCRldmVudCwgLTEpO1xuICAgICAgICAgICAgICBpZiAodGhpcy5pbml0aWFsUG9zaXRpb24gIT09IDApIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnNsaWNlKDAsIHRoaXMuaW5pdGlhbFBvc2l0aW9uIC0gMSkgKyB2YWx1ZS5zbGljZSh0aGlzLmZpbmFsUG9zaXRpb24pO1xuICAgICAgICAgICAgICAgIHZhbHVlID0gdGhpcy5jb250cm9sRm9ybWF0dGluZyh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgJGV2ZW50LnRhcmdldC52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlUG9zaXRpb24oJGV2ZW50LCAtMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja01hc2tCZWZvcmUoJGV2ZW50LCAtMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRQb3NpdGlvbnMoJGV2ZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0UG9zaXRpb25zKCRldmVudCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuY2xlYXJSYW5nZVNlbGVjdGlvbih2YWx1ZSwgJGV2ZW50LCB0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2V0UG9zaXRpb25zKCRldmVudCk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgNDY6IC8vIGRlbGV0ZVxuICAgICAgICAgICAgdGhpcy5nZXRQb3NpdGlvbigkZXZlbnQpO1xuICAgICAgICAgICAgaWYgKHRoaXMuaW5pdGlhbFBvc2l0aW9uID09PSB0aGlzLmZpbmFsUG9zaXRpb24pIHtcbiAgICAgICAgICAgICAgdGhpcy5jaGVja01hc2tBZnRlcigkZXZlbnQsIDEpO1xuICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnNsaWNlKDAsIHRoaXMuaW5pdGlhbFBvc2l0aW9uKSArIHZhbHVlLnNsaWNlKHRoaXMuZmluYWxQb3NpdGlvbiArIDEpO1xuICAgICAgICAgICAgICB2YWx1ZSA9IHRoaXMuY29udHJvbEZvcm1hdHRpbmcodmFsdWUpO1xuICAgICAgICAgICAgICAkZXZlbnQudGFyZ2V0LnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICAgIHRoaXMuc2V0UG9zaXRpb25zKCRldmVudCk7XG4gICAgICAgICAgICAgIHRoaXMucmVzZXRQb3NpdGlvbnMoJGV2ZW50KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuY2xlYXJSYW5nZVNlbGVjdGlvbih2YWx1ZSwgJGV2ZW50LCBmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNldFBvc2l0aW9ucygkZXZlbnQpO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gcXVhbHF1ZXIgb3V0cmEgdGVjbGEgdsOhbGlkYVxuICAgICAgICAgICAgdGhpcy5nZXRQb3NpdGlvbigkZXZlbnQpO1xuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zbGljZSgwLCB0aGlzLmluaXRpYWxQb3NpdGlvbikgKyAkZXZlbnQua2V5ICsgdmFsdWUuc2xpY2UodGhpcy5maW5hbFBvc2l0aW9uKTtcbiAgICAgICAgICAgIHZhbHVlID0gdGhpcy5jb250cm9sRm9ybWF0dGluZyh2YWx1ZSk7XG4gICAgICAgICAgICAkZXZlbnQudGFyZ2V0LnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZVBvc2l0aW9uKCRldmVudCwgMSk7XG4gICAgICAgICAgICB0aGlzLmNoZWNrTWFza0JlZm9yZSgkZXZlbnQsIDEpO1xuICAgICAgICAgICAgdGhpcy5zZXRQb3NpdGlvbnMoJGV2ZW50KTtcbiAgICAgICAgICAgIHRoaXMucmVzZXRQb3NpdGlvbnMoJGV2ZW50KTtcbiAgICAgICAgICAgIHRoaXMuc2V0UG9zaXRpb25zKCRldmVudCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjbGVhclJhbmdlU2VsZWN0aW9uKHZhbHVlOiBzdHJpbmcsICRldmVudDogYW55LCBpc0JhY2tzcGFjZTogYm9vbGVhbikge1xuICAgIHZhbHVlID0gdmFsdWUuc2xpY2UoMCwgdGhpcy5pbml0aWFsUG9zaXRpb24pICsgdmFsdWUuc2xpY2UodGhpcy5maW5hbFBvc2l0aW9uKTtcbiAgICB2YWx1ZSA9IHRoaXMuY29udHJvbEZvcm1hdHRpbmcodmFsdWUpO1xuICAgICRldmVudC50YXJnZXQudmFsdWUgPSB2YWx1ZTtcblxuICAgIGlmIChpc0JhY2tzcGFjZSkge1xuICAgICAgdGhpcy5jaGVja01hc2tCZWZvcmUoJGV2ZW50LCAtMSk7XG4gICAgfVxuXG4gICAgdGhpcy5zZXRQb3NpdGlvbnMoJGV2ZW50KTtcbiAgICB0aGlzLnJlc2V0UG9zaXRpb25zKCRldmVudCk7XG4gIH1cblxuICAvLyBwYXNzYSBhIHBvc2nDp8OjbyBkbyBjbGljayBwYXJhIG8gY29udHJvbGUgZGUgcG9zacOnw6NvXG4gIGNsaWNrKCRldmVudDogYW55KSB7XG4gICAgdGhpcy5pbml0aWFsUG9zaXRpb24gPSAkZXZlbnQudGFyZ2V0LnNlbGVjdGlvblN0YXJ0O1xuICAgIHRoaXMuZmluYWxQb3NpdGlvbiA9ICRldmVudC50YXJnZXQuc2VsZWN0aW9uRW5kO1xuICB9XG5cbiAgYmx1cigkZXZlbnQ6IGFueSkge1xuICAgIC8vIFNlIGhvdXZlciBhbGd1bSB2YWxvciBkZWZpbmlkbyBuYSBtw6FzY2FyYVxuICAgIGlmICh0aGlzLm1hc2spIHtcbiAgICAgIC8vIHBlZ2EgbyB2YWxvciBkbyBjYW1wbywgZm9ybWF0YSBlIHBhc3NhIHBhcmEgbyBtb2RlbFxuICAgICAgbGV0IHZhbHVlID0gJGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICAgIHZhbHVlID0gdGhpcy5jb250cm9sRm9ybWF0dGluZyh2YWx1ZSk7XG4gICAgICAkZXZlbnQudGFyZ2V0LnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcmV2ZXJ0UG9zaXRpb25zKGluaXRpYWxQb3NpdGlvbjogbnVtYmVyLCBmaW5hbFBvc2l0aW9uOiBudW1iZXIpIHtcbiAgICBpZiAoaW5pdGlhbFBvc2l0aW9uID4gZmluYWxQb3NpdGlvbikge1xuICAgICAgLy8gaW52ZXJ0ZSBvIGNvbnRyb2xlIGRlIHBvc2nDp8OjbyBjYXNvIG8gaW5pY2lhbCBlc3RlamEgbWFpb3IgcXVlIG8gZmluYWxcbiAgICAgIGNvbnN0IHRlbXBQb3NpdGlvbiA9IGluaXRpYWxQb3NpdGlvbjtcbiAgICAgIHRoaXMuaW5pdGlhbFBvc2l0aW9uID0gZmluYWxQb3NpdGlvbjtcbiAgICAgIHRoaXMuZmluYWxQb3NpdGlvbiA9IHRlbXBQb3NpdGlvbjtcbiAgICB9XG4gIH1cblxuICAvLyByZXNldGEgbyBjb250cm9sZSBkZSBwb3Npw6fDo29cbiAgcmVzZXRQb3NpdGlvbnMoJGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmluaXRpYWxQb3NpdGlvbiA9ICRldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQ7XG4gICAgdGhpcy5maW5hbFBvc2l0aW9uID0gdGhpcy5pbml0aWFsUG9zaXRpb247XG4gIH1cblxuICAvLyBwb3NpY2lvbmEgbyBjdXJzb3IgZGUgYWNvcmRvIGNvbSBvIGNvbnRyb2xlIGRlIHBvc2nDp8Ojb1xuICBzZXRQb3NpdGlvbnMoJGV2ZW50OiBhbnkpIHtcbiAgICAkZXZlbnQudGFyZ2V0LnNldFNlbGVjdGlvblJhbmdlKHRoaXMuaW5pdGlhbFBvc2l0aW9uLCB0aGlzLmZpbmFsUG9zaXRpb24pO1xuICB9XG5cbiAgLy8gbXVkYSBhIHBvc2nDp8OjbyBkbyBjdXJzb3IgZSBhdHVhbGl6YSBvIGNvbnRyb2xlIGRlIHBvc2nDp8Ojb1xuICBjaGFuZ2VQb3NpdGlvbigkZXZlbnQ6IGFueSwgdmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuaW5pdGlhbFBvc2l0aW9uID0gdGhpcy5pbml0aWFsUG9zaXRpb24gKyB2YWx1ZTtcbiAgICB0aGlzLmZpbmFsUG9zaXRpb24gPSB0aGlzLmZpbmFsUG9zaXRpb24gKyB2YWx1ZTtcbiAgICB0aGlzLnNldFBvc2l0aW9ucygkZXZlbnQpO1xuICB9XG5cbiAgZ2V0UG9zaXRpb24oJGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmluaXRpYWxQb3NpdGlvbiA9ICRldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQ7XG4gICAgdGhpcy5maW5hbFBvc2l0aW9uID0gJGV2ZW50LnRhcmdldC5zZWxlY3Rpb25FbmQ7XG4gICAgdGhpcy5zZXRQb3NpdGlvbnMoJGV2ZW50KTtcbiAgfVxuXG4gIC8vIE3DqXRvZG8gcmVzcG9uc8OhdmVsIHBvciBjb250cm9sYXIgYSBmb3JtYXRhw6fDo28gZSBhcGxpY2FyIHRvZGFzIGFzIG3DoXNjYXJhIHBvc3PDrXZlaXNcbiAgLy8gcXVhbmRvIGhvdXZlciB2YWxvcmVzIG9wY2lvbmFpcyAoPylcbiAgY29udHJvbEZvcm1hdHRpbmcodmFsdWU6IHN0cmluZykge1xuICAgIC8vIFNlIG8gdmFsb3IgZm9yIHZhemlvLCByZXRvcm5hIHZhemlvXG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgdGhpcy52YWx1ZVRvSW5wdXQgPSAnJztcbiAgICAgIHRoaXMudmFsdWVUb01vZGVsID0gJyc7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGxldCB2YWx1ZVByb2Nlc3NlZDtcbiAgICBsZXQgbWFza1RtcCA9IHRoaXMubWFzaztcblxuICAgIC8vIEFycmF5IHF1ZSBzZXLDoSB1c2FkbyBwYXJhIGFybWF6ZW5hciB0b2RhcyBhcyBtw6FzY2FyYXMgcG9zc8OtdmVpcyBwYXJhXG4gICAgLy8gcXVhbmRvIGhvdXZlciB1bSB2YWxvciBvcGNpb25hbCAoPylcbiAgICBjb25zdCBhcnJNYXNrczogQXJyYXk8YW55PiA9IFtdO1xuICAgIGxldCBjb250TWFza3MgPSAwO1xuXG4gICAgLy8gRW5xdWFudG8gaG91dmVyIGFsZ3VtIDk/IG5hIG3DoXNjYXJhXG4gICAgd2hpbGUgKHRoaXMuaGFzT3B0aW9uYWxOdW1iZXIobWFza1RtcCkpIHtcbiAgICAgIGFyck1hc2tzLnB1c2gobWFza1RtcCk7XG4gICAgICBtYXNrVG1wID0gdGhpcy5yZXBsYWNlT3B0aW9uYWxOdW1iZXIobWFza1RtcCk7XG4gICAgfVxuICAgIGFyck1hc2tzLnB1c2gobWFza1RtcCk7XG5cbiAgICAvLyBJbnZlcnRlIG8gYXJyYXlcbiAgICBhcnJNYXNrcy5yZXZlcnNlKCk7XG5cbiAgICAvLyBJbmZvcm1hIHF1ZSBhIGZvcm1hdGHDp8OjbyBhaW5kYSBuw6NvIGNoZWdvdSBhbyBmaW1cbiAgICB0aGlzLmZvcm1hdHRpbmdFbmRzID0gZmFsc2U7XG5cbiAgICB3aGlsZSAoIXRoaXMuZm9ybWF0dGluZ0VuZHMpIHtcbiAgICAgIC8vIFNldGEgYSBmb3JtYXRhw6fDo28gY29tbyB0ZXJtaW5hZGFcbiAgICAgIC8vIEVudMOjbyBvIG3DqXRvZG8gZm9ybWF0VmFsdWUgaXLDoSBzZXRhciBjb21vIG7Do28gdGVybWluYWRvIGNhc28gaGFqYVxuICAgICAgdGhpcy5mb3JtYXR0aW5nRW5kcyA9IHRydWU7XG5cbiAgICAgIC8vIFNlIG7Do28gZXhpc3RlIG1haXMgbmVuaHVtYSBtw6FzY2FyYSBwb3Nzw612ZWwsIGVudMOjbyBlbmNlcnJhIGEgZm9ybWF0YcOnw6NvXG4gICAgICBpZiAoIWFyck1hc2tzW2NvbnRNYXNrc10pIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIC8vIENoYW1hIGEgZm9ybWF0YcOnw6NvIHBhc3NhbmRvIGEgbcOhc2NhcmEgZSBvIHZhbG9yXG4gICAgICB2YWx1ZVByb2Nlc3NlZCA9IHRoaXMuZm9ybWF0VmFsdWUodmFsdWUsIGFyck1hc2tzW2NvbnRNYXNrc10pO1xuICAgICAgY29udE1hc2tzKys7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlUHJvY2Vzc2VkO1xuICB9XG5cbiAgLy8gRnVuw6fDo28gcXVlIGZvcm1hdGEgYSBtw6FzY2FyYSBjb20gbyB2YWxvciBwYXNzYWRvXG4gIGZvcm1hdFZhbHVlKHZhbHVlOiBzdHJpbmcsIG1hc2s6IHN0cmluZykge1xuICAgIC8vIFJlbW92ZSBhcyBtYXJjYXMgZGUgdmFsb3Igb3BjaW9uYSAoPylcbiAgICBtYXNrID0gbWFzay5yZXBsYWNlKC9cXD8vZywgJycpO1xuXG4gICAgLy8gU3Vic3RpdHVpIHRvZG9zIG9zIGNhcmFjdGVyZXMgcXVlIG7Do28gc8OjbyBmaXhvcyBkYSBtw6FzY2FyYSBwb3IgX1xuICAgIGNvbnN0IGd1aWRlID0gbWFzay5yZXBsYWNlKHRoaXMubGlzdFZhbGlkS2V5cygpLCAnXycpO1xuXG4gICAgLy8gQ29udGFkb3IgdXNhZG8gcGFyYSBwZXJjb3JyZXIgbyBndWlkZVxuICAgIGxldCBjb250R3VpZGU6IG51bWJlciA9IDA7XG5cbiAgICAvLyBTdHJpbmcgZmluYWwgZm9ybWF0YWRhXG4gICAgbGV0IHZhbHVlUHJvY2Vzc2VkOiBzdHJpbmcgPSAnJztcblxuICAgIC8vIFJlbW92ZSBkbyB2YWxvciB0b2RvcyBvcyBjYXJhY3RlcmVzIGZpeG9zIGNvbW8gKCkvLStcbiAgICB2YWx1ZSA9IHRoaXMucmVtb3ZlRm9ybWF0dGluZ1ZhbHVlKHZhbHVlKTtcblxuICAgIC8vIFBlcmNvcnJlIHRvZG8gbyB2YWxvciBlIGNvbG9jYSBhIGZvcm1hdGHDp8OjbyBkZSBhY29yZG8gY29tIGEgbcOhc2NhcmFcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBjaGFyVmFsdWUgPSB2YWx1ZVtpXTtcblxuICAgICAgLy8gU2UgbyBndWlkZSBhY2Fib3UsIHNldGEgYSBmb3JtYXRhw6fDo28gY29tbyBuw6NvIHRlcm1pbmFkYSBwYXJhIHF1ZSBvIG3DqXRvZG8gY29udHJvbEZvcm1hdHRpbmdcbiAgICAgIC8vIHRlbnRlIGZvcm1hdGFyIGNvbSBvdXRyYSBwb3Nzw612ZWwgbcOhc2NhcmFcbiAgICAgIGlmICghZ3VpZGVbY29udEd1aWRlXSkge1xuICAgICAgICB0aGlzLmZvcm1hdHRpbmdFbmRzID0gZmFsc2U7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICAvLyBQZXJjb3JyZSBvIEd1aWRlIGVucXVhbnRvIHRlbSBjYXJhY3RlcmVzIGZpeG9zXG4gICAgICB3aGlsZSAodGhpcy5pc0ZpeGVkQ2hhcmFjdGVyR3VpZGUoZ3VpZGVbY29udEd1aWRlXSkgJiYgZ3VpZGVbY29udEd1aWRlXSkge1xuICAgICAgICB2YWx1ZVByb2Nlc3NlZCArPSBndWlkZVtjb250R3VpZGVdO1xuICAgICAgICBjb250R3VpZGUrKztcbiAgICAgIH1cblxuICAgICAgLy8gw4kgdW0gY2FyYWN0ZXIgdsOhbGlkbyBkZSBhY29yZG8gY29tIGEgbcOhc2NhcmFcbiAgICAgIGlmICh0aGlzLmlzS2V5VmFsaWRNYXNrKGNoYXJWYWx1ZSwgbWFza1tjb250R3VpZGVdKSkge1xuICAgICAgICB2YWx1ZVByb2Nlc3NlZCArPSBjaGFyVmFsdWU7XG4gICAgICAgIGNvbnRHdWlkZSsrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gU2UgbsOjbyDDqSB1bSBjYXJhY3RlciB2w6FsaWRvLCBkZXZlIGludGVycm9tcGVyLlxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5mb3JtYXRNb2RlbCkge1xuICAgICAgdGhpcy52YWx1ZVRvSW5wdXQgPSB2YWx1ZVByb2Nlc3NlZDtcbiAgICAgIHRoaXMudmFsdWVUb01vZGVsID0gdmFsdWVQcm9jZXNzZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmFsdWVUb0lucHV0ID0gdmFsdWVQcm9jZXNzZWQ7XG4gICAgICB0aGlzLnZhbHVlVG9Nb2RlbCA9IHRoaXMucmVtb3ZlRm9ybWF0dGluZ1ZhbHVlKHZhbHVlUHJvY2Vzc2VkKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlUHJvY2Vzc2VkO1xuICB9XG4gIC8vIHZlcmlmaWNhIHNlIHRlbSBhbGd1bSBjYXJhY3RlciBkZSBtYXNjYXJhIGFudGVzIGRvIGN1cnNvclxuICBjaGVja01hc2tCZWZvcmUoJGV2ZW50OiBhbnksIHBvc2l0aW9uOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5pc0ZpeGVkQ2hhcmFjdGVyR3VpZGUoJGV2ZW50LnRhcmdldC52YWx1ZS50b1N0cmluZygpLmNoYXJBdCh0aGlzLmluaXRpYWxQb3NpdGlvbiAtIDEpKSkge1xuICAgICAgdGhpcy5jaGFuZ2VQb3NpdGlvbigkZXZlbnQsIHBvc2l0aW9uKTtcbiAgICAgIHRoaXMuY2hlY2tNYXNrQmVmb3JlKCRldmVudCwgcG9zaXRpb24pO1xuICAgIH1cbiAgfVxuXG4gIC8vIHZlcmlmaWNhIHNlIHRlbSBhbGd1bSBjYXJhY3RlciBkZSBtYXNjYXJhIGRlcG9pcyBkbyBjdXJzb3JcbiAgY2hlY2tNYXNrQWZ0ZXIoJGV2ZW50OiBhbnksIHBvc2l0aW9uOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5pc0ZpeGVkQ2hhcmFjdGVyR3VpZGUoJGV2ZW50LnRhcmdldC52YWx1ZS50b1N0cmluZygpLmNoYXJBdCh0aGlzLmluaXRpYWxQb3NpdGlvbikpKSB7XG4gICAgICB0aGlzLmNoYW5nZVBvc2l0aW9uKCRldmVudCwgcG9zaXRpb24pO1xuICAgICAgdGhpcy5jaGVja01hc2tBZnRlcigkZXZlbnQsIHBvc2l0aW9uKTtcbiAgICB9XG4gIH1cblxuICAvLyBSZXRvcm5hIGEgbcOhc2NhcmEgc2VtIHVtIHZhbG9yIG9wY2lvbmFsXG4gIHJlcGxhY2VPcHRpb25hbE51bWJlcihtYXNrOiBzdHJpbmcpIHtcbiAgICBsZXQgaSA9IDk7XG4gICAgd2hpbGUgKGkgPj0gMCkge1xuICAgICAgaWYgKG1hc2suaW5kZXhPZihpICsgJz8nKSA+IC0xKSB7XG4gICAgICAgIHJldHVybiBtYXNrLnJlcGxhY2UoaSArICc/JywgJycpO1xuICAgICAgfVxuICAgICAgaS0tO1xuICAgIH1cbiAgICByZXR1cm4gbWFzaztcbiAgfVxuXG4gIC8vIFZlcmlmaWNhIHNlIGNvbnTDqW0gY2FyYWN0ZXJlcyBwZXJtaXRpZG9zIHNvbWVudGUgbmEgbcOhc2NhcmEgXFwvKCkgKy1cbiAgaXNGaXhlZENoYXJhY3Rlckd1aWRlKGtleTogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMudGVzdFJlZ2V4KGtleSwgdGhpcy5nZXRGaXhlZENoYXJhY3Rlckd1aWRlKCkpO1xuICB9XG5cbiAgLy8gUmV0b3JuYSBjYXJhY3RlcmVzIHBlcm1pdGlkb3Mgc29tZW50ZSBuYSBtw6FzY2FyYSBcXC8oKSArLVxuICBnZXRGaXhlZENoYXJhY3Rlckd1aWRlKCkge1xuICAgIHJldHVybiAvW1xcXFxcXC8oKSArLS5cXDpdL2c7XG4gIH1cblxuICAvLyBDYXJhY3RlcmVzIHBlcm1pdGlkb3MgZGUgc2VyZW0gZGlnaXRhZG9zXG4gIGxpc3RWYWxpZEtleXMoKSB7XG4gICAgcmV0dXJuIC9bYS16QS1aMC05XS9nO1xuICB9XG5cbiAgLy8gU2Ugw6kgdW0gZMOtZ2l0byB2w6FsaWRvXG4gIGlzS2V5VmFsaWQoa2V5Q29kZTogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaXNLZXlDb2RlVmFsaWQoa2V5Q29kZSk7XG4gIH1cblxuICAvLyBWZXJpZmljYSBzZSBhIHRlY2xhIGRpZ2l0YWRhIMOpIHBlcm1pdGlkYVxuICAvLyBQZXJtaXRlIGFwZW5hcyBuw7ptZXJvcywgbGV0cmFzLCBiYWNrc3BhY2UgZSBkZWxcbiAgaXNLZXlDb2RlVmFsaWQoa2V5Q29kZTogbnVtYmVyKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIChrZXlDb2RlID49IDQ4ICYmIGtleUNvZGUgPD0gNTcpIHx8XG4gICAgICAoa2V5Q29kZSA+PSA2NSAmJiBrZXlDb2RlIDw9IDkwKSB8fFxuICAgICAgKGtleUNvZGUgPj0gOTYgJiYga2V5Q29kZSA8PSAxMDUpIHx8XG4gICAgICBrZXlDb2RlID09PSA4IHx8XG4gICAgICBrZXlDb2RlID09PSA5IHx8XG4gICAgICBrZXlDb2RlID09PSA0NlxuICAgICk7XG4gIH1cblxuICAvLyBTZSBlc3TDoSBkZSBhY29yZG8gY29tIGEgbcOhc2NhcmFcbiAgaXNLZXlWYWxpZE1hc2soa2V5OiBhbnksIGtleU1hc2s6IGFueSkge1xuICAgIHJldHVybiB0aGlzLnRlc3RSZWdleChrZXksIHRoaXMucmVwbGFjZU1hc2soa2V5TWFzaykpO1xuICB9XG5cbiAgLy8gUmV0b3JuYSBzZSBhIGNoYXZlIGZvaSBhcHJvdmFkYSBwZWxhIGV4cHJlc3PDo28gcmVndWxhclxuICB0ZXN0UmVnZXgoa2V5OiBhbnksIHJlZ2V4OiBhbnkpIHtcbiAgICByZXR1cm4gcmVnZXgudGVzdChrZXkpO1xuICB9XG5cbiAgLy8gUmVtb3ZlIGEgZm9ybWF0YWPDo28gZG8gdmFsb3JcbiAgLy8gw4kgcG9zc8OtdmVsIHNlciBtZWxob3JhZG8gcGFyYSByZW1vdmVyIHBvbnR1YWxtZW50ZSBvcyBjYXJhY3RlcmVzIGZpeG9zIGRlIGFjb3JkbyBjb20gYSBtw6FzY2FyYVxuICByZW1vdmVGb3JtYXR0aW5nVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKHRoaXMuZ2V0Rml4ZWRDaGFyYWN0ZXJHdWlkZSgpLCAnJyk7XG4gIH1cblxuICAvLyBWZXJpZmljYSBzZSBjb250w6ltIHZhbG9yIG9wY2lvbmFsIG5hIG3DoXNjYXJhIDAtOT9cbiAgaGFzT3B0aW9uYWxOdW1iZXIobWFzazogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG1hc2subWF0Y2goL1xcZFxcPy9nKTtcbiAgfVxuXG4gIC8vIFJldG9ybmEgYSBleHByZXNzw6NvIHJlZ3VsYXIgY29ycmVzcG9uZGVudGUgYW8gY29tYW5kbyBwYXNzYWRvXG4gIHJlcGxhY2VNYXNrKGNoYXI6IHN0cmluZykge1xuICAgIGxldCByZWdleCA9IC8uLztcbiAgICBzd2l0Y2ggKGNoYXIpIHtcbiAgICAgIGNhc2UgJzAnOlxuICAgICAgICByZWdleCA9IC9bMF0vO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJzEnOlxuICAgICAgICByZWdleCA9IC9bMC0xXS87XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnMic6XG4gICAgICAgIHJlZ2V4ID0gL1swLTJdLztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICczJzpcbiAgICAgICAgcmVnZXggPSAvWzAtM10vO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJzQnOlxuICAgICAgICByZWdleCA9IC9bMC00XS87XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnNSc6XG4gICAgICAgIHJlZ2V4ID0gL1swLTVdLztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICc2JzpcbiAgICAgICAgcmVnZXggPSAvWzAtNl0vO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJzcnOlxuICAgICAgICByZWdleCA9IC9bMC03XS87XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnOCc6XG4gICAgICAgIHJlZ2V4ID0gL1swLThdLztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICc5JzpcbiAgICAgICAgcmVnZXggPSAvWzAtOV0vO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJyAnOlxuICAgICAgICByZWdleCA9IC9cXHMvO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0AnOlxuICAgICAgICByZWdleCA9IC9bYS16QS1aXS87XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndyc6XG4gICAgICAgIHJlZ2V4ID0gL1thLXpBLVowLTldLztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiByZWdleDtcbiAgfVxuXG4gIGdldFJlZ2V4RnJvbU1hc2sobWFzazogc3RyaW5nKSB7XG4gICAgaWYgKG1hc2spIHtcbiAgICAgIGxldCBwYXR0ZXJuO1xuICAgICAgaWYgKHRoaXMuZm9ybWF0TW9kZWwpIHtcbiAgICAgICAgcGF0dGVybiA9IG1hc2sucmVwbGFjZSgvXFxcXC9nLCAnXFxcXFxcXFwnKTtcbiAgICAgICAgcGF0dGVybiA9IHBhdHRlcm4ucmVwbGFjZSgvXFwrL2csICdcXFxcKycpO1xuICAgICAgICBwYXR0ZXJuID0gcGF0dGVybi5yZXBsYWNlKC9cXC4vZywgJ1xcXFwuJyk7XG4gICAgICAgIHBhdHRlcm4gPSBwYXR0ZXJuLnJlcGxhY2UoLy0vZywgJy0nKTtcbiAgICAgICAgcGF0dGVybiA9IHBhdHRlcm4ucmVwbGFjZSgvXFwoL2csICdcXFxcKCcpO1xuICAgICAgICBwYXR0ZXJuID0gcGF0dGVybi5yZXBsYWNlKC9cXCkvZywgJ1xcXFwpJyk7XG4gICAgICAgIHBhdHRlcm4gPSBwYXR0ZXJuLnJlcGxhY2UoL1xcLy9nLCAnXFxcXC8nKTtcbiAgICAgICAgcGF0dGVybiA9IHBhdHRlcm4ucmVwbGFjZSgvXFxzL2csICdcXFxccycpO1xuICAgICAgICBwYXR0ZXJuID0gcGF0dGVybi5yZXBsYWNlKC86L2csICdcXFxcOicpO1xuICAgICAgICBwYXR0ZXJuID0gcGF0dGVybi5yZXBsYWNlKC9cXEAoPyFcXHMpL2csICdcXFxcdycpO1xuICAgICAgICBwYXR0ZXJuID0gcGF0dGVybi5yZXBsYWNlKC9cXGQvZywgJ1xcXFx3Jyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXR0ZXJuID0gbWFzay5yZXBsYWNlKC9cXFxcL2csICcnKTtcbiAgICAgICAgcGF0dGVybiA9IHBhdHRlcm4ucmVwbGFjZSgvXFwrL2csICcnKTtcbiAgICAgICAgcGF0dGVybiA9IHBhdHRlcm4ucmVwbGFjZSgvXFwuL2csICcnKTtcbiAgICAgICAgcGF0dGVybiA9IHBhdHRlcm4ucmVwbGFjZSgvLS9nLCAnJyk7XG4gICAgICAgIHBhdHRlcm4gPSBwYXR0ZXJuLnJlcGxhY2UoL1xcKC9nLCAnJyk7XG4gICAgICAgIHBhdHRlcm4gPSBwYXR0ZXJuLnJlcGxhY2UoL1xcKS9nLCAnJyk7XG4gICAgICAgIHBhdHRlcm4gPSBwYXR0ZXJuLnJlcGxhY2UoL1xcLy9nLCAnJyk7XG4gICAgICAgIHBhdHRlcm4gPSBwYXR0ZXJuLnJlcGxhY2UoL1xccy9nLCAnJyk7XG4gICAgICAgIHBhdHRlcm4gPSBwYXR0ZXJuLnJlcGxhY2UoLzovZywgJycpO1xuICAgICAgICBwYXR0ZXJuID0gcGF0dGVybi5yZXBsYWNlKC9cXEAvZywgJ1xcXFx3Jyk7XG4gICAgICAgIHBhdHRlcm4gPSBwYXR0ZXJuLnJlcGxhY2UoL1xcZC9nLCAnXFxcXHcnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBwYXR0ZXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
463
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbWFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC9wby1pbnB1dC9wby1tYXNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sTUFBTTtJQUNqQixJQUFJLEdBQVcsRUFBRSxDQUFDO0lBQ2xCLFdBQVcsR0FBWSxLQUFLLENBQUM7SUFDN0Isc0JBQXNCO0lBQ3RCLGVBQWUsR0FBVyxDQUFDLENBQUM7SUFDNUIsYUFBYSxHQUFXLENBQUMsQ0FBQztJQUUxQixPQUFPLEdBQVcsRUFBRSxDQUFDO0lBQ3JCLElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsWUFBWSxDQUFTO0lBQ3JCLElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQUksZUFBZSxDQUFDLEtBQWE7UUFDL0IsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUVELFlBQVksQ0FBUztJQUNyQixJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLGVBQWUsQ0FBQyxLQUFhO1FBQy9CLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFFRCxjQUFjLENBQVU7SUFFeEIsWUFBWSxJQUFZLEVBQUUsV0FBb0I7UUFDNUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFXO1FB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QUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNwQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ3hDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQzthQUN6QztZQUNELE9BQU8sT0FBTyxDQUFDO1NBQ2hCO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQYXJhIHVzYXIgbyBwby1tYXNrIMOpIHByZWNpc28gaW5zdGFuY2lhciBlc3RhIGNsYXNzZSBwYXNzYW5kbyBhIG3DoXNjYXJhIGNvbW9cbiAqIHByaW1laXJvIHBhcsOibWV0cm8sIGUgbm8gc2VndW5kbyBwYXLDom1ldHJvLCBkZXZlIHNlIGluZm9ybWFkbyB0cnVlLCBjYXNvIHF1ZWlyYVxuICogcXVlIG8gbW9kZWwgc2VqYSBmb3JtYXRhZG8gb3UgZmFsc2UgcGFyYSBvIHF1ZSBvIG1vZGVsIHNlamEgbGltcG8uXG4gKi9cbmV4cG9ydCBjbGFzcyBQb01hc2sge1xuICBtYXNrOiBzdHJpbmcgPSAnJztcbiAgZm9ybWF0TW9kZWw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLy8gY29udHJvbGUgZGUgcG9zacOnw6NvXG4gIGluaXRpYWxQb3NpdGlvbjogbnVtYmVyID0gMDtcbiAgZmluYWxQb3NpdGlvbjogbnVtYmVyID0gMDtcblxuICBwYXR0ZXJuOiBzdHJpbmcgPSAnJztcbiAgZ2V0IGdldFBhdHRlcm4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wYXR0ZXJuO1xuICB9XG5cbiAgdmFsdWVUb0lucHV0OiBzdHJpbmc7XG4gIGdldCBnZXRWYWx1ZVRvSW5wdXQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZVRvSW5wdXQ7XG4gIH1cbiAgc2V0IHNldFZhbHVlVG9JbnB1dCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZVRvSW5wdXQgPSB2YWx1ZTtcbiAgfVxuXG4gIHZhbHVlVG9Nb2RlbDogc3RyaW5nO1xuICBnZXQgZ2V0VmFsdWVUb01vZGVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVUb01vZGVsO1xuICB9XG4gIHNldCBzZXRWYWx1ZVRvTW9kZWwodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWVUb01vZGVsID0gdmFsdWU7XG4gIH1cblxuICBmb3JtYXR0aW5nRW5kczogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihtYXNrOiBzdHJpbmcsIGZvcm1hdE1vZGVsOiBib29sZWFuKSB7XG4gICAgdGhpcy5tYXNrID0gbWFzaztcbiAgICB0aGlzLmZvcm1hdE1vZGVsID0gZm9ybWF0TW9kZWw7XG4gICAgdGhpcy5wYXR0ZXJuID0gdGhpcy5nZXRSZWdleEZyb21NYXNrKG1hc2spO1xuICB9XG5cbiAga2V5dXAoJGV2ZW50OiBhbnkpIHtcbiAgICBpZiAodGhpcy5tYXNrKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9ICRldmVudC50YXJnZXQudmFsdWU7XG4gICAgICAvLyBmb3JtYXRhIG8gdmFsb3IgcXVhbmRvIGZvciBjb2xhZG8gY29tIGNvbnRyb2wgKyB2IGUgcmVwb3NpY2lvbmEgbyBjdXJzb3JcbiAgICAgIGlmICgkZXZlbnQua2V5Q29kZSA9PT0gMTcgfHwgJGV2ZW50LmtleUNvZGUgPT09IDkxKSB7XG4gICAgICAgICRldmVudC50YXJnZXQudmFsdWUgPSB0aGlzLmNvbnRyb2xGb3JtYXR0aW5nKHZhbHVlKTtcbiAgICAgICAgdGhpcy5yZXNldFBvc2l0aW9ucygkZXZlbnQpO1xuICAgICAgfVxuXG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgc3dpdGNoICgkZXZlbnQua2V5Q29kZSkge1xuICAgICAgICBjYXNlIDM3OiAvLyBzZXRhIGVzcXVlcmRhXG4gICAgICAgICAgaWYgKHRoaXMuaW5pdGlhbFBvc2l0aW9uID4gMCkge1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsUG9zaXRpb24tLTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5zZXRQb3NpdGlvbk5vdFNoaWZ0S2V5KCRldmVudCk7XG4gICAgICAgICAgdGhpcy5zZXRTZWxlY3Rpb25SYW5nZSgkZXZlbnQpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgMzk6IC8vIHNldGEgZGlyZWl0YVxuICAgICAgICAgIGlmICh0aGlzLmluaXRpYWxQb3NpdGlvbiA8IHZhbHVlLnRvU3RyaW5nKCkubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxQb3NpdGlvbisrO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnNldFBvc2l0aW9uTm90U2hpZnRLZXkoJGV2ZW50KTtcbiAgICAgICAgICB0aGlzLnNldFNlbGVjdGlvblJhbmdlKCRldmVudCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAzNTogLy8gZW5kXG4gICAgICAgICAgdGhpcy5maW5hbFBvc2l0aW9uID0gdmFsdWUudG9TdHJpbmcoKS5sZW5ndGg7XG4gICAgICAgICAgaWYgKCRldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgICAgdGhpcy5zZXRQb3NpdGlvbnMoJGV2ZW50KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsUG9zaXRpb24gPSB0aGlzLmZpbmFsUG9zaXRpb247XG4gICAgICAgICAgICB0aGlzLnNldFBvc2l0aW9ucygkZXZlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIDM2OiAvLyBIT01FXG4gICAgICAgICAgaWYgKCRldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgICAgdGhpcy5maW5hbFBvc2l0aW9uID0gdGhpcy5pbml0aWFsUG9zaXRpb247XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxQb3NpdGlvbiA9IDA7XG4gICAgICAgICAgICB0aGlzLnNldFBvc2l0aW9ucygkZXZlbnQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxQb3NpdGlvbiA9IDA7XG4gICAgICAgICAgICB0aGlzLmZpbmFsUG9zaXRpb24gPSAwO1xuICAgICAgICAgICAgdGhpcy5zZXRQb3NpdGlvbnMoJGV2ZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2V0UG9zaXRpb25Ob3RTaGlmdEtleSgkZXZlbnQ6IGFueSkge1xuICAgIGlmICghJGV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICB0aGlzLmZpbmFsUG9zaXRpb24gPSB0aGlzLmluaXRpYWxQb3NpdGlvbjtcbiAgICB9XG4gIH1cblxuICBzZXRTZWxlY3Rpb25SYW5nZSgkZXZlbnQ6IGFueSkge1xuICAgIGlmICh0aGlzLmluaXRpYWxQb3NpdGlvbiA+IHRoaXMuZmluYWxQb3NpdGlvbikge1xuICAgICAgJGV2ZW50LnRhcmdldC5zZXRTZWxlY3Rpb25SYW5nZSh0aGlzLmZpbmFsUG9zaXRpb24sIHRoaXMuaW5pdGlhbFBvc2l0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgJGV2ZW50LnRhcmdldC5zZXRTZWxlY3Rpb25SYW5nZSh0aGlzLmluaXRpYWxQb3NpdGlvbiwgdGhpcy5maW5hbFBvc2l0aW9uKTtcbiAgICB9XG4gIH1cblxuICBrZXlkb3duKCRldmVudDogYW55KSB7XG4gICAgaWYgKHRoaXMubWFzaykge1xuICAgICAgbGV0IHZhbHVlOiBzdHJpbmcgPSAkZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgICAgaWYgKCRldmVudC5rZXlDb2RlID09PSA5KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCEkZXZlbnQuY3RybEtleSAmJiAhJGV2ZW50Lm1ldGFLZXkpIHtcbiAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG5cbiAgICAgIC8vIE7Do28gZmF6IG5hZGEgcXVhbmRvIGZvciBkaWdpdGFkbyBDVFJMIG91IENPTU1BTkQgZSBWXG4gICAgICAvLyBKw6EgZXN0w6Egc2VuZG8gdHJhdGFkbyBubyBldmVudG8ga2V5dXBcbiAgICAgIGlmIChcbiAgICAgICAgJGV2ZW50LmN0cmxLZXkgfHxcbiAgICAgICAgKCRldmVudC5tZXRhS2V5ICYmICRldmVudC5rZXlDb2RlICE9PSA4NikgfHxcbiAgICAgICAgKCRldmVudC5rZXlDb2RlID49IDM3ICYmICRldmVudC5rZXlDb2RlIDw9IDQwKSB8fFxuICAgICAgICAkZXZlbnQua2V5Q29kZSA9PT0gMTYgfHxcbiAgICAgICAgJGV2ZW50LmtleUNvZGUgPT09IDlcbiAgICAgICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIFZhbGlkYSBhIHRlY2xhIGRpZ2l0YWRhXG4gICAgICBpZiAodGhpcy5pc0tleVZhbGlkKCRldmVudC5rZXlDb2RlKSkge1xuICAgICAgICBpZiAodGhpcy5maW5hbFBvc2l0aW9uID09PSBudWxsKSB7XG4gICAgICAgICAgdGhpcy5maW5hbFBvc2l0aW9uID0gdGhpcy5pbml0aWFsUG9zaXRpb247XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZXZlcnRQb3NpdGlvbnModGhpcy5pbml0aWFsUG9zaXRpb24sIHRoaXMuZmluYWxQb3NpdGlvbik7XG5cbiAgICAgICAgc3dpdGNoICgkZXZlbnQua2V5Q29kZSkge1xuICAgICAgICAgIGNhc2UgODogLy8gYmFja3NwYWNlXG4gICAgICAgICAgICB0aGlzLmdldFBvc2l0aW9uKCRldmVudCk7XG4gICAgICAgICAgICBpZiAodGhpcy5pbml0aWFsUG9zaXRpb24gPCAwKSB7XG4gICAgICAgICAgICAgIHRoaXMuaW5pdGlhbFBvc2l0aW9uID0gMDtcbiAgICAgICAgICAgICAgdGhpcy5zZXRQb3NpdGlvbnMoJGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmluaXRpYWxQb3NpdGlvbiA9PT0gdGhpcy5maW5hbFBvc2l0aW9uKSB7XG4gICAgICAgICAgICAgIHRoaXMuY2hlY2tNYXNrQmVmb3JlKCRldmVudCwgLTEpO1xuICAgICAgICAgICAgICBpZiAodGhpcy5pbml0aWFsUG9zaXRpb24gIT09IDApIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnNsaWNlKDAsIHRoaXMuaW5pdGlhbFBvc2l0aW9uIC0gMSkgKyB2YWx1ZS5zbGljZSh0aGlzLmZpbmFsUG9zaXRpb24pO1xuICAgICAgICAgICAgICAgIHZhbHVlID0gdGhpcy5jb250cm9sRm9ybWF0dGluZyh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgJGV2ZW50LnRhcmdldC52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlUG9zaXRpb24oJGV2ZW50LCAtMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja01hc2tCZWZvcmUoJGV2ZW50LCAtMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRQb3NpdGlvbnMoJGV2ZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0UG9zaXRpb25zKCRldmVudCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuY2xlYXJSYW5nZVNlbGVjdGlvbih2YWx1ZSwgJGV2ZW50LCB0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2V0UG9zaXRpb25zKCRldmVudCk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgNDY6IC8vIGRlbGV0ZVxuICAgICAgICAgICAgdGhpcy5nZXRQb3NpdGlvbigkZXZlbnQpO1xuICAgICAgICAgICAgaWYgKHRoaXMuaW5pdGlhbFBvc2l0aW9uID09PSB0aGlzLmZpbmFsUG9zaXRpb24pIHtcbiAgICAgICAgICAgICAgdGhpcy5jaGVja01hc2tBZnRlcigkZXZlbnQsIDEpO1xuICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnNsaWNlKDAsIHRoaXMuaW5pdGlhbFBvc2l0aW9uKSArIHZhbHVlLnNsaWNlKHRoaXMuZmluYWxQb3NpdGlvbiArIDEpO1xuICAgICAgICAgICAgICB2YWx1ZSA9IHRoaXMuY29udHJvbEZvcm1hdHRpbmcodmFsdWUpO1xuICAgICAgICAgICAgICAkZXZlbnQudGFyZ2V0LnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICAgIHRoaXMuc2V0UG9zaXRpb25zKCRldmVudCk7XG4gICAgICAgICAgICAgIHRoaXMucmVzZXRQb3NpdGlvbnMoJGV2ZW50KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuY2xlYXJSYW5nZVNlbGVjdGlvbih2YWx1ZSwgJGV2ZW50LCBmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNldFBvc2l0aW9ucygkZXZlbnQpO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gcXVhbHF1ZXIgb3V0cmEgdGVjbGEgdsOhbGlkYVxuICAgICAgICAgICAgdGhpcy5nZXRQb3NpdGlvbigkZXZlbnQpO1xuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zbGljZSgwLCB0aGlzLmluaXRpYWxQb3NpdGlvbikgKyAkZXZlbnQua2V5ICsgdmFsdWUuc2xpY2UodGhpcy5maW5hbFBvc2l0aW9uKTtcbiAgICAgICAgICAgIHZhbHVlID0gdGhpcy5jb250cm9sRm9ybWF0dGluZyh2YWx1ZSk7XG4gICAgICAgICAgICAkZXZlbnQudGFyZ2V0LnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZVBvc2l0aW9uKCRldmVudCwgMSk7XG4gICAgICAgICAgICB0aGlzLmNoZWNrTWFza0JlZm9yZSgkZXZlbnQsIDEpO1xuICAgICAgICAgICAgdGhpcy5zZXRQb3NpdGlvbnMoJGV2ZW50KTtcbiAgICAgICAgICAgIHRoaXMucmVzZXRQb3NpdGlvbnMoJGV2ZW50KTtcbiAgICAgICAgICAgIHRoaXMuc2V0UG9zaXRpb25zKCRldmVudCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjbGVhclJhbmdlU2VsZWN0aW9uKHZhbHVlOiBzdHJpbmcsICRldmVudDogYW55LCBpc0JhY2tzcGFjZTogYm9vbGVhbikge1xuICAgIHZhbHVlID0gdmFsdWUuc2xpY2UoMCwgdGhpcy5pbml0aWFsUG9zaXRpb24pICsgdmFsdWUuc2xpY2UodGhpcy5maW5hbFBvc2l0aW9uKTtcbiAgICB2YWx1ZSA9IHRoaXMuY29udHJvbEZvcm1hdHRpbmcodmFsdWUpO1xuICAgICRldmVudC50YXJnZXQudmFsdWUgPSB2YWx1ZTtcblxuICAgIGlmIChpc0JhY2tzcGFjZSkge1xuICAgICAgdGhpcy5jaGVja01hc2tCZWZvcmUoJGV2ZW50LCAtMSk7XG4gICAgfVxuXG4gICAgdGhpcy5zZXRQb3NpdGlvbnMoJGV2ZW50KTtcbiAgICB0aGlzLnJlc2V0UG9zaXRpb25zKCRldmVudCk7XG4gIH1cblxuICAvLyBwYXNzYSBhIHBvc2nDp8OjbyBkbyBjbGljayBwYXJhIG8gY29udHJvbGUgZGUgcG9zacOnw6NvXG4gIGNsaWNrKCRldmVudDogYW55KSB7XG4gICAgdGhpcy5pbml0aWFsUG9zaXRpb24gPSAkZXZlbnQudGFyZ2V0LnNlbGVjdGlvblN0YXJ0O1xuICAgIHRoaXMuZmluYWxQb3NpdGlvbiA9ICRldmVudC50YXJnZXQuc2VsZWN0aW9uRW5kO1xuICB9XG5cbiAgYmx1cigkZXZlbnQ6IGFueSkge1xuICAgIC8vIFNlIGhvdXZlciBhbGd1bSB2YWxvciBkZWZpbmlkbyBuYSBtw6FzY2FyYVxuICAgIGlmICh0aGlzLm1hc2spIHtcbiAgICAgIC8vIHBlZ2EgbyB2YWxvciBkbyBjYW1wbywgZm9ybWF0YSBlIHBhc3NhIHBhcmEgbyBtb2RlbFxuICAgICAgbGV0IHZhbHVlID0gJGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICAgIHZhbHVlID0gdGhpcy5jb250cm9sRm9ybWF0dGluZyh2YWx1ZSk7XG4gICAgICAkZXZlbnQudGFyZ2V0LnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcmV2ZXJ0UG9zaXRpb25zKGluaXRpYWxQb3NpdGlvbjogbnVtYmVyLCBmaW5hbFBvc2l0aW9uOiBudW1iZXIpIHtcbiAgICBpZiAoaW5pdGlhbFBvc2l0aW9uID4gZmluYWxQb3NpdGlvbikge1xuICAgICAgLy8gaW52ZXJ0ZSBvIGNvbnRyb2xlIGRlIHBvc2nDp8OjbyBjYXNvIG8gaW5pY2lhbCBlc3RlamEgbWFpb3IgcXVlIG8gZmluYWxcbiAgICAgIGNvbnN0IHRlbXBQb3NpdGlvbiA9IGluaXRpYWxQb3NpdGlvbjtcbiAgICAgIHRoaXMuaW5pdGlhbFBvc2l0aW9uID0gZmluYWxQb3NpdGlvbjtcbiAgICAgIHRoaXMuZmluYWxQb3NpdGlvbiA9IHRlbXBQb3NpdGlvbjtcbiAgICB9XG4gIH1cblxuICAvLyByZXNldGEgbyBjb250cm9sZSBkZSBwb3Npw6fDo29cbiAgcmVzZXRQb3NpdGlvbnMoJGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmluaXRpYWxQb3NpdGlvbiA9ICRldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQ7XG4gICAgdGhpcy5maW5hbFBvc2l0aW9uID0gdGhpcy5pbml0aWFsUG9zaXRpb247XG4gIH1cblxuICAvLyBwb3NpY2lvbmEgbyBjdXJzb3IgZGUgYWNvcmRvIGNvbSBvIGNvbnRyb2xlIGRlIHBvc2nDp8Ojb1xuICBzZXRQb3NpdGlvbnMoJGV2ZW50OiBhbnkpIHtcbiAgICAkZXZlbnQudGFyZ2V0LnNldFNlbGVjdGlvblJhbmdlKHRoaXMuaW5pdGlhbFBvc2l0aW9uLCB0aGlzLmZpbmFsUG9zaXRpb24pO1xuICB9XG5cbiAgLy8gbXVkYSBhIHBvc2nDp8OjbyBkbyBjdXJzb3IgZSBhdHVhbGl6YSBvIGNvbnRyb2xlIGRlIHBvc2nDp8Ojb1xuICBjaGFuZ2VQb3NpdGlvbigkZXZlbnQ6IGFueSwgdmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuaW5pdGlhbFBvc2l0aW9uID0gdGhpcy5pbml0aWFsUG9zaXRpb24gKyB2YWx1ZTtcbiAgICB0aGlzLmZpbmFsUG9zaXRpb24gPSB0aGlzLmZpbmFsUG9zaXRpb24gKyB2YWx1ZTtcbiAgICB0aGlzLnNldFBvc2l0aW9ucygkZXZlbnQpO1xuICB9XG5cbiAgZ2V0UG9zaXRpb24oJGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmluaXRpYWxQb3NpdGlvbiA9ICRldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQ7XG4gICAgdGhpcy5maW5hbFBvc2l0aW9uID0gJGV2ZW50LnRhcmdldC5zZWxlY3Rpb25FbmQ7XG4gICAgdGhpcy5zZXRQb3NpdGlvbnMoJGV2ZW50KTtcbiAgfVxuXG4gIC8vIE3DqXRvZG8gcmVzcG9uc8OhdmVsIHBvciBjb250cm9sYXIgYSBmb3JtYXRhw6fDo28gZSBhcGxpY2FyIHRvZGFzIGFzIG3DoXNjYXJhIHBvc3PDrXZlaXNcbiAgLy8gcXVhbmRvIGhvdXZlciB2YWxvcmVzIG9wY2lvbmFpcyAoPylcbiAgY29udHJvbEZvcm1hdHRpbmcodmFsdWU6IHN0cmluZykge1xuICAgIC8vIFNlIG8gdmFsb3IgZm9yIHZhemlvLCByZXRvcm5hIHZhemlvXG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgdGhpcy52YWx1ZVRvSW5wdXQgPSAnJztcbiAgICAgIHRoaXMudmFsdWVUb01vZGVsID0gJyc7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGxldCB2YWx1ZVByb2Nlc3NlZDtcbiAgICBsZXQgbWFza1RtcCA9IHRoaXMubWFzaztcblxuICAgIC8vIEFycmF5IHF1ZSBzZXLDoSB1c2FkbyBwYXJhIGFybWF6ZW5hciB0b2RhcyBhcyBtw6FzY2FyYXMgcG9zc8OtdmVpcyBwYXJhXG4gICAgLy8gcXVhbmRvIGhvdXZlciB1bSB2YWxvciBvcGNpb25hbCAoPylcbiAgICBjb25zdCBhcnJNYXNrczogQXJyYXk8YW55PiA9IFtdO1xuICAgIGxldCBjb250TWFza3MgPSAwO1xuXG4gICAgLy8gRW5xdWFudG8gaG91dmVyIGFsZ3VtIDk/IG5hIG3DoXNjYXJhXG4gICAgd2hpbGUgKHRoaXMuaGFzT3B0aW9uYWxOdW1iZXIobWFza1RtcCkpIHtcbiAgICAgIGFyck1hc2tzLnB1c2gobWFza1RtcCk7XG4gICAgICBtYXNrVG1wID0gdGhpcy5yZXBsYWNlT3B0aW9uYWxOdW1iZXIobWFza1RtcCk7XG4gICAgfVxuICAgIGFyck1hc2tzLnB1c2gobWFza1RtcCk7XG5cbiAgICAvLyBJbnZlcnRlIG8gYXJyYXlcbiAgICBhcnJNYXNrcy5yZXZlcnNlKCk7XG5cbiAgICAvLyBJbmZvcm1hIHF1ZSBhIGZvcm1hdGHDp8OjbyBhaW5kYSBuw6NvIGNoZWdvdSBhbyBmaW1cbiAgICB0aGlzLmZvcm1hdHRpbmdFbmRzID0gZmFsc2U7XG5cbiAgICB3aGlsZSAoIXRoaXMuZm9ybWF0dGluZ0VuZHMpIHtcbiAgICAgIC8vIFNldGEgYSBmb3JtYXRhw6fDo28gY29tbyB0ZXJtaW5hZGFcbiAgICAgIC8vIEVudMOjbyBvIG3DqXRvZG8gZm9ybWF0VmFsdWUgaXLDoSBzZXRhciBjb21vIG7Do28gdGVybWluYWRvIGNhc28gaGFqYVxuICAgICAgdGhpcy5mb3JtYXR0aW5nRW5kcyA9IHRydWU7XG5cbiAgICAgIC8vIFNlIG7Do28gZXhpc3RlIG1haXMgbmVuaHVtYSBtw6FzY2FyYSBwb3Nzw612ZWwsIGVudMOjbyBlbmNlcnJhIGEgZm9ybWF0YcOnw6NvXG4gICAgICBpZiAoIWFyck1hc2tzW2NvbnRNYXNrc10pIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIC8vIENoYW1hIGEgZm9ybWF0YcOnw6NvIHBhc3NhbmRvIGEgbcOhc2NhcmEgZSBvIHZhbG9yXG4gICAgICB2YWx1ZVByb2Nlc3NlZCA9IHRoaXMuZm9ybWF0VmFsdWUodmFsdWUsIGFyck1hc2tzW2NvbnRNYXNrc10pO1xuICAgICAgY29udE1hc2tzKys7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlUHJvY2Vzc2VkO1xuICB9XG5cbiAgLy8gRnVuw6fDo28gcXVlIGZvcm1hdGEgYSBtw6FzY2FyYSBjb20gbyB2YWxvciBwYXNzYWRvXG4gIGZvcm1hdFZhbHVlKHZhbHVlOiBzdHJpbmcsIG1hc2s6IHN0cmluZykge1xuICAgIC8vIFJlbW92ZSBhcyBtYXJjYXMgZGUgdmFsb3Igb3BjaW9uYSAoPylcbiAgICBtYXNrID0gbWFzay5yZXBsYWNlKC9cXD8vZywgJycpO1xuXG4gICAgLy8gU3Vic3RpdHVpIHRvZG9zIG9zIGNhcmFjdGVyZXMgcXVlIG7Do28gc8OjbyBmaXhvcyBkYSBtw6FzY2FyYSBwb3IgX1xuICAgIGNvbnN0IGd1aWRlID0gbWFzay5yZXBsYWNlKHRoaXMubGlzdFZhbGlkS2V5cygpLCAnXycpO1xuXG4gICAgLy8gQ29udGFkb3IgdXNhZG8gcGFyYSBwZXJjb3JyZXIgbyBndWlkZVxuICAgIGxldCBjb250R3VpZGU6IG51bWJlciA9IDA7XG5cbiAgICAvLyBTdHJpbmcgZmluYWwgZm9ybWF0YWRhXG4gICAgbGV0IHZhbHVlUHJvY2Vzc2VkOiBzdHJpbmcgPSAnJztcblxuICAgIC8vIFJlbW92ZSBkbyB2YWxvciB0b2RvcyBvcyBjYXJhY3RlcmVzIGZpeG9zIGNvbW8gKCkvLStcbiAgICB2YWx1ZSA9IHRoaXMucmVtb3ZlRm9ybWF0dGluZ1ZhbHVlKHZhbHVlKTtcblxuICAgIC8vIFBlcmNvcnJlIHRvZG8gbyB2YWxvciBlIGNvbG9jYSBhIGZvcm1hdGHDp8OjbyBkZSBhY29yZG8gY29tIGEgbcOhc2NhcmFcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBjaGFyVmFsdWUgPSB2YWx1ZVtpXTtcblxuICAgICAgLy8gU2UgbyBndWlkZSBhY2Fib3UsIHNldGEgYSBmb3JtYXRhw6fDo28gY29tbyBuw6NvIHRlcm1pbmFkYSBwYXJhIHF1ZSBvIG3DqXRvZG8gY29udHJvbEZvcm1hdHRpbmdcbiAgICAgIC8vIHRlbnRlIGZvcm1hdGFyIGNvbSBvdXRyYSBwb3Nzw612ZWwgbcOhc2NhcmFcbiAgICAgIGlmICghZ3VpZGVbY29udEd1aWRlXSkge1xuICAgICAgICB0aGlzLmZvcm1hdHRpbmdFbmRzID0gZmFsc2U7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICAvLyBQZXJjb3JyZSBvIEd1aWRlIGVucXVhbnRvIHRlbSBjYXJhY3RlcmVzIGZpeG9zXG4gICAgICB3aGlsZSAodGhpcy5pc0ZpeGVkQ2hhcmFjdGVyR3VpZGUoZ3VpZGVbY29udEd1aWRlXSkgJiYgZ3VpZGVbY29udEd1aWRlXSkge1xuICAgICAgICB2YWx1ZVByb2Nlc3NlZCArPSBndWlkZVtjb250R3VpZGVdO1xuICAgICAgICBjb250R3VpZGUrKztcbiAgICAgIH1cblxuICAgICAgLy8gw4kgdW0gY2FyYWN0ZXIgdsOhbGlkbyBkZSBhY29yZG8gY29tIGEgbcOhc2NhcmFcbiAgICAgIGlmICh0aGlzLmlzS2V5VmFsaWRNYXNrKGNoYXJWYWx1ZSwgbWFza1tjb250R3VpZGVdKSkge1xuICAgICAgICB2YWx1ZVByb2Nlc3NlZCArPSBjaGFyVmFsdWU7XG4gICAgICAgIGNvbnRHdWlkZSsrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gU2UgbsOjbyDDqSB1bSBjYXJhY3RlciB2w6FsaWRvLCBkZXZlIGludGVycm9tcGVyLlxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5mb3JtYXRNb2RlbCkge1xuICAgICAgdGhpcy52YWx1ZVRvSW5wdXQgPSB2YWx1ZVByb2Nlc3NlZDtcbiAgICAgIHRoaXMudmFsdWVUb01vZGVsID0gdmFsdWVQcm9jZXNzZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmFsdWVUb0lucHV0ID0gdmFsdWVQcm9jZXNzZWQ7XG4gICAgICB0aGlzLnZhbHVlVG9Nb2RlbCA9IHRoaXMucmVtb3ZlRm9ybWF0dGluZ1ZhbHVlKHZhbHVlUHJvY2Vzc2VkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWVQcm9jZXNzZWQ7XG4gIH1cblxuICAvLyB2ZXJpZmljYSBzZSB0ZW0gYWxndW0gY2FyYWN0ZXIgZGUgbWFzY2FyYSBhbnRlcyBkbyBjdXJzb3JcbiAgY2hlY2tNYXNrQmVmb3JlKCRldmVudDogYW55LCBwb3NpdGlvbjogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuaXNGaXhlZENoYXJhY3Rlckd1aWRlKCRldmVudC50YXJnZXQudmFsdWUudG9TdHJpbmcoKS5jaGFyQXQodGhpcy5pbml0aWFsUG9zaXRpb24gLSAxKSkpIHtcbiAgICAgIHRoaXMuY2hhbmdlUG9zaXRpb24oJGV2ZW50LCBwb3NpdGlvbik7XG4gICAgICB0aGlzLmNoZWNrTWFza0JlZm9yZSgkZXZlbnQsIHBvc2l0aW9uKTtcbiAgICB9XG4gIH1cblxuICAvLyB2ZXJpZmljYSBzZSB0ZW0gYWxndW0gY2FyYWN0ZXIgZGUgbWFzY2FyYSBkZXBvaXMgZG8gY3Vyc29yXG4gIGNoZWNrTWFza0FmdGVyKCRldmVudDogYW55LCBwb3NpdGlvbjogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuaXNGaXhlZENoYXJhY3Rlckd1aWRlKCRldmVudC50YXJnZXQudmFsdWUudG9TdHJpbmcoKS5jaGFyQXQodGhpcy5pbml0aWFsUG9zaXRpb24pKSkge1xuICAgICAgdGhpcy5jaGFuZ2VQb3NpdGlvbigkZXZlbnQsIHBvc2l0aW9uKTtcbiAgICAgIHRoaXMuY2hlY2tNYXNrQWZ0ZXIoJGV2ZW50LCBwb3NpdGlvbik7XG4gICAgfVxuICB9XG5cbiAgLy8gUmV0b3JuYSBhIG3DoXNjYXJhIHNlbSB1bSB2YWxvciBvcGNpb25hbFxuICByZXBsYWNlT3B0aW9uYWxOdW1iZXIobWFzazogc3RyaW5nKSB7XG4gICAgbGV0IGkgPSA5O1xuICAgIHdoaWxlIChpID49IDApIHtcbiAgICAgIGlmIChtYXNrLmluZGV4T2YoaSArICc/JykgPiAtMSkge1xuICAgICAgICByZXR1cm4gbWFzay5yZXBsYWNlKGkgKyAnPycsICcnKTtcbiAgICAgIH1cbiAgICAgIGktLTtcbiAgICB9XG4gICAgcmV0dXJuIG1hc2s7XG4gIH1cblxuICAvLyBWZXJpZmljYSBzZSBjb250w6ltIGNhcmFjdGVyZXMgcGVybWl0aWRvcyBzb21lbnRlIG5hIG3DoXNjYXJhIFxcLygpICstXG4gIGlzRml4ZWRDaGFyYWN0ZXJHdWlkZShrZXk6IGFueSkge1xuICAgIHJldHVybiB0aGlzLnRlc3RSZWdleChrZXksIHRoaXMuZ2V0Rml4ZWRDaGFyYWN0ZXJHdWlkZSgpKTtcbiAgfVxuXG4gIC8vIFJldG9ybmEgY2FyYWN0ZXJlcyBwZXJtaXRpZG9zIHNvbWVudGUgbmEgbcOhc2NhcmEgXFwvKCkgKy1cbiAgZ2V0Rml4ZWRDaGFyYWN0ZXJHdWlkZSgpIHtcbiAgICByZXR1cm4gL1tcXFxcXFwvKCkgKy0uXFw6XS9nO1xuICB9XG5cbiAgLy8gQ2FyYWN0ZXJlcyBwZXJtaXRpZG9zIGRlIHNlcmVtIGRpZ2l0YWRvc1xuICBsaXN0VmFsaWRLZXlzKCkge1xuICAgIHJldHVybiAvW2EtekEtWjAtOV0vZztcbiAgfVxuXG4gIC8vIFNlIMOpIHVtIGTDrWdpdG8gdsOhbGlkb1xuICBpc0tleVZhbGlkKGtleUNvZGU6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmlzS2V5Q29kZVZhbGlkKGtleUNvZGUpO1xuICB9XG5cbiAgLy8gVmVyaWZpY2Egc2UgYSB0ZWNsYSBkaWdpdGFkYSDDqSBwZXJtaXRpZGFcbiAgLy8gUGVybWl0ZSBhcGVuYXMgbsO6bWVyb3MsIGxldHJhcywgYmFja3NwYWNlIGUgZGVsXG4gIGlzS2V5Q29kZVZhbGlkKGtleUNvZGU6IG51bWJlcikge1xuICAgIHJldHVybiAoXG4gICAgICAoa2V5Q29kZSA+PSA0OCAmJiBrZXlDb2RlIDw9IDU3KSB8fFxuICAgICAgKGtleUNvZGUgPj0gNjUgJiYga2V5Q29kZSA8PSA5MCkgfHxcbiAgICAgIChrZXlDb2RlID49IDk2ICYmIGtleUNvZGUgPD0gMTA1KSB8fFxuICAgICAga2V5Q29kZSA9PT0gOCB8fFxuICAgICAga2V5Q29kZSA9PT0gOSB8fFxuICAgICAga2V5Q29kZSA9PT0gNDZcbiAgICApO1xuICB9XG5cbiAgLy8gU2UgZXN0w6EgZGUgYWNvcmRvIGNvbSBhIG3DoXNjYXJhXG4gIGlzS2V5VmFsaWRNYXNrKGtleTogYW55LCBrZXlNYXNrOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy50ZXN0UmVnZXgoa2V5LCB0aGlzLnJlcGxhY2VNYXNrKGtleU1hc2spKTtcbiAgfVxuXG4gIC8vIFJldG9ybmEgc2UgYSBjaGF2ZSBmb2kgYXByb3ZhZGEgcGVsYSBleHByZXNzw6NvIHJlZ3VsYXJcbiAgdGVzdFJlZ2V4KGtleTogYW55LCByZWdleDogYW55KSB7XG4gICAgcmV0dXJuIHJlZ2V4LnRlc3Qoa2V5KTtcbiAgfVxuXG4gIC8vIFJlbW92ZSBhIGZvcm1hdGFjw6NvIGRvIHZhbG9yXG4gIC8vIMOJIHBvc3PDrXZlbCBzZXIgbWVsaG9yYWRvIHBhcmEgcmVtb3ZlciBwb250dWFsbWVudGUgb3MgY2FyYWN0ZXJlcyBmaXhvcyBkZSBhY29yZG8gY29tIGEgbcOhc2NhcmFcbiAgcmVtb3ZlRm9ybWF0dGluZ1ZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdmFsdWUucmVwbGFjZSh0aGlzLmdldEZpeGVkQ2hhcmFjdGVyR3VpZGUoKSwgJycpO1xuICB9XG5cbiAgLy8gVmVyaWZpY2Egc2UgY29udMOpbSB2YWxvciBvcGNpb25hbCBuYSBtw6FzY2FyYSAwLTk/XG4gIGhhc09wdGlvbmFsTnVtYmVyKG1hc2s6IHN0cmluZykge1xuICAgIHJldHVybiBtYXNrLm1hdGNoKC9cXGRcXD8vZyk7XG4gIH1cblxuICAvLyBSZXRvcm5hIGEgZXhwcmVzc8OjbyByZWd1bGFyIGNvcnJlc3BvbmRlbnRlIGFvIGNvbWFuZG8gcGFzc2Fkb1xuICByZXBsYWNlTWFzayhjaGFyOiBzdHJpbmcpIHtcbiAgICBsZXQgcmVnZXggPSAvLi87XG4gICAgc3dpdGNoIChjaGFyKSB7XG4gICAgICBjYXNlICcwJzpcbiAgICAgICAgcmVnZXggPSAvWzBdLztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICcxJzpcbiAgICAgICAgcmVnZXggPSAvWzAtMV0vO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJzInOlxuICAgICAgICByZWdleCA9IC9bMC0yXS87XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnMyc6XG4gICAgICAgIHJlZ2V4ID0gL1swLTNdLztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICc0JzpcbiAgICAgICAgcmVnZXggPSAvWzAtNF0vO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJzUnOlxuICAgICAgICByZWdleCA9IC9bMC01XS87XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnNic6XG4gICAgICAgIHJlZ2V4ID0gL1swLTZdLztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICc3JzpcbiAgICAgICAgcmVnZXggPSAvWzAtN10vO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJzgnOlxuICAgICAgICByZWdleCA9IC9bMC04XS87XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnOSc6XG4gICAgICAgIHJlZ2V4ID0gL1swLTldLztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICcgJzpcbiAgICAgICAgcmVnZXggPSAvXFxzLztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdAJzpcbiAgICAgICAgcmVnZXggPSAvW2EtekEtWl0vO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3cnOlxuICAgICAgICByZWdleCA9IC9bYS16QS1aMC05XS87XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gcmVnZXg7XG4gIH1cblxuICBnZXRSZWdleEZyb21NYXNrKG1hc2s6IHN0cmluZykge1xuICAgIGlmIChtYXNrKSB7XG4gICAgICBsZXQgcGF0dGVybjtcbiAgICAgIGlmICh0aGlzLmZvcm1hdE1vZGVsKSB7XG4gICAgICAgIHBhdHRlcm4gPSBtYXNrLnJlcGxhY2UoL1xcXFwvZywgJ1xcXFxcXFxcJyk7XG4gICAgICAgIHBhdHRlcm4gPSBwYXR0ZXJuLnJlcGxhY2UoL1xcKy9nLCAnXFxcXCsnKTtcbiAgICAgICAgcGF0dGVybiA9IHBhdHRlcm4ucmVwbGFjZSgvXFwuL2csICdcXFxcLicpO1xuICAgICAgICBwYXR0ZXJuID0gcGF0dGVybi5yZXBsYWNlKC8tL2csICctJyk7XG4gICAgICAgIHBhdHRlcm4gPSBwYXR0ZXJuLnJlcGxhY2UoL1xcKC9nLCAnXFxcXCgnKTtcbiAgICAgICAgcGF0dGVybiA9IHBhdHRlcm4ucmVwbGFjZSgvXFwpL2csICdcXFxcKScpO1xuICAgICAgICBwYXR0ZXJuID0gcGF0dGVybi5yZXBsYWNlKC9cXC8vZywgJ1xcXFwvJyk7XG4gICAgICAgIHBhdHRlcm4gPSBwYXR0ZXJuLnJlcGxhY2UoL1xccy9nLCAnXFxcXHMnKTtcbiAgICAgICAgcGF0dGVybiA9IHBhdHRlcm4ucmVwbGFjZSgvOi9nLCAnXFxcXDonKTtcbiAgICAgICAgcGF0dGVybiA9IHBhdHRlcm4ucmVwbGFjZSgvXFxAKD8hXFxzKS9nLCAnXFxcXHcnKTtcbiAgICAgICAgcGF0dGVybiA9IHBhdHRlcm4ucmVwbGFjZSgvXFxkL2csICdcXFxcdycpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGF0dGVybiA9IG1hc2sucmVwbGFjZSgvXFxcXC9nLCAnJyk7XG4gICAgICAgIHBhdHRlcm4gPSBwYXR0ZXJuLnJlcGxhY2UoL1xcKy9nLCAnJyk7XG4gICAgICAgIHBhdHRlcm4gPSBwYXR0ZXJuLnJlcGxhY2UoL1xcLi9nLCAnJyk7XG4gICAgICAgIHBhdHRlcm4gPSBwYXR0ZXJuLnJlcGxhY2UoLy0vZywgJycpO1xuICAgICAgICBwYXR0ZXJuID0gcGF0dGVybi5yZXBsYWNlKC9cXCgvZywgJycpO1xuICAgICAgICBwYXR0ZXJuID0gcGF0dGVybi5yZXBsYWNlKC9cXCkvZywgJycpO1xuICAgICAgICBwYXR0ZXJuID0gcGF0dGVybi5yZXBsYWNlKC9cXC8vZywgJycpO1xuICAgICAgICBwYXR0ZXJuID0gcGF0dGVybi5yZXBsYWNlKC9cXHMvZywgJycpO1xuICAgICAgICBwYXR0ZXJuID0gcGF0dGVybi5yZXBsYWNlKC86L2csICcnKTtcbiAgICAgICAgcGF0dGVybiA9IHBhdHRlcm4ucmVwbGFjZSgvXFxAL2csICdcXFxcdycpO1xuICAgICAgICBwYXR0ZXJuID0gcGF0dGVybi5yZXBsYWNlKC9cXGQvZywgJ1xcXFx3Jyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcGF0dGVybjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -20,6 +20,9 @@ export class PoInputGeneric extends PoInputBaseComponent {
20
20
  if (this.mask && !this.readonly && e.target.keyCode !== 229) {
21
21
  this.eventOnBlur(e);
22
22
  this.objMask.keydown(e);
23
+ if (this.passedWriteValue) {
24
+ this.validateClassesForMask(true);
25
+ }
23
26
  }
24
27
  }
25
28
  onKeyup(e) {
@@ -138,6 +141,16 @@ export class PoInputGeneric extends PoInputBaseComponent {
138
141
  element.classList.remove('ng-invalid');
139
142
  }
140
143
  }
144
+ validateClassesForMask(keyDown = false) {
145
+ const element = this.el.nativeElement;
146
+ const elementValue = this.inputEl.nativeElement.value;
147
+ if (!keyDown && !elementValue) {
148
+ element.classList.add('ng-invalid-mask');
149
+ }
150
+ else {
151
+ element.classList.remove('ng-invalid-mask');
152
+ }
153
+ }
141
154
  verifyPattern(pattern, value) {
142
155
  return new RegExp(pattern).test(value);
143
156
  }
@@ -167,6 +180,7 @@ export class PoInputGeneric extends PoInputBaseComponent {
167
180
  }
168
181
  // Emite evento quando o model é atualizado, inclusive a primeira vez
169
182
  if (value) {
183
+ this.validateInitMask();
170
184
  this.changeModel.emit(value);
171
185
  }
172
186
  }
@@ -180,6 +194,11 @@ export class PoInputGeneric extends PoInputBaseComponent {
180
194
  return screenValue;
181
195
  }
182
196
  }
197
+ validateInitMask() {
198
+ if (this.mask) {
199
+ this.validateClassesForMask();
200
+ }
201
+ }
183
202
  static ɵfac = function PoInputGeneric_Factory(t) { return new (t || PoInputGeneric)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
184
203
  static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PoInputGeneric, viewQuery: function PoInputGeneric_Query(rf, ctx) { if (rf & 1) {
185
204
  i0.ɵɵviewQuery(_c0, 7, ElementRef);
@@ -202,4 +221,4 @@ export class PoInputGeneric extends PoInputBaseComponent {
202
221
  type: HostListener,
203
222
  args: ['keyup', ['$event']]
204
223
  }] }); })();
205
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8taW5wdXQtZ2VuZXJpYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC9wby1pbnB1dC1nZW5lcmljL3BvLWlucHV0LWdlbmVyaWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixVQUFVLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBR2pILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7QUFFM0UsMkRBQTJEO0FBRTNELE1BQU0sT0FBZ0IsY0FBZSxTQUFRLG9CQUFvQjtJQUNULE9BQU8sQ0FBYTtJQUUxRSxJQUFJLEdBQUcsTUFBTSxDQUFDO0lBRWQsRUFBRSxDQUFhO0lBQ2YsaUJBQWlCLENBQU07SUFDdkIsYUFBYSxDQUFNO0lBRW5CLElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDNUMsQ0FBQztJQUVELFlBQVksRUFBYyxFQUFFLEVBQXNCO1FBQ2hELEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVWLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVvQyxTQUFTLENBQUMsQ0FBTTtRQUNuRCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRTtZQUMzRCxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVrQyxPQUFPLENBQUMsQ0FBTTtRQUMvQyxJ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TUFBTSxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLFNBQVMsQ0FBQztRQUVwRixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQzFCLE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM1QyxPQUFPLFdBQVcsSUFBSSxXQUFXLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUM5RDthQUFNO1lBQ0wsT0FBTyxXQUFXLENBQUM7U0FDcEI7SUFDSCxDQUFDO3dFQTdNbUIsY0FBYzs2REFBZCxjQUFjO21DQUNSLFVBQVU7Ozs7O3lHQURoQixxQkFBaUIsZ0ZBQWpCLG1CQUFlOzs7dUZBQWYsY0FBYztjQURuQyxTQUFTOzZGQUU4QyxPQUFPO2tCQUE1RCxTQUFTO21CQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQWtCZixTQUFTO2tCQUE3QyxZQUFZO21CQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztZQU9BLE9BQU87a0JBQXpDLFlBQVk7bUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBWaWV3Q2hpbGQsIERpcmVjdGl2ZSwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgUG9JbnB1dEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9wby1pbnB1dC9wby1pbnB1dC1iYXNlLmNvbXBvbmVudCc7XG5cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4ICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQb0lucHV0R2VuZXJpYyBleHRlbmRzIFBvSW5wdXRCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBWaWV3Q2hpbGQoJ2lucCcsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pIGlucHV0RWw6IEVsZW1lbnRSZWY7XG5cbiAgdHlwZSA9ICd0ZXh0JztcblxuICBlbDogRWxlbWVudFJlZjtcbiAgdmFsdWVCZWZvcmVDaGFuZ2U6IGFueTtcbiAgdGltZW91dENoYW5nZTogYW55O1xuXG4gIGdldCBhdXRvY29tcGxldGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5ub0F1dG9jb21wbGV0ZSA/ICdvZmYnIDogJ29uJztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmLCBjZD86IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgc3VwZXIoY2QpO1xuXG4gICAgdGhpcy5lbCA9IGVsO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pIG9uS2V5ZG93bihlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5tYXNrICYmICF0aGlzLnJlYWRvbmx5ICYmIGUudGFyZ2V0LmtleUNvZGUgIT09IDIyOSkge1xuICAgICAgdGhpcy5ldmVudE9uQmx1cihlKTtcbiAgICAgIHRoaXMub2JqTWFzay5rZXlkb3duKGUpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSkgb25LZXl1cChlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5tYXNrICYmICF0aGlzLnJlYWRvbmx5KSB7XG4gICAgICBpZiAoZS50YXJnZXQua2V5Q29kZSAhPT0gMjI5KSB7XG4gICAgICAgIHRoaXMuZXZlbnRPbkJsdXIoZSk7XG4gICAgICAgIHRoaXMub2JqTWFzay5rZXl1cChlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY2FsbE9uQ2hhbmdlKHRoaXMub2JqTWFzay52YWx1ZVRvTW9kZWwpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmFmdGVyVmlld0luaXQoKTtcbiAgfVxuXG4gIGFmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy52ZXJpZnlBdXRvRm9jdXMoKTtcbiAgICBpZiAodGhpcy50eXBlICE9PSAncGFzc3dvcmQnKSB7XG4gICAgICB0aGlzLnNldFBhZGRpbmdJbnB1dCgpO1xuICAgIH1cbiAgfVxuXG4gIGZvY3VzKCkge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBzZXRQYWRkaW5nSW5wdXQoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCBzZWxlY3Rvckljb25zID0gJy5wby1maWVsZC1pY29uLWNvbnRhaW5lcjpub3QoLnBvLWZpZWxkLWljb24tY29udGFpbmVyLWxlZnQpID4gLnBvLWljb24nO1xuICAgICAgbGV0IGljb25zID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3JJY29ucykubGVuZ3RoO1xuICAgICAgaWYgKHRoaXMuY2xlYW4pIHtcbiAgICAgICAgaWNvbnMrKztcbiAgICAgIH1cbiAgICAgIGlmIChpY29ucykge1xuICAgICAgICB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC5zdHlsZS5wYWRkaW5nUmlnaHQgPSBgJHtpY29ucyAqIDM2fXB4YDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHZlcmlmeUF1dG9Gb2N1cygpIHtcbiAgICBpZiAodGhpcy5hdXRvRm9jdXMpIHtcbiAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBldmVudE9uSW5wdXQoZTogYW55KSB7XG4gICAgbGV0IHZhbHVlID0gJyc7XG4gICAgaWYgKCF0aGlzLm1hc2spIHtcbiAgICAgIHZhbHVlID0gdGhpcy52YWxpZE1heExlbmd0aCh0aGlzLm1heGxlbmd0aCwgZS50YXJnZXQudmFsdWUpO1xuICAgICAgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vYmpNYXNrLmJsdXIoZSk7XG4gICAgICB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMub2JqTWFzay52YWx1ZVRvSW5wdXQ7XG4gICAgICB2YWx1ZSA9IHRoaXMub2JqTWFzay52YWx1ZVRvTW9kZWw7XG4gICAgfVxuICAgIHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy51cHBlckNhc2VcbiAgICAgID8gU3RyaW5nKHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LnZhbHVlKS50b1VwcGVyQ2FzZSgpXG4gICAgICA6IHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICAgIHZhbHVlID0gdGhpcy51cHBlckNhc2UgPyB2YWx1ZS50b1VwcGVyQ2FzZSgpIDogdmFsdWU7XG4gICAgdGhpcy5jYWxsT25DaGFuZ2UodmFsdWUpO1xuICB9XG5cbiAgdmFsaWRNYXhMZW5ndGgobWF4bGVuZ3RoOiBudW1iZXIsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gKG1heGxlbmd0aCB8fCBtYXhsZW5ndGggPT09IDApICYmIHZhbHVlLmxlbmd0aCA+IG1heGxlbmd0aFxuICAgICAgPyB2YWx1ZS50b1N0cmluZygpLnN1YnN0cmluZygwLCBtYXhsZW5ndGgpXG4gICAgICA6IHZhbHVlO1xuICB9XG5cbiAgZXZlbnRPbkZvY3VzKGU6IGFueSkge1xuICAgIC8vIEF0dWFsaXphIHZhbG9yIGRhIHZhcmnDoXZlbCBxdWUgc2Vyw6EgdXNhZGEgcGFyYSB2ZXJpZmljYXIgc2UgbyBjYW1wbyB0ZXZlIGFsdGVyYcOnw6NvXG4gICAgdGhpcy52YWx1ZUJlZm9yZUNoYW5nZSA9IHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuXG4gICAgLy8gRGlzcGFyYSBldmVudG8gcXVhbmRvIG8gdXN1w6FyaW8gZW50cmFyIG5vIGNhbXBvXG4gICAgLy8gRXN0ZSBldmVudG8gdGFtYsOpbSDDqSBkaXNwYXJhZG8gcXVhbmRvIG8gY2FtcG8gaW5pY2lhIGNvbSBmb2NvLlxuICAgIHRoaXMuZW50ZXIuZW1pdCgpO1xuICB9XG5cbiAgZXZlbnRPbkJsdXIoZTogYW55KSB7XG4gICAgdGhpcy5vblRvdWNoZWQ/LigpO1xuICAgIGlmICh0aGlzLm1hc2spIHtcbiAgICAgIHRoaXMub2JqTWFzay5ibHVyKGUpO1xuICAgIH1cblxuICAgIGlmIChlLnR5cGUgPT09ICdibHVyJykge1xuICAgICAgdGhpcy5ibHVyLmVtaXQoKTtcbiAgICAgIHRoaXMuY29udHJvbENoYW5nZUVtaXR0ZXIoKTtcbiAgICB9XG4gIH1cblxuICBjb250cm9sQ2hhbmdlRW1pdHRlcigpIHtcbiAgICBjb25zdCBlbGVtZW50VmFsdWUgPSB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC52YWx1ZTtcblxuICAgIC8vIEVtaXRlIG8gZXZlbnRvIGNoYW5nZSBtYW51YWxtZW50ZSBxdWFuZG8gbyBjYW1wbyDDqSBhbHRlcmFkb1xuICAgIC8vIEVzdGUgZXZlbnRvIMOpIGNvbnRyb2xhZG8gbWFudWFsbWVudGUgZGV2aWRvIGFvIHByZXZlbnREZWZhdWx0IGV4aXN0ZW50ZSBuYSBtw6FzY2FyYVxuICAgIC8vIGUgZGV2aWRvIGFvIGNvbnRyb2xlIGRvIHAtY2xlYW4sIHF1ZSB0YW1iw6ltIHByZWNpc2EgZW1pdGlyIGNoYW5nZVxuICAgIGlmIChlbGVtZW50VmFsdWUgIT09IHRoaXMudmFsdWVCZWZvcmVDaGFuZ2UpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRDaGFuZ2UpO1xuICAgICAgdGhpcy50aW1lb3V0Q2hhbmdlID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2hhbmdlLmVtaXQoZWxlbWVudFZhbHVlKTtcbiAgICAgIH0sIDIwMCk7XG4gICAgfVxuICB9XG5cbiAgZXZlbnRPbkNsaWNrKGU6IGFueSkge1xuICAgIC8vIEF0dWFsaXphIGEgcG9zacOnw6NvIGRvIGN1cnNvciBhbyBjbGljYXJcbiAgICBpZiAodGhpcy5tYXNrKSB7XG4gICAgICB0aGlzLm9iak1hc2suY2xpY2soZSk7XG4gICAgfVxuICB9XG5cbiAgaGFzSW52YWxpZENsYXNzKCkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCduZy1pbnZhbGlkJykgJiZcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ25nLWRpcnR5JykgJiZcbiAgICAgIHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LnZhbHVlICE9PSAnJ1xuICAgICk7XG4gIH1cblxuICBnZXRFcnJvclBhdHRlcm4oKSB7XG4gICAgcmV0dXJuIHRoaXMuZXJyb3JQYXR0ZXJuICE9PSAnJyAmJiB0aGlzLmhhc0ludmFsaWRDbGFzcygpID8gdGhpcy5lcnJvclBhdHRlcm4gOiAnJztcbiAgfVxuXG4gIHZhbGlkYXRlQ2xhc3Nlc0ZvclBhdHRlcm4oKSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFNjcmVlblZhbHVlKCk7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcblxuICAgIGlmICh2YWx1ZSAmJiAhdGhpcy52ZXJpZnlQYXR0ZXJuKHRoaXMucGF0dGVybiwgdmFsdWUpKSB7XG4gICAgICBlbGVtZW50LmNsYXNzTGlzdC5hZGQoJ25nLWludmFsaWQnKTtcbiAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnbmctZGlydHknKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCduZy1pbnZhbGlkJyk7XG4gICAgfVxuICB9XG5cbiAgdmVyaWZ5UGF0dGVybihwYXR0ZXJuOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICByZXR1cm4gbmV3IFJlZ0V4cChwYXR0ZXJuKS50ZXN0KHZhbHVlKTtcbiAgfVxuXG4gIGNsZWFyKHZhbHVlKSB7XG4gICAgdGhpcy5jYWxsT25DaGFuZ2UodmFsdWUpO1xuICAgIHRoaXMuY29udHJvbENoYW5nZUVtaXR0ZXIoKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWVNb2RlbCh2YWx1ZSkge1xuICAgIHRoaXMucGFzc2VkV3JpdGVWYWx1ZSA9IHRydWU7XG4gICAgaWYgKHRoaXMuaW5wdXRFbCkge1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIGlmICh0aGlzLm1hc2spIHtcbiAgICAgICAgICB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMub2JqTWFzay5jb250cm9sRm9ybWF0dGluZyhTdHJpbmcodmFsdWUpKTtcblxuICAgICAgICAgIC8vIFNlIG8gbW9kZWwgZm9yIGRlZmluaWRvIGNvbW8gZm9ybWF0YWRvLCBlbnTDo28gcHJlY2lzYSBhdHVhbGl6w6EtbG8gbm8gcHJpbWVpcm8gYWNlc3NvXG4gICAgICAgICAgaWYgKHRoaXMub2JqTWFzay5mb3JtYXRNb2RlbCkge1xuICAgICAgICAgICAgdGhpcy5jYWxsVXBkYXRlTW9kZWxXaXRoVGltZW91dCh0aGlzLm9iak1hc2sudmFsdWVUb01vZGVsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gU2UgbyB2YWxvciBmb3IgaW5kZWZpbmlkbywgZGV2ZSBsaW1wYXIgbyBjYW1wby5cbiAgICAgICAgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFbWl0ZSBldmVudG8gcXVhbmRvIG8gbW9kZWwgw6kgYXR1YWxpemFkbywgaW5jbHVzaXZlIGEgcHJpbWVpcmEgdmV6XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLmNoYW5nZU1vZGVsLmVtaXQodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGdldFNjcmVlblZhbHVlKCkge1xuICAgIGNvbnN0IHNjcmVlblZhbHVlID0gKHRoaXMuaW5wdXRFbCAmJiB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC52YWx1ZSkgfHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIGNvbnN0IHBhcnNlZFZhbHVlID0gcGFyc2VGbG9hdChzY3JlZW5WYWx1ZSk7XG4gICAgICByZXR1cm4gcGFyc2VkVmFsdWUgfHwgcGFyc2VkVmFsdWUgPT09IDAgPyBwYXJzZWRWYWx1ZSA6IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBzY3JlZW5WYWx1ZTtcbiAgICB9XG4gIH1cblxuICBhYnN0cmFjdCBleHRyYVZhbGlkYXRpb24oYzogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbn1cbiJdfQ==
224
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8taW5wdXQtZ2VuZXJpYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC9wby1pbnB1dC1nZW5lcmljL3BvLWlucHV0LWdlbmVyaWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixVQUFVLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBR2pILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7QUFFM0UsMkRBQTJEO0FBRTNELE1BQU0sT0FBZ0IsY0FBZSxTQUFRLG9CQUFvQjtJQUNULE9BQU8sQ0FBYTtJQUUxRSxJQUFJLEdBQUcsTUFBTSxDQUFDO0lBRWQsRUFBRSxDQUFhO0lBQ2YsaUJBQWlCLENBQU07SUFDdkIsYUFBYSxDQUFNO0lBRW5CLElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDNUMsQ0FBQztJQUVELFlBQVksRUFBYyxFQUFFLEVBQXNCO1FBQ2hELEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVWLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVvQyxTQUFTLENBQUMsQ0FBTTtRQUNuRCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRTtZQUMzRCxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO2dCQUN6QixJQUFJ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ZixjQUFjO2NBRG5DLFNBQVM7NkZBRThDLE9BQU87a0JBQTVELFNBQVM7bUJBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBa0JmLFNBQVM7a0JBQTdDLFlBQVk7bUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO1lBVUEsT0FBTztrQkFBekMsWUFBWTttQkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIFZpZXdDaGlsZCwgRGlyZWN0aXZlLCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBQb0lucHV0QmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL3BvLWlucHV0L3BvLWlucHV0LWJhc2UuY29tcG9uZW50JztcblxuLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXggKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFBvSW5wdXRHZW5lcmljIGV4dGVuZHMgUG9JbnB1dEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQFZpZXdDaGlsZCgnaW5wJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWUgfSkgaW5wdXRFbDogRWxlbWVudFJlZjtcblxuICB0eXBlID0gJ3RleHQnO1xuXG4gIGVsOiBFbGVtZW50UmVmO1xuICB2YWx1ZUJlZm9yZUNoYW5nZTogYW55O1xuICB0aW1lb3V0Q2hhbmdlOiBhbnk7XG5cbiAgZ2V0IGF1dG9jb21wbGV0ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm5vQXV0b2NvbXBsZXRlID8gJ29mZicgOiAnb24nO1xuICB9XG5cbiAgY29uc3RydWN0b3IoZWw6IEVsZW1lbnRSZWYsIGNkPzogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBzdXBlcihjZCk7XG5cbiAgICB0aGlzLmVsID0gZWw7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSkgb25LZXlkb3duKGU6IGFueSkge1xuICAgIGlmICh0aGlzLm1hc2sgJiYgIXRoaXMucmVhZG9ubHkgJiYgZS50YXJnZXQua2V5Q29kZSAhPT0gMjI5KSB7XG4gICAgICB0aGlzLmV2ZW50T25CbHVyKGUpO1xuICAgICAgdGhpcy5vYmpNYXNrLmtleWRvd24oZSk7XG4gICAgICBpZiAodGhpcy5wYXNzZWRXcml0ZVZhbHVlKSB7XG4gICAgICAgIHRoaXMudmFsaWRhdGVDbGFzc2VzRm9yTWFzayh0cnVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pIG9uS2V5dXAoZTogYW55KSB7XG4gICAgaWYgKHRoaXMubWFzayAmJiAhdGhpcy5yZWFkb25seSkge1xuICAgICAgaWYgKGUudGFyZ2V0LmtleUNvZGUgIT09IDIyOSkge1xuICAgICAgICB0aGlzLmV2ZW50T25CbHVyKGUpO1xuICAgICAgICB0aGlzLm9iak1hc2sua2V5dXAoZSk7XG4gICAgICB9XG4gICAgICB0aGlzLmNhbGxPbkNoYW5nZSh0aGlzLm9iak1hc2sudmFsdWVUb01vZGVsKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5hZnRlclZpZXdJbml0KCk7XG4gIH1cblxuICBhZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMudmVyaWZ5QXV0b0ZvY3VzKCk7XG4gICAgaWYgKHRoaXMudHlwZSAhPT0gJ3Bhc3N3b3JkJykge1xuICAgICAgdGhpcy5zZXRQYWRkaW5nSW5wdXQoKTtcbiAgICB9XG4gIH1cblxuICBmb2N1cygpIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgc2V0UGFkZGluZ0lucHV0KCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3Qgc2VsZWN0b3JJY29ucyA9ICcucG8tZmllbGQtaWNvbi1jb250YWluZXI6bm90KC5wby1maWVsZC1pY29uLWNvbnRhaW5lci1sZWZ0KSA+IC5wby1pY29uJztcbiAgICAgIGxldCBpY29ucyA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9ySWNvbnMpLmxlbmd0aDtcbiAgICAgIGlmICh0aGlzLmNsZWFuKSB7XG4gICAgICAgIGljb25zKys7XG4gICAgICB9XG4gICAgICBpZiAoaWNvbnMpIHtcbiAgICAgICAgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUucGFkZGluZ1JpZ2h0ID0gYCR7aWNvbnMgKiAzNn1weGA7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICB2ZXJpZnlBdXRvRm9jdXMoKSB7XG4gICAgaWYgKHRoaXMuYXV0b0ZvY3VzKSB7XG4gICAgICB0aGlzLmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgZXZlbnRPbklucHV0KGU6IGFueSkge1xuICAgIGxldCB2YWx1ZSA9ICcnO1xuICAgIGlmICghdGhpcy5tYXNrKSB7XG4gICAgICB2YWx1ZSA9IHRoaXMudmFsaWRNYXhMZW5ndGgodGhpcy5tYXhsZW5ndGgsIGUudGFyZ2V0LnZhbHVlKTtcbiAgICAgIHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub2JqTWFzay5ibHVyKGUpO1xuICAgICAgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLm9iak1hc2sudmFsdWVUb0lucHV0O1xuICAgICAgdmFsdWUgPSB0aGlzLm9iak1hc2sudmFsdWVUb01vZGVsO1xuICAgIH1cbiAgICB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMudXBwZXJDYXNlXG4gICAgICA/IFN0cmluZyh0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC52YWx1ZSkudG9VcHBlckNhc2UoKVxuICAgICAgOiB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC52YWx1ZTtcbiAgICB2YWx1ZSA9IHRoaXMudXBwZXJDYXNlID8gdmFsdWUudG9VcHBlckNhc2UoKSA6IHZhbHVlO1xuICAgIHRoaXMuY2FsbE9uQ2hhbmdlKHZhbHVlKTtcbiAgfVxuXG4gIHZhbGlkTWF4TGVuZ3RoKG1heGxlbmd0aDogbnVtYmVyLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIChtYXhsZW5ndGggfHwgbWF4bGVuZ3RoID09PSAwKSAmJiB2YWx1ZS5sZW5ndGggPiBtYXhsZW5ndGhcbiAgICAgID8gdmFsdWUudG9TdHJpbmcoKS5zdWJzdHJpbmcoMCwgbWF4bGVuZ3RoKVxuICAgICAgOiB2YWx1ZTtcbiAgfVxuXG4gIGV2ZW50T25Gb2N1cyhlOiBhbnkpIHtcbiAgICAvLyBBdHVhbGl6YSB2YWxvciBkYSB2YXJpw6F2ZWwgcXVlIHNlcsOhIHVzYWRhIHBhcmEgdmVyaWZpY2FyIHNlIG8gY2FtcG8gdGV2ZSBhbHRlcmHDp8Ojb1xuICAgIHRoaXMudmFsdWVCZWZvcmVDaGFuZ2UgPSB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC52YWx1ZTtcblxuICAgIC8vIERpc3BhcmEgZXZlbnRvIHF1YW5kbyBvIHVzdcOhcmlvIGVudHJhciBubyBjYW1wb1xuICAgIC8vIEVzdGUgZXZlbnRvIHRhbWLDqW0gw6kgZGlzcGFyYWRvIHF1YW5kbyBvIGNhbXBvIGluaWNpYSBjb20gZm9jby5cbiAgICB0aGlzLmVudGVyLmVtaXQoKTtcbiAgfVxuXG4gIGV2ZW50T25CbHVyKGU6IGFueSkge1xuICAgIHRoaXMub25Ub3VjaGVkPy4oKTtcbiAgICBpZiAodGhpcy5tYXNrKSB7XG4gICAgICB0aGlzLm9iak1hc2suYmx1cihlKTtcbiAgICB9XG5cbiAgICBpZiAoZS50eXBlID09PSAnYmx1cicpIHtcbiAgICAgIHRoaXMuYmx1ci5lbWl0KCk7XG4gICAgICB0aGlzLmNvbnRyb2xDaGFuZ2VFbWl0dGVyKCk7XG4gICAgfVxuICB9XG5cbiAgY29udHJvbENoYW5nZUVtaXR0ZXIoKSB7XG4gICAgY29uc3QgZWxlbWVudFZhbHVlID0gdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQudmFsdWU7XG5cbiAgICAvLyBFbWl0ZSBvIGV2ZW50byBjaGFuZ2UgbWFudWFsbWVudGUgcXVhbmRvIG8gY2FtcG8gw6kgYWx0ZXJhZG9cbiAgICAvLyBFc3RlIGV2ZW50byDDqSBjb250cm9sYWRvIG1hbnVhbG1lbnRlIGRldmlkbyBhbyBwcmV2ZW50RGVmYXVsdCBleGlzdGVudGUgbmEgbcOhc2NhcmFcbiAgICAvLyBlIGRldmlkbyBhbyBjb250cm9sZSBkbyBwLWNsZWFuLCBxdWUgdGFtYsOpbSBwcmVjaXNhIGVtaXRpciBjaGFuZ2VcbiAgICBpZiAoZWxlbWVudFZhbHVlICE9PSB0aGlzLnZhbHVlQmVmb3JlQ2hhbmdlKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0Q2hhbmdlKTtcbiAgICAgIHRoaXMudGltZW91dENoYW5nZSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KGVsZW1lbnRWYWx1ZSk7XG4gICAgICB9LCAyMDApO1xuICAgIH1cbiAgfVxuXG4gIGV2ZW50T25DbGljayhlOiBhbnkpIHtcbiAgICAvLyBBdHVhbGl6YSBhIHBvc2nDp8OjbyBkbyBjdXJzb3IgYW8gY2xpY2FyXG4gICAgaWYgKHRoaXMubWFzaykge1xuICAgICAgdGhpcy5vYmpNYXNrLmNsaWNrKGUpO1xuICAgIH1cbiAgfVxuXG4gIGhhc0ludmFsaWRDbGFzcygpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnbmctaW52YWxpZCcpICYmXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCduZy1kaXJ0eScpICYmXG4gICAgICB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC52YWx1ZSAhPT0gJydcbiAgICApO1xuICB9XG5cbiAgZ2V0RXJyb3JQYXR0ZXJuKCkge1xuICAgIHJldHVybiB0aGlzLmVycm9yUGF0dGVybiAhPT0gJycgJiYgdGhpcy5oYXNJbnZhbGlkQ2xhc3MoKSA/IHRoaXMuZXJyb3JQYXR0ZXJuIDogJyc7XG4gIH1cblxuICB2YWxpZGF0ZUNsYXNzZXNGb3JQYXR0ZXJuKCkge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRTY3JlZW5WYWx1ZSgpO1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBpZiAodmFsdWUgJiYgIXRoaXMudmVyaWZ5UGF0dGVybih0aGlzLnBhdHRlcm4sIHZhbHVlKSkge1xuICAgICAgZWxlbWVudC5jbGFzc0xpc3QuYWRkKCduZy1pbnZhbGlkJyk7XG4gICAgICBlbGVtZW50LmNsYXNzTGlzdC5hZGQoJ25nLWRpcnR5Jyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnbmctaW52YWxpZCcpO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlQ2xhc3Nlc0Zvck1hc2soa2V5RG93bjogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBlbGVtZW50VmFsdWUgPSB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC52YWx1ZTtcblxuICAgIGlmICgha2V5RG93biAmJiAhZWxlbWVudFZhbHVlKSB7XG4gICAgICBlbGVtZW50LmNsYXNzTGlzdC5hZGQoJ25nLWludmFsaWQtbWFzaycpO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ25nLWludmFsaWQtbWFzaycpO1xuICAgIH1cbiAgfVxuXG4gIHZlcmlmeVBhdHRlcm4ocGF0dGVybjogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgcmV0dXJuIG5ldyBSZWdFeHAocGF0dGVybikudGVzdCh2YWx1ZSk7XG4gIH1cblxuICBjbGVhcih2YWx1ZSkge1xuICAgIHRoaXMuY2FsbE9uQ2hhbmdlKHZhbHVlKTtcbiAgICB0aGlzLmNvbnRyb2xDaGFuZ2VFbWl0dGVyKCk7XG4gIH1cblxuICB3cml0ZVZhbHVlTW9kZWwodmFsdWUpIHtcbiAgICB0aGlzLnBhc3NlZFdyaXRlVmFsdWUgPSB0cnVlO1xuICAgIGlmICh0aGlzLmlucHV0RWwpIHtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICBpZiAodGhpcy5tYXNrKSB7XG4gICAgICAgICAgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLm9iak1hc2suY29udHJvbEZvcm1hdHRpbmcoU3RyaW5nKHZhbHVlKSk7XG5cbiAgICAgICAgICAvLyBTZSBvIG1vZGVsIGZvciBkZWZpbmlkbyBjb21vIGZvcm1hdGFkbywgZW50w6NvIHByZWNpc2EgYXR1YWxpesOhLWxvIG5vIHByaW1laXJvIGFjZXNzb1xuICAgICAgICAgIGlmICh0aGlzLm9iak1hc2suZm9ybWF0TW9kZWwpIHtcbiAgICAgICAgICAgIHRoaXMuY2FsbFVwZGF0ZU1vZGVsV2l0aFRpbWVvdXQodGhpcy5vYmpNYXNrLnZhbHVlVG9Nb2RlbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFNlIG8gdmFsb3IgZm9yIGluZGVmaW5pZG8sIGRldmUgbGltcGFyIG8gY2FtcG8uXG4gICAgICAgIHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRW1pdGUgZXZlbnRvIHF1YW5kbyBvIG1vZGVsIMOpIGF0dWFsaXphZG8sIGluY2x1c2l2ZSBhIHByaW1laXJhIHZlelxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy52YWxpZGF0ZUluaXRNYXNrKCk7XG4gICAgICB0aGlzLmNoYW5nZU1vZGVsLmVtaXQodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGdldFNjcmVlblZhbHVlKCkge1xuICAgIGNvbnN0IHNjcmVlblZhbHVlID0gKHRoaXMuaW5wdXRFbCAmJiB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC52YWx1ZSkgfHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIGNvbnN0IHBhcnNlZFZhbHVlID0gcGFyc2VGbG9hdChzY3JlZW5WYWx1ZSk7XG4gICAgICByZXR1cm4gcGFyc2VkVmFsdWUgfHwgcGFyc2VkVmFsdWUgPT09IDAgPyBwYXJzZWRWYWx1ZSA6IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBzY3JlZW5WYWx1ZTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZUluaXRNYXNrKCkge1xuICAgIGlmICh0aGlzLm1hc2spIHtcbiAgICAgIHRoaXMudmFsaWRhdGVDbGFzc2VzRm9yTWFzaygpO1xuICAgIH1cbiAgfVxuXG4gIGFic3RyYWN0IGV4dHJhVmFsaWRhdGlvbihjOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xufVxuIl19