pdm-ui-kit 0.1.19 → 0.1.20

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.
@@ -1,8 +1,12 @@
1
1
  import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
+ import { icons } from 'lucide';
2
3
  import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
+ import * as i1 from "@angular/platform-browser";
5
+ import * as i2 from "@angular/common";
6
+ const FALLBACK_NODE = [['circle', { cx: '12', cy: '12', r: '9' }]];
4
7
  export class PdmIconComponent {
5
- constructor() {
8
+ constructor(sanitizer) {
9
+ this.sanitizer = sanitizer;
6
10
  this.name = 'check';
7
11
  this.library = 'lucide';
8
12
  this.assetUrl = null;
@@ -11,34 +15,39 @@ export class PdmIconComponent {
11
15
  this.className = '';
12
16
  this.ariaLabel = null;
13
17
  this.decorative = false;
18
+ this.lucideIndex = this.buildLucideIndex();
14
19
  this.aliasMapByLibrary = {
15
- lucide: {},
20
+ lucide: {
21
+ 'check-circle': 'circle-check',
22
+ 'alert-circle': 'circle-alert',
23
+ info: 'circle-info',
24
+ 'sort-asc': 'arrow-up-a-z',
25
+ 'sort-desc': 'arrow-down-z-a'
26
+ },
16
27
  tabler: {
17
- 'alert-triangle': 'alert-circle',
18
- 'chevron-down': 'chevron-down',
19
- 'chevron-right': 'chevron-right',
20
- 'user-circle': 'user',
21
- 'settings-2': 'settings',
28
+ 'alert-triangle': 'triangle-alert',
29
+ 'user-circle': 'circle-user',
30
+ 'settings-2': 'settings-2',
22
31
  'external-link': 'external-link'
23
32
  },
24
33
  hugeicons: {
25
- 'alert-02': 'alert-circle',
26
- 'user-circle': 'user',
34
+ 'alert-02': 'circle-alert',
35
+ 'user-circle': 'circle-user',
27
36
  'search-01': 'search',
28
37
  'settings-01': 'settings',
29
38
  'arrow-right-01': 'chevron-right',
30
39
  'arrow-down-01': 'chevron-down'
31
40
  },
32
41
  phosphor: {
33
- 'warning-circle': 'alert-circle',
42
+ 'warning-circle': 'circle-alert',
34
43
  'caret-down': 'chevron-down',
35
44
  'caret-right': 'chevron-right',
36
- 'user-circle': 'user',
45
+ 'user-circle': 'circle-user',
37
46
  gear: 'settings',
38
47
  'arrow-square-out': 'external-link'
39
48
  },
40
49
  remix: {
41
- 'alert-line': 'alert-circle',
50
+ 'alert-line': 'circle-alert',
42
51
  'arrow-right-line': 'chevron-right',
43
52
  'arrow-down-s-line': 'chevron-down',
44
53
  'external-link-line': 'external-link',
@@ -48,8 +57,9 @@ export class PdmIconComponent {
48
57
  };
49
58
  }
50
59
  get resolvedStrokeWidth() {
51
- if (this.strokeWidth) {
52
- return this.strokeWidth;
60
+ const value = Number(this.strokeWidth);
61
+ if (Number.isFinite(value) && value > 0) {
62
+ return value;
53
63
  }
54
64
  if (this.library === 'phosphor') {
55
65
  return 1.6;
@@ -59,6 +69,10 @@ export class PdmIconComponent {
59
69
  }
60
70
  return 1.5;
61
71
  }
72
+ get resolvedSize() {
73
+ const value = Number(this.size);
74
+ return Number.isFinite(value) && value > 0 ? value : 16;
75
+ }
62
76
  get iconKey() {
63
77
  const raw = `${this.name || ''}`.trim();
64
78
  if (!raw) {
@@ -68,13 +82,49 @@ export class PdmIconComponent {
68
82
  const aliases = this.aliasMapByLibrary[this.library] ?? {};
69
83
  return aliases[trimmed] ?? trimmed;
70
84
  }
85
+ get svgMarkup() {
86
+ const node = this.resolveIconNode(this.iconKey) ?? FALLBACK_NODE;
87
+ const strokeWidth = this.escapeAttr(this.resolvedStrokeWidth);
88
+ const size = this.escapeAttr(this.resolvedSize);
89
+ const body = node
90
+ .map(([tag, attrs]) => {
91
+ const serializedAttrs = Object.entries(attrs)
92
+ .map(([key, value]) => `${key}="${this.escapeAttr(value)}"`)
93
+ .join(' ');
94
+ return serializedAttrs ? `<${tag} ${serializedAttrs}></${tag}>` : `<${tag}></${tag}>`;
95
+ })
96
+ .join('');
97
+ const svg = `<svg xmlns="http://www.w3.org/2000/svg" width="${size}" height="${size}" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="${strokeWidth}" stroke-linecap="round" stroke-linejoin="round">${body}</svg>`;
98
+ return this.sanitizer.bypassSecurityTrustHtml(svg);
99
+ }
100
+ resolveIconNode(iconName) {
101
+ const normalized = this.normalizeIconName(iconName);
102
+ return this.lucideIndex.get(normalized) ?? null;
103
+ }
104
+ normalizeIconName(name) {
105
+ return `${name || ''}`.toLowerCase().replace(/[^a-z0-9]/g, '');
106
+ }
107
+ buildLucideIndex() {
108
+ const map = new Map();
109
+ Object.entries(icons).forEach(([iconName, iconNode]) => {
110
+ map.set(this.normalizeIconName(iconName), iconNode);
111
+ });
112
+ return map;
113
+ }
114
+ escapeAttr(value) {
115
+ return `${value ?? ''}`
116
+ .replace(/&/g, '&amp;')
117
+ .replace(/"/g, '&quot;')
118
+ .replace(/</g, '&lt;')
119
+ .replace(/>/g, '&gt;');
120
+ }
71
121
  }
72
- PdmIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
73
- PdmIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmIconComponent, selector: "pdm-icon", inputs: { name: "name", library: "library", assetUrl: "assetUrl", size: "size", strokeWidth: "strokeWidth", className: "className", ariaLabel: "ariaLabel", decorative: "decorative" }, ngImport: i0, template: "<ng-container *ngIf=\"assetUrl; else inlineIcon\">\n <img\n [src]=\"assetUrl\"\n [style.width.px]=\"size\"\n [style.height.px]=\"size\"\n [ngClass]=\"className\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? 'true' : null\"\n [attr.aria-label]=\"!decorative ? ariaLabel || name : null\"\n alt=\"\"\n />\n</ng-container>\n\n<ng-template #inlineIcon>\n <svg\n [attr.width]=\"size\"\n [attr.height]=\"size\"\n [ngClass]=\"className\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? 'true' : null\"\n [attr.aria-label]=\"!decorative ? ariaLabel || name : null\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <ng-container [ngSwitch]=\"iconKey\">\n <g *ngSwitchCase=\"'command'\">\n <path d=\"M9 9V15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M15 9V15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 9H15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 15H15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 9H7.5C6.12 9 5 7.88 5 6.5C5 5.12 6.12 4 7.5 4C8.88 4 10 5.12 10 6.5V8\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M15 9H16.5C17.88 9 19 7.88 19 6.5C19 5.12 17.88 4 16.5 4C15.12 4 14 5.12 14 6.5V8\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 15H7.5C6.12 15 5 16.12 5 17.5C5 18.88 6.12 20 7.5 20C8.88 20 10 18.88 10 17.5V16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M15 15H16.5C17.88 15 19 16.12 19 17.5C19 18.88 17.88 20 16.5 20C15.12 20 14 18.88 14 17.5V16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'check'\">\n <path d=\"M5 12.5L9.2 16.7L19 7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'check-circle'\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M8.5 12.2L11 14.7L15.8 9.9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'circle'\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'dot'\">\n <circle cx=\"12\" cy=\"12\" r=\"2.5\" fill=\"currentColor\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'x'\">\n <path d=\"M6 6L18 18M18 6L6 18\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'alert-circle'\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M12 8V12\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"currentColor\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'info'\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M12 11V16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <circle cx=\"12\" cy=\"8\" r=\"1\" fill=\"currentColor\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'loader-2'\">\n <path d=\"M12 3A9 9 0 1 0 21 12\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'menu'\">\n <path d=\"M4 7H20M4 12H20M4 17H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'search'\">\n <circle cx=\"11\" cy=\"11\" r=\"7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M20 20L16.6 16.6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'calendar'\">\n <path d=\"M8 3V6M16 3V6M4 10H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <rect x=\"4\" y=\"6\" width=\"16\" height=\"14\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n </g>\n\n <g *ngSwitchCase=\"'panel-left'\">\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"16\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M9 4V20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></path>\n </g>\n\n <g *ngSwitchCase=\"'monitor'\">\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"13\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M8 20H16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M12 17V20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'laptop'\">\n <rect x=\"5\" y=\"5\" width=\"14\" height=\"10\" rx=\"1.5\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M3 18H21\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'sun'\">\n <circle cx=\"12\" cy=\"12\" r=\"4\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M12 2V4M12 20V22M4 12H2M22 12H20M19.07 4.93L17.66 6.34M6.34 17.66L4.93 19.07M19.07 19.07L17.66 17.66M6.34 6.34L4.93 4.93\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'moon'\">\n <path d=\"M20 14.5C19.1 17.9 16 20.5 12.3 20.5C7.9 20.5 4.3 16.9 4.3 12.5C4.3 8.8 6.8 5.8 10.2 4.8C9.6 5.8 9.3 7 9.3 8.2C9.3 11.8 12.2 14.7 15.8 14.7C17 14.7 18.1 14.4 19.1 13.8C19.4 13.6 20.1 14 20 14.5Z\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevron-down'\">\n <path d=\"M7 10L12 15L17 10\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevron-up'\">\n <path d=\"M17 14L12 9L7 14\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevron-left'\">\n <path d=\"M15 18L9 12L15 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevron-right'\">\n <path d=\"M9 18L15 12L9 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevrons-left'\">\n <path d=\"M14 18L8 12L14 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M20 18L14 12L20 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevrons-right'\">\n <path d=\"M10 18L16 12L10 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M4 18L10 12L4 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevrons-up-down'\">\n <path d=\"M7 15L12 20L17 15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M17 9L12 4L7 9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'arrow-up-down'\">\n <path d=\"M12 4V20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M8 8L12 4L16 8\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M8 16L12 20L16 16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'ellipsis'\">\n <circle cx=\"6\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n <circle cx=\"12\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n <circle cx=\"18\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'filter'\">\n <path d=\"M4 6H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M7 12H17\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M10 18H14\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'sort-asc'\">\n <path d=\"M7 18V6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M4 9L7 6L10 9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M14 8H20M14 12H18M14 16H16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'sort-desc'\">\n <path d=\"M7 6V18\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M4 15L7 18L10 15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M14 8H16M14 12H18M14 16H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'plus'\">\n <path d=\"M12 5V19M5 12H19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'minus'\">\n <path d=\"M5 12H19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'copy'\">\n <rect x=\"9\" y=\"9\" width=\"11\" height=\"11\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <rect x=\"4\" y=\"4\" width=\"11\" height=\"11\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n </g>\n\n <g *ngSwitchCase=\"'pencil'\">\n <path d=\"M12 20H21\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M16.5 4.5C17.1 3.9 18 3.9 18.6 4.5L19.5 5.4C20.1 6 20.1 6.9 19.5 7.5L9 18L4 19L5 14L16.5 4.5Z\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'trash-2'\">\n <path d=\"M4 7H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 7V5C9 4.4 9.4 4 10 4H14C14.6 4 15 4.4 15 5V7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M7 7L8 19C8 19.6 8.4 20 9 20H15C15.6 20 16 19.6 16 19L17 7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M10 11V17M14 11V17\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'download'\">\n <path d=\"M12 4V14\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M8 10L12 14L16 10\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M5 19H19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'upload'\">\n <path d=\"M12 20V10\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M8 14L12 10L16 14\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M5 5H19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'home'\">\n <path d=\"M4 10.5L12 4L20 10.5\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M6 9.5V20H18V9.5\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'mail'\">\n <rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M4 7L12 13L20 7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'phone'\">\n <path d=\"M8.8 4.6C9.2 3.8 10.2 3.5 11 4L13.3 5.2C14.1 5.6 14.4 6.6 14 7.4L13 9.2C12.8 9.6 12.9 10.1 13.2 10.4L14.9 12.1C15.2 12.4 15.7 12.5 16.1 12.3L17.9 11.3C18.7 10.9 19.7 11.2 20.1 12L21.3 14.3C21.8 15.1 21.5 16.1 20.7 16.5L18.8 17.5C16.9 18.5 14.5 18.1 12.9 16.5L7.5 11.1C5.9 9.5 5.5 7.1 6.5 5.2L8.8 4.6Z\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'log-in'\">\n <path d=\"M15 3H18C19.1 3 20 3.9 20 5V19C20 20.1 19.1 21 18 21H15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M10 17L14 13L10 9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M14 13H4\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'log-out'\">\n <path d=\"M9 3H6C4.9 3 4 3.9 4 5V19C4 20.1 4.9 21 6 21H9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M14 17L10 13L14 9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M10 13H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'user'\">\n <circle cx=\"12\" cy=\"8\" r=\"3\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M6 19C6.8 16.7 8.9 15.5 12 15.5C15.1 15.5 17.2 16.7 18 19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'settings'\">\n <circle cx=\"12\" cy=\"12\" r=\"3\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M19 12A7 7 0 1 0 12 19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'credit-card'\">\n <rect x=\"3\" y=\"6\" width=\"18\" height=\"12\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M3 10H21\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></path>\n </g>\n\n <g *ngSwitchCase=\"'smile'\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M9 15C9.7 16 10.7 16.5 12 16.5C13.3 16.5 14.3 16 15 15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <circle cx=\"9\" cy=\"10\" r=\"1\" fill=\"currentColor\"></circle>\n <circle cx=\"15\" cy=\"10\" r=\"1\" fill=\"currentColor\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'calculator'\">\n <rect x=\"6\" y=\"3\" width=\"12\" height=\"18\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M9 7H15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 12H10M14 12H15M9 16H10M14 16H15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'external-link'\">\n <path d=\"M14 5H19V10\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M10 14L19 5\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M19 14V19H5V5H10\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'folder'\">\n <path d=\"M3 7C3 5.9 3.9 5 5 5H9L11 7H19C20.1 7 21 7.9 21 9V17C21 18.1 20.1 19 19 19H5C3.9 19 3 18.1 3 17V7Z\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'arrow-up-right'\">\n <path d=\"M7 17L17 7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 7H17V15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchDefault>\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n </g>\n </ng-container>\n </svg>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
122
+ PdmIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmIconComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
123
+ PdmIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmIconComponent, selector: "pdm-icon", inputs: { name: "name", library: "library", assetUrl: "assetUrl", size: "size", strokeWidth: "strokeWidth", className: "className", ariaLabel: "ariaLabel", decorative: "decorative" }, ngImport: i0, template: "<ng-container *ngIf=\"assetUrl; else inlineIcon\">\n <img\n [src]=\"assetUrl\"\n [style.width.px]=\"resolvedSize\"\n [style.height.px]=\"resolvedSize\"\n [ngClass]=\"className\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? 'true' : null\"\n [attr.aria-label]=\"!decorative ? ariaLabel || name : null\"\n alt=\"\"\n />\n</ng-container>\n\n<ng-template #inlineIcon>\n <span\n [ngClass]=\"className\"\n [style.display]=\"'inline-flex'\"\n [style.align-items]=\"'center'\"\n [style.justify-content]=\"'center'\"\n [style.line-height]=\"0\"\n [style.width.px]=\"resolvedSize\"\n [style.height.px]=\"resolvedSize\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? 'true' : null\"\n [attr.aria-label]=\"!decorative ? ariaLabel || name : null\"\n [innerHTML]=\"svgMarkup\"\n ></span>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
74
124
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmIconComponent, decorators: [{
75
125
  type: Component,
76
- args: [{ selector: 'pdm-icon', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"assetUrl; else inlineIcon\">\n <img\n [src]=\"assetUrl\"\n [style.width.px]=\"size\"\n [style.height.px]=\"size\"\n [ngClass]=\"className\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? 'true' : null\"\n [attr.aria-label]=\"!decorative ? ariaLabel || name : null\"\n alt=\"\"\n />\n</ng-container>\n\n<ng-template #inlineIcon>\n <svg\n [attr.width]=\"size\"\n [attr.height]=\"size\"\n [ngClass]=\"className\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? 'true' : null\"\n [attr.aria-label]=\"!decorative ? ariaLabel || name : null\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <ng-container [ngSwitch]=\"iconKey\">\n <g *ngSwitchCase=\"'command'\">\n <path d=\"M9 9V15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M15 9V15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 9H15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 15H15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 9H7.5C6.12 9 5 7.88 5 6.5C5 5.12 6.12 4 7.5 4C8.88 4 10 5.12 10 6.5V8\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M15 9H16.5C17.88 9 19 7.88 19 6.5C19 5.12 17.88 4 16.5 4C15.12 4 14 5.12 14 6.5V8\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 15H7.5C6.12 15 5 16.12 5 17.5C5 18.88 6.12 20 7.5 20C8.88 20 10 18.88 10 17.5V16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M15 15H16.5C17.88 15 19 16.12 19 17.5C19 18.88 17.88 20 16.5 20C15.12 20 14 18.88 14 17.5V16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'check'\">\n <path d=\"M5 12.5L9.2 16.7L19 7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'check-circle'\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M8.5 12.2L11 14.7L15.8 9.9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'circle'\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'dot'\">\n <circle cx=\"12\" cy=\"12\" r=\"2.5\" fill=\"currentColor\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'x'\">\n <path d=\"M6 6L18 18M18 6L6 18\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'alert-circle'\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M12 8V12\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"currentColor\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'info'\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M12 11V16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <circle cx=\"12\" cy=\"8\" r=\"1\" fill=\"currentColor\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'loader-2'\">\n <path d=\"M12 3A9 9 0 1 0 21 12\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'menu'\">\n <path d=\"M4 7H20M4 12H20M4 17H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'search'\">\n <circle cx=\"11\" cy=\"11\" r=\"7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M20 20L16.6 16.6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'calendar'\">\n <path d=\"M8 3V6M16 3V6M4 10H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <rect x=\"4\" y=\"6\" width=\"16\" height=\"14\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n </g>\n\n <g *ngSwitchCase=\"'panel-left'\">\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"16\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M9 4V20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></path>\n </g>\n\n <g *ngSwitchCase=\"'monitor'\">\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"13\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M8 20H16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M12 17V20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'laptop'\">\n <rect x=\"5\" y=\"5\" width=\"14\" height=\"10\" rx=\"1.5\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M3 18H21\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'sun'\">\n <circle cx=\"12\" cy=\"12\" r=\"4\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M12 2V4M12 20V22M4 12H2M22 12H20M19.07 4.93L17.66 6.34M6.34 17.66L4.93 19.07M19.07 19.07L17.66 17.66M6.34 6.34L4.93 4.93\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'moon'\">\n <path d=\"M20 14.5C19.1 17.9 16 20.5 12.3 20.5C7.9 20.5 4.3 16.9 4.3 12.5C4.3 8.8 6.8 5.8 10.2 4.8C9.6 5.8 9.3 7 9.3 8.2C9.3 11.8 12.2 14.7 15.8 14.7C17 14.7 18.1 14.4 19.1 13.8C19.4 13.6 20.1 14 20 14.5Z\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevron-down'\">\n <path d=\"M7 10L12 15L17 10\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevron-up'\">\n <path d=\"M17 14L12 9L7 14\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevron-left'\">\n <path d=\"M15 18L9 12L15 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevron-right'\">\n <path d=\"M9 18L15 12L9 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevrons-left'\">\n <path d=\"M14 18L8 12L14 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M20 18L14 12L20 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevrons-right'\">\n <path d=\"M10 18L16 12L10 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M4 18L10 12L4 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevrons-up-down'\">\n <path d=\"M7 15L12 20L17 15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M17 9L12 4L7 9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'arrow-up-down'\">\n <path d=\"M12 4V20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M8 8L12 4L16 8\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M8 16L12 20L16 16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'ellipsis'\">\n <circle cx=\"6\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n <circle cx=\"12\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n <circle cx=\"18\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'filter'\">\n <path d=\"M4 6H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M7 12H17\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M10 18H14\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'sort-asc'\">\n <path d=\"M7 18V6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M4 9L7 6L10 9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M14 8H20M14 12H18M14 16H16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'sort-desc'\">\n <path d=\"M7 6V18\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M4 15L7 18L10 15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M14 8H16M14 12H18M14 16H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'plus'\">\n <path d=\"M12 5V19M5 12H19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'minus'\">\n <path d=\"M5 12H19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'copy'\">\n <rect x=\"9\" y=\"9\" width=\"11\" height=\"11\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <rect x=\"4\" y=\"4\" width=\"11\" height=\"11\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n </g>\n\n <g *ngSwitchCase=\"'pencil'\">\n <path d=\"M12 20H21\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M16.5 4.5C17.1 3.9 18 3.9 18.6 4.5L19.5 5.4C20.1 6 20.1 6.9 19.5 7.5L9 18L4 19L5 14L16.5 4.5Z\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'trash-2'\">\n <path d=\"M4 7H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 7V5C9 4.4 9.4 4 10 4H14C14.6 4 15 4.4 15 5V7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M7 7L8 19C8 19.6 8.4 20 9 20H15C15.6 20 16 19.6 16 19L17 7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M10 11V17M14 11V17\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'download'\">\n <path d=\"M12 4V14\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M8 10L12 14L16 10\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M5 19H19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'upload'\">\n <path d=\"M12 20V10\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M8 14L12 10L16 14\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M5 5H19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'home'\">\n <path d=\"M4 10.5L12 4L20 10.5\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M6 9.5V20H18V9.5\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'mail'\">\n <rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M4 7L12 13L20 7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'phone'\">\n <path d=\"M8.8 4.6C9.2 3.8 10.2 3.5 11 4L13.3 5.2C14.1 5.6 14.4 6.6 14 7.4L13 9.2C12.8 9.6 12.9 10.1 13.2 10.4L14.9 12.1C15.2 12.4 15.7 12.5 16.1 12.3L17.9 11.3C18.7 10.9 19.7 11.2 20.1 12L21.3 14.3C21.8 15.1 21.5 16.1 20.7 16.5L18.8 17.5C16.9 18.5 14.5 18.1 12.9 16.5L7.5 11.1C5.9 9.5 5.5 7.1 6.5 5.2L8.8 4.6Z\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'log-in'\">\n <path d=\"M15 3H18C19.1 3 20 3.9 20 5V19C20 20.1 19.1 21 18 21H15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M10 17L14 13L10 9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M14 13H4\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'log-out'\">\n <path d=\"M9 3H6C4.9 3 4 3.9 4 5V19C4 20.1 4.9 21 6 21H9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M14 17L10 13L14 9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M10 13H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'user'\">\n <circle cx=\"12\" cy=\"8\" r=\"3\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M6 19C6.8 16.7 8.9 15.5 12 15.5C15.1 15.5 17.2 16.7 18 19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'settings'\">\n <circle cx=\"12\" cy=\"12\" r=\"3\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M19 12A7 7 0 1 0 12 19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'credit-card'\">\n <rect x=\"3\" y=\"6\" width=\"18\" height=\"12\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M3 10H21\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></path>\n </g>\n\n <g *ngSwitchCase=\"'smile'\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M9 15C9.7 16 10.7 16.5 12 16.5C13.3 16.5 14.3 16 15 15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <circle cx=\"9\" cy=\"10\" r=\"1\" fill=\"currentColor\"></circle>\n <circle cx=\"15\" cy=\"10\" r=\"1\" fill=\"currentColor\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'calculator'\">\n <rect x=\"6\" y=\"3\" width=\"12\" height=\"18\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M9 7H15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 12H10M14 12H15M9 16H10M14 16H15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'external-link'\">\n <path d=\"M14 5H19V10\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M10 14L19 5\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M19 14V19H5V5H10\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'folder'\">\n <path d=\"M3 7C3 5.9 3.9 5 5 5H9L11 7H19C20.1 7 21 7.9 21 9V17C21 18.1 20.1 19 19 19H5C3.9 19 3 18.1 3 17V7Z\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'arrow-up-right'\">\n <path d=\"M7 17L17 7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 7H17V15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchDefault>\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n </g>\n </ng-container>\n </svg>\n</ng-template>\n" }]
77
- }], propDecorators: { name: [{
126
+ args: [{ selector: 'pdm-icon', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"assetUrl; else inlineIcon\">\n <img\n [src]=\"assetUrl\"\n [style.width.px]=\"resolvedSize\"\n [style.height.px]=\"resolvedSize\"\n [ngClass]=\"className\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? 'true' : null\"\n [attr.aria-label]=\"!decorative ? ariaLabel || name : null\"\n alt=\"\"\n />\n</ng-container>\n\n<ng-template #inlineIcon>\n <span\n [ngClass]=\"className\"\n [style.display]=\"'inline-flex'\"\n [style.align-items]=\"'center'\"\n [style.justify-content]=\"'center'\"\n [style.line-height]=\"0\"\n [style.width.px]=\"resolvedSize\"\n [style.height.px]=\"resolvedSize\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? 'true' : null\"\n [attr.aria-label]=\"!decorative ? ariaLabel || name : null\"\n [innerHTML]=\"svgMarkup\"\n ></span>\n</ng-template>\n" }]
127
+ }], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; }, propDecorators: { name: [{
78
128
  type: Input
79
129
  }], library: [{
80
130
  type: Input
@@ -91,4 +141,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
91
141
  }], decorative: [{
92
142
  type: Input
93
143
  }] } });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaWNvbi9pY29uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9pY29uL2ljb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQTREMUUsTUFBTSxPQUFPLGdCQUFnQjtJQUw3QjtRQU1XLFNBQUksR0FBeUIsT0FBTyxDQUFDO1FBQ3JDLFlBQU8sR0FBbUIsUUFBUSxDQUFDO1FBQ25DLGFBQVEsR0FBa0IsSUFBSSxDQUFDO1FBQy9CLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixnQkFBVyxHQUFHLEdBQUcsQ0FBQztRQUNsQixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2YsY0FBUyxHQUFrQixJQUFJLENBQUM7UUFDaEMsZUFBVSxHQUFHLEtBQUssQ0FBQztRQTZCWCxzQkFBaUIsR0FBbUQ7WUFDbkYsTUFBTSxFQUFFLEVBQUU7WUFDVixNQUFNLEVBQUU7Z0JBQ04sZ0JBQWdCLEVBQUUsY0FBYztnQkFDaEMsY0FBYyxFQUFFLGNBQWM7Z0JBQzlCLGVBQWUsRUFBRSxlQUFlO2dCQUNoQyxhQUFhLEVBQUUsTUFBTTtnQkFDckIsWUFBWSxFQUFFLFVBQVU7Z0JBQ3hCLGVBQWUsRUFBRSxlQUFlO2FBQ2pDO1lBQ0QsU0FBUyxFQUFFO2dCQUNULFVBQVUsRUFBRSxjQUFjO2dCQUMxQixhQUFhLEVBQUUsTUFBTTtnQkFDckIsV0FBVyxFQUFFLFFBQVE7Z0JBQ3JCLGFBQWEsRUFBRSxVQUFVO2dCQUN6QixnQkFBZ0IsRUFBRSxlQUFlO2dCQUNqQyxlQUFlLEVBQUUsY0FBYzthQUNoQztZQUNELFFBQVEsRUFBRTtnQkFDUixnQkFBZ0IsRUFBRSxjQUFjO2dCQUNoQyxZQUFZLEVBQUUsY0FBYztnQkFDNUIsYUFBYSxFQUFFLGVBQWU7Z0JBQzlCLGFBQWEsRUFBRSxNQUFNO2dCQUNyQixJQUFJLEVBQUUsVUFBVTtnQkFDaEIsa0JBQWtCLEVBQUUsZUFBZTthQUNwQztZQUNELEtBQUssRUFBRTtnQkFDTCxZQUFZLEVBQUUsY0FBYztnQkFDNUIsa0JBQWtCLEVBQUUsZUFBZTtnQkFDbkMsbUJBQW1CLEVBQUUsY0FBYztnQkFDbkMsb0JBQW9CLEVBQUUsZUFBZTtnQkFDckMsV0FBVyxFQUFFLE1BQU07Z0JBQ25CLGlCQUFpQixFQUFFLFVBQVU7YUFDOUI7U0FDRixDQUFDO0tBQ0g7SUE5REMsSUFBSSxtQkFBbUI7UUFDckIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUN6QjtRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxVQUFVLEVBQUU7WUFDL0IsT0FBTyxHQUFHLENBQUM7U0FDWjtRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxRQUFRLEVBQUU7WUFDN0IsT0FBTyxHQUFHLENBQUM7U0FDWjtRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsT0FBTyxRQUFRLENBQUM7U0FDakI7UUFFRCxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLDZDQUE2QyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQy9FLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE9BQU8sQ0FBQztJQUNyQyxDQUFDOzs2R0FuQ1UsZ0JBQWdCO2lHQUFoQixnQkFBZ0Isd09DNUQ3QiwyeWxCQThSQTsyRkRsT2EsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLFVBQVUsbUJBRUgsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IHR5cGUgUGRtSWNvbkxpYnJhcnkgPSAnbHVjaWRlJyB8ICd0YWJsZXInIHwgJ2h1Z2VpY29ucycgfCAncGhvc3Bob3InIHwgJ3JlbWl4JztcblxuZXhwb3J0IHR5cGUgUGRtSWNvbk5hbWUgPVxuICB8ICdjb21tYW5kJ1xuICB8ICdjaGVjaydcbiAgfCAnY2hlY2stY2lyY2xlJ1xuICB8ICdjaXJjbGUnXG4gIHwgJ2RvdCdcbiAgfCAneCdcbiAgfCAnYWxlcnQtY2lyY2xlJ1xuICB8ICdpbmZvJ1xuICB8ICdsb2FkZXItMidcbiAgfCAnbWVudSdcbiAgfCAnc2VhcmNoJ1xuICB8ICdjYWxlbmRhcidcbiAgfCAncGFuZWwtbGVmdCdcbiAgfCAnbW9uaXRvcidcbiAgfCAnbGFwdG9wJ1xuICB8ICdzdW4nXG4gIHwgJ21vb24nXG4gIHwgJ2NoZXZyb24tZG93bidcbiAgfCAnY2hldnJvbi11cCdcbiAgfCAnY2hldnJvbi1sZWZ0J1xuICB8ICdjaGV2cm9uLXJpZ2h0J1xuICB8ICdjaGV2cm9ucy1sZWZ0J1xuICB8ICdjaGV2cm9ucy1yaWdodCdcbiAgfCAnY2hldnJvbnMtdXAtZG93bidcbiAgfCAnYXJyb3ctdXAtZG93bidcbiAgfCAnZWxsaXBzaXMnXG4gIHwgJ2ZpbHRlcidcbiAgfCAnc29ydC1hc2MnXG4gIHwgJ3NvcnQtZGVzYydcbiAgfCAncGx1cydcbiAgfCAnbWludXMnXG4gIHwgJ2NvcHknXG4gIHwgJ3BlbmNpbCdcbiAgfCAndHJhc2gtMidcbiAgfCAnZG93bmxvYWQnXG4gIHwgJ3VwbG9hZCdcbiAgfCAnaG9tZSdcbiAgfCAnbWFpbCdcbiAgfCAncGhvbmUnXG4gIHwgJ2xvZy1pbidcbiAgfCAnbG9nLW91dCdcbiAgfCAndXNlcidcbiAgfCAnc2V0dGluZ3MnXG4gIHwgJ2NyZWRpdC1jYXJkJ1xuICB8ICdzbWlsZSdcbiAgfCAnY2FsY3VsYXRvcidcbiAgfCAnZXh0ZXJuYWwtbGluaydcbiAgfCAnZm9sZGVyJ1xuICB8ICdhcnJvdy11cC1yaWdodCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BkbS1pY29uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ljb24uY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBQZG1JY29uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgbmFtZTogUGRtSWNvbk5hbWUgfCBzdHJpbmcgPSAnY2hlY2snO1xuICBASW5wdXQoKSBsaWJyYXJ5OiBQZG1JY29uTGlicmFyeSA9ICdsdWNpZGUnO1xuICBASW5wdXQoKSBhc3NldFVybDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIHNpemUgPSAxNjtcbiAgQElucHV0KCkgc3Ryb2tlV2lkdGggPSAxLjU7XG4gIEBJbnB1dCgpIGNsYXNzTmFtZSA9ICcnO1xuICBASW5wdXQoKSBhcmlhTGFiZWw6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBkZWNvcmF0aXZlID0gZmFsc2U7XG5cbiAgZ2V0IHJlc29sdmVkU3Ryb2tlV2lkdGgoKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5zdHJva2VXaWR0aCkge1xuICAgICAgcmV0dXJuIHRoaXMuc3Ryb2tlV2lkdGg7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubGlicmFyeSA9PT0gJ3Bob3NwaG9yJykge1xuICAgICAgcmV0dXJuIDEuNjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5saWJyYXJ5ID09PSAndGFibGVyJykge1xuICAgICAgcmV0dXJuIDEuODtcbiAgICB9XG5cbiAgICByZXR1cm4gMS41O1xuICB9XG5cbiAgZ2V0IGljb25LZXkoKTogc3RyaW5nIHtcbiAgICBjb25zdCByYXcgPSBgJHt0aGlzLm5hbWUgfHwgJyd9YC50cmltKCk7XG4gICAgaWYgKCFyYXcpIHtcbiAgICAgIHJldHVybiAnY2lyY2xlJztcbiAgICB9XG5cbiAgICBjb25zdCB0cmltbWVkID0gcmF3LnJlcGxhY2UoL14obHVjaWRlfHRhYmxlcnxodWdlaWNvbnN8cGhvc3Bob3J8cmVtaXgpXFwvLywgJycpO1xuICAgIGNvbnN0IGFsaWFzZXMgPSB0aGlzLmFsaWFzTWFwQnlMaWJyYXJ5W3RoaXMubGlicmFyeV0gPz8ge307XG4gICAgcmV0dXJuIGFsaWFzZXNbdHJpbW1lZF0gPz8gdHJpbW1lZDtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgYWxpYXNNYXBCeUxpYnJhcnk6IFJlY29yZDxQZG1JY29uTGlicmFyeSwgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4gPSB7XG4gICAgbHVjaWRlOiB7fSxcbiAgICB0YWJsZXI6IHtcbiAgICAgICdhbGVydC10cmlhbmdsZSc6ICdhbGVydC1jaXJjbGUnLFxuICAgICAgJ2NoZXZyb24tZG93bic6ICdjaGV2cm9uLWRvd24nLFxuICAgICAgJ2NoZXZyb24tcmlnaHQnOiAnY2hldnJvbi1yaWdodCcsXG4gICAgICAndXNlci1jaXJjbGUnOiAndXNlcicsXG4gICAgICAnc2V0dGluZ3MtMic6ICdzZXR0aW5ncycsXG4gICAgICAnZXh0ZXJuYWwtbGluayc6ICdleHRlcm5hbC1saW5rJ1xuICAgIH0sXG4gICAgaHVnZWljb25zOiB7XG4gICAgICAnYWxlcnQtMDInOiAnYWxlcnQtY2lyY2xlJyxcbiAgICAgICd1c2VyLWNpcmNsZSc6ICd1c2VyJyxcbiAgICAgICdzZWFyY2gtMDEnOiAnc2VhcmNoJyxcbiAgICAgICdzZXR0aW5ncy0wMSc6ICdzZXR0aW5ncycsXG4gICAgICAnYXJyb3ctcmlnaHQtMDEnOiAnY2hldnJvbi1yaWdodCcsXG4gICAgICAnYXJyb3ctZG93bi0wMSc6ICdjaGV2cm9uLWRvd24nXG4gICAgfSxcbiAgICBwaG9zcGhvcjoge1xuICAgICAgJ3dhcm5pbmctY2lyY2xlJzogJ2FsZXJ0LWNpcmNsZScsXG4gICAgICAnY2FyZXQtZG93bic6ICdjaGV2cm9uLWRvd24nLFxuICAgICAgJ2NhcmV0LXJpZ2h0JzogJ2NoZXZyb24tcmlnaHQnLFxuICAgICAgJ3VzZXItY2lyY2xlJzogJ3VzZXInLFxuICAgICAgZ2VhcjogJ3NldHRpbmdzJyxcbiAgICAgICdhcnJvdy1zcXVhcmUtb3V0JzogJ2V4dGVybmFsLWxpbmsnXG4gICAgfSxcbiAgICByZW1peDoge1xuICAgICAgJ2FsZXJ0LWxpbmUnOiAnYWxlcnQtY2lyY2xlJyxcbiAgICAgICdhcnJvdy1yaWdodC1saW5lJzogJ2NoZXZyb24tcmlnaHQnLFxuICAgICAgJ2Fycm93LWRvd24tcy1saW5lJzogJ2NoZXZyb24tZG93bicsXG4gICAgICAnZXh0ZXJuYWwtbGluay1saW5lJzogJ2V4dGVybmFsLWxpbmsnLFxuICAgICAgJ3VzZXItbGluZSc6ICd1c2VyJyxcbiAgICAgICdzZXR0aW5ncy0zLWxpbmUnOiAnc2V0dGluZ3MnXG4gICAgfVxuICB9O1xufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImFzc2V0VXJsOyBlbHNlIGlubGluZUljb25cIj5cbiAgPGltZ1xuICAgIFtzcmNdPVwiYXNzZXRVcmxcIlxuICAgIFtzdHlsZS53aWR0aC5weF09XCJzaXplXCJcbiAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cInNpemVcIlxuICAgIFtuZ0NsYXNzXT1cImNsYXNzTmFtZVwiXG4gICAgW2F0dHIucm9sZV09XCJkZWNvcmF0aXZlID8gbnVsbCA6ICdpbWcnXCJcbiAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCJkZWNvcmF0aXZlID8gJ3RydWUnIDogbnVsbFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCIhZGVjb3JhdGl2ZSA/IGFyaWFMYWJlbCB8fCBuYW1lIDogbnVsbFwiXG4gICAgYWx0PVwiXCJcbiAgLz5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2lubGluZUljb24+XG4gIDxzdmdcbiAgICBbYXR0ci53aWR0aF09XCJzaXplXCJcbiAgICBbYXR0ci5oZWlnaHRdPVwic2l6ZVwiXG4gICAgW25nQ2xhc3NdPVwiY2xhc3NOYW1lXCJcbiAgICBbYXR0ci5yb2xlXT1cImRlY29yYXRpdmUgPyBudWxsIDogJ2ltZydcIlxuICAgIFthdHRyLmFyaWEtaGlkZGVuXT1cImRlY29yYXRpdmUgPyAndHJ1ZScgOiBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIiFkZWNvcmF0aXZlID8gYXJpYUxhYmVsIHx8IG5hbWUgOiBudWxsXCJcbiAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICBmaWxsPVwibm9uZVwiXG4gICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gID5cbiAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJpY29uS2V5XCI+XG4gICAgPGcgKm5nU3dpdGNoQ2FzZT1cIidjb21tYW5kJ1wiPlxuICAgICAgPHBhdGggZD1cIk05IDlWMTVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIj48L3BhdGg+XG4gICAgICA8cGF0aCBkPVwiTTE1IDlWMTVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIj48L3BhdGg+XG4gICAgICA8cGF0aCBkPVwiTTkgOUgxNVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgIDxwYXRoIGQ9XCJNOSAxNUgxNVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgIDxwYXRoIGQ9XCJNOSA5SDcuNUM2LjEyIDkgNSA3Ljg4IDUgNi41QzUgNS4xMiA2LjEyIDQgNy41IDRDOC44OCA0IDEwIDUuMTIgMTAgNi41VjhcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIj48L3BhdGg+XG4gICAgICA8cGF0aCBkPVwiTTE1IDlIMTYuNUMxNy44OCA5IDE5IDcuODggMTkgNi41QzE5IDUuMTIgMTcuODggNCAxNi41IDRDMTUuMTIgNCAxNCA1LjEyIDE0IDYuNVY4XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgICAgPHBhdGggZD1cIk05IDE1SDcuNUM2LjEyIDE1IDUgMTYuMTIgNSAxNy41QzUgMTguODggNi4xMiAyMCA3LjUgMjBDOC44OCAyMCAxMCAxOC44OCAxMCAxNy41VjE2XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgICAgPHBhdGggZD1cIk0xNSAxNUgxNi41QzE3Ljg4IDE1IDE5IDE2LjEyIDE5IDE3LjVDMTkgMTguODggMTcuODggMjAgMTYuNSAyMEMxNS4xMiAyMCAxNCAxOC44OCAxNCAxNy41VjE2XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCInY2hlY2snXCI+XG4gICAgICA8cGF0aCBkPVwiTTUgMTIuNUw5LjIgMTYuN0wxOSA3XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgPC9nPlxuXG4gICAgPGcgKm5nU3dpdGNoQ2FzZT1cIidjaGVjay1jaXJjbGUnXCI+XG4gICAgICA8Y2lyY2xlIGN4PVwiMTJcIiBjeT1cIjEyXCIgcj1cIjlcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiPjwvY2lyY2xlPlxuICAgICAgPHBhdGggZD1cIk04LjUgMTIuMkwxMSAxNC43TDE1LjggOS45XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgPC9nPlxuXG4gICAgPGcgKm5nU3dpdGNoQ2FzZT1cIidjaXJjbGUnXCI+XG4gICAgICA8Y2lyY2xlIGN4PVwiMTJcIiBjeT1cIjEyXCIgcj1cIjlcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiPjwvY2lyY2xlPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCInZG90J1wiPlxuICAgICAgPGNpcmNsZSBjeD1cIjEyXCIgY3k9XCIxMlwiIHI9XCIyLjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+PC9jaXJjbGU+XG4gICAgPC9nPlxuXG4gICAgPGcgKm5nU3dpdGNoQ2FzZT1cIid4J1wiPlxuICAgICAgPHBhdGggZD1cIk02IDZMMTggMThNMTggNkw2IDE4XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCInYWxlcnQtY2lyY2xlJ1wiPlxuICAgICAgPGNpcmNsZSBjeD1cIjEyXCIgY3k9XCIxMlwiIHI9XCI5XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIj48L2NpcmNsZT5cbiAgICAgIDxwYXRoIGQ9XCJNMTIgOFYxMlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgIDxjaXJjbGUgY3g9XCIxMlwiIGN5PVwiMTZcIiByPVwiMVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj48L2NpcmNsZT5cbiAgICA8L2c+XG5cbiAgICA8ZyAqbmdTd2l0Y2hDYXNlPVwiJ2luZm8nXCI+XG4gICAgICA8Y2lyY2xlIGN4PVwiMTJcIiBjeT1cIjEyXCIgcj1cIjlcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiPjwvY2lyY2xlPlxuICAgICAgPHBhdGggZD1cIk0xMiAxMVYxNlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgIDxjaXJjbGUgY3g9XCIxMlwiIGN5PVwiOFwiIHI9XCIxXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPjwvY2lyY2xlPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCInbG9hZGVyLTInXCI+XG4gICAgICA8cGF0aCBkPVwiTTEyIDNBOSA5IDAgMSAwIDIxIDEyXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCInbWVudSdcIj5cbiAgICAgIDxwYXRoIGQ9XCJNNCA3SDIwTTQgMTJIMjBNNCAxN0gyMFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICA8L2c+XG5cbiAgICA8ZyAqbmdTd2l0Y2hDYXNlPVwiJ3NlYXJjaCdcIj5cbiAgICAgIDxjaXJjbGUgY3g9XCIxMVwiIGN5PVwiMTFcIiByPVwiN1wiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCI+PC9jaXJjbGU+XG4gICAgICA8cGF0aCBkPVwiTTIwIDIwTDE2LjYgMTYuNlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICA8L2c+XG5cbiAgICA8ZyAqbmdTd2l0Y2hDYXNlPVwiJ2NhbGVuZGFyJ1wiPlxuICAgICAgPHBhdGggZD1cIk04IDNWNk0xNiAzVjZNNCAxMEgyMFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTRcIiByeD1cIjJcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiPjwvcmVjdD5cbiAgICA8L2c+XG5cbiAgICA8ZyAqbmdTd2l0Y2hDYXNlPVwiJ3BhbmVsLWxlZnQnXCI+XG4gICAgICA8cmVjdCB4PVwiM1wiIHk9XCI0XCIgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE2XCIgcng9XCIyXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIj48L3JlY3Q+XG4gICAgICA8cGF0aCBkPVwiTTkgNFYyMFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCI+PC9wYXRoPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCInbW9uaXRvcidcIj5cbiAgICAgIDxyZWN0IHg9XCIzXCIgeT1cIjRcIiB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMTNcIiByeD1cIjJcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiPjwvcmVjdD5cbiAgICAgIDxwYXRoIGQ9XCJNOCAyMEgxNlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgIDxwYXRoIGQ9XCJNMTIgMTdWMjBcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIj48L3BhdGg+XG4gICAgPC9nPlxuXG4gICAgPGcgKm5nU3dpdGNoQ2FzZT1cIidsYXB0b3AnXCI+XG4gICAgICA8cmVjdCB4PVwiNVwiIHk9XCI1XCIgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjEwXCIgcng9XCIxLjVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiPjwvcmVjdD5cbiAgICAgIDxwYXRoIGQ9XCJNMyAxOEgyMVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICA8L2c+XG5cbiAgICA8ZyAqbmdTd2l0Y2hDYXNlPVwiJ3N1bidcIj5cbiAgICAgIDxjaXJjbGUgY3g9XCIxMlwiIGN5PVwiMTJcIiByPVwiNFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCI+PC9jaXJjbGU+XG4gICAgICA8cGF0aCBkPVwiTTEyIDJWNE0xMiAyMFYyMk00IDEySDJNMjIgMTJIMjBNMTkuMDcgNC45M0wxNy42NiA2LjM0TTYuMzQgMTcuNjZMNC45MyAxOS4wN00xOS4wNyAxOS4wN0wxNy42NiAxNy42Nk02LjM0IDYuMzRMNC45MyA0LjkzXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCInbW9vbidcIj5cbiAgICAgIDxwYXRoIGQ9XCJNMjAgMTQuNUMxOS4xIDE3LjkgMTYgMjAuNSAxMi4zIDIwLjVDNy45IDIwLjUgNC4zIDE2LjkgNC4zIDEyLjVDNC4zIDguOCA2LjggNS44IDEwLjIgNC44QzkuNiA1LjggOS4zIDcgOS4zIDguMkM5LjMgMTEuOCAxMi4yIDE0LjcgMTUuOCAxNC43QzE3IDE0LjcgMTguMSAxNC40IDE5LjEgMTMuOEMxOS40IDEzLjYgMjAuMSAxNCAyMCAxNC41WlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCInY2hldnJvbi1kb3duJ1wiPlxuICAgICAgPHBhdGggZD1cIk03IDEwTDEyIDE1TDE3IDEwXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgPC9nPlxuXG4gICAgPGcgKm5nU3dpdGNoQ2FzZT1cIidjaGV2cm9uLXVwJ1wiPlxuICAgICAgPHBhdGggZD1cIk0xNyAxNEwxMiA5TDcgMTRcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cbiAgICA8L2c+XG5cbiAgICA8ZyAqbmdTd2l0Y2hDYXNlPVwiJ2NoZXZyb24tbGVmdCdcIj5cbiAgICAgIDxwYXRoIGQ9XCJNMTUgMThMOSAxMkwxNSA2XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgPC9nPlxuXG4gICAgPGcgKm5nU3dpdGNoQ2FzZT1cIidjaGV2cm9uLXJpZ2h0J1wiPlxuICAgICAgPHBhdGggZD1cIk05IDE4TDE1IDEyTDkgNlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCInY2hldnJvbnMtbGVmdCdcIj5cbiAgICAgIDxwYXRoIGQ9XCJNMTQgMThMOCAxMkwxNCA2XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgICA8cGF0aCBkPVwiTTIwIDE4TDE0IDEyTDIwIDZcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cbiAgICA8L2c+XG5cbiAgICA8ZyAqbmdTd2l0Y2hDYXNlPVwiJ2NoZXZyb25zLXJpZ2h0J1wiPlxuICAgICAgPHBhdGggZD1cIk0xMCAxOEwxNiAxMkwxMCA2XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgICA8cGF0aCBkPVwiTTQgMThMMTAgMTJMNCA2XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgPC9nPlxuXG4gICAgPGcgKm5nU3dpdGNoQ2FzZT1cIidjaGV2cm9ucy11cC1kb3duJ1wiPlxuICAgICAgPHBhdGggZD1cIk03IDE1TDEyIDIwTDE3IDE1XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgICA8cGF0aCBkPVwiTTE3IDlMMTIgNEw3IDlcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cbiAgICA8L2c+XG5cbiAgICA8ZyAqbmdTd2l0Y2hDYXNlPVwiJ2Fycm93LXVwLWRvd24nXCI+XG4gICAgICA8cGF0aCBkPVwiTTEyIDRWMjBcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIj48L3BhdGg+XG4gICAgICA8cGF0aCBkPVwiTTggOEwxMiA0TDE2IDhcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgIDxwYXRoIGQ9XCJNOCAxNkwxMiAyMEwxNiAxNlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCInZWxsaXBzaXMnXCI+XG4gICAgICA8Y2lyY2xlIGN4PVwiNlwiIGN5PVwiMTJcIiByPVwiMS41XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPjwvY2lyY2xlPlxuICAgICAgPGNpcmNsZSBjeD1cIjEyXCIgY3k9XCIxMlwiIHI9XCIxLjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+PC9jaXJjbGU+XG4gICAgICA8Y2lyY2xlIGN4PVwiMThcIiBjeT1cIjEyXCIgcj1cIjEuNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj48L2NpcmNsZT5cbiAgICA8L2c+XG5cbiAgICA8ZyAqbmdTd2l0Y2hDYXNlPVwiJ2ZpbHRlcidcIj5cbiAgICAgIDxwYXRoIGQ9XCJNNCA2SDIwXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgICAgPHBhdGggZD1cIk03IDEySDE3XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgICAgPHBhdGggZD1cIk0xMCAxOEgxNFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICA8L2c+XG5cbiAgICA8ZyAqbmdTd2l0Y2hDYXNlPVwiJ3NvcnQtYXNjJ1wiPlxuICAgICAgPHBhdGggZD1cIk03IDE4VjZcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIj48L3BhdGg+XG4gICAgICA8cGF0aCBkPVwiTTQgOUw3IDZMMTAgOVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxuICAgICAgPHBhdGggZD1cIk0xNCA4SDIwTTE0IDEySDE4TTE0IDE2SDE2XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCInc29ydC1kZXNjJ1wiPlxuICAgICAgPHBhdGggZD1cIk03IDZWMThcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIj48L3BhdGg+XG4gICAgICA8cGF0aCBkPVwiTTQgMTVMNyAxOEwxMCAxNVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxuICAgICAgPHBhdGggZD1cIk0xNCA4SDE2TTE0IDEySDE4TTE0IDE2SDIwXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCIncGx1cydcIj5cbiAgICAgIDxwYXRoIGQ9XCJNMTIgNVYxOU01IDEySDE5XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCInbWludXMnXCI+XG4gICAgICA8cGF0aCBkPVwiTTUgMTJIMTlcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIj48L3BhdGg+XG4gICAgPC9nPlxuXG4gICAgPGcgKm5nU3dpdGNoQ2FzZT1cIidjb3B5J1wiPlxuICAgICAgPHJlY3QgeD1cIjlcIiB5PVwiOVwiIHdpZHRoPVwiMTFcIiBoZWlnaHQ9XCIxMVwiIHJ4PVwiMlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCI+PC9yZWN0PlxuICAgICAgPHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiMTFcIiBoZWlnaHQ9XCIxMVwiIHJ4PVwiMlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCI+PC9yZWN0PlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCIncGVuY2lsJ1wiPlxuICAgICAgPHBhdGggZD1cIk0xMiAyMEgyMVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgIDxwYXRoIGQ9XCJNMTYuNSA0LjVDMTcuMSAzLjkgMTggMy45IDE4LjYgNC41TDE5LjUgNS40QzIwLjEgNiAyMC4xIDYuOSAxOS41IDcuNUw5IDE4TDQgMTlMNSAxNEwxNi41IDQuNVpcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCIndHJhc2gtMidcIj5cbiAgICAgIDxwYXRoIGQ9XCJNNCA3SDIwXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgICAgPHBhdGggZD1cIk05IDdWNUM5IDQuNCA5LjQgNCAxMCA0SDE0QzE0LjYgNCAxNSA0LjQgMTUgNVY3XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgICAgPHBhdGggZD1cIk03IDdMOCAxOUM4IDE5LjYgOC40IDIwIDkgMjBIMTVDMTUuNiAyMCAxNiAxOS42IDE2IDE5TDE3IDdcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgIDxwYXRoIGQ9XCJNMTAgMTFWMTdNMTQgMTFWMTdcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIj48L3BhdGg+XG4gICAgPC9nPlxuXG4gICAgPGcgKm5nU3dpdGNoQ2FzZT1cIidkb3dubG9hZCdcIj5cbiAgICAgIDxwYXRoIGQ9XCJNMTIgNFYxNFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgIDxwYXRoIGQ9XCJNOCAxMEwxMiAxNEwxNiAxMFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxuICAgICAgPHBhdGggZD1cIk01IDE5SDE5XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCIndXBsb2FkJ1wiPlxuICAgICAgPHBhdGggZD1cIk0xMiAyMFYxMFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgIDxwYXRoIGQ9XCJNOCAxNEwxMiAxMEwxNiAxNFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxuICAgICAgPHBhdGggZD1cIk01IDVIMTlcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIj48L3BhdGg+XG4gICAgPC9nPlxuXG4gICAgPGcgKm5nU3dpdGNoQ2FzZT1cIidob21lJ1wiPlxuICAgICAgPHBhdGggZD1cIk00IDEwLjVMMTIgNEwyMCAxMC41XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgICA8cGF0aCBkPVwiTTYgOS41VjIwSDE4VjkuNVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCInbWFpbCdcIj5cbiAgICAgIDxyZWN0IHg9XCIzXCIgeT1cIjVcIiB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMTRcIiByeD1cIjJcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiPjwvcmVjdD5cbiAgICAgIDxwYXRoIGQ9XCJNNCA3TDEyIDEzTDIwIDdcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cbiAgICA8L2c+XG5cbiAgICA8ZyAqbmdTd2l0Y2hDYXNlPVwiJ3Bob25lJ1wiPlxuICAgICAgPHBhdGggZD1cIk04LjggNC42QzkuMiAzLjggMTAuMiAzLjUgMTEgNEwxMy4zIDUuMkMxNC4xIDUuNiAxNC40IDYuNiAxNCA3LjRMMTMgOS4yQzEyLjggOS42IDEyLjkgMTAuMSAxMy4yIDEwLjRMMTQuOSAxMi4xQzE1LjIgMTIuNCAxNS43IDEyLjUgMTYuMSAxMi4zTDE3LjkgMTEuM0MxOC43IDEwLjkgMTkuNyAxMS4yIDIwLjEgMTJMMjEuMyAxNC4zQzIxLjggMTUuMSAyMS41IDE2LjEgMjAuNyAxNi41TDE4LjggMTcuNUMxNi45IDE4LjUgMTQuNSAxOC4xIDEyLjkgMTYuNUw3LjUgMTEuMUM1LjkgOS41IDUuNSA3LjEgNi41IDUuMkw4LjggNC42WlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgPC9nPlxuXG4gICAgPGcgKm5nU3dpdGNoQ2FzZT1cIidsb2ctaW4nXCI+XG4gICAgICA8cGF0aCBkPVwiTTE1IDNIMThDMTkuMSAzIDIwIDMuOSAyMCA1VjE5QzIwIDIwLjEgMTkuMSAyMSAxOCAyMUgxNVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgIDxwYXRoIGQ9XCJNMTAgMTdMMTQgMTNMMTAgOVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxuICAgICAgPHBhdGggZD1cIk0xNCAxM0g0XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCInbG9nLW91dCdcIj5cbiAgICAgIDxwYXRoIGQ9XCJNOSAzSDZDNC45IDMgNCAzLjkgNCA1VjE5QzQgMjAuMSA0LjkgMjEgNiAyMUg5XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgICAgPHBhdGggZD1cIk0xNCAxN0wxMCAxM0wxNCA5XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgICA8cGF0aCBkPVwiTTEwIDEzSDIwXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCIndXNlcidcIj5cbiAgICAgIDxjaXJjbGUgY3g9XCIxMlwiIGN5PVwiOFwiIHI9XCIzXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIj48L2NpcmNsZT5cbiAgICAgIDxwYXRoIGQ9XCJNNiAxOUM2LjggMTYuNyA4LjkgMTUuNSAxMiAxNS41QzE1LjEgMTUuNSAxNy4yIDE2LjcgMTggMTlcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIj48L3BhdGg+XG4gICAgPC9nPlxuXG4gICAgPGcgKm5nU3dpdGNoQ2FzZT1cIidzZXR0aW5ncydcIj5cbiAgICAgIDxjaXJjbGUgY3g9XCIxMlwiIGN5PVwiMTJcIiByPVwiM1wiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCI+PC9jaXJjbGU+XG4gICAgICA8cGF0aCBkPVwiTTE5IDEyQTcgNyAwIDEgMCAxMiAxOVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICA8L2c+XG5cbiAgICA8ZyAqbmdTd2l0Y2hDYXNlPVwiJ2NyZWRpdC1jYXJkJ1wiPlxuICAgICAgPHJlY3QgeD1cIjNcIiB5PVwiNlwiIHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxMlwiIHJ4PVwiMlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCI+PC9yZWN0PlxuICAgICAgPHBhdGggZD1cIk0zIDEwSDIxXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIj48L3BhdGg+XG4gICAgPC9nPlxuXG4gICAgPGcgKm5nU3dpdGNoQ2FzZT1cIidzbWlsZSdcIj5cbiAgICAgIDxjaXJjbGUgY3g9XCIxMlwiIGN5PVwiMTJcIiByPVwiOVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCI+PC9jaXJjbGU+XG4gICAgICA8cGF0aCBkPVwiTTkgMTVDOS43IDE2IDEwLjcgMTYuNSAxMiAxNi41QzEzLjMgMTYuNSAxNC4zIDE2IDE1IDE1XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgICAgPGNpcmNsZSBjeD1cIjlcIiBjeT1cIjEwXCIgcj1cIjFcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+PC9jaXJjbGU+XG4gICAgICA8Y2lyY2xlIGN4PVwiMTVcIiBjeT1cIjEwXCIgcj1cIjFcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+PC9jaXJjbGU+XG4gICAgPC9nPlxuXG4gICAgPGcgKm5nU3dpdGNoQ2FzZT1cIidjYWxjdWxhdG9yJ1wiPlxuICAgICAgPHJlY3QgeD1cIjZcIiB5PVwiM1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxOFwiIHJ4PVwiMlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCI+PC9yZWN0PlxuICAgICAgPHBhdGggZD1cIk05IDdIMTVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIj48L3BhdGg+XG4gICAgICA8cGF0aCBkPVwiTTkgMTJIMTBNMTQgMTJIMTVNOSAxNkgxME0xNCAxNkgxNVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICA8L2c+XG5cbiAgICA8ZyAqbmdTd2l0Y2hDYXNlPVwiJ2V4dGVybmFsLWxpbmsnXCI+XG4gICAgICA8cGF0aCBkPVwiTTE0IDVIMTlWMTBcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgIDxwYXRoIGQ9XCJNMTAgMTRMMTkgNVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgIDxwYXRoIGQ9XCJNMTkgMTRWMTlINVY1SDEwXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgPC9nPlxuXG4gICAgPGcgKm5nU3dpdGNoQ2FzZT1cIidmb2xkZXInXCI+XG4gICAgICA8cGF0aCBkPVwiTTMgN0MzIDUuOSAzLjkgNSA1IDVIOUwxMSA3SDE5QzIwLjEgNyAyMSA3LjkgMjEgOVYxN0MyMSAxOC4xIDIwLjEgMTkgMTkgMTlINUMzLjkgMTkgMyAxOC4xIDMgMTdWN1pcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCInYXJyb3ctdXAtcmlnaHQnXCI+XG4gICAgICA8cGF0aCBkPVwiTTcgMTdMMTcgN1wiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgIDxwYXRoIGQ9XCJNOSA3SDE3VjE1XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgPC9nPlxuXG4gICAgPGcgKm5nU3dpdGNoRGVmYXVsdD5cbiAgICAgIDxjaXJjbGUgY3g9XCIxMlwiIGN5PVwiMTJcIiByPVwiOVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCI+PC9jaXJjbGU+XG4gICAgPC9nPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L3N2Zz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaWNvbi9pY29uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9pY29uL2ljb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUUsT0FBTyxFQUFFLEtBQUssRUFBaUIsTUFBTSxRQUFRLENBQUM7Ozs7QUF1RDlDLE1BQU0sYUFBYSxHQUFhLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztBQU83RSxNQUFNLE9BQU8sZ0JBQWdCO0lBb0QzQixZQUE2QixTQUF1QjtRQUF2QixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBbkQzQyxTQUFJLEdBQXlCLE9BQU8sQ0FBQztRQUNyQyxZQUFPLEdBQW1CLFFBQVEsQ0FBQztRQUNuQyxhQUFRLEdBQWtCLElBQUksQ0FBQztRQUMvQixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1YsZ0JBQVcsR0FBRyxHQUFHLENBQUM7UUFDbEIsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNmLGNBQVMsR0FBa0IsSUFBSSxDQUFDO1FBQ2hDLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFFWCxnQkFBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRXRDLHNCQUFpQixHQUFtRDtZQUNuRixNQUFNLEVBQUU7Z0JBQ04sY0FBYyxFQUFFLGNBQWM7Z0JBQzlCLGNBQWMsRUFBRSxjQUFjO2dCQUM5QixJQUFJLEVBQUUsYUFBYTtnQkFDbkIsVUFBVSxFQUFFLGNBQWM7Z0JBQzFCLFdBQVcsRUFBRSxnQkFBZ0I7YUFDOUI7WUFDRCxNQUFNLEVBQUU7Z0JBQ04sZ0JBQWdCLEVBQUUsZ0JBQWdCO2dCQUNsQyxhQUFhLEVBQUUsYUFBYTtnQkFDNUIsWUFBWSxFQUFFLFlBQVk7Z0JBQzFCLGVBQWUsRUFBRSxlQUFlO2FBQ2pDO1lBQ0QsU0FBUyxFQUFFO2dCQUNULFVBQVUsRUFBRSxjQUFjO2dCQUMxQixhQUFhLEVBQUUsYUFBYTtnQkFDNUIsV0FBVyxFQUFFLFFBQVE7Z0JBQ3JCLGFBQWEsRUFBRSxVQUFVO2dCQUN6QixnQkFBZ0IsRUFBRSxlQUFlO2dCQUNqQyxlQUFlLEVBQUUsY0FBYzthQUNoQztZQUNELFFBQVEsRUFBRTtnQkFDUixnQkFBZ0IsRUFBRSxjQUFjO2dCQUNoQyxZQUFZLEVBQUUsY0FBYztnQkFDNUIsYUFBYSxFQUFFLGVBQWU7Z0JBQzlCLGFBQWEsRUFBRSxhQUFhO2dCQUM1QixJQUFJLEVBQUUsVUFBVTtnQkFDaEIsa0JBQWtCLEVBQUUsZUFBZTthQUNwQztZQUNELEtBQUssRUFBRTtnQkFDTCxZQUFZLEVBQUUsY0FBYztnQkFDNUIsa0JBQWtCLEVBQUUsZUFBZTtnQkFDbkMsbUJBQW1CLEVBQUUsY0FBYztnQkFDbkMsb0JBQW9CLEVBQUUsZUFBZTtnQkFDckMsV0FBVyxFQUFFLE1BQU07Z0JBQ25CLGlCQUFpQixFQUFFLFVBQVU7YUFDOUI7U0FDRixDQUFDO0lBRXFELENBQUM7SUFFeEQsSUFBSSxtQkFBbUI7UUFDckIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN2QyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtZQUN2QyxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLFVBQVUsRUFBRTtZQUMvQixPQUFPLEdBQUcsQ0FBQztTQUNaO1FBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLFFBQVEsRUFBRTtZQUM3QixPQUFPLEdBQUcsQ0FBQztTQUNaO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsT0FBTyxRQUFRLENBQUM7U0FDakI7UUFFRCxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLDZDQUE2QyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQy9FLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE9BQU8sQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksYUFBYSxDQUFDO1FBQ2pFLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDOUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFaEQsTUFBTSxJQUFJLEdBQUcsSUFBSTthQUNkLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDcEIsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7aUJBQzFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7aUJBQzNELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUViLE9BQU8sZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxlQUFlLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxNQUFNLEdBQUcsR0FBRyxDQUFDO1FBQ3hGLENBQUMsQ0FBQzthQUNELElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVaLE1BQU0sR0FBRyxHQUFHLGtEQUFrRCxJQUFJLGFBQWEsSUFBSSx5RUFBeUUsV0FBVyxvREFBb0QsSUFBSSxRQUFRLENBQUM7UUFFeE8sT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFTyxlQUFlLENBQUMsUUFBZ0I7UUFDdEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDO0lBQ2xELENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxJQUFZO1FBQ3BDLE9BQU8sR0FBRyxJQUFJLElBQUksRUFBRSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxFQUFvQixDQUFDO1FBRXhDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRTtZQUNyRCxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsRUFBRSxRQUFvQixDQUFDLENBQUM7UUFDbEUsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFTyxVQUFVLENBQUMsS0FBYztRQUMvQixPQUFPLEdBQUcsS0FBSyxJQUFJLEVBQUUsRUFBRTthQUNwQixPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQzthQUN0QixPQUFPLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQzthQUN2QixPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQzthQUNyQixPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNCLENBQUM7OzZHQXBJVSxnQkFBZ0I7aUdBQWhCLGdCQUFnQix3T0NoRTdCLDA1QkE0QkE7MkZEb0NhLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxVQUFVLG1CQUVILHVCQUF1QixDQUFDLE1BQU07bUdBR3RDLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBpY29ucywgdHlwZSBJY29uTm9kZSB9IGZyb20gJ2x1Y2lkZSc7XG5cbmV4cG9ydCB0eXBlIFBkbUljb25MaWJyYXJ5ID0gJ2x1Y2lkZScgfCAndGFibGVyJyB8ICdodWdlaWNvbnMnIHwgJ3Bob3NwaG9yJyB8ICdyZW1peCc7XG5cbmV4cG9ydCB0eXBlIFBkbUljb25OYW1lID1cbiAgfCAnY29tbWFuZCdcbiAgfCAnY2hlY2snXG4gIHwgJ2NoZWNrLWNpcmNsZSdcbiAgfCAnY2lyY2xlJ1xuICB8ICdkb3QnXG4gIHwgJ3gnXG4gIHwgJ2FsZXJ0LWNpcmNsZSdcbiAgfCAnaW5mbydcbiAgfCAnbG9hZGVyLTInXG4gIHwgJ21lbnUnXG4gIHwgJ3NlYXJjaCdcbiAgfCAnY2FsZW5kYXInXG4gIHwgJ3BhbmVsLWxlZnQnXG4gIHwgJ21vbml0b3InXG4gIHwgJ2xhcHRvcCdcbiAgfCAnc3VuJ1xuICB8ICdtb29uJ1xuICB8ICdjaGV2cm9uLWRvd24nXG4gIHwgJ2NoZXZyb24tdXAnXG4gIHwgJ2NoZXZyb24tbGVmdCdcbiAgfCAnY2hldnJvbi1yaWdodCdcbiAgfCAnY2hldnJvbnMtbGVmdCdcbiAgfCAnY2hldnJvbnMtcmlnaHQnXG4gIHwgJ2NoZXZyb25zLXVwLWRvd24nXG4gIHwgJ2Fycm93LXVwLWRvd24nXG4gIHwgJ2VsbGlwc2lzJ1xuICB8ICdmaWx0ZXInXG4gIHwgJ3NvcnQtYXNjJ1xuICB8ICdzb3J0LWRlc2MnXG4gIHwgJ3BsdXMnXG4gIHwgJ21pbnVzJ1xuICB8ICdjb3B5J1xuICB8ICdwZW5jaWwnXG4gIHwgJ3RyYXNoLTInXG4gIHwgJ2Rvd25sb2FkJ1xuICB8ICd1cGxvYWQnXG4gIHwgJ2hvbWUnXG4gIHwgJ21haWwnXG4gIHwgJ3Bob25lJ1xuICB8ICdsb2ctaW4nXG4gIHwgJ2xvZy1vdXQnXG4gIHwgJ3VzZXInXG4gIHwgJ3NldHRpbmdzJ1xuICB8ICdjcmVkaXQtY2FyZCdcbiAgfCAnc21pbGUnXG4gIHwgJ2NhbGN1bGF0b3InXG4gIHwgJ2V4dGVybmFsLWxpbmsnXG4gIHwgJ2ZvbGRlcidcbiAgfCAnYXJyb3ctdXAtcmlnaHQnO1xuXG5jb25zdCBGQUxMQkFDS19OT0RFOiBJY29uTm9kZSA9IFtbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnOScgfV1dO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwZG0taWNvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9pY29uLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUGRtSWNvbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIG5hbWU6IFBkbUljb25OYW1lIHwgc3RyaW5nID0gJ2NoZWNrJztcbiAgQElucHV0KCkgbGlicmFyeTogUGRtSWNvbkxpYnJhcnkgPSAnbHVjaWRlJztcbiAgQElucHV0KCkgYXNzZXRVcmw6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBzaXplID0gMTY7XG4gIEBJbnB1dCgpIHN0cm9rZVdpZHRoID0gMS41O1xuICBASW5wdXQoKSBjbGFzc05hbWUgPSAnJztcbiAgQElucHV0KCkgYXJpYUxhYmVsOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgZGVjb3JhdGl2ZSA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbHVjaWRlSW5kZXggPSB0aGlzLmJ1aWxkTHVjaWRlSW5kZXgoKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGFsaWFzTWFwQnlMaWJyYXJ5OiBSZWNvcmQ8UGRtSWNvbkxpYnJhcnksIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+ID0ge1xuICAgIGx1Y2lkZToge1xuICAgICAgJ2NoZWNrLWNpcmNsZSc6ICdjaXJjbGUtY2hlY2snLFxuICAgICAgJ2FsZXJ0LWNpcmNsZSc6ICdjaXJjbGUtYWxlcnQnLFxuICAgICAgaW5mbzogJ2NpcmNsZS1pbmZvJyxcbiAgICAgICdzb3J0LWFzYyc6ICdhcnJvdy11cC1hLXonLFxuICAgICAgJ3NvcnQtZGVzYyc6ICdhcnJvdy1kb3duLXotYSdcbiAgICB9LFxuICAgIHRhYmxlcjoge1xuICAgICAgJ2FsZXJ0LXRyaWFuZ2xlJzogJ3RyaWFuZ2xlLWFsZXJ0JyxcbiAgICAgICd1c2VyLWNpcmNsZSc6ICdjaXJjbGUtdXNlcicsXG4gICAgICAnc2V0dGluZ3MtMic6ICdzZXR0aW5ncy0yJyxcbiAgICAgICdleHRlcm5hbC1saW5rJzogJ2V4dGVybmFsLWxpbmsnXG4gICAgfSxcbiAgICBodWdlaWNvbnM6IHtcbiAgICAgICdhbGVydC0wMic6ICdjaXJjbGUtYWxlcnQnLFxuICAgICAgJ3VzZXItY2lyY2xlJzogJ2NpcmNsZS11c2VyJyxcbiAgICAgICdzZWFyY2gtMDEnOiAnc2VhcmNoJyxcbiAgICAgICdzZXR0aW5ncy0wMSc6ICdzZXR0aW5ncycsXG4gICAgICAnYXJyb3ctcmlnaHQtMDEnOiAnY2hldnJvbi1yaWdodCcsXG4gICAgICAnYXJyb3ctZG93bi0wMSc6ICdjaGV2cm9uLWRvd24nXG4gICAgfSxcbiAgICBwaG9zcGhvcjoge1xuICAgICAgJ3dhcm5pbmctY2lyY2xlJzogJ2NpcmNsZS1hbGVydCcsXG4gICAgICAnY2FyZXQtZG93bic6ICdjaGV2cm9uLWRvd24nLFxuICAgICAgJ2NhcmV0LXJpZ2h0JzogJ2NoZXZyb24tcmlnaHQnLFxuICAgICAgJ3VzZXItY2lyY2xlJzogJ2NpcmNsZS11c2VyJyxcbiAgICAgIGdlYXI6ICdzZXR0aW5ncycsXG4gICAgICAnYXJyb3ctc3F1YXJlLW91dCc6ICdleHRlcm5hbC1saW5rJ1xuICAgIH0sXG4gICAgcmVtaXg6IHtcbiAgICAgICdhbGVydC1saW5lJzogJ2NpcmNsZS1hbGVydCcsXG4gICAgICAnYXJyb3ctcmlnaHQtbGluZSc6ICdjaGV2cm9uLXJpZ2h0JyxcbiAgICAgICdhcnJvdy1kb3duLXMtbGluZSc6ICdjaGV2cm9uLWRvd24nLFxuICAgICAgJ2V4dGVybmFsLWxpbmstbGluZSc6ICdleHRlcm5hbC1saW5rJyxcbiAgICAgICd1c2VyLWxpbmUnOiAndXNlcicsXG4gICAgICAnc2V0dGluZ3MtMy1saW5lJzogJ3NldHRpbmdzJ1xuICAgIH1cbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHNhbml0aXplcjogRG9tU2FuaXRpemVyKSB7fVxuXG4gIGdldCByZXNvbHZlZFN0cm9rZVdpZHRoKCk6IG51bWJlciB7XG4gICAgY29uc3QgdmFsdWUgPSBOdW1iZXIodGhpcy5zdHJva2VXaWR0aCk7XG4gICAgaWYgKE51bWJlci5pc0Zpbml0ZSh2YWx1ZSkgJiYgdmFsdWUgPiAwKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubGlicmFyeSA9PT0gJ3Bob3NwaG9yJykge1xuICAgICAgcmV0dXJuIDEuNjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5saWJyYXJ5ID09PSAndGFibGVyJykge1xuICAgICAgcmV0dXJuIDEuODtcbiAgICB9XG5cbiAgICByZXR1cm4gMS41O1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkU2l6ZSgpOiBudW1iZXIge1xuICAgIGNvbnN0IHZhbHVlID0gTnVtYmVyKHRoaXMuc2l6ZSk7XG4gICAgcmV0dXJuIE51bWJlci5pc0Zpbml0ZSh2YWx1ZSkgJiYgdmFsdWUgPiAwID8gdmFsdWUgOiAxNjtcbiAgfVxuXG4gIGdldCBpY29uS2V5KCk6IHN0cmluZyB7XG4gICAgY29uc3QgcmF3ID0gYCR7dGhpcy5uYW1lIHx8ICcnfWAudHJpbSgpO1xuICAgIGlmICghcmF3KSB7XG4gICAgICByZXR1cm4gJ2NpcmNsZSc7XG4gICAgfVxuXG4gICAgY29uc3QgdHJpbW1lZCA9IHJhdy5yZXBsYWNlKC9eKGx1Y2lkZXx0YWJsZXJ8aHVnZWljb25zfHBob3NwaG9yfHJlbWl4KVxcLy8sICcnKTtcbiAgICBjb25zdCBhbGlhc2VzID0gdGhpcy5hbGlhc01hcEJ5TGlicmFyeVt0aGlzLmxpYnJhcnldID8/IHt9O1xuICAgIHJldHVybiBhbGlhc2VzW3RyaW1tZWRdID8/IHRyaW1tZWQ7XG4gIH1cblxuICBnZXQgc3ZnTWFya3VwKCk6IFNhZmVIdG1sIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5yZXNvbHZlSWNvbk5vZGUodGhpcy5pY29uS2V5KSA/PyBGQUxMQkFDS19OT0RFO1xuICAgIGNvbnN0IHN0cm9rZVdpZHRoID0gdGhpcy5lc2NhcGVBdHRyKHRoaXMucmVzb2x2ZWRTdHJva2VXaWR0aCk7XG4gICAgY29uc3Qgc2l6ZSA9IHRoaXMuZXNjYXBlQXR0cih0aGlzLnJlc29sdmVkU2l6ZSk7XG5cbiAgICBjb25zdCBib2R5ID0gbm9kZVxuICAgICAgLm1hcCgoW3RhZywgYXR0cnNdKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlcmlhbGl6ZWRBdHRycyA9IE9iamVjdC5lbnRyaWVzKGF0dHJzKVxuICAgICAgICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4gYCR7a2V5fT1cIiR7dGhpcy5lc2NhcGVBdHRyKHZhbHVlKX1cImApXG4gICAgICAgICAgLmpvaW4oJyAnKTtcblxuICAgICAgICByZXR1cm4gc2VyaWFsaXplZEF0dHJzID8gYDwke3RhZ30gJHtzZXJpYWxpemVkQXR0cnN9PjwvJHt0YWd9PmAgOiBgPCR7dGFnfT48LyR7dGFnfT5gO1xuICAgICAgfSlcbiAgICAgIC5qb2luKCcnKTtcblxuICAgIGNvbnN0IHN2ZyA9IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIiR7c2l6ZX1cIiBoZWlnaHQ9XCIke3NpemV9XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiJHtzdHJva2VXaWR0aH1cIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj4ke2JvZHl9PC9zdmc+YDtcblxuICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChzdmcpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlSWNvbk5vZGUoaWNvbk5hbWU6IHN0cmluZyk6IEljb25Ob2RlIHwgbnVsbCB7XG4gICAgY29uc3Qgbm9ybWFsaXplZCA9IHRoaXMubm9ybWFsaXplSWNvbk5hbWUoaWNvbk5hbWUpO1xuICAgIHJldHVybiB0aGlzLmx1Y2lkZUluZGV4LmdldChub3JtYWxpemVkKSA/PyBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBub3JtYWxpemVJY29uTmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtuYW1lIHx8ICcnfWAudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bXmEtejAtOV0vZywgJycpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEx1Y2lkZUluZGV4KCk6IE1hcDxzdHJpbmcsIEljb25Ob2RlPiB7XG4gICAgY29uc3QgbWFwID0gbmV3IE1hcDxzdHJpbmcsIEljb25Ob2RlPigpO1xuXG4gICAgT2JqZWN0LmVudHJpZXMoaWNvbnMpLmZvckVhY2goKFtpY29uTmFtZSwgaWNvbk5vZGVdKSA9PiB7XG4gICAgICBtYXAuc2V0KHRoaXMubm9ybWFsaXplSWNvbk5hbWUoaWNvbk5hbWUpLCBpY29uTm9kZSBhcyBJY29uTm9kZSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbWFwO1xuICB9XG5cbiAgcHJpdmF0ZSBlc2NhcGVBdHRyKHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dmFsdWUgPz8gJyd9YFxuICAgICAgLnJlcGxhY2UoLyYvZywgJyZhbXA7JylcbiAgICAgIC5yZXBsYWNlKC9cIi9nLCAnJnF1b3Q7JylcbiAgICAgIC5yZXBsYWNlKC88L2csICcmbHQ7JylcbiAgICAgIC5yZXBsYWNlKC8+L2csICcmZ3Q7Jyk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJhc3NldFVybDsgZWxzZSBpbmxpbmVJY29uXCI+XG4gIDxpbWdcbiAgICBbc3JjXT1cImFzc2V0VXJsXCJcbiAgICBbc3R5bGUud2lkdGgucHhdPVwicmVzb2x2ZWRTaXplXCJcbiAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cInJlc29sdmVkU2l6ZVwiXG4gICAgW25nQ2xhc3NdPVwiY2xhc3NOYW1lXCJcbiAgICBbYXR0ci5yb2xlXT1cImRlY29yYXRpdmUgPyBudWxsIDogJ2ltZydcIlxuICAgIFthdHRyLmFyaWEtaGlkZGVuXT1cImRlY29yYXRpdmUgPyAndHJ1ZScgOiBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIiFkZWNvcmF0aXZlID8gYXJpYUxhYmVsIHx8IG5hbWUgOiBudWxsXCJcbiAgICBhbHQ9XCJcIlxuICAvPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjaW5saW5lSWNvbj5cbiAgPHNwYW5cbiAgICBbbmdDbGFzc109XCJjbGFzc05hbWVcIlxuICAgIFtzdHlsZS5kaXNwbGF5XT1cIidpbmxpbmUtZmxleCdcIlxuICAgIFtzdHlsZS5hbGlnbi1pdGVtc109XCInY2VudGVyJ1wiXG4gICAgW3N0eWxlLmp1c3RpZnktY29udGVudF09XCInY2VudGVyJ1wiXG4gICAgW3N0eWxlLmxpbmUtaGVpZ2h0XT1cIjBcIlxuICAgIFtzdHlsZS53aWR0aC5weF09XCJyZXNvbHZlZFNpemVcIlxuICAgIFtzdHlsZS5oZWlnaHQucHhdPVwicmVzb2x2ZWRTaXplXCJcbiAgICBbYXR0ci5yb2xlXT1cImRlY29yYXRpdmUgPyBudWxsIDogJ2ltZydcIlxuICAgIFthdHRyLmFyaWEtaGlkZGVuXT1cImRlY29yYXRpdmUgPyAndHJ1ZScgOiBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIiFkZWNvcmF0aXZlID8gYXJpYUxhYmVsIHx8IG5hbWUgOiBudWxsXCJcbiAgICBbaW5uZXJIVE1MXT1cInN2Z01hcmt1cFwiXG4gID48L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuIl19