@alauda-fe/common 1.4.2 → 1.4.4-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/auth-api.service.d.ts +4 -1
- package/business/resource-select/internals/data-grid/component.d.ts +4 -0
- package/core/constants/constants.d.ts +0 -1
- package/core/types/k8s/crd.d.ts +4 -1
- package/core/types/resource-definitions.d.ts +1 -1
- package/esm2022/api/auth-api.service.mjs +15 -5
- package/esm2022/api/resource-update.service.mjs +2 -1
- package/esm2022/business/resource-select/internals/data-grid/component.mjs +49 -15
- package/esm2022/core/constants/constants.mjs +1 -3
- package/esm2022/core/services/workspace-helper.service.mjs +4 -4
- package/esm2022/core/types/k8s/crd.mjs +1 -1
- package/esm2022/grid-layout/components/grid/component.mjs +4 -3
- package/esm2022/grid-layout/components/grid-items/component.mjs +2 -2
- package/esm2022/k8s-resource-list/utils.mjs +2 -3
- package/esm2022/translate/translate.service.mjs +3 -4
- package/k8s-resource-list/k8s-resource-paged-list.d.ts +2 -2
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { KubernetesResourceList, ResourceListParams, RoleTemplate, User, UserBinding, UserRole } from '../core/public-api';
|
|
1
|
+
import { KubernetesResourceList, ResourceListParams, RoleTemplate, User, UserBinding, UserList, UserRole } from '../core/public-api';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export declare class AuthApiService {
|
|
4
4
|
private http;
|
|
@@ -8,7 +8,10 @@ export declare class AuthApiService {
|
|
|
8
8
|
project?: string;
|
|
9
9
|
}): import("rxjs").Observable<KubernetesResourceList<UserRole>>;
|
|
10
10
|
getRoleTemplateList(params: ResourceListParams): import("rxjs").Observable<KubernetesResourceList<RoleTemplate>>;
|
|
11
|
+
getUserList(params?: Record<string, string | number>): import("rxjs").Observable<UserList>;
|
|
11
12
|
getUser(name: string): import("rxjs").Observable<User>;
|
|
13
|
+
getNotificationUsers(namespace: string, name: string): import("rxjs").Observable<KubernetesResourceList<User>>;
|
|
14
|
+
getNotificationGroupUsers(namespace: string, name: string): import("rxjs").Observable<KubernetesResourceList<User>>;
|
|
12
15
|
static ɵfac: i0.ɵɵFactoryDeclaration<AuthApiService, never>;
|
|
13
16
|
static ɵprov: i0.ɵɵInjectableDeclaration<AuthApiService>;
|
|
14
17
|
}
|
|
@@ -31,6 +31,10 @@ export declare class ResourceDataGridComponent implements OnInit {
|
|
|
31
31
|
text: string;
|
|
32
32
|
isHighlighted?: boolean;
|
|
33
33
|
}[];
|
|
34
|
+
getHighlightedDisplayNameStrs: (item: DataItemBase) => {
|
|
35
|
+
text: string;
|
|
36
|
+
isHighlighted?: boolean;
|
|
37
|
+
}[];
|
|
34
38
|
onSelect(item: DataItemBase): void;
|
|
35
39
|
setDisplayMode(mode: DisplayMode): void;
|
|
36
40
|
keywordChange(keyword: string): void;
|
|
@@ -50,7 +50,6 @@ export declare const LINK = "link";
|
|
|
50
50
|
export declare const ESCAPE_DEACTIVATE_CHECK = "escape";
|
|
51
51
|
export declare const CUSTOMIZED = "customized";
|
|
52
52
|
export declare const GLOBAL_CLUSTER = "global";
|
|
53
|
-
export declare const GLOBAL_NAMESPACE = "cpaas-system";
|
|
54
53
|
export declare const PACKAGE_RUNTIME_VALUE = "Runtime";
|
|
55
54
|
export declare const CRYPTO_HEADER_KEY = "X-Param-Response";
|
|
56
55
|
export declare enum CRYPTO_TYPE {
|
package/core/types/k8s/crd.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ValueOf } from 'ts-essentials';
|
|
2
2
|
import { StringMap } from '../commons';
|
|
3
|
-
import { Condition, KubernetesResource, ObjectMeta } from './core';
|
|
3
|
+
import { Condition, KubernetesResource, KubernetesResourceList, ObjectMeta } from './core';
|
|
4
4
|
import { ConfigMapKeyRef, Node, NodeStatus, NodeTaint, SecretKeyRef } from './raw';
|
|
5
5
|
/**
|
|
6
6
|
* 只保留common中需要用到的crd 扩展类
|
|
@@ -703,4 +703,7 @@ export declare enum UserState {
|
|
|
703
703
|
DELETED = "deleted"
|
|
704
704
|
}
|
|
705
705
|
export type WebhookType = 'Webhook' | 'DingTalk' | 'WeChat';
|
|
706
|
+
export interface UserList extends KubernetesResourceList<User> {
|
|
707
|
+
total: number;
|
|
708
|
+
}
|
|
706
709
|
export {};
|
|
@@ -455,7 +455,7 @@ export declare const RESOURCE_TYPES: {
|
|
|
455
455
|
readonly ARGOCD_APPLICATION_SET: "ARGOCD_APPLICATION_SET";
|
|
456
456
|
readonly ARGOCD_APPLICATION: "ARGOCD_APPLICATION";
|
|
457
457
|
};
|
|
458
|
-
export declare const getYamlApiVersion: (definition: "
|
|
458
|
+
export declare const getYamlApiVersion: (definition: "ALAUDA_LOADBALANCER2" | "ALB2" | "HELM_REQUEST" | "HELM_REQUEST_V1" | "DEPLOYMENT" | "FRONTEND" | "RULE" | "POD" | "PODS_EXEC" | "PODS_ROOT_EXEC" | "CONFIG_MAP" | "ALERT_TEMPLATE" | "APPLICATION" | "APPLICATION_HISTORY" | "CLUSTER" | "CLUSTER_VIEW" | "DAEMON_SET" | "STATEFUL_SET" | "DOMAIN" | "FEATURE" | "ALAUDA_FEATURE_GATE" | "CLUSTER_ALAUDA_FEATURE_GATE" | "HORIZONTAL_POD_AUTOSCALER" | "LOG" | "PROJECT" | "PROMETHEUS_RULE" | "ALERT_HISTORY" | "SELF_SUBJECT_ACCESS_REVIEW" | "VIEW" | "SERVICE" | "LIMIT_RANGE" | "SECRET" | "PRODUCT" | "CRON_JOB" | "ADVANCED_CRON_JOB" | "JOB" | "INGRESS" | "PERSISTENT_VOLUME_CLAIM" | "NAMESPACE" | "NODE" | "NODE_METRICS" | "PV" | "CRD" | "CHART_REPO" | "CHART" | "NETWORK_POLICY" | "SERVICE_ACCOUNT" | "REPLICA_SET" | "POD_SECURITY_POLICY" | "NAMESPACE_OVERVIEW" | "CSP" | "RESOURCE_QUOTA" | "CLUSTER_NETWORK_POLICY" | "VIRTUAL_MACHINE" | "VIRTUAL_MACHINE_INSTANCE" | "VIRTUAL_MACHINE_POOL" | "PROJECT_QUOTA" | "TKE_CLUSTER" | "TKE_MACHINE" | "MACHINE" | "NODE_GROUP" | "CLUSTERSERVICEVERSION" | "TENANT" | "SUBSCRIPTION" | "PACKAGE_MANIFEST" | "BUCKET_CLASS" | "PRODUCT_CONFIG" | "STORAGE_CLASS" | "VOLUME_SNAPSHOT_CLASS" | "PRODUCT_BASE" | "MODULE_INFO" | "PRODUCT_ENTRY" | "PRODUCT_DOCS_ENTRY" | "SERVICEMESH_GROUP" | "CLUSTER_MODULE" | "USER_BINDING" | "BATCH_ACTION" | "EVENT" | "SERVICE_MONITOR" | "OAM_APPLICATION" | "ARGOCD_APPLICATION_SET" | "ARGOCD_APPLICATION" | {
|
|
459
459
|
apiGroup: string;
|
|
460
460
|
type: string;
|
|
461
461
|
} | {
|
|
@@ -2,27 +2,37 @@ import { HttpClient } from '@angular/common/http';
|
|
|
2
2
|
import { inject, Injectable } from '@angular/core';
|
|
3
3
|
import { API_GATEWAY, } from '../core/public-api';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
+
const AUTH_URL = API_GATEWAY + '/auth/v2';
|
|
5
6
|
export class AuthApiService {
|
|
6
7
|
constructor() {
|
|
7
8
|
this.http = inject(HttpClient);
|
|
8
9
|
}
|
|
9
10
|
getUserBindingList(params) {
|
|
10
|
-
return this.http.get(
|
|
11
|
+
return this.http.get(AUTH_URL + '/userbindings', {
|
|
11
12
|
params,
|
|
12
13
|
});
|
|
13
14
|
}
|
|
14
15
|
getUserRoleList(params) {
|
|
15
|
-
return this.http.get(
|
|
16
|
+
return this.http.get(AUTH_URL + '/usersroles', {
|
|
16
17
|
params,
|
|
17
18
|
});
|
|
18
19
|
}
|
|
19
20
|
getRoleTemplateList(params) {
|
|
20
|
-
return this.http.get(
|
|
21
|
+
return this.http.get(AUTH_URL + '/roletemplates', {
|
|
21
22
|
params,
|
|
22
23
|
});
|
|
23
24
|
}
|
|
25
|
+
getUserList(params) {
|
|
26
|
+
return this.http.get(AUTH_URL + '/users', { params });
|
|
27
|
+
}
|
|
24
28
|
getUser(name) {
|
|
25
|
-
return this.http.get(
|
|
29
|
+
return this.http.get(`${AUTH_URL}/users/${name}`);
|
|
30
|
+
}
|
|
31
|
+
getNotificationUsers(namespace, name) {
|
|
32
|
+
return this.http.get(`${AUTH_URL}/namespaces/${namespace}/notifications/${name}/users`);
|
|
33
|
+
}
|
|
34
|
+
getNotificationGroupUsers(namespace, name) {
|
|
35
|
+
return this.http.get(`${AUTH_URL}/namespaces/${namespace}/notificationgroups/${name}/users`);
|
|
26
36
|
}
|
|
27
37
|
static { this.ɵfac = function AuthApiService_Factory(t) { return new (t || AuthApiService)(); }; }
|
|
28
38
|
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: AuthApiService, factory: AuthApiService.ɵfac, providedIn: 'root' }); }
|
|
@@ -31,4 +41,4 @@ export class AuthApiService {
|
|
|
31
41
|
type: Injectable,
|
|
32
42
|
args: [{ providedIn: 'root' }]
|
|
33
43
|
}], null, null); })();
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9hcGkvYXV0aC1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUNMLFdBQVcsR0FRWixNQUFNLG9CQUFvQixDQUFDOztBQUU1QixNQUFNLFFBQVEsR0FBRyxXQUFXLEdBQUcsVUFBVSxDQUFDO0FBRzFDLE1BQU0sT0FBTyxjQUFjO0lBRDNCO1FBRVUsU0FBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztLQWdEbkM7SUE5Q0Msa0JBQWtCLENBQUMsTUFBMEI7UUFDM0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDbEIsUUFBUSxHQUFHLGVBQWUsRUFDMUI7WUFDRSxNQUFNO1NBQ1AsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELGVBQWUsQ0FBQyxNQUEyQztRQUN6RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNsQixRQUFRLEdBQUcsYUFBYSxFQUN4QjtZQUNFLE1BQU07U0FDUCxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsbUJBQW1CLENBQUMsTUFBMEI7UUFDNUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDbEIsUUFBUSxHQUFHLGdCQUFnQixFQUMzQjtZQUNFLE1BQU07U0FDUCxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQXdDO1FBQ2xELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQVcsUUFBUSxHQUFHLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFZO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU8sR0FBRyxRQUFRLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsU0FBaUIsRUFBRSxJQUFZO1FBQ2xELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ2xCLEdBQUcsUUFBUSxlQUFlLFNBQVMsa0JBQWtCLElBQUksUUFBUSxDQUNsRSxDQUFDO0lBQ0osQ0FBQztJQUVELHlCQUF5QixDQUFDLFNBQWlCLEVBQUUsSUFBWTtRQUN2RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNsQixHQUFHLFFBQVEsZUFBZSxTQUFTLHVCQUF1QixJQUFJLFFBQVEsQ0FDdkUsQ0FBQztJQUNKLENBQUM7K0VBaERVLGNBQWM7dUVBQWQsY0FBYyxXQUFkLGNBQWMsbUJBREQsTUFBTTs7aUZBQ25CLGNBQWM7Y0FEMUIsVUFBVTtlQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgQVBJX0dBVEVXQVksXG4gIEt1YmVybmV0ZXNSZXNvdXJjZUxpc3QsXG4gIFJlc291cmNlTGlzdFBhcmFtcyxcbiAgUm9sZVRlbXBsYXRlLFxuICBVc2VyLFxuICBVc2VyQmluZGluZyxcbiAgVXNlckxpc3QsXG4gIFVzZXJSb2xlLFxufSBmcm9tICcuLi9jb3JlL3B1YmxpYy1hcGknO1xuXG5jb25zdCBBVVRIX1VSTCA9IEFQSV9HQVRFV0FZICsgJy9hdXRoL3YyJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBdXRoQXBpU2VydmljZSB7XG4gIHByaXZhdGUgaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcblxuICBnZXRVc2VyQmluZGluZ0xpc3QocGFyYW1zOiBSZXNvdXJjZUxpc3RQYXJhbXMpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxLdWJlcm5ldGVzUmVzb3VyY2VMaXN0PFVzZXJCaW5kaW5nPj4oXG4gICAgICBBVVRIX1VSTCArICcvdXNlcmJpbmRpbmdzJyxcbiAgICAgIHtcbiAgICAgICAgcGFyYW1zLFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgZ2V0VXNlclJvbGVMaXN0KHBhcmFtczogeyB1c2Vyczogc3RyaW5nOyBwcm9qZWN0Pzogc3RyaW5nIH0pIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxLdWJlcm5ldGVzUmVzb3VyY2VMaXN0PFVzZXJSb2xlPj4oXG4gICAgICBBVVRIX1VSTCArICcvdXNlcnNyb2xlcycsXG4gICAgICB7XG4gICAgICAgIHBhcmFtcyxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIGdldFJvbGVUZW1wbGF0ZUxpc3QocGFyYW1zOiBSZXNvdXJjZUxpc3RQYXJhbXMpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxLdWJlcm5ldGVzUmVzb3VyY2VMaXN0PFJvbGVUZW1wbGF0ZT4+KFxuICAgICAgQVVUSF9VUkwgKyAnL3JvbGV0ZW1wbGF0ZXMnLFxuICAgICAge1xuICAgICAgICBwYXJhbXMsXG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICBnZXRVc2VyTGlzdChwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXI+KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VXNlckxpc3Q+KEFVVEhfVVJMICsgJy91c2VycycsIHsgcGFyYW1zIH0pO1xuICB9XG5cbiAgZ2V0VXNlcihuYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxVc2VyPihgJHtBVVRIX1VSTH0vdXNlcnMvJHtuYW1lfWApO1xuICB9XG5cbiAgZ2V0Tm90aWZpY2F0aW9uVXNlcnMobmFtZXNwYWNlOiBzdHJpbmcsIG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEt1YmVybmV0ZXNSZXNvdXJjZUxpc3Q8VXNlcj4+KFxuICAgICAgYCR7QVVUSF9VUkx9L25hbWVzcGFjZXMvJHtuYW1lc3BhY2V9L25vdGlmaWNhdGlvbnMvJHtuYW1lfS91c2Vyc2AsXG4gICAgKTtcbiAgfVxuXG4gIGdldE5vdGlmaWNhdGlvbkdyb3VwVXNlcnMobmFtZXNwYWNlOiBzdHJpbmcsIG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEt1YmVybmV0ZXNSZXNvdXJjZUxpc3Q8VXNlcj4+KFxuICAgICAgYCR7QVVUSF9VUkx9L25hbWVzcGFjZXMvJHtuYW1lc3BhY2V9L25vdGlmaWNhdGlvbmdyb3Vwcy8ke25hbWV9L3VzZXJzYCxcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -36,6 +36,7 @@ export class ResourceUpdateService {
|
|
|
36
36
|
const get = () => this.k8sApi.getGlobalResource({
|
|
37
37
|
type: params.type,
|
|
38
38
|
namespaced: params.namespaced,
|
|
39
|
+
namespace: params.resource.metadata.namespace,
|
|
39
40
|
name: params.resource.metadata.name,
|
|
40
41
|
});
|
|
41
42
|
return this.retryUpdate(put, get, params.resource);
|
|
@@ -59,4 +60,4 @@ export class ResourceUpdateService {
|
|
|
59
60
|
type: Injectable,
|
|
60
61
|
args: [{ providedIn: 'root' }]
|
|
61
62
|
}], () => [{ type: i1.K8sApiService }, { type: i2.DialogService }, { type: i3.TranslateService }], null); })();
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtdXBkYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvYXBpL3Jlc291cmNlLXVwZGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2xDLE9BQU8sRUFBYyxJQUFJLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHM0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7OztBQUlsRCxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLFlBQ21CLE1BQXFCLEVBQ3JCLE1BQXFCLEVBQ3JCLFNBQTJCO1FBRjNCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtJQUMzQyxDQUFDO0lBRUo7O09BRUc7SUFDSCxnQkFBZ0IsQ0FDZCxNQUdvRDtRQUVwRCxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQU0sRUFBRSxFQUFFLENBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDeEQsTUFBTSxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUk7WUFDekIsSUFBSSxFQUFFLE1BQU0sSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLElBQUk7WUFDckMsVUFBVSxFQUFFLFlB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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGFsYXVkYS91aSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtZXJnZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmcm9tLCB0aHJvd0Vycm9yLCBjYXRjaEVycm9yLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgS3ViZXJuZXRlc1Jlc291cmNlLCBTdGF0dXMgfSBmcm9tICcuLi9jb3JlL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uL3RyYW5zbGF0ZS9wdWJsaWMtYXBpJztcblxuaW1wb3J0IHsgSzhzQXBpU2VydmljZSB9IGZyb20gJy4vazhzLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IEFwaURlZmluaXRpb25CYXNlUGFyYW1zLCBBcGlUeXBlQmFzZVBhcmFtcyB9IGZyb20gJy4vdHlwZXMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFJlc291cmNlVXBkYXRlU2VydmljZTxSIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgazhzQXBpOiBLOHNBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nOiBEaWFsb2dTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICApIHt9XG5cbiAgLyoqXG4gICAqICEg5Y+q5bqU5Zyo5a6M5pW05pu05paw6LWE5rqQ5pe25L2/55So77yM6YOo5YiG5pu05paw5pe25bqU6K+l5L2/55SoIHBhdGNoXG4gICAqL1xuICByZXRyeVB1dFJlc291cmNlPFQgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2U+KFxuICAgIHBhcmFtczoge1xuICAgICAgY2x1c3Rlcjogc3RyaW5nO1xuICAgICAgcmVzb3VyY2U6IFQ7XG4gICAgfSAmIChBcGlEZWZpbml0aW9uQmFzZVBhcmFtcyB8IEFwaVR5cGVCYXNlUGFyYW1zPFI+KSxcbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc3QgcHV0ID0gKHJlczogVCkgPT5cbiAgICAgIHRoaXMuazhzQXBpLnB1dFJlc291cmNlKHsgLi4ucGFyYW1zLCByZXNvdXJjZTogcmVzIH0pO1xuICAgIGNvbnN0IGdldCA9ICgpID0+XG4gICAgICB0aGlzLms4c0FwaS5nZXRSZXNvdXJjZTxUPih7XG4gICAgICAgIHR5cGU6ICd0eXBlJyBpbiBwYXJhbXMgJiYgcGFyYW1zLnR5cGUsXG4gICAgICAgIGRlZmluaXRpb246ICdkZWZpbml0aW9uJyBpbiBwYXJhbXMgJiYgcGFyYW1zLmRlZmluaXRpb24sXG4gICAgICAgIGNsdXN0ZXI6IHBhcmFtcy5jbHVzdGVyLFxuICAgICAgICBuYW1lc3BhY2U6IHBhcmFtcy5yZXNvdXJjZS5tZXRhZGF0YS5uYW1lc3BhY2UsXG4gICAgICAgIG5hbWU6IHBhcmFtcy5yZXNvdXJjZS5tZXRhZGF0YS5uYW1lLFxuICAgICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5yZXRyeVVwZGF0ZShwdXQsIGdldCwgcGFyYW1zLnJlc291cmNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAhIOWPquW6lOWcqOWujOaVtOabtOaWsOi1hOa6kOaXtuS9v+eUqO+8jOmDqOWIhuabtOaWsOaXtuW6lOivpeS9v+eUqCBwYXRjaFxuICAgKi9cbiAgcmV0cnlQdXRHbG9iYWxSZXNvdXJjZTxUIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlPihwYXJhbXM6IHtcbiAgICB0eXBlOiBSO1xuICAgIG5hbWVzcGFjZWQ6IGJvb2xlYW47XG4gICAgcmVzb3VyY2U6IFQ7XG4gIH0pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICBjb25zdCBwdXQgPSAocmVzOiBUKSA9PlxuICAgICAgdGhpcy5rOHNBcGkucHV0R2xvYmFsUmVzb3VyY2UoeyAuLi5wYXJhbXMsIHJlc291cmNlOiByZXMgfSk7XG4gICAgY29uc3QgZ2V0ID0gKCkgPT5cbiAgICAgIHRoaXMuazhzQXBpLmdldEdsb2JhbFJlc291cmNlPFQ+KHtcbiAgICAgICAgdHlwZTogcGFyYW1zLnR5cGUsXG4gICAgICAgIG5hbWVzcGFjZWQ6IHBhcmFtcy5uYW1lc3BhY2VkLFxuICAgICAgICBuYW1lc3BhY2U6IHBhcmFtcy5yZXNvdXJjZS5tZXRhZGF0YS5uYW1lc3BhY2UsXG4gICAgICAgIG5hbWU6IHBhcmFtcy5yZXNvdXJjZS5tZXRhZGF0YS5uYW1lLFxuICAgICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5yZXRyeVVwZGF0ZShwdXQsIGdldCwgcGFyYW1zLnJlc291cmNlKTtcbiAgfVxuXG4gIHByaXZhdGUgcmV0cnlVcGRhdGU8VCBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZT4oXG4gICAgcHV0OiAocmVzb3VyY2U6IFQpID0+IE9ic2VydmFibGU8VD4sXG4gICAgZ2V0OiAoKSA9PiBPYnNlcnZhYmxlPFQ+LFxuICAgIHJlc291cmNlOiBULFxuICApOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICBjb25zdCB3YWl0VXNlckNvbmZpcm1SZXRyeSA9IChlcnI6IFN0YXR1cykgPT5cbiAgICAgIGZyb20oXG4gICAgICAgIHRoaXMuZGlhbG9nLmNvbmZpcm0oe1xuICAgICAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZS5nZXQoJ3Jlc291cmNlX3ZlcnNpb25fY29uZmxpY3QnKSxcbiAgICAgICAgICBjb25maXJtVGV4dDogdGhpcy50cmFuc2xhdGUuZ2V0KCdyZXRyeScpLFxuICAgICAgICAgIGNhbmNlbFRleHQ6IHRoaXMudHJhbnNsYXRlLmdldCgnY2FuY2VsJyksXG4gICAgICAgIH0pLFxuICAgICAgKS5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgICBnZXQoKS5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKG5ld1Jlc291cmNlID0+XG4gICAgICAgICAgICAgIHB1dChcbiAgICAgICAgICAgICAgICBtZXJnZShyZXNvdXJjZSwge1xuICAgICAgICAgICAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VWZXJzaW9uOiBuZXdSZXNvdXJjZS5tZXRhZGF0YS5yZXNvdXJjZVZlcnNpb24sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gdGhpcy5yZXRyeVVwZGF0ZShwdXQsIGdldCwgcmVzb3VyY2UpKSxcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgICBjYXRjaEVycm9yKCgpID0+IHRocm93RXJyb3IoKCkgPT4gZXJyKSksXG4gICAgICApO1xuXG4gICAgcmV0dXJuIHB1dChyZXNvdXJjZSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKGVycjogU3RhdHVzKSA9PlxuICAgICAgICBlcnIuY29kZSA9PT0gNDA5ID8gd2FpdFVzZXJDb25maXJtUmV0cnkoZXJyKSA6IHRocm93RXJyb3IoKCkgPT4gZXJyKSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -58,21 +58,26 @@ function ResourceDataGridComponent_ng_container_14_div_1_div_2_ng_container_6_Te
|
|
|
58
58
|
} }
|
|
59
59
|
function ResourceDataGridComponent_ng_container_14_div_1_div_2_div_7_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
60
60
|
i0.ɵɵelementContainerStart(0);
|
|
61
|
-
i0.ɵɵ
|
|
61
|
+
i0.ɵɵelementStart(1, "span", 35);
|
|
62
|
+
i0.ɵɵtext(2);
|
|
63
|
+
i0.ɵɵelementEnd();
|
|
62
64
|
i0.ɵɵelementContainerEnd();
|
|
63
65
|
} if (rf & 2) {
|
|
64
|
-
const
|
|
66
|
+
const str_r6 = ctx.$implicit;
|
|
67
|
+
i0.ɵɵadvance();
|
|
68
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(2, _c7, str_r6.isHighlighted));
|
|
65
69
|
i0.ɵɵadvance();
|
|
66
|
-
i0.ɵɵtextInterpolate(
|
|
70
|
+
i0.ɵɵtextInterpolate(str_r6.text);
|
|
67
71
|
} }
|
|
68
72
|
function ResourceDataGridComponent_ng_container_14_div_1_div_2_div_7_Template(rf, ctx) { if (rf & 1) {
|
|
69
73
|
i0.ɵɵelementStart(0, "div", 36);
|
|
70
|
-
i0.ɵɵtemplate(1, ResourceDataGridComponent_ng_container_14_div_1_div_2_div_7_ng_container_1_Template,
|
|
74
|
+
i0.ɵɵtemplate(1, ResourceDataGridComponent_ng_container_14_div_1_div_2_div_7_ng_container_1_Template, 3, 4, "ng-container", 27);
|
|
71
75
|
i0.ɵɵelementEnd();
|
|
72
76
|
} if (rf & 2) {
|
|
73
77
|
const item_r4 = i0.ɵɵnextContext().$implicit;
|
|
78
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
74
79
|
i0.ɵɵadvance();
|
|
75
|
-
i0.ɵɵproperty("
|
|
80
|
+
i0.ɵɵproperty("ngForOf", ctx_r1.getHighlightedDisplayNameStrs(item_r4));
|
|
76
81
|
} }
|
|
77
82
|
function ResourceDataGridComponent_ng_container_14_div_1_div_2_div_8_ng_container_8_Template(rf, ctx) { if (rf & 1) {
|
|
78
83
|
i0.ɵɵelementContainerStart(0);
|
|
@@ -268,9 +273,9 @@ function ResourceDataGridComponent_ng_container_14_div_1_div_2_div_14_Template(r
|
|
|
268
273
|
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 4, item_r4.timestamp));
|
|
269
274
|
} }
|
|
270
275
|
function ResourceDataGridComponent_ng_container_14_div_1_div_2_div_15_Template(rf, ctx) { if (rf & 1) {
|
|
271
|
-
const
|
|
276
|
+
const _r7 = i0.ɵɵgetCurrentView();
|
|
272
277
|
i0.ɵɵelementStart(0, "div", 48);
|
|
273
|
-
i0.ɵɵlistener("click", function ResourceDataGridComponent_ng_container_14_div_1_div_2_div_15_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(
|
|
278
|
+
i0.ɵɵlistener("click", function ResourceDataGridComponent_ng_container_14_div_1_div_2_div_15_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r7); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
274
279
|
i0.ɵɵelementContainer(1, 49);
|
|
275
280
|
i0.ɵɵelementEnd();
|
|
276
281
|
} if (rf & 2) {
|
|
@@ -329,16 +334,16 @@ function ResourceDataGridComponent_ng_container_14_div_1_Template(rf, ctx) { if
|
|
|
329
334
|
i0.ɵɵtemplate(2, ResourceDataGridComponent_ng_container_14_div_1_div_2_Template, 16, 21, "div", 20);
|
|
330
335
|
i0.ɵɵelementEnd();
|
|
331
336
|
} if (rf & 2) {
|
|
332
|
-
const
|
|
337
|
+
const displayData_r8 = i0.ɵɵnextContext().ngIf;
|
|
333
338
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
334
339
|
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction3(2, _c5, ctx_r1.displayMode === "card" && ctx_r1.context !== "popup", ctx_r1.context === "popup", ctx_r1.context === "popup" && ctx_r1.popupLite));
|
|
335
340
|
i0.ɵɵadvance(2);
|
|
336
|
-
i0.ɵɵproperty("ngForOf",
|
|
341
|
+
i0.ɵɵproperty("ngForOf", displayData_r8);
|
|
337
342
|
} }
|
|
338
343
|
function ResourceDataGridComponent_ng_container_14_acl_resource_no_data_2_Template(rf, ctx) { if (rf & 1) {
|
|
339
|
-
const
|
|
344
|
+
const _r9 = i0.ɵɵgetCurrentView();
|
|
340
345
|
i0.ɵɵelementStart(0, "acl-resource-no-data", 50);
|
|
341
|
-
i0.ɵɵlistener("refresh", function ResourceDataGridComponent_ng_container_14_acl_resource_no_data_2_Template_acl_resource_no_data_refresh_0_listener() { i0.ɵɵrestoreView(
|
|
346
|
+
i0.ɵɵlistener("refresh", function ResourceDataGridComponent_ng_container_14_acl_resource_no_data_2_Template_acl_resource_no_data_refresh_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.reload.emit()); })("clear", function ResourceDataGridComponent_ng_container_14_acl_resource_no_data_2_Template_acl_resource_no_data_clear_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.keywordChange("")); });
|
|
342
347
|
i0.ɵɵelementEnd();
|
|
343
348
|
} if (rf & 2) {
|
|
344
349
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -357,10 +362,10 @@ function ResourceDataGridComponent_ng_container_14_Template(rf, ctx) { if (rf &
|
|
|
357
362
|
} if (rf & 2) {
|
|
358
363
|
let tmp_3_0;
|
|
359
364
|
let tmp_4_0;
|
|
360
|
-
const
|
|
365
|
+
const displayData_r8 = ctx.ngIf;
|
|
361
366
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
362
367
|
i0.ɵɵadvance();
|
|
363
|
-
i0.ɵɵproperty("ngIf",
|
|
368
|
+
i0.ɵɵproperty("ngIf", displayData_r8.length);
|
|
364
369
|
i0.ɵɵadvance();
|
|
365
370
|
i0.ɵɵproperty("ngIf", !ctx_r1.popupLite && !((tmp_3_0 = i0.ɵɵpipeBind1(3, 3, ctx_r1.displayData$)) == null ? null : tmp_3_0.length));
|
|
366
371
|
i0.ɵɵadvance(2);
|
|
@@ -425,6 +430,35 @@ export class ResourceDataGridComponent {
|
|
|
425
430
|
}
|
|
426
431
|
return ret;
|
|
427
432
|
};
|
|
433
|
+
this.getHighlightedDisplayNameStrs = (item) => {
|
|
434
|
+
if (!this.keyword) {
|
|
435
|
+
return [
|
|
436
|
+
{
|
|
437
|
+
text: item.displayName,
|
|
438
|
+
},
|
|
439
|
+
];
|
|
440
|
+
}
|
|
441
|
+
const original = item.displayName;
|
|
442
|
+
const strs = item.displayName
|
|
443
|
+
.toLowerCase()
|
|
444
|
+
.split(this.keyword.toLowerCase());
|
|
445
|
+
const ret = [];
|
|
446
|
+
let pos = 0;
|
|
447
|
+
for (const [i, str] of strs.entries()) {
|
|
448
|
+
const end = pos + str.length;
|
|
449
|
+
ret.push({
|
|
450
|
+
text: original.slice(pos, end),
|
|
451
|
+
});
|
|
452
|
+
if (i !== strs.length - 1) {
|
|
453
|
+
ret.push({
|
|
454
|
+
text: original.slice(end, end + this.keyword.length),
|
|
455
|
+
isHighlighted: true,
|
|
456
|
+
});
|
|
457
|
+
}
|
|
458
|
+
pos = end + this.keyword.length;
|
|
459
|
+
}
|
|
460
|
+
return ret;
|
|
461
|
+
};
|
|
428
462
|
this.sortWithoutIstio = (data) => {
|
|
429
463
|
const withoutIstio = data.filter(item => !item?.serviceMeshIstioVersion);
|
|
430
464
|
return [...difference(data, withoutIstio), ...withoutIstio];
|
|
@@ -550,7 +584,7 @@ __decorate([
|
|
|
550
584
|
], ResourceDataGridComponent.prototype, "data$", void 0);
|
|
551
585
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ResourceDataGridComponent, [{
|
|
552
586
|
type: Component,
|
|
553
|
-
args: [{ selector: 'acl-resource-data-grid', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"header\">\n <span\n class=\"header__title\"\n [ngClass]=\"{ 'header__title--lite': popupLite }\"\n >\n <span>{{ type | pure: pluralForm | translate }}</span\n ><span class=\"header__desc\"\n >\uFF08{{ (displayData$ | async)?.length || 0 }}\uFF09</span\n >\n </span>\n <div\n class=\"header__custom\"\n *ngIf=\"!popupLite\"\n >\n <ng-content select=\"[aclResourceGridHeader]\"></ng-content>\n </div>\n <div\n class=\"tw-flex-1\"\n *ngIf=\"popupLite\"\n ></div>\n <aui-search\n [searchButton]=\"false\"\n [placeholder]=\"'filter_by_name_or_display_name' | translate\"\n [keyword]=\"keyword\"\n (keywordChange)=\"keywordChange($event)\"\n [clearable]=\"true\"\n size=\"small\"\n ></aui-search>\n <span\n class=\"header__display-mode\"\n *ngIf=\"context === 'page'\"\n >\n <span\n class=\"switch-btn\"\n [ngClass]=\"{ 'switch-btn--selected': displayMode !== 'card' }\"\n (click)=\"setDisplayMode('row')\"\n >\n <aui-icon icon=\"list\"></aui-icon>\n </span>\n <span\n class=\"switch-btn\"\n [ngClass]=\"{ 'switch-btn--selected': displayMode === 'card' }\"\n (click)=\"setDisplayMode('card')\"\n >\n <aui-icon icon=\"grid\"></aui-icon>\n </span>\n </span>\n</div>\n<ng-container\n *ngIf=\"\n !loading &&\n (displayData$\n | async\n | pure: sortWithoutIstio\n | pure: filterDisabledData:context) as displayData\n \"\n>\n <div\n class=\"grid\"\n *ngIf=\"displayData.length\"\n #grid\n [ngClass]=\"{\n 'grid--card': displayMode === 'card' && context !== 'popup',\n 'grid--popup': context === 'popup',\n 'grid--popup--lite': context === 'popup' && popupLite\n }\"\n >\n <div\n class=\"grid__item\"\n *ngFor=\"let item of displayData\"\n [ngClass]=\"{\n 'grid__item--selected':\n context === 'popup' && selectedUid === item.__origin.metadata.uid,\n 'grid__item--disabled': item.state?.disabled\n }\"\n (click)=\"onSelect(item)\"\n [attr.data-test]=\"item.name + '/' + item.cluster\"\n [auiTooltip]=\"item.state?.tooltip\"\n [auiTooltipDisabled]=\"!item.state?.disabled || !item.state?.tooltip\"\n >\n <aui-icon\n *ngIf=\"selectedUid === item.__origin.metadata.uid\"\n class=\"check-triangle-badge\"\n icon=\"check\"\n ></aui-icon>\n <!-- icon -->\n <div class=\"grid__field grid__field-icon\">\n <acl-resource-icon\n [type]=\"type\"\n [color]=\"\n context === 'popup' &&\n !popupLite &&\n selectedUid === item.__origin.metadata.uid\n ? 'white'\n : 'blue'\n \"\n [displayMode]=\"displayMode\"\n ></acl-resource-icon>\n </div>\n <!-- name -->\n <div class=\"grid__field grid__field-name\">\n <div class=\"name\">\n <ng-container *ngFor=\"let str of getHighlightedNameStrs(item)\">\n <span [ngClass]=\"{ highlighted: str.isHighlighted }\">{{\n str.text\n }}</span>\n </ng-container>\n </div>\n <div\n class=\"des\"\n *ngIf=\"!popupLite\"\n >\n <ng-container *ngIf=\"item.displayName\">{{\n item.displayName\n }}</ng-container>\n </div>\n </div>\n <!-- ns: cluster -->\n <div\n class=\"grid__field flex grid__field-cluster\"\n *ngIf=\"fields.includes(fieldsDef.Cluster)\"\n >\n <span\n class=\"belonged-cluster tw-flex\"\n auiTooltip=\"{{\n ('belonged_cluster' | translate) + ': ' + item.cluster\n }}\"\n >\n <span class=\"with-colon\">{{ 'belonged_cluster' | translate }}</span>\n <span class=\"tw-text-ellipsis tw-overflow-hidden\"\n >{{ item.cluster\n }}<ng-container *ngIf=\"item.clusterDisplayName\"\n >({{ item.clusterDisplayName }})</ng-container\n >\n </span>\n <aui-tag\n type=\"primary\"\n size=\"mini\"\n *ngIf=\"item.clusterArch\"\n >\n {{ item.clusterArch }}\n </aui-tag>\n </span>\n </div>\n <!-- project: status -->\n <div\n class=\"grid__field grid__field-status {{\n 'grid__field-status--' + item.status\n }}\"\n *ngIf=\"fields.includes(fieldsDef.Status)\"\n >\n <label\n *ngIf=\"popupLite\"\n class=\"tw-text-help-text tw-mr-8\"\n >{{ 'status' | translate }}:</label\n >\n <span class=\"with-colon\">{{ 'status' | translate }}</span>\n <aui-icon\n [icon]=\"statusIcon[item.status]\"\n [background]=\"\n statusIcon[item.status].endsWith('_triangle_s')\n ? 'triangle'\n : 'circle'\n \"\n class=\"{{ 'icon-' + item.status }}\"\n ></aui-icon>\n {{ item.status | translate }}\n </div>\n <!-- asm: service mesh -->\n <div\n class=\"grid__field grid__field-servicemesh\"\n *ngIf=\"fields.includes(fieldsDef.ServiceMesh)\"\n >\n <span class=\"with-colon\">{{ 'belonged_servicemesh' | translate }}</span>\n <span> {{ item.serviceMeshName }} </span>\n <div class=\"des\">\n <ng-container *ngIf=\"item.serviceMeshIstioVersion\"\n >(Istio {{ item.serviceMeshIstioVersion }})</ng-container\n >\n </div>\n </div>\n\n <div\n class=\"grid__field grid__field-servicemesh\"\n *ngIf=\"fields.includes(fieldsDef.ServiceMesh)\"\n >\n <span class=\"with-colon\">{{ 'cluster' | translate }}</span>\n <span\n >{{ item.cluster\n }}<ng-container *ngIf=\"item.clusterDisplayName\"\n >({{ item.clusterDisplayName }})</ng-container\n >\n </span>\n <aui-tag\n type=\"primary\"\n size=\"mini\"\n *ngIf=\"item.clusterArch\"\n >\n {{ item.clusterArch }}\n </aui-tag>\n </div>\n\n <!-- mesh group -->\n\n <div\n class=\"grid__field grid__field-servicemesh\"\n *ngIf=\"fields.includes(fieldsDef.ServiceMeshGroup)\"\n >\n <span class=\"with-colon\">{{ 'cluster' | translate }}</span>\n <span>{{ item.cluster }} </span>\n </div>\n <!-- asm: istio -->\n <div\n class=\"grid__field grid__field-servicemesh\"\n *ngIf=\"fields.includes(fieldsDef.ServiceMeshGroup)\"\n >\n <span class=\"with-colon\">{{ 'Istio' }}</span>\n <span\n >{{ item.serviceMeshIstioVersion || ('not_deployed' | translate) }}\n </span>\n </div>\n\n <!-- time -->\n <div\n class=\"grid__field grid__field-time\"\n *ngIf=\"fields.includes(fieldsDef.Time) && !popupLite\"\n >\n <span class=\"with-colon\">{{ 'created_at' | translate }}</span>\n <span>{{ item.timestamp | aclRelativeTime }}</span>\n </div>\n <!-- action -->\n <div\n class=\"grid__field grid__field-action\"\n (click)=\"$event.stopPropagation()\"\n *ngIf=\"\n fields.includes(fieldsDef.Action) &&\n actionTemplateRef &&\n context !== 'popup'\n \"\n >\n <ng-container\n [ngTemplateOutlet]=\"actionTemplateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: item.__origin\n }\"\n ></ng-container>\n </div>\n </div>\n </div>\n <acl-resource-no-data\n *ngIf=\"!popupLite && !(displayData$ | async)?.length\"\n [isFiltered]=\"!!keyword\"\n [type]=\"type\"\n (refresh)=\"reload.emit()\"\n (clear)=\"keywordChange('')\"\n ></acl-resource-no-data>\n <acl-zero-state\n *ngIf=\"popupLite && !(displayData$ | async)?.length\"\n context=\"table\"\n ></acl-zero-state>\n</ng-container>\n<div\n class=\"loading\"\n *ngIf=\"loading\"\n>\n <acl-loading-mask\n [loading]=\"loading\"\n type=\"content\"\n ></acl-loading-mask>\n</div>\n", styles: [":host{display:flex;flex-direction:column;box-shadow:0 0 4px rgba(var(--aui-color-n-1),.16);padding:22px 20px 20px;background-color:rgb(var(--aui-color-n-10));border-radius:4px}.header{display:flex;align-items:center;margin-bottom:20px;height:28px}.header aui-search{width:260px}.header__title{font-size:18px;font-weight:500;line-height:28px;color:rgb(var(--aui-color-n-1))}.header__title--lite{font-size:16px;font-weight:700;line-height:22px}.header__desc{color:rgb(var(--aui-color-n-4))}.header__custom{flex:1;padding:0 36px}.header__display-mode{display:flex;border:1px solid rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-n-9));border-radius:var(--aui-border-radius-m);margin-left:16px;padding:1px}.switch-btn{cursor:pointer;width:24px;height:24px;border-radius:var(--aui-border-radius-m);display:inline-flex;align-items:center;justify-content:center}.switch-btn img{width:12px;height:12px}.switch-btn--selected{background-color:rgb(var(--aui-color-n-10));color:rgb(var(--aui-color-primary))}.grid{overflow-y:auto;padding:20px;background-color:rgb(var(--aui-color-n-9));border-radius:var(--aui-border-radius-l)}.grid::-webkit-scrollbar{width:8px;height:4px}.grid::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgb(var(--aui-color-n-7))}.grid::-webkit-scrollbar-thumb:hover{background-color:rgb(var(--aui-color-n-5))}.grid::-webkit-scrollbar-corner{background-color:transparent}.grid__item{display:flex;position:relative;flex-direction:row;border-radius:var(--aui-border-radius-l);padding:9px 20px;min-height:60px;color:rgb(var(--aui-color-n-1));align-items:center;cursor:pointer;background-color:rgb(var(--aui-color-n-10))}.grid__item:not(:last-child){margin-bottom:8px}.grid__item:not(.grid__item--disabled):hover{border-color:rgb(var(--aui-color-primary));box-shadow:0 0 8px rgba(var(--aui-color-primary),.5)}.grid__item--disabled{cursor:default}.grid__item--disabled,.grid__item--disabled:hover{background-color:rgb(var(--aui-color-n-9))}.grid__item--disabled .grid__field{opacity:.3}.grid__item--disabled .grid__field-servicemesh,.grid__item--disabled .grid__field-action{opacity:1}.grid__field{flex:2;line-height:20px}.grid__field:not(.grid__field-status){white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.grid__field:not(:last-child){margin-right:20px}.grid__field-servicemesh{flex:2;align-items:stretch;max-width:400px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid__field-servicemesh .des{font-size:12px;line-height:16px;color:rgb(var(--aui-color-n-4))}.grid__field-servicemesh aui-tag{margin-left:8px}.grid__field-status{display:flex;align-items:center}.grid__field-status aui-icon{font-size:16px;display:inline-flex;margin-right:4px}.grid__field-status .with-colon{display:none}.grid__field-icon{max-width:30px;display:inline-flex}.grid__field-name{flex:2;flex-direction:column;max-width:280px}.grid__field-name .name,.grid__field-name .des{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid__field-name .name{font-size:14px;font-weight:500;line-height:20px}.grid__field-name .name aui-icon{margin-left:4px}.grid__field-name .des{font-size:12px;line-height:16px;color:rgb(var(--aui-color-n-4))}.grid__field-action{max-width:30px}.grid--popup{max-height:382px;padding:12px}.grid--popup .grid__field-name .name{font-size:var(--aui-font-size-xl);line-height:var(--aui-line-height-xl);font-weight:var(--aui-font-weight-normal)}.grid--popup:not(.grid--popup--lite) .grid__item{padding:10px 20px;min-height:60px;font-size:14px;background-color:rgb(var(--aui-color-n-10))}.grid--popup:not(.grid--popup--lite) .grid__item--selected{border:1px solid rgb(var(--aui-color-n-7));border-radius:var(--aui-border-radius-l);background-color:rgb(var(--aui-color-primary));border-color:rgb(var(--aui-color-primary));color:#fff;cursor:default}.grid--popup:not(.grid--popup--lite) .grid__item--selected:hover{box-shadow:none}.grid--popup:not(.grid--popup--lite) .grid__item--selected .highlighted{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-n-10))}.grid--popup:not(.grid--popup--lite) .grid__item--selected .with-colon{font-weight:500}.grid--popup:not(.grid--popup--lite) .grid__item--selected .des{color:#fff}.grid--popup:not(.grid--popup--lite) .grid__item--selected ::ng-deep .aui-tag--primary{background-color:#fff;color:rgb(var(--aui-color-primary))}.grid--popup--lite{background-color:rgb(var(--aui-color-n-10));padding:0}.grid--popup--lite .grid__item{padding:10px 14px;min-height:44px;border:1px solid rgb(var(--aui-color-n-7))}.grid--popup--lite .grid__item .grid__field:not(:last-child){margin-right:12px}.grid--popup--lite .grid__item .grid__field-name .name{font-size:14px;line-height:25px;font-weight:400}.grid--popup--lite .grid__item .grid__field-icon{max-width:24px}.grid--popup--lite .grid__item .grid__item-selected-icon{display:inline-flex}.grid--popup--lite .grid__item .highlighted{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-n-10))}.grid--popup--lite .grid__item .with-colon{font-weight:500}.grid--popup--lite .grid__item .des{color:#fff}.grid--popup--lite .grid__item ::ng-deep .aui-tag--primary{background-color:#fff;color:rgb(var(--aui-color-primary))}.grid--popup--lite .grid__item--selected{background-color:rgb(var(--aui-color-b-7));border:1px solid rgb(var(--aui-color-primary))}.grid--popup--lite .grid__item:hover{border:1px solid rgb(var(--aui-color-primary));box-shadow:none}.grid--card{display:grid;grid-template-columns:repeat(auto-fill,minmax(208px,1fr));gap:20px 20px}.grid--card .grid__item{margin-bottom:0;height:290px;display:block;text-align:center;padding:40px 20px;border-radius:var(--aui-border-radius-l);position:relative}.grid--card .grid__item .belonged-cluster{position:static;padding-right:0}.grid--card .grid__item aui-tag{position:absolute;top:8px;right:8px}.grid--card .grid__field{margin-right:0;justify-content:center}.grid--card .grid__field-icon{max-width:100%;vertical-align:middle}.grid--card .grid__field-name{margin:20px 0 24px}.grid--card .grid__field-name .name,.grid--card .grid__field-name .des{justify-content:center}.grid--card .grid__field-name .name{font-size:20px;font-weight:500;line-height:28px;margin-bottom:2px}.grid--card .grid__field-name .des{font-size:14px;height:20px}.grid--card .grid__field-name~.grid__field:not(.grid__field-status){line-height:20px;font-size:14px;text-align:center}.grid--card .grid__field-status .with-colon{display:inline}.grid--card .grid__field-servicemesh:not(:last-of-type){margin-bottom:4px}.grid--card .grid__field-cluster{margin-bottom:4px}.grid--card .grid__field-action{position:absolute;right:10px;top:10px}.grid:not(.grid--popup--lite) .grid__item:not(.grid__item--selected){position:relative}.grid:not(.grid--popup--lite) .grid__item:not(.grid__item--selected):after{position:absolute;content:\"\";top:0;right:0;bottom:0;left:0;border:1px solid rgb(var(--aui-color-n-7));border-radius:4px;pointer-events:none;transition:all .2s ease-in-out}.grid:not(.grid--popup--lite) .grid__item:not(.grid__item--selected).disabled{background-color:rgb(var(--aui-color-n-8));color:rgb(var(--aui-color-n-6));cursor:not-allowed}.grid:not(.grid--popup--lite) .grid__item:not(.grid__item--selected):not(.disabled):hover:after{top:-4px;right:-4px;bottom:-4px;left:-4px;border-color:rgb(var(--aui-color-primary));box-shadow:inset 0 0 0 4px rgb(var(--aui-color-n-10)),0 0 8px rgba(var(--aui-color-primary),.5)}.grid:not(.grid--popup--lite) .grid__item:not(.grid__item--selected):not(.disabled):active:after{top:0;right:0;bottom:0;left:0;box-shadow:0 0 4px rgba(var(--aui-color-primary),.5)}.flex{display:flex}.highlighted{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-n-8))}.with-colon{font-weight:500}.with-colon:after{content:\":\";margin-right:8px}.icon-normal,.icon-enabled{color:rgb(var(--aui-color-green))}.icon-abnormal{color:rgb(var(--aui-color-red))}.icon-disabled{color:rgb(var(--aui-color-n-6))}.belonged-cluster{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;padding-right:44px}.belonged-cluster .with-colon+span{margin-right:8px}.belonged-cluster aui-tag{display:inline-flex}.loading{display:flex;height:60px;align-items:center;justify-content:center}acl-resource-no-data{flex:1;margin:40px 0 80px}acl-zero-state ::ng-deep .zero-placeholder{min-height:44px;padding:12px 10px}\n"] }]
|
|
587
|
+
args: [{ selector: 'acl-resource-data-grid', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"header\">\n <span\n class=\"header__title\"\n [ngClass]=\"{ 'header__title--lite': popupLite }\"\n >\n <span>{{ type | pure: pluralForm | translate }}</span\n ><span class=\"header__desc\"\n >\uFF08{{ (displayData$ | async)?.length || 0 }}\uFF09</span\n >\n </span>\n <div\n class=\"header__custom\"\n *ngIf=\"!popupLite\"\n >\n <ng-content select=\"[aclResourceGridHeader]\"></ng-content>\n </div>\n <div\n class=\"tw-flex-1\"\n *ngIf=\"popupLite\"\n ></div>\n <aui-search\n [searchButton]=\"false\"\n [placeholder]=\"'filter_by_name_or_display_name' | translate\"\n [keyword]=\"keyword\"\n (keywordChange)=\"keywordChange($event)\"\n [clearable]=\"true\"\n size=\"small\"\n ></aui-search>\n <span\n class=\"header__display-mode\"\n *ngIf=\"context === 'page'\"\n >\n <span\n class=\"switch-btn\"\n [ngClass]=\"{ 'switch-btn--selected': displayMode !== 'card' }\"\n (click)=\"setDisplayMode('row')\"\n >\n <aui-icon icon=\"list\"></aui-icon>\n </span>\n <span\n class=\"switch-btn\"\n [ngClass]=\"{ 'switch-btn--selected': displayMode === 'card' }\"\n (click)=\"setDisplayMode('card')\"\n >\n <aui-icon icon=\"grid\"></aui-icon>\n </span>\n </span>\n</div>\n<ng-container\n *ngIf=\"\n !loading &&\n (displayData$\n | async\n | pure: sortWithoutIstio\n | pure: filterDisabledData : context) as displayData\n \"\n>\n <div\n class=\"grid\"\n *ngIf=\"displayData.length\"\n #grid\n [ngClass]=\"{\n 'grid--card': displayMode === 'card' && context !== 'popup',\n 'grid--popup': context === 'popup',\n 'grid--popup--lite': context === 'popup' && popupLite,\n }\"\n >\n <div\n class=\"grid__item\"\n *ngFor=\"let item of displayData\"\n [ngClass]=\"{\n 'grid__item--selected':\n context === 'popup' && selectedUid === item.__origin.metadata.uid,\n 'grid__item--disabled': item.state?.disabled,\n }\"\n (click)=\"onSelect(item)\"\n [attr.data-test]=\"item.name + '/' + item.cluster\"\n [auiTooltip]=\"item.state?.tooltip\"\n [auiTooltipDisabled]=\"!item.state?.disabled || !item.state?.tooltip\"\n >\n <aui-icon\n *ngIf=\"selectedUid === item.__origin.metadata.uid\"\n class=\"check-triangle-badge\"\n icon=\"check\"\n ></aui-icon>\n <!-- icon -->\n <div class=\"grid__field grid__field-icon\">\n <acl-resource-icon\n [type]=\"type\"\n [color]=\"\n context === 'popup' &&\n !popupLite &&\n selectedUid === item.__origin.metadata.uid\n ? 'white'\n : 'blue'\n \"\n [displayMode]=\"displayMode\"\n ></acl-resource-icon>\n </div>\n <!-- name -->\n <div class=\"grid__field grid__field-name\">\n <div class=\"name\">\n <ng-container *ngFor=\"let str of getHighlightedNameStrs(item)\">\n <span [ngClass]=\"{ highlighted: str.isHighlighted }\">{{\n str.text\n }}</span>\n </ng-container>\n </div>\n <div\n class=\"des\"\n *ngIf=\"!popupLite\"\n >\n <ng-container *ngFor=\"let str of getHighlightedDisplayNameStrs(item)\">\n <span [ngClass]=\"{ highlighted: str.isHighlighted }\">{{\n str.text\n }}</span>\n </ng-container>\n </div>\n </div>\n <!-- ns: cluster -->\n <div\n class=\"grid__field flex grid__field-cluster\"\n *ngIf=\"fields.includes(fieldsDef.Cluster)\"\n >\n <span\n class=\"belonged-cluster tw-flex\"\n auiTooltip=\"{{\n ('belonged_cluster' | translate) + ': ' + item.cluster\n }}\"\n >\n <span class=\"with-colon\">{{ 'belonged_cluster' | translate }}</span>\n <span class=\"tw-text-ellipsis tw-overflow-hidden\"\n >{{ item.cluster\n }}<ng-container *ngIf=\"item.clusterDisplayName\"\n >({{ item.clusterDisplayName }})</ng-container\n >\n </span>\n <aui-tag\n type=\"primary\"\n size=\"mini\"\n *ngIf=\"item.clusterArch\"\n >\n {{ item.clusterArch }}\n </aui-tag>\n </span>\n </div>\n <!-- project: status -->\n <div\n class=\"grid__field grid__field-status {{\n 'grid__field-status--' + item.status\n }}\"\n *ngIf=\"fields.includes(fieldsDef.Status)\"\n >\n <label\n *ngIf=\"popupLite\"\n class=\"tw-text-help-text tw-mr-8\"\n >{{ 'status' | translate }}:</label\n >\n <span class=\"with-colon\">{{ 'status' | translate }}</span>\n <aui-icon\n [icon]=\"statusIcon[item.status]\"\n [background]=\"\n statusIcon[item.status].endsWith('_triangle_s')\n ? 'triangle'\n : 'circle'\n \"\n class=\"{{ 'icon-' + item.status }}\"\n ></aui-icon>\n {{ item.status | translate }}\n </div>\n <!-- asm: service mesh -->\n <div\n class=\"grid__field grid__field-servicemesh\"\n *ngIf=\"fields.includes(fieldsDef.ServiceMesh)\"\n >\n <span class=\"with-colon\">{{ 'belonged_servicemesh' | translate }}</span>\n <span> {{ item.serviceMeshName }} </span>\n <div class=\"des\">\n <ng-container *ngIf=\"item.serviceMeshIstioVersion\"\n >(Istio {{ item.serviceMeshIstioVersion }})</ng-container\n >\n </div>\n </div>\n\n <div\n class=\"grid__field grid__field-servicemesh\"\n *ngIf=\"fields.includes(fieldsDef.ServiceMesh)\"\n >\n <span class=\"with-colon\">{{ 'cluster' | translate }}</span>\n <span\n >{{ item.cluster\n }}<ng-container *ngIf=\"item.clusterDisplayName\"\n >({{ item.clusterDisplayName }})</ng-container\n >\n </span>\n <aui-tag\n type=\"primary\"\n size=\"mini\"\n *ngIf=\"item.clusterArch\"\n >\n {{ item.clusterArch }}\n </aui-tag>\n </div>\n\n <!-- mesh group -->\n\n <div\n class=\"grid__field grid__field-servicemesh\"\n *ngIf=\"fields.includes(fieldsDef.ServiceMeshGroup)\"\n >\n <span class=\"with-colon\">{{ 'cluster' | translate }}</span>\n <span>{{ item.cluster }} </span>\n </div>\n <!-- asm: istio -->\n <div\n class=\"grid__field grid__field-servicemesh\"\n *ngIf=\"fields.includes(fieldsDef.ServiceMeshGroup)\"\n >\n <span class=\"with-colon\">{{ 'Istio' }}</span>\n <span\n >{{ item.serviceMeshIstioVersion || ('not_deployed' | translate) }}\n </span>\n </div>\n\n <!-- time -->\n <div\n class=\"grid__field grid__field-time\"\n *ngIf=\"fields.includes(fieldsDef.Time) && !popupLite\"\n >\n <span class=\"with-colon\">{{ 'created_at' | translate }}</span>\n <span>{{ item.timestamp | aclRelativeTime }}</span>\n </div>\n <!-- action -->\n <div\n class=\"grid__field grid__field-action\"\n (click)=\"$event.stopPropagation()\"\n *ngIf=\"\n fields.includes(fieldsDef.Action) &&\n actionTemplateRef &&\n context !== 'popup'\n \"\n >\n <ng-container\n [ngTemplateOutlet]=\"actionTemplateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: item.__origin,\n }\"\n ></ng-container>\n </div>\n </div>\n </div>\n <acl-resource-no-data\n *ngIf=\"!popupLite && !(displayData$ | async)?.length\"\n [isFiltered]=\"!!keyword\"\n [type]=\"type\"\n (refresh)=\"reload.emit()\"\n (clear)=\"keywordChange('')\"\n ></acl-resource-no-data>\n <acl-zero-state\n *ngIf=\"popupLite && !(displayData$ | async)?.length\"\n context=\"table\"\n ></acl-zero-state>\n</ng-container>\n<div\n class=\"loading\"\n *ngIf=\"loading\"\n>\n <acl-loading-mask\n [loading]=\"loading\"\n type=\"content\"\n ></acl-loading-mask>\n</div>\n", styles: [":host{display:flex;flex-direction:column;box-shadow:0 0 4px rgba(var(--aui-color-n-1),.16);padding:22px 20px 20px;background-color:rgb(var(--aui-color-n-10));border-radius:4px}.header{display:flex;align-items:center;margin-bottom:20px;height:28px}.header aui-search{width:260px}.header__title{font-size:18px;font-weight:500;line-height:28px;color:rgb(var(--aui-color-n-1))}.header__title--lite{font-size:16px;font-weight:700;line-height:22px}.header__desc{color:rgb(var(--aui-color-n-4))}.header__custom{flex:1;padding:0 36px}.header__display-mode{display:flex;border:1px solid rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-n-9));border-radius:var(--aui-border-radius-m);margin-left:16px;padding:1px}.switch-btn{cursor:pointer;width:24px;height:24px;border-radius:var(--aui-border-radius-m);display:inline-flex;align-items:center;justify-content:center}.switch-btn img{width:12px;height:12px}.switch-btn--selected{background-color:rgb(var(--aui-color-n-10));color:rgb(var(--aui-color-primary))}.grid{overflow-y:auto;padding:20px;background-color:rgb(var(--aui-color-n-9));border-radius:var(--aui-border-radius-l)}.grid::-webkit-scrollbar{width:8px;height:4px}.grid::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgb(var(--aui-color-n-7))}.grid::-webkit-scrollbar-thumb:hover{background-color:rgb(var(--aui-color-n-5))}.grid::-webkit-scrollbar-corner{background-color:transparent}.grid__item{display:flex;position:relative;flex-direction:row;border-radius:var(--aui-border-radius-l);padding:9px 20px;min-height:60px;color:rgb(var(--aui-color-n-1));align-items:center;cursor:pointer;background-color:rgb(var(--aui-color-n-10))}.grid__item:not(:last-child){margin-bottom:8px}.grid__item:not(.grid__item--disabled):hover{border-color:rgb(var(--aui-color-primary));box-shadow:0 0 8px rgba(var(--aui-color-primary),.5)}.grid__item--disabled{cursor:default}.grid__item--disabled,.grid__item--disabled:hover{background-color:rgb(var(--aui-color-n-9))}.grid__item--disabled .grid__field{opacity:.3}.grid__item--disabled .grid__field-servicemesh,.grid__item--disabled .grid__field-action{opacity:1}.grid__field{flex:2;line-height:20px}.grid__field:not(.grid__field-status){white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.grid__field:not(:last-child){margin-right:20px}.grid__field-servicemesh{flex:2;align-items:stretch;max-width:400px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid__field-servicemesh .des{font-size:12px;line-height:16px;color:rgb(var(--aui-color-n-4))}.grid__field-servicemesh aui-tag{margin-left:8px}.grid__field-status{display:flex;align-items:center}.grid__field-status aui-icon{font-size:16px;display:inline-flex;margin-right:4px}.grid__field-status .with-colon{display:none}.grid__field-icon{max-width:30px;display:inline-flex}.grid__field-name{flex:2;flex-direction:column;max-width:280px}.grid__field-name .name,.grid__field-name .des{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid__field-name .name{font-size:14px;font-weight:500;line-height:20px}.grid__field-name .name aui-icon{margin-left:4px}.grid__field-name .des{font-size:12px;line-height:16px;color:rgb(var(--aui-color-n-4))}.grid__field-action{max-width:30px}.grid--popup{max-height:382px;padding:12px}.grid--popup .grid__field-name .name{font-size:var(--aui-font-size-xl);line-height:var(--aui-line-height-xl);font-weight:var(--aui-font-weight-normal)}.grid--popup:not(.grid--popup--lite) .grid__item{padding:10px 20px;min-height:60px;font-size:14px;background-color:rgb(var(--aui-color-n-10))}.grid--popup:not(.grid--popup--lite) .grid__item--selected{border:1px solid rgb(var(--aui-color-n-7));border-radius:var(--aui-border-radius-l);background-color:rgb(var(--aui-color-primary));border-color:rgb(var(--aui-color-primary));color:#fff;cursor:default}.grid--popup:not(.grid--popup--lite) .grid__item--selected:hover{box-shadow:none}.grid--popup:not(.grid--popup--lite) .grid__item--selected .highlighted{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-n-10))}.grid--popup:not(.grid--popup--lite) .grid__item--selected .with-colon{font-weight:500}.grid--popup:not(.grid--popup--lite) .grid__item--selected .des{color:#fff}.grid--popup:not(.grid--popup--lite) .grid__item--selected ::ng-deep .aui-tag--primary{background-color:#fff;color:rgb(var(--aui-color-primary))}.grid--popup--lite{background-color:rgb(var(--aui-color-n-10));padding:0}.grid--popup--lite .grid__item{padding:10px 14px;min-height:44px;border:1px solid rgb(var(--aui-color-n-7))}.grid--popup--lite .grid__item .grid__field:not(:last-child){margin-right:12px}.grid--popup--lite .grid__item .grid__field-name .name{font-size:14px;line-height:25px;font-weight:400}.grid--popup--lite .grid__item .grid__field-icon{max-width:24px}.grid--popup--lite .grid__item .grid__item-selected-icon{display:inline-flex}.grid--popup--lite .grid__item .highlighted{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-n-10))}.grid--popup--lite .grid__item .with-colon{font-weight:500}.grid--popup--lite .grid__item .des{color:#fff}.grid--popup--lite .grid__item ::ng-deep .aui-tag--primary{background-color:#fff;color:rgb(var(--aui-color-primary))}.grid--popup--lite .grid__item--selected{background-color:rgb(var(--aui-color-b-7));border:1px solid rgb(var(--aui-color-primary))}.grid--popup--lite .grid__item:hover{border:1px solid rgb(var(--aui-color-primary));box-shadow:none}.grid--card{display:grid;grid-template-columns:repeat(auto-fill,minmax(208px,1fr));gap:20px 20px}.grid--card .grid__item{margin-bottom:0;height:290px;display:block;text-align:center;padding:40px 20px;border-radius:var(--aui-border-radius-l);position:relative}.grid--card .grid__item .belonged-cluster{position:static;padding-right:0}.grid--card .grid__item aui-tag{position:absolute;top:8px;right:8px}.grid--card .grid__field{margin-right:0;justify-content:center}.grid--card .grid__field-icon{max-width:100%;vertical-align:middle}.grid--card .grid__field-name{margin:20px 0 24px}.grid--card .grid__field-name .name,.grid--card .grid__field-name .des{justify-content:center}.grid--card .grid__field-name .name{font-size:20px;font-weight:500;line-height:28px;margin-bottom:2px}.grid--card .grid__field-name .des{font-size:14px;height:20px}.grid--card .grid__field-name~.grid__field:not(.grid__field-status){line-height:20px;font-size:14px;text-align:center}.grid--card .grid__field-status .with-colon{display:inline}.grid--card .grid__field-servicemesh:not(:last-of-type){margin-bottom:4px}.grid--card .grid__field-cluster{margin-bottom:4px}.grid--card .grid__field-action{position:absolute;right:10px;top:10px}.grid:not(.grid--popup--lite) .grid__item:not(.grid__item--selected){position:relative}.grid:not(.grid--popup--lite) .grid__item:not(.grid__item--selected):after{position:absolute;content:\"\";top:0;right:0;bottom:0;left:0;border:1px solid rgb(var(--aui-color-n-7));border-radius:4px;pointer-events:none;transition:all .2s ease-in-out}.grid:not(.grid--popup--lite) .grid__item:not(.grid__item--selected).disabled{background-color:rgb(var(--aui-color-n-8));color:rgb(var(--aui-color-n-6));cursor:not-allowed}.grid:not(.grid--popup--lite) .grid__item:not(.grid__item--selected):not(.disabled):hover:after{top:-4px;right:-4px;bottom:-4px;left:-4px;border-color:rgb(var(--aui-color-primary));box-shadow:inset 0 0 0 4px rgb(var(--aui-color-n-10)),0 0 8px rgba(var(--aui-color-primary),.5)}.grid:not(.grid--popup--lite) .grid__item:not(.grid__item--selected):not(.disabled):active:after{top:0;right:0;bottom:0;left:0;box-shadow:0 0 4px rgba(var(--aui-color-primary),.5)}.flex{display:flex}.highlighted{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-n-8))}.with-colon{font-weight:500}.with-colon:after{content:\":\";margin-right:8px}.icon-normal,.icon-enabled{color:rgb(var(--aui-color-green))}.icon-abnormal{color:rgb(var(--aui-color-red))}.icon-disabled{color:rgb(var(--aui-color-n-6))}.belonged-cluster{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;padding-right:44px}.belonged-cluster .with-colon+span{margin-right:8px}.belonged-cluster aui-tag{display:inline-flex}.loading{display:flex;height:60px;align-items:center;justify-content:center}acl-resource-no-data{flex:1;margin:40px 0 80px}acl-zero-state ::ng-deep .zero-placeholder{min-height:44px;padding:12px 10px}\n"] }]
|
|
554
588
|
}], null, { grid: [{
|
|
555
589
|
type: ViewChild,
|
|
556
590
|
args: ['grid']
|
|
@@ -578,4 +612,4 @@ __decorate([
|
|
|
578
612
|
type: Output
|
|
579
613
|
}] }); })();
|
|
580
614
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ResourceDataGridComponent, { className: "ResourceDataGridComponent" }); })();
|
|
581
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2J1c2luZXNzL3Jlc291cmNlLXNlbGVjdC9pbnRlcm5hbHMvZGF0YS1ncmlkL2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9idXNpbmVzcy9yZXNvdXJjZS1zZWxlY3QvaW50ZXJuYWxzL2RhdGEtZ3JpZC90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTlELE9BQU8sRUFDTCxpQkFBaUIsR0FLbEIsTUFBTSxhQUFhLENBQUM7Ozs7Ozs7Ozs7OztJQ2JuQiwrQkFHQztJQUNDLGtCQUEwRDtJQUM1RCxpQkFBTTs7O0lBQ04sMEJBR087Ozs7SUFhTCxBQUpGLGdDQUdDLGVBS0U7SUFEQyxxTEFBUyxzQkFBZSxLQUFLLENBQUMsS0FBQztJQUUvQiwrQkFBaUM7SUFDbkMsaUJBQU87SUFDUCxnQ0FJQztJQURDLHFMQUFTLHNCQUFlLE1BQU0sQ0FBQyxLQUFDO0lBRWhDLCtCQUFpQztJQUVyQyxBQURFLGlCQUFPLEVBQ0Y7OztJQVpILGNBQThEO0lBQTlELG1GQUE4RDtJQU85RCxlQUE4RDtJQUE5RCxtRkFBOEQ7OztJQXVDOUQsK0JBSVk7OztJQWtCUiw2QkFBK0Q7SUFDN0QsZ0NBQXFEO0lBQUEsWUFFbkQ7SUFBQSxpQkFBTzs7OztJQUZILGNBQThDO0lBQTlDLDBFQUE4QztJQUFDLGNBRW5EO0lBRm1ELGlDQUVuRDs7O0lBT0osNkJBQXVDO0lBQUEsWUFFckM7Ozs7SUFGcUMsY0FFckM7SUFGcUMseUNBRXJDOzs7SUFOSiwrQkFHQztJQUNDLDhIQUF1QztJQUd6QyxpQkFBTTs7O0lBSFcsY0FBc0I7SUFBdEIsMENBQXNCOzs7SUFtQmpDLDZCQUNDO0lBQUEsWUFBK0I7Ozs7SUFBL0IsY0FBK0I7SUFBL0IsMkRBQStCOzs7SUFHcEMsbUNBSUM7SUFDQyxZQUNGO0lBQUEsaUJBQVU7OztJQURSLGNBQ0Y7SUFERSxvREFDRjs7O0lBbkJGLEFBSkYsK0JBR0MsZUFNRTs7SUFDQyxnQ0FBeUI7SUFBQSxZQUFvQzs7SUFBQSxpQkFBTztJQUNwRSxnQ0FDRztJQUFBLFlBQ0M7SUFBQSw4SEFDQztJQUVMLGlCQUFPO0lBQ1AscUhBSUM7SUFJTCxBQURFLGlCQUFPLEVBQ0g7OztJQW5CRixjQUVHO0lBRkgseUdBRUc7SUFFc0IsZUFBb0M7SUFBcEMsOERBQW9DO0lBRTFELGVBQ0M7SUFERCxxQ0FDQztJQUFlLGNBQTZCO0lBQTdCLGlEQUE2QjtJQU83QyxjQUFzQjtJQUF0QiwwQ0FBc0I7OztJQWEzQixpQ0FHRztJQUFBLFlBQTJCOztJQUFBLGlCQUM3Qjs7SUFERSxjQUEyQjtJQUEzQiw4REFBMkI7OztJQVRoQywyQkFLQztJQUNDLGlIQUdHO0lBRUgsZ0NBQXlCO0lBQUEsWUFBMEI7O0lBQUEsaUJBQU87SUFDMUQsK0JBUVk7SUFDWixZQUNGOztJQUFBLGlCQUFNOzs7O0lBckJKLHlHQUVHO0lBSUEsY0FBZTtJQUFmLHVDQUFlO0lBSU8sZUFBMEI7SUFBMUIscURBQTBCO0lBUWpELGVBQW1DO0lBQW5DLHVDQUFtQztJQUxuQyxBQURBLHdEQUFnQyxpR0FLL0I7SUFHSCxjQUNGO0lBREUsc0VBQ0Y7OztJQVNJLDZCQUNHO0lBQUEsWUFBMEM7Ozs7SUFBMUMsY0FBMEM7SUFBMUMsc0VBQTBDOzs7SUFKL0MsQUFKRiwrQkFHQyxlQUMwQjtJQUFBLFlBQXdDOztJQUFBLGlCQUFPO0lBQ3hFLDRCQUFNO0lBQUMsWUFBMkI7SUFBQSxpQkFBTztJQUN6QywrQkFBaUI7SUFDZiwrSEFDRztJQUdQLEFBREUsaUJBQU0sRUFDRjs7O0lBUHFCLGVBQXdDO0lBQXhDLGtFQUF3QztJQUMxRCxlQUEyQjtJQUEzQix3REFBMkI7SUFFakIsZUFBa0M7SUFBbEMsc0RBQWtDOzs7SUFhL0MsNkJBQ0M7SUFBQSxZQUErQjs7OztJQUEvQixjQUErQjtJQUEvQiwyREFBK0I7OztJQUdwQyxtQ0FJQztJQUNDLFlBQ0Y7SUFBQSxpQkFBVTs7O0lBRFIsY0FDRjtJQURFLG9EQUNGOzs7SUFiQSxBQUpGLCtCQUdDLGVBQzBCO0lBQUEsWUFBMkI7O0lBQUEsaUJBQU87SUFDM0QsNEJBQ0c7SUFBQSxZQUNDO0lBQUEsK0hBQ0M7SUFFTCxpQkFBTztJQUNQLHNIQUlDO0lBR0gsaUJBQU07OztJQWRxQixlQUEyQjtJQUEzQixxREFBMkI7SUFFakQsZUFDQztJQURELHFDQUNDO0lBQWUsY0FBNkI7SUFBN0IsaURBQTZCO0lBTzdDLGNBQXNCO0lBQXRCLDBDQUFzQjs7O0lBWXpCLEFBSkYsK0JBR0MsZUFDMEI7SUFBQSxZQUEyQjs7SUFBQSxpQkFBTztJQUMzRCw0QkFBTTtJQUFBLFlBQW1CO0lBQzNCLEFBRDJCLGlCQUFPLEVBQzVCOzs7SUFGcUIsZUFBMkI7SUFBM0IscURBQTJCO0lBQzlDLGVBQW1CO0lBQW5CLCtDQUFtQjs7O0lBT3pCLEFBSkYsK0JBR0MsZUFDMEI7SUFBQSxZQUFhO0lBQUEsaUJBQU87SUFDN0MsNEJBQ0c7SUFBQSxZQUNIOztJQUNGLEFBREUsaUJBQU8sRUFDSDs7O0lBSnFCLGVBQWE7SUFBYiw2QkFBYTtJQUVuQyxlQUNIO0lBREcsdUdBQ0g7OztJQVFBLEFBSkYsK0JBR0MsZUFDMEI7SUFBQSxZQUE4Qjs7SUFBQSxpQkFBTztJQUM5RCw0QkFBTTtJQUFBLFlBQXNDOztJQUM5QyxBQUQ4QyxpQkFBTyxFQUMvQzs7O0lBRnFCLGVBQThCO0lBQTlCLHdEQUE4QjtJQUNqRCxlQUFzQztJQUF0Qyw2REFBc0M7Ozs7SUFHOUMsK0JBUUM7SUFOQyxrTEFBUyx3QkFBd0IsS0FBQztJQU9sQyw0QkFLZ0I7SUFDbEIsaUJBQU07Ozs7SUFMRixjQUFzQztJQUN0QyxBQURBLDJEQUFzQyx5RUFHcEM7Ozs7SUFqTFIsK0JBWUM7SUFKQyxtT0FBUyx3QkFBYyxLQUFDO0lBS3hCLGlIQUlDO0lBRUQsK0JBQTBDO0lBQ3hDLHdDQVVxQjtJQUN2QixpQkFBTTtJQUdKLEFBREYsK0JBQTBDLGNBQ3RCO0lBQ2hCLHlIQUErRDtJQUtqRSxpQkFBTTtJQUNOLHVHQUdDO0lBS0gsaUJBQU07SUFtSE4sQUFSQSxBQVhBLEFBUkEsQUF0QkEsQUFiQSxBQXhCQSxBQTNCQSx3R0FHQywyRkE2QkEsNEZBc0JBLDRGQWFBLDRGQXNCQSw0RkFRQSw0RkFXQSw0RkFhQTtJQVFILGlCQUFNOzs7O0lBektKLEFBREEsQUFQQSxnTUFJRSxvRUFHZ0MsMklBQ2tDOztJQUdqRSxjQUFnRDtJQUFoRCwyRUFBZ0Q7SUFPL0MsZUFBYTtJQVFiLEFBUEEsQUFEQSxrQ0FBYSxxSUFPWixtQ0FDMEI7SUFNRyxlQUErQjtJQUEvQixnRUFBK0I7SUFRNUQsY0FBZ0I7SUFBaEIsd0NBQWdCO0lBVWxCLGNBQXdDO0lBQXhDLHVFQUF3QztJQTZCeEMsY0FBdUM7SUFBdkMsc0VBQXVDO0lBc0J2QyxjQUE0QztJQUE1QywyRUFBNEM7SUFhNUMsY0FBNEM7SUFBNUMsMkVBQTRDO0lBc0I1QyxjQUFpRDtJQUFqRCxnRkFBaUQ7SUFRakQsY0FBaUQ7SUFBakQsZ0ZBQWlEO0lBV2pELGNBQW1EO0lBQW5ELHlGQUFtRDtJQVNuRCxjQUtUO0lBTFMsZ0lBS1Q7OztJQXRMRSxrQ0FTQztJQUNDLG1HQVlDO0lBeUtILGlCQUFNOzs7O0lBM0xKLDZMQUlFO0lBSWlCLGVBQWM7SUFBZCx3Q0FBYzs7OztJQW9MbkMsZ0RBTUM7SUFEQyxBQURBLHlPQUFXLG9CQUFhLEtBQUMsd05BQ2hCLHFCQUFjLEVBQUUsQ0FBQyxLQUFDO0lBQzVCLGlCQUF1Qjs7O0lBSHRCLEFBREEsNkNBQXdCLHFCQUNYOzs7SUFJZixxQ0FHa0I7OztJQW5OcEIsNkJBUUM7SUFpTUMsQUFoTUEsMkZBU0MsZ0hBNkxBOztJQUNELGlIQUdDOzs7Ozs7OztJQXhNRSxjQUF3QjtJQUF4Qiw0Q0FBd0I7SUErTHhCLGNBQW1EO0lBQW5ELG9JQUFtRDtJQU9uRCxlQUFrRDtJQUFsRCxtSUFBa0Q7OztJQUl2RCwrQkFHQztJQUNDLHVDQUdvQjtJQUN0QixpQkFBTTs7O0lBSEYsY0FBbUI7SUFBbkIsd0NBQW1COztBRDNPdkIsTUFBTSxPQUFPLHlCQUF5QjtJQU50QztRQWNFLFlBQU8sR0FBaUIsTUFBTSxDQUFDO1FBRy9CLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFHbEIsU0FBSSxHQUFtQixFQUFFLENBQUM7UUFNMUIsU0FBSSxHQUFhLFdBQVcsQ0FBQztRQUc3QixXQUFNLEdBQXdCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFTdkQsWUFBTyxHQUFHLElBQUksQ0FBQztRQUdmLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUc5QyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUdwQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUVsQyxZQUFPLEdBQUcsRUFBRSxDQUFDO1FBRWIsY0FBUyxHQUFHLGlCQUFpQixDQUFDO1FBRTlCLGdCQUFXLEdBQWdCLEtBQUssQ0FBQztRQUVqQyxZQUFPLEdBQUcsSUFBSSxhQUFhLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFFdEIsbUJBQWMsR0FBRyxrQkFBa0IsQ0FBQztRQUk3QyxzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFFbEMsZUFBVSxHQUEyQjtZQUNuQyxNQUFNLEVBQUUsZ0JBQWdCO1lBQ3hCLFFBQVEsRUFBRSx3QkFBd0I7WUFDbEMsT0FBTyxFQUFFLGdCQUFnQjtZQUN6QixRQUFRLEVBQUUsZ0JBQWdCO1NBQzNCLENBQUM7UUFtREYsMkJBQXNCLEdBQUcsQ0FBQyxJQUFrQixFQUFFLEVBQUU7WUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDbEIsT0FBTztvQkFDTDt3QkFDRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7cUJBQ2hCO2lCQUNGLENBQUM7WUFDSixDQUFDO1lBQ0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUMzQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDdkUsTUFBTSxHQUFHLEdBR0osRUFBRSxDQUFDO1lBQ1IsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1lBQ1osS0FBSyxNQUFNLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO2dCQUN0QyxNQUFNLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztnQkFDN0IsR0FBRyxDQUFDLElBQUksQ0FBQztvQkFDUCxJQUFJLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO2lCQUMvQixDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDMUIsR0FBRyxDQUFDLElBQUksQ0FBQzt3QkFDUCxJQUFJLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO3dCQUNwRCxhQUFhLEVBQUUsSUFBSTtxQkFDcEIsQ0FBQyxDQUFDO2dCQUNMLENBQUM7Z0JBQ0QsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztZQUNsQyxDQUFDO1lBQ0QsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLENBQUM7UUE4QkYscUJBQWdCLEdBQUcsQ0FBQyxJQUFvQixFQUFFLEVBQUU7WUFDMUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLHVCQUF1QixDQUFDLENBQUM7WUFDekUsT0FBTyxDQUFDLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsRUFBRSxHQUFHLFlBQVksQ0FBQyxDQUFDO1FBQzlELENBQUMsQ0FBQztLQUtIO0lBbkxDLElBQXVCLElBQUksQ0FBQyxJQUE2QjtRQUN2RCxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdEMsQ0FBQztJQUNILENBQUM7SUEyREQsUUFBUTtRQUNOLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsV0FBVztZQUNkLElBQUksQ0FBQyxPQUFPLEtBQUssT0FBTztnQkFDdEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTO29CQUNkLENBQUMsQ0FBQyxVQUFVO29CQUNaLENBQUMsQ0FBQyxLQUFLO2dCQUNULENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO29CQUNyQyxDQUFDLENBQUUsV0FBMkI7b0JBQzlCLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDZCxJQUFJLENBQUMsWUFBWSxHQUFHLGFBQWEsQ0FBQztZQUNoQyxJQUFJLENBQUMsS0FBSztZQUNWLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNqQyxDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNqQixNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDaEMsT0FBTyxDQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQzdDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUNGLENBQUM7SUFDSixDQUFDO0lBRU8sVUFBVSxDQUFDLFFBQXFCO1FBQ3RDLElBQ0UsSUFBSSxDQUFDLE9BQU8sS0FBSyxNQUFNO1lBQ3ZCLElBQUksQ0FBQyxpQkFBaUI7WUFDdEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFDbEIsQ0FBQztZQUNELE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQ3RDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxXQUFXLENBQ3hELENBQUM7UUFDRixNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzNELElBQ0UsWUFBWSxHQUFHLENBQUMsQ0FBQztZQUNqQixTQUFTLEdBQUcsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLFlBQVksRUFDdEQsQ0FBQztZQUNELFFBQVEsQ0FBQyxRQUFRLENBQUM7Z0JBQ2hCLEdBQUcsRUFBRSxTQUFTLEdBQUcsWUFBWTthQUM5QixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztJQUNoQyxDQUFDO0lBaUNELFFBQVEsQ0FBQyxJQUFrQjtRQUN6QixJQUNFLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUTtZQUNwQixJQUFJLENBQUMsV0FBVyxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFDL0MsQ0FBQztZQUNELE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBaUI7UUFDOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsYUFBYSxDQUFDLE9BQWU7UUFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELGtCQUFrQixDQUFDLElBQW9CLEVBQUUsT0FBcUI7UUFDNUQscUNBQXFDO1FBQ3JDLE9BQU8sQ0FDTCxPQUFPLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQ3pELENBQUM7SUFDbEIsQ0FBQztJQU9ELFVBQVUsQ0FBQyxJQUFjO1FBQ3ZCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RCLENBQUM7MEZBbkxVLHlCQUF5QjtvRUFBekIseUJBQXlCOzs7Ozs7O1lDMUJsQyxBQUpGLEFBREYsOEJBQW9CLGNBSWpCLFdBQ087WUFBQSxZQUF5Qzs7O1lBQUEsaUJBQzlDO1lBQUEsK0JBQ0U7WUFBQSxZQUEyQzs7WUFFaEQsQUFGZ0QsaUJBQzdDLEVBQ0k7WUFPUCxBQU5BLDBFQUdDLCtEQU1BO1lBQ0Qsc0NBT0M7O1lBSEMsaUlBQWlCLHlCQUFxQixJQUFDO1lBR3hDLGlCQUFhO1lBQ2QsOEVBR0M7WUFnQkgsaUJBQU07WUFDTiw4RkFRQzs7OztZQTZNRCw0RUFHQzs7O1lBclFHLGNBQWdEO1lBQWhELG9FQUFnRDtZQUUxQyxlQUF5QztZQUF6Qyw0RkFBeUM7WUFFNUMsZUFBMkM7WUFBM0MscUlBQTJDO1lBSzdDLGVBQWdCO1lBQWhCLHFDQUFnQjtZQU1oQixjQUFlO1lBQWYsb0NBQWU7WUFHaEIsY0FBc0I7WUFJdEIsQUFGQSxBQURBLEFBREEsb0NBQXNCLHlFQUNzQyx3QkFDekMsbUJBRUQ7WUFLakIsZUFBd0I7WUFBeEIsNkNBQXdCO1lBbUIxQixjQUs0QztZQUw1QywwTEFLNEM7WUFpTjVDLGVBQWE7WUFBYixrQ0FBYTs7O0FEdk5kO0lBREMsZUFBZSxFQUFFOzhCQUNYLFVBQVU7d0RBQWlCO2lGQWpCdkIseUJBQXlCO2NBTnJDLFNBQVM7MkJBQ0Usd0JBQXdCLG1CQUdqQix1QkFBdUIsQ0FBQyxNQUFNO2dCQUd4QixJQUFJO2tCQUExQixTQUFTO21CQUFDLE1BQU07WUFPakIsT0FBTztrQkFETixLQUFLO1lBSU4sU0FBUztrQkFEUixLQUFLO1lBSU4sSUFBSTtrQkFESCxLQUFLO1lBSU4sS0FBSyxNQUdMLElBQUk7a0JBREgsS0FBSztZQUlOLE1BQU07a0JBREwsS0FBSztZQUlOLGlCQUFpQjtrQkFEaEIsS0FBSztZQUlOLFdBQVc7a0JBRFYsS0FBSztZQUlOLE9BQU87a0JBRE4sS0FBSztZQUlOLFVBQVU7a0JBRFQsTUFBTTtZQUlQLE1BQU07a0JBREwsTUFBTTtZQUlQLE1BQU07a0JBREwsTUFBTTs7a0ZBeENJLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRpZmZlcmVuY2UgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgcGx1cmFsIH0gZnJvbSAncGx1cmFsaXplJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE9ic2VydmFibGVJbnB1dCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBVc2FnZUNvbnRleHQgfSBmcm9tICcuLi8uLi9iYXNlLWxpc3QnO1xuaW1wb3J0IHtcbiAgQ29uZmlndXJhYmxlRmllbGQsXG4gIERhdGFJdGVtLFxuICBEYXRhSXRlbUJhc2UsXG4gIERhdGFUeXBlLFxuICBEaXNwbGF5TW9kZSxcbn0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtcmVzb3VyY2UtZGF0YS1ncmlkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbXBsYXRlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdHlsZS5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBSZXNvdXJjZURhdGFHcmlkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQFZpZXdDaGlsZCgnZ3JpZCcpIHNldCBncmlkKGdyaWQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7XG4gICAgaWYgKGdyaWQpIHtcbiAgICAgIHRoaXMuaW5pdFNjcm9sbChncmlkLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGNvbnRleHQ6IFVzYWdlQ29udGV4dCA9ICdwYWdlJztcblxuICBASW5wdXQoKVxuICBwb3B1cExpdGUgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBkYXRhOiBEYXRhSXRlbUJhc2VbXSA9IFtdO1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBkYXRhJDogT2JzZXJ2YWJsZTxEYXRhSXRlbUJhc2VbXT47XG5cbiAgQElucHV0KClcbiAgdHlwZTogRGF0YVR5cGUgPSAnbmFtZXNwYWNlJztcblxuICBASW5wdXQoKVxuICBmaWVsZHM6IENvbmZpZ3VyYWJsZUZpZWxkW10gPSBbQ29uZmlndXJhYmxlRmllbGQuVGltZV07XG5cbiAgQElucHV0KClcbiAgYWN0aW9uVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQElucHV0KClcbiAgc2VsZWN0ZWRVaWQ6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBsb2FkaW5nID0gdHJ1ZTtcblxuICBAT3V0cHV0KClcbiAgc2VsZWN0SXRlbSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0YUl0ZW1CYXNlPigpO1xuXG4gIEBPdXRwdXQoKVxuICBmaWx0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVsb2FkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGtleXdvcmQgPSAnJztcblxuICBmaWVsZHNEZWYgPSBDb25maWd1cmFibGVGaWVsZDtcblxuICBkaXNwbGF5TW9kZTogRGlzcGxheU1vZGUgPSAncm93JztcblxuICBmaWx0ZXIkID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nPigxKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRpc3BsYXlNb2RlS2V5ID0gJ2FjbF9kaXNwbGF5X21vZGUnO1xuXG4gIGRpc3BsYXlEYXRhJDogT2JzZXJ2YWJsZTxEYXRhSXRlbUJhc2VbXT47XG5cbiAgcHJpdmF0ZSBzY3JvbGxJbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gIHN0YXR1c0ljb246IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgbm9ybWFsOiAnY2hlY2tfY2lyY2xlX3MnLFxuICAgIGFibm9ybWFsOiAnZXhjbGFtYXRpb25fdHJpYW5nbGVfcycsXG4gICAgZW5hYmxlZDogJ2NoZWNrX2NpcmNsZV9zJyxcbiAgICBkaXNhYmxlZDogJ21pbnVzX2NpcmNsZV9zJyxcbiAgfTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBkaXNwbGF5TW9kZSA9IHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmRpc3BsYXlNb2RlS2V5KTtcbiAgICB0aGlzLmRpc3BsYXlNb2RlID1cbiAgICAgIHRoaXMuY29udGV4dCA9PT0gJ3BvcHVwJ1xuICAgICAgICA/IHRoaXMucG9wdXBMaXRlXG4gICAgICAgICAgPyAncm93LWxpdGUnXG4gICAgICAgICAgOiAncm93J1xuICAgICAgICA6IFsncm93JywgJ2NhcmQnXS5pbmNsdWRlcyhkaXNwbGF5TW9kZSlcbiAgICAgICAgICA/IChkaXNwbGF5TW9kZSBhcyBEaXNwbGF5TW9kZSlcbiAgICAgICAgICA6ICdyb3cnO1xuICAgIHRoaXMuZGlzcGxheURhdGEkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmRhdGEkLFxuICAgICAgdGhpcy5maWx0ZXIkLnBpcGUoc3RhcnRXaXRoKCcnKSksXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2RhdGEsIGtleXdvcmRdKSA9PlxuICAgICAgICBkYXRhLmZpbHRlcihpdGVtID0+IHtcbiAgICAgICAgICBjb25zdCBrID0ga2V5d29yZC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBpdGVtLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhrKSB8fFxuICAgICAgICAgICAgaXRlbS5kaXNwbGF5TmFtZT8udG9Mb3dlckNhc2UoKT8uaW5jbHVkZXMoaylcbiAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFNjcm9sbChzY3JvbGxFbDogSFRNTEVsZW1lbnQpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmNvbnRleHQgPT09ICdwYWdlJyB8fFxuICAgICAgdGhpcy5zY3JvbGxJbml0aWFsaXplZCB8fFxuICAgICAgIXRoaXMuZGF0YT8ubGVuZ3RoXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMuZGF0YS5maW5kSW5kZXgoXG4gICAgICBpdGVtID0+IGl0ZW0uX19vcmlnaW4ubWV0YWRhdGEudWlkID09PSB0aGlzLnNlbGVjdGVkVWlkLFxuICAgICk7XG4gICAgY29uc3Qgcm93SGVpZ2h0ID0gc2Nyb2xsRWwuc2Nyb2xsSGVpZ2h0IC8gdGhpcy5kYXRhLmxlbmd0aDtcbiAgICBpZiAoXG4gICAgICBjdXJyZW50SW5kZXggPiAtMSAmJlxuICAgICAgcm93SGVpZ2h0ICogKGN1cnJlbnRJbmRleCArIDEpID4gc2Nyb2xsRWwub2Zmc2V0SGVpZ2h0XG4gICAgKSB7XG4gICAgICBzY3JvbGxFbC5zY3JvbGxUbyh7XG4gICAgICAgIHRvcDogcm93SGVpZ2h0ICogY3VycmVudEluZGV4LFxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuc2Nyb2xsSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICB9XG5cbiAgZ2V0SGlnaGxpZ2h0ZWROYW1lU3RycyA9IChpdGVtOiBEYXRhSXRlbUJhc2UpID0+IHtcbiAgICBpZiAoIXRoaXMua2V5d29yZCkge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAge1xuICAgICAgICAgIHRleHQ6IGl0ZW0ubmFtZSxcbiAgICAgICAgfSxcbiAgICAgIF07XG4gICAgfVxuICAgIGNvbnN0IG9yaWdpbmFsID0gaXRlbS5uYW1lO1xuICAgIGNvbnN0IHN0cnMgPSBpdGVtLm5hbWUudG9Mb3dlckNhc2UoKS5zcGxpdCh0aGlzLmtleXdvcmQudG9Mb3dlckNhc2UoKSk7XG4gICAgY29uc3QgcmV0OiBBcnJheTx7XG4gICAgICB0ZXh0OiBzdHJpbmc7XG4gICAgICBpc0hpZ2hsaWdodGVkPzogYm9vbGVhbjtcbiAgICB9PiA9IFtdO1xuICAgIGxldCBwb3MgPSAwO1xuICAgIGZvciAoY29uc3QgW2ksIHN0cl0gb2Ygc3Rycy5lbnRyaWVzKCkpIHtcbiAgICAgIGNvbnN0IGVuZCA9IHBvcyArIHN0ci5sZW5ndGg7XG4gICAgICByZXQucHVzaCh7XG4gICAgICAgIHRleHQ6IG9yaWdpbmFsLnNsaWNlKHBvcywgZW5kKSxcbiAgICAgIH0pO1xuICAgICAgaWYgKGkgIT09IHN0cnMubGVuZ3RoIC0gMSkge1xuICAgICAgICByZXQucHVzaCh7XG4gICAgICAgICAgdGV4dDogb3JpZ2luYWwuc2xpY2UoZW5kLCBlbmQgKyB0aGlzLmtleXdvcmQubGVuZ3RoKSxcbiAgICAgICAgICBpc0hpZ2hsaWdodGVkOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHBvcyA9IGVuZCArIHRoaXMua2V5d29yZC5sZW5ndGg7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH07XG5cbiAgb25TZWxlY3QoaXRlbTogRGF0YUl0ZW1CYXNlKSB7XG4gICAgaWYgKFxuICAgICAgaXRlbS5zdGF0ZT8uZGlzYWJsZWQgfHxcbiAgICAgIHRoaXMuc2VsZWN0ZWRVaWQgPT09IGl0ZW0uX19vcmlnaW4ubWV0YWRhdGEudWlkXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRVaWQgPSBpdGVtLm5hbWU7XG4gICAgdGhpcy5zZWxlY3RJdGVtLmVtaXQoaXRlbSk7XG4gIH1cblxuICBzZXREaXNwbGF5TW9kZShtb2RlOiBEaXNwbGF5TW9kZSkge1xuICAgIHRoaXMuZGlzcGxheU1vZGUgPSBtb2RlO1xuICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmRpc3BsYXlNb2RlS2V5LCBtb2RlKTtcbiAgfVxuXG4gIGtleXdvcmRDaGFuZ2Uoa2V5d29yZDogc3RyaW5nKSB7XG4gICAgdGhpcy5rZXl3b3JkID0ga2V5d29yZDtcbiAgICB0aGlzLmZpbHRlciQubmV4dChrZXl3b3JkKTtcbiAgfVxuXG4gIGZpbHRlckRpc2FibGVkRGF0YShkYXRhOiBEYXRhSXRlbUJhc2VbXSwgY29udGV4dDogVXNhZ2VDb250ZXh0KSB7XG4gICAgLy8gd29ya2Fyb3VuZCBmb3IgdHlwaW5ncyBpbiB0ZW1wbGF0ZVxuICAgIHJldHVybiAoXG4gICAgICBjb250ZXh0ID09PSAncGFnZScgPyBkYXRhIDogZGF0YS5maWx0ZXIoaXRlbSA9PiAhaXRlbS5zdGF0ZT8uZGlzYWJsZWQpXG4gICAgKSBhcyBEYXRhSXRlbVtdO1xuICB9XG5cbiAgc29ydFdpdGhvdXRJc3RpbyA9IChkYXRhOiBEYXRhSXRlbUJhc2VbXSkgPT4ge1xuICAgIGNvbnN0IHdpdGhvdXRJc3RpbyA9IGRhdGEuZmlsdGVyKGl0ZW0gPT4gIWl0ZW0/LnNlcnZpY2VNZXNoSXN0aW9WZXJzaW9uKTtcbiAgICByZXR1cm4gWy4uLmRpZmZlcmVuY2UoZGF0YSwgd2l0aG91dElzdGlvKSwgLi4ud2l0aG91dElzdGlvXTtcbiAgfTtcblxuICBwbHVyYWxGb3JtKHR5cGU6IERhdGFUeXBlKSB7XG4gICAgcmV0dXJuIHBsdXJhbCh0eXBlKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImhlYWRlclwiPlxuICA8c3BhblxuICAgIGNsYXNzPVwiaGVhZGVyX190aXRsZVwiXG4gICAgW25nQ2xhc3NdPVwieyAnaGVhZGVyX190aXRsZS0tbGl0ZSc6IHBvcHVwTGl0ZSB9XCJcbiAgPlxuICAgIDxzcGFuPnt7IHR5cGUgfCBwdXJlOiBwbHVyYWxGb3JtIHwgdHJhbnNsYXRlIH19PC9zcGFuXG4gICAgPjxzcGFuIGNsYXNzPVwiaGVhZGVyX19kZXNjXCJcbiAgICAgID7vvIh7eyAoZGlzcGxheURhdGEkIHwgYXN5bmMpPy5sZW5ndGggfHwgMCB9fe+8iTwvc3BhblxuICAgID5cbiAgPC9zcGFuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJoZWFkZXJfX2N1c3RvbVwiXG4gICAgKm5nSWY9XCIhcG9wdXBMaXRlXCJcbiAgPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlthY2xSZXNvdXJjZUdyaWRIZWFkZXJdXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgIGNsYXNzPVwidHctZmxleC0xXCJcbiAgICAqbmdJZj1cInBvcHVwTGl0ZVwiXG4gID48L2Rpdj5cbiAgPGF1aS1zZWFyY2hcbiAgICBbc2VhcmNoQnV0dG9uXT1cImZhbHNlXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwiJ2ZpbHRlcl9ieV9uYW1lX29yX2Rpc3BsYXlfbmFtZScgfCB0cmFuc2xhdGVcIlxuICAgIFtrZXl3b3JkXT1cImtleXdvcmRcIlxuICAgIChrZXl3b3JkQ2hhbmdlKT1cImtleXdvcmRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW2NsZWFyYWJsZV09XCJ0cnVlXCJcbiAgICBzaXplPVwic21hbGxcIlxuICA+PC9hdWktc2VhcmNoPlxuICA8c3BhblxuICAgIGNsYXNzPVwiaGVhZGVyX19kaXNwbGF5LW1vZGVcIlxuICAgICpuZ0lmPVwiY29udGV4dCA9PT0gJ3BhZ2UnXCJcbiAgPlxuICAgIDxzcGFuXG4gICAgICBjbGFzcz1cInN3aXRjaC1idG5cIlxuICAgICAgW25nQ2xhc3NdPVwieyAnc3dpdGNoLWJ0bi0tc2VsZWN0ZWQnOiBkaXNwbGF5TW9kZSAhPT0gJ2NhcmQnIH1cIlxuICAgICAgKGNsaWNrKT1cInNldERpc3BsYXlNb2RlKCdyb3cnKVwiXG4gICAgPlxuICAgICAgPGF1aS1pY29uIGljb249XCJsaXN0XCI+PC9hdWktaWNvbj5cbiAgICA8L3NwYW4+XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwic3dpdGNoLWJ0blwiXG4gICAgICBbbmdDbGFzc109XCJ7ICdzd2l0Y2gtYnRuLS1zZWxlY3RlZCc6IGRpc3BsYXlNb2RlID09PSAnY2FyZCcgfVwiXG4gICAgICAoY2xpY2spPVwic2V0RGlzcGxheU1vZGUoJ2NhcmQnKVwiXG4gICAgPlxuICAgICAgPGF1aS1pY29uIGljb249XCJncmlkXCI+PC9hdWktaWNvbj5cbiAgICA8L3NwYW4+XG4gIDwvc3Bhbj5cbjwvZGl2PlxuPG5nLWNvbnRhaW5lclxuICAqbmdJZj1cIlxuICAgICFsb2FkaW5nICYmXG4gICAgKGRpc3BsYXlEYXRhJFxuICAgICAgfCBhc3luY1xuICAgICAgfCBwdXJlOiBzb3J0V2l0aG91dElzdGlvXG4gICAgICB8IHB1cmU6IGZpbHRlckRpc2FibGVkRGF0YTpjb250ZXh0KSBhcyBkaXNwbGF5RGF0YVxuICBcIlxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJncmlkXCJcbiAgICAqbmdJZj1cImRpc3BsYXlEYXRhLmxlbmd0aFwiXG4gICAgI2dyaWRcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnZ3JpZC0tY2FyZCc6IGRpc3BsYXlNb2RlID09PSAnY2FyZCcgJiYgY29udGV4dCAhPT0gJ3BvcHVwJyxcbiAgICAgICdncmlkLS1wb3B1cCc6IGNvbnRleHQgPT09ICdwb3B1cCcsXG4gICAgICAnZ3JpZC0tcG9wdXAtLWxpdGUnOiBjb250ZXh0ID09PSAncG9wdXAnICYmIHBvcHVwTGl0ZVxuICAgIH1cIlxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJncmlkX19pdGVtXCJcbiAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRpc3BsYXlEYXRhXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ2dyaWRfX2l0ZW0tLXNlbGVjdGVkJzpcbiAgICAgICAgICBjb250ZXh0ID09PSAncG9wdXAnICYmIHNlbGVjdGVkVWlkID09PSBpdGVtLl9fb3JpZ2luLm1ldGFkYXRhLnVpZCxcbiAgICAgICAgJ2dyaWRfX2l0ZW0tLWRpc2FibGVkJzogaXRlbS5zdGF0ZT8uZGlzYWJsZWRcbiAgICAgIH1cIlxuICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0KGl0ZW0pXCJcbiAgICAgIFthdHRyLmRhdGEtdGVzdF09XCJpdGVtLm5hbWUgKyAnLycgKyBpdGVtLmNsdXN0ZXJcIlxuICAgICAgW2F1aVRvb2x0aXBdPVwiaXRlbS5zdGF0ZT8udG9vbHRpcFwiXG4gICAgICBbYXVpVG9vbHRpcERpc2FibGVkXT1cIiFpdGVtLnN0YXRlPy5kaXNhYmxlZCB8fCAhaXRlbS5zdGF0ZT8udG9vbHRpcFwiXG4gICAgPlxuICAgICAgPGF1aS1pY29uXG4gICAgICAgICpuZ0lmPVwic2VsZWN0ZWRVaWQgPT09IGl0ZW0uX19vcmlnaW4ubWV0YWRhdGEudWlkXCJcbiAgICAgICAgY2xhc3M9XCJjaGVjay10cmlhbmdsZS1iYWRnZVwiXG4gICAgICAgIGljb249XCJjaGVja1wiXG4gICAgICA+PC9hdWktaWNvbj5cbiAgICAgIDwhLS0gaWNvbiAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJncmlkX19maWVsZCBncmlkX19maWVsZC1pY29uXCI+XG4gICAgICAgIDxhY2wtcmVzb3VyY2UtaWNvblxuICAgICAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgICAgIFtjb2xvcl09XCJcbiAgICAgICAgICAgIGNvbnRleHQgPT09ICdwb3B1cCcgJiZcbiAgICAgICAgICAgICFwb3B1cExpdGUgJiZcbiAgICAgICAgICAgIHNlbGVjdGVkVWlkID09PSBpdGVtLl9fb3JpZ2luLm1ldGFkYXRhLnVpZFxuICAgICAgICAgICAgICA/ICd3aGl0ZSdcbiAgICAgICAgICAgICAgOiAnYmx1ZSdcbiAgICAgICAgICBcIlxuICAgICAgICAgIFtkaXNwbGF5TW9kZV09XCJkaXNwbGF5TW9kZVwiXG4gICAgICAgID48L2FjbC1yZXNvdXJjZS1pY29uPlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIG5hbWUgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JpZF9fZmllbGQgZ3JpZF9fZmllbGQtbmFtZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHN0ciBvZiBnZXRIaWdobGlnaHRlZE5hbWVTdHJzKGl0ZW0pXCI+XG4gICAgICAgICAgICA8c3BhbiBbbmdDbGFzc109XCJ7IGhpZ2hsaWdodGVkOiBzdHIuaXNIaWdobGlnaHRlZCB9XCI+e3tcbiAgICAgICAgICAgICAgc3RyLnRleHRcbiAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZGVzXCJcbiAgICAgICAgICAqbmdJZj1cIiFwb3B1cExpdGVcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uZGlzcGxheU5hbWVcIj57e1xuICAgICAgICAgICAgaXRlbS5kaXNwbGF5TmFtZVxuICAgICAgICAgIH19PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIG5zOiBjbHVzdGVyIC0tPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImdyaWRfX2ZpZWxkIGZsZXggZ3JpZF9fZmllbGQtY2x1c3RlclwiXG4gICAgICAgICpuZ0lmPVwiZmllbGRzLmluY2x1ZGVzKGZpZWxkc0RlZi5DbHVzdGVyKVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJiZWxvbmdlZC1jbHVzdGVyIHR3LWZsZXhcIlxuICAgICAgICAgIGF1aVRvb2x0aXA9XCJ7e1xuICAgICAgICAgICAgKCdiZWxvbmdlZF9jbHVzdGVyJyB8IHRyYW5zbGF0ZSkgKyAnOiAnICsgaXRlbS5jbHVzdGVyXG4gICAgICAgICAgfX1cIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3aXRoLWNvbG9uXCI+e3sgJ2JlbG9uZ2VkX2NsdXN0ZXInIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHctdGV4dC1lbGxpcHNpcyB0dy1vdmVyZmxvdy1oaWRkZW5cIlxuICAgICAgICAgICAgPnt7IGl0ZW0uY2x1c3RlclxuICAgICAgICAgICAgfX08bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5jbHVzdGVyRGlzcGxheU5hbWVcIlxuICAgICAgICAgICAgICA+KHt7IGl0ZW0uY2x1c3RlckRpc3BsYXlOYW1lIH19KTwvbmctY29udGFpbmVyXG4gICAgICAgICAgICA+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxhdWktdGFnXG4gICAgICAgICAgICB0eXBlPVwicHJpbWFyeVwiXG4gICAgICAgICAgICBzaXplPVwibWluaVwiXG4gICAgICAgICAgICAqbmdJZj1cIml0ZW0uY2x1c3RlckFyY2hcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IGl0ZW0uY2x1c3RlckFyY2ggfX1cbiAgICAgICAgICA8L2F1aS10YWc+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBwcm9qZWN0OiBzdGF0dXMgLS0+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZ3JpZF9fZmllbGQgZ3JpZF9fZmllbGQtc3RhdHVzIHt7XG4gICAgICAgICAgJ2dyaWRfX2ZpZWxkLXN0YXR1cy0tJyArIGl0ZW0uc3RhdHVzXG4gICAgICAgIH19XCJcbiAgICAgICAgKm5nSWY9XCJmaWVsZHMuaW5jbHVkZXMoZmllbGRzRGVmLlN0YXR1cylcIlxuICAgICAgPlxuICAgICAgICA8bGFiZWxcbiAgICAgICAgICAqbmdJZj1cInBvcHVwTGl0ZVwiXG4gICAgICAgICAgY2xhc3M9XCJ0dy10ZXh0LWhlbHAtdGV4dCB0dy1tci04XCJcbiAgICAgICAgICA+e3sgJ3N0YXR1cycgfCB0cmFuc2xhdGUgfX06PC9sYWJlbFxuICAgICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwid2l0aC1jb2xvblwiPnt7ICdzdGF0dXMnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICA8YXVpLWljb25cbiAgICAgICAgICBbaWNvbl09XCJzdGF0dXNJY29uW2l0ZW0uc3RhdHVzXVwiXG4gICAgICAgICAgW2JhY2tncm91bmRdPVwiXG4gICAgICAgICAgICBzdGF0dXNJY29uW2l0ZW0uc3RhdHVzXS5lbmRzV2l0aCgnX3RyaWFuZ2xlX3MnKVxuICAgICAgICAgICAgICA/ICd0cmlhbmdsZSdcbiAgICAgICAgICAgICAgOiAnY2lyY2xlJ1xuICAgICAgICAgIFwiXG4gICAgICAgICAgY2xhc3M9XCJ7eyAnaWNvbi0nICsgaXRlbS5zdGF0dXMgfX1cIlxuICAgICAgICA+PC9hdWktaWNvbj5cbiAgICAgICAge3sgaXRlbS5zdGF0dXMgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBhc206IHNlcnZpY2UgbWVzaCAtLT5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJncmlkX19maWVsZCBncmlkX19maWVsZC1zZXJ2aWNlbWVzaFwiXG4gICAgICAgICpuZ0lmPVwiZmllbGRzLmluY2x1ZGVzKGZpZWxkc0RlZi5TZXJ2aWNlTWVzaClcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIndpdGgtY29sb25cIj57eyAnYmVsb25nZWRfc2VydmljZW1lc2gnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICA8c3Bhbj4ge3sgaXRlbS5zZXJ2aWNlTWVzaE5hbWUgfX0gPC9zcGFuPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uc2VydmljZU1lc2hJc3Rpb1ZlcnNpb25cIlxuICAgICAgICAgICAgPihJc3RpbyB7eyBpdGVtLnNlcnZpY2VNZXNoSXN0aW9WZXJzaW9uIH19KTwvbmctY29udGFpbmVyXG4gICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZ3JpZF9fZmllbGQgZ3JpZF9fZmllbGQtc2VydmljZW1lc2hcIlxuICAgICAgICAqbmdJZj1cImZpZWxkcy5pbmNsdWRlcyhmaWVsZHNEZWYuU2VydmljZU1lc2gpXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ3aXRoLWNvbG9uXCI+e3sgJ2NsdXN0ZXInIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICA8c3BhblxuICAgICAgICAgID57eyBpdGVtLmNsdXN0ZXJcbiAgICAgICAgICB9fTxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmNsdXN0ZXJEaXNwbGF5TmFtZVwiXG4gICAgICAgICAgICA+KHt7IGl0ZW0uY2x1c3RlckRpc3BsYXlOYW1lIH19KTwvbmctY29udGFpbmVyXG4gICAgICAgICAgPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxhdWktdGFnXG4gICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxuICAgICAgICAgIHNpemU9XCJtaW5pXCJcbiAgICAgICAgICAqbmdJZj1cIml0ZW0uY2x1c3RlckFyY2hcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgaXRlbS5jbHVzdGVyQXJjaCB9fVxuICAgICAgICA8L2F1aS10YWc+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBtZXNoIGdyb3VwIC0tPlxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZ3JpZF9fZmllbGQgZ3JpZF9fZmllbGQtc2VydmljZW1lc2hcIlxuICAgICAgICAqbmdJZj1cImZpZWxkcy5pbmNsdWRlcyhmaWVsZHNEZWYuU2VydmljZU1lc2hHcm91cClcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIndpdGgtY29sb25cIj57eyAnY2x1c3RlcicgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDxzcGFuPnt7IGl0ZW0uY2x1c3RlciB9fSA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gYXNtOiBpc3RpbyAtLT5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJncmlkX19maWVsZCBncmlkX19maWVsZC1zZXJ2aWNlbWVzaFwiXG4gICAgICAgICpuZ0lmPVwiZmllbGRzLmluY2x1ZGVzKGZpZWxkc0RlZi5TZXJ2aWNlTWVzaEdyb3VwKVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwid2l0aC1jb2xvblwiPnt7ICdJc3RpbycgfX08L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgPnt7IGl0ZW0uc2VydmljZU1lc2hJc3Rpb1ZlcnNpb24gfHwgKCdub3RfZGVwbG95ZWQnIHwgdHJhbnNsYXRlKSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSB0aW1lIC0tPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImdyaWRfX2ZpZWxkIGdyaWRfX2ZpZWxkLXRpbWVcIlxuICAgICAgICAqbmdJZj1cImZpZWxkcy5pbmNsdWRlcyhmaWVsZHNEZWYuVGltZSkgJiYgIXBvcHVwTGl0ZVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwid2l0aC1jb2xvblwiPnt7ICdjcmVhdGVkX2F0JyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4+e3sgaXRlbS50aW1lc3RhbXAgfCBhY2xSZWxhdGl2ZVRpbWUgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gYWN0aW9uIC0tPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImdyaWRfX2ZpZWxkIGdyaWRfX2ZpZWxkLWFjdGlvblwiXG4gICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIGZpZWxkcy5pbmNsdWRlcyhmaWVsZHNEZWYuQWN0aW9uKSAmJlxuICAgICAgICAgIGFjdGlvblRlbXBsYXRlUmVmICYmXG4gICAgICAgICAgY29udGV4dCAhPT0gJ3BvcHVwJ1xuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiYWN0aW9uVGVtcGxhdGVSZWZcIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAkaW1wbGljaXQ6IGl0ZW0uX19vcmlnaW5cbiAgICAgICAgICB9XCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8YWNsLXJlc291cmNlLW5vLWRhdGFcbiAgICAqbmdJZj1cIiFwb3B1cExpdGUgJiYgIShkaXNwbGF5RGF0YSQgfCBhc3luYyk/Lmxlbmd0aFwiXG4gICAgW2lzRmlsdGVyZWRdPVwiISFrZXl3b3JkXCJcbiAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAocmVmcmVzaCk9XCJyZWxvYWQuZW1pdCgpXCJcbiAgICAoY2xlYXIpPVwia2V5d29yZENoYW5nZSgnJylcIlxuICA+PC9hY2wtcmVzb3VyY2Utbm8tZGF0YT5cbiAgPGFjbC16ZXJvLXN0YXRlXG4gICAgKm5nSWY9XCJwb3B1cExpdGUgJiYgIShkaXNwbGF5RGF0YSQgfCBhc3luYyk/Lmxlbmd0aFwiXG4gICAgY29udGV4dD1cInRhYmxlXCJcbiAgPjwvYWNsLXplcm8tc3RhdGU+XG48L25nLWNvbnRhaW5lcj5cbjxkaXZcbiAgY2xhc3M9XCJsb2FkaW5nXCJcbiAgKm5nSWY9XCJsb2FkaW5nXCJcbj5cbiAgPGFjbC1sb2FkaW5nLW1hc2tcbiAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcbiAgICB0eXBlPVwiY29udGVudFwiXG4gID48L2FjbC1sb2FkaW5nLW1hc2s+XG48L2Rpdj5cbiJdfQ==
|
|
615
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2J1c2luZXNzL3Jlc291cmNlLXNlbGVjdC9pbnRlcm5hbHMvZGF0YS1ncmlkL2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9idXNpbmVzcy9yZXNvdXJjZS1zZWxlY3QvaW50ZXJuYWxzL2RhdGEtZ3JpZC90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTlELE9BQU8sRUFDTCxpQkFBaUIsR0FLbEIsTUFBTSxhQUFhLENBQUM7Ozs7Ozs7Ozs7OztJQ2JuQiwrQkFHQztJQUNDLGtCQUEwRDtJQUM1RCxpQkFBTTs7O0lBQ04sMEJBR087Ozs7SUFhTCxBQUpGLGdDQUdDLGVBS0U7SUFEQyxxTEFBUyxzQkFBZSxLQUFLLENBQUMsS0FBQztJQUUvQiwrQkFBaUM7SUFDbkMsaUJBQU87SUFDUCxnQ0FJQztJQURDLHFMQUFTLHNCQUFlLE1BQU0sQ0FBQyxLQUFDO0lBRWhDLCtCQUFpQztJQUVyQyxBQURFLGlCQUFPLEVBQ0Y7OztJQVpILGNBQThEO0lBQTlELG1GQUE4RDtJQU85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dCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRpZmZlcmVuY2UgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgcGx1cmFsIH0gZnJvbSAncGx1cmFsaXplJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE9ic2VydmFibGVJbnB1dCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBVc2FnZUNvbnRleHQgfSBmcm9tICcuLi8uLi9iYXNlLWxpc3QnO1xuaW1wb3J0IHtcbiAgQ29uZmlndXJhYmxlRmllbGQsXG4gIERhdGFJdGVtLFxuICBEYXRhSXRlbUJhc2UsXG4gIERhdGFUeXBlLFxuICBEaXNwbGF5TW9kZSxcbn0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtcmVzb3VyY2UtZGF0YS1ncmlkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbXBsYXRlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdHlsZS5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBSZXNvdXJjZURhdGFHcmlkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQFZpZXdDaGlsZCgnZ3JpZCcpIHNldCBncmlkKGdyaWQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7XG4gICAgaWYgKGdyaWQpIHtcbiAgICAgIHRoaXMuaW5pdFNjcm9sbChncmlkLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGNvbnRleHQ6IFVzYWdlQ29udGV4dCA9ICdwYWdlJztcblxuICBASW5wdXQoKVxuICBwb3B1cExpdGUgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBkYXRhOiBEYXRhSXRlbUJhc2VbXSA9IFtdO1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBkYXRhJDogT2JzZXJ2YWJsZTxEYXRhSXRlbUJhc2VbXT47XG5cbiAgQElucHV0KClcbiAgdHlwZTogRGF0YVR5cGUgPSAnbmFtZXNwYWNlJztcblxuICBASW5wdXQoKVxuICBmaWVsZHM6IENvbmZpZ3VyYWJsZUZpZWxkW10gPSBbQ29uZmlndXJhYmxlRmllbGQuVGltZV07XG5cbiAgQElucHV0KClcbiAgYWN0aW9uVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQElucHV0KClcbiAgc2VsZWN0ZWRVaWQ6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBsb2FkaW5nID0gdHJ1ZTtcblxuICBAT3V0cHV0KClcbiAgc2VsZWN0SXRlbSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0YUl0ZW1CYXNlPigpO1xuXG4gIEBPdXRwdXQoKVxuICBmaWx0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVsb2FkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGtleXdvcmQgPSAnJztcblxuICBmaWVsZHNEZWYgPSBDb25maWd1cmFibGVGaWVsZDtcblxuICBkaXNwbGF5TW9kZTogRGlzcGxheU1vZGUgPSAncm93JztcblxuICBmaWx0ZXIkID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nPigxKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRpc3BsYXlNb2RlS2V5ID0gJ2FjbF9kaXNwbGF5X21vZGUnO1xuXG4gIGRpc3BsYXlEYXRhJDogT2JzZXJ2YWJsZTxEYXRhSXRlbUJhc2VbXT47XG5cbiAgcHJpdmF0ZSBzY3JvbGxJbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gIHN0YXR1c0ljb246IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgbm9ybWFsOiAnY2hlY2tfY2lyY2xlX3MnLFxuICAgIGFibm9ybWFsOiAnZXhjbGFtYXRpb25fdHJpYW5nbGVfcycsXG4gICAgZW5hYmxlZDogJ2NoZWNrX2NpcmNsZV9zJyxcbiAgICBkaXNhYmxlZDogJ21pbnVzX2NpcmNsZV9zJyxcbiAgfTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBkaXNwbGF5TW9kZSA9IHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmRpc3BsYXlNb2RlS2V5KTtcbiAgICB0aGlzLmRpc3BsYXlNb2RlID1cbiAgICAgIHRoaXMuY29udGV4dCA9PT0gJ3BvcHVwJ1xuICAgICAgICA/IHRoaXMucG9wdXBMaXRlXG4gICAgICAgICAgPyAncm93LWxpdGUnXG4gICAgICAgICAgOiAncm93J1xuICAgICAgICA6IFsncm93JywgJ2NhcmQnXS5pbmNsdWRlcyhkaXNwbGF5TW9kZSlcbiAgICAgICAgICA/IChkaXNwbGF5TW9kZSBhcyBEaXNwbGF5TW9kZSlcbiAgICAgICAgICA6ICdyb3cnO1xuICAgIHRoaXMuZGlzcGxheURhdGEkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmRhdGEkLFxuICAgICAgdGhpcy5maWx0ZXIkLnBpcGUoc3RhcnRXaXRoKCcnKSksXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2RhdGEsIGtleXdvcmRdKSA9PlxuICAgICAgICBkYXRhLmZpbHRlcihpdGVtID0+IHtcbiAgICAgICAgICBjb25zdCBrID0ga2V5d29yZC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBpdGVtLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhrKSB8fFxuICAgICAgICAgICAgaXRlbS5kaXNwbGF5TmFtZT8udG9Mb3dlckNhc2UoKT8uaW5jbHVkZXMoaylcbiAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFNjcm9sbChzY3JvbGxFbDogSFRNTEVsZW1lbnQpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmNvbnRleHQgPT09ICdwYWdlJyB8fFxuICAgICAgdGhpcy5zY3JvbGxJbml0aWFsaXplZCB8fFxuICAgICAgIXRoaXMuZGF0YT8ubGVuZ3RoXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMuZGF0YS5maW5kSW5kZXgoXG4gICAgICBpdGVtID0+IGl0ZW0uX19vcmlnaW4ubWV0YWRhdGEudWlkID09PSB0aGlzLnNlbGVjdGVkVWlkLFxuICAgICk7XG4gICAgY29uc3Qgcm93SGVpZ2h0ID0gc2Nyb2xsRWwuc2Nyb2xsSGVpZ2h0IC8gdGhpcy5kYXRhLmxlbmd0aDtcbiAgICBpZiAoXG4gICAgICBjdXJyZW50SW5kZXggPiAtMSAmJlxuICAgICAgcm93SGVpZ2h0ICogKGN1cnJlbnRJbmRleCArIDEpID4gc2Nyb2xsRWwub2Zmc2V0SGVpZ2h0XG4gICAgKSB7XG4gICAgICBzY3JvbGxFbC5zY3JvbGxUbyh7XG4gICAgICAgIHRvcDogcm93SGVpZ2h0ICogY3VycmVudEluZGV4LFxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuc2Nyb2xsSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICB9XG5cbiAgZ2V0SGlnaGxpZ2h0ZWROYW1lU3RycyA9IChpdGVtOiBEYXRhSXRlbUJhc2UpID0+IHtcbiAgICBpZiAoIXRoaXMua2V5d29yZCkge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAge1xuICAgICAgICAgIHRleHQ6IGl0ZW0ubmFtZSxcbiAgICAgICAgfSxcbiAgICAgIF07XG4gICAgfVxuICAgIGNvbnN0IG9yaWdpbmFsID0gaXRlbS5uYW1lO1xuICAgIGNvbnN0IHN0cnMgPSBpdGVtLm5hbWUudG9Mb3dlckNhc2UoKS5zcGxpdCh0aGlzLmtleXdvcmQudG9Mb3dlckNhc2UoKSk7XG4gICAgY29uc3QgcmV0OiBBcnJheTx7XG4gICAgICB0ZXh0OiBzdHJpbmc7XG4gICAgICBpc0hpZ2hsaWdodGVkPzogYm9vbGVhbjtcbiAgICB9PiA9IFtdO1xuICAgIGxldCBwb3MgPSAwO1xuICAgIGZvciAoY29uc3QgW2ksIHN0cl0gb2Ygc3Rycy5lbnRyaWVzKCkpIHtcbiAgICAgIGNvbnN0IGVuZCA9IHBvcyArIHN0ci5sZW5ndGg7XG4gICAgICByZXQucHVzaCh7XG4gICAgICAgIHRleHQ6IG9yaWdpbmFsLnNsaWNlKHBvcywgZW5kKSxcbiAgICAgIH0pO1xuICAgICAgaWYgKGkgIT09IHN0cnMubGVuZ3RoIC0gMSkge1xuICAgICAgICByZXQucHVzaCh7XG4gICAgICAgICAgdGV4dDogb3JpZ2luYWwuc2xpY2UoZW5kLCBlbmQgKyB0aGlzLmtleXdvcmQubGVuZ3RoKSxcbiAgICAgICAgICBpc0hpZ2hsaWdodGVkOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHBvcyA9IGVuZCArIHRoaXMua2V5d29yZC5sZW5ndGg7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH07XG5cbiAgZ2V0SGlnaGxpZ2h0ZWREaXNwbGF5TmFtZVN0cnMgPSAoaXRlbTogRGF0YUl0ZW1CYXNlKSA9PiB7XG4gICAgaWYgKCF0aGlzLmtleXdvcmQpIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXh0OiBpdGVtLmRpc3BsYXlOYW1lLFxuICAgICAgICB9LFxuICAgICAgXTtcbiAgICB9XG4gICAgY29uc3Qgb3JpZ2luYWwgPSBpdGVtLmRpc3BsYXlOYW1lO1xuICAgIGNvbnN0IHN0cnMgPSBpdGVtLmRpc3BsYXlOYW1lXG4gICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgLnNwbGl0KHRoaXMua2V5d29yZC50b0xvd2VyQ2FzZSgpKTtcbiAgICBjb25zdCByZXQ6IEFycmF5PHtcbiAgICAgIHRleHQ6IHN0cmluZztcbiAgICAgIGlzSGlnaGxpZ2h0ZWQ/OiBib29sZWFuO1xuICAgIH0+ID0gW107XG4gICAgbGV0IHBvcyA9IDA7XG4gICAgZm9yIChjb25zdCBbaSwgc3RyXSBvZiBzdHJzLmVudHJpZXMoKSkge1xuICAgICAgY29uc3QgZW5kID0gcG9zICsgc3RyLmxlbmd0aDtcbiAgICAgIHJldC5wdXNoKHtcbiAgICAgICAgdGV4dDogb3JpZ2luYWwuc2xpY2UocG9zLCBlbmQpLFxuICAgICAgfSk7XG4gICAgICBpZiAoaSAhPT0gc3Rycy5sZW5ndGggLSAxKSB7XG4gICAgICAgIHJldC5wdXNoKHtcbiAgICAgICAgICB0ZXh0OiBvcmlnaW5hbC5zbGljZShlbmQsIGVuZCArIHRoaXMua2V5d29yZC5sZW5ndGgpLFxuICAgICAgICAgIGlzSGlnaGxpZ2h0ZWQ6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgcG9zID0gZW5kICsgdGhpcy5rZXl3b3JkLmxlbmd0aDtcbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfTtcblxuICBvblNlbGVjdChpdGVtOiBEYXRhSXRlbUJhc2UpIHtcbiAgICBpZiAoXG4gICAgICBpdGVtLnN0YXRlPy5kaXNhYmxlZCB8fFxuICAgICAgdGhpcy5zZWxlY3RlZFVpZCA9PT0gaXRlbS5fX29yaWdpbi5tZXRhZGF0YS51aWRcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZFVpZCA9IGl0ZW0ubmFtZTtcbiAgICB0aGlzLnNlbGVjdEl0ZW0uZW1pdChpdGVtKTtcbiAgfVxuXG4gIHNldERpc3BsYXlNb2RlKG1vZGU6IERpc3BsYXlNb2RlKSB7XG4gICAgdGhpcy5kaXNwbGF5TW9kZSA9IG1vZGU7XG4gICAgd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuZGlzcGxheU1vZGVLZXksIG1vZGUpO1xuICB9XG5cbiAga2V5d29yZENoYW5nZShrZXl3b3JkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmtleXdvcmQgPSBrZXl3b3JkO1xuICAgIHRoaXMuZmlsdGVyJC5uZXh0KGtleXdvcmQpO1xuICB9XG5cbiAgZmlsdGVyRGlzYWJsZWREYXRhKGRhdGE6IERhdGFJdGVtQmFzZVtdLCBjb250ZXh0OiBVc2FnZUNvbnRleHQpIHtcbiAgICAvLyB3b3JrYXJvdW5kIGZvciB0eXBpbmdzIGluIHRlbXBsYXRlXG4gICAgcmV0dXJuIChcbiAgICAgIGNvbnRleHQgPT09ICdwYWdlJyA/IGRhdGEgOiBkYXRhLmZpbHRlcihpdGVtID0+ICFpdGVtLnN0YXRlPy5kaXNhYmxlZClcbiAgICApIGFzIERhdGFJdGVtW107XG4gIH1cblxuICBzb3J0V2l0aG91dElzdGlvID0gKGRhdGE6IERhdGFJdGVtQmFzZVtdKSA9PiB7XG4gICAgY29uc3Qgd2l0aG91dElzdGlvID0gZGF0YS5maWx0ZXIoaXRlbSA9PiAhaXRlbT8uc2VydmljZU1lc2hJc3Rpb1ZlcnNpb24pO1xuICAgIHJldHVybiBbLi4uZGlmZmVyZW5jZShkYXRhLCB3aXRob3V0SXN0aW8pLCAuLi53aXRob3V0SXN0aW9dO1xuICB9O1xuXG4gIHBsdXJhbEZvcm0odHlwZTogRGF0YVR5cGUpIHtcbiAgICByZXR1cm4gcGx1cmFsKHR5cGUpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gIDxzcGFuXG4gICAgY2xhc3M9XCJoZWFkZXJfX3RpdGxlXCJcbiAgICBbbmdDbGFzc109XCJ7ICdoZWFkZXJfX3RpdGxlLS1saXRlJzogcG9wdXBMaXRlIH1cIlxuICA+XG4gICAgPHNwYW4+e3sgdHlwZSB8IHB1cmU6IHBsdXJhbEZvcm0gfCB0cmFuc2xhdGUgfX08L3NwYW5cbiAgICA+PHNwYW4gY2xhc3M9XCJoZWFkZXJfX2Rlc2NcIlxuICAgICAgPu+8iHt7IChkaXNwbGF5RGF0YSQgfCBhc3luYyk/Lmxlbmd0aCB8fCAwIH1977yJPC9zcGFuXG4gICAgPlxuICA8L3NwYW4+XG4gIDxkaXZcbiAgICBjbGFzcz1cImhlYWRlcl9fY3VzdG9tXCJcbiAgICAqbmdJZj1cIiFwb3B1cExpdGVcIlxuICA+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2FjbFJlc291cmNlR3JpZEhlYWRlcl1cIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJ0dy1mbGV4LTFcIlxuICAgICpuZ0lmPVwicG9wdXBMaXRlXCJcbiAgPjwvZGl2PlxuICA8YXVpLXNlYXJjaFxuICAgIFtzZWFyY2hCdXR0b25dPVwiZmFsc2VcIlxuICAgIFtwbGFjZWhvbGRlcl09XCInZmlsdGVyX2J5X25hbWVfb3JfZGlzcGxheV9uYW1lJyB8IHRyYW5zbGF0ZVwiXG4gICAgW2tleXdvcmRdPVwia2V5d29yZFwiXG4gICAgKGtleXdvcmRDaGFuZ2UpPVwia2V5d29yZENoYW5nZSgkZXZlbnQpXCJcbiAgICBbY2xlYXJhYmxlXT1cInRydWVcIlxuICAgIHNpemU9XCJzbWFsbFwiXG4gID48L2F1aS1zZWFyY2g+XG4gIDxzcGFuXG4gICAgY2xhc3M9XCJoZWFkZXJfX2Rpc3BsYXktbW9kZVwiXG4gICAgKm5nSWY9XCJjb250ZXh0ID09PSAncGFnZSdcIlxuICA+XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwic3dpdGNoLWJ0blwiXG4gICAgICBbbmdDbGFzc109XCJ7ICdzd2l0Y2gtYnRuLS1zZWxlY3RlZCc6IGRpc3BsYXlNb2RlICE9PSAnY2FyZCcgfVwiXG4gICAgICAoY2xpY2spPVwic2V0RGlzcGxheU1vZGUoJ3JvdycpXCJcbiAgICA+XG4gICAgICA8YXVpLWljb24gaWNvbj1cImxpc3RcIj48L2F1aS1pY29uPlxuICAgIDwvc3Bhbj5cbiAgICA8c3BhblxuICAgICAgY2xhc3M9XCJzd2l0Y2gtYnRuXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ3N3aXRjaC1idG4tLXNlbGVjdGVkJzogZGlzcGxheU1vZGUgPT09ICdjYXJkJyB9XCJcbiAgICAgIChjbGljayk9XCJzZXREaXNwbGF5TW9kZSgnY2FyZCcpXCJcbiAgICA+XG4gICAgICA8YXVpLWljb24gaWNvbj1cImdyaWRcIj48L2F1aS1pY29uPlxuICAgIDwvc3Bhbj5cbiAgPC9zcGFuPlxuPC9kaXY+XG48bmctY29udGFpbmVyXG4gICpuZ0lmPVwiXG4gICAgIWxvYWRpbmcgJiZcbiAgICAoZGlzcGxheURhdGEkXG4gICAgICB8IGFzeW5jXG4gICAgICB8IHB1cmU6IHNvcnRXaXRob3V0SXN0aW9cbiAgICAgIHwgcHVyZTogZmlsdGVyRGlzYWJsZWREYXRhIDogY29udGV4dCkgYXMgZGlzcGxheURhdGFcbiAgXCJcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZ3JpZFwiXG4gICAgKm5nSWY9XCJkaXNwbGF5RGF0YS5sZW5ndGhcIlxuICAgICNncmlkXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ2dyaWQtLWNhcmQnOiBkaXNwbGF5TW9kZSA9PT0gJ2NhcmQnICYmIGNvbnRleHQgIT09ICdwb3B1cCcsXG4gICAgICAnZ3JpZC0tcG9wdXAnOiBjb250ZXh0ID09PSAncG9wdXAnLFxuICAgICAgJ2dyaWQtLXBvcHVwLS1saXRlJzogY29udGV4dCA9PT0gJ3BvcHVwJyAmJiBwb3B1cExpdGUsXG4gICAgfVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImdyaWRfX2l0ZW1cIlxuICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGlzcGxheURhdGFcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnZ3JpZF9faXRlbS0tc2VsZWN0ZWQnOlxuICAgICAgICAgIGNvbnRleHQgPT09ICdwb3B1cCcgJiYgc2VsZWN0ZWRVaWQgPT09IGl0ZW0uX19vcmlnaW4ubWV0YWRhdGEudWlkLFxuICAgICAgICAnZ3JpZF9faXRlbS0tZGlzYWJsZWQnOiBpdGVtLnN0YXRlPy5kaXNhYmxlZCxcbiAgICAgIH1cIlxuICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0KGl0ZW0pXCJcbiAgICAgIFthdHRyLmRhdGEtdGVzdF09XCJpdGVtLm5hbWUgKyAnLycgKyBpdGVtLmNsdXN0ZXJcIlxuICAgICAgW2F1aVRvb2x0aXBdPVwiaXRlbS5zdGF0ZT8udG9vbHRpcFwiXG4gICAgICBbYXVpVG9vbHRpcERpc2FibGVkXT1cIiFpdGVtLnN0YXRlPy5kaXNhYmxlZCB8fCAhaXRlbS5zdGF0ZT8udG9vbHRpcFwiXG4gICAgPlxuICAgICAgPGF1aS1pY29uXG4gICAgICAgICpuZ0lmPVwic2VsZWN0ZWRVaWQgPT09IGl0ZW0uX19vcmlnaW4ubWV0YWRhdGEudWlkXCJcbiAgICAgICAgY2xhc3M9XCJjaGVjay10cmlhbmdsZS1iYWRnZVwiXG4gICAgICAgIGljb249XCJjaGVja1wiXG4gICAgICA+PC9hdWktaWNvbj5cbiAgICAgIDwhLS0gaWNvbiAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJncmlkX19maWVsZCBncmlkX19maWVsZC1pY29uXCI+XG4gICAgICAgIDxhY2wtcmVzb3VyY2UtaWNvblxuICAgICAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgICAgIFtjb2xvcl09XCJcbiAgICAgICAgICAgIGNvbnRleHQgPT09ICdwb3B1cCcgJiZcbiAgICAgICAgICAgICFwb3B1cExpdGUgJiZcbiAgICAgICAgICAgIHNlbGVjdGVkVWlkID09PSBpdGVtLl9fb3JpZ2luLm1ldGFkYXRhLnVpZFxuICAgICAgICAgICAgICA/ICd3aGl0ZSdcbiAgICAgICAgICAgICAgOiAnYmx1ZSdcbiAgICAgICAgICBcIlxuICAgICAgICAgIFtkaXNwbGF5TW9kZV09XCJkaXNwbGF5TW9kZVwiXG4gICAgICAgID48L2FjbC1yZXNvdXJjZS1pY29uPlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIG5hbWUgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JpZF9fZmllbGQgZ3JpZF9fZmllbGQtbmFtZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHN0ciBvZiBnZXRIaWdobGlnaHRlZE5hbWVTdHJzKGl0ZW0pXCI+XG4gICAgICAgICAgICA8c3BhbiBbbmdDbGFzc109XCJ7IGhpZ2hsaWdodGVkOiBzdHIuaXNIaWdobGlnaHRlZCB9XCI+e3tcbiAgICAgICAgICAgICAgc3RyLnRleHRcbiAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZGVzXCJcbiAgICAgICAgICAqbmdJZj1cIiFwb3B1cExpdGVcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc3RyIG9mIGdldEhpZ2hsaWdodGVkRGlzcGxheU5hbWVTdHJzKGl0ZW0pXCI+XG4gICAgICAgICAgICA8c3BhbiBbbmdDbGFzc109XCJ7IGhpZ2hsaWdodGVkOiBzdHIuaXNIaWdobGlnaHRlZCB9XCI+e3tcbiAgICAgICAgICAgICAgc3RyLnRleHRcbiAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBuczogY2x1c3RlciAtLT5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJncmlkX19maWVsZCBmbGV4IGdyaWRfX2ZpZWxkLWNsdXN0ZXJcIlxuICAgICAgICAqbmdJZj1cImZpZWxkcy5pbmNsdWRlcyhmaWVsZHNEZWYuQ2x1c3RlcilcIlxuICAgICAgPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwiYmVsb25nZWQtY2x1c3RlciB0dy1mbGV4XCJcbiAgICAgICAgICBhdWlUb29sdGlwPVwie3tcbiAgICAgICAgICAgICgnYmVsb25nZWRfY2x1c3RlcicgfCB0cmFuc2xhdGUpICsgJzogJyArIGl0ZW0uY2x1c3RlclxuICAgICAgICAgIH19XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwid2l0aC1jb2xvblwiPnt7ICdiZWxvbmdlZF9jbHVzdGVyJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInR3LXRleHQtZWxsaXBzaXMgdHctb3ZlcmZsb3ctaGlkZGVuXCJcbiAgICAgICAgICAgID57eyBpdGVtLmNsdXN0ZXJcbiAgICAgICAgICAgIH19PG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uY2x1c3RlckRpc3BsYXlOYW1lXCJcbiAgICAgICAgICAgICAgPih7eyBpdGVtLmNsdXN0ZXJEaXNwbGF5TmFtZSB9fSk8L25nLWNvbnRhaW5lclxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8YXVpLXRhZ1xuICAgICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxuICAgICAgICAgICAgc2l6ZT1cIm1pbmlcIlxuICAgICAgICAgICAgKm5nSWY9XCJpdGVtLmNsdXN0ZXJBcmNoXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBpdGVtLmNsdXN0ZXJBcmNoIH19XG4gICAgICAgICAgPC9hdWktdGFnPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gcHJvamVjdDogc3RhdHVzIC0tPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImdyaWRfX2ZpZWxkIGdyaWRfX2ZpZWxkLXN0YXR1cyB7e1xuICAgICAgICAgICdncmlkX19maWVsZC1zdGF0dXMtLScgKyBpdGVtLnN0YXR1c1xuICAgICAgICB9fVwiXG4gICAgICAgICpuZ0lmPVwiZmllbGRzLmluY2x1ZGVzKGZpZWxkc0RlZi5TdGF0dXMpXCJcbiAgICAgID5cbiAgICAgICAgPGxhYmVsXG4gICAgICAgICAgKm5nSWY9XCJwb3B1cExpdGVcIlxuICAgICAgICAgIGNsYXNzPVwidHctdGV4dC1oZWxwLXRleHQgdHctbXItOFwiXG4gICAgICAgICAgPnt7ICdzdGF0dXMnIHwgdHJhbnNsYXRlIH19OjwvbGFiZWxcbiAgICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIndpdGgtY29sb25cIj57eyAnc3RhdHVzJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPGF1aS1pY29uXG4gICAgICAgICAgW2ljb25dPVwic3RhdHVzSWNvbltpdGVtLnN0YXR1c11cIlxuICAgICAgICAgIFtiYWNrZ3JvdW5kXT1cIlxuICAgICAgICAgICAgc3RhdHVzSWNvbltpdGVtLnN0YXR1c10uZW5kc1dpdGgoJ190cmlhbmdsZV9zJylcbiAgICAgICAgICAgICAgPyAndHJpYW5nbGUnXG4gICAgICAgICAgICAgIDogJ2NpcmNsZSdcbiAgICAgICAgICBcIlxuICAgICAgICAgIGNsYXNzPVwie3sgJ2ljb24tJyArIGl0ZW0uc3RhdHVzIH19XCJcbiAgICAgICAgPjwvYXVpLWljb24+XG4gICAgICAgIHt7IGl0ZW0uc3RhdHVzIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gYXNtOiBzZXJ2aWNlIG1lc2ggLS0+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZ3JpZF9fZmllbGQgZ3JpZF9fZmllbGQtc2VydmljZW1lc2hcIlxuICAgICAgICAqbmdJZj1cImZpZWxkcy5pbmNsdWRlcyhmaWVsZHNEZWYuU2VydmljZU1lc2gpXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ3aXRoLWNvbG9uXCI+e3sgJ2JlbG9uZ2VkX3NlcnZpY2VtZXNoJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4+IHt7IGl0ZW0uc2VydmljZU1lc2hOYW1lIH19IDwvc3Bhbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRlc1wiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnNlcnZpY2VNZXNoSXN0aW9WZXJzaW9uXCJcbiAgICAgICAgICAgID4oSXN0aW8ge3sgaXRlbS5zZXJ2aWNlTWVzaElzdGlvVmVyc2lvbiB9fSk8L25nLWNvbnRhaW5lclxuICAgICAgICAgID5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImdyaWRfX2ZpZWxkIGdyaWRfX2ZpZWxkLXNlcnZpY2VtZXNoXCJcbiAgICAgICAgKm5nSWY9XCJmaWVsZHMuaW5jbHVkZXMoZmllbGRzRGVmLlNlcnZpY2VNZXNoKVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwid2l0aC1jb2xvblwiPnt7ICdjbHVzdGVyJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICA+e3sgaXRlbS5jbHVzdGVyXG4gICAgICAgICAgfX08bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5jbHVzdGVyRGlzcGxheU5hbWVcIlxuICAgICAgICAgICAgPih7eyBpdGVtLmNsdXN0ZXJEaXNwbGF5TmFtZSB9fSk8L25nLWNvbnRhaW5lclxuICAgICAgICAgID5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8YXVpLXRhZ1xuICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcbiAgICAgICAgICBzaXplPVwibWluaVwiXG4gICAgICAgICAgKm5nSWY9XCJpdGVtLmNsdXN0ZXJBcmNoXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGl0ZW0uY2x1c3RlckFyY2ggfX1cbiAgICAgICAgPC9hdWktdGFnPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gbWVzaCBncm91cCAtLT5cblxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImdyaWRfX2ZpZWxkIGdyaWRfX2ZpZWxkLXNlcnZpY2VtZXNoXCJcbiAgICAgICAgKm5nSWY9XCJmaWVsZHMuaW5jbHVkZXMoZmllbGRzRGVmLlNlcnZpY2VNZXNoR3JvdXApXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ3aXRoLWNvbG9uXCI+e3sgJ2NsdXN0ZXInIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICA8c3Bhbj57eyBpdGVtLmNsdXN0ZXIgfX0gPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIGFzbTogaXN0aW8gLS0+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZ3JpZF9fZmllbGQgZ3JpZF9fZmllbGQtc2VydmljZW1lc2hcIlxuICAgICAgICAqbmdJZj1cImZpZWxkcy5pbmNsdWRlcyhmaWVsZHNEZWYuU2VydmljZU1lc2hHcm91cClcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIndpdGgtY29sb25cIj57eyAnSXN0aW8nIH19PC9zcGFuPlxuICAgICAgICA8c3BhblxuICAgICAgICAgID57eyBpdGVtLnNlcnZpY2VNZXNoSXN0aW9WZXJzaW9uIHx8ICgnbm90X2RlcGxveWVkJyB8IHRyYW5zbGF0ZSkgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gdGltZSAtLT5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJncmlkX19maWVsZCBncmlkX19maWVsZC10aW1lXCJcbiAgICAgICAgKm5nSWY9XCJmaWVsZHMuaW5jbHVkZXMoZmllbGRzRGVmLlRpbWUpICYmICFwb3B1cExpdGVcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIndpdGgtY29sb25cIj57eyAnY3JlYXRlZF9hdCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDxzcGFuPnt7IGl0ZW0udGltZXN0YW1wIHwgYWNsUmVsYXRpdmVUaW1lIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIGFjdGlvbiAtLT5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJncmlkX19maWVsZCBncmlkX19maWVsZC1hY3Rpb25cIlxuICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICBmaWVsZHMuaW5jbHVkZXMoZmllbGRzRGVmLkFjdGlvbikgJiZcbiAgICAgICAgICBhY3Rpb25UZW1wbGF0ZVJlZiAmJlxuICAgICAgICAgIGNvbnRleHQgIT09ICdwb3B1cCdcbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFjdGlvblRlbXBsYXRlUmVmXCJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgJGltcGxpY2l0OiBpdGVtLl9fb3JpZ2luLFxuICAgICAgICAgIH1cIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxhY2wtcmVzb3VyY2Utbm8tZGF0YVxuICAgICpuZ0lmPVwiIXBvcHVwTGl0ZSAmJiAhKGRpc3BsYXlEYXRhJCB8IGFzeW5jKT8ubGVuZ3RoXCJcbiAgICBbaXNGaWx0ZXJlZF09XCIhIWtleXdvcmRcIlxuICAgIFt0eXBlXT1cInR5cGVcIlxuICAgIChyZWZyZXNoKT1cInJlbG9hZC5lbWl0KClcIlxuICAgIChjbGVhcik9XCJrZXl3b3JkQ2hhbmdlKCcnKVwiXG4gID48L2FjbC1yZXNvdXJjZS1uby1kYXRhPlxuICA8YWNsLXplcm8tc3RhdGVcbiAgICAqbmdJZj1cInBvcHVwTGl0ZSAmJiAhKGRpc3BsYXlEYXRhJCB8IGFzeW5jKT8ubGVuZ3RoXCJcbiAgICBjb250ZXh0PVwidGFibGVcIlxuICA+PC9hY2wtemVyby1zdGF0ZT5cbjwvbmctY29udGFpbmVyPlxuPGRpdlxuICBjbGFzcz1cImxvYWRpbmdcIlxuICAqbmdJZj1cImxvYWRpbmdcIlxuPlxuICA8YWNsLWxvYWRpbmctbWFza1xuICAgIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxuICAgIHR5cGU9XCJjb250ZW50XCJcbiAgPjwvYWNsLWxvYWRpbmctbWFzaz5cbjwvZGl2PlxuIl19
|
|
@@ -27,7 +27,6 @@ export const Bracket = {
|
|
|
27
27
|
POINTY_BRACKETS: ['<', '>'],
|
|
28
28
|
};
|
|
29
29
|
export const TEMPLATE_OPTIONS = Object.freeze({
|
|
30
|
-
// eslint-disable-next-line regexp/match-any, regexp/strict
|
|
31
30
|
interpolate: /{{([\S\s]+?)}}/g,
|
|
32
31
|
});
|
|
33
32
|
export const DEFAULT_CODE_EDITOR_OPTIONS = {
|
|
@@ -70,7 +69,6 @@ export const LINK = 'link';
|
|
|
70
69
|
export const ESCAPE_DEACTIVATE_CHECK = 'escape';
|
|
71
70
|
export const CUSTOMIZED = 'customized';
|
|
72
71
|
export const GLOBAL_CLUSTER = 'global';
|
|
73
|
-
export const GLOBAL_NAMESPACE = 'cpaas-system';
|
|
74
72
|
export const PACKAGE_RUNTIME_VALUE = 'Runtime';
|
|
75
73
|
export const CRYPTO_HEADER_KEY = 'X-Param-Response';
|
|
76
74
|
export var CRYPTO_TYPE;
|
|
@@ -85,4 +83,4 @@ export const PLATFORM_OPS_MODE = 'platform-ops-mode';
|
|
|
85
83
|
// https://kubernetes.io/docs/reference/labels-annotations-taints/#kubectl-kubernetes-io-default-container
|
|
86
84
|
export const DEFAULT_CONTAINER_ANNOTATION = 'kubectl.kubernetes.io/default-container';
|
|
87
85
|
export const NOTIFICATION_SERVER_NAME = 'platform-email-server';
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2NvcmUvY29uc3RhbnRzL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsaUJBQWlCLENBQUM7QUFFN0MsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQztBQUMzQixNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDO0FBRTdCLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7QUFDeEIsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQztBQUN6QixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDO0FBQ3ZCLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUM7QUFDekIsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQztBQUMxQixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDO0FBQzlCLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUM7QUFFN0IsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQztBQUU3QixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDO0FBQ3hDLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUM7QUFDdEMsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsR0FBRyxXQUFXLElBQUksV0FBVyxFQUFFLENBQUM7QUFFaEUsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcscUJBQXFCLENBQUM7QUFFdEQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsYUFBYSxDQUFDO0FBRTlDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUM7QUFDcEMsTUFBTSxD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dkQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQztBQUVuQyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxtQkFBbUIsQ0FBQztBQUVyRCwwR0FBMEc7QUFDMUcsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQ3ZDLHlDQUF5QyxDQUFDO0FBRTVDLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqIEBtb2R1bGUgdXRpbHNcbiAqL1xuXG5leHBvcnQgY29uc3QgQVBJX0dBVEVXQVkgPSAne3tBUElfR0FURVdBWX19JztcblxuZXhwb3J0IGNvbnN0IFRSVUUgPSAndHJ1ZSc7XG5leHBvcnQgY29uc3QgRkFMU0UgPSAnZmFsc2UnO1xuXG5leHBvcnQgY29uc3QgRU1QVFkgPSAnJztcbmV4cG9ydCBjb25zdCBTUEFDRSA9ICcgJztcbmV4cG9ydCBjb25zdCBET1QgPSAnLic7XG5leHBvcnQgY29uc3QgU0xBU0ggPSAnLyc7XG5leHBvcnQgY29uc3QgSFlQSEVOID0gJy0nO1xuZXhwb3J0IGNvbnN0IFVOREVSU0NPUkUgPSAnXyc7XG5leHBvcnQgY29uc3QgREVMSU1JVEVSID0gJzonO1xuXG5leHBvcnQgY29uc3QgV0lMRENBUkQgPSAnLionO1xuXG5leHBvcnQgY29uc3QgREFURV9GT1JNQVQgPSAnWVlZWS1NTS1ERCc7XG5leHBvcnQgY29uc3QgVElNRV9GT1JNQVQgPSAnSEg6bW06c3MnO1xuZXhwb3J0IGNvbnN0IERBVEVfVElNRV9GT1JNQVQgPSBgJHtEQVRFX0ZPUk1BVH0gJHtUSU1FX0ZPUk1BVH1gO1xuXG5leHBvcnQgY29uc3QgV09SS1NQQUNFX1BBUkFNUyA9ICd3b3Jrc3BhY2VfcGFyYW1zX3YxJztcblxuZXhwb3J0IGNvbnN0IFBVQkxJQ19OQU1FU1BBQ0UgPSAna3ViZS1wdWJsaWMnO1xuXG5leHBvcnQgY29uc3QgQVNTSUdOX0FMTCA9ICdBTExfQUxMJztcbmV4cG9ydCBjb25zdCBBTEwgPSAnQUxMJztcblxuZXhwb3J0IGNvbnN0IEJyYWNrZXQgPSB7XG4gIFBBUkVOVEhFU0VTOiBbJygnLCAnKSddLFxuICBCUkFDRVM6IFsneycsICd9J10sXG4gIFNRVUFSRV9CUkFDS0VUUzogWydbJywgJ10nXSxcbiAgUE9JTlRZX0JSQUNLRVRTOiBbJzwnLCAnPiddLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IFRFTVBMQVRFX09QVElPTlMgPSBPYmplY3QuZnJlZXplKHtcbiAgaW50ZXJwb2xhdGU6IC97eyhbXFxTXFxzXSs/KX19L2csXG59KTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQ09ERV9FRElUT1JfT1BUSU9OUzogaW1wb3J0KCdAYWxhdWRhL2NvZGUtZWRpdG9yJykuTW9uYWNvRWRpdG9yT3B0aW9ucyA9XG4gIHtcbiAgICBmb250U2l6ZTogMTIsXG4gICAgZm9sZGluZzogdHJ1ZSxcbiAgICBzY3JvbGxCZXlvbmRMYXN0TGluZTogZmFsc2UsXG4gICAgbWluaW1hcDogeyBlbmFibGVkOiBmYWxzZSB9LFxuICAgIGZpbmQ6IHtcbiAgICAgIHNlZWRTZWFyY2hTdHJpbmdGcm9tU2VsZWN0aW9uOiAnbmV2ZXInLFxuICAgICAgYXV0b0ZpbmRJblNlbGVjdGlvbjogJ25ldmVyJyxcbiAgICB9LFxuICAgIG1vdXNlV2hlZWxab29tOiB0cnVlLFxuICAgIHNjcm9sbGJhcjoge1xuICAgICAgdmVydGljYWw6ICd2aXNpYmxlJyxcbiAgICAgIGhvcml6b250YWw6ICd2aXNpYmxlJyxcbiAgICB9LFxuICAgIGZpeGVkT3ZlcmZsb3dXaWRnZXRzOiB0cnVlLFxuICB9O1xuXG5leHBvcnQgY29uc3QgTk9USUZZX09OX0VSUk9SX0hFQURFUiA9ICdfX05PVElGSUNBVElPTl9PTl9FUlJPUl9fJztcblxuZXhwb3J0IGNvbnN0IE5PVElGWV9EVVJBVElPTl9IRUFERVIgPSAnX19OT1RJRklDQVRJT05fRFVSQVRJT05fXyc7XG5cbmV4cG9ydCBjb25zdCBOT1RJRllfT05fRVJST1JfSEVBREVSUyA9IHtcbiAgW05PVElGWV9PTl9FUlJPUl9IRUFERVJdOiBUUlVFLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IE5PVF9OT1RJRllfT05fRVJST1JfSEVBREVSUyA9IHtcbiAgW05PVElGWV9PTl9FUlJPUl9IRUFERVJdOiBGQUxTRSxcbn0gYXMgY29uc3Q7XG5cbi8vIOW9k+WJjeeOr+Wig+aYr+WQpuWFgeiuuOmZjee6p1xuLy8gJ2VuYWJsZWRfZG93bmdyYWRlX3dhdGNoJyDkuLvopoHmj5DkvpvmnKzlnLDlvIDlj5HlvLrliLbmiZPlvIDpnIDopoFcbmV4cG9ydCBjb25zdCBET1dOR1JBREVfV0FUQ0hfRU5BQkxFRCA9XG4gIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdlbmFibGVkX2Rvd25ncmFkZV93YXRjaCcpID09PSBUUlVFIHx8XG4gIChkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCAhPT0gJ2h0dHBzOicgJiZcbiAgICBkb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSAhPT0gJ2xvY2FsaG9zdCcpO1xuXG5leHBvcnQgY29uc3QgRE9XTkdSQURFX1dBVENIX1BPTExJTkcgPSA1MDAwIGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgQ1JFQVRFRF9BVCA9ICdjcmVhdGVkX2F0JztcbmV4cG9ydCBjb25zdCBVUERBVEVEX0FUID0gJ3VwZGF0ZWRfYXQnO1xuZXhwb3J0IGNvbnN0IEFDVElPTiA9ICdhY3Rpb24nO1xuZXhwb3J0IGNvbnN0IFNQRUMgPSAnc3BlYyc7XG5leHBvcnQgY29uc3QgQ1JFQVRFID0gJ2NyZWF0ZSc7XG5leHBvcnQgY29uc3QgVVBEQVRFID0gJ3VwZGF0ZSc7XG5leHBvcnQgY29uc3QgTElOSyA9ICdsaW5rJztcblxuZXhwb3J0IGNvbnN0IEVTQ0FQRV9ERUFDVElWQVRFX0NIRUNLID0gJ2VzY2FwZSc7XG5cbmV4cG9ydCBjb25zdCBDVVNUT01JWkVEID0gJ2N1c3RvbWl6ZWQnO1xuXG5leHBvcnQgY29uc3QgR0xPQkFMX0NMVVNURVIgPSAnZ2xvYmFsJztcblxuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfUlVOVElNRV9WQUxVRSA9ICdSdW50aW1lJztcblxuZXhwb3J0IGNvbnN0IENSWVBUT19IRUFERVJfS0VZID0gJ1gtUGFyYW0tUmVzcG9uc2UnO1xuZXhwb3J0IGVudW0gQ1JZUFRPX1RZUEUge1xuICBFbmFibGUgPSAnRm9yY2UnLFxuICBEcm9wID0gJ0Ryb3AnLFxuICBEaXNhYmxlID0gJ05vbmUnLFxufVxuZXhwb3J0IGNvbnN0IENSWVBUT19SQU5ET01fSEVBREVSX0tFWSA9ICdYLVBhcmFtLUluaXQnO1xuZXhwb3J0IGNvbnN0IENSWVBUT19LRVkgPSAnYWxhdWRhJztcblxuZXhwb3J0IGNvbnN0IFBMQVRGT1JNX09QU19NT0RFID0gJ3BsYXRmb3JtLW9wcy1tb2RlJztcblxuLy8gaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvcmVmZXJlbmNlL2xhYmVscy1hbm5vdGF0aW9ucy10YWludHMvI2t1YmVjdGwta3ViZXJuZXRlcy1pby1kZWZhdWx0LWNvbnRhaW5lclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQ09OVEFJTkVSX0FOTk9UQVRJT04gPVxuICAna3ViZWN0bC5rdWJlcm5ldGVzLmlvL2RlZmF1bHQtY29udGFpbmVyJztcblxuZXhwb3J0IGNvbnN0IE5PVElGSUNBVElPTl9TRVJWRVJfTkFNRSA9ICdwbGF0Zm9ybS1lbWFpbC1zZXJ2ZXInO1xuIl19
|