barsa-novin-ray-core 2.2.73 → 2.2.75

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 (233) hide show
  1. package/fesm2022/barsa-novin-ray-core.mjs +630 -651
  2. package/fesm2022/barsa-novin-ray-core.mjs.map +1 -1
  3. package/lib/abstract-classes/field-base.d.ts +1 -1
  4. package/lib/abstract-classes/number-base.d.ts +1 -1
  5. package/lib/date-services/date-hijri.service.d.ts +1 -1
  6. package/lib/date-services/date.service.d.ts +1 -1
  7. package/lib/directives/base.directive.d.ts +1 -1
  8. package/lib/dynamic-component/base-view-item-props.d.ts +4 -4
  9. package/lib/resolvers/login-settings.resolver.d.ts +1 -1
  10. package/lib/resolvers/tile-group-breadcrumb.resolver.d.ts +1 -1
  11. package/lib/services/notification.service.d.ts +2 -2
  12. package/lib/services/portal.service.d.ts +1 -1
  13. package/package.json +3 -5
  14. package/esm2022/barsa-novin-ray-core.mjs +0 -5
  15. package/esm2022/lib/abstract-classes/application-base.mjs +0 -25
  16. package/esm2022/lib/abstract-classes/barsa-api.mjs +0 -43
  17. package/esm2022/lib/abstract-classes/base-column-props.mjs +0 -89
  18. package/esm2022/lib/abstract-classes/base.component.mjs +0 -60
  19. package/esm2022/lib/abstract-classes/field-base.mjs +0 -244
  20. package/esm2022/lib/abstract-classes/files-validation-helper.mjs +0 -75
  21. package/esm2022/lib/abstract-classes/form-base.mjs +0 -164
  22. package/esm2022/lib/abstract-classes/form-field-report-page.component.mjs +0 -54
  23. package/esm2022/lib/abstract-classes/form-page-base.mjs +0 -132
  24. package/esm2022/lib/abstract-classes/form-page.component.mjs +0 -53
  25. package/esm2022/lib/abstract-classes/form-props.base.mjs +0 -100
  26. package/esm2022/lib/abstract-classes/form-toolbar-base.mjs +0 -57
  27. package/esm2022/lib/abstract-classes/index.mjs +0 -25
  28. package/esm2022/lib/abstract-classes/layout-item-base.mjs +0 -49
  29. package/esm2022/lib/abstract-classes/layout-panel-base.mjs +0 -68
  30. package/esm2022/lib/abstract-classes/linear-list-helper.mjs +0 -135
  31. package/esm2022/lib/abstract-classes/models.mjs +0 -184
  32. package/esm2022/lib/abstract-classes/module-with-dynamic-components.mjs +0 -2
  33. package/esm2022/lib/abstract-classes/number-base.mjs +0 -201
  34. package/esm2022/lib/abstract-classes/page-base.mjs +0 -98
  35. package/esm2022/lib/abstract-classes/page-with-form-handler-base.mjs +0 -41
  36. package/esm2022/lib/abstract-classes/report-base.mjs +0 -266
  37. package/esm2022/lib/abstract-classes/report-item-base.mjs +0 -54
  38. package/esm2022/lib/abstract-classes/report-view-base.component.mjs +0 -450
  39. package/esm2022/lib/abstract-classes/system-base.mjs +0 -25
  40. package/esm2022/lib/abstract-classes/tile-props.mjs +0 -49
  41. package/esm2022/lib/auth-guard.mjs +0 -48
  42. package/esm2022/lib/barsa-novin-ray-core-routing.module.mjs +0 -311
  43. package/esm2022/lib/barsa-novin-ray-core.module.mjs +0 -522
  44. package/esm2022/lib/base-ulv-setting.component.mjs +0 -46
  45. package/esm2022/lib/base.module.mjs +0 -28
  46. package/esm2022/lib/button-loading/button-loading.component.mjs +0 -20
  47. package/esm2022/lib/constants.mjs +0 -963
  48. package/esm2022/lib/container.component.mjs +0 -100
  49. package/esm2022/lib/controllers/base-controller.mjs +0 -9
  50. package/esm2022/lib/controllers/base-view.mjs +0 -24
  51. package/esm2022/lib/controllers/index.mjs +0 -4
  52. package/esm2022/lib/controllers/models.mjs +0 -2
  53. package/esm2022/lib/custom-route-reuse-strategy.mjs +0 -32
  54. package/esm2022/lib/date-services/date-hijri.service.mjs +0 -146
  55. package/esm2022/lib/date-services/date-info.mjs +0 -2
  56. package/esm2022/lib/date-services/date-miladi.service.mjs +0 -124
  57. package/esm2022/lib/date-services/date-shamsi.service.mjs +0 -148
  58. package/esm2022/lib/date-services/date.service.mjs +0 -149
  59. package/esm2022/lib/date-services/index.mjs +0 -6
  60. package/esm2022/lib/device.mjs +0 -663
  61. package/esm2022/lib/directives/absolute-div-body.directive.mjs +0 -46
  62. package/esm2022/lib/directives/anchor-scroll.directive.mjs +0 -25
  63. package/esm2022/lib/directives/attr-rtl.directive.mjs +0 -36
  64. package/esm2022/lib/directives/base.directive.mjs +0 -55
  65. package/esm2022/lib/directives/body-click.directive.mjs +0 -36
  66. package/esm2022/lib/directives/column-resizer.directive.mjs +0 -40
  67. package/esm2022/lib/directives/copy.directive.mjs +0 -60
  68. package/esm2022/lib/directives/count-down.directive.mjs +0 -109
  69. package/esm2022/lib/directives/dynamic-command.directive.mjs +0 -43
  70. package/esm2022/lib/directives/dynamic-style.directive.mjs +0 -66
  71. package/esm2022/lib/directives/ellapsis-text.directive.mjs +0 -70
  72. package/esm2022/lib/directives/ellipsify.directive.mjs +0 -73
  73. package/esm2022/lib/directives/field-binding.directive.mjs +0 -18
  74. package/esm2022/lib/directives/fill-empty-space.mjs +0 -89
  75. package/esm2022/lib/directives/form-close.directive.mjs +0 -33
  76. package/esm2022/lib/directives/img-lazy.directive.mjs +0 -82
  77. package/esm2022/lib/directives/index.mjs +0 -42
  78. package/esm2022/lib/directives/intersection-observer.directive.mjs +0 -52
  79. package/esm2022/lib/directives/items-renderer.directive.mjs +0 -60
  80. package/esm2022/lib/directives/label-mandatory.directive.mjs +0 -49
  81. package/esm2022/lib/directives/load-external-files.directive.mjs +0 -38
  82. package/esm2022/lib/directives/mobile.directive.mjs +0 -30
  83. package/esm2022/lib/directives/nowraptext.directive.mjs +0 -27
  84. package/esm2022/lib/directives/numbers-only-input.directive.mjs +0 -27
  85. package/esm2022/lib/directives/placeHolder.directive.mjs +0 -16
  86. package/esm2022/lib/directives/prevent-default.directive.mjs +0 -21
  87. package/esm2022/lib/directives/print-files.directive.mjs +0 -39
  88. package/esm2022/lib/directives/render-ulv-paging.directive.mjs +0 -81
  89. package/esm2022/lib/directives/render-ulv-viewer.directive.mjs +0 -76
  90. package/esm2022/lib/directives/render-ulv.directive.mjs +0 -52
  91. package/esm2022/lib/directives/route-form-change.directive.mjs +0 -38
  92. package/esm2022/lib/directives/save-image.directive.mjs +0 -28
  93. package/esm2022/lib/directives/splide-slider.directive.mjs +0 -113
  94. package/esm2022/lib/directives/stop-propagation.directive.mjs +0 -21
  95. package/esm2022/lib/directives/table-resizer.directive.mjs +0 -236
  96. package/esm2022/lib/directives/ulv-command.directive.mjs +0 -43
  97. package/esm2022/lib/directives/until-inview.directive.mjs +0 -53
  98. package/esm2022/lib/directives/webotp.directive.mjs +0 -49
  99. package/esm2022/lib/directives/workflow-choice-command.directive.mjs +0 -61
  100. package/esm2022/lib/dynamic-component/base-dynamic.component.mjs +0 -97
  101. package/esm2022/lib/dynamic-component/base-form-toolbaritem-props.mjs +0 -53
  102. package/esm2022/lib/dynamic-component/base-item-content-props.mjs +0 -83
  103. package/esm2022/lib/dynamic-component/base-view-content-props.mjs +0 -27
  104. package/esm2022/lib/dynamic-component/base-view-item-props.mjs +0 -552
  105. package/esm2022/lib/dynamic-component/base-view-props.mjs +0 -163
  106. package/esm2022/lib/dynamic-component/dynamic-form-toolbar-item.component.mjs +0 -38
  107. package/esm2022/lib/dynamic-component/dynamic-form.component.mjs +0 -69
  108. package/esm2022/lib/dynamic-component/dynamic-item.component.mjs +0 -78
  109. package/esm2022/lib/dynamic-component/dynamic-layout.component.mjs +0 -64
  110. package/esm2022/lib/dynamic-component/index.mjs +0 -11
  111. package/esm2022/lib/empty-page/empty-page.component.mjs +0 -49
  112. package/esm2022/lib/empty-page-with-router-and-router-outlet/empty-page-with-router-and-router-outlet.component.mjs +0 -16
  113. package/esm2022/lib/field-ui/field-ui.component.mjs +0 -149
  114. package/esm2022/lib/form/form.component.mjs +0 -212
  115. package/esm2022/lib/form-new/form-new.component.mjs +0 -31
  116. package/esm2022/lib/form-page-routing/barsa-sap-ui-form-page-routing.module.mjs +0 -54
  117. package/esm2022/lib/form-page-routing/barsa-sap-ui-form-page.module.mjs +0 -29
  118. package/esm2022/lib/form-page-routing/constants.mjs +0 -9
  119. package/esm2022/lib/form-page-routing/index.mjs +0 -3
  120. package/esm2022/lib/from-intersection-observer.mjs +0 -53
  121. package/esm2022/lib/global-error-handler.mjs +0 -26
  122. package/esm2022/lib/injdection-tokens.mjs +0 -8
  123. package/esm2022/lib/modal-root.component.mjs +0 -34
  124. package/esm2022/lib/not-found/not-found.component.mjs +0 -16
  125. package/esm2022/lib/not-internet/not-internet.component.mjs +0 -21
  126. package/esm2022/lib/pipes/barsa-icon-dict.pipe.mjs +0 -20
  127. package/esm2022/lib/pipes/bbb-translate.pipe.mjs +0 -36
  128. package/esm2022/lib/pipes/can-upload.pipe.mjs +0 -27
  129. package/esm2022/lib/pipes/card-media-size.pipe.mjs +0 -21
  130. package/esm2022/lib/pipes/column-custom-component.pipe.mjs +0 -41
  131. package/esm2022/lib/pipes/column-customui.pipe.mjs +0 -33
  132. package/esm2022/lib/pipes/column-icon.pipe.mjs +0 -23
  133. package/esm2022/lib/pipes/column-value.pipe.mjs +0 -35
  134. package/esm2022/lib/pipes/column-valueof-parameters.pipe.mjs +0 -34
  135. package/esm2022/lib/pipes/combo-row-img.pipe.mjs +0 -17
  136. package/esm2022/lib/pipes/context-menu.pipe.mjs +0 -41
  137. package/esm2022/lib/pipes/control-ui.pipe.mjs +0 -32
  138. package/esm2022/lib/pipes/convert-to-style.pipe.mjs +0 -33
  139. package/esm2022/lib/pipes/date-time-to-caption.pipe.mjs +0 -35
  140. package/esm2022/lib/pipes/fileinfo-count.pipe.mjs +0 -21
  141. package/esm2022/lib/pipes/filter-columns-by-details.pipe.mjs +0 -23
  142. package/esm2022/lib/pipes/filter-inline-action-list.pipe.mjs +0 -19
  143. package/esm2022/lib/pipes/filter-string.pipe.mjs +0 -45
  144. package/esm2022/lib/pipes/filter-tab.pipe.mjs +0 -20
  145. package/esm2022/lib/pipes/filter-toolbar-control.pipe.mjs +0 -17
  146. package/esm2022/lib/pipes/filter-workflow-mobile.pipe.mjs +0 -25
  147. package/esm2022/lib/pipes/filter.pipe.mjs +0 -34
  148. package/esm2022/lib/pipes/find-column-by-db-name.pipe.mjs +0 -28
  149. package/esm2022/lib/pipes/find-preview-column.pipe.mjs +0 -20
  150. package/esm2022/lib/pipes/fiori-icon.pipe.mjs +0 -43
  151. package/esm2022/lib/pipes/groupby.pipe.mjs +0 -64
  152. package/esm2022/lib/pipes/header-facet-value.pipe.mjs +0 -23
  153. package/esm2022/lib/pipes/hide-accept-cancel-buttons.pipe.mjs +0 -24
  154. package/esm2022/lib/pipes/hide-columns-inmobile.pipe.mjs +0 -23
  155. package/esm2022/lib/pipes/index.mjs +0 -55
  156. package/esm2022/lib/pipes/isimage.pipe.mjs +0 -20
  157. package/esm2022/lib/pipes/list-count.pipe.mjs +0 -18
  158. package/esm2022/lib/pipes/merge-fields-to-columns.pipe.mjs +0 -43
  159. package/esm2022/lib/pipes/mo-info-ulv-data.pipe.mjs +0 -59
  160. package/esm2022/lib/pipes/mo-info-ulv-paging.pipe.mjs +0 -17
  161. package/esm2022/lib/pipes/mo-report-value-concat.pipe.mjs +0 -36
  162. package/esm2022/lib/pipes/mo-report-value.pipe.mjs +0 -18
  163. package/esm2022/lib/pipes/mo-value.pipe.mjs +0 -19
  164. package/esm2022/lib/pipes/multiple-groupby.pipe.mjs +0 -91
  165. package/esm2022/lib/pipes/numeral.pipe.mjs +0 -44
  166. package/esm2022/lib/pipes/picture-field-source.pipe.mjs +0 -23
  167. package/esm2022/lib/pipes/remove-newline.pipe.mjs +0 -21
  168. package/esm2022/lib/pipes/replace.pipe.mjs +0 -18
  169. package/esm2022/lib/pipes/reverse.pipe.mjs +0 -23
  170. package/esm2022/lib/pipes/rownumber.pipe.mjs +0 -26
  171. package/esm2022/lib/pipes/sanitize-text.pipe.mjs +0 -21
  172. package/esm2022/lib/pipes/seperator-fix.pipe.mjs +0 -24
  173. package/esm2022/lib/pipes/sort.pipe.mjs +0 -49
  174. package/esm2022/lib/pipes/string-to-number.pipe.mjs +0 -26
  175. package/esm2022/lib/pipes/th-image-icon.pipe.mjs +0 -22
  176. package/esm2022/lib/pipes/tlbButtons.pipe.mjs +0 -60
  177. package/esm2022/lib/pipes/toolbar-settings.pipe.mjs +0 -27
  178. package/esm2022/lib/pipes/total-summary.pipe.mjs +0 -17
  179. package/esm2022/lib/pipes/tree-item-isexpanded.pipe.mjs +0 -26
  180. package/esm2022/lib/pipes/visible-value.pipe.mjs +0 -19
  181. package/esm2022/lib/portal-page/portal-page.component.mjs +0 -24
  182. package/esm2022/lib/portal-page/portal-sidebar.component.mjs +0 -37
  183. package/esm2022/lib/redirect-home-guard.mjs +0 -51
  184. package/esm2022/lib/redirect-report-navigator-command/redirect-report-navigator-command.component.mjs +0 -12
  185. package/esm2022/lib/report-container/report-container.component.mjs +0 -63
  186. package/esm2022/lib/resizable-module/resizable.component.mjs +0 -31
  187. package/esm2022/lib/resizable-module/resizable.directive.mjs +0 -42
  188. package/esm2022/lib/resizable-module/resizable.module.mjs +0 -17
  189. package/esm2022/lib/resolvers/index.mjs +0 -7
  190. package/esm2022/lib/resolvers/login-settings.resolver.mjs +0 -18
  191. package/esm2022/lib/resolvers/portal-dynamic-page.resolver.mjs +0 -49
  192. package/esm2022/lib/resolvers/portal-form-page.resolver.mjs +0 -18
  193. package/esm2022/lib/resolvers/portal-page.resolver.mjs +0 -30
  194. package/esm2022/lib/resolvers/portal-report-page.resolver.mjs +0 -37
  195. package/esm2022/lib/resolvers/tile-group-breadcrumb.resolver.mjs +0 -30
  196. package/esm2022/lib/root-page/root-page.component.mjs +0 -21
  197. package/esm2022/lib/root-portal/root-portal.component.mjs +0 -236
  198. package/esm2022/lib/server-connection-error/server-connection-error.component.mjs +0 -19
  199. package/esm2022/lib/services/api.service.mjs +0 -63
  200. package/esm2022/lib/services/audio-recording.service.mjs +0 -95
  201. package/esm2022/lib/services/barsa-dialog.service.mjs +0 -80
  202. package/esm2022/lib/services/barsa-storage.service.mjs +0 -78
  203. package/esm2022/lib/services/breadcrumb.service.mjs +0 -64
  204. package/esm2022/lib/services/column.service.mjs +0 -20
  205. package/esm2022/lib/services/container.service.mjs +0 -69
  206. package/esm2022/lib/services/dynamic-component.service.mjs +0 -55
  207. package/esm2022/lib/services/form-panel.service.mjs +0 -394
  208. package/esm2022/lib/services/form.service.mjs +0 -14
  209. package/esm2022/lib/services/groupby.service.mjs +0 -21
  210. package/esm2022/lib/services/horizontal-layout.service.mjs +0 -16
  211. package/esm2022/lib/services/index.mjs +0 -32
  212. package/esm2022/lib/services/indexeddb.service.mjs +0 -34
  213. package/esm2022/lib/services/layout-main-content.service.mjs +0 -19
  214. package/esm2022/lib/services/layout.service.mjs +0 -42
  215. package/esm2022/lib/services/local-storage.service.mjs +0 -32
  216. package/esm2022/lib/services/log.service.mjs +0 -50
  217. package/esm2022/lib/services/network-status.service.mjs +0 -15
  218. package/esm2022/lib/services/notification-popup.service.mjs +0 -2
  219. package/esm2022/lib/services/notification-sw.service.mjs +0 -180
  220. package/esm2022/lib/services/notification.service.mjs +0 -189
  221. package/esm2022/lib/services/portal.service.mjs +0 -950
  222. package/esm2022/lib/services/prompt-update.service.mjs +0 -56
  223. package/esm2022/lib/services/routing.service.mjs +0 -60
  224. package/esm2022/lib/services/save-scoll-position.service.mjs +0 -29
  225. package/esm2022/lib/services/service-worker-communication.service.mjs +0 -120
  226. package/esm2022/lib/services/tabpage.service.mjs +0 -13
  227. package/esm2022/lib/services/toast.service.mjs +0 -2
  228. package/esm2022/lib/services/ui.service.mjs +0 -23
  229. package/esm2022/lib/services/ulvmain.service.mjs +0 -824
  230. package/esm2022/lib/services/upload.service.mjs +0 -166
  231. package/esm2022/lib/services/video-recording.service.mjs +0 -115
  232. package/esm2022/lib/unlimit-session/unlimit-session.component.mjs +0 -40
  233. package/esm2022/public-api.mjs +0 -42
@@ -1,48 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { map, tap, withLatestFrom } from 'rxjs/operators';
3
- import { BarsaApi } from './abstract-classes/barsa-api';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/router";
6
- import * as i2 from "./services/portal.service";
7
- export class AuthGuard {
8
- constructor(router, portalService) {
9
- this.router = router;
10
- this.portalService = portalService;
11
- }
12
- canActivate(activatedRouteSnapshot
13
- // state: RouterStateSnapshot
14
- ) {
15
- const url = decodeURI(activatedRouteSnapshot._routerState.url);
16
- let url2 = url.split('/').find((c) => c && !c.startsWith('(')) ?? '';
17
- url2 = '/' + url2;
18
- return this.portalService.getPageData(url2, false).pipe(map((pageData) => {
19
- const pageNeedAuthorize = pageData?.HasAuthorize || pageData == null ? true : false;
20
- const hasAuthorized = (!BarsaApi.LoginFormData.IsAnonymous && BarsaApi.LoginFormData.IsUserLoggedIn) ||
21
- !pageNeedAuthorize;
22
- return { hasAuthorized, pageData };
23
- }), withLatestFrom(this.portalService.loginRoute$), tap(([pageInfo, loginRoute]) => {
24
- if (!pageInfo.hasAuthorized) {
25
- this.router.navigate([loginRoute]);
26
- }
27
- }), tap(([pageInfo, _]) => {
28
- if (pageInfo.hasAuthorized) {
29
- const needChangePassword = BarsaApi.Ul.ApplicationCtrlr.AdvancedSecurityLogin?.NeedChangePassword;
30
- const changepasswordRoute = pageInfo.pageData?.ChildPageList.MoDataList.find((c) => c.IsChangePasswordRoute || c.IsChangePasswordRoute === 'True')?.Route || 'changepassword';
31
- const path = activatedRouteSnapshot.routeConfig?.path;
32
- if (changepasswordRoute &&
33
- path &&
34
- path?.indexOf(changepasswordRoute.replace('/', '')) < 0 &&
35
- needChangePassword &&
36
- !BarsaApi.LoginFormData.IsAnonymous) {
37
- this.router.navigate([changepasswordRoute]);
38
- }
39
- }
40
- }), map(([pageInfo]) => pageInfo.hasAuthorized));
41
- }
42
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthGuard, deps: [{ token: i1.Router }, { token: i2.PortalService }], target: i0.ɵɵFactoryTarget.Injectable }); }
43
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthGuard }); }
44
- }
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthGuard, decorators: [{
46
- type: Injectable
47
- }], ctorParameters: () => [{ type: i1.Router }, { type: i2.PortalService }] });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLW5vdmluLXJheS1jb3JlL3NyYy9saWIvYXV0aC1ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7OztBQUl4RCxNQUFNLE9BQU8sU0FBUztJQUNsQixZQUFvQixNQUFjLEVBQVksYUFBNEI7UUFBdEQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFZLGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBQUcsQ0FBQztJQUU5RSxXQUFXLENBQ1Asc0JBQThDO0lBRTlDLGdDQUFnQzs7UUFFaEMsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFFLHNCQUE4QixDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4RSxJQUFJLElBQUksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyRSxJQUFJLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQztRQUNsQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQ25ELEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2IsTUFBTSxpQkFBaUIsR0FBRyxRQUFRLEVBQUUsWUFBWSxJQUFJLFFBQVEsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ3BGLE1BQU0sYUFBYSxHQUNmLENBQUMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFdBQVcsSUFBSSxRQUFRLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQztnQkFDOUUsQ0FBQyxpQkFBaUIsQ0FBQztZQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxFQUNGLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxFQUM5QyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFO1lBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUN2QyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNsQixJQUFJLFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDekIsTUFBTSxrQkFBa0IsR0FBRyxRQUFRLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixFQUFFLGtCQUFrQixDQUFDO2dCQUNsRyxNQUFNLG1CQUFtQixHQUNyQixRQUFRLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUM1QyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixJQUFJLENBQUMsQ0FBQyxxQkFBcUIsS0FBSyxNQUFNLENBQ3ZFLEVBQUUsS0FBSyxJQUFJLGdCQUFnQixDQUFDO2dCQUNqQyxNQUFNLElBQUksR0FBRyxzQkFBc0IsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDO2dCQUN0RCxJQUNJLG1CQUFtQjtvQkFDbkIsSUFBSTtvQkFDSixJQUFJLEVBQUUsT0FBTyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDO29CQUN2RCxrQkFBa0I7b0JBQ2xCLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQ3JDLENBQUM7b0JBQ0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hELENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUM5QyxDQUFDO0lBQ04sQ0FBQzsrR0E5Q1EsU0FBUzttSEFBVCxTQUFTOzs0RkFBVCxTQUFTO2tCQURyQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBDYW5BY3RpdmF0ZSwgUm91dGVyLCBVcmxUcmVlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIHRhcCwgd2l0aExhdGVzdEZyb20gfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBCYXJzYUFwaSB9IGZyb20gJy4vYWJzdHJhY3QtY2xhc3Nlcy9iYXJzYS1hcGknO1xyXG5pbXBvcnQgeyBQb3J0YWxTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9wb3J0YWwuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBdXRoR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSB7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcm90ZWN0ZWQgcG9ydGFsU2VydmljZTogUG9ydGFsU2VydmljZSkge31cclxuXHJcbiAgICBjYW5BY3RpdmF0ZShcclxuICAgICAgICBhY3RpdmF0ZWRSb3V0ZVNuYXBzaG90OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90XHJcblxyXG4gICAgICAgIC8vICAgIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90XHJcbiAgICApOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCBVcmxUcmVlPiB8IFByb21pc2U8Ym9vbGVhbiB8IFVybFRyZWU+IHwgYm9vbGVhbiB8IFVybFRyZWUge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IGRlY29kZVVSSSgoYWN0aXZhdGVkUm91dGVTbmFwc2hvdCBhcyBhbnkpLl9yb3V0ZXJTdGF0ZS51cmwpO1xyXG4gICAgICAgIGxldCB1cmwyID0gdXJsLnNwbGl0KCcvJykuZmluZCgoYykgPT4gYyAmJiAhYy5zdGFydHNXaXRoKCcoJykpID8/ICcnO1xyXG4gICAgICAgIHVybDIgPSAnLycgKyB1cmwyO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBvcnRhbFNlcnZpY2UuZ2V0UGFnZURhdGEodXJsMiwgZmFsc2UpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgocGFnZURhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHBhZ2VOZWVkQXV0aG9yaXplID0gcGFnZURhdGE/Lkhhc0F1dGhvcml6ZSB8fCBwYWdlRGF0YSA9PSBudWxsID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaGFzQXV0aG9yaXplZDogYm9vbGVhbiA9XHJcbiAgICAgICAgICAgICAgICAgICAgKCFCYXJzYUFwaS5Mb2dpbkZvcm1EYXRhLklzQW5vbnltb3VzICYmIEJhcnNhQXBpLkxvZ2luRm9ybURhdGEuSXNVc2VyTG9nZ2VkSW4pIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgIXBhZ2VOZWVkQXV0aG9yaXplO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaGFzQXV0aG9yaXplZCwgcGFnZURhdGEgfTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMucG9ydGFsU2VydmljZS5sb2dpblJvdXRlJCksXHJcbiAgICAgICAgICAgIHRhcCgoW3BhZ2VJbmZvLCBsb2dpblJvdXRlXSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFwYWdlSW5mby5oYXNBdXRob3JpemVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2xvZ2luUm91dGVdKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIHRhcCgoW3BhZ2VJbmZvLCBfXSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHBhZ2VJbmZvLmhhc0F1dGhvcml6ZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZWVkQ2hhbmdlUGFzc3dvcmQgPSBCYXJzYUFwaS5VbC5BcHBsaWNhdGlvbkN0cmxyLkFkdmFuY2VkU2VjdXJpdHlMb2dpbj8uTmVlZENoYW5nZVBhc3N3b3JkO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYW5nZXBhc3N3b3JkUm91dGUgPVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlSW5mby5wYWdlRGF0YT8uQ2hpbGRQYWdlTGlzdC5Nb0RhdGFMaXN0LmZpbmQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYykgPT4gYy5Jc0NoYW5nZVBhc3N3b3JkUm91dGUgfHwgYy5Jc0NoYW5nZVBhc3N3b3JkUm91dGUgPT09ICdUcnVlJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICApPy5Sb3V0ZSB8fCAnY2hhbmdlcGFzc3dvcmQnO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhdGggPSBhY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LnJvdXRlQ29uZmlnPy5wYXRoO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlcGFzc3dvcmRSb3V0ZSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg/LmluZGV4T2YoY2hhbmdlcGFzc3dvcmRSb3V0ZS5yZXBsYWNlKCcvJywgJycpKSA8IDAgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmVlZENoYW5nZVBhc3N3b3JkICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICFCYXJzYUFwaS5Mb2dpbkZvcm1EYXRhLklzQW5vbnltb3VzXHJcbiAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtjaGFuZ2VwYXNzd29yZFJvdXRlXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbWFwKChbcGFnZUluZm9dKSA9PiBwYWdlSW5mby5oYXNBdXRob3JpemVkKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -1,311 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { RouterModule } from '@angular/router';
3
- import { AuthGuard } from './auth-guard';
4
- import { EmptyPageComponent } from './empty-page/empty-page.component';
5
- import { formRoutes } from './form-page-routing';
6
- import { PortalPageComponent } from './portal-page/portal-page.component';
7
- import { RedirectHomeGuard } from './redirect-home-guard';
8
- import { PortalPageResolver, PortalReportPageResolver } from './resolvers';
9
- import { RootPageComponent } from './root-page/root-page.component';
10
- import { TileGroupBreadcrumResolver } from './resolvers/tile-group-breadcrumb.resolver';
11
- import { NoInternetComponent } from './not-internet/not-internet.component';
12
- import { ServerConnectionErrorComponent } from './server-connection-error/server-connection-error.component';
13
- import * as i0 from "@angular/core";
14
- import * as i1 from "@angular/router";
15
- const routesDefault = [
16
- {
17
- path: 'login',
18
- component: EmptyPageComponent,
19
- data: { pageData: { Route: '/login', Module: 'BarsaLoginPage' } },
20
- resolve: { pageData: PortalPageResolver },
21
- canActivate: [RedirectHomeGuard],
22
- children: [formRoutes(true)]
23
- },
24
- {
25
- path: 'resetpassword',
26
- component: EmptyPageComponent,
27
- data: {
28
- pageData: { Route: '/resetpassword', Module: 'BarsaResetPasswordPage' }
29
- },
30
- resolve: { pageData: PortalPageResolver },
31
- canActivate: [RedirectHomeGuard],
32
- children: [formRoutes(true)]
33
- },
34
- {
35
- path: 'changepassword',
36
- component: EmptyPageComponent,
37
- data: {
38
- pageData: { Route: '/changepassword', Module: 'BarsaChangePasswordPage' }
39
- },
40
- resolve: { pageData: PortalPageResolver },
41
- canActivate: [AuthGuard],
42
- children: [formRoutes(true)]
43
- },
44
- {
45
- path: 'recoverpassword',
46
- component: EmptyPageComponent,
47
- data: {
48
- pageData: {
49
- Route: '/recoverpassword',
50
- Module: 'BarsaRecoverPasswordPage'
51
- }
52
- },
53
- resolve: { pageData: PortalPageResolver },
54
- canActivate: [RedirectHomeGuard],
55
- children: [formRoutes(true)]
56
- },
57
- {
58
- path: 'server-connection-error',
59
- component: ServerConnectionErrorComponent
60
- },
61
- {
62
- path: 'no-internet',
63
- component: NoInternetComponent
64
- },
65
- {
66
- path: 'signup',
67
- component: EmptyPageComponent,
68
- data: {
69
- pageData: { Route: '/signup', Module: 'BarsaUserRegisterPage' }
70
- },
71
- resolve: { pageData: PortalPageResolver },
72
- canActivate: [RedirectHomeGuard],
73
- children: [formRoutes(true)]
74
- },
75
- {
76
- path: 'landingpage',
77
- component: EmptyPageComponent,
78
- data: {
79
- pageData: {
80
- HasAuthorize: false,
81
- Module: 'BarsaLandingPage',
82
- Route: '/landingpage'
83
- }
84
- },
85
- resolve: { pageData: PortalPageResolver },
86
- children: [
87
- formRoutes(true),
88
- {
89
- path: '',
90
- redirectTo: 'query',
91
- pathMatch: 'full'
92
- },
93
- {
94
- path: 'query',
95
- component: EmptyPageComponent,
96
- data: {
97
- pageData: {
98
- HasAuthorize: true,
99
- Module: 'BarsaQueryPage',
100
- Route: '/query'
101
- }
102
- },
103
- resolve: { pageData: PortalPageResolver },
104
- children: [formRoutes(true)]
105
- }
106
- ]
107
- }
108
- ];
109
- const commonRoutes = [
110
- {
111
- path: 'search',
112
- component: EmptyPageComponent,
113
- data: {
114
- pageData: {
115
- HasAuthorize: false,
116
- Module: 'BarsaSearchPage',
117
- Route: '/search'
118
- }
119
- },
120
- resolve: { pageData: PortalPageResolver },
121
- children: [formRoutes()]
122
- },
123
- {
124
- path: 'report/:id',
125
- component: EmptyPageComponent,
126
- resolve: { pageData: PortalReportPageResolver },
127
- data: {
128
- pageData: {
129
- HasAuthorize: false,
130
- Route: '/report',
131
- Module: 'BarsaReportPage'
132
- }
133
- },
134
- children: [formRoutes(true)]
135
- },
136
- {
137
- path: 'appgroup',
138
- component: PortalPageComponent,
139
- canActivate: [AuthGuard],
140
- data: {
141
- pageData: {
142
- Module: 'BarsaHomePage',
143
- HasAuthorize: true,
144
- Route: '/appgroup'
145
- }
146
- },
147
- resolve: { pageData: PortalPageResolver, breadcrumb: TileGroupBreadcrumResolver },
148
- children: [
149
- formRoutes(),
150
- {
151
- path: 'report/:id',
152
- component: EmptyPageComponent,
153
- resolve: { pageData: PortalReportPageResolver },
154
- data: {
155
- pageData: {
156
- HasAuthorize: false,
157
- Route: '/report',
158
- Module: 'BarsaReportPage'
159
- }
160
- },
161
- children: [formRoutes(true)]
162
- }
163
- ]
164
- }
165
- ];
166
- const mainRoutes = [
167
- {
168
- path: 'home',
169
- component: PortalPageComponent,
170
- canActivate: [AuthGuard],
171
- data: {
172
- pageData: {
173
- Module: 'BarsaHomePage',
174
- HasAuthorize: true,
175
- Route: '/home'
176
- }
177
- },
178
- resolve: { pageData: PortalPageResolver },
179
- children: [
180
- // {
181
- // path: '',
182
- // component: EmptyPageComponent,
183
- // data: {
184
- // pageData: {
185
- // HasAuthorize: false,
186
- // Module: 'BarsaUserWorkspaceModule',
187
- // Route: '/myworkspace'
188
- // }
189
- // },
190
- // resolve: { pageData: PortalPageResolver },
191
- // children: [formRoutes()]
192
- // },
193
- // {
194
- // path: 'myworkspace-edit',
195
- // component: EmptyPageComponent,
196
- // data: {
197
- // pageData: {
198
- // Module: 'BarsaUserWorkspaceModule',
199
- // HasAuthorize: true,
200
- // Route: '/myworkspace-edit'
201
- // }
202
- // },
203
- // resolve: { pageData: PortalPageResolver, breadcrumb: TileGroupBreadcrumResolver },
204
- // children: [formRoutes()]
205
- // },
206
- {
207
- path: '',
208
- component: EmptyPageComponent,
209
- data: {
210
- pageData: {
211
- HasAuthorize: false,
212
- Module: 'BarsaLaunchPadPage',
213
- Route: '/launchpad'
214
- }
215
- },
216
- resolve: { pageData: PortalPageResolver },
217
- children: [
218
- formRoutes(),
219
- {
220
- path: 'appgroupdialog/:id',
221
- outlet: 'dialog',
222
- component: EmptyPageComponent,
223
- data: {
224
- pageData: {
225
- Module: 'BarsaHomePage',
226
- HasAuthorize: true,
227
- Route: '/appgroupdialog/:id'
228
- }
229
- },
230
- resolve: { pageData: PortalPageResolver, breadcrumb: TileGroupBreadcrumResolver }
231
- }
232
- ]
233
- },
234
- {
235
- path: 'appfinder',
236
- component: RootPageComponent,
237
- resolve: { pageData: PortalPageResolver },
238
- data: {
239
- pageData: {
240
- HasAuthorize: true,
241
- Route: '/appfinder',
242
- Module: 'BarsaAppFinderPage'
243
- }
244
- },
245
- children: [{ path: '', component: EmptyPageComponent }, formRoutes()]
246
- },
247
- ...commonRoutes
248
- ]
249
- },
250
- {
251
- path: 'chat',
252
- component: PortalPageComponent,
253
- data: {
254
- pageData: {
255
- HasAuthorize: true,
256
- Route: '/chat',
257
- Module: 'BarsaAppFinderPage'
258
- }
259
- },
260
- resolve: { pageData: PortalPageResolver }
261
- }
262
- ];
263
- const routesServiceDesk = [
264
- {
265
- path: 'servicedesk',
266
- component: PortalPageComponent,
267
- canActivate: [AuthGuard],
268
- data: {
269
- pageData: {
270
- Module: 'BarsaDeskHelpPage',
271
- HasAuthorize: false,
272
- Route: '/servicedesk'
273
- }
274
- },
275
- resolve: { pageData: PortalPageResolver },
276
- children: [
277
- formRoutes(true),
278
- ...commonRoutes,
279
- {
280
- path: 'appgroupdialog/:id',
281
- outlet: 'dialog',
282
- component: EmptyPageComponent,
283
- data: {
284
- pageData: {
285
- Module: 'BarsaHomePage',
286
- HasAuthorize: false,
287
- Route: '/appgroupdialog/:id'
288
- }
289
- },
290
- resolve: { pageData: PortalPageResolver, breadcrumb: TileGroupBreadcrumResolver }
291
- }
292
- ]
293
- }
294
- ];
295
- // const isServiceDesk = BarsaApi.LoginFormData.IsServiceDesk; // eslint-disable-line
296
- // const routesHome = isServiceDesk ? routesServiceDesk : mainRoutes;
297
- export const routes = [...routesDefault, ...mainRoutes, ...routesServiceDesk];
298
- // export const routesServiceDesk2 = [...routesDefault, ...routesServiceDesk];
299
- export class BarsaNovinRayCoreRoutingModule {
300
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaNovinRayCoreRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
301
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: BarsaNovinRayCoreRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] }); }
302
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaNovinRayCoreRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] }); }
303
- }
304
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaNovinRayCoreRoutingModule, decorators: [{
305
- type: NgModule,
306
- args: [{
307
- imports: [RouterModule.forChild(routes)],
308
- exports: [RouterModule]
309
- }]
310
- }] });
311
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2Etbm92aW4tcmF5LWNvcmUtcm91dGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL2JhcnNhLW5vdmluLXJheS1jb3JlLXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFVLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMzRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN4RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQzs7O0FBRTdHLE1BQU0sYUFBYSxHQUFXO0lBQzFCO1FBQ0ksSUFBSSxFQUFFLE9BQU87UUFDYixTQUFTLEVBQUUsa0JBQWtCO1FBQzdCLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLEVBQUU7UUFDakUsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFO1FBQ3pDLFdBQVcsRUFBRSxDQUFDLGlCQUFpQixDQUFDO1FBQ2hDLFFBQVEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUMvQjtJQUNEO1FBQ0ksSUFBSSxFQUFFLGVBQWU7UUFDckIsU0FBUyxFQUFFLGtCQUFrQjtRQUM3QixJQUFJLEVBQUU7WUFDRixRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLHdCQUF3QixFQUFFO1NBQzFFO1FBQ0QsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFO1FBQ3pDLFdBQVcsRUFBRSxDQUFDLGlCQUFpQixDQUFDO1FBQ2hDLFFBQVEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUMvQjtJQUNEO1FBQ0ksSUFBSSxFQUFFLGdCQUFnQjtRQUN0QixTQUFTLEVBQUUsa0JBQWtCO1FBQzdCLElBQUksRUFBRTtZQUNGLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUseUJBQXlCLEVBQUU7U0FDNUU7UUFDRCxPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUU7UUFDekMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDO1FBQ3hCLFFBQVEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUMvQjtJQUNEO1FBQ0ksSUFBSSxFQUFFLGlCQUFpQjtRQUN2QixTQUFTLEVBQUUsa0JBQWtCO1FBQzdCLElBQUksRUFBRTtZQUNGLFFBQVEsRUFBRTtnQkFDTixLQUFLLEVBQUUsa0JBQWtCO2dCQUN6QixNQUFNLEVBQUUsMEJBQTBCO2FBQ3JDO1NBQ0o7UUFDRCxPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUU7UUFDekMsV0FBVyxFQUFFLENBQUMsaUJBQWlCLENBQUM7UUFDaEMsUUFBUSxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQy9CO0lBQ0Q7UUFDSSxJQUFJLEVBQUUseUJBQXlCO1FBQy9CLFNBQVMsRUFBRSw4QkFBOEI7S0FDNUM7SUFDRDtRQUNJLElBQUksRUFBRSxhQUFhO1FBQ25CLFNBQVMsRUFBRSxtQkFBbUI7S0FDakM7SUFDRDtRQUNJLElBQUksRUFBRSxRQUFRO1FBQ2QsU0FBUyxFQUFFLGtCQUFrQjtRQUM3QixJQUFJLEVBQUU7WUFDRixRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSx1QkFBdUIsRUFBRTtTQUNsRTtRQUNELE9BQU8sRUFBRSxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRTtRQUN6QyxXQUFXLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztRQUNoQyxRQUFRLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDL0I7SUFDRDtRQUNJLElBQUksRUFBRSxhQUFhO1FBQ25CLFNBQVMsRUFBRSxrQkFBa0I7UUFDN0IsSUFBSSxFQUFFO1lBQ0YsUUFBUSxFQUFFO2dCQUNOLFlBQVksRUFBRSxLQUFLO2dCQUNuQixNQUFNLEVBQUUsa0JBQWtCO2dCQUMxQixLQUFLLEVBQUUsY0FBYzthQUN4QjtTQUNKO1FBQ0QsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFO1FBQ3pDLFFBQVEsRUFBRTtZQUNOLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDaEI7Z0JBQ0ksSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsVUFBVSxFQUFFLE9BQU87Z0JBQ25CLFNBQVMsRUFBRSxNQUFNO2FBQ3BCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLE9BQU87Z0JBQ2IsU0FBUyxFQUFFLGtCQUFrQjtnQkFDN0IsSUFBSSxFQUFFO29CQUNGLFFBQVEsRUFBRTt3QkFDTixZQUFZLEVBQUUsSUFBSTt3QkFDbEIsTUFBTSxFQUFFLGdCQUFnQjt3QkFDeEIsS0FBSyxFQUFFLFFBQVE7cUJBQ2xCO2lCQUNKO2dCQUNELE9BQU8sRUFBRSxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRTtnQkFDekMsUUFBUSxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQy9CO1NBQ0o7S0FDSjtDQUNKLENBQUM7QUFFRixNQUFNLFlBQVksR0FBRztJQUNqQjtRQUNJLElBQUksRUFBRSxRQUFRO1FBQ2QsU0FBUyxFQUFFLGtCQUFrQjtRQUM3QixJQUFJLEVBQUU7WUFDRixRQUFRLEVBQUU7Z0JBQ04sWUFBWSxFQUFFLEtBQUs7Z0JBQ25CLE1BQU0sRUFBRSxpQkFBaUI7Z0JBQ3pCLEtBQUssRUFBRSxTQUFTO2FBQ25CO1NBQ0o7UUFDRCxPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUU7UUFDekMsUUFBUSxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7S0FDM0I7SUFDRDtRQUNJLElBQUksRUFBRSxZQUFZO1FBQ2xCLFNBQVMsRUFBRSxrQkFBa0I7UUFDN0IsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLHdCQUF3QixFQUFFO1FBQy9DLElBQUksRUFBRTtZQUNGLFFBQVEsRUFBRTtnQkFDTixZQUFZLEVBQUUsS0FBSztnQkFDbkIsS0FBSyxFQUFFLFNBQVM7Z0JBQ2hCLE1BQU0sRUFBRSxpQkFBaUI7YUFDNUI7U0FDSjtRQUNELFFBQVEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUMvQjtJQUNEO1FBQ0ksSUFBSSxFQUFFLFVBQVU7UUFDaEIsU0FBUyxFQUFFLG1CQUFtQjtRQUM5QixXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUM7UUFDeEIsSUFBSSxFQUFFO1lBQ0YsUUFBUSxFQUFFO2dCQUNOLE1BQU0sRUFBRSxlQUFlO2dCQUN2QixZQUFZLEVBQUUsSUFBSTtnQkFDbEIsS0FBSyxFQUFFLFdBQVc7YUFDckI7U0FDSjtRQUNELE9BQU8sRUFBRSxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsMEJBQTBCLEVBQUU7UUFDakYsUUFBUSxFQUFFO1lBQ04sVUFBVSxFQUFFO1lBQ1o7Z0JBQ0ksSUFBSSxFQUFFLFlBQVk7Z0JBQ2xCLFNBQVMsRUFBRSxrQkFBa0I7Z0JBQzdCLE9BQU8sRUFBRSxFQUFFLFFBQVEsRUFBRSx3QkFBd0IsRUFBRTtnQkFDL0MsSUFBSSxFQUFFO29CQUNGLFFBQVEsRUFBRTt3QkFDTixZQUFZLEVBQUUsS0FBSzt3QkFDbkIsS0FBSyxFQUFFLFNBQVM7d0JBQ2hCLE1BQU0sRUFBRSxpQkFBaUI7cUJBQzVCO2lCQUNKO2dCQUNELFFBQVEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUMvQjtTQUNKO0tBQ0o7Q0FDSixDQUFDO0FBQ0YsTUFBTSxVQUFVLEdBQVc7SUFDdkI7UUFDSSxJQUFJLEVBQUUsTUFBTTtRQUNaLFNBQVMsRUFBRSxtQkFBbUI7UUFDOUIsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDO1FBQ3hCLElBQUksRUFBRTtZQUNGLFFBQVEsRUFBRTtnQkFDTixNQUFNLEVBQUUsZUFBZTtnQkFDdkIsWUFBWSxFQUFFLElBQUk7Z0JBQ2xCLEtBQUssRUFBRSxPQUFPO2FBQ2pCO1NBQ0o7UUFDRCxPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUU7UUFDekMsUUFBUSxFQUFFO1lBQ04sSUFBSTtZQUNKLGdCQUFnQjtZQUNoQixxQ0FBcUM7WUFDckMsY0FBYztZQUNkLHNCQUFzQjtZQUN0QixtQ0FBbUM7WUFDbkMsa0RBQWtEO1lBQ2xELG9DQUFvQztZQUNwQyxZQUFZO1lBQ1osU0FBUztZQUNULGlEQUFpRDtZQUNqRCwrQkFBK0I7WUFDL0IsS0FBSztZQUNMLElBQUk7WUFDSixnQ0FBZ0M7WUFDaEMscUNBQXFDO1lBQ3JDLGNBQWM7WUFDZCxzQkFBc0I7WUFDdEIsa0RBQWtEO1lBQ2xELGtDQUFrQztZQUNsQyx5Q0FBeUM7WUFDekMsWUFBWTtZQUNaLFNBQVM7WUFDVCx5RkFBeUY7WUFDekYsK0JBQStCO1lBQy9CLEtBQUs7WUFDTDtnQkFDSSxJQUFJLEVBQUUsRUFBRTtnQkFDUixTQUFTLEVBQUUsa0JBQWtCO2dCQUM3QixJQUFJLEVBQUU7b0JBQ0YsUUFBUSxFQUFFO3dCQUNOLFlBQVksRUFBRSxLQUFLO3dCQUNuQixNQUFNLEVBQUUsb0JBQW9CO3dCQUM1QixLQUFLLEVBQUUsWUFBWTtxQkFDdEI7aUJBQ0o7Z0JBQ0QsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFO2dCQUN6QyxRQUFRLEVBQUU7b0JBQ04sVUFBVSxFQUFFO29CQUNaO3dCQUNJLElBQUksRUFBRSxvQkFBb0I7d0JBQzFCLE1BQU0sRUFBRSxRQUFRO3dCQUNoQixTQUFTLEVBQUUsa0JBQWtCO3dCQUM3QixJQUFJLEVBQUU7NEJBQ0YsUUFBUSxFQUFFO2dDQUNOLE1BQU0sRUFBRSxlQUFlO2dDQUN2QixZQUFZLEVBQUUsSUFBSTtnQ0FDbEIsS0FBSyxFQUFFLHFCQUFxQjs2QkFDL0I7eUJBQ0o7d0JBQ0QsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSwwQkFBMEIsRUFBRTtxQkFDcEY7aUJBQ0o7YUFDSjtZQUNEO2dCQUNJLElBQUksRUFBRSxXQUFXO2dCQUNqQixTQUFTLEVBQUUsaUJBQWlCO2dCQUM1QixPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUU7Z0JBQ3pDLElBQUksRUFBRTtvQkFDRixRQUFRLEVBQUU7d0JBQ04sWUFBWSxFQUFFLElBQUk7d0JBQ2xCLEtBQUssRUFBRSxZQUFZO3dCQUNuQixNQUFNLEVBQUUsb0JBQW9CO3FCQUMvQjtpQkFDSjtnQkFDRCxRQUFRLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUM7YUFDeEU7WUFDRCxHQUFHLFlBQVk7U0FDbEI7S0FDSjtJQUNEO1FBQ0ksSUFBSSxFQUFFLE1BQU07UUFDWixTQUFTLEVBQUUsbUJBQW1CO1FBQzlCLElBQUksRUFBRTtZQUNGLFFBQVEsRUFBRTtnQkFDTixZQUFZLEVBQUUsSUFBSTtnQkFDbEIsS0FBSyxFQUFFLE9BQU87Z0JBQ2QsTUFBTSxFQUFFLG9CQUFvQjthQUMvQjtTQUNKO1FBQ0QsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFO0tBQzVDO0NBQ0osQ0FBQztBQUVGLE1BQU0saUJBQWlCLEdBQVc7SUFDOUI7UUFDSSxJQUFJLEVBQUUsYUFBYTtRQUNuQixTQUFTLEVBQUUsbUJBQW1CO1FBQzlCLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQztRQUN4QixJQUFJLEVBQUU7WUFDRixRQUFRLEVBQUU7Z0JBQ04sTUFBTSxFQUFFLG1CQUFtQjtnQkFDM0IsWUFBWSxFQUFFLEtBQUs7Z0JBQ25CLEtBQUssRUFBRSxjQUFjO2FBQ3hCO1NBQ0o7UUFDRCxPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUU7UUFDekMsUUFBUSxFQUFFO1lBQ04sVUFBVSxDQUFDLElBQUksQ0FBQztZQUNoQixHQUFHLFlBQVk7WUFDZjtnQkFDSSxJQUFJLEVBQUUsb0JBQW9CO2dCQUMxQixNQUFNLEVBQUUsUUFBUTtnQkFDaEIsU0FBUyxFQUFFLGtCQUFrQjtnQkFDN0IsSUFBSSxFQUFFO29CQUNGLFFBQVEsRUFBRTt3QkFDTixNQUFNLEVBQUUsZUFBZTt3QkFDdkIsWUFBWSxFQUFFLEtBQUs7d0JBQ25CLEtBQUssRUFBRSxxQkFBcUI7cUJBQy9CO2lCQUNKO2dCQUNELE9BQU8sRUFBRSxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsMEJBQTBCLEVBQUU7YUFDcEY7U0FDSjtLQUNKO0NBQ0osQ0FBQztBQUNGLHFGQUFxRjtBQUNyRixxRUFBcUU7QUFDckUsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxhQUFhLEVBQUUsR0FBRyxVQUFVLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDO0FBQzlFLDhFQUE4RTtBQUs5RSxNQUFNLE9BQU8sOEJBQThCOytHQUE5Qiw4QkFBOEI7Z0hBQTlCLDhCQUE4Qix3Q0FGN0IsWUFBWTtnSEFFYiw4QkFBOEIsWUFIN0IsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFDN0IsWUFBWTs7NEZBRWIsOEJBQThCO2tCQUoxQyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3hDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXMsIFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEF1dGhHdWFyZCB9IGZyb20gJy4vYXV0aC1ndWFyZCc7XHJcbmltcG9ydCB7IEVtcHR5UGFnZUNvbXBvbmVudCB9IGZyb20gJy4vZW1wdHktcGFnZS9lbXB0eS1wYWdlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGZvcm1Sb3V0ZXMgfSBmcm9tICcuL2Zvcm0tcGFnZS1yb3V0aW5nJztcclxuaW1wb3J0IHsgUG9ydGFsUGFnZUNvbXBvbmVudCB9IGZyb20gJy4vcG9ydGFsLXBhZ2UvcG9ydGFsLXBhZ2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVkaXJlY3RIb21lR3VhcmQgfSBmcm9tICcuL3JlZGlyZWN0LWhvbWUtZ3VhcmQnO1xyXG5pbXBvcnQgeyBQb3J0YWxQYWdlUmVzb2x2ZXIsIFBvcnRhbFJlcG9ydFBhZ2VSZXNvbHZlciB9IGZyb20gJy4vcmVzb2x2ZXJzJztcclxuaW1wb3J0IHsgUm9vdFBhZ2VDb21wb25lbnQgfSBmcm9tICcuL3Jvb3QtcGFnZS9yb290LXBhZ2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGlsZUdyb3VwQnJlYWRjcnVtUmVzb2x2ZXIgfSBmcm9tICcuL3Jlc29sdmVycy90aWxlLWdyb3VwLWJyZWFkY3J1bWIucmVzb2x2ZXInO1xyXG5pbXBvcnQgeyBOb0ludGVybmV0Q29tcG9uZW50IH0gZnJvbSAnLi9ub3QtaW50ZXJuZXQvbm90LWludGVybmV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNlcnZlckNvbm5lY3Rpb25FcnJvckNvbXBvbmVudCB9IGZyb20gJy4vc2VydmVyLWNvbm5lY3Rpb24tZXJyb3Ivc2VydmVyLWNvbm5lY3Rpb24tZXJyb3IuY29tcG9uZW50JztcclxuXHJcbmNvbnN0IHJvdXRlc0RlZmF1bHQ6IFJvdXRlcyA9IFtcclxuICAgIHtcclxuICAgICAgICBwYXRoOiAnbG9naW4nLFxyXG4gICAgICAgIGNvbXBvbmVudDogRW1wdHlQYWdlQ29tcG9uZW50LFxyXG4gICAgICAgIGRhdGE6IHsgcGFnZURhdGE6IHsgUm91dGU6ICcvbG9naW4nLCBNb2R1bGU6ICdCYXJzYUxvZ2luUGFnZScgfSB9LFxyXG4gICAgICAgIHJlc29sdmU6IHsgcGFnZURhdGE6IFBvcnRhbFBhZ2VSZXNvbHZlciB9LFxyXG4gICAgICAgIGNhbkFjdGl2YXRlOiBbUmVkaXJlY3RIb21lR3VhcmRdLFxyXG4gICAgICAgIGNoaWxkcmVuOiBbZm9ybVJvdXRlcyh0cnVlKV1cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgcGF0aDogJ3Jlc2V0cGFzc3dvcmQnLFxyXG4gICAgICAgIGNvbXBvbmVudDogRW1wdHlQYWdlQ29tcG9uZW50LFxyXG4gICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgcGFnZURhdGE6IHsgUm91dGU6ICcvcmVzZXRwYXNzd29yZCcsIE1vZHVsZTogJ0JhcnNhUmVzZXRQYXNzd29yZFBhZ2UnIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHJlc29sdmU6IHsgcGFnZURhdGE6IFBvcnRhbFBhZ2VSZXNvbHZlciB9LFxyXG4gICAgICAgIGNhbkFjdGl2YXRlOiBbUmVkaXJlY3RIb21lR3VhcmRdLFxyXG4gICAgICAgIGNoaWxkcmVuOiBbZm9ybVJvdXRlcyh0cnVlKV1cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgcGF0aDogJ2NoYW5nZXBhc3N3b3JkJyxcclxuICAgICAgICBjb21wb25lbnQ6IEVtcHR5UGFnZUNvbXBvbmVudCxcclxuICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgIHBhZ2VEYXRhOiB7IFJvdXRlOiAnL2NoYW5nZXBhc3N3b3JkJywgTW9kdWxlOiAnQmFyc2FDaGFuZ2VQYXNzd29yZFBhZ2UnIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHJlc29sdmU6IHsgcGFnZURhdGE6IFBvcnRhbFBhZ2VSZXNvbHZlciB9LFxyXG4gICAgICAgIGNhbkFjdGl2YXRlOiBbQXV0aEd1YXJkXSxcclxuICAgICAgICBjaGlsZHJlbjogW2Zvcm1Sb3V0ZXModHJ1ZSldXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIHBhdGg6ICdyZWNvdmVycGFzc3dvcmQnLFxyXG4gICAgICAgIGNvbXBvbmVudDogRW1wdHlQYWdlQ29tcG9uZW50LFxyXG4gICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgcGFnZURhdGE6IHtcclxuICAgICAgICAgICAgICAgIFJvdXRlOiAnL3JlY292ZXJwYXNzd29yZCcsXHJcbiAgICAgICAgICAgICAgICBNb2R1bGU6ICdCYXJzYVJlY292ZXJQYXNzd29yZFBhZ2UnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHJlc29sdmU6IHsgcGFnZURhdGE6IFBvcnRhbFBhZ2VSZXNvbHZlciB9LFxyXG4gICAgICAgIGNhbkFjdGl2YXRlOiBbUmVkaXJlY3RIb21lR3VhcmRdLFxyXG4gICAgICAgIGNoaWxkcmVuOiBbZm9ybVJvdXRlcyh0cnVlKV1cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgcGF0aDogJ3NlcnZlci1jb25uZWN0aW9uLWVycm9yJyxcclxuICAgICAgICBjb21wb25lbnQ6IFNlcnZlckNvbm5lY3Rpb25FcnJvckNvbXBvbmVudFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBwYXRoOiAnbm8taW50ZXJuZXQnLFxyXG4gICAgICAgIGNvbXBvbmVudDogTm9JbnRlcm5ldENvbXBvbmVudFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBwYXRoOiAnc2lnbnVwJyxcclxuICAgICAgICBjb21wb25lbnQ6IEVtcHR5UGFnZUNvbXBvbmVudCxcclxuICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgIHBhZ2VEYXRhOiB7IFJvdXRlOiAnL3NpZ251cCcsIE1vZHVsZTogJ0JhcnNhVXNlclJlZ2lzdGVyUGFnZScgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcmVzb2x2ZTogeyBwYWdlRGF0YTogUG9ydGFsUGFnZVJlc29sdmVyIH0sXHJcbiAgICAgICAgY2FuQWN0aXZhdGU6IFtSZWRpcmVjdEhvbWVHdWFyZF0sXHJcbiAgICAgICAgY2hpbGRyZW46IFtmb3JtUm91dGVzKHRydWUpXVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBwYXRoOiAnbGFuZGluZ3BhZ2UnLFxyXG4gICAgICAgIGNvbXBvbmVudDogRW1wdHlQYWdlQ29tcG9uZW50LFxyXG4gICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgcGFnZURhdGE6IHtcclxuICAgICAgICAgICAgICAgIEhhc0F1dGhvcml6ZTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBNb2R1bGU6ICdCYXJzYUxhbmRpbmdQYWdlJyxcclxuICAgICAgICAgICAgICAgIFJvdXRlOiAnL2xhbmRpbmdwYWdlJ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICByZXNvbHZlOiB7IHBhZ2VEYXRhOiBQb3J0YWxQYWdlUmVzb2x2ZXIgfSxcclxuICAgICAgICBjaGlsZHJlbjogW1xyXG4gICAgICAgICAgICBmb3JtUm91dGVzKHRydWUpLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBwYXRoOiAnJyxcclxuICAgICAgICAgICAgICAgIHJlZGlyZWN0VG86ICdxdWVyeScsXHJcbiAgICAgICAgICAgICAgICBwYXRoTWF0Y2g6ICdmdWxsJ1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBwYXRoOiAncXVlcnknLFxyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBFbXB0eVBhZ2VDb21wb25lbnQsXHJcbiAgICAgICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFnZURhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgSGFzQXV0aG9yaXplOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBNb2R1bGU6ICdCYXJzYVF1ZXJ5UGFnZScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFJvdXRlOiAnL3F1ZXJ5J1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICByZXNvbHZlOiB7IHBhZ2VEYXRhOiBQb3J0YWxQYWdlUmVzb2x2ZXIgfSxcclxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbZm9ybVJvdXRlcyh0cnVlKV1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIF1cclxuICAgIH1cclxuXTtcclxuXHJcbmNvbnN0IGNvbW1vblJvdXRlcyA9IFtcclxuICAgIHtcclxuICAgICAgICBwYXRoOiAnc2VhcmNoJyxcclxuICAgICAgICBjb21wb25lbnQ6IEVtcHR5UGFnZUNvbXBvbmVudCxcclxuICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgIHBhZ2VEYXRhOiB7XHJcbiAgICAgICAgICAgICAgICBIYXNBdXRob3JpemU6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgTW9kdWxlOiAnQmFyc2FTZWFyY2hQYWdlJyxcclxuICAgICAgICAgICAgICAgIFJvdXRlOiAnL3NlYXJjaCdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcmVzb2x2ZTogeyBwYWdlRGF0YTogUG9ydGFsUGFnZVJlc29sdmVyIH0sXHJcbiAgICAgICAgY2hpbGRyZW46IFtmb3JtUm91dGVzKCldXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIHBhdGg6ICdyZXBvcnQvOmlkJyxcclxuICAgICAgICBjb21wb25lbnQ6IEVtcHR5UGFnZUNvbXBvbmVudCxcclxuICAgICAgICByZXNvbHZlOiB7IHBhZ2VEYXRhOiBQb3J0YWxSZXBvcnRQYWdlUmVzb2x2ZXIgfSxcclxuICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgIHBhZ2VEYXRhOiB7XHJcbiAgICAgICAgICAgICAgICBIYXNBdXRob3JpemU6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgUm91dGU6ICcvcmVwb3J0JyxcclxuICAgICAgICAgICAgICAgIE1vZHVsZTogJ0JhcnNhUmVwb3J0UGFnZSdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY2hpbGRyZW46IFtmb3JtUm91dGVzKHRydWUpXVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBwYXRoOiAnYXBwZ3JvdXAnLFxyXG4gICAgICAgIGNvbXBvbmVudDogUG9ydGFsUGFnZUNvbXBvbmVudCxcclxuICAgICAgICBjYW5BY3RpdmF0ZTogW0F1dGhHdWFyZF0sXHJcbiAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICBwYWdlRGF0YToge1xyXG4gICAgICAgICAgICAgICAgTW9kdWxlOiAnQmFyc2FIb21lUGFnZScsXHJcbiAgICAgICAgICAgICAgICBIYXNBdXRob3JpemU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBSb3V0ZTogJy9hcHBncm91cCdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcmVzb2x2ZTogeyBwYWdlRGF0YTogUG9ydGFsUGFnZVJlc29sdmVyLCBicmVhZGNydW1iOiBUaWxlR3JvdXBCcmVhZGNydW1SZXNvbHZlciB9LFxyXG4gICAgICAgIGNoaWxkcmVuOiBbXHJcbiAgICAgICAgICAgIGZvcm1Sb3V0ZXMoKSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcGF0aDogJ3JlcG9ydC86aWQnLFxyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBFbXB0eVBhZ2VDb21wb25lbnQsXHJcbiAgICAgICAgICAgICAgICByZXNvbHZlOiB7IHBhZ2VEYXRhOiBQb3J0YWxSZXBvcnRQYWdlUmVzb2x2ZXIgfSxcclxuICAgICAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgICBwYWdlRGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBIYXNBdXRob3JpemU6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSb3V0ZTogJy9yZXBvcnQnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBNb2R1bGU6ICdCYXJzYVJlcG9ydFBhZ2UnXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbZm9ybVJvdXRlcyh0cnVlKV1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIF1cclxuICAgIH1cclxuXTtcclxuY29uc3QgbWFpblJvdXRlczogUm91dGVzID0gW1xyXG4gICAge1xyXG4gICAgICAgIHBhdGg6ICdob21lJyxcclxuICAgICAgICBjb21wb25lbnQ6IFBvcnRhbFBhZ2VDb21wb25lbnQsXHJcbiAgICAgICAgY2FuQWN0aXZhdGU6IFtBdXRoR3VhcmRdLFxyXG4gICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgcGFnZURhdGE6IHtcclxuICAgICAgICAgICAgICAgIE1vZHVsZTogJ0JhcnNhSG9tZVBhZ2UnLFxyXG4gICAgICAgICAgICAgICAgSGFzQXV0aG9yaXplOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgUm91dGU6ICcvaG9tZSdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcmVzb2x2ZTogeyBwYWdlRGF0YTogUG9ydGFsUGFnZVJlc29sdmVyIH0sXHJcbiAgICAgICAgY2hpbGRyZW46IFtcclxuICAgICAgICAgICAgLy8ge1xyXG4gICAgICAgICAgICAvLyAgICAgcGF0aDogJycsXHJcbiAgICAgICAgICAgIC8vICAgICBjb21wb25lbnQ6IEVtcHR5UGFnZUNvbXBvbmVudCxcclxuICAgICAgICAgICAgLy8gICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgLy8gICAgICAgICBwYWdlRGF0YToge1xyXG4gICAgICAgICAgICAvLyAgICAgICAgICAgICBIYXNBdXRob3JpemU6IGZhbHNlLFxyXG4gICAgICAgICAgICAvLyAgICAgICAgICAgICBNb2R1bGU6ICdCYXJzYVVzZXJXb3Jrc3BhY2VNb2R1bGUnLFxyXG4gICAgICAgICAgICAvLyAgICAgICAgICAgICBSb3V0ZTogJy9teXdvcmtzcGFjZSdcclxuICAgICAgICAgICAgLy8gICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vICAgICB9LFxyXG4gICAgICAgICAgICAvLyAgICAgcmVzb2x2ZTogeyBwYWdlRGF0YTogUG9ydGFsUGFnZVJlc29sdmVyIH0sXHJcbiAgICAgICAgICAgIC8vICAgICBjaGlsZHJlbjogW2Zvcm1Sb3V0ZXMoKV1cclxuICAgICAgICAgICAgLy8gfSxcclxuICAgICAgICAgICAgLy8ge1xyXG4gICAgICAgICAgICAvLyAgICAgcGF0aDogJ215d29ya3NwYWNlLWVkaXQnLFxyXG4gICAgICAgICAgICAvLyAgICAgY29tcG9uZW50OiBFbXB0eVBhZ2VDb21wb25lbnQsXHJcbiAgICAgICAgICAgIC8vICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgcGFnZURhdGE6IHtcclxuICAgICAgICAgICAgLy8gICAgICAgICAgICAgTW9kdWxlOiAnQmFyc2FVc2VyV29ya3NwYWNlTW9kdWxlJyxcclxuICAgICAgICAgICAgLy8gICAgICAgICAgICAgSGFzQXV0aG9yaXplOiB0cnVlLFxyXG4gICAgICAgICAgICAvLyAgICAgICAgICAgICBSb3V0ZTogJy9teXdvcmtzcGFjZS1lZGl0J1xyXG4gICAgICAgICAgICAvLyAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gICAgIH0sXHJcbiAgICAgICAgICAgIC8vICAgICByZXNvbHZlOiB7IHBhZ2VEYXRhOiBQb3J0YWxQYWdlUmVzb2x2ZXIsIGJyZWFkY3J1bWI6IFRpbGVHcm91cEJyZWFkY3J1bVJlc29sdmVyIH0sXHJcbiAgICAgICAgICAgIC8vICAgICBjaGlsZHJlbjogW2Zvcm1Sb3V0ZXMoKV1cclxuICAgICAgICAgICAgLy8gfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcGF0aDogJycsXHJcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IEVtcHR5UGFnZUNvbXBvbmVudCxcclxuICAgICAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgICBwYWdlRGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBIYXNBdXRob3JpemU6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBNb2R1bGU6ICdCYXJzYUxhdW5jaFBhZFBhZ2UnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSb3V0ZTogJy9sYXVuY2hwYWQnXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHJlc29sdmU6IHsgcGFnZURhdGE6IFBvcnRhbFBhZ2VSZXNvbHZlciB9LFxyXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IFtcclxuICAgICAgICAgICAgICAgICAgICBmb3JtUm91dGVzKCksXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiAnYXBwZ3JvdXBkaWFsb2cvOmlkJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3V0bGV0OiAnZGlhbG9nJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50OiBFbXB0eVBhZ2VDb21wb25lbnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VEYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTW9kdWxlOiAnQmFyc2FIb21lUGFnZScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGFzQXV0aG9yaXplOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJvdXRlOiAnL2FwcGdyb3VwZGlhbG9nLzppZCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZTogeyBwYWdlRGF0YTogUG9ydGFsUGFnZVJlc29sdmVyLCBicmVhZGNydW1iOiBUaWxlR3JvdXBCcmVhZGNydW1SZXNvbHZlciB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBwYXRoOiAnYXBwZmluZGVyJyxcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogUm9vdFBhZ2VDb21wb25lbnQsXHJcbiAgICAgICAgICAgICAgICByZXNvbHZlOiB7IHBhZ2VEYXRhOiBQb3J0YWxQYWdlUmVzb2x2ZXIgfSxcclxuICAgICAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgICBwYWdlRGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBIYXNBdXRob3JpemU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFJvdXRlOiAnL2FwcGZpbmRlcicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIE1vZHVsZTogJ0JhcnNhQXBwRmluZGVyUGFnZSdcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IFt7IHBhdGg6ICcnLCBjb21wb25lbnQ6IEVtcHR5UGFnZUNvbXBvbmVudCB9LCBmb3JtUm91dGVzKCldXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIC4uLmNvbW1vblJvdXRlc1xyXG4gICAgICAgIF1cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgcGF0aDogJ2NoYXQnLFxyXG4gICAgICAgIGNvbXBvbmVudDogUG9ydGFsUGFnZUNvbXBvbmVudCxcclxuICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgIHBhZ2VEYXRhOiB7XHJcbiAgICAgICAgICAgICAgICBIYXNBdXRob3JpemU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBSb3V0ZTogJy9jaGF0JyxcclxuICAgICAgICAgICAgICAgIE1vZHVsZTogJ0JhcnNhQXBwRmluZGVyUGFnZSdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcmVzb2x2ZTogeyBwYWdlRGF0YTogUG9ydGFsUGFnZVJlc29sdmVyIH1cclxuICAgIH1cclxuXTtcclxuXHJcbmNvbnN0IHJvdXRlc1NlcnZpY2VEZXNrOiBSb3V0ZXMgPSBbXHJcbiAgICB7XHJcbiAgICAgICAgcGF0aDogJ3NlcnZpY2VkZXNrJyxcclxuICAgICAgICBjb21wb25lbnQ6IFBvcnRhbFBhZ2VDb21wb25lbnQsXHJcbiAgICAgICAgY2FuQWN0aXZhdGU6IFtBdXRoR3VhcmRdLFxyXG4gICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgcGFnZURhdGE6IHtcclxuICAgICAgICAgICAgICAgIE1vZHVsZTogJ0JhcnNhRGVza0hlbHBQYWdlJyxcclxuICAgICAgICAgICAgICAgIEhhc0F1dGhvcml6ZTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBSb3V0ZTogJy9zZXJ2aWNlZGVzaydcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcmVzb2x2ZTogeyBwYWdlRGF0YTogUG9ydGFsUGFnZVJlc29sdmVyIH0sXHJcbiAgICAgICAgY2hpbGRyZW46IFtcclxuICAgICAgICAgICAgZm9ybVJvdXRlcyh0cnVlKSxcclxuICAgICAgICAgICAgLi4uY29tbW9uUm91dGVzLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBwYXRoOiAnYXBwZ3JvdXBkaWFsb2cvOmlkJyxcclxuICAgICAgICAgICAgICAgIG91dGxldDogJ2RpYWxvZycsXHJcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IEVtcHR5UGFnZUNvbXBvbmVudCxcclxuICAgICAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgICBwYWdlRGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBNb2R1bGU6ICdCYXJzYUhvbWVQYWdlJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgSGFzQXV0aG9yaXplOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgUm91dGU6ICcvYXBwZ3JvdXBkaWFsb2cvOmlkJ1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICByZXNvbHZlOiB7IHBhZ2VEYXRhOiBQb3J0YWxQYWdlUmVzb2x2ZXIsIGJyZWFkY3J1bWI6IFRpbGVHcm91cEJyZWFkY3J1bVJlc29sdmVyIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIF1cclxuICAgIH1cclxuXTtcclxuLy8gY29uc3QgaXNTZXJ2aWNlRGVzayA9IEJhcnNhQXBpLkxvZ2luRm9ybURhdGEuSXNTZXJ2aWNlRGVzazsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxyXG4vLyBjb25zdCByb3V0ZXNIb21lID0gaXNTZXJ2aWNlRGVzayA/IHJvdXRlc1NlcnZpY2VEZXNrIDogbWFpblJvdXRlcztcclxuZXhwb3J0IGNvbnN0IHJvdXRlcyA9IFsuLi5yb3V0ZXNEZWZhdWx0LCAuLi5tYWluUm91dGVzLCAuLi5yb3V0ZXNTZXJ2aWNlRGVza107XHJcbi8vIGV4cG9ydCBjb25zdCByb3V0ZXNTZXJ2aWNlRGVzazIgPSBbLi4ucm91dGVzRGVmYXVsdCwgLi4ucm91dGVzU2VydmljZURlc2tdO1xyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1JvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpXSxcclxuICAgIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXJzYU5vdmluUmF5Q29yZVJvdXRpbmdNb2R1bGUge31cclxuIl19