@porsche-design-system/components-angular 3.5.0 → 3.6.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/CHANGELOG.md +37 -1
  2. package/{lib → esm/lib}/types.d.ts +14 -22
  3. package/{porsche-design-system.module.d.ts → esm/porsche-design-system.module.d.ts} +2 -1
  4. package/esm2020/lib/types.mjs +1 -1
  5. package/esm2020/porsche-design-system.module.mjs +3 -2
  6. package/fesm2015/porsche-design-system-components-angular.mjs +2 -1
  7. package/fesm2015/porsche-design-system-components-angular.mjs.map +1 -1
  8. package/fesm2020/porsche-design-system-components-angular.mjs +2 -1
  9. package/fesm2020/porsche-design-system-components-angular.mjs.map +1 -1
  10. package/jsdom-polyfill/{index.js → index.cjs} +1 -1
  11. package/jsdom-polyfill/index.d.ts +1 -0
  12. package/jsdom-polyfill/package.json +5 -0
  13. package/package.json +19 -19
  14. package/partials/index.cjs +12 -0
  15. package/partials/index.js +1 -1
  16. package/partials/package.json +6 -0
  17. package/styles/{index.js → cjs/index.cjs} +1 -1
  18. package/styles/package.json +6 -0
  19. package/testing/{index.js → index.cjs} +1 -1
  20. package/testing/package.json +5 -0
  21. package/partials/esm/index.js +0 -1
  22. /package/{index.d.ts → esm/index.d.ts} +0 -0
  23. /package/{lib → esm/lib}/components/accordion.wrapper.d.ts +0 -0
  24. /package/{lib → esm/lib}/components/banner.wrapper.d.ts +0 -0
  25. /package/{lib → esm/lib}/components/barrel.d.ts +0 -0
  26. /package/{lib → esm/lib}/components/button-group.wrapper.d.ts +0 -0
  27. /package/{lib → esm/lib}/components/button-pure.wrapper.d.ts +0 -0
  28. /package/{lib → esm/lib}/components/button-tile.wrapper.d.ts +0 -0
  29. /package/{lib → esm/lib}/components/button.wrapper.d.ts +0 -0
  30. /package/{lib → esm/lib}/components/carousel.wrapper.d.ts +0 -0
  31. /package/{lib → esm/lib}/components/checkbox-wrapper.wrapper.d.ts +0 -0
  32. /package/{lib → esm/lib}/components/content-wrapper.wrapper.d.ts +0 -0
  33. /package/{lib → esm/lib}/components/crest.wrapper.d.ts +0 -0
  34. /package/{lib → esm/lib}/components/display.wrapper.d.ts +0 -0
  35. /package/{lib → esm/lib}/components/divider.wrapper.d.ts +0 -0
  36. /package/{lib → esm/lib}/components/fieldset-wrapper.wrapper.d.ts +0 -0
  37. /package/{lib → esm/lib}/components/fieldset.wrapper.d.ts +0 -0
  38. /package/{lib → esm/lib}/components/flex-item.wrapper.d.ts +0 -0
  39. /package/{lib → esm/lib}/components/flex.wrapper.d.ts +0 -0
  40. /package/{lib → esm/lib}/components/flyout.wrapper.d.ts +0 -0
  41. /package/{lib → esm/lib}/components/grid-item.wrapper.d.ts +0 -0
  42. /package/{lib → esm/lib}/components/grid.wrapper.d.ts +0 -0
  43. /package/{lib → esm/lib}/components/heading.wrapper.d.ts +0 -0
  44. /package/{lib → esm/lib}/components/headline.wrapper.d.ts +0 -0
  45. /package/{lib → esm/lib}/components/icon.wrapper.d.ts +0 -0
  46. /package/{lib → esm/lib}/components/inline-notification.wrapper.d.ts +0 -0
  47. /package/{lib → esm/lib}/components/link-pure.wrapper.d.ts +0 -0
  48. /package/{lib → esm/lib}/components/link-social.wrapper.d.ts +0 -0
  49. /package/{lib → esm/lib}/components/link-tile-model-signature.wrapper.d.ts +0 -0
  50. /package/{lib → esm/lib}/components/link-tile.wrapper.d.ts +0 -0
  51. /package/{lib → esm/lib}/components/link.wrapper.d.ts +0 -0
  52. /package/{lib → esm/lib}/components/marque.wrapper.d.ts +0 -0
  53. /package/{lib → esm/lib}/components/modal.wrapper.d.ts +0 -0
  54. /package/{lib → esm/lib}/components/model-signature.wrapper.d.ts +0 -0
  55. /package/{lib → esm/lib}/components/pagination.wrapper.d.ts +0 -0
  56. /package/{lib → esm/lib}/components/popover.wrapper.d.ts +0 -0
  57. /package/{lib → esm/lib}/components/radio-button-wrapper.wrapper.d.ts +0 -0
  58. /package/{lib → esm/lib}/components/scroller.wrapper.d.ts +0 -0
  59. /package/{lib → esm/lib}/components/segmented-control-item.wrapper.d.ts +0 -0
  60. /package/{lib → esm/lib}/components/segmented-control.wrapper.d.ts +0 -0
  61. /package/{lib → esm/lib}/components/select-wrapper.wrapper.d.ts +0 -0
  62. /package/{lib → esm/lib}/components/spinner.wrapper.d.ts +0 -0
  63. /package/{lib → esm/lib}/components/stepper-horizontal-item.wrapper.d.ts +0 -0
  64. /package/{lib → esm/lib}/components/stepper-horizontal.wrapper.d.ts +0 -0
  65. /package/{lib → esm/lib}/components/switch.wrapper.d.ts +0 -0
  66. /package/{lib → esm/lib}/components/table-body.wrapper.d.ts +0 -0
  67. /package/{lib → esm/lib}/components/table-cell.wrapper.d.ts +0 -0
  68. /package/{lib → esm/lib}/components/table-head-cell.wrapper.d.ts +0 -0
  69. /package/{lib → esm/lib}/components/table-head-row.wrapper.d.ts +0 -0
  70. /package/{lib → esm/lib}/components/table-head.wrapper.d.ts +0 -0
  71. /package/{lib → esm/lib}/components/table-row.wrapper.d.ts +0 -0
  72. /package/{lib → esm/lib}/components/table.wrapper.d.ts +0 -0
  73. /package/{lib → esm/lib}/components/tabs-bar.wrapper.d.ts +0 -0
  74. /package/{lib → esm/lib}/components/tabs-item.wrapper.d.ts +0 -0
  75. /package/{lib → esm/lib}/components/tabs.wrapper.d.ts +0 -0
  76. /package/{lib → esm/lib}/components/tag-dismissible.wrapper.d.ts +0 -0
  77. /package/{lib → esm/lib}/components/tag.wrapper.d.ts +0 -0
  78. /package/{lib → esm/lib}/components/text-field-wrapper.wrapper.d.ts +0 -0
  79. /package/{lib → esm/lib}/components/text-list-item.wrapper.d.ts +0 -0
  80. /package/{lib → esm/lib}/components/text-list.wrapper.d.ts +0 -0
  81. /package/{lib → esm/lib}/components/text.wrapper.d.ts +0 -0
  82. /package/{lib → esm/lib}/components/textarea-wrapper.wrapper.d.ts +0 -0
  83. /package/{lib → esm/lib}/components/toast.wrapper.d.ts +0 -0
  84. /package/{lib → esm/lib}/components/wordmark.wrapper.d.ts +0 -0
  85. /package/{public-api.d.ts → esm/public-api.d.ts} +0 -0
  86. /package/{toast-manager.d.ts → esm/toast-manager.d.ts} +0 -0
  87. /package/{utils.d.ts → esm/utils.d.ts} +0 -0
  88. /package/styles/{index.d.ts → esm/index.d.ts} +0 -0
  89. /package/styles/esm/{index.js → index.mjs} +0 -0
package/CHANGELOG.md CHANGED
@@ -14,6 +14,40 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
14
14
 
15
15
  ### [Unreleased]
16
16
 
17
+ ### [3.6.0-rc.0] - 2023-08-23
18
+
19
+ #### Added
20
+
21
+ - New value `aria-current` for `aria` property for linked components (`Link`, `Link Pure`, `Link Tile`, `Crest`,
22
+ `Marque`) ([#2696](https://github.com/porsche-design-system/porsche-design-system/pull/2696))
23
+ - Angular: `cdn: 'auto' | 'cn'` option to `PorscheDesignSystemModule.load()` as alternative to using
24
+ `window.PORSCHE_DESIGN_SYSTEM_CDN` ([#2676](https://github.com/porsche-design-system/porsche-design-system/pull/2676))
25
+ - React: `cdn: 'auto' | 'cn'` prop to `PorscheDesignSystemProvider` as alternative to using
26
+ `window.PORSCHE_DESIGN_SYSTEM_CDN` with SSR support
27
+ ([#2676](https://github.com/porsche-design-system/porsche-design-system/pull/2676))
28
+ - Vue: `cdn: 'auto' | 'cn'` prop to `PorscheDesignSystemProvider` as alternative to using
29
+ `window.PORSCHE_DESIGN_SYSTEM_CDN` ([#2676](https://github.com/porsche-design-system/porsche-design-system/pull/2676))
30
+ - Support for sticky footer to `Modal`
31
+ ([#2723](https://github.com/porsche-design-system/porsche-design-system/pull/2723))
32
+
33
+ #### Changed
34
+
35
+ - Update of Twitter icon ([#2731](https://github.com/porsche-design-system/porsche-design-system/pull/2731))
36
+ - Use China CDN and set `window.PORSCHE_DESIGN_SYSTEM_CDN` for backwards compatibility based on .cn top level domain
37
+ before design system initialization
38
+ ([#2676](https://github.com/porsche-design-system/porsche-design-system/pull/2676))
39
+
40
+ #### Fixed
41
+
42
+ - `Flyout`: Overlapping of sticky header/footer if slotted content has different z-index
43
+ ([#2736](https://github.com/porsche-design-system/porsche-design-system/pull/2736))
44
+ - Keyboard behavior and `aria` semantics if either `a` or `button` elements are used as slotted content in `Tabs Bar`
45
+ component. ([#2713](https://github.com/porsche-design-system/porsche-design-system/pull/2713))
46
+ - React/SSR: compatibility with Next.js v13 app router
47
+ ([#2687](https://github.com/porsche-design-system/porsche-design-system/pull/2687))
48
+ - Consistent `package.json` ECMAScript module exports for `components-{js|angular|react|vue}`
49
+ ([#2739](https://github.com/porsche-design-system/porsche-design-system/pull/2739))
50
+
17
51
  ### [3.5.0] - 2023-07-25
18
52
 
19
53
  ### [3.5.0-rc.0] - 2023-07-21
@@ -25,10 +59,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
25
59
  - Breakpoint customizable property `columns` to `Segmented Control` to set the amount of columns
26
60
  ([#2652](https://github.com/porsche-design-system/porsche-design-system/pull/2652))
27
61
 
28
- ### Fixed
62
+ #### Fixed
29
63
 
30
64
  - Alignment of `Icon` inside `Accordion` header
31
65
  ([#2673](https://github.com/porsche-design-system/porsche-design-system/pull/2673))
66
+ - Direction of `Select Wrapper` dropdown if `direction` property is set to `auto`
67
+ ([#2677](https://github.com/porsche-design-system/porsche-design-system/pull/2677))
32
68
 
33
69
  ### [3.4.0] - 2023-07-14
34
70
 
@@ -425,6 +425,11 @@ declare const BUTTON_ARIA_ATTRIBUTES: readonly [
425
425
  "aria-haspopup"
426
426
  ];
427
427
  export type ButtonAriaAttribute = typeof BUTTON_ARIA_ATTRIBUTES[number];
428
+ declare const LINK_ARIA_ATTRIBUTES: readonly [
429
+ "aria-label",
430
+ "aria-current"
431
+ ];
432
+ export type LinkAriaAttribute = (typeof LINK_ARIA_ATTRIBUTES)[number];
428
433
  declare const breakpoints: readonly [
429
434
  "base",
430
435
  "xs",
@@ -570,7 +575,7 @@ declare const LINK_TARGETS: readonly [
570
575
  "_parent",
571
576
  "_top"
572
577
  ];
573
- export type LinkTarget = typeof LINK_TARGETS[number] | string;
578
+ export type LinkTarget = (typeof LINK_TARGETS)[number] | string;
574
579
  export type LinkButtonIconName = IconName | "none";
575
580
  export type ButtonVariant = LinkButtonVariant;
576
581
  export type LinkVariant = LinkButtonVariant;
@@ -649,10 +654,7 @@ declare const CONTENT_WRAPPER_WIDTHS: readonly [
649
654
  ];
650
655
  export type ContentWrapperWidth = typeof CONTENT_WRAPPER_WIDTHS[number];
651
656
  export type CrestTarget = LinkTarget;
652
- declare const CREST_ARIA_ATTRIBUTES: readonly [
653
- "aria-label"
654
- ];
655
- export type CrestAriaAttribute = (typeof CREST_ARIA_ATTRIBUTES)[number];
657
+ export type CrestAriaAttribute = LinkAriaAttribute;
656
658
  declare const DISPLAY_TAGS: readonly [
657
659
  "h1",
658
660
  "h2",
@@ -864,7 +866,7 @@ declare const HEADLINE_VARIANTS: readonly [
864
866
  "headline-4",
865
867
  "headline-5"
866
868
  ];
867
- export type HeadlineVariantType = typeof HEADLINE_VARIANTS[number];
869
+ export type HeadlineVariantType = (typeof HEADLINE_VARIANTS)[number];
868
870
  export type HeadlineVariantCustom = Exclude<BreakpointCustomizable<TextSize>, TextSize>;
869
871
  export type HeadlineVariant = HeadlineVariantType | HeadlineVariantCustom | Extract<TextSize, "inherit">;
870
872
  declare const HEADLINE_TAGS: readonly [
@@ -875,18 +877,18 @@ declare const HEADLINE_TAGS: readonly [
875
877
  "h5",
876
878
  "h6"
877
879
  ];
878
- export type HeadlineTag = typeof HEADLINE_TAGS[number];
880
+ export type HeadlineTag = (typeof HEADLINE_TAGS)[number];
879
881
  declare const HEADLINE_COLORS: readonly [
880
882
  "primary",
881
883
  "default",
882
884
  "inherit"
883
885
  ];
884
- export type HeadlineColor = typeof HEADLINE_COLORS[number];
886
+ export type HeadlineColor = (typeof HEADLINE_COLORS)[number];
885
887
  export type HeadlineAlign = TextAlign;
886
888
  declare const ICON_ARIA_ATTRIBUTES: readonly [
887
889
  "aria-label"
888
890
  ];
889
- export type IconAriaAttribute = typeof ICON_ARIA_ATTRIBUTES[number];
891
+ export type IconAriaAttribute = (typeof ICON_ARIA_ATTRIBUTES)[number];
890
892
  export type IconSize = TextSize;
891
893
  declare const ICON_COLORS: readonly [
892
894
  "primary",
@@ -906,7 +908,7 @@ declare const ICON_COLORS: readonly [
906
908
  "notification-neutral",
907
909
  "state-disabled"
908
910
  ];
909
- export type IconColor = typeof ICON_COLORS[number];
911
+ export type IconColor = (typeof ICON_COLORS)[number];
910
912
  declare const INLINE_NOTIFICATION_STATES: readonly [
911
913
  "success",
912
914
  "info",
@@ -916,10 +918,6 @@ declare const INLINE_NOTIFICATION_STATES: readonly [
916
918
  ];
917
919
  export type InlineNotificationState = typeof INLINE_NOTIFICATION_STATES[number];
918
920
  export type InlineNotificationActionIcon = IconName;
919
- declare const LINK_ARIA_ATTRIBUTES: readonly [
920
- "aria-label"
921
- ];
922
- export type LinkAriaAttribute = typeof LINK_ARIA_ATTRIBUTES[number];
923
921
  export type LinkIcon = LinkButtonIconName;
924
922
  export type LinkPureIcon = LinkButtonIconName;
925
923
  export type LinkPureAriaAttribute = LinkAriaAttribute;
@@ -971,10 +969,7 @@ declare const MARQUE_VARIANTS: readonly [
971
969
  ];
972
970
  export type MarqueVariant = (typeof MARQUE_VARIANTS)[number];
973
971
  export type MarqueTarget = LinkTarget;
974
- declare const MARQUE_ARIA_ATTRIBUTES: readonly [
975
- "aria-label"
976
- ];
977
- export type MarqueAriaAttribute = (typeof MARQUE_ARIA_ATTRIBUTES)[number];
972
+ export type MarqueAriaAttribute = LinkAriaAttribute;
978
973
  declare const MARQUE_SIZES: readonly [
979
974
  "responsive",
980
975
  "small",
@@ -1191,8 +1186,5 @@ declare const WORDMARK_SIZES: readonly [
1191
1186
  ];
1192
1187
  export type WordmarkSize = (typeof WORDMARK_SIZES)[number];
1193
1188
  export type WordmarkTarget = LinkTarget;
1194
- declare const WORDMARK_ARIA_ATTRIBUTES: readonly [
1195
- "aria-label"
1196
- ];
1197
- export type WordmarkAriaAttribute = (typeof WORDMARK_ARIA_ATTRIBUTES)[number];
1189
+ export type WordmarkAriaAttribute = LinkAriaAttribute;
1198
1190
  export {};
@@ -63,8 +63,9 @@ import * as i60 from "./lib/components/toast.wrapper";
63
63
  import * as i61 from "./lib/components/wordmark.wrapper";
64
64
  export type PorscheDesignSystemModuleConfig = {
65
65
  prefix?: string;
66
+ cdn?: 'auto' | 'cn';
66
67
  };
67
- export declare class DefaultConfig implements Required<PorscheDesignSystemModuleConfig> {
68
+ export declare class DefaultConfig implements PorscheDesignSystemModuleConfig {
68
69
  prefix: string;
69
70
  }
70
71
  export declare class PorscheDesignSystemModule {
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXdyYXBwZXIvc3JjL2xpYi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyogQXV0byBHZW5lcmF0ZWQgQmVsb3cgKi9cbmV4cG9ydCB0eXBlIEJvb2xlYW5pc2ggPSBib29sZWFuIHwgXCJ0cnVlXCIgfCBcImZhbHNlXCI7XG5leHBvcnQgdHlwZSBBcmlhQXR0cmlidXRlcyA9IHtcblx0LyoqIElkZW50aWZpZXMgdGhlIGN1cnJlbnRseSBhY3RpdmUgZWxlbWVudCB3aGVuIERPTSBmb2N1cyBpcyBvbiBhIGNvbXBvc2l0ZSB3aWRnZXQsIHRleHRib3gsIGdyb3VwLCBvciBhcHBsaWNhdGlvbi4gKi9cblx0XCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnRcIj86IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqIEluZGljYXRlcyB3aGV0aGVyIGFzc2lzdGl2ZSB0ZWNobm9sb2dpZXMgd2lsbCBwcmVzZW50IGFsbCwgb3Igb25seSBwYXJ0cyBvZiwgdGhlIGNoYW5nZWQgcmVnaW9uIGJhc2VkIG9uIHRoZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyBkZWZpbmVkIGJ5IHRoZSBhcmlhLXJlbGV2YW50IGF0dHJpYnV0ZS4gKi9cblx0XCJhcmlhLWF0b21pY1wiPzogQm9vbGVhbmlzaCB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIEluZGljYXRlcyB3aGV0aGVyIGlucHV0dGluZyB0ZXh0IGNvdWxkIHRyaWdnZXIgZGlzcGxheSBvZiBvbmUgb3IgbW9yZSBwcmVkaWN0aW9ucyBvZiB0aGUgdXNlcidzIGludGVuZGVkIHZhbHVlIGZvciBhbiBpbnB1dCBhbmQgc3BlY2lmaWVzIGhvdyBwcmVkaWN0aW9ucyB3b3VsZCBiZVxuXHQgKiBwcmVzZW50ZWQgaWYgdGhleSBhcmUgbWFkZS5cblx0ICovXG5cdFwiYXJpYS1hdXRvY29tcGxldGVcIj86IFwibm9uZVwiIHwgXCJpbmxpbmVcIiB8IFwibGlzdFwiIHwgXCJib3RoXCIgfCB1bmRlZmluZWQ7XG5cdC8qKiBJbmRpY2F0ZXMgYW4gZWxlbWVudCBpcyBiZWluZyBtb2RpZmllZCBhbmQgdGhhdCBhc3Npc3RpdmUgdGVjaG5vbG9naWVzIE1BWSB3YW50IHRvIHdhaXQgdW50aWwgdGhlIG1vZGlmaWNhdGlvbnMgYXJlIGNvbXBsZXRlIGJlZm9yZSBleHBvc2luZyB0aGVtIHRvIHRoZSB1c2VyLiAqL1xuXHQvKipcblx0ICogRGVmaW5lcyBhIHN0cmluZyB2YWx1ZSB0aGF0IGxhYmVscyB0aGUgY3VycmVudCBlbGVtZW50LCB3aGljaCBpcyBpbnRlbmRlZCB0byBiZSBjb252ZXJ0ZWQgaW50byBCcmFpbGxlLlxuXHQgKiBAc2VlIGFyaWEtbGFiZWwuXG5cdCAqL1xuXHRcImFyaWEtYnJhaWxsZWxhYmVsXCI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBEZWZpbmVzIGEgaHVtYW4tcmVhZGFibGUsIGF1dGhvci1sb2NhbGl6ZWQgYWJicmV2aWF0ZWQgZGVzY3JpcHRpb24gZm9yIHRoZSByb2xlIG9mIGFuIGVsZW1lbnQsIHdoaWNoIGlzIGludGVuZGVkIHRvIGJlIGNvbnZlcnRlZCBpbnRvIEJyYWlsbGUuXG5cdCAqIEBzZWUgYXJpYS1yb2xlZGVzY3JpcHRpb24uXG5cdCAqL1xuXHRcImFyaWEtYnJhaWxsZXJvbGVkZXNjcmlwdGlvblwiPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHRcImFyaWEtYnVzeVwiPzogQm9vbGVhbmlzaCB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIEluZGljYXRlcyB0aGUgY3VycmVudCBcImNoZWNrZWRcIiBzdGF0ZSBvZiBjaGVja2JveGVzLCByYWRpbyBidXR0b25zLCBhbmQgb3RoZXIgd2lkZ2V0cy5cblx0ICogQHNlZSBhcmlhLXByZXNzZWQgQHNlZSBhcmlhLXNlbGVjdGVkLlxuXHQgKi9cblx0XCJhcmlhLWNoZWNrZWRcIj86IGJvb2xlYW4gfCBcImZhbHNlXCIgfCBcIm1peGVkXCIgfCBcInRydWVcIiB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIERlZmluZXMgdGhlIHRvdGFsIG51bWJlciBvZiBjb2x1bW5zIGluIGEgdGFibGUsIGdyaWQsIG9yIHRyZWVncmlkLlxuXHQgKiBAc2VlIGFyaWEtY29saW5kZXguXG5cdCAqL1xuXHRcImFyaWEtY29sY291bnRcIj86IG51bWJlciB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIERlZmluZXMgYW4gZWxlbWVudCdzIGNvbHVtbiBpbmRleCBvciBwb3NpdGlvbiB3aXRoIHJlc3BlY3QgdG8gdGhlIHRvdGFsIG51bWJlciBvZiBjb2x1bW5zIHdpdGhpbiBhIHRhYmxlLCBncmlkLCBvciB0cmVlZ3JpZC5cblx0ICogQHNlZSBhcmlhLWNvbGNvdW50IEBzZWUgYXJpYS1jb2xzcGFuLlxuXHQgKi9cblx0XCJhcmlhLWNvbGluZGV4XCI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBEZWZpbmVzIGEgaHVtYW4gcmVhZGFibGUgdGV4dCBhbHRlcm5hdGl2ZSBvZiBhcmlhLWNvbGluZGV4LlxuXHQgKiBAc2VlIGFyaWEtcm93aW5kZXh0ZXh0LlxuXHQgKi9cblx0XCJhcmlhLWNvbGluZGV4dGV4dFwiPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogRGVmaW5lcyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgc3Bhbm5lZCBieSBhIGNlbGwgb3IgZ3JpZGNlbGwgd2l0aGluIGEgdGFibGUsIGdyaWQsIG9yIHRyZWVncmlkLlxuXHQgKiBAc2VlIGFyaWEtY29saW5kZXggQHNlZSBhcmlhLXJvd3NwYW4uXG5cdCAqL1xuXHRcImFyaWEtY29sc3BhblwiPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogSWRlbnRpZmllcyB0aGUgZWxlbWVudCAob3IgZWxlbWVudHMpIHdob3NlIGNvbnRlbnRzIG9yIHByZXNlbmNlIGFyZSBjb250cm9sbGVkIGJ5IHRoZSBjdXJyZW50IGVsZW1lbnQuXG5cdCAqIEBzZWUgYXJpYS1vd25zLlxuXHQgKi9cblx0XCJhcmlhLWNvbnRyb2xzXCI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdC8qKiBJbmRpY2F0ZXMgdGhlIGVsZW1lbnQgdGhhdCByZXByZXNlbnRzIHRoZSBjdXJyZW50IGl0ZW0gd2l0aGluIGEgY29udGFpbmVyIG9yIHNldCBvZiByZWxhdGVkIGVsZW1lbnRzLiAqL1xuXHRcImFyaWEtY3VycmVudFwiPzogYm9vbGVhbiB8IFwiZmFsc2VcIiB8IFwidHJ1ZVwiIHwgXCJwYWdlXCIgfCBcInN0ZXBcIiB8IFwibG9jYXRpb25cIiB8IFwiZGF0ZVwiIHwgXCJ0aW1lXCIgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBJZGVudGlmaWVzIHRoZSBlbGVtZW50IChvciBlbGVtZW50cykgdGhhdCBkZXNjcmliZXMgdGhlIG9iamVjdC5cblx0ICogQHNlZSBhcmlhLWxhYmVsbGVkYnlcblx0ICovXG5cdFwiYXJpYS1kZXNjcmliZWRieVwiPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogRGVmaW5lcyBhIHN0cmluZyB2YWx1ZSB0aGF0IGRlc2NyaWJlcyBvciBhbm5vdGF0ZXMgdGhlIGN1cnJlbnQgZWxlbWVudC5cblx0ICogQHNlZSByZWxhdGVkIGFyaWEtZGVzY3JpYmVkYnkuXG5cdCAqL1xuXHRcImFyaWEtZGVzY3JpcHRpb25cIj86IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIElkZW50aWZpZXMgdGhlIGVsZW1lbnQgdGhhdCBwcm92aWRlcyBhIGRldGFpbGVkLCBleHRlbmRlZCBkZXNjcmlwdGlvbiBmb3IgdGhlIG9iamVjdC5cblx0ICogQHNlZSBhcmlhLWRlc2NyaWJlZGJ5LlxuXHQgKi9cblx0XCJhcmlhLWRldGFpbHNcIj86IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIEluZGljYXRlcyB0aGF0IHRoZSBlbGVtZW50IGlzIHBlcmNlaXZhYmxlIGJ1dCBkaXNhYmxlZCwgc28gaXQgaXMgbm90IGVkaXRhYmxlIG9yIG90aGVyd2lzZSBvcGVyYWJsZS5cblx0ICogQHNlZSBhcmlhLWhpZGRlbiBAc2VlIGFyaWEtcmVhZG9ubHkuXG5cdCAqL1xuXHRcImFyaWEtZGlzYWJsZWRcIj86IEJvb2xlYW5pc2ggfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBJbmRpY2F0ZXMgd2hhdCBmdW5jdGlvbnMgY2FuIGJlIHBlcmZvcm1lZCB3aGVuIGEgZHJhZ2dlZCBvYmplY3QgaXMgcmVsZWFzZWQgb24gdGhlIGRyb3AgdGFyZ2V0LlxuXHQgKiBAZGVwcmVjYXRlZCBpbiBBUklBIDEuMVxuXHQgKi9cblx0XCJhcmlhLWRyb3BlZmZlY3RcIj86IFwibm9uZVwiIHwgXCJjb3B5XCIgfCBcImV4ZWN1dGVcIiB8IFwibGlua1wiIHwgXCJtb3ZlXCIgfCBcInBvcHVwXCIgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBJZGVudGlmaWVzIHRoZSBlbGVtZW50IHRoYXQgcHJvdmlkZXMgYW4gZXJyb3IgbWVzc2FnZSBmb3IgdGhlIG9iamVjdC5cblx0ICogQHNlZSBhcmlhLWludmFsaWQgQHNlZSBhcmlhLWRlc2NyaWJlZGJ5LlxuXHQgKi9cblx0XCJhcmlhLWVycm9ybWVzc2FnZVwiPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHQvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGVsZW1lbnQsIG9yIGFub3RoZXIgZ3JvdXBpbmcgZWxlbWVudCBpdCBjb250cm9scywgaXMgY3VycmVudGx5IGV4cGFuZGVkIG9yIGNvbGxhcHNlZC4gKi9cblx0XCJhcmlhLWV4cGFuZGVkXCI/OiBCb29sZWFuaXNoIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogSWRlbnRpZmllcyB0aGUgbmV4dCBlbGVtZW50IChvciBlbGVtZW50cykgaW4gYW4gYWx0ZXJuYXRlIHJlYWRpbmcgb3JkZXIgb2YgY29udGVudCB3aGljaCwgYXQgdGhlIHVzZXIncyBkaXNjcmV0aW9uLFxuXHQgKiBhbGxvd3MgYXNzaXN0aXZlIHRlY2hub2xvZ3kgdG8gb3ZlcnJpZGUgdGhlIGdlbmVyYWwgZGVmYXVsdCBvZiByZWFkaW5nIGluIGRvY3VtZW50IHNvdXJjZSBvcmRlci5cblx0ICovXG5cdFwiYXJpYS1mbG93dG9cIj86IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIEluZGljYXRlcyBhbiBlbGVtZW50J3MgXCJncmFiYmVkXCIgc3RhdGUgaW4gYSBkcmFnLWFuZC1kcm9wIG9wZXJhdGlvbi5cblx0ICogQGRlcHJlY2F0ZWQgaW4gQVJJQSAxLjFcblx0ICovXG5cdFwiYXJpYS1ncmFiYmVkXCI/OiBCb29sZWFuaXNoIHwgdW5kZWZpbmVkO1xuXHQvKiogSW5kaWNhdGVzIHRoZSBhdmFpbGFiaWxpdHkgYW5kIHR5cGUgb2YgaW50ZXJhY3RpdmUgcG9wdXAgZWxlbWVudCwgc3VjaCBhcyBtZW51IG9yIGRpYWxvZywgdGhhdCBjYW4gYmUgdHJpZ2dlcmVkIGJ5IGFuIGVsZW1lbnQuICovXG5cdFwiYXJpYS1oYXNwb3B1cFwiPzogYm9vbGVhbiB8IFwiZmFsc2VcIiB8IFwidHJ1ZVwiIHwgXCJtZW51XCIgfCBcImxpc3Rib3hcIiB8IFwidHJlZVwiIHwgXCJncmlkXCIgfCBcImRpYWxvZ1wiIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGVsZW1lbnQgaXMgZXhwb3NlZCB0byBhbiBhY2Nlc3NpYmlsaXR5IEFQSS5cblx0ICogQHNlZSBhcmlhLWRpc2FibGVkLlxuXHQgKi9cblx0XCJhcmlhLWhpZGRlblwiPzogQm9vbGVhbmlzaCB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIEluZGljYXRlcyB0aGUgZW50ZXJlZCB2YWx1ZSBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBmb3JtYXQgZXhwZWN0ZWQgYnkgdGhlIGFwcGxpY2F0aW9uLlxuXHQgKiBAc2VlIGFyaWEtZXJyb3JtZXNzYWdlLlxuXHQgKi9cblx0XCJhcmlhLWludmFsaWRcIj86IGJvb2xlYW4gfCBcImZhbHNlXCIgfCBcInRydWVcIiB8IFwiZ3JhbW1hclwiIHwgXCJzcGVsbGluZ1wiIHwgdW5kZWZpbmVkO1xuXHQvKiogSW5kaWNhdGVzIGtleWJvYXJkIHNob3J0Y3V0cyB0aGF0IGFuIGF1dGhvciBoYXMgaW1wbGVtZW50ZWQgdG8gYWN0aXZhdGUgb3IgZ2l2ZSBmb2N1cyB0byBhbiBlbGVtZW50LiAqL1xuXHRcImFyaWEta2V5c2hvcnRjdXRzXCI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBEZWZpbmVzIGEgc3RyaW5nIHZhbHVlIHRoYXQgbGFiZWxzIHRoZSBjdXJyZW50IGVsZW1lbnQuXG5cdCAqIEBzZWUgYXJpYS1sYWJlbGxlZGJ5LlxuXHQgKi9cblx0XCJhcmlhLWxhYmVsXCI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBJZGVudGlmaWVzIHRoZSBlbGVtZW50IChvciBlbGVtZW50cykgdGhhdCBsYWJlbHMgdGhlIGN1cnJlbnQgZWxlbWVudC5cblx0ICogQHNlZSBhcmlhLWRlc2NyaWJlZGJ5LlxuXHQgKi9cblx0XCJhcmlhLWxhYmVsbGVkYnlcIj86IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqIERlZmluZXMgdGhlIGhpZXJhcmNoaWNhbCBsZXZlbCBvZiBhbiBlbGVtZW50IHdpdGhpbiBhIHN0cnVjdHVyZS4gKi9cblx0XCJhcmlhLWxldmVsXCI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cdC8qKiBJbmRpY2F0ZXMgdGhhdCBhbiBlbGVtZW50IHdpbGwgYmUgdXBkYXRlZCwgYW5kIGRlc2NyaWJlcyB0aGUgdHlwZXMgb2YgdXBkYXRlcyB0aGUgdXNlciBhZ2VudHMsIGFzc2lzdGl2ZSB0ZWNobm9sb2dpZXMsIGFuZCB1c2VyIGNhbiBleHBlY3QgZnJvbSB0aGUgbGl2ZSByZWdpb24uICovXG5cdFwiYXJpYS1saXZlXCI/OiBcIm9mZlwiIHwgXCJhc3NlcnRpdmVcIiB8IFwicG9saXRlXCIgfCB1bmRlZmluZWQ7XG5cdC8qKiBJbmRpY2F0ZXMgd2hldGhlciBhbiBlbGVtZW50IGlzIG1vZGFsIHdoZW4gZGlzcGxheWVkLiAqL1xuXHRcImFyaWEtbW9kYWxcIj86IEJvb2xlYW5pc2ggfCB1bmRlZmluZWQ7XG5cdC8qKiBJbmRpY2F0ZXMgd2hldGhlciBhIHRleHQgYm94IGFjY2VwdHMgbXVsdGlwbGUgbGluZXMgb2YgaW5wdXQgb3Igb25seSBhIHNpbmdsZSBsaW5lLiAqL1xuXHRcImFyaWEtbXVsdGlsaW5lXCI/OiBCb29sZWFuaXNoIHwgdW5kZWZpbmVkO1xuXHQvKiogSW5kaWNhdGVzIHRoYXQgdGhlIHVzZXIgbWF5IHNlbGVjdCBtb3JlIHRoYW4gb25lIGl0ZW0gZnJvbSB0aGUgY3VycmVudCBzZWxlY3RhYmxlIGRlc2NlbmRhbnRzLiAqL1xuXHRcImFyaWEtbXVsdGlzZWxlY3RhYmxlXCI/OiBCb29sZWFuaXNoIHwgdW5kZWZpbmVkO1xuXHQvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGVsZW1lbnQncyBvcmllbnRhdGlvbiBpcyBob3Jpem9udGFsLCB2ZXJ0aWNhbCwgb3IgdW5rbm93bi9hbWJpZ3VvdXMuICovXG5cdFwiYXJpYS1vcmllbnRhdGlvblwiPzogXCJob3Jpem9udGFsXCIgfCBcInZlcnRpY2FsXCIgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBJZGVudGlmaWVzIGFuIGVsZW1lbnQgKG9yIGVsZW1lbnRzKSBpbiBvcmRlciB0byBkZWZpbmUgYSB2aXN1YWwsIGZ1bmN0aW9uYWwsIG9yIGNvbnRleHR1YWwgcGFyZW50L2NoaWxkIHJlbGF0aW9uc2hpcFxuXHQgKiBiZXR3ZWVuIERPTSBlbGVtZW50cyB3aGVyZSB0aGUgRE9NIGhpZXJhcmNoeSBjYW5ub3QgYmUgdXNlZCB0byByZXByZXNlbnQgdGhlIHJlbGF0aW9uc2hpcC5cblx0ICogQHNlZSBhcmlhLWNvbnRyb2xzLlxuXHQgKi9cblx0XCJhcmlhLW93bnNcIj86IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIERlZmluZXMgYSBzaG9ydCBoaW50IChhIHdvcmQgb3Igc2hvcnQgcGhyYXNlKSBpbnRlbmRlZCB0byBhaWQgdGhlIHVzZXIgd2l0aCBkYXRhIGVudHJ5IHdoZW4gdGhlIGNvbnRyb2wgaGFzIG5vIHZhbHVlLlxuXHQgKiBBIGhpbnQgY291bGQgYmUgYSBzYW1wbGUgdmFsdWUgb3IgYSBicmllZiBkZXNjcmlwdGlvbiBvZiB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0XCJhcmlhLXBsYWNlaG9sZGVyXCI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBEZWZpbmVzIGFuIGVsZW1lbnQncyBudW1iZXIgb3IgcG9zaXRpb24gaW4gdGhlIGN1cnJlbnQgc2V0IG9mIGxpc3RpdGVtcyBvciB0cmVlaXRlbXMuIE5vdCByZXF1aXJlZCBpZiBhbGwgZWxlbWVudHMgaW4gdGhlIHNldCBhcmUgcHJlc2VudCBpbiB0aGUgRE9NLlxuXHQgKiBAc2VlIGFyaWEtc2V0c2l6ZS5cblx0ICovXG5cdFwiYXJpYS1wb3NpbnNldFwiPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogSW5kaWNhdGVzIHRoZSBjdXJyZW50IFwicHJlc3NlZFwiIHN0YXRlIG9mIHRvZ2dsZSBidXR0b25zLlxuXHQgKiBAc2VlIGFyaWEtY2hlY2tlZCBAc2VlIGFyaWEtc2VsZWN0ZWQuXG5cdCAqL1xuXHRcImFyaWEtcHJlc3NlZFwiPzogYm9vbGVhbiB8IFwiZmFsc2VcIiB8IFwibWl4ZWRcIiB8IFwidHJ1ZVwiIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogSW5kaWNhdGVzIHRoYXQgdGhlIGVsZW1lbnQgaXMgbm90IGVkaXRhYmxlLCBidXQgaXMgb3RoZXJ3aXNlIG9wZXJhYmxlLlxuXHQgKiBAc2VlIGFyaWEtZGlzYWJsZWQuXG5cdCAqL1xuXHRcImFyaWEtcmVhZG9ubHlcIj86IEJvb2xlYW5pc2ggfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBJbmRpY2F0ZXMgd2hhdCBub3RpZmljYXRpb25zIHRoZSB1c2VyIGFnZW50IHdpbGwgdHJpZ2dlciB3aGVuIHRoZSBhY2Nlc3NpYmlsaXR5IHRyZWUgd2l0aGluIGEgbGl2ZSByZWdpb24gaXMgbW9kaWZpZWQuXG5cdCAqIEBzZWUgYXJpYS1hdG9taWMuXG5cdCAqL1xuXHRcImFyaWEtcmVsZXZhbnRcIj86IFwiYWRkaXRpb25zXCIgfCBcImFkZGl0aW9ucyByZW1vdmFsc1wiIHwgXCJhZGRpdGlvbnMgdGV4dFwiIHwgXCJhbGxcIiB8IFwicmVtb3ZhbHNcIiB8IFwicmVtb3ZhbHMgYWRkaXRpb25zXCIgfCBcInJlbW92YWxzIHRleHRcIiB8IFwidGV4dFwiIHwgXCJ0ZXh0IGFkZGl0aW9uc1wiIHwgXCJ0ZXh0IHJlbW92YWxzXCIgfCB1bmRlZmluZWQ7XG5cdC8qKiBJbmRpY2F0ZXMgdGhhdCB1c2VyIGlucHV0IGlzIHJlcXVpcmVkIG9uIHRoZSBlbGVtZW50IGJlZm9yZSBhIGZvcm0gbWF5IGJlIHN1Ym1pdHRlZC4gKi9cblx0XCJhcmlhLXJlcXVpcmVkXCI/OiBCb29sZWFuaXNoIHwgdW5kZWZpbmVkO1xuXHQvKiogRGVmaW5lcyBhIGh1bWFuLXJlYWRhYmxlLCBhdXRob3ItbG9jYWxpemVkIGRlc2NyaXB0aW9uIGZvciB0aGUgcm9sZSBvZiBhbiBlbGVtZW50LiAqL1xuXHRcImFyaWEtcm9sZWRlc2NyaXB0aW9uXCI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBEZWZpbmVzIHRoZSB0b3RhbCBudW1iZXIgb2Ygcm93cyBpbiBhIHRhYmxlLCBncmlkLCBvciB0cmVlZ3JpZC5cblx0ICogQHNlZSBhcmlhLXJvd2luZGV4LlxuXHQgKi9cblx0XCJhcmlhLXJvd2NvdW50XCI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBEZWZpbmVzIGFuIGVsZW1lbnQncyByb3cgaW5kZXggb3IgcG9zaXRpb24gd2l0aCByZXNwZWN0IHRvIHRoZSB0b3RhbCBudW1iZXIgb2Ygcm93cyB3aXRoaW4gYSB0YWJsZSwgZ3JpZCwgb3IgdHJlZWdyaWQuXG5cdCAqIEBzZWUgYXJpYS1yb3djb3VudCBAc2VlIGFyaWEtcm93c3Bhbi5cblx0ICovXG5cdFwiYXJpYS1yb3dpbmRleFwiPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogRGVmaW5lcyBhIGh1bWFuIHJlYWRhYmxlIHRleHQgYWx0ZXJuYXRpdmUgb2YgYXJpYS1yb3dpbmRleC5cblx0ICogQHNlZSBhcmlhLWNvbGluZGV4dGV4dC5cblx0ICovXG5cdFwiYXJpYS1yb3dpbmRleHRleHRcIj86IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIERlZmluZXMgdGhlIG51bWJlciBvZiByb3dzIHNwYW5uZWQgYnkgYSBjZWxsIG9yIGdyaWRjZWxsIHdpdGhpbiBhIHRhYmxlLCBncmlkLCBvciB0cmVlZ3JpZC5cblx0ICogQHNlZSBhcmlhLXJvd2luZGV4IEBzZWUgYXJpYS1jb2xzcGFuLlxuXHQgKi9cblx0XCJhcmlhLXJvd3NwYW5cIj86IG51bWJlciB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIEluZGljYXRlcyB0aGUgY3VycmVudCBcInNlbGVjdGVkXCIgc3RhdGUgb2YgdmFyaW91cyB3aWRnZXRzLlxuXHQgKiBAc2VlIGFyaWEtY2hlY2tlZCBAc2VlIGFyaWEtcHJlc3NlZC5cblx0ICovXG5cdFwiYXJpYS1zZWxlY3RlZFwiPzogQm9vbGVhbmlzaCB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIERlZmluZXMgdGhlIG51bWJlciBvZiBpdGVtcyBpbiB0aGUgY3VycmVudCBzZXQgb2YgbGlzdGl0ZW1zIG9yIHRyZWVpdGVtcy4gTm90IHJlcXVpcmVkIGlmIGFsbCBlbGVtZW50cyBpbiB0aGUgc2V0IGFyZSBwcmVzZW50IGluIHRoZSBET00uXG5cdCAqIEBzZWUgYXJpYS1wb3NpbnNldC5cblx0ICovXG5cdFwiYXJpYS1zZXRzaXplXCI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cdC8qKiBJbmRpY2F0ZXMgaWYgaXRlbXMgaW4gYSB0YWJsZSBvciBncmlkIGFyZSBzb3J0ZWQgaW4gYXNjZW5kaW5nIG9yIGRlc2NlbmRpbmcgb3JkZXIuICovXG5cdFwiYXJpYS1zb3J0XCI/OiBcIm5vbmVcIiB8IFwiYXNjZW5kaW5nXCIgfCBcImRlc2NlbmRpbmdcIiB8IFwib3RoZXJcIiB8IHVuZGVmaW5lZDtcblx0LyoqIERlZmluZXMgdGhlIG1heGltdW0gYWxsb3dlZCB2YWx1ZSBmb3IgYSByYW5nZSB3aWRnZXQuICovXG5cdFwiYXJpYS12YWx1ZW1heFwiPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXHQvKiogRGVmaW5lcyB0aGUgbWluaW11bSBhbGxvd2VkIHZhbHVlIGZvciBhIHJhbmdlIHdpZGdldC4gKi9cblx0XCJhcmlhLXZhbHVlbWluXCI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBEZWZpbmVzIHRoZSBjdXJyZW50IHZhbHVlIGZvciBhIHJhbmdlIHdpZGdldC5cblx0ICogQHNlZSBhcmlhLXZhbHVldGV4dC5cblx0ICovXG5cdFwiYXJpYS12YWx1ZW5vd1wiPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXHQvKiogRGVmaW5lcyB0aGUgaHVtYW4gcmVhZGFibGUgdGV4dCBhbHRlcm5hdGl2ZSBvZiBhcmlhLXZhbHVlbm93IGZvciBhIHJhbmdlIHdpZGdldC4gKi9cblx0XCJhcmlhLXZhbHVldGV4dFwiPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHQvKiogQWxsIHRoZSBXQUktQVJJQSAxLjEgcm9sZSBhdHRyaWJ1dGUgdmFsdWVzIGZyb20gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLTEuMS8jcm9sZV9kZWZpbml0aW9ucyAqL1xuXHRyb2xlPzogQXJpYVJvbGU7XG59O1xuZXhwb3J0IHR5cGUgQXJpYVJvbGUgPSBcImFsZXJ0XCIgfCBcImFsZXJ0ZGlhbG9nXCIgfCBcImFwcGxpY2F0aW9uXCIgfCBcImFydGljbGVcIiB8IFwiYmFubmVyXCIgfCBcImJ1dHRvblwiIHwgXCJjZWxsXCIgfCBcImNoZWNrYm94XCIgfCBcImNvbHVtbmhlYWRlclwiIHwgXCJjb21ib2JveFwiIHwgXCJjb21wbGVtZW50YXJ5XCIgfCBcImNvbnRlbnRpbmZvXCIgfCBcImRlZmluaXRpb25cIiB8IFwiZGlhbG9nXCIgfCBcImRpcmVjdG9yeVwiIHwgXCJkb2N1bWVudFwiIHwgXCJmZWVkXCIgfCBcImZpZ3VyZVwiIHwgXCJmb3JtXCIgfCBcImdyaWRcIiB8IFwiZ3JpZGNlbGxcIiB8IFwiZ3JvdXBcIiB8IFwiaGVhZGluZ1wiIHwgXCJpbWdcIiB8IFwibGlua1wiIHwgXCJsaXN0XCIgfCBcImxpc3Rib3hcIiB8IFwibGlzdGl0ZW1cIiB8IFwibG9nXCIgfCBcIm1haW5cIiB8IFwibWFycXVlZVwiIHwgXCJtYXRoXCIgfCBcIm1lbnVcIiB8IFwibWVudWJhclwiIHwgXCJtZW51aXRlbVwiIHwgXCJtZW51aXRlbWNoZWNrYm94XCIgfCBcIm1lbnVpdGVtcmFkaW9cIiB8IFwibmF2aWdhdGlvblwiIHwgXCJub25lXCIgfCBcIm5vdGVcIiB8IFwib3B0aW9uXCIgfCBcInByZXNlbnRhdGlvblwiIHwgXCJwcm9ncmVzc2JhclwiIHwgXCJyYWRpb1wiIHwgXCJyYWRpb2dyb3VwXCIgfCBcInJlZ2lvblwiIHwgXCJyb3dcIiB8IFwicm93Z3JvdXBcIiB8IFwicm93aGVhZGVyXCIgfCBcInNjcm9sbGJhclwiIHwgXCJzZWFyY2hcIiB8IFwic2VhcmNoYm94XCIgfCBcInNlcGFyYXRvclwiIHwgXCJzbGlkZXJcIiB8IFwic3BpbmJ1dHRvblwiIHwgXCJzdGF0dXNcIiB8IFwic3dpdGNoXCIgfCBcInRhYlwiIHwgXCJ0YWJsZVwiIHwgXCJ0YWJsaXN0XCIgfCBcInRhYnBhbmVsXCIgfCBcInRlcm1cIiB8IFwidGV4dGJveFwiIHwgXCJ0aW1lclwiIHwgXCJ0b29sYmFyXCIgfCBcInRvb2x0aXBcIiB8IFwidHJlZVwiIHwgXCJ0cmVlZ3JpZFwiIHwgXCJ0cmVlaXRlbVwiO1xuXG5kZWNsYXJlIGNvbnN0IElDT05fTkFNRVM6IHJlYWRvbmx5IFtcblx0XCIzNjBcIixcblx0XCJhY2Nlc3NpYmlsaXR5XCIsXG5cdFwiYWN0aXZlLWNhYmluLXZlbnRpbGF0aW9uXCIsXG5cdFwiYWRkXCIsXG5cdFwiYWRqdXN0XCIsXG5cdFwiYXJyb3ctZG91YmxlLWRvd25cIixcblx0XCJhcnJvdy1kb3VibGUtbGVmdFwiLFxuXHRcImFycm93LWRvdWJsZS1yaWdodFwiLFxuXHRcImFycm93LWRvdWJsZS11cFwiLFxuXHRcImFycm93LWRvd25cIixcblx0XCJhcnJvdy1maXJzdFwiLFxuXHRcImFycm93LWhlYWQtZG93blwiLFxuXHRcImFycm93LWhlYWQtbGVmdFwiLFxuXHRcImFycm93LWhlYWQtcmlnaHRcIixcblx0XCJhcnJvdy1oZWFkLXVwXCIsXG5cdFwiYXJyb3ctbGFzdFwiLFxuXHRcImFycm93LWxlZnRcIixcblx0XCJhcnJvdy1yaWdodFwiLFxuXHRcImFycm93LXVwXCIsXG5cdFwiYXVnbWVudGVkLXJlYWxpdHlcIixcblx0XCJiYXR0ZXJ5LWVtcHR5XCIsXG5cdFwiYmF0dGVyeS1mdWxsXCIsXG5cdFwiYmVsbFwiLFxuXHRcImJvb2ttYXJrXCIsXG5cdFwiYnJvYWRjYXN0XCIsXG5cdFwiY2FsY3VsYXRvclwiLFxuXHRcImNhbGVuZGFyXCIsXG5cdFwiY2FtZXJhXCIsXG5cdFwiY2FyXCIsXG5cdFwiY2FyLWJhdHRlcnlcIixcblx0XCJjYXJkXCIsXG5cdFwiY2hhcmdpbmctYWN0aXZlXCIsXG5cdFwiY2hhcmdpbmctc3RhdGVcIixcblx0XCJjaGFyZ2luZy1zdGF0aW9uXCIsXG5cdFwiY2hhcnRcIixcblx0XCJjaGF0XCIsXG5cdFwiY2hlY2tcIixcblx0XCJjaXR5XCIsXG5cdFwiY2xpbWF0ZVwiLFxuXHRcImNsaW1hdGUtY29udHJvbFwiLFxuXHRcImNsb2NrXCIsXG5cdFwiY2xvc2VcIixcblx0XCJjbG9zZWQtY2FwdGlvblwiLFxuXHRcImNvMi1lbWlzc2lvblwiLFxuXHRcImNvbXBhcmVcIixcblx0XCJjb25maWd1cmF0ZVwiLFxuXHRcImNvcHlcIixcblx0XCJjb3VudHJ5LXJvYWRcIixcblx0XCJjdWJpYy1jYXBhY2l0eVwiLFxuXHRcImRlbGV0ZVwiLFxuXHRcImRpc2FibGVcIixcblx0XCJkb2N1bWVudFwiLFxuXHRcImRvd25sb2FkXCIsXG5cdFwiZHVyYXRpb25cIixcblx0XCJlZGl0XCIsXG5cdFwiZW1haWxcIixcblx0XCJlcnJvci1maWxsZWRcIixcblx0XCJleGNsYW1hdGlvblwiLFxuXHRcImV4dGVybmFsXCIsXG5cdFwiZmlsdGVyXCIsXG5cdFwiZmluZ2VycHJpbnRcIixcblx0XCJmbGFzaFwiLFxuXHRcImZ1ZWwtc3RhdGlvblwiLFxuXHRcImdhcmFnZVwiLFxuXHRcImdpZnRcIixcblx0XCJnbG9iZVwiLFxuXHRcImdyaWRcIixcblx0XCJoZWFydFwiLFxuXHRcImhlYXJ0LWZpbGxlZFwiLFxuXHRcImhpZ2h3YXlcIixcblx0XCJob21lXCIsXG5cdFwiaG9yblwiLFxuXHRcImltYWdlXCIsXG5cdFwiaW5jcmVhc2VcIixcblx0XCJpbmZvcm1hdGlvblwiLFxuXHRcImluZm9ybWF0aW9uLWZpbGxlZFwiLFxuXHRcImtleVwiLFxuXHRcImxlYWZcIixcblx0XCJsZWF0aGVyXCIsXG5cdFwibGlnaHRcIixcblx0XCJsaXN0XCIsXG5cdFwibG9jYXRlXCIsXG5cdFwibG9ja1wiLFxuXHRcImxvY2stb3BlblwiLFxuXHRcImxvZ28tYXBwbGUtcG9kY2FzdFwiLFxuXHRcImxvZ28tYmFpZHVcIixcblx0XCJsb2dvLWRlbGljaW91c1wiLFxuXHRcImxvZ28tZGlnZ1wiLFxuXHRcImxvZ28tZmFjZWJvb2tcIixcblx0XCJsb2dvLWZvdXJzcXVhcmVcIixcblx0XCJsb2dvLWdtYWlsXCIsXG5cdFwibG9nby1nb29nbGVcIixcblx0XCJsb2dvLWhhdGVuYVwiLFxuXHRcImxvZ28taW5zdGFncmFtXCIsXG5cdFwibG9nby1rYWl4aW5cIixcblx0XCJsb2dvLWtha2FvdGFsa1wiLFxuXHRcImxvZ28tbGlua2VkaW5cIixcblx0XCJsb2dvLW5hdmVyXCIsXG5cdFwibG9nby1waW50ZXJlc3RcIixcblx0XCJsb2dvLXFxXCIsXG5cdFwibG9nby1xcS1zaGFyZVwiLFxuXHRcImxvZ28tcmVkZGl0XCIsXG5cdFwibG9nby1za3lyb2NrXCIsXG5cdFwibG9nby1zb2h1XCIsXG5cdFwibG9nby1zcG90aWZ5XCIsXG5cdFwibG9nby10ZWNlbnRcIixcblx0XCJsb2dvLXRlbGVncmFtXCIsXG5cdFwibG9nby10aWt0b2tcIixcblx0XCJsb2dvLXR1bWJsclwiLFxuXHRcImxvZ28tdHdpdHRlclwiLFxuXHRcImxvZ28tdmliZXJcIixcblx0XCJsb2dvLXZrXCIsXG5cdFwibG9nby13ZWNoYXRcIixcblx0XCJsb2dvLXdlaWJvXCIsXG5cdFwibG9nby13aGF0c2FwcFwiLFxuXHRcImxvZ28teGluZ1wiLFxuXHRcImxvZ28teWFob29cIixcblx0XCJsb2dvLXlvdWt1XCIsXG5cdFwibG9nby15b3V0dWJlXCIsXG5cdFwibG9nb3V0XCIsXG5cdFwibWFwXCIsXG5cdFwibWVudS1kb3RzLWhvcml6b250YWxcIixcblx0XCJtZW51LWRvdHMtdmVydGljYWxcIixcblx0XCJtZW51LWxpbmVzXCIsXG5cdFwibWludXNcIixcblx0XCJtb2JpbGVcIixcblx0XCJtb29uXCIsXG5cdFwib2lsLWNhblwiLFxuXHRcInBhcmtpbmctYnJha2VcIixcblx0XCJwYXJraW5nLWxpZ2h0XCIsXG5cdFwicGF1c2VcIixcblx0XCJwaG9uZVwiLFxuXHRcInBpblwiLFxuXHRcInBpbi1maWxsZWRcIixcblx0XCJwbGF5XCIsXG5cdFwicGx1Z1wiLFxuXHRcInBsdXNcIixcblx0XCJwcmVoZWF0aW5nXCIsXG5cdFwicHJpbnRlclwiLFxuXHRcInB1cmNoYXNlXCIsXG5cdFwicHVzaC1waW5cIixcblx0XCJwdXNoLXBpbi1vZmZcIixcblx0XCJxclwiLFxuXHRcInF1ZXN0aW9uXCIsXG5cdFwicmFjaW5nLWZsYWdcIixcblx0XCJyZWZyZXNoXCIsXG5cdFwicmVwbGF5XCIsXG5cdFwicmVzZXRcIixcblx0XCJyb29mLWNsb3NlZFwiLFxuXHRcInJvb2Ytb3BlblwiLFxuXHRcInJvdXRlXCIsXG5cdFwicnNzXCIsXG5cdFwic2F2ZVwiLFxuXHRcInNjcmVlblwiLFxuXHRcInNlYXJjaFwiLFxuXHRcInNlbmRcIixcblx0XCJzaGFyZVwiLFxuXHRcInNob3BwaW5nLWJhZ1wiLFxuXHRcInNob3BwaW5nLWJhZy1maWxsZWRcIixcblx0XCJzaG9wcGluZy1jYXJ0XCIsXG5cdFwic2hvcHBpbmctY2FydC1maWxsZWRcIixcblx0XCJzaWRlbGlnaHRzXCIsXG5cdFwic25vd2ZsYWtlXCIsXG5cdFwic29ydFwiLFxuXHRcInN0YWNrXCIsXG5cdFwic3RhclwiLFxuXHRcInN0ZWVyaW5nLXdoZWVsXCIsXG5cdFwic3RvcHdhdGNoXCIsXG5cdFwic3VidHJhY3RcIixcblx0XCJzdWNjZXNzXCIsXG5cdFwic3VjY2Vzcy1maWxsZWRcIixcblx0XCJzdW5cIixcblx0XCJzd2l0Y2hcIixcblx0XCJ0YWJsZXRcIixcblx0XCJ0YWNob21ldGVyXCIsXG5cdFwidGlyZVwiLFxuXHRcInRydWNrXCIsXG5cdFwidXBsb2FkXCIsXG5cdFwidXNlclwiLFxuXHRcInVzZXItZmlsbGVkXCIsXG5cdFwidXNlci1ncm91cFwiLFxuXHRcInVzZXItbWFudWFsXCIsXG5cdFwidmlkZW9cIixcblx0XCJ2aWV3XCIsXG5cdFwidmlldy1vZmZcIixcblx0XCJ2b2x1bWUtb2ZmXCIsXG5cdFwidm9sdW1lLXVwXCIsXG5cdFwid2FybmluZ1wiLFxuXHRcIndhcm5pbmctZmlsbGVkXCIsXG5cdFwid2VpZ2h0XCIsXG5cdFwid2lmaVwiLFxuXHRcIndvcmtcIixcblx0XCJ3cmVuY2hcIixcblx0XCJ3cmVuY2hlc1wiLFxuXHRcInpvb20taW5cIixcblx0XCJ6b29tLW91dFwiXG5dO1xuZXhwb3J0IHR5cGUgSWNvbk5hbWUgPSB0eXBlb2YgSUNPTl9OQU1FU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBGT1JNX1NUQVRFUzogcmVhZG9ubHkgW1xuXHRcIm5vbmVcIixcblx0XCJlcnJvclwiLFxuXHRcInN1Y2Nlc3NcIlxuXTtcbmV4cG9ydCB0eXBlIEZvcm1TdGF0ZSA9IHR5cGVvZiBGT1JNX1NUQVRFU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBCVVRUT05fQVJJQV9BVFRSSUJVVEVTOiByZWFkb25seSBbXG5cdFwiYXJpYS1sYWJlbFwiLFxuXHRcImFyaWEtZXhwYW5kZWRcIixcblx0XCJhcmlhLXByZXNzZWRcIixcblx0XCJhcmlhLWhhc3BvcHVwXCJcbl07XG5leHBvcnQgdHlwZSBCdXR0b25BcmlhQXR0cmlidXRlID0gdHlwZW9mIEJVVFRPTl9BUklBX0FUVFJJQlVURVNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgYnJlYWtwb2ludHM6IHJlYWRvbmx5IFtcblx0XCJiYXNlXCIsXG5cdFwieHNcIixcblx0XCJzXCIsXG5cdFwibVwiLFxuXHRcImxcIixcblx0XCJ4bFwiLFxuXHRcInh4bFwiXG5dO1xuZXhwb3J0IHR5cGUgQnJlYWtwb2ludCA9ICh0eXBlb2YgYnJlYWtwb2ludHMpW251bWJlcl07XG5leHBvcnQgdHlwZSBCcmVha3BvaW50VmFsdWVzPFQ+ID0ge1xuXHRba2V5IGluIEJyZWFrcG9pbnRdPzogVDtcbn0gJiB7XG5cdGJhc2U6IFQ7XG59O1xuZXhwb3J0IHR5cGUgQnJlYWtwb2ludEN1c3RvbWl6YWJsZTxUPiA9IFQgfCBCcmVha3BvaW50VmFsdWVzPFQ+IHwgc3RyaW5nO1xuZGVjbGFyZSBjb25zdCBUSEVNRVM6IHJlYWRvbmx5IFtcblx0XCJsaWdodFwiLFxuXHRcImRhcmtcIlxuXTtcbmV4cG9ydCB0eXBlIFRoZW1lID0gdHlwZW9mIFRIRU1FU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBUSUxFX0FTUEVDVF9SQVRJT1M6IHJlYWRvbmx5IFtcblx0XCIxOjFcIixcblx0XCI0OjNcIixcblx0XCIzOjRcIixcblx0XCIxNjo5XCIsXG5cdFwiOToxNlwiXG5dO1xuZXhwb3J0IHR5cGUgVGlsZUFzcGVjdFJhdGlvID0gKHR5cGVvZiBUSUxFX0FTUEVDVF9SQVRJT1MpW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IFRJTEVfU0laRVM6IHJlYWRvbmx5IFtcblx0XCJkZWZhdWx0XCIsXG5cdFwiaW5oZXJpdFwiXG5dO1xuZXhwb3J0IHR5cGUgVGlsZVNpemUgPSAodHlwZW9mIFRJTEVfU0laRVMpW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IFRJTEVfV0VJR0hUUzogcmVhZG9ubHkgW1xuXHRcInJlZ3VsYXJcIixcblx0XCJzZW1pLWJvbGRcIlxuXTtcbmV4cG9ydCB0eXBlIFRpbGVXZWlnaHQgPSAodHlwZW9mIFRJTEVfV0VJR0hUUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIFRpbGVCYWNrZ3JvdW5kID0gKHR5cGVvZiBUSEVNRVMpW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IFRJTEVfQUxJR05TOiByZWFkb25seSBbXG5cdFwidG9wXCIsXG5cdFwiYm90dG9tXCJcbl07XG5leHBvcnQgdHlwZSBUaWxlQWxpZ24gPSAodHlwZW9mIFRJTEVfQUxJR05TKVtudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBTQ1JPTExFUl9BUklBX0FUVFJJQlVURVM6IHJlYWRvbmx5IFtcblx0XCJyb2xlXCJcbl07XG5leHBvcnQgdHlwZSBTY3JvbGxlckFyaWFBdHRyaWJ1dGUgPSAodHlwZW9mIFNDUk9MTEVSX0FSSUFfQVRUUklCVVRFUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgR1JBRElFTlRfQ09MT1JfU0NIRU1FUzogcmVhZG9ubHkgW1xuXHRcImRlZmF1bHRcIixcblx0XCJzdXJmYWNlXCJcbl07XG4vKiogQGRlcHJlY2F0ZWQgKi9cbmV4cG9ydCB0eXBlIFNjcm9sbGVyR3JhZGllbnRDb2xvclNjaGVtZSA9ICh0eXBlb2YgR1JBRElFTlRfQ09MT1JfU0NIRU1FUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgR1JBRElFTlRfQ09MT1JTOiByZWFkb25seSBbXG5cdFwiYmFja2dyb3VuZC1iYXNlXCIsXG5cdFwiYmFja2dyb3VuZC1zdXJmYWNlXCJcbl07XG5leHBvcnQgdHlwZSBTY3JvbGxlckdyYWRpZW50Q29sb3IgPSAodHlwZW9mIEdSQURJRU5UX0NPTE9SUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIFNjcm9sbGVyU2Nyb2xsVG9Qb3NpdGlvbiA9IHtcblx0c2Nyb2xsUG9zaXRpb246IG51bWJlcjtcblx0aXNTbW9vdGg/OiBib29sZWFuO1xufSB8IHN0cmluZztcbmRlY2xhcmUgY29uc3QgU0NST0xMX0lORElDQVRPUl9QT1NJVElPTlM6IHJlYWRvbmx5IFtcblx0XCJ0b3BcIixcblx0XCJjZW50ZXJcIlxuXTtcbi8qKiBAZGVwcmVjYXRlZCAqL1xuZXhwb3J0IHR5cGUgU2Nyb2xsZXJTY3JvbGxJbmRpY2F0b3JQb3NpdGlvbiA9ICh0eXBlb2YgU0NST0xMX0lORElDQVRPUl9QT1NJVElPTlMpW251bWJlcl07XG5leHBvcnQgdHlwZSBTY3JvbGxlckFsaWduU2Nyb2xsSW5kaWNhdG9yID0gU2Nyb2xsZXJTY3JvbGxJbmRpY2F0b3JQb3NpdGlvbjtcbmRlY2xhcmUgY29uc3QgQUxJR05fTEFCRUxTOiByZWFkb25seSBbXG5cdFwibGVmdFwiLFxuXHRcInJpZ2h0XCJcbl07XG5leHBvcnQgdHlwZSBBbGlnbkxhYmVsID0gdHlwZW9mIEFMSUdOX0xBQkVMU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBCVVRUT05fVFlQRVM6IHJlYWRvbmx5IFtcblx0XCJidXR0b25cIixcblx0XCJzdWJtaXRcIixcblx0XCJyZXNldFwiXG5dO1xuZXhwb3J0IHR5cGUgQnV0dG9uVHlwZSA9IHR5cGVvZiBCVVRUT05fVFlQRVNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgSEVBRElOR19UQUdTOiByZWFkb25seSBbXG5cdFwiaDFcIixcblx0XCJoMlwiLFxuXHRcImgzXCIsXG5cdFwiaDRcIixcblx0XCJoNVwiLFxuXHRcImg2XCJcbl07XG5leHBvcnQgdHlwZSBIZWFkaW5nVGFnID0gdHlwZW9mIEhFQURJTkdfVEFHU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBMSU5LX0JVVFRPTl9WQVJJQU5UUzogcmVhZG9ubHkgW1xuXHRcInByaW1hcnlcIixcblx0XCJzZWNvbmRhcnlcIixcblx0XCJ0ZXJ0aWFyeVwiXG5dO1xuZXhwb3J0IHR5cGUgTGlua0J1dHRvblZhcmlhbnQgPSB0eXBlb2YgTElOS19CVVRUT05fVkFSSUFOVFNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgVEVYVF9BTElHTlM6IHJlYWRvbmx5IFtcblx0XCJsZWZ0XCIsXG5cdFwiY2VudGVyXCIsXG5cdFwicmlnaHRcIlxuXTtcbmV4cG9ydCB0eXBlIFRleHRBbGlnbiA9IHR5cGVvZiBURVhUX0FMSUdOU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBURVhUX0NPTE9SUzogcmVhZG9ubHkgW1xuXHRcInByaW1hcnlcIixcblx0XCJjb250cmFzdC1sb3dcIixcblx0XCJjb250cmFzdC1tZWRpdW1cIixcblx0XCJjb250cmFzdC1oaWdoXCIsXG5cdFwibm90aWZpY2F0aW9uLXN1Y2Nlc3NcIixcblx0XCJub3RpZmljYXRpb24td2FybmluZ1wiLFxuXHRcIm5vdGlmaWNhdGlvbi1lcnJvclwiLFxuXHRcIm5vdGlmaWNhdGlvbi1pbmZvXCIsXG5cdFwiaW5oZXJpdFwiLFxuXHRcImJyYW5kXCIsXG5cdFwiZGVmYXVsdFwiLFxuXHRcIm5ldXRyYWwtY29udHJhc3QtbG93XCIsXG5cdFwibmV1dHJhbC1jb250cmFzdC1tZWRpdW1cIixcblx0XCJuZXV0cmFsLWNvbnRyYXN0LWhpZ2hcIixcblx0XCJub3RpZmljYXRpb24tbmV1dHJhbFwiXG5dO1xuZXhwb3J0IHR5cGUgVGV4dENvbG9yID0gdHlwZW9mIFRFWFRfQ09MT1JTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IFRFWFRfU0laRVM6IHJlYWRvbmx5IFtcblx0XCJ4eC1zbWFsbFwiLFxuXHRcIngtc21hbGxcIixcblx0XCJzbWFsbFwiLFxuXHRcIm1lZGl1bVwiLFxuXHRcImxhcmdlXCIsXG5cdFwieC1sYXJnZVwiLFxuXHRcImluaGVyaXRcIlxuXTtcbmV4cG9ydCB0eXBlIFRleHRTaXplID0gdHlwZW9mIFRFWFRfU0laRVNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgVEVYVF9XRUlHSFRTOiByZWFkb25seSBbXG5cdFwicmVndWxhclwiLFxuXHRcInNlbWktYm9sZFwiLFxuXHRcImJvbGRcIixcblx0XCJ0aGluXCIsXG5cdFwic2VtaWJvbGRcIlxuXTtcbmV4cG9ydCB0eXBlIFRleHRXZWlnaHQgPSB0eXBlb2YgVEVYVF9XRUlHSFRTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IExJTktfVEFSR0VUUzogcmVhZG9ubHkgW1xuXHRcIl9zZWxmXCIsXG5cdFwiX2JsYW5rXCIsXG5cdFwiX3BhcmVudFwiLFxuXHRcIl90b3BcIlxuXTtcbmV4cG9ydCB0eXBlIExpbmtUYXJnZXQgPSB0eXBlb2YgTElOS19UQVJHRVRTW251bWJlcl0gfCBzdHJpbmc7XG5leHBvcnQgdHlwZSBMaW5rQnV0dG9uSWNvbk5hbWUgPSBJY29uTmFtZSB8IFwibm9uZVwiO1xuZXhwb3J0IHR5cGUgQnV0dG9uVmFyaWFudCA9IExpbmtCdXR0b25WYXJpYW50O1xuZXhwb3J0IHR5cGUgTGlua1ZhcmlhbnQgPSBMaW5rQnV0dG9uVmFyaWFudDtcbmV4cG9ydCB0eXBlIFNlbGVjdGVkQXJpYUF0dHJpYnV0ZXM8VCBleHRlbmRzIGtleW9mIEFyaWFBdHRyaWJ1dGVzPiA9IFBpY2s8QXJpYUF0dHJpYnV0ZXMsIFQ+IHwgc3RyaW5nO1xuZGVjbGFyZSBjb25zdCBBQ0NPUkRJT05fU0laRVM6IHJlYWRvbmx5IFtcblx0XCJzbWFsbFwiLFxuXHRcIm1lZGl1bVwiXG5dO1xuZXhwb3J0IHR5cGUgQWNjb3JkaW9uU2l6ZSA9ICh0eXBlb2YgQUNDT1JESU9OX1NJWkVTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgQWNjb3JkaW9uVXBkYXRlRXZlbnQgPSB7XG5cdG9wZW46IGJvb2xlYW47XG59O1xuZXhwb3J0IHR5cGUgQWNjb3JkaW9uVGFnID0gSGVhZGluZ1RhZztcbmRlY2xhcmUgY29uc3QgQkFOTkVSX1NUQVRFUzogcmVhZG9ubHkgW1xuXHRcImluZm9cIixcblx0XCJ3YXJuaW5nXCIsXG5cdFwiZXJyb3JcIixcblx0XCJuZXV0cmFsXCJcbl07XG5leHBvcnQgdHlwZSBCYW5uZXJTdGF0ZSA9IHR5cGVvZiBCQU5ORVJfU1RBVEVTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IEJBTk5FUl9XSURUSFM6IHJlYWRvbmx5IFtcblx0XCJleHRlbmRlZFwiLFxuXHRcImJhc2ljXCIsXG5cdFwiZmx1aWRcIlxuXTtcbi8qKiBAZGVwcmVjYXRlZCAqL1xuZXhwb3J0IHR5cGUgQmFubmVyV2lkdGggPSB0eXBlb2YgQkFOTkVSX1dJRFRIU1tudW1iZXJdO1xuZXhwb3J0IHR5cGUgQnV0dG9uSWNvbiA9IExpbmtCdXR0b25JY29uTmFtZTtcbmRlY2xhcmUgY29uc3QgR1JPVVBfRElSRUNUSU9OUzogcmVhZG9ubHkgW1xuXHRcInJvd1wiLFxuXHRcImNvbHVtblwiXG5dO1xuZXhwb3J0IHR5cGUgR3JvdXBEaXJlY3Rpb24gPSAodHlwZW9mIEdST1VQX0RJUkVDVElPTlMpW251bWJlcl07XG5leHBvcnQgdHlwZSBCdXR0b25Hcm91cERpcmVjdGlvbiA9IEdyb3VwRGlyZWN0aW9uO1xuZXhwb3J0IHR5cGUgQnV0dG9uUHVyZVR5cGUgPSBCdXR0b25UeXBlO1xuZXhwb3J0IHR5cGUgQnV0dG9uUHVyZUljb24gPSBMaW5rQnV0dG9uSWNvbk5hbWU7XG5leHBvcnQgdHlwZSBCdXR0b25QdXJlQXJpYUF0dHJpYnV0ZSA9IEJ1dHRvbkFyaWFBdHRyaWJ1dGU7XG5leHBvcnQgdHlwZSBCdXR0b25QdXJlQWxpZ25MYWJlbCA9IEFsaWduTGFiZWw7XG5leHBvcnQgdHlwZSBCdXR0b25QdXJlV2VpZ2h0ID0gVGV4dFdlaWdodDtcbmV4cG9ydCB0eXBlIEJ1dHRvblB1cmVTaXplID0gVGV4dFNpemU7XG5leHBvcnQgdHlwZSBCdXR0b25UaWxlQXJpYUF0dHJpYnV0ZSA9IEJ1dHRvbkFyaWFBdHRyaWJ1dGU7XG5leHBvcnQgdHlwZSBCdXR0b25UaWxlSWNvbiA9IExpbmtCdXR0b25JY29uTmFtZTtcbmV4cG9ydCB0eXBlIEJ1dHRvblRpbGVUeXBlID0gQnV0dG9uVHlwZTtcbmV4cG9ydCB0eXBlIEJ1dHRvblRpbGVBc3BlY3RSYXRpbyA9IFRpbGVBc3BlY3RSYXRpbztcbmV4cG9ydCB0eXBlIEJ1dHRvblRpbGVTaXplID0gVGlsZVNpemU7XG5leHBvcnQgdHlwZSBCdXR0b25UaWxlQmFja2dyb3VuZCA9IFRpbGVCYWNrZ3JvdW5kO1xuZXhwb3J0IHR5cGUgQnV0dG9uVGlsZVdlaWdodCA9IFRpbGVXZWlnaHQ7XG5leHBvcnQgdHlwZSBCdXR0b25UaWxlQWxpZ24gPSBUaWxlQWxpZ247XG5kZWNsYXJlIGNvbnN0IENBUk9VU0VMX1dJRFRIUzogcmVhZG9ubHkgW1xuXHRcImJhc2ljXCIsXG5cdFwiZXh0ZW5kZWRcIlxuXTtcbmV4cG9ydCB0eXBlIENhcm91c2VsV2lkdGggPSAodHlwZW9mIENBUk9VU0VMX1dJRFRIUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgQ0FST1VTRUxfQUxJR05fSEVBREVSUzogcmVhZG9ubHkgW1xuXHRcImxlZnRcIixcblx0XCJjZW50ZXJcIlxuXTtcbmV4cG9ydCB0eXBlIENhcm91c2VsQWxpZ25IZWFkZXIgPSAodHlwZW9mIENBUk9VU0VMX0FMSUdOX0hFQURFUlMpW251bWJlcl07XG5leHBvcnQgdHlwZSBDYXJvdXNlbEludGVybmF0aW9uYWxpemF0aW9uID0gUGFydGlhbDxSZWNvcmQ8XCJwcmV2XCIgfCBcIm5leHRcIiB8IFwiZmlyc3RcIiB8IFwibGFzdFwiIHwgXCJzbGlkZUxhYmVsXCIgfCBcInNsaWRlXCIsIHN0cmluZz4+IHwgc3RyaW5nO1xuZXhwb3J0IHR5cGUgQ2Fyb3VzZWxVcGRhdGVFdmVudCA9IHtcblx0YWN0aXZlSW5kZXg6IG51bWJlcjtcblx0cHJldmlvdXNJbmRleDogbnVtYmVyO1xufTtcbmV4cG9ydCB0eXBlIENoZWNrYm94V3JhcHBlclN0YXRlID0gRm9ybVN0YXRlO1xuZGVjbGFyZSBjb25zdCBDT05URU5UX1dSQVBQRVJfQkFDS0dST1VORF9DT0xPUlM6IHJlYWRvbmx5IFtcblx0XCJ0cmFuc3BhcmVudFwiLFxuXHRcImRlZmF1bHRcIlxuXTtcbmV4cG9ydCB0eXBlIENvbnRlbnRXcmFwcGVyQmFja2dyb3VuZENvbG9yID0gdHlwZW9mIENPTlRFTlRfV1JBUFBFUl9CQUNLR1JPVU5EX0NPTE9SU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBDT05URU5UX1dSQVBQRVJfV0lEVEhTOiByZWFkb25seSBbXG5cdFwibmFycm93XCIsXG5cdFwiYmFzaWNcIixcblx0XCJleHRlbmRlZFwiLFxuXHRcImZsdWlkXCIsXG5cdFwiZnVsbFwiXG5dO1xuZXhwb3J0IHR5cGUgQ29udGVudFdyYXBwZXJXaWR0aCA9IHR5cGVvZiBDT05URU5UX1dSQVBQRVJfV0lEVEhTW251bWJlcl07XG5cbmV4cG9ydCB0eXBlIENyZXN0VGFyZ2V0ID0gTGlua1RhcmdldDtcbmRlY2xhcmUgY29uc3QgQ1JFU1RfQVJJQV9BVFRSSUJVVEVTOiByZWFkb25seSBbXG5cdFwiYXJpYS1sYWJlbFwiXG5dO1xuZXhwb3J0IHR5cGUgQ3Jlc3RBcmlhQXR0cmlidXRlID0gKHR5cGVvZiBDUkVTVF9BUklBX0FUVFJJQlVURVMpW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IERJU1BMQVlfVEFHUzogcmVhZG9ubHkgW1xuXHRcImgxXCIsXG5cdFwiaDJcIixcblx0XCJoM1wiLFxuXHRcImg0XCIsXG5cdFwiaDVcIixcblx0XCJoNlwiXG5dO1xuZXhwb3J0IHR5cGUgRGlzcGxheVRhZyA9ICh0eXBlb2YgRElTUExBWV9UQUdTKVtudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBESVNQTEFZX1NJWkVTOiByZWFkb25seSBbXG5cdFwic21hbGxcIixcblx0XCJtZWRpdW1cIixcblx0XCJsYXJnZVwiLFxuXHRcImluaGVyaXRcIlxuXTtcbmV4cG9ydCB0eXBlIERpc3BsYXlTaXplID0gKHR5cGVvZiBESVNQTEFZX1NJWkVTKVtudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBESVNQTEFZX0NPTE9SUzogcmVhZG9ubHkgW1xuXHRcInByaW1hcnlcIixcblx0XCJpbmhlcml0XCJcbl07XG5leHBvcnQgdHlwZSBEaXNwbGF5Q29sb3IgPSAodHlwZW9mIERJU1BMQVlfQ09MT1JTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgRGlzcGxheUFsaWduID0gVGV4dEFsaWduO1xuZGVjbGFyZSBjb25zdCBESVZJREVSX0NPTE9SUzogcmVhZG9ubHkgW1xuXHRcImNvbnRyYXN0LWxvd1wiLFxuXHRcImNvbnRyYXN0LW1lZGl1bVwiLFxuXHRcImNvbnRyYXN0LWhpZ2hcIixcblx0XCJuZXV0cmFsLWNvbnRyYXN0LWhpZ2hcIixcblx0XCJuZXV0cmFsLWNvbnRyYXN0LW1lZGl1bVwiLFxuXHRcIm5ldXRyYWwtY29udHJhc3QtbG93XCJcbl07XG5leHBvcnQgdHlwZSBEaXZpZGVyQ29sb3IgPSB0eXBlb2YgRElWSURFUl9DT0xPUlNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgRElWSURFUl9ESVJFQ1RJT05TOiByZWFkb25seSBbXG5cdFwidmVydGljYWxcIixcblx0XCJob3Jpem9udGFsXCJcbl07XG5leHBvcnQgdHlwZSBEaXZpZGVyRGlyZWN0aW9uID0gdHlwZW9mIERJVklERVJfRElSRUNUSU9OU1tudW1iZXJdO1xuZXhwb3J0IHR5cGUgRGl2aWRlck9yaWVudGF0aW9uID0gRGl2aWRlckRpcmVjdGlvbjtcbmRlY2xhcmUgY29uc3QgRklFTERTRVRfTEFCRUxfU0laRVM6IHJlYWRvbmx5IFtcblx0XCJzbWFsbFwiLFxuXHRcIm1lZGl1bVwiXG5dO1xuZXhwb3J0IHR5cGUgRmllbGRzZXRMYWJlbFNpemUgPSAodHlwZW9mIEZJRUxEU0VUX0xBQkVMX1NJWkVTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgRmllbGRzZXRTdGF0ZSA9IEZvcm1TdGF0ZTtcbmV4cG9ydCB0eXBlIEZpZWxkc2V0V3JhcHBlckxhYmVsU2l6ZSA9IEZpZWxkc2V0TGFiZWxTaXplO1xuZXhwb3J0IHR5cGUgRmllbGRzZXRXcmFwcGVyU3RhdGUgPSBGaWVsZHNldFN0YXRlO1xuZXhwb3J0IHR5cGUgRmxleElubGluZSA9IGJvb2xlYW47XG5kZWNsYXJlIGNvbnN0IEZMRVhfV1JBUFM6IHJlYWRvbmx5IFtcblx0XCJub3dyYXBcIixcblx0XCJ3cmFwXCIsXG5cdFwid3JhcC1yZXZlcnNlXCJcbl07XG5leHBvcnQgdHlwZSBGbGV4V3JhcCA9IHR5cGVvZiBGTEVYX1dSQVBTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IEZMRVhfRElSRUNUSU9OUzogcmVhZG9ubHkgW1xuXHRcInJvd1wiLFxuXHRcInJvdy1yZXZlcnNlXCIsXG5cdFwiY29sdW1uXCIsXG5cdFwiY29sdW1uLXJldmVyc2VcIlxuXTtcbmV4cG9ydCB0eXBlIEZsZXhEaXJlY3Rpb24gPSB0eXBlb2YgRkxFWF9ESVJFQ1RJT05TW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IEZMRVhfSlVTVElGWV9DT05URU5UUzogcmVhZG9ubHkgW1xuXHRcImZsZXgtc3RhcnRcIixcblx0XCJmbGV4LWVuZFwiLFxuXHRcImNlbnRlclwiLFxuXHRcInNwYWNlLWJldHdlZW5cIixcblx0XCJzcGFjZS1hcm91bmRcIixcblx0XCJzcGFjZS1ldmVubHlcIlxuXTtcbmV4cG9ydCB0eXBlIEZsZXhKdXN0aWZ5Q29udGVudCA9IHR5cGVvZiBGTEVYX0pVU1RJRllfQ09OVEVOVFNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgRkxFWF9BTElHTl9JVEVNUzogcmVhZG9ubHkgW1xuXHRcInN0cmV0Y2hcIixcblx0XCJmbGV4LXN0YXJ0XCIsXG5cdFwiZmxleC1lbmRcIixcblx0XCJjZW50ZXJcIixcblx0XCJiYXNlbGluZVwiXG5dO1xuZXhwb3J0IHR5cGUgRmxleEFsaWduSXRlbXMgPSB0eXBlb2YgRkxFWF9BTElHTl9JVEVNU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBGTEVYX0FMSUdOX0NPTlRFTlRTOiByZWFkb25seSBbXG5cdFwic3RyZXRjaFwiLFxuXHRcImZsZXgtc3RhcnRcIixcblx0XCJmbGV4LWVuZFwiLFxuXHRcImNlbnRlclwiLFxuXHRcInNwYWNlLWJldHdlZW5cIixcblx0XCJzcGFjZS1hcm91bmRcIixcblx0XCJzcGFjZS1ldmVubHlcIlxuXTtcbmV4cG9ydCB0eXBlIEZsZXhBbGlnbkNvbnRlbnQgPSB0eXBlb2YgRkxFWF9BTElHTl9DT05URU5UU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBGTEVYX0lURU1fV0lEVEhTOiByZWFkb25seSBbXG5cdFwiYXV0b1wiLFxuXHRcIm9uZS1xdWFydGVyXCIsXG5cdFwib25lLXRoaXJkXCIsXG5cdFwiaGFsZlwiLFxuXHRcInR3by10aGlyZHNcIixcblx0XCJ0aHJlZS1xdWFydGVyc1wiLFxuXHRcImZ1bGxcIlxuXTtcbmV4cG9ydCB0eXBlIEZsZXhJdGVtV2lkdGggPSB0eXBlb2YgRkxFWF9JVEVNX1dJRFRIU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBGTEVYX0lURU1fT0ZGU0VUUzogcmVhZG9ubHkgW1xuXHRcIm5vbmVcIixcblx0XCJvbmUtcXVhcnRlclwiLFxuXHRcIm9uZS10aGlyZFwiLFxuXHRcImhhbGZcIixcblx0XCJ0d28tdGhpcmRzXCIsXG5cdFwidGhyZWUtcXVhcnRlcnNcIlxuXTtcbmV4cG9ydCB0eXBlIEZsZXhJdGVtT2Zmc2V0ID0gdHlwZW9mIEZMRVhfSVRFTV9PRkZTRVRTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IEZMRVhfSVRFTV9BTElHTl9TRUxGUzogcmVhZG9ubHkgW1xuXHRcImF1dG9cIixcblx0XCJmbGV4LXN0YXJ0XCIsXG5cdFwiZmxleC1lbmRcIixcblx0XCJjZW50ZXJcIixcblx0XCJiYXNlbGluZVwiLFxuXHRcInN0cmV0Y2hcIlxuXTtcbmV4cG9ydCB0eXBlIEZsZXhJdGVtQWxpZ25TZWxmID0gdHlwZW9mIEZMRVhfSVRFTV9BTElHTl9TRUxGU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBGTEVYX0lURU1fR1JPV1M6IHJlYWRvbmx5IFtcblx0MCxcblx0MVxuXTtcbmV4cG9ydCB0eXBlIEZsZXhJdGVtR3JvdyA9IHR5cGVvZiBGTEVYX0lURU1fR1JPV1NbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgRkxFWF9JVEVNX1NIUklOS1M6IHJlYWRvbmx5IFtcblx0MCxcblx0MVxuXTtcbmV4cG9ydCB0eXBlIEZsZXhJdGVtU2hyaW5rID0gdHlwZW9mIEZMRVhfSVRFTV9TSFJJTktTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IEZMRVhfSVRFTV9GTEVYUzogcmVhZG9ubHkgW1xuXHRcImluaXRpYWxcIixcblx0XCJhdXRvXCIsXG5cdFwibm9uZVwiLFxuXHRcImVxdWFsXCJcbl07XG5leHBvcnQgdHlwZSBGbGV4SXRlbUZsZXggPSB0eXBlb2YgRkxFWF9JVEVNX0ZMRVhTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IEZMWU9VVF9QT1NJVElPTlM6IHJlYWRvbmx5IFtcblx0XCJsZWZ0XCIsXG5cdFwicmlnaHRcIlxuXTtcbmV4cG9ydCB0eXBlIEZseW91dFBvc2l0aW9uID0gKHR5cGVvZiBGTFlPVVRfUE9TSVRJT05TKVtudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBGTFlPVVRfQVJJQV9BVFRSSUJVVEVTOiByZWFkb25seSBbXG5cdFwiYXJpYS1sYWJlbFwiXG5dO1xuZXhwb3J0IHR5cGUgRmx5b3V0QXJpYUF0dHJpYnV0ZSA9ICh0eXBlb2YgRkxZT1VUX0FSSUFfQVRUUklCVVRFUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgR1JJRF9ESVJFQ1RJT05TOiByZWFkb25seSBbXG5cdFwicm93XCIsXG5cdFwicm93LXJldmVyc2VcIixcblx0XCJjb2x1bW5cIixcblx0XCJjb2x1bW4tcmV2ZXJzZVwiXG5dO1xuZXhwb3J0IHR5cGUgR3JpZERpcmVjdGlvbiA9IHR5cGVvZiBHUklEX0RJUkVDVElPTlNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgR1JJRF9XUkFQUzogcmVhZG9ubHkgW1xuXHRcIm5vd3JhcFwiLFxuXHRcIndyYXBcIlxuXTtcbmV4cG9ydCB0eXBlIEdyaWRXcmFwID0gdHlwZW9mIEdSSURfV1JBUFNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgR1JJRF9HVVRURVJTOiByZWFkb25seSBbXG5cdDE2LFxuXHQyNCxcblx0MzZcbl07XG5leHBvcnQgdHlwZSBHcmlkR3V0dGVyID0gdHlwZW9mIEdSSURfR1VUVEVSU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBHUklEX0lURU1fU0laRVM6IHJlYWRvbmx5IFtcblx0MSxcblx0Mixcblx0Myxcblx0NCxcblx0NSxcblx0Nixcblx0Nyxcblx0OCxcblx0OSxcblx0MTAsXG5cdDExLFxuXHQxMlxuXTtcbmV4cG9ydCB0eXBlIEdyaWRJdGVtU2l6ZSA9IHR5cGVvZiBHUklEX0lURU1fU0laRVNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgR1JJRF9JVEVNX09GRlNFVFM6IHJlYWRvbmx5IFtcblx0MCxcblx0MSxcblx0Mixcblx0Myxcblx0NCxcblx0NSxcblx0Nixcblx0Nyxcblx0OCxcblx0OSxcblx0MTAsXG5cdDExXG5dO1xuZXhwb3J0IHR5cGUgR3JpZEl0ZW1PZmZzZXQgPSB0eXBlb2YgR1JJRF9JVEVNX09GRlNFVFNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgSEVBRElOR19TSVpFUzogcmVhZG9ubHkgW1xuXHRcInNtYWxsXCIsXG5cdFwibWVkaXVtXCIsXG5cdFwibGFyZ2VcIixcblx0XCJ4LWxhcmdlXCIsXG5cdFwieHgtbGFyZ2VcIixcblx0XCJpbmhlcml0XCJcbl07XG5leHBvcnQgdHlwZSBIZWFkaW5nU2l6ZSA9ICh0eXBlb2YgSEVBRElOR19TSVpFUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgSEVBRElOR19DT0xPUlM6IHJlYWRvbmx5IFtcblx0XCJwcmltYXJ5XCIsXG5cdFwiaW5oZXJpdFwiXG5dO1xuZXhwb3J0IHR5cGUgSGVhZGluZ0NvbG9yID0gKHR5cGVvZiBIRUFESU5HX0NPTE9SUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIEhlYWRpbmdBbGlnbiA9IFRleHRBbGlnbjtcbmRlY2xhcmUgY29uc3QgSEVBRExJTkVfVkFSSUFOVFM6IHJlYWRvbmx5IFtcblx0XCJsYXJnZS10aXRsZVwiLFxuXHRcImhlYWRsaW5lLTFcIixcblx0XCJoZWFkbGluZS0yXCIsXG5cdFwiaGVhZGxpbmUtM1wiLFxuXHRcImhlYWRsaW5lLTRcIixcblx0XCJoZWFkbGluZS01XCJcbl07XG5leHBvcnQgdHlwZSBIZWFkbGluZVZhcmlhbnRUeXBlID0gdHlwZW9mIEhFQURMSU5FX1ZBUklBTlRTW251bWJlcl07XG5leHBvcnQgdHlwZSBIZWFkbGluZVZhcmlhbnRDdXN0b20gPSBFeGNsdWRlPEJyZWFrcG9pbnRDdXN0b21pemFibGU8VGV4dFNpemU+LCBUZXh0U2l6ZT47XG5leHBvcnQgdHlwZSBIZWFkbGluZVZhcmlhbnQgPSBIZWFkbGluZVZhcmlhbnRUeXBlIHwgSGVhZGxpbmVWYXJpYW50Q3VzdG9tIHwgRXh0cmFjdDxUZXh0U2l6ZSwgXCJpbmhlcml0XCI+O1xuZGVjbGFyZSBjb25zdCBIRUFETElORV9UQUdTOiByZWFkb25seSBbXG5cdFwiaDFcIixcblx0XCJoMlwiLFxuXHRcImgzXCIsXG5cdFwiaDRcIixcblx0XCJoNVwiLFxuXHRcImg2XCJcbl07XG5leHBvcnQgdHlwZSBIZWFkbGluZVRhZyA9IHR5cGVvZiBIRUFETElORV9UQUdTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IEhFQURMSU5FX0NPTE9SUzogcmVhZG9ubHkgW1xuXHRcInByaW1hcnlcIixcblx0XCJkZWZhdWx0XCIsXG5cdFwiaW5oZXJpdFwiXG5dO1xuZXhwb3J0IHR5cGUgSGVhZGxpbmVDb2xvciA9IHR5cGVvZiBIRUFETElORV9DT0xPUlNbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIEhlYWRsaW5lQWxpZ24gPSBUZXh0QWxpZ247XG5kZWNsYXJlIGNvbnN0IElDT05fQVJJQV9BVFRSSUJVVEVTOiByZWFkb25seSBbXG5cdFwiYXJpYS1sYWJlbFwiXG5dO1xuZXhwb3J0IHR5cGUgSWNvbkFyaWFBdHRyaWJ1dGUgPSB0eXBlb2YgSUNPTl9BUklBX0FUVFJJQlVURVNbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIEljb25TaXplID0gVGV4dFNpemU7XG5kZWNsYXJlIGNvbnN0IElDT05fQ09MT1JTOiByZWFkb25seSBbXG5cdFwicHJpbWFyeVwiLFxuXHRcImNvbnRyYXN0LWxvd1wiLFxuXHRcImNvbnRyYXN0LW1lZGl1bVwiLFxuXHRcImNvbnRyYXN0LWhpZ2hcIixcblx0XCJub3RpZmljYXRpb24tc3VjY2Vzc1wiLFxuXHRcIm5vdGlmaWNhdGlvbi13YXJuaW5nXCIsXG5cdFwibm90aWZpY2F0aW9uLWVycm9yXCIsXG5cdFwibm90aWZpY2F0aW9uLWluZm9cIixcblx0XCJpbmhlcml0XCIsXG5cdFwiYnJhbmRcIixcblx0XCJkZWZhdWx0XCIsXG5cdFwibmV1dHJhbC1jb250cmFzdC1sb3dcIixcblx0XCJuZXV0cmFsLWNvbnRyYXN0LW1lZGl1bVwiLFxuXHRcIm5ldXRyYWwtY29udHJhc3QtaGlnaFwiLFxuXHRcIm5vdGlmaWNhdGlvbi1uZXV0cmFsXCIsXG5cdFwic3RhdGUtZGlzYWJsZWRcIlxuXTtcbmV4cG9ydCB0eXBlIEljb25Db2xvciA9IHR5cGVvZiBJQ09OX0NPTE9SU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBJTkxJTkVfTk9USUZJQ0FUSU9OX1NUQVRFUzogcmVhZG9ubHkgW1xuXHRcInN1Y2Nlc3NcIixcblx0XCJpbmZvXCIsXG5cdFwid2FybmluZ1wiLFxuXHRcImVycm9yXCIsXG5cdFwibmV1dHJhbFwiXG5dO1xuZXhwb3J0IHR5cGUgSW5saW5lTm90aWZpY2F0aW9uU3RhdGUgPSB0eXBlb2YgSU5MSU5FX05PVElGSUNBVElPTl9TVEFURVNbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIElubGluZU5vdGlmaWNhdGlvbkFjdGlvbkljb24gPSBJY29uTmFtZTtcbmRlY2xhcmUgY29uc3QgTElOS19BUklBX0FUVFJJQlVURVM6IHJlYWRvbmx5IFtcblx0XCJhcmlhLWxhYmVsXCJcbl07XG5leHBvcnQgdHlwZSBMaW5rQXJpYUF0dHJpYnV0ZSA9IHR5cGVvZiBMSU5LX0FSSUFfQVRUUklCVVRFU1tudW1iZXJdO1xuZXhwb3J0IHR5cGUgTGlua0ljb24gPSBMaW5rQnV0dG9uSWNvbk5hbWU7XG5leHBvcnQgdHlwZSBMaW5rUHVyZUljb24gPSBMaW5rQnV0dG9uSWNvbk5hbWU7XG5leHBvcnQgdHlwZSBMaW5rUHVyZUFyaWFBdHRyaWJ1dGUgPSBMaW5rQXJpYUF0dHJpYnV0ZTtcbmV4cG9ydCB0eXBlIExpbmtQdXJlQWxpZ25MYWJlbCA9IEFsaWduTGFiZWw7XG5leHBvcnQgdHlwZSBMaW5rUHVyZVdlaWdodCA9IFRleHRXZWlnaHQ7XG5leHBvcnQgdHlwZSBMaW5rUHVyZVNpemUgPSBUZXh0U2l6ZTtcbmV4cG9ydCB0eXBlIExpbmtQdXJlVGFyZ2V0ID0gTGlua1RhcmdldDtcbmV4cG9ydCB0eXBlIExpbmtTb2NpYWxJY29uID0gRXh0cmFjdDxJY29uTmFtZSwgXCJsb2dvLWZhY2Vib29rXCIgfCBcImxvZ28tZ29vZ2xlXCIgfCBcImxvZ28taW5zdGFncmFtXCIgfCBcImxvZ28tbGlua2VkaW5cIiB8IFwibG9nby1waW50ZXJlc3RcIiB8IFwibG9nby10d2l0dGVyXCIgfCBcImxvZ28td2VjaGF0XCIgfCBcImxvZ28td2hhdHNhcHBcIiB8IFwibG9nby14aW5nXCIgfCBcImxvZ28teW91dHViZVwiIHwgXCJsb2dvLWJhaWR1XCIgfCBcImxvZ28tZGVsaWNpb3VzXCIgfCBcImxvZ28tZGlnZ1wiIHwgXCJsb2dvLWZvdXJzcXVhcmVcIiB8IFwibG9nby1nbWFpbFwiIHwgXCJsb2dvLWhhdGVuYVwiIHwgXCJsb2dvLWthaXhpblwiIHwgXCJsb2dvLWtha2FvdGFsa1wiIHwgXCJsb2dvLW5hdmVyXCIgfCBcImxvZ28tcXEtc2hhcmVcIiB8IFwibG9nby1xcVwiIHwgXCJsb2dvLXJlZGRpdFwiIHwgXCJsb2dvLXNreXJvY2tcIiB8IFwibG9nby1zb2h1XCIgfCBcImxvZ28tdGVjZW50XCIgfCBcImxvZ28tdGVsZWdyYW1cIiB8IFwibG9nby10aWt0b2tcIiB8IFwibG9nby10dW1ibHJcIiB8IFwibG9nby12aWJlclwiIHwgXCJsb2dvLXZrXCIgfCBcImxvZ28td2VpYm9cIiB8IFwibG9nby15YWhvb1wiIHwgXCJsb2dvLXlvdWt1XCI+O1xuZXhwb3J0IHR5cGUgTGlua1NvY2lhbFRhcmdldCA9IExpbmtUYXJnZXQ7XG5leHBvcnQgdHlwZSBMaW5rVGlsZVRhcmdldCA9IExpbmtUYXJnZXQ7XG5leHBvcnQgdHlwZSBMaW5rVGlsZUFyaWFBdHRyaWJ1dGUgPSBMaW5rQXJpYUF0dHJpYnV0ZTtcbmV4cG9ydCB0eXBlIExpbmtUaWxlQXNwZWN0UmF0aW8gPSBUaWxlQXNwZWN0UmF0aW87XG5leHBvcnQgdHlwZSBMaW5rVGlsZVNpemUgPSBUaWxlU2l6ZTtcbmV4cG9ydCB0eXBlIExpbmtUaWxlQmFja2dyb3VuZCA9IFRpbGVCYWNrZ3JvdW5kO1xuZXhwb3J0IHR5cGUgTGlua1RpbGVBbGlnbiA9IFRpbGVBbGlnbjtcbmRlY2xhcmUgY29uc3QgTElOS19USUxFX1dFSUdIVFM6IHJlYWRvbmx5IFtcblx0XCJyZWd1bGFyXCIsXG5cdFwic2VtaS1ib2xkXCIsXG5cdFwic2VtaWJvbGRcIlxuXTtcbmV4cG9ydCB0eXBlIExpbmtUaWxlV2VpZ2h0ID0gKHR5cGVvZiBMSU5LX1RJTEVfV0VJR0hUUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgTElOS19USUxFX01PREVMX1NJR05BVFVSRV9NT0RFTFM6IHJlYWRvbmx5IFtcblx0XCI3MThcIixcblx0XCI5MTFcIixcblx0XCJib3hzdGVyXCIsXG5cdFwiY2F5ZW5uZVwiLFxuXHRcImNheW1hblwiLFxuXHRcIm1hY2FuXCIsXG5cdFwicGFuYW1lcmFcIixcblx0XCJ0YXljYW5cIixcblx0XCJ0dXJiby1zXCIsXG5cdFwidHVyYm9cIlxuXTtcbmV4cG9ydCB0eXBlIExpbmtUaWxlTW9kZWxTaWduYXR1cmVNb2RlbCA9ICh0eXBlb2YgTElOS19USUxFX01PREVMX1NJR05BVFVSRV9NT0RFTFMpW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IExJTktfVElMRV9NT0RFTF9TSUdOQVRVUkVfSEVBRElOR19UQUdTOiByZWFkb25seSBbXG5cdFwiaDJcIixcblx0XCJoM1wiLFxuXHRcImg0XCIsXG5cdFwiaDVcIixcblx0XCJoNlwiXG5dO1xuZXhwb3J0IHR5cGUgTGlua1RpbGVNb2RlbFNpZ25hdHVyZUhlYWRpbmdUYWcgPSAodHlwZW9mIExJTktfVElMRV9NT0RFTF9TSUdOQVRVUkVfSEVBRElOR19UQUdTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgTGlua1RpbGVNb2RlbFNpZ25hdHVyZVdlaWdodCA9IFRpbGVXZWlnaHQ7XG5leHBvcnQgdHlwZSBMaW5rVGlsZU1vZGVsU2lnbmF0dXJlQXNwZWN0UmF0aW8gPSBUaWxlQXNwZWN0UmF0aW87XG5leHBvcnQgdHlwZSBMaW5rVGlsZU1vZGVsU2lnbmF0dXJlTGlua0RpcmVjdGlvbiA9IEdyb3VwRGlyZWN0aW9uO1xuXG5kZWNsYXJlIGNvbnN0IE1BUlFVRV9WQVJJQU5UUzogcmVhZG9ubHkgW1xuXHRcIjc1LXllYXJzXCIsXG5cdFwiZGVmYXVsdFwiXG5dO1xuZXhwb3J0IHR5cGUgTWFycXVlVmFyaWFudCA9ICh0eXBlb2YgTUFSUVVFX1ZBUklBTlRTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgTWFycXVlVGFyZ2V0ID0gTGlua1RhcmdldDtcbmRlY2xhcmUgY29uc3QgTUFSUVVFX0FSSUFfQVRUUklCVVRFUzogcmVhZG9ubHkgW1xuXHRcImFyaWEtbGFiZWxcIlxuXTtcbmV4cG9ydCB0eXBlIE1hcnF1ZUFyaWFBdHRyaWJ1dGUgPSAodHlwZW9mIE1BUlFVRV9BUklBX0FUVFJJQlVURVMpW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IE1BUlFVRV9TSVpFUzogcmVhZG9ubHkgW1xuXHRcInJlc3BvbnNpdmVcIixcblx0XCJzbWFsbFwiLFxuXHRcIm1lZGl1bVwiXG5dO1xuZXhwb3J0IHR5cGUgTWFycXVlU2l6ZSA9IHR5cGVvZiBNQVJRVUVfU0laRVNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgTU9EQUxfQVJJQV9BVFRSSUJVVEVTOiByZWFkb25seSBbXG5cdFwiYXJpYS1sYWJlbFwiXG5dO1xuZXhwb3J0IHR5cGUgTW9kYWxBcmlhQXR0cmlidXRlID0gKHR5cGVvZiBNT0RBTF9BUklBX0FUVFJJQlVURVMpW251bWJlcl07XG5cblxuXG5cbmRlY2xhcmUgY29uc3QgTU9ERUxfU0lHTkFUVVJFU19NQU5JRkVTVDoge1xuXHRcIjcxOFwiOiBzdHJpbmc7XG5cdFwiOTExXCI6IHN0cmluZztcblx0Ym94c3Rlcjogc3RyaW5nO1xuXHRjYXllbm5lOiBzdHJpbmc7XG5cdGNheW1hbjogc3RyaW5nO1xuXHRtYWNhbjogc3RyaW5nO1xuXHRwYW5hbWVyYTogc3RyaW5nO1xuXHR0YXljYW46IHN0cmluZztcblx0XCJ0dXJiby1zXCI6IHN0cmluZztcblx0dHVyYm86IHN0cmluZztcbn07XG5cbmRlY2xhcmUgY29uc3QgTU9ERUxfU0lHTkFUVVJFX1NJWkVTOiByZWFkb25seSBbXG5cdFwic21hbGxcIixcblx0XCJpbmhlcml0XCJcbl07XG5leHBvcnQgdHlwZSBNb2RlbFNpZ25hdHVyZVNpemUgPSAodHlwZW9mIE1PREVMX1NJR05BVFVSRV9TSVpFUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIE1vZGVsU2lnbmF0dXJlTW9kZWwgPSBrZXlvZiB0eXBlb2YgTU9ERUxfU0lHTkFUVVJFU19NQU5JRkVTVDtcbmRlY2xhcmUgY29uc3QgTU9ERUxfU0lHTkFUVVJFX0NPTE9SUzogcmVhZG9ubHkgW1xuXHRcInByaW1hcnlcIixcblx0XCJjb250cmFzdC1sb3dcIixcblx0XCJjb250cmFzdC1tZWRpdW1cIixcblx0XCJjb250cmFzdC1oaWdoXCIsXG5cdFwiaW5oZXJpdFwiXG5dO1xuZXhwb3J0IHR5cGUgTW9kZWxTaWduYXR1cmVDb2xvciA9ICh0eXBlb2YgTU9ERUxfU0lHTkFUVVJFX0NPTE9SUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgUEFHSU5BVElPTl9OVU1CRVJfT0ZfUEFHRV9MSU5LUzogcmVhZG9ubHkgW1xuXHQ1LFxuXHQ3XG5dO1xuZXhwb3J0IHR5cGUgUGFnaW5hdGlvbk1heE51bWJlck9mUGFnZUxpbmtzID0gKHR5cGVvZiBQQUdJTkFUSU9OX05VTUJFUl9PRl9QQUdFX0xJTktTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgUGFnaW5hdGlvblVwZGF0ZUV2ZW50ID0ge1xuXHRwYWdlOiBudW1iZXI7XG5cdHByZXZpb3VzUGFnZTogbnVtYmVyO1xufTtcbmV4cG9ydCB0eXBlIFBhZ2luYXRpb25JbnRlcm5hdGlvbmFsaXphdGlvbiA9IFBhcnRpYWw8UmVjb3JkPFwicm9vdFwiIHwgXCJwcmV2XCIgfCBcIm5leHRcIiB8IFwicGFnZVwiLCBzdHJpbmc+PiB8IHN0cmluZztcbmRlY2xhcmUgY29uc3QgUE9QT1ZFUl9ESVJFQ1RJT05TOiByZWFkb25seSBbXG5cdFwidG9wXCIsXG5cdFwicmlnaHRcIixcblx0XCJib3R0b21cIixcblx0XCJsZWZ0XCJcbl07XG5leHBvcnQgdHlwZSBQb3BvdmVyRGlyZWN0aW9uID0gKHR5cGVvZiBQT1BPVkVSX0RJUkVDVElPTlMpW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IFBPUE9WRVJfQVJJQV9BVFRSSUJVVEVTOiByZWFkb25seSBbXG5cdFwiYXJpYS1sYWJlbFwiXG5dO1xuZXhwb3J0IHR5cGUgUG9wb3ZlckFyaWFBdHRyaWJ1dGUgPSAodHlwZW9mIFBPUE9WRVJfQVJJQV9BVFRSSUJVVEVTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgUmFkaW9CdXR0b25XcmFwcGVyU3RhdGUgPSBGb3JtU3RhdGU7XG5kZWNsYXJlIGNvbnN0IFNFR01FTlRFRF9DT05UUk9MX0JBQ0tHUk9VTkRfQ09MT1JTOiByZWFkb25seSBbXG5cdFwiYmFja2dyb3VuZC1zdXJmYWNlXCIsXG5cdFwiYmFja2dyb3VuZC1kZWZhdWx0XCJcbl07XG5leHBvcnQgdHlwZSBTZWdtZW50ZWRDb250cm9sQmFja2dyb3VuZENvbG9yID0gKHR5cGVvZiBTRUdNRU5URURfQ09OVFJPTF9CQUNLR1JPVU5EX0NPTE9SUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIFNlZ21lbnRlZENvbnRyb2xVcGRhdGVFdmVudCA9IHtcblx0dmFsdWU6IHN0cmluZyB8IG51bWJlcjtcbn07XG5kZWNsYXJlIGNvbnN0IFNFR01FTlRFRF9DT05UUk9MX0NPTFVNTlM6IChzdHJpbmcgfCBudW1iZXIpW107XG5leHBvcnQgdHlwZSBTZWdtZW50ZWRDb250cm9sQ29sdW1ucyA9ICh0eXBlb2YgU0VHTUVOVEVEX0NPTlRST0xfQ09MVU1OUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIFNlZ21lbnRlZENvbnRyb2xJdGVtSWNvbiA9IExpbmtCdXR0b25JY29uTmFtZTtcbmRlY2xhcmUgY29uc3QgRFJPUERPV05fRElSRUNUSU9OUzogcmVhZG9ubHkgW1xuXHRcImRvd25cIixcblx0XCJ1cFwiLFxuXHRcImF1dG9cIlxuXTtcbmV4cG9ydCB0eXBlIFNlbGVjdFdyYXBwZXJEcm9wZG93bkRpcmVjdGlvbiA9ICh0eXBlb2YgRFJPUERPV05fRElSRUNUSU9OUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIFNlbGVjdFdyYXBwZXJTdGF0ZSA9IEZvcm1TdGF0ZTtcbmRlY2xhcmUgY29uc3QgU1BJTk5FUl9TSVpFUzogcmVhZG9ubHkgW1xuXHRcInNtYWxsXCIsXG5cdFwibWVkaXVtXCIsXG5cdFwibGFyZ2VcIixcblx0XCJpbmhlcml0XCJcbl07XG5leHBvcnQgdHlwZSBTcGlubmVyU2l6ZSA9IHR5cGVvZiBTUElOTkVSX1NJWkVTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IFNQSU5ORVJfQVJJQV9BVFRSSUJVVEVTOiByZWFkb25seSBbXG5cdFwiYXJpYS1sYWJlbFwiXG5dO1xuZXhwb3J0IHR5cGUgU3Bpbm5lckFyaWFBdHRyaWJ1dGUgPSB0eXBlb2YgU1BJTk5FUl9BUklBX0FUVFJJQlVURVNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgU1RFUFBFUl9IT1JJWk9OVEFMX1NJWkVTOiByZWFkb25seSBbXG5cdFwic21hbGxcIixcblx0XCJtZWRpdW1cIlxuXTtcbmV4cG9ydCB0eXBlIFN0ZXBwZXJIb3Jpem9udGFsU2l6ZSA9ICh0eXBlb2YgU1RFUFBFUl9IT1JJWk9OVEFMX1NJWkVTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgU3RlcHBlckhvcml6b250YWxVcGRhdGVFdmVudCA9IHtcblx0YWN0aXZlU3RlcEluZGV4OiBudW1iZXI7XG59O1xuZGVjbGFyZSBjb25zdCBTVEVQUEVSX0lURU1fU1RBVEVTOiByZWFkb25seSBbXG5cdFwiY3VycmVudFwiLFxuXHRcImNvbXBsZXRlXCIsXG5cdFwid2FybmluZ1wiXG5dO1xuZXhwb3J0IHR5cGUgU3RlcHBlckhvcml6b250YWxJdGVtU3RhdGUgPSAodHlwZW9mIFNURVBQRVJfSVRFTV9TVEFURVMpW251bWJlcl07XG5leHBvcnQgdHlwZSBTd2l0Y2hBbGlnbkxhYmVsID0gQWxpZ25MYWJlbDtcbmV4cG9ydCB0eXBlIFN3aXRjaFVwZGF0ZUV2ZW50ID0ge1xuXHRjaGVja2VkOiBib29sZWFuO1xufTtcbmV4cG9ydCB0eXBlIERpcmVjdGlvbiA9IFwiYXNjXCIgfCBcImRlc2NcIjtcbmV4cG9ydCB0eXBlIFRhYmxlSGVhZENlbGxTb3J0ID0ge1xuXHRpZDogc3RyaW5nO1xuXHRhY3RpdmU/OiBib29sZWFuO1xuXHRkaXJlY3Rpb24/OiBEaXJlY3Rpb247XG59O1xuZXhwb3J0IHR5cGUgVGFibGVVcGRhdGVFdmVudCA9IFRhYmxlSGVhZENlbGxTb3J0O1xuZGVjbGFyZSBjb25zdCBUQUJTX0JBUl9TSVpFUzogcmVhZG9ubHkgW1xuXHRcInNtYWxsXCIsXG5cdFwibWVkaXVtXCJcbl07XG5leHBvcnQgdHlwZSBUYWJzQmFyU2l6ZSA9ICh0eXBlb2YgVEFCU19CQVJfU0laRVMpW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IFRBQlNfQkFSX1dFSUdIVFM6IHJlYWRvbmx5IFtcblx0XCJyZWd1bGFyXCIsXG5cdFwic2VtaS1ib2xkXCIsXG5cdFwic2VtaWJvbGRcIlxuXTtcbmV4cG9ydCB0eXBlIFRhYnNCYXJXZWlnaHQgPSAodHlwZW9mIFRBQlNfQkFSX1dFSUdIVFMpW251bWJlcl07XG5leHBvcnQgdHlwZSBUYWJzQmFyVXBkYXRlRXZlbnQgPSB7XG5cdGFjdGl2ZVRhYkluZGV4OiBudW1iZXI7XG59O1xuLyoqIEBkZXByZWNhdGVkICovXG5leHBvcnQgdHlwZSBUYWJzQmFyR3JhZGllbnRDb2xvclNjaGVtZSA9IFNjcm9sbGVyR3JhZGllbnRDb2xvclNjaGVtZTtcbmV4cG9ydCB0eXBlIFRhYnNCYXJHcmFkaWVudENvbG9yID0gU2Nyb2xsZXJHcmFkaWVudENvbG9yO1xuZXhwb3J0IHR5cGUgVGFic1NpemUgPSBUYWJzQmFyU2l6ZTtcbmV4cG9ydCB0eXBlIFRhYnNXZWlnaHQgPSBUYWJzQmFyV2VpZ2h0O1xuLyoqIEBkZXByZWNhdGVkICovXG5leHBvcnQgdHlwZSBUYWJzR3JhZGllbnRDb2xvclNjaGVtZSA9IFRhYnNCYXJHcmFkaWVudENvbG9yU2NoZW1lO1xuZXhwb3J0IHR5cGUgVGFic0dyYWRpZW50Q29sb3IgPSBUYWJzQmFyR3JhZGllbnRDb2xvcjtcbmV4cG9ydCB0eXBlIFRhYnNVcGRhdGVFdmVudCA9IFRhYnNCYXJVcGRhdGVFdmVudDtcbmRlY2xhcmUgY29uc3QgVEFHX0RJU01JU1NJQkxFX0NPTE9SUzogcmVhZG9ubHkgW1xuXHRcImJhY2tncm91bmQtYmFzZVwiLFxuXHRcImJhY2tncm91bmQtc3VyZmFjZVwiLFxuXHRcImJhY2tncm91bmQtZGVmYXVsdFwiXG5dO1xuZXhwb3J0IHR5cGUgVGFnRGlzbWlzc2libGVDb2xvciA9IHR5cGVvZiBUQUdfRElTTUlTU0lCTEVfQ09MT1JTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IFRBR19ESVNNSVNTSUJMRV9BUklBX0FUVFJJQlVURVM6IHJlYWRvbmx5IFtcblx0XCJhcmlhLWxhYmVsXCJcbl07XG5leHBvcnQgdHlwZSBUYWdEaXNtaXNzaWJsZUFyaWFBdHRyaWJ1dGUgPSB0eXBlb2YgVEFHX0RJU01JU1NJQkxFX0FSSUFfQVRUUklCVVRFU1tudW1iZXJdO1xuZXhwb3J0IHR5cGUgVGFnSWNvbiA9IEljb25OYW1lO1xuZGVjbGFyZSBjb25zdCBUQUdfQ09MT1JTOiByZWFkb25seSBbXG5cdFwiYmFja2dyb3VuZC1iYXNlXCIsXG5cdFwiYmFja2dyb3VuZC1zdXJmYWNlXCIsXG5cdFwiYmFja2dyb3VuZC1kZWZhdWx0XCIsXG5cdFwicHJpbWFyeVwiLFxuXHRcIm5vdGlmaWNhdGlvbi1pbmZvLXNvZnRcIixcblx0XCJub3RpZmljYXRpb24td2FybmluZy1zb2Z0XCIsXG5cdFwibm90aWZpY2F0aW9uLXN1Y2Nlc3Mtc29mdFwiLFxuXHRcIm5vdGlmaWNhdGlvbi1lcnJvci1zb2Z0XCIsXG5cdFwibmV1dHJhbC1jb250cmFzdC1oaWdoXCIsXG5cdFwibm90aWZpY2F0aW9uLW5ldXRyYWxcIixcblx0XCJub3RpZmljYXRpb24td2FybmluZ1wiLFxuXHRcIm5vdGlmaWNhdGlvbi1zdWNjZXNzXCIsXG5cdFwibm90aWZpY2F0aW9uLWVycm9yXCJcbl07XG5leHBvcnQgdHlwZSBUYWdDb2xvciA9ICh0eXBlb2YgVEFHX0NPTE9SUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgVEVYVF9UQUdTOiByZWFkb25seSBbXG5cdFwicFwiLFxuXHRcInNwYW5cIixcblx0XCJkaXZcIixcblx0XCJhZGRyZXNzXCIsXG5cdFwiYmxvY2txdW90ZVwiLFxuXHRcImZpZ2NhcHRpb25cIixcblx0XCJjaXRlXCIsXG5cdFwidGltZVwiLFxuXHRcImxlZ2VuZFwiXG5dO1xuZXhwb3J0IHR5cGUgVGV4dFRhZyA9IHR5cGVvZiBURVhUX1RBR1NbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgVU5JVF9QT1NJVElPTlM6IHJlYWRvbmx5IFtcblx0XCJwcmVmaXhcIixcblx0XCJzdWZmaXhcIlxuXTtcbmV4cG9ydCB0eXBlIFRleHRGaWVsZFdyYXBwZXJVbml0UG9zaXRpb24gPSAodHlwZW9mIFVOSVRfUE9TSVRJT05TKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgVGV4dEZpZWxkV3JhcHBlckFjdGlvbkljb24gPSBFeHRyYWN0PEljb25OYW1lLCBcImxvY2F0ZVwiPjtcbmV4cG9ydCB0eXBlIFRleHRGaWVsZFdyYXBwZXJTdGF0ZSA9IEZvcm1TdGF0ZTtcbmRlY2xhcmUgY29uc3QgTElTVF9UWVBFUzogcmVhZG9ubHkgW1xuXHRcInVub3JkZXJlZFwiLFxuXHRcIm9yZGVyZWRcIlxuXTtcbi8qKiBAZGVwcmVjYXRlZCAqL1xuZXhwb3J0IHR5cGUgVGV4dExpc3RMaXN0VHlwZSA9IHR5cGVvZiBMSVNUX1RZUEVTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IE9SREVSX1RZUEVTOiByZWFkb25seSBbXG5cdFwibnVtYmVyZWRcIixcblx0XCJhbHBoYWJldGljYWxseVwiXG5dO1xuLyoqIEBkZXByZWNhdGVkICovXG5leHBvcnQgdHlwZSBUZXh0TGlzdE9yZGVyVHlwZSA9IHR5cGVvZiBPUkRFUl9UWVBFU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBURVhUX0xJU1RfVFlQRVM6IHJlYWRvbmx5IFtcblx0XCJ1bm9yZGVyZWRcIixcblx0XCJudW1iZXJlZFwiLFxuXHRcImFscGhhYmV0aWNhbGx5XCJcbl07XG5leHBvcnQgdHlwZSBUZXh0TGlzdFR5cGUgPSB0eXBlb2YgVEVYVF9MSVNUX1RZUEVTW251bWJlcl07XG5leHBvcnQgdHlwZSBUZXh0YXJlYVdyYXBwZXJTdGF0ZSA9IEZvcm1TdGF0ZTtcbmRlY2xhcmUgY29uc3QgVE9BU1RfU1RBVEVTOiByZWFkb25seSBbXG5cdFwiaW5mb1wiLFxuXHRcInN1Y2Nlc3NcIixcblx0XCJuZXV0cmFsXCJcbl07XG5leHBvcnQgdHlwZSBUb2FzdFN0YXRlID0gdHlwZW9mIFRPQVNUX1NUQVRFU1tudW1iZXJdO1xuZXhwb3J0IHR5cGUgVG9hc3RNZXNzYWdlID0ge1xuXHR0ZXh0OiBzdHJpbmc7XG5cdHN0YXRlPzogVG9hc3RTdGF0ZTtcbn07XG5kZWNsYXJlIGNvbnN0IFdPUkRNQVJLX1NJWkVTOiByZWFkb25seSBbXG5cdFwic21hbGxcIixcblx0XCJpbmhlcml0XCJcbl07XG5leHBvcnQgdHlwZSBXb3JkbWFya1NpemUgPSAodHlwZW9mIFdPUkRNQVJLX1NJWkVTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgV29yZG1hcmtUYXJnZXQgPSBMaW5rVGFyZ2V0O1xuZGVjbGFyZSBjb25zdCBXT1JETUFSS19BUklBX0FUVFJJQlVURVM6IHJlYWRvbmx5IFtcblx0XCJhcmlhLWxhYmVsXCJcbl07XG5leHBvcnQgdHlwZSBXb3JkbWFya0FyaWFBdHRyaWJ1dGUgPSAodHlwZW9mIFdPUkRNQVJLX0FSSUFfQVRUUklCVVRFUylbbnVtYmVyXTtcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXdyYXBwZXIvc3JjL2xpYi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyogQXV0byBHZW5lcmF0ZWQgQmVsb3cgKi9cbmV4cG9ydCB0eXBlIEJvb2xlYW5pc2ggPSBib29sZWFuIHwgXCJ0cnVlXCIgfCBcImZhbHNlXCI7XG5leHBvcnQgdHlwZSBBcmlhQXR0cmlidXRlcyA9IHtcblx0LyoqIElkZW50aWZpZXMgdGhlIGN1cnJlbnRseSBhY3RpdmUgZWxlbWVudCB3aGVuIERPTSBmb2N1cyBpcyBvbiBhIGNvbXBvc2l0ZSB3aWRnZXQsIHRleHRib3gsIGdyb3VwLCBvciBhcHBsaWNhdGlvbi4gKi9cblx0XCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnRcIj86IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqIEluZGljYXRlcyB3aGV0aGVyIGFzc2lzdGl2ZSB0ZWNobm9sb2dpZXMgd2lsbCBwcmVzZW50IGFsbCwgb3Igb25seSBwYXJ0cyBvZiwgdGhlIGNoYW5nZWQgcmVnaW9uIGJhc2VkIG9uIHRoZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyBkZWZpbmVkIGJ5IHRoZSBhcmlhLXJlbGV2YW50IGF0dHJpYnV0ZS4gKi9cblx0XCJhcmlhLWF0b21pY1wiPzogQm9vbGVhbmlzaCB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIEluZGljYXRlcyB3aGV0aGVyIGlucHV0dGluZyB0ZXh0IGNvdWxkIHRyaWdnZXIgZGlzcGxheSBvZiBvbmUgb3IgbW9yZSBwcmVkaWN0aW9ucyBvZiB0aGUgdXNlcidzIGludGVuZGVkIHZhbHVlIGZvciBhbiBpbnB1dCBhbmQgc3BlY2lmaWVzIGhvdyBwcmVkaWN0aW9ucyB3b3VsZCBiZVxuXHQgKiBwcmVzZW50ZWQgaWYgdGhleSBhcmUgbWFkZS5cblx0ICovXG5cdFwiYXJpYS1hdXRvY29tcGxldGVcIj86IFwibm9uZVwiIHwgXCJpbmxpbmVcIiB8IFwibGlzdFwiIHwgXCJib3RoXCIgfCB1bmRlZmluZWQ7XG5cdC8qKiBJbmRpY2F0ZXMgYW4gZWxlbWVudCBpcyBiZWluZyBtb2RpZmllZCBhbmQgdGhhdCBhc3Npc3RpdmUgdGVjaG5vbG9naWVzIE1BWSB3YW50IHRvIHdhaXQgdW50aWwgdGhlIG1vZGlmaWNhdGlvbnMgYXJlIGNvbXBsZXRlIGJlZm9yZSBleHBvc2luZyB0aGVtIHRvIHRoZSB1c2VyLiAqL1xuXHQvKipcblx0ICogRGVmaW5lcyBhIHN0cmluZyB2YWx1ZSB0aGF0IGxhYmVscyB0aGUgY3VycmVudCBlbGVtZW50LCB3aGljaCBpcyBpbnRlbmRlZCB0byBiZSBjb252ZXJ0ZWQgaW50byBCcmFpbGxlLlxuXHQgKiBAc2VlIGFyaWEtbGFiZWwuXG5cdCAqL1xuXHRcImFyaWEtYnJhaWxsZWxhYmVsXCI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBEZWZpbmVzIGEgaHVtYW4tcmVhZGFibGUsIGF1dGhvci1sb2NhbGl6ZWQgYWJicmV2aWF0ZWQgZGVzY3JpcHRpb24gZm9yIHRoZSByb2xlIG9mIGFuIGVsZW1lbnQsIHdoaWNoIGlzIGludGVuZGVkIHRvIGJlIGNvbnZlcnRlZCBpbnRvIEJyYWlsbGUuXG5cdCAqIEBzZWUgYXJpYS1yb2xlZGVzY3JpcHRpb24uXG5cdCAqL1xuXHRcImFyaWEtYnJhaWxsZXJvbGVkZXNjcmlwdGlvblwiPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHRcImFyaWEtYnVzeVwiPzogQm9vbGVhbmlzaCB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIEluZGljYXRlcyB0aGUgY3VycmVudCBcImNoZWNrZWRcIiBzdGF0ZSBvZiBjaGVja2JveGVzLCByYWRpbyBidXR0b25zLCBhbmQgb3RoZXIgd2lkZ2V0cy5cblx0ICogQHNlZSBhcmlhLXByZXNzZWQgQHNlZSBhcmlhLXNlbGVjdGVkLlxuXHQgKi9cblx0XCJhcmlhLWNoZWNrZWRcIj86IGJvb2xlYW4gfCBcImZhbHNlXCIgfCBcIm1peGVkXCIgfCBcInRydWVcIiB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIERlZmluZXMgdGhlIHRvdGFsIG51bWJlciBvZiBjb2x1bW5zIGluIGEgdGFibGUsIGdyaWQsIG9yIHRyZWVncmlkLlxuXHQgKiBAc2VlIGFyaWEtY29saW5kZXguXG5cdCAqL1xuXHRcImFyaWEtY29sY291bnRcIj86IG51bWJlciB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIERlZmluZXMgYW4gZWxlbWVudCdzIGNvbHVtbiBpbmRleCBvciBwb3NpdGlvbiB3aXRoIHJlc3BlY3QgdG8gdGhlIHRvdGFsIG51bWJlciBvZiBjb2x1bW5zIHdpdGhpbiBhIHRhYmxlLCBncmlkLCBvciB0cmVlZ3JpZC5cblx0ICogQHNlZSBhcmlhLWNvbGNvdW50IEBzZWUgYXJpYS1jb2xzcGFuLlxuXHQgKi9cblx0XCJhcmlhLWNvbGluZGV4XCI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBEZWZpbmVzIGEgaHVtYW4gcmVhZGFibGUgdGV4dCBhbHRlcm5hdGl2ZSBvZiBhcmlhLWNvbGluZGV4LlxuXHQgKiBAc2VlIGFyaWEtcm93aW5kZXh0ZXh0LlxuXHQgKi9cblx0XCJhcmlhLWNvbGluZGV4dGV4dFwiPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogRGVmaW5lcyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgc3Bhbm5lZCBieSBhIGNlbGwgb3IgZ3JpZGNlbGwgd2l0aGluIGEgdGFibGUsIGdyaWQsIG9yIHRyZWVncmlkLlxuXHQgKiBAc2VlIGFyaWEtY29saW5kZXggQHNlZSBhcmlhLXJvd3NwYW4uXG5cdCAqL1xuXHRcImFyaWEtY29sc3BhblwiPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogSWRlbnRpZmllcyB0aGUgZWxlbWVudCAob3IgZWxlbWVudHMpIHdob3NlIGNvbnRlbnRzIG9yIHByZXNlbmNlIGFyZSBjb250cm9sbGVkIGJ5IHRoZSBjdXJyZW50IGVsZW1lbnQuXG5cdCAqIEBzZWUgYXJpYS1vd25zLlxuXHQgKi9cblx0XCJhcmlhLWNvbnRyb2xzXCI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdC8qKiBJbmRpY2F0ZXMgdGhlIGVsZW1lbnQgdGhhdCByZXByZXNlbnRzIHRoZSBjdXJyZW50IGl0ZW0gd2l0aGluIGEgY29udGFpbmVyIG9yIHNldCBvZiByZWxhdGVkIGVsZW1lbnRzLiAqL1xuXHRcImFyaWEtY3VycmVudFwiPzogYm9vbGVhbiB8IFwiZmFsc2VcIiB8IFwidHJ1ZVwiIHwgXCJwYWdlXCIgfCBcInN0ZXBcIiB8IFwibG9jYXRpb25cIiB8IFwiZGF0ZVwiIHwgXCJ0aW1lXCIgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBJZGVudGlmaWVzIHRoZSBlbGVtZW50IChvciBlbGVtZW50cykgdGhhdCBkZXNjcmliZXMgdGhlIG9iamVjdC5cblx0ICogQHNlZSBhcmlhLWxhYmVsbGVkYnlcblx0ICovXG5cdFwiYXJpYS1kZXNjcmliZWRieVwiPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogRGVmaW5lcyBhIHN0cmluZyB2YWx1ZSB0aGF0IGRlc2NyaWJlcyBvciBhbm5vdGF0ZXMgdGhlIGN1cnJlbnQgZWxlbWVudC5cblx0ICogQHNlZSByZWxhdGVkIGFyaWEtZGVzY3JpYmVkYnkuXG5cdCAqL1xuXHRcImFyaWEtZGVzY3JpcHRpb25cIj86IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIElkZW50aWZpZXMgdGhlIGVsZW1lbnQgdGhhdCBwcm92aWRlcyBhIGRldGFpbGVkLCBleHRlbmRlZCBkZXNjcmlwdGlvbiBmb3IgdGhlIG9iamVjdC5cblx0ICogQHNlZSBhcmlhLWRlc2NyaWJlZGJ5LlxuXHQgKi9cblx0XCJhcmlhLWRldGFpbHNcIj86IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIEluZGljYXRlcyB0aGF0IHRoZSBlbGVtZW50IGlzIHBlcmNlaXZhYmxlIGJ1dCBkaXNhYmxlZCwgc28gaXQgaXMgbm90IGVkaXRhYmxlIG9yIG90aGVyd2lzZSBvcGVyYWJsZS5cblx0ICogQHNlZSBhcmlhLWhpZGRlbiBAc2VlIGFyaWEtcmVhZG9ubHkuXG5cdCAqL1xuXHRcImFyaWEtZGlzYWJsZWRcIj86IEJvb2xlYW5pc2ggfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBJbmRpY2F0ZXMgd2hhdCBmdW5jdGlvbnMgY2FuIGJlIHBlcmZvcm1lZCB3aGVuIGEgZHJhZ2dlZCBvYmplY3QgaXMgcmVsZWFzZWQgb24gdGhlIGRyb3AgdGFyZ2V0LlxuXHQgKiBAZGVwcmVjYXRlZCBpbiBBUklBIDEuMVxuXHQgKi9cblx0XCJhcmlhLWRyb3BlZmZlY3RcIj86IFwibm9uZVwiIHwgXCJjb3B5XCIgfCBcImV4ZWN1dGVcIiB8IFwibGlua1wiIHwgXCJtb3ZlXCIgfCBcInBvcHVwXCIgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBJZGVudGlmaWVzIHRoZSBlbGVtZW50IHRoYXQgcHJvdmlkZXMgYW4gZXJyb3IgbWVzc2FnZSBmb3IgdGhlIG9iamVjdC5cblx0ICogQHNlZSBhcmlhLWludmFsaWQgQHNlZSBhcmlhLWRlc2NyaWJlZGJ5LlxuXHQgKi9cblx0XCJhcmlhLWVycm9ybWVzc2FnZVwiPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHQvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGVsZW1lbnQsIG9yIGFub3RoZXIgZ3JvdXBpbmcgZWxlbWVudCBpdCBjb250cm9scywgaXMgY3VycmVudGx5IGV4cGFuZGVkIG9yIGNvbGxhcHNlZC4gKi9cblx0XCJhcmlhLWV4cGFuZGVkXCI/OiBCb29sZWFuaXNoIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogSWRlbnRpZmllcyB0aGUgbmV4dCBlbGVtZW50IChvciBlbGVtZW50cykgaW4gYW4gYWx0ZXJuYXRlIHJlYWRpbmcgb3JkZXIgb2YgY29udGVudCB3aGljaCwgYXQgdGhlIHVzZXIncyBkaXNjcmV0aW9uLFxuXHQgKiBhbGxvd3MgYXNzaXN0aXZlIHRlY2hub2xvZ3kgdG8gb3ZlcnJpZGUgdGhlIGdlbmVyYWwgZGVmYXVsdCBvZiByZWFkaW5nIGluIGRvY3VtZW50IHNvdXJjZSBvcmRlci5cblx0ICovXG5cdFwiYXJpYS1mbG93dG9cIj86IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIEluZGljYXRlcyBhbiBlbGVtZW50J3MgXCJncmFiYmVkXCIgc3RhdGUgaW4gYSBkcmFnLWFuZC1kcm9wIG9wZXJhdGlvbi5cblx0ICogQGRlcHJlY2F0ZWQgaW4gQVJJQSAxLjFcblx0ICovXG5cdFwiYXJpYS1ncmFiYmVkXCI/OiBCb29sZWFuaXNoIHwgdW5kZWZpbmVkO1xuXHQvKiogSW5kaWNhdGVzIHRoZSBhdmFpbGFiaWxpdHkgYW5kIHR5cGUgb2YgaW50ZXJhY3RpdmUgcG9wdXAgZWxlbWVudCwgc3VjaCBhcyBtZW51IG9yIGRpYWxvZywgdGhhdCBjYW4gYmUgdHJpZ2dlcmVkIGJ5IGFuIGVsZW1lbnQuICovXG5cdFwiYXJpYS1oYXNwb3B1cFwiPzogYm9vbGVhbiB8IFwiZmFsc2VcIiB8IFwidHJ1ZVwiIHwgXCJtZW51XCIgfCBcImxpc3Rib3hcIiB8IFwidHJlZVwiIHwgXCJncmlkXCIgfCBcImRpYWxvZ1wiIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGVsZW1lbnQgaXMgZXhwb3NlZCB0byBhbiBhY2Nlc3NpYmlsaXR5IEFQSS5cblx0ICogQHNlZSBhcmlhLWRpc2FibGVkLlxuXHQgKi9cblx0XCJhcmlhLWhpZGRlblwiPzogQm9vbGVhbmlzaCB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIEluZGljYXRlcyB0aGUgZW50ZXJlZCB2YWx1ZSBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBmb3JtYXQgZXhwZWN0ZWQgYnkgdGhlIGFwcGxpY2F0aW9uLlxuXHQgKiBAc2VlIGFyaWEtZXJyb3JtZXNzYWdlLlxuXHQgKi9cblx0XCJhcmlhLWludmFsaWRcIj86IGJvb2xlYW4gfCBcImZhbHNlXCIgfCBcInRydWVcIiB8IFwiZ3JhbW1hclwiIHwgXCJzcGVsbGluZ1wiIHwgdW5kZWZpbmVkO1xuXHQvKiogSW5kaWNhdGVzIGtleWJvYXJkIHNob3J0Y3V0cyB0aGF0IGFuIGF1dGhvciBoYXMgaW1wbGVtZW50ZWQgdG8gYWN0aXZhdGUgb3IgZ2l2ZSBmb2N1cyB0byBhbiBlbGVtZW50LiAqL1xuXHRcImFyaWEta2V5c2hvcnRjdXRzXCI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBEZWZpbmVzIGEgc3RyaW5nIHZhbHVlIHRoYXQgbGFiZWxzIHRoZSBjdXJyZW50IGVsZW1lbnQuXG5cdCAqIEBzZWUgYXJpYS1sYWJlbGxlZGJ5LlxuXHQgKi9cblx0XCJhcmlhLWxhYmVsXCI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBJZGVudGlmaWVzIHRoZSBlbGVtZW50IChvciBlbGVtZW50cykgdGhhdCBsYWJlbHMgdGhlIGN1cnJlbnQgZWxlbWVudC5cblx0ICogQHNlZSBhcmlhLWRlc2NyaWJlZGJ5LlxuXHQgKi9cblx0XCJhcmlhLWxhYmVsbGVkYnlcIj86IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqIERlZmluZXMgdGhlIGhpZXJhcmNoaWNhbCBsZXZlbCBvZiBhbiBlbGVtZW50IHdpdGhpbiBhIHN0cnVjdHVyZS4gKi9cblx0XCJhcmlhLWxldmVsXCI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cdC8qKiBJbmRpY2F0ZXMgdGhhdCBhbiBlbGVtZW50IHdpbGwgYmUgdXBkYXRlZCwgYW5kIGRlc2NyaWJlcyB0aGUgdHlwZXMgb2YgdXBkYXRlcyB0aGUgdXNlciBhZ2VudHMsIGFzc2lzdGl2ZSB0ZWNobm9sb2dpZXMsIGFuZCB1c2VyIGNhbiBleHBlY3QgZnJvbSB0aGUgbGl2ZSByZWdpb24uICovXG5cdFwiYXJpYS1saXZlXCI/OiBcIm9mZlwiIHwgXCJhc3NlcnRpdmVcIiB8IFwicG9saXRlXCIgfCB1bmRlZmluZWQ7XG5cdC8qKiBJbmRpY2F0ZXMgd2hldGhlciBhbiBlbGVtZW50IGlzIG1vZGFsIHdoZW4gZGlzcGxheWVkLiAqL1xuXHRcImFyaWEtbW9kYWxcIj86IEJvb2xlYW5pc2ggfCB1bmRlZmluZWQ7XG5cdC8qKiBJbmRpY2F0ZXMgd2hldGhlciBhIHRleHQgYm94IGFjY2VwdHMgbXVsdGlwbGUgbGluZXMgb2YgaW5wdXQgb3Igb25seSBhIHNpbmdsZSBsaW5lLiAqL1xuXHRcImFyaWEtbXVsdGlsaW5lXCI/OiBCb29sZWFuaXNoIHwgdW5kZWZpbmVkO1xuXHQvKiogSW5kaWNhdGVzIHRoYXQgdGhlIHVzZXIgbWF5IHNlbGVjdCBtb3JlIHRoYW4gb25lIGl0ZW0gZnJvbSB0aGUgY3VycmVudCBzZWxlY3RhYmxlIGRlc2NlbmRhbnRzLiAqL1xuXHRcImFyaWEtbXVsdGlzZWxlY3RhYmxlXCI/OiBCb29sZWFuaXNoIHwgdW5kZWZpbmVkO1xuXHQvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGVsZW1lbnQncyBvcmllbnRhdGlvbiBpcyBob3Jpem9udGFsLCB2ZXJ0aWNhbCwgb3IgdW5rbm93bi9hbWJpZ3VvdXMuICovXG5cdFwiYXJpYS1vcmllbnRhdGlvblwiPzogXCJob3Jpem9udGFsXCIgfCBcInZlcnRpY2FsXCIgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBJZGVudGlmaWVzIGFuIGVsZW1lbnQgKG9yIGVsZW1lbnRzKSBpbiBvcmRlciB0byBkZWZpbmUgYSB2aXN1YWwsIGZ1bmN0aW9uYWwsIG9yIGNvbnRleHR1YWwgcGFyZW50L2NoaWxkIHJlbGF0aW9uc2hpcFxuXHQgKiBiZXR3ZWVuIERPTSBlbGVtZW50cyB3aGVyZSB0aGUgRE9NIGhpZXJhcmNoeSBjYW5ub3QgYmUgdXNlZCB0byByZXByZXNlbnQgdGhlIHJlbGF0aW9uc2hpcC5cblx0ICogQHNlZSBhcmlhLWNvbnRyb2xzLlxuXHQgKi9cblx0XCJhcmlhLW93bnNcIj86IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIERlZmluZXMgYSBzaG9ydCBoaW50IChhIHdvcmQgb3Igc2hvcnQgcGhyYXNlKSBpbnRlbmRlZCB0byBhaWQgdGhlIHVzZXIgd2l0aCBkYXRhIGVudHJ5IHdoZW4gdGhlIGNvbnRyb2wgaGFzIG5vIHZhbHVlLlxuXHQgKiBBIGhpbnQgY291bGQgYmUgYSBzYW1wbGUgdmFsdWUgb3IgYSBicmllZiBkZXNjcmlwdGlvbiBvZiB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0XCJhcmlhLXBsYWNlaG9sZGVyXCI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBEZWZpbmVzIGFuIGVsZW1lbnQncyBudW1iZXIgb3IgcG9zaXRpb24gaW4gdGhlIGN1cnJlbnQgc2V0IG9mIGxpc3RpdGVtcyBvciB0cmVlaXRlbXMuIE5vdCByZXF1aXJlZCBpZiBhbGwgZWxlbWVudHMgaW4gdGhlIHNldCBhcmUgcHJlc2VudCBpbiB0aGUgRE9NLlxuXHQgKiBAc2VlIGFyaWEtc2V0c2l6ZS5cblx0ICovXG5cdFwiYXJpYS1wb3NpbnNldFwiPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogSW5kaWNhdGVzIHRoZSBjdXJyZW50IFwicHJlc3NlZFwiIHN0YXRlIG9mIHRvZ2dsZSBidXR0b25zLlxuXHQgKiBAc2VlIGFyaWEtY2hlY2tlZCBAc2VlIGFyaWEtc2VsZWN0ZWQuXG5cdCAqL1xuXHRcImFyaWEtcHJlc3NlZFwiPzogYm9vbGVhbiB8IFwiZmFsc2VcIiB8IFwibWl4ZWRcIiB8IFwidHJ1ZVwiIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogSW5kaWNhdGVzIHRoYXQgdGhlIGVsZW1lbnQgaXMgbm90IGVkaXRhYmxlLCBidXQgaXMgb3RoZXJ3aXNlIG9wZXJhYmxlLlxuXHQgKiBAc2VlIGFyaWEtZGlzYWJsZWQuXG5cdCAqL1xuXHRcImFyaWEtcmVhZG9ubHlcIj86IEJvb2xlYW5pc2ggfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBJbmRpY2F0ZXMgd2hhdCBub3RpZmljYXRpb25zIHRoZSB1c2VyIGFnZW50IHdpbGwgdHJpZ2dlciB3aGVuIHRoZSBhY2Nlc3NpYmlsaXR5IHRyZWUgd2l0aGluIGEgbGl2ZSByZWdpb24gaXMgbW9kaWZpZWQuXG5cdCAqIEBzZWUgYXJpYS1hdG9taWMuXG5cdCAqL1xuXHRcImFyaWEtcmVsZXZhbnRcIj86IFwiYWRkaXRpb25zXCIgfCBcImFkZGl0aW9ucyByZW1vdmFsc1wiIHwgXCJhZGRpdGlvbnMgdGV4dFwiIHwgXCJhbGxcIiB8IFwicmVtb3ZhbHNcIiB8IFwicmVtb3ZhbHMgYWRkaXRpb25zXCIgfCBcInJlbW92YWxzIHRleHRcIiB8IFwidGV4dFwiIHwgXCJ0ZXh0IGFkZGl0aW9uc1wiIHwgXCJ0ZXh0IHJlbW92YWxzXCIgfCB1bmRlZmluZWQ7XG5cdC8qKiBJbmRpY2F0ZXMgdGhhdCB1c2VyIGlucHV0IGlzIHJlcXVpcmVkIG9uIHRoZSBlbGVtZW50IGJlZm9yZSBhIGZvcm0gbWF5IGJlIHN1Ym1pdHRlZC4gKi9cblx0XCJhcmlhLXJlcXVpcmVkXCI/OiBCb29sZWFuaXNoIHwgdW5kZWZpbmVkO1xuXHQvKiogRGVmaW5lcyBhIGh1bWFuLXJlYWRhYmxlLCBhdXRob3ItbG9jYWxpemVkIGRlc2NyaXB0aW9uIGZvciB0aGUgcm9sZSBvZiBhbiBlbGVtZW50LiAqL1xuXHRcImFyaWEtcm9sZWRlc2NyaXB0aW9uXCI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBEZWZpbmVzIHRoZSB0b3RhbCBudW1iZXIgb2Ygcm93cyBpbiBhIHRhYmxlLCBncmlkLCBvciB0cmVlZ3JpZC5cblx0ICogQHNlZSBhcmlhLXJvd2luZGV4LlxuXHQgKi9cblx0XCJhcmlhLXJvd2NvdW50XCI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBEZWZpbmVzIGFuIGVsZW1lbnQncyByb3cgaW5kZXggb3IgcG9zaXRpb24gd2l0aCByZXNwZWN0IHRvIHRoZSB0b3RhbCBudW1iZXIgb2Ygcm93cyB3aXRoaW4gYSB0YWJsZSwgZ3JpZCwgb3IgdHJlZWdyaWQuXG5cdCAqIEBzZWUgYXJpYS1yb3djb3VudCBAc2VlIGFyaWEtcm93c3Bhbi5cblx0ICovXG5cdFwiYXJpYS1yb3dpbmRleFwiPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogRGVmaW5lcyBhIGh1bWFuIHJlYWRhYmxlIHRleHQgYWx0ZXJuYXRpdmUgb2YgYXJpYS1yb3dpbmRleC5cblx0ICogQHNlZSBhcmlhLWNvbGluZGV4dGV4dC5cblx0ICovXG5cdFwiYXJpYS1yb3dpbmRleHRleHRcIj86IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIERlZmluZXMgdGhlIG51bWJlciBvZiByb3dzIHNwYW5uZWQgYnkgYSBjZWxsIG9yIGdyaWRjZWxsIHdpdGhpbiBhIHRhYmxlLCBncmlkLCBvciB0cmVlZ3JpZC5cblx0ICogQHNlZSBhcmlhLXJvd2luZGV4IEBzZWUgYXJpYS1jb2xzcGFuLlxuXHQgKi9cblx0XCJhcmlhLXJvd3NwYW5cIj86IG51bWJlciB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIEluZGljYXRlcyB0aGUgY3VycmVudCBcInNlbGVjdGVkXCIgc3RhdGUgb2YgdmFyaW91cyB3aWRnZXRzLlxuXHQgKiBAc2VlIGFyaWEtY2hlY2tlZCBAc2VlIGFyaWEtcHJlc3NlZC5cblx0ICovXG5cdFwiYXJpYS1zZWxlY3RlZFwiPzogQm9vbGVhbmlzaCB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIERlZmluZXMgdGhlIG51bWJlciBvZiBpdGVtcyBpbiB0aGUgY3VycmVudCBzZXQgb2YgbGlzdGl0ZW1zIG9yIHRyZWVpdGVtcy4gTm90IHJlcXVpcmVkIGlmIGFsbCBlbGVtZW50cyBpbiB0aGUgc2V0IGFyZSBwcmVzZW50IGluIHRoZSBET00uXG5cdCAqIEBzZWUgYXJpYS1wb3NpbnNldC5cblx0ICovXG5cdFwiYXJpYS1zZXRzaXplXCI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cdC8qKiBJbmRpY2F0ZXMgaWYgaXRlbXMgaW4gYSB0YWJsZSBvciBncmlkIGFyZSBzb3J0ZWQgaW4gYXNjZW5kaW5nIG9yIGRlc2NlbmRpbmcgb3JkZXIuICovXG5cdFwiYXJpYS1zb3J0XCI/OiBcIm5vbmVcIiB8IFwiYXNjZW5kaW5nXCIgfCBcImRlc2NlbmRpbmdcIiB8IFwib3RoZXJcIiB8IHVuZGVmaW5lZDtcblx0LyoqIERlZmluZXMgdGhlIG1heGltdW0gYWxsb3dlZCB2YWx1ZSBmb3IgYSByYW5nZSB3aWRnZXQuICovXG5cdFwiYXJpYS12YWx1ZW1heFwiPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXHQvKiogRGVmaW5lcyB0aGUgbWluaW11bSBhbGxvd2VkIHZhbHVlIGZvciBhIHJhbmdlIHdpZGdldC4gKi9cblx0XCJhcmlhLXZhbHVlbWluXCI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBEZWZpbmVzIHRoZSBjdXJyZW50IHZhbHVlIGZvciBhIHJhbmdlIHdpZGdldC5cblx0ICogQHNlZSBhcmlhLXZhbHVldGV4dC5cblx0ICovXG5cdFwiYXJpYS12YWx1ZW5vd1wiPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXHQvKiogRGVmaW5lcyB0aGUgaHVtYW4gcmVhZGFibGUgdGV4dCBhbHRlcm5hdGl2ZSBvZiBhcmlhLXZhbHVlbm93IGZvciBhIHJhbmdlIHdpZGdldC4gKi9cblx0XCJhcmlhLXZhbHVldGV4dFwiPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHQvKiogQWxsIHRoZSBXQUktQVJJQSAxLjEgcm9sZSBhdHRyaWJ1dGUgdmFsdWVzIGZyb20gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLTEuMS8jcm9sZV9kZWZpbml0aW9ucyAqL1xuXHRyb2xlPzogQXJpYVJvbGU7XG59O1xuZXhwb3J0IHR5cGUgQXJpYVJvbGUgPSBcImFsZXJ0XCIgfCBcImFsZXJ0ZGlhbG9nXCIgfCBcImFwcGxpY2F0aW9uXCIgfCBcImFydGljbGVcIiB8IFwiYmFubmVyXCIgfCBcImJ1dHRvblwiIHwgXCJjZWxsXCIgfCBcImNoZWNrYm94XCIgfCBcImNvbHVtbmhlYWRlclwiIHwgXCJjb21ib2JveFwiIHwgXCJjb21wbGVtZW50YXJ5XCIgfCBcImNvbnRlbnRpbmZvXCIgfCBcImRlZmluaXRpb25cIiB8IFwiZGlhbG9nXCIgfCBcImRpcmVjdG9yeVwiIHwgXCJkb2N1bWVudFwiIHwgXCJmZWVkXCIgfCBcImZpZ3VyZVwiIHwgXCJmb3JtXCIgfCBcImdyaWRcIiB8IFwiZ3JpZGNlbGxcIiB8IFwiZ3JvdXBcIiB8IFwiaGVhZGluZ1wiIHwgXCJpbWdcIiB8IFwibGlua1wiIHwgXCJsaXN0XCIgfCBcImxpc3Rib3hcIiB8IFwibGlzdGl0ZW1cIiB8IFwibG9nXCIgfCBcIm1haW5cIiB8IFwibWFycXVlZVwiIHwgXCJtYXRoXCIgfCBcIm1lbnVcIiB8IFwibWVudWJhclwiIHwgXCJtZW51aXRlbVwiIHwgXCJtZW51aXRlbWNoZWNrYm94XCIgfCBcIm1lbnVpdGVtcmFkaW9cIiB8IFwibmF2aWdhdGlvblwiIHwgXCJub25lXCIgfCBcIm5vdGVcIiB8IFwib3B0aW9uXCIgfCBcInByZXNlbnRhdGlvblwiIHwgXCJwcm9ncmVzc2JhclwiIHwgXCJyYWRpb1wiIHwgXCJyYWRpb2dyb3VwXCIgfCBcInJlZ2lvblwiIHwgXCJyb3dcIiB8IFwicm93Z3JvdXBcIiB8IFwicm93aGVhZGVyXCIgfCBcInNjcm9sbGJhclwiIHwgXCJzZWFyY2hcIiB8IFwic2VhcmNoYm94XCIgfCBcInNlcGFyYXRvclwiIHwgXCJzbGlkZXJcIiB8IFwic3BpbmJ1dHRvblwiIHwgXCJzdGF0dXNcIiB8IFwic3dpdGNoXCIgfCBcInRhYlwiIHwgXCJ0YWJsZVwiIHwgXCJ0YWJsaXN0XCIgfCBcInRhYnBhbmVsXCIgfCBcInRlcm1cIiB8IFwidGV4dGJveFwiIHwgXCJ0aW1lclwiIHwgXCJ0b29sYmFyXCIgfCBcInRvb2x0aXBcIiB8IFwidHJlZVwiIHwgXCJ0cmVlZ3JpZFwiIHwgXCJ0cmVlaXRlbVwiO1xuZGVjbGFyZSBjb25zdCBJQ09OX05BTUVTOiByZWFkb25seSBbXG5cdFwiMzYwXCIsXG5cdFwiYWNjZXNzaWJpbGl0eVwiLFxuXHRcImFjdGl2ZS1jYWJpbi12ZW50aWxhdGlvblwiLFxuXHRcImFkZFwiLFxuXHRcImFkanVzdFwiLFxuXHRcImFycm93LWRvdWJsZS1kb3duXCIsXG5cdFwiYXJyb3ctZG91YmxlLWxlZnRcIixcblx0XCJhcnJvdy1kb3VibGUtcmlnaHRcIixcblx0XCJhcnJvdy1kb3VibGUtdXBcIixcblx0XCJhcnJvdy1kb3duXCIsXG5cdFwiYXJyb3ctZmlyc3RcIixcblx0XCJhcnJvdy1oZWFkLWRvd25cIixcblx0XCJhcnJvdy1oZWFkLWxlZnRcIixcblx0XCJhcnJvdy1oZWFkLXJpZ2h0XCIsXG5cdFwiYXJyb3ctaGVhZC11cFwiLFxuXHRcImFycm93LWxhc3RcIixcblx0XCJhcnJvdy1sZWZ0XCIsXG5cdFwiYXJyb3ctcmlnaHRcIixcblx0XCJhcnJvdy11cFwiLFxuXHRcImF1Z21lbnRlZC1yZWFsaXR5XCIsXG5cdFwiYmF0dGVyeS1lbXB0eVwiLFxuXHRcImJhdHRlcnktZnVsbFwiLFxuXHRcImJlbGxcIixcblx0XCJib29rbWFya1wiLFxuXHRcImJyb2FkY2FzdFwiLFxuXHRcImNhbGN1bGF0b3JcIixcblx0XCJjYWxlbmRhclwiLFxuXHRcImNhbWVyYVwiLFxuXHRcImNhclwiLFxuXHRcImNhci1iYXR0ZXJ5XCIsXG5cdFwiY2FyZFwiLFxuXHRcImNoYXJnaW5nLWFjdGl2ZVwiLFxuXHRcImNoYXJnaW5nLXN0YXRlXCIsXG5cdFwiY2hhcmdpbmctc3RhdGlvblwiLFxuXHRcImNoYXJ0XCIsXG5cdFwiY2hhdFwiLFxuXHRcImNoZWNrXCIsXG5cdFwiY2l0eVwiLFxuXHRcImNsaW1hdGVcIixcblx0XCJjbGltYXRlLWNvbnRyb2xcIixcblx0XCJjbG9ja1wiLFxuXHRcImNsb3NlXCIsXG5cdFwiY2xvc2VkLWNhcHRpb25cIixcblx0XCJjbzItZW1pc3Npb25cIixcblx0XCJjb21wYXJlXCIsXG5cdFwiY29uZmlndXJhdGVcIixcblx0XCJjb3B5XCIsXG5cdFwiY291bnRyeS1yb2FkXCIsXG5cdFwiY3ViaWMtY2FwYWNpdHlcIixcblx0XCJkZWxldGVcIixcblx0XCJkaXNhYmxlXCIsXG5cdFwiZG9jdW1lbnRcIixcblx0XCJkb3dubG9hZFwiLFxuXHRcImR1cmF0aW9uXCIsXG5cdFwiZWRpdFwiLFxuXHRcImVtYWlsXCIsXG5cdFwiZXJyb3ItZmlsbGVkXCIsXG5cdFwiZXhjbGFtYXRpb25cIixcblx0XCJleHRlcm5hbFwiLFxuXHRcImZpbHRlclwiLFxuXHRcImZpbmdlcnByaW50XCIsXG5cdFwiZmxhc2hcIixcblx0XCJmdWVsLXN0YXRpb25cIixcblx0XCJnYXJhZ2VcIixcblx0XCJnaWZ0XCIsXG5cdFwiZ2xvYmVcIixcblx0XCJncmlkXCIsXG5cdFwiaGVhcnRcIixcblx0XCJoZWFydC1maWxsZWRcIixcblx0XCJoaWdod2F5XCIsXG5cdFwiaG9tZVwiLFxuXHRcImhvcm5cIixcblx0XCJpbWFnZVwiLFxuXHRcImluY3JlYXNlXCIsXG5cdFwiaW5mb3JtYXRpb25cIixcblx0XCJpbmZvcm1hdGlvbi1maWxsZWRcIixcblx0XCJrZXlcIixcblx0XCJsZWFmXCIsXG5cdFwibGVhdGhlclwiLFxuXHRcImxpZ2h0XCIsXG5cdFwibGlzdFwiLFxuXHRcImxvY2F0ZVwiLFxuXHRcImxvY2tcIixcblx0XCJsb2NrLW9wZW5cIixcblx0XCJsb2dvLWFwcGxlLXBvZGNhc3RcIixcblx0XCJsb2dvLWJhaWR1XCIsXG5cdFwibG9nby1kZWxpY2lvdXNcIixcblx0XCJsb2dvLWRpZ2dcIixcblx0XCJsb2dvLWZhY2Vib29rXCIsXG5cdFwibG9nby1mb3Vyc3F1YXJlXCIsXG5cdFwibG9nby1nbWFpbFwiLFxuXHRcImxvZ28tZ29vZ2xlXCIsXG5cdFwibG9nby1oYXRlbmFcIixcblx0XCJsb2dvLWluc3RhZ3JhbVwiLFxuXHRcImxvZ28ta2FpeGluXCIsXG5cdFwibG9nby1rYWthb3RhbGtcIixcblx0XCJsb2dvLWxpbmtlZGluXCIsXG5cdFwibG9nby1uYXZlclwiLFxuXHRcImxvZ28tcGludGVyZXN0XCIsXG5cdFwibG9nby1xcVwiLFxuXHRcImxvZ28tcXEtc2hhcmVcIixcblx0XCJsb2dvLXJlZGRpdFwiLFxuXHRcImxvZ28tc2t5cm9ja1wiLFxuXHRcImxvZ28tc29odVwiLFxuXHRcImxvZ28tc3BvdGlmeVwiLFxuXHRcImxvZ28tdGVjZW50XCIsXG5cdFwibG9nby10ZWxlZ3JhbVwiLFxuXHRcImxvZ28tdGlrdG9rXCIsXG5cdFwibG9nby10dW1ibHJcIixcblx0XCJsb2dvLXR3aXR0ZXJcIixcblx0XCJsb2dvLXZpYmVyXCIsXG5cdFwibG9nby12a1wiLFxuXHRcImxvZ28td2VjaGF0XCIsXG5cdFwibG9nby13ZWlib1wiLFxuXHRcImxvZ28td2hhdHNhcHBcIixcblx0XCJsb2dvLXhpbmdcIixcblx0XCJsb2dvLXlhaG9vXCIsXG5cdFwibG9nby15b3VrdVwiLFxuXHRcImxvZ28teW91dHViZVwiLFxuXHRcImxvZ291dFwiLFxuXHRcIm1hcFwiLFxuXHRcIm1lbnUtZG90cy1ob3Jpem9udGFsXCIsXG5cdFwibWVudS1kb3RzLXZlcnRpY2FsXCIsXG5cdFwibWVudS1saW5lc1wiLFxuXHRcIm1pbnVzXCIsXG5cdFwibW9iaWxlXCIsXG5cdFwibW9vblwiLFxuXHRcIm9pbC1jYW5cIixcblx0XCJwYXJraW5nLWJyYWtlXCIsXG5cdFwicGFya2luZy1saWdodFwiLFxuXHRcInBhdXNlXCIsXG5cdFwicGhvbmVcIixcblx0XCJwaW5cIixcblx0XCJwaW4tZmlsbGVkXCIsXG5cdFwicGxheVwiLFxuXHRcInBsdWdcIixcblx0XCJwbHVzXCIsXG5cdFwicHJlaGVhdGluZ1wiLFxuXHRcInByaW50ZXJcIixcblx0XCJwdXJjaGFzZVwiLFxuXHRcInB1c2gtcGluXCIsXG5cdFwicHVzaC1waW4tb2ZmXCIsXG5cdFwicXJcIixcblx0XCJxdWVzdGlvblwiLFxuXHRcInJhY2luZy1mbGFnXCIsXG5cdFwicmVmcmVzaFwiLFxuXHRcInJlcGxheVwiLFxuXHRcInJlc2V0XCIsXG5cdFwicm9vZi1jbG9zZWRcIixcblx0XCJyb29mLW9wZW5cIixcblx0XCJyb3V0ZVwiLFxuXHRcInJzc1wiLFxuXHRcInNhdmVcIixcblx0XCJzY3JlZW5cIixcblx0XCJzZWFyY2hcIixcblx0XCJzZW5kXCIsXG5cdFwic2hhcmVcIixcblx0XCJzaG9wcGluZy1iYWdcIixcblx0XCJzaG9wcGluZy1iYWctZmlsbGVkXCIsXG5cdFwic2hvcHBpbmctY2FydFwiLFxuXHRcInNob3BwaW5nLWNhcnQtZmlsbGVkXCIsXG5cdFwic2lkZWxpZ2h0c1wiLFxuXHRcInNub3dmbGFrZVwiLFxuXHRcInNvcnRcIixcblx0XCJzdGFja1wiLFxuXHRcInN0YXJcIixcblx0XCJzdGVlcmluZy13aGVlbFwiLFxuXHRcInN0b3B3YXRjaFwiLFxuXHRcInN1YnRyYWN0XCIsXG5cdFwic3VjY2Vzc1wiLFxuXHRcInN1Y2Nlc3MtZmlsbGVkXCIsXG5cdFwic3VuXCIsXG5cdFwic3dpdGNoXCIsXG5cdFwidGFibGV0XCIsXG5cdFwidGFjaG9tZXRlclwiLFxuXHRcInRpcmVcIixcblx0XCJ0cnVja1wiLFxuXHRcInVwbG9hZFwiLFxuXHRcInVzZXJcIixcblx0XCJ1c2VyLWZpbGxlZFwiLFxuXHRcInVzZXItZ3JvdXBcIixcblx0XCJ1c2VyLW1hbnVhbFwiLFxuXHRcInZpZGVvXCIsXG5cdFwidmlld1wiLFxuXHRcInZpZXctb2ZmXCIsXG5cdFwidm9sdW1lLW9mZlwiLFxuXHRcInZvbHVtZS11cFwiLFxuXHRcIndhcm5pbmdcIixcblx0XCJ3YXJuaW5nLWZpbGxlZFwiLFxuXHRcIndlaWdodFwiLFxuXHRcIndpZmlcIixcblx0XCJ3b3JrXCIsXG5cdFwid3JlbmNoXCIsXG5cdFwid3JlbmNoZXNcIixcblx0XCJ6b29tLWluXCIsXG5cdFwiem9vbS1vdXRcIlxuXTtcbmV4cG9ydCB0eXBlIEljb25OYW1lID0gdHlwZW9mIElDT05fTkFNRVNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgRk9STV9TVEFURVM6IHJlYWRvbmx5IFtcblx0XCJub25lXCIsXG5cdFwiZXJyb3JcIixcblx0XCJzdWNjZXNzXCJcbl07XG5leHBvcnQgdHlwZSBGb3JtU3RhdGUgPSB0eXBlb2YgRk9STV9TVEFURVNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgQlVUVE9OX0FSSUFfQVRUUklCVVRFUzogcmVhZG9ubHkgW1xuXHRcImFyaWEtbGFiZWxcIixcblx0XCJhcmlhLWV4cGFuZGVkXCIsXG5cdFwiYXJpYS1wcmVzc2VkXCIsXG5cdFwiYXJpYS1oYXNwb3B1cFwiXG5dO1xuZXhwb3J0IHR5cGUgQnV0dG9uQXJpYUF0dHJpYnV0ZSA9IHR5cGVvZiBCVVRUT05fQVJJQV9BVFRSSUJVVEVTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IExJTktfQVJJQV9BVFRSSUJVVEVTOiByZWFkb25seSBbXG5cdFwiYXJpYS1sYWJlbFwiLFxuXHRcImFyaWEtY3VycmVudFwiXG5dO1xuZXhwb3J0IHR5cGUgTGlua0FyaWFBdHRyaWJ1dGUgPSAodHlwZW9mIExJTktfQVJJQV9BVFRSSUJVVEVTKVtudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBicmVha3BvaW50czogcmVhZG9ubHkgW1xuXHRcImJhc2VcIixcblx0XCJ4c1wiLFxuXHRcInNcIixcblx0XCJtXCIsXG5cdFwibFwiLFxuXHRcInhsXCIsXG5cdFwieHhsXCJcbl07XG5leHBvcnQgdHlwZSBCcmVha3BvaW50ID0gKHR5cGVvZiBicmVha3BvaW50cylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIEJyZWFrcG9pbnRWYWx1ZXM8VD4gPSB7XG5cdFtrZXkgaW4gQnJlYWtwb2ludF0/OiBUO1xufSAmIHtcblx0YmFzZTogVDtcbn07XG5leHBvcnQgdHlwZSBCcmVha3BvaW50Q3VzdG9taXphYmxlPFQ+ID0gVCB8IEJyZWFrcG9pbnRWYWx1ZXM8VD4gfCBzdHJpbmc7XG5kZWNsYXJlIGNvbnN0IFRIRU1FUzogcmVhZG9ubHkgW1xuXHRcImxpZ2h0XCIsXG5cdFwiZGFya1wiXG5dO1xuZXhwb3J0IHR5cGUgVGhlbWUgPSB0eXBlb2YgVEhFTUVTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IFRJTEVfQVNQRUNUX1JBVElPUzogcmVhZG9ubHkgW1xuXHRcIjE6MVwiLFxuXHRcIjQ6M1wiLFxuXHRcIjM6NFwiLFxuXHRcIjE2OjlcIixcblx0XCI5OjE2XCJcbl07XG5leHBvcnQgdHlwZSBUaWxlQXNwZWN0UmF0aW8gPSAodHlwZW9mIFRJTEVfQVNQRUNUX1JBVElPUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgVElMRV9TSVpFUzogcmVhZG9ubHkgW1xuXHRcImRlZmF1bHRcIixcblx0XCJpbmhlcml0XCJcbl07XG5leHBvcnQgdHlwZSBUaWxlU2l6ZSA9ICh0eXBlb2YgVElMRV9TSVpFUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgVElMRV9XRUlHSFRTOiByZWFkb25seSBbXG5cdFwicmVndWxhclwiLFxuXHRcInNlbWktYm9sZFwiXG5dO1xuZXhwb3J0IHR5cGUgVGlsZVdlaWdodCA9ICh0eXBlb2YgVElMRV9XRUlHSFRTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgVGlsZUJhY2tncm91bmQgPSAodHlwZW9mIFRIRU1FUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgVElMRV9BTElHTlM6IHJlYWRvbmx5IFtcblx0XCJ0b3BcIixcblx0XCJib3R0b21cIlxuXTtcbmV4cG9ydCB0eXBlIFRpbGVBbGlnbiA9ICh0eXBlb2YgVElMRV9BTElHTlMpW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IFNDUk9MTEVSX0FSSUFfQVRUUklCVVRFUzogcmVhZG9ubHkgW1xuXHRcInJvbGVcIlxuXTtcbmV4cG9ydCB0eXBlIFNjcm9sbGVyQXJpYUF0dHJpYnV0ZSA9ICh0eXBlb2YgU0NST0xMRVJfQVJJQV9BVFRSSUJVVEVTKVtudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBHUkFESUVOVF9DT0xPUl9TQ0hFTUVTOiByZWFkb25seSBbXG5cdFwiZGVmYXVsdFwiLFxuXHRcInN1cmZhY2VcIlxuXTtcbi8qKiBAZGVwcmVjYXRlZCAqL1xuZXhwb3J0IHR5cGUgU2Nyb2xsZXJHcmFkaWVudENvbG9yU2NoZW1lID0gKHR5cGVvZiBHUkFESUVOVF9DT0xPUl9TQ0hFTUVTKVtudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBHUkFESUVOVF9DT0xPUlM6IHJlYWRvbmx5IFtcblx0XCJiYWNrZ3JvdW5kLWJhc2VcIixcblx0XCJiYWNrZ3JvdW5kLXN1cmZhY2VcIlxuXTtcbmV4cG9ydCB0eXBlIFNjcm9sbGVyR3JhZGllbnRDb2xvciA9ICh0eXBlb2YgR1JBRElFTlRfQ09MT1JTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgU2Nyb2xsZXJTY3JvbGxUb1Bvc2l0aW9uID0ge1xuXHRzY3JvbGxQb3NpdGlvbjogbnVtYmVyO1xuXHRpc1Ntb290aD86IGJvb2xlYW47XG59IHwgc3RyaW5nO1xuZGVjbGFyZSBjb25zdCBTQ1JPTExfSU5ESUNBVE9SX1BPU0lUSU9OUzogcmVhZG9ubHkgW1xuXHRcInRvcFwiLFxuXHRcImNlbnRlclwiXG5dO1xuLyoqIEBkZXByZWNhdGVkICovXG5leHBvcnQgdHlwZSBTY3JvbGxlclNjcm9sbEluZGljYXRvclBvc2l0aW9uID0gKHR5cGVvZiBTQ1JPTExfSU5ESUNBVE9SX1BPU0lUSU9OUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIFNjcm9sbGVyQWxpZ25TY3JvbGxJbmRpY2F0b3IgPSBTY3JvbGxlclNjcm9sbEluZGljYXRvclBvc2l0aW9uO1xuZGVjbGFyZSBjb25zdCBBTElHTl9MQUJFTFM6IHJlYWRvbmx5IFtcblx0XCJsZWZ0XCIsXG5cdFwicmlnaHRcIlxuXTtcbmV4cG9ydCB0eXBlIEFsaWduTGFiZWwgPSB0eXBlb2YgQUxJR05fTEFCRUxTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IEJVVFRPTl9UWVBFUzogcmVhZG9ubHkgW1xuXHRcImJ1dHRvblwiLFxuXHRcInN1Ym1pdFwiLFxuXHRcInJlc2V0XCJcbl07XG5leHBvcnQgdHlwZSBCdXR0b25UeXBlID0gdHlwZW9mIEJVVFRPTl9UWVBFU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBIRUFESU5HX1RBR1M6IHJlYWRvbmx5IFtcblx0XCJoMVwiLFxuXHRcImgyXCIsXG5cdFwiaDNcIixcblx0XCJoNFwiLFxuXHRcImg1XCIsXG5cdFwiaDZcIlxuXTtcbmV4cG9ydCB0eXBlIEhlYWRpbmdUYWcgPSB0eXBlb2YgSEVBRElOR19UQUdTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IExJTktfQlVUVE9OX1ZBUklBTlRTOiByZWFkb25seSBbXG5cdFwicHJpbWFyeVwiLFxuXHRcInNlY29uZGFyeVwiLFxuXHRcInRlcnRpYXJ5XCJcbl07XG5leHBvcnQgdHlwZSBMaW5rQnV0dG9uVmFyaWFudCA9IHR5cGVvZiBMSU5LX0JVVFRPTl9WQVJJQU5UU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBURVhUX0FMSUdOUzogcmVhZG9ubHkgW1xuXHRcImxlZnRcIixcblx0XCJjZW50ZXJcIixcblx0XCJyaWdodFwiXG5dO1xuZXhwb3J0IHR5cGUgVGV4dEFsaWduID0gdHlwZW9mIFRFWFRfQUxJR05TW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IFRFWFRfQ09MT1JTOiByZWFkb25seSBbXG5cdFwicHJpbWFyeVwiLFxuXHRcImNvbnRyYXN0LWxvd1wiLFxuXHRcImNvbnRyYXN0LW1lZGl1bVwiLFxuXHRcImNvbnRyYXN0LWhpZ2hcIixcblx0XCJub3RpZmljYXRpb24tc3VjY2Vzc1wiLFxuXHRcIm5vdGlmaWNhdGlvbi13YXJuaW5nXCIsXG5cdFwibm90aWZpY2F0aW9uLWVycm9yXCIsXG5cdFwibm90aWZpY2F0aW9uLWluZm9cIixcblx0XCJpbmhlcml0XCIsXG5cdFwiYnJhbmRcIixcblx0XCJkZWZhdWx0XCIsXG5cdFwibmV1dHJhbC1jb250cmFzdC1sb3dcIixcblx0XCJuZXV0cmFsLWNvbnRyYXN0LW1lZGl1bVwiLFxuXHRcIm5ldXRyYWwtY29udHJhc3QtaGlnaFwiLFxuXHRcIm5vdGlmaWNhdGlvbi1uZXV0cmFsXCJcbl07XG5leHBvcnQgdHlwZSBUZXh0Q29sb3IgPSB0eXBlb2YgVEVYVF9DT0xPUlNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgVEVYVF9TSVpFUzogcmVhZG9ubHkgW1xuXHRcInh4LXNtYWxsXCIsXG5cdFwieC1zbWFsbFwiLFxuXHRcInNtYWxsXCIsXG5cdFwibWVkaXVtXCIsXG5cdFwibGFyZ2VcIixcblx0XCJ4LWxhcmdlXCIsXG5cdFwiaW5oZXJpdFwiXG5dO1xuZXhwb3J0IHR5cGUgVGV4dFNpemUgPSB0eXBlb2YgVEVYVF9TSVpFU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBURVhUX1dFSUdIVFM6IHJlYWRvbmx5IFtcblx0XCJyZWd1bGFyXCIsXG5cdFwic2VtaS1ib2xkXCIsXG5cdFwiYm9sZFwiLFxuXHRcInRoaW5cIixcblx0XCJzZW1pYm9sZFwiXG5dO1xuZXhwb3J0IHR5cGUgVGV4dFdlaWdodCA9IHR5cGVvZiBURVhUX1dFSUdIVFNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgTElOS19UQVJHRVRTOiByZWFkb25seSBbXG5cdFwiX3NlbGZcIixcblx0XCJfYmxhbmtcIixcblx0XCJfcGFyZW50XCIsXG5cdFwiX3RvcFwiXG5dO1xuZXhwb3J0IHR5cGUgTGlua1RhcmdldCA9ICh0eXBlb2YgTElOS19UQVJHRVRTKVtudW1iZXJdIHwgc3RyaW5nO1xuZXhwb3J0IHR5cGUgTGlua0J1dHRvbkljb25OYW1lID0gSWNvbk5hbWUgfCBcIm5vbmVcIjtcbmV4cG9ydCB0eXBlIEJ1dHRvblZhcmlhbnQgPSBMaW5rQnV0dG9uVmFyaWFudDtcbmV4cG9ydCB0eXBlIExpbmtWYXJpYW50ID0gTGlua0J1dHRvblZhcmlhbnQ7XG5leHBvcnQgdHlwZSBTZWxlY3RlZEFyaWFBdHRyaWJ1dGVzPFQgZXh0ZW5kcyBrZXlvZiBBcmlhQXR0cmlidXRlcz4gPSBQaWNrPEFyaWFBdHRyaWJ1dGVzLCBUPiB8IHN0cmluZztcbmRlY2xhcmUgY29uc3QgQUNDT1JESU9OX1NJWkVTOiByZWFkb25seSBbXG5cdFwic21hbGxcIixcblx0XCJtZWRpdW1cIlxuXTtcbmV4cG9ydCB0eXBlIEFjY29yZGlvblNpemUgPSAodHlwZW9mIEFDQ09SRElPTl9TSVpFUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIEFjY29yZGlvblVwZGF0ZUV2ZW50ID0ge1xuXHRvcGVuOiBib29sZWFuO1xufTtcbmV4cG9ydCB0eXBlIEFjY29yZGlvblRhZyA9IEhlYWRpbmdUYWc7XG5kZWNsYXJlIGNvbnN0IEJBTk5FUl9TVEFURVM6IHJlYWRvbmx5IFtcblx0XCJpbmZvXCIsXG5cdFwid2FybmluZ1wiLFxuXHRcImVycm9yXCIsXG5cdFwibmV1dHJhbFwiXG5dO1xuZXhwb3J0IHR5cGUgQmFubmVyU3RhdGUgPSB0eXBlb2YgQkFOTkVSX1NUQVRFU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBCQU5ORVJfV0lEVEhTOiByZWFkb25seSBbXG5cdFwiZXh0ZW5kZWRcIixcblx0XCJiYXNpY1wiLFxuXHRcImZsdWlkXCJcbl07XG4vKiogQGRlcHJlY2F0ZWQgKi9cbmV4cG9ydCB0eXBlIEJhbm5lcldpZHRoID0gdHlwZW9mIEJBTk5FUl9XSURUSFNbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIEJ1dHRvbkljb24gPSBMaW5rQnV0dG9uSWNvbk5hbWU7XG5kZWNsYXJlIGNvbnN0IEdST1VQX0RJUkVDVElPTlM6IHJlYWRvbmx5IFtcblx0XCJyb3dcIixcblx0XCJjb2x1bW5cIlxuXTtcbmV4cG9ydCB0eXBlIEdyb3VwRGlyZWN0aW9uID0gKHR5cGVvZiBHUk9VUF9ESVJFQ1RJT05TKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgQnV0dG9uR3JvdXBEaXJlY3Rpb24gPSBHcm91cERpcmVjdGlvbjtcbmV4cG9ydCB0eXBlIEJ1dHRvblB1cmVUeXBlID0gQnV0dG9uVHlwZTtcbmV4cG9ydCB0eXBlIEJ1dHRvblB1cmVJY29uID0gTGlua0J1dHRvbkljb25OYW1lO1xuZXhwb3J0IHR5cGUgQnV0dG9uUHVyZUFyaWFBdHRyaWJ1dGUgPSBCdXR0b25BcmlhQXR0cmlidXRlO1xuZXhwb3J0IHR5cGUgQnV0dG9uUHVyZUFsaWduTGFiZWwgPSBBbGlnbkxhYmVsO1xuZXhwb3J0IHR5cGUgQnV0dG9uUHVyZVdlaWdodCA9IFRleHRXZWlnaHQ7XG5leHBvcnQgdHlwZSBCdXR0b25QdXJlU2l6ZSA9IFRleHRTaXplO1xuZXhwb3J0IHR5cGUgQnV0dG9uVGlsZUFyaWFBdHRyaWJ1dGUgPSBCdXR0b25BcmlhQXR0cmlidXRlO1xuZXhwb3J0IHR5cGUgQnV0dG9uVGlsZUljb24gPSBMaW5rQnV0dG9uSWNvbk5hbWU7XG5leHBvcnQgdHlwZSBCdXR0b25UaWxlVHlwZSA9IEJ1dHRvblR5cGU7XG5leHBvcnQgdHlwZSBCdXR0b25UaWxlQXNwZWN0UmF0aW8gPSBUaWxlQXNwZWN0UmF0aW87XG5leHBvcnQgdHlwZSBCdXR0b25UaWxlU2l6ZSA9IFRpbGVTaXplO1xuZXhwb3J0IHR5cGUgQnV0dG9uVGlsZUJhY2tncm91bmQgPSBUaWxlQmFja2dyb3VuZDtcbmV4cG9ydCB0eXBlIEJ1dHRvblRpbGVXZWlnaHQgPSBUaWxlV2VpZ2h0O1xuZXhwb3J0IHR5cGUgQnV0dG9uVGlsZUFsaWduID0gVGlsZUFsaWduO1xuZGVjbGFyZSBjb25zdCBDQVJPVVNFTF9XSURUSFM6IHJlYWRvbmx5IFtcblx0XCJiYXNpY1wiLFxuXHRcImV4dGVuZGVkXCJcbl07XG5leHBvcnQgdHlwZSBDYXJvdXNlbFdpZHRoID0gKHR5cGVvZiBDQVJPVVNFTF9XSURUSFMpW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IENBUk9VU0VMX0FMSUdOX0hFQURFUlM6IHJlYWRvbmx5IFtcblx0XCJsZWZ0XCIsXG5cdFwiY2VudGVyXCJcbl07XG5leHBvcnQgdHlwZSBDYXJvdXNlbEFsaWduSGVhZGVyID0gKHR5cGVvZiBDQVJPVVNFTF9BTElHTl9IRUFERVJTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgQ2Fyb3VzZWxJbnRlcm5hdGlvbmFsaXphdGlvbiA9IFBhcnRpYWw8UmVjb3JkPFwicHJldlwiIHwgXCJuZXh0XCIgfCBcImZpcnN0XCIgfCBcImxhc3RcIiB8IFwic2xpZGVMYWJlbFwiIHwgXCJzbGlkZVwiLCBzdHJpbmc+PiB8IHN0cmluZztcbmV4cG9ydCB0eXBlIENhcm91c2VsVXBkYXRlRXZlbnQgPSB7XG5cdGFjdGl2ZUluZGV4OiBudW1iZXI7XG5cdHByZXZpb3VzSW5kZXg6IG51bWJlcjtcbn07XG5leHBvcnQgdHlwZSBDaGVja2JveFdyYXBwZXJTdGF0ZSA9IEZvcm1TdGF0ZTtcbmRlY2xhcmUgY29uc3QgQ09OVEVOVF9XUkFQUEVSX0JBQ0tHUk9VTkRfQ09MT1JTOiByZWFkb25seSBbXG5cdFwidHJhbnNwYXJlbnRcIixcblx0XCJkZWZhdWx0XCJcbl07XG5leHBvcnQgdHlwZSBDb250ZW50V3JhcHBlckJhY2tncm91bmRDb2xvciA9IHR5cGVvZiBDT05URU5UX1dSQVBQRVJfQkFDS0dST1VORF9DT0xPUlNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgQ09OVEVOVF9XUkFQUEVSX1dJRFRIUzogcmVhZG9ubHkgW1xuXHRcIm5hcnJvd1wiLFxuXHRcImJhc2ljXCIsXG5cdFwiZXh0ZW5kZWRcIixcblx0XCJmbHVpZFwiLFxuXHRcImZ1bGxcIlxuXTtcbmV4cG9ydCB0eXBlIENvbnRlbnRXcmFwcGVyV2lkdGggPSB0eXBlb2YgQ09OVEVOVF9XUkFQUEVSX1dJRFRIU1tudW1iZXJdO1xuZXhwb3J0IHR5cGUgQ3Jlc3RUYXJnZXQgPSBMaW5rVGFyZ2V0O1xuZXhwb3J0IHR5cGUgQ3Jlc3RBcmlhQXR0cmlidXRlID0gTGlua0FyaWFBdHRyaWJ1dGU7XG5kZWNsYXJlIGNvbnN0IERJU1BMQVlfVEFHUzogcmVhZG9ubHkgW1xuXHRcImgxXCIsXG5cdFwiaDJcIixcblx0XCJoM1wiLFxuXHRcImg0XCIsXG5cdFwiaDVcIixcblx0XCJoNlwiXG5dO1xuZXhwb3J0IHR5cGUgRGlzcGxheVRhZyA9ICh0eXBlb2YgRElTUExBWV9UQUdTKVtudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBESVNQTEFZX1NJWkVTOiByZWFkb25seSBbXG5cdFwic21hbGxcIixcblx0XCJtZWRpdW1cIixcblx0XCJsYXJnZVwiLFxuXHRcImluaGVyaXRcIlxuXTtcbmV4cG9ydCB0eXBlIERpc3BsYXlTaXplID0gKHR5cGVvZiBESVNQTEFZX1NJWkVTKVtudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBESVNQTEFZX0NPTE9SUzogcmVhZG9ubHkgW1xuXHRcInByaW1hcnlcIixcblx0XCJpbmhlcml0XCJcbl07XG5leHBvcnQgdHlwZSBEaXNwbGF5Q29sb3IgPSAodHlwZW9mIERJU1BMQVlfQ09MT1JTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgRGlzcGxheUFsaWduID0gVGV4dEFsaWduO1xuZGVjbGFyZSBjb25zdCBESVZJREVSX0NPTE9SUzogcmVhZG9ubHkgW1xuXHRcImNvbnRyYXN0LWxvd1wiLFxuXHRcImNvbnRyYXN0LW1lZGl1bVwiLFxuXHRcImNvbnRyYXN0LWhpZ2hcIixcblx0XCJuZXV0cmFsLWNvbnRyYXN0LWhpZ2hcIixcblx0XCJuZXV0cmFsLWNvbnRyYXN0LW1lZGl1bVwiLFxuXHRcIm5ldXRyYWwtY29udHJhc3QtbG93XCJcbl07XG5leHBvcnQgdHlwZSBEaXZpZGVyQ29sb3IgPSB0eXBlb2YgRElWSURFUl9DT0xPUlNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgRElWSURFUl9ESVJFQ1RJT05TOiByZWFkb25seSBbXG5cdFwidmVydGljYWxcIixcblx0XCJob3Jpem9udGFsXCJcbl07XG5leHBvcnQgdHlwZSBEaXZpZGVyRGlyZWN0aW9uID0gdHlwZW9mIERJVklERVJfRElSRUNUSU9OU1tudW1iZXJdO1xuZXhwb3J0IHR5cGUgRGl2aWRlck9yaWVudGF0aW9uID0gRGl2aWRlckRpcmVjdGlvbjtcbmRlY2xhcmUgY29uc3QgRklFTERTRVRfTEFCRUxfU0laRVM6IHJlYWRvbmx5IFtcblx0XCJzbWFsbFwiLFxuXHRcIm1lZGl1bVwiXG5dO1xuZXhwb3J0IHR5cGUgRmllbGRzZXRMYWJlbFNpemUgPSAodHlwZW9mIEZJRUxEU0VUX0xBQkVMX1NJWkVTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgRmllbGRzZXRTdGF0ZSA9IEZvcm1TdGF0ZTtcbmV4cG9ydCB0eXBlIEZpZWxkc2V0V3JhcHBlckxhYmVsU2l6ZSA9IEZpZWxkc2V0TGFiZWxTaXplO1xuZXhwb3J0IHR5cGUgRmllbGRzZXRXcmFwcGVyU3RhdGUgPSBGaWVsZHNldFN0YXRlO1xuZXhwb3J0IHR5cGUgRmxleElubGluZSA9IGJvb2xlYW47XG5kZWNsYXJlIGNvbnN0IEZMRVhfV1JBUFM6IHJlYWRvbmx5IFtcblx0XCJub3dyYXBcIixcblx0XCJ3cmFwXCIsXG5cdFwid3JhcC1yZXZlcnNlXCJcbl07XG5leHBvcnQgdHlwZSBGbGV4V3JhcCA9IHR5cGVvZiBGTEVYX1dSQVBTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IEZMRVhfRElSRUNUSU9OUzogcmVhZG9ubHkgW1xuXHRcInJvd1wiLFxuXHRcInJvdy1yZXZlcnNlXCIsXG5cdFwiY29sdW1uXCIsXG5cdFwiY29sdW1uLXJldmVyc2VcIlxuXTtcbmV4cG9ydCB0eXBlIEZsZXhEaXJlY3Rpb24gPSB0eXBlb2YgRkxFWF9ESVJFQ1RJT05TW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IEZMRVhfSlVTVElGWV9DT05URU5UUzogcmVhZG9ubHkgW1xuXHRcImZsZXgtc3RhcnRcIixcblx0XCJmbGV4LWVuZFwiLFxuXHRcImNlbnRlclwiLFxuXHRcInNwYWNlLWJldHdlZW5cIixcblx0XCJzcGFjZS1hcm91bmRcIixcblx0XCJzcGFjZS1ldmVubHlcIlxuXTtcbmV4cG9ydCB0eXBlIEZsZXhKdXN0aWZ5Q29udGVudCA9IHR5cGVvZiBGTEVYX0pVU1RJRllfQ09OVEVOVFNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgRkxFWF9BTElHTl9JVEVNUzogcmVhZG9ubHkgW1xuXHRcInN0cmV0Y2hcIixcblx0XCJmbGV4LXN0YXJ0XCIsXG5cdFwiZmxleC1lbmRcIixcblx0XCJjZW50ZXJcIixcblx0XCJiYXNlbGluZVwiXG5dO1xuZXhwb3J0IHR5cGUgRmxleEFsaWduSXRlbXMgPSB0eXBlb2YgRkxFWF9BTElHTl9JVEVNU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBGTEVYX0FMSUdOX0NPTlRFTlRTOiByZWFkb25seSBbXG5cdFwic3RyZXRjaFwiLFxuXHRcImZsZXgtc3RhcnRcIixcblx0XCJmbGV4LWVuZFwiLFxuXHRcImNlbnRlclwiLFxuXHRcInNwYWNlLWJldHdlZW5cIixcblx0XCJzcGFjZS1hcm91bmRcIixcblx0XCJzcGFjZS1ldmVubHlcIlxuXTtcbmV4cG9ydCB0eXBlIEZsZXhBbGlnbkNvbnRlbnQgPSB0eXBlb2YgRkxFWF9BTElHTl9DT05URU5UU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBGTEVYX0lURU1fV0lEVEhTOiByZWFkb25seSBbXG5cdFwiYXV0b1wiLFxuXHRcIm9uZS1xdWFydGVyXCIsXG5cdFwib25lLXRoaXJkXCIsXG5cdFwiaGFsZlwiLFxuXHRcInR3by10aGlyZHNcIixcblx0XCJ0aHJlZS1xdWFydGVyc1wiLFxuXHRcImZ1bGxcIlxuXTtcbmV4cG9ydCB0eXBlIEZsZXhJdGVtV2lkdGggPSB0eXBlb2YgRkxFWF9JVEVNX1dJRFRIU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBGTEVYX0lURU1fT0ZGU0VUUzogcmVhZG9ubHkgW1xuXHRcIm5vbmVcIixcblx0XCJvbmUtcXVhcnRlclwiLFxuXHRcIm9uZS10aGlyZFwiLFxuXHRcImhhbGZcIixcblx0XCJ0d28tdGhpcmRzXCIsXG5cdFwidGhyZWUtcXVhcnRlcnNcIlxuXTtcbmV4cG9ydCB0eXBlIEZsZXhJdGVtT2Zmc2V0ID0gdHlwZW9mIEZMRVhfSVRFTV9PRkZTRVRTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IEZMRVhfSVRFTV9BTElHTl9TRUxGUzogcmVhZG9ubHkgW1xuXHRcImF1dG9cIixcblx0XCJmbGV4LXN0YXJ0XCIsXG5cdFwiZmxleC1lbmRcIixcblx0XCJjZW50ZXJcIixcblx0XCJiYXNlbGluZVwiLFxuXHRcInN0cmV0Y2hcIlxuXTtcbmV4cG9ydCB0eXBlIEZsZXhJdGVtQWxpZ25TZWxmID0gdHlwZW9mIEZMRVhfSVRFTV9BTElHTl9TRUxGU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBGTEVYX0lURU1fR1JPV1M6IHJlYWRvbmx5IFtcblx0MCxcblx0MVxuXTtcbmV4cG9ydCB0eXBlIEZsZXhJdGVtR3JvdyA9IHR5cGVvZiBGTEVYX0lURU1fR1JPV1NbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgRkxFWF9JVEVNX1NIUklOS1M6IHJlYWRvbmx5IFtcblx0MCxcblx0MVxuXTtcbmV4cG9ydCB0eXBlIEZsZXhJdGVtU2hyaW5rID0gdHlwZW9mIEZMRVhfSVRFTV9TSFJJTktTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IEZMRVhfSVRFTV9GTEVYUzogcmVhZG9ubHkgW1xuXHRcImluaXRpYWxcIixcblx0XCJhdXRvXCIsXG5cdFwibm9uZVwiLFxuXHRcImVxdWFsXCJcbl07XG5leHBvcnQgdHlwZSBGbGV4SXRlbUZsZXggPSB0eXBlb2YgRkxFWF9JVEVNX0ZMRVhTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IEZMWU9VVF9QT1NJVElPTlM6IHJlYWRvbmx5IFtcblx0XCJsZWZ0XCIsXG5cdFwicmlnaHRcIlxuXTtcbmV4cG9ydCB0eXBlIEZseW91dFBvc2l0aW9uID0gKHR5cGVvZiBGTFlPVVRfUE9TSVRJT05TKVtudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBGTFlPVVRfQVJJQV9BVFRSSUJVVEVTOiByZWFkb25seSBbXG5cdFwiYXJpYS1sYWJlbFwiXG5dO1xuZXhwb3J0IHR5cGUgRmx5b3V0QXJpYUF0dHJpYnV0ZSA9ICh0eXBlb2YgRkxZT1VUX0FSSUFfQVRUUklCVVRFUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgR1JJRF9ESVJFQ1RJT05TOiByZWFkb25seSBbXG5cdFwicm93XCIsXG5cdFwicm93LXJldmVyc2VcIixcblx0XCJjb2x1bW5cIixcblx0XCJjb2x1bW4tcmV2ZXJzZVwiXG5dO1xuZXhwb3J0IHR5cGUgR3JpZERpcmVjdGlvbiA9IHR5cGVvZiBHUklEX0RJUkVDVElPTlNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgR1JJRF9XUkFQUzogcmVhZG9ubHkgW1xuXHRcIm5vd3JhcFwiLFxuXHRcIndyYXBcIlxuXTtcbmV4cG9ydCB0eXBlIEdyaWRXcmFwID0gdHlwZW9mIEdSSURfV1JBUFNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgR1JJRF9HVVRURVJTOiByZWFkb25seSBbXG5cdDE2LFxuXHQyNCxcblx0MzZcbl07XG5leHBvcnQgdHlwZSBHcmlkR3V0dGVyID0gdHlwZW9mIEdSSURfR1VUVEVSU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBHUklEX0lURU1fU0laRVM6IHJlYWRvbmx5IFtcblx0MSxcblx0Mixcblx0Myxcblx0NCxcblx0NSxcblx0Nixcblx0Nyxcblx0OCxcblx0OSxcblx0MTAsXG5cdDExLFxuXHQxMlxuXTtcbmV4cG9ydCB0eXBlIEdyaWRJdGVtU2l6ZSA9IHR5cGVvZiBHUklEX0lURU1fU0laRVNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgR1JJRF9JVEVNX09GRlNFVFM6IHJlYWRvbmx5IFtcblx0MCxcblx0MSxcblx0Mixcblx0Myxcblx0NCxcblx0NSxcblx0Nixcblx0Nyxcblx0OCxcblx0OSxcblx0MTAsXG5cdDExXG5dO1xuZXhwb3J0IHR5cGUgR3JpZEl0ZW1PZmZzZXQgPSB0eXBlb2YgR1JJRF9JVEVNX09GRlNFVFNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgSEVBRElOR19TSVpFUzogcmVhZG9ubHkgW1xuXHRcInNtYWxsXCIsXG5cdFwibWVkaXVtXCIsXG5cdFwibGFyZ2VcIixcblx0XCJ4LWxhcmdlXCIsXG5cdFwieHgtbGFyZ2VcIixcblx0XCJpbmhlcml0XCJcbl07XG5leHBvcnQgdHlwZSBIZWFkaW5nU2l6ZSA9ICh0eXBlb2YgSEVBRElOR19TSVpFUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgSEVBRElOR19DT0xPUlM6IHJlYWRvbmx5IFtcblx0XCJwcmltYXJ5XCIsXG5cdFwiaW5oZXJpdFwiXG5dO1xuZXhwb3J0IHR5cGUgSGVhZGluZ0NvbG9yID0gKHR5cGVvZiBIRUFESU5HX0NPTE9SUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIEhlYWRpbmdBbGlnbiA9IFRleHRBbGlnbjtcbmRlY2xhcmUgY29uc3QgSEVBRExJTkVfVkFSSUFOVFM6IHJlYWRvbmx5IFtcblx0XCJsYXJnZS10aXRsZVwiLFxuXHRcImhlYWRsaW5lLTFcIixcblx0XCJoZWFkbGluZS0yXCIsXG5cdFwiaGVhZGxpbmUtM1wiLFxuXHRcImhlYWRsaW5lLTRcIixcblx0XCJoZWFkbGluZS01XCJcbl07XG5leHBvcnQgdHlwZSBIZWFkbGluZVZhcmlhbnRUeXBlID0gKHR5cGVvZiBIRUFETElORV9WQVJJQU5UUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIEhlYWRsaW5lVmFyaWFudEN1c3RvbSA9IEV4Y2x1ZGU8QnJlYWtwb2ludEN1c3RvbWl6YWJsZTxUZXh0U2l6ZT4sIFRleHRTaXplPjtcbmV4cG9ydCB0eXBlIEhlYWRsaW5lVmFyaWFudCA9IEhlYWRsaW5lVmFyaWFudFR5cGUgfCBIZWFkbGluZVZhcmlhbnRDdXN0b20gfCBFeHRyYWN0PFRleHRTaXplLCBcImluaGVyaXRcIj47XG5kZWNsYXJlIGNvbnN0IEhFQURMSU5FX1RBR1M6IHJlYWRvbmx5IFtcblx0XCJoMVwiLFxuXHRcImgyXCIsXG5cdFwiaDNcIixcblx0XCJoNFwiLFxuXHRcImg1XCIsXG5cdFwiaDZcIlxuXTtcbmV4cG9ydCB0eXBlIEhlYWRsaW5lVGFnID0gKHR5cGVvZiBIRUFETElORV9UQUdTKVtudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBIRUFETElORV9DT0xPUlM6IHJlYWRvbmx5IFtcblx0XCJwcmltYXJ5XCIsXG5cdFwiZGVmYXVsdFwiLFxuXHRcImluaGVyaXRcIlxuXTtcbmV4cG9ydCB0eXBlIEhlYWRsaW5lQ29sb3IgPSAodHlwZW9mIEhFQURMSU5FX0NPTE9SUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIEhlYWRsaW5lQWxpZ24gPSBUZXh0QWxpZ247XG5kZWNsYXJlIGNvbnN0IElDT05fQVJJQV9BVFRSSUJVVEVTOiByZWFkb25seSBbXG5cdFwiYXJpYS1sYWJlbFwiXG5dO1xuZXhwb3J0IHR5cGUgSWNvbkFyaWFBdHRyaWJ1dGUgPSAodHlwZW9mIElDT05fQVJJQV9BVFRSSUJVVEVTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgSWNvblNpemUgPSBUZXh0U2l6ZTtcbmRlY2xhcmUgY29uc3QgSUNPTl9DT0xPUlM6IHJlYWRvbmx5IFtcblx0XCJwcmltYXJ5XCIsXG5cdFwiY29udHJhc3QtbG93XCIsXG5cdFwiY29udHJhc3QtbWVkaXVtXCIsXG5cdFwiY29udHJhc3QtaGlnaFwiLFxuXHRcIm5vdGlmaWNhdGlvbi1zdWNjZXNzXCIsXG5cdFwibm90aWZpY2F0aW9uLXdhcm5pbmdcIixcblx0XCJub3RpZmljYXRpb24tZXJyb3JcIixcblx0XCJub3RpZmljYXRpb24taW5mb1wiLFxuXHRcImluaGVyaXRcIixcblx0XCJicmFuZFwiLFxuXHRcImRlZmF1bHRcIixcblx0XCJuZXV0cmFsLWNvbnRyYXN0LWxvd1wiLFxuXHRcIm5ldXRyYWwtY29udHJhc3QtbWVkaXVtXCIsXG5cdFwibmV1dHJhbC1jb250cmFzdC1oaWdoXCIsXG5cdFwibm90aWZpY2F0aW9uLW5ldXRyYWxcIixcblx0XCJzdGF0ZS1kaXNhYmxlZFwiXG5dO1xuZXhwb3J0IHR5cGUgSWNvbkNvbG9yID0gKHR5cGVvZiBJQ09OX0NPTE9SUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgSU5MSU5FX05PVElGSUNBVElPTl9TVEFURVM6IHJlYWRvbmx5IFtcblx0XCJzdWNjZXNzXCIsXG5cdFwiaW5mb1wiLFxuXHRcIndhcm5pbmdcIixcblx0XCJlcnJvclwiLFxuXHRcIm5ldXRyYWxcIlxuXTtcbmV4cG9ydCB0eXBlIElubGluZU5vdGlmaWNhdGlvblN0YXRlID0gdHlwZW9mIElOTElORV9OT1RJRklDQVRJT05fU1RBVEVTW251bWJlcl07XG5leHBvcnQgdHlwZSBJbmxpbmVOb3RpZmljYXRpb25BY3Rpb25JY29uID0gSWNvbk5hbWU7XG5leHBvcnQgdHlwZSBMaW5rSWNvbiA9IExpbmtCdXR0b25JY29uTmFtZTtcbmV4cG9ydCB0eXBlIExpbmtQdXJlSWNvbiA9IExpbmtCdXR0b25JY29uTmFtZTtcbmV4cG9ydCB0eXBlIExpbmtQdXJlQXJpYUF0dHJpYnV0ZSA9IExpbmtBcmlhQXR0cmlidXRlO1xuZXhwb3J0IHR5cGUgTGlua1B1cmVBbGlnbkxhYmVsID0gQWxpZ25MYWJlbDtcbmV4cG9ydCB0eXBlIExpbmtQdXJlV2VpZ2h0ID0gVGV4dFdlaWdodDtcbmV4cG9ydCB0eXBlIExpbmtQdXJlU2l6ZSA9IFRleHRTaXplO1xuZXhwb3J0IHR5cGUgTGlua1B1cmVUYXJnZXQgPSBMaW5rVGFyZ2V0O1xuZXhwb3J0IHR5cGUgTGlua1NvY2lhbEljb24gPSBFeHRyYWN0PEljb25OYW1lLCBcImxvZ28tZmFjZWJvb2tcIiB8IFwibG9nby1nb29nbGVcIiB8IFwibG9nby1pbnN0YWdyYW1cIiB8IFwibG9nby1saW5rZWRpblwiIHwgXCJsb2dvLXBpbnRlcmVzdFwiIHwgXCJsb2dvLXR3aXR0ZXJcIiB8IFwibG9nby13ZWNoYXRcIiB8IFwibG9nby13aGF0c2FwcFwiIHwgXCJsb2dvLXhpbmdcIiB8IFwibG9nby15b3V0dWJlXCIgfCBcImxvZ28tYmFpZHVcIiB8IFwibG9nby1kZWxpY2lvdXNcIiB8IFwibG9nby1kaWdnXCIgfCBcImxvZ28tZm91cnNxdWFyZVwiIHwgXCJsb2dvLWdtYWlsXCIgfCBcImxvZ28taGF0ZW5hXCIgfCBcImxvZ28ta2FpeGluXCIgfCBcImxvZ28ta2FrYW90YWxrXCIgfCBcImxvZ28tbmF2ZXJcIiB8IFwibG9nby1xcS1zaGFyZVwiIHwgXCJsb2dvLXFxXCIgfCBcImxvZ28tcmVkZGl0XCIgfCBcImxvZ28tc2t5cm9ja1wiIHwgXCJsb2dvLXNvaHVcIiB8IFwibG9nby10ZWNlbnRcIiB8IFwibG9nby10ZWxlZ3JhbVwiIHwgXCJsb2dvLXRpa3Rva1wiIHwgXCJsb2dvLXR1bWJsclwiIHwgXCJsb2dvLXZpYmVyXCIgfCBcImxvZ28tdmtcIiB8IFwibG9nby13ZWlib1wiIHwgXCJsb2dvLXlhaG9vXCIgfCBcImxvZ28teW91a3VcIj47XG5leHBvcnQgdHlwZSBMaW5rU29jaWFsVGFyZ2V0ID0gTGlua1RhcmdldDtcbmV4cG9ydCB0eXBlIExpbmtUaWxlVGFyZ2V0ID0gTGlua1RhcmdldDtcbmV4cG9ydCB0eXBlIExpbmtUaWxlQXJpYUF0dHJpYnV0ZSA9IExpbmtBcmlhQXR0cmlidXRlO1xuZXhwb3J0IHR5cGUgTGlua1RpbGVBc3BlY3RSYXRpbyA9IFRpbGVBc3BlY3RSYXRpbztcbmV4cG9ydCB0eXBlIExpbmtUaWxlU2l6ZSA9IFRpbGVTaXplO1xuZXhwb3J0IHR5cGUgTGlua1RpbGVCYWNrZ3JvdW5kID0gVGlsZUJhY2tncm91bmQ7XG5leHBvcnQgdHlwZSBMaW5rVGlsZUFsaWduID0gVGlsZUFsaWduO1xuZGVjbGFyZSBjb25zdCBMSU5LX1RJTEVfV0VJR0hUUzogcmVhZG9ubHkgW1xuXHRcInJlZ3VsYXJcIixcblx0XCJzZW1pLWJvbGRcIixcblx0XCJzZW1pYm9sZFwiXG5dO1xuZXhwb3J0IHR5cGUgTGlua1RpbGVXZWlnaHQgPSAodHlwZW9mIExJTktfVElMRV9XRUlHSFRTKVtudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBMSU5LX1RJTEVfTU9ERUxfU0lHTkFUVVJFX01PREVMUzogcmVhZG9ubHkgW1xuXHRcIjcxOFwiLFxuXHRcIjkxMVwiLFxuXHRcImJveHN0ZXJcIixcblx0XCJjYXllbm5lXCIsXG5cdFwiY2F5bWFuXCIsXG5cdFwibWFjYW5cIixcblx0XCJwYW5hbWVyYVwiLFxuXHRcInRheWNhblwiLFxuXHRcInR1cmJvLXNcIixcblx0XCJ0dXJib1wiXG5dO1xuZXhwb3J0IHR5cGUgTGlua1RpbGVNb2RlbFNpZ25hdHVyZU1vZGVsID0gKHR5cGVvZiBMSU5LX1RJTEVfTU9ERUxfU0lHTkFUVVJFX01PREVMUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgTElOS19USUxFX01PREVMX1NJR05BVFVSRV9IRUFESU5HX1RBR1M6IHJlYWRvbmx5IFtcblx0XCJoMlwiLFxuXHRcImgzXCIsXG5cdFwiaDRcIixcblx0XCJoNVwiLFxuXHRcImg2XCJcbl07XG5leHBvcnQgdHlwZSBMaW5rVGlsZU1vZGVsU2lnbmF0dXJlSGVhZGluZ1RhZyA9ICh0eXBlb2YgTElOS19USUxFX01PREVMX1NJR05BVFVSRV9IRUFESU5HX1RBR1MpW251bWJlcl07XG5leHBvcnQgdHlwZSBMaW5rVGlsZU1vZGVsU2lnbmF0dXJlV2VpZ2h0ID0gVGlsZVdlaWdodDtcbmV4cG9ydCB0eXBlIExpbmtUaWxlTW9kZWxTaWduYXR1cmVBc3BlY3RSYXRpbyA9IFRpbGVBc3BlY3RSYXRpbztcbmV4cG9ydCB0eXBlIExpbmtUaWxlTW9kZWxTaWduYXR1cmVMaW5rRGlyZWN0aW9uID0gR3JvdXBEaXJlY3Rpb247XG5kZWNsYXJlIGNvbnN0IE1BUlFVRV9WQVJJQU5UUzogcmVhZG9ubHkgW1xuXHRcIjc1LXllYXJzXCIsXG5cdFwiZGVmYXVsdFwiXG5dO1xuZXhwb3J0IHR5cGUgTWFycXVlVmFyaWFudCA9ICh0eXBlb2YgTUFSUVVFX1ZBUklBTlRTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgTWFycXVlVGFyZ2V0ID0gTGlua1RhcmdldDtcbmV4cG9ydCB0eXBlIE1hcnF1ZUFyaWFBdHRyaWJ1dGUgPSBMaW5rQXJpYUF0dHJpYnV0ZTtcbmRlY2xhcmUgY29uc3QgTUFSUVVFX1NJWkVTOiByZWFkb25seSBbXG5cdFwicmVzcG9uc2l2ZVwiLFxuXHRcInNtYWxsXCIsXG5cdFwibWVkaXVtXCJcbl07XG5leHBvcnQgdHlwZSBNYXJxdWVTaXplID0gdHlwZW9mIE1BUlFVRV9TSVpFU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBNT0RBTF9BUklBX0FUVFJJQlVURVM6IHJlYWRvbmx5IFtcblx0XCJhcmlhLWxhYmVsXCJcbl07XG5leHBvcnQgdHlwZSBNb2RhbEFyaWFBdHRyaWJ1dGUgPSAodHlwZW9mIE1PREFMX0FSSUFfQVRUUklCVVRFUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgTU9ERUxfU0lHTkFUVVJFU19NQU5JRkVTVDoge1xuXHRcIjcxOFwiOiBzdHJpbmc7XG5cdFwiOTExXCI6IHN0cmluZztcblx0Ym94c3Rlcjogc3RyaW5nO1xuXHRjYXllbm5lOiBzdHJpbmc7XG5cdGNheW1hbjogc3RyaW5nO1xuXHRtYWNhbjogc3RyaW5nO1xuXHRwYW5hbWVyYTogc3RyaW5nO1xuXHR0YXljYW46IHN0cmluZztcblx0XCJ0dXJiby1zXCI6IHN0cmluZztcblx0dHVyYm86IHN0cmluZztcbn07XG5kZWNsYXJlIGNvbnN0IE1PREVMX1NJR05BVFVSRV9TSVpFUzogcmVhZG9ubHkgW1xuXHRcInNtYWxsXCIsXG5cdFwiaW5oZXJpdFwiXG5dO1xuZXhwb3J0IHR5cGUgTW9kZWxTaWduYXR1cmVTaXplID0gKHR5cGVvZiBNT0RFTF9TSUdOQVRVUkVfU0laRVMpW251bWJlcl07XG5leHBvcnQgdHlwZSBNb2RlbFNpZ25hdHVyZU1vZGVsID0ga2V5b2YgdHlwZW9mIE1PREVMX1NJR05BVFVSRVNfTUFOSUZFU1Q7XG5kZWNsYXJlIGNvbnN0IE1PREVMX1NJR05BVFVSRV9DT0xPUlM6IHJlYWRvbmx5IFtcblx0XCJwcmltYXJ5XCIsXG5cdFwiY29udHJhc3QtbG93XCIsXG5cdFwiY29udHJhc3QtbWVkaXVtXCIsXG5cdFwiY29udHJhc3QtaGlnaFwiLFxuXHRcImluaGVyaXRcIlxuXTtcbmV4cG9ydCB0eXBlIE1vZGVsU2lnbmF0dXJlQ29sb3IgPSAodHlwZW9mIE1PREVMX1NJR05BVFVSRV9DT0xPUlMpW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IFBBR0lOQVRJT05fTlVNQkVSX09GX1BBR0VfTElOS1M6IHJlYWRvbmx5IFtcblx0NSxcblx0N1xuXTtcbmV4cG9ydCB0eXBlIFBhZ2luYXRpb25NYXhOdW1iZXJPZlBhZ2VMaW5rcyA9ICh0eXBlb2YgUEFHSU5BVElPTl9OVU1CRVJfT0ZfUEFHRV9MSU5LUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIFBhZ2luYXRpb25VcGRhdGVFdmVudCA9IHtcblx0cGFnZTogbnVtYmVyO1xuXHRwcmV2aW91c1BhZ2U6IG51bWJlcjtcbn07XG5leHBvcnQgdHlwZSBQYWdpbmF0aW9uSW50ZXJuYXRpb25hbGl6YXRpb24gPSBQYXJ0aWFsPFJlY29yZDxcInJvb3RcIiB8IFwicHJldlwiIHwgXCJuZXh0XCIgfCBcInBhZ2VcIiwgc3RyaW5nPj4gfCBzdHJpbmc7XG5kZWNsYXJlIGNvbnN0IFBPUE9WRVJfRElSRUNUSU9OUzogcmVhZG9ubHkgW1xuXHRcInRvcFwiLFxuXHRcInJpZ2h0XCIsXG5cdFwiYm90dG9tXCIsXG5cdFwibGVmdFwiXG5dO1xuZXhwb3J0IHR5cGUgUG9wb3ZlckRpcmVjdGlvbiA9ICh0eXBlb2YgUE9QT1ZFUl9ESVJFQ1RJT05TKVtudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBQT1BPVkVSX0FSSUFfQVRUUklCVVRFUzogcmVhZG9ubHkgW1xuXHRcImFyaWEtbGFiZWxcIlxuXTtcbmV4cG9ydCB0eXBlIFBvcG92ZXJBcmlhQXR0cmlidXRlID0gKHR5cGVvZiBQT1BPVkVSX0FSSUFfQVRUUklCVVRFUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIFJhZGlvQnV0dG9uV3JhcHBlclN0YXRlID0gRm9ybVN0YXRlO1xuZGVjbGFyZSBjb25zdCBTRUdNRU5URURfQ09OVFJPTF9CQUNLR1JPVU5EX0NPTE9SUzogcmVhZG9ubHkgW1xuXHRcImJhY2tncm91bmQtc3VyZmFjZVwiLFxuXHRcImJhY2tncm91bmQtZGVmYXVsdFwiXG5dO1xuZXhwb3J0IHR5cGUgU2VnbWVudGVkQ29udHJvbEJhY2tncm91bmRDb2xvciA9ICh0eXBlb2YgU0VHTUVOVEVEX0NPTlRST0xfQkFDS0dST1VORF9DT0xPUlMpW251bWJlcl07XG5leHBvcnQgdHlwZSBTZWdtZW50ZWRDb250cm9sVXBkYXRlRXZlbnQgPSB7XG5cdHZhbHVlOiBzdHJpbmcgfCBudW1iZXI7XG59O1xuZGVjbGFyZSBjb25zdCBTRUdNRU5URURfQ09OVFJPTF9DT0xVTU5TOiAoc3RyaW5nIHwgbnVtYmVyKVtdO1xuZXhwb3J0IHR5cGUgU2VnbWVudGVkQ29udHJvbENvbHVtbnMgPSAodHlwZW9mIFNFR01FTlRFRF9DT05UUk9MX0NPTFVNTlMpW251bWJlcl07XG5leHBvcnQgdHlwZSBTZWdtZW50ZWRDb250cm9sSXRlbUljb24gPSBMaW5rQnV0dG9uSWNvbk5hbWU7XG5kZWNsYXJlIGNvbnN0IERST1BET1dOX0RJUkVDVElPTlM6IHJlYWRvbmx5IFtcblx0XCJkb3duXCIsXG5cdFwidXBcIixcblx0XCJhdXRvXCJcbl07XG5leHBvcnQgdHlwZSBTZWxlY3RXcmFwcGVyRHJvcGRvd25EaXJlY3Rpb24gPSAodHlwZW9mIERST1BET1dOX0RJUkVDVElPTlMpW251bWJlcl07XG5leHBvcnQgdHlwZSBTZWxlY3RXcmFwcGVyU3RhdGUgPSBGb3JtU3RhdGU7XG5kZWNsYXJlIGNvbnN0IFNQSU5ORVJfU0laRVM6IHJlYWRvbmx5IFtcblx0XCJzbWFsbFwiLFxuXHRcIm1lZGl1bVwiLFxuXHRcImxhcmdlXCIsXG5cdFwiaW5oZXJpdFwiXG5dO1xuZXhwb3J0IHR5cGUgU3Bpbm5lclNpemUgPSB0eXBlb2YgU1BJTk5FUl9TSVpFU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBTUElOTkVSX0FSSUFfQVRUUklCVVRFUzogcmVhZG9ubHkgW1xuXHRcImFyaWEtbGFiZWxcIlxuXTtcbmV4cG9ydCB0eXBlIFNwaW5uZXJBcmlhQXR0cmlidXRlID0gdHlwZW9mIFNQSU5ORVJfQVJJQV9BVFRSSUJVVEVTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IFNURVBQRVJfSE9SSVpPTlRBTF9TSVpFUzogcmVhZG9ubHkgW1xuXHRcInNtYWxsXCIsXG5cdFwibWVkaXVtXCJcbl07XG5leHBvcnQgdHlwZSBTdGVwcGVySG9yaXpvbnRhbFNpemUgPSAodHlwZW9mIFNURVBQRVJfSE9SSVpPTlRBTF9TSVpFUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIFN0ZXBwZXJIb3Jpem9udGFsVXBkYXRlRXZlbnQgPSB7XG5cdGFjdGl2ZVN0ZXBJbmRleDogbnVtYmVyO1xufTtcbmRlY2xhcmUgY29uc3QgU1RFUFBFUl9JVEVNX1NUQVRFUzogcmVhZG9ubHkgW1xuXHRcImN1cnJlbnRcIixcblx0XCJjb21wbGV0ZVwiLFxuXHRcIndhcm5pbmdcIlxuXTtcbmV4cG9ydCB0eXBlIFN0ZXBwZXJIb3Jpem9udGFsSXRlbVN0YXRlID0gKHR5cGVvZiBTVEVQUEVSX0lURU1fU1RBVEVTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgU3dpdGNoQWxpZ25MYWJlbCA9IEFsaWduTGFiZWw7XG5leHBvcnQgdHlwZSBTd2l0Y2hVcGRhdGVFdmVudCA9IHtcblx0Y2hlY2tlZDogYm9vbGVhbjtcbn07XG5leHBvcnQgdHlwZSBEaXJlY3Rpb24gPSBcImFzY1wiIHwgXCJkZXNjXCI7XG5leHBvcnQgdHlwZSBUYWJsZUhlYWRDZWxsU29ydCA9IHtcblx0aWQ6IHN0cmluZztcblx0YWN0aXZlPzogYm9vbGVhbjtcblx0ZGlyZWN0aW9uPzogRGlyZWN0aW9uO1xufTtcbmV4cG9ydCB0eXBlIFRhYmxlVXBkYXRlRXZlbnQgPSBUYWJsZUhlYWRDZWxsU29ydDtcbmRlY2xhcmUgY29uc3QgVEFCU19CQVJfU0laRVM6IHJlYWRvbmx5IFtcblx0XCJzbWFsbFwiLFxuXHRcIm1lZGl1bVwiXG5dO1xuZXhwb3J0IHR5cGUgVGFic0JhclNpemUgPSAodHlwZW9mIFRBQlNfQkFSX1NJWkVTKVtudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBUQUJTX0JBUl9XRUlHSFRTOiByZWFkb25seSBbXG5cdFwicmVndWxhclwiLFxuXHRcInNlbWktYm9sZFwiLFxuXHRcInNlbWlib2xkXCJcbl07XG5leHBvcnQgdHlwZSBUYWJzQmFyV2VpZ2h0ID0gKHR5cGVvZiBUQUJTX0JBUl9XRUlHSFRTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgVGFic0JhclVwZGF0ZUV2ZW50ID0ge1xuXHRhY3RpdmVUYWJJbmRleDogbnVtYmVyO1xufTtcbi8qKiBAZGVwcmVjYXRlZCAqL1xuZXhwb3J0IHR5cGUgVGFic0JhckdyYWRpZW50Q29sb3JTY2hlbWUgPSBTY3JvbGxlckdyYWRpZW50Q29sb3JTY2hlbWU7XG5leHBvcnQgdHlwZSBUYWJzQmFyR3JhZGllbnRDb2xvciA9IFNjcm9sbGVyR3JhZGllbnRDb2xvcjtcbmV4cG9ydCB0eXBlIFRhYnNTaXplID0gVGFic0JhclNpemU7XG5leHBvcnQgdHlwZSBUYWJzV2VpZ2h0ID0gVGFic0JhcldlaWdodDtcbi8qKiBAZGVwcmVjYXRlZCAqL1xuZXhwb3J0IHR5cGUgVGFic0dyYWRpZW50Q29sb3JTY2hlbWUgPSBUYWJzQmFyR3JhZGllbnRDb2xvclNjaGVtZTtcbmV4cG9ydCB0eXBlIFRhYnNHcmFkaWVudENvbG9yID0gVGFic0JhckdyYWRpZW50Q29sb3I7XG5leHBvcnQgdHlwZSBUYWJzVXBkYXRlRXZlbnQgPSBUYWJzQmFyVXBkYXRlRXZlbnQ7XG5kZWNsYXJlIGNvbnN0IFRBR19ESVNNSVNTSUJMRV9DT0xPUlM6IHJlYWRvbmx5IFtcblx0XCJiYWNrZ3JvdW5kLWJhc2VcIixcblx0XCJiYWNrZ3JvdW5kLXN1cmZhY2VcIixcblx0XCJiYWNrZ3JvdW5kLWRlZmF1bHRcIlxuXTtcbmV4cG9ydCB0eXBlIFRhZ0Rpc21pc3NpYmxlQ29sb3IgPSB0eXBlb2YgVEFHX0RJU01JU1NJQkxFX0NPTE9SU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBUQUdfRElTTUlTU0lCTEVfQVJJQV9BVFRSSUJVVEVTOiByZWFkb25seSBbXG5cdFwiYXJpYS1sYWJlbFwiXG5dO1xuZXhwb3J0IHR5cGUgVGFnRGlzbWlzc2libGVBcmlhQXR0cmlidXRlID0gdHlwZW9mIFRBR19ESVNNSVNTSUJMRV9BUklBX0FUVFJJQlVURVNbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIFRhZ0ljb24gPSBJY29uTmFtZTtcbmRlY2xhcmUgY29uc3QgVEFHX0NPTE9SUzogcmVhZG9ubHkgW1xuXHRcImJhY2tncm91bmQtYmFzZVwiLFxuXHRcImJhY2tncm91bmQtc3VyZmFjZVwiLFxuXHRcImJhY2tncm91bmQtZGVmYXVsdFwiLFxuXHRcInByaW1hcnlcIixcblx0XCJub3RpZmljYXRpb24taW5mby1zb2Z0XCIsXG5cdFwibm90aWZpY2F0aW9uLXdhcm5pbmctc29mdFwiLFxuXHRcIm5vdGlmaWNhdGlvbi1zdWNjZXNzLXNvZnRcIixcblx0XCJub3RpZmljYXRpb24tZXJyb3Itc29mdFwiLFxuXHRcIm5ldXRyYWwtY29udHJhc3QtaGlnaFwiLFxuXHRcIm5vdGlmaWNhdGlvbi1uZXV0cmFsXCIsXG5cdFwibm90aWZpY2F0aW9uLXdhcm5pbmdcIixcblx0XCJub3RpZmljYXRpb24tc3VjY2Vzc1wiLFxuXHRcIm5vdGlmaWNhdGlvbi1lcnJvclwiXG5dO1xuZXhwb3J0IHR5cGUgVGFnQ29sb3IgPSAodHlwZW9mIFRBR19DT0xPUlMpW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IFRFWFRfVEFHUzogcmVhZG9ubHkgW1xuXHRcInBcIixcblx0XCJzcGFuXCIsXG5cdFwiZGl2XCIsXG5cdFwiYWRkcmVzc1wiLFxuXHRcImJsb2NrcXVvdGVcIixcblx0XCJmaWdjYXB0aW9uXCIsXG5cdFwiY2l0ZVwiLFxuXHRcInRpbWVcIixcblx0XCJsZWdlbmRcIlxuXTtcbmV4cG9ydCB0eXBlIFRleHRUYWcgPSB0eXBlb2YgVEVYVF9UQUdTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IFVOSVRfUE9TSVRJT05TOiByZWFkb25seSBbXG5cdFwicHJlZml4XCIsXG5cdFwic3VmZml4XCJcbl07XG5leHBvcnQgdHlwZSBUZXh0RmllbGRXcmFwcGVyVW5pdFBvc2l0aW9uID0gKHR5cGVvZiBVTklUX1BPU0lUSU9OUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIFRleHRGaWVsZFdyYXBwZXJBY3Rpb25JY29uID0gRXh0cmFjdDxJY29uTmFtZSwgXCJsb2NhdGVcIj47XG5leHBvcnQgdHlwZSBUZXh0RmllbGRXcmFwcGVyU3RhdGUgPSBGb3JtU3RhdGU7XG5kZWNsYXJlIGNvbnN0IExJU1RfVFlQRVM6IHJlYWRvbmx5IFtcblx0XCJ1bm9yZGVyZWRcIixcblx0XCJvcmRlcmVkXCJcbl07XG4vKiogQGRlcHJlY2F0ZWQgKi9cbmV4cG9ydCB0eXBlIFRleHRMaXN0TGlzdFR5cGUgPSB0eXBlb2YgTElTVF9UWVBFU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBPUkRFUl9UWVBFUzogcmVhZG9ubHkgW1xuXHRcIm51bWJlcmVkXCIsXG5cdFwiYWxwaGFiZXRpY2FsbHlcIlxuXTtcbi8qKiBAZGVwcmVjYXRlZCAqL1xuZXhwb3J0IHR5cGUgVGV4dExpc3RPcmRlclR5cGUgPSB0eXBlb2YgT1JERVJfVFlQRVNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgVEVYVF9MSVNUX1RZUEVTOiByZWFkb25seSBbXG5cdFwidW5vcmRlcmVkXCIsXG5cdFwibnVtYmVyZWRcIixcblx0XCJhbHBoYWJldGljYWxseVwiXG5dO1xuZXhwb3J0IHR5cGUgVGV4dExpc3RUeXBlID0gdHlwZW9mIFRFWFRfTElTVF9UWVBFU1tudW1iZXJdO1xuZXhwb3J0IHR5cGUgVGV4dGFyZWFXcmFwcGVyU3RhdGUgPSBGb3JtU3RhdGU7XG5kZWNsYXJlIGNvbnN0IFRPQVNUX1NUQVRFUzogcmVhZG9ubHkgW1xuXHRcImluZm9cIixcblx0XCJzdWNjZXNzXCIsXG5cdFwibmV1dHJhbFwiXG5dO1xuZXhwb3J0IHR5cGUgVG9hc3RTdGF0ZSA9IHR5cGVvZiBUT0FTVF9TVEFURVNbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIFRvYXN0TWVzc2FnZSA9IHtcblx0dGV4dDogc3RyaW5nO1xuXHRzdGF0ZT86IFRvYXN0U3RhdGU7XG59O1xuZGVjbGFyZSBjb25zdCBXT1JETUFSS19TSVpFUzogcmVhZG9ubHkgW1xuXHRcInNtYWxsXCIsXG5cdFwiaW5oZXJpdFwiXG5dO1xuZXhwb3J0IHR5cGUgV29yZG1hcmtTaXplID0gKHR5cGVvZiBXT1JETUFSS19TSVpFUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIFdvcmRtYXJrVGFyZ2V0ID0gTGlua1RhcmdldDtcbmV4cG9ydCB0eXBlIFdvcmRtYXJrQXJpYUF0dHJpYnV0ZSA9IExpbmtBcmlhQXR0cmlidXRlO1xuIl19
@@ -68,10 +68,11 @@ export class DefaultConfig {
68
68
  this.prefix = '';
69
69
  }
70
70
  }
71
+ // TODO: unit tests are missing
71
72
  export class PorscheDesignSystemModule {
72
73
  constructor(configParam) {
73
74
  const configs = (configParam || [new DefaultConfig()]);
74
- configs.forEach(({ prefix }) => load({ prefix }));
75
+ configs.forEach(load);
75
76
  }
76
77
  static load(config) {
77
78
  return {
@@ -98,4 +99,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
98
99
  }], ctorParameters: function () { return [{ type: DefaultConfig, decorators: [{
99
100
  type: Optional
100
101
  }] }]; } });
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9yc2NoZS1kZXNpZ24tc3lzdGVtLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItd3JhcHBlci9zcmMvcG9yc2NoZS1kZXNpZ24tc3lzdGVtLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTTVELE1BQU0sT0FBTyxhQUFhO0lBQTFCO1FBQ0UsV0FBTSxHQUFHLEVBQUUsQ0FBQztJQUNkLENBQUM7Q0FBQTtBQU1ELE1BQU0sT0FBTyx5QkFBeUI7SUFDcEMsWUFBd0IsV0FBMEI7UUFDaEQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxXQUFXLElBQUssQ0FBQyxJQUFJLGFBQWEsRUFBRSxDQUFhLENBQXNDLENBQUM7UUFDekcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUF1QztRQUNqRCxPQUFPO1lBQ0wsUUFBUSxFQUFFLHlCQUF5QjtZQUNuQyxTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLGFBQWE7b0JBQ3RCLEtBQUssRUFBRSxJQUFJO29CQUNYLFFBQVEsRUFBRSxNQUFNO2lCQUNqQjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7O3NIQWpCVSx5QkFBeUI7dUhBQXpCLHlCQUF5Qjt1SEFBekIseUJBQXlCOzJGQUF6Qix5QkFBeUI7a0JBSnJDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLFlBQVk7b0JBQzFCLE9BQU8sRUFBRSxZQUFZO2lCQUN0Qjs7MEJBRWMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgREVDTEFSQVRJT05TIH0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9iYXJyZWwnO1xuaW1wb3J0IHsgbG9hZCB9IGZyb20gJ0Bwb3JzY2hlLWRlc2lnbi1zeXN0ZW0vY29tcG9uZW50cy1qcyc7XG5cbmV4cG9ydCB0eXBlIFBvcnNjaGVEZXNpZ25TeXN0ZW1Nb2R1bGVDb25maWcgPSB7XG4gIHByZWZpeD86IHN0cmluZztcbn07XG5cbmV4cG9ydCBjbGFzcyBEZWZhdWx0Q29uZmlnIGltcGxlbWVudHMgUmVxdWlyZWQ8UG9yc2NoZURlc2lnblN5c3RlbU1vZHVsZUNvbmZpZz4ge1xuICBwcmVmaXggPSAnJztcbn1cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBERUNMQVJBVElPTlMsXG4gIGV4cG9ydHM6IERFQ0xBUkFUSU9OUyxcbn0pXG5leHBvcnQgY2xhc3MgUG9yc2NoZURlc2lnblN5c3RlbU1vZHVsZSB7XG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIGNvbmZpZ1BhcmFtOiBEZWZhdWx0Q29uZmlnKSB7XG4gICAgY29uc3QgY29uZmlncyA9IChjb25maWdQYXJhbSB8fCAoW25ldyBEZWZhdWx0Q29uZmlnKCldIGFzIHVua25vd24pKSBhcyBQb3JzY2hlRGVzaWduU3lzdGVtTW9kdWxlQ29uZmlnW107XG4gICAgY29uZmlncy5mb3JFYWNoKCh7IHByZWZpeCB9KSA9PiBsb2FkKHsgcHJlZml4IH0pKTtcbiAgfVxuXG4gIHN0YXRpYyBsb2FkKGNvbmZpZzogUG9yc2NoZURlc2lnblN5c3RlbU1vZHVsZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8UG9yc2NoZURlc2lnblN5c3RlbU1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogUG9yc2NoZURlc2lnblN5c3RlbU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogRGVmYXVsdENvbmZpZyxcbiAgICAgICAgICBtdWx0aTogdHJ1ZSwgLy8gdG8gc3VwcG9ydCBtdWx0aXBsZSBwcmVmaXhlcyBpbiBzYW1lIG1vZHVsZVxuICAgICAgICAgIHVzZVZhbHVlOiBjb25maWcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9yc2NoZS1kZXNpZ24tc3lzdGVtLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItd3JhcHBlci9zcmMvcG9yc2NoZS1kZXNpZ24tc3lzdGVtLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTzVELE1BQU0sT0FBTyxhQUFhO0lBQTFCO1FBQ0UsV0FBTSxHQUFHLEVBQUUsQ0FBQztJQUNkLENBQUM7Q0FBQTtBQUVELCtCQUErQjtBQUsvQixNQUFNLE9BQU8seUJBQXlCO0lBQ3BDLFlBQXdCLFdBQTBCO1FBQ2hELE1BQU0sT0FBTyxHQUFHLENBQUMsV0FBVyxJQUFLLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBYSxDQUFzQyxDQUFDO1FBQ3pHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBdUM7UUFDakQsT0FBTztZQUNMLFFBQVEsRUFBRSx5QkFBeUI7WUFDbkMsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSxhQUFhO29CQUN0QixLQUFLLEVBQUUsSUFBSTtvQkFDWCxRQUFRLEVBQUUsTUFBTTtpQkFDakI7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOztzSEFqQlUseUJBQXlCO3VIQUF6Qix5QkFBeUI7dUhBQXpCLHlCQUF5QjsyRkFBekIseUJBQXlCO2tCQUpyQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxZQUFZO29CQUMxQixPQUFPLEVBQUUsWUFBWTtpQkFDdEI7OzBCQUVjLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERFQ0xBUkFUSU9OUyB9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvYmFycmVsJztcbmltcG9ydCB7IGxvYWQgfSBmcm9tICdAcG9yc2NoZS1kZXNpZ24tc3lzdGVtL2NvbXBvbmVudHMtanMnO1xuXG5leHBvcnQgdHlwZSBQb3JzY2hlRGVzaWduU3lzdGVtTW9kdWxlQ29uZmlnID0ge1xuICBwcmVmaXg/OiBzdHJpbmc7XG4gIGNkbj86ICdhdXRvJyB8ICdjbic7XG59O1xuXG5leHBvcnQgY2xhc3MgRGVmYXVsdENvbmZpZyBpbXBsZW1lbnRzIFBvcnNjaGVEZXNpZ25TeXN0ZW1Nb2R1bGVDb25maWcge1xuICBwcmVmaXggPSAnJztcbn1cblxuLy8gVE9ETzogdW5pdCB0ZXN0cyBhcmUgbWlzc2luZ1xuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBERUNMQVJBVElPTlMsXG4gIGV4cG9ydHM6IERFQ0xBUkFUSU9OUyxcbn0pXG5leHBvcnQgY2xhc3MgUG9yc2NoZURlc2lnblN5c3RlbU1vZHVsZSB7XG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIGNvbmZpZ1BhcmFtOiBEZWZhdWx0Q29uZmlnKSB7XG4gICAgY29uc3QgY29uZmlncyA9IChjb25maWdQYXJhbSB8fCAoW25ldyBEZWZhdWx0Q29uZmlnKCldIGFzIHVua25vd24pKSBhcyBQb3JzY2hlRGVzaWduU3lzdGVtTW9kdWxlQ29uZmlnW107XG4gICAgY29uZmlncy5mb3JFYWNoKGxvYWQpO1xuICB9XG5cbiAgc3RhdGljIGxvYWQoY29uZmlnOiBQb3JzY2hlRGVzaWduU3lzdGVtTW9kdWxlQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxQb3JzY2hlRGVzaWduU3lzdGVtTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBQb3JzY2hlRGVzaWduU3lzdGVtTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBEZWZhdWx0Q29uZmlnLFxuICAgICAgICAgIG11bHRpOiB0cnVlLCAvLyB0byBzdXBwb3J0IG11bHRpcGxlIHByZWZpeGVzIGluIHNhbWUgbW9kdWxlXG4gICAgICAgICAgdXNlVmFsdWU6IGNvbmZpZyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -2278,10 +2278,11 @@ class DefaultConfig {
2278
2278
  this.prefix = '';
2279
2279
  }
2280
2280
  }
2281
+ // TODO: unit tests are missing
2281
2282
  class PorscheDesignSystemModule {
2282
2283
  constructor(configParam) {
2283
2284
  const configs = (configParam || [new DefaultConfig()]);
2284
- configs.forEach(({ prefix }) => load({ prefix }));
2285
+ configs.forEach(load);
2285
2286
  }
2286
2287
  static load(config) {
2287
2288
  return {