@experteam-mx/ngx-services 18.9.14 → 18.9.16

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 (108) hide show
  1. package/README.md +24 -24
  2. package/esm2022/lib/apis/api-billing-do.service.mjs +1 -1
  3. package/esm2022/lib/apis/api-billing-gt.service.mjs +1 -1
  4. package/esm2022/lib/apis/api-billing-mx.service.mjs +1 -1
  5. package/esm2022/lib/apis/api-billing-pa.service.mjs +1 -1
  6. package/esm2022/lib/apis/api-billing-sv.service.mjs +1 -1
  7. package/esm2022/lib/apis/api-cash-operations.service.mjs +1 -1
  8. package/esm2022/lib/apis/api-catalogs.service.mjs +24 -1
  9. package/esm2022/lib/apis/api-companies.service.mjs +1 -1
  10. package/esm2022/lib/apis/api-composition.service.mjs +1 -1
  11. package/esm2022/lib/apis/api-customs.service.mjs +1 -1
  12. package/esm2022/lib/apis/api-discounts.service.mjs +1 -1
  13. package/esm2022/lib/apis/api-e-tools-auto-billing.service.mjs +1 -1
  14. package/esm2022/lib/apis/api-events.service.mjs +1 -1
  15. package/esm2022/lib/apis/api-external-ops.service.mjs +1 -1
  16. package/esm2022/lib/apis/api-inventories.service.mjs +15 -1
  17. package/esm2022/lib/apis/api-invoices.service.mjs +1 -1
  18. package/esm2022/lib/apis/api-notifications.service.mjs +1 -1
  19. package/esm2022/lib/apis/api-open-items.service.mjs +1 -1
  20. package/esm2022/lib/apis/api-quote.service.mjs +87 -0
  21. package/esm2022/lib/apis/api-reports.service.mjs +45 -1
  22. package/esm2022/lib/apis/api-security.service.mjs +1 -1
  23. package/esm2022/lib/apis/api-services.service.mjs +1 -1
  24. package/esm2022/lib/apis/api-shipments.service.mjs +30 -1
  25. package/esm2022/lib/apis/api-supplies.service.mjs +1 -1
  26. package/esm2022/lib/apis/models/api-billing-do.interfaces.mjs +1 -1
  27. package/esm2022/lib/apis/models/api-billing-do.types.mjs +1 -1
  28. package/esm2022/lib/apis/models/api-billing-mx.interfaces.mjs +1 -1
  29. package/esm2022/lib/apis/models/api-billing-mx.types.mjs +1 -1
  30. package/esm2022/lib/apis/models/api-billing-pa.interfaces.mjs +1 -1
  31. package/esm2022/lib/apis/models/api-billing-pa.types.mjs +1 -1
  32. package/esm2022/lib/apis/models/api-billing-sv.interfaces.mjs +1 -1
  33. package/esm2022/lib/apis/models/api-billing-sv.types.mjs +1 -1
  34. package/esm2022/lib/apis/models/api-billing.models.mjs +1 -1
  35. package/esm2022/lib/apis/models/api-cash-operations.interfaces.mjs +1 -1
  36. package/esm2022/lib/apis/models/api-cash-operations.types.mjs +1 -1
  37. package/esm2022/lib/apis/models/api-catalog.enum.mjs +1 -1
  38. package/esm2022/lib/apis/models/api-catalog.interfaces.mjs +1 -1
  39. package/esm2022/lib/apis/models/api-catalog.types.mjs +1 -1
  40. package/esm2022/lib/apis/models/api-companies.interfaces.mjs +1 -1
  41. package/esm2022/lib/apis/models/api-companies.types.mjs +1 -1
  42. package/esm2022/lib/apis/models/api-composition.interfaces.mjs +1 -1
  43. package/esm2022/lib/apis/models/api-composition.types.mjs +1 -1
  44. package/esm2022/lib/apis/models/api-customs.interfaces.mjs +1 -1
  45. package/esm2022/lib/apis/models/api-customs.types.mjs +1 -1
  46. package/esm2022/lib/apis/models/api-discounts.interfaces.mjs +1 -1
  47. package/esm2022/lib/apis/models/api-discounts.types.mjs +1 -1
  48. package/esm2022/lib/apis/models/api-e-tools-auto-billing.interfaces.mjs +1 -1
  49. package/esm2022/lib/apis/models/api-e-tools-auto-billing.types.mjs +1 -1
  50. package/esm2022/lib/apis/models/api-events.enum.mjs +1 -1
  51. package/esm2022/lib/apis/models/api-events.interfaces.mjs +1 -1
  52. package/esm2022/lib/apis/models/api-events.types.mjs +1 -1
  53. package/esm2022/lib/apis/models/api-external-ops.interfaces.mjs +1 -1
  54. package/esm2022/lib/apis/models/api-external-ops.types.mjs +1 -1
  55. package/esm2022/lib/apis/models/api-inventories.enum.mjs +1 -1
  56. package/esm2022/lib/apis/models/api-inventories.interfaces.mjs +1 -1
  57. package/esm2022/lib/apis/models/api-inventories.types.mjs +1 -1
  58. package/esm2022/lib/apis/models/api-invoices.interfaces.mjs +1 -1
  59. package/esm2022/lib/apis/models/api-invoices.types.mjs +1 -1
  60. package/esm2022/lib/apis/models/api-notifications.interfaces.mjs +1 -1
  61. package/esm2022/lib/apis/models/api-notifications.types.mjs +1 -1
  62. package/esm2022/lib/apis/models/api-open-items.interfaces.mjs +1 -1
  63. package/esm2022/lib/apis/models/api-open-items.types.mjs +1 -1
  64. package/esm2022/lib/apis/models/api-quote.interfaces.mjs +2 -0
  65. package/esm2022/lib/apis/models/api-quote.types.mjs +2 -0
  66. package/esm2022/lib/apis/models/api-reports.interfaces.mjs +1 -1
  67. package/esm2022/lib/apis/models/api-reports.types.mjs +1 -1
  68. package/esm2022/lib/apis/models/api-security.interfaces.mjs +1 -1
  69. package/esm2022/lib/apis/models/api-security.types.mjs +1 -1
  70. package/esm2022/lib/apis/models/api-services.interfaces.mjs +1 -1
  71. package/esm2022/lib/apis/models/api-services.types.mjs +1 -1
  72. package/esm2022/lib/apis/models/api-shipments.enums.mjs +1 -1
  73. package/esm2022/lib/apis/models/api-shipments.interfaces.mjs +1 -1
  74. package/esm2022/lib/apis/models/api-shipments.types.mjs +1 -1
  75. package/esm2022/lib/apis/models/api-supplies.interfaces.mjs +1 -1
  76. package/esm2022/lib/apis/models/api-supplies.types.mjs +1 -1
  77. package/esm2022/lib/apis/models/api.models.mjs +1 -1
  78. package/esm2022/lib/cypher/crypto.service.mjs +1 -1
  79. package/esm2022/lib/helpers/files.mjs +1 -1
  80. package/esm2022/lib/helpers/http.mjs +1 -1
  81. package/esm2022/lib/interceptors/api-headers.interceptor.mjs +1 -1
  82. package/esm2022/lib/interceptors/api-key.interceptor.mjs +1 -1
  83. package/esm2022/lib/interceptors/api-token.interceptor.mjs +1 -1
  84. package/esm2022/lib/interceptors/http-caching.interceptor.mjs +1 -1
  85. package/esm2022/lib/ngx-services.models.mjs +1 -1
  86. package/esm2022/lib/ngx-services.module.mjs +1 -1
  87. package/esm2022/lib/websockets/web-sockets.service.mjs +1 -1
  88. package/esm2022/public-api.mjs +5 -1
  89. package/fesm2022/experteam-mx-ngx-services.mjs +194 -1
  90. package/fesm2022/experteam-mx-ngx-services.mjs.map +1 -1
  91. package/lib/apis/api-catalogs.service.d.ts +19 -1
  92. package/lib/apis/api-inventories.service.d.ts +12 -1
  93. package/lib/apis/api-quote.service.d.ts +65 -0
  94. package/lib/apis/api-reports.service.d.ts +39 -1
  95. package/lib/apis/api-shipments.service.d.ts +20 -1
  96. package/lib/apis/models/api-catalog.interfaces.d.ts +7 -0
  97. package/lib/apis/models/api-catalog.types.d.ts +11 -1
  98. package/lib/apis/models/api-companies.types.d.ts +3 -2
  99. package/lib/apis/models/api-inventories.types.d.ts +6 -0
  100. package/lib/apis/models/api-quote.interfaces.d.ts +13 -0
  101. package/lib/apis/models/api-quote.types.d.ts +17 -0
  102. package/lib/apis/models/api-reports.interfaces.d.ts +120 -3
  103. package/lib/apis/models/api-reports.types.d.ts +11 -2
  104. package/lib/apis/models/api-shipments.interfaces.d.ts +29 -0
  105. package/lib/apis/models/api-shipments.types.d.ts +29 -1
  106. package/lib/ngx-services.models.d.ts +2 -1
  107. package/package.json +1 -1
  108. package/public-api.d.ts +4 -0
package/README.md CHANGED
@@ -1,24 +1,24 @@
1
- # NgxServices
2
-
3
- This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 18.2.0.
4
-
5
- ## Code scaffolding
6
-
7
- Run `ng generate component component-name --project ngx-services` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project ngx-services`.
8
- > Note: Don't forget to add `--project ngx-services` or else it will be added to the default project in your `angular.json` file.
9
-
10
- ## Build
11
-
12
- Run `ng build ngx-services` to build the project. The build artifacts will be stored in the `dist/` directory.
13
-
14
- ## Publishing
15
-
16
- After building your library with `ng build ngx-services`, go to the dist folder `cd dist/ngx-services` and run `npm publish`.
17
-
18
- ## Running unit tests
19
-
20
- Run `ng test ngx-services` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
-
22
- ## Further help
23
-
24
- To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.
1
+ # NgxServices
2
+
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 18.2.0.
4
+
5
+ ## Code scaffolding
6
+
7
+ Run `ng generate component component-name --project ngx-services` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project ngx-services`.
8
+ > Note: Don't forget to add `--project ngx-services` or else it will be added to the default project in your `angular.json` file.
9
+
10
+ ## Build
11
+
12
+ Run `ng build ngx-services` to build the project. The build artifacts will be stored in the `dist/` directory.
13
+
14
+ ## Publishing
15
+
16
+ After building your library with `ng build ngx-services`, go to the dist folder `cd dist/ngx-services` and run `npm publish`.
17
+
18
+ ## Running unit tests
19
+
20
+ Run `ng test ngx-services` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
+
22
+ ## Further help
23
+
24
+ To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.
@@ -38,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
38
38
  type: Inject,
39
39
  args: ['env']
40
40
  }] }, { type: i1.HttpClient }] });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWJpbGxpbmctZG8uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi9hcGlzL2FwaS1iaWxsaW5nLWRvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFHbEQsT0FBTyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQTs7O0FBT3RDLE1BQU0sT0FBTyxtQkFBbUI7SUFFTDtJQUNmO0lBRlYsWUFDeUIsWUFBeUIsRUFDeEMsSUFBZ0I7UUFERCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3RCLENBQUM7SUFFTDs7OztPQUlHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUE7SUFDN0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBNkIsR0FBRyxJQUFJLENBQUMsR0FBRyxlQUFlLENBQUM7YUFDekUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQzt3R0F2QlUsbUJBQW1CLGtCQUVwQixLQUFLOzRHQUZKLG1CQUFtQixjQUZsQixNQUFNOzs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFHSSxNQUFNOzJCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tICcuLi9uZ3gtc2VydmljZXMubW9kZWxzJ1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IEFwaVN1Y2Nlc3MgfSBmcm9tICcuL21vZGVscy9hcGkubW9kZWxzJ1xuaW1wb3J0IHsgSW5jb21lVHlwZXNPdXQgfSBmcm9tICcuL21vZGVscy9hcGktYmlsbGluZy1kby50eXBlcydcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXBpQmlsbGluZ0RPU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yIChcbiAgICBASW5qZWN0KCdlbnYnKSBwcml2YXRlIGVudmlyb25tZW50czogRW52aXJvbm1lbnQsXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50XG4gICkgeyB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgVVJMIGZvciB0aGUgc2hpcG1lbnRzIEFQSSBmcm9tIHRoZSBlbnZpcm9ubWVudCBjb25maWd1cmF0aW9ucy5cbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgVVJMIG9mIHRoZSBzaGlwbWVudHMgQVBJLlxuICAgKi9cbiAgZ2V0IHVybCAoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudHMuYXBpQmlsbGluZ0RPID8/ICcnXG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBpbmNvbWUgdHlwZXNcbiAgICpcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxBcGlTdWNjZXNzPEluY29tZVR5cGVzT3V0Pj59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgaW5jb21lIHR5cGVzIGRhdGEuXG4gICAqL1xuICBnZXRJbmNvbWVUeXBlcyAoKTogT2JzZXJ2YWJsZTxJbmNvbWVUeXBlc091dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8SW5jb21lVHlwZXNPdXQ+PihgJHt0aGlzLnVybH0vaW5jb21lLXR5cGVzYClcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG59XG4iXX0=
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWJpbGxpbmctZG8uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi9hcGlzL2FwaS1iaWxsaW5nLWRvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFHbEQsT0FBTyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQTs7O0FBT3RDLE1BQU0sT0FBTyxtQkFBbUI7SUFFTDtJQUNmO0lBRlYsWUFDeUIsWUFBeUIsRUFDeEMsSUFBZ0I7UUFERCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3RCLENBQUM7SUFFTDs7OztPQUlHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUE7SUFDN0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBNkIsR0FBRyxJQUFJLENBQUMsR0FBRyxlQUFlLENBQUM7YUFDekUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQzt3R0F2QlUsbUJBQW1CLGtCQUVwQixLQUFLOzRHQUZKLG1CQUFtQixjQUZsQixNQUFNOzs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFHSSxNQUFNOzJCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uL25neC1zZXJ2aWNlcy5tb2RlbHMnXHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcclxuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgQXBpU3VjY2VzcyB9IGZyb20gJy4vbW9kZWxzL2FwaS5tb2RlbHMnXHJcbmltcG9ydCB7IEluY29tZVR5cGVzT3V0IH0gZnJvbSAnLi9tb2RlbHMvYXBpLWJpbGxpbmctZG8udHlwZXMnXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcGlCaWxsaW5nRE9TZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvciAoXHJcbiAgICBASW5qZWN0KCdlbnYnKSBwcml2YXRlIGVudmlyb25tZW50czogRW52aXJvbm1lbnQsXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnRcclxuICApIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIFVSTCBmb3IgdGhlIHNoaXBtZW50cyBBUEkgZnJvbSB0aGUgZW52aXJvbm1lbnQgY29uZmlndXJhdGlvbnMuXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBVUkwgb2YgdGhlIHNoaXBtZW50cyBBUEkuXHJcbiAgICovXHJcbiAgZ2V0IHVybCAoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50cy5hcGlCaWxsaW5nRE8gPz8gJydcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgaW5jb21lIHR5cGVzXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEFwaVN1Y2Nlc3M8SW5jb21lVHlwZXNPdXQ+Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBpbmNvbWUgdHlwZXMgZGF0YS5cclxuICAgKi9cclxuICBnZXRJbmNvbWVUeXBlcyAoKTogT2JzZXJ2YWJsZTxJbmNvbWVUeXBlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxJbmNvbWVUeXBlc091dD4+KGAke3RoaXMudXJsfS9pbmNvbWUtdHlwZXNgKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcbn1cclxuIl19
@@ -58,4 +58,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
58
58
  type: Inject,
59
59
  args: ['env']
60
60
  }] }, { type: i1.HttpClient }] });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWJpbGxpbmctZ3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi9hcGlzL2FwaS1iaWxsaW5nLWd0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFHbEQsT0FBTyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQTs7O0FBWXRDLE1BQU0sT0FBTyxtQkFBbUI7SUFFTDtJQUNmO0lBRlYsWUFDeUIsWUFBeUIsRUFDeEMsSUFBZ0I7UUFERCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3RCLENBQUM7SUFFTDs7OztPQUlHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUE7SUFDN0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBZ0MsR0FBRyxJQUFJLENBQUMsR0FBRyxtQkFBbUIsQ0FBQzthQUNoRixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxTQUFTLENBQUUsRUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUErQixHQUFHLElBQUksQ0FBQyxHQUFHLGNBQWMsRUFBRSxFQUFFLENBQUM7YUFDOUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFFLElBQXFCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQStCLEdBQUcsSUFBSSxDQUFDLEdBQUcsWUFBWSxFQUFFLElBQUksQ0FBQzthQUMvRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO3dHQTdDVSxtQkFBbUIsa0JBRXBCLEtBQUs7NEdBRkosbUJBQW1CLGNBRmxCLE1BQU07OzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUdJLE1BQU07MkJBQUMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uL25neC1zZXJ2aWNlcy5tb2RlbHMnXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgQXBpU3VjY2VzcyB9IGZyb20gJy4vbW9kZWxzL2FwaS5tb2RlbHMnXG5pbXBvcnQge1xuICBBcGlCaWxsaW5nQ29uZmlndXJhYmxlLFxuICBCaWxsaW5nQ29uZmlnSW4sXG4gIEJpbGxpbmdDb25maWdPdXQsXG4gIEJpbGxpbmdDb25maWdzT3V0XG59IGZyb20gJy4vbW9kZWxzL2FwaS1iaWxsaW5nLm1vZGVscydcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXBpQmlsbGluZ0d0U2VydmljZSBpbXBsZW1lbnRzIEFwaUJpbGxpbmdDb25maWd1cmFibGUge1xuICBjb25zdHJ1Y3RvciAoXG4gICAgQEluamVjdCgnZW52JykgcHJpdmF0ZSBlbnZpcm9ubWVudHM6IEVudmlyb25tZW50LFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxuICApIHsgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIFVSTCBmb3IgdGhlIGJpbGxpbmcgR1QgQVBJIGZyb20gdGhlIGVudmlyb25tZW50IGNvbmZpZ3VyYXRpb25zLlxuICAgKlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBVUkwgb2YgdGhlIHNoaXBtZW50cyBBUEkuXG4gICAqL1xuICBnZXQgdXJsICgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50cy5hcGlCaWxsaW5nR1QgPz8gJydcbiAgfVxuXG4gIC8qKlxuICAgKiBSUmV0cmlldmVzIHRoZSBsaXN0IG9mIGJpbGxpbmcgY29uZmlndXJhdGlvbnMgdG8gbG9jYXRpb25zXG4gICAqXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8QmlsbGluZ0NvbmZpZ3NPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgYW4gYXJyYXkgb2YgYmlsbGluZyBjb25maWd1cmF0aW9ucyB0byBsb2NhdGlvbnNcbiAgICovXG4gIGdldENvbmZpZ3MgKCk6IE9ic2VydmFibGU8QmlsbGluZ0NvbmZpZ3NPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEJpbGxpbmdDb25maWdzT3V0Pj4oYCR7dGhpcy51cmx9L2xvY2F0aW9uL2NvbmZpZ3NgKVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBkZXRhaWxzIG9mIGEgbG9jYXRpb24gaW4gYmlsbGluZyBjb25maWd1cmF0aW9uc1xuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgaWQgb2YgdGhlIGxvY2F0aW9uIHRvIGZldGNoLlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEJpbGxpbmdDb25maWdPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGxvY2F0aW9uIGJpbGxpbmcgY29uZmlndXJhdGlvbiBkYXRhLlxuICAgKi9cbiAgZ2V0Q29uZmlnIChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxCaWxsaW5nQ29uZmlnT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxCaWxsaW5nQ29uZmlnT3V0Pj4oYCR7dGhpcy51cmx9L2xvY2F0aW9ucy8ke2lkfWApXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kcyBhIFBPU1QgcmVxdWVzdCB0byBjcmVhdGUgYSBuZXcgYmlsbGluZyBjb25maWd1cmF0aW9uIGxvY2F0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge0JpbGxpbmdDb25maWdJbn0gYm9keSAtIFRoZSBiaWxsaW5nIGNvbmZpZ3VyYXRpb24gdG8gbG9jYXRpb24gZGF0YSB0byBiZSBzZW50IGluIHRoZSByZXF1ZXN0IGJvZHkuXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8QmlsbGluZ0NvbmZpZ091dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIGNyZWF0ZWQgYmlsbGluZyBjb25maWd1cmF0aW9uIHRvIGxvY2F0aW9uIGRhdGEuXG4gICAqL1xuICBwb3N0Q29uZmlncyAoYm9keTogQmlsbGluZ0NvbmZpZ0luKTogT2JzZXJ2YWJsZTxCaWxsaW5nQ29uZmlnT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8QmlsbGluZ0NvbmZpZ091dD4+KGAke3RoaXMudXJsfS9sb2NhdGlvbnNgLCBib2R5KVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cbn1cbiJdfQ==
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWJpbGxpbmctZ3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi9hcGlzL2FwaS1iaWxsaW5nLWd0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFHbEQsT0FBTyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQTs7O0FBWXRDLE1BQU0sT0FBTyxtQkFBbUI7SUFFTDtJQUNmO0lBRlYsWUFDeUIsWUFBeUIsRUFDeEMsSUFBZ0I7UUFERCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3RCLENBQUM7SUFFTDs7OztPQUlHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUE7SUFDN0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBZ0MsR0FBRyxJQUFJLENBQUMsR0FBRyxtQkFBbUIsQ0FBQzthQUNoRixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxTQUFTLENBQUUsRUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUErQixHQUFHLElBQUksQ0FBQyxHQUFHLGNBQWMsRUFBRSxFQUFFLENBQUM7YUFDOUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFFLElBQXFCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQStCLEdBQUcsSUFBSSxDQUFDLEdBQUcsWUFBWSxFQUFFLElBQUksQ0FBQzthQUMvRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO3dHQTdDVSxtQkFBbUIsa0JBRXBCLEtBQUs7NEdBRkosbUJBQW1CLGNBRmxCLE1BQU07OzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUdJLE1BQU07MkJBQUMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vbmd4LXNlcnZpY2VzLm1vZGVscydcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xyXG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBBcGlTdWNjZXNzIH0gZnJvbSAnLi9tb2RlbHMvYXBpLm1vZGVscydcclxuaW1wb3J0IHtcclxuICBBcGlCaWxsaW5nQ29uZmlndXJhYmxlLFxyXG4gIEJpbGxpbmdDb25maWdJbixcclxuICBCaWxsaW5nQ29uZmlnT3V0LFxyXG4gIEJpbGxpbmdDb25maWdzT3V0XHJcbn0gZnJvbSAnLi9tb2RlbHMvYXBpLWJpbGxpbmcubW9kZWxzJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBpQmlsbGluZ0d0U2VydmljZSBpbXBsZW1lbnRzIEFwaUJpbGxpbmdDb25maWd1cmFibGUge1xyXG4gIGNvbnN0cnVjdG9yIChcclxuICAgIEBJbmplY3QoJ2VudicpIHByaXZhdGUgZW52aXJvbm1lbnRzOiBFbnZpcm9ubWVudCxcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxyXG4gICkgeyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgVVJMIGZvciB0aGUgYmlsbGluZyBHVCBBUEkgZnJvbSB0aGUgZW52aXJvbm1lbnQgY29uZmlndXJhdGlvbnMuXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBVUkwgb2YgdGhlIHNoaXBtZW50cyBBUEkuXHJcbiAgICovXHJcbiAgZ2V0IHVybCAoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50cy5hcGlCaWxsaW5nR1QgPz8gJydcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJSZXRyaWV2ZXMgdGhlIGxpc3Qgb2YgYmlsbGluZyBjb25maWd1cmF0aW9ucyB0byBsb2NhdGlvbnNcclxuICAgKlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8QmlsbGluZ0NvbmZpZ3NPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgYW4gYXJyYXkgb2YgYmlsbGluZyBjb25maWd1cmF0aW9ucyB0byBsb2NhdGlvbnNcclxuICAgKi9cclxuICBnZXRDb25maWdzICgpOiBPYnNlcnZhYmxlPEJpbGxpbmdDb25maWdzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEJpbGxpbmdDb25maWdzT3V0Pj4oYCR7dGhpcy51cmx9L2xvY2F0aW9uL2NvbmZpZ3NgKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgZGV0YWlscyBvZiBhIGxvY2F0aW9uIGluIGJpbGxpbmcgY29uZmlndXJhdGlvbnNcclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSBpZCBvZiB0aGUgbG9jYXRpb24gdG8gZmV0Y2guXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxCaWxsaW5nQ29uZmlnT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBsb2NhdGlvbiBiaWxsaW5nIGNvbmZpZ3VyYXRpb24gZGF0YS5cclxuICAgKi9cclxuICBnZXRDb25maWcgKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPEJpbGxpbmdDb25maWdPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8QmlsbGluZ0NvbmZpZ091dD4+KGAke3RoaXMudXJsfS9sb2NhdGlvbnMvJHtpZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmRzIGEgUE9TVCByZXF1ZXN0IHRvIGNyZWF0ZSBhIG5ldyBiaWxsaW5nIGNvbmZpZ3VyYXRpb24gbG9jYXRpb24uXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0JpbGxpbmdDb25maWdJbn0gYm9keSAtIFRoZSBiaWxsaW5nIGNvbmZpZ3VyYXRpb24gdG8gbG9jYXRpb24gZGF0YSB0byBiZSBzZW50IGluIHRoZSByZXF1ZXN0IGJvZHkuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxCaWxsaW5nQ29uZmlnT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgY3JlYXRlZCBiaWxsaW5nIGNvbmZpZ3VyYXRpb24gdG8gbG9jYXRpb24gZGF0YS5cclxuICAgKi9cclxuICBwb3N0Q29uZmlncyAoYm9keTogQmlsbGluZ0NvbmZpZ0luKTogT2JzZXJ2YWJsZTxCaWxsaW5nQ29uZmlnT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxCaWxsaW5nQ29uZmlnT3V0Pj4oYCR7dGhpcy51cmx9L2xvY2F0aW9uc2AsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -59,4 +59,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
59
59
  type: Inject,
60
60
  args: ['env']
61
61
  }] }, { type: i1.HttpClient }] });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWJpbGxpbmctbXguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi9hcGlzL2FwaS1iaWxsaW5nLW14LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFHbEQsT0FBTyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQTs7O0FBT3RDLE1BQU0sT0FBTyxtQkFBbUI7SUFFTDtJQUNmO0lBRlYsWUFDeUIsWUFBeUIsRUFDeEMsSUFBZ0I7UUFERCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3RCLENBQUM7SUFFTDs7OztPQUlHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUE7SUFDN0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFnQyxHQUFHLElBQUksQ0FBQyxHQUFHLGtCQUFrQixDQUFDO2FBQy9FLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHlCQUF5QixDQUFFLGFBQXFCO1FBQzlDLE1BQU0sTUFBTSxHQUFHLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLENBQUE7UUFFbEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBd0MsR0FBRyxJQUFJLENBQUMsR0FBRyx5Q0FBeUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQzFILElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGNBQWMsQ0FBRSxNQUFtQjtRQUNqQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUE2QixHQUFHLElBQUksQ0FBQyxHQUFHLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQ3JGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7d0dBL0NVLG1CQUFtQixrQkFFcEIsS0FBSzs0R0FGSixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBR0ksTUFBTTsyQkFBQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vbmd4LXNlcnZpY2VzLm1vZGVscydcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBBcGlTdWNjZXNzLCBRdWVyeVBhcmFtcyB9IGZyb20gJy4vbW9kZWxzL2FwaS5tb2RlbHMnXG5pbXBvcnQgeyBGaXNjYWxSZWdpbWVuc0FjY2VwdGVkT3V0LCBGaXNjYWxSZWdpbWVuc091dCwgUG9zdGFsQ29kZXNPdXQgfSBmcm9tICcuL21vZGVscy9hcGktYmlsbGluZy1teC50eXBlcydcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXBpQmlsbGluZ014U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yIChcbiAgICBASW5qZWN0KCdlbnYnKSBwcml2YXRlIGVudmlyb25tZW50czogRW52aXJvbm1lbnQsXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50XG4gICkgeyB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgVVJMIGZvciB0aGUgc2hpcG1lbnRzIEFQSSBmcm9tIHRoZSBlbnZpcm9ubWVudCBjb25maWd1cmF0aW9ucy5cbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgVVJMIG9mIHRoZSBzaGlwbWVudHMgQVBJLlxuICAgKi9cbiAgZ2V0IHVybCAoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudHMuYXBpQmlsbGluZ01YID8/ICcnXG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyB0aGUgdGF4IHJlZ2ltZW4gZGF0YSBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAqXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8RmlzY2FsUmVnaW1lbnNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGZpc2NhbCByZWdpbWVuIGRhdGEuXG4gICAqL1xuICBnZXRGaXNjYWxSZWdpbWVucyAoKTogT2JzZXJ2YWJsZTxGaXNjYWxSZWdpbWVuc091dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8RmlzY2FsUmVnaW1lbnNPdXQ+PihgJHt0aGlzLnVybH0vZmlzY2FsLXJlZ2ltZW5zYClcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgYSBwYWdpbmF0ZWQgbGlzdCBvZiBDRkRJcyAoQ29tcHJvYmFudGUgRmlzY2FsIERpZ2l0YWwgcG9yIEludGVybmV0KSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgZmlzY2FsIHJlZ2ltZW4uXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBmaXNjYWxSZWdpbWVuIC0gVGhlIGZpc2NhbCByZWdpbWVuIGlkZW50aWZpZXIgdG8gZmlsdGVyIHRoZSBDRkRJcy5cbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxGaXNjYWxSZWdpbWVuc0FjY2VwdGVkT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBwYWdpbmF0ZWQgbGlzdCBvZiBDRkRJcy5cbiAgICovXG4gIGdldEZpc2NhbFJlZ2ltZW5zQWNjZXB0ZWQgKGZpc2NhbFJlZ2ltZW46IG51bWJlcik6IE9ic2VydmFibGU8RmlzY2FsUmVnaW1lbnNBY2NlcHRlZE91dD4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IHsgJ2Zpc2NhbC1yZWdpbWVuJzogZmlzY2FsUmVnaW1lbiB9XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEZpc2NhbFJlZ2ltZW5zQWNjZXB0ZWRPdXQ+PihgJHt0aGlzLnVybH0vY2ZkaS11c2VzL2Zpc2NhbC1yZWdpbWVuLWFjY2VwdGVkL2xpc3RgLCB7IHBhcmFtcyB9KVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyBhbmQgdmFsaWRhdGVzIHBvc3RhbCBjb2RlIGRhdGEgZnJvbSB0aGUgc2VydmVyLlxuICAgKlxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBRdWVyeSBwYXJhbWV0ZXJzIHVzZWQgdG8gZmlsdGVyIHRoZSBwb3N0YWwgY29kZSBkYXRhLlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFBvc3RhbENvZGVzT3V0Pn0gLSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSB2YWxpZGF0ZWQgcG9zdGFsIGNvZGUgZGF0YS5cbiAgICovXG4gIGdldFBvc3RhbENvZGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxQb3N0YWxDb2Rlc091dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8UG9zdGFsQ29kZXNPdXQ+PihgJHt0aGlzLnVybH0vcG9zdGFsLWNvZGVzYCwgeyBwYXJhbXMgfSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG59XG4iXX0=
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWJpbGxpbmctbXguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi9hcGlzL2FwaS1iaWxsaW5nLW14LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFHbEQsT0FBTyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQTs7O0FBT3RDLE1BQU0sT0FBTyxtQkFBbUI7SUFFTDtJQUNmO0lBRlYsWUFDeUIsWUFBeUIsRUFDeEMsSUFBZ0I7UUFERCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3RCLENBQUM7SUFFTDs7OztPQUlHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUE7SUFDN0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFnQyxHQUFHLElBQUksQ0FBQyxHQUFHLGtCQUFrQixDQUFDO2FBQy9FLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHlCQUF5QixDQUFFLGFBQXFCO1FBQzlDLE1BQU0sTUFBTSxHQUFHLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLENBQUE7UUFFbEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBd0MsR0FBRyxJQUFJLENBQUMsR0FBRyx5Q0FBeUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQzFILElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGNBQWMsQ0FBRSxNQUFtQjtRQUNqQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUE2QixHQUFHLElBQUksQ0FBQyxHQUFHLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQ3JGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7d0dBL0NVLG1CQUFtQixrQkFFcEIsS0FBSzs0R0FGSixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBR0ksTUFBTTsyQkFBQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tICcuLi9uZ3gtc2VydmljZXMubW9kZWxzJ1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXHJcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IEFwaVN1Y2Nlc3MsIFF1ZXJ5UGFyYW1zIH0gZnJvbSAnLi9tb2RlbHMvYXBpLm1vZGVscydcclxuaW1wb3J0IHsgRmlzY2FsUmVnaW1lbnNBY2NlcHRlZE91dCwgRmlzY2FsUmVnaW1lbnNPdXQsIFBvc3RhbENvZGVzT3V0IH0gZnJvbSAnLi9tb2RlbHMvYXBpLWJpbGxpbmctbXgudHlwZXMnXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcGlCaWxsaW5nTXhTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvciAoXHJcbiAgICBASW5qZWN0KCdlbnYnKSBwcml2YXRlIGVudmlyb25tZW50czogRW52aXJvbm1lbnQsXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnRcclxuICApIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIFVSTCBmb3IgdGhlIHNoaXBtZW50cyBBUEkgZnJvbSB0aGUgZW52aXJvbm1lbnQgY29uZmlndXJhdGlvbnMuXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBVUkwgb2YgdGhlIHNoaXBtZW50cyBBUEkuXHJcbiAgICovXHJcbiAgZ2V0IHVybCAoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50cy5hcGlCaWxsaW5nTVggPz8gJydcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgdGhlIHRheCByZWdpbWVuIGRhdGEgZnJvbSB0aGUgc2VydmVyLlxyXG4gICAqXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxGaXNjYWxSZWdpbWVuc091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgZmlzY2FsIHJlZ2ltZW4gZGF0YS5cclxuICAgKi9cclxuICBnZXRGaXNjYWxSZWdpbWVucyAoKTogT2JzZXJ2YWJsZTxGaXNjYWxSZWdpbWVuc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxGaXNjYWxSZWdpbWVuc091dD4+KGAke3RoaXMudXJsfS9maXNjYWwtcmVnaW1lbnNgKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgYSBwYWdpbmF0ZWQgbGlzdCBvZiBDRkRJcyAoQ29tcHJvYmFudGUgRmlzY2FsIERpZ2l0YWwgcG9yIEludGVybmV0KSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgZmlzY2FsIHJlZ2ltZW4uXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gZmlzY2FsUmVnaW1lbiAtIFRoZSBmaXNjYWwgcmVnaW1lbiBpZGVudGlmaWVyIHRvIGZpbHRlciB0aGUgQ0ZESXMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxGaXNjYWxSZWdpbWVuc0FjY2VwdGVkT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBwYWdpbmF0ZWQgbGlzdCBvZiBDRkRJcy5cclxuICAgKi9cclxuICBnZXRGaXNjYWxSZWdpbWVuc0FjY2VwdGVkIChmaXNjYWxSZWdpbWVuOiBudW1iZXIpOiBPYnNlcnZhYmxlPEZpc2NhbFJlZ2ltZW5zQWNjZXB0ZWRPdXQ+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHsgJ2Zpc2NhbC1yZWdpbWVuJzogZmlzY2FsUmVnaW1lbiB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxGaXNjYWxSZWdpbWVuc0FjY2VwdGVkT3V0Pj4oYCR7dGhpcy51cmx9L2NmZGktdXNlcy9maXNjYWwtcmVnaW1lbi1hY2NlcHRlZC9saXN0YCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIGFuZCB2YWxpZGF0ZXMgcG9zdGFsIGNvZGUgZGF0YSBmcm9tIHRoZSBzZXJ2ZXIuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBRdWVyeSBwYXJhbWV0ZXJzIHVzZWQgdG8gZmlsdGVyIHRoZSBwb3N0YWwgY29kZSBkYXRhLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8UG9zdGFsQ29kZXNPdXQ+fSAtIEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHZhbGlkYXRlZCBwb3N0YWwgY29kZSBkYXRhLlxyXG4gICAqL1xyXG4gIGdldFBvc3RhbENvZGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxQb3N0YWxDb2Rlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxQb3N0YWxDb2Rlc091dD4+KGAke3RoaXMudXJsfS9wb3N0YWwtY29kZXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcbn1cclxuIl19
@@ -102,4 +102,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
102
102
  type: Inject,
103
103
  args: ['env']
104
104
  }] }, { type: i1.HttpClient }] });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWJpbGxpbmctcGEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi9hcGlzL2FwaS1iaWxsaW5nLXBhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFJbEQsT0FBTyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQTs7O0FBT3RDLE1BQU0sT0FBTyxtQkFBbUI7SUFFTDtJQUNmO0lBRlYsWUFDeUIsWUFBeUIsRUFDeEMsSUFBZ0I7UUFERCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3RCLENBQUM7SUFFTDs7OztPQUlHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUE7SUFDN0MsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsWUFBWSxDQUFFLE1BQW1CO1FBQy9CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQTJCLEdBQUcsSUFBSSxDQUFDLEdBQUcsWUFBWSxFQUFFO1lBQ3RFLE1BQU07U0FDUCxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFFLE1BQW1CO1FBQzlCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQTBCLEdBQUcsSUFBSSxDQUFDLEdBQUcsV0FBVyxFQUFFO1lBQ3BFLE1BQU07U0FDUCxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsWUFBWSxDQUFFLE1BQW1CO1FBQy9CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQTJCLEdBQUcsSUFBSSxDQUFDLEdBQUcsWUFBWSxFQUFFO1lBQ3RFLE1BQU07U0FDUCxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsbUJBQW1CLENBQUUsTUFBbUI7UUFDdEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBbUMsR0FBRyxJQUFJLENBQUMsR0FBRyxvQkFBb0IsRUFBRTtZQUN0RixNQUFNO1NBQ1AsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWdDLEdBQUcsSUFBSSxDQUFDLEdBQUcsbUJBQW1CLENBQUM7YUFDaEYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsU0FBUyxDQUFFLEVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBK0IsR0FBRyxJQUFJLENBQUMsR0FBRyxjQUFjLEVBQUUsRUFBRSxDQUFDO2FBQzlFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFdBQVcsQ0FBRSxJQUFxQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUErQixHQUFHLElBQUksQ0FBQyxHQUFHLFlBQVksRUFBRSxJQUFJLENBQUM7YUFDL0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQzt3R0E3RlUsbUJBQW1CLGtCQUVwQixLQUFLOzRHQUZKLG1CQUFtQixjQUZsQixNQUFNOzs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFHSSxNQUFNOzJCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tICcuLi9uZ3gtc2VydmljZXMubW9kZWxzJ1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xuaW1wb3J0IHsgQXBpU3VjY2VzcywgUXVlcnlQYXJhbXMgfSBmcm9tICcuL21vZGVscy9hcGkubW9kZWxzJ1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IEJpbGxpbmdQYUN1c3RvbWVyT3V0LCBEaXN0cmljdHNPdXQsIFBhcmlzaGVzT3V0LCBQcm92aW5jZXNPdXQgfSBmcm9tICcuL21vZGVscy9hcGktYmlsbGluZy1wYS50eXBlcydcbmltcG9ydCB7IEFwaUJpbGxpbmdDb25maWd1cmFibGUsIEJpbGxpbmdDb25maWdJbiwgQmlsbGluZ0NvbmZpZ091dCwgQmlsbGluZ0NvbmZpZ3NPdXQgfSBmcm9tICcuL21vZGVscy9hcGktYmlsbGluZy5tb2RlbHMnXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFwaUJpbGxpbmdQYVNlcnZpY2UgaW1wbGVtZW50cyBBcGlCaWxsaW5nQ29uZmlndXJhYmxlIHtcbiAgY29uc3RydWN0b3IgKFxuICAgIEBJbmplY3QoJ2VudicpIHByaXZhdGUgZW52aXJvbm1lbnRzOiBFbnZpcm9ubWVudCxcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnRcbiAgKSB7IH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBVUkwgZm9yIHRoZSBCaWxsaW5nIFBhIEFQSSBmcm9tIHRoZSBlbnZpcm9ubWVudCBjb25maWd1cmF0aW9ucy5cbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgVVJMIG9mIHRoZSBCaWxsaW5nIFBhIEFQSS5cbiAgICovXG4gIGdldCB1cmwgKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnRzLmFwaUJpbGxpbmdQQSA/PyAnJ1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgZGlzdHJpY3RzIGJhc2VkIG9uIHF1ZXJ5IHBhcmFtZXRlcnMuXG4gICAqXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFF1ZXJ5IHBhcmFtZXRlcnMgZm9yIGZpbHRlcmluZyB0aGUgZGlzdHJpY3RzLlxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxEaXN0cmljdHNPdXQ+fSBUaGUgbGlzdCBvZiBkaXN0cmljdHMuXG4gICAqL1xuICBnZXREaXN0cmljdHMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPERpc3RyaWN0c091dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8RGlzdHJpY3RzT3V0Pj4oYCR7dGhpcy51cmx9L2Rpc3RyaWN0c2AsIHtcbiAgICAgIHBhcmFtc1xuICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBwYXJpc2hlcyBiYXNlZCBvbiBxdWVyeSBwYXJhbWV0ZXJzLlxuICAgKlxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBRdWVyeSBwYXJhbWV0ZXJzIGZvciBmaWx0ZXJpbmcgdGhlIHBhcmlzaGVzLlxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxQYXJpc2hlc091dD59IFRoZSBsaXN0IG9mIHBhcmlzaGVzLlxuICAgKi9cbiAgZ2V0UGFyaXNoZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFBhcmlzaGVzT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxQYXJpc2hlc091dD4+KGAke3RoaXMudXJsfS9wYXJpc2hlc2AsIHtcbiAgICAgIHBhcmFtc1xuICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBwcm92aW5jZXMgYmFzZWQgb24gcXVlcnkgcGFyYW1ldGVycy5cbiAgICpcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gUXVlcnkgcGFyYW1ldGVycyBmb3IgZmlsdGVyaW5nIHRoZSBwcm92aW5jZXMuXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPFByb3ZpbmNlc091dD59IFRoZSBsaXN0IG9mIHByb3ZpbmNlcy5cbiAgICovXG4gIGdldFByb3ZpbmNlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8UHJvdmluY2VzT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxQcm92aW5jZXNPdXQ+PihgJHt0aGlzLnVybH0vcHJvdmluY2VzYCwge1xuICAgICAgcGFyYW1zXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIGRldGFpbHMgb2YgYSBjdXN0b21lciBiYXNlZCBvbiBxdWVyeSBwYXJhbWV0ZXJzLlxuICAgKlxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBRdWVyeSBwYXJhbWV0ZXJzIGZvciBnZXQgY3VzdG9tZXIuXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8QmlsbGluZ1BhQ3VzdG9tZXJPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgY3VzdG9tZXIgZGF0YS5cbiAgICovXG4gIGdldFZhbGlkYXRlQ3VzdG9tZXIgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPEJpbGxpbmdQYUN1c3RvbWVyT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxCaWxsaW5nUGFDdXN0b21lck91dD4+KGAke3RoaXMudXJsfS92YWxpZGF0ZS1jdXN0b21lcmAsIHtcbiAgICAgIHBhcmFtc1xuICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogUlJldHJpZXZlcyB0aGUgbGlzdCBvZiBiaWxsaW5nIGNvbmZpZ3VyYXRpb25zIHRvIGxvY2F0aW9uc1xuICAgKlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEJpbGxpbmdDb25maWdzT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGFuIGFycmF5IG9mIGJpbGxpbmcgY29uZmlndXJhdGlvbnMgdG8gbG9jYXRpb25zXG4gICAqL1xuICBnZXRDb25maWdzICgpOiBPYnNlcnZhYmxlPEJpbGxpbmdDb25maWdzT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxCaWxsaW5nQ29uZmlnc091dD4+KGAke3RoaXMudXJsfS9sb2NhdGlvbi9jb25maWdzYClcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgZGV0YWlscyBvZiBhIGxvY2F0aW9uIGluIGJpbGxpbmcgY29uZmlndXJhdGlvbnNcbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIGlkIG9mIHRoZSBsb2NhdGlvbiB0byBmZXRjaC5cbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxCaWxsaW5nQ29uZmlnT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBsb2NhdGlvbiBiaWxsaW5nIGNvbmZpZ3VyYXRpb24gZGF0YS5cbiAgICovXG4gIGdldENvbmZpZyAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8QmlsbGluZ0NvbmZpZ091dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8QmlsbGluZ0NvbmZpZ091dD4+KGAke3RoaXMudXJsfS9sb2NhdGlvbnMvJHtpZH1gKVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogU2VuZHMgYSBQT1NUIHJlcXVlc3QgdG8gY3JlYXRlIGEgbmV3IGJpbGxpbmcgY29uZmlndXJhdGlvbiBsb2NhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtCaWxsaW5nQ29uZmlnSW59IGJvZHkgLSBUaGUgYmlsbGluZyBjb25maWd1cmF0aW9uIHRvIGxvY2F0aW9uIGRhdGEgdG8gYmUgc2VudCBpbiB0aGUgcmVxdWVzdCBib2R5LlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEJpbGxpbmdDb25maWdPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSBjcmVhdGVkIGJpbGxpbmcgY29uZmlndXJhdGlvbiB0byBsb2NhdGlvbiBkYXRhLlxuICAgKi9cbiAgcG9zdENvbmZpZ3MgKGJvZHk6IEJpbGxpbmdDb25maWdJbik6IE9ic2VydmFibGU8QmlsbGluZ0NvbmZpZ091dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPEJpbGxpbmdDb25maWdPdXQ+PihgJHt0aGlzLnVybH0vbG9jYXRpb25zYCwgYm9keSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG59XG4iXX0=
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWJpbGxpbmctcGEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi9hcGlzL2FwaS1iaWxsaW5nLXBhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFJbEQsT0FBTyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQTs7O0FBT3RDLE1BQU0sT0FBTyxtQkFBbUI7SUFFTDtJQUNmO0lBRlYsWUFDeUIsWUFBeUIsRUFDeEMsSUFBZ0I7UUFERCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3RCLENBQUM7SUFFTDs7OztPQUlHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUE7SUFDN0MsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsWUFBWSxDQUFFLE1BQW1CO1FBQy9CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQTJCLEdBQUcsSUFBSSxDQUFDLEdBQUcsWUFBWSxFQUFFO1lBQ3RFLE1BQU07U0FDUCxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFFLE1BQW1CO1FBQzlCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQTBCLEdBQUcsSUFBSSxDQUFDLEdBQUcsV0FBVyxFQUFFO1lBQ3BFLE1BQU07U0FDUCxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsWUFBWSxDQUFFLE1BQW1CO1FBQy9CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQTJCLEdBQUcsSUFBSSxDQUFDLEdBQUcsWUFBWSxFQUFFO1lBQ3RFLE1BQU07U0FDUCxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsbUJBQW1CLENBQUUsTUFBbUI7UUFDdEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBbUMsR0FBRyxJQUFJLENBQUMsR0FBRyxvQkFBb0IsRUFBRTtZQUN0RixNQUFNO1NBQ1AsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWdDLEdBQUcsSUFBSSxDQUFDLEdBQUcsbUJBQW1CLENBQUM7YUFDaEYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsU0FBUyxDQUFFLEVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBK0IsR0FBRyxJQUFJLENBQUMsR0FBRyxjQUFjLEVBQUUsRUFBRSxDQUFDO2FBQzlFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFdBQVcsQ0FBRSxJQUFxQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUErQixHQUFHLElBQUksQ0FBQyxHQUFHLFlBQVksRUFBRSxJQUFJLENBQUM7YUFDL0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQzt3R0E3RlUsbUJBQW1CLGtCQUVwQixLQUFLOzRHQUZKLG1CQUFtQixjQUZsQixNQUFNOzs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFHSSxNQUFNOzJCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uL25neC1zZXJ2aWNlcy5tb2RlbHMnXHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcclxuaW1wb3J0IHsgQXBpU3VjY2VzcywgUXVlcnlQYXJhbXMgfSBmcm9tICcuL21vZGVscy9hcGkubW9kZWxzJ1xyXG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBCaWxsaW5nUGFDdXN0b21lck91dCwgRGlzdHJpY3RzT3V0LCBQYXJpc2hlc091dCwgUHJvdmluY2VzT3V0IH0gZnJvbSAnLi9tb2RlbHMvYXBpLWJpbGxpbmctcGEudHlwZXMnXHJcbmltcG9ydCB7IEFwaUJpbGxpbmdDb25maWd1cmFibGUsIEJpbGxpbmdDb25maWdJbiwgQmlsbGluZ0NvbmZpZ091dCwgQmlsbGluZ0NvbmZpZ3NPdXQgfSBmcm9tICcuL21vZGVscy9hcGktYmlsbGluZy5tb2RlbHMnXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcGlCaWxsaW5nUGFTZXJ2aWNlIGltcGxlbWVudHMgQXBpQmlsbGluZ0NvbmZpZ3VyYWJsZSB7XHJcbiAgY29uc3RydWN0b3IgKFxyXG4gICAgQEluamVjdCgnZW52JykgcHJpdmF0ZSBlbnZpcm9ubWVudHM6IEVudmlyb25tZW50LFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50XHJcbiAgKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBVUkwgZm9yIHRoZSBCaWxsaW5nIFBhIEFQSSBmcm9tIHRoZSBlbnZpcm9ubWVudCBjb25maWd1cmF0aW9ucy5cclxuICAgKlxyXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIFVSTCBvZiB0aGUgQmlsbGluZyBQYSBBUEkuXHJcbiAgICovXHJcbiAgZ2V0IHVybCAoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50cy5hcGlCaWxsaW5nUEEgPz8gJydcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgZGlzdHJpY3RzIGJhc2VkIG9uIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBRdWVyeSBwYXJhbWV0ZXJzIGZvciBmaWx0ZXJpbmcgdGhlIGRpc3RyaWN0cy5cclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxEaXN0cmljdHNPdXQ+fSBUaGUgbGlzdCBvZiBkaXN0cmljdHMuXHJcbiAgICovXHJcbiAgZ2V0RGlzdHJpY3RzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxEaXN0cmljdHNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8RGlzdHJpY3RzT3V0Pj4oYCR7dGhpcy51cmx9L2Rpc3RyaWN0c2AsIHtcclxuICAgICAgcGFyYW1zXHJcbiAgICB9KS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBwYXJpc2hlcyBiYXNlZCBvbiBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gUXVlcnkgcGFyYW1ldGVycyBmb3IgZmlsdGVyaW5nIHRoZSBwYXJpc2hlcy5cclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxQYXJpc2hlc091dD59IFRoZSBsaXN0IG9mIHBhcmlzaGVzLlxyXG4gICAqL1xyXG4gIGdldFBhcmlzaGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxQYXJpc2hlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxQYXJpc2hlc091dD4+KGAke3RoaXMudXJsfS9wYXJpc2hlc2AsIHtcclxuICAgICAgcGFyYW1zXHJcbiAgICB9KS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBwcm92aW5jZXMgYmFzZWQgb24gcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFF1ZXJ5IHBhcmFtZXRlcnMgZm9yIGZpbHRlcmluZyB0aGUgcHJvdmluY2VzLlxyXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPFByb3ZpbmNlc091dD59IFRoZSBsaXN0IG9mIHByb3ZpbmNlcy5cclxuICAgKi9cclxuICBnZXRQcm92aW5jZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFByb3ZpbmNlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxQcm92aW5jZXNPdXQ+PihgJHt0aGlzLnVybH0vcHJvdmluY2VzYCwge1xyXG4gICAgICBwYXJhbXNcclxuICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIGRldGFpbHMgb2YgYSBjdXN0b21lciBiYXNlZCBvbiBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gUXVlcnkgcGFyYW1ldGVycyBmb3IgZ2V0IGN1c3RvbWVyLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8QmlsbGluZ1BhQ3VzdG9tZXJPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgY3VzdG9tZXIgZGF0YS5cclxuICAgKi9cclxuICBnZXRWYWxpZGF0ZUN1c3RvbWVyIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxCaWxsaW5nUGFDdXN0b21lck91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxCaWxsaW5nUGFDdXN0b21lck91dD4+KGAke3RoaXMudXJsfS92YWxpZGF0ZS1jdXN0b21lcmAsIHtcclxuICAgICAgcGFyYW1zXHJcbiAgICB9KS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUlJldHJpZXZlcyB0aGUgbGlzdCBvZiBiaWxsaW5nIGNvbmZpZ3VyYXRpb25zIHRvIGxvY2F0aW9uc1xyXG4gICAqXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxCaWxsaW5nQ29uZmlnc091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyBhbiBhcnJheSBvZiBiaWxsaW5nIGNvbmZpZ3VyYXRpb25zIHRvIGxvY2F0aW9uc1xyXG4gICAqL1xyXG4gIGdldENvbmZpZ3MgKCk6IE9ic2VydmFibGU8QmlsbGluZ0NvbmZpZ3NPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8QmlsbGluZ0NvbmZpZ3NPdXQ+PihgJHt0aGlzLnVybH0vbG9jYXRpb24vY29uZmlnc2ApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBkZXRhaWxzIG9mIGEgbG9jYXRpb24gaW4gYmlsbGluZyBjb25maWd1cmF0aW9uc1xyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIGlkIG9mIHRoZSBsb2NhdGlvbiB0byBmZXRjaC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEJpbGxpbmdDb25maWdPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGxvY2F0aW9uIGJpbGxpbmcgY29uZmlndXJhdGlvbiBkYXRhLlxyXG4gICAqL1xyXG4gIGdldENvbmZpZyAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8QmlsbGluZ0NvbmZpZ091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxCaWxsaW5nQ29uZmlnT3V0Pj4oYCR7dGhpcy51cmx9L2xvY2F0aW9ucy8ke2lkfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZHMgYSBQT1NUIHJlcXVlc3QgdG8gY3JlYXRlIGEgbmV3IGJpbGxpbmcgY29uZmlndXJhdGlvbiBsb2NhdGlvbi5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7QmlsbGluZ0NvbmZpZ0lufSBib2R5IC0gVGhlIGJpbGxpbmcgY29uZmlndXJhdGlvbiB0byBsb2NhdGlvbiBkYXRhIHRvIGJlIHNlbnQgaW4gdGhlIHJlcXVlc3QgYm9keS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEJpbGxpbmdDb25maWdPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSBjcmVhdGVkIGJpbGxpbmcgY29uZmlndXJhdGlvbiB0byBsb2NhdGlvbiBkYXRhLlxyXG4gICAqL1xyXG4gIHBvc3RDb25maWdzIChib2R5OiBCaWxsaW5nQ29uZmlnSW4pOiBPYnNlcnZhYmxlPEJpbGxpbmdDb25maWdPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPEJpbGxpbmdDb25maWdPdXQ+PihgJHt0aGlzLnVybH0vbG9jYXRpb25zYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -80,4 +80,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
80
80
  type: Inject,
81
81
  args: ['env']
82
82
  }] }, { type: i1.HttpClient }] });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWJpbGxpbmctc3Yuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi9hcGlzL2FwaS1iaWxsaW5nLXN2LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFJbEQsT0FBTyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQTs7O0FBWXRDLE1BQU0sT0FBTyxtQkFBbUI7SUFFTDtJQUNmO0lBRlYsWUFDeUIsWUFBeUIsRUFDeEMsSUFBZ0I7UUFERCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3RCLENBQUM7SUFFTDs7Ozs7T0FLRztJQUNILElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFBO0lBQzdDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHFCQUFxQixDQUFFLE1BQW1CO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQW9DLEdBQUcsSUFBSSxDQUFDLEdBQUcsc0JBQXNCLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUNuRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxjQUFjLENBQUUsTUFBbUI7UUFDakMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBNkIsR0FBRyxJQUFJLENBQUMsR0FBRyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUNyRixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxxQkFBcUIsQ0FBRSxNQUFtQjtRQUN4QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFvQyxHQUFHLElBQUksQ0FBQyxHQUFHLHNCQUFzQixFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUM7YUFDbkcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsY0FBYyxDQUFFLE1BQW1CO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQTZCLEdBQUcsSUFBSSxDQUFDLEdBQUcsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUM7YUFDcEYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsaUJBQWlCLENBQUUsTUFBbUI7UUFDcEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBZ0MsR0FBRyxJQUFJLENBQUMsR0FBRyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQzFGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7d0dBckVVLG1CQUFtQixrQkFFcEIsS0FBSzs0R0FGSixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBR0ksTUFBTTsyQkFBQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vbmd4LXNlcnZpY2VzLm1vZGVscydcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcbmltcG9ydCB7IEFwaVN1Y2Nlc3MsIFF1ZXJ5UGFyYW1zIH0gZnJvbSAnLi9tb2RlbHMvYXBpLm1vZGVscydcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXG5pbXBvcnQge1xuICBEZXBhcnRtZW50c091dCxcbiAgRWNvbm9taWNBY3Rpdml0aWVzT3V0LFxuICBFc3RhYmxpc2htZW50VHlwZXNPdXQsXG4gIE11bmljaXBhbGl0aWVzT3V0LFxuICBQZXJzb25UeXBlc091dFxufSBmcm9tICcuL21vZGVscy9hcGktYmlsbGluZy1zdi50eXBlcydcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXBpQmlsbGluZ1N2U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yIChcbiAgICBASW5qZWN0KCdlbnYnKSBwcml2YXRlIGVudmlyb25tZW50czogRW52aXJvbm1lbnQsXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50XG4gICkgeyB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgVVJMIGZvciB0aGUgYmlsbGluZyBBUEkuXG4gICAqIElmIHRoZSBVUkwgaXMgbm90IGRlZmluZWQgaW4gdGhlIGVudmlyb25tZW50cyBjb25maWd1cmF0aW9uLCByZXR1cm5zIGFuIGVtcHR5IHN0cmluZy5cbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgYmlsbGluZyBBUEkgVVJMIG9yIGFuIGVtcHR5IHN0cmluZyBpZiBub3Qgc2V0LlxuICAgKi9cbiAgZ2V0IHVybCAoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudHMuYXBpQmlsbGluZ1NWID8/ICcnXG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyB0aGUgbGlzdCBvZiBlY29ub21pYyBhY3Rpdml0aWVzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxuICAgKlxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB1c2VkIHRvIGZpbHRlciB0aGUgZWNvbm9taWMgYWN0aXZpdGllcy5cbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxFY29ub21pY0FjdGl2aXRpZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGxpc3Qgb2YgZWNvbm9taWMgYWN0aXZpdGllcy5cbiAgICovXG4gIGdldEVjb25vbWljQWN0aXZpdGllcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8RWNvbm9taWNBY3Rpdml0aWVzT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxFY29ub21pY0FjdGl2aXRpZXNPdXQ+PihgJHt0aGlzLnVybH0vZWNvbm9taWMtYWN0aXZpdGllc2AsIHsgcGFyYW1zIH0pXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIGxpc3Qgb2YgcGVyc29uIHR5cGVzIGJhc2VkIG9uIGdpdmVuIHF1ZXJ5IHBhcmFtZXRlcnMuXG4gICAqXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHVzZWQgdG8gZmlsdGVyIHRoZSBwZXJzb24gdHlwZXMuXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8UGVyc29uVHlwZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgYSBsaXN0IG9mIHBlcnNvbiB0eXBlcy5cbiAgICovXG4gIGdldFBlcnNvblR5cGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxQZXJzb25UeXBlc091dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8UGVyc29uVHlwZXNPdXQ+PihgJHt0aGlzLnVybH0vcGVyc29uLXR5cGVzYCwgeyBwYXJhbXMgfSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdGhlIGxpc3Qgb2YgZXN0YWJsaXNobWVudCB0eXBlcy5cbiAgICpcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGJlIHNlbnQgd2l0aCB0aGUgSFRUUCByZXF1ZXN0LlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEVzdGFibGlzaG1lbnRUeXBlc091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgZXN0YWJsaXNobWVudCB0eXBlcyBkYXRhLlxuICAgKi9cbiAgZ2V0RXN0YWJsaXNobWVudFR5cGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxFc3RhYmxpc2htZW50VHlwZXNPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEVzdGFibGlzaG1lbnRUeXBlc091dD4+KGAke3RoaXMudXJsfS9lc3RhYmxpc2htZW50LXR5cGVzYCwgeyBwYXJhbXMgfSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdGhlIGxpc3Qgb2YgZGVwYXJ0bWVudHMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXG4gICAqXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciBvciBtb2RpZnkgdGhlIGRlcGFydG1lbnRzIGZldGNoIHJlcXVlc3QuXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8RGVwYXJ0bWVudHNPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSBsaXN0IG9mIGRlcGFydG1lbnRzLlxuICAgKi9cbiAgZ2V0RGVwYXJ0bWVudHMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPERlcGFydG1lbnRzT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxEZXBhcnRtZW50c091dD4+KGAke3RoaXMudXJsfS9kZXBhcnRtZW50c2AsIHsgcGFyYW1zIH0pXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIG11bmljaXBhbGl0aWVzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxuICAgKlxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB1c2VkIHRvIGZpbHRlciB0aGUgbXVuaWNpcGFsaXRpZXMuXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8TXVuaWNpcGFsaXRpZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJldHJpZXZlZCBtdW5pY2lwYWxpdGllcyBkYXRhLlxuICAgKi9cbiAgZ2V0TXVuaWNpcGFsaXRpZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPE11bmljaXBhbGl0aWVzT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxNdW5pY2lwYWxpdGllc091dD4+KGAke3RoaXMudXJsfS9tdW5pY2lwYWxpdGllc2AsIHsgcGFyYW1zIH0pXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxufVxuIl19
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWJpbGxpbmctc3Yuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi9hcGlzL2FwaS1iaWxsaW5nLXN2LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFJbEQsT0FBTyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQTs7O0FBWXRDLE1BQU0sT0FBTyxtQkFBbUI7SUFFTDtJQUNmO0lBRlYsWUFDeUIsWUFBeUIsRUFDeEMsSUFBZ0I7UUFERCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3RCLENBQUM7SUFFTDs7Ozs7T0FLRztJQUNILElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFBO0lBQzdDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHFCQUFxQixDQUFFLE1BQW1CO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQW9DLEdBQUcsSUFBSSxDQUFDLEdBQUcsc0JBQXNCLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUNuRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxjQUFjLENBQUUsTUFBbUI7UUFDakMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBNkIsR0FBRyxJQUFJLENBQUMsR0FBRyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUNyRixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxxQkFBcUIsQ0FBRSxNQUFtQjtRQUN4QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFvQyxHQUFHLElBQUksQ0FBQyxHQUFHLHNCQUFzQixFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUM7YUFDbkcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsY0FBYyxDQUFFLE1BQW1CO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQTZCLEdBQUcsSUFBSSxDQUFDLEdBQUcsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUM7YUFDcEYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsaUJBQWlCLENBQUUsTUFBbUI7UUFDcEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBZ0MsR0FBRyxJQUFJLENBQUMsR0FBRyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQzFGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7d0dBckVVLG1CQUFtQixrQkFFcEIsS0FBSzs0R0FGSixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBR0ksTUFBTTsyQkFBQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tICcuLi9uZ3gtc2VydmljZXMubW9kZWxzJ1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXHJcbmltcG9ydCB7IEFwaVN1Y2Nlc3MsIFF1ZXJ5UGFyYW1zIH0gZnJvbSAnLi9tb2RlbHMvYXBpLm1vZGVscydcclxuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHtcclxuICBEZXBhcnRtZW50c091dCxcclxuICBFY29ub21pY0FjdGl2aXRpZXNPdXQsXHJcbiAgRXN0YWJsaXNobWVudFR5cGVzT3V0LFxyXG4gIE11bmljaXBhbGl0aWVzT3V0LFxyXG4gIFBlcnNvblR5cGVzT3V0XHJcbn0gZnJvbSAnLi9tb2RlbHMvYXBpLWJpbGxpbmctc3YudHlwZXMnXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcGlCaWxsaW5nU3ZTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvciAoXHJcbiAgICBASW5qZWN0KCdlbnYnKSBwcml2YXRlIGVudmlyb25tZW50czogRW52aXJvbm1lbnQsXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnRcclxuICApIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIFVSTCBmb3IgdGhlIGJpbGxpbmcgQVBJLlxyXG4gICAqIElmIHRoZSBVUkwgaXMgbm90IGRlZmluZWQgaW4gdGhlIGVudmlyb25tZW50cyBjb25maWd1cmF0aW9uLCByZXR1cm5zIGFuIGVtcHR5IHN0cmluZy5cclxuICAgKlxyXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIGJpbGxpbmcgQVBJIFVSTCBvciBhbiBlbXB0eSBzdHJpbmcgaWYgbm90IHNldC5cclxuICAgKi9cclxuICBnZXQgdXJsICgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnRzLmFwaUJpbGxpbmdTViA/PyAnJ1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyB0aGUgbGlzdCBvZiBlY29ub21pYyBhY3Rpdml0aWVzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdXNlZCB0byBmaWx0ZXIgdGhlIGVjb25vbWljIGFjdGl2aXRpZXMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxFY29ub21pY0FjdGl2aXRpZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGxpc3Qgb2YgZWNvbm9taWMgYWN0aXZpdGllcy5cclxuICAgKi9cclxuICBnZXRFY29ub21pY0FjdGl2aXRpZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPEVjb25vbWljQWN0aXZpdGllc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxFY29ub21pY0FjdGl2aXRpZXNPdXQ+PihgJHt0aGlzLnVybH0vZWNvbm9taWMtYWN0aXZpdGllc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBsaXN0IG9mIHBlcnNvbiB0eXBlcyBiYXNlZCBvbiBnaXZlbiBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdXNlZCB0byBmaWx0ZXIgdGhlIHBlcnNvbiB0eXBlcy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFBlcnNvblR5cGVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGEgbGlzdCBvZiBwZXJzb24gdHlwZXMuXHJcbiAgICovXHJcbiAgZ2V0UGVyc29uVHlwZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFBlcnNvblR5cGVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFBlcnNvblR5cGVzT3V0Pj4oYCR7dGhpcy51cmx9L3BlcnNvbi10eXBlc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyB0aGUgbGlzdCBvZiBlc3RhYmxpc2htZW50IHR5cGVzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGJlIHNlbnQgd2l0aCB0aGUgSFRUUCByZXF1ZXN0LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8RXN0YWJsaXNobWVudFR5cGVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBlc3RhYmxpc2htZW50IHR5cGVzIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0RXN0YWJsaXNobWVudFR5cGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxFc3RhYmxpc2htZW50VHlwZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8RXN0YWJsaXNobWVudFR5cGVzT3V0Pj4oYCR7dGhpcy51cmx9L2VzdGFibGlzaG1lbnQtdHlwZXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgdGhlIGxpc3Qgb2YgZGVwYXJ0bWVudHMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgb3IgbW9kaWZ5IHRoZSBkZXBhcnRtZW50cyBmZXRjaCByZXF1ZXN0LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8RGVwYXJ0bWVudHNPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSBsaXN0IG9mIGRlcGFydG1lbnRzLlxyXG4gICAqL1xyXG4gIGdldERlcGFydG1lbnRzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxEZXBhcnRtZW50c091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxEZXBhcnRtZW50c091dD4+KGAke3RoaXMudXJsfS9kZXBhcnRtZW50c2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBtdW5pY2lwYWxpdGllcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHVzZWQgdG8gZmlsdGVyIHRoZSBtdW5pY2lwYWxpdGllcy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPE11bmljaXBhbGl0aWVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXRyaWV2ZWQgbXVuaWNpcGFsaXRpZXMgZGF0YS5cclxuICAgKi9cclxuICBnZXRNdW5pY2lwYWxpdGllcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8TXVuaWNpcGFsaXRpZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8TXVuaWNpcGFsaXRpZXNPdXQ+PihgJHt0aGlzLnVybH0vbXVuaWNpcGFsaXRpZXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcbn1cclxuIl19
@@ -90,4 +90,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
90
90
  type: Inject,
91
91
  args: ['env']
92
92
  }] }, { type: i1.HttpClient }] });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNhc2gtb3BlcmF0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXhwZXJ0ZWFtLW14L25neC1zZXJ2aWNlcy9zcmMvbGliL2FwaXMvYXBpLWNhc2gtb3BlcmF0aW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBSWxELE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUE7OztBQVd0QyxNQUFNLE9BQU8sd0JBQXdCO0lBRVY7SUFDZjtJQUZWLFlBQ3lCLFlBQXlCLEVBQ3hDLElBQWdCO1FBREQsaUJBQVksR0FBWixZQUFZLENBQWE7UUFDeEMsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUN0QixDQUFDO0lBRUw7Ozs7T0FJRztJQUNILElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsSUFBSSxFQUFFLENBQUE7SUFDckQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsd0NBQXdDLENBQUUsSUFBNEM7UUFDcEYsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBc0QsR0FBRyxJQUFJLENBQUMsR0FBRyw0Q0FBNEMsRUFDaEksSUFBSSxDQUNMLENBQUMsSUFBSSxDQUNKLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUN4QixDQUFBO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILHVDQUF1QyxDQUFFLEVBQVMsRUFBRSxJQUE0QztRQUM5RixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFzRCxHQUFHLElBQUksQ0FBQyxHQUFHLDhDQUE4QyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUM7YUFDM0ksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsdUNBQXVDLENBQUUsTUFBbUI7UUFDMUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBd0QsR0FBRyxJQUFJLENBQUMsR0FBRyw0Q0FBNEMsRUFBRTtZQUNuSSxNQUFNO1NBQ1AsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILDBCQUEwQixDQUFFLEVBQVU7UUFDcEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBa0MsR0FBRyxJQUFJLENBQUMsR0FBRyxhQUFhLEVBQUUscUJBQXFCLENBQUM7YUFDbkcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsd0JBQXdCLENBQUUsSUFBMkI7UUFDbkQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBcUMsR0FBRyxJQUFJLENBQUMsR0FBRyx3QkFBd0IsRUFBRSxJQUFJLENBQUM7YUFDakcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsNkJBQTZCLENBQUUsRUFBVTtRQUN2QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUE2QixHQUFHLElBQUksQ0FBQyxHQUFHLDBCQUEwQixFQUFFLFVBQVUsQ0FBQzthQUNoRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO3dHQXBGVSx3QkFBd0Isa0JBRXpCLEtBQUs7NEdBRkosd0JBQXdCLGNBRnZCLE1BQU07OzRGQUVQLHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUdJLE1BQU07MkJBQUMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uL25neC1zZXJ2aWNlcy5tb2RlbHMnXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBBcGlTdWNjZXNzLCBRdWVyeVBhcmFtcyB9IGZyb20gJy4vbW9kZWxzL2FwaS5tb2RlbHMnXG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHtcbiAgQ2FzaFZhbHVlU3VtbWFyeU91dCxcbiAgSW5zdGFsbGF0aW9uQ291bnRyeVJlZmVyZW5jZUN1cnJlbmNpZXNPdXQsXG4gIEluc3RhbGxhdGlvbkNvdW50cnlSZWZlcmVuY2VDdXJyZW5jeUluLFxuICBJbnN0YWxsYXRpb25Db3VudHJ5UmVmZXJlbmNlQ3VycmVuY3lPdXQsIE9wZW5pbmdUcmFuc2ZlcmVuY2VJbiwgT3BlbmluZ1RyYW5zZmVyZW5jZU91dCwgUmVjZWlwdEZpbGVPdXRcbn0gZnJvbSAnLi9tb2RlbHMvYXBpLWNhc2gtb3BlcmF0aW9ucy50eXBlcydcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXBpQ2FzaE9wZXJhdGlvbnNTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IgKFxuICAgIEBJbmplY3QoJ2VudicpIHByaXZhdGUgZW52aXJvbm1lbnRzOiBFbnZpcm9ubWVudCxcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnRcbiAgKSB7IH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBVUkwgZm9yIHRoZSBjYXNoIG9wZXJhdGlvbnMgQVBJIGZyb20gdGhlIGVudmlyb25tZW50IGNvbmZpZ3VyYXRpb25zLlxuICAgKlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBVUkwgb2YgdGhlIGNhc2ggb3BlcmF0aW9ucyBBUEkuXG4gICAqL1xuICBnZXQgdXJsICgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50cy5hcGlDYXNoT3BlcmF0aW9uc1VybCA/PyAnJ1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgaW5zdGFsbGF0aW9uIGNvdW50cnkgcmVmZXJlbmNlIGN1cnJlbmN5LlxuICAgKlxuICAgKiBAcGFyYW0ge0luc3RhbGxhdGlvbkNvdW50cnlSZWZlcmVuY2VDdXJyZW5jeUlufSBib2R5IC0gVGhlIGRhdGEgZm9yIHRoZSBuZXcgcmVmZXJlbmNlIGN1cnJlbmN5LlxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxJbnN0YWxsYXRpb25Db3VudHJ5UmVmZXJlbmNlQ3VycmVuY3lPdXQ+fSBUaGUgY3JlYXRlZCByZWZlcmVuY2UgY3VycmVuY3kuXG4gICAqL1xuICBwb3N0SW5zdGFsbGF0aW9uQ291bnRyeVJlZmVyZW5jZUN1cnJlbmN5IChib2R5OiBJbnN0YWxsYXRpb25Db3VudHJ5UmVmZXJlbmNlQ3VycmVuY3lJbik6IE9ic2VydmFibGU8SW5zdGFsbGF0aW9uQ291bnRyeVJlZmVyZW5jZUN1cnJlbmN5T3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8SW5zdGFsbGF0aW9uQ291bnRyeVJlZmVyZW5jZUN1cnJlbmN5T3V0Pj4oYCR7dGhpcy51cmx9L2luc3RhbGxhdGlvbi1jb3VudHJ5LXJlZmVyZW5jZS1jdXJyZW5jaWVzYCxcbiAgICAgIGJvZHlcbiAgICApLnBpcGUoXG4gICAgICBtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKVxuICAgIClcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIGFuIGV4aXN0aW5nIGluc3RhbGxhdGlvbiBjb3VudHJ5IHJlZmVyZW5jZSBjdXJyZW5jeS5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIElEIG9mIHRoZSByZWZlcmVuY2UgY3VycmVuY3kgdG8gdXBkYXRlLlxuICAgKiBAcGFyYW0ge0luc3RhbGxhdGlvbkNvdW50cnlSZWZlcmVuY2VDdXJyZW5jeUlufSBib2R5IC0gVGhlIHVwZGF0ZWQgZGF0YSBmb3IgdGhlIHJlZmVyZW5jZSBjdXJyZW5jeS5cbiAgICogQHJldHVybnMge09ic2VydmFibGU8SW5zdGFsbGF0aW9uQ291bnRyeVJlZmVyZW5jZUN1cnJlbmN5T3V0Pn0gVGhlIHVwZGF0ZWQgcmVmZXJlbmNlIGN1cnJlbmN5LlxuICAgKi9cbiAgcHV0SW5zdGFsbGF0aW9uQ291bnRyeVJlZmVyZW5jZUN1cnJlbmN5IChpZDpudW1iZXIsIGJvZHk6IEluc3RhbGxhdGlvbkNvdW50cnlSZWZlcmVuY2VDdXJyZW5jeUluKTogT2JzZXJ2YWJsZTxJbnN0YWxsYXRpb25Db3VudHJ5UmVmZXJlbmNlQ3VycmVuY3lPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPEluc3RhbGxhdGlvbkNvdW50cnlSZWZlcmVuY2VDdXJyZW5jeU91dD4+KGAke3RoaXMudXJsfS9pbnN0YWxsYXRpb24tY291bnRyeS1yZWZlcmVuY2UtY3VycmVuY2llcy8ke2lkfWAsIGJvZHkpXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIGluc3RhbGxhdGlvbiBjb3VudHJ5IHJlZmVyZW5jZSBjdXJyZW5jaWVzIGJhc2VkIG9uIHF1ZXJ5IHBhcmFtZXRlcnMuXG4gICAqXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFF1ZXJ5IHBhcmFtZXRlcnMgZm9yIGZpbHRlcmluZyB0aGUgY3VycmVuY2llcy5cbiAgICogQHJldHVybnMge09ic2VydmFibGU8SW5zdGFsbGF0aW9uQ291bnRyeVJlZmVyZW5jZUN1cnJlbmNpZXNPdXQ+fSBUaGUgbGlzdCBvZiByZWZlcmVuY2UgY3VycmVuY2llcy5cbiAgICovXG4gIGdldEluc3RhbGxhdGlvbkNvbXBhbnlDb3VudHJ5Q3VycmVuY2llcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8SW5zdGFsbGF0aW9uQ291bnRyeVJlZmVyZW5jZUN1cnJlbmNpZXNPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEluc3RhbGxhdGlvbkNvdW50cnlSZWZlcmVuY2VDdXJyZW5jaWVzT3V0Pj4oYCR7dGhpcy51cmx9L2luc3RhbGxhdGlvbi1jb3VudHJ5LXJlZmVyZW5jZS1jdXJyZW5jaWVzYCwge1xuICAgICAgcGFyYW1zXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIGNhc2ggdmFsdWUgc3VtbWFyeSBmb3IgYSBzcGVjaWZpYyBvcGVuaW5nIElELlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgSUQgb2YgdGhlIG9wZW5pbmcgZm9yIHdoaWNoIHRvIHJldHJpZXZlIHRoZSBjYXNoIHZhbHVlIHN1bW1hcnkuXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPENhc2hWYWx1ZVN1bW1hcnlPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGNhc2ggdmFsdWUgc3VtbWFyeSBkYXRhLlxuICAgKi9cbiAgZ2V0T3BlbmluZ0Nhc2hWYWx1ZVN1bW1hcnkgKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPENhc2hWYWx1ZVN1bW1hcnlPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPENhc2hWYWx1ZVN1bW1hcnlPdXQ+PihgJHt0aGlzLnVybH0vb3BlbmluZ3MvJHtpZH0vY2FzaC12YWx1ZS1zdW1tYXJ5YClcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgb3BlbmluZyB0cmFuc2ZlcmVuY2UgcmVjb3JkLlxuICAgKlxuICAgKiBAcGFyYW0ge09wZW5pbmdUcmFuc2ZlcmVuY2VJbn0gYm9keSAtIFRoZSBkYXRhIHRvIGNyZWF0ZSB0aGUgbmV3IG9wZW5pbmcgdHJhbnNmZXJlbmNlLlxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxPcGVuaW5nVHJhbnNmZXJlbmNlT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBuZXdseSBjcmVhdGVkIG9wZW5pbmcgdHJhbnNmZXJlbmNlLlxuICAgKi9cbiAgcG9zdE9wZW5pbmdUcmFuc2ZlcmVuY2VzIChib2R5OiBPcGVuaW5nVHJhbnNmZXJlbmNlSW4pOiBPYnNlcnZhYmxlPE9wZW5pbmdUcmFuc2ZlcmVuY2VPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxPcGVuaW5nVHJhbnNmZXJlbmNlT3V0Pj4oYCR7dGhpcy51cmx9L29wZW5pbmctdHJhbnNmZXJlbmNlc2AsIGJvZHkpXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIHJlY2VpcHQgZmlsZSBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIG9wZW5pbmcgdHJhbnNmZXJlbmNlIElELlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgSUQgb2YgdGhlIG9wZW5pbmcgdHJhbnNmZXJlbmNlIHdob3NlIHJlY2VpcHQgaXMgdG8gYmUgcmV0cmlldmVkLlxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxSZWNlaXB0RmlsZU91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVjZWlwdCBmaWxlIGRhdGEuXG4gICAqL1xuICBnZXRPcGVuaW5nVHJhbnNmZXJlbmNlUmVjZWlwdCAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8UmVjZWlwdEZpbGVPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFJlY2VpcHRGaWxlT3V0Pj4oYCR7dGhpcy51cmx9L29wZW5pbmctdHJhbnNmZXJlbmNlcy8ke2lkfS9yZWNlaXB0YClcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG59XG4iXX0=
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNhc2gtb3BlcmF0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXhwZXJ0ZWFtLW14L25neC1zZXJ2aWNlcy9zcmMvbGliL2FwaXMvYXBpLWNhc2gtb3BlcmF0aW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBSWxELE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUE7OztBQVd0QyxNQUFNLE9BQU8sd0JBQXdCO0lBRVY7SUFDZjtJQUZWLFlBQ3lCLFlBQXlCLEVBQ3hDLElBQWdCO1FBREQsaUJBQVksR0FBWixZQUFZLENBQWE7UUFDeEMsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUN0QixDQUFDO0lBRUw7Ozs7T0FJRztJQUNILElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsSUFBSSxFQUFFLENBQUE7SUFDckQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsd0NBQXdDLENBQUUsSUFBNEM7UUFDcEYsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBc0QsR0FBRyxJQUFJLENBQUMsR0FBRyw0Q0FBNEMsRUFDaEksSUFBSSxDQUNMLENBQUMsSUFBSSxDQUNKLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUN4QixDQUFBO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILHVDQUF1QyxDQUFFLEVBQVMsRUFBRSxJQUE0QztRQUM5RixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFzRCxHQUFHLElBQUksQ0FBQyxHQUFHLDhDQUE4QyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUM7YUFDM0ksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsdUNBQXVDLENBQUUsTUFBbUI7UUFDMUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBd0QsR0FBRyxJQUFJLENBQUMsR0FBRyw0Q0FBNEMsRUFBRTtZQUNuSSxNQUFNO1NBQ1AsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILDBCQUEwQixDQUFFLEVBQVU7UUFDcEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBa0MsR0FBRyxJQUFJLENBQUMsR0FBRyxhQUFhLEVBQUUscUJBQXFCLENBQUM7YUFDbkcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsd0JBQXdCLENBQUUsSUFBMkI7UUFDbkQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBcUMsR0FBRyxJQUFJLENBQUMsR0FBRyx3QkFBd0IsRUFBRSxJQUFJLENBQUM7YUFDakcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsNkJBQTZCLENBQUUsRUFBVTtRQUN2QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUE2QixHQUFHLElBQUksQ0FBQyxHQUFHLDBCQUEwQixFQUFFLFVBQVUsQ0FBQzthQUNoRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO3dHQXBGVSx3QkFBd0Isa0JBRXpCLEtBQUs7NEdBRkosd0JBQXdCLGNBRnZCLE1BQU07OzRGQUVQLHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUdJLE1BQU07MkJBQUMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vbmd4LXNlcnZpY2VzLm1vZGVscydcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xyXG5pbXBvcnQgeyBBcGlTdWNjZXNzLCBRdWVyeVBhcmFtcyB9IGZyb20gJy4vbW9kZWxzL2FwaS5tb2RlbHMnXHJcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7XHJcbiAgQ2FzaFZhbHVlU3VtbWFyeU91dCxcclxuICBJbnN0YWxsYXRpb25Db3VudHJ5UmVmZXJlbmNlQ3VycmVuY2llc091dCxcclxuICBJbnN0YWxsYXRpb25Db3VudHJ5UmVmZXJlbmNlQ3VycmVuY3lJbixcclxuICBJbnN0YWxsYXRpb25Db3VudHJ5UmVmZXJlbmNlQ3VycmVuY3lPdXQsIE9wZW5pbmdUcmFuc2ZlcmVuY2VJbiwgT3BlbmluZ1RyYW5zZmVyZW5jZU91dCwgUmVjZWlwdEZpbGVPdXRcclxufSBmcm9tICcuL21vZGVscy9hcGktY2FzaC1vcGVyYXRpb25zLnR5cGVzJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBpQ2FzaE9wZXJhdGlvbnNTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvciAoXHJcbiAgICBASW5qZWN0KCdlbnYnKSBwcml2YXRlIGVudmlyb25tZW50czogRW52aXJvbm1lbnQsXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnRcclxuICApIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIFVSTCBmb3IgdGhlIGNhc2ggb3BlcmF0aW9ucyBBUEkgZnJvbSB0aGUgZW52aXJvbm1lbnQgY29uZmlndXJhdGlvbnMuXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBVUkwgb2YgdGhlIGNhc2ggb3BlcmF0aW9ucyBBUEkuXHJcbiAgICovXHJcbiAgZ2V0IHVybCAoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50cy5hcGlDYXNoT3BlcmF0aW9uc1VybCA/PyAnJ1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhIG5ldyBpbnN0YWxsYXRpb24gY291bnRyeSByZWZlcmVuY2UgY3VycmVuY3kuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0luc3RhbGxhdGlvbkNvdW50cnlSZWZlcmVuY2VDdXJyZW5jeUlufSBib2R5IC0gVGhlIGRhdGEgZm9yIHRoZSBuZXcgcmVmZXJlbmNlIGN1cnJlbmN5LlxyXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPEluc3RhbGxhdGlvbkNvdW50cnlSZWZlcmVuY2VDdXJyZW5jeU91dD59IFRoZSBjcmVhdGVkIHJlZmVyZW5jZSBjdXJyZW5jeS5cclxuICAgKi9cclxuICBwb3N0SW5zdGFsbGF0aW9uQ291bnRyeVJlZmVyZW5jZUN1cnJlbmN5IChib2R5OiBJbnN0YWxsYXRpb25Db3VudHJ5UmVmZXJlbmNlQ3VycmVuY3lJbik6IE9ic2VydmFibGU8SW5zdGFsbGF0aW9uQ291bnRyeVJlZmVyZW5jZUN1cnJlbmN5T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxJbnN0YWxsYXRpb25Db3VudHJ5UmVmZXJlbmNlQ3VycmVuY3lPdXQ+PihgJHt0aGlzLnVybH0vaW5zdGFsbGF0aW9uLWNvdW50cnktcmVmZXJlbmNlLWN1cnJlbmNpZXNgLFxyXG4gICAgICBib2R5XHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGFuIGV4aXN0aW5nIGluc3RhbGxhdGlvbiBjb3VudHJ5IHJlZmVyZW5jZSBjdXJyZW5jeS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSBJRCBvZiB0aGUgcmVmZXJlbmNlIGN1cnJlbmN5IHRvIHVwZGF0ZS5cclxuICAgKiBAcGFyYW0ge0luc3RhbGxhdGlvbkNvdW50cnlSZWZlcmVuY2VDdXJyZW5jeUlufSBib2R5IC0gVGhlIHVwZGF0ZWQgZGF0YSBmb3IgdGhlIHJlZmVyZW5jZSBjdXJyZW5jeS5cclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxJbnN0YWxsYXRpb25Db3VudHJ5UmVmZXJlbmNlQ3VycmVuY3lPdXQ+fSBUaGUgdXBkYXRlZCByZWZlcmVuY2UgY3VycmVuY3kuXHJcbiAgICovXHJcbiAgcHV0SW5zdGFsbGF0aW9uQ291bnRyeVJlZmVyZW5jZUN1cnJlbmN5IChpZDpudW1iZXIsIGJvZHk6IEluc3RhbGxhdGlvbkNvdW50cnlSZWZlcmVuY2VDdXJyZW5jeUluKTogT2JzZXJ2YWJsZTxJbnN0YWxsYXRpb25Db3VudHJ5UmVmZXJlbmNlQ3VycmVuY3lPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8SW5zdGFsbGF0aW9uQ291bnRyeVJlZmVyZW5jZUN1cnJlbmN5T3V0Pj4oYCR7dGhpcy51cmx9L2luc3RhbGxhdGlvbi1jb3VudHJ5LXJlZmVyZW5jZS1jdXJyZW5jaWVzLyR7aWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIGluc3RhbGxhdGlvbiBjb3VudHJ5IHJlZmVyZW5jZSBjdXJyZW5jaWVzIGJhc2VkIG9uIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBRdWVyeSBwYXJhbWV0ZXJzIGZvciBmaWx0ZXJpbmcgdGhlIGN1cnJlbmNpZXMuXHJcbiAgICogQHJldHVybnMge09ic2VydmFibGU8SW5zdGFsbGF0aW9uQ291bnRyeVJlZmVyZW5jZUN1cnJlbmNpZXNPdXQ+fSBUaGUgbGlzdCBvZiByZWZlcmVuY2UgY3VycmVuY2llcy5cclxuICAgKi9cclxuICBnZXRJbnN0YWxsYXRpb25Db21wYW55Q291bnRyeUN1cnJlbmNpZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPEluc3RhbGxhdGlvbkNvdW50cnlSZWZlcmVuY2VDdXJyZW5jaWVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEluc3RhbGxhdGlvbkNvdW50cnlSZWZlcmVuY2VDdXJyZW5jaWVzT3V0Pj4oYCR7dGhpcy51cmx9L2luc3RhbGxhdGlvbi1jb3VudHJ5LXJlZmVyZW5jZS1jdXJyZW5jaWVzYCwge1xyXG4gICAgICBwYXJhbXNcclxuICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIGNhc2ggdmFsdWUgc3VtbWFyeSBmb3IgYSBzcGVjaWZpYyBvcGVuaW5nIElELlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIElEIG9mIHRoZSBvcGVuaW5nIGZvciB3aGljaCB0byByZXRyaWV2ZSB0aGUgY2FzaCB2YWx1ZSBzdW1tYXJ5LlxyXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPENhc2hWYWx1ZVN1bW1hcnlPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGNhc2ggdmFsdWUgc3VtbWFyeSBkYXRhLlxyXG4gICAqL1xyXG4gIGdldE9wZW5pbmdDYXNoVmFsdWVTdW1tYXJ5IChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxDYXNoVmFsdWVTdW1tYXJ5T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPENhc2hWYWx1ZVN1bW1hcnlPdXQ+PihgJHt0aGlzLnVybH0vb3BlbmluZ3MvJHtpZH0vY2FzaC12YWx1ZS1zdW1tYXJ5YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgbmV3IG9wZW5pbmcgdHJhbnNmZXJlbmNlIHJlY29yZC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7T3BlbmluZ1RyYW5zZmVyZW5jZUlufSBib2R5IC0gVGhlIGRhdGEgdG8gY3JlYXRlIHRoZSBuZXcgb3BlbmluZyB0cmFuc2ZlcmVuY2UuXHJcbiAgICogQHJldHVybnMge09ic2VydmFibGU8T3BlbmluZ1RyYW5zZmVyZW5jZU91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgbmV3bHkgY3JlYXRlZCBvcGVuaW5nIHRyYW5zZmVyZW5jZS5cclxuICAgKi9cclxuICBwb3N0T3BlbmluZ1RyYW5zZmVyZW5jZXMgKGJvZHk6IE9wZW5pbmdUcmFuc2ZlcmVuY2VJbik6IE9ic2VydmFibGU8T3BlbmluZ1RyYW5zZmVyZW5jZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8T3BlbmluZ1RyYW5zZmVyZW5jZU91dD4+KGAke3RoaXMudXJsfS9vcGVuaW5nLXRyYW5zZmVyZW5jZXNgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgcmVjZWlwdCBmaWxlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gb3BlbmluZyB0cmFuc2ZlcmVuY2UgSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgSUQgb2YgdGhlIG9wZW5pbmcgdHJhbnNmZXJlbmNlIHdob3NlIHJlY2VpcHQgaXMgdG8gYmUgcmV0cmlldmVkLlxyXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPFJlY2VpcHRGaWxlT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZWNlaXB0IGZpbGUgZGF0YS5cclxuICAgKi9cclxuICBnZXRPcGVuaW5nVHJhbnNmZXJlbmNlUmVjZWlwdCAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8UmVjZWlwdEZpbGVPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8UmVjZWlwdEZpbGVPdXQ+PihgJHt0aGlzLnVybH0vb3BlbmluZy10cmFuc2ZlcmVuY2VzLyR7aWR9L3JlY2VpcHRgKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcbn1cclxuIl19
@@ -100,6 +100,21 @@ export class ApiCatalogsService {
100
100
  return this.http.delete(`${this.url}/identification-types/${id}`)
101
101
  .pipe(map(({ data }) => data));
102
102
  }
103
+ /**
104
+ * Sends a POST request to validate identification type number.
105
+ *
106
+ * The request payload is sent as an object with a `body` property containing the provided
107
+ * IdentificationTypeNumberValidationIn value (i.e. { body: IdentificationTypeNumberValidationIn }). On success the HTTP response is expected
108
+ * to follow the ApiSuccess<T> shape; the operator maps that response to the inner `data`
109
+ * object and emits it as a IdentificationTypeNumberValidationOut.
110
+ *
111
+ * @param body - The identification type number validation payload to validate (IdentificationTypeNumberValidationIn).
112
+ * @returns Observable<IdentificationTypeNumberValidationOut> that emits the validate status.
113
+ */
114
+ postIdentificationtTypeNumberValidation(body) {
115
+ return this.http.post(`${this.url}/identification-types/number-validation`, body)
116
+ .pipe(map(({ data }) => data));
117
+ }
103
118
  /**
104
119
  * Fetches the extra charges based on the provided query parameters.
105
120
  *
@@ -578,6 +593,14 @@ export class ApiCatalogsService {
578
593
  return this.http.delete(`${this.url}/holidays/${id}`)
579
594
  .pipe(map(({ data }) => data));
580
595
  }
596
+ /**
597
+ * Retrieves a list of business party trader types
598
+ * @param {QueryParams} params - Query parameters for filtering and pagination (optional)
599
+ * @returns {Observable<BusinessPartyTraderTypesOut>} Observable containing the list of trader types
600
+ */
601
+ getBusinessPartyTraderTypes(params) {
602
+ return this.http.get(`${this.url}/business-party-trader-types`, { params }).pipe(map(({ data }) => data));
603
+ }
581
604
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiCatalogsService, deps: [{ token: 'env' }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
582
605
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiCatalogsService, providedIn: 'root' });
583
606
  }
@@ -590,4 +613,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
590
613
  type: Inject,
591
614
  args: ['env']
592
615
  }] }, { type: i1.HttpClient }] });
593
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNhdGFsb2dzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0tbXgvbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9hcGktY2F0YWxvZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUdsRCxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFBOzs7QUFnRHRDLE1BQU0sT0FBTyxrQkFBa0I7SUFFSjtJQUNmO0lBRlYsWUFDeUIsWUFBeUIsRUFDeEMsSUFBZ0I7UUFERCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3RCLENBQUM7SUFFTDs7OztPQUlHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUE7SUFDL0MsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsaUJBQWlCLENBQUUsTUFBbUI7UUFDcEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBZ0MsR0FBRyxJQUFJLENBQUMsR0FBRyxrQkFBa0IsRUFBRTtZQUNqRixNQUFNO1NBQ1AsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHNCQUFzQixDQUFFLE1BQW1CO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsdUJBQXVCLEVBQUU7WUFDM0YsTUFBTTtTQUNQLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFB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LEVBQUUsRUFBRSxJQUFJLENBQUM7YUFDN0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsYUFBYSxDQUFFLEVBQVU7UUFDdkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBaUIsR0FBRyxJQUFJLENBQUMsR0FBRyxhQUFhLEVBQUUsRUFBRSxDQUFDO2FBQ2xFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7d0dBOW1CVSxrQkFBa0Isa0JBRW5CLEtBQUs7NEdBRkosa0JBQWtCLGNBRmpCLE1BQU07OzRGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUdJLE1BQU07MkJBQUMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uL25neC1zZXJ2aWNlcy5tb2RlbHMnXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgQXBpU3VjY2VzcywgUXVlcnlQYXJhbXMgfSBmcm9tICcuL21vZGVscy9hcGkubW9kZWxzJ1xuaW1wb3J0IHtcbiAgQ2FuY2VsbGF0aW9uUmVhc29uSW4sXG4gIENhbmNlbGxhdGlvblJlYXNvbk91dCxcbiAgQ2FuY2VsbGF0aW9uUmVhc29uc091dCxcbiAgQ291bnRyaWVzT3V0LFxuICBDb3VudHJ5SW4sXG4gIENvdW50cnlPdXQsXG4gIEN1cnJlbmNpZXNPdXQsXG4gIEV4dHJhQ2hhcmdlSW4sXG4gIEV4dHJhQ2hhcmdlT3V0LFxuICBFeHRyYUNoYXJnZXNPdXQsXG4gIEdlbmVyaWNGb2xpb0luLFxuICBHZW5lcmljRm9saW9PdXQsXG4gIEdlbmVyaWNGb2xpb3NPdXQsXG4gIEhvbGlkYXlJbixcbiAgSG9saWRheU91dCxcbiAgSG9saWRheXNPdXQsXG4gIElkZW50aWZpY2F0aW9uVHlwZUluLFxuICBJZGVudGlmaWNhdGlvblR5cGVPdXQsXG4gIElkZW50aWZpY2F0aW9uVHlwZXNPdXQsXG4gIExhbmd1YWdlc091dCxcbiAgTWFuYWdlbWVudEFyZWFzT3V0LFxuICBPcGVyYXRpb25UeXBlc091dCxcbiAgUHJvZHVjdEluLFxuICBQcm9kdWN0T3V0LFxuICBRdWVzdGlvbkluLFxuICBRdWVzdGlvbk91dCxcbiAgUXVlc3Rpb25zT3V0LFxuICBSZWdpb25zT3V0LFxuICBTaGlwbWVudENvbnRlbnRUeXBlc091dCxcbiAgU2hpcG1lbnRHcm91cHNPdXQsXG4gIFNoaXBtZW50SW5jb21lVHlwZUluLFxuICBTaGlwbWVudEluY29tZVR5cGVPdXQsXG4gIFNoaXBtZW50SW5jb21lVHlwZXNPdXQsXG4gIFNoaXBtZW50U2NvcGVzT3V0LFxuICBTaGlwbWVudFN0YXR1c2VzT3V0LFxuICBVbmlxdWVGb2xpb0luLFxuICBVbmlxdWVGb2xpb091dCxcbiAgVW5pcXVlRm9saW9zT3V0LFxuICBVbml0c091dCxcbiAgWm9uZXNPdXRcbn0gZnJvbSAnLi9tb2RlbHMvYXBpLWNhdGFsb2cudHlwZXMnXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFwaUNhdGFsb2dzU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yIChcbiAgICBASW5qZWN0KCdlbnYnKSBwcml2YXRlIGVudmlyb25tZW50czogRW52aXJvbm1lbnQsXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50XG4gICkgeyB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgVVJMIGZvciB0aGUgcmVwb3J0cyBBUEkgZnJvbSB0aGUgZW52aXJvbm1lbnQgY29uZmlndXJhdGlvbnMuXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIFVSTCBvZiB0aGUgcmVwb3J0cyBBUEkuXG4gICAqL1xuICBnZXQgdXJsICgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50cy5hcGlDYXRhbG9nc1VybCA/PyAnJ1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgbGlzdCBvZiBjb2xsZWN0aW9uIHBheW1lbnRzXG4gICAqXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHVzZWQgdG8gZmV0Y2ggdGhlIG9wZXJhdGlvbiB0eXBlcy5cbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxPcGVyYXRpb25UeXBlc091dFtdPn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGFuIGFycmF5IG9mIG9wZXJhdGlvbiB0eXBlLlxuICAgKi9cbiAgZ2V0T3BlcmF0aW9uVHlwZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPE9wZXJhdGlvblR5cGVzT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxPcGVyYXRpb25UeXBlc091dD4+KGAke3RoaXMudXJsfS9vcGVyYXRpb24tdHlwZXNgLCB7XG4gICAgICBwYXJhbXNcbiAgICB9KS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgbGlzdCBvZiBpZGVudGlmaWNhdGlvcyB0eXBlc1xuICAgKlxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB1c2VkIHRvIGZldGNoIHRoZSBpZGVudGlmaWNhdGlvbiB0eXBlcy5cbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxJZGVudGlmaWNhdGlvblR5cGVzT3V0W10+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgYW4gYXJyYXkgb2YgaWRlbnRpZmljYXRpb24gdHlwZS5cbiAgICovXG4gIGdldElkZW50aWZpY2F0aW9uVHlwZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPElkZW50aWZpY2F0aW9uVHlwZXNPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPElkZW50aWZpY2F0aW9uVHlwZXNPdXQ+PihgJHt0aGlzLnVybH0vaWRlbnRpZmljYXRpb24tdHlwZXNgLCB7XG4gICAgICBwYXJhbXNcbiAgICB9KS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIGEgc2luZ2xlIGlkZW50aWZpY2F0aW9uIHR5cGUgYnkgaXRzIGlkLlxuICAgKlxuICAgKiBTZW5kcyBhbiBIVFRQIEdFVCByZXF1ZXN0IHRvIHRoZSBpbmRlbnRpZmljYXRpb24gdHlwZSBlbmRwb2ludCBhbmQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHNcbiAgICogdGhlIElkZW50aWZpY2F0aW9uVHlwZU91dCBwYXlsb2FkIGV4dHJhY3RlZCBmcm9tIHRoZSBBUEkgc3VjY2VzcyBlbnZlbG9wZS5cbiAgICpcbiAgICogQHBhcmFtIGlkIC0gVGhlIG51bWVyaWMgaWRlbnRpZmllciBvZiB0aGUgaWRlbnRpZmljYXRpb24gdHlwZSB0byBmZXRjaC5cbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXF1ZXN0ZWQgSWRlbnRpZmljYXRpb25UeXBlT3V0LiBUaGUgT2JzZXJ2YWJsZSB3aWxsIGVycm9yXG4gICAqICAgICAgICAgIGlmIHRoZSBIVFRQIHJlcXVlc3QgZmFpbHMgKGZvciBleGFtcGxlIG5ldHdvcmsgaXNzdWVzIG9yIG5vbi0yeHggcmVzcG9uc2VzKS5cbiAgICovXG4gIGdldElkZW50aWZpY2F0aW9uVHlwZSAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8SWRlbnRpZmljYXRpb25UeXBlT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxJZGVudGlmaWNhdGlvblR5cGVPdXQ+PihgJHt0aGlzLnVybH0vaWRlbnRpZmljYXRpb24tdHlwZXMvJHtpZH1gKVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogU2VuZHMgYSBQT1NUIHJlcXVlc3QgdG8gY3JlYXRlIGEgbmV3IGlkZW50aWZpY2F0aW9uIHR5cGUgYW5kIHJldHVybnMgdGhlIGNyZWF0ZWQgcmVzb3VyY2UuXG4gICAqXG4gICAqIFRoZSByZXF1ZXN0IHBheWxvYWQgaXMgc2VudCBhcyBhbiBvYmplY3Qgd2l0aCBhIGBib2R5YCBwcm9wZXJ0eSBjb250YWluaW5nIHRoZSBwcm92aWRlZFxuICAgKiBJZGVudGlmaWNhdGlvblR5cGVJbiB2YWx1ZSAoaS5lLiB7IGJvZHk6IElkZW50aWZpY2F0aW9uVHlwZUluIH0pLiBPbiBzdWNjZXNzIHRoZSBIVFRQIHJlc3BvbnNlIGlzIGV4cGVjdGVkXG4gICAqIHRvIGZvbGxvdyB0aGUgQXBpU3VjY2VzczxUPiBzaGFwZTsgdGhlIG9wZXJhdG9yIG1hcHMgdGhhdCByZXNwb25zZSB0byB0aGUgaW5uZXIgYGRhdGFgXG4gICAqIG9iamVjdCBhbmQgZW1pdHMgaXQgYXMgYSBJZGVudGlmaWNhdGlvblR5cGVPdXQuXG4gICAqXG4gICAqIEBwYXJhbSBib2R5IC0gVGhlIGlkZW50aWZpY2F0aW9uIHR5cGUgcGF5bG9hZCB0byBjcmVhdGUgKElkZW50aWZpY2F0aW9uVHlwZUluKS5cbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxJZGVudGlmaWNhdGlvblR5cGVPdXQ+IHRoYXQgZW1pdHMgdGhlIGNyZWF0ZWQgaWRlbnRpZmljYXRpb24gdHlwZSBvbiBzdWNjZXNzLlxuICAgKi9cbiAgcG9zdElkZW50aWZpY2F0aW9udFR5cGUgKGJvZHk6IElkZW50aWZpY2F0aW9uVHlwZUluKTogT2JzZXJ2YWJsZTxJZGVudGlmaWNhdGlvblR5cGVPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxJZGVudGlmaWNhdGlvblR5cGVPdXQ+PihgJHt0aGlzLnVybH0vaWRlbnRpZmljYXRpb24tdHlwZXNgLCBib2R5KVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGEgaWRlbnRpZmljYXRpb24gdHlwZSBieSBpdHMgSUQuXG4gICAqXG4gICAqIFNlbmRzIGFuIEhUVFAgUFVUIHRvIGAke3RoaXMudXJsfS9pZGVudGlmaWNhdGlvbi10eXBlcy8ke2lkfWAgd2l0aCB0aGUgcHJvdmlkZWQgcGF5bG9hZC5cbiAgICogVGhlIHJlcXVlc3QgYm9keSBpcyBzZW50IGFzIGFuIG9iamVjdCB3aXRoIGEgYGJvZHlgIHByb3BlcnR5IGNvbnRhaW5pbmcgdGhlXG4gICAqIGBJZGVudGlmaWNhdGlvblR5cGVJbmAgZGF0YS4gVGhlIHNlcnZlciByZXNwb25zZSBpcyBleHBlY3RlZCB0byBiZSBhbiBgQXBpU3VjY2VzczxJZGVudGlmaWNhdGlvblR5cGVPdXQ+YFxuICAgKiBhbmQgdGhpcyBtZXRob2QgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHVud3JhcHBlZCBgSWRlbnRpZmljYXRpb25UeXBlT3V0YC5cbiAgICpcbiAgICogQHBhcmFtIGlkIC0gVGhlIGlkZW50aWZpZXIgb2YgdGhlIGlkZW50aWZpY2F0aW9uIHR5cGUgdG8gdXBkYXRlLlxuICAgKiBAcGFyYW0gYm9keSAtIFRoZSB1cGRhdGUgcGF5bG9hZCBmb3IgdGhlIGlkZW50aWZpY2F0aW9uIHR5cGUuXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgdXBkYXRlZCBgSWRlbnRpZmljYXRpb25UeXBlT3V0YCBvbiBzdWNjZXNzLlxuICAgKi9cbiAgcHV0SWRlbnRpZmljYXRpb25UeXBlIChpZDogbnVtYmVyLCBib2R5OiBJZGVudGlmaWNhdGlvblR5cGVJbik6IE9ic2VydmFibGU8SWRlbnRpZmljYXRpb25UeXBlT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxJZGVudGlmaWNhdGlvblR5cGVPdXQ+PihgJHt0aGlzLnVybH0vaWRlbnRpZmljYXRpb24tdHlwZXMvJHtpZH1gLCBib2R5KVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIGEgaWRlbnRpZmljYXRpb24gdHlwZSBieSBpdHMgSUQuXG4gICAqXG4gICAqIFNlbmRzIGFuIEhUVFAgREVMRVRFIHJlcXVlc3QgdG8gdGhlIGJhY2tlbmQgZW5kcG9pbnQgYC9pZGVudGlmaWNhdGlvbi10eXBlcy97aWR9YCBhbmRcbiAgICogcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIEFQSSByZXNwb25zZSdzIGBkYXRhYCBwYXlsb2FkICh0eXBpY2FsbHkgYW4gZW1wdHkgb2JqZWN0KS5cbiAgICpcbiAgICogVGhlIGltcGxlbWVudGF0aW9uIG1hcHMgYW4gQXBpU3VjY2VzcyB3cmFwcGVyIHRvIGl0cyBgZGF0YWAgcHJvcGVydHkgYmVmb3JlIGVtaXR0aW5nLlxuICAgKlxuICAgKiBAcGFyYW0gaWQgLSBUaGUgbnVtZXJpYyBpZGVudGlmaWVyIG9mIHRoZSBpZGVudGlmaWNhdGlvbiB0eXBlIHRvIGRlbGV0ZS5cbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBkZWxldGVkIHJlc291cmNlIHBheWxvYWQgKHt9IGV4cGVjdGVkKSBvbiBzdWNjZXNzLlxuICAgKiAgICAgICAgICBUaGUgT2JzZXJ2YWJsZSB3aWxsIGVtaXQgYW4gZXJyb3IgaWYgdGhlIEhUVFAgcmVxdWVzdCBmYWlscy5cbiAgICovXG4gIGRlbGV0ZUlkZW50aWZpY2F0aW9uVHlwZSAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8e30+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxBcGlTdWNjZXNzPHt9Pj4oYCR7dGhpcy51cmx9L2lkZW50aWZpY2F0aW9uLXR5cGVzLyR7aWR9YClcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdGhlIGV4dHJhIGNoYXJnZXMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXG4gICAqXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciB0aGUgcmVzdWx0cy5cbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxFeHRyYUNoYXJnZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSBleHRyYSBjaGFyZ2VzIGRhdGEuXG4gICAqL1xuICBnZXRFeHRyYUNoYXJnZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPEV4dHJhQ2hhcmdlc091dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8RXh0cmFDaGFyZ2VzT3V0Pj4oYCR7dGhpcy51cmx9L2V4dHJhY2hhcmdlc2AsIHtcbiAgICAgIHBhcmFtc1xuICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogU3VibWl0cyBhbiBleHRyYSBjaGFyZ2UgcmVxdWVzdCB0byB0aGUgc2VydmVyIGFuZCByZXR1cm5zIHRoZSBjcmVhdGVkIGV4dHJhIGNoYXJnZSBkZXRhaWxzLlxuICAgKlxuICAgKiBAcGFyYW0ge0V4dHJhQ2hhcmdlSW59IGJvZHkgLSBUaGUgZGF0YSBmb3IgdGhlIGV4dHJhIGNoYXJnZSB0byBiZSBjcmVhdGVkLlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEV4dHJhQ2hhcmdlT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBkZXRhaWxzIG9mIHRoZSBjcmVhdGVkIGV4dHJhIGNoYXJnZS5cbiAgICovXG4gIHBvc3RFeHRyYUNoYXJnZSAoYm9keTogRXh0cmFDaGFyZ2VJbik6IE9ic2VydmFibGU8RXh0cmFDaGFyZ2VPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxFeHRyYUNoYXJnZU91dD4+KGAke3RoaXMudXJsfS9leHRyYWNoYXJnZXNgLCBib2R5KVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyBhbiBleHRyYSBjaGFyZ2UgZW50aXR5IHdpdGggbmV3IGRhdGEgYW5kIHJldHVybnMgdGhlIHVwZGF0ZWQgZW50aXR5LlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGV4dHJhIGNoYXJnZSB0byB1cGRhdGUuXG4gICAqIEBwYXJhbSB7RXh0cmFDaGFyZ2VJbn0gYm9keSAtIFRoZSBuZXcgZGF0YSBmb3IgdGhlIGV4dHJhIGNoYXJnZS5cbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxFeHRyYUNoYXJnZU91dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHVwZGF0ZWQgZXh0cmEgY2hhcmdlIGVudGl0eS5cbiAgICovXG4gIHB1dEV4dHJhQ2hhcmdlIChpZDogbnVtYmVyLCBib2R5OiBFeHRyYUNoYXJnZUluKTogT2JzZXJ2YWJsZTxFeHRyYUNoYXJnZU91dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8RXh0cmFDaGFyZ2VPdXQ+PihgJHt0aGlzLnVybH0vZXh0cmFjaGFyZ2VzLyR7aWR9YCwgYm9keSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgYSBsaXN0IG9mIGNvdW50cmllcyBmcm9tIHRoZSBBUEkuXG4gICAqXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGJlIHBhc3NlZCB0byB0aGUgQVBJIHJlcXVlc3QuXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q291bnRyaWVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBsaXN0IG9mIGNvdW50cmllcy5cbiAgICovXG4gIGdldENvdW50cmllcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Q291bnRyaWVzT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDb3VudHJpZXNPdXQ+PihgJHt0aGlzLnVybH0vY291bnRyaWVzYCwgeyBwYXJhbXMgfSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgZGV0YWlscyBvZiBhIGNvdW50cnkgYmFzZWQgb24gaXRzIElELlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgaWRlbnRpZmllciBvZiB0aGUgY291bnRyeSB0byBmZXRjaC5cbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDb3VudHJ5T3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBjb3VudHJ5IGRhdGEuXG4gICAqL1xuICBnZXRDb3VudHJ5IChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxDb3VudHJ5T3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDb3VudHJ5T3V0Pj4oYCR7dGhpcy51cmx9L2NvdW50cmllcy8ke2lkfWApXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBkZXRhaWxzIG9mIGEgc3BlY2lmaWMgY291bnRyeSBieSBpdHMgSUQuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY291bnRyeSB0byBiZSB1cGRhdGVkLlxuICAgKiBAcGFyYW0ge0NvdW50cnlJbn0gYm9keSAtIFRoZSBkYXRhIHRvIHVwZGF0ZSB0aGUgY291bnRyeSB3aXRoLlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENvdW50cnlPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHVwZGF0ZWQgY291bnRyeSBkYXRhLlxuICAgKi9cbiAgcHV0Q291bnRyeSAoaWQ6IG51bWJlciwgYm9keTogQ291bnRyeUluKTogT2JzZXJ2YWJsZTxDb3VudHJ5T3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxDb3VudHJ5T3V0Pj4oYCR7dGhpcy51cmx9L2NvdW50cmllcy8ke2lkfWAsIGJvZHkpXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIGEgbGlzdCBvZiByZWdpb25zIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxuICAgKlxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB1c2VkIHRvIGZpbHRlciB0aGUgcmVnaW9ucy5cbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxSZWdpb25zT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBsaXN0IG9mIHJlZ2lvbnMuXG4gICAqL1xuICBnZXRSZWdpb25zIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxSZWdpb25zT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxSZWdpb25zT3V0Pj4oYCR7dGhpcy51cmx9L3JlZ2lvbnNgLCB7IHBhcmFtcyB9KVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyB0aGUgem9uZXMgZGF0YSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cbiAgICpcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdXNlZCB0byBmaWx0ZXIgdGhlIHpvbmVzIGRhdGEuXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Wm9uZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGZldGNoZWQgem9uZXMgZGF0YS5cbiAgICovXG4gIGdldFpvbmVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxab25lc091dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Wm9uZXNPdXQ+PihgJHt0aGlzLnVybH0vem9uZXNgLCB7IHBhcmFtcyB9KVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyB0aGUgbWFuYWdlbWVudCBhcmVhcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cbiAgICpcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIHRoZSBtYW5hZ2VtZW50IGFyZWFzLlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPE1hbmFnZW1lbnRBcmVhc091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgbWFuYWdlbWVudCBhcmVhcyBkYXRhLlxuICAgKi9cbiAgZ2V0TWFuYWdlbWVudEFyZWFzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxNYW5hZ2VtZW50QXJlYXNPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPE1hbmFnZW1lbnRBcmVhc091dD4+KGAke3RoaXMudXJsfS9tYW5hZ2VtZW50LWFyZWFzYCwgeyBwYXJhbXMgfSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBjYW5jZWxsYXRpb24gcmVhc29ucyBmcm9tIHRoZSBzZXJ2ZXIgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXG4gICAqXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciB0aGUgY2FuY2VsbGF0aW9uIHJlYXNvbnMuXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q2FuY2VsbGF0aW9uUmVhc29uc091dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgcmV0cmlldmVkIGNhbmNlbGxhdGlvbiByZWFzb25zLlxuICAgKi9cbiAgZ2V0Q2FuY2VsbGF0aW9uUmVhc29ucyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Q2FuY2VsbGF0aW9uUmVhc29uc091dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Q2FuY2VsbGF0aW9uUmVhc29uc091dD4+KGAke3RoaXMudXJsfS9jYW5jZWxsYXRpb24tcmVhc29uc2AsIHsgcGFyYW1zIH0pXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kcyBhIGNhbmNlbGxhdGlvbiByZWFzb24gdG8gdGhlIHNlcnZlci5cbiAgICpcbiAgICogQHBhcmFtIHtDYW5jZWxsYXRpb25SZWFzb25Jbn0gYm9keSAtIFRoZSBjYW5jZWxsYXRpb24gcmVhc29uIG9iamVjdCB0byBiZSBzZW50LlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENhbmNlbGxhdGlvblJlYXNvbk91dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgc2VydmVyJ3MgcmVzcG9uc2Ugd2l0aCB0aGUgcHJvY2Vzc2VkIGNhbmNlbGxhdGlvbiByZWFzb24uXG4gICAqL1xuICBwb3N0Q2FuY2VsbGF0aW9uUmVhc29uIChib2R5OiBDYW5jZWxsYXRpb25SZWFzb25Jbik6IE9ic2VydmFibGU8Q2FuY2VsbGF0aW9uUmVhc29uT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8Q2FuY2VsbGF0aW9uUmVhc29uT3V0Pj4oYCR7dGhpcy51cmx9L2NhbmNlbGxhdGlvbi1yZWFzb25zYCwgYm9keSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGNhbmNlbGxhdGlvbiByZWFzb24gZm9yIHRoZSBzcGVjaWZpZWQgSUQgd2l0aCB0aGUgcHJvdmlkZWQgZGF0YS5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjYW5jZWxsYXRpb24gcmVhc29uIHRvIHVwZGF0ZS5cbiAgICogQHBhcmFtIHtDYW5jZWxsYXRpb25SZWFzb25Jbn0gYm9keSAtIFRoZSBkZXRhaWxzIG9mIHRoZSBjYW5jZWxsYXRpb24gcmVhc29uIHRvIGJlIHVwZGF0ZWQuXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q2FuY2VsbGF0aW9uUmVhc29uT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSB1cGRhdGVkIGNhbmNlbGxhdGlvbiByZWFzb24uXG4gICAqL1xuICBwdXRDYW5jZWxsYXRpb25SZWFzb24gKGlkOiBudW1iZXIsIGJvZHk6IENhbmNlbGxhdGlvblJlYXNvbkluKTogT2JzZXJ2YWJsZTxDYW5jZWxsYXRpb25SZWFzb25PdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPENhbmNlbGxhdGlvblJlYXNvbk91dD4+KGAke3RoaXMudXJsfS9jYW5jZWxsYXRpb24tcmVhc29ucy8ke2lkfWAsIGJvZHkpXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIGN1cnJlbmNpZXMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXG4gICAqXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGN1c3RvbWl6ZSB0aGUgY3VycmVuY3kgcmV0cmlldmFsIHJlcXVlc3QuXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q3VycmVuY2llc091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmV0cmlldmVkIGN1cnJlbmNpZXMgZGF0YS5cbiAgICovXG4gIGdldEN1cnJlbmNpZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPEN1cnJlbmNpZXNPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEN1cnJlbmNpZXNPdXQ+PihgJHt0aGlzLnVybH0vY3VycmVuY2llc2AsIHsgcGFyYW1zIH0pXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBsYW5ndWFnZXMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXG4gICAqXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIHBhc3Mgd2l0aCB0aGUgSFRUUCByZXF1ZXN0LlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPExhbmd1YWdlc091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgYXZhaWxhYmxlIGxhbmd1YWdlcy5cbiAgICovXG4gIGdldExhbmd1YWdlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8TGFuZ3VhZ2VzT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxMYW5ndWFnZXNPdXQ+PihgJHt0aGlzLnVybH0vbGFuZ3VhZ2VzYCwgeyBwYXJhbXMgfSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdGhlIGF2YWlsYWJsZSB1bml0cyBmcm9tIHRoZSBBUEkgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXG4gICAqXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciB0aGUgdW5pdHMgYmVpbmcgZmV0Y2hlZC5cbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxVbml0c091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmV0cmlldmVkIHVuaXRzIGRhdGEuXG4gICAqL1xuICBnZXRVbml0cyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8VW5pdHNPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFVuaXRzT3V0Pj4oYCR7dGhpcy51cmx9L3VuaXRzYCwgeyBwYXJhbXMgfSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgc2hpcG1lbnQgc2NvcGVzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxuICAgKlxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIG9yIG1vZGlmeSB0aGUgcmVxdWVzdCBmb3Igc2hpcG1lbnQgc2NvcGVzLlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFNoaXBtZW50U2NvcGVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBzaGlwbWVudCBzY29wZXMgZGF0YS5cbiAgICovXG4gIGdldFNoaXBtZW50U2NvcGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxTaGlwbWVudFNjb3Blc091dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8U2hpcG1lbnRTY29wZXNPdXQ+PihgJHt0aGlzLnVybH0vc2hpcG1lbnQtc2NvcGVzYCwgeyBwYXJhbXMgfSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdGhlIGF2YWlsYWJsZSBzaGlwbWVudCBjb250ZW50IHR5cGVzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxuICAgKlxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgdGhlIHNoaXBtZW50IGNvbnRlbnQgdHlwZXMuXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8U2hpcG1lbnRDb250ZW50VHlwZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHNoaXBtZW50IGNvbnRlbnQgdHlwZXMgZGF0YS5cbiAgICovXG4gIGdldFNoaXBtZW50Q29udGVudFR5cGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxTaGlwbWVudENvbnRlbnRUeXBlc091dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8U2hpcG1lbnRDb250ZW50VHlwZXNPdXQ+PihgJHt0aGlzLnVybH0vc2hpcG1lbnQtY29udGVudC10eXBlc2AsIHsgcGFyYW1zIH0pXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIGEgbGlzdCBvZiBnZW5lcmljIGZvbGlvcyBiYXNlZCBvbiB0aGUgZ2l2ZW4gcXVlcnkgcGFyYW1ldGVycy5cbiAgICpcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdXNlZCB0byBmaWx0ZXIgdGhlIGdlbmVyaWMgZm9saW9zLlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEdlbmVyaWNGb2xpb3NPdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIGZldGNoZWQgZ2VuZXJpYyBmb2xpb3MuXG4gICAqL1xuICBnZXRHZW5lcmljRm9saW9zIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxHZW5lcmljRm9saW9zT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxHZW5lcmljRm9saW9zT3V0Pj4oYCR7dGhpcy51cmx9L2dlbmVyaWMtZm9saW9zYCwgeyBwYXJhbXMgfSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIFNlbmRzIGEgUE9TVCByZXF1ZXN0IHRvIGNyZWF0ZSBvciB1cGRhdGUgYSBnZW5lcmljIGZvbGlvLlxuICAgKlxuICAgKiBAcGFyYW0ge0dlbmVyaWNGb2xpb0lufSBib2R5IC0gVGhlIHBheWxvYWQgY29udGFpbmluZyB0aGUgZGV0YWlscyBvZiB0aGUgZ2VuZXJpYyBmb2xpbyB0byBiZSBjcmVhdGVkIG9yIHVwZGF0ZWQuXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8R2VuZXJpY0ZvbGlvT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSByZXNwb25zZSBkYXRhIG9mIHRoZSBjcmVhdGVkIG9yIHVwZGF0ZWQgZ2VuZXJpYyBmb2xpby5cbiAgICovXG4gIHBvc3RHZW5lcmljRm9saW8gKGJvZHk6IEdlbmVyaWNGb2xpb0luKTogT2JzZXJ2YWJsZTxHZW5lcmljRm9saW9PdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxHZW5lcmljRm9saW9PdXQ+PihgJHt0aGlzLnVybH0vZ2VuZXJpYy1mb2xpb3NgLCBib2R5KVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyBhIGdlbmVyaWMgZm9saW8gd2l0aCB0aGUgc3BlY2lmaWVkIElEIHVzaW5nIHRoZSBwcm92aWRlZCBkYXRhLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGdlbmVyaWMgZm9saW8gdG8gdXBkYXRlLlxuICAgKiBAcGFyYW0ge0dlbmVyaWNGb2xpb0lufSBib2R5IC0gVGhlIGRhdGEgdG8gdXBkYXRlIHRoZSBnZW5lcmljIGZvbGlvIHdpdGguXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8R2VuZXJpY0ZvbGlvT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSB1cGRhdGVkIGdlbmVyaWMgZm9saW8uXG4gICAqL1xuICBwdXRHZW5lcmljRm9saW8gKGlkOiBudW1iZXIsIGJvZHk6IEdlbmVyaWNGb2xpb0luKTogT2JzZXJ2YWJsZTxHZW5lcmljRm9saW9PdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPEdlbmVyaWNGb2xpb091dD4+KGAke3RoaXMudXJsfS9nZW5lcmljLWZvbGlvcy8ke2lkfWAsIGJvZHkpXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kcyBhIFBVVCByZXF1ZXN0IHRvIHVwZGF0ZSBhIEdlbmVyaWMgRm9saW8gcmVzb3VyY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIElEIGFuZCBib2R5IGRhdGEsIGFuZCByZXR1cm5zIHRoZSB1cGRhdGVkIHJlc291cmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIEdlbmVyaWMgRm9saW8gdG8gYmUgdXBkYXRlZC5cbiAgICogQHBhcmFtIHtQYXJ0aWFsPEdlbmVyaWNGb2xpb0luPn0gYm9keSAtIFRoZSBwYXJ0aWFsIGRhdGEgcmVwcmVzZW50aW5nIHRoZSBjaGFuZ2VzIHRvIGJlIGFwcGxpZWQgdG8gdGhlIEdlbmVyaWMgRm9saW8uXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8R2VuZXJpY0ZvbGlvT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSB1cGRhdGVkIEdlbmVyaWMgRm9saW8gcmVzb3VyY2UuXG4gICAqL1xuICBwYXRoR2VuZXJpY0ZvbGlvIChpZDogbnVtYmVyLCBib2R5OiBQYXJ0aWFsPEdlbmVyaWNGb2xpb0luPik6IE9ic2VydmFibGU8R2VuZXJpY0ZvbGlvT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxHZW5lcmljRm9saW9PdXQ+PihgJHt0aGlzLnVybH0vZ2VuZXJpYy1mb2xpb3MvJHtpZH1gLCBib2R5KVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogU2VuZHMgYSBQT1NUIHJlcXVlc3QgdG8gY3JlYXRlIGEgbmV3IHByb2R1Y3QuXG4gICAqXG4gICAqIEBwYXJhbSB7UHJvZHVjdElufSBib2R5IC0gVGhlIHByb2R1Y3QgZGF0YSB0byBiZSBzZW50IGluIHRoZSByZXF1ZXN0IGJvZHkuXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8UHJvZHVjdE91dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIGNyZWF0ZWQgcHJvZHVjdCBkYXRhLlxuICAgKi9cbiAgcG9zdFByb2R1Y3QgKGJvZHk6IFByb2R1Y3RJbik6IE9ic2VydmFibGU8UHJvZHVjdE91dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPFByb2R1Y3RPdXQ+PihgJHt0aGlzLnVybH0vcHJvZHVjdHNgLCBib2R5KVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyBhbiBleGlzdGluZyBwcm9kdWN0IHdpdGggdGhlIGdpdmVuIElEIHVzaW5nIHRoZSBwcm92aWRlZCBkYXRhLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHByb2R1Y3QgdG8gdXBkYXRlLlxuICAgKiBAcGFyYW0ge1Byb2R1Y3RJbn0gYm9keSAtIFRoZSBwcm9kdWN0IGRhdGEgdG8gdXBkYXRlLlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFByb2R1Y3RPdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIHVwZGF0ZWQgcHJvZHVjdCBkYXRhLlxuICAgKi9cbiAgcHV0UHJvZHVjdCAoaWQ6IG51bWJlciwgYm9keTogUHJvZHVjdEluKTogT2JzZXJ2YWJsZTxQcm9kdWN0T3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxQcm9kdWN0T3V0Pj4oYCR7dGhpcy51cmx9L3Byb2R1Y3RzLyR7aWR9YCwgYm9keSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBhIGxpc3Qgb2Ygc2hpcG1lbnQgaW5jb21lIHR5cGVzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxuICAgKlxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgdGhlIHNoaXBtZW50IGluY29tZSB0eXBlcy5cbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxTaGlwbWVudEluY29tZVR5cGVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBzaGlwbWVudCBpbmNvbWUgdHlwZXMgZGF0YS5cbiAgICovXG4gIGdldFNoaXBtZW50SW5jb21lVHlwZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFNoaXBtZW50SW5jb21lVHlwZXNPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFNoaXBtZW50SW5jb21lVHlwZXNPdXQ+PihgJHt0aGlzLnVybH0vc2hpcG1lbnQtaW5jb21lLXR5cGVzYCwgeyBwYXJhbXMgfSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIFNlbmRzIGEgUE9TVCByZXF1ZXN0IHRvIGNyZWF0ZSBhIG5ldyBzaGlwbWVudCBpbmNvbWUgdHlwZS5cbiAgICpcbiAgICogQHBhcmFtIHtTaGlwbWVudEluY29tZVR5cGVJbn0gYm9keSBUaGUgcGF5bG9hZCBjb250YWluaW5nIHRoZSBkZXRhaWxzIG9mIHRoZSBzaGlwbWVudCBpbmNvbWUgdHlwZSB0byBiZSBjcmVhdGVkLlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFNoaXBtZW50SW5jb21lVHlwZU91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgY3JlYXRlZCBzaGlwbWVudCBpbmNvbWUgdHlwZSBkYXRhLlxuICAgKi9cbiAgcG9zdFNoaXBtZW50SW5jb21lVHlwZSAoYm9keTogU2hpcG1lbnRJbmNvbWVUeXBlSW4pOiBPYnNlcnZhYmxlPFNoaXBtZW50SW5jb21lVHlwZU91dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPFNoaXBtZW50SW5jb21lVHlwZU91dD4+KGAke3RoaXMudXJsfS9zaGlwbWVudC1pbmNvbWUtdHlwZXNgLCBib2R5KVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgc2hpcG1lbnQgaW5jb21lIHR5cGUgd2l0aCB0aGUgc3BlY2lmaWVkIElELlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgaWRlbnRpZmllciBvZiB0aGUgc2hpcG1lbnQgaW5jb21lIHR5cGUgdG8gdXBkYXRlLlxuICAgKiBAcGFyYW0ge1NoaXBtZW50SW5jb21lVHlwZUlufSBib2R5IC0gVGhlIGRhdGEgdG8gdXBkYXRlIHRoZSBzaGlwbWVudCBpbmNvbWUgdHlwZSB3aXRoLlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFNoaXBtZW50SW5jb21lVHlwZU91dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHVwZGF0ZWQgc2hpcG1lbnQgaW5jb21lIHR5cGUuXG4gICAqL1xuICBwdXRTaGlwbWVudEluY29tZVR5cGUgKGlkOiBudW1iZXIsIGJvZHk6IFNoaXBtZW50SW5jb21lVHlwZUluKTogT2JzZXJ2YWJsZTxTaGlwbWVudEluY29tZVR5cGVPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPFNoaXBtZW50SW5jb21lVHlwZU91dD4+KGAke3RoaXMudXJsfS9zaGlwbWVudC1pbmNvbWUtdHlwZXMvJHtpZH1gLCBib2R5KVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIGEgbGlzdCBvZiB1bmlxdWUgZm9saW9zIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxuICAgKlxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB1c2VkIHRvIGZpbHRlciBhbmQgZmV0Y2ggdW5pcXVlIGZvbGlvcy5cbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxVbmlxdWVGb2xpb3NPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHVuaXF1ZSBmb2xpb3MgZGF0YS5cbiAgICovXG4gIGdldFVuaXF1ZUZvbGlvcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8VW5pcXVlRm9saW9zT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxVbmlxdWVGb2xpb3NPdXQ+PihgJHt0aGlzLnVybH0vdW5pcXVlLWZvbGlvc2AsIHsgcGFyYW1zIH0pXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kcyBhIFBPU1QgcmVxdWVzdCB0byBjcmVhdGUgYSB1bmlxdWUgZm9saW8uXG4gICAqXG4gICAqIEBwYXJhbSB7VW5pcXVlRm9saW9Jbn0gYm9keSAtIFRoZSBkYXRhIG9iamVjdCBjb250YWluaW5nIGRldGFpbHMgZm9yIHRoZSB1bmlxdWUgZm9saW8gdG8gYmUgY3JlYXRlZC5cbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxVbmlxdWVGb2xpb091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgY3JlYXRlZCB1bmlxdWUgZm9saW8gZGV0YWlscy5cbiAgICovXG4gIHBvc3RVbmlxdWVGb2xpbyAoYm9keTogVW5pcXVlRm9saW9Jbik6IE9ic2VydmFibGU8VW5pcXVlRm9saW9PdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxVbmlxdWVGb2xpb091dD4+KGAke3RoaXMudXJsfS91bmlxdWUtZm9saW9zYCwgYm9keSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgYSB1bmlxdWUgZm9saW8gd2l0aCB0aGUgZ2l2ZW4gZGF0YSB1c2luZyB0aGUgcHJvdmlkZWQgSUQuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSBJRCBvZiB0aGUgdW5pcXVlIGZvbGlvIHRvIGJlIHVwZGF0ZWQuXG4gICAqIEBwYXJhbSB7VW5pcXVlRm9saW9Jbn0gYm9keSAtIFRoZSBwYXlsb2FkIGNvbnRhaW5pbmcgdGhlIGRldGFpbHMgb2YgdGhlIHVuaXF1ZSBmb2xpbyB0byB1cGRhdGUuXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8VW5pcXVlRm9saW9PdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHVwZGF0ZWQgdW5pcXVlIGZvbGlvLlxuICAgKi9cbiAgcHV0VW5pcXVlRm9saW8gKGlkOiBudW1iZXIsIGJvZHk6IFVuaXF1ZUZvbGlvSW4pOiBPYnNlcnZhYmxlPFVuaXF1ZUZvbGlvT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxVbmlxdWVGb2xpb091dD4+KGAke3RoaXMudXJsfS91bmlxdWUtZm9saW9zLyR7aWR9YCwgYm9keSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgYSB1bmlxdWUgZm9saW8gYnkgaXRzIGlkZW50aWZpZXIgd2l0aCB0aGUgcHJvdmlkZWQgZGF0YS5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIGlkZW50aWZpZXIgb2YgdGhlIHVuaXF1ZSBmb2xpbyB0byB1cGRhdGUuXG4gICAqIEBwYXJhbSB7UGFydGlhbDxVbmlxdWVGb2xpb0luPn0gYm9keSAtIFRoZSBwYXJ0aWFsIGRhdGEgb2YgdGhlIHVuaXF1ZSBmb2xpbyB0byB1cGRhdGUuXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8VW5pcXVlRm9saW9PdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSB1cGRhdGVkIHVuaXF1ZSBmb2xpbyBkYXRhLlxuICAgKi9cbiAgcGF0aFVuaXF1ZUZvbGlvIChpZDogbnVtYmVyLCBib2R5OiBQYXJ0aWFsPFVuaXF1ZUZvbGlvSW4+KTogT2JzZXJ2YWJsZTxVbmlxdWVGb2xpb091dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8VW5pcXVlRm9saW9PdXQ+PihgJHt0aGlzLnVybH0vdW5pcXVlLWZvbGlvcy8ke2lkfWAsIGJvZHkpXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgc2hpcG1lbnQgZ3JvdXBzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIHRoZSBzaGlwbWVudCBncm91cHMuXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgc2hpcG1lbnQgZ3JvdXBzIGRhdGEuXG4gICAqL1xuICBnZXRTaGlwbWVudEdyb3VwcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8U2hpcG1lbnRHcm91cHNPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFNoaXBtZW50R3JvdXBzT3V0Pj4oYCR7dGhpcy51cmx9L3NoaXBtZW50LWdyb3Vwc2AsIHsgcGFyYW1zIH0pXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIHNoaXBtZW50IHN0YXR1c2VzIGZyb20gdGhlIEFQSS5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciBvciBtb2RpZnkgdGhlIHJlcXVlc3QuXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgc2hpcG1lbnQgc3RhdHVzZXMgb3V0cHV0LlxuICAgKi9cbiAgZ2V0U2hpcG1lbnRTdGF0dXNlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8U2hpcG1lbnRTdGF0dXNlc091dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8U2hpcG1lbnRTdGF0dXNlc091dD4+KGAke3RoaXMudXJsfS9zaGlwbWVudC1zdGF0dXNlc2AsIHsgcGFyYW1zIH0pXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIHF1ZXN0aW9ucyBmcm9tIHRoZSBjYXRhbG9ncyBBUEkuXG4gICAqXG4gICAqIFNlbmRzIGFuIEhUVFAgR0VUIHJlcXVlc3QgdG8gYCR7dGhpcy51cmx9L3F1ZXN0aW9uc2AgdXNpbmcgdGhlIHN1cHBsaWVkIHF1ZXJ5IHBhcmFtZXRlcnNcbiAgICogYW5kIHJldHVybnMgdGhlIHVud3JhcHBlZCBwYXlsb2FkIChgZGF0YWApIGZyb20gdGhlIEFQSSByZXNwb25zZS5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFF1ZXJ5IHBhcmFtZXRlcnMgdG8gaW5jbHVkZSBpbiB0aGUgcmVxdWVzdCAoZS5nLiBwYWdpbmcsIGZpbHRlcnMsIHNvcnRpbmcpLlxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIFF1ZXN0aW9uc091dCBwYXlsb2FkICh0aGUgYGRhdGFgIGZpZWxkIGZyb20gQXBpU3VjY2VzczxRdWVzdGlvbnNPdXQ+KS5cbiAgICovXG4gIGdldFF1ZXN0aW9ucyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8UXVlc3Rpb25zT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxRdWVzdGlvbnNPdXQ+PihgJHt0aGlzLnVybH0vcXVlc3Rpb25zYCwgeyBwYXJhbXMgfSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIGEgc2luZ2xlIHF1ZXN0aW9uIGJ5IGl0cyBpZC5cbiAgICpcbiAgICogU2VuZHMgYW4gSFRUUCBHRVQgcmVxdWVzdCB0byB0aGUgcXVlc3Rpb25zIGVuZHBvaW50IGFuZCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0c1xuICAgKiB0aGUgUXVlc3Rpb25PdXQgcGF5bG9hZCBleHRyYWN0ZWQgZnJvbSB0aGUgQVBJIHN1Y2Nlc3MgZW52ZWxvcGUuXG4gICAqXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBudW1lcmljIGlkZW50aWZpZXIgb2YgdGhlIHF1ZXN0aW9uIHRvIGZldGNoLlxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlcXVlc3RlZCBRdWVzdGlvbk91dC4gVGhlIE9ic2VydmFibGUgd2lsbCBlcnJvclxuICAgKiAgICAgICAgICBpZiB0aGUgSFRUUCByZXF1ZXN0IGZhaWxzIChmb3IgZXhhbXBsZSBuZXR3b3JrIGlzc3VlcyBvciBub24tMnh4IHJlc3BvbnNlcykuXG4gICAqL1xuICBnZXRRdWVzdGlvbiAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8UXVlc3Rpb25PdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFF1ZXN0aW9uT3V0Pj4oYCR7dGhpcy51cmx9L3F1ZXN0aW9ucy8ke2lkfWApXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kcyBhIFBPU1QgcmVxdWVzdCB0byBjcmVhdGUgYSBuZXcgcXVlc3Rpb24gYW5kIHJldHVybnMgdGhlIGNyZWF0ZWQgcmVzb3VyY2UuXG4gICAqXG4gICAqIFRoZSByZXF1ZXN0IHBheWxvYWQgaXMgc2VudCBhcyBhbiBvYmplY3Qgd2l0aCBhIGBib2R5YCBwcm9wZXJ0eSBjb250YWluaW5nIHRoZSBwcm92aWRlZFxuICAgKiBRdWVzdGlvbkluIHZhbHVlIChpLmUuIHsgYm9keTogUXVlc3Rpb25JbiB9KS4gT24gc3VjY2VzcyB0aGUgSFRUUCByZXNwb25zZSBpcyBleHBlY3RlZFxuICAgKiB0byBmb2xsb3cgdGhlIEFwaVN1Y2Nlc3M8VD4gc2hhcGU7IHRoZSBvcGVyYXRvciBtYXBzIHRoYXQgcmVzcG9uc2UgdG8gdGhlIGlubmVyIGBkYXRhYFxuICAgKiBvYmplY3QgYW5kIGVtaXRzIGl0IGFzIGEgUXVlc3Rpb25PdXQuXG4gICAqXG4gICAqIEBwYXJhbSBib2R5IC0gVGhlIHF1ZXN0aW9uIHBheWxvYWQgdG8gY3JlYXRlIChRdWVzdGlvbkluKS5cbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxRdWVzdGlvbk91dD4gdGhhdCBlbWl0cyB0aGUgY3JlYXRlZCBxdWVzdGlvbiBvbiBzdWNjZXNzLlxuICAgKi9cbiAgcG9zdFF1ZXN0aW9uIChib2R5OiBRdWVzdGlvbkluKTogT2JzZXJ2YWJsZTxRdWVzdGlvbk91dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPFF1ZXN0aW9uT3V0Pj4oYCR7dGhpcy51cmx9L3F1ZXN0aW9uc2AsIGJvZHkpXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgYSBxdWVzdGlvbiBieSBpdHMgSUQuXG4gICAqXG4gICAqIFNlbmRzIGFuIEhUVFAgUFVUIHRvIGAke3RoaXMudXJsfS9xdWVzdGlvbnMvJHtpZH1gIHdpdGggdGhlIHByb3ZpZGVkIHBheWxvYWQuXG4gICAqIFRoZSByZXF1ZXN0IGJvZHkgaXMgc2VudCBhcyBhbiBvYmplY3Qgd2l0aCBhIGBib2R5YCBwcm9wZXJ0eSBjb250YWluaW5nIHRoZVxuICAgKiBgUXVlc3Rpb25JbmAgZGF0YS4gVGhlIHNlcnZlciByZXNwb25zZSBpcyBleHBlY3RlZCB0byBiZSBhbiBgQXBpU3VjY2VzczxRdWVzdGlvbk91dD5gXG4gICAqIGFuZCB0aGlzIG1ldGhvZCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgdW53cmFwcGVkIGBRdWVzdGlvbk91dGAuXG4gICAqXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBxdWVzdGlvbiB0byB1cGRhdGUuXG4gICAqIEBwYXJhbSBib2R5IC0gVGhlIHVwZGF0ZSBwYXlsb2FkIGZvciB0aGUgcXVlc3Rpb24uXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgdXBkYXRlZCBgUXVlc3Rpb25PdXRgIG9uIHN1Y2Nlc3MuXG4gICAqL1xuICBwdXRRdWVzdGlvbiAoaWQ6IG51bWJlciwgYm9keTogUXVlc3Rpb25Jbik6IE9ic2VydmFibGU8UXVlc3Rpb25PdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPFF1ZXN0aW9uT3V0Pj4oYCR7dGhpcy51cmx9L3F1ZXN0aW9ucy8ke2lkfWAsIGJvZHkpXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGVzIGEgcXVlc3Rpb24gYnkgaXRzIElELlxuICAgKlxuICAgKiBTZW5kcyBhbiBIVFRQIERFTEVURSByZXF1ZXN0IHRvIHRoZSBiYWNrZW5kIGVuZHBvaW50IGAvcXVlc3Rpb25zL3tpZH1gIGFuZFxuICAgKiByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgQVBJIHJlc3BvbnNlJ3MgYGRhdGFgIHBheWxvYWQgKHR5cGljYWxseSBhbiBlbXB0eSBvYmplY3QpLlxuICAgKlxuICAgKiBUaGUgaW1wbGVtZW50YXRpb24gbWFwcyBhbiBBcGlTdWNjZXNzIHdyYXBwZXIgdG8gaXRzIGBkYXRhYCBwcm9wZXJ0eSBiZWZvcmUgZW1pdHRpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBudW1lcmljIGlkZW50aWZpZXIgb2YgdGhlIHF1ZXN0aW9uIHRvIGRlbGV0ZS5cbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBkZWxldGVkIHJlc291cmNlIHBheWxvYWQgKHt9IGV4cGVjdGVkKSBvbiBzdWNjZXNzLlxuICAgKiAgICAgICAgICBUaGUgT2JzZXJ2YWJsZSB3aWxsIGVtaXQgYW4gZXJyb3IgaWYgdGhlIEhUVFAgcmVxdWVzdCBmYWlscy5cbiAgICovXG4gIGRlbGV0ZVF1ZXN0aW9uIChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTx7fT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPEFwaVN1Y2Nlc3M8e30+PihgJHt0aGlzLnVybH0vcXVlc3Rpb25zLyR7aWR9YClcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgaG9saWRheXMgZnJvbSB0aGUgY2F0YWxvZ3MgQVBJLlxuICAgKlxuICAgKiBTZW5kcyBhbiBIVFRQIEdFVCByZXF1ZXN0IHRvIGAke3RoaXMudXJsfS9ob2xpZGF5c2AgdXNpbmcgdGhlIHN1cHBsaWVkIHF1ZXJ5IHBhcmFtZXRlcnNcbiAgICogYW5kIHJldHVybnMgdGhlIHVud3JhcHBlZCBwYXlsb2FkIChgZGF0YWApIGZyb20gdGhlIEFQSSByZXNwb25zZS5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFF1ZXJ5IHBhcmFtZXRlcnMgdG8gaW5jbHVkZSBpbiB0aGUgcmVxdWVzdCAoZS5nLiBwYWdpbmcsIGZpbHRlcnMsIHNvcnRpbmcpLlxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIEhvbGlkYXlzT3V0IHBheWxvYWQgKHRoZSBgZGF0YWAgZmllbGQgZnJvbSBBcGlTdWNjZXNzPEhvbGlkYXlzT3V0PikuXG4gICAqL1xuICBnZXRIb2xpZGF5cyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8SG9saWRheXNPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEhvbGlkYXlzT3V0Pj4oYCR7dGhpcy51cmx9L2hvbGlkYXlzYCwgeyBwYXJhbXMgfSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIGEgc2luZ2xlIGhvbGlkYXkgYnkgaXRzIGlkLlxuICAgKlxuICAgKiBTZW5kcyBhbiBIVFRQIEdFVCByZXF1ZXN0IHRvIHRoZSBob2xpZGF5cyBlbmRwb2ludCBhbmQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHNcbiAgICogdGhlIEhvbGlkYXlPdXQgcGF5bG9hZCBleHRyYWN0ZWQgZnJvbSB0aGUgQVBJIHN1Y2Nlc3MgZW52ZWxvcGUuXG4gICAqXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBudW1lcmljIGlkZW50aWZpZXIgb2YgdGhlIGhvbGlkYXkgdG8gZmV0Y2guXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVxdWVzdGVkIEhvbGlkYXlPdXQuIFRoZSBPYnNlcnZhYmxlIHdpbGwgZXJyb3JcbiAgICogICAgICAgICAgaWYgdGhlIEhUVFAgcmVxdWVzdCBmYWlscyAoZm9yIGV4YW1wbGUgbmV0d29yayBpc3N1ZXMgb3Igbm9uLTJ4eCByZXNwb25zZXMpLlxuICAgKi9cbiAgZ2V0SG9saWRheSAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8SG9saWRheU91dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8SG9saWRheU91dD4+KGAke3RoaXMudXJsfS9ob2xpZGF5cy8ke2lkfWApXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kcyBhIFBPU1QgcmVxdWVzdCB0byBjcmVhdGUgYSBuZXcgaG9saWRheSBhbmQgcmV0dXJucyB0aGUgY3JlYXRlZCByZXNvdXJjZS5cbiAgICpcbiAgICogVGhlIHJlcXVlc3QgcGF5bG9hZCBpcyBzZW50IGFzIGFuIG9iamVjdCB3aXRoIGEgYGJvZHlgIHByb3BlcnR5IGNvbnRhaW5pbmcgdGhlIHByb3ZpZGVkXG4gICAqIEhvbGlkYXlJbiB2YWx1ZSAoaS5lLiB7IGJvZHk6IEhvbGlkYXlJbiB9KS4gT24gc3VjY2VzcyB0aGUgSFRUUCByZXNwb25zZSBpcyBleHBlY3RlZFxuICAgKiB0byBmb2xsb3cgdGhlIEFwaVN1Y2Nlc3M8VD4gc2hhcGU7IHRoZSBvcGVyYXRvciBtYXBzIHRoYXQgcmVzcG9uc2UgdG8gdGhlIGlubmVyIGBkYXRhYFxuICAgKiBvYmplY3QgYW5kIGVtaXRzIGl0IGFzIGEgSG9saWRheU91dC5cbiAgICpcbiAgICogQHBhcmFtIGJvZHkgLSBUaGUgaG9saWRheSBwYXlsb2FkIHRvIGNyZWF0ZSAoSG9saWRheUluKS5cbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxIb2xpZGF5T3V0PiB0aGF0IGVtaXRzIHRoZSBjcmVhdGVkIGhvbGlkYXkgb24gc3VjY2Vzcy5cbiAgICovXG4gIHBvc3RIb2xpZGF5IChib2R5OiBIb2xpZGF5SW4pOiBPYnNlcnZhYmxlPEhvbGlkYXlPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxIb2xpZGF5T3V0Pj4oYCR7dGhpcy51cmx9L2hvbGlkYXlzYCwgYm9keSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBhIGhvbGlkYXkgYnkgaXRzIElELlxuICAgKlxuICAgKiBTZW5kcyBhbiBIVFRQIFBVVCB0byBgJHt0aGlzLnVybH0vaG9saWRheXMvJHtpZH1gIHdpdGggdGhlIHByb3ZpZGVkIHBheWxvYWQuXG4gICAqIFRoZSByZXF1ZXN0IGJvZHkgaXMgc2VudCBhcyBhbiBvYmplY3Qgd2l0aCBhIGBib2R5YCBwcm9wZXJ0eSBjb250YWluaW5nIHRoZVxuICAgKiBgSG9saWRheUluYCBkYXRhLiBUaGUgc2VydmVyIHJlc3BvbnNlIGlzIGV4cGVjdGVkIHRvIGJlIGFuIGBBcGlTdWNjZXNzPEhvbGlkYXlPdXQ+YFxuICAgKiBhbmQgdGhpcyBtZXRob2QgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHVud3JhcHBlZCBgSG9saWRheU91dGAuXG4gICAqXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBob2xpZGF5IHRvIHVwZGF0ZS5cbiAgICogQHBhcmFtIGJvZHkgLSBUaGUgdXBkYXRlIHBheWxvYWQgZm9yIHRoZSBob2xpZGF5LlxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHVwZGF0ZWQgYEhvbGlkYXlPdXRgIG9uIHN1Y2Nlc3MuXG4gICAqL1xuICBwdXRIb2xpZGF5IChpZDogbnVtYmVyLCBib2R5OiBIb2xpZGF5SW4pOiBPYnNlcnZhYmxlPEhvbGlkYXlPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPEhvbGlkYXlPdXQ+PihgJHt0aGlzLnVybH0vaG9saWRheXMvJHtpZH1gLCBib2R5KVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlcyBhIHF1ZXN0aW9uIGJ5IGl0cyBJRC5cbiAgICpcbiAgICogU2VuZHMgYW4gSFRUUCBERUxFVEUgcmVxdWVzdCB0byB0aGUgYmFja2VuZCBlbmRwb2ludCBgL3F1ZXN0aW9ucy97aWR9YCBhbmRcbiAgICogcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIEFQSSByZXNwb25zZSdzIGBkYXRhYCBwYXlsb2FkICh0eXBpY2FsbHkgYW4gZW1wdHkgb2JqZWN0KS5cbiAgICpcbiAgICogVGhlIGltcGxlbWVudGF0aW9uIG1hcHMgYW4gQXBpU3VjY2VzcyB3cmFwcGVyIHRvIGl0cyBgZGF0YWAgcHJvcGVydHkgYmVmb3JlIGVtaXR0aW5nLlxuICAgKlxuICAgKiBAcGFyYW0gaWQgLSBUaGUgbnVtZXJpYyBpZGVudGlmaWVyIG9mIHRoZSBxdWVzdGlvbiB0byBkZWxldGUuXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgZGVsZXRlZCByZXNvdXJjZSBwYXlsb2FkICh7fSBleHBlY3RlZCkgb24gc3VjY2Vzcy5cbiAgICogICAgICAgICAgVGhlIE9ic2VydmFibGUgd2lsbCBlbWl0IGFuIGVycm9yIGlmIHRoZSBIVFRQIHJlcXVlc3QgZmFpbHMuXG4gICAqL1xuICBkZWxldGVIb2xpZGF5IChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTx7fT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPEFwaVN1Y2Nlc3M8e30+PihgJHt0aGlzLnVybH0vaG9saWRheXMvJHtpZH1gKVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cbn1cbiJdfQ==
616
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNhdGFsb2dzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0tbXgvbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9hcGktY2F0YWxvZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUdsRCxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFBOzs7QUFtRHRDLE1BQU0sT0FBTyxrQkFBa0I7SUFFSjtJQUNmO0lBRlYsWUFDeUIsWUFBeUIsRUFDeEMsSUFBZ0I7UUFERCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3RCLENBQUM7SUFFTDs7OztPQUlHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUE7SUFDL0MsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsaUJBQWlCLENBQUUsTUFBbUI7UUFDcEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBZ0MsR0FBRyxJQUFJLENBQUMsR0FBRyxrQkFBa0IsRUFBRTtZQUNqRixNQUFNO1NBQ1AsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHNCQUFzQixDQUFFLE1BQW1CO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsdUJBQXVCLEVBQUU7WUFDM0YsTUFBTTtTQUNQLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFB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Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tICcuLi9uZ3gtc2VydmljZXMubW9kZWxzJ1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXHJcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IEFwaVN1Y2Nlc3MsIFF1ZXJ5UGFyYW1zIH0gZnJvbSAnLi9tb2RlbHMvYXBpLm1vZGVscydcclxuaW1wb3J0IHtcclxuICBCdXNpbmVzc1BhcnR5VHJhZGVyVHlwZXNPdXQsXHJcbiAgQ2FuY2VsbGF0aW9uUmVhc29uSW4sXHJcbiAgQ2FuY2VsbGF0aW9uUmVhc29uT3V0LFxyXG4gIENhbmNlbGxhdGlvblJlYXNvbnNPdXQsXHJcbiAgQ291bnRyaWVzT3V0LFxyXG4gIENvdW50cnlJbixcclxuICBDb3VudHJ5T3V0LFxyXG4gIEN1cnJlbmNpZXNPdXQsXHJcbiAgRXh0cmFDaGFyZ2VJbixcclxuICBFeHRyYUNoYXJnZU91dCxcclxuICBFeHRyYUNoYXJnZXNPdXQsXHJcbiAgR2VuZXJpY0ZvbGlvSW4sXHJcbiAgR2VuZXJpY0ZvbGlvT3V0LFxyXG4gIEdlbmVyaWNGb2xpb3NPdXQsXHJcbiAgSG9saWRheUluLFxyXG4gIEhvbGlkYXlPdXQsXHJcbiAgSG9saWRheXNPdXQsXHJcbiAgSWRlbnRpZmljYXRpb25UeXBlSW4sXHJcbiAgSWRlbnRpZmljYXRpb25UeXBlTnVtYmVyVmFsaWRhdGlvbkluLFxyXG4gIElkZW50aWZpY2F0aW9uVHlwZU51bWJlclZhbGlkYXRpb25PdXQsXHJcbiAgSWRlbnRpZmljYXRpb25UeXBlT3V0LFxyXG4gIElkZW50aWZpY2F0aW9uVHlwZXNPdXQsXHJcbiAgTGFuZ3VhZ2VzT3V0LFxyXG4gIE1hbmFnZW1lbnRBcmVhc091dCxcclxuICBPcGVyYXRpb25UeXBlc091dCxcclxuICBQcm9kdWN0SW4sXHJcbiAgUHJvZHVjdE91dCxcclxuICBRdWVzdGlvbkluLFxyXG4gIFF1ZXN0aW9uT3V0LFxyXG4gIFF1ZXN0aW9uc091dCxcclxuICBSZWdpb25zT3V0LFxyXG4gIFNoaXBtZW50Q29udGVudFR5cGVzT3V0LFxyXG4gIFNoaXBtZW50R3JvdXBzT3V0LFxyXG4gIFNoaXBtZW50SW5jb21lVHlwZUluLFxyXG4gIFNoaXBtZW50SW5jb21lVHlwZU91dCxcclxuICBTaGlwbWVudEluY29tZVR5cGVzT3V0LFxyXG4gIFNoaXBtZW50U2NvcGVzT3V0LFxyXG4gIFNoaXBtZW50U3RhdHVzZXNPdXQsXHJcbiAgVW5pcXVlRm9saW9JbixcclxuICBVbmlxdWVGb2xpb091dCxcclxuICBVbmlxdWVGb2xpb3NPdXQsXHJcbiAgVW5pdHNPdXQsXHJcbiAgWm9uZXNPdXRcclxufSBmcm9tICcuL21vZGVscy9hcGktY2F0YWxvZy50eXBlcydcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwaUNhdGFsb2dzU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IgKFxyXG4gICAgQEluamVjdCgnZW52JykgcHJpdmF0ZSBlbnZpcm9ubWVudHM6IEVudmlyb25tZW50LFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50XHJcbiAgKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBVUkwgZm9yIHRoZSByZXBvcnRzIEFQSSBmcm9tIHRoZSBlbnZpcm9ubWVudCBjb25maWd1cmF0aW9ucy5cclxuICAgKlxyXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIFVSTCBvZiB0aGUgcmVwb3J0cyBBUEkuXHJcbiAgICovXHJcbiAgZ2V0IHVybCAoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50cy5hcGlDYXRhbG9nc1VybCA/PyAnJ1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBsaXN0IG9mIGNvbGxlY3Rpb24gcGF5bWVudHNcclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHVzZWQgdG8gZmV0Y2ggdGhlIG9wZXJhdGlvbiB0eXBlcy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPE9wZXJhdGlvblR5cGVzT3V0W10+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgYW4gYXJyYXkgb2Ygb3BlcmF0aW9uIHR5cGUuXHJcbiAgICovXHJcbiAgZ2V0T3BlcmF0aW9uVHlwZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPE9wZXJhdGlvblR5cGVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPE9wZXJhdGlvblR5cGVzT3V0Pj4oYCR7dGhpcy51cmx9L29wZXJhdGlvbi10eXBlc2AsIHtcclxuICAgICAgcGFyYW1zXHJcbiAgICB9KS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBsaXN0IG9mIGlkZW50aWZpY2F0aW9zIHR5cGVzXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB1c2VkIHRvIGZldGNoIHRoZSBpZGVudGlmaWNhdGlvbiB0eXBlcy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPElkZW50aWZpY2F0aW9uVHlwZXNPdXRbXT59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyBhbiBhcnJheSBvZiBpZGVudGlmaWNhdGlvbiB0eXBlLlxyXG4gICAqL1xyXG4gIGdldElkZW50aWZpY2F0aW9uVHlwZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPElkZW50aWZpY2F0aW9uVHlwZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8SWRlbnRpZmljYXRpb25UeXBlc091dD4+KGAke3RoaXMudXJsfS9pZGVudGlmaWNhdGlvbi10eXBlc2AsIHtcclxuICAgICAgcGFyYW1zXHJcbiAgICB9KS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmUgYSBzaW5nbGUgaWRlbnRpZmljYXRpb24gdHlwZSBieSBpdHMgaWQuXHJcbiAgICpcclxuICAgKiBTZW5kcyBhbiBIVFRQIEdFVCByZXF1ZXN0IHRvIHRoZSBpbmRlbnRpZmljYXRpb24gdHlwZSBlbmRwb2ludCBhbmQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHNcclxuICAgKiB0aGUgSWRlbnRpZmljYXRpb25UeXBlT3V0IHBheWxvYWQgZXh0cmFjdGVkIGZyb20gdGhlIEFQSSBzdWNjZXNzIGVudmVsb3BlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGlkIC0gVGhlIG51bWVyaWMgaWRlbnRpZmllciBvZiB0aGUgaWRlbnRpZmljYXRpb24gdHlwZSB0byBmZXRjaC5cclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlcXVlc3RlZCBJZGVudGlmaWNhdGlvblR5cGVPdXQuIFRoZSBPYnNlcnZhYmxlIHdpbGwgZXJyb3JcclxuICAgKiAgICAgICAgICBpZiB0aGUgSFRUUCByZXF1ZXN0IGZhaWxzIChmb3IgZXhhbXBsZSBuZXR3b3JrIGlzc3VlcyBvciBub24tMnh4IHJlc3BvbnNlcykuXHJcbiAgICovXHJcbiAgZ2V0SWRlbnRpZmljYXRpb25UeXBlIChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxJZGVudGlmaWNhdGlvblR5cGVPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8SWRlbnRpZmljYXRpb25UeXBlT3V0Pj4oYCR7dGhpcy51cmx9L2lkZW50aWZpY2F0aW9uLXR5cGVzLyR7aWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIFBPU1QgcmVxdWVzdCB0byBjcmVhdGUgYSBuZXcgaWRlbnRpZmljYXRpb24gdHlwZSBhbmQgcmV0dXJucyB0aGUgY3JlYXRlZCByZXNvdXJjZS5cclxuICAgKlxyXG4gICAqIFRoZSByZXF1ZXN0IHBheWxvYWQgaXMgc2VudCBhcyBhbiBvYmplY3Qgd2l0aCBhIGBib2R5YCBwcm9wZXJ0eSBjb250YWluaW5nIHRoZSBwcm92aWRlZFxyXG4gICAqIElkZW50aWZpY2F0aW9uVHlwZUluIHZhbHVlIChpLmUuIHsgYm9keTogSWRlbnRpZmljYXRpb25UeXBlSW4gfSkuIE9uIHN1Y2Nlc3MgdGhlIEhUVFAgcmVzcG9uc2UgaXMgZXhwZWN0ZWRcclxuICAgKiB0byBmb2xsb3cgdGhlIEFwaVN1Y2Nlc3M8VD4gc2hhcGU7IHRoZSBvcGVyYXRvciBtYXBzIHRoYXQgcmVzcG9uc2UgdG8gdGhlIGlubmVyIGBkYXRhYFxyXG4gICAqIG9iamVjdCBhbmQgZW1pdHMgaXQgYXMgYSBJZGVudGlmaWNhdGlvblR5cGVPdXQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gYm9keSAtIFRoZSBpZGVudGlmaWNhdGlvbiB0eXBlIHBheWxvYWQgdG8gY3JlYXRlIChJZGVudGlmaWNhdGlvblR5cGVJbikuXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxJZGVudGlmaWNhdGlvblR5cGVPdXQ+IHRoYXQgZW1pdHMgdGhlIGNyZWF0ZWQgaWRlbnRpZmljYXRpb24gdHlwZSBvbiBzdWNjZXNzLlxyXG4gICAqL1xyXG4gIHBvc3RJZGVudGlmaWNhdGlvbnRUeXBlIChib2R5OiBJZGVudGlmaWNhdGlvblR5cGVJbik6IE9ic2VydmFibGU8SWRlbnRpZmljYXRpb25UeXBlT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxJZGVudGlmaWNhdGlvblR5cGVPdXQ+PihgJHt0aGlzLnVybH0vaWRlbnRpZmljYXRpb24tdHlwZXNgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSBhIGlkZW50aWZpY2F0aW9uIHR5cGUgYnkgaXRzIElELlxyXG4gICAqXHJcbiAgICogU2VuZHMgYW4gSFRUUCBQVVQgdG8gYCR7dGhpcy51cmx9L2lkZW50aWZpY2F0aW9uLXR5cGVzLyR7aWR9YCB3aXRoIHRoZSBwcm92aWRlZCBwYXlsb2FkLlxyXG4gICAqIFRoZSByZXF1ZXN0IGJvZHkgaXMgc2VudCBhcyBhbiBvYmplY3Qgd2l0aCBhIGBib2R5YCBwcm9wZXJ0eSBjb250YWluaW5nIHRoZVxyXG4gICAqIGBJZGVudGlmaWNhdGlvblR5cGVJbmAgZGF0YS4gVGhlIHNlcnZlciByZXNwb25zZSBpcyBleHBlY3RlZCB0byBiZSBhbiBgQXBpU3VjY2VzczxJZGVudGlmaWNhdGlvblR5cGVPdXQ+YFxyXG4gICAqIGFuZCB0aGlzIG1ldGhvZCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgdW53cmFwcGVkIGBJZGVudGlmaWNhdGlvblR5cGVPdXRgLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGlkIC0gVGhlIGlkZW50aWZpZXIgb2YgdGhlIGlkZW50aWZpY2F0aW9uIHR5cGUgdG8gdXBkYXRlLlxyXG4gICAqIEBwYXJhbSBib2R5IC0gVGhlIHVwZGF0ZSBwYXlsb2FkIGZvciB0aGUgaWRlbnRpZmljYXRpb24gdHlwZS5cclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHVwZGF0ZWQgYElkZW50aWZpY2F0aW9uVHlwZU91dGAgb24gc3VjY2Vzcy5cclxuICAgKi9cclxuICBwdXRJZGVudGlmaWNhdGlvblR5cGUgKGlkOiBudW1iZXIsIGJvZHk6IElkZW50aWZpY2F0aW9uVHlwZUluKTogT2JzZXJ2YWJsZTxJZGVudGlmaWNhdGlvblR5cGVPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8SWRlbnRpZmljYXRpb25UeXBlT3V0Pj4oYCR7dGhpcy51cmx9L2lkZW50aWZpY2F0aW9uLXR5cGVzLyR7aWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWxldGUgYSBpZGVudGlmaWNhdGlvbiB0eXBlIGJ5IGl0cyBJRC5cclxuICAgKlxyXG4gICAqIFNlbmRzIGFuIEhUVFAgREVMRVRFIHJlcXVlc3QgdG8gdGhlIGJhY2tlbmQgZW5kcG9pbnQgYC9pZGVudGlmaWNhdGlvbi10eXBlcy97aWR9YCBhbmRcclxuICAgKiByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgQVBJIHJlc3BvbnNlJ3MgYGRhdGFgIHBheWxvYWQgKHR5cGljYWxseSBhbiBlbXB0eSBvYmplY3QpLlxyXG4gICAqXHJcbiAgICogVGhlIGltcGxlbWVudGF0aW9uIG1hcHMgYW4gQXBpU3VjY2VzcyB3cmFwcGVyIHRvIGl0cyBgZGF0YWAgcHJvcGVydHkgYmVmb3JlIGVtaXR0aW5nLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGlkIC0gVGhlIG51bWVyaWMgaWRlbnRpZmllciBvZiB0aGUgaWRlbnRpZmljYXRpb24gdHlwZSB0byBkZWxldGUuXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBkZWxldGVkIHJlc291cmNlIHBheWxvYWQgKHt9IGV4cGVjdGVkKSBvbiBzdWNjZXNzLlxyXG4gICAqICAgICAgICAgIFRoZSBPYnNlcnZhYmxlIHdpbGwgZW1pdCBhbiBlcnJvciBpZiB0aGUgSFRUUCByZXF1ZXN0IGZhaWxzLlxyXG4gICAqL1xyXG4gIGRlbGV0ZUlkZW50aWZpY2F0aW9uVHlwZSAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8e30+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPEFwaVN1Y2Nlc3M8e30+PihgJHt0aGlzLnVybH0vaWRlbnRpZmljYXRpb24tdHlwZXMvJHtpZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmRzIGEgUE9TVCByZXF1ZXN0IHRvIHZhbGlkYXRlIGlkZW50aWZpY2F0aW9uIHR5cGUgbnVtYmVyLlxyXG4gICAqXHJcbiAgICogVGhlIHJlcXVlc3QgcGF5bG9hZCBpcyBzZW50IGFzIGFuIG9iamVjdCB3aXRoIGEgYGJvZHlgIHByb3BlcnR5IGNvbnRhaW5pbmcgdGhlIHByb3ZpZGVkXHJcbiAgICogSWRlbnRpZmljYXRpb25UeXBlTnVtYmVyVmFsaWRhdGlvbkluIHZhbHVlIChpLmUuIHsgYm9keTogSWRlbnRpZmljYXRpb25UeXBlTnVtYmVyVmFsaWRhdGlvbkluIH0pLiBPbiBzdWNjZXNzIHRoZSBIVFRQIHJlc3BvbnNlIGlzIGV4cGVjdGVkXHJcbiAgICogdG8gZm9sbG93IHRoZSBBcGlTdWNjZXNzPFQ+IHNoYXBlOyB0aGUgb3BlcmF0b3IgbWFwcyB0aGF0IHJlc3BvbnNlIHRvIHRoZSBpbm5lciBgZGF0YWBcclxuICAgKiBvYmplY3QgYW5kIGVtaXRzIGl0IGFzIGEgSWRlbnRpZmljYXRpb25UeXBlTnVtYmVyVmFsaWRhdGlvbk91dC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBib2R5IC0gVGhlIGlkZW50aWZpY2F0aW9uIHR5cGUgbnVtYmVyIHZhbGlkYXRpb24gcGF5bG9hZCB0byB2YWxpZGF0ZSAoSWRlbnRpZmljYXRpb25UeXBlTnVtYmVyVmFsaWRhdGlvbkluKS5cclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPElkZW50aWZpY2F0aW9uVHlwZU51bWJlclZhbGlkYXRpb25PdXQ+IHRoYXQgZW1pdHMgdGhlIHZhbGlkYXRlIHN0YXR1cy5cclxuICAgKi9cclxuICBwb3N0SWRlbnRpZmljYXRpb250VHlwZU51bWJlclZhbGlkYXRpb24gKGJvZHk6IElkZW50aWZpY2F0aW9uVHlwZU51bWJlclZhbGlkYXRpb25Jbik6IE9ic2VydmFibGU8SWRlbnRpZmljYXRpb25UeXBlTnVtYmVyVmFsaWRhdGlvbk91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8SWRlbnRpZmljYXRpb25UeXBlTnVtYmVyVmFsaWRhdGlvbk91dD4+KGAke3RoaXMudXJsfS9pZGVudGlmaWNhdGlvbi10eXBlcy9udW1iZXItdmFsaWRhdGlvbmAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyB0aGUgZXh0cmEgY2hhcmdlcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciB0aGUgcmVzdWx0cy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEV4dHJhQ2hhcmdlc091dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIGV4dHJhIGNoYXJnZXMgZGF0YS5cclxuICAgKi9cclxuICBnZXRFeHRyYUNoYXJnZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPEV4dHJhQ2hhcmdlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxFeHRyYUNoYXJnZXNPdXQ+PihgJHt0aGlzLnVybH0vZXh0cmFjaGFyZ2VzYCwge1xyXG4gICAgICBwYXJhbXNcclxuICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdWJtaXRzIGFuIGV4dHJhIGNoYXJnZSByZXF1ZXN0IHRvIHRoZSBzZXJ2ZXIgYW5kIHJldHVybnMgdGhlIGNyZWF0ZWQgZXh0cmEgY2hhcmdlIGRldGFpbHMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0V4dHJhQ2hhcmdlSW59IGJvZHkgLSBUaGUgZGF0YSBmb3IgdGhlIGV4dHJhIGNoYXJnZSB0byBiZSBjcmVhdGVkLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8RXh0cmFDaGFyZ2VPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGRldGFpbHMgb2YgdGhlIGNyZWF0ZWQgZXh0cmEgY2hhcmdlLlxyXG4gICAqL1xyXG4gIHBvc3RFeHRyYUNoYXJnZSAoYm9keTogRXh0cmFDaGFyZ2VJbik6IE9ic2VydmFibGU8RXh0cmFDaGFyZ2VPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPEV4dHJhQ2hhcmdlT3V0Pj4oYCR7dGhpcy51cmx9L2V4dHJhY2hhcmdlc2AsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyBhbiBleHRyYSBjaGFyZ2UgZW50aXR5IHdpdGggbmV3IGRhdGEgYW5kIHJldHVybnMgdGhlIHVwZGF0ZWQgZW50aXR5LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBleHRyYSBjaGFyZ2UgdG8gdXBkYXRlLlxyXG4gICAqIEBwYXJhbSB7RXh0cmFDaGFyZ2VJbn0gYm9keSAtIFRoZSBuZXcgZGF0YSBmb3IgdGhlIGV4dHJhIGNoYXJnZS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEV4dHJhQ2hhcmdlT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgdXBkYXRlZCBleHRyYSBjaGFyZ2UgZW50aXR5LlxyXG4gICAqL1xyXG4gIHB1dEV4dHJhQ2hhcmdlIChpZDogbnVtYmVyLCBib2R5OiBFeHRyYUNoYXJnZUluKTogT2JzZXJ2YWJsZTxFeHRyYUNoYXJnZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxFeHRyYUNoYXJnZU91dD4+KGAke3RoaXMudXJsfS9leHRyYWNoYXJnZXMvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgYSBsaXN0IG9mIGNvdW50cmllcyBmcm9tIHRoZSBBUEkuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBiZSBwYXNzZWQgdG8gdGhlIEFQSSByZXF1ZXN0LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q291bnRyaWVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBsaXN0IG9mIGNvdW50cmllcy5cclxuICAgKi9cclxuICBnZXRDb3VudHJpZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPENvdW50cmllc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDb3VudHJpZXNPdXQ+PihgJHt0aGlzLnVybH0vY291bnRyaWVzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIGRldGFpbHMgb2YgYSBjb3VudHJ5IGJhc2VkIG9uIGl0cyBJRC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBjb3VudHJ5IHRvIGZldGNoLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q291bnRyeU91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgY291bnRyeSBkYXRhLlxyXG4gICAqL1xyXG4gIGdldENvdW50cnkgKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPENvdW50cnlPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Q291bnRyeU91dD4+KGAke3RoaXMudXJsfS9jb3VudHJpZXMvJHtpZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIGRldGFpbHMgb2YgYSBzcGVjaWZpYyBjb3VudHJ5IGJ5IGl0cyBJRC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY291bnRyeSB0byBiZSB1cGRhdGVkLlxyXG4gICAqIEBwYXJhbSB7Q291bnRyeUlufSBib2R5IC0gVGhlIGRhdGEgdG8gdXBkYXRlIHRoZSBjb3VudHJ5IHdpdGguXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDb3VudHJ5T3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSB1cGRhdGVkIGNvdW50cnkgZGF0YS5cclxuICAgKi9cclxuICBwdXRDb3VudHJ5IChpZDogbnVtYmVyLCBib2R5OiBDb3VudHJ5SW4pOiBPYnNlcnZhYmxlPENvdW50cnlPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8Q291bnRyeU91dD4+KGAke3RoaXMudXJsfS9jb3VudHJpZXMvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgYSBsaXN0IG9mIHJlZ2lvbnMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB1c2VkIHRvIGZpbHRlciB0aGUgcmVnaW9ucy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFJlZ2lvbnNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGxpc3Qgb2YgcmVnaW9ucy5cclxuICAgKi9cclxuICBnZXRSZWdpb25zIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxSZWdpb25zT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFJlZ2lvbnNPdXQ+PihgJHt0aGlzLnVybH0vcmVnaW9uc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyB0aGUgem9uZXMgZGF0YSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHVzZWQgdG8gZmlsdGVyIHRoZSB6b25lcyBkYXRhLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Wm9uZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGZldGNoZWQgem9uZXMgZGF0YS5cclxuICAgKi9cclxuICBnZXRab25lcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Wm9uZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Wm9uZXNPdXQ+PihgJHt0aGlzLnVybH0vem9uZXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgdGhlIG1hbmFnZW1lbnQgYXJlYXMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgdGhlIG1hbmFnZW1lbnQgYXJlYXMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxNYW5hZ2VtZW50QXJlYXNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIG1hbmFnZW1lbnQgYXJlYXMgZGF0YS5cclxuICAgKi9cclxuICBnZXRNYW5hZ2VtZW50QXJlYXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPE1hbmFnZW1lbnRBcmVhc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxNYW5hZ2VtZW50QXJlYXNPdXQ+PihgJHt0aGlzLnVybH0vbWFuYWdlbWVudC1hcmVhc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGNhbmNlbGxhdGlvbiByZWFzb25zIGZyb20gdGhlIHNlcnZlciBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciB0aGUgY2FuY2VsbGF0aW9uIHJlYXNvbnMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDYW5jZWxsYXRpb25SZWFzb25zT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSByZXRyaWV2ZWQgY2FuY2VsbGF0aW9uIHJlYXNvbnMuXHJcbiAgICovXHJcbiAgZ2V0Q2FuY2VsbGF0aW9uUmVhc29ucyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Q2FuY2VsbGF0aW9uUmVhc29uc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDYW5jZWxsYXRpb25SZWFzb25zT3V0Pj4oYCR7dGhpcy51cmx9L2NhbmNlbGxhdGlvbi1yZWFzb25zYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIGNhbmNlbGxhdGlvbiByZWFzb24gdG8gdGhlIHNlcnZlci5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7Q2FuY2VsbGF0aW9uUmVhc29uSW59IGJvZHkgLSBUaGUgY2FuY2VsbGF0aW9uIHJlYXNvbiBvYmplY3QgdG8gYmUgc2VudC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENhbmNlbGxhdGlvblJlYXNvbk91dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgc2VydmVyJ3MgcmVzcG9uc2Ugd2l0aCB0aGUgcHJvY2Vzc2VkIGNhbmNlbGxhdGlvbiByZWFzb24uXHJcbiAgICovXHJcbiAgcG9zdENhbmNlbGxhdGlvblJlYXNvbiAoYm9keTogQ2FuY2VsbGF0aW9uUmVhc29uSW4pOiBPYnNlcnZhYmxlPENhbmNlbGxhdGlvblJlYXNvbk91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8Q2FuY2VsbGF0aW9uUmVhc29uT3V0Pj4oYCR7dGhpcy51cmx9L2NhbmNlbGxhdGlvbi1yZWFzb25zYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIHRoZSBjYW5jZWxsYXRpb24gcmVhc29uIGZvciB0aGUgc3BlY2lmaWVkIElEIHdpdGggdGhlIHByb3ZpZGVkIGRhdGEuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNhbmNlbGxhdGlvbiByZWFzb24gdG8gdXBkYXRlLlxyXG4gICAqIEBwYXJhbSB7Q2FuY2VsbGF0aW9uUmVhc29uSW59IGJvZHkgLSBUaGUgZGV0YWlscyBvZiB0aGUgY2FuY2VsbGF0aW9uIHJlYXNvbiB0byBiZSB1cGRhdGVkLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q2FuY2VsbGF0aW9uUmVhc29uT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSB1cGRhdGVkIGNhbmNlbGxhdGlvbiByZWFzb24uXHJcbiAgICovXHJcbiAgcHV0Q2FuY2VsbGF0aW9uUmVhc29uIChpZDogbnVtYmVyLCBib2R5OiBDYW5jZWxsYXRpb25SZWFzb25Jbik6IE9ic2VydmFibGU8Q2FuY2VsbGF0aW9uUmVhc29uT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPENhbmNlbGxhdGlvblJlYXNvbk91dD4+KGAke3RoaXMudXJsfS9jYW5jZWxsYXRpb24tcmVhc29ucy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBjdXJyZW5jaWVzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gY3VzdG9taXplIHRoZSBjdXJyZW5jeSByZXRyaWV2YWwgcmVxdWVzdC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEN1cnJlbmNpZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJldHJpZXZlZCBjdXJyZW5jaWVzIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0Q3VycmVuY2llcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Q3VycmVuY2llc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDdXJyZW5jaWVzT3V0Pj4oYCR7dGhpcy51cmx9L2N1cnJlbmNpZXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIGxhbmd1YWdlcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIHBhc3Mgd2l0aCB0aGUgSFRUUCByZXF1ZXN0LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8TGFuZ3VhZ2VzT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBhdmFpbGFibGUgbGFuZ3VhZ2VzLlxyXG4gICAqL1xyXG4gIGdldExhbmd1YWdlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8TGFuZ3VhZ2VzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPExhbmd1YWdlc091dD4+KGAke3RoaXMudXJsfS9sYW5ndWFnZXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgdGhlIGF2YWlsYWJsZSB1bml0cyBmcm9tIHRoZSBBUEkgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgdGhlIHVuaXRzIGJlaW5nIGZldGNoZWQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxVbml0c091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmV0cmlldmVkIHVuaXRzIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0VW5pdHMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFVuaXRzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFVuaXRzT3V0Pj4oYCR7dGhpcy51cmx9L3VuaXRzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIHNoaXBtZW50IHNjb3BlcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgb3IgbW9kaWZ5IHRoZSByZXF1ZXN0IGZvciBzaGlwbWVudCBzY29wZXMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxTaGlwbWVudFNjb3Blc091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgc2hpcG1lbnQgc2NvcGVzIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0U2hpcG1lbnRTY29wZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFNoaXBtZW50U2NvcGVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFNoaXBtZW50U2NvcGVzT3V0Pj4oYCR7dGhpcy51cmx9L3NoaXBtZW50LXNjb3Blc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyB0aGUgYXZhaWxhYmxlIHNoaXBtZW50IGNvbnRlbnQgdHlwZXMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgdGhlIHNoaXBtZW50IGNvbnRlbnQgdHlwZXMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxTaGlwbWVudENvbnRlbnRUeXBlc091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgc2hpcG1lbnQgY29udGVudCB0eXBlcyBkYXRhLlxyXG4gICAqL1xyXG4gIGdldFNoaXBtZW50Q29udGVudFR5cGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxTaGlwbWVudENvbnRlbnRUeXBlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxTaGlwbWVudENvbnRlbnRUeXBlc091dD4+KGAke3RoaXMudXJsfS9zaGlwbWVudC1jb250ZW50LXR5cGVzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIGEgbGlzdCBvZiBnZW5lcmljIGZvbGlvcyBiYXNlZCBvbiB0aGUgZ2l2ZW4gcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHVzZWQgdG8gZmlsdGVyIHRoZSBnZW5lcmljIGZvbGlvcy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEdlbmVyaWNGb2xpb3NPdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIGZldGNoZWQgZ2VuZXJpYyBmb2xpb3MuXHJcbiAgICovXHJcbiAgZ2V0R2VuZXJpY0ZvbGlvcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8R2VuZXJpY0ZvbGlvc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxHZW5lcmljRm9saW9zT3V0Pj4oYCR7dGhpcy51cmx9L2dlbmVyaWMtZm9saW9zYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIFBPU1QgcmVxdWVzdCB0byBjcmVhdGUgb3IgdXBkYXRlIGEgZ2VuZXJpYyBmb2xpby5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7R2VuZXJpY0ZvbGlvSW59IGJvZHkgLSBUaGUgcGF5bG9hZCBjb250YWluaW5nIHRoZSBkZXRhaWxzIG9mIHRoZSBnZW5lcmljIGZvbGlvIHRvIGJlIGNyZWF0ZWQgb3IgdXBkYXRlZC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEdlbmVyaWNGb2xpb091dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgcmVzcG9uc2UgZGF0YSBvZiB0aGUgY3JlYXRlZCBvciB1cGRhdGVkIGdlbmVyaWMgZm9saW8uXHJcbiAgICovXHJcbiAgcG9zdEdlbmVyaWNGb2xpbyAoYm9keTogR2VuZXJpY0ZvbGlvSW4pOiBPYnNlcnZhYmxlPEdlbmVyaWNGb2xpb091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8R2VuZXJpY0ZvbGlvT3V0Pj4oYCR7dGhpcy51cmx9L2dlbmVyaWMtZm9saW9zYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGEgZ2VuZXJpYyBmb2xpbyB3aXRoIHRoZSBzcGVjaWZpZWQgSUQgdXNpbmcgdGhlIHByb3ZpZGVkIGRhdGEuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGdlbmVyaWMgZm9saW8gdG8gdXBkYXRlLlxyXG4gICAqIEBwYXJhbSB7R2VuZXJpY0ZvbGlvSW59IGJvZHkgLSBUaGUgZGF0YSB0byB1cGRhdGUgdGhlIGdlbmVyaWMgZm9saW8gd2l0aC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEdlbmVyaWNGb2xpb091dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgdXBkYXRlZCBnZW5lcmljIGZvbGlvLlxyXG4gICAqL1xyXG4gIHB1dEdlbmVyaWNGb2xpbyAoaWQ6IG51bWJlciwgYm9keTogR2VuZXJpY0ZvbGlvSW4pOiBPYnNlcnZhYmxlPEdlbmVyaWNGb2xpb091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxHZW5lcmljRm9saW9PdXQ+PihgJHt0aGlzLnVybH0vZ2VuZXJpYy1mb2xpb3MvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmRzIGEgUFVUIHJlcXVlc3QgdG8gdXBkYXRlIGEgR2VuZXJpYyBGb2xpbyByZXNvdXJjZSB3aXRoIHRoZSBzcGVjaWZpZWQgSUQgYW5kIGJvZHkgZGF0YSwgYW5kIHJldHVybnMgdGhlIHVwZGF0ZWQgcmVzb3VyY2UuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIEdlbmVyaWMgRm9saW8gdG8gYmUgdXBkYXRlZC5cclxuICAgKiBAcGFyYW0ge1BhcnRpYWw8R2VuZXJpY0ZvbGlvSW4+fSBib2R5IC0gVGhlIHBhcnRpYWwgZGF0YSByZXByZXNlbnRpbmcgdGhlIGNoYW5nZXMgdG8gYmUgYXBwbGllZCB0byB0aGUgR2VuZXJpYyBGb2xpby5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEdlbmVyaWNGb2xpb091dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgdXBkYXRlZCBHZW5lcmljIEZvbGlvIHJlc291cmNlLlxyXG4gICAqL1xyXG4gIHBhdGhHZW5lcmljRm9saW8gKGlkOiBudW1iZXIsIGJvZHk6IFBhcnRpYWw8R2VuZXJpY0ZvbGlvSW4+KTogT2JzZXJ2YWJsZTxHZW5lcmljRm9saW9PdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8R2VuZXJpY0ZvbGlvT3V0Pj4oYCR7dGhpcy51cmx9L2dlbmVyaWMtZm9saW9zLyR7aWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIFBPU1QgcmVxdWVzdCB0byBjcmVhdGUgYSBuZXcgcHJvZHVjdC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UHJvZHVjdElufSBib2R5IC0gVGhlIHByb2R1Y3QgZGF0YSB0byBiZSBzZW50IGluIHRoZSByZXF1ZXN0IGJvZHkuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxQcm9kdWN0T3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgY3JlYXRlZCBwcm9kdWN0IGRhdGEuXHJcbiAgICovXHJcbiAgcG9zdFByb2R1Y3QgKGJvZHk6IFByb2R1Y3RJbik6IE9ic2VydmFibGU8UHJvZHVjdE91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8UHJvZHVjdE91dD4+KGAke3RoaXMudXJsfS9wcm9kdWN0c2AsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyBhbiBleGlzdGluZyBwcm9kdWN0IHdpdGggdGhlIGdpdmVuIElEIHVzaW5nIHRoZSBwcm92aWRlZCBkYXRhLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBwcm9kdWN0IHRvIHVwZGF0ZS5cclxuICAgKiBAcGFyYW0ge1Byb2R1Y3RJbn0gYm9keSAtIFRoZSBwcm9kdWN0IGRhdGEgdG8gdXBkYXRlLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8UHJvZHVjdE91dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgdXBkYXRlZCBwcm9kdWN0IGRhdGEuXHJcbiAgICovXHJcbiAgcHV0UHJvZHVjdCAoaWQ6IG51bWJlciwgYm9keTogUHJvZHVjdEluKTogT2JzZXJ2YWJsZTxQcm9kdWN0T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPFByb2R1Y3RPdXQ+PihgJHt0aGlzLnVybH0vcHJvZHVjdHMvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBhIGxpc3Qgb2Ygc2hpcG1lbnQgaW5jb21lIHR5cGVzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIHRoZSBzaGlwbWVudCBpbmNvbWUgdHlwZXMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxTaGlwbWVudEluY29tZVR5cGVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBzaGlwbWVudCBpbmNvbWUgdHlwZXMgZGF0YS5cclxuICAgKi9cclxuICBnZXRTaGlwbWVudEluY29tZVR5cGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxTaGlwbWVudEluY29tZVR5cGVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFNoaXBtZW50SW5jb21lVHlwZXNPdXQ+PihgJHt0aGlzLnVybH0vc2hpcG1lbnQtaW5jb21lLXR5cGVzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIFBPU1QgcmVxdWVzdCB0byBjcmVhdGUgYSBuZXcgc2hpcG1lbnQgaW5jb21lIHR5cGUuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1NoaXBtZW50SW5jb21lVHlwZUlufSBib2R5IFRoZSBwYXlsb2FkIGNvbnRhaW5pbmcgdGhlIGRldGFpbHMgb2YgdGhlIHNoaXBtZW50IGluY29tZSB0eXBlIHRvIGJlIGNyZWF0ZWQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxTaGlwbWVudEluY29tZVR5cGVPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGNyZWF0ZWQgc2hpcG1lbnQgaW5jb21lIHR5cGUgZGF0YS5cclxuICAgKi9cclxuICBwb3N0U2hpcG1lbnRJbmNvbWVUeXBlIChib2R5OiBTaGlwbWVudEluY29tZVR5cGVJbik6IE9ic2VydmFibGU8U2hpcG1lbnRJbmNvbWVUeXBlT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxTaGlwbWVudEluY29tZVR5cGVPdXQ+PihgJHt0aGlzLnVybH0vc2hpcG1lbnQtaW5jb21lLXR5cGVzYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIHRoZSBzaGlwbWVudCBpbmNvbWUgdHlwZSB3aXRoIHRoZSBzcGVjaWZpZWQgSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgaWRlbnRpZmllciBvZiB0aGUgc2hpcG1lbnQgaW5jb21lIHR5cGUgdG8gdXBkYXRlLlxyXG4gICAqIEBwYXJhbSB7U2hpcG1lbnRJbmNvbWVUeXBlSW59IGJvZHkgLSBUaGUgZGF0YSB0byB1cGRhdGUgdGhlIHNoaXBtZW50IGluY29tZSB0eXBlIHdpdGguXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxTaGlwbWVudEluY29tZVR5cGVPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSB1cGRhdGVkIHNoaXBtZW50IGluY29tZSB0eXBlLlxyXG4gICAqL1xyXG4gIHB1dFNoaXBtZW50SW5jb21lVHlwZSAoaWQ6IG51bWJlciwgYm9keTogU2hpcG1lbnRJbmNvbWVUeXBlSW4pOiBPYnNlcnZhYmxlPFNoaXBtZW50SW5jb21lVHlwZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxTaGlwbWVudEluY29tZVR5cGVPdXQ+PihgJHt0aGlzLnVybH0vc2hpcG1lbnQtaW5jb21lLXR5cGVzLyR7aWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIHVuaXF1ZSBmb2xpb3MgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB1c2VkIHRvIGZpbHRlciBhbmQgZmV0Y2ggdW5pcXVlIGZvbGlvcy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFVuaXF1ZUZvbGlvc091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgdW5pcXVlIGZvbGlvcyBkYXRhLlxyXG4gICAqL1xyXG4gIGdldFVuaXF1ZUZvbGlvcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8VW5pcXVlRm9saW9zT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFVuaXF1ZUZvbGlvc091dD4+KGAke3RoaXMudXJsfS91bmlxdWUtZm9saW9zYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIFBPU1QgcmVxdWVzdCB0byBjcmVhdGUgYSB1bmlxdWUgZm9saW8uXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1VuaXF1ZUZvbGlvSW59IGJvZHkgLSBUaGUgZGF0YSBvYmplY3QgY29udGFpbmluZyBkZXRhaWxzIGZvciB0aGUgdW5pcXVlIGZvbGlvIHRvIGJlIGNyZWF0ZWQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxVbmlxdWVGb2xpb091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgY3JlYXRlZCB1bmlxdWUgZm9saW8gZGV0YWlscy5cclxuICAgKi9cclxuICBwb3N0VW5pcXVlRm9saW8gKGJvZHk6IFVuaXF1ZUZvbGlvSW4pOiBPYnNlcnZhYmxlPFVuaXF1ZUZvbGlvT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxVbmlxdWVGb2xpb091dD4+KGAke3RoaXMudXJsfS91bmlxdWUtZm9saW9zYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGEgdW5pcXVlIGZvbGlvIHdpdGggdGhlIGdpdmVuIGRhdGEgdXNpbmcgdGhlIHByb3ZpZGVkIElELlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIElEIG9mIHRoZSB1bmlxdWUgZm9saW8gdG8gYmUgdXBkYXRlZC5cclxuICAgKiBAcGFyYW0ge1VuaXF1ZUZvbGlvSW59IGJvZHkgLSBUaGUgcGF5bG9hZCBjb250YWluaW5nIHRoZSBkZXRhaWxzIG9mIHRoZSB1bmlxdWUgZm9saW8gdG8gdXBkYXRlLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8VW5pcXVlRm9saW9PdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHVwZGF0ZWQgdW5pcXVlIGZvbGlvLlxyXG4gICAqL1xyXG4gIHB1dFVuaXF1ZUZvbGlvIChpZDogbnVtYmVyLCBib2R5OiBVbmlxdWVGb2xpb0luKTogT2JzZXJ2YWJsZTxVbmlxdWVGb2xpb091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxVbmlxdWVGb2xpb091dD4+KGAke3RoaXMudXJsfS91bmlxdWUtZm9saW9zLyR7aWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGEgdW5pcXVlIGZvbGlvIGJ5IGl0cyBpZGVudGlmaWVyIHdpdGggdGhlIHByb3ZpZGVkIGRhdGEuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgaWRlbnRpZmllciBvZiB0aGUgdW5pcXVlIGZvbGlvIHRvIHVwZGF0ZS5cclxuICAgKiBAcGFyYW0ge1BhcnRpYWw8VW5pcXVlRm9saW9Jbj59IGJvZHkgLSBUaGUgcGFydGlhbCBkYXRhIG9mIHRoZSB1bmlxdWUgZm9saW8gdG8gdXBkYXRlLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8VW5pcXVlRm9saW9PdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSB1cGRhdGVkIHVuaXF1ZSBmb2xpbyBkYXRhLlxyXG4gICAqL1xyXG4gIHBhdGhVbmlxdWVGb2xpbyAoaWQ6IG51bWJlciwgYm9keTogUGFydGlhbDxVbmlxdWVGb2xpb0luPik6IE9ic2VydmFibGU8VW5pcXVlRm9saW9PdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8VW5pcXVlRm9saW9PdXQ+PihgJHt0aGlzLnVybH0vdW5pcXVlLWZvbGlvcy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHNoaXBtZW50IGdyb3VwcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgdGhlIHNoaXBtZW50IGdyb3Vwcy5cclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHNoaXBtZW50IGdyb3VwcyBkYXRhLlxyXG4gICAqL1xyXG4gIGdldFNoaXBtZW50R3JvdXBzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxTaGlwbWVudEdyb3Vwc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxTaGlwbWVudEdyb3Vwc091dD4+KGAke3RoaXMudXJsfS9zaGlwbWVudC1ncm91cHNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgc2hpcG1lbnQgc3RhdHVzZXMgZnJvbSB0aGUgQVBJLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciBvciBtb2RpZnkgdGhlIHJlcXVlc3QuXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBzaGlwbWVudCBzdGF0dXNlcyBvdXRwdXQuXHJcbiAgICovXHJcbiAgZ2V0U2hpcG1lbnRTdGF0dXNlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8U2hpcG1lbnRTdGF0dXNlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxTaGlwbWVudFN0YXR1c2VzT3V0Pj4oYCR7dGhpcy51cmx9L3NoaXBtZW50LXN0YXR1c2VzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIHF1ZXN0aW9ucyBmcm9tIHRoZSBjYXRhbG9ncyBBUEkuXHJcbiAgICpcclxuICAgKiBTZW5kcyBhbiBIVFRQIEdFVCByZXF1ZXN0IHRvIGAke3RoaXMudXJsfS9xdWVzdGlvbnNgIHVzaW5nIHRoZSBzdXBwbGllZCBxdWVyeSBwYXJhbWV0ZXJzXHJcbiAgICogYW5kIHJldHVybnMgdGhlIHVud3JhcHBlZCBwYXlsb2FkIChgZGF0YWApIGZyb20gdGhlIEFQSSByZXNwb25zZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBRdWVyeSBwYXJhbWV0ZXJzIHRvIGluY2x1ZGUgaW4gdGhlIHJlcXVlc3QgKGUuZy4gcGFnaW5nLCBmaWx0ZXJzLCBzb3J0aW5nKS5cclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIFF1ZXN0aW9uc091dCBwYXlsb2FkICh0aGUgYGRhdGFgIGZpZWxkIGZyb20gQXBpU3VjY2VzczxRdWVzdGlvbnNPdXQ+KS5cclxuICAgKi9cclxuICBnZXRRdWVzdGlvbnMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFF1ZXN0aW9uc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxRdWVzdGlvbnNPdXQ+PihgJHt0aGlzLnVybH0vcXVlc3Rpb25zYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZSBhIHNpbmdsZSBxdWVzdGlvbiBieSBpdHMgaWQuXHJcbiAgICpcclxuICAgKiBTZW5kcyBhbiBIVFRQIEdFVCByZXF1ZXN0IHRvIHRoZSBxdWVzdGlvbnMgZW5kcG9pbnQgYW5kIHJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzXHJcbiAgICogdGhlIFF1ZXN0aW9uT3V0IHBheWxvYWQgZXh0cmFjdGVkIGZyb20gdGhlIEFQSSBzdWNjZXNzIGVudmVsb3BlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGlkIC0gVGhlIG51bWVyaWMgaWRlbnRpZmllciBvZiB0aGUgcXVlc3Rpb24gdG8gZmV0Y2guXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXF1ZXN0ZWQgUXVlc3Rpb25PdXQuIFRoZSBPYnNlcnZhYmxlIHdpbGwgZXJyb3JcclxuICAgKiAgICAgICAgICBpZiB0aGUgSFRUUCByZXF1ZXN0IGZhaWxzIChmb3IgZXhhbXBsZSBuZXR3b3JrIGlzc3VlcyBvciBub24tMnh4IHJlc3BvbnNlcykuXHJcbiAgICovXHJcbiAgZ2V0UXVlc3Rpb24gKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFF1ZXN0aW9uT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFF1ZXN0aW9uT3V0Pj4oYCR7dGhpcy51cmx9L3F1ZXN0aW9ucy8ke2lkfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZHMgYSBQT1NUIHJlcXVlc3QgdG8gY3JlYXRlIGEgbmV3IHF1ZXN0aW9uIGFuZCByZXR1cm5zIHRoZSBjcmVhdGVkIHJlc291cmNlLlxyXG4gICAqXHJcbiAgICogVGhlIHJlcXVlc3QgcGF5bG9hZCBpcyBzZW50IGFzIGFuIG9iamVjdCB3aXRoIGEgYGJvZHlgIHByb3BlcnR5IGNvbnRhaW5pbmcgdGhlIHByb3ZpZGVkXHJcbiAgICogUXVlc3Rpb25JbiB2YWx1ZSAoaS5lLiB7IGJvZHk6IFF1ZXN0aW9uSW4gfSkuIE9uIHN1Y2Nlc3MgdGhlIEhUVFAgcmVzcG9uc2UgaXMgZXhwZWN0ZWRcclxuICAgKiB0byBmb2xsb3cgdGhlIEFwaVN1Y2Nlc3M8VD4gc2hhcGU7IHRoZSBvcGVyYXRvciBtYXBzIHRoYXQgcmVzcG9uc2UgdG8gdGhlIGlubmVyIGBkYXRhYFxyXG4gICAqIG9iamVjdCBhbmQgZW1pdHMgaXQgYXMgYSBRdWVzdGlvbk91dC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBib2R5IC0gVGhlIHF1ZXN0aW9uIHBheWxvYWQgdG8gY3JlYXRlIChRdWVzdGlvbkluKS5cclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPFF1ZXN0aW9uT3V0PiB0aGF0IGVtaXRzIHRoZSBjcmVhdGVkIHF1ZXN0aW9uIG9uIHN1Y2Nlc3MuXHJcbiAgICovXHJcbiAgcG9zdFF1ZXN0aW9uIChib2R5OiBRdWVzdGlvbkluKTogT2JzZXJ2YWJsZTxRdWVzdGlvbk91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8UXVlc3Rpb25PdXQ+PihgJHt0aGlzLnVybH0vcXVlc3Rpb25zYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGUgYSBxdWVzdGlvbiBieSBpdHMgSUQuXHJcbiAgICpcclxuICAgKiBTZW5kcyBhbiBIVFRQIFBVVCB0byBgJHt0aGlzLnVybH0vcXVlc3Rpb25zLyR7aWR9YCB3aXRoIHRoZSBwcm92aWRlZCBwYXlsb2FkLlxyXG4gICAqIFRoZSByZXF1ZXN0IGJvZHkgaXMgc2VudCBhcyBhbiBvYmplY3Qgd2l0aCBhIGBib2R5YCBwcm9wZXJ0eSBjb250YWluaW5nIHRoZVxyXG4gICAqIGBRdWVzdGlvbkluYCBkYXRhLiBUaGUgc2VydmVyIHJlc3BvbnNlIGlzIGV4cGVjdGVkIHRvIGJlIGFuIGBBcGlTdWNjZXNzPFF1ZXN0aW9uT3V0PmBcclxuICAgKiBhbmQgdGhpcyBtZXRob2QgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHVud3JhcHBlZCBgUXVlc3Rpb25PdXRgLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGlkIC0gVGhlIGlkZW50aWZpZXIgb2YgdGhlIHF1ZXN0aW9uIHRvIHVwZGF0ZS5cclxuICAgKiBAcGFyYW0gYm9keSAtIFRoZSB1cGRhdGUgcGF5bG9hZCBmb3IgdGhlIHF1ZXN0aW9uLlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgdXBkYXRlZCBgUXVlc3Rpb25PdXRgIG9uIHN1Y2Nlc3MuXHJcbiAgICovXHJcbiAgcHV0UXVlc3Rpb24gKGlkOiBudW1iZXIsIGJvZHk6IFF1ZXN0aW9uSW4pOiBPYnNlcnZhYmxlPFF1ZXN0aW9uT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPFF1ZXN0aW9uT3V0Pj4oYCR7dGhpcy51cmx9L3F1ZXN0aW9ucy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlcyBhIHF1ZXN0aW9uIGJ5IGl0cyBJRC5cclxuICAgKlxyXG4gICAqIFNlbmRzIGFuIEhUVFAgREVMRVRFIHJlcXVlc3QgdG8gdGhlIGJhY2tlbmQgZW5kcG9pbnQgYC9xdWVzdGlvbnMve2lkfWAgYW5kXHJcbiAgICogcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIEFQSSByZXNwb25zZSdzIGBkYXRhYCBwYXlsb2FkICh0eXBpY2FsbHkgYW4gZW1wdHkgb2JqZWN0KS5cclxuICAgKlxyXG4gICAqIFRoZSBpbXBsZW1lbnRhdGlvbiBtYXBzIGFuIEFwaVN1Y2Nlc3Mgd3JhcHBlciB0byBpdHMgYGRhdGFgIHByb3BlcnR5IGJlZm9yZSBlbWl0dGluZy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBudW1lcmljIGlkZW50aWZpZXIgb2YgdGhlIHF1ZXN0aW9uIHRvIGRlbGV0ZS5cclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGRlbGV0ZWQgcmVzb3VyY2UgcGF5bG9hZCAoe30gZXhwZWN0ZWQpIG9uIHN1Y2Nlc3MuXHJcbiAgICogICAgICAgICAgVGhlIE9ic2VydmFibGUgd2lsbCBlbWl0IGFuIGVycm9yIGlmIHRoZSBIVFRQIHJlcXVlc3QgZmFpbHMuXHJcbiAgICovXHJcbiAgZGVsZXRlUXVlc3Rpb24gKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPHt9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxBcGlTdWNjZXNzPHt9Pj4oYCR7dGhpcy51cmx9L3F1ZXN0aW9ucy8ke2lkfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBob2xpZGF5cyBmcm9tIHRoZSBjYXRhbG9ncyBBUEkuXHJcbiAgICpcclxuICAgKiBTZW5kcyBhbiBIVFRQIEdFVCByZXF1ZXN0IHRvIGAke3RoaXMudXJsfS9ob2xpZGF5c2AgdXNpbmcgdGhlIHN1cHBsaWVkIHF1ZXJ5IHBhcmFtZXRlcnNcclxuICAgKiBhbmQgcmV0dXJucyB0aGUgdW53cmFwcGVkIHBheWxvYWQgKGBkYXRhYCkgZnJvbSB0aGUgQVBJIHJlc3BvbnNlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHBhcmFtcyAtIFF1ZXJ5IHBhcmFtZXRlcnMgdG8gaW5jbHVkZSBpbiB0aGUgcmVxdWVzdCAoZS5nLiBwYWdpbmcsIGZpbHRlcnMsIHNvcnRpbmcpLlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgSG9saWRheXNPdXQgcGF5bG9hZCAodGhlIGBkYXRhYCBmaWVsZCBmcm9tIEFwaVN1Y2Nlc3M8SG9saWRheXNPdXQ+KS5cclxuICAgKi9cclxuICBnZXRIb2xpZGF5cyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8SG9saWRheXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8SG9saWRheXNPdXQ+PihgJHt0aGlzLnVybH0vaG9saWRheXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlIGEgc2luZ2xlIGhvbGlkYXkgYnkgaXRzIGlkLlxyXG4gICAqXHJcbiAgICogU2VuZHMgYW4gSFRUUCBHRVQgcmVxdWVzdCB0byB0aGUgaG9saWRheXMgZW5kcG9pbnQgYW5kIHJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzXHJcbiAgICogdGhlIEhvbGlkYXlPdXQgcGF5bG9hZCBleHRyYWN0ZWQgZnJvbSB0aGUgQVBJIHN1Y2Nlc3MgZW52ZWxvcGUuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaWQgLSBUaGUgbnVtZXJpYyBpZGVudGlmaWVyIG9mIHRoZSBob2xpZGF5IHRvIGZldGNoLlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVxdWVzdGVkIEhvbGlkYXlPdXQuIFRoZSBPYnNlcnZhYmxlIHdpbGwgZXJyb3JcclxuICAgKiAgICAgICAgICBpZiB0aGUgSFRUUCByZXF1ZXN0IGZhaWxzIChmb3IgZXhhbXBsZSBuZXR3b3JrIGlzc3VlcyBvciBub24tMnh4IHJlc3BvbnNlcykuXHJcbiAgICovXHJcbiAgZ2V0SG9saWRheSAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8SG9saWRheU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxIb2xpZGF5T3V0Pj4oYCR7dGhpcy51cmx9L2hvbGlkYXlzLyR7aWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIFBPU1QgcmVxdWVzdCB0byBjcmVhdGUgYSBuZXcgaG9saWRheSBhbmQgcmV0dXJucyB0aGUgY3JlYXRlZCByZXNvdXJjZS5cclxuICAgKlxyXG4gICAqIFRoZSByZXF1ZXN0IHBheWxvYWQgaXMgc2VudCBhcyBhbiBvYmplY3Qgd2l0aCBhIGBib2R5YCBwcm9wZXJ0eSBjb250YWluaW5nIHRoZSBwcm92aWRlZFxyXG4gICAqIEhvbGlkYXlJbiB2YWx1ZSAoaS5lLiB7IGJvZHk6IEhvbGlkYXlJbiB9KS4gT24gc3VjY2VzcyB0aGUgSFRUUCByZXNwb25zZSBpcyBleHBlY3RlZFxyXG4gICAqIHRvIGZvbGxvdyB0aGUgQXBpU3VjY2VzczxUPiBzaGFwZTsgdGhlIG9wZXJhdG9yIG1hcHMgdGhhdCByZXNwb25zZSB0byB0aGUgaW5uZXIgYGRhdGFgXHJcbiAgICogb2JqZWN0IGFuZCBlbWl0cyBpdCBhcyBhIEhvbGlkYXlPdXQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gYm9keSAtIFRoZSBob2xpZGF5IHBheWxvYWQgdG8gY3JlYXRlIChIb2xpZGF5SW4pLlxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8SG9saWRheU91dD4gdGhhdCBlbWl0cyB0aGUgY3JlYXRlZCBob2xpZGF5IG9uIHN1Y2Nlc3MuXHJcbiAgICovXHJcbiAgcG9zdEhvbGlkYXkgKGJvZHk6IEhvbGlkYXlJbik6IE9ic2VydmFibGU8SG9saWRheU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8SG9saWRheU91dD4+KGAke3RoaXMudXJsfS9ob2xpZGF5c2AsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlIGEgaG9saWRheSBieSBpdHMgSUQuXHJcbiAgICpcclxuICAgKiBTZW5kcyBhbiBIVFRQIFBVVCB0byBgJHt0aGlzLnVybH0vaG9saWRheXMvJHtpZH1gIHdpdGggdGhlIHByb3ZpZGVkIHBheWxvYWQuXHJcbiAgICogVGhlIHJlcXVlc3QgYm9keSBpcyBzZW50IGFzIGFuIG9iamVjdCB3aXRoIGEgYGJvZHlgIHByb3BlcnR5IGNvbnRhaW5pbmcgdGhlXHJcbiAgICogYEhvbGlkYXlJbmAgZGF0YS4gVGhlIHNlcnZlciByZXNwb25zZSBpcyBleHBlY3RlZCB0byBiZSBhbiBgQXBpU3VjY2VzczxIb2xpZGF5T3V0PmBcclxuICAgKiBhbmQgdGhpcyBtZXRob2QgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHVud3JhcHBlZCBgSG9saWRheU91dGAuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaWQgLSBUaGUgaWRlbnRpZmllciBvZiB0aGUgaG9saWRheSB0byB1cGRhdGUuXHJcbiAgICogQHBhcmFtIGJvZHkgLSBUaGUgdXBkYXRlIHBheWxvYWQgZm9yIHRoZSBob2xpZGF5LlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgdXBkYXRlZCBgSG9saWRheU91dGAgb24gc3VjY2Vzcy5cclxuICAgKi9cclxuICBwdXRIb2xpZGF5IChpZDogbnVtYmVyLCBib2R5OiBIb2xpZGF5SW4pOiBPYnNlcnZhYmxlPEhvbGlkYXlPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8SG9saWRheU91dD4+KGAke3RoaXMudXJsfS9ob2xpZGF5cy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlcyBhIHF1ZXN0aW9uIGJ5IGl0cyBJRC5cclxuICAgKlxyXG4gICAqIFNlbmRzIGFuIEhUVFAgREVMRVRFIHJlcXVlc3QgdG8gdGhlIGJhY2tlbmQgZW5kcG9pbnQgYC9xdWVzdGlvbnMve2lkfWAgYW5kXHJcbiAgICogcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIEFQSSByZXNwb25zZSdzIGBkYXRhYCBwYXlsb2FkICh0eXBpY2FsbHkgYW4gZW1wdHkgb2JqZWN0KS5cclxuICAgKlxyXG4gICAqIFRoZSBpbXBsZW1lbnRhdGlvbiBtYXBzIGFuIEFwaVN1Y2Nlc3Mgd3JhcHBlciB0byBpdHMgYGRhdGFgIHByb3BlcnR5IGJlZm9yZSBlbWl0dGluZy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBudW1lcmljIGlkZW50aWZpZXIgb2YgdGhlIHF1ZXN0aW9uIHRvIGRlbGV0ZS5cclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGRlbGV0ZWQgcmVzb3VyY2UgcGF5bG9hZCAoe30gZXhwZWN0ZWQpIG9uIHN1Y2Nlc3MuXHJcbiAgICogICAgICAgICAgVGhlIE9ic2VydmFibGUgd2lsbCBlbWl0IGFuIGVycm9yIGlmIHRoZSBIVFRQIHJlcXVlc3QgZmFpbHMuXHJcbiAgICovXHJcbiAgZGVsZXRlSG9saWRheSAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8e30+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPEFwaVN1Y2Nlc3M8e30+PihgJHt0aGlzLnVybH0vaG9saWRheXMvJHtpZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgYnVzaW5lc3MgcGFydHkgdHJhZGVyIHR5cGVzXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gUXVlcnkgcGFyYW1ldGVycyBmb3IgZmlsdGVyaW5nIGFuZCBwYWdpbmF0aW9uIChvcHRpb25hbClcclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxCdXNpbmVzc1BhcnR5VHJhZGVyVHlwZXNPdXQ+fSBPYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIGxpc3Qgb2YgdHJhZGVyIHR5cGVzXHJcbiAgICovXHJcbiAgZ2V0QnVzaW5lc3NQYXJ0eVRyYWRlclR5cGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxCdXNpbmVzc1BhcnR5VHJhZGVyVHlwZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8QnVzaW5lc3NQYXJ0eVRyYWRlclR5cGVzT3V0Pj4oYCR7dGhpcy51cmx9L2J1c2luZXNzLXBhcnR5LXRyYWRlci10eXBlc2AsXHJcbiAgICAgIHsgcGFyYW1zIH1cclxuICAgICkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcbn1cclxuIl19