@cqa-lib/cqa-ui 1.0.84 → 1.0.88
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.
- package/.github/workflows/README.md +181 -0
- package/esm2020/lib/dashboards/dashboard-header/dashboard-header.component.mjs +52 -3
- package/fesm2015/cqa-lib-cqa-ui.mjs +53 -2
- package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
- package/fesm2020/cqa-lib-cqa-ui.mjs +51 -2
- package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
- package/lib/dashboards/dashboard-header/dashboard-header.component.d.ts +11 -1
- package/package.json +1 -1
- package/storybook-static/assets/images/README.md +0 -66
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
# CI/CD Pipeline Setup
|
|
2
|
+
|
|
3
|
+
This repository uses GitHub Actions for continuous integration and deployment.
|
|
4
|
+
|
|
5
|
+
## Workflows
|
|
6
|
+
|
|
7
|
+
### 1. CI Workflow (`ci.yml`)
|
|
8
|
+
- Runs on pull requests and pushes to main/master
|
|
9
|
+
- Builds the package to ensure it compiles correctly
|
|
10
|
+
- Does not publish to npm
|
|
11
|
+
|
|
12
|
+
### 2. Publish Workflow (`publish.yml`)
|
|
13
|
+
- Runs on pushes to main/master branch
|
|
14
|
+
- Runs on version tags (e.g., `v1.0.0`)
|
|
15
|
+
- Can be manually triggered from GitHub Actions UI
|
|
16
|
+
- Builds and publishes the package to npm
|
|
17
|
+
|
|
18
|
+
## Setup Instructions
|
|
19
|
+
|
|
20
|
+
### 1. Verify npm Organization/Scope Access
|
|
21
|
+
|
|
22
|
+
**Important**: For scoped packages like `@cqa-lib/cqa-ui`, you need to ensure:
|
|
23
|
+
|
|
24
|
+
1. **If `@cqa-lib` is an npm organization:**
|
|
25
|
+
- You must be a member of the `@cqa-lib` organization
|
|
26
|
+
- You must have publish permissions for the organization
|
|
27
|
+
- Go to [npmjs.com/org/cqa-lib](https://www.npmjs.com/org/cqa-lib) to verify membership
|
|
28
|
+
|
|
29
|
+
2. **If `@cqa-lib` is your personal scope:**
|
|
30
|
+
- Make sure you're logged into the correct npm account
|
|
31
|
+
- The package name matches your npm username/scope
|
|
32
|
+
|
|
33
|
+
3. **First-time publish:**
|
|
34
|
+
- If the package doesn't exist yet, npm will create it
|
|
35
|
+
- Make sure you have permission to create packages in the scope
|
|
36
|
+
|
|
37
|
+
### 2. Create NPM Granular Token
|
|
38
|
+
|
|
39
|
+
1. Go to [npmjs.com/settings/~/tokens](https://www.npmjs.com/settings/~/tokens)
|
|
40
|
+
2. Click "Generate New Token" → "Granular Access Token"
|
|
41
|
+
3. Configure the token:
|
|
42
|
+
- **Token name**: `cqa-ui-lib-ci` (or any descriptive name)
|
|
43
|
+
- **Expiration**: 90 days (maximum for write tokens)
|
|
44
|
+
- **Type**: Automation
|
|
45
|
+
- **Packages**:
|
|
46
|
+
- If `@cqa-lib` is an org: Select `@cqa-lib/cqa-ui` specifically
|
|
47
|
+
- If personal scope: Select "All packages" or your scope
|
|
48
|
+
- **Permissions**: Read and write
|
|
49
|
+
- **Bypass 2FA**: Enable this for non-interactive CI/CD workflows
|
|
50
|
+
|
|
51
|
+
4. Copy the token (you won't be able to see it again!)
|
|
52
|
+
|
|
53
|
+
### 2. Add Secret to GitHub Repository
|
|
54
|
+
|
|
55
|
+
1. Go to your GitHub repository
|
|
56
|
+
2. Navigate to **Settings** → **Secrets and variables** → **Actions**
|
|
57
|
+
3. Click **New repository secret**
|
|
58
|
+
4. **Name: `NODE_AUTH_TOKEN`** (Important: Must be exactly `NODE_AUTH_TOKEN` for `setup-node` action)
|
|
59
|
+
5. Value: Paste your granular token
|
|
60
|
+
6. Click **Add secret**
|
|
61
|
+
|
|
62
|
+
**Note**: The secret must be named `NODE_AUTH_TOKEN` (not `NPM_TOKEN`) because the `actions/setup-node` action automatically uses this secret name when `registry-url` is provided.
|
|
63
|
+
|
|
64
|
+
### 3. Publishing Options
|
|
65
|
+
|
|
66
|
+
#### Option A: Auto-publish on commits to main/master
|
|
67
|
+
- Every push to main/master will trigger a publish
|
|
68
|
+
- Make sure to bump the version in `package.json` before committing
|
|
69
|
+
|
|
70
|
+
#### Option B: Publish on version tags (Recommended)
|
|
71
|
+
1. Update version in `package.json`
|
|
72
|
+
2. Commit and push:
|
|
73
|
+
```bash
|
|
74
|
+
git add package.json
|
|
75
|
+
git commit -m "chore: bump version to 1.0.85"
|
|
76
|
+
git push
|
|
77
|
+
```
|
|
78
|
+
3. Create and push a version tag:
|
|
79
|
+
```bash
|
|
80
|
+
git tag v1.0.85
|
|
81
|
+
git push origin v1.0.85
|
|
82
|
+
```
|
|
83
|
+
4. The workflow will automatically publish and create a GitHub release
|
|
84
|
+
|
|
85
|
+
#### Option C: Manual publish
|
|
86
|
+
- Go to **Actions** tab in GitHub
|
|
87
|
+
- Select **Publish to npm** workflow
|
|
88
|
+
- Click **Run workflow**
|
|
89
|
+
- Select branch and click **Run workflow**
|
|
90
|
+
|
|
91
|
+
## Important Notes
|
|
92
|
+
|
|
93
|
+
- **Token Expiration**: Granular tokens expire after 90 days. You'll need to regenerate and update the secret.
|
|
94
|
+
- **2FA**: If you have 2FA enabled on your npm account, make sure to enable "Bypass 2FA" when creating the token for CI/CD.
|
|
95
|
+
- **Version Management**: Always update the version in `package.json` before publishing.
|
|
96
|
+
- **OIDC Alternative**: For more secure publishing, consider setting up [OIDC trusted publishing](https://docs.npmjs.com/about-oidc-trusted-publishing) which eliminates the need for tokens.
|
|
97
|
+
|
|
98
|
+
## Troubleshooting
|
|
99
|
+
|
|
100
|
+
### "401 Unauthorized" or "Authentication failed"
|
|
101
|
+
|
|
102
|
+
**Step 1: Verify Secret Exists**
|
|
103
|
+
1. Go to your GitHub repository
|
|
104
|
+
2. Navigate to **Settings** → **Secrets and variables** → **Actions**
|
|
105
|
+
3. Look for a secret named exactly `NODE_AUTH_TOKEN` (case-sensitive)
|
|
106
|
+
4. If it doesn't exist or is named differently, create/rename it
|
|
107
|
+
|
|
108
|
+
**Step 2: Verify Token is Valid**
|
|
109
|
+
1. Go to [npmjs.com/settings/~/tokens](https://www.npmjs.com/settings/~/tokens)
|
|
110
|
+
2. Check if your token exists and hasn't expired
|
|
111
|
+
3. If expired or missing, create a new granular token:
|
|
112
|
+
- Click "Generate New Token" → "Granular Access Token"
|
|
113
|
+
- Name: `cqa-ui-lib-ci`
|
|
114
|
+
- Expiration: 90 days
|
|
115
|
+
- Type: Automation
|
|
116
|
+
- Packages: `@cqa-lib/cqa-ui` or "All packages"
|
|
117
|
+
- Permissions: Read and write
|
|
118
|
+
- **Enable "Bypass 2FA"** for CI/CD
|
|
119
|
+
4. Copy the new token and update the `NODE_AUTH_TOKEN` secret in GitHub
|
|
120
|
+
|
|
121
|
+
**Step 3: Verify Token Permissions**
|
|
122
|
+
- Make sure the token has **write** permissions (not just read)
|
|
123
|
+
- If using an organization scope (`@cqa-lib`), ensure you're a member with publish permissions
|
|
124
|
+
- Test the token locally:
|
|
125
|
+
```bash
|
|
126
|
+
export NPM_TOKEN="your-token-here"
|
|
127
|
+
echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > ~/.npmrc
|
|
128
|
+
npm whoami # Should print your npm username
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
**Step 4: Check Workflow Logs**
|
|
132
|
+
- Look at the "Verify npm authentication setup" step in the workflow logs
|
|
133
|
+
- It will show if the token is set and its length
|
|
134
|
+
- If it shows "Token is set (length: 0 characters)", the secret is empty
|
|
135
|
+
|
|
136
|
+
### "404 Not Found" when publishing
|
|
137
|
+
This error typically means one of the following:
|
|
138
|
+
|
|
139
|
+
1. **Package doesn't exist yet (first publish):**
|
|
140
|
+
- This is normal for the first publish
|
|
141
|
+
- Make sure you have permission to create packages in the `@cqa-lib` scope
|
|
142
|
+
- Verify you're a member of the `@cqa-lib` organization (if it's an org)
|
|
143
|
+
|
|
144
|
+
2. **No access to the scope:**
|
|
145
|
+
- Check if `@cqa-lib` is an organization you're a member of
|
|
146
|
+
- Verify your npm account has publish permissions
|
|
147
|
+
- Try running `npm whoami` locally to verify your npm identity
|
|
148
|
+
|
|
149
|
+
3. **Token permissions:**
|
|
150
|
+
- Ensure the granular token has "Read and write" permissions
|
|
151
|
+
- Make sure the token is scoped to `@cqa-lib/cqa-ui` or "All packages"
|
|
152
|
+
- Verify "Bypass 2FA" is enabled for automation tokens
|
|
153
|
+
|
|
154
|
+
4. **Package name mismatch:**
|
|
155
|
+
- Ensure the package name in `package.json` matches exactly: `@cqa-lib/cqa-ui`
|
|
156
|
+
- Check that `publishConfig.access` is set to `public` in `package.json`
|
|
157
|
+
|
|
158
|
+
### "You do not have permission to publish"
|
|
159
|
+
- Verify you're a member of the `@cqa-lib` organization
|
|
160
|
+
- Check organization settings for publish permissions
|
|
161
|
+
- Ensure your npm account has the correct role (admin/maintainer)
|
|
162
|
+
|
|
163
|
+
### Test locally first
|
|
164
|
+
Before relying on CI/CD, test publishing locally:
|
|
165
|
+
```bash
|
|
166
|
+
# Set your token
|
|
167
|
+
export NPM_TOKEN="your-token-here"
|
|
168
|
+
echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > ~/.npmrc
|
|
169
|
+
|
|
170
|
+
# Build and publish
|
|
171
|
+
npm run build:cqa-ui
|
|
172
|
+
cd dist/cqa-ui
|
|
173
|
+
npm publish --access public --dry-run # Test without publishing
|
|
174
|
+
npm publish --access public # Actual publish
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Build fails
|
|
178
|
+
- Check Node.js version matches (16.20.2)
|
|
179
|
+
- Verify all dependencies are installed correctly
|
|
180
|
+
- Review build logs in GitHub Actions
|
|
181
|
+
|
|
@@ -25,6 +25,15 @@ export class DashboardHeaderComponent {
|
|
|
25
25
|
this.workspaceDisabled = false;
|
|
26
26
|
this.workspaceMultiple = false;
|
|
27
27
|
this.workspaceSearchable = false;
|
|
28
|
+
// Server-side search/load-more support for workspace select
|
|
29
|
+
this.workspaceServerSearch = false;
|
|
30
|
+
this.workspaceHasMore = false;
|
|
31
|
+
this.workspaceIsLoading = false;
|
|
32
|
+
this.workspaceOptionStyle = 'checkbox';
|
|
33
|
+
this.workspaceShowSelectAll = false;
|
|
34
|
+
this.workspaceCloseOnSelect = false;
|
|
35
|
+
this.workspaceSearch = new EventEmitter();
|
|
36
|
+
this.workspaceLoadMore = new EventEmitter();
|
|
28
37
|
this.showWorkspaceSelector = true;
|
|
29
38
|
this.workspaceValueChange = new EventEmitter();
|
|
30
39
|
this.workspaceSelectClick = new EventEmitter();
|
|
@@ -49,6 +58,26 @@ export class DashboardHeaderComponent {
|
|
|
49
58
|
disabled: this.workspaceDisabled,
|
|
50
59
|
multiple: this.workspaceMultiple,
|
|
51
60
|
searchable: this.workspaceSearchable,
|
|
61
|
+
serverSearch: this.workspaceServerSearch,
|
|
62
|
+
hasMore: this.workspaceHasMore,
|
|
63
|
+
isLoading: this.workspaceIsLoading,
|
|
64
|
+
optionStyle: this.workspaceOptionStyle,
|
|
65
|
+
showSelectAll: this.workspaceShowSelectAll,
|
|
66
|
+
closeOnSelect: this.workspaceCloseOnSelect,
|
|
67
|
+
onSearch: (q) => {
|
|
68
|
+
try {
|
|
69
|
+
this.workspaceOnSearch?.(q);
|
|
70
|
+
}
|
|
71
|
+
catch { }
|
|
72
|
+
this.workspaceSearch.emit(q);
|
|
73
|
+
},
|
|
74
|
+
onLoadMore: (q) => {
|
|
75
|
+
try {
|
|
76
|
+
this.workspaceOnLoadMore?.(q);
|
|
77
|
+
}
|
|
78
|
+
catch { }
|
|
79
|
+
this.workspaceLoadMore.emit(q || '');
|
|
80
|
+
},
|
|
52
81
|
selectedValue: this.workspaceValue,
|
|
53
82
|
options: this.workspaceOptions,
|
|
54
83
|
};
|
|
@@ -65,10 +94,10 @@ export class DashboardHeaderComponent {
|
|
|
65
94
|
}
|
|
66
95
|
}
|
|
67
96
|
DashboardHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: DashboardHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
68
|
-
DashboardHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: DashboardHeaderComponent, selector: "cqa-dashboard-header", inputs: { title: "title", badgeText: "badgeText", badgeClass: "badgeClass", headerClass: "headerClass", showHeader: "showHeader", showLogo: "showLogo", logoUrl: "logoUrl", showHelpIcon: "showHelpIcon", helpIconTooltip: "helpIconTooltip", showPlusIcon: "showPlusIcon", workspaceOptions: "workspaceOptions", workspacePlaceholder: "workspacePlaceholder", workspaceDisabled: "workspaceDisabled", workspaceValue: "workspaceValue", workspaceMultiple: "workspaceMultiple", workspaceSearchable: "workspaceSearchable", showWorkspaceSelector: "showWorkspaceSelector" }, outputs: { helpIconClick: "helpIconClick", plusIconClick: "plusIconClick", workspaceValueChange: "workspaceValueChange", workspaceSelectClick: "workspaceSelectClick" }, host: { classAttribute: "cqa-ui-root" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"cqa-ui-root\" *ngIf=\"showHeader\">\n <div\n class=\"cqa-w-full cqa-flex cqa-items-center cqa-justify-between cqa-bg-white cqa-pr-6 cqa-pl-2 lg:cqa-px-6 lg:cqa-py-[6px] cqa-py-2 cqa-border-b cqa-border-default cqa-shadow-header\"\n [ngClass]=\"headerClass\">\n <!-- Left branding block -->\n <div class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-min-w-0\">\n <div class=\"cqa-pr-4 lg:cqa-hidden cqa-gap-2 md:cqa-flex cqa-hidden\">\n <!-- <cqa-button variant=\"filled\" icon=\"\" [customClass]=\"'!cqa-rounded-[10px] !cqa-p-[7px] !cqa-min-w-[47px]'\">\n <svg width=\"31\" height=\"22\" viewBox=\"0 0 31 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5.16675 11H25.8334\" stroke=\"white\" stroke-width=\"1.83333\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n <path d=\"M5.16675 16.5H25.8334\" stroke=\"white\" stroke-width=\"1.83333\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n <path d=\"M5.16675 5.5H25.8334\" stroke=\"white\" stroke-width=\"1.83333\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n </cqa-button> -->\n <!-- <span class=\"cqa-border-l cqa-border-primary-surface cqa-hidden md:cqa-flex\"></span> -->\n <cqa-button *ngIf=\"showPlusIcon\" variant=\"filled\" icon=\"\" class=\"cqa-hidden md:cqa-flex\" [customClass]=\"'!cqa-rounded-[10px] !cqa-p-[7px] !cqa-min-w-[47px]'\">\n <svg width=\"22\" height=\"22\" viewBox=\"0 0 22 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M4.58337 11H17.4167\" stroke=\"white\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n <path d=\"M11 4.58301V17.4163\" stroke=\"white\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n </cqa-button>\n </div>\n <!-- Optional projected logo -->\n <img *ngIf=\"showLogo && logoUrl\" [src]=\"logoUrl\" alt=\"Logo\" class=\"cqa-w-9 cqa-h-9 cqa-object-contain\" />\n <svg *ngIf=\"showLogo && !logoUrl\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <rect x=\"0.5\" y=\"0.5\" width=\"31\" height=\"31\" rx=\"15.5\" fill=\"url(#pattern0_6303_22035)\" />\n <rect x=\"0.5\" y=\"0.5\" width=\"31\" height=\"31\" rx=\"15.5\" stroke=\"#D8D9FC\" />\n <defs>\n <pattern id=\"pattern0_6303_22035\" patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <use xlink:href=\"#image0_6303_22035\" transform=\"scale(0.005)\" />\n </pattern>\n <image id=\"image0_6303_22035\" width=\"200\" height=\"200\" preserveAspectRatio=\"none\"\n xlink:href=\"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBw8SEBMQEBASEBAQEBYRFRUXFRARERASGRkWGxYXGBUYHigsGBomGxUYITEhJSkrLjouGSAzODMsNygtLjcBCgoKDg0OGxAQGy4dICUrNy0rKysrMDctLisvLS0tKy0tLTcuLS0tMDctNi0tLSstLS0rLS0rLTEtLS0tLS0tLf/AABEIAMgAyAMBIgACEQEDEQH/xAAcAAEAAgIDAQAAAAAAAAAAAAAABQYCBwEDBAj/xABBEAABAwICAwsKBQUAAwEAAAABAAIDBBEFIQYSQQciMVFSYXGBkaHRExQWIzJUkqKxwRdCYnKyU4LC4fAkNPEV/8QAGwEBAAIDAQEAAAAAAAAAAAAAAAIDAQQFBgf/xAAuEQACAQIEAwYGAwAAAAAAAAAAAQIDEQQSIVETMUEFUmGBkbEUIjJCccEVodH/2gAMAwEAAhEDEQA/AN4oiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiA81XK5jdcDWDc3DaW8Y5xwrkyFzNeIg3F2n8ruZd6r/AJbzSo1DlTzm7eKN+3qz71KKuRbsS1JViVhLbtIJa4H2mOHCCF1UNfrPdC+zZo7awzs5p4HtvsPdwKMxwuppRVxi7HEMmbyh+V3SuNI4TJEytpT66Aa7CPzxn2mnjy2KagvJ+5jMyS8/1JxBLl5S5hdsfbNzDxOHeOtcYjiBgc18n/rvIa539F/5Sf0k5X2G3Go9zosSorsOo/hBz1oZm8Gf/ZFdOjOLCshkpapvr4wY5mG2/GY1gmTq+nMZiD08bidNeopqqV1OTvm70mHrtm1Uf00xP3uT5PBbI0br3QzvwmrOvqj1DnWPlYiCdU9X3CoWnui5optaME08pJZw7w7WH7LcoON8kkvB7lM780eT00xP3uT5PBPTTE/e5Pk8FAItvhQ2RVne5P8AppifvcnyeCemmJ+9yfJ4KAROFDZDO9yz0GnmIxyNe6YytBzY4N1XDaLgZHnW4cAxqGrhE0JyOTm/mY7aCvndTeiekMlFOJG3MbspGctvHzEcK16+GUleK1J06jT1PoBVTTKmrmtM9JO8Bou6MWOXG247lY6KqZLG2WN2sx7Q5p4wu9cqUbqx0KFXhTU7J+DNLeleIe8v+XwT0rxD3l/y+Cm9P9GvJONTC31TzvwOBjuPoJVKXOm5wdmz2uFjhcRTU4wXoia9K8Q95f8AL4J6V4h7y/5fBQqKGeW5sfCUO4vRE16V4h7y/wCXwWUel1eCD5w42PAQ0g9OSg0Wc8tw8HQ7i9Ebo0X0hjq49Yb2Vvts4uccYU4tD4ViMlPK2aI2c09ThtBW6MExSOphbLHwEZja120FbtGrnVnzPJ9qdnPDSzR+l/14EiiIrzknCjseofLQOaPaG+b0j/rKSXCynZ3MNXViuYBVNqad1PLmWt1ect2HpC8OiVa6KV9FKeBx1P3bR0EZrpmd5rXEjJhdf+x3D3/RYabQmKojqGZF4vf9bbfay21FN5ej18ym7tfY80U3/wCbiTozlTTkHmAPAf7XXHQsdNo30VbFiEIykNnjYSALg/ub/FerTyJs9HDVtHs2vzNdYEdTgEa7z7B3tOcsDevWZmO1uXWVJdJv8MxuvNGG6DTCelhxGnO+hs4OHDqEjva77qUopIsWw4tfYOcNV3HHK3gcO49ahNzesE1PNQy5t1SWj9Drhw6jn/covc7rXUte+kkOUrjGeLyjL2PWLjrCw4NRcesdV+DKlqnuUSupHwyPikFnxuLXDnH1C6FsTdewgNljq2jKUaj/AN7RvT1t/itdrepTzwUiicbOwREVhEIiIDYu5PpCWyGikO9ku6L9L8y5vQRn1c62svmmmndG9sjDZ7HBwPEQvoXB8WingjnDmjyjA61xkdo7brmYulaWZdTZoyurM9dXTMkY6N4u14LSOMLSWPYW6mqHwuz1Tdp5TTwFbv8AOGctvaFSd0uhZJC2oYWl0R1XWIuWOsO427VzMRTco32O92Ni+FXyN6S9+hrVERc89mEREAVn0Exw09QGPNoZiGu4mu/K77KsLlShJxd0U4ihGtTcJdT6DuigtDcUNRSMc43e0ajukbesWPWuV1Iu6uj5/VpunNwlzROoiLJWVDTeHfRv4wW9lrfVYY563DY5dsZF+0sPfZe7TZvqmHik+oK8EG+wuYckn6tK24P5YvZlEvqaOnBfXYbUwHPUDiP5N+YKO3Mqq00sJ4JI9a3O3/Tu5SGgJuZ2bHMb3aw+6rmgj9XEIhx67fkd4K5rSovMhfWLOjRmTzXFWsvZomfCecG4HfZYadtNPirpWZG8c7emwv3tKx0kPk8VkI/LUNd/Er37rbLVcR44P8nKa1nF7oj9r8GXLTumbUYZK5udmNnb1WP8b9q0Wt+YR6zCmA569Jq/JZaDWMJpmjsyVbowiItwpCIiAIiIAso3WIPEViijKKasydObjJSXRkui4jOQ6AuV42Ss2j6pTlmgnugiIokwiIgL5uV1lpJoScnNDx0jI/UdiKK3OpCK9g5THjuv9lyujh3eB4vtuChim91f9G3URFcckrWmz/VRjjeT2A+K8EO9wuY8o/5NCz02mvJGzktJ7f8A4sdIfU4fFDteRcdrj3kLbgvlit2US+ps6NAsjO88DWD/ACP2Vc0DYXYhEeIPcfgd9yrJhfqMLqJjkZAQP4DvJUfuZ03rJp3ZNjYG36bk9zVc5aVH5EEtYor2kI8pisgGetUtZ3tH2Xv3W5L1cbeTAO9zl59EojU4o2QjLyj53cwFyPmIXVpmTVYs6Jme/ZA3sAPzXVi0mlsjH2vxZsjC/VYUwnLUo9b5LrQa3lugVbafDZGtyL2tgYOmwPygrRqjhNVKW7M1uiCIi3CkIiIAiKUotHa2Zgkip5JI3Xs4DI2JH1Cw5Jcxa/Ii0U36I4j7pL8Kwn0Zro2l8lNIyNvtOIsAFCVWCTdyynTlKSilzZjGMh0LlEXjpO8mz6pTjlilsgiIsEgiIgLRucx3r2nksee633RS+5XR76acjIARt7y77IujhlaB4vtqanin4K37NjLhFFaSV3koTb25N437nsV8Vd2OQ3ZXK9GzzuuJ4WB1zxajbfX7rq0vkdPVsp2Zllm/3OzPdZTeG07aOldLJ7ZGs7/Fv/ca8eiVAbvrZvafctvsGes5bSkk822iKbPluR26DO2Gnho2bcz+1vB2k9yyrGeYYOWnKacWPHrP4R1M+i68IpjiFe+reP8Ax4XAMB4HW9kD+R6QurSVrsRxBlHGfU0+cjhwAm2t15BvSpq2kH01Zjd+SMtAKVtLRzV8o9ppLf2Nv9T9FF7meHOnq5K2QXEZJB45X3+gJ7QpjdBqCWwYXSt38pbdo2MbbVHRcX/tUnWTw4RhwaLOeBZo2yzHhPRfPoCw5tptc5exlJabIpu61jIknZSsO9p8388jgPo36lUFdlRM57nPeS5z3FxO0krrW9ShkiolEnd3CIisIhERAeigpHzSshjF3yODQOc/ZfROF0LYIY4WezGwNHPbb2qgblOjZaPPpW5uBbCOJvA5/Xwdq2SuXi6uaWVdDaoxsrhUPdPxWzGUrTm867+Zo9kdv0VxxSvZBE6aQ2awX5zxAc91pHFa99RM+Z/tPde3ENg7FzMRUyxtueg7Fwbq1eI+Ufc8iIi0D2AREQBcgXyGZ4FwrjueYCZZfOJB6qI73ifJ/r6qUIuTsa+KxEaFJ1JF70UwvzaljjPt21nfuOZ7ODqRTCLqJWVkeAqTdSbm+bOHEAXPAFC0lOZ5vOXj1bMoWnb+sqVqIdcap9n8w5XN0LKVhLbNOrsvxdCmnbkVtXITEITVzCLgp4XXkP8AUfyR0LHSIvl1aGn3rpB6xw4IYfE8AHSpuGFrGajAAAMhn3rGkpGsueF7zrPceF5+w2WUlO3lyI5SJr3CjpmwUzLzP9XC3K7n7XG+wcJK68LoYcOpHySHWf7cr/zSSHIAceZsOlTEVIPKGV2+kI1QdjGclv1J/wBLiajD5GPfm2M3Y3Zr8o8ZGxM/T1M5SuYPRCnE2J15DZ5RrG+fkGcDWDjNrDuWrtLdIpK2cyOu2Nu9jZyG7TzklbA0y0cxOuksHxMp2HeM1nZnlONsz9FW/wAL6/lw/E7wW5QlTXzSevsUTUnoloUdFePwvr+XD8TvBPwvr+XD8TvBbPxFPvFfDlsUdFePwvr+XD8TvBPwvr+XD8TvBPiKfeHDlsUdWvQTRN1ZLryAimjO+P8AUPIB+qlsO3LqkyN8vJG2K++1CS4jiFx3raNBRxwxtiiaGRsFgBsVFfFJK0GWQpO92d0cYaA1oAaBYAZAAJLIGgucQABck8ACzKqul2F11V6qFzGQbbuOtIeew4OZcuTaV1qb1CnGc1GTyrdlL000kNVJqRm0EZ3v6zyj9lWVb/w9reVF8TvBPw9reVF8TvBaEqdSTu0exoYzBUKahCasioIrf+Htbyovid4J+Htbyovid4KPBnsXfyeF76Kgit/4e1vKi+J3gsotzyrJGs+MNvmQXEgdFlngz2MPtPC99EJo5gclXKGNyYM3u2Nb4rctBRxwxtijbqsYLALpwbCoqaIRRCwHCdrjxkr3rcpUsi8Ty3aOPlip6aRXL/TlERXHNCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiA/9k=\" />\n </defs>\n </svg>\n\n <!-- Title + optional badge -->\n <div class=\"cqa-items-end cqa-gap-3 cqa-min-w-0 cqa-hidden md:cqa-flex\">\n <div\n class=\"cqa-truncate cqa-text-[#22223B] cqa-font-extrabold cqa-text-[32px] cqa-font-nunito-sans cqa-leading-[1]\">\n {{ title }}</div>\n <span *ngIf=\"badgeText\"\n class=\"cqa-px-2 cqa-py-[2px] cqa-rounded-lg cqa-text-[12px] cqa-font-medium cqa-leading-4 cqa-whitespace-nowrap cqa-text-[#007A55] cqa-bg-[#D0FAE5] cqa-border cqa-border-[#A4F4CF]\"\n [ngClass]=\"badgeClass\">{{ badgeText }}</span>\n </div>\n </div>\n\n <!-- Right controls/actions -->\n <div class=\"cqa-flex cqa-items-center cqa-gap-3 cqa-flex-1 cqa-justify-end\">\n <!-- Optional workspace select -->\n <div *ngIf=\"showWorkspaceSelector && workspaceOptions?.length\" class=\"header-dropdown\">\n <cqa-dynamic-select [form]=\"workspaceForm\" [config]=\"workspaceConfig\" (selectClick)=\"workspaceSelectClick.emit()\">\n </cqa-dynamic-select>\n </div>\n\n <!-- Help icon button -->\n <button \n *ngIf=\"showHelpIcon\" \n mat-icon-button \n [matTooltip]=\"helpIconTooltip || 'Help'\"\n [matTooltipDisabled]=\"!helpIconTooltip\"\n matTooltipPosition=\"below\"\n matTooltipShowDelay=\"300\"\n (click)=\"helpIconClick.emit()\" \n class=\"cqa-flex cqa-items-center\">\n <mat-icon style=\"height: 36px; width: 36px; pointer-events: none;\">\n <svg width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M0 18C0 8.05888 8.05888 0 18 0C27.9411 0 36 8.05888 36 18C36 27.9411 27.9411 36 18 36C8.05888 36 0 27.9411 0 18Z\" fill=\"#D8D9FC\" fill-opacity=\"0.3\"/>\n <path d=\"M18.0001 28.4163C23.9832 28.4163 28.8334 23.7526 28.8334 17.9997C28.8334 12.2467 23.9832 7.58301 18.0001 7.58301C12.017 7.58301 7.16675 12.2467 7.16675 17.9997C7.16675 23.7526 12.017 28.4163 18.0001 28.4163Z\" stroke=\"#3F43EE\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M14.8474 14.8751C15.1021 14.1789 15.6048 13.5919 16.2665 13.218C16.9282 12.844 17.7062 12.7073 18.4627 12.8321C19.2192 12.9569 19.9053 13.335 20.3996 13.8996C20.8939 14.4642 21.1644 15.1788 21.1632 15.9168C21.1632 18.0001 17.9132 19.0418 17.9132 19.0418\" stroke=\"#3F43EE\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M18 23.208H18.01\" stroke=\"#3F43EE\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </mat-icon>\n </button>\n\n <ng-content></ng-content>\n </div>\n </div>\n</div>", components: [{ type: i1.ButtonComponent, selector: "cqa-button", inputs: ["variant", "disabled", "icon", "iconPosition", "fullWidth", "iconColor", "type", "text", "customClass", "tooltip", "tooltipPosition"], outputs: ["clicked"] }, { type: i2.DynamicSelectFieldComponent, selector: "cqa-dynamic-select", inputs: ["form", "config"], outputs: ["selectionChange", "selectClick", "searchChange", "loadMore"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
97
|
+
DashboardHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: DashboardHeaderComponent, selector: "cqa-dashboard-header", inputs: { title: "title", badgeText: "badgeText", badgeClass: "badgeClass", headerClass: "headerClass", showHeader: "showHeader", showLogo: "showLogo", logoUrl: "logoUrl", showHelpIcon: "showHelpIcon", helpIconTooltip: "helpIconTooltip", showPlusIcon: "showPlusIcon", workspaceOptions: "workspaceOptions", workspacePlaceholder: "workspacePlaceholder", workspaceDisabled: "workspaceDisabled", workspaceValue: "workspaceValue", workspaceMultiple: "workspaceMultiple", workspaceSearchable: "workspaceSearchable", workspaceServerSearch: "workspaceServerSearch", workspaceHasMore: "workspaceHasMore", workspaceIsLoading: "workspaceIsLoading", workspaceOptionStyle: "workspaceOptionStyle", workspaceShowSelectAll: "workspaceShowSelectAll", workspaceCloseOnSelect: "workspaceCloseOnSelect", workspaceOnSearch: "workspaceOnSearch", workspaceOnLoadMore: "workspaceOnLoadMore", showWorkspaceSelector: "showWorkspaceSelector" }, outputs: { helpIconClick: "helpIconClick", plusIconClick: "plusIconClick", workspaceSearch: "workspaceSearch", workspaceLoadMore: "workspaceLoadMore", workspaceValueChange: "workspaceValueChange", workspaceSelectClick: "workspaceSelectClick" }, host: { classAttribute: "cqa-ui-root" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"cqa-ui-root\" *ngIf=\"showHeader\">\n <div\n class=\"cqa-w-full cqa-flex cqa-items-center cqa-justify-between cqa-bg-white cqa-pr-6 cqa-pl-2 lg:cqa-px-6 lg:cqa-py-[6px] cqa-py-2 cqa-border-b cqa-border-default cqa-shadow-header\"\n [ngClass]=\"headerClass\">\n <!-- Left branding block -->\n <div class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-min-w-0\">\n <div class=\"cqa-pr-4 lg:cqa-hidden cqa-gap-2 md:cqa-flex cqa-hidden\">\n <!-- <cqa-button variant=\"filled\" icon=\"\" [customClass]=\"'!cqa-rounded-[10px] !cqa-p-[7px] !cqa-min-w-[47px]'\">\n <svg width=\"31\" height=\"22\" viewBox=\"0 0 31 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5.16675 11H25.8334\" stroke=\"white\" stroke-width=\"1.83333\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n <path d=\"M5.16675 16.5H25.8334\" stroke=\"white\" stroke-width=\"1.83333\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n <path d=\"M5.16675 5.5H25.8334\" stroke=\"white\" stroke-width=\"1.83333\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n </cqa-button> -->\n <!-- <span class=\"cqa-border-l cqa-border-primary-surface cqa-hidden md:cqa-flex\"></span> -->\n <cqa-button *ngIf=\"showPlusIcon\" variant=\"filled\" icon=\"\" class=\"cqa-hidden md:cqa-flex\" [customClass]=\"'!cqa-rounded-[10px] !cqa-p-[7px] !cqa-min-w-[47px]'\">\n <svg width=\"22\" height=\"22\" viewBox=\"0 0 22 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M4.58337 11H17.4167\" stroke=\"white\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n <path d=\"M11 4.58301V17.4163\" stroke=\"white\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n </cqa-button>\n </div>\n <!-- Optional projected logo -->\n <img *ngIf=\"showLogo && logoUrl\" [src]=\"logoUrl\" alt=\"Logo\" class=\"cqa-w-9 cqa-h-9 cqa-object-contain\" />\n <svg *ngIf=\"showLogo && !logoUrl\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <rect x=\"0.5\" y=\"0.5\" width=\"31\" height=\"31\" rx=\"15.5\" fill=\"url(#pattern0_6303_22035)\" />\n <rect x=\"0.5\" y=\"0.5\" width=\"31\" height=\"31\" rx=\"15.5\" stroke=\"#D8D9FC\" />\n <defs>\n <pattern id=\"pattern0_6303_22035\" patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <use xlink:href=\"#image0_6303_22035\" transform=\"scale(0.005)\" />\n </pattern>\n <image id=\"image0_6303_22035\" width=\"200\" height=\"200\" preserveAspectRatio=\"none\"\n xlink:href=\"data:image/jpeg;base64,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\" />\n </defs>\n </svg>\n\n <!-- Title + optional badge -->\n <div class=\"cqa-items-end cqa-gap-3 cqa-min-w-0 cqa-hidden md:cqa-flex\">\n <div\n class=\"cqa-truncate cqa-text-[#22223B] cqa-font-extrabold cqa-text-[32px] cqa-font-nunito-sans cqa-leading-[1]\">\n {{ title }}</div>\n <span *ngIf=\"badgeText\"\n class=\"cqa-px-2 cqa-py-[2px] cqa-rounded-lg cqa-text-[12px] cqa-font-medium cqa-leading-4 cqa-whitespace-nowrap cqa-text-[#007A55] cqa-bg-[#D0FAE5] cqa-border cqa-border-[#A4F4CF]\"\n [ngClass]=\"badgeClass\">{{ badgeText }}</span>\n </div>\n </div>\n\n <!-- Right controls/actions -->\n <div class=\"cqa-flex cqa-items-center cqa-gap-3 cqa-flex-1 cqa-justify-end\">\n <!-- Optional workspace select -->\n <div *ngIf=\"showWorkspaceSelector\" class=\"header-dropdown\">\n <cqa-dynamic-select [form]=\"workspaceForm\" [config]=\"workspaceConfig\" (selectClick)=\"workspaceSelectClick.emit()\">\n </cqa-dynamic-select>\n </div>\n\n <!-- Help icon button -->\n <button \n *ngIf=\"showHelpIcon\" \n mat-icon-button \n [matTooltip]=\"helpIconTooltip || 'Help'\"\n [matTooltipDisabled]=\"!helpIconTooltip\"\n matTooltipPosition=\"below\"\n matTooltipShowDelay=\"300\"\n (click)=\"helpIconClick.emit()\" \n class=\"cqa-flex cqa-items-center\">\n <mat-icon style=\"height: 36px; width: 36px; pointer-events: none;\">\n <svg width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M0 18C0 8.05888 8.05888 0 18 0C27.9411 0 36 8.05888 36 18C36 27.9411 27.9411 36 18 36C8.05888 36 0 27.9411 0 18Z\" fill=\"#D8D9FC\" fill-opacity=\"0.3\"/>\n <path d=\"M18.0001 28.4163C23.9832 28.4163 28.8334 23.7526 28.8334 17.9997C28.8334 12.2467 23.9832 7.58301 18.0001 7.58301C12.017 7.58301 7.16675 12.2467 7.16675 17.9997C7.16675 23.7526 12.017 28.4163 18.0001 28.4163Z\" stroke=\"#3F43EE\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M14.8474 14.8751C15.1021 14.1789 15.6048 13.5919 16.2665 13.218C16.9282 12.844 17.7062 12.7073 18.4627 12.8321C19.2192 12.9569 19.9053 13.335 20.3996 13.8996C20.8939 14.4642 21.1644 15.1788 21.1632 15.9168C21.1632 18.0001 17.9132 19.0418 17.9132 19.0418\" stroke=\"#3F43EE\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M18 23.208H18.01\" stroke=\"#3F43EE\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </mat-icon>\n </button>\n\n <ng-content></ng-content>\n </div>\n </div>\n</div>", components: [{ type: i1.ButtonComponent, selector: "cqa-button", inputs: ["variant", "disabled", "icon", "iconPosition", "fullWidth", "iconColor", "type", "text", "customClass", "tooltip", "tooltipPosition"], outputs: ["clicked"] }, { type: i2.DynamicSelectFieldComponent, selector: "cqa-dynamic-select", inputs: ["form", "config"], outputs: ["selectionChange", "selectClick", "searchChange", "loadMore"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
69
98
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: DashboardHeaderComponent, decorators: [{
|
|
70
99
|
type: Component,
|
|
71
|
-
args: [{ selector: 'cqa-dashboard-header', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'cqa-ui-root' }, template: "<div class=\"cqa-ui-root\" *ngIf=\"showHeader\">\n <div\n class=\"cqa-w-full cqa-flex cqa-items-center cqa-justify-between cqa-bg-white cqa-pr-6 cqa-pl-2 lg:cqa-px-6 lg:cqa-py-[6px] cqa-py-2 cqa-border-b cqa-border-default cqa-shadow-header\"\n [ngClass]=\"headerClass\">\n <!-- Left branding block -->\n <div class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-min-w-0\">\n <div class=\"cqa-pr-4 lg:cqa-hidden cqa-gap-2 md:cqa-flex cqa-hidden\">\n <!-- <cqa-button variant=\"filled\" icon=\"\" [customClass]=\"'!cqa-rounded-[10px] !cqa-p-[7px] !cqa-min-w-[47px]'\">\n <svg width=\"31\" height=\"22\" viewBox=\"0 0 31 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5.16675 11H25.8334\" stroke=\"white\" stroke-width=\"1.83333\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n <path d=\"M5.16675 16.5H25.8334\" stroke=\"white\" stroke-width=\"1.83333\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n <path d=\"M5.16675 5.5H25.8334\" stroke=\"white\" stroke-width=\"1.83333\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n </cqa-button> -->\n <!-- <span class=\"cqa-border-l cqa-border-primary-surface cqa-hidden md:cqa-flex\"></span> -->\n <cqa-button *ngIf=\"showPlusIcon\" variant=\"filled\" icon=\"\" class=\"cqa-hidden md:cqa-flex\" [customClass]=\"'!cqa-rounded-[10px] !cqa-p-[7px] !cqa-min-w-[47px]'\">\n <svg width=\"22\" height=\"22\" viewBox=\"0 0 22 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M4.58337 11H17.4167\" stroke=\"white\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n <path d=\"M11 4.58301V17.4163\" stroke=\"white\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n </cqa-button>\n </div>\n <!-- Optional projected logo -->\n <img *ngIf=\"showLogo && logoUrl\" [src]=\"logoUrl\" alt=\"Logo\" class=\"cqa-w-9 cqa-h-9 cqa-object-contain\" />\n <svg *ngIf=\"showLogo && !logoUrl\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <rect x=\"0.5\" y=\"0.5\" width=\"31\" height=\"31\" rx=\"15.5\" fill=\"url(#pattern0_6303_22035)\" />\n <rect x=\"0.5\" y=\"0.5\" width=\"31\" height=\"31\" rx=\"15.5\" stroke=\"#D8D9FC\" />\n <defs>\n <pattern id=\"pattern0_6303_22035\" patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <use xlink:href=\"#image0_6303_22035\" transform=\"scale(0.005)\" />\n </pattern>\n <image id=\"image0_6303_22035\" width=\"200\" height=\"200\" preserveAspectRatio=\"none\"\n xlink:href=\"data:image/jpeg;base64,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\" />\n </defs>\n </svg>\n\n <!-- Title + optional badge -->\n <div class=\"cqa-items-end cqa-gap-3 cqa-min-w-0 cqa-hidden md:cqa-flex\">\n <div\n class=\"cqa-truncate cqa-text-[#22223B] cqa-font-extrabold cqa-text-[32px] cqa-font-nunito-sans cqa-leading-[1]\">\n {{ title }}</div>\n <span *ngIf=\"badgeText\"\n class=\"cqa-px-2 cqa-py-[2px] cqa-rounded-lg cqa-text-[12px] cqa-font-medium cqa-leading-4 cqa-whitespace-nowrap cqa-text-[#007A55] cqa-bg-[#D0FAE5] cqa-border cqa-border-[#A4F4CF]\"\n [ngClass]=\"badgeClass\">{{ badgeText }}</span>\n </div>\n </div>\n\n <!-- Right controls/actions -->\n <div class=\"cqa-flex cqa-items-center cqa-gap-3 cqa-flex-1 cqa-justify-end\">\n <!-- Optional workspace select -->\n <div *ngIf=\"showWorkspaceSelector && workspaceOptions?.length\" class=\"header-dropdown\">\n <cqa-dynamic-select [form]=\"workspaceForm\" [config]=\"workspaceConfig\" (selectClick)=\"workspaceSelectClick.emit()\">\n </cqa-dynamic-select>\n </div>\n\n <!-- Help icon button -->\n <button \n *ngIf=\"showHelpIcon\" \n mat-icon-button \n [matTooltip]=\"helpIconTooltip || 'Help'\"\n [matTooltipDisabled]=\"!helpIconTooltip\"\n matTooltipPosition=\"below\"\n matTooltipShowDelay=\"300\"\n (click)=\"helpIconClick.emit()\" \n class=\"cqa-flex cqa-items-center\">\n <mat-icon style=\"height: 36px; width: 36px; pointer-events: none;\">\n <svg width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M0 18C0 8.05888 8.05888 0 18 0C27.9411 0 36 8.05888 36 18C36 27.9411 27.9411 36 18 36C8.05888 36 0 27.9411 0 18Z\" fill=\"#D8D9FC\" fill-opacity=\"0.3\"/>\n <path d=\"M18.0001 28.4163C23.9832 28.4163 28.8334 23.7526 28.8334 17.9997C28.8334 12.2467 23.9832 7.58301 18.0001 7.58301C12.017 7.58301 7.16675 12.2467 7.16675 17.9997C7.16675 23.7526 12.017 28.4163 18.0001 28.4163Z\" stroke=\"#3F43EE\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M14.8474 14.8751C15.1021 14.1789 15.6048 13.5919 16.2665 13.218C16.9282 12.844 17.7062 12.7073 18.4627 12.8321C19.2192 12.9569 19.9053 13.335 20.3996 13.8996C20.8939 14.4642 21.1644 15.1788 21.1632 15.9168C21.1632 18.0001 17.9132 19.0418 17.9132 19.0418\" stroke=\"#3F43EE\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M18 23.208H18.01\" stroke=\"#3F43EE\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </mat-icon>\n </button>\n\n <ng-content></ng-content>\n </div>\n </div>\n</div>", styles: [] }]
|
|
100
|
+
args: [{ selector: 'cqa-dashboard-header', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'cqa-ui-root' }, template: "<div class=\"cqa-ui-root\" *ngIf=\"showHeader\">\n <div\n class=\"cqa-w-full cqa-flex cqa-items-center cqa-justify-between cqa-bg-white cqa-pr-6 cqa-pl-2 lg:cqa-px-6 lg:cqa-py-[6px] cqa-py-2 cqa-border-b cqa-border-default cqa-shadow-header\"\n [ngClass]=\"headerClass\">\n <!-- Left branding block -->\n <div class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-min-w-0\">\n <div class=\"cqa-pr-4 lg:cqa-hidden cqa-gap-2 md:cqa-flex cqa-hidden\">\n <!-- <cqa-button variant=\"filled\" icon=\"\" [customClass]=\"'!cqa-rounded-[10px] !cqa-p-[7px] !cqa-min-w-[47px]'\">\n <svg width=\"31\" height=\"22\" viewBox=\"0 0 31 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5.16675 11H25.8334\" stroke=\"white\" stroke-width=\"1.83333\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n <path d=\"M5.16675 16.5H25.8334\" stroke=\"white\" stroke-width=\"1.83333\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n <path d=\"M5.16675 5.5H25.8334\" stroke=\"white\" stroke-width=\"1.83333\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n </cqa-button> -->\n <!-- <span class=\"cqa-border-l cqa-border-primary-surface cqa-hidden md:cqa-flex\"></span> -->\n <cqa-button *ngIf=\"showPlusIcon\" variant=\"filled\" icon=\"\" class=\"cqa-hidden md:cqa-flex\" [customClass]=\"'!cqa-rounded-[10px] !cqa-p-[7px] !cqa-min-w-[47px]'\">\n <svg width=\"22\" height=\"22\" viewBox=\"0 0 22 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M4.58337 11H17.4167\" stroke=\"white\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n <path d=\"M11 4.58301V17.4163\" stroke=\"white\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n </cqa-button>\n </div>\n <!-- Optional projected logo -->\n <img *ngIf=\"showLogo && logoUrl\" [src]=\"logoUrl\" alt=\"Logo\" class=\"cqa-w-9 cqa-h-9 cqa-object-contain\" />\n <svg *ngIf=\"showLogo && !logoUrl\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <rect x=\"0.5\" y=\"0.5\" width=\"31\" height=\"31\" rx=\"15.5\" fill=\"url(#pattern0_6303_22035)\" />\n <rect x=\"0.5\" y=\"0.5\" width=\"31\" height=\"31\" rx=\"15.5\" stroke=\"#D8D9FC\" />\n <defs>\n <pattern id=\"pattern0_6303_22035\" patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <use xlink:href=\"#image0_6303_22035\" transform=\"scale(0.005)\" />\n </pattern>\n <image id=\"image0_6303_22035\" width=\"200\" height=\"200\" preserveAspectRatio=\"none\"\n xlink:href=\"data:image/jpeg;base64,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\" />\n </defs>\n </svg>\n\n <!-- Title + optional badge -->\n <div class=\"cqa-items-end cqa-gap-3 cqa-min-w-0 cqa-hidden md:cqa-flex\">\n <div\n class=\"cqa-truncate cqa-text-[#22223B] cqa-font-extrabold cqa-text-[32px] cqa-font-nunito-sans cqa-leading-[1]\">\n {{ title }}</div>\n <span *ngIf=\"badgeText\"\n class=\"cqa-px-2 cqa-py-[2px] cqa-rounded-lg cqa-text-[12px] cqa-font-medium cqa-leading-4 cqa-whitespace-nowrap cqa-text-[#007A55] cqa-bg-[#D0FAE5] cqa-border cqa-border-[#A4F4CF]\"\n [ngClass]=\"badgeClass\">{{ badgeText }}</span>\n </div>\n </div>\n\n <!-- Right controls/actions -->\n <div class=\"cqa-flex cqa-items-center cqa-gap-3 cqa-flex-1 cqa-justify-end\">\n <!-- Optional workspace select -->\n <div *ngIf=\"showWorkspaceSelector\" class=\"header-dropdown\">\n <cqa-dynamic-select [form]=\"workspaceForm\" [config]=\"workspaceConfig\" (selectClick)=\"workspaceSelectClick.emit()\">\n </cqa-dynamic-select>\n </div>\n\n <!-- Help icon button -->\n <button \n *ngIf=\"showHelpIcon\" \n mat-icon-button \n [matTooltip]=\"helpIconTooltip || 'Help'\"\n [matTooltipDisabled]=\"!helpIconTooltip\"\n matTooltipPosition=\"below\"\n matTooltipShowDelay=\"300\"\n (click)=\"helpIconClick.emit()\" \n class=\"cqa-flex cqa-items-center\">\n <mat-icon style=\"height: 36px; width: 36px; pointer-events: none;\">\n <svg width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M0 18C0 8.05888 8.05888 0 18 0C27.9411 0 36 8.05888 36 18C36 27.9411 27.9411 36 18 36C8.05888 36 0 27.9411 0 18Z\" fill=\"#D8D9FC\" fill-opacity=\"0.3\"/>\n <path d=\"M18.0001 28.4163C23.9832 28.4163 28.8334 23.7526 28.8334 17.9997C28.8334 12.2467 23.9832 7.58301 18.0001 7.58301C12.017 7.58301 7.16675 12.2467 7.16675 17.9997C7.16675 23.7526 12.017 28.4163 18.0001 28.4163Z\" stroke=\"#3F43EE\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M14.8474 14.8751C15.1021 14.1789 15.6048 13.5919 16.2665 13.218C16.9282 12.844 17.7062 12.7073 18.4627 12.8321C19.2192 12.9569 19.9053 13.335 20.3996 13.8996C20.8939 14.4642 21.1644 15.1788 21.1632 15.9168C21.1632 18.0001 17.9132 19.0418 17.9132 19.0418\" stroke=\"#3F43EE\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M18 23.208H18.01\" stroke=\"#3F43EE\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </mat-icon>\n </button>\n\n <ng-content></ng-content>\n </div>\n </div>\n</div>", styles: [] }]
|
|
72
101
|
}], propDecorators: { title: [{
|
|
73
102
|
type: Input
|
|
74
103
|
}], badgeText: [{
|
|
@@ -105,6 +134,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
105
134
|
type: Input
|
|
106
135
|
}], workspaceSearchable: [{
|
|
107
136
|
type: Input
|
|
137
|
+
}], workspaceServerSearch: [{
|
|
138
|
+
type: Input
|
|
139
|
+
}], workspaceHasMore: [{
|
|
140
|
+
type: Input
|
|
141
|
+
}], workspaceIsLoading: [{
|
|
142
|
+
type: Input
|
|
143
|
+
}], workspaceOptionStyle: [{
|
|
144
|
+
type: Input
|
|
145
|
+
}], workspaceShowSelectAll: [{
|
|
146
|
+
type: Input
|
|
147
|
+
}], workspaceCloseOnSelect: [{
|
|
148
|
+
type: Input
|
|
149
|
+
}], workspaceOnSearch: [{
|
|
150
|
+
type: Input
|
|
151
|
+
}], workspaceOnLoadMore: [{
|
|
152
|
+
type: Input
|
|
153
|
+
}], workspaceSearch: [{
|
|
154
|
+
type: Output
|
|
155
|
+
}], workspaceLoadMore: [{
|
|
156
|
+
type: Output
|
|
108
157
|
}], showWorkspaceSelector: [{
|
|
109
158
|
type: Input
|
|
110
159
|
}], workspaceValueChange: [{
|
|
@@ -112,4 +161,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
112
161
|
}], workspaceSelectClick: [{
|
|
113
162
|
type: Output
|
|
114
163
|
}] } });
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2Rhc2hib2FyZHMvZGFzaGJvYXJkLWhlYWRlci9kYXNoYm9hcmQtaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZGFzaGJvYXJkcy9kYXNoYm9hcmQtaGVhZGVyL2Rhc2hib2FyZC1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ2xJLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBaUJ4RCxNQUFNLE9BQU8sd0JBQXdCO0lBUHJDO1FBUVcsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUVuQixlQUFVLEdBQVcsNkJBQTZCLENBQUM7UUFDbkQsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFDekIsZUFBVSxHQUFZLElBQUksQ0FBQztRQUMzQixhQUFRLEdBQVksSUFBSSxDQUFDO1FBRXpCLGlCQUFZLEdBQVksSUFBSSxDQUFDO1FBQzdCLG9CQUFlLEdBQVcsTUFBTSxDQUFDO1FBQ2hDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUMxQyxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUM3QixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFbkQseUNBQXlDO1FBQ2hDLHFCQUFnQixHQUF5QixFQUFFLENBQUM7UUFDNUMseUJBQW9CLEdBQVcsV0FBVyxDQUFDO1FBQzNDLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUVuQyxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFDbkMsd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBQ3JDLDBC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QUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDSSxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IER5bmFtaWNTZWxlY3RGaWVsZENvbmZpZyB9IGZyb20gJy4uLy4uL2R5bmFtaWMtc2VsZWN0L2R5bmFtaWMtc2VsZWN0LWZpZWxkLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGVhZGVyU2VsZWN0T3B0aW9uIHtcbiAgaWQ/OiBhbnk7XG4gIHZhbHVlPzogYW55O1xuICBuYW1lPzogc3RyaW5nO1xuICBsYWJlbD86IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLWRhc2hib2FyZC1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGFzaGJvYXJkLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7IGNsYXNzOiAnY3FhLXVpLXJvb3QnIH1cbn0pXG5leHBvcnQgY2xhc3MgRGFzaGJvYXJkSGVhZGVyQ29tcG9uZW50IHtcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBiYWRnZVRleHQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGJhZGdlQ2xhc3M6IHN0cmluZyA9ICdiZy1bI0QxRkFFNV0gdGV4dC1bIzA2NUY0Nl0nO1xuICBASW5wdXQoKSBoZWFkZXJDbGFzczogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHNob3dIZWFkZXI6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBzaG93TG9nbzogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGxvZ29Vcmw/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNob3dIZWxwSWNvbjogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGhlbHBJY29uVG9vbHRpcDogc3RyaW5nID0gJ0hlbHAnO1xuICBAT3V0cHV0KCkgaGVscEljb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQElucHV0KCkgc2hvd1BsdXNJY29uOiBib29sZWFuID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBwbHVzSWNvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIC8vIE9wdGlvbmFsIHdvcmtzcGFjZSBzZWxlY3Qgb24gdGhlIHJpZ2h0XG4gIEBJbnB1dCgpIHdvcmtzcGFjZU9wdGlvbnM6IEhlYWRlclNlbGVjdE9wdGlvbltdID0gW107XG4gIEBJbnB1dCgpIHdvcmtzcGFjZVBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnV29ya3NwYWNlJztcbiAgQElucHV0KCkgd29ya3NwYWNlRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgd29ya3NwYWNlVmFsdWU/OiBhbnk7XG4gIEBJbnB1dCgpIHdvcmtzcGFjZU11bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHdvcmtzcGFjZVNlYXJjaGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd1dvcmtzcGFjZVNlbGVjdG9yOiBib29sZWFuID0gdHJ1ZTtcbiAgQE91dHB1dCgpIHdvcmtzcGFjZVZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSB3b3Jrc3BhY2VTZWxlY3RDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICB3b3Jrc3BhY2VGb3JtOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHtcbiAgICB3b3Jrc3BhY2U6IG5ldyBGb3JtQ29udHJvbCgpLFxuICB9KTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN5bmNGb3JtRnJvbUlucHV0KCk7XG4gICAgdGhpcy53b3Jrc3BhY2VGb3JtLmdldCgnd29ya3NwYWNlJyk/LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHYpID0+IHtcbiAgICAgIHRoaXMud29ya3NwYWNlVmFsdWUgPSB2O1xuICAgICAgdGhpcy53b3Jrc3BhY2VWYWx1ZUNoYW5nZS5lbWl0KHYpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoX2NoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICB0aGlzLnN5bmNGb3JtRnJvbUlucHV0KCk7XG4gIH1cblxuICBnZXQgd29ya3NwYWNlQ29uZmlnKCk6IER5bmFtaWNTZWxlY3RGaWVsZENvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGtleTogJ3dvcmtzcGFjZScsXG4gICAgICBwbGFjZWhvbGRlcjogdGhpcy53b3Jrc3BhY2VQbGFjZWhvbGRlcixcbiAgICAgIGRpc2FibGVkOiB0aGlzLndvcmtzcGFjZURpc2FibGVkLFxuICAgICAgbXVsdGlwbGU6IHRoaXMud29ya3NwYWNlTXVsdGlwbGUsXG4gICAgICBzZWFyY2hhYmxlOiB0aGlzLndvcmtzcGFjZVNlYXJjaGFibGUsXG4gICAgICBzZWxlY3RlZFZhbHVlOiB0aGlzLndvcmtzcGFjZVZhbHVlLFxuICAgICAgb3B0aW9uczogdGhpcy53b3Jrc3BhY2VPcHRpb25zLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHN5bmNGb3JtRnJvbUlucHV0KCk6IHZvaWQge1xuICAgIGNvbnN0IGN0cmwgPSB0aGlzLndvcmtzcGFjZUZvcm0uZ2V0KCd3b3Jrc3BhY2UnKTtcbiAgICBpZiAoIWN0cmwpIHJldHVybjtcbiAgICBjb25zdCB2YWwgPSB0aGlzLndvcmtzcGFjZVZhbHVlO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSB0aGlzLndvcmtzcGFjZU11bHRpcGxlXG4gICAgICA/IEFycmF5LmlzQXJyYXkodmFsKSA/IHZhbCA6ICh2YWwgIT0gbnVsbCA/IFt2YWxdIDogW10pXG4gICAgICA6IChBcnJheS5pc0FycmF5KHZhbCkgPyAodmFsLmxlbmd0aCA/IHZhbFswXSA6IHVuZGVmaW5lZCkgOiB2YWwpO1xuICAgIGN0cmwuc2V0VmFsdWUobm9ybWFsaXplZCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICB9XG59XG5cblxuIiwiPGRpdiBjbGFzcz1cImNxYS11aS1yb290XCIgKm5nSWY9XCJzaG93SGVhZGVyXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImNxYS13LWZ1bGwgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1iZXR3ZWVuIGNxYS1iZy13aGl0ZSBjcWEtcHItNiBjcWEtcGwtMiBsZzpjcWEtcHgtNiBsZzpjcWEtcHktWzZweF0gY3FhLXB5LTIgY3FhLWJvcmRlci1iIGNxYS1ib3JkZXItZGVmYXVsdCBjcWEtc2hhZG93LWhlYWRlclwiXG4gICAgW25nQ2xhc3NdPVwiaGVhZGVyQ2xhc3NcIj5cbiAgICA8IS0tIExlZnQgYnJhbmRpbmcgYmxvY2sgLS0+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yIGNxYS1taW4tdy0wXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLXByLTQgbGc6Y3FhLWhpZGRlbiBjcWEtZ2FwLTIgbWQ6Y3FhLWZsZXggY3FhLWhpZGRlblwiPlxuICAgICAgICA8IS0tIDxjcWEtYnV0dG9uIHZhcmlhbnQ9XCJmaWxsZWRcIiBpY29uPVwiXCIgW2N1c3RvbUNsYXNzXT1cIichY3FhLXJvdW5kZWQtWzEwcHhdICFjcWEtcC1bN3B4XSAhY3FhLW1pbi13LVs0N3B4XSdcIj5cbiAgICAgICAgICA8c3ZnIHdpZHRoPVwiMzFcIiBoZWlnaHQ9XCIyMlwiIHZpZXdCb3g9XCIwIDAgMzEgMjJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNNS4xNjY3NSAxMUgyNS44MzM0XCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIxLjgzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNNS4xNjY3NSAxNi41SDI1LjgzMzRcIiBzdHJva2U9XCJ3aGl0ZVwiIHN0cm9rZS13aWR0aD1cIjEuODMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICAgICAgPHBhdGggZD1cIk01LjE2Njc1IDUuNUgyNS44MzM0XCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIxLjgzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9jcWEtYnV0dG9uPiAtLT5cbiAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cImNxYS1ib3JkZXItbCBjcWEtYm9yZGVyLXByaW1hcnktc3VyZmFjZSBjcWEtaGlkZGVuIG1kOmNxYS1mbGV4XCI+PC9zcGFuPiAtLT5cbiAgICAgICAgPGNxYS1idXR0b24gKm5nSWY9XCJzaG93UGx1c0ljb25cIiB2YXJpYW50PVwiZmlsbGVkXCIgaWNvbj1cIlwiIGNsYXNzPVwiY3FhLWhpZGRlbiBtZDpjcWEtZmxleFwiIFtjdXN0b21DbGFzc109XCInIWNxYS1yb3VuZGVkLVsxMHB4XSAhY3FhLXAtWzdweF0gIWNxYS1taW4tdy1bNDdweF0nXCI+XG4gICAgICAgICAgPHN2ZyB3aWR0aD1cIjIyXCIgaGVpZ2h0PVwiMjJcIiB2aWV3Qm94PVwiMCAwIDIyIDIyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTQuNTgzMzcgMTFIMTcuNDE2N1wiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTExIDQuNTgzMDFWMTcuNDE2M1wiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvY3FhLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBPcHRpb25hbCBwcm9qZWN0ZWQgbG9nbyAtLT5cbiAgICAgIDxpbWcgKm5nSWY9XCJzaG93TG9nbyAmJiBsb2dvVXJsXCIgW3NyY109XCJsb2dvVXJsXCIgYWx0PVwiTG9nb1wiIGNsYXNzPVwiY3FhLXctOSBjcWEtaC05IGNxYS1vYmplY3QtY29udGFpblwiIC8+XG4gICAgICA8c3ZnICpuZ0lmPVwic2hvd0xvZ28gJiYgIWxvZ29VcmxcIiB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMzJcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCI+XG4gICAgICAgIDxyZWN0IHg9XCIwLjVcIiB5PVwiMC41XCIgd2lkdGg9XCIzMVwiIGhlaWdodD1cIjMxXCIgcng9XCIxNS41XCIgZmlsbD1cInVybCgjcGF0dGVybjBfNjMwM18yMjAzNSlcIiAvPlxuICAgICAgICA8cmVjdCB4PVwiMC41XCIgeT1cIjAuNVwiIHdpZHRoPVwiMzFcIiBoZWlnaHQ9XCIzMVwiIHJ4PVwiMTUuNVwiIHN0cm9rZT1cIiNEOEQ5RkNcIiAvPlxuICAgICAgICA8ZGVmcz5cbiAgICAgICAgICA8cGF0dGVybiBpZD1cInBhdHRlcm4wXzYzMDNfMjIwMzVcIiBwYXR0ZXJuQ29udGVudFVuaXRzPVwib2JqZWN0Qm91bmRpbmdCb3hcIiB3aWR0aD1cIjFcIiBoZWlnaHQ9XCIxXCI+XG4gICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9XCIjaW1hZ2UwXzYzMDNfMjIwMzVcIiB0cmFuc2Zvcm09XCJzY2FsZSgwLjAwNSlcIiAvPlxuICAgICAgICAgIDwvcGF0dGVybj5cbiAgICAgICAgICA8aW1hZ2UgaWQ9XCJpbWFnZTBfNjMwM18yMjAzNVwiIHdpZHRoPVwiMjAwXCIgaGVpZ2h0PVwiMjAwXCIgcHJlc2VydmVBc3BlY3RSYXRpbz1cIm5vbmVcIlxuICAgICAgICAgICAgeGxpbms6aHJlZj1cImRhdGE6aW1hZ2UvanBlZztiYXNlNjQsLzlqLzRBQVFTa1pKUmdBQkFRQUFBUUFCQUFELzJ3Q0VBQWtHQnc4U0VCTVFFQkFTRUJBUUVCWVJGUlVYRlJBUkVSQVNHUmtXR3hZWEdCVVlIaWdzR0JvbUd4VVlJVEVoSlNrckxqb3VHU0F6T0RNc055Z3RMamNCQ2dvS0RnME9HeEFRR3k0ZElDVXJOeTByS3lzck1EY3RMaXN2TFMwdEt5MHRMVGN1TFMwdE1EY3ROaTB0TFNzdExTMHJMUzByTFRFdExTMHRMUzB0TGYvQUFCRUlBTWdBeUFNQklnQUNFUUVERVFIL3hBQWNBQUVBQWdJREFRQUFBQUFBQUFBQUFBQUFCUVlDQndFREJBai94QUJCRUFBQkF3SUNBd3NLQlFVQUF3RUFBQUFCQUFJREJCRUZJUVlTUVFjaU1WRlNZWEdCa2FIUkV4UVdJekpVa3FLeHdSZENZbkt5VTRMQzRmQWtOUEVWLzhRQUd3RUJBQUlEQVFFQUFBQUFBQUFBQUFBQUFBSURBUVFGQmdmL3hBQXVFUUFDQVFJRUF3WUdBd0FBQUFBQUFBQUFBUUlERVFRU0lWRVRNVUVGVW1HQmtiRVVJakpDY2NFVm9kSC8yZ0FNQXdFQUFoRURFUUEvQU40b2lJQWlJZ0NJaUFJaUlBaUlnQ0lpQUlpSUFpSWdDSWlBSWlJQWlJZ0NJaUFJaUlBaUlnQ0lpQUlpSUFpSWdDSWlBSWlJQWlJZ0NJaUFJaUlBaUlnQ0lpQUlpSUFpSWdDSWlBSWlJQWlJZ0NJaUFJaUlBaUlnQ0lpQUlpSUFpSWdDSWlBSWlJQWlJZ0NJaUE4MVhLNWpkY0RXRGMzRGFXOFk1eHdya3lGek5lSWczRjJuOHJ1WmQ2ci9BSmJ6U28xRGxUem03ZUtOKzNxejcxS0t1UmJzUzFKVmlWaExidElKYTRIMm1PSENDRjFVTmZyUGRDK3pabzdhd3pzNXA0SHR2c1Bkd0tNeHd1cHBSVnhpN0hFTW1ieWgrVjNTdU5JNFRKRXl0cFQ2NkFhN0NQenhuMm1uankyS2FndkorNWpNeVM4LzFKeEJMbDVTNWhkc2ZiTnpEeE9IZU90Y1lqaUJnYzE4bi9ydklhNTM5Ri81U2YwazVYMkczR285em9zU29yc09vL2hCejFvWm04R2YvWkZkT2pPTENzaGtwYXB2cjR3WTVtRzIvR1kxZ21UcStuTVppRDA4YmlkTmVvcHFxVjFPVHZtNzBtSHJ0bTFVZjAweFAzdVQ1UEJiSTBicjNRenZ3bXJPdnFqMURuV1BsWWlDZFU5WDNDb1dudWk1b3B0YU1FMDhwSlp3N3c3V0g3TGNvT044a2t2QjdsTTc4MGVUMDB4UDN1VDVQQlBUVEUvZTVQazhGQUl0dmhRMlJWbmU1UDhBcHBpZnZjbnllQ2VtbUorOXlmSjRLQVJPRkRaRE85eXowR25tSXh5TmU2WXl0QnpZNE4xWERhTGdaSG5XNGNBeHFHcmhFMEp5T1RtL21ZN2FDdm5kVGVpZWtNbEZPSkczTWJzcEdjdHZIekVjSzE2K0dVbGVLMUowNmpUMVBvQlZUVEttcm10TTlKTzhCb3U2TVdPWEcyNDdsWTZLcVpMRzJXTjJzeDdRNXA0d3U5Y3FVYnF4MEtGWGhUVTdKK0ROTGVsZUllOHYrWHdUMHJ4RDNsL3krQ205UDlHdkpPTlRDMzFUenZ3T0JqdVBvSlZLWE9tNXdkbXoydUZqaGNSVFU0d1hvaWE5SzhROTVmOEFMNEo2VjRoN3kvNWZCUXFLR2VXNXNmQ1VPNHZSRTE2VjRoN3kvd0NYd1dVZWwxZUNENXc0MlBBUTBnOU9TZzBXYzh0dzhIUTdpOUVibzBYMGhqcTQ5WWIyVnZ0czR1Y2NZVTR0RDRWaU1sUEsyYUkyYzA5VGh0Qlc2TUV4U09waGJMSHdFWmphMTIwRmJ0R3JuVm56UEo5cWRuUERTelIrbC8xNEVpaUlyemtuQ2pzZW9mTFFPYVBhRytiMGovcktTWEN5blozTU5YVml1WUJWTnFhZDFQTG1XdDFlY3QySHBDOE9pVmE2S1Y5RktlQngxUDNiUjBFWnJwbWQ1clhFakpoZGYreDNEMy9SWWFiUW1Lb2pxR1pGNHZmOWJiZmF5MjFGTjVlajE4eW03dGZZODBVMy93Q2JpVG96bFRUa0htQVBBZjdYWEhRc2RObzMwVmJGaUVJeWtObmpZU0FMZy91Yi9GZXJUeUpzOUhEVnRIczJ2ek5kWUVkVGdFYTd6N0IzdE9jc0RldldabU8xdVhXVkpkSnY4TXh1dk5HRzZEVENlbGh4R25PK2hzNE9IRHFFanZhNzdxVW9wSXNXdzR0ZllPY05WM0hISzNnY080OWFoTnplc0UxUE5ReTV0MVNXajlEcmh3NmpuL2NvdmM3clhVdGUra2tPVXJqR2VMeWpMMlBXTGpyQ3c0TlJjZXNkVitES2xxbnVVU3VwSHd5UGlrRm54dUxYRG5IMUM2RnNUZGV3Z05sanEyaktVYWovQU43UnZUMXQvaXRkcmVwVHp3VWlpY2JPd1JFVmhFSWlJRFl1NVBwQ1d5R2lrTzlrdTZMOUw4eTV2UVJuMWM2MnN2bW1tbmRHOXNqRFo3SEJ3UEVRdm9YQjhXaW5nam5EbWp5akE2MXhrZG83YnJtWXVsYVdaZFRab3l1ck05ZFhUTWtZNk40dTE0TFNPTUxTV1BZVzZtcUh3dXoxVGRwNVRUd0ZidjhBT0djdHZhRlNkMHVoWkpDMm9ZV2wwUjFYV0l1V09zTzQyN1Z6TVJUY28zMk85Mk5pK0ZYeU42UzkraHJWRVJjODltRVJFQVZuMEV4dzA5UUdQTm9aaUd1NG11L0s3N0tzTGxTaEp4ZDBVNGloR3RUY0pkVDZEdWlndERjVU5SU01jNDNlMGFqdWtiZXNXUFd1VjFJdTZ1ajUvVnB1bk53bHpST29pTEpXVkRUZUhmUnY0d1c5bHJmVllZNTYzRFk1ZHNaRiswc1BmWmU3VFp2cW1IaWsrb0s4RUcrd3VZY2tuNnRLMjRQNVl2WmxFdnFhT25CZlhZYlV3SFBVRGlQNU4rWUtPM01xcTAwc0o0Skk5YTNPMy9UdTVTR2dKdVoyYkhNYjNhdys2cm1najlYRUloeDY3ZmtkNEs1clNvdk1oZldMT2pSbVR6WEZXc3Zab21mQ2VjRzRIZlpZYWR0TlBpcnBXWkc4YzdlbXd2M3RLeDBrUGs4VmtJL0xVTmQvRXIzN3JiTFZjUjQ0UDhuS2ExbkY3b2o5cjhHWExUdW1iVVlaSzV1ZG1ObmIxV1A4YjlxMFd0K1lSNnpDbUE1NjlKcS9KWmFEV01KcG1qc3lWYm93aUl0d3BDSWlBSWlJQXNvM1dJUEVWaWlqS0thc3lkT2JqSlNYUmt1aTRqT1E2QXVWNDJTczJqNnBUbG1nbnVnaUlva3dpSWdMNXVWMWxwSm9TY25ORHgwakkvVWRpS0szT3BDSzlnNVRIanV2OWx5dWpoM2VCNHZ0dUNoaW05MWY5RzNVUkZjY2tyV216L1ZSamplVDJBK0s4RU85d3VZOG8vNU5DejAybXZKR3prdEo3ZjhBNHNkSWZVNGZGRHRlUmNkcmoza0xiZ3ZsaXQyVVMrcHM2TkFzak84OERXRC9BQ1AyVmMwRFlYWWhFZUlQY2ZnZDl5ckpoZnFNTHFKamtaQVFQNER2SlVmdVowM3JKcDNaTmpZRzM2Yms5elZjNWFWSDVFRXRZb3Iya0k4cGlzZ0dldFV0WjN0SDJYdjNXNUwxY2JlVEFPOXpsNTlFb2pVNG8yUWpMeWo1M2N3RnlQbUlYVnBtVFZZczZKbWUvWkEzc0FQelhWaTBtbHNqSDJ2eFpzakMvVllVd25MVW85YjVMclFhM2x1Z1ZiYWZEWkd0eUwydGdZT213UHlnclJxamhOVktXN00xdWlDSWkzQ2tJaUlBaUtVb3RIYTJaZ2tpcDVKSTNYczRESTJKSDFDdzVKY3hhL0lpMFUzNkk0ajdwTDhLd24wWnJvMmw4bE5JeU52dE9Jc0FGQ1ZXQ1RkeXluVGxLU2lselpqR01oMExsRVhqcE84bXo2cFRqbGlsc2dpSXNFZ2lJZ0xSdWN4M3IybmtzZWU2MzNSUys1WFI3NmFjaklBUnQ3eTc3SXVqaGxhQjR2dHFhbmluNEszN05qTGhGRmFTVjNrb1RiMjVONDM3bnNWOFZkMk9RM1pYSzlHenp1dUo0V0IxenhhamJmWDdycTB2a2RQVnNwMlpsbG0vM096UGRaVGVHMDdhT2xkTEo3WkdzNy9Gdi9jYThlaVZBYnZyWnZhZmN0dnNHZXM1YlNrazgyMmlLYlBsdVIyNkRPMkduaG8yYmN6KzF2QjJrOXl5ckdlWVlPV25LYWNXUEhyUDRSMU0raTY4SXBqaUZlK3JlUDhBeDRYQU1CNEhXOWtEK1I2UXVyU1Zyc1J4QmxIR2ZVMCtjamh3QW0ydDE1QnZTcHEya0gwMVpqZCtTTXRBS1Z0TFJ6VjhvOXBwTGYyTnY5VDlGRjdtZUhPbnE1SzJRWEVaSkI0NVgzK2dKN1FwamRCcUNXd1lYU3QzOHBiZG8yTWJiVkhSY1gvdFVuV1R3NFJod2FMT2VCWm8yeXpIaFBSZlBvQ3c1dHB0YzVleGxKYWJJcHU2MWpJa25aU3NPOXA4Mzg4amdQbzM2bFVGZGxSTTU3blBlUzV6M0Z4TzBrcnJXOVNoa2lvbEVuZDNDSWlzSWhFUkFlaWdwSHpTc2hqRjN5T0RRT2MvWmZST0YwTFlJWTRXZXpHd05IUGJiMnFnYmxPalphUFBwVzV1QmJDT0p2QTUvWHdkcTJTdVhpNnVhV1ZkRGFveHNyaFVQZFB4V3pHVXJUbTg2NytabzlrZHYwVnh4U3ZaQkU2YVEyYXdYNXp4QWM5MXBIRmE5OVJNK1ovdFBkZTNFTmc3RnpNUlV5eHR1ZWc3RndicTFlSStVZmM4aUlpMEQyQVJFUUJjZ1h5R1o0RndyanVlWUNaWmZPSkI2cUk3M2lmSi9yNnFVSXVUc2ErS3hFYUZKMUpGNzBVd3Z6YWxqalB0MjFuZnVPWjdPRHFSVENMcUpXVmtlQXFUZFNibStiT0hFQVhQQUZDMGxPWjV2T1hqMWJNb1duYitzcVZxSWRjYXA5bjh3NVhOMExLVmhMYk5PcnN2eGRDbW5ia1Z0WElURUlUVnpDTGdwNFhYa1A4QVVmeVIwTEhTSXZsMWFHbjNycEI2eHc0SVlmRThBSFNwdUdGckdhakFBQU1objNyR2twR3N1ZUY3enJQY2VGNSt3MldVbE8zbHlJNVNKcjNDanBtd1V6THpQOVhDM0s3bjdYRyt3Y0pLNjhMb1ljT3BIeVNIV2Y3Y3IvelNTSElBY2Vac09sVEVWSVBLR1YyK2tJMVFkakdjbHYxSi93QkxpYWpENUdQZm0yTTNZM1pyOG84Wkd4TS9UMU01U3VZUFJDbkUySjE1RFo1UnJHK2ZrR2NEV0RqTnJEdVdydExkSXBLMmN5T3UyTnU5alp5RzdUemtsYkEweTBjeE91a3NIeE1wMkhlTTFuWm5sT05zejlGVy93QUw2L2x3L0U3d1c1UWxUWHpTZXZzVVRVbm9sb1VkRmVQd3ZyK1hEOFR2QlB3dnIrWEQ4VHZCYlB4RlB2RmZEbHNVZEZlUHd2citYRDhUdkJQd3ZyK1hEOFR2QlBpS2ZlSERsc1VkV3ZRVFJOMVpMcnlBaW1qTytQOEFVUElCK3Fsc08zTHFreU44dkpHMksrKzFDUzRqaUZ4M3JhTkJSeHd4dGlpYUdSc0ZnQnNWRmZGSkswR1dRcE85MmQwY1lhQTFvQWFCWUFaQUFKTElHZ3VjUUFCY2s4QUN6S3F1bDJGMTFWNnFGekdRYmJ1T3RJZWV3NE9aY3VUYVYxcWIxQ25HYzFHVHlyZGxMMDAwa05WSnFSbTBFWjN2Nnp5ajlsV1ZiL3c5cmVWRjhUdkJQdzlyZVZGOFR2QmFFcWRTVHUwZXhvWXpCVUthaENhc2lvSXJmK0h0YnlvdmlkNEorSHRieW92aWQ0S1BCbnNYZnllRjc2S2dpdC80ZTF2S2krSjNnc290enlySkdzK01Odm1RWEVnZEZsbmd6Mk1QdFBDOTlFSm81Z2NsWEtHTnlZTTN1Mk5iNHJjdEJSeHd4dGlqYnFzWUxBTHB3YkNvcWFJUlJDd0hDZHJqeGtyM3JjcFVzaThUeTNhT1BsaXA2YVJYTC9UbEVSWEhOQ0lpQUlpSUFpSWdDSWlBSWlJQWlJZ0NJaUFJaUlBaUlnQ0lpQUlpSUFpSWdDSWlBSWlJQWlJZ0NJaUFJaUlBaUlnQ0lpQUlpSUFpSWdDSWlBSWlJQWlJZ0NJaUFJaUlBaUlnQ0lpQUlpSUFpSWdDSWlBSWlJQWlJZ0NJaUFJaUlBaUlnQ0lpQUlpSUFpSWdDSWlBSWlJQWlJZ0NJaUFJaUlBaUlnQ0lpQUlpSUFpSWdDSWlBSWlJQWlJZ0NJaUEvOWs9XCIgLz5cbiAgICAgICAgPC9kZWZzPlxuICAgICAgPC9zdmc+XG5cbiAgICAgIDwhLS0gVGl0bGUgKyBvcHRpb25hbCBiYWRnZSAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtaXRlbXMtZW5kIGNxYS1nYXAtMyBjcWEtbWluLXctMCBjcWEtaGlkZGVuIG1kOmNxYS1mbGV4XCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImNxYS10cnVuY2F0ZSBjcWEtdGV4dC1bIzIyMjIzQl0gY3FhLWZvbnQtZXh0cmFib2xkIGNxYS10ZXh0LVszMnB4XSBjcWEtZm9udC1udW5pdG8tc2FucyBjcWEtbGVhZGluZy1bMV1cIj5cbiAgICAgICAgICB7eyB0aXRsZSB9fTwvZGl2PlxuICAgICAgICA8c3BhbiAqbmdJZj1cImJhZGdlVGV4dFwiXG4gICAgICAgICAgY2xhc3M9XCJjcWEtcHgtMiBjcWEtcHktWzJweF0gY3FhLXJvdW5kZWQtbGcgY3FhLXRleHQtWzEycHhdIGNxYS1mb250LW1lZGl1bSBjcWEtbGVhZGluZy00IGNxYS13aGl0ZXNwYWNlLW5vd3JhcCBjcWEtdGV4dC1bIzAwN0E1NV0gY3FhLWJnLVsjRDBGQUU1XSBjcWEtYm9yZGVyIGNxYS1ib3JkZXItWyNBNEY0Q0ZdXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJiYWRnZUNsYXNzXCI+e3sgYmFkZ2VUZXh0IH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIFJpZ2h0IGNvbnRyb2xzL2FjdGlvbnMgLS0+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0zIGNxYS1mbGV4LTEgY3FhLWp1c3RpZnktZW5kXCI+XG4gICAgICA8IS0tIE9wdGlvbmFsIHdvcmtzcGFjZSBzZWxlY3QgLS0+XG4gICAgICA8ZGl2ICpuZ0lmPVwic2hvd1dvcmtzcGFjZVNlbGVjdG9yICYmIHdvcmtzcGFjZU9wdGlvbnM/Lmxlbmd0aFwiIGNsYXNzPVwiaGVhZGVyLWRyb3Bkb3duXCI+XG4gICAgICAgIDxjcWEtZHluYW1pYy1zZWxlY3QgW2Zvcm1dPVwid29ya3NwYWNlRm9ybVwiIFtjb25maWddPVwid29ya3NwYWNlQ29uZmlnXCIgKHNlbGVjdENsaWNrKT1cIndvcmtzcGFjZVNlbGVjdENsaWNrLmVtaXQoKVwiPlxuICAgICAgICA8L2NxYS1keW5hbWljLXNlbGVjdD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIEhlbHAgaWNvbiBidXR0b24gLS0+XG4gICAgICA8YnV0dG9uIFxuICAgICAgICAqbmdJZj1cInNob3dIZWxwSWNvblwiIFxuICAgICAgICBtYXQtaWNvbi1idXR0b24gXG4gICAgICAgIFttYXRUb29sdGlwXT1cImhlbHBJY29uVG9vbHRpcCB8fCAnSGVscCdcIlxuICAgICAgICBbbWF0VG9vbHRpcERpc2FibGVkXT1cIiFoZWxwSWNvblRvb2x0aXBcIlxuICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJiZWxvd1wiXG4gICAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCIzMDBcIlxuICAgICAgICAoY2xpY2spPVwiaGVscEljb25DbGljay5lbWl0KClcIiBcbiAgICAgICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyXCI+XG4gICAgICAgIDxtYXQtaWNvbiBzdHlsZT1cImhlaWdodDogMzZweDsgd2lkdGg6IDM2cHg7IHBvaW50ZXItZXZlbnRzOiBub25lO1wiPlxuICAgICAgICAgIDxzdmcgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgdmlld0JveD1cIjAgMCAzNiAzNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgPHBhdGggZD1cIk0wIDE4QzAgOC4wNTg4OCA4LjA1ODg4IDAgMTggMEMyNy45NDExIDAgMzYgOC4wNTg4OCAzNiAxOEMzNiAyNy45NDExIDI3Ljk0MTEgMzYgMTggMzZDOC4wNTg4OCAzNiAwIDI3Ljk0MTEgMCAxOFpcIiBmaWxsPVwiI0Q4RDlGQ1wiIGZpbGwtb3BhY2l0eT1cIjAuM1wiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTguMDAwMSAyOC40MTYzQzIzLjk4MzIgMjguNDE2MyAyOC44MzM0IDIzLjc1MjYgMjguODMzNCAxNy45OTk3QzI4LjgzMzQgMTIuMjQ2NyAyMy45ODMyIDcuNTgzMDEgMTguMDAwMSA3LjU4MzAxQzEyLjAxNyA3LjU4MzAxIDcuMTY2NzUgMTIuMjQ2NyA3LjE2Njc1IDE3Ljk5OTdDNy4xNjY3NSAyMy43NTI2IDEyLjAxNyAyOC40MTYzIDE4LjAwMDEgMjguNDE2M1pcIiBzdHJva2U9XCIjM0Y0M0VFXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTQuODQ3NCAxNC44NzUxQzE1LjEwMjEgMTQuMTc4OSAxNS42MDQ4IDEzLjU5MTkgMTYuMjY2NSAxMy4yMThDMTYuOTI4MiAxMi44NDQgMTcuNzA2MiAxMi43MDczIDE4LjQ2MjcgMTIuODMyMUMxOS4yMTkyIDEyLjk1NjkgMTkuOTA1MyAxMy4zMzUgMjAuMzk5NiAxMy44OTk2QzIwLjg5MzkgMTQuNDY0MiAyMS4xNjQ0IDE1LjE3ODggMjEuMTYzMiAxNS45MTY4QzIxLjE2MzIgMTguMDAwMSAxNy45MTMyIDE5LjA0MTggMTcuOTEzMiAxOS4wNDE4XCIgc3Ryb2tlPVwiIzNGNDNFRVwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTE4IDIzLjIwOEgxOC4wMVwiIHN0cm9rZT1cIiMzRjQzRUVcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2Rhc2hib2FyZHMvZGFzaGJvYXJkLWhlYWRlci9kYXNoYm9hcmQtaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZGFzaGJvYXJkcy9kYXNoYm9hcmQtaGVhZGVyL2Rhc2hib2FyZC1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ2xJLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBaUJ4RCxNQUFNLE9BQU8sd0JBQXdCO0lBUHJDO1FBUVcsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUVuQixlQUFVLEdBQVcsNkJBQTZCLENBQUM7UUFDbkQsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFDekIsZUFBVSxHQUFZLElBQUksQ0FBQztRQUMzQixhQUFRLEdBQVksSUFBSSxDQUFDO1FBRXpCLGlCQUFZLEdBQVksSUFBSSxDQUFDO1FBQzdCLG9CQUFlLEdBQVcsTUFBTSxDQUFDO1FBQ2hDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUMxQyxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUM3QixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFbkQseUNBQXlDO1FBQ2hDLHFCQUFnQixHQUF5QixFQUFFLENBQUM7UUFDNUMseUJBQW9CLEdBQVcsV0FBVyxDQUFDO1FBQzNDLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUVuQyxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFDbkMsd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBQzlDLDRE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QUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBRUcscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDSSxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRSxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0ksb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLG9CQUFvQjtzQkFBN0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEeW5hbWljU2VsZWN0RmllbGRDb25maWcgfSBmcm9tICcuLi8uLi9keW5hbWljLXNlbGVjdC9keW5hbWljLXNlbGVjdC1maWVsZC5jb21wb25lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEhlYWRlclNlbGVjdE9wdGlvbiB7XG4gIGlkPzogYW55O1xuICB2YWx1ZT86IGFueTtcbiAgbmFtZT86IHN0cmluZztcbiAgbGFiZWw/OiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS1kYXNoYm9hcmQtaGVhZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Rhc2hib2FyZC1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDogeyBjbGFzczogJ2NxYS11aS1yb290JyB9XG59KVxuZXhwb3J0IGNsYXNzIERhc2hib2FyZEhlYWRlckNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgYmFkZ2VUZXh0Pzogc3RyaW5nO1xuICBASW5wdXQoKSBiYWRnZUNsYXNzOiBzdHJpbmcgPSAnYmctWyNEMUZBRTVdIHRleHQtWyMwNjVGNDZdJztcbiAgQElucHV0KCkgaGVhZGVyQ2xhc3M6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBzaG93SGVhZGVyOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd0xvZ286IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBsb2dvVXJsPzogc3RyaW5nO1xuICBASW5wdXQoKSBzaG93SGVscEljb246IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBoZWxwSWNvblRvb2x0aXA6IHN0cmluZyA9ICdIZWxwJztcbiAgQE91dHB1dCgpIGhlbHBJY29uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBJbnB1dCgpIHNob3dQbHVzSWNvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBAT3V0cHV0KCkgcGx1c0ljb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvLyBPcHRpb25hbCB3b3Jrc3BhY2Ugc2VsZWN0IG9uIHRoZSByaWdodFxuICBASW5wdXQoKSB3b3Jrc3BhY2VPcHRpb25zOiBIZWFkZXJTZWxlY3RPcHRpb25bXSA9IFtdO1xuICBASW5wdXQoKSB3b3Jrc3BhY2VQbGFjZWhvbGRlcjogc3RyaW5nID0gJ1dvcmtzcGFjZSc7XG4gIEBJbnB1dCgpIHdvcmtzcGFjZURpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHdvcmtzcGFjZVZhbHVlPzogYW55O1xuICBASW5wdXQoKSB3b3Jrc3BhY2VNdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSB3b3Jrc3BhY2VTZWFyY2hhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIC8vIFNlcnZlci1zaWRlIHNlYXJjaC9sb2FkLW1vcmUgc3VwcG9ydCBmb3Igd29ya3NwYWNlIHNlbGVjdFxuICBASW5wdXQoKSB3b3Jrc3BhY2VTZXJ2ZXJTZWFyY2g6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgd29ya3NwYWNlSGFzTW9yZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSB3b3Jrc3BhY2VJc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgd29ya3NwYWNlT3B0aW9uU3R5bGU6ICdjaGVja21hcmsnIHwgJ2NoZWNrYm94JyA9ICdjaGVja2JveCc7XG4gIEBJbnB1dCgpIHdvcmtzcGFjZVNob3dTZWxlY3RBbGw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgd29ya3NwYWNlQ2xvc2VPblNlbGVjdDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSB3b3Jrc3BhY2VPblNlYXJjaD86IChxdWVyeTogc3RyaW5nKSA9PiB2b2lkO1xuICBASW5wdXQoKSB3b3Jrc3BhY2VPbkxvYWRNb3JlPzogKHF1ZXJ5Pzogc3RyaW5nKSA9PiB2b2lkO1xuICBAT3V0cHV0KCkgd29ya3NwYWNlU2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSB3b3Jrc3BhY2VMb2FkTW9yZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBASW5wdXQoKSBzaG93V29ya3NwYWNlU2VsZWN0b3I6IGJvb2xlYW4gPSB0cnVlO1xuICBAT3V0cHV0KCkgd29ya3NwYWNlVmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHdvcmtzcGFjZVNlbGVjdENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHdvcmtzcGFjZUZvcm06IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgIHdvcmtzcGFjZTogbmV3IEZvcm1Db250cm9sKCksXG4gIH0pO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3luY0Zvcm1Gcm9tSW5wdXQoKTtcbiAgICB0aGlzLndvcmtzcGFjZUZvcm0uZ2V0KCd3b3Jrc3BhY2UnKT8udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodikgPT4ge1xuICAgICAgdGhpcy53b3Jrc3BhY2VWYWx1ZSA9IHY7XG4gICAgICB0aGlzLndvcmtzcGFjZVZhbHVlQ2hhbmdlLmVtaXQodik7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhfY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMuc3luY0Zvcm1Gcm9tSW5wdXQoKTtcbiAgfVxuXG4gIGdldCB3b3Jrc3BhY2VDb25maWcoKTogRHluYW1pY1NlbGVjdEZpZWxkQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAga2V5OiAnd29ya3NwYWNlJyxcbiAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLndvcmtzcGFjZVBsYWNlaG9sZGVyLFxuICAgICAgZGlzYWJsZWQ6IHRoaXMud29ya3NwYWNlRGlzYWJsZWQsXG4gICAgICBtdWx0aXBsZTogdGhpcy53b3Jrc3BhY2VNdWx0aXBsZSxcbiAgICAgIHNlYXJjaGFibGU6IHRoaXMud29ya3NwYWNlU2VhcmNoYWJsZSxcbiAgICAgIHNlcnZlclNlYXJjaDogdGhpcy53b3Jrc3BhY2VTZXJ2ZXJTZWFyY2gsXG4gICAgICBoYXNNb3JlOiB0aGlzLndvcmtzcGFjZUhhc01vcmUsXG4gICAgICBpc0xvYWRpbmc6IHRoaXMud29ya3NwYWNlSXNMb2FkaW5nLFxuICAgICAgb3B0aW9uU3R5bGU6IHRoaXMud29ya3NwYWNlT3B0aW9uU3R5bGUsXG4gICAgICBzaG93U2VsZWN0QWxsOiB0aGlzLndvcmtzcGFjZVNob3dTZWxlY3RBbGwsXG4gICAgICBjbG9zZU9uU2VsZWN0OiB0aGlzLndvcmtzcGFjZUNsb3NlT25TZWxlY3QsXG4gICAgICBvblNlYXJjaDogKHE6IHN0cmluZykgPT4ge1xuICAgICAgICB0cnkgeyB0aGlzLndvcmtzcGFjZU9uU2VhcmNoPy4ocSk7IH0gY2F0Y2gge31cbiAgICAgICAgdGhpcy53b3Jrc3BhY2VTZWFyY2guZW1pdChxKTtcbiAgICAgIH0sXG4gICAgICBvbkxvYWRNb3JlOiAocT86IHN0cmluZykgPT4ge1xuICAgICAgICB0cnkgeyB0aGlzLndvcmtzcGFjZU9uTG9hZE1vcmU/LihxKTsgfSBjYXRjaCB7fVxuICAgICAgICB0aGlzLndvcmtzcGFjZUxvYWRNb3JlLmVtaXQocSB8fCAnJyk7XG4gICAgICB9LFxuICAgICAgc2VsZWN0ZWRWYWx1ZTogdGhpcy53b3Jrc3BhY2VWYWx1ZSxcbiAgICAgIG9wdGlvbnM6IHRoaXMud29ya3NwYWNlT3B0aW9ucyxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzeW5jRm9ybUZyb21JbnB1dCgpOiB2b2lkIHtcbiAgICBjb25zdCBjdHJsID0gdGhpcy53b3Jrc3BhY2VGb3JtLmdldCgnd29ya3NwYWNlJyk7XG4gICAgaWYgKCFjdHJsKSByZXR1cm47XG4gICAgY29uc3QgdmFsID0gdGhpcy53b3Jrc3BhY2VWYWx1ZTtcbiAgICBjb25zdCBub3JtYWxpemVkID0gdGhpcy53b3Jrc3BhY2VNdWx0aXBsZVxuICAgICAgPyBBcnJheS5pc0FycmF5KHZhbCkgPyB2YWwgOiAodmFsICE9IG51bGwgPyBbdmFsXSA6IFtdKVxuICAgICAgOiAoQXJyYXkuaXNBcnJheSh2YWwpID8gKHZhbC5sZW5ndGggPyB2YWxbMF0gOiB1bmRlZmluZWQpIDogdmFsKTtcbiAgICBjdHJsLnNldFZhbHVlKG5vcm1hbGl6ZWQsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgfVxufVxuXG5cbiIsIjxkaXYgY2xhc3M9XCJjcWEtdWktcm9vdFwiICpuZ0lmPVwic2hvd0hlYWRlclwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJjcWEtdy1mdWxsIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtYmctd2hpdGUgY3FhLXByLTYgY3FhLXBsLTIgbGc6Y3FhLXB4LTYgbGc6Y3FhLXB5LVs2cHhdIGNxYS1weS0yIGNxYS1ib3JkZXItYiBjcWEtYm9yZGVyLWRlZmF1bHQgY3FhLXNoYWRvdy1oZWFkZXJcIlxuICAgIFtuZ0NsYXNzXT1cImhlYWRlckNsYXNzXCI+XG4gICAgPCEtLSBMZWZ0IGJyYW5kaW5nIGJsb2NrIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMiBjcWEtbWluLXctMFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1wci00IGxnOmNxYS1oaWRkZW4gY3FhLWdhcC0yIG1kOmNxYS1mbGV4IGNxYS1oaWRkZW5cIj5cbiAgICAgICAgPCEtLSA8Y3FhLWJ1dHRvbiB2YXJpYW50PVwiZmlsbGVkXCIgaWNvbj1cIlwiIFtjdXN0b21DbGFzc109XCInIWNxYS1yb3VuZGVkLVsxMHB4XSAhY3FhLXAtWzdweF0gIWNxYS1taW4tdy1bNDdweF0nXCI+XG4gICAgICAgICAgPHN2ZyB3aWR0aD1cIjMxXCIgaGVpZ2h0PVwiMjJcIiB2aWV3Qm94PVwiMCAwIDMxIDIyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTUuMTY2NzUgMTFIMjUuODMzNFwiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS44MzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTUuMTY2NzUgMTYuNUgyNS44MzM0XCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIxLjgzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNNS4xNjY3NSA1LjVIMjUuODMzNFwiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS44MzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvY3FhLWJ1dHRvbj4gLS0+XG4gICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJjcWEtYm9yZGVyLWwgY3FhLWJvcmRlci1wcmltYXJ5LXN1cmZhY2UgY3FhLWhpZGRlbiBtZDpjcWEtZmxleFwiPjwvc3Bhbj4gLS0+XG4gICAgICAgIDxjcWEtYnV0dG9uICpuZ0lmPVwic2hvd1BsdXNJY29uXCIgdmFyaWFudD1cImZpbGxlZFwiIGljb249XCJcIiBjbGFzcz1cImNxYS1oaWRkZW4gbWQ6Y3FhLWZsZXhcIiBbY3VzdG9tQ2xhc3NdPVwiJyFjcWEtcm91bmRlZC1bMTBweF0gIWNxYS1wLVs3cHhdICFjcWEtbWluLXctWzQ3cHhdJ1wiPlxuICAgICAgICAgIDxzdmcgd2lkdGg9XCIyMlwiIGhlaWdodD1cIjIyXCIgdmlld0JveD1cIjAgMCAyMiAyMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgPHBhdGggZD1cIk00LjU4MzM3IDExSDE3LjQxNjdcIiBzdHJva2U9XCJ3aGl0ZVwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICAgICAgPHBhdGggZD1cIk0xMSA0LjU4MzAxVjE3LjQxNjNcIiBzdHJva2U9XCJ3aGl0ZVwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2NxYS1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gT3B0aW9uYWwgcHJvamVjdGVkIGxvZ28gLS0+XG4gICAgICA8aW1nICpuZ0lmPVwic2hvd0xvZ28gJiYgbG9nb1VybFwiIFtzcmNdPVwibG9nb1VybFwiIGFsdD1cIkxvZ29cIiBjbGFzcz1cImNxYS13LTkgY3FhLWgtOSBjcWEtb2JqZWN0LWNvbnRhaW5cIiAvPlxuICAgICAgPHN2ZyAqbmdJZj1cInNob3dMb2dvICYmICFsb2dvVXJsXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiPlxuICAgICAgICA8cmVjdCB4PVwiMC41XCIgeT1cIjAuNVwiIHdpZHRoPVwiMzFcIiBoZWlnaHQ9XCIzMVwiIHJ4PVwiMTUuNVwiIGZpbGw9XCJ1cmwoI3BhdHRlcm4wXzYzMDNfMjIwMzUpXCIgLz5cbiAgICAgICAgPHJlY3QgeD1cIjAuNVwiIHk9XCIwLjVcIiB3aWR0aD1cIjMxXCIgaGVpZ2h0PVwiMzFcIiByeD1cIjE1LjVcIiBzdHJva2U9XCIjRDhEOUZDXCIgLz5cbiAgICAgICAgPGRlZnM+XG4gICAgICAgICAgPHBhdHRlcm4gaWQ9XCJwYXR0ZXJuMF82MzAzXzIyMDM1XCIgcGF0dGVybkNvbnRlbnRVbml0cz1cIm9iamVjdEJvdW5kaW5nQm94XCIgd2lkdGg9XCIxXCIgaGVpZ2h0PVwiMVwiPlxuICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPVwiI2ltYWdlMF82MzAzXzIyMDM1XCIgdHJhbnNmb3JtPVwic2NhbGUoMC4wMDUpXCIgLz5cbiAgICAgICAgICA8L3BhdHRlcm4+XG4gICAgICAgICAgPGltYWdlIGlkPVwiaW1hZ2UwXzYzMDNfMjIwMzVcIiB3aWR0aD1cIjIwMFwiIGhlaWdodD1cIjIwMFwiIHByZXNlcnZlQXNwZWN0UmF0aW89XCJub25lXCJcbiAgICAgICAgICAgIHhsaW5rOmhyZWY9XCJkYXRhOmltYWdlL2pwZWc7YmFzZTY0LC85ai80QUFRU2taSlJnQUJBUUFBQVFBQkFBRC8yd0NFQUFrR0J3OFNFQk1RRUJBU0VCQVFFQllSRlJVWEZSQVJFUkFTR1JrV0d4WVhHQlVZSGlnc0dCb21HeFVZSVRFaEpTa3JMam91R1NBek9ETXNOeWd0TGpjQkNnb0tEZzBPR3hBUUd5NGRJQ1VyTnkwckt5c3JNRGN0TGlzdkxTMHRLeTB0TFRjdUxTMHRNRGN0TmkwdExTc3RMUzByTFMwckxURXRMUzB0TFMwdExmL0FBQkVJQU1nQXlBTUJJZ0FDRVFFREVRSC94QUFjQUFFQUFnSURBUUFBQUFBQUFBQUFBQUFBQlFZQ0J3RURCQWoveEFCQkVBQUJBd0lDQXdzS0JRVUFBd0VBQUFBQkFBSURCQkVGSVFZU1FRY2lNVkZTWVhHQmthSFJFeFFXSXpKVWtxS3h3UmRDWW5LeVU0TEM0ZkFrTlBFVi84UUFHd0VCQUFJREFRRUFBQUFBQUFBQUFBQUFBQUlEQVFRRkJnZi94QUF1RVFBQ0FRSUVBd1lHQXdBQUFBQUFBQUFBQVFJREVRUVNJVkVUTVVFRlVtR0JrYkVVSWpKQ2NjRVZvZEgvMmdBTUF3RUFBaEVERVFBL0FONG9pSUFpSWdDSWlBSWlJQWlJZ0NJaUFJaUlBaUlnQ0lpQUlpSUFpSWdDSWlBSWlJQWlJZ0NJaUFJaUlBaUlnQ0lpQUlpSUFpSWdDSWlBSWlJQWlJZ0NJaUFJaUlBaUlnQ0lpQUlpSUFpSWdDSWlBSWlJQWlJZ0NJaUFJaUlBaUlnQ0lpQUlpSUFpSWdDSWlBODFYSzVqZGNEV0RjM0RhVzhZNXh3cmt5RnpOZUlnM0YybjhydVpkNnIvQUpielNvMURsVHptN2VLTiszcXo3MUtLdVJic1MxSlZpVmhMYnRJSmE0SDJtT0hDQ0YxVU5mclBkQyt6Wm83YXd6czVwNEh0dnNQZHdLTXh3dXBwUlZ4aTdIRU1tYnloK1YzU3VOSTRUSkV5dHBUNjZBYTdDUHp4bjJtbmp5MkthZ3ZKKzVqTXlTOC8xSnhCTGw1UzVoZHNmYk56RHhPSGVPdGNZamlCZ2MxOG4vcnZJYTUzOUYvNVNmMGs1WDJHM0dvOXpvc1NvcnNPby9oQnoxb1ptOEdmL1pGZE9qT0xDc2hrcGFwdnI0d1k1bUcyL0dZMWdtVHErbk1aaUQwOGJpZE5lb3BxcVYxT1R2bTcwbUhydG0xVWYwMHhQM3VUNVBCYkkwYnIzUXp2d21yT3ZxajFEbldQbFlpQ2RVOVgzQ29XbnVpNW9wdGFNRTA4cEpadzd3N1dIN0xjb09OOGtrdkI3bE03ODBlVDAweFAzdVQ1UEJQVFRFL2U1UGs4RkFJdHZoUTJSVm5lNVA4QXBwaWZ2Y255ZUNlbW1KKzl5Zko0S0FST0ZEWkRPOXl6MEdubUl4eU5lNll5dEJ6WTROMVhEYUxnWkhuVzRjQXhxR3JoRTBKeU9UbS9tWTdhQ3ZuZFRlaWVrTWxGT0pHM01ic3BHY3R2SHpFY0sxNitHVWxlSzFKMDZqVDFQb0JWVFRLbXJtdE05Sk84Qm91Nk1XT1hHMjQ3bFk2S3FaTEcyV04yc3g3UTVwNHd1OWNxVWJxeDBLRlhoVFU3SitETkxlbGVJZTh2K1h3VDByeEQzbC95K0NtOVA5R3ZKT05UQzMxVHp2d09CanVQb0pWS1hPbTV3ZG16MnVGamhjUlRVNHdYb2lhOUs4UTk1ZjhBTDRKNlY0aDd5LzVmQlFxS0dlVzVzZkNVTzR2UkUxNlY0aDd5L3dDWHdXVWVsMWVDRDV3NDJQQVEwZzlPU2cwV2M4dHc4SFE3aTlFYm8wWDBoanE0OVliMlZ2dHM0dWNjWVU0dEQ0VmlNbFBLMmFJMmMwOVRodEJXNk1FeFNPcGhiTEh3RVpqYTEyMEZidEdyblZuelBKOXFkblBEU3pSK2wvMTRFaWlJcnprbkNqc2VvZkxRT2FQYUcrYjBqL3JLU1hDeW5aM01OWFZpdVlCVk5xYWQxUExtV3QxZWN0MkhwQzhPaVZhNktWOUZLZUJ4MVAzYlIwRVpycG1kNXJYRWpKaGRmK3gzRDMvUllhYlFtS29qcUdaRjR2ZjliYmZheTIxRk41ZWoxOHltN3RmWTgwVTMvd0NiaVRvemxUVGtIbUFQQWY3WFhIUXNkTm8zMFZiRmlFSXlrTm5qWVNBTGcvdWIvRmVyVHlKczlIRFZ0SHMydnpOZFlFZFRnRWE3ejdCM3RPY3NEZXZXWm1PMXVYV1ZKZEp2OE14dXZOR0c2RFRDZWxoeEduTytoczRPSERxRWp2YTc3cVVvcElzV3c0dGZZT2NOVjNISEszZ2NPNDlhaE56ZXNFMVBOUXk1dDFTV2o5RHJodzZqbi9jb3ZjN3JYVXRlK2trT1VyakdlTHlqTDJQV0xqckN3NE5SY2VzZFYrREtscW51VVN1cEh3eVBpa0ZueHVMWERuSDFDNkZzVGRld2dObGpxMmpLVWFqL0FON1J2VDF0L2l0ZHJlcFR6d1VpaWNiT3dSRVZoRUlpSURZdTVQcENXeUdpa085a3U2TDlMOHk1dlFSbjFjNjJzdm1tbW5kRzlzakRaN0hCd1BFUXZvWEI4V2luZ2puRG1qeWpBNjF4a2RvN2JybVl1bGFXWmRUWm95dXJNOWRYVE1rWTZONHUxNExTT01MU1dQWVc2bXFId3V6MVRkcDVUVHdGYnY4QU9HY3R2YUZTZDB1aFpKQzJvWVdsMFIxWFdJdVdPc080MjdWek1SVGNvMzJPOTJOaStGWHlONlM5K2hyVkVSYzg5bUVSRUFWbjBFeHcwOVFHUE5vWmlHdTRtdS9LNzdLc0xsU2hKeGQwVTRpaEd0VGNKZFQ2RHVpZ3REY1VOUlNNYzQzZTBhanVrYmVzV1BXdVYxSXU2dWo1L1ZwdW5Od2x6Uk9vaUxKV1ZEVGVIZlJ2NHdXOWxyZlZZWTU2M0RZNWRzWkYrMHNQZlplN1RadnFtSGlrK29LOEVHK3d1WWNrbjZ0SzI0UDVZdlpsRXZxYU9uQmZYWWJVd0hQVURpUDVOK1lLTzNNcXEwMHNKNEpJOWEzTzMvVHU1U0dnSnVaMmJITWIzYXcrNnJtZ2o5WEVJaHg2N2ZrZDRLNXJTb3ZNaGZXTE9qUm1UelhGV3N2Wm9tZkNlY0c0SGZaWWFkdE5QaXJwV1pHOGM3ZW13djN0S3gwa1BrOFZrSS9MVU5kL0VyMzdyYkxWY1I0NFA4bkthMW5GN29qOXI4R1hMVHVtYlVZWks1dWRtTm5iMVdQOGI5cTBXdCtZUjZ6Q21BNTY5SnEvSlphRFdNSnBtanN5VmJvd2lJdHdwQ0lpQUlpSUFzbzNXSVBFVmlpaktLYXN5ZE9iakpTWFJrdWk0ak9RNkF1VjQyU3MyajZwVGxtZ251Z2lJb2t3aUlnTDV1VjFscEpvU2NuTkR4MGpJL1VkaUtLM09wQ0s5ZzVUSGp1djlseXVqaDNlQjR2dHVDaGltOTFmOUczVVJGY2Nrcldtei9WUmpqZVQyQStLOEVPOXd1WThvLzVOQ3owMm12Skd6a3RKN2Y4QTRzZElmVTRmRkR0ZVJjZHJqM2tMYmd2bGl0MlVTK3BzNk5Bc2pPODhEV0QvQUNQMlZjMERZWFloRWVJUGNmZ2Q5eXJKaGZxTUxxSmprWkFRUDREdkpVZnVaMDNySnAzWk5qWUczNmJrOXpWYzVhVkg1RUV0WW9yMmtJOHBpc2dHZXRVdFozdEgyWHYzVzVMMWNiZVRBTzl6bDU5RW9qVTRvMlFqTHlqNTNjd0Z5UG1JWFZwbVRWWXM2Sm1lL1pBM3NBUHpYVmkwbWxzakgydnhac2pDL1ZZVXduTFVvOWI1THJRYTNsdWdWYmFmRFpHdHlMMnRnWU9td1B5Z3JScWpoTlZLVzdNMXVpQ0lpM0NrSWlJQWlLVW90SGEyWmdraXA1SkkzWHM0REkySkgxQ3c1SmN4YS9JaTBVMzZJNGo3cEw4S3duMFpybzJsOGxOSXlOdnRPSXNBRkNWV0NUZHl5blRsS1NpbHpaakdNaDBMbEVYanBPOG16NnBUamxpbHNnaUlzRWdpSWdMUnVjeDNyMm5rc2VlNjMzUlMrNVhSNzZhY2pJQVJ0N3k3N0l1amhsYUI0dnRxYW5pbjRLMzdOakxoRkZhU1Yza29UYjI1TjQzN25zVjhWZDJPUTNaWEs5R3p6dXVKNFdCMXp4YWpiZlg3cnEwdmtkUFZzcDJabGxtLzNPelBkWlRlRzA3YU9sZExKN1pHczcvRnYvY2E4ZWlWQWJ2clp2YWZjdHZzR2VzNWJTa2s4MjJpS2JQbHVSMjZETzJHbmhvMmJjeisxdkIyazl5eXJHZVlZT1duS2FjV1BIclA0UjFNK2k2OElwamlGZStyZVA4QXg0WEFNQjRIVzlrRCtSNlF1clNWcnNSeEJsSEdmVTArY2pod0FtMnQxNUJ2U3BxMmtIMDFaamQrU010QUtWdExSelY4bzlwcExmMk52OVQ5RkY3bWVIT25xNUsyUVhFWkpCNDVYMytnSjdRcGpkQnFDV3dZWFN0MzhwYmRvMk1iYlZIUmNYL3RVbldUdzRSaHdhTE9lQlpvMnl6SGhQUmZQb0N3NXRwdGM1ZXhsSmFiSXB1NjFqSWtuWlNzTzlwODM4OGpnUG8zNmxVRmRsUk01N25QZVM1ejNGeE8wa3JyVzlTaGtpb2xFbmQzQ0lpc0loRVJBZWlncEh6U3NoakYzeU9EUU9jL1pmUk9GMExZSVk0V2V6R3dOSFBiYjJxZ2JsT2paYVBQcFc1dUJiQ09KdkE1L1h3ZHEyU3VYaTZ1YVdWZERhb3hzcmhVUGRQeFd6R1VyVG04NjcrWm85a2R2MFZ4eFN2WkJFNmFRMmF3WDV6eEFjOTFwSEZhOTlSTStaL3RQZGUzRU5nN0Z6TVJVeXh0dWVnN0Z3YnExZUkrVWZjOGlJaTBEMkFSRVFCY2dYeUdaNEZ3cmp1ZVlDWlpmT0pCNnFJNzNpZkovcjZxVUl1VHNhK0t4RWFGSjFKRjcwVXd2emFsampQdDIxbmZ1T1o3T0RxUlRDTHFKV1ZrZUFxVGRTYm0rYk9IRUFYUEFGQzBsT1o1dk9YajFiTW9XbmIrc3FWcUlkY2FwOW44dzVYTjBMS1ZoTGJOT3JzdnhkQ21uYmtWdFhJVEVJVFZ6Q0xncDRYWGtQOEFVZnlSMExIU0l2bDFhR24zcnBCNnh3NElZZkU4QUhTcHVHRnJHYWpBQUFNaG4zckdrcEdzdWVGN3pyUGNlRjUrdzJXVWxPM2x5STVTSnIzQ2pwbXdVekx6UDlYQzNLN243WEcrd2NKSzY4TG9ZY09wSHlTSFdmN2NyL3pTU0hJQWNlWnNPbFRFVklQS0dWMitrSTFRZGpHY2x2MUovd0JMaWFqRDVHUGZtMk0zWTNacjhvOFpHeE0vVDFNNVN1WVBSQ25FMkoxNURaNVJyRytma0djRFdEak5yRHVXcnRMZElwSzJjeU91Mk51OWpaeUc3VHprbGJBMHkwY3hPdWtzSHhNcDJIZU0xblpubE9Oc3o5Rlcvd0FMNi9sdy9FN3dXNVFsVFh6U2V2c1VUVW5vbG9VZEZlUHd2citYRDhUdkJQd3ZyK1hEOFR2QmJQeEZQdkZmRGxzVWRGZVB3dnIrWEQ4VHZCUHd2citYRDhUdkJQaUtmZUhEbHNVZFd2UVRSTjFaTHJ5QWltak8rUDhBVVBJQitxbHNPM0xxa3lOOHZKRzJLKysxQ1M0amlGeDNyYU5CUnh3eHRpaWFHUnNGZ0JzVkZmRkpLMEdXUXBPOTJkMGNZYUExb0FhQllBWkFBSkxJR2d1Y1FBQmNrOEFDektxdWwyRjExVjZxRnpHUWJidU90SWVldzRPWmN1VGFWMXFiMUNuR2MxR1R5cmRsTDAwMGtOVkpxUm0wRVozdjZ6eWo5bFdWYi93OXJlVkY4VHZCUHc5cmVWRjhUdkJhRXFkU1R1MGV4b1l6QlVLYWhDYXNpb0lyZitIdGJ5b3ZpZDRKK0h0YnlvdmlkNEtQQm5zWGZ5ZUY3NktnaXQvNGUxdktpK0ozZ3NvdHp5ckpHcytNTnZtUVhFZ2RGbG5nejJNUHRQQzk5RUpvNWdjbFhLR055WU0zdTJOYjRyY3RCUnh3eHRpamJxc1lMQUxwd2JDb3FhSVJSQ3dIQ2RyanhrcjNyY3BVc2k4VHkzYU9QbGlwNmFSWEwvVGxFUlhITkNJaUFJaUlBaUlnQ0lpQUlpSUFpSWdDSWlBSWlJQWlJZ0NJaUFJaUlBaUlnQ0lpQUlpSUFpSWdDSWlBSWlJQWlJZ0NJaUFJaUlBaUlnQ0lpQUlpSUFpSWdDSWlBSWlJQWlJZ0NJaUFJaUlBaUlnQ0lpQUlpSUFpSWdDSWlBSWlJQWlJZ0NJaUFJaUlBaUlnQ0lpQUlpSUFpSWdDSWlBSWlJQWlJZ0NJaUFJaUlBaUlnQ0lpQUlpSUFpSWdDSWlBLzlrPVwiIC8+XG4gICAgICAgIDwvZGVmcz5cbiAgICAgIDwvc3ZnPlxuXG4gICAgICA8IS0tIFRpdGxlICsgb3B0aW9uYWwgYmFkZ2UgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWl0ZW1zLWVuZCBjcWEtZ2FwLTMgY3FhLW1pbi13LTAgY3FhLWhpZGRlbiBtZDpjcWEtZmxleFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJjcWEtdHJ1bmNhdGUgY3FhLXRleHQtWyMyMjIyM0JdIGNxYS1mb250LWV4dHJhYm9sZCBjcWEtdGV4dC1bMzJweF0gY3FhLWZvbnQtbnVuaXRvLXNhbnMgY3FhLWxlYWRpbmctWzFdXCI+XG4gICAgICAgICAge3sgdGl0bGUgfX08L2Rpdj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJiYWRnZVRleHRcIlxuICAgICAgICAgIGNsYXNzPVwiY3FhLXB4LTIgY3FhLXB5LVsycHhdIGNxYS1yb3VuZGVkLWxnIGNxYS10ZXh0LVsxMnB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLWxlYWRpbmctNCBjcWEtd2hpdGVzcGFjZS1ub3dyYXAgY3FhLXRleHQtWyMwMDdBNTVdIGNxYS1iZy1bI0QwRkFFNV0gY3FhLWJvcmRlciBjcWEtYm9yZGVyLVsjQTRGNENGXVwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwiYmFkZ2VDbGFzc1wiPnt7IGJhZGdlVGV4dCB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBSaWdodCBjb250cm9scy9hY3Rpb25zIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMyBjcWEtZmxleC0xIGNxYS1qdXN0aWZ5LWVuZFwiPlxuICAgICAgPCEtLSBPcHRpb25hbCB3b3Jrc3BhY2Ugc2VsZWN0IC0tPlxuICAgICAgPGRpdiAqbmdJZj1cInNob3dXb3Jrc3BhY2VTZWxlY3RvclwiIGNsYXNzPVwiaGVhZGVyLWRyb3Bkb3duXCI+XG4gICAgICAgIDxjcWEtZHluYW1pYy1zZWxlY3QgW2Zvcm1dPVwid29ya3NwYWNlRm9ybVwiIFtjb25maWddPVwid29ya3NwYWNlQ29uZmlnXCIgKHNlbGVjdENsaWNrKT1cIndvcmtzcGFjZVNlbGVjdENsaWNrLmVtaXQoKVwiPlxuICAgICAgICA8L2NxYS1keW5hbWljLXNlbGVjdD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIEhlbHAgaWNvbiBidXR0b24gLS0+XG4gICAgICA8YnV0dG9uIFxuICAgICAgICAqbmdJZj1cInNob3dIZWxwSWNvblwiIFxuICAgICAgICBtYXQtaWNvbi1idXR0b24gXG4gICAgICAgIFttYXRUb29sdGlwXT1cImhlbHBJY29uVG9vbHRpcCB8fCAnSGVscCdcIlxuICAgICAgICBbbWF0VG9vbHRpcERpc2FibGVkXT1cIiFoZWxwSWNvblRvb2x0aXBcIlxuICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJiZWxvd1wiXG4gICAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCIzMDBcIlxuICAgICAgICAoY2xpY2spPVwiaGVscEljb25DbGljay5lbWl0KClcIiBcbiAgICAgICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyXCI+XG4gICAgICAgIDxtYXQtaWNvbiBzdHlsZT1cImhlaWdodDogMzZweDsgd2lkdGg6IDM2cHg7IHBvaW50ZXItZXZlbnRzOiBub25lO1wiPlxuICAgICAgICAgIDxzdmcgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgdmlld0JveD1cIjAgMCAzNiAzNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgPHBhdGggZD1cIk0wIDE4QzAgOC4wNTg4OCA4LjA1ODg4IDAgMTggMEMyNy45NDExIDAgMzYgOC4wNTg4OCAzNiAxOEMzNiAyNy45NDExIDI3Ljk0MTEgMzYgMTggMzZDOC4wNTg4OCAzNiAwIDI3Ljk0MTEgMCAxOFpcIiBmaWxsPVwiI0Q4RDlGQ1wiIGZpbGwtb3BhY2l0eT1cIjAuM1wiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTguMDAwMSAyOC40MTYzQzIzLjk4MzIgMjguNDE2MyAyOC44MzM0IDIzLjc1MjYgMjguODMzNCAxNy45OTk3QzI4LjgzMzQgMTIuMjQ2NyAyMy45ODMyIDcuNTgzMDEgMTguMDAwMSA3LjU4MzAxQzEyLjAxNyA3LjU4MzAxIDcuMTY2NzUgMTIuMjQ2NyA3LjE2Njc1IDE3Ljk5OTdDNy4xNjY3NSAyMy43NTI2IDEyLjAxNyAyOC40MTYzIDE4LjAwMDEgMjguNDE2M1pcIiBzdHJva2U9XCIjM0Y0M0VFXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTQuODQ3NCAxNC44NzUxQzE1LjEwMjEgMTQuMTc4OSAxNS42MDQ4IDEzLjU5MTkgMTYuMjY2NSAxMy4yMThDMTYuOTI4MiAxMi44NDQgMTcuNzA2MiAxMi43MDczIDE4LjQ2MjcgMTIuODMyMUMxOS4yMTkyIDEyLjk1NjkgMTkuOTA1MyAxMy4zMzUgMjAuMzk5NiAxMy44OTk2QzIwLjg5MzkgMTQuNDY0MiAyMS4xNjQ0IDE1LjE3ODggMjEuMTYzMiAxNS45MTY4QzIxLjE2MzIgMTguMDAwMSAxNy45MTMyIDE5LjA0MTggMTcuOTEzMiAxOS4wNDE4XCIgc3Ryb2tlPVwiIzNGNDNFRVwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTE4IDIzLjIwOEgxOC4wMVwiIHN0cm9rZT1cIiMzRjQzRUVcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
|