@alauda-fe/common 1.4.2 → 1.4.3
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/core/constants/constants.d.ts +0 -1
- package/core/directives/scroll-to-first-invalid.directive.d.ts +1 -1
- package/core/services/feature-gate.service.d.ts +1 -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/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/translate/translate.service.mjs +3 -4
- package/k8s-resource-list/k8s-resource-paged-list.d.ts +2 -2
- package/package.json +1 -1
- package/page-scaffold/page/notices/notice.component.d.ts +1 -1
- package/table/component.d.ts +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
|
}
|
|
@@ -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 {
|
|
@@ -13,7 +13,7 @@ export declare class ScrollToFirstInvalidDirective {
|
|
|
13
13
|
private readonly cdkScrollable;
|
|
14
14
|
labelOffset: number;
|
|
15
15
|
aclScrollToFirstInvalid: boolean | '';
|
|
16
|
-
get containerEl(): (Window & typeof globalThis)
|
|
16
|
+
get containerEl(): HTMLElement | (Window & typeof globalThis);
|
|
17
17
|
onSubmit(): void;
|
|
18
18
|
constructor(elRef: ElementRef<HTMLElement>, controlContainer: ControlContainer, cdkScrollable: CdkScrollable);
|
|
19
19
|
scrollToFirstInvalid(): void;
|
|
@@ -9,7 +9,7 @@ export declare class FeatureGateService {
|
|
|
9
9
|
private readonly http;
|
|
10
10
|
private readonly cacheStore;
|
|
11
11
|
constructor(http: HttpClient);
|
|
12
|
-
loadState(cluster?: string): Observable<"
|
|
12
|
+
loadState(cluster?: string): Observable<"loaded" | "loadFailed" | "loading">;
|
|
13
13
|
/**
|
|
14
14
|
* check gate status
|
|
15
15
|
* @param gate - specified feature gate
|
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=
|
|
@@ -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
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject } from 'rxjs';
|
|
2
|
+
import { BehaviorSubject, filter } from 'rxjs';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class WorkspaceHelperService {
|
|
5
5
|
constructor() {
|
|
6
|
-
this.baseParams$$ = new BehaviorSubject(
|
|
7
|
-
this.baseParams = this.baseParams$$.asObservable();
|
|
6
|
+
this.baseParams$$ = new BehaviorSubject(null);
|
|
7
|
+
this.baseParams = this.baseParams$$.asObservable().pipe(filter(Boolean));
|
|
8
8
|
}
|
|
9
9
|
get baseParamsSnapshot() {
|
|
10
10
|
return this.baseParams$$.value;
|
|
@@ -24,4 +24,4 @@ export class WorkspaceHelperService {
|
|
|
24
24
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WorkspaceHelperService, [{
|
|
25
25
|
type: Injectable
|
|
26
26
|
}], null, null); })();
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLWhlbHBlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2NvcmUvc2VydmljZXMvd29ya3NwYWNlLWhlbHBlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBSy9DLE1BQU0sT0FBTyxzQkFBc0I7SUFEbkM7UUFFbUIsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBa0IsSUFBSSxDQUFDLENBQUM7UUFHbEUsZUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0tBaUI5RTtJQWZDLElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xDLENBQUM7SUFFRCxhQUFhLENBQUMsTUFBdUI7UUFDbkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELHFCQUFxQixDQUFDLEtBQXFCO1FBQ3pDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7SUFDbkMsQ0FBQzt1RkFwQlUsc0JBQXNCO3VFQUF0QixzQkFBc0IsV0FBdEIsc0JBQXNCOztpRkFBdEIsc0JBQXNCO2NBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZpbHRlciB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBXb3Jrc3BhY2VQYXJhbXMgfSBmcm9tICcuLi90eXBlcy9wdWJsaWMtYXBpJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFdvcmtzcGFjZUhlbHBlclNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGJhc2VQYXJhbXMkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8V29ya3NwYWNlUGFyYW1zPihudWxsKTtcbiAgcHJpdmF0ZSBfYmFzZUFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZTtcblxuICByZWFkb25seSBiYXNlUGFyYW1zID0gdGhpcy5iYXNlUGFyYW1zJCQuYXNPYnNlcnZhYmxlKCkucGlwZShmaWx0ZXIoQm9vbGVhbikpO1xuXG4gIGdldCBiYXNlUGFyYW1zU25hcHNob3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZVBhcmFtcyQkLnZhbHVlO1xuICB9XG5cbiAgZ2V0IGJhc2VBY3RpdmF0ZWRSb3V0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fYmFzZUFjdGl2YXRlZFJvdXRlO1xuICB9XG5cbiAgc2V0QmFzZVBhcmFtcyhwYXJhbXM6IFdvcmtzcGFjZVBhcmFtcykge1xuICAgIHRoaXMuYmFzZVBhcmFtcyQkLm5leHQocGFyYW1zKTtcbiAgfVxuXG4gIHNldEJhc2VBY3RpdmF0ZWRSb3V0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcbiAgICB0aGlzLl9iYXNlQWN0aXZhdGVkUm91dGUgPSByb3V0ZTtcbiAgfVxufVxuIl19
|
|
@@ -45,4 +45,4 @@ export var UserState;
|
|
|
45
45
|
UserState["INVALID"] = "invalid";
|
|
46
46
|
UserState["DELETED"] = "deleted";
|
|
47
47
|
})(UserState || (UserState = {}));
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2NvcmUvdHlwZXMvazhzL2NyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF5SEEsTUFBTSxDQUFOLElBQVksbUJBSVg7QUFKRCxXQUFZLG1CQUFtQjtJQUM3QixpREFBMEIsQ0FBQTtJQUMxQiwwQ0FBbUIsQ0FBQTtJQUNuQiw0Q0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBSlcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUk5QjtBQUVELE1BQU0sQ0FBTixJQUFZLGtCQVVYO0FBVkQsV0FBWSxrQkFBa0I7SUFDNUIsa0RBQTRCLENBQUE7SUFDNUIseUNBQW1CLENBQUE7SUFDbkIsMkNBQXFCLENBQUE7SUFDckIsNkNBQXVCLENBQUE7SUFDdkIsb0RBQThCLENBQUE7SUFDOUIsNkNBQXVCLENBQUE7SUFDdkIsc0RBQWdDLENBQUE7SUFDaEMsNkNBQXVCLENBQUE7SUFDdkIseUNBQW1CLENBQUE7QUFDckIsQ0FBQyxFQVZXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFVN0I7QUE4Q0QsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxNQUFNO0lBQ1osa0JBQWtCLEVBQUUsbUJBQW1CO0lBQ3ZDLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFlBQVksRUFBRSxhQUFhO0lBQzNCLGFBQWEsRUFBRSxjQUFjO0NBQ3JCLENBQUM7QUFrY1gsTUFBTSxDQUFOLElBQVkseUJBTVg7QUFORCxXQUFZLHlCQUF5QjtJQUNuQyxnREFBbUIsQ0FBQTtJQUNuQixnREFBbUIsQ0FBQTtJQUNuQixnREFBbUIsQ0FBQTtJQUNuQiw4Q0FBaUIsQ0FBQTtJQUNqQiw0Q0FBZSxDQUFBO0FBQ2pCLENBQUMsRUFOVyx5QkFBeUIsS0FBekIseUJBQXlCLFFBTXBDO0FBV0QsTUFBTSxDQUFOLElBQVksb0JBS1g7QUFMRCxXQUFZLG9CQUFvQjtJQUM5Qix5Q0FBaUIsQ0FBQTtJQUNqQix5Q0FBaUIsQ0FBQTtJQUNqQiwyQ0FBbUIsQ0FBQTtJQUNuQixxREFBNkIsQ0FBQTtBQUMvQixDQUFDLEVBTFcsb0JBQW9CLEtBQXBCLG9CQUFvQixRQUsvQjtBQXNIRCxNQUFNLENBQU4sSUFBWSxTQUtYO0FBTEQsV0FBWSxTQUFTO0lBQ25CLDhCQUFpQixDQUFBO0lBQ2pCLDhCQUFpQixDQUFBO0lBQ2pCLGdDQUFtQixDQUFBO0lBQ25CLGdDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFMVyxTQUFTLEtBQVQsU0FBUyxRQUtwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbHVlT2YgfSBmcm9tICd0cy1lc3NlbnRpYWxzJztcblxuaW1wb3J0IHsgU3RyaW5nTWFwIH0gZnJvbSAnLi4vY29tbW9ucyc7XG5cbmltcG9ydCB7IENvbmRpdGlvbiwgS3ViZXJuZXRlc1Jlc291cmNlLCBPYmplY3RNZXRhIH0gZnJvbSAnLi9jb3JlJztcbmltcG9ydCB7XG4gIENvbmZpZ01hcEtleVJlZixcbiAgTm9kZSxcbiAgTm9kZVN0YXR1cyxcbiAgTm9kZVRhaW50LFxuICBTZWNyZXRLZXlSZWYsXG59IGZyb20gJy4vcmF3JztcblxuLyoqXG4gKiDlj6rkv53nlZljb21tb27kuK3pnIDopoHnlKjliLDnmoRjcmQg5omp5bGV57G7XG4gKi9cblxuZXhwb3J0IGludGVyZmFjZSBNb2R1bGVJbmZvQ29uZGl0aW9uIHtcbiAgc3RhdHVzPzogJ1N1Y2Nlc3MnIHwgJ0ZhaWxlZCcgfCAnUHJvY2Vzc2luZycgfCAnUGVuZGluZyc7XG4gIHJlYXNvbj86IHN0cmluZztcbiAgbWVzc2FnZT86IHN0cmluZztcbiAgdHlwZT86IHN0cmluZztcbiAgbGFzdFRyYW5zaXRpb25UaW1lPzogc3RyaW5nO1xuICBsYXN0SGVhcnRiZWF0VGltZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNb2R1bGVJbmZvQXZhaWxhYmxlVmVyc2lvbiB7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbkVuPzogc3RyaW5nO1xuICByaXNrTGV2ZWw/OiAnTG93JyB8ICdNaWRkbGUnIHwgJ0hpZ2gnO1xuICBkZXBlbmRlbmNpZXM/OiBBcnJheTx7XG4gICAgbW9kdWxlTmFtZTogc3RyaW5nO1xuICAgIHZlcnNpb25zTWF0Y2g6IHN0cmluZ1tdO1xuICB9PjtcbiAgdXBncmFkZUJlZm9yZT86IEFycmF5PHtcbiAgICBtb2R1bGVOYW1lOiBzdHJpbmc7XG4gIH0+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vZHVsZUluZm8gZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjPzoge1xuICAgIHZlcnNpb24/OiBzdHJpbmc7XG4gICAgZW50cnlwb2ludD86IHN0cmluZztcbiAgICBzZWxlY3RlZENsdXN0ZXI/OiBBcnJheTx7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9PjsgLy8ge3BsdWdpbi1uYW1lOiBjbHVzdGVyLW5hbWV9W11cbiAgICB2YWx1ZXNPdmVycmlkZTogU3RyaW5nTWFwO1xuICAgIGNvbmZpZz86IGFueTtcbiAgfTtcbiAgc3RhdHVzPzoge1xuICAgIHZlcnNpb246IHN0cmluZztcbiAgICBwaGFzZTogJ1Byb2Nlc3NpbmcnIHwgJ1J1bm5pbmcnIHwgJ0ZhaWxlZCcgfCAnQmxvY2tlZCc7XG4gICAgcmVtb3ZlSXNQcmV2ZW50ZWQ/OiBib29sZWFuO1xuICAgIGJsb2NrUmVhc29ucz86IHN0cmluZ1tdO1xuICAgIGNvbmRpdGlvbnM/OiBNb2R1bGVJbmZvQ29uZGl0aW9uW107XG4gICAgYXZhaWxhYmxlVmVyc2lvbnM6IE1vZHVsZUluZm9BdmFpbGFibGVWZXJzaW9uW107XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3RlclNwZWMge1xuICBhdXRoSW5mbz86IHtcbiAgICBjb250cm9sbGVyOiB7XG4gICAgICBraW5kOiBzdHJpbmc7XG4gICAgICBuYW1lc3BhY2U6IHN0cmluZztcbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICB9O1xuICB9O1xuICBrdWJlcm5ldGVzQXBpRW5kcG9pbnRzPzoge1xuICAgIGNhQnVuZGxlPzogc3RyaW5nO1xuICAgIHNlcnZlckVuZHBvaW50czogQXJyYXk8e1xuICAgICAgY2xpZW50Q0lEUjogc3RyaW5nO1xuICAgICAgc2VydmVyQWRkcmVzczogc3RyaW5nO1xuICAgIH0+O1xuICB9O1xufVxuXG5leHBvcnQgdHlwZSBDbHVzdGVyU3RhdHVzUmVhc29uID1cbiAgfCAnVGltZW91dCdcbiAgfCAnRm9yYmlkZGVuJ1xuICB8ICdVbmF1dGhvcml6ZWQnXG4gIHwgJ1NvbWVDb21wb25lbnRzVW5oZWFsdGh5J1xuICB8ICdTb21lTm9kZXNOb3RSZWFkeSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3RlclN0YXR1c0NvbmRpdGlvbiBleHRlbmRzIENvbmRpdGlvbiB7XG4gIGxhc3RUcmFuc2l0aW9uVGltZTogc3RyaW5nO1xuICB0eXBlOlxuICAgIHwgJ05vdFJlYWNoYWJsZSdcbiAgICB8ICdOb3RBY2Nlc3NpYmxlJ1xuICAgIHwgJ0NvbXBvbmVudE5vdEhlYWx0aHknXG4gICAgfCAnTm9kZU5vdFJlYWR5JztcbiAgc3RhdHVzOiAnVHJ1ZScgfCAnRmFsc2UnO1xuICByZWFzb246IENsdXN0ZXJTdGF0dXNSZWFzb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3RlclN0YXR1cyB7XG4gIHZlcnNpb246IHN0cmluZztcbiAgY29uZGl0aW9uczogQ2x1c3RlclN0YXR1c0NvbmRpdGlvbltdO1xufVxuXG4vLyBjbHVzdGVycy5jbHVzdGVycmVnaXN0cnkuazhzLmlvIOeahOexu+Wei+WumuS5iVxuZXhwb3J0IGludGVyZmFjZSBDbHVzdGVyIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgbWV0YWRhdGE/OiBPYmplY3RNZXRhICYge1xuICAgIGZpbmFsaXplcnM/OiBzdHJpbmdbXTtcbiAgfTtcbiAgc3BlYz86IENsdXN0ZXJTcGVjO1xuICBzdGF0dXM/OiBDbHVzdGVyU3RhdHVzO1xuICBkZXRhaWxzPzoge1xuICAgIGdyb3VwOiBzdHJpbmc7XG4gICAga2luZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB1aWQ6IHN0cmluZztcbiAgfTtcbn1cblxuLy8gQWxhdWRhIFByb2R1Y3RcbmV4cG9ydCBpbnRlcmZhY2UgQWxhdWRhUHJvZHVjdFN0YXR1cyBleHRlbmRzIENvbmRpdGlvbiB7XG4gIGRlcGxveVN0YXR1cz86IEFsYXVkYURlcGxveVN0YXR1cztcbiAgcnVubmluZ1N0YXR1cz86IEFsYXVkYVJ1bm5pbmdTdGF0dXM7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgZGVwbG95VGltZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gQWxhdWRhUnVubmluZ1N0YXR1cyB7XG4gIE5PVF9SVU5OSU5HID0gJ05vdFJ1bm5pbmcnLFxuICBIRUFMVEhZID0gJ0hlYWx0aHknLFxuICBBQk5PUk1BTCA9ICdBYm5vcm1hbCcsXG59XG5cbmV4cG9ydCBlbnVtIEFsYXVkYURlcGxveVN0YXR1cyB7XG4gIE5PVF9ERVBMT1lFRCA9ICdOb3REZXBsb3llZCcsXG4gIFNVQ0NFU1MgPSAnc3VjY2VzcycsXG4gIEFCTk9STUFMID0gJ0Fibm9ybWFsJyxcbiAgREVQTE9ZSU5HID0gJ0RlcGxveWluZycsXG4gIERFUExPWV9GQUlMRUQgPSAnRGVwbG95RmFpbGVkJyxcbiAgVVBHUkFESU5HID0gJ1VwZ3JhZGluZycsXG4gIFVQR1JBREVfRkFJTEVEID0gJ1VwZ3JhZGVGYWlsZWQnLFxuICBDT01QTEVURUQgPSAnQ29tcGxldGVkJyxcbiAgUEVORElORyA9ICdQZW5kaW5nJyxcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdEJhc2UgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjOiBQcm9kdWN0QmFzZVNwZWM7XG4gIHN0YXR1cz86IFByb2R1Y3RCYXNlU3RhdHVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2R1Y3RTdGF0dXNDb25kaXRpb24ge1xuICBzdGF0dXM/OiAnVHJ1ZScgfCAnRmFsc2UnIHwgJ1Vua25vd24nO1xuICByZWFzb24/OiBzdHJpbmc7XG4gIG1lc3NhZ2U/OiBzdHJpbmc7XG4gIHR5cGU6ICdSZWFkeScgfCAnSW5pdGlhbGl6ZWQnIHwgJ1JlY2xhaW1lZCcgfCAnU3VjY2VlZCc7XG4gIGxhc3RUcmFuc2l0aW9uVGltZT86IHN0cmluZztcbiAgbGFzdEhlYXJ0YmVhdFRpbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdEJhc2VTdGF0dXMge1xuICBnbG9iYWxJRDogc3RyaW5nO1xuICBjbG91ZDoge1xuICAgIHBoYXNlOiAnT05MaW5lJyB8ICdDb25uZWN0RmFpbGVkJyB8ICdDb25uZWN0aW5nJyB8ICdPRkZMaW5lJztcbiAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgY29ubmVjdFVSTDogc3RyaW5nO1xuICB9O1xuICB2ZXJzaW9uOiBzdHJpbmc7XG4gIHBoYXNlPzpcbiAgICB8ICdQZW5kaW5nJ1xuICAgIHwgJ1Byb3Zpc2lvbmluZydcbiAgICB8ICdQcm92aXNpb25lZCdcbiAgICB8ICdEZWxldGluZydcbiAgICB8ICdGYWlsZWQnXG4gICAgfCAnUnVubmluZydcbiAgICB8ICdJbnN0YWxsaW5nJyAvLyB0ZHNxbFxuICAgIHwgJ1VwZ3JhZGluZyc7XG4gIHByb2R1Y3RFbnRyeXBvaW50Pzogc3RyaW5nO1xuICBkZWxldGFibGU/OiBib29sZWFuO1xuICBjb25kaXRpb25zPzogUHJvZHVjdFN0YXR1c0NvbmRpdGlvbltdO1xuICBwcm9tZXRoZXVzQWRkcmVzcz86IHN0cmluZztcbiAgZWxhc3RpY1NlYXJjaEFkZHJlc3M/OiBzdHJpbmc7XG4gIGthZmthQWRkcmVzcz86IHN0cmluZztcbiAgY29udGFpbmVyUGxhdGZvcm0/OiBBbGF1ZGFQcm9kdWN0U3RhdHVzO1xuICBkZXZvcHM/OiBBbGF1ZGFQcm9kdWN0U3RhdHVzO1xuICBzZXJ2aWNlTWVzaD86IEFsYXVkYVByb2R1Y3RTdGF0dXM7XG4gIGRhdGFTZXJ2aWNlcz86IEFsYXVkYVByb2R1Y3RTdGF0dXM7XG4gIGJhc2U/OiBBbGF1ZGFQcm9kdWN0U3RhdHVzO1xuICBwcm9ncmVzcz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IFByb2R1Y3RLZXkgPSB7XG4gIEJBU0U6ICdiYXNlJyxcbiAgQ09OVEFJTkVSX1BMQVRGT1JNOiAnY29udGFpbmVyUGxhdGZvcm0nLFxuICBERVZPUFM6ICdkZXZvcHMnLFxuICBTRVJWSUNFX01FU0g6ICdzZXJ2aWNlTWVzaCcsXG4gIERBVEFfU0VSVklDRVM6ICdkYXRhU2VydmljZXMnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgUHJvZHVjdEtleSA9IFZhbHVlT2Y8dHlwZW9mIFByb2R1Y3RLZXk+O1xuXG50eXBlIEdlblByb2R1Y3Q8VCBleHRlbmRzIFByb2R1Y3RLZXk+ID0gUmVjb3JkPFQsIHsgaW5zdGFsbDogYm9vbGVhbiB9PjtcblxuZXhwb3J0IGludGVyZmFjZSBUbHMge1xuICBjZXJ0OiBzdHJpbmc7XG4gIGtleTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2R1Y3RCYXNlU3BlYyBleHRlbmRzIEdlblByb2R1Y3Q8UHJvZHVjdEtleT4ge1xuICBhbHRlcm5hdGl2ZVVSTHM6IHN0cmluZ1tdO1xuICBjaGFydE11c2V1bToge1xuICAgIHVybDogc3RyaW5nO1xuICB9O1xuICBwYWNrYWdlRWRpdGlvbjogc3RyaW5nO1xuICB2YWx1ZXNPdmVycmlkZT86IHtcbiAgICBkZXg6IFN0cmluZ01hcDtcbiAgfTtcbiAgY2hhcnRWZXJzaW9uczogW3sgbmFtZTogc3RyaW5nOyB2ZXJzaW9uOiBzdHJpbmcgfV07XG4gIGRlZmF1bHRBZG1pbjoge1xuICAgIGFjY291bnQ6IHN0cmluZztcbiAgICBlbWFpbDogc3RyaW5nO1xuICAgIHBhc3N3b3JkOiBzdHJpbmc7XG4gIH07XG4gIGRlZmF1bHRSZWRpcmVjdFBhdGg6IHN0cmluZztcbiAgZGVwbG95VHlwZTogc3RyaW5nO1xuICBlbGFzdGljc2VhcmNoOiB7XG4gICAgaW5zdGFsbDogYm9vbGVhbjtcbiAgICBub2Rlczogc3RyaW5nW107XG4gICAgdXNlcm5hbWU6IHN0cmluZztcbiAgfTtcbiAgaHR0cDoge1xuICAgIGZvcmNlUmVkaXJlY3RIdHRwcz86IGJvb2xlYW47XG4gICAgaHR0cFBvcnQ/OiBudW1iZXI7XG4gICAgaHR0cHNQb3J0PzogbnVtYmVyO1xuICAgIHRscz86IFRscztcbiAgfTtcbiAgaW5ncmVzczoge1xuICAgIGNvbnRyb2xsZXI6IHsgaW5zdGFsbDogYm9vbGVhbjsgbm9kZXM6IHN0cmluZ1tdIH07XG4gICAgaG9zdDogc3RyaW5nO1xuICAgIGluZ3Jlc3NDbGFzc05hbWU6IHN0cmluZztcbiAgfTtcbiAga2Fma2E6IHtcbiAgICBhdXRoOiBib29sZWFuO1xuICAgIGluc3RhbGw6IGJvb2xlYW47XG4gICAgbm9kZXM6IHN0cmluZ1tdO1xuICAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gIH07XG4gIGxvZ0FnZW50OiB7XG4gICAgZW5hYmxlOiBib29sZWFuO1xuICB9O1xuICBsb2dDZW50ZXI6IHtcbiAgICBlbmFibGU6IGJvb2xlYW47XG4gIH07XG4gIHBsYXRmb3JtVVJMOiBzdHJpbmc7XG4gIHByb21ldGhldXM6IHtcbiAgICBpbnN0YWxsOiBib29sZWFuO1xuICAgIHJlcGxpY2FzOiBudW1iZXI7XG4gICAgc3RvcmFnZTogeyBjYXBhY2l0eTogbnVtYmVyOyBub2Rlczogc3RyaW5nW107IHBhdGg6IHN0cmluZzsgdHlwZTogc3RyaW5nIH07XG4gIH07XG5cbiAgcmVnaXN0cnk6IHtcbiAgICBleHRlcm5hbD86IHN0cmluZztcbiAgICBhZGRyZXNzOiBzdHJpbmc7XG4gICAgdXNlcm5hbWU6IHN0cmluZztcbiAgICBzZWNyZXRSZWY/OiBzdHJpbmc7XG4gIH07XG4gIHJlcGxpY2FzOiBudW1iZXI7XG4gIHZlcnNpb246IHN0cmluZztcbiAgY2xvdWQ6IHtcbiAgICBjb25uZWN0OiBib29sZWFuO1xuICAgIGNvbm5lY3RUeXBlOiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvamVjdFNwZWMge1xuICBjbHVzdGVyczogUHJvamVjdENsdXN0ZXJbXTtcbiAgc3RhdHVzPzoge1xuICAgIHBoYXNlOiBzdHJpbmc7XG4gIH07XG4gIGNsdXN0ZXJEZWxldGVQb2xpY3k/OiAnRGVsZXRlJyB8ICdSZXRhaW4nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2plY3RDbHVzdGVyIHtcbiAgbmFtZTogc3RyaW5nO1xuICBxdW90YTogc3RyaW5nOyAvLyBcIntcXFwiY3B1XFxcIjotMSxcXFwibWVtb3J5XFxcIjotMSxcXFwicG9kc1xcXCI6LTEsXFxcInB2Y19udW1cXFwiOi0xLFxcXCJzdG9yYWdlXFxcIjotMX1cIlxuICB0eXBlPzogJycgfCAnRmVkTWVtYmVyJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9qZWN0IGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3BlYzogUHJvamVjdFNwZWM7XG4gIHN0YXR1cz86IHtcbiAgICBwaGFzZTogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VNZXNoR3JvdXAgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjOiB7XG4gICAgazhzVmVyc2lvbjogc3RyaW5nO1xuICAgIHdpdGhvdXRJc3Rpbz86IGJvb2xlYW47XG4gICAgaXN0aW9WZXJzaW9uOiBzdHJpbmc7XG4gICAgcHJpbWFyeTogc3RyaW5nO1xuICAgIHNlbGVjdG9yOiB7XG4gICAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG4gICAgfTtcbiAgICBjbHVzdGVyczogc3RyaW5nW107XG4gICAgbWVzaENvbW1vbkNvbmZpZz86IE1lc2hDb21tb25Db25maWc7XG4gICAgY2x1c3RlckNvbmZpZ3M/OiB7XG4gICAgICBbY2x1c3Rlck5hbWU6IHN0cmluZ106IENsdXN0ZXJDb25maWc7XG4gICAgfTtcbiAgfTtcbiAgc3RhdHVzOiB7XG4gICAgc3RhdHVzOiBzdHJpbmc7XG4gICAgTWVzc2FnZTogc3RyaW5nO1xuICAgIGNsdXN0ZXJDb3VudDogbnVtYmVyO1xuICAgIGxhdGVzdFVwZGF0ZVRpbWU6IHN0cmluZztcbiAgICBOb25SZWFkeUNsdXN0ZXJDb3VudDogbnVtYmVyO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1lc2hDb21tb25Db25maWcge1xuICBlbGFzdGljc2VhcmNoOiB7XG4gICAgaXNEZWZhdWx0OiBib29sZWFuO1xuICAgIHBhc3N3b3JkPzogc3RyaW5nO1xuICAgIHVybDogc3RyaW5nO1xuICAgIHVzZXJuYW1lPzogc3RyaW5nO1xuICB9O1xuICBtb25pdG9yVHlwZTogc3RyaW5nO1xuICBwcm9tZXRoZXVzQmFzaWNBdXRoOiB7XG4gICAgcGFzc3dvcmQ6IHN0cmluZztcbiAgICB1c2VybmFtZTogc3RyaW5nO1xuICB9O1xuICBpc0RlZmF1bHRNb25pdG9yOiBib29sZWFuO1xuICBwcm9tZXRoZXVzVVJMOiBzdHJpbmc7XG4gIHRyYWNlU2FtcGxpbmc6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbHVzdGVyQ29uZmlnIHtcbiAgaXN0aW9TaWRlY2FyOiB7XG4gICAgY3B1VmFsdWU6IHN0cmluZztcbiAgICBtZW1vcnlWYWx1ZTogc3RyaW5nO1xuICB9O1xuICBrYWZrYT86IHtcbiAgICBhdXRoZW50aWNhdGlvbjogc3RyaW5nO1xuICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgcGFzc3dvcmQ6IHN0cmluZztcbiAgICB1cmw6IHN0cmluZztcbiAgICB1c2VybmFtZTogc3RyaW5nO1xuICB9O1xuICByZWRpcz86IFJlZGlzQ29uZmlnO1xuICB0cmFjZVNhbXBsaW5nOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVkaXNDb25maWcge1xuICBlbmFibGVkOiBib29sZWFuO1xuICBraW5kOiAnc2luZ2xlJyB8ICdjbHVzdGVyJyB8ICdzZW50aW5lbCc7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgcGFzc3dvcmQ6IHN0cmluZztcbiAgbWFzdGVyTmFtZT86IHN0cmluZztcbn1cblxuLy8gVEtFXG5leHBvcnQgaW50ZXJmYWNlIFRLRUNsdXN0ZXJTcGVjIHtcbiAgZGlzcGxheU5hbWU6IHN0cmluZztcbiAgc2VydmljZUNJRFI/OiBzdHJpbmc7XG4gIGRvY2tlckV4dHJhQXJncz86IFN0cmluZ01hcDtcbiAga3ViZWxldEV4dHJhQXJncz86IFN0cmluZ01hcDtcbiAgY29udHJvbGxlck1hbmFnZXJFeHRyYUFyZ3M/OiBTdHJpbmdNYXA7XG4gIHNjaGVkdWxlckV4dHJhQXJncz86IFN0cmluZ01hcDtcbiAgcHVibGljQWx0ZXJuYXRpdmVOYW1lcz86IHN0cmluZ1tdO1xuICBjbHVzdGVyQ0lEUj86IHN0cmluZztcbiAgbmV0d29ya0RldmljZT86IHN0cmluZztcbiAgcHJvcGVydGllcz86IHtcbiAgICBtYXhDbHVzdGVyU2VydmljZU51bT86IG51bWJlcjtcbiAgICBtYXhOb2RlUG9kTnVtPzogbnVtYmVyO1xuICAgIG92ZXJzb2xkUmF0aW8/OiB7XG4gICAgICBjcHU6IHN0cmluZztcbiAgICAgIG1lbW9yeTogc3RyaW5nO1xuICAgIH07XG4gIH07XG4gIGZlYXR1cmVzPzoge1xuICAgIGVuYWJsZU1hc3RlclNjaGVkdWxlPzogYm9vbGVhbjtcbiAgICBpcHY2RHVhbFN0YWNrPzogYm9vbGVhbjtcbiAgICBmaWxlcz86IEFycmF5PHtcbiAgICAgIHNyYz86IHN0cmluZztcbiAgICAgIGRzdD86IHN0cmluZztcbiAgICB9PjtcbiAgICBoYT86IHtcbiAgICAgIHRoaXJkUGFydHk/OiB7XG4gICAgICAgIHZpcD86IHN0cmluZztcbiAgICAgICAgdnBvcnQ/OiBudW1iZXI7XG4gICAgICB9O1xuICAgICAgdGtlPzoge1xuICAgICAgICB2cmlkPzogdW5rbm93bjtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgdHlwZTogJ0JhcmVtZXRhbCcgfCAnSW1wb3J0ZWQnO1xuICB2ZXJzaW9uPzogc3RyaW5nO1xuICBtYWNoaW5lcz86IFRLRU1hY2hpbmVTcGVjW107XG4gIGRuc0RvbWFpbj86IHN0cmluZztcbiAgYXBpU2VydmVyRXh0cmFBcmdzPzogU3RyaW5nTWFwO1xuICBjbHVzdGVyQ3JlZGVudGlhbFJlZj86IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVEtFQ2x1c3RlciBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM/OiBUS0VDbHVzdGVyU3BlYztcbiAgc3RhdHVzPzoge1xuICAgIHZlcnNpb24/OiBzdHJpbmc7XG4gICAgcGhhc2U/OiBzdHJpbmc7XG4gICAgY29uZGl0aW9ucz86IENvbmRpdGlvbltdO1xuICAgIGFkZHJlc3Nlcz86IEFycmF5PHtcbiAgICAgIGhvc3Q6IHN0cmluZztcbiAgICAgIHBhdGg/OiAnJztcbiAgICAgIHR5cGU6ICdBZHZlcnRpc2UnIHwgJ1B1YmxpYyc7XG4gICAgICBwb3J0OiBudW1iZXI7XG4gICAgfT47XG4gICAgc2VydmljZUNJRFI/OiBzdHJpbmc7XG4gICAgbm9kZUNJRFJNYXNrU2l6ZT86IG51bWJlcjtcbiAgICBkbnNJUD86IHN0cmluZztcbiAgfTtcbiAgZ2F0ZXdheU5vZGU/OiBOb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRLRU1hY2hpbmVTcGVjIHtcbiAgY2x1c3Rlck5hbWU/OiBzdHJpbmc7XG4gIHJvbGU/OiAnbm9kZScgfCAnbWFzdGVyJztcbiAgaXA/OiBzdHJpbmc7XG4gIGlwdjY/OiBzdHJpbmc7XG4gIHB1YmxpY0lQPzogc3RyaW5nO1xuICBkaXNwbGF5TmFtZT86IHN0cmluZztcbiAgbmV0d29ya0RldmljZT86IHN0cmluZztcbiAgcG9ydDogbnVtYmVyO1xuICBwYXNzd29yZD86IHN0cmluZztcbiAgcHJpdmF0ZUtleT86IHN0cmluZztcbiAgcGFzc1BocmFzZT86IHN0cmluZztcbiAgdXNlcm5hbWU6IHN0cmluZztcbiAgbGFiZWxzPzoge1xuICAgIFsnbnZpZGlhLWRldmljZS1lbmFibGUnXT86IHN0cmluZztcbiAgICBbJ25vZGUtcm9sZS5rdWJlcm5ldGVzLmlvL2NwYWFzLXN5c3RlbSddPzogc3RyaW5nO1xuICB9O1xuICB0eXBlPzogc3RyaW5nO1xuICBwcm94eT86IHtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgYWRkcmVzczogc3RyaW5nO1xuICAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gICAgcGFzc3dvcmQ6IHN0cmluZztcbiAgfTtcbiAgYW5ub3RhdGlvbnM/OiBTdHJpbmdNYXA7XG4gIHRhaW50cz86IE5vZGVUYWludFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsdXN0ZXJDcmVkZW50aWFsIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgY2x1c3Rlck5hbWU6IHN0cmluZztcbiAgY2FDZXJ0OiBzdHJpbmc7XG4gIHRva2VuOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVEtFTWFjaGluZSBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM/OiBUS0VNYWNoaW5lU3BlYztcbiAgc3RhdHVzPzogTm9kZVN0YXR1cztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYWNoaW5lIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3BlYz86IE1hY2hpbmVTcGVjO1xuICBzdGF0dXM/OiBNYWNoaW5lU3RhdHVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hY2hpbmVTcGVjIHtcbiAgY2x1c3Rlcjogc3RyaW5nO1xuICBwcm92aWRlcjogc3RyaW5nO1xuICBwcm92aWRlclNwZWM6IHVua25vd247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFjaGluZVN0YXR1cyB7XG4gIHVzZXJEYXRhU2VjcmV0Pzoge1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gIH07XG4gIG5vZGVSZWY/OiB7XG4gICAgbmFtZT86IHN0cmluZztcbiAgfTtcbiAgbGFzdFVwZGF0ZTogc3RyaW5nO1xuICBlcnJSZWFzb246IHN0cmluZztcbiAgZXJyTWVzc2FnZTogc3RyaW5nO1xuICBwaGFzZTogc3RyaW5nO1xuICBjb25kaXRpb25zOiBDb25kaXRpb25bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbHVzdGVyVmlldyBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM/OiB2b2lkO1xuICBzdGF0dXM/OiBDbHVzdGVyVmlld1N0YXR1cztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbHVzdGVyVmlld1N0YXR1cyB7XG4gIHByb3Zpc2lvblR5cGU6ICdTZWxmSG9zdGVkJyB8ICdQcm92aWRlckhvc3RlZCcgfCAnSW1wb3J0ZWQnIHwgJ1JlZ2lzdGVyZWQnO1xuICBjbHVzdGVyVHlwZTogc3RyaW5nO1xuICBzdXBwb3J0V2luZG93czogYm9vbGVhbjtcbiAgcmVnaXN0cnlBZGRyZXNzOiBzdHJpbmc7XG4gIGNvbmRpdGlvbnM6IENvbmRpdGlvbltdO1xuICBwcm9qZWN0czogQXJyYXk8eyBuYW1lOiBzdHJpbmc7IGRpc3BsYXlOYW1lOiBzdHJpbmcgfT47XG4gIGNvbnRyb2xQbGFuZUVuZHBvaW50czoge1xuICAgIGRlZmF1bHQ6IHN0cmluZztcbiAgICBhZHZlcnRpc2U6IHN0cmluZztcbiAgICBwdWJsaWM/OiBzdHJpbmc7XG4gIH07XG4gIG5vZGVzSW5mbzoge1xuICAgIHJlYWR5Tm9kZXM6IG51bWJlcjtcbiAgICBub3RSZWFkeU5vZGVzOiBudW1iZXI7XG4gICAgYXJjaGl0ZWN0dXJlczogc3RyaW5nW107XG4gICAgdG90YWxDUFVDb3JlczogbnVtYmVyO1xuICAgIHRvdGFsTWVtb3JpZXM6IG51bWJlcjtcbiAgICBjcmlWZXJzaW9uczogc3RyaW5nW107XG4gICAgZXh0cmFSZXNvdXJjZXM/OiB7IFtrZXk6IHN0cmluZ106IENsdXN0ZXJEZXZpY2VSZXNvdXJjZSB9O1xuICB9O1xuICBjbHVzdGVyTmV0d29yazoge1xuICAgIGhhTG9hZEJhbGFuY2VyVHlwZT86ICdBbGl2ZScgfCAnVGhpcmRQYXJ0eSc7XG4gICAgY25pVHlwZTogc3RyaW5nO1xuICAgIHByb3RvY29sU3RhY2s6ICdJUHY0JyB8ICdJUHY2JyB8ICdEdWFsLVN0YWNrJztcbiAgICBzZXJ2aWNlQ0lEUnM6IHN0cmluZ1tdO1xuICAgIHBvZENJRFJzOiBzdHJpbmdbXTtcbiAgICBleHRyYUluZm86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgdnJpZD86IG51bWJlcjtcbiAgICBtYXhOb2Rlcz86IG51bWJlcjtcbiAgfTtcbiAgbWFuYWdlZEJ5Pzoge1xuICAgIHBsdWdpbk5hbWU6IHN0cmluZztcbiAgICBlbnRyeXBvaW50OiBzdHJpbmc7XG4gIH07XG4gIGdwdVBsdWdpblR5cGU/OiAnVmlydHVhbCcgfCAnUGh5c2ljYWwnO1xuICBoaWdoQXZhaWxhYmxlOiBib29sZWFuO1xuICBuZWVkVXBncmFkZTogYm9vbGVhbjtcbiAgdXBncmFkYWJsZTogYm9vbGVhbjtcbiAgdmVyc2lvbjogc3RyaW5nO1xuICBwaGFzZTogc3RyaW5nO1xuICBleHRyYUFyZ3M6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+O1xuICBwdWJsaWNBbHRlcm5hdGl2ZU5hbWVzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbHVzdGVyRGV2aWNlUmVzb3VyY2Uge1xuICB2YWx1ZTogbnVtYmVyO1xuICB1bml0Pzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbkVuPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvblpoPzogc3RyaW5nO1xuICBsYWJlbEVuPzogc3RyaW5nO1xuICBsYWJlbFpoPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVyTmV0d29ya1NwZWMge1xuICBkZWZhdWx0SW50ZXJmYWNlOiBzdHJpbmc7XG4gIGN1c3RvbUludGVyZmFjZXM6IEFycmF5PHtcbiAgICBpbnRlcmZhY2U6IHN0cmluZztcbiAgICBub2Rlczogc3RyaW5nW107XG4gIH0+O1xuICBleGNsdWRlTm9kZXM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVyTmV0d29yayBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM6IFByb3ZpZGVyTmV0d29ya1NwZWM7XG4gIHN0YXR1cz86IHtcbiAgICByZWFkeTogYm9vbGVhbjtcbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgTG9jYWxlRGlzcGxheSA9IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdEVudHJ5U3BlYyB7XG4gIGxvZ28/OiBzdHJpbmc7XG4gIGRpc3BsYXlOYW1lPzogTG9jYWxlRGlzcGxheTtcbiAgZGVzY3JpcHRpb24/OiBMb2NhbGVEaXNwbGF5O1xuICBjYXRhbG9nPzogTG9jYWxlRGlzcGxheTtcbiAgZW50cnlwb2ludD86IHN0cmluZztcbiAgc3NvRW5hYmxlZD86IGJvb2xlYW47XG4gIHBhY2tUeXBlPzogJ0ludGVncmF0ZWQnIHwgJ0J1aWxkSW4nIHwgJ0FkbWluUGFnZSc7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdEVudHJ5U3RhdHVzIHtcbiAgaGlkZGVuT25Qb3J0YWw/OiBib29sZWFuO1xuICBoaWRkZW5Pbk1lbnU/OiBib29sZWFuO1xuICBvcmRlck9uUG9ydGFsPzogbnVtYmVyO1xuICBvcmRlck9uTWVudT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0RW50cnkgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjPzogUHJvZHVjdEVudHJ5U3BlYztcbiAgc3RhdHVzPzogUHJvZHVjdEVudHJ5U3RhdHVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2R1Y3RTdGF0dXMge1xuICB0eXBlOlxuICAgIHwgJ05vdERlcGxveWVkJ1xuICAgIHwgJ0luRGVwbG95bWVudCdcbiAgICB8ICdSdW5uaW5nJ1xuICAgIHwgJ0RlcGxveW1lbnRGYWlsdXJlJ1xuICAgIHwgJ1J1bm5pbmdBYm5vcm1hbCdcbiAgICB8ICdEZWxldGluZydcbiAgICB8ICdEZWxldGVGYWlsdXJlJ1xuICAgIHwgJ0RlcGxveW1lbnRTdWNjZWVkJ1xuICAgIHwgJ1N5c3RlbUVycm9yJ1xuICAgIHwgJ1VwZ3JhZGluZyc7XG4gIGljb246IHN0cmluZztcbiAgdGV4dDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2R1Y3REb2NzRW50cnkgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjOiB7XG4gICAgZ3JvdXBzOiBBcnJheTx7XG4gICAgICBncm91cE5hbWU6IExvY2FsZURpc3BsYXk7XG4gICAgICBkb2NzOiBBcnJheTx7XG4gICAgICAgIGxvZ286IHN0cmluZztcbiAgICAgICAgZG9jRW50cnlwb2ludDogc3RyaW5nO1xuICAgICAgICBkaXNwbGF5TmFtZTogTG9jYWxlRGlzcGxheTtcbiAgICAgICAgZGVzY3JpcHRpb246IExvY2FsZURpc3BsYXk7XG4gICAgICB9PjtcbiAgICB9PjtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIZWxtUmVxdWVzdENvbmRpdGlvbiB7XG4gIGxhc3RQcm9iZVRpbWU/OiBzdHJpbmc7XG4gIGxhc3RUcmFuc2l0aW9uVGltZT86IHN0cmluZztcbiAgbWVzc2FnZTogc3RyaW5nO1xuICByZWFzb246IHN0cmluZzsgLy8gUGVybWlzc2lvbkNoZWNrRmFpbGVkXG4gIHN0YXR1czogJ1RydWUnIHwgJ0ZhbHNlJztcbiAgdHlwZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEBsaW5rIGh0dHBzOi8vZ2l0bGFiLWNlLmFsYXVkYS5jbi9jb250YWluZXItcGxhdGZvcm0vY2FwdGFpbi8tL2Jsb2IvbWFzdGVyL2RvY3MvY3JkLm1kXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGVsbVJlcXVlc3QgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjPzogSGVsbVJlcXVlc3RTcGVjO1xuICBzdGF0dXM/OiB7XG4gICAgcGhhc2U6IEhlbG1SZXF1ZXN0UGhhc2VFbnVtO1xuICAgIG5vdGVzPzogc3RyaW5nO1xuICAgIGxhc3RTcGVjSGFzaD86IHN0cmluZztcbiAgICByZWFzb24/OiBzdHJpbmc7XG4gICAgY29uZGl0aW9ucz86IEhlbG1SZXF1ZXN0Q29uZGl0aW9uW107XG4gICAgdGFyZ2V0Q2x1c3RlclN5bmNSZXN1bHRzPzogSGVsbVJlcXVlc3RDbHVzdGVyU3luY1Jlc3VsdHM7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGVsbVJlcXVlc3RDbHVzdGVyU3luY1Jlc3VsdHMge1xuICBbY2x1c3Rlcjogc3RyaW5nXTogSGVsbVJlcXVlc3RDbHVzdGVyU3luY1Jlc3VsdDtcbn1cblxuZXhwb3J0IGVudW0gQ2xvdWRIZWxtUmVxdWVzdFN0YXRlRW51bSB7XG4gIFBlbmRpbmcgPSAnUGVuZGluZycsXG4gIFJ1bm5pbmcgPSAnUnVubmluZycsXG4gIFN0b3BwZWQgPSAnU3RvcHBlZCcsXG4gIEZhaWxlZCA9ICdGYWlsZWQnLFxuICBFbXB0eSA9ICdFbXB0eScsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGVsbVJlcXVlc3RDbHVzdGVyU3luY1Jlc3VsdCB7XG4gIGFwcFN0YXR1czogQ2xvdWRIZWxtUmVxdWVzdFN0YXRlRW51bTtcbiAgZW5kcG9pbnQ6IHN0cmluZztcbiAgbGFzdFVwZGF0ZUF0OiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgcGhhc2U6IEhlbG1SZXF1ZXN0UGhhc2VFbnVtO1xuICByZWFzb246IHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gSGVsbVJlcXVlc3RQaGFzZUVudW0ge1xuICBTeW5jZWQgPSAnU3luY2VkJyxcbiAgRmFpbGVkID0gJ0ZhaWxlZCcsXG4gIFBlbmRpbmcgPSAnUGVuZGluZycsXG4gIFVuaW5zdGFsbGluZyA9ICdVbmluc3RhbGxpbmcnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhlbG1SZXF1ZXN0U3BlYyB7XG4gIGNoYXJ0Pzogc3RyaW5nO1xuICB2YWx1ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICB2YWx1ZXNGcm9tPzogQXJyYXk8e1xuICAgIGNvbmZpZ01hcEtleVJlZj86IENvbmZpZ01hcEtleVJlZjtcbiAgICBzZWNyZXRLZXlSZWY/OiBTZWNyZXRLZXlSZWY7XG4gIH0+O1xuICBjbHVzdGVyTmFtZT86IHN0cmluZztcbiAgbmFtZXNwYWNlPzogc3RyaW5nO1xuICByZWxlYXNlTmFtZT86IHN0cmluZztcbiAgdmVyc2lvbj86IHN0cmluZztcbiAgcHJvamVjdE5hbWU/OiBzdHJpbmc7XG4gIHNvdXJjZT86IHtcbiAgICBvY2k/OiBIZWxtUmVxdWVzdE9jaTtcbiAgICBodHRwPzogSGVsbVJlcXVlc3RIdHRwO1xuICB9O1xuICB0YXJnZXRDbHVzdGVycz86IHtcbiAgICBjbHVzdGVyTmFtZXM6IHtcbiAgICAgIG5hbWVzOiBzdHJpbmdbXTtcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhlbG1SZXF1ZXN0T2NpIHtcbiAgcmVwbzogc3RyaW5nO1xuICBzZWNyZXRSZWY6IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSGVsbVJlcXVlc3RIdHRwIHtcbiAgdXJsOiBzdHJpbmc7XG4gIHNlY3JldFJlZjogc3RyaW5nO1xufVxuXG4vKipcbiAqIGh0dHBzOi8vY29uZmx1ZW5jZS5hbGF1ZGEuY24vcGFnZXMvdmlld3BhZ2UuYWN0aW9uP3BhZ2VJZD0xNzY4ODM0NzBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVc2VyQmluZGluZyBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM/OiBVc2VyQmluZGluZ1NwZWM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlckJpbmRpbmdTcGVjIHtcbiAgc3ViamVjdHM6IEFycmF5PHtcbiAgICBraW5kOiAnVXNlcicgfCAnR3JvdXAnIHwgJ1NlcnZpY2VBY2NvdW50JztcbiAgICBuYW1lOiBzdHJpbmc7XG4gIH0+O1xuICByb2xlUmVmOiBzdHJpbmc7XG4gIHNjb3BlOiBzdHJpbmc7IC8vIOaUr+aMgeexu+Wei3BsYXRmb3JtLCBjbHVzdGVyLCBwcm9qZWN0LCBuYW1lc3BhY2VcbiAgY29uc3RyYWludDogQXJyYXk8e1xuICAgIHByb2plY3Q/OiBzdHJpbmc7XG4gICAgY2x1c3Rlcj86IHN0cmluZztcbiAgICBuYW1lc3BhY2U/OiBzdHJpbmc7XG4gIH0+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJvbGVSdWxlIHtcbiAgbW9kdWxlOiBzdHJpbmc7XG4gIGZ1bmN0aW9uUmVzb3VyY2VSZWY6IHN0cmluZztcbiAgZnVuY3Rpb25NZXRhZGF0YU5hbWU/OiBzdHJpbmc7XG4gIHZlcmJzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSb2xlQ3VzdG9tUnVsZSB7XG4gIGFwaUdyb3VwOiBzdHJpbmc7XG4gIHJlc291cmNlczogc3RyaW5nW107XG4gIHZlcmJzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSb2xlVGVtcGxhdGVTcGVjIHtcbiAgcnVsZXM/OiBSb2xlUnVsZVtdO1xuICBjdXN0b21SdWxlcz86IFJvbGVDdXN0b21SdWxlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUm9sZVRlbXBsYXRlIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3BlYz86IFJvbGVUZW1wbGF0ZVNwZWM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclJvbGVOYW1lc3BhY2Uge1xuICBuYW1lc3BhY2U6IHN0cmluZztcbiAgY2x1c3Rlcjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJSb2xlIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgbmFtZT86IHN0cmluZztcbiAgcm9sZXM/OiBzdHJpbmdbXTtcbiAgbmFtZXNwYWNlcz86IFJlY29yZDxzdHJpbmcsIFVzZXJSb2xlTmFtZXNwYWNlW10+O1xufVxuXG4vLyBodHRwOi8vY29uZmx1ZW5jZS5hbGF1ZGF0ZWNoLmNvbS9wYWdlcy92aWV3cGFnZS5hY3Rpb24/cGFnZUlkPTM5MzM4MzY2IzEtJUU4JThFJUI3JUU1JThGJTk2JUU3JTk0JUE4JUU2JTg4JUI3JUU0JUJGJUExJUU2JTgxJUFGXG5leHBvcnQgaW50ZXJmYWNlIFVzZXIgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjPzogVXNlclNwZWM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclNwZWMge1xuICBjb25uZWN0b3JfbmFtZT86IHN0cmluZztcbiAgY29ubmVjdG9yX3R5cGU/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICBtYWlsPzogc3RyaW5nO1xuICBncm91cHM/OiBzdHJpbmdbXTtcbiAgaXNfYWRtaW4/OiBib29sZWFuO1xuICB2YWxpZD86IGJvb2xlYW47XG4gIHVzZXJuYW1lPzogc3RyaW5nO1xuICBvbGRfcGFzc3dvcmQ/OiBzdHJpbmc7XG4gIHBhc3N3b3JkPzogc3RyaW5nO1xuICBsYXN0X2xvZ2luX3RpbWU/OiBzdHJpbmc7XG4gIGxvZ2luX2ZhaWx1cmVfdGltZXM/OiBudW1iZXI7XG4gIHN0YXRlPzogVXNlclN0YXRlO1xuICBpc19kaXNhYmxlZD86IGJvb2xlYW47XG4gIGV4cGlyZWQ/OiB7XG4gICAgYmVnaW46IHN0cmluZztcbiAgICBlbmQ6IHN0cmluZztcbiAgfTtcbiAgbW9iaWxlPzogc3RyaW5nO1xuICB3ZWJob29rVHlwZT86IFdlYmhvb2tUeXBlO1xuICB3ZWJob29rVXJsPzogc3RyaW5nO1xuICBpZHM/OiBBcnJheTx7IHR5cGU6IHN0cmluZzsgaWQ6IHN0cmluZyB9Pjtcbn1cblxuZXhwb3J0IGVudW0gVXNlclN0YXRlIHtcbiAgQUNUSVZFID0gJ2FjdGl2ZScsXG4gIExPQ0tFRCA9ICdsb2NrZWQnLFxuICBJTlZBTElEID0gJ2ludmFsaWQnLFxuICBERUxFVEVEID0gJ2RlbGV0ZWQnLFxufVxuXG5leHBvcnQgdHlwZSBXZWJob29rVHlwZSA9ICdXZWJob29rJyB8ICdEaW5nVGFsaycgfCAnV2VDaGF0JztcbiJdfQ==
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2NvcmUvdHlwZXMvazhzL2NyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4SEEsTUFBTSxDQUFOLElBQVksbUJBSVg7QUFKRCxXQUFZLG1CQUFtQjtJQUM3QixpREFBMEIsQ0FBQTtJQUMxQiwwQ0FBbUIsQ0FBQTtJQUNuQiw0Q0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBSlcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUk5QjtBQUVELE1BQU0sQ0FBTixJQUFZLGtCQVVYO0FBVkQsV0FBWSxrQkFBa0I7SUFDNUIsa0RBQTRCLENBQUE7SUFDNUIseUNBQW1CLENBQUE7SUFDbkIsMkNBQXFCLENBQUE7SUFDckIsNkNBQXVCLENBQUE7SUFDdkIsb0RBQThCLENBQUE7SUFDOUIsNkNBQXVCLENBQUE7SUFDdkIsc0RBQWdDLENBQUE7SUFDaEMsNkNBQXVCLENBQUE7SUFDdkIseUNBQW1CLENBQUE7QUFDckIsQ0FBQyxFQVZXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFVN0I7QUE4Q0QsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxNQUFNO0lBQ1osa0JBQWtCLEVBQUUsbUJBQW1CO0lBQ3ZDLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFlBQVksRUFBRSxhQUFhO0lBQzNCLGFBQWEsRUFBRSxjQUFjO0NBQ3JCLENBQUM7QUFrY1gsTUFBTSxDQUFOLElBQVkseUJBTVg7QUFORCxXQUFZLHlCQUF5QjtJQUNuQyxnREFBbUIsQ0FBQTtJQUNuQixnREFBbUIsQ0FBQTtJQUNuQixnREFBbUIsQ0FBQTtJQUNuQiw4Q0FBaUIsQ0FBQTtJQUNqQiw0Q0FBZSxDQUFBO0FBQ2pCLENBQUMsRUFOVyx5QkFBeUIsS0FBekIseUJBQXlCLFFBTXBDO0FBV0QsTUFBTSxDQUFOLElBQVksb0JBS1g7QUFMRCxXQUFZLG9CQUFvQjtJQUM5Qix5Q0FBaUIsQ0FBQTtJQUNqQix5Q0FBaUIsQ0FBQTtJQUNqQiwyQ0FBbUIsQ0FBQTtJQUNuQixxREFBNkIsQ0FBQTtBQUMvQixDQUFDLEVBTFcsb0JBQW9CLEtBQXBCLG9CQUFvQixRQUsvQjtBQXNIRCxNQUFNLENBQU4sSUFBWSxTQUtYO0FBTEQsV0FBWSxTQUFTO0lBQ25CLDhCQUFpQixDQUFBO0lBQ2pCLDhCQUFpQixDQUFBO0lBQ2pCLGdDQUFtQixDQUFBO0lBQ25CLGdDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFMVyxTQUFTLEtBQVQsU0FBUyxRQUtwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbHVlT2YgfSBmcm9tICd0cy1lc3NlbnRpYWxzJztcblxuaW1wb3J0IHsgU3RyaW5nTWFwIH0gZnJvbSAnLi4vY29tbW9ucyc7XG5cbmltcG9ydCB7XG4gIENvbmRpdGlvbixcbiAgS3ViZXJuZXRlc1Jlc291cmNlLFxuICBLdWJlcm5ldGVzUmVzb3VyY2VMaXN0LFxuICBPYmplY3RNZXRhLFxufSBmcm9tICcuL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29uZmlnTWFwS2V5UmVmLFxuICBOb2RlLFxuICBOb2RlU3RhdHVzLFxuICBOb2RlVGFpbnQsXG4gIFNlY3JldEtleVJlZixcbn0gZnJvbSAnLi9yYXcnO1xuXG4vKipcbiAqIOWPquS/neeVmWNvbW1vbuS4remcgOimgeeUqOWIsOeahGNyZCDmianlsZXnsbtcbiAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIE1vZHVsZUluZm9Db25kaXRpb24ge1xuICBzdGF0dXM/OiAnU3VjY2VzcycgfCAnRmFpbGVkJyB8ICdQcm9jZXNzaW5nJyB8ICdQZW5kaW5nJztcbiAgcmVhc29uPzogc3RyaW5nO1xuICBtZXNzYWdlPzogc3RyaW5nO1xuICB0eXBlPzogc3RyaW5nO1xuICBsYXN0VHJhbnNpdGlvblRpbWU/OiBzdHJpbmc7XG4gIGxhc3RIZWFydGJlYXRUaW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vZHVsZUluZm9BdmFpbGFibGVWZXJzaW9uIHtcbiAgdmVyc2lvbj86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uRW4/OiBzdHJpbmc7XG4gIHJpc2tMZXZlbD86ICdMb3cnIHwgJ01pZGRsZScgfCAnSGlnaCc7XG4gIGRlcGVuZGVuY2llcz86IEFycmF5PHtcbiAgICBtb2R1bGVOYW1lOiBzdHJpbmc7XG4gICAgdmVyc2lvbnNNYXRjaDogc3RyaW5nW107XG4gIH0+O1xuICB1cGdyYWRlQmVmb3JlPzogQXJyYXk8e1xuICAgIG1vZHVsZU5hbWU6IHN0cmluZztcbiAgfT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9kdWxlSW5mbyBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM/OiB7XG4gICAgdmVyc2lvbj86IHN0cmluZztcbiAgICBlbnRyeXBvaW50Pzogc3RyaW5nO1xuICAgIHNlbGVjdGVkQ2x1c3Rlcj86IEFycmF5PHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0+OyAvLyB7cGx1Z2luLW5hbWU6IGNsdXN0ZXItbmFtZX1bXVxuICAgIHZhbHVlc092ZXJyaWRlOiBTdHJpbmdNYXA7XG4gICAgY29uZmlnPzogYW55O1xuICB9O1xuICBzdGF0dXM/OiB7XG4gICAgdmVyc2lvbjogc3RyaW5nO1xuICAgIHBoYXNlOiAnUHJvY2Vzc2luZycgfCAnUnVubmluZycgfCAnRmFpbGVkJyB8ICdCbG9ja2VkJztcbiAgICByZW1vdmVJc1ByZXZlbnRlZD86IGJvb2xlYW47XG4gICAgYmxvY2tSZWFzb25zPzogc3RyaW5nW107XG4gICAgY29uZGl0aW9ucz86IE1vZHVsZUluZm9Db25kaXRpb25bXTtcbiAgICBhdmFpbGFibGVWZXJzaW9uczogTW9kdWxlSW5mb0F2YWlsYWJsZVZlcnNpb25bXTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbHVzdGVyU3BlYyB7XG4gIGF1dGhJbmZvPzoge1xuICAgIGNvbnRyb2xsZXI6IHtcbiAgICAgIGtpbmQ6IHN0cmluZztcbiAgICAgIG5hbWVzcGFjZTogc3RyaW5nO1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgIH07XG4gIH07XG4gIGt1YmVybmV0ZXNBcGlFbmRwb2ludHM/OiB7XG4gICAgY2FCdW5kbGU/OiBzdHJpbmc7XG4gICAgc2VydmVyRW5kcG9pbnRzOiBBcnJheTx7XG4gICAgICBjbGllbnRDSURSOiBzdHJpbmc7XG4gICAgICBzZXJ2ZXJBZGRyZXNzOiBzdHJpbmc7XG4gICAgfT47XG4gIH07XG59XG5cbmV4cG9ydCB0eXBlIENsdXN0ZXJTdGF0dXNSZWFzb24gPVxuICB8ICdUaW1lb3V0J1xuICB8ICdGb3JiaWRkZW4nXG4gIHwgJ1VuYXV0aG9yaXplZCdcbiAgfCAnU29tZUNvbXBvbmVudHNVbmhlYWx0aHknXG4gIHwgJ1NvbWVOb2Rlc05vdFJlYWR5JztcblxuZXhwb3J0IGludGVyZmFjZSBDbHVzdGVyU3RhdHVzQ29uZGl0aW9uIGV4dGVuZHMgQ29uZGl0aW9uIHtcbiAgbGFzdFRyYW5zaXRpb25UaW1lOiBzdHJpbmc7XG4gIHR5cGU6XG4gICAgfCAnTm90UmVhY2hhYmxlJ1xuICAgIHwgJ05vdEFjY2Vzc2libGUnXG4gICAgfCAnQ29tcG9uZW50Tm90SGVhbHRoeSdcbiAgICB8ICdOb2RlTm90UmVhZHknO1xuICBzdGF0dXM6ICdUcnVlJyB8ICdGYWxzZSc7XG4gIHJlYXNvbjogQ2x1c3RlclN0YXR1c1JlYXNvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbHVzdGVyU3RhdHVzIHtcbiAgdmVyc2lvbjogc3RyaW5nO1xuICBjb25kaXRpb25zOiBDbHVzdGVyU3RhdHVzQ29uZGl0aW9uW107XG59XG5cbi8vIGNsdXN0ZXJzLmNsdXN0ZXJyZWdpc3RyeS5rOHMuaW8g55qE57G75Z6L5a6a5LmJXG5leHBvcnQgaW50ZXJmYWNlIENsdXN0ZXIgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBtZXRhZGF0YT86IE9iamVjdE1ldGEgJiB7XG4gICAgZmluYWxpemVycz86IHN0cmluZ1tdO1xuICB9O1xuICBzcGVjPzogQ2x1c3RlclNwZWM7XG4gIHN0YXR1cz86IENsdXN0ZXJTdGF0dXM7XG4gIGRldGFpbHM/OiB7XG4gICAgZ3JvdXA6IHN0cmluZztcbiAgICBraW5kOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHVpZDogc3RyaW5nO1xuICB9O1xufVxuXG4vLyBBbGF1ZGEgUHJvZHVjdFxuZXhwb3J0IGludGVyZmFjZSBBbGF1ZGFQcm9kdWN0U3RhdHVzIGV4dGVuZHMgQ29uZGl0aW9uIHtcbiAgZGVwbG95U3RhdHVzPzogQWxhdWRhRGVwbG95U3RhdHVzO1xuICBydW5uaW5nU3RhdHVzPzogQWxhdWRhUnVubmluZ1N0YXR1cztcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBkZXBsb3lUaW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBBbGF1ZGFSdW5uaW5nU3RhdHVzIHtcbiAgTk9UX1JVTk5JTkcgPSAnTm90UnVubmluZycsXG4gIEhFQUxUSFkgPSAnSGVhbHRoeScsXG4gIEFCTk9STUFMID0gJ0Fibm9ybWFsJyxcbn1cblxuZXhwb3J0IGVudW0gQWxhdWRhRGVwbG95U3RhdHVzIHtcbiAgTk9UX0RFUExPWUVEID0gJ05vdERlcGxveWVkJyxcbiAgU1VDQ0VTUyA9ICdzdWNjZXNzJyxcbiAgQUJOT1JNQUwgPSAnQWJub3JtYWwnLFxuICBERVBMT1lJTkcgPSAnRGVwbG95aW5nJyxcbiAgREVQTE9ZX0ZBSUxFRCA9ICdEZXBsb3lGYWlsZWQnLFxuICBVUEdSQURJTkcgPSAnVXBncmFkaW5nJyxcbiAgVVBHUkFERV9GQUlMRUQgPSAnVXBncmFkZUZhaWxlZCcsXG4gIENPTVBMRVRFRCA9ICdDb21wbGV0ZWQnLFxuICBQRU5ESU5HID0gJ1BlbmRpbmcnLFxufVxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0QmFzZSBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM6IFByb2R1Y3RCYXNlU3BlYztcbiAgc3RhdHVzPzogUHJvZHVjdEJhc2VTdGF0dXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdFN0YXR1c0NvbmRpdGlvbiB7XG4gIHN0YXR1cz86ICdUcnVlJyB8ICdGYWxzZScgfCAnVW5rbm93bic7XG4gIHJlYXNvbj86IHN0cmluZztcbiAgbWVzc2FnZT86IHN0cmluZztcbiAgdHlwZTogJ1JlYWR5JyB8ICdJbml0aWFsaXplZCcgfCAnUmVjbGFpbWVkJyB8ICdTdWNjZWVkJztcbiAgbGFzdFRyYW5zaXRpb25UaW1lPzogc3RyaW5nO1xuICBsYXN0SGVhcnRiZWF0VGltZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0QmFzZVN0YXR1cyB7XG4gIGdsb2JhbElEOiBzdHJpbmc7XG4gIGNsb3VkOiB7XG4gICAgcGhhc2U6ICdPTkxpbmUnIHwgJ0Nvbm5lY3RGYWlsZWQnIHwgJ0Nvbm5lY3RpbmcnIHwgJ09GRkxpbmUnO1xuICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgICBjb25uZWN0VVJMOiBzdHJpbmc7XG4gIH07XG4gIHZlcnNpb246IHN0cmluZztcbiAgcGhhc2U/OlxuICAgIHwgJ1BlbmRpbmcnXG4gICAgfCAnUHJvdmlzaW9uaW5nJ1xuICAgIHwgJ1Byb3Zpc2lvbmVkJ1xuICAgIHwgJ0RlbGV0aW5nJ1xuICAgIHwgJ0ZhaWxlZCdcbiAgICB8ICdSdW5uaW5nJ1xuICAgIHwgJ0luc3RhbGxpbmcnIC8vIHRkc3FsXG4gICAgfCAnVXBncmFkaW5nJztcbiAgcHJvZHVjdEVudHJ5cG9pbnQ/OiBzdHJpbmc7XG4gIGRlbGV0YWJsZT86IGJvb2xlYW47XG4gIGNvbmRpdGlvbnM/OiBQcm9kdWN0U3RhdHVzQ29uZGl0aW9uW107XG4gIHByb21ldGhldXNBZGRyZXNzPzogc3RyaW5nO1xuICBlbGFzdGljU2VhcmNoQWRkcmVzcz86IHN0cmluZztcbiAga2Fma2FBZGRyZXNzPzogc3RyaW5nO1xuICBjb250YWluZXJQbGF0Zm9ybT86IEFsYXVkYVByb2R1Y3RTdGF0dXM7XG4gIGRldm9wcz86IEFsYXVkYVByb2R1Y3RTdGF0dXM7XG4gIHNlcnZpY2VNZXNoPzogQWxhdWRhUHJvZHVjdFN0YXR1cztcbiAgZGF0YVNlcnZpY2VzPzogQWxhdWRhUHJvZHVjdFN0YXR1cztcbiAgYmFzZT86IEFsYXVkYVByb2R1Y3RTdGF0dXM7XG4gIHByb2dyZXNzPzogbnVtYmVyO1xufVxuXG5leHBvcnQgY29uc3QgUHJvZHVjdEtleSA9IHtcbiAgQkFTRTogJ2Jhc2UnLFxuICBDT05UQUlORVJfUExBVEZPUk06ICdjb250YWluZXJQbGF0Zm9ybScsXG4gIERFVk9QUzogJ2Rldm9wcycsXG4gIFNFUlZJQ0VfTUVTSDogJ3NlcnZpY2VNZXNoJyxcbiAgREFUQV9TRVJWSUNFUzogJ2RhdGFTZXJ2aWNlcycsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBQcm9kdWN0S2V5ID0gVmFsdWVPZjx0eXBlb2YgUHJvZHVjdEtleT47XG5cbnR5cGUgR2VuUHJvZHVjdDxUIGV4dGVuZHMgUHJvZHVjdEtleT4gPSBSZWNvcmQ8VCwgeyBpbnN0YWxsOiBib29sZWFuIH0+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFRscyB7XG4gIGNlcnQ6IHN0cmluZztcbiAga2V5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdEJhc2VTcGVjIGV4dGVuZHMgR2VuUHJvZHVjdDxQcm9kdWN0S2V5PiB7XG4gIGFsdGVybmF0aXZlVVJMczogc3RyaW5nW107XG4gIGNoYXJ0TXVzZXVtOiB7XG4gICAgdXJsOiBzdHJpbmc7XG4gIH07XG4gIHBhY2thZ2VFZGl0aW9uOiBzdHJpbmc7XG4gIHZhbHVlc092ZXJyaWRlPzoge1xuICAgIGRleDogU3RyaW5nTWFwO1xuICB9O1xuICBjaGFydFZlcnNpb25zOiBbeyBuYW1lOiBzdHJpbmc7IHZlcnNpb246IHN0cmluZyB9XTtcbiAgZGVmYXVsdEFkbWluOiB7XG4gICAgYWNjb3VudDogc3RyaW5nO1xuICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgcGFzc3dvcmQ6IHN0cmluZztcbiAgfTtcbiAgZGVmYXVsdFJlZGlyZWN0UGF0aDogc3RyaW5nO1xuICBkZXBsb3lUeXBlOiBzdHJpbmc7XG4gIGVsYXN0aWNzZWFyY2g6IHtcbiAgICBpbnN0YWxsOiBib29sZWFuO1xuICAgIG5vZGVzOiBzdHJpbmdbXTtcbiAgICB1c2VybmFtZTogc3RyaW5nO1xuICB9O1xuICBodHRwOiB7XG4gICAgZm9yY2VSZWRpcmVjdEh0dHBzPzogYm9vbGVhbjtcbiAgICBodHRwUG9ydD86IG51bWJlcjtcbiAgICBodHRwc1BvcnQ/OiBudW1iZXI7XG4gICAgdGxzPzogVGxzO1xuICB9O1xuICBpbmdyZXNzOiB7XG4gICAgY29udHJvbGxlcjogeyBpbnN0YWxsOiBib29sZWFuOyBub2Rlczogc3RyaW5nW10gfTtcbiAgICBob3N0OiBzdHJpbmc7XG4gICAgaW5ncmVzc0NsYXNzTmFtZTogc3RyaW5nO1xuICB9O1xuICBrYWZrYToge1xuICAgIGF1dGg6IGJvb2xlYW47XG4gICAgaW5zdGFsbDogYm9vbGVhbjtcbiAgICBub2Rlczogc3RyaW5nW107XG4gICAgdXNlcm5hbWU6IHN0cmluZztcbiAgfTtcbiAgbG9nQWdlbnQ6IHtcbiAgICBlbmFibGU6IGJvb2xlYW47XG4gIH07XG4gIGxvZ0NlbnRlcjoge1xuICAgIGVuYWJsZTogYm9vbGVhbjtcbiAgfTtcbiAgcGxhdGZvcm1VUkw6IHN0cmluZztcbiAgcHJvbWV0aGV1czoge1xuICAgIGluc3RhbGw6IGJvb2xlYW47XG4gICAgcmVwbGljYXM6IG51bWJlcjtcbiAgICBzdG9yYWdlOiB7IGNhcGFjaXR5OiBudW1iZXI7IG5vZGVzOiBzdHJpbmdbXTsgcGF0aDogc3RyaW5nOyB0eXBlOiBzdHJpbmcgfTtcbiAgfTtcblxuICByZWdpc3RyeToge1xuICAgIGV4dGVybmFsPzogc3RyaW5nO1xuICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICB1c2VybmFtZTogc3RyaW5nO1xuICAgIHNlY3JldFJlZj86IHN0cmluZztcbiAgfTtcbiAgcmVwbGljYXM6IG51bWJlcjtcbiAgdmVyc2lvbjogc3RyaW5nO1xuICBjbG91ZDoge1xuICAgIGNvbm5lY3Q6IGJvb2xlYW47XG4gICAgY29ubmVjdFR5cGU6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9qZWN0U3BlYyB7XG4gIGNsdXN0ZXJzOiBQcm9qZWN0Q2x1c3RlcltdO1xuICBzdGF0dXM/OiB7XG4gICAgcGhhc2U6IHN0cmluZztcbiAgfTtcbiAgY2x1c3RlckRlbGV0ZVBvbGljeT86ICdEZWxldGUnIHwgJ1JldGFpbic7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvamVjdENsdXN0ZXIge1xuICBuYW1lOiBzdHJpbmc7XG4gIHF1b3RhOiBzdHJpbmc7IC8vIFwie1xcXCJjcHVcXFwiOi0xLFxcXCJtZW1vcnlcXFwiOi0xLFxcXCJwb2RzXFxcIjotMSxcXFwicHZjX251bVxcXCI6LTEsXFxcInN0b3JhZ2VcXFwiOi0xfVwiXG4gIHR5cGU/OiAnJyB8ICdGZWRNZW1iZXInO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2plY3QgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjOiBQcm9qZWN0U3BlYztcbiAgc3RhdHVzPzoge1xuICAgIHBoYXNlOiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmljZU1lc2hHcm91cCBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM6IHtcbiAgICBrOHNWZXJzaW9uOiBzdHJpbmc7XG4gICAgd2l0aG91dElzdGlvPzogYm9vbGVhbjtcbiAgICBpc3Rpb1ZlcnNpb246IHN0cmluZztcbiAgICBwcmltYXJ5OiBzdHJpbmc7XG4gICAgc2VsZWN0b3I6IHtcbiAgICAgIFtrZXk6IHN0cmluZ106IHN0cmluZztcbiAgICB9O1xuICAgIGNsdXN0ZXJzOiBzdHJpbmdbXTtcbiAgICBtZXNoQ29tbW9uQ29uZmlnPzogTWVzaENvbW1vbkNvbmZpZztcbiAgICBjbHVzdGVyQ29uZmlncz86IHtcbiAgICAgIFtjbHVzdGVyTmFtZTogc3RyaW5nXTogQ2x1c3RlckNvbmZpZztcbiAgICB9O1xuICB9O1xuICBzdGF0dXM6IHtcbiAgICBzdGF0dXM6IHN0cmluZztcbiAgICBNZXNzYWdlOiBzdHJpbmc7XG4gICAgY2x1c3RlckNvdW50OiBudW1iZXI7XG4gICAgbGF0ZXN0VXBkYXRlVGltZTogc3RyaW5nO1xuICAgIE5vblJlYWR5Q2x1c3RlckNvdW50OiBudW1iZXI7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVzaENvbW1vbkNvbmZpZyB7XG4gIGVsYXN0aWNzZWFyY2g6IHtcbiAgICBpc0RlZmF1bHQ6IGJvb2xlYW47XG4gICAgcGFzc3dvcmQ/OiBzdHJpbmc7XG4gICAgdXJsOiBzdHJpbmc7XG4gICAgdXNlcm5hbWU/OiBzdHJpbmc7XG4gIH07XG4gIG1vbml0b3JUeXBlOiBzdHJpbmc7XG4gIHByb21ldGhldXNCYXNpY0F1dGg6IHtcbiAgICBwYXNzd29yZDogc3RyaW5nO1xuICAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gIH07XG4gIGlzRGVmYXVsdE1vbml0b3I6IGJvb2xlYW47XG4gIHByb21ldGhldXNVUkw6IHN0cmluZztcbiAgdHJhY2VTYW1wbGluZzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsdXN0ZXJDb25maWcge1xuICBpc3Rpb1NpZGVjYXI6IHtcbiAgICBjcHVWYWx1ZTogc3RyaW5nO1xuICAgIG1lbW9yeVZhbHVlOiBzdHJpbmc7XG4gIH07XG4gIGthZmthPzoge1xuICAgIGF1dGhlbnRpY2F0aW9uOiBzdHJpbmc7XG4gICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICBwYXNzd29yZDogc3RyaW5nO1xuICAgIHVybDogc3RyaW5nO1xuICAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gIH07XG4gIHJlZGlzPzogUmVkaXNDb25maWc7XG4gIHRyYWNlU2FtcGxpbmc6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWRpc0NvbmZpZyB7XG4gIGVuYWJsZWQ6IGJvb2xlYW47XG4gIGtpbmQ6ICdzaW5nbGUnIHwgJ2NsdXN0ZXInIHwgJ3NlbnRpbmVsJztcbiAgYWRkcmVzczogc3RyaW5nO1xuICBwYXNzd29yZDogc3RyaW5nO1xuICBtYXN0ZXJOYW1lPzogc3RyaW5nO1xufVxuXG4vLyBUS0VcbmV4cG9ydCBpbnRlcmZhY2UgVEtFQ2x1c3RlclNwZWMge1xuICBkaXNwbGF5TmFtZTogc3RyaW5nO1xuICBzZXJ2aWNlQ0lEUj86IHN0cmluZztcbiAgZG9ja2VyRXh0cmFBcmdzPzogU3RyaW5nTWFwO1xuICBrdWJlbGV0RXh0cmFBcmdzPzogU3RyaW5nTWFwO1xuICBjb250cm9sbGVyTWFuYWdlckV4dHJhQXJncz86IFN0cmluZ01hcDtcbiAgc2NoZWR1bGVyRXh0cmFBcmdzPzogU3RyaW5nTWFwO1xuICBwdWJsaWNBbHRlcm5hdGl2ZU5hbWVzPzogc3RyaW5nW107XG4gIGNsdXN0ZXJDSURSPzogc3RyaW5nO1xuICBuZXR3b3JrRGV2aWNlPzogc3RyaW5nO1xuICBwcm9wZXJ0aWVzPzoge1xuICAgIG1heENsdXN0ZXJTZXJ2aWNlTnVtPzogbnVtYmVyO1xuICAgIG1heE5vZGVQb2ROdW0/OiBudW1iZXI7XG4gICAgb3ZlcnNvbGRSYXRpbz86IHtcbiAgICAgIGNwdTogc3RyaW5nO1xuICAgICAgbWVtb3J5OiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbiAgZmVhdHVyZXM/OiB7XG4gICAgZW5hYmxlTWFzdGVyU2NoZWR1bGU/OiBib29sZWFuO1xuICAgIGlwdjZEdWFsU3RhY2s/OiBib29sZWFuO1xuICAgIGZpbGVzPzogQXJyYXk8e1xuICAgICAgc3JjPzogc3RyaW5nO1xuICAgICAgZHN0Pzogc3RyaW5nO1xuICAgIH0+O1xuICAgIGhhPzoge1xuICAgICAgdGhpcmRQYXJ0eT86IHtcbiAgICAgICAgdmlwPzogc3RyaW5nO1xuICAgICAgICB2cG9ydD86IG51bWJlcjtcbiAgICAgIH07XG4gICAgICB0a2U/OiB7XG4gICAgICAgIHZyaWQ/OiB1bmtub3duO1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICB0eXBlOiAnQmFyZW1ldGFsJyB8ICdJbXBvcnRlZCc7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG4gIG1hY2hpbmVzPzogVEtFTWFjaGluZVNwZWNbXTtcbiAgZG5zRG9tYWluPzogc3RyaW5nO1xuICBhcGlTZXJ2ZXJFeHRyYUFyZ3M/OiBTdHJpbmdNYXA7XG4gIGNsdXN0ZXJDcmVkZW50aWFsUmVmPzoge1xuICAgIG5hbWU6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUS0VDbHVzdGVyIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3BlYz86IFRLRUNsdXN0ZXJTcGVjO1xuICBzdGF0dXM/OiB7XG4gICAgdmVyc2lvbj86IHN0cmluZztcbiAgICBwaGFzZT86IHN0cmluZztcbiAgICBjb25kaXRpb25zPzogQ29uZGl0aW9uW107XG4gICAgYWRkcmVzc2VzPzogQXJyYXk8e1xuICAgICAgaG9zdDogc3RyaW5nO1xuICAgICAgcGF0aD86ICcnO1xuICAgICAgdHlwZTogJ0FkdmVydGlzZScgfCAnUHVibGljJztcbiAgICAgIHBvcnQ6IG51bWJlcjtcbiAgICB9PjtcbiAgICBzZXJ2aWNlQ0lEUj86IHN0cmluZztcbiAgICBub2RlQ0lEUk1hc2tTaXplPzogbnVtYmVyO1xuICAgIGRuc0lQPzogc3RyaW5nO1xuICB9O1xuICBnYXRld2F5Tm9kZT86IE5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVEtFTWFjaGluZVNwZWMge1xuICBjbHVzdGVyTmFtZT86IHN0cmluZztcbiAgcm9sZT86ICdub2RlJyB8ICdtYXN0ZXInO1xuICBpcD86IHN0cmluZztcbiAgaXB2Nj86IHN0cmluZztcbiAgcHVibGljSVA/OiBzdHJpbmc7XG4gIGRpc3BsYXlOYW1lPzogc3RyaW5nO1xuICBuZXR3b3JrRGV2aWNlPzogc3RyaW5nO1xuICBwb3J0OiBudW1iZXI7XG4gIHBhc3N3b3JkPzogc3RyaW5nO1xuICBwcml2YXRlS2V5Pzogc3RyaW5nO1xuICBwYXNzUGhyYXNlPzogc3RyaW5nO1xuICB1c2VybmFtZTogc3RyaW5nO1xuICBsYWJlbHM/OiB7XG4gICAgWydudmlkaWEtZGV2aWNlLWVuYWJsZSddPzogc3RyaW5nO1xuICAgIFsnbm9kZS1yb2xlLmt1YmVybmV0ZXMuaW8vY3BhYXMtc3lzdGVtJ10/OiBzdHJpbmc7XG4gIH07XG4gIHR5cGU/OiBzdHJpbmc7XG4gIHByb3h5Pzoge1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBhZGRyZXNzOiBzdHJpbmc7XG4gICAgdXNlcm5hbWU6IHN0cmluZztcbiAgICBwYXNzd29yZDogc3RyaW5nO1xuICB9O1xuICBhbm5vdGF0aW9ucz86IFN0cmluZ01hcDtcbiAgdGFpbnRzPzogTm9kZVRhaW50W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3RlckNyZWRlbnRpYWwgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBjbHVzdGVyTmFtZTogc3RyaW5nO1xuICBjYUNlcnQ6IHN0cmluZztcbiAgdG9rZW46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUS0VNYWNoaW5lIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3BlYz86IFRLRU1hY2hpbmVTcGVjO1xuICBzdGF0dXM/OiBOb2RlU3RhdHVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hY2hpbmUgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjPzogTWFjaGluZVNwZWM7XG4gIHN0YXR1cz86IE1hY2hpbmVTdGF0dXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFjaGluZVNwZWMge1xuICBjbHVzdGVyOiBzdHJpbmc7XG4gIHByb3ZpZGVyOiBzdHJpbmc7XG4gIHByb3ZpZGVyU3BlYzogdW5rbm93bjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYWNoaW5lU3RhdHVzIHtcbiAgdXNlckRhdGFTZWNyZXQ/OiB7XG4gICAgbmFtZT86IHN0cmluZztcbiAgfTtcbiAgbm9kZVJlZj86IHtcbiAgICBuYW1lPzogc3RyaW5nO1xuICB9O1xuICBsYXN0VXBkYXRlOiBzdHJpbmc7XG4gIGVyclJlYXNvbjogc3RyaW5nO1xuICBlcnJNZXNzYWdlOiBzdHJpbmc7XG4gIHBoYXNlOiBzdHJpbmc7XG4gIGNvbmRpdGlvbnM6IENvbmRpdGlvbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsdXN0ZXJWaWV3IGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3BlYz86IHZvaWQ7XG4gIHN0YXR1cz86IENsdXN0ZXJWaWV3U3RhdHVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsdXN0ZXJWaWV3U3RhdHVzIHtcbiAgcHJvdmlzaW9uVHlwZTogJ1NlbGZIb3N0ZWQnIHwgJ1Byb3ZpZGVySG9zdGVkJyB8ICdJbXBvcnRlZCcgfCAnUmVnaXN0ZXJlZCc7XG4gIGNsdXN0ZXJUeXBlOiBzdHJpbmc7XG4gIHN1cHBvcnRXaW5kb3dzOiBib29sZWFuO1xuICByZWdpc3RyeUFkZHJlc3M6IHN0cmluZztcbiAgY29uZGl0aW9uczogQ29uZGl0aW9uW107XG4gIHByb2plY3RzOiBBcnJheTx7IG5hbWU6IHN0cmluZzsgZGlzcGxheU5hbWU6IHN0cmluZyB9PjtcbiAgY29udHJvbFBsYW5lRW5kcG9pbnRzOiB7XG4gICAgZGVmYXVsdDogc3RyaW5nO1xuICAgIGFkdmVydGlzZTogc3RyaW5nO1xuICAgIHB1YmxpYz86IHN0cmluZztcbiAgfTtcbiAgbm9kZXNJbmZvOiB7XG4gICAgcmVhZHlOb2RlczogbnVtYmVyO1xuICAgIG5vdFJlYWR5Tm9kZXM6IG51bWJlcjtcbiAgICBhcmNoaXRlY3R1cmVzOiBzdHJpbmdbXTtcbiAgICB0b3RhbENQVUNvcmVzOiBudW1iZXI7XG4gICAgdG90YWxNZW1vcmllczogbnVtYmVyO1xuICAgIGNyaVZlcnNpb25zOiBzdHJpbmdbXTtcbiAgICBleHRyYVJlc291cmNlcz86IHsgW2tleTogc3RyaW5nXTogQ2x1c3RlckRldmljZVJlc291cmNlIH07XG4gIH07XG4gIGNsdXN0ZXJOZXR3b3JrOiB7XG4gICAgaGFMb2FkQmFsYW5jZXJUeXBlPzogJ0FsaXZlJyB8ICdUaGlyZFBhcnR5JztcbiAgICBjbmlUeXBlOiBzdHJpbmc7XG4gICAgcHJvdG9jb2xTdGFjazogJ0lQdjQnIHwgJ0lQdjYnIHwgJ0R1YWwtU3RhY2snO1xuICAgIHNlcnZpY2VDSURSczogc3RyaW5nW107XG4gICAgcG9kQ0lEUnM6IHN0cmluZ1tdO1xuICAgIGV4dHJhSW5mbzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgICB2cmlkPzogbnVtYmVyO1xuICAgIG1heE5vZGVzPzogbnVtYmVyO1xuICB9O1xuICBtYW5hZ2VkQnk/OiB7XG4gICAgcGx1Z2luTmFtZTogc3RyaW5nO1xuICAgIGVudHJ5cG9pbnQ6IHN0cmluZztcbiAgfTtcbiAgZ3B1UGx1Z2luVHlwZT86ICdWaXJ0dWFsJyB8ICdQaHlzaWNhbCc7XG4gIGhpZ2hBdmFpbGFibGU6IGJvb2xlYW47XG4gIG5lZWRVcGdyYWRlOiBib29sZWFuO1xuICB1cGdyYWRhYmxlOiBib29sZWFuO1xuICB2ZXJzaW9uOiBzdHJpbmc7XG4gIHBoYXNlOiBzdHJpbmc7XG4gIGV4dHJhQXJnczogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj47XG4gIHB1YmxpY0FsdGVybmF0aXZlTmFtZXM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsdXN0ZXJEZXZpY2VSZXNvdXJjZSB7XG4gIHZhbHVlOiBudW1iZXI7XG4gIHVuaXQ/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uRW4/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uWmg/OiBzdHJpbmc7XG4gIGxhYmVsRW4/OiBzdHJpbmc7XG4gIGxhYmVsWmg/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlkZXJOZXR3b3JrU3BlYyB7XG4gIGRlZmF1bHRJbnRlcmZhY2U6IHN0cmluZztcbiAgY3VzdG9tSW50ZXJmYWNlczogQXJyYXk8e1xuICAgIGludGVyZmFjZTogc3RyaW5nO1xuICAgIG5vZGVzOiBzdHJpbmdbXTtcbiAgfT47XG4gIGV4Y2x1ZGVOb2Rlczogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlkZXJOZXR3b3JrIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3BlYzogUHJvdmlkZXJOZXR3b3JrU3BlYztcbiAgc3RhdHVzPzoge1xuICAgIHJlYWR5OiBib29sZWFuO1xuICB9O1xufVxuXG5leHBvcnQgdHlwZSBMb2NhbGVEaXNwbGF5ID0gUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0RW50cnlTcGVjIHtcbiAgbG9nbz86IHN0cmluZztcbiAgZGlzcGxheU5hbWU/OiBMb2NhbGVEaXNwbGF5O1xuICBkZXNjcmlwdGlvbj86IExvY2FsZURpc3BsYXk7XG4gIGNhdGFsb2c/OiBMb2NhbGVEaXNwbGF5O1xuICBlbnRyeXBvaW50Pzogc3RyaW5nO1xuICBzc29FbmFibGVkPzogYm9vbGVhbjtcbiAgcGFja1R5cGU/OiAnSW50ZWdyYXRlZCcgfCAnQnVpbGRJbicgfCAnQWRtaW5QYWdlJztcbiAgdmVyc2lvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0RW50cnlTdGF0dXMge1xuICBoaWRkZW5PblBvcnRhbD86IGJvb2xlYW47XG4gIGhpZGRlbk9uTWVudT86IGJvb2xlYW47XG4gIG9yZGVyT25Qb3J0YWw/OiBudW1iZXI7XG4gIG9yZGVyT25NZW51PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2R1Y3RFbnRyeSBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM/OiBQcm9kdWN0RW50cnlTcGVjO1xuICBzdGF0dXM/OiBQcm9kdWN0RW50cnlTdGF0dXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdFN0YXR1cyB7XG4gIHR5cGU6XG4gICAgfCAnTm90RGVwbG95ZWQnXG4gICAgfCAnSW5EZXBsb3ltZW50J1xuICAgIHwgJ1J1bm5pbmcnXG4gICAgfCAnRGVwbG95bWVudEZhaWx1cmUnXG4gICAgfCAnUnVubmluZ0Fibm9ybWFsJ1xuICAgIHwgJ0RlbGV0aW5nJ1xuICAgIHwgJ0RlbGV0ZUZhaWx1cmUnXG4gICAgfCAnRGVwbG95bWVudFN1Y2NlZWQnXG4gICAgfCAnU3lzdGVtRXJyb3InXG4gICAgfCAnVXBncmFkaW5nJztcbiAgaWNvbjogc3RyaW5nO1xuICB0ZXh0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdERvY3NFbnRyeSBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM6IHtcbiAgICBncm91cHM6IEFycmF5PHtcbiAgICAgIGdyb3VwTmFtZTogTG9jYWxlRGlzcGxheTtcbiAgICAgIGRvY3M6IEFycmF5PHtcbiAgICAgICAgbG9nbzogc3RyaW5nO1xuICAgICAgICBkb2NFbnRyeXBvaW50OiBzdHJpbmc7XG4gICAgICAgIGRpc3BsYXlOYW1lOiBMb2NhbGVEaXNwbGF5O1xuICAgICAgICBkZXNjcmlwdGlvbjogTG9jYWxlRGlzcGxheTtcbiAgICAgIH0+O1xuICAgIH0+O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhlbG1SZXF1ZXN0Q29uZGl0aW9uIHtcbiAgbGFzdFByb2JlVGltZT86IHN0cmluZztcbiAgbGFzdFRyYW5zaXRpb25UaW1lPzogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIHJlYXNvbjogc3RyaW5nOyAvLyBQZXJtaXNzaW9uQ2hlY2tGYWlsZWRcbiAgc3RhdHVzOiAnVHJ1ZScgfCAnRmFsc2UnO1xuICB0eXBlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQGxpbmsgaHR0cHM6Ly9naXRsYWItY2UuYWxhdWRhLmNuL2NvbnRhaW5lci1wbGF0Zm9ybS9jYXB0YWluLy0vYmxvYi9tYXN0ZXIvZG9jcy9jcmQubWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIZWxtUmVxdWVzdCBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM/OiBIZWxtUmVxdWVzdFNwZWM7XG4gIHN0YXR1cz86IHtcbiAgICBwaGFzZTogSGVsbVJlcXVlc3RQaGFzZUVudW07XG4gICAgbm90ZXM/OiBzdHJpbmc7XG4gICAgbGFzdFNwZWNIYXNoPzogc3RyaW5nO1xuICAgIHJlYXNvbj86IHN0cmluZztcbiAgICBjb25kaXRpb25zPzogSGVsbVJlcXVlc3RDb25kaXRpb25bXTtcbiAgICB0YXJnZXRDbHVzdGVyU3luY1Jlc3VsdHM/OiBIZWxtUmVxdWVzdENsdXN0ZXJTeW5jUmVzdWx0cztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIZWxtUmVxdWVzdENsdXN0ZXJTeW5jUmVzdWx0cyB7XG4gIFtjbHVzdGVyOiBzdHJpbmddOiBIZWxtUmVxdWVzdENsdXN0ZXJTeW5jUmVzdWx0O1xufVxuXG5leHBvcnQgZW51bSBDbG91ZEhlbG1SZXF1ZXN0U3RhdGVFbnVtIHtcbiAgUGVuZGluZyA9ICdQZW5kaW5nJyxcbiAgUnVubmluZyA9ICdSdW5uaW5nJyxcbiAgU3RvcHBlZCA9ICdTdG9wcGVkJyxcbiAgRmFpbGVkID0gJ0ZhaWxlZCcsXG4gIEVtcHR5ID0gJ0VtcHR5Jyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIZWxtUmVxdWVzdENsdXN0ZXJTeW5jUmVzdWx0IHtcbiAgYXBwU3RhdHVzOiBDbG91ZEhlbG1SZXF1ZXN0U3RhdGVFbnVtO1xuICBlbmRwb2ludDogc3RyaW5nO1xuICBsYXN0VXBkYXRlQXQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBwaGFzZTogSGVsbVJlcXVlc3RQaGFzZUVudW07XG4gIHJlYXNvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBIZWxtUmVxdWVzdFBoYXNlRW51bSB7XG4gIFN5bmNlZCA9ICdTeW5jZWQnLFxuICBGYWlsZWQgPSAnRmFpbGVkJyxcbiAgUGVuZGluZyA9ICdQZW5kaW5nJyxcbiAgVW5pbnN0YWxsaW5nID0gJ1VuaW5zdGFsbGluZycsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGVsbVJlcXVlc3RTcGVjIHtcbiAgY2hhcnQ/OiBzdHJpbmc7XG4gIHZhbHVlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHZhbHVlc0Zyb20/OiBBcnJheTx7XG4gICAgY29uZmlnTWFwS2V5UmVmPzogQ29uZmlnTWFwS2V5UmVmO1xuICAgIHNlY3JldEtleVJlZj86IFNlY3JldEtleVJlZjtcbiAgfT47XG4gIGNsdXN0ZXJOYW1lPzogc3RyaW5nO1xuICBuYW1lc3BhY2U/OiBzdHJpbmc7XG4gIHJlbGVhc2VOYW1lPzogc3RyaW5nO1xuICB2ZXJzaW9uPzogc3RyaW5nO1xuICBwcm9qZWN0TmFtZT86IHN0cmluZztcbiAgc291cmNlPzoge1xuICAgIG9jaT86IEhlbG1SZXF1ZXN0T2NpO1xuICAgIGh0dHA/OiBIZWxtUmVxdWVzdEh0dHA7XG4gIH07XG4gIHRhcmdldENsdXN0ZXJzPzoge1xuICAgIGNsdXN0ZXJOYW1lczoge1xuICAgICAgbmFtZXM6IHN0cmluZ1tdO1xuICAgIH07XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGVsbVJlcXVlc3RPY2kge1xuICByZXBvOiBzdHJpbmc7XG4gIHNlY3JldFJlZjogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBIZWxtUmVxdWVzdEh0dHAge1xuICB1cmw6IHN0cmluZztcbiAgc2VjcmV0UmVmOiBzdHJpbmc7XG59XG5cbi8qKlxuICogaHR0cHM6Ly9jb25mbHVlbmNlLmFsYXVkYS5jbi9wYWdlcy92aWV3cGFnZS5hY3Rpb24/cGFnZUlkPTE3Njg4MzQ3MFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJCaW5kaW5nIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3BlYz86IFVzZXJCaW5kaW5nU3BlYztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyQmluZGluZ1NwZWMge1xuICBzdWJqZWN0czogQXJyYXk8e1xuICAgIGtpbmQ6ICdVc2VyJyB8ICdHcm91cCcgfCAnU2VydmljZUFjY291bnQnO1xuICAgIG5hbWU6IHN0cmluZztcbiAgfT47XG4gIHJvbGVSZWY6IHN0cmluZztcbiAgc2NvcGU6IHN0cmluZzsgLy8g5pSv5oyB57G75Z6LcGxhdGZvcm0sIGNsdXN0ZXIsIHByb2plY3QsIG5hbWVzcGFjZVxuICBjb25zdHJhaW50OiBBcnJheTx7XG4gICAgcHJvamVjdD86IHN0cmluZztcbiAgICBjbHVzdGVyPzogc3RyaW5nO1xuICAgIG5hbWVzcGFjZT86IHN0cmluZztcbiAgfT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUm9sZVJ1bGUge1xuICBtb2R1bGU6IHN0cmluZztcbiAgZnVuY3Rpb25SZXNvdXJjZVJlZjogc3RyaW5nO1xuICBmdW5jdGlvbk1ldGFkYXRhTmFtZT86IHN0cmluZztcbiAgdmVyYnM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJvbGVDdXN0b21SdWxlIHtcbiAgYXBpR3JvdXA6IHN0cmluZztcbiAgcmVzb3VyY2VzOiBzdHJpbmdbXTtcbiAgdmVyYnM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJvbGVUZW1wbGF0ZVNwZWMge1xuICBydWxlcz86IFJvbGVSdWxlW107XG4gIGN1c3RvbVJ1bGVzPzogUm9sZUN1c3RvbVJ1bGVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSb2xlVGVtcGxhdGUgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjPzogUm9sZVRlbXBsYXRlU3BlYztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyUm9sZU5hbWVzcGFjZSB7XG4gIG5hbWVzcGFjZTogc3RyaW5nO1xuICBjbHVzdGVyOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclJvbGUgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBuYW1lPzogc3RyaW5nO1xuICByb2xlcz86IHN0cmluZ1tdO1xuICBuYW1lc3BhY2VzPzogUmVjb3JkPHN0cmluZywgVXNlclJvbGVOYW1lc3BhY2VbXT47XG59XG5cbi8vIGh0dHA6Ly9jb25mbHVlbmNlLmFsYXVkYXRlY2guY29tL3BhZ2VzL3ZpZXdwYWdlLmFjdGlvbj9wYWdlSWQ9MzkzMzgzNjYjMS0lRTglOEUlQjclRTUlOEYlOTYlRTclOTQlQTglRTYlODglQjclRTQlQkYlQTElRTYlODElQUZcbmV4cG9ydCBpbnRlcmZhY2UgVXNlciBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM/OiBVc2VyU3BlYztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyU3BlYyB7XG4gIGNvbm5lY3Rvcl9uYW1lPzogc3RyaW5nO1xuICBjb25uZWN0b3JfdHlwZT86IHN0cmluZztcbiAgZW1haWw/OiBzdHJpbmc7XG4gIG1haWw/OiBzdHJpbmc7XG4gIGdyb3Vwcz86IHN0cmluZ1tdO1xuICBpc19hZG1pbj86IGJvb2xlYW47XG4gIHZhbGlkPzogYm9vbGVhbjtcbiAgdXNlcm5hbWU/OiBzdHJpbmc7XG4gIG9sZF9wYXNzd29yZD86IHN0cmluZztcbiAgcGFzc3dvcmQ/OiBzdHJpbmc7XG4gIGxhc3RfbG9naW5fdGltZT86IHN0cmluZztcbiAgbG9naW5fZmFpbHVyZV90aW1lcz86IG51bWJlcjtcbiAgc3RhdGU/OiBVc2VyU3RhdGU7XG4gIGlzX2Rpc2FibGVkPzogYm9vbGVhbjtcbiAgZXhwaXJlZD86IHtcbiAgICBiZWdpbjogc3RyaW5nO1xuICAgIGVuZDogc3RyaW5nO1xuICB9O1xuICBtb2JpbGU/OiBzdHJpbmc7XG4gIHdlYmhvb2tUeXBlPzogV2ViaG9va1R5cGU7XG4gIHdlYmhvb2tVcmw/OiBzdHJpbmc7XG4gIGlkcz86IEFycmF5PHsgdHlwZTogc3RyaW5nOyBpZDogc3RyaW5nIH0+O1xufVxuXG5leHBvcnQgZW51bSBVc2VyU3RhdGUge1xuICBBQ1RJVkUgPSAnYWN0aXZlJyxcbiAgTE9DS0VEID0gJ2xvY2tlZCcsXG4gIElOVkFMSUQgPSAnaW52YWxpZCcsXG4gIERFTEVURUQgPSAnZGVsZXRlZCcsXG59XG5cbmV4cG9ydCB0eXBlIFdlYmhvb2tUeXBlID0gJ1dlYmhvb2snIHwgJ0RpbmdUYWxrJyB8ICdXZUNoYXQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJMaXN0IGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlTGlzdDxVc2VyPiB7XG4gIHRvdGFsOiBudW1iZXI7XG59XG4iXX0=
|
|
@@ -2,9 +2,10 @@ import { __decorate, __metadata } from "tslib";
|
|
|
2
2
|
import { observeResizeOn } from '@alauda/ui';
|
|
3
3
|
import { DOCUMENT } from '@angular/common';
|
|
4
4
|
import { ChangeDetectionStrategy, Component, ContentChildren, ElementRef, EventEmitter, Inject, Input, NgZone, Output, QueryList, Renderer2, ViewContainerRef, ViewEncapsulation, } from '@angular/core';
|
|
5
|
-
import { cloneDeep
|
|
5
|
+
import { cloneDeep } from 'lodash-es';
|
|
6
6
|
import { combineLatest, distinctUntilChanged, exhaustMap, map, merge, NEVER, Observable, startWith, Subject, switchMap, takeUntil, } from 'rxjs';
|
|
7
|
-
import {
|
|
7
|
+
import { isEqual, ObservableInput } from '../../../core/public-api';
|
|
8
|
+
import { DEFAULT_GUTTER, DEFAULT_LAYOUT_COLUMNS, DEFAULT_ROW_HEIGHT, } from '../../../public-api';
|
|
8
9
|
import { GridLayoutService } from '../../grid-layout.service';
|
|
9
10
|
import { GridPlaceholderService } from '../../grid-placeholder.service';
|
|
10
11
|
import { GridCompactType, } from '../../type';
|
|
@@ -284,4 +285,4 @@ __decorate([
|
|
|
284
285
|
type: Input
|
|
285
286
|
}] }); })();
|
|
286
287
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(GridLayoutComponent, { className: "GridLayoutComponent" }); })();
|
|
287
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2dyaWQtbGF5b3V0L2NvbXBvbmVudHMvZ3JpZC9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvZ3JpZC1sYXlvdXQvY29tcG9uZW50cy9ncmlkL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFHTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUlOLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUVULGdCQUFnQixFQUNoQixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDL0MsT0FBTyxFQUNMLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsVUFBVSxFQUNWLEdBQUcsRUFDSCxLQUFLLEVBQ0wsS0FBSyxFQUNMLFVBQVUsRUFFVixTQUFTLEVBQ1QsT0FBTyxFQUNQLFNBQVMsRUFDVCxTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQ0wsY0FBYyxFQUNkLHNCQUFzQixFQUN0QixrQkFBa0IsRUFDbEIsZUFBZSxHQUNoQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hFLE9BQU8sRUFDTCxlQUFlLEdBWWhCLE1BQU0sWUFB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QUU7WUFHL0MsYUFBYTtrQkFBdEIsTUFBTTtZQUdHLFdBQVc7a0JBQXBCLE1BQU07WUFHRyxhQUFhO2tCQUF0QixNQUFNO1lBR0csU0FBUztrQkFBbEIsTUFBTTtZQUdHLFdBQVc7a0JBQXBCLE1BQU07WUFHRyxjQUFjO2tCQUF2QixNQUFNO1lBS0UsZ0JBQWdCO2tCQUF4QixLQUFLO1lBQ2EsaUJBQWlCLE1BS3BDLEVBQUU7a0JBREQsS0FBSztZQUlOLGdCQUFnQjtrQkFEZixLQUFLO1lBSU4sV0FBVztrQkFEVixLQUFLO1lBSU4sV0FBVztrQkFEVixLQUFLO1lBSU4sU0FBUztrQkFEUixLQUFLO1lBSU4sSUFBSTtrQkFESCxLQUFLO1lBSU4sTUFBTTtrQkFETCxLQUFLO1lBSU4sTUFBTTtrQkFETCxLQUFLOztrRkExREssbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgb2JzZXJ2ZVJlc2l6ZU9uIH0gZnJvbSAnQGFsYXVkYS91aSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRDaGVja2VkLFxuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgUmVuZGVyZXIyLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIGlzRXF1YWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtcbiAgY29tYmluZUxhdGVzdCxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGV4aGF1c3RNYXAsXG4gIG1hcCxcbiAgbWVyZ2UsXG4gIE5FVkVSLFxuICBPYnNlcnZhYmxlLFxuICBPYnNlcnZlcixcbiAgc3RhcnRXaXRoLFxuICBTdWJqZWN0LFxuICBzd2l0Y2hNYXAsXG4gIHRha2VVbnRpbCxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIERFRkFVTFRfR1VUVEVSLFxuICBERUZBVUxUX0xBWU9VVF9DT0xVTU5TLFxuICBERUZBVUxUX1JPV19IRUlHSFQsXG4gIE9ic2VydmFibGVJbnB1dCxcbn0gZnJvbSAnLi4vLi4vLi4vcHVibGljLWFwaSc7XG5pbXBvcnQgeyBHcmlkTGF5b3V0U2VydmljZSB9IGZyb20gJy4uLy4uL2dyaWQtbGF5b3V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgR3JpZFBsYWNlaG9sZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2dyaWQtcGxhY2Vob2xkZXIuc2VydmljZSc7XG5pbXBvcnQge1xuICBHcmlkQ29tcGFjdFR5cGUsXG4gIERyYWdFbmRFdmVudCxcbiAgRHJhZ1N0YXJ0RXZlbnQsXG4gIEdyaWRMYXlvdXQsXG4gIEdyaWRMYXlvdXRJdGVtLFxuICBSZXNpemVTdGFydEV2ZW50LFxuICBHcmlkQ2ZnLFxuICBHcmlkSXRlbVJlbmRlckRhdGEsXG4gIEdyaWRJdGVtQ2xpZW50UmVjdCxcbiAgRHJhZ0FjdGlvblR5cGUsXG4gIFJlc2l6ZUVuZEV2ZW50LFxuICBJdGVtUmVzaXplRXZlbnQsXG59IGZyb20gJy4uLy4uL3R5cGUnO1xuaW1wb3J0IHsgZ2V0Q2xpZW50UmVjdFNuYXBzaG90IH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xpZW50LXJlY3QudXRpbHMnO1xuaW1wb3J0IHtcbiAgY29tcGFjdEdyaWRMYXlvdXQsXG4gIGdldERyYWdSZXNpemVFdmVudERhdGEsXG59IGZyb20gJy4uLy4uL3V0aWxzL2dyaWQudXRpbHMnO1xuaW1wb3J0IHsgZ2V0TW91c2VFbmQkLCBnZXRNb3VzZU1vdmUkIH0gZnJvbSAnLi4vLi4vdXRpbHMvbW91c2UudXRpbHMnO1xuaW1wb3J0IHsgcnVuT3V0c2lkZVpvbmUkIH0gZnJvbSAnLi4vLi4vdXRpbHMvb3BlcmF0b3InO1xuaW1wb3J0IHsgc2Nyb2xsSWZOZWFyRWxlbWVudENsaWVudFJlY3QkIH0gZnJvbSAnLi4vLi4vdXRpbHMvc2Nyb2xsLnV0aWxzJztcbmltcG9ydCB7IEdyaWRJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vZ3JpZC1pdGVtcy9jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtZ3JpZC1sYXlvdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVtcGxhdGUuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHN0eWxlVXJsczogWycuL3N0eWxlLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW0dyaWRQbGFjZWhvbGRlclNlcnZpY2UsIEdyaWRMYXlvdXRTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgR3JpZExheW91dENvbXBvbmVudFxuICBpbXBsZW1lbnRzXG4gICAgT25Jbml0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBBZnRlckNvbnRlbnRDaGVja2VkLFxuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgT25EZXN0cm95XG57XG4gIC8qKiBRdWVyeSBsaXN0IG9mIGdyaWQgaXRlbXMgdGhhdCBhcmUgYmVpbmcgcmVuZGVyZWQuICovXG4gIEBDb250ZW50Q2hpbGRyZW4oR3JpZEl0ZW1Db21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgZ3JpZEl0ZW1zOiBRdWVyeUxpc3Q8R3JpZEl0ZW1Db21wb25lbnQ+O1xuXG4gIEBPdXRwdXQoKSBsYXlvdXRVcGRhdGVkOiBFdmVudEVtaXR0ZXI8R3JpZExheW91dD4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8R3JpZExheW91dD4oKTtcblxuICBAT3V0cHV0KCkgZHJhZ1N0YXJ0ZWQ6IEV2ZW50RW1pdHRlcjxEcmFnU3RhcnRFdmVudD4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8RHJhZ1N0YXJ0RXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpIHJlc2l6ZVN0YXJ0ZWQ6IEV2ZW50RW1pdHRlcjxSZXNpemVTdGFydEV2ZW50PiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxSZXNpemVTdGFydEV2ZW50PigpO1xuXG4gIEBPdXRwdXQoKSBkcmFnRW5kZWQ6IEV2ZW50RW1pdHRlcjxEcmFnRW5kRXZlbnQ+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPERyYWdFbmRFdmVudD4oKTtcblxuICBAT3V0cHV0KCkgcmVzaXplRW5kZWQ6IEV2ZW50RW1pdHRlcjxSZXNpemVFbmRFdmVudD4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8UmVzaXplRW5kRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpIGdyaWRJdGVtUmVzaXplOiBFdmVudEVtaXR0ZXI8SXRlbVJlc2l6ZUV2ZW50PiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxJdGVtUmVzaXplRXZlbnQ+KCk7XG5cbiAgLy8gUGFyZW50IGVsZW1lbnQgdGhhdCBjb250YWlucyB0aGUgc2Nyb2xsLiBJZiBhbiBzdHJpbmcgaXMgcHJvdmlkZWQgaXQgd291bGQgc2VhcmNoIHRoYXQgZWxlbWVudCBieSBpZCBvbiB0aGUgZG9tLlxuICAvLyB1c2UgdGhpcyB0byBjb21wZW5zYXRlIGRyYWdnaW5nIHBvaW50IGFuZCBzY3JvbGwgZGlmZmVyZW5jZVxuICBASW5wdXQoKSBzY3JvbGxhYmxlUGFyZW50OiBIVE1MRWxlbWVudCB8IERvY3VtZW50IHwgc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBPYnNlcnZhYmxlSW5wdXQoKSBzY3JvbGxhYmxlUGFyZW50JDogT2JzZXJ2YWJsZTxcbiAgICBIVE1MRWxlbWVudCB8IERvY3VtZW50IHwgc3RyaW5nIHwgbnVsbFxuICA+O1xuXG4gIEBJbnB1dCgpXG4gIGlkOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHJldmVudENvbGxpc2lvbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHNjcm9sbFNwZWVkID0gMjtcblxuICBASW5wdXQoKVxuICBjb21wYWN0VHlwZSA9IEdyaWRDb21wYWN0VHlwZS5WRVJUSUNBTDtcblxuICBASW5wdXQoKVxuICByb3dIZWlnaHQ6IG51bWJlciA9IERFRkFVTFRfUk9XX0hFSUdIVDtcblxuICBASW5wdXQoKVxuICBjb2xzOiBudW1iZXIgPSBERUZBVUxUX0xBWU9VVF9DT0xVTU5TO1xuXG4gIEBJbnB1dCgpXG4gIGxheW91dDogR3JpZExheW91dDtcblxuICBASW5wdXQoKVxuICBndXR0ZXI6IG51bWJlciA9IERFRkFVTFRfR1VUVEVSO1xuXG4gIHByaXZhdGUgbGFzdExheW91dDogR3JpZExheW91dDtcblxuICBkZXN0cm95JCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGdldCBjb25maWcoKTogR3JpZENmZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbHM6IHRoaXMuY29scyxcbiAgICAgIHJvd0hlaWdodDogdGhpcy5yb3dIZWlnaHQsXG4gICAgICBsYXlvdXQ6IHRoaXMubGFzdExheW91dCxcbiAgICAgIHByZXZlbnRDb2xsaXNpb246IHRoaXMucHJldmVudENvbGxpc2lvbixcbiAgICAgIGd1dHRlcjogdGhpcy5ndXR0ZXIsXG4gICAgfTtcbiAgfVxuXG4gIGdldCBob3N0RWxlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwdWJsaWMgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGdyaWRQbGFjZWhvbGRlclNlcnZpY2U6IEdyaWRQbGFjZWhvbGRlclNlcnZpY2UsXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBncmlkTGF5b3V0U2VydmljZTogR3JpZExheW91dFNlcnZpY2UsXG4gICkge1xuICAgIC8vIHdlIHVzZSB0aGlzIHBhdHRlcm4gdG8gYXZvaWQgdG9vIG1hbnkgcHJvcGVydHkgcGFzc2luZ1xuICAgIHRoaXMuZ3JpZExheW91dFNlcnZpY2UucmVnaXN0ZXJHcmlkQ29tcG9uZW50KHRoaXMpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgb2JzZXJ2ZVJlc2l6ZU9uKHRoaXMuaG9zdEVsZW1lbnQpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuZ3JpZExheW91dFNlcnZpY2UuY2FsY3VsYXRlUmVuZGVyRGF0YSgpO1xuICAgICAgICB0aGlzLmdyaWRMYXlvdXRTZXJ2aWNlLmZsdXNoUmVuZGVyRGF0YSh0cnVlKTtcbiAgICAgIH0pO1xuICAgIHRoaXMuZ3JpZExheW91dFNlcnZpY2UuZ3JpZFJlbmRlckhlaWdodCQkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZChpc0VxdWFsKSlcbiAgICAgIC5zdWJzY3JpYmUoaGVpZ2h0ID0+IHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmhvc3RFbGVtZW50LCAnaGVpZ2h0JywgYCR7aGVpZ2h0fXB4YCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbGFzdExheW91dElkOiBzdHJpbmc7XG4gIHByaXZhdGUgbWFya0xheW91dElkQ2hhbmdlID0gZmFsc2U7XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGxldCBuZWVkc0NvbXBhY3RMYXlvdXQgPSBmYWxzZTtcbiAgICBsZXQgbmVlZHNSZWNhbGN1bGF0ZVJlbmRlckRhdGEgPSBmYWxzZTtcbiAgICAvLyBDb21wYWN0IGxheW91dCB3aGVuZXZlciBzb21lIGRlcGVuZGVudCBwcm9wIGNoYW5nZXMuXG4gICAgaWYgKGNoYW5nZXMuY29tcGFjdFR5cGUgfHwgY2hhbmdlcy5jb2xzIHx8IGNoYW5nZXMubGF5b3V0IHx8IGNoYW5nZXMuaWQpIHtcbiAgICAgIG5lZWRzQ29tcGFjdExheW91dCA9IHRydWU7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzLmxheW91dCkge1xuICAgICAgdGhpcy5sYXN0TGF5b3V0ID0gY2hhbmdlcy5sYXlvdXQuY3VycmVudFZhbHVlO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlcy5pZCkge1xuICAgICAgaWYgKHRoaXMubGFzdExheW91dElkICYmIHRoaXMubGFzdExheW91dElkICE9PSBjaGFuZ2VzLmlkLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICB0aGlzLm1hcmtMYXlvdXRJZENoYW5nZSA9IHRydWU7XG4gICAgICB9XG4gICAgICB0aGlzLmxhc3RMYXlvdXRJZCA9IGNoYW5nZXMuaWQuY3VycmVudFZhbHVlO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIHdlZSBuZWVkIHRvIHJlY2FsY3VsYXRlIHJlbmRlcmluZyBkYXRhLlxuICAgIGlmIChcbiAgICAgIG5lZWRzQ29tcGFjdExheW91dCB8fFxuICAgICAgY2hhbmdlcy5yb3dIZWlnaHQgfHxcbiAgICAgIGNoYW5nZXMuZ3V0dGVyIHx8XG4gICAgICBjaGFuZ2VzLmxheW91dFxuICAgICkge1xuICAgICAgbmVlZHNSZWNhbGN1bGF0ZVJlbmRlckRhdGEgPSB0cnVlO1xuICAgIH1cbiAgICBjb25zdCBtYXJrTGF5b3V0SWRDaGFuZ2UgPSB0aGlzLm1hcmtMYXlvdXRJZENoYW5nZTtcbiAgICBpZiAobmVlZHNSZWNhbGN1bGF0ZVJlbmRlckRhdGEpIHtcbiAgICAgIC8vIGxldCBuZ09uQ2hhbmdlcyBwYXNzLCB3ZSBjYW4gdXNlIGlucHV0IHByb3BzLCBhbmQgd2hlbiBwcm9wcyBjaGFuZ2UsIGxldCBncmlkLWNvbXBvbmVudCBkZXN0cm95IGZpcnN0XG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICBpZiAobmVlZHNDb21wYWN0TGF5b3V0KSB7XG4gICAgICAgICAgdGhpcy5jb21wYWN0TGF5b3V0KG1hcmtMYXlvdXRJZENoYW5nZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ncmlkTGF5b3V0U2VydmljZS5jYWxjdWxhdGVSZW5kZXJEYXRhKCk7XG4gICAgICAgIC8vIERvIG5vdCBuZWVkIGFuaW1hdGlvbiB3aGVuIHRvdGFsIGxheW91dCBjb25maWcgY2hhbmdlLCB3aGljaCBpcyBkYXNoSWQgY2hhbmdpbmdcbiAgICAgICAgdGhpcy5ncmlkTGF5b3V0U2VydmljZS5mbHVzaFJlbmRlckRhdGEoIW1hcmtMYXlvdXRJZENoYW5nZSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy5pbml0U3Vic2NyaXB0aW9ucygpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCkge1xuICAgIHRoaXMuZ3JpZExheW91dFNlcnZpY2UuY2FsY3VsYXRlUmVuZGVyRGF0YSgpO1xuICAgIHRoaXMuZ3JpZExheW91dFNlcnZpY2UuZmx1c2hSZW5kZXJEYXRhKCF0aGlzLm1hcmtMYXlvdXRJZENoYW5nZSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHJlZnJlc2hMYXlvdXQoZGFzaElkQ2hhbmdlOiBib29sZWFuKSB7XG4gICAgcmV0dXJuIGRhc2hJZENoYW5nZVxuICAgICAgPyB0aGlzLmxhc3RMYXlvdXRcbiAgICAgIDogdGhpcy5sYXN0TGF5b3V0Py5tYXAobGF5b3V0SXRlbSA9PiAoe1xuICAgICAgICAgIC4uLmxheW91dEl0ZW0sXG4gICAgICAgICAgLi4udGhpcy5ncmlkTGF5b3V0U2VydmljZS5sYXN0TGF5b3V0Py5maW5kKFxuICAgICAgICAgICAgKHsgaWQgfSkgPT4gbGF5b3V0SXRlbS5pZCA9PT0gaWQsXG4gICAgICAgICAgKSxcbiAgICAgICAgfSkpO1xuICB9XG5cbiAgY29tcGFjdExheW91dChkYXNoSWRDaGFuZ2U6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmxhc3RMYXlvdXQgPSBjb21wYWN0R3JpZExheW91dChcbiAgICAgIHRoaXMucmVmcmVzaExheW91dChkYXNoSWRDaGFuZ2UpLFxuICAgICAgdGhpcy5jb21wYWN0VHlwZSxcbiAgICAgIHRoaXMuY29scyxcbiAgICApO1xuICB9XG5cbiAgZ2V0SXRlbVJlbmRlckRhdGEoaXRlbUlkOiBzdHJpbmcpOiBHcmlkSXRlbVJlbmRlckRhdGEge1xuICAgIHJldHVybiB0aGlzLmdyaWRMYXlvdXRTZXJ2aWNlLmdyaWRJdGVtc1JlbmRlckRhdGFbaXRlbUlkXTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFN1YnNjcmlwdGlvbnMoKSB7XG4gICAgdGhpcy5ncmlkSXRlbXMuY2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkJCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjb25zdCBtYXJrTGF5b3V0SWRDaGFuZ2UgPSB0aGlzLm1hcmtMYXlvdXRJZENoYW5nZTtcbiAgICAgIC8vIG5lZWQgdGhpcyBSYWYgdG8gbWFrZSB0aGlzLmxhc3RMYXlvdXQgdG8gYmUgbGFzdFxuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgdGhpcy5tYXJrTGF5b3V0SWRDaGFuZ2UgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jb21wYWN0TGF5b3V0KCFtYXJrTGF5b3V0SWRDaGFuZ2UpO1xuICAgICAgICB0aGlzLmdyaWRMYXlvdXRTZXJ2aWNlLmNhbGN1bGF0ZVJlbmRlckRhdGEoKTtcbiAgICAgICAgdGhpcy5ncmlkTGF5b3V0U2VydmljZS5mbHVzaFJlbmRlckRhdGEoIW1hcmtMYXlvdXRJZENoYW5nZSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICB0aGlzLmdyaWRJdGVtcy5jaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQkKSxcbiAgICAgICAgc3RhcnRXaXRoKHRoaXMuZ3JpZEl0ZW1zKSxcbiAgICAgICAgc3dpdGNoTWFwKChncmlkSXRlbXM6IFF1ZXJ5TGlzdDxHcmlkSXRlbUNvbXBvbmVudD4pID0+XG4gICAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgICAuLi5ncmlkSXRlbXMubWFwKGdyaWRJdGVtID0+XG4gICAgICAgICAgICAgIGdyaWRJdGVtLmRyYWdTdGFydCQucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoZXZlbnQgPT4gKHtcbiAgICAgICAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgICAgICAgZ3JpZEl0ZW0sXG4gICAgICAgICAgICAgICAgICB0eXBlOiAnZHJhZycgYXMgRHJhZ0FjdGlvblR5cGUsXG4gICAgICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIC4uLmdyaWRJdGVtcy5tYXAoZ3JpZEl0ZW0gPT5cbiAgICAgICAgICAgICAgZ3JpZEl0ZW0ucmVzaXplU3RhcnQkLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKGV2ZW50ID0+ICh7XG4gICAgICAgICAgICAgICAgICBldmVudCxcbiAgICAgICAgICAgICAgICAgIGdyaWRJdGVtLFxuICAgICAgICAgICAgICAgICAgdHlwZTogJ3Jlc2l6ZScgYXMgRHJhZ0FjdGlvblR5cGUsXG4gICAgICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICApLnBpcGUoXG4gICAgICAgICAgICBleGhhdXN0TWFwKCh7IGV2ZW50LCBncmlkSXRlbSwgdHlwZSB9KSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PlxuICAgICAgICAgICAgICAgICh0eXBlID09PSAnZHJhZycgPyB0aGlzLmRyYWdTdGFydGVkIDogdGhpcy5yZXNpemVTdGFydGVkKS5lbWl0KFxuICAgICAgICAgICAgICAgICAgZ2V0RHJhZ1Jlc2l6ZUV2ZW50RGF0YShncmlkSXRlbSwgdGhpcy5sYXN0TGF5b3V0KSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVBY3Rpb24kKGdyaWRJdGVtLCBldmVudCwgdHlwZSkucGlwZShcbiAgICAgICAgICAgICAgICBtYXAobGF5b3V0ID0+ICh7IGxheW91dCwgZ3JpZEl0ZW0sIHR5cGUgfSkpLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHsgbGF5b3V0LCBncmlkSXRlbSwgdHlwZSB9KSA9PiB7XG4gICAgICAgIHRoaXMubGFzdExheW91dCA9IGxheW91dDtcbiAgICAgICAgKHR5cGUgPT09ICdkcmFnJyA/IHRoaXMuZHJhZ0VuZGVkIDogdGhpcy5yZXNpemVFbmRlZCkuZW1pdChcbiAgICAgICAgICBnZXREcmFnUmVzaXplRXZlbnREYXRhKGdyaWRJdGVtLCBsYXlvdXQpLFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmxheW91dFVwZGF0ZWQuZW1pdChsYXlvdXQpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUFjdGlvbiQoXG4gICAgZ3JpZEl0ZW06IEdyaWRJdGVtQ29tcG9uZW50LFxuICAgIHBvaW50ZXJEb3duRXZlbnQ6IE1vdXNlRXZlbnQsXG4gICAgdHlwZTogRHJhZ0FjdGlvblR5cGUsXG4gICk6IE9ic2VydmFibGU8R3JpZExheW91dD4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxHcmlkTGF5b3V0Pigob2JzZXJ2ZXI6IE9ic2VydmVyPEdyaWRMYXlvdXQ+KSA9PiB7XG4gICAgICAvLyBSZXRyaWV2ZSBncmlkIChwYXJlbnQpIGFuZCBncmlkSXRlbSAoZHJhZ2dlZEVsZW0pIGNsaWVudCByZWN0cy5cbiAgICAgIGNvbnN0IGdyaWRFbGVtQ2xpZW50UmVjdFNuYXBzaG90OiBHcmlkSXRlbUNsaWVudFJlY3QgPVxuICAgICAgICBnZXRDbGllbnRSZWN0U25hcHNob3QodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpO1xuICAgICAgY29uc3QgZHJhZ0VsZW1DbGllbnRSZWN0U25hcHNob3Q6IEdyaWRJdGVtQ2xpZW50UmVjdCA9XG4gICAgICAgIGdldENsaWVudFJlY3RTbmFwc2hvdChncmlkSXRlbS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpO1xuXG4gICAgICBjb25zdCBzY3JvbGxhYmxlUGFyZW50ID1cbiAgICAgICAgdHlwZW9mIHRoaXMuc2Nyb2xsYWJsZVBhcmVudCA9PT0gJ3N0cmluZydcbiAgICAgICAgICA/IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5zY3JvbGxhYmxlUGFyZW50KVxuICAgICAgICAgIDogdGhpcy5zY3JvbGxhYmxlUGFyZW50O1xuXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKFxuICAgICAgICBncmlkSXRlbS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICduby10cmFuc2l0aW9ucycsXG4gICAgICApO1xuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhcbiAgICAgICAgZ3JpZEl0ZW0uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnZ3JpZC1pdGVtLWRyYWdnaW5nJyxcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IHBsYWNlaG9sZGVyQ2xpZW50UmVjdDogR3JpZEl0ZW1DbGllbnRSZWN0ID0ge1xuICAgICAgICAuLi5kcmFnRWxlbUNsaWVudFJlY3RTbmFwc2hvdCxcbiAgICAgICAgbGVmdDogZHJhZ0VsZW1DbGllbnRSZWN0U25hcHNob3QubGVmdCAtIGdyaWRFbGVtQ2xpZW50UmVjdFNuYXBzaG90LmxlZnQsXG4gICAgICAgIHRvcDogZHJhZ0VsZW1DbGllbnRSZWN0U25hcHNob3QudG9wIC0gZ3JpZEVsZW1DbGllbnRSZWN0U25hcHNob3QudG9wLFxuICAgICAgfTtcbiAgICAgIHRoaXMuZ3JpZFBsYWNlaG9sZGVyU2VydmljZS5jcmVhdGVQbGFjZWhvbGRlckVsZW1lbnQoXG4gICAgICAgIHBsYWNlaG9sZGVyQ2xpZW50UmVjdCxcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLFxuICAgICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIGdyaWRJdGVtLnBsYWNlaG9sZGVyLFxuICAgICAgKTtcblxuICAgICAgbGV0IG5ld0xheW91dDogR3JpZExheW91dEl0ZW1bXTtcblxuICAgICAgKHNjcm9sbGFibGVQYXJlbnRcbiAgICAgICAgPyBnZXRNb3VzZU1vdmUkKHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5waXBlKFxuICAgICAgICAgICAgcnVuT3V0c2lkZVpvbmUkKHRoaXMubmdab25lKSxcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkJCksXG4gICAgICAgICAgICBzY3JvbGxJZk5lYXJFbGVtZW50Q2xpZW50UmVjdCQoc2Nyb2xsYWJsZVBhcmVudCwge1xuICAgICAgICAgICAgICBzY3JvbGxTdGVwOiB0aGlzLnNjcm9sbFNwZWVkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKVxuICAgICAgICA6IE5FVkVSXG4gICAgICApXG4gICAgICAgIC5waXBlKHRha2VVbnRpbChnZXRNb3VzZUVuZCQodGhpcy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpKSlcbiAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgICAgbWVyZ2UoXG4gICAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgIGdldE1vdXNlTW92ZSQodGhpcy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLFxuICAgICAgICAgIHRoaXMuZ3JpZExheW91dFNlcnZpY2Uuc2Nyb2xsRGlmZmVyZW5jZSQsXG4gICAgICAgIF0pLFxuICAgICAgKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBydW5PdXRzaWRlWm9uZSQodGhpcy5uZ1pvbmUpLFxuICAgICAgICAgIHRha2VVbnRpbChnZXRNb3VzZUVuZCQodGhpcy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpKSxcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgKFtwb2ludGVyRHJhZ0V2ZW50LCBzY3JvbGxEaWZmZXJlbmNlXTogW1xuICAgICAgICAgICAgTW91c2VFdmVudCxcbiAgICAgICAgICAgIHsgdG9wOiBudW1iZXI7IGxlZnQ6IG51bWJlciB9LFxuICAgICAgICAgIF0pID0+IHtcbiAgICAgICAgICAgIHBvaW50ZXJEcmFnRXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGNvbnN0IGdyaWRJdGVtSWQgPSBncmlkSXRlbS5pZDtcbiAgICAgICAgICAgIGNvbnN0IHsgZ3JpZERhdGEsIGxheW91dCB9ID1cbiAgICAgICAgICAgICAgdGhpcy5ncmlkTGF5b3V0U2VydmljZS5sYXlvdXRXaGVuQWN0aW9uKFxuICAgICAgICAgICAgICAgIGdyaWRJdGVtLFxuICAgICAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgcG9pbnRlckRvd25FdmVudCxcbiAgICAgICAgICAgICAgICAgIHBvaW50ZXJEcmFnRXZlbnQsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzY3JvbGxEaWZmZXJlbmNlLFxuICAgICAgICAgICAgICAgIGRyYWdFbGVtQ2xpZW50UmVjdFNuYXBzaG90LFxuICAgICAgICAgICAgICAgIGdyaWRFbGVtQ2xpZW50UmVjdFNuYXBzaG90LFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5ncmlkTGF5b3V0U2VydmljZS5mbHVzaFJlbmRlckRhdGEoKTtcbiAgICAgICAgICAgIG5ld0xheW91dCA9IGNsb25lRGVlcChsYXlvdXQpO1xuXG4gICAgICAgICAgICBjb25zdCBuZXdJdGVtR3JpZERhdGEgPSB7IC4uLmdyaWREYXRhW2dyaWRJdGVtSWRdIH07XG5cbiAgICAgICAgICAgIC8vIHB1dCB0aGUgZ3JpZCBub3JtYWxpemUgcG9zaXRpb24gdG8gdGhlIHBsYWNlaG9sZGVyIGVsZW1lbnRcbiAgICAgICAgICAgIHRoaXMuZ3JpZFBsYWNlaG9sZGVyU2VydmljZS51cGRhdGVQbGFjZUhvbGRlcihuZXdJdGVtR3JpZERhdGEpO1xuXG4gICAgICAgICAgICB0eXBlID09PSAncmVzaXplJyAmJlxuICAgICAgICAgICAgICB0aGlzLmdyaWRJdGVtUmVzaXplLmVtaXQoe1xuICAgICAgICAgICAgICAgIHdpZHRoOiBuZXdJdGVtR3JpZERhdGEud2lkdGgsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBuZXdJdGVtR3JpZERhdGEuaGVpZ2h0LFxuICAgICAgICAgICAgICAgIGdyaWRJdGVtUmVmOiBnZXREcmFnUmVzaXplRXZlbnREYXRhKGdyaWRJdGVtLCBuZXdMYXlvdXQpXG4gICAgICAgICAgICAgICAgICAuZ3JpZEl0ZW1SZWYsXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3IgPT4gb2JzZXJ2ZXIuZXJyb3IoZXJyb3IpLFxuICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoXG4gICAgICAgICAgICAgICAgZ3JpZEl0ZW0uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICduby10cmFuc2l0aW9ucycsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoXG4gICAgICAgICAgICAgICAgZ3JpZEl0ZW0uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICdncmlkLWl0ZW0tZHJhZ2dpbmcnLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAvLyB3aGVuIGFjdGlvbiBpcyBkb25lLCB1c2UgYW5vdGhlciByZWxheW91dCB0byBtYWtlIHN1cmUgZXZlcnl0aGluZyBpcyBmaW5lXG4gICAgICAgICAgICAgIHRoaXMuY29tcGFjdExheW91dChmYWxzZSk7XG4gICAgICAgICAgICAgIHRoaXMuZ3JpZExheW91dFNlcnZpY2UuY2FsY3VsYXRlUmVuZGVyRGF0YSgpO1xuICAgICAgICAgICAgICB0aGlzLmdyaWRMYXlvdXRTZXJ2aWNlLmZsdXNoUmVuZGVyRGF0YSgpO1xuXG4gICAgICAgICAgICAgIHRoaXMuZ3JpZFBsYWNlaG9sZGVyU2VydmljZS5kZXN0cm95UGxhY2Vob2xkZXIoKTtcbiAgICAgICAgICAgICAgaWYgKG5ld0xheW91dCkge1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoY2xvbmVEZWVwKG5ld0xheW91dCkgYXMgR3JpZExheW91dCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==
|
|
288
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2dyaWQtbGF5b3V0L2NvbXBvbmVudHMvZ3JpZC9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvZ3JpZC1sYXlvdXQvY29tcG9uZW50cy9ncmlkL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFHTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUlOLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUVULGdCQUFnQixFQUNoQixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQ0wsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixVQUFVLEVBQ1YsR0FBRyxFQUNILEtBQUssRUFDTCxLQUFLLEVBQ0wsVUFBVSxFQUVWLFNBQVMsRUFDVCxPQUFPLEVBQ1AsU0FBUyxFQUNULFNBQVMsR0FDVixNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEUsT0FBTyxFQUNMLGNBQWMsRUFDZCxzQkFBc0IsRUFDdEIsa0JBQWtCLEdBQ25CLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFD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QUFpQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtZQUcvQyxhQUFhO2tCQUF0QixNQUFNO1lBR0csV0FBVztrQkFBcEIsTUFBTTtZQUdHLGFBQWE7a0JBQXRCLE1BQU07WUFHRyxTQUFTO2tCQUFsQixNQUFNO1lBR0csV0FBVztrQkFBcEIsTUFBTTtZQUdHLGNBQWM7a0JBQXZCLE1BQU07WUFLRSxnQkFBZ0I7a0JBQXhCLEtBQUs7WUFDYSxpQkFBaUIsTUFLcEMsRUFBRTtrQkFERCxLQUFLO1lBSU4sZ0JBQWdCO2tCQURmLEtBQUs7WUFJTixXQUFXO2tCQURWLEtBQUs7WUFJTixXQUFXO2tCQURWLEtBQUs7WUFJTixTQUFTO2tCQURSLEtBQUs7WUFJTixJQUFJO2tCQURILEtBQUs7WUFJTixNQUFNO2tCQURMLEtBQUs7WUFJTixNQUFNO2tCQURMLEtBQUs7O2tGQTFESyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBvYnNlcnZlUmVzaXplT24gfSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudENoZWNrZWQsXG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBSZW5kZXJlcjIsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQge1xuICBjb21iaW5lTGF0ZXN0LFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZXhoYXVzdE1hcCxcbiAgbWFwLFxuICBtZXJnZSxcbiAgTkVWRVIsXG4gIE9ic2VydmFibGUsXG4gIE9ic2VydmVyLFxuICBzdGFydFdpdGgsXG4gIFN1YmplY3QsXG4gIHN3aXRjaE1hcCxcbiAgdGFrZVVudGlsLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgaXNFcXVhbCwgT2JzZXJ2YWJsZUlucHV0IH0gZnJvbSAnLi4vLi4vLi4vY29yZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7XG4gIERFRkFVTFRfR1VUVEVSLFxuICBERUZBVUxUX0xBWU9VVF9DT0xVTU5TLFxuICBERUZBVUxUX1JPV19IRUlHSFQsXG59IGZyb20gJy4uLy4uLy4uL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgR3JpZExheW91dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9ncmlkLWxheW91dC5zZXJ2aWNlJztcbmltcG9ydCB7IEdyaWRQbGFjZWhvbGRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9ncmlkLXBsYWNlaG9sZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgR3JpZENvbXBhY3RUeXBlLFxuICBEcmFnRW5kRXZlbnQsXG4gIERyYWdTdGFydEV2ZW50LFxuICBHcmlkTGF5b3V0LFxuICBHcmlkTGF5b3V0SXRlbSxcbiAgUmVzaXplU3RhcnRFdmVudCxcbiAgR3JpZENmZyxcbiAgR3JpZEl0ZW1SZW5kZXJEYXRhLFxuICBHcmlkSXRlbUNsaWVudFJlY3QsXG4gIERyYWdBY3Rpb25UeXBlLFxuICBSZXNpemVFbmRFdmVudCxcbiAgSXRlbVJlc2l6ZUV2ZW50LFxufSBmcm9tICcuLi8uLi90eXBlJztcbmltcG9ydCB7IGdldENsaWVudFJlY3RTbmFwc2hvdCB9IGZyb20gJy4uLy4uL3V0aWxzL2NsaWVudC1yZWN0LnV0aWxzJztcbmltcG9ydCB7XG4gIGNvbXBhY3RHcmlkTGF5b3V0LFxuICBnZXREcmFnUmVzaXplRXZlbnREYXRhLFxufSBmcm9tICcuLi8uLi91dGlscy9ncmlkLnV0aWxzJztcbmltcG9ydCB7IGdldE1vdXNlRW5kJCwgZ2V0TW91c2VNb3ZlJCB9IGZyb20gJy4uLy4uL3V0aWxzL21vdXNlLnV0aWxzJztcbmltcG9ydCB7IHJ1bk91dHNpZGVab25lJCB9IGZyb20gJy4uLy4uL3V0aWxzL29wZXJhdG9yJztcbmltcG9ydCB7IHNjcm9sbElmTmVhckVsZW1lbnRDbGllbnRSZWN0JCB9IGZyb20gJy4uLy4uL3V0aWxzL3Njcm9sbC51dGlscyc7XG5pbXBvcnQgeyBHcmlkSXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL2dyaWQtaXRlbXMvY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLWdyaWQtbGF5b3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbXBsYXRlLmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBzdHlsZVVybHM6IFsnLi9zdHlsZS5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtHcmlkUGxhY2Vob2xkZXJTZXJ2aWNlLCBHcmlkTGF5b3V0U2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIEdyaWRMYXlvdXRDb21wb25lbnRcbiAgaW1wbGVtZW50c1xuICAgIE9uSW5pdCxcbiAgICBPbkNoYW5nZXMsXG4gICAgQWZ0ZXJDb250ZW50Q2hlY2tlZCxcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIE9uRGVzdHJveVxue1xuICAvKiogUXVlcnkgbGlzdCBvZiBncmlkIGl0ZW1zIHRoYXQgYXJlIGJlaW5nIHJlbmRlcmVkLiAqL1xuICBAQ29udGVudENoaWxkcmVuKEdyaWRJdGVtQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIGdyaWRJdGVtczogUXVlcnlMaXN0PEdyaWRJdGVtQ29tcG9uZW50PjtcblxuICBAT3V0cHV0KCkgbGF5b3V0VXBkYXRlZDogRXZlbnRFbWl0dGVyPEdyaWRMYXlvdXQ+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPEdyaWRMYXlvdXQ+KCk7XG5cbiAgQE91dHB1dCgpIGRyYWdTdGFydGVkOiBFdmVudEVtaXR0ZXI8RHJhZ1N0YXJ0RXZlbnQ+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPERyYWdTdGFydEV2ZW50PigpO1xuXG4gIEBPdXRwdXQoKSByZXNpemVTdGFydGVkOiBFdmVudEVtaXR0ZXI8UmVzaXplU3RhcnRFdmVudD4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8UmVzaXplU3RhcnRFdmVudD4oKTtcblxuICBAT3V0cHV0KCkgZHJhZ0VuZGVkOiBFdmVudEVtaXR0ZXI8RHJhZ0VuZEV2ZW50PiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxEcmFnRW5kRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpIHJlc2l6ZUVuZGVkOiBFdmVudEVtaXR0ZXI8UmVzaXplRW5kRXZlbnQ+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPFJlc2l6ZUVuZEV2ZW50PigpO1xuXG4gIEBPdXRwdXQoKSBncmlkSXRlbVJlc2l6ZTogRXZlbnRFbWl0dGVyPEl0ZW1SZXNpemVFdmVudD4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8SXRlbVJlc2l6ZUV2ZW50PigpO1xuXG4gIC8vIFBhcmVudCBlbGVtZW50IHRoYXQgY29udGFpbnMgdGhlIHNjcm9sbC4gSWYgYW4gc3RyaW5nIGlzIHByb3ZpZGVkIGl0IHdvdWxkIHNlYXJjaCB0aGF0IGVsZW1lbnQgYnkgaWQgb24gdGhlIGRvbS5cbiAgLy8gdXNlIHRoaXMgdG8gY29tcGVuc2F0ZSBkcmFnZ2luZyBwb2ludCBhbmQgc2Nyb2xsIGRpZmZlcmVuY2VcbiAgQElucHV0KCkgc2Nyb2xsYWJsZVBhcmVudDogSFRNTEVsZW1lbnQgfCBEb2N1bWVudCB8IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBAT2JzZXJ2YWJsZUlucHV0KCkgc2Nyb2xsYWJsZVBhcmVudCQ6IE9ic2VydmFibGU8XG4gICAgSFRNTEVsZW1lbnQgfCBEb2N1bWVudCB8IHN0cmluZyB8IG51bGxcbiAgPjtcblxuICBASW5wdXQoKVxuICBpZDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHByZXZlbnRDb2xsaXNpb24gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBzY3JvbGxTcGVlZCA9IDI7XG5cbiAgQElucHV0KClcbiAgY29tcGFjdFR5cGUgPSBHcmlkQ29tcGFjdFR5cGUuVkVSVElDQUw7XG5cbiAgQElucHV0KClcbiAgcm93SGVpZ2h0OiBudW1iZXIgPSBERUZBVUxUX1JPV19IRUlHSFQ7XG5cbiAgQElucHV0KClcbiAgY29sczogbnVtYmVyID0gREVGQVVMVF9MQVlPVVRfQ09MVU1OUztcblxuICBASW5wdXQoKVxuICBsYXlvdXQ6IEdyaWRMYXlvdXQ7XG5cbiAgQElucHV0KClcbiAgZ3V0dGVyOiBudW1iZXIgPSBERUZBVUxUX0dVVFRFUjtcblxuICBwcml2YXRlIGxhc3RMYXlvdXQ6IEdyaWRMYXlvdXQ7XG5cbiAgZGVzdHJveSQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBnZXQgY29uZmlnKCk6IEdyaWRDZmcge1xuICAgIHJldHVybiB7XG4gICAgICBjb2xzOiB0aGlzLmNvbHMsXG4gICAgICByb3dIZWlnaHQ6IHRoaXMucm93SGVpZ2h0LFxuICAgICAgbGF5b3V0OiB0aGlzLmxhc3RMYXlvdXQsXG4gICAgICBwcmV2ZW50Q29sbGlzaW9uOiB0aGlzLnByZXZlbnRDb2xsaXNpb24sXG4gICAgICBndXR0ZXI6IHRoaXMuZ3V0dGVyLFxuICAgIH07XG4gIH1cblxuICBnZXQgaG9zdEVsZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHVibGljIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBncmlkUGxhY2Vob2xkZXJTZXJ2aWNlOiBHcmlkUGxhY2Vob2xkZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZ3JpZExheW91dFNlcnZpY2U6IEdyaWRMYXlvdXRTZXJ2aWNlLFxuICApIHtcbiAgICAvLyB3ZSB1c2UgdGhpcyBwYXR0ZXJuIHRvIGF2b2lkIHRvbyBtYW55IHByb3BlcnR5IHBhc3NpbmdcbiAgICB0aGlzLmdyaWRMYXlvdXRTZXJ2aWNlLnJlZ2lzdGVyR3JpZENvbXBvbmVudCh0aGlzKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIG9ic2VydmVSZXNpemVPbih0aGlzLmhvc3RFbGVtZW50KVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQkKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmdyaWRMYXlvdXRTZXJ2aWNlLmNhbGN1bGF0ZVJlbmRlckRhdGEoKTtcbiAgICAgICAgdGhpcy5ncmlkTGF5b3V0U2VydmljZS5mbHVzaFJlbmRlckRhdGEodHJ1ZSk7XG4gICAgICB9KTtcbiAgICB0aGlzLmdyaWRMYXlvdXRTZXJ2aWNlLmdyaWRSZW5kZXJIZWlnaHQkJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQkKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoaXNFcXVhbCkpXG4gICAgICAuc3Vic2NyaWJlKGhlaWdodCA9PiB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5ob3N0RWxlbWVudCwgJ2hlaWdodCcsIGAke2hlaWdodH1weGApO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxhc3RMYXlvdXRJZDogc3RyaW5nO1xuICBwcml2YXRlIG1hcmtMYXlvdXRJZENoYW5nZSA9IGZhbHNlO1xuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBsZXQgbmVlZHNDb21wYWN0TGF5b3V0ID0gZmFsc2U7XG4gICAgbGV0IG5lZWRzUmVjYWxjdWxhdGVSZW5kZXJEYXRhID0gZmFsc2U7XG4gICAgLy8gQ29tcGFjdCBsYXlvdXQgd2hlbmV2ZXIgc29tZSBkZXBlbmRlbnQgcHJvcCBjaGFuZ2VzLlxuICAgIGlmIChjaGFuZ2VzLmNvbXBhY3RUeXBlIHx8IGNoYW5nZXMuY29scyB8fCBjaGFuZ2VzLmxheW91dCB8fCBjaGFuZ2VzLmlkKSB7XG4gICAgICBuZWVkc0NvbXBhY3RMYXlvdXQgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlcy5sYXlvdXQpIHtcbiAgICAgIHRoaXMubGFzdExheW91dCA9IGNoYW5nZXMubGF5b3V0LmN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXMuaWQpIHtcbiAgICAgIGlmICh0aGlzLmxhc3RMYXlvdXRJZCAmJiB0aGlzLmxhc3RMYXlvdXRJZCAhPT0gY2hhbmdlcy5pZC5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgdGhpcy5tYXJrTGF5b3V0SWRDaGFuZ2UgPSB0cnVlO1xuICAgICAgfVxuICAgICAgdGhpcy5sYXN0TGF5b3V0SWQgPSBjaGFuZ2VzLmlkLmN1cnJlbnRWYWx1ZTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiB3ZWUgbmVlZCB0byByZWNhbGN1bGF0ZSByZW5kZXJpbmcgZGF0YS5cbiAgICBpZiAoXG4gICAgICBuZWVkc0NvbXBhY3RMYXlvdXQgfHxcbiAgICAgIGNoYW5nZXMucm93SGVpZ2h0IHx8XG4gICAgICBjaGFuZ2VzLmd1dHRlciB8fFxuICAgICAgY2hhbmdlcy5sYXlvdXRcbiAgICApIHtcbiAgICAgIG5lZWRzUmVjYWxjdWxhdGVSZW5kZXJEYXRhID0gdHJ1ZTtcbiAgICB9XG4gICAgY29uc3QgbWFya0xheW91dElkQ2hhbmdlID0gdGhpcy5tYXJrTGF5b3V0SWRDaGFuZ2U7XG4gICAgaWYgKG5lZWRzUmVjYWxjdWxhdGVSZW5kZXJEYXRhKSB7XG4gICAgICAvLyBsZXQgbmdPbkNoYW5nZXMgcGFzcywgd2UgY2FuIHVzZSBpbnB1dCBwcm9wcywgYW5kIHdoZW4gcHJvcHMgY2hhbmdlLCBsZXQgZ3JpZC1jb21wb25lbnQgZGVzdHJveSBmaXJzdFxuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgaWYgKG5lZWRzQ29tcGFjdExheW91dCkge1xuICAgICAgICAgIHRoaXMuY29tcGFjdExheW91dChtYXJrTGF5b3V0SWRDaGFuZ2UpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZ3JpZExheW91dFNlcnZpY2UuY2FsY3VsYXRlUmVuZGVyRGF0YSgpO1xuICAgICAgICAvLyBEbyBub3QgbmVlZCBhbmltYXRpb24gd2hlbiB0b3RhbCBsYXlvdXQgY29uZmlnIGNoYW5nZSwgd2hpY2ggaXMgZGFzaElkIGNoYW5naW5nXG4gICAgICAgIHRoaXMuZ3JpZExheW91dFNlcnZpY2UuZmx1c2hSZW5kZXJEYXRhKCFtYXJrTGF5b3V0SWRDaGFuZ2UpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMuaW5pdFN1YnNjcmlwdGlvbnMoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpIHtcbiAgICB0aGlzLmdyaWRMYXlvdXRTZXJ2aWNlLmNhbGN1bGF0ZVJlbmRlckRhdGEoKTtcbiAgICB0aGlzLmdyaWRMYXlvdXRTZXJ2aWNlLmZsdXNoUmVuZGVyRGF0YSghdGhpcy5tYXJrTGF5b3V0SWRDaGFuZ2UpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95JCQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICByZWZyZXNoTGF5b3V0KGRhc2hJZENoYW5nZTogYm9vbGVhbikge1xuICAgIHJldHVybiBkYXNoSWRDaGFuZ2VcbiAgICAgID8gdGhpcy5sYXN0TGF5b3V0XG4gICAgICA6IHRoaXMubGFzdExheW91dD8ubWFwKGxheW91dEl0ZW0gPT4gKHtcbiAgICAgICAgICAuLi5sYXlvdXRJdGVtLFxuICAgICAgICAgIC4uLnRoaXMuZ3JpZExheW91dFNlcnZpY2UubGFzdExheW91dD8uZmluZChcbiAgICAgICAgICAgICh7IGlkIH0pID0+IGxheW91dEl0ZW0uaWQgPT09IGlkLFxuICAgICAgICAgICksXG4gICAgICAgIH0pKTtcbiAgfVxuXG4gIGNvbXBhY3RMYXlvdXQoZGFzaElkQ2hhbmdlOiBib29sZWFuKSB7XG4gICAgdGhpcy5sYXN0TGF5b3V0ID0gY29tcGFjdEdyaWRMYXlvdXQoXG4gICAgICB0aGlzLnJlZnJlc2hMYXlvdXQoZGFzaElkQ2hhbmdlKSxcbiAgICAgIHRoaXMuY29tcGFjdFR5cGUsXG4gICAgICB0aGlzLmNvbHMsXG4gICAgKTtcbiAgfVxuXG4gIGdldEl0ZW1SZW5kZXJEYXRhKGl0ZW1JZDogc3RyaW5nKTogR3JpZEl0ZW1SZW5kZXJEYXRhIHtcbiAgICByZXR1cm4gdGhpcy5ncmlkTGF5b3V0U2VydmljZS5ncmlkSXRlbXNSZW5kZXJEYXRhW2l0ZW1JZF07XG4gIH1cblxuICBwcml2YXRlIGluaXRTdWJzY3JpcHRpb25zKCkge1xuICAgIHRoaXMuZ3JpZEl0ZW1zLmNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgY29uc3QgbWFya0xheW91dElkQ2hhbmdlID0gdGhpcy5tYXJrTGF5b3V0SWRDaGFuZ2U7XG4gICAgICAvLyBuZWVkIHRoaXMgUmFmIHRvIG1ha2UgdGhpcy5sYXN0TGF5b3V0IHRvIGJlIGxhc3RcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIHRoaXMubWFya0xheW91dElkQ2hhbmdlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY29tcGFjdExheW91dCghbWFya0xheW91dElkQ2hhbmdlKTtcbiAgICAgICAgdGhpcy5ncmlkTGF5b3V0U2VydmljZS5jYWxjdWxhdGVSZW5kZXJEYXRhKCk7XG4gICAgICAgIHRoaXMuZ3JpZExheW91dFNlcnZpY2UuZmx1c2hSZW5kZXJEYXRhKCFtYXJrTGF5b3V0SWRDaGFuZ2UpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gICAgdGhpcy5ncmlkSXRlbXMuY2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkJCksXG4gICAgICAgIHN0YXJ0V2l0aCh0aGlzLmdyaWRJdGVtcyksXG4gICAgICAgIHN3aXRjaE1hcCgoZ3JpZEl0ZW1zOiBRdWVyeUxpc3Q8R3JpZEl0ZW1Db21wb25lbnQ+KSA9PlxuICAgICAgICAgIG1lcmdlKFxuICAgICAgICAgICAgLi4uZ3JpZEl0ZW1zLm1hcChncmlkSXRlbSA9PlxuICAgICAgICAgICAgICBncmlkSXRlbS5kcmFnU3RhcnQkLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKGV2ZW50ID0+ICh7XG4gICAgICAgICAgICAgICAgICBldmVudCxcbiAgICAgICAgICAgICAgICAgIGdyaWRJdGVtLFxuICAgICAgICAgICAgICAgICAgdHlwZTogJ2RyYWcnIGFzIERyYWdBY3Rpb25UeXBlLFxuICAgICAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICAuLi5ncmlkSXRlbXMubWFwKGdyaWRJdGVtID0+XG4gICAgICAgICAgICAgIGdyaWRJdGVtLnJlc2l6ZVN0YXJ0JC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChldmVudCA9PiAoe1xuICAgICAgICAgICAgICAgICAgZXZlbnQsXG4gICAgICAgICAgICAgICAgICBncmlkSXRlbSxcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdyZXNpemUnIGFzIERyYWdBY3Rpb25UeXBlLFxuICAgICAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKS5waXBlKFxuICAgICAgICAgICAgZXhoYXVzdE1hcCgoeyBldmVudCwgZ3JpZEl0ZW0sIHR5cGUgfSkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT5cbiAgICAgICAgICAgICAgICAodHlwZSA9PT0gJ2RyYWcnID8gdGhpcy5kcmFnU3RhcnRlZCA6IHRoaXMucmVzaXplU3RhcnRlZCkuZW1pdChcbiAgICAgICAgICAgICAgICAgIGdldERyYWdSZXNpemVFdmVudERhdGEoZ3JpZEl0ZW0sIHRoaXMubGFzdExheW91dCksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlQWN0aW9uJChncmlkSXRlbSwgZXZlbnQsIHR5cGUpLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKGxheW91dCA9PiAoeyBsYXlvdXQsIGdyaWRJdGVtLCB0eXBlIH0pKSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh7IGxheW91dCwgZ3JpZEl0ZW0sIHR5cGUgfSkgPT4ge1xuICAgICAgICB0aGlzLmxhc3RMYXlvdXQgPSBsYXlvdXQ7XG4gICAgICAgICh0eXBlID09PSAnZHJhZycgPyB0aGlzLmRyYWdFbmRlZCA6IHRoaXMucmVzaXplRW5kZWQpLmVtaXQoXG4gICAgICAgICAgZ2V0RHJhZ1Jlc2l6ZUV2ZW50RGF0YShncmlkSXRlbSwgbGF5b3V0KSxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5sYXlvdXRVcGRhdGVkLmVtaXQobGF5b3V0KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVBY3Rpb24kKFxuICAgIGdyaWRJdGVtOiBHcmlkSXRlbUNvbXBvbmVudCxcbiAgICBwb2ludGVyRG93bkV2ZW50OiBNb3VzZUV2ZW50LFxuICAgIHR5cGU6IERyYWdBY3Rpb25UeXBlLFxuICApOiBPYnNlcnZhYmxlPEdyaWRMYXlvdXQ+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8R3JpZExheW91dD4oKG9ic2VydmVyOiBPYnNlcnZlcjxHcmlkTGF5b3V0PikgPT4ge1xuICAgICAgLy8gUmV0cmlldmUgZ3JpZCAocGFyZW50KSBhbmQgZ3JpZEl0ZW0gKGRyYWdnZWRFbGVtKSBjbGllbnQgcmVjdHMuXG4gICAgICBjb25zdCBncmlkRWxlbUNsaWVudFJlY3RTbmFwc2hvdDogR3JpZEl0ZW1DbGllbnRSZWN0ID1cbiAgICAgICAgZ2V0Q2xpZW50UmVjdFNuYXBzaG90KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KTtcbiAgICAgIGNvbnN0IGRyYWdFbGVtQ2xpZW50UmVjdFNuYXBzaG90OiBHcmlkSXRlbUNsaWVudFJlY3QgPVxuICAgICAgICBnZXRDbGllbnRSZWN0U25hcHNob3QoZ3JpZEl0ZW0uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KTtcblxuICAgICAgY29uc3Qgc2Nyb2xsYWJsZVBhcmVudCA9XG4gICAgICAgIHR5cGVvZiB0aGlzLnNjcm9sbGFibGVQYXJlbnQgPT09ICdzdHJpbmcnXG4gICAgICAgICAgPyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRoaXMuc2Nyb2xsYWJsZVBhcmVudClcbiAgICAgICAgICA6IHRoaXMuc2Nyb2xsYWJsZVBhcmVudDtcblxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhcbiAgICAgICAgZ3JpZEl0ZW0uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnbm8tdHJhbnNpdGlvbnMnLFxuICAgICAgKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoXG4gICAgICAgIGdyaWRJdGVtLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2dyaWQtaXRlbS1kcmFnZ2luZycsXG4gICAgICApO1xuXG4gICAgICBjb25zdCBwbGFjZWhvbGRlckNsaWVudFJlY3Q6IEdyaWRJdGVtQ2xpZW50UmVjdCA9IHtcbiAgICAgICAgLi4uZHJhZ0VsZW1DbGllbnRSZWN0U25hcHNob3QsXG4gICAgICAgIGxlZnQ6IGRyYWdFbGVtQ2xpZW50UmVjdFNuYXBzaG90LmxlZnQgLSBncmlkRWxlbUNsaWVudFJlY3RTbmFwc2hvdC5sZWZ0LFxuICAgICAgICB0b3A6IGRyYWdFbGVtQ2xpZW50UmVjdFNuYXBzaG90LnRvcCAtIGdyaWRFbGVtQ2xpZW50UmVjdFNuYXBzaG90LnRvcCxcbiAgICAgIH07XG4gICAgICB0aGlzLmdyaWRQbGFjZWhvbGRlclNlcnZpY2UuY3JlYXRlUGxhY2Vob2xkZXJFbGVtZW50KFxuICAgICAgICBwbGFjZWhvbGRlckNsaWVudFJlY3QsXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZixcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLFxuICAgICAgICBncmlkSXRlbS5wbGFjZWhvbGRlcixcbiAgICAgICk7XG5cbiAgICAgIGxldCBuZXdMYXlvdXQ6IEdyaWRMYXlvdXRJdGVtW107XG5cbiAgICAgIChzY3JvbGxhYmxlUGFyZW50XG4gICAgICAgID8gZ2V0TW91c2VNb3ZlJCh0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkucGlwZShcbiAgICAgICAgICAgIHJ1bk91dHNpZGVab25lJCh0aGlzLm5nWm9uZSksXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpLFxuICAgICAgICAgICAgc2Nyb2xsSWZOZWFyRWxlbWVudENsaWVudFJlY3QkKHNjcm9sbGFibGVQYXJlbnQsIHtcbiAgICAgICAgICAgICAgc2Nyb2xsU3RlcDogdGhpcy5zY3JvbGxTcGVlZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIClcbiAgICAgICAgOiBORVZFUlxuICAgICAgKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwoZ2V0TW91c2VFbmQkKHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICAgIG1lcmdlKFxuICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICBnZXRNb3VzZU1vdmUkKHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSxcbiAgICAgICAgICB0aGlzLmdyaWRMYXlvdXRTZXJ2aWNlLnNjcm9sbERpZmZlcmVuY2UkLFxuICAgICAgICBdKSxcbiAgICAgIClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgcnVuT3V0c2lkZVpvbmUkKHRoaXMubmdab25lKSxcbiAgICAgICAgICB0YWtlVW50aWwoZ2V0TW91c2VFbmQkKHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSksXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQkKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgIChbcG9pbnRlckRyYWdFdmVudCwgc2Nyb2xsRGlmZmVyZW5jZV06IFtcbiAgICAgICAgICAgIE1vdXNlRXZlbnQsXG4gICAgICAgICAgICB7IHRvcDogbnVtYmVyOyBsZWZ0OiBudW1iZXIgfSxcbiAgICAgICAgICBdKSA9PiB7XG4gICAgICAgICAgICBwb2ludGVyRHJhZ0V2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBjb25zdCBncmlkSXRlbUlkID0gZ3JpZEl0ZW0uaWQ7XG4gICAgICAgICAgICBjb25zdCB7IGdyaWREYXRhLCBsYXlvdXQgfSA9XG4gICAgICAgICAgICAgIHRoaXMuZ3JpZExheW91dFNlcnZpY2UubGF5b3V0V2hlbkFjdGlvbihcbiAgICAgICAgICAgICAgICBncmlkSXRlbSxcbiAgICAgICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHBvaW50ZXJEb3duRXZlbnQsXG4gICAgICAgICAgICAgICAgICBwb2ludGVyRHJhZ0V2ZW50LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2Nyb2xsRGlmZmVyZW5jZSxcbiAgICAgICAgICAgICAgICBkcmFnRWxlbUNsaWVudFJlY3RTbmFwc2hvdCxcbiAgICAgICAgICAgICAgICBncmlkRWxlbUNsaWVudFJlY3RTbmFwc2hvdCxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuZ3JpZExheW91dFNlcnZpY2UuZmx1c2hSZW5kZXJEYXRhKCk7XG4gICAgICAgICAgICBuZXdMYXlvdXQgPSBjbG9uZURlZXAobGF5b3V0KTtcblxuICAgICAgICAgICAgY29uc3QgbmV3SXRlbUdyaWREYXRhID0geyAuLi5ncmlkRGF0YVtncmlkSXRlbUlkXSB9O1xuXG4gICAgICAgICAgICAvLyBwdXQgdGhlIGdyaWQgbm9ybWFsaXplIHBvc2l0aW9uIHRvIHRoZSBwbGFjZWhvbGRlciBlbGVtZW50XG4gICAgICAgICAgICB0aGlzLmdyaWRQbGFjZWhvbGRlclNlcnZpY2UudXBkYXRlUGxhY2VIb2xkZXIobmV3SXRlbUdyaWREYXRhKTtcblxuICAgICAgICAgICAgdHlwZSA9PT0gJ3Jlc2l6ZScgJiZcbiAgICAgICAgICAgICAgdGhpcy5ncmlkSXRlbVJlc2l6ZS5lbWl0KHtcbiAgICAgICAgICAgICAgICB3aWR0aDogbmV3SXRlbUdyaWREYXRhLndpZHRoLFxuICAgICAgICAgICAgICAgIGhlaWdodDogbmV3SXRlbUdyaWREYXRhLmhlaWdodCxcbiAgICAgICAgICAgICAgICBncmlkSXRlbVJlZjogZ2V0RHJhZ1Jlc2l6ZUV2ZW50RGF0YShncmlkSXRlbSwgbmV3TGF5b3V0KVxuICAgICAgICAgICAgICAgICAgLmdyaWRJdGVtUmVmLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yID0+IG9ic2VydmVyLmVycm9yKGVycm9yKSxcbiAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKFxuICAgICAgICAgICAgICAgIGdyaWRJdGVtLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAnbm8tdHJhbnNpdGlvbnMnLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKFxuICAgICAgICAgICAgICAgIGdyaWRJdGVtLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAnZ3JpZC1pdGVtLWRyYWdnaW5nJyxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgLy8gd2hlbiBhY3Rpb24gaXMgZG9uZSwgdXNlIGFub3RoZXIgcmVsYXlvdXQgdG8gbWFrZSBzdXJlIGV2ZXJ5dGhpbmcgaXMgZmluZVxuICAgICAgICAgICAgICB0aGlzLmNvbXBhY3RMYXlvdXQoZmFsc2UpO1xuICAgICAgICAgICAgICB0aGlzLmdyaWRMYXlvdXRTZXJ2aWNlLmNhbGN1bGF0ZVJlbmRlckRhdGEoKTtcbiAgICAgICAgICAgICAgdGhpcy5ncmlkTGF5b3V0U2VydmljZS5mbHVzaFJlbmRlckRhdGEoKTtcblxuICAgICAgICAgICAgICB0aGlzLmdyaWRQbGFjZWhvbGRlclNlcnZpY2UuZGVzdHJveVBsYWNlaG9sZGVyKCk7XG4gICAgICAgICAgICAgIGlmIChuZXdMYXlvdXQpIHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KGNsb25lRGVlcChuZXdMYXlvdXQpIGFzIEdyaWRMYXlvdXQpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgIH0pO1xuICB9XG59XG4iLCI8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
|
|
@@ -2,7 +2,7 @@ import { __decorate, __metadata } from "tslib";
|
|
|
2
2
|
import { DOCUMENT } from '@angular/common';
|
|
3
3
|
import { ChangeDetectionStrategy, Component, ContentChild, ContentChildren, ElementRef, EventEmitter, Inject, Input, NgZone, Output, QueryList, Renderer2, ViewChild, } from '@angular/core';
|
|
4
4
|
import { NEVER, Observable, startWith, switchMap, merge, iif, exhaustMap, take, map, Subject, takeUntil, filter, distinctUntilChanged, } from 'rxjs';
|
|
5
|
-
import { isEqual, ObservableInput } from '../../../public-api';
|
|
5
|
+
import { isEqual, ObservableInput } from '../../../core/public-api';
|
|
6
6
|
import { GRID_DRAG_HANDLER, } from '../../directives/drag-handler.directive';
|
|
7
7
|
import { GridItemPlaceholderDirective, GRID_ITEM_PLACEHOLDER, } from '../../directives/placeholder.directive';
|
|
8
8
|
import { GRID_REMOVE_HANDLER, } from '../../directives/remove-handler.directive';
|
|
@@ -226,4 +226,4 @@ __decorate([
|
|
|
226
226
|
type: Output
|
|
227
227
|
}] }); })();
|
|
228
228
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(GridItemComponent, { className: "GridItemComponent" }); })();
|
|
229
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2dyaWQtbGF5b3V0L2NvbXBvbmVudHMvZ3JpZC1pdGVtcy9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvZ3JpZC1sYXlvdXQvY29tcG9uZW50cy9ncmlkLWl0ZW1zL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBR04sTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxLQUFLLEVBQ0wsVUFBVSxFQUNWLFNBQVMsRUFDVCxTQUFTLEVBQ1QsS0FBSyxFQUNMLEdBQUcsRUFDSCxVQUFVLEVBQ1YsSUFBSSxFQUNKLEdBQUcsRUFDSCxPQUFPLEVBQ1AsU0FBUyxFQUNULE1BQU0sRUFDTixvQkFBb0IsR0FDckIsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9ELE9BQU8sRUFFTCxpQkFBaUIsR0FDbEIsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRCxPQUFPLEVBQ0wsNEJBQTRCLEVBQzVCLHFCQUFxQixHQUN0QixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFFTCxtQkFBbUIsR0FDcEIsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRCxPQUFPLEVBRUwsbUJBQW1CLEdBQ3BCLE1BQU0sMkNBQTJDLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFp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QUFFO1lBSTFDLGFBQWE7a0JBRDdCLGVBQWU7bUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO1lBSTNELFVBQVU7a0JBRFQsU0FBUzttQkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7WUFJM0QsVUFBVTtrQkFEVCxTQUFTO21CQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUkzRCxXQUFXO2tCQURWLFlBQVk7bUJBQUMscUJBQXFCO1lBRzFCLElBQUk7a0JBQVosS0FBSztZQUNHLElBQUk7a0JBQVosS0FBSztZQUNHLElBQUk7a0JBQVosS0FBSztZQUNHLElBQUk7a0JBQVosS0FBSztZQUlOLFVBQVU7a0JBRFQsS0FBSztZQUtOLGtCQUFrQjtrQkFEakIsS0FBSztZQUtOLFNBQVM7a0JBRFIsS0FBSztZQUlOLFVBQVUsTUFJVixTQUFTO2tCQURSLEtBQUs7WUFJTixVQUFVLE1BR1YsU0FBUztrQkFEUixLQUFLO1lBSU4sVUFBVSxNQW1CVixNQUFNO2tCQURMLE1BQU07O2tGQXZFSSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgTkVWRVIsXG4gIE9ic2VydmFibGUsXG4gIHN0YXJ0V2l0aCxcbiAgc3dpdGNoTWFwLFxuICBtZXJnZSxcbiAgaWlmLFxuICBleGhhdXN0TWFwLFxuICB0YWtlLFxuICBtYXAsXG4gIFN1YmplY3QsXG4gIHRha2VVbnRpbCxcbiAgZmlsdGVyLFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IGlzRXF1YWwsIE9ic2VydmFibGVJbnB1dCB9IGZyb20gJy4uLy4uLy4uL3B1YmxpYy1hcGknO1xuaW1wb3J0IHtcbiAgR3JpZERyYWdIYW5kbGVyRGlyZWN0aXZlLFxuICBHUklEX0RSQUdfSEFORExFUixcbn0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9kcmFnLWhhbmRsZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7XG4gIEdyaWRJdGVtUGxhY2Vob2xkZXJEaXJlY3RpdmUsXG4gIEdSSURfSVRFTV9QTEFDRUhPTERFUixcbn0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9wbGFjZWhvbGRlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHtcbiAgR3JpZFJlbW92ZUhhbmRsZXJEaXJlY3RpdmUsXG4gIEdSSURfUkVNT1ZFX0hBTkRMRVIsXG59IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvcmVtb3ZlLWhhbmRsZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7XG4gIEdyaWRSZXNpemVIYW5kbGVyRGlyZWN0aXZlLFxuICBHUklEX1JFU0laRV9IQU5ETEVSLFxufSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3Jlc2l6ZS1oYW5kbGVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBHcmlkTGF5b3V0U2VydmljZSB9IGZyb20gJy4uLy4uL2dyaWQtbGF5b3V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgcGFyc2VSZW5kZXJJdGVtVG9QaXhlbHMgfSBmcm9tICcuLi8uLi91dGlscy9ncmlkLnV0aWxzJztcbmltcG9ydCB7XG4gIGFjY2Vzc1BvaW50ZXJNb3ZlVGhyZXNob2xkLFxuICBnZXRNb3VzZUNsaWNrJCxcbiAgZ2V0TW91c2VEb3duJCxcbiAgZ2V0TW91c2VFbmQkLFxuICBnZXRNb3VzZU1vdmUkLFxufSBmcm9tICcuLi8uLi91dGlscy9tb3VzZS51dGlscyc7XG5pbXBvcnQgeyBydW5PdXRzaWRlWm9uZSQgfSBmcm9tICcuLi8uLi91dGlscy9vcGVyYXRvcic7XG5cbmNvbnN0IEFOSU1BVElPTl9EVVJBVElPTl9NUyA9IDI1MDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLWdyaWQtaXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZW1wbGF0ZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3R5bGUuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgR3JpZEl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIEBJbnB1dCgpXG4gIGlkITogc3RyaW5nO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oR1JJRF9EUkFHX0hBTkRMRVIsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgcHJpdmF0ZSByZWFkb25seSBkcmFnSGFuZGxlczogUXVlcnlMaXN0PEdyaWREcmFnSGFuZGxlckRpcmVjdGl2ZT47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihHUklEX1JFU0laRV9IQU5ETEVSLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzaXplSGFuZGxlczogUXVlcnlMaXN0PEdyaWRSZXNpemVIYW5kbGVyRGlyZWN0aXZlPjtcblxuICBAQ29udGVudENoaWxkcmVuKEdSSURfUkVNT1ZFX0hBTkRMRVIsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgcHJpdmF0ZSByZWFkb25seSByZW1vdmVIYW5kbGVzOiBRdWVyeUxpc3Q8R3JpZFJlbW92ZUhhbmRsZXJEaXJlY3RpdmU+O1xuXG4gIEBWaWV3Q2hpbGQoJ3Jlc2l6ZUVsZW0nLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogRWxlbWVudFJlZiB9KVxuICByZXNpemVFbGVtOiBFbGVtZW50UmVmO1xuXG4gIEBWaWV3Q2hpbGQoJ3JlbW92ZUVsZW0nLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogRWxlbWVudFJlZiB9KVxuICByZW1vdmVFbGVtOiBFbGVtZW50UmVmO1xuXG4gIEBDb250ZW50Q2hpbGQoR1JJRF9JVEVNX1BMQUNFSE9MREVSKVxuICBwbGFjZWhvbGRlcjogR3JpZEl0ZW1QbGFjZWhvbGRlckRpcmVjdGl2ZTtcblxuICBASW5wdXQoKSBtaW5XPzogbnVtYmVyO1xuICBASW5wdXQoKSBtaW5IPzogbnVtYmVyO1xuICBASW5wdXQoKSBtYXhXPzogbnVtYmVyO1xuICBASW5wdXQoKSBtYXhIPzogbnVtYmVyO1xuXG4gIC8qKiBDU1MgdHJhbnNpdGlvbiBzdHlsZSAqL1xuICBASW5wdXQoKVxuICB0cmFuc2l0aW9uID0gYHRyYW5zZm9ybSAke0FOSU1BVElPTl9EVVJBVElPTl9NU31tcyBlYXNlLCB3aWR0aCAke0FOSU1BVElPTl9EVVJBVElPTl9NU31tcyBlYXNlLCBoZWlnaHQgJHtBTklNQVRJT05fRFVSQVRJT05fTVN9bXMgZWFzZWA7XG5cbiAgLyoqIE1pbmltdW0gYW1vdW50IG9mIHBpeGVscyB0aGF0IHRoZSB1c2VyIHNob3VsZCBtb3ZlIGJlZm9yZSBpdCBzdGFydHMgdGhlIGRyYWcgc2VxdWVuY2UuICovXG4gIEBJbnB1dCgpXG4gIGRyYWdTdGFydFRocmVzaG9sZCA9IDA7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGl0ZW0gaXMgZHJhZ2dhYmxlIG9yIG5vdC4gRGVmYXVsdHMgdG8gdHJ1ZS4gKi9cbiAgQElucHV0KClcbiAgZHJhZ2dhYmxlID0gdHJ1ZTtcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgZHJhZ2dhYmxlJCE6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGl0ZW0gaXMgcmVzaXphYmxlIG9yIG5vdC4gRGVmYXVsdHMgdG8gdHJ1ZS4gKi9cbiAgQElucHV0KClcbiAgcmVzaXphYmxlID0gdHJ1ZTtcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgcmVzaXphYmxlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBASW5wdXQoKVxuICByZW1vdmFibGUgPSB0cnVlO1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICByZW1vdmFibGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIGRlc3Ryb3kkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkcmFnU3RhcnRTdWJqZWN0ID0gbmV3IFN1YmplY3Q8TW91c2VFdmVudD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSByZXNpemVTdGFydFN1YmplY3QgPSBuZXcgU3ViamVjdDxNb3VzZUV2ZW50PigpO1xuXG4gIGRyYWdTdGFydCQgPSB0aGlzLmRyYWdTdGFydFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIHJlc2l6ZVN0YXJ0JCA9IHRoaXMucmVzaXplU3RhcnRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGF5b3V0U2VydmljZTogR3JpZExheW91dFNlcnZpY2UsXG4gICkge31cblxuICBAT3V0cHV0KClcbiAgcmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubGF5b3V0U2VydmljZS5ncmlkUmVuZGVySXRlbXNEYXRhJCRcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHsgZGF0YSwgYW5pbWF0aW9uIH0pID0+ICh7IGRhdGE6IGRhdGE/Llt0aGlzLmlkXSwgYW5pbWF0aW9uIH0pKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IGlzRXF1YWwoYS5kYXRhLCBiLmRhdGEpKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHsgZGF0YSwgYW5pbWF0aW9uIH0pID0+IHtcbiAgICAgICAgdGhpcy5zZXRTdHlsZXMocGFyc2VSZW5kZXJJdGVtVG9QaXhlbHMoZGF0YSksIGFuaW1hdGlvbik7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLnNldHVwRHJhZ1N0YXJ0TGlzdGVuZXIoKTtcbiAgICB0aGlzLnNldHVwUmVzaXplU3RhcnRMaXN0ZW5lcigpO1xuICAgIHRoaXMuc2V0dXBSZW1vdmVMaXN0ZW5lcigpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95JCQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBzZXRTdHlsZXMoXG4gICAge1xuICAgICAgdG9wLFxuICAgICAgbGVmdCxcbiAgICAgIHdpZHRoLFxuICAgICAgaGVpZ2h0LFxuICAgIH06IHtcbiAgICAgIHRvcDogc3RyaW5nO1xuICAgICAgbGVmdDogc3RyaW5nO1xuICAgICAgd2lkdGg/OiBzdHJpbmc7XG4gICAgICBoZWlnaHQ/OiBzdHJpbmc7XG4gICAgfSxcbiAgICBhbmltYXRpb246IGJvb2xlYW4sXG4gICkge1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICd0cmFuc2Zvcm0nLFxuICAgICAgYHRyYW5zbGF0ZVgoJHtsZWZ0fSkgdHJhbnNsYXRlWSgke3RvcH0pYCxcbiAgICApO1xuXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgJ3RyYW5zaXRpb24nLFxuICAgICAgYW5pbWF0aW9uID8gdGhpcy50cmFuc2l0aW9uIDogJ25vbmUnLFxuICAgICk7XG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdkaXNwbGF5JywgYGJsb2NrYCk7XG4gICAgICBpZiAod2lkdGggIT0gbnVsbCkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnd2lkdGgnLCB3aWR0aCk7XG4gICAgICB9XG4gICAgICBpZiAoaGVpZ2h0ICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGhlaWdodCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldHVwRHJhZ1N0YXJ0TGlzdGVuZXIoKSB7XG4gICAgY29uc3QgZG9jdW1lbnQgPSB0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgICB0aGlzLmRyYWdnYWJsZSRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpLFxuICAgICAgICBzdGFydFdpdGgodGhpcy5kcmFnZ2FibGUpLFxuICAgICAgICBzd2l0Y2hNYXAoZHJhZ2dhYmxlID0+IHtcbiAgICAgICAgICBpZiAoIWRyYWdnYWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuIE5FVkVSO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdGhpcy5kcmFnSGFuZGxlcy5jaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgodGhpcy5kcmFnSGFuZGxlcyksXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKGRyYWdIYW5kbGVzOiBRdWVyeUxpc3Q8R3JpZERyYWdIYW5kbGVyRGlyZWN0aXZlPikgPT5cbiAgICAgICAgICAgICAgaWlmKFxuICAgICAgICAgICAgICAgICgpID0+IGRyYWdIYW5kbGVzLmxlbmd0aCA+IDAsXG4gICAgICAgICAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgICAgICAgICAuLi5kcmFnSGFuZGxlc1xuICAgICAgICAgICAgICAgICAgICAudG9BcnJheSgpXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoZHJhZ0hhbmRsZSA9PlxuICAgICAgICAgICAgICAgICAgICAgIGdldE1vdXNlRG93biQoZHJhZ0hhbmRsZS5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpLFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgZ2V0TW91c2VEb3duJCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCksXG4gICAgICAgICAgICAgICkucGlwZShcbiAgICAgICAgICAgICAgICBleGhhdXN0TWFwKHN0YXJ0RXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgLy8gUHJldmVudCBicm93c2VyIGRlZmF1bHQgZHJhZy9kcm9wIGFjdGlvbiwgd2UgaGFuZGxlIGFsbCBzY2VuZXNcbiAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgc3RhcnRFdmVudC50YXJnZXQgJiZcbiAgICAgICAgICAgICAgICAgICAgKHN0YXJ0RXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5kcmFnZ2FibGUgJiZcbiAgICAgICAgICAgICAgICAgICAgc3RhcnRFdmVudC50eXBlID09PSAnbW91c2Vkb3duJ1xuICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0RXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgc3RhcnRFdmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgcmV0dXJuIGdldE1vdXNlTW92ZSQodGhpcy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbChnZXRNb3VzZUVuZCQoZG9jdW1lbnQpKSxcbiAgICAgICAgICAgICAgICAgICAgcnVuT3V0c2lkZVpvbmUkKHRoaXMubmdab25lKSxcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKG1vdmVFdmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgbW92ZUV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjY2Vzc1BvaW50ZXJNb3ZlVGhyZXNob2xkKFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRFdmVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vdmVFdmVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZHJhZ1N0YXJ0VGhyZXNob2xkLFxuICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgICAgICAgICBtYXAoKCkgPT4gc3RhcnRFdmVudCksXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUodGhpcy5kcmFnU3RhcnRTdWJqZWN0KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBSZW1vdmVMaXN0ZW5lcigpIHtcbiAgICB0aGlzLnJlbW92YWJsZSRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpLFxuICAgICAgICBzdGFydFdpdGgodGhpcy5yZW1vdmFibGUpLFxuICAgICAgICBzd2l0Y2hNYXAocmVtb3ZhYmxlID0+IHtcbiAgICAgICAgICBpZiAoIXJlbW92YWJsZSkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgICAgICAgdGhpcy5yZW1vdmVFbGVtLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICdkaXNwbGF5JyxcbiAgICAgICAgICAgICAgJ25vbmUnLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiBORVZFUjtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRoaXMucmVtb3ZlSGFuZGxlcy5jaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgodGhpcy5yZW1vdmVIYW5kbGVzKSxcbiAgICAgICAgICAgIHN3aXRjaE1hcChcbiAgICAgICAgICAgICAgKHJlbW92ZUhhbmRsZXM6IFF1ZXJ5TGlzdDxHcmlkUmVtb3ZlSGFuZGxlckRpcmVjdGl2ZT4pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVtb3ZlSGFuZGxlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZUVsZW0ubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgJ2Rpc3BsYXknLFxuICAgICAgICAgICAgICAgICAgICAnbm9uZScsXG4gICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICByZXR1cm4gbWVyZ2UoXG4gICAgICAgICAgICAgICAgICAgIC4uLnJlbW92ZUhhbmRsZXNcbiAgICAgICAgICAgICAgICAgICAgICAudG9BcnJheSgpXG4gICAgICAgICAgICAgICAgICAgICAgLm1hcChyZW1vdmVIYW5kbGUgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGdldE1vdXNlQ2xpY2skKHJlbW92ZUhhbmRsZS5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpLFxuICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVFbGVtLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAnZGlzcGxheScsXG4gICAgICAgICAgICAgICAgICAnYmxvY2snLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldE1vdXNlRG93biQodGhpcy5yZW1vdmVFbGVtLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoZXZ0ID0+IHtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMucmVtb3ZlLmVtaXQodGhpcy5pZCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBSZXNpemVTdGFydExpc3RlbmVyKCkge1xuICAgIHRoaXMucmVzaXphYmxlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkJCksXG4gICAgICAgIHN0YXJ0V2l0aCh0aGlzLnJlc2l6YWJsZSksXG4gICAgICAgIHN3aXRjaE1hcChyZXNpemFibGUgPT4ge1xuICAgICAgICAgIGlmICghcmVzaXphYmxlKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICAgICAgICB0aGlzLnJlc2l6ZUVsZW0ubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgJ2Rpc3BsYXknLFxuICAgICAgICAgICAgICAnbm9uZScsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuIE5FVkVSO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdGhpcy5yZXNpemVIYW5kbGVzLmNoYW5nZXMucGlwZShcbiAgICAgICAgICAgIHN0YXJ0V2l0aCh0aGlzLnJlc2l6ZUhhbmRsZXMpLFxuICAgICAgICAgICAgc3dpdGNoTWFwKFxuICAgICAgICAgICAgICAocmVzaXplSGFuZGxlczogUXVlcnlMaXN0PEdyaWRSZXNpemVIYW5kbGVyRGlyZWN0aXZlPikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyZXNpemVIYW5kbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzaXplRWxlbS5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICAnZGlzcGxheScsXG4gICAgICAgICAgICAgICAgICAgICdub25lJyxcbiAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgIHJldHVybiBtZXJnZShcbiAgICAgICAgICAgICAgICAgICAgLi4ucmVzaXplSGFuZGxlc1xuICAgICAgICAgICAgICAgICAgICAgIC50b0FycmF5KClcbiAgICAgICAgICAgICAgICAgICAgICAubWFwKHJlc2l6ZUhhbmRsZSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TW91c2VEb3duJChyZXNpemVIYW5kbGUuZWxlbWVudC5uYXRpdmVFbGVtZW50KSxcbiAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgICAgICAgICAgIHRoaXMucmVzaXplRWxlbS5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgJ2Rpc3BsYXknLFxuICAgICAgICAgICAgICAgICAgJ2Jsb2NrJyxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXRNb3VzZURvd24kKHRoaXMucmVzaXplRWxlbS5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHRoaXMucmVzaXplU3RhcnRTdWJqZWN0KTtcbiAgfVxufVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPGRpdlxuICAjcmVzaXplRWxlbVxuICBjbGFzcz1cImdyaWQtaXRlbS1kZWZhdWx0LXJlc2l6ZS1pY29uXCJcbj48L2Rpdj5cbjxkaXZcbiAgI3JlbW92ZUVsZW1cbiAgY2xhc3M9XCJncmlkLWl0ZW0tZGVmYXVsdC1yZW1vdmVcIlxuPlxuICA8YXVpLWljb24gaWNvbj1cInhtYXJrXCI+PC9hdWktaWNvbj5cbjwvZGl2PlxuIl19
|
|
229
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2dyaWQtbGF5b3V0L2NvbXBvbmVudHMvZ3JpZC1pdGVtcy9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvZ3JpZC1sYXlvdXQvY29tcG9uZW50cy9ncmlkLWl0ZW1zL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBR04sTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxLQUFLLEVBQ0wsVUFBVSxFQUNWLFNBQVMsRUFDVCxTQUFTLEVBQ1QsS0FBSyxFQUNMLEdBQUcsRUFDSCxVQUFVLEVBQ1YsSUFBSSxFQUNKLEdBQUcsRUFDSCxPQUFPLEVBQ1AsU0FBUyxFQUNULE1BQU0sRUFDTixvQkFBb0IsR0FDckIsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BFLE9BQU8sRUFFTCxpQkFBaUIsR0FDbEIsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRCxPQUFPLEVBQ0wsNEJBQTRCLEVBQzVCLHFCQUFxQixHQUN0QixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFFTCxtQkFBbUIsR0FDcEIsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRCxPQUFPLEVBRUwsbUJBQW1CLEdBQ3BCLE1BQU0sMkNBQTJDLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFp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QUFFO1lBSTFDLGFBQWE7a0JBRDdCLGVBQWU7bUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO1lBSTNELFVBQVU7a0JBRFQsU0FBUzttQkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7WUFJM0QsVUFBVTtrQkFEVCxTQUFTO21CQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUkzRCxXQUFXO2tCQURWLFlBQVk7bUJBQUMscUJBQXFCO1lBRzFCLElBQUk7a0JBQVosS0FBSztZQUNHLElBQUk7a0JBQVosS0FBSztZQUNHLElBQUk7a0JBQVosS0FBSztZQUNHLElBQUk7a0JBQVosS0FBSztZQUlOLFVBQVU7a0JBRFQsS0FBSztZQU1OLGtCQUFrQjtrQkFEakIsS0FBSztZQUtOLFNBQVM7a0JBRFIsS0FBSztZQUlOLFVBQVUsTUFJVixTQUFTO2tCQURSLEtBQUs7WUFJTixVQUFVLE1BR1YsU0FBUztrQkFEUixLQUFLO1lBSU4sVUFBVSxNQW1CVixNQUFNO2tCQURMLE1BQU07O2tGQXhFSSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgTkVWRVIsXG4gIE9ic2VydmFibGUsXG4gIHN0YXJ0V2l0aCxcbiAgc3dpdGNoTWFwLFxuICBtZXJnZSxcbiAgaWlmLFxuICBleGhhdXN0TWFwLFxuICB0YWtlLFxuICBtYXAsXG4gIFN1YmplY3QsXG4gIHRha2VVbnRpbCxcbiAgZmlsdGVyLFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IGlzRXF1YWwsIE9ic2VydmFibGVJbnB1dCB9IGZyb20gJy4uLy4uLy4uL2NvcmUvcHVibGljLWFwaSc7XG5pbXBvcnQge1xuICBHcmlkRHJhZ0hhbmRsZXJEaXJlY3RpdmUsXG4gIEdSSURfRFJBR19IQU5ETEVSLFxufSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2RyYWctaGFuZGxlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHtcbiAgR3JpZEl0ZW1QbGFjZWhvbGRlckRpcmVjdGl2ZSxcbiAgR1JJRF9JVEVNX1BMQUNFSE9MREVSLFxufSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3BsYWNlaG9sZGVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1xuICBHcmlkUmVtb3ZlSGFuZGxlckRpcmVjdGl2ZSxcbiAgR1JJRF9SRU1PVkVfSEFORExFUixcbn0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9yZW1vdmUtaGFuZGxlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHtcbiAgR3JpZFJlc2l6ZUhhbmRsZXJEaXJlY3RpdmUsXG4gIEdSSURfUkVTSVpFX0hBTkRMRVIsXG59IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvcmVzaXplLWhhbmRsZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IEdyaWRMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZ3JpZC1sYXlvdXQuc2VydmljZSc7XG5pbXBvcnQgeyBwYXJzZVJlbmRlckl0ZW1Ub1BpeGVscyB9IGZyb20gJy4uLy4uL3V0aWxzL2dyaWQudXRpbHMnO1xuaW1wb3J0IHtcbiAgYWNjZXNzUG9pbnRlck1vdmVUaHJlc2hvbGQsXG4gIGdldE1vdXNlQ2xpY2skLFxuICBnZXRNb3VzZURvd24kLFxuICBnZXRNb3VzZUVuZCQsXG4gIGdldE1vdXNlTW92ZSQsXG59IGZyb20gJy4uLy4uL3V0aWxzL21vdXNlLnV0aWxzJztcbmltcG9ydCB7IHJ1bk91dHNpZGVab25lJCB9IGZyb20gJy4uLy4uL3V0aWxzL29wZXJhdG9yJztcblxuY29uc3QgQU5JTUFUSU9OX0RVUkFUSU9OX01TID0gMjUwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtZ3JpZC1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbXBsYXRlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdHlsZS5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBHcmlkSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlckNvbnRlbnRJbml0IHtcbiAgQElucHV0KClcbiAgaWQhOiBzdHJpbmc7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihHUklEX0RSQUdfSEFORExFUiwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBwcml2YXRlIHJlYWRvbmx5IGRyYWdIYW5kbGVzOiBRdWVyeUxpc3Q8R3JpZERyYWdIYW5kbGVyRGlyZWN0aXZlPjtcblxuICBAQ29udGVudENoaWxkcmVuKEdSSURfUkVTSVpFX0hBTkRMRVIsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgcHJpdmF0ZSByZWFkb25seSByZXNpemVIYW5kbGVzOiBRdWVyeUxpc3Q8R3JpZFJlc2l6ZUhhbmRsZXJEaXJlY3RpdmU+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oR1JJRF9SRU1PVkVfSEFORExFUiwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBwcml2YXRlIHJlYWRvbmx5IHJlbW92ZUhhbmRsZXM6IFF1ZXJ5TGlzdDxHcmlkUmVtb3ZlSGFuZGxlckRpcmVjdGl2ZT47XG5cbiAgQFZpZXdDaGlsZCgncmVzaXplRWxlbScsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHJlc2l6ZUVsZW06IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgncmVtb3ZlRWxlbScsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHJlbW92ZUVsZW06IEVsZW1lbnRSZWY7XG5cbiAgQENvbnRlbnRDaGlsZChHUklEX0lURU1fUExBQ0VIT0xERVIpXG4gIHBsYWNlaG9sZGVyOiBHcmlkSXRlbVBsYWNlaG9sZGVyRGlyZWN0aXZlO1xuXG4gIEBJbnB1dCgpIG1pblc/OiBudW1iZXI7XG4gIEBJbnB1dCgpIG1pbkg/OiBudW1iZXI7XG4gIEBJbnB1dCgpIG1heFc/OiBudW1iZXI7XG4gIEBJbnB1dCgpIG1heEg/OiBudW1iZXI7XG5cbiAgLyoqIENTUyB0cmFuc2l0aW9uIHN0eWxlICovXG4gIEBJbnB1dCgpXG4gIHRyYW5zaXRpb24gPVxuICAgIGB0cmFuc2Zvcm0gJHtBTklNQVRJT05fRFVSQVRJT05fTVN9bXMgZWFzZSwgd2lkdGggJHtBTklNQVRJT05fRFVSQVRJT05fTVN9bXMgZWFzZSwgaGVpZ2h0ICR7QU5JTUFUSU9OX0RVUkFUSU9OX01TfW1zIGVhc2VgO1xuXG4gIC8qKiBNaW5pbXVtIGFtb3VudCBvZiBwaXhlbHMgdGhhdCB0aGUgdXNlciBzaG91bGQgbW92ZSBiZWZvcmUgaXQgc3RhcnRzIHRoZSBkcmFnIHNlcXVlbmNlLiAqL1xuICBASW5wdXQoKVxuICBkcmFnU3RhcnRUaHJlc2hvbGQgPSAwO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBpdGVtIGlzIGRyYWdnYWJsZSBvciBub3QuIERlZmF1bHRzIHRvIHRydWUuICovXG4gIEBJbnB1dCgpXG4gIGRyYWdnYWJsZSA9IHRydWU7XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIGRyYWdnYWJsZSQhOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBpdGVtIGlzIHJlc2l6YWJsZSBvciBub3QuIERlZmF1bHRzIHRvIHRydWUuICovXG4gIEBJbnB1dCgpXG4gIHJlc2l6YWJsZSA9IHRydWU7XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIHJlc2l6YWJsZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgQElucHV0KClcbiAgcmVtb3ZhYmxlID0gdHJ1ZTtcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgcmVtb3ZhYmxlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBkZXN0cm95JCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZHJhZ1N0YXJ0U3ViamVjdCA9IG5ldyBTdWJqZWN0PE1vdXNlRXZlbnQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzaXplU3RhcnRTdWJqZWN0ID0gbmV3IFN1YmplY3Q8TW91c2VFdmVudD4oKTtcblxuICBkcmFnU3RhcnQkID0gdGhpcy5kcmFnU3RhcnRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICByZXNpemVTdGFydCQgPSB0aGlzLnJlc2l6ZVN0YXJ0U3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50OiBEb2N1bWVudCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxheW91dFNlcnZpY2U6IEdyaWRMYXlvdXRTZXJ2aWNlLFxuICApIHt9XG5cbiAgQE91dHB1dCgpXG4gIHJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmxheW91dFNlcnZpY2UuZ3JpZFJlbmRlckl0ZW1zRGF0YSQkXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh7IGRhdGEsIGFuaW1hdGlvbiB9KSA9PiAoeyBkYXRhOiBkYXRhPy5bdGhpcy5pZF0sIGFuaW1hdGlvbiB9KSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBpc0VxdWFsKGEuZGF0YSwgYi5kYXRhKSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkJCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh7IGRhdGEsIGFuaW1hdGlvbiB9KSA9PiB7XG4gICAgICAgIHRoaXMuc2V0U3R5bGVzKHBhcnNlUmVuZGVySXRlbVRvUGl4ZWxzKGRhdGEpLCBhbmltYXRpb24pO1xuICAgICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy5zZXR1cERyYWdTdGFydExpc3RlbmVyKCk7XG4gICAgdGhpcy5zZXR1cFJlc2l6ZVN0YXJ0TGlzdGVuZXIoKTtcbiAgICB0aGlzLnNldHVwUmVtb3ZlTGlzdGVuZXIoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveSQkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgc2V0U3R5bGVzKFxuICAgIHtcbiAgICAgIHRvcCxcbiAgICAgIGxlZnQsXG4gICAgICB3aWR0aCxcbiAgICAgIGhlaWdodCxcbiAgICB9OiB7XG4gICAgICB0b3A6IHN0cmluZztcbiAgICAgIGxlZnQ6IHN0cmluZztcbiAgICAgIHdpZHRoPzogc3RyaW5nO1xuICAgICAgaGVpZ2h0Pzogc3RyaW5nO1xuICAgIH0sXG4gICAgYW5pbWF0aW9uOiBib29sZWFuLFxuICApIHtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAndHJhbnNmb3JtJyxcbiAgICAgIGB0cmFuc2xhdGVYKCR7bGVmdH0pIHRyYW5zbGF0ZVkoJHt0b3B9KWAsXG4gICAgKTtcblxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICd0cmFuc2l0aW9uJyxcbiAgICAgIGFuaW1hdGlvbiA/IHRoaXMudHJhbnNpdGlvbiA6ICdub25lJyxcbiAgICApO1xuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZGlzcGxheScsIGBibG9ja2ApO1xuICAgICAgaWYgKHdpZHRoICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3dpZHRoJywgd2lkdGgpO1xuICAgICAgfVxuICAgICAgaWYgKGhlaWdodCAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdoZWlnaHQnLCBoZWlnaHQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cERyYWdTdGFydExpc3RlbmVyKCkge1xuICAgIGNvbnN0IGRvY3VtZW50ID0gdGhpcy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG4gICAgdGhpcy5kcmFnZ2FibGUkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQkKSxcbiAgICAgICAgc3RhcnRXaXRoKHRoaXMuZHJhZ2dhYmxlKSxcbiAgICAgICAgc3dpdGNoTWFwKGRyYWdnYWJsZSA9PiB7XG4gICAgICAgICAgaWYgKCFkcmFnZ2FibGUpIHtcbiAgICAgICAgICAgIHJldHVybiBORVZFUjtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZHJhZ0hhbmRsZXMuY2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgc3RhcnRXaXRoKHRoaXMuZHJhZ0hhbmRsZXMpLFxuICAgICAgICAgICAgc3dpdGNoTWFwKChkcmFnSGFuZGxlczogUXVlcnlMaXN0PEdyaWREcmFnSGFuZGxlckRpcmVjdGl2ZT4pID0+XG4gICAgICAgICAgICAgIGlpZihcbiAgICAgICAgICAgICAgICAoKSA9PiBkcmFnSGFuZGxlcy5sZW5ndGggPiAwLFxuICAgICAgICAgICAgICAgIG1lcmdlKFxuICAgICAgICAgICAgICAgICAgLi4uZHJhZ0hhbmRsZXNcbiAgICAgICAgICAgICAgICAgICAgLnRvQXJyYXkoKVxuICAgICAgICAgICAgICAgICAgICAubWFwKGRyYWdIYW5kbGUgPT5cbiAgICAgICAgICAgICAgICAgICAgICBnZXRNb3VzZURvd24kKGRyYWdIYW5kbGUuZWxlbWVudC5uYXRpdmVFbGVtZW50KSxcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIGdldE1vdXNlRG93biQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLFxuICAgICAgICAgICAgICApLnBpcGUoXG4gICAgICAgICAgICAgICAgZXhoYXVzdE1hcChzdGFydEV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgIC8vIFByZXZlbnQgYnJvd3NlciBkZWZhdWx0IGRyYWcvZHJvcCBhY3Rpb24sIHdlIGhhbmRsZSBhbGwgc2NlbmVzXG4gICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0RXZlbnQudGFyZ2V0ICYmXG4gICAgICAgICAgICAgICAgICAgIChzdGFydEV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuZHJhZ2dhYmxlICYmXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0RXZlbnQudHlwZSA9PT0gJ21vdXNlZG93bidcbiAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBzdGFydEV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0RXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHJldHVybiBnZXRNb3VzZU1vdmUkKHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5waXBlKFxuICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwoZ2V0TW91c2VFbmQkKGRvY3VtZW50KSksXG4gICAgICAgICAgICAgICAgICAgIHJ1bk91dHNpZGVab25lJCh0aGlzLm5nWm9uZSksXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcihtb3ZlRXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIG1vdmVFdmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhY2Nlc3NQb2ludGVyTW92ZVRocmVzaG9sZChcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0RXZlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICBtb3ZlRXZlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRyYWdTdGFydFRocmVzaG9sZCxcbiAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgICAgICAgICAgbWFwKCgpID0+IHN0YXJ0RXZlbnQpLFxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHRoaXMuZHJhZ1N0YXJ0U3ViamVjdCk7XG4gIH1cblxuICBwcml2YXRlIHNldHVwUmVtb3ZlTGlzdGVuZXIoKSB7XG4gICAgdGhpcy5yZW1vdmFibGUkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQkKSxcbiAgICAgICAgc3RhcnRXaXRoKHRoaXMucmVtb3ZhYmxlKSxcbiAgICAgICAgc3dpdGNoTWFwKHJlbW92YWJsZSA9PiB7XG4gICAgICAgICAgaWYgKCFyZW1vdmFibGUpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgICAgIHRoaXMucmVtb3ZlRWxlbS5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAnZGlzcGxheScsXG4gICAgICAgICAgICAgICdub25lJyxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4gTkVWRVI7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0aGlzLnJlbW92ZUhhbmRsZXMuY2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgc3RhcnRXaXRoKHRoaXMucmVtb3ZlSGFuZGxlcyksXG4gICAgICAgICAgICBzd2l0Y2hNYXAoXG4gICAgICAgICAgICAgIChyZW1vdmVIYW5kbGVzOiBRdWVyeUxpc3Q8R3JpZFJlbW92ZUhhbmRsZXJEaXJlY3RpdmU+KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlbW92ZUhhbmRsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVFbGVtLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICdkaXNwbGF5JyxcbiAgICAgICAgICAgICAgICAgICAgJ25vbmUnLFxuICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgcmV0dXJuIG1lcmdlKFxuICAgICAgICAgICAgICAgICAgICAuLi5yZW1vdmVIYW5kbGVzXG4gICAgICAgICAgICAgICAgICAgICAgLnRvQXJyYXkoKVxuICAgICAgICAgICAgICAgICAgICAgIC5tYXAocmVtb3ZlSGFuZGxlID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBnZXRNb3VzZUNsaWNrJChyZW1vdmVIYW5kbGUuZWxlbWVudC5uYXRpdmVFbGVtZW50KSxcbiAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlRWxlbS5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgJ2Rpc3BsYXknLFxuICAgICAgICAgICAgICAgICAgJ2Jsb2NrJyxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXRNb3VzZURvd24kKHRoaXMucmVtb3ZlRWxlbS5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKGV2dCA9PiB7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnJlbW92ZS5lbWl0KHRoaXMuaWQpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldHVwUmVzaXplU3RhcnRMaXN0ZW5lcigpIHtcbiAgICB0aGlzLnJlc2l6YWJsZSRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpLFxuICAgICAgICBzdGFydFdpdGgodGhpcy5yZXNpemFibGUpLFxuICAgICAgICBzd2l0Y2hNYXAocmVzaXphYmxlID0+IHtcbiAgICAgICAgICBpZiAoIXJlc2l6YWJsZSkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgICAgICAgdGhpcy5yZXNpemVFbGVtLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICdkaXNwbGF5JyxcbiAgICAgICAgICAgICAgJ25vbmUnLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiBORVZFUjtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRoaXMucmVzaXplSGFuZGxlcy5jaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgodGhpcy5yZXNpemVIYW5kbGVzKSxcbiAgICAgICAgICAgIHN3aXRjaE1hcChcbiAgICAgICAgICAgICAgKHJlc2l6ZUhhbmRsZXM6IFF1ZXJ5TGlzdDxHcmlkUmVzaXplSGFuZGxlckRpcmVjdGl2ZT4pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzaXplSGFuZGxlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc2l6ZUVsZW0ubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgJ2Rpc3BsYXknLFxuICAgICAgICAgICAgICAgICAgICAnbm9uZScsXG4gICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICByZXR1cm4gbWVyZ2UoXG4gICAgICAgICAgICAgICAgICAgIC4uLnJlc2l6ZUhhbmRsZXNcbiAgICAgICAgICAgICAgICAgICAgICAudG9BcnJheSgpXG4gICAgICAgICAgICAgICAgICAgICAgLm1hcChyZXNpemVIYW5kbGUgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGdldE1vdXNlRG93biQocmVzaXplSGFuZGxlLmVsZW1lbnQubmF0aXZlRWxlbWVudCksXG4gICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgICAgICAgICB0aGlzLnJlc2l6ZUVsZW0ubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICdkaXNwbGF5JyxcbiAgICAgICAgICAgICAgICAgICdibG9jaycsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0TW91c2VEb3duJCh0aGlzLnJlc2l6ZUVsZW0ubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApLFxuICAgICAgICAgICk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh0aGlzLnJlc2l6ZVN0YXJ0U3ViamVjdCk7XG4gIH1cbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjxkaXZcbiAgI3Jlc2l6ZUVsZW1cbiAgY2xhc3M9XCJncmlkLWl0ZW0tZGVmYXVsdC1yZXNpemUtaWNvblwiXG4+PC9kaXY+XG48ZGl2XG4gICNyZW1vdmVFbGVtXG4gIGNsYXNzPVwiZ3JpZC1pdGVtLWRlZmF1bHQtcmVtb3ZlXCJcbj5cbiAgPGF1aS1pY29uIGljb249XCJ4bWFya1wiPjwvYXVpLWljb24+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -38,10 +38,10 @@ export class TranslateService {
|
|
|
38
38
|
...options,
|
|
39
39
|
};
|
|
40
40
|
this.translationsList = [
|
|
41
|
-
options
|
|
41
|
+
options?.translations,
|
|
42
42
|
...(translationList || []),
|
|
43
43
|
].filter(Boolean);
|
|
44
|
-
if (options
|
|
44
|
+
if (options?.remoteUrl) {
|
|
45
45
|
if (Array.isArray(options.remoteUrl)) {
|
|
46
46
|
options.remoteUrl.forEach(url => this.addRemoteTranslations(url));
|
|
47
47
|
}
|
|
@@ -112,7 +112,6 @@ export class TranslateService {
|
|
|
112
112
|
/**
|
|
113
113
|
* 手动添加语言包
|
|
114
114
|
*/
|
|
115
|
-
// eslint-disable-next-line sonarjs/cognitive-complexity
|
|
116
115
|
addRemoteTranslations(remoteUrl) {
|
|
117
116
|
if (!remoteUrl) {
|
|
118
117
|
return;
|
|
@@ -298,4 +297,4 @@ __decorate([
|
|
|
298
297
|
type: Inject,
|
|
299
298
|
args: [TRANSLATIONS]
|
|
300
299
|
}] }], { remoteLoaded$: [], locale$: [] }); })();
|
|
301
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvdHJhbnNsYXRlL3RyYW5zbGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUNMLE1BQU0sRUFDTixVQUFVLEVBRVYsUUFBUSxFQUNSLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQy9ELE9BQU8sRUFDTCxLQUFLLEVBQ0wsVUFBVSxFQUNWLE9BQU8sRUFDUCxRQUFRLEVBQ1IsVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBQ04sUUFBUSxFQUNSLEdBQUcsRUFDSCxTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRWpDLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFM0MsT0FBTyxFQUNMLGlCQUFpQixFQUNqQix3QkFBd0IsRUFDeEIsY0FBYyxHQUNmLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7OztBQVUzRCxNQUFNLE9BQU8sZ0JBQWdCO0lB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QUssS0FBSyxTQUFTLEVBQUUsQ0FBQztvQkFDeEIsT0FBTyxDQUFDLElBQUksQ0FDViw0Q0FBNEMsTUFBTSxrQkFBa0IsVUFBVSx5RkFBeUYsQ0FDeEssQ0FBQztnQkFDSixDQUFDO3FCQUFNLENBQUM7b0JBQ04sT0FBTyxDQUFDLElBQUksQ0FDVixpQ0FBaUMsTUFBTSx3QkFBd0IsVUFBVSxxR0FBcUcsQ0FDL0ssQ0FBQztnQkFDSixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztpRkE5V1UsZ0JBQWdCLDBDQStCakIsZUFBZSxlQUdmLGlCQUFpQixrQkFFTCxZQUFZO3VFQXBDdkIsZ0JBQWdCLFdBQWhCLGdCQUFnQixtQkFESCxNQUFNOztBQVNyQjtJQURSLGVBQWUsQ0FBQyxlQUFlLENBQUM7OEJBQ1QsVUFBVTt1REFBc0I7QUFXL0M7SUFEUixlQUFlLEVBQUU7OEJBQ0EsVUFBVTtpREFBUztpRkFuQjFCLGdCQUFnQjtjQUQ1QixVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOztzQkFnQzdCLE1BQU07dUJBQUMsZUFBZTs7c0JBRXRCLFFBQVE7O3NCQUNSLE1BQU07dUJBQUMsaUJBQWlCOztzQkFFeEIsUUFBUTs7c0JBQUksTUFBTTt1QkFBQyxZQUFZO3FCQTVCekIsYUFBYSxNQVdiLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICogQG1vZHVsZSB0cmFuc2xhdGVcbiAqL1xuXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtcbiAgSW5qZWN0LFxuICBJbmplY3RhYmxlLFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBpc0Rldk1vZGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0LCBoZWFkLCBpc1BsYWluT2JqZWN0LCB0ZW1wbGF0ZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQge1xuICBFTVBUWSxcbiAgT2JzZXJ2YWJsZSxcbiAgU3ViamVjdCxcbiAgZm9ya0pvaW4sXG4gIHRocm93RXJyb3IsXG4gIGNhdGNoRXJyb3IsXG4gIGZpbHRlcixcbiAgZmluYWxpemUsXG4gIG1hcCxcbiAgdGFrZVVudGlsLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGFqYXggfSBmcm9tICdyeGpzL2FqYXgnO1xuXG5pbXBvcnQgeyBBUElfR0FURVdBWSwgVEVNUExBVEVfT1BUSU9OUyB9IGZyb20gJy4uL2NvcmUvY29uc3RhbnRzL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBUT0tFTl9CQVNFX0hSRUYgfSBmcm9tICcuLi9jb3JlL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgaXNBYnNvbHV0ZVVybCB9IGZyb20gJy4uL2NvcmUvdXRpbHMvY29tbW9uJztcbmltcG9ydCB7IE9ic2VydmFibGVJbnB1dCB9IGZyb20gJy4uL2NvcmUvdXRpbHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBwYXJzZSB9IGZyb20gJy4uL2NvcmUvdXRpbHMveWFtbCc7XG5cbmltcG9ydCB7XG4gIEZBTExCQUNLX0xBTkdVQUdFLFxuICBMT0NBTEVfUExBQ0VIT0xERVJfUkVHRVgsXG4gIExPQ0FMRV9TVE9SQUdFLFxufSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBUUkFOU0xBVEVfT1BUSU9OUywgVFJBTlNMQVRJT05TIH0gZnJvbSAnLi90b2tlbnMnO1xuaW1wb3J0IHtcbiAgVHJhbnNsYXRlS2V5LFxuICBUcmFuc2xhdGVPcHRpb25zLFxuICBUcmFuc2xhdGlvbixcbiAgVHJhbnNsYXRpb25WYWx1ZSxcbiAgVHJhbnNsYXRpb25zLFxufSBmcm9tICcuL3R5cGVzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGVTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgX3JlbW90ZUxvYWRlZD86IGJvb2xlYW47XG5cbiAgZ2V0IHJlbW90ZUxvYWRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVtb3RlTG9hZGVkO1xuICB9XG5cbiAgQE9ic2VydmFibGVJbnB1dCgnX3JlbW90ZUxvYWRlZCcpXG4gIHJlYWRvbmx5IHJlbW90ZUxvYWRlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbiB8IHVuZGVmaW5lZD47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRpb25zTGlzdDogQXJyYXk8UmVhZG9ubHk8VHJhbnNsYXRpb25zPj47XG4gIHByaXZhdGUgcmVtb3RlVHJhbnNsYXRpb25zTGlzdDogQXJyYXk8UmVhZG9ubHk8VHJhbnNsYXRpb25zPj47XG4gIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogVHJhbnNsYXRlT3B0aW9ucztcblxuICBsb2NhbGU6IHN0cmluZztcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgcmVhZG9ubHkgbG9jYWxlJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIGdldCBsb2NhbGVzKCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMubG9jYWxlcztcbiAgfVxuXG4gIGdldCBmYWxsYmFja0xvY2FsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmZhbGxiYWNrTG9jYWxlO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIEBJbmplY3QoVE9LRU5fQkFTRV9IUkVGKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgYmFzZUhyZWY6IHN0cmluZyxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoVFJBTlNMQVRFX09QVElPTlMpXG4gICAgb3B0aW9uczogVHJhbnNsYXRlT3B0aW9ucyxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFRSQU5TTEFUSU9OUykgdHJhbnNsYXRpb25MaXN0OiBUcmFuc2xhdGlvbnNbXSxcbiAgKSB7XG4gICAgdGhpcy5sb2NhbGUgPSBvcHRpb25zPy5sb2NhbGUgfHwgbmF2aWdhdG9yLmxhbmd1YWdlO1xuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIGxvY2FsZXM6IFt0aGlzLmxvY2FsZV0sXG4gICAgICBmYWxsYmFja0xvY2FsZTogRkFMTEJBQ0tfTEFOR1VBR0UsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG5cbiAgICB0aGlzLnRyYW5zbGF0aW9uc0xpc3QgPSBbXG4gICAgICBvcHRpb25zLnRyYW5zbGF0aW9ucyxcbiAgICAgIC4uLih0cmFuc2xhdGlvbkxpc3QgfHwgW10pLFxuICAgIF0uZmlsdGVyKEJvb2xlYW4pO1xuXG4gICAgaWYgKG9wdGlvbnMucmVtb3RlVXJsKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShvcHRpb25zLnJlbW90ZVVybCkpIHtcbiAgICAgICAgb3B0aW9ucy5yZW1vdGVVcmwuZm9yRWFjaCh1cmwgPT4gdGhpcy5hZGRSZW1vdGVUcmFuc2xhdGlvbnModXJsKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFkZFJlbW90ZVRyYW5zbGF0aW9ucyhvcHRpb25zLnJlbW90ZVVybCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95JCQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIGtleSAtIOe/u+ivkWtleVxuICAgKiBAcGFyYW0gZGF0YSAtIOagueaNrue/u+ivkeS4iuS4i+aWh+aVsOaNruiOt+WPlue/u+ivkeWGheWuue+8jOe/u+ivkemhueS4jeWtmOWcqOebtOaOpei/lOWbniBrZXkg5paH5pysXG4gICAqIEBwYXJhbSBpZ25vcmVOb25FeGlzdCAtIOW8gOWPkeeOr+Wig+aYr+WQpuW/veinhuS4jeWtmOWcqOeahOe/u+ivkemhuVxuICAgKi9cbiAgZ2V0KGtleTogVHJhbnNsYXRlS2V5LCBkYXRhPzogdW5rbm93biwgaWdub3JlTm9uRXhpc3QgPSBmYWxzZSkge1xuICAgIGNvbnN0IHRyYW5zbGF0aW9uID0gdGhpcy5nZXRSYXcoa2V5LCBpZ25vcmVOb25FeGlzdCk7XG4gICAgaWYgKGRhdGEgIT0gbnVsbCAmJiB0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcpIHtcbiAgICAgIGRhdGEgPSBbZGF0YV07XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdGVtcGxhdGUodHJhbnNsYXRpb24sIFRFTVBMQVRFX09QVElPTlMpKGRhdGEgYXMgb2JqZWN0KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlW2lzRGV2TW9kZSgpID8gJ2Vycm9yJyA6ICd3YXJuJ10oXG4gICAgICAgIGBUaGUgdHJhbnNsYXRpb24ga2V5ICcke2tleX0nIGlzIG1pc3NpbmcgdGhlIG5lY2Vzc2FyeSBwYXJhbWV0ZXJzLmAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiDnm7TmjqXov5Tlm57nv7vor5HmlofmnKzmqKHmnb9cbiAgICogQHBhcmFtIGtleSAtIOe/u+ivkWtleVxuICAgKiBAcGFyYW0gaWdub3JlTm9uRXhpc3QgLSDlvIDlj5Hnjq/looPmmK/lkKblv73op4bkuI3lrZjlnKjnmoTnv7vor5HpoblcbiAgICovXG4gIGdldFJhdyhrZXk6IFRyYW5zbGF0ZUtleSwgaWdub3JlTm9uRXhpc3QgPSBmYWxzZSkge1xuICAgIHJldHVybiB0eXBlb2Yga2V5ID09PSAnc3RyaW5nJ1xuICAgICAgPyB0aGlzLl9nZXQoa2V5LCBpZ25vcmVOb25FeGlzdClcbiAgICAgIDogKHRoaXMuX2dldFZhbHVlKGtleSkgYXMgc3RyaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDmoLnmja4gYGxvY2FsZXNgIOW+queOr+WIh+aNouW9k+WJjeWMuuWfn+iuvue9rlxuICAgKi9cbiAgdG9nZ2xlTG9jYWxlKCkge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5vcHRpb25zLmxvY2FsZXMuaW5kZXhPZih0aGlzLmxvY2FsZSk7XG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2Bsb2NhbGVzYCBoYXMgbm90IGJlZW4gaW5pdGlhbGl6ZWQgY29ycmVjdGx5Jyk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG5leHRMb2NhbGUgPVxuICAgICAgdGhpcy5vcHRpb25zLmxvY2FsZXNbXG4gICAgICAgIGluZGV4ID09PSB0aGlzLm9wdGlvbnMubG9jYWxlcy5sZW5ndGggLSAxID8gMCA6IGluZGV4ICsgMVxuICAgICAgXTtcblxuICAgIGlmICghbmV4dExvY2FsZSB8fCB0aGlzLmxvY2FsZSA9PT0gbmV4dExvY2FsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2V0TG9jYWxlKG5leHRMb2NhbGUpO1xuICB9XG5cbiAgc2V0TG9jYWxlKGxvY2FsZTogc3RyaW5nKSB7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oTE9DQUxFX1NUT1JBR0UsIGxvY2FsZSk7XG4gICAgdGhpcy5sb2NhbGUgPSBsb2NhbGU7XG4gIH1cblxuICAvKipcbiAgICog5omL5Yqo5re75Yqg6K+t6KiA5YyFXG4gICAqL1xuICBhZGRUcmFuc2xhdGlvbnModHJhbnNsYXRpb25zOiBUcmFuc2xhdGlvbnMpIHtcbiAgICB0aGlzLnRyYW5zbGF0aW9uc0xpc3QudW5zaGlmdChPYmplY3QuZnJlZXplKHRyYW5zbGF0aW9ucykpO1xuICB9XG5cbiAgLyoqXG4gICAqIOaJi+WKqOa3u+WKoOivreiogOWMhVxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbmFyanMvY29nbml0aXZlLWNvbXBsZXhpdHlcbiAgYWRkUmVtb3RlVHJhbnNsYXRpb25zKHJlbW90ZVVybDogc3RyaW5nKSB7XG4gICAgaWYgKCFyZW1vdGVVcmwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fcmVtb3RlTG9hZGVkID0gZmFsc2U7XG4gICAgcmVtb3RlVXJsID0gaGVhZChyZW1vdGVVcmwuc3BsaXQoLyMvKSk7XG4gICAgY29uc3QgaXNBYnNvbHV0ZSA9IGlzQWJzb2x1dGVVcmwocmVtb3RlVXJsKTtcbiAgICBjb25zdCBpc0FwaUdhdGVXYXlSZXF1ZXN0ID0gcmVtb3RlVXJsLnN0YXJ0c1dpdGgoQVBJX0dBVEVXQVkpO1xuICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgbGV0IGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICAgICAgaWYgKCFpc0Fic29sdXRlICYmICghdGhpcy5iYXNlSHJlZiB8fCAhaXNBYnNvbHV0ZVVybCh0aGlzLmJhc2VIcmVmKSkpIHtcbiAgICAgICAgZXJyb3JNZXNzYWdlID0gJ2Fic29sdXRlIGJhc2UgaHJlZiBpcyByZXF1aXJlZCBmb3IgcmVsYXRpdmUgcmVtb3RlIHVybCc7XG4gICAgICB9IGVsc2UgaWYgKHJlbW90ZVVybC5zcGxpdCgnPycpWzBdLmluY2x1ZGVzKCcuLycpKSB7XG4gICAgICAgIGVycm9yTWVzc2FnZSA9XG4gICAgICAgICAgJ2RvIG5vdCB1c2UgYW55IGRvdCB3aXRoIHNsYXNoIGZvciByZWxhdGl2ZSB1cmwgd2hpY2ggc2hvdWxkIGFsd2F5cyBiYXNlIGZyb20gYmFzZSBocmVmJztcbiAgICAgIH1cbiAgICAgIGlmIChlcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihlcnJvck1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIWlzQWJzb2x1dGUgJiYgIWlzQXBpR2F0ZVdheVJlcXVlc3QpIHtcbiAgICAgIHJlbW90ZVVybCA9XG4gICAgICAgICh0aGlzLmJhc2VIcmVmLmVuZHNXaXRoKCcvJykgPyB0aGlzLmJhc2VIcmVmIDogdGhpcy5iYXNlSHJlZiArICcvJykgK1xuICAgICAgICByZW1vdGVVcmw7XG4gICAgfVxuICAgIChMT0NBTEVfUExBQ0VIT0xERVJfUkVHRVgudGVzdChyZW1vdGVVcmwpXG4gICAgICA/IGZvcmtKb2luKFxuICAgICAgICAgIHRoaXMub3B0aW9ucy5sb2NhbGVzLm1hcChsb2NhbGUgPT5cbiAgICAgICAgICAgIHRoaXMuZmV0Y2hUcmFuc2xhdGlvbihyZW1vdGVVcmwsIGxvY2FsZSkucGlwZShcbiAgICAgICAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5sb29zZSkge1xuICAgICAgICAgICAgICAgICAgY29uc3QgbG9vc2VMb2NhbGUgPSB0aGlzLl9nZXRMb29zZUxvY2FsZShsb2NhbGUpO1xuICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBsb2NhbGUgIT09IGxvb3NlTG9jYWxlICYmXG4gICAgICAgICAgICAgICAgICAgICF0aGlzLm9wdGlvbnMubG9jYWxlcy5pbmNsdWRlcyhsb29zZUxvY2FsZSlcbiAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mZXRjaFRyYW5zbGF0aW9uKHJlbW90ZVVybCwgbG9vc2VMb2NhbGUpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gaXNEZXZNb2RlKCkgPyB0aHJvd0Vycm9yKCgpID0+IGVycm9yKSA6IEVNUFRZO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgZmlsdGVyKGlzUGxhaW5PYmplY3QpLFxuICAgICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgKHRyYW5zbGF0aW9uOiBUcmFuc2xhdGlvbikgPT5cbiAgICAgICAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgICAgICAgIFtsb2NhbGVdOiB0cmFuc2xhdGlvbixcbiAgICAgICAgICAgICAgICAgIH0gYXMgVHJhbnNsYXRpb25zKSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKSxcbiAgICAgICAgKS5waXBlKG1hcChfID0+IF8ucmVkdWNlKE9iamVjdC5hc3NpZ24pKSlcbiAgICAgIDogdGhpcy5mZXRjaFRyYW5zbGF0aW9uKHJlbW90ZVVybCkucGlwZShcbiAgICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IChpc0Rldk1vZGUoKSA/IHRocm93RXJyb3IoKCkgPT4gZXJyb3IpIDogRU1QVFkpKSxcbiAgICAgICAgKVxuICAgIClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiAodGhpcy5fcmVtb3RlTG9hZGVkID0gdHJ1ZSkpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShyZW1vdGVUcmFuc2xhdGlvbnMgPT4ge1xuICAgICAgICBpZiAoIXJlbW90ZVRyYW5zbGF0aW9ucykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMucmVtb3RlVHJhbnNsYXRpb25zTGlzdCkge1xuICAgICAgICAgIHRoaXMucmVtb3RlVHJhbnNsYXRpb25zTGlzdCA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVtb3RlVHJhbnNsYXRpb25zTGlzdC51bnNoaWZ0KE9iamVjdC5mcmVlemUocmVtb3RlVHJhbnNsYXRpb25zKSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiDku47ov5znqIsgdXJsIOaooeadv+WSjOWMuuWfn+iOt+WPlue/u+ivkeWMhVxuICAgKi9cbiAgZmV0Y2hUcmFuc2xhdGlvbihyZW1vdGVVcmw6IHN0cmluZyk6IE9ic2VydmFibGU8VHJhbnNsYXRpb25zPjtcbiAgZmV0Y2hUcmFuc2xhdGlvbihyZW1vdGVVcmw6IHN0cmluZywgbG9jYWxlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFRyYW5zbGF0aW9uPjtcbiAgZmV0Y2hUcmFuc2xhdGlvbihyZW1vdGVVcmw6IHN0cmluZywgbG9jYWxlPzogc3RyaW5nKSB7XG4gICAgaWYgKGlzRGV2TW9kZSgpICYmIExPQ0FMRV9QTEFDRUhPTERFUl9SRUdFWC50ZXN0KHJlbW90ZVVybCkgJiYgIWxvY2FsZSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgJ2Bsb2NhbGVgIGlzIHJlcXVpcmVkIHNpbmUgdGhlIHByb3ZpZGVkIHJlbW90ZSB1cmwgY29udGFpbnMgbG9jYWxlIHBsYWNlaG9sZGVyJyxcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IGlzSlNPTiA9IHJlbW90ZVVybC5lbmRzV2l0aCgnLmpzb24nKTtcbiAgICBjb25zdCBpc0FwaUdhdGVXYXlSZXF1ZXN0ID0gcmVtb3RlVXJsLnN0YXJ0c1dpdGgoQVBJX0dBVEVXQVkpO1xuICAgIGNvbnN0IHVybCA9IGxvY2FsZVxuICAgICAgPyByZW1vdGVVcmwucmVwbGFjZShMT0NBTEVfUExBQ0VIT0xERVJfUkVHRVgsIGxvY2FsZSlcbiAgICAgIDogcmVtb3RlVXJsO1xuICAgIGNvbnN0IHJlc3BvbnNlVHlwZSA9IGlzSlNPTiA/ICdqc29uJyA6ICd0ZXh0JztcbiAgICBpZiAoaXNBcGlHYXRlV2F5UmVxdWVzdCkge1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAucmVxdWVzdCgnR0VUJywgdXJsLCB7IHJlc3BvbnNlVHlwZSB9KVxuICAgICAgICAucGlwZShtYXAoYm9keSA9PiAoaXNKU09OID8gYm9keSA6IHBhcnNlKGJvZHkpKSkpO1xuICAgIH1cbiAgICByZXR1cm4gYWpheCh7XG4gICAgICB1cmwsXG4gICAgICByZXNwb25zZVR5cGUsXG4gICAgfSkucGlwZShcbiAgICAgIG1hcCgoeyByZXNwb25zZSB9KSA9PiAoaXNKU09OID8gcmVzcG9uc2UgOiBwYXJzZShyZXNwb25zZSBhcyBzdHJpbmcpKSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldExvb3NlTG9jYWxlKGxvY2FsZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGhlYWQobG9jYWxlLnNwbGl0KC9bXy1dLykpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0VmFsdWUoXG4gICAgc291cmNlOiBUcmFuc2xhdGlvbixcbiAgICBsb2NhbGUgPSB0aGlzLmxvY2FsZSxcbiAgKTogVHJhbnNsYXRpb25WYWx1ZSB7XG4gICAgaWYgKCFzb3VyY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IHZhbHVlID0gc291cmNlW2xvY2FsZV07XG4gICAgaWYgKHZhbHVlID09IG51bGwgJiYgdGhpcy5vcHRpb25zLmxvb3NlKSB7XG4gICAgICBjb25zdCBsb29zZUxvY2FsZSA9IHRoaXMuX2dldExvb3NlTG9jYWxlKGxvY2FsZSk7XG4gICAgICB2YWx1ZSA9XG4gICAgICAgIGxvY2FsZSA9PT0gbG9vc2VMb2NhbGVcbiAgICAgICAgICA/IE9iamVjdC5lbnRyaWVzKHNvdXJjZSkuZmluZChcbiAgICAgICAgICAgICAgKFtrZXldKSA9PiBsb2NhbGUgPT09IHRoaXMuX2dldExvb3NlTG9jYWxlKGtleSksXG4gICAgICAgICAgICApPy5bMV1cbiAgICAgICAgICA6IHNvdXJjZVtsb29zZUxvY2FsZV07XG4gICAgfVxuICAgIGlmICh2YWx1ZSA9PSBudWxsICYmIGxvY2FsZSAhPT0gdGhpcy5vcHRpb25zLmZhbGxiYWNrTG9jYWxlKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZ2V0VmFsdWUoc291cmNlLCB0aGlzLm9wdGlvbnMuZmFsbGJhY2tMb2NhbGUpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIF9nZXRXaXRoRmFsbGJhY2soXG4gICAga2V5OiBzdHJpbmcsXG4gICAgbG9jYWxlID0gdGhpcy5sb2NhbGUsXG4gICAgdHJhbnNsYXRpb25zOiBUcmFuc2xhdGlvbnMsXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgdmFsdWUgPSBnZXQodGhpcy5fZ2V0VmFsdWUodHJhbnNsYXRpb25zLCBsb2NhbGUpLCBrZXkpO1xuICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgaXNEZXZNb2RlKCkgJiZcbiAgICAgICAgdHlwZW9mIGdldCh2YWx1ZSwgU3ltYm9sLnRvUHJpbWl0aXZlKSAhPT0gJ2Z1bmN0aW9uJ1xuICAgICAgKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBgVGhlIHRyYW5zbGF0aW9uIGZvciBsb2NhbGU6IFxcYCR7bG9jYWxlfVxcYCBhbmQga2V5OlxcYCR7a2V5fVxcYCBpcyBhbiBvYmplY3QsIHdoaWNoIGNvdWxkIGJlIHVuZXhwZWN0ZWRgLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgfVxuICAgIGlmIChsb2NhbGUgIT09IHRoaXMub3B0aW9ucy5mYWxsYmFja0xvY2FsZSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2dldFdpdGhGYWxsYmFjayhcbiAgICAgICAga2V5LFxuICAgICAgICB0aGlzLm9wdGlvbnMuZmFsbGJhY2tMb2NhbGUsXG4gICAgICAgIHRyYW5zbGF0aW9ucyxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0QmFzZShcbiAgICBrZXk6IHN0cmluZyxcbiAgICBsb2NhbGUgPSB0aGlzLmxvY2FsZSxcbiAgICB0cmFuc2xhdGlvbnNMaXN0OiBUcmFuc2xhdGlvbnNbXSxcbiAgKSB7XG4gICAgaWYgKCF0cmFuc2xhdGlvbnNMaXN0IHx8IHRyYW5zbGF0aW9uc0xpc3QubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSB0cmFuc2xhdGlvbnNMaXN0Lmxlbmd0aDsgaSA+IDA7IGktLSkge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLl9nZXRXaXRoRmFsbGJhY2soa2V5LCBsb2NhbGUsIHRyYW5zbGF0aW9uc0xpc3RbaSAtIDFdKTtcbiAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9nZXQoa2V5OiBzdHJpbmcsIGlnbm9yZU5vbkV4aXN0ID0gZmFsc2UsIGxvY2FsZSA9IHRoaXMubG9jYWxlKSB7XG4gICAgbGV0IHZhbHVlID0gdGhpcy5fZ2V0QmFzZShrZXksIGxvY2FsZSwgdGhpcy5yZW1vdGVUcmFuc2xhdGlvbnNMaXN0KTtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSB0aGlzLl9nZXRCYXNlKGtleSwgbG9jYWxlLCB0aGlzLnRyYW5zbGF0aW9uc0xpc3QpO1xuICAgIH1cbiAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBpc0Rldk1vZGUoKSAmJlxuICAgICAgIWlnbm9yZU5vbkV4aXN0ICYmXG4gICAgICB0eXBlb2YgZ2V0KHZhbHVlLCBTeW1ib2wudG9QcmltaXRpdmUpICE9PSAnZnVuY3Rpb24nXG4gICAgKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBObyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgbG9jYWxlOiBcXGAke2xvY2FsZX1cXGAgYW5kIGtleTogXFxgJHtrZXl9XFxgLCB3aGljaCBjb3VsZCBiZSB1bmV4cGVjdGVkYCxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBrZXk7XG4gIH1cblxuICBwcml2YXRlIF9jb21wYXJlS2V5cyhcbiAgICBsb2NhbGU6IHN0cmluZyxcbiAgICB0cmFuc2xhdGlvbjogVHJhbnNsYXRpb24sXG4gICAgcHJldlRyYW5zbGF0aW9uOiBUcmFuc2xhdGlvbixcbiAgICBwYXRoOiBzdHJpbmdbXSA9IFtdLFxuICApIHtcbiAgICBpZiAodHJhbnNsYXRpb24gPT0gbnVsbCB8fCBwcmV2VHJhbnNsYXRpb24gPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIE9iamVjdC5lbnRyaWVzKHRyYW5zbGF0aW9uKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHByZXZUcmFuc2xhdGlvbiwga2V5KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHByZXZWYWx1ZSA9IHByZXZUcmFuc2xhdGlvbltrZXldO1xuICAgICAgY29uc3QgdmFsdWVJc1BsYWluT2JqZWN0ID0gaXNQbGFpbk9iamVjdCh2YWx1ZSk7XG4gICAgICBjb25zdCBwcmV2VmFsdWVJc1BsYWluT2JqZWN0ID0gaXNQbGFpbk9iamVjdChwcmV2VmFsdWUpO1xuXG4gICAgICBpZiAodmFsdWVJc1BsYWluT2JqZWN0ICYmIHByZXZWYWx1ZUlzUGxhaW5PYmplY3QpIHtcbiAgICAgICAgdGhpcy5fY29tcGFyZUtleXMoXG4gICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIHZhbHVlIGFzIFRyYW5zbGF0aW9uLFxuICAgICAgICAgIHByZXZWYWx1ZSBhcyBUcmFuc2xhdGlvbixcbiAgICAgICAgICBbLi4ucGF0aCwga2V5XSxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXZhbHVlSXNQbGFpbk9iamVjdCAmJiAhcHJldlZhbHVlSXNQbGFpbk9iamVjdCkge1xuICAgICAgICBjb25zdCBvdXRwdXRQYXRoID0gWy4uLnBhdGgsIGtleV0uam9pbignIC0+ICcpO1xuICAgICAgICBpZiAodmFsdWUgPT09IHByZXZWYWx1ZSkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBUaGUgY3VzdG9taXplZCB0cmFuc2xhdGlvbiBmb3IgbG9jYWxlOiBcXGAke2xvY2FsZX1cXGAgYW5kIHBhdGg6IFxcYCR7b3V0cHV0UGF0aH1cXGAgaXMgZHVwbGljYXRlZCB3aXRoIHRoZSBvdGhlciB0cmFuc2xhdGlvbiwgcGxlYXNlIHJlbW92ZSBpdCBpbiB5b3VyIHRyYW5zbGF0aW9uIGZpbGUuYCxcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBUd28ga2V5cyB0aGF0IHRoZSBsb2NhbGUgaXMgXFxgJHtsb2NhbGV9XFxgIGFuZCB0aGUgcGF0aCBpcyBcXGAke291dHB1dFBhdGh9XFxgIGFyZSBzYW1lLCAgYnV0IHRoZWlyIHZhbHVlcyBhcmUgbm90IGVxdWFsICwgcGxlYXNlIHJlbW92ZSBvbmUgb2YgdGhlbSBvciBjaGFuZ2Ugb25lIG9mIHRoZSBrZXlzLmAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
300
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvdHJhbnNsYXRlL3RyYW5zbGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUNMLE1BQU0sRUFDTixVQUFVLEVBRVYsUUFBUSxFQUNSLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQy9ELE9BQU8sRUFDTCxLQUFLLEVBQ0wsVUFBVSxFQUNWLE9BQU8sRUFDUCxRQUFRLEVBQ1IsVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBQ04sUUFBUSxFQUNSLEdBQUcsRUFDSCxTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRWpDLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFM0MsT0FBTyxFQUNMLGlCQUFpQixFQUNqQix3QkFBd0IsRUFDeEIsY0FBYyxHQUNmLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7OztBQVUzRCxNQUFNLE9BQU8sZ0JBQWdCO0lB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UyxFQUFFLENBQUM7b0JBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQ1YsNENBQTRDLE1BQU0sa0JBQWtCLFVBQVUseUZBQXlGLENBQ3hLLENBQUM7Z0JBQ0osQ0FBQztxQkFBTSxDQUFDO29CQUNOLE9BQU8sQ0FBQyxJQUFJLENBQ1YsaUNBQWlDLE1BQU0sd0JBQXdCLFVBQVUscUdBQXFHLENBQy9LLENBQUM7Z0JBQ0osQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7aUZBN1dVLGdCQUFnQiwwQ0ErQmpCLGVBQWUsZUFHZixpQkFBaUIsa0JBRUwsWUFBWTt1RUFwQ3ZCLGdCQUFnQixXQUFoQixnQkFBZ0IsbUJBREgsTUFBTTs7QUFTckI7SUFEUixlQUFlLENBQUMsZUFBZSxDQUFDOzhCQUNULFVBQVU7dURBQXNCO0FBVy9DO0lBRFIsZUFBZSxFQUFFOzhCQUNBLFVBQVU7aURBQVM7aUZBbkIxQixnQkFBZ0I7Y0FENUIsVUFBVTtlQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7c0JBZ0M3QixNQUFNO3VCQUFDLGVBQWU7O3NCQUV0QixRQUFROztzQkFDUixNQUFNO3VCQUFDLGlCQUFpQjs7c0JBRXhCLFFBQVE7O3NCQUFJLE1BQU07dUJBQUMsWUFBWTtxQkE1QnpCLGFBQWEsTUFXYixPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqIEBtb2R1bGUgdHJhbnNsYXRlXG4gKi9cblxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7XG4gIEluamVjdCxcbiAgSW5qZWN0YWJsZSxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgaXNEZXZNb2RlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldCwgaGVhZCwgaXNQbGFpbk9iamVjdCwgdGVtcGxhdGUgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtcbiAgRU1QVFksXG4gIE9ic2VydmFibGUsXG4gIFN1YmplY3QsXG4gIGZvcmtKb2luLFxuICB0aHJvd0Vycm9yLFxuICBjYXRjaEVycm9yLFxuICBmaWx0ZXIsXG4gIGZpbmFsaXplLFxuICBtYXAsXG4gIHRha2VVbnRpbCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBhamF4IH0gZnJvbSAncnhqcy9hamF4JztcblxuaW1wb3J0IHsgQVBJX0dBVEVXQVksIFRFTVBMQVRFX09QVElPTlMgfSBmcm9tICcuLi9jb3JlL2NvbnN0YW50cy9jb25zdGFudHMnO1xuaW1wb3J0IHsgVE9LRU5fQkFTRV9IUkVGIH0gZnJvbSAnLi4vY29yZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IGlzQWJzb2x1dGVVcmwgfSBmcm9tICcuLi9jb3JlL3V0aWxzL2NvbW1vbic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlSW5wdXQgfSBmcm9tICcuLi9jb3JlL3V0aWxzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgcGFyc2UgfSBmcm9tICcuLi9jb3JlL3V0aWxzL3lhbWwnO1xuXG5pbXBvcnQge1xuICBGQUxMQkFDS19MQU5HVUFHRSxcbiAgTE9DQUxFX1BMQUNFSE9MREVSX1JFR0VYLFxuICBMT0NBTEVfU1RPUkFHRSxcbn0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgVFJBTlNMQVRFX09QVElPTlMsIFRSQU5TTEFUSU9OUyB9IGZyb20gJy4vdG9rZW5zJztcbmltcG9ydCB7XG4gIFRyYW5zbGF0ZUtleSxcbiAgVHJhbnNsYXRlT3B0aW9ucyxcbiAgVHJhbnNsYXRpb24sXG4gIFRyYW5zbGF0aW9uVmFsdWUsXG4gIFRyYW5zbGF0aW9ucyxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRlU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIF9yZW1vdGVMb2FkZWQ/OiBib29sZWFuO1xuXG4gIGdldCByZW1vdGVMb2FkZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlbW90ZUxvYWRlZDtcbiAgfVxuXG4gIEBPYnNlcnZhYmxlSW5wdXQoJ19yZW1vdGVMb2FkZWQnKVxuICByZWFkb25seSByZW1vdGVMb2FkZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCB1bmRlZmluZWQ+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0aW9uc0xpc3Q6IEFycmF5PFJlYWRvbmx5PFRyYW5zbGF0aW9ucz4+O1xuICBwcml2YXRlIHJlbW90ZVRyYW5zbGF0aW9uc0xpc3Q6IEFycmF5PFJlYWRvbmx5PFRyYW5zbGF0aW9ucz4+O1xuICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IFRyYW5zbGF0ZU9wdGlvbnM7XG5cbiAgbG9jYWxlOiBzdHJpbmc7XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIHJlYWRvbmx5IGxvY2FsZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBnZXQgbG9jYWxlcygpIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmxvY2FsZXM7XG4gIH1cblxuICBnZXQgZmFsbGJhY2tMb2NhbGUoKSB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5mYWxsYmFja0xvY2FsZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCxcbiAgICBASW5qZWN0KFRPS0VOX0JBU0VfSFJFRilcbiAgICBwcml2YXRlIHJlYWRvbmx5IGJhc2VIcmVmOiBzdHJpbmcsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KFRSQU5TTEFURV9PUFRJT05TKVxuICAgIG9wdGlvbnM6IFRyYW5zbGF0ZU9wdGlvbnMsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChUUkFOU0xBVElPTlMpIHRyYW5zbGF0aW9uTGlzdDogVHJhbnNsYXRpb25zW10sXG4gICkge1xuICAgIHRoaXMubG9jYWxlID0gb3B0aW9ucz8ubG9jYWxlIHx8IG5hdmlnYXRvci5sYW5ndWFnZTtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICBsb2NhbGVzOiBbdGhpcy5sb2NhbGVdLFxuICAgICAgZmFsbGJhY2tMb2NhbGU6IEZBTExCQUNLX0xBTkdVQUdFLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9O1xuXG4gICAgdGhpcy50cmFuc2xhdGlvbnNMaXN0ID0gW1xuICAgICAgb3B0aW9ucz8udHJhbnNsYXRpb25zLFxuICAgICAgLi4uKHRyYW5zbGF0aW9uTGlzdCB8fCBbXSksXG4gICAgXS5maWx0ZXIoQm9vbGVhbik7XG5cbiAgICBpZiAob3B0aW9ucz8ucmVtb3RlVXJsKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShvcHRpb25zLnJlbW90ZVVybCkpIHtcbiAgICAgICAgb3B0aW9ucy5yZW1vdGVVcmwuZm9yRWFjaCh1cmwgPT4gdGhpcy5hZGRSZW1vdGVUcmFuc2xhdGlvbnModXJsKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFkZFJlbW90ZVRyYW5zbGF0aW9ucyhvcHRpb25zLnJlbW90ZVVybCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95JCQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIGtleSAtIOe/u+ivkWtleVxuICAgKiBAcGFyYW0gZGF0YSAtIOagueaNrue/u+ivkeS4iuS4i+aWh+aVsOaNruiOt+WPlue/u+ivkeWGheWuue+8jOe/u+ivkemhueS4jeWtmOWcqOebtOaOpei/lOWbniBrZXkg5paH5pysXG4gICAqIEBwYXJhbSBpZ25vcmVOb25FeGlzdCAtIOW8gOWPkeeOr+Wig+aYr+WQpuW/veinhuS4jeWtmOWcqOeahOe/u+ivkemhuVxuICAgKi9cbiAgZ2V0KGtleTogVHJhbnNsYXRlS2V5LCBkYXRhPzogdW5rbm93biwgaWdub3JlTm9uRXhpc3QgPSBmYWxzZSkge1xuICAgIGNvbnN0IHRyYW5zbGF0aW9uID0gdGhpcy5nZXRSYXcoa2V5LCBpZ25vcmVOb25FeGlzdCk7XG4gICAgaWYgKGRhdGEgIT0gbnVsbCAmJiB0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcpIHtcbiAgICAgIGRhdGEgPSBbZGF0YV07XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdGVtcGxhdGUodHJhbnNsYXRpb24sIFRFTVBMQVRFX09QVElPTlMpKGRhdGEgYXMgb2JqZWN0KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlW2lzRGV2TW9kZSgpID8gJ2Vycm9yJyA6ICd3YXJuJ10oXG4gICAgICAgIGBUaGUgdHJhbnNsYXRpb24ga2V5ICcke2tleX0nIGlzIG1pc3NpbmcgdGhlIG5lY2Vzc2FyeSBwYXJhbWV0ZXJzLmAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiDnm7TmjqXov5Tlm57nv7vor5HmlofmnKzmqKHmnb9cbiAgICogQHBhcmFtIGtleSAtIOe/u+ivkWtleVxuICAgKiBAcGFyYW0gaWdub3JlTm9uRXhpc3QgLSDlvIDlj5Hnjq/looPmmK/lkKblv73op4bkuI3lrZjlnKjnmoTnv7vor5HpoblcbiAgICovXG4gIGdldFJhdyhrZXk6IFRyYW5zbGF0ZUtleSwgaWdub3JlTm9uRXhpc3QgPSBmYWxzZSkge1xuICAgIHJldHVybiB0eXBlb2Yga2V5ID09PSAnc3RyaW5nJ1xuICAgICAgPyB0aGlzLl9nZXQoa2V5LCBpZ25vcmVOb25FeGlzdClcbiAgICAgIDogKHRoaXMuX2dldFZhbHVlKGtleSkgYXMgc3RyaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDmoLnmja4gYGxvY2FsZXNgIOW+queOr+WIh+aNouW9k+WJjeWMuuWfn+iuvue9rlxuICAgKi9cbiAgdG9nZ2xlTG9jYWxlKCkge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5vcHRpb25zLmxvY2FsZXMuaW5kZXhPZih0aGlzLmxvY2FsZSk7XG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2Bsb2NhbGVzYCBoYXMgbm90IGJlZW4gaW5pdGlhbGl6ZWQgY29ycmVjdGx5Jyk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG5leHRMb2NhbGUgPVxuICAgICAgdGhpcy5vcHRpb25zLmxvY2FsZXNbXG4gICAgICAgIGluZGV4ID09PSB0aGlzLm9wdGlvbnMubG9jYWxlcy5sZW5ndGggLSAxID8gMCA6IGluZGV4ICsgMVxuICAgICAgXTtcblxuICAgIGlmICghbmV4dExvY2FsZSB8fCB0aGlzLmxvY2FsZSA9PT0gbmV4dExvY2FsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2V0TG9jYWxlKG5leHRMb2NhbGUpO1xuICB9XG5cbiAgc2V0TG9jYWxlKGxvY2FsZTogc3RyaW5nKSB7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oTE9DQUxFX1NUT1JBR0UsIGxvY2FsZSk7XG4gICAgdGhpcy5sb2NhbGUgPSBsb2NhbGU7XG4gIH1cblxuICAvKipcbiAgICog5omL5Yqo5re75Yqg6K+t6KiA5YyFXG4gICAqL1xuICBhZGRUcmFuc2xhdGlvbnModHJhbnNsYXRpb25zOiBUcmFuc2xhdGlvbnMpIHtcbiAgICB0aGlzLnRyYW5zbGF0aW9uc0xpc3QudW5zaGlmdChPYmplY3QuZnJlZXplKHRyYW5zbGF0aW9ucykpO1xuICB9XG5cbiAgLyoqXG4gICAqIOaJi+WKqOa3u+WKoOivreiogOWMhVxuICAgKi9cbiAgYWRkUmVtb3RlVHJhbnNsYXRpb25zKHJlbW90ZVVybDogc3RyaW5nKSB7XG4gICAgaWYgKCFyZW1vdGVVcmwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fcmVtb3RlTG9hZGVkID0gZmFsc2U7XG4gICAgcmVtb3RlVXJsID0gaGVhZChyZW1vdGVVcmwuc3BsaXQoLyMvKSk7XG4gICAgY29uc3QgaXNBYnNvbHV0ZSA9IGlzQWJzb2x1dGVVcmwocmVtb3RlVXJsKTtcbiAgICBjb25zdCBpc0FwaUdhdGVXYXlSZXF1ZXN0ID0gcmVtb3RlVXJsLnN0YXJ0c1dpdGgoQVBJX0dBVEVXQVkpO1xuICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgbGV0IGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICAgICAgaWYgKCFpc0Fic29sdXRlICYmICghdGhpcy5iYXNlSHJlZiB8fCAhaXNBYnNvbHV0ZVVybCh0aGlzLmJhc2VIcmVmKSkpIHtcbiAgICAgICAgZXJyb3JNZXNzYWdlID0gJ2Fic29sdXRlIGJhc2UgaHJlZiBpcyByZXF1aXJlZCBmb3IgcmVsYXRpdmUgcmVtb3RlIHVybCc7XG4gICAgICB9IGVsc2UgaWYgKHJlbW90ZVVybC5zcGxpdCgnPycpWzBdLmluY2x1ZGVzKCcuLycpKSB7XG4gICAgICAgIGVycm9yTWVzc2FnZSA9XG4gICAgICAgICAgJ2RvIG5vdCB1c2UgYW55IGRvdCB3aXRoIHNsYXNoIGZvciByZWxhdGl2ZSB1cmwgd2hpY2ggc2hvdWxkIGFsd2F5cyBiYXNlIGZyb20gYmFzZSBocmVmJztcbiAgICAgIH1cbiAgICAgIGlmIChlcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihlcnJvck1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIWlzQWJzb2x1dGUgJiYgIWlzQXBpR2F0ZVdheVJlcXVlc3QpIHtcbiAgICAgIHJlbW90ZVVybCA9XG4gICAgICAgICh0aGlzLmJhc2VIcmVmLmVuZHNXaXRoKCcvJykgPyB0aGlzLmJhc2VIcmVmIDogdGhpcy5iYXNlSHJlZiArICcvJykgK1xuICAgICAgICByZW1vdGVVcmw7XG4gICAgfVxuICAgIChMT0NBTEVfUExBQ0VIT0xERVJfUkVHRVgudGVzdChyZW1vdGVVcmwpXG4gICAgICA/IGZvcmtKb2luKFxuICAgICAgICAgIHRoaXMub3B0aW9ucy5sb2NhbGVzLm1hcChsb2NhbGUgPT5cbiAgICAgICAgICAgIHRoaXMuZmV0Y2hUcmFuc2xhdGlvbihyZW1vdGVVcmwsIGxvY2FsZSkucGlwZShcbiAgICAgICAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5sb29zZSkge1xuICAgICAgICAgICAgICAgICAgY29uc3QgbG9vc2VMb2NhbGUgPSB0aGlzLl9nZXRMb29zZUxvY2FsZShsb2NhbGUpO1xuICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBsb2NhbGUgIT09IGxvb3NlTG9jYWxlICYmXG4gICAgICAgICAgICAgICAgICAgICF0aGlzLm9wdGlvbnMubG9jYWxlcy5pbmNsdWRlcyhsb29zZUxvY2FsZSlcbiAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mZXRjaFRyYW5zbGF0aW9uKHJlbW90ZVVybCwgbG9vc2VMb2NhbGUpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gaXNEZXZNb2RlKCkgPyB0aHJvd0Vycm9yKCgpID0+IGVycm9yKSA6IEVNUFRZO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgZmlsdGVyKGlzUGxhaW5PYmplY3QpLFxuICAgICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgKHRyYW5zbGF0aW9uOiBUcmFuc2xhdGlvbikgPT5cbiAgICAgICAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgICAgICAgIFtsb2NhbGVdOiB0cmFuc2xhdGlvbixcbiAgICAgICAgICAgICAgICAgIH0pIGFzIFRyYW5zbGF0aW9ucyxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKSxcbiAgICAgICAgKS5waXBlKG1hcChfID0+IF8ucmVkdWNlKE9iamVjdC5hc3NpZ24pKSlcbiAgICAgIDogdGhpcy5mZXRjaFRyYW5zbGF0aW9uKHJlbW90ZVVybCkucGlwZShcbiAgICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IChpc0Rldk1vZGUoKSA/IHRocm93RXJyb3IoKCkgPT4gZXJyb3IpIDogRU1QVFkpKSxcbiAgICAgICAgKVxuICAgIClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiAodGhpcy5fcmVtb3RlTG9hZGVkID0gdHJ1ZSkpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShyZW1vdGVUcmFuc2xhdGlvbnMgPT4ge1xuICAgICAgICBpZiAoIXJlbW90ZVRyYW5zbGF0aW9ucykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMucmVtb3RlVHJhbnNsYXRpb25zTGlzdCkge1xuICAgICAgICAgIHRoaXMucmVtb3RlVHJhbnNsYXRpb25zTGlzdCA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVtb3RlVHJhbnNsYXRpb25zTGlzdC51bnNoaWZ0KE9iamVjdC5mcmVlemUocmVtb3RlVHJhbnNsYXRpb25zKSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiDku47ov5znqIsgdXJsIOaooeadv+WSjOWMuuWfn+iOt+WPlue/u+ivkeWMhVxuICAgKi9cbiAgZmV0Y2hUcmFuc2xhdGlvbihyZW1vdGVVcmw6IHN0cmluZyk6IE9ic2VydmFibGU8VHJhbnNsYXRpb25zPjtcbiAgZmV0Y2hUcmFuc2xhdGlvbihyZW1vdGVVcmw6IHN0cmluZywgbG9jYWxlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFRyYW5zbGF0aW9uPjtcbiAgZmV0Y2hUcmFuc2xhdGlvbihyZW1vdGVVcmw6IHN0cmluZywgbG9jYWxlPzogc3RyaW5nKSB7XG4gICAgaWYgKGlzRGV2TW9kZSgpICYmIExPQ0FMRV9QTEFDRUhPTERFUl9SRUdFWC50ZXN0KHJlbW90ZVVybCkgJiYgIWxvY2FsZSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgJ2Bsb2NhbGVgIGlzIHJlcXVpcmVkIHNpbmUgdGhlIHByb3ZpZGVkIHJlbW90ZSB1cmwgY29udGFpbnMgbG9jYWxlIHBsYWNlaG9sZGVyJyxcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IGlzSlNPTiA9IHJlbW90ZVVybC5lbmRzV2l0aCgnLmpzb24nKTtcbiAgICBjb25zdCBpc0FwaUdhdGVXYXlSZXF1ZXN0ID0gcmVtb3RlVXJsLnN0YXJ0c1dpdGgoQVBJX0dBVEVXQVkpO1xuICAgIGNvbnN0IHVybCA9IGxvY2FsZVxuICAgICAgPyByZW1vdGVVcmwucmVwbGFjZShMT0NBTEVfUExBQ0VIT0xERVJfUkVHRVgsIGxvY2FsZSlcbiAgICAgIDogcmVtb3RlVXJsO1xuICAgIGNvbnN0IHJlc3BvbnNlVHlwZSA9IGlzSlNPTiA/ICdqc29uJyA6ICd0ZXh0JztcbiAgICBpZiAoaXNBcGlHYXRlV2F5UmVxdWVzdCkge1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAucmVxdWVzdCgnR0VUJywgdXJsLCB7IHJlc3BvbnNlVHlwZSB9KVxuICAgICAgICAucGlwZShtYXAoYm9keSA9PiAoaXNKU09OID8gYm9keSA6IHBhcnNlKGJvZHkpKSkpO1xuICAgIH1cbiAgICByZXR1cm4gYWpheCh7XG4gICAgICB1cmwsXG4gICAgICByZXNwb25zZVR5cGUsXG4gICAgfSkucGlwZShcbiAgICAgIG1hcCgoeyByZXNwb25zZSB9KSA9PiAoaXNKU09OID8gcmVzcG9uc2UgOiBwYXJzZShyZXNwb25zZSBhcyBzdHJpbmcpKSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldExvb3NlTG9jYWxlKGxvY2FsZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGhlYWQobG9jYWxlLnNwbGl0KC9bXy1dLykpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0VmFsdWUoXG4gICAgc291cmNlOiBUcmFuc2xhdGlvbixcbiAgICBsb2NhbGUgPSB0aGlzLmxvY2FsZSxcbiAgKTogVHJhbnNsYXRpb25WYWx1ZSB7XG4gICAgaWYgKCFzb3VyY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IHZhbHVlID0gc291cmNlW2xvY2FsZV07XG4gICAgaWYgKHZhbHVlID09IG51bGwgJiYgdGhpcy5vcHRpb25zLmxvb3NlKSB7XG4gICAgICBjb25zdCBsb29zZUxvY2FsZSA9IHRoaXMuX2dldExvb3NlTG9jYWxlKGxvY2FsZSk7XG4gICAgICB2YWx1ZSA9XG4gICAgICAgIGxvY2FsZSA9PT0gbG9vc2VMb2NhbGVcbiAgICAgICAgICA/IE9iamVjdC5lbnRyaWVzKHNvdXJjZSkuZmluZChcbiAgICAgICAgICAgICAgKFtrZXldKSA9PiBsb2NhbGUgPT09IHRoaXMuX2dldExvb3NlTG9jYWxlKGtleSksXG4gICAgICAgICAgICApPy5bMV1cbiAgICAgICAgICA6IHNvdXJjZVtsb29zZUxvY2FsZV07XG4gICAgfVxuICAgIGlmICh2YWx1ZSA9PSBudWxsICYmIGxvY2FsZSAhPT0gdGhpcy5vcHRpb25zLmZhbGxiYWNrTG9jYWxlKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZ2V0VmFsdWUoc291cmNlLCB0aGlzLm9wdGlvbnMuZmFsbGJhY2tMb2NhbGUpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIF9nZXRXaXRoRmFsbGJhY2soXG4gICAga2V5OiBzdHJpbmcsXG4gICAgbG9jYWxlID0gdGhpcy5sb2NhbGUsXG4gICAgdHJhbnNsYXRpb25zOiBUcmFuc2xhdGlvbnMsXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgdmFsdWUgPSBnZXQodGhpcy5fZ2V0VmFsdWUodHJhbnNsYXRpb25zLCBsb2NhbGUpLCBrZXkpO1xuICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgaXNEZXZNb2RlKCkgJiZcbiAgICAgICAgdHlwZW9mIGdldCh2YWx1ZSwgU3ltYm9sLnRvUHJpbWl0aXZlKSAhPT0gJ2Z1bmN0aW9uJ1xuICAgICAgKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBgVGhlIHRyYW5zbGF0aW9uIGZvciBsb2NhbGU6IFxcYCR7bG9jYWxlfVxcYCBhbmQga2V5OlxcYCR7a2V5fVxcYCBpcyBhbiBvYmplY3QsIHdoaWNoIGNvdWxkIGJlIHVuZXhwZWN0ZWRgLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgfVxuICAgIGlmIChsb2NhbGUgIT09IHRoaXMub3B0aW9ucy5mYWxsYmFja0xvY2FsZSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2dldFdpdGhGYWxsYmFjayhcbiAgICAgICAga2V5LFxuICAgICAgICB0aGlzLm9wdGlvbnMuZmFsbGJhY2tMb2NhbGUsXG4gICAgICAgIHRyYW5zbGF0aW9ucyxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0QmFzZShcbiAgICBrZXk6IHN0cmluZyxcbiAgICBsb2NhbGUgPSB0aGlzLmxvY2FsZSxcbiAgICB0cmFuc2xhdGlvbnNMaXN0OiBUcmFuc2xhdGlvbnNbXSxcbiAgKSB7XG4gICAgaWYgKCF0cmFuc2xhdGlvbnNMaXN0IHx8IHRyYW5zbGF0aW9uc0xpc3QubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSB0cmFuc2xhdGlvbnNMaXN0Lmxlbmd0aDsgaSA+IDA7IGktLSkge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLl9nZXRXaXRoRmFsbGJhY2soa2V5LCBsb2NhbGUsIHRyYW5zbGF0aW9uc0xpc3RbaSAtIDFdKTtcbiAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9nZXQoa2V5OiBzdHJpbmcsIGlnbm9yZU5vbkV4aXN0ID0gZmFsc2UsIGxvY2FsZSA9IHRoaXMubG9jYWxlKSB7XG4gICAgbGV0IHZhbHVlID0gdGhpcy5fZ2V0QmFzZShrZXksIGxvY2FsZSwgdGhpcy5yZW1vdGVUcmFuc2xhdGlvbnNMaXN0KTtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSB0aGlzLl9nZXRCYXNlKGtleSwgbG9jYWxlLCB0aGlzLnRyYW5zbGF0aW9uc0xpc3QpO1xuICAgIH1cbiAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBpc0Rldk1vZGUoKSAmJlxuICAgICAgIWlnbm9yZU5vbkV4aXN0ICYmXG4gICAgICB0eXBlb2YgZ2V0KHZhbHVlLCBTeW1ib2wudG9QcmltaXRpdmUpICE9PSAnZnVuY3Rpb24nXG4gICAgKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBObyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgbG9jYWxlOiBcXGAke2xvY2FsZX1cXGAgYW5kIGtleTogXFxgJHtrZXl9XFxgLCB3aGljaCBjb3VsZCBiZSB1bmV4cGVjdGVkYCxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBrZXk7XG4gIH1cblxuICBwcml2YXRlIF9jb21wYXJlS2V5cyhcbiAgICBsb2NhbGU6IHN0cmluZyxcbiAgICB0cmFuc2xhdGlvbjogVHJhbnNsYXRpb24sXG4gICAgcHJldlRyYW5zbGF0aW9uOiBUcmFuc2xhdGlvbixcbiAgICBwYXRoOiBzdHJpbmdbXSA9IFtdLFxuICApIHtcbiAgICBpZiAodHJhbnNsYXRpb24gPT0gbnVsbCB8fCBwcmV2VHJhbnNsYXRpb24gPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIE9iamVjdC5lbnRyaWVzKHRyYW5zbGF0aW9uKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHByZXZUcmFuc2xhdGlvbiwga2V5KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHByZXZWYWx1ZSA9IHByZXZUcmFuc2xhdGlvbltrZXldO1xuICAgICAgY29uc3QgdmFsdWVJc1BsYWluT2JqZWN0ID0gaXNQbGFpbk9iamVjdCh2YWx1ZSk7XG4gICAgICBjb25zdCBwcmV2VmFsdWVJc1BsYWluT2JqZWN0ID0gaXNQbGFpbk9iamVjdChwcmV2VmFsdWUpO1xuXG4gICAgICBpZiAodmFsdWVJc1BsYWluT2JqZWN0ICYmIHByZXZWYWx1ZUlzUGxhaW5PYmplY3QpIHtcbiAgICAgICAgdGhpcy5fY29tcGFyZUtleXMoXG4gICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIHZhbHVlIGFzIFRyYW5zbGF0aW9uLFxuICAgICAgICAgIHByZXZWYWx1ZSBhcyBUcmFuc2xhdGlvbixcbiAgICAgICAgICBbLi4ucGF0aCwga2V5XSxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXZhbHVlSXNQbGFpbk9iamVjdCAmJiAhcHJldlZhbHVlSXNQbGFpbk9iamVjdCkge1xuICAgICAgICBjb25zdCBvdXRwdXRQYXRoID0gWy4uLnBhdGgsIGtleV0uam9pbignIC0+ICcpO1xuICAgICAgICBpZiAodmFsdWUgPT09IHByZXZWYWx1ZSkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBUaGUgY3VzdG9taXplZCB0cmFuc2xhdGlvbiBmb3IgbG9jYWxlOiBcXGAke2xvY2FsZX1cXGAgYW5kIHBhdGg6IFxcYCR7b3V0cHV0UGF0aH1cXGAgaXMgZHVwbGljYXRlZCB3aXRoIHRoZSBvdGhlciB0cmFuc2xhdGlvbiwgcGxlYXNlIHJlbW92ZSBpdCBpbiB5b3VyIHRyYW5zbGF0aW9uIGZpbGUuYCxcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBUd28ga2V5cyB0aGF0IHRoZSBsb2NhbGUgaXMgXFxgJHtsb2NhbGV9XFxgIGFuZCB0aGUgcGF0aCBpcyBcXGAke291dHB1dFBhdGh9XFxgIGFyZSBzYW1lLCAgYnV0IHRoZWlyIHZhbHVlcyBhcmUgbm90IGVxdWFsICwgcGxlYXNlIHJlbW92ZSBvbmUgb2YgdGhlbSBvciBjaGFuZ2Ugb25lIG9mIHRoZSBrZXlzLmAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -14,11 +14,11 @@ export declare class K8SResourcePagedList<R extends KubernetesResource = Kuberne
|
|
|
14
14
|
loading$: Observable<boolean>;
|
|
15
15
|
items$: Observable<R[]>;
|
|
16
16
|
totalItems$: Observable<number>;
|
|
17
|
-
loadError$: Observable<
|
|
17
|
+
loadError$: Observable<Status | HttpErrorResponse>;
|
|
18
18
|
$loading: Signal<boolean>;
|
|
19
19
|
$items: Signal<R[]>;
|
|
20
20
|
$totalItems: Signal<number>;
|
|
21
|
-
$loadError: Signal<
|
|
21
|
+
$loadError: Signal<Status | HttpErrorResponse>;
|
|
22
22
|
constructor(config: PagedListConfig<R, P>);
|
|
23
23
|
reload(): void;
|
|
24
24
|
private sourceLoadState;
|
package/package.json
CHANGED
|
@@ -9,7 +9,7 @@ export declare class NoticeComponent {
|
|
|
9
9
|
constructor(cdr: ChangeDetectorRef);
|
|
10
10
|
open: (message: Message) => () => void;
|
|
11
11
|
close: (id?: string) => void;
|
|
12
|
-
iconMap(type: InlineAlertType): "check_circle_s" | "
|
|
12
|
+
iconMap(type: InlineAlertType): "check_circle_s" | "exclamation_circle_s" | "exclamation_triangle_s" | "info_circle_s";
|
|
13
13
|
static ɵfac: i0.ɵɵFactoryDeclaration<NoticeComponent, never>;
|
|
14
14
|
static ɵcmp: i0.ɵɵComponentDeclaration<NoticeComponent, "acl-page-notice", never, {}, {}, ["pageHeaderAppend"], never, true, never>;
|
|
15
15
|
}
|
package/table/component.d.ts
CHANGED
|
@@ -52,7 +52,7 @@ export declare class TableComponent<Item extends object, Context = TableUtilServ
|
|
|
52
52
|
finalDataSource$: Observable<Item[]>;
|
|
53
53
|
finalResourceName$: Observable<string>;
|
|
54
54
|
columnDefs$: Observable<TableColumnDefs<Item, Context>>;
|
|
55
|
-
columnNames$: Observable<import("@alauda-fe/common").LiteralUnion<"
|
|
55
|
+
columnNames$: Observable<import("@alauda-fe/common").LiteralUnion<"action" | "name", string>[]>;
|
|
56
56
|
activeSort$$: ReplaySubject<Sort>;
|
|
57
57
|
activeSort$: Observable<Sort>;
|
|
58
58
|
filteredItems$: Observable<Item[]>;
|