@alauda-fe/common 1.4.32-beta.0 → 1.4.33-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -83,7 +83,7 @@ export declare class ArrayFormTableComponent implements OnDestroy {
83
83
  addDisabled: boolean | '';
84
84
  actionColumnDivider: boolean | '';
85
85
  showZeroState: boolean;
86
- get formDirective(): FormGroupDirective | NgForm;
86
+ get formDirective(): NgForm | FormGroupDirective;
87
87
  /**
88
88
  * 自定义是否展示错误内容
89
89
  * 例如 control 是 FormGroup,只有在内部子 control 错误时才需要展示错误内容
@@ -19,7 +19,7 @@ export declare class ClusterListComponent extends ResourceListBase implements On
19
19
  private setSelected;
20
20
  ngOnDestroy(): void;
21
21
  mapResource(list: Cluster[]): ClusterDataItem[];
22
- getClusterStatus(cluster?: Cluster): "normal" | "abnormal";
22
+ getClusterStatus(cluster?: Cluster): "abnormal" | "normal";
23
23
  static ɵfac: i0.ɵɵFactoryDeclaration<ClusterListComponent, never>;
24
24
  static ɵcmp: i0.ɵɵComponentDeclaration<ClusterListComponent, "acl-cluster-list", never, { "value": { "alias": "value"; "required": false; }; }, {}, never, never, false, never>;
25
25
  }
@@ -21,7 +21,7 @@ export declare class BaseNestedFormControl<V, M = V> implements AfterViewInit, O
21
21
  protected asyncValidator: boolean;
22
22
  protected cdr: ChangeDetectorRef;
23
23
  protected destroy$$: Subject<void>;
24
- protected hostForm: FormGroupDirective | NgForm;
24
+ protected hostForm: NgForm | FormGroupDirective;
25
25
  constructor();
26
26
  ngAfterViewInit(): void;
27
27
  ngOnDestroy(): void;
@@ -788,7 +788,7 @@ export declare const RESOURCE_TYPES: {
788
788
  readonly TUNNEL_CLUSTER: "TUNNEL_CLUSTER";
789
789
  readonly K8S_CLUSTER: "K8S_CLUSTER";
790
790
  };
791
- export declare const getYamlApiVersion: (definition: "PROJECT" | "ALAUDA_LOADBALANCER2" | "ALB2" | "HELM_REQUEST" | "HELM_REQUEST_V1" | "DEPLOYMENT" | "DAEMONSET" | "STATEFULSET" | "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" | "PROMETHEUS_RULE" | "ALERT_HISTORY" | "SELF_SUBJECT_ACCESS_REVIEW" | "VIEW" | "SERVICE" | "LIMIT_RANGE" | "SECRET" | "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" | "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" | "MODULE_CONFIG" | "MODULE_PLUGIN" | "PRODUCT_ENTRY" | "PRODUCT_DOCS_ENTRY" | "SERVICEMESH_GROUP" | "CLUSTER_MODULE" | "USER_SECURITY_POLICY" | "CONNECTOR" | "ACCESS_TOKEN_INFO" | "FUNCTION_RESOURCE" | "USER_BINDING" | "USER" | "GROUP" | "PROJECT_MEMBER" | "ROLE_TEMPLATE" | "BATCH_ACTION" | "EVENT" | "SERVICE_MONITOR" | "OAM_APPLICATION" | "ARGOCD_APPLICATION_SET" | "ARGOCD_APPLICATION" | "OPERATOR_VIEW" | "MODULE_PLUGIN_VIEW" | "RESOURCE_PATCH" | "COMPONENT_PROBER" | "INSPECTION" | "INSPECTION_DETAILS" | "INSPECTION_ITEMS" | "MESSAGE" | "MODULE_HEALTH" | "MODULE_HEALTH_RECORD" | "AUDIT" | "LOG_POLICY" | "FUNCTION_TEST" | "PROJECT_BINDING" | "PROBE" | "REPORT" | "NAMESPACE_RESOURCE_RATIO" | "CUSTOM_RESOURCE_DEFINITION" | "LICENSE" | "RECORD" | "CSI_NODE" | "TSF" | "TDSQL" | "PORTAL" | "NAMESPACE_IMPORT" | "CLUSTER_ADDON_TYPE" | "CLUSTER_CREDENTIAL" | "CODING" | "TI_MATRIX" | "SYSTEM_CONFIG" | "CERTIFICATE" | "SECURITY_RULE" | "REGION" | "TOPOLVM_CLUSTER_V2" | "BUCKET" | "SCHEDULE" | "BACKUP_STORAGE_LOCATION" | "BACKUP_STORAGE_LOCATION_REPO" | "BACKUP" | "DELETE_BACKUP_REQUEST" | "ETCD_BACKUP_RECORD" | "RESTORE" | "RAW_DEVICE" | "APP_RELEASES" | "NOTIFICATION_TEMPLATE" | "NOTIFICATION_GROUP" | "NOTIFICATION" | "TUNNEL_CLUSTER" | "K8S_CLUSTER" | {
791
+ export declare const getYamlApiVersion: (definition: "ALAUDA_LOADBALANCER2" | "ALB2" | "HELM_REQUEST" | "HELM_REQUEST_V1" | "DEPLOYMENT" | "DAEMONSET" | "STATEFULSET" | "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" | "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" | "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" | "MODULE_CONFIG" | "MODULE_PLUGIN" | "PRODUCT_ENTRY" | "PRODUCT_DOCS_ENTRY" | "SERVICEMESH_GROUP" | "CLUSTER_MODULE" | "USER_SECURITY_POLICY" | "CONNECTOR" | "ACCESS_TOKEN_INFO" | "FUNCTION_RESOURCE" | "USER_BINDING" | "USER" | "GROUP" | "PROJECT_MEMBER" | "ROLE_TEMPLATE" | "BATCH_ACTION" | "EVENT" | "SERVICE_MONITOR" | "OAM_APPLICATION" | "ARGOCD_APPLICATION_SET" | "ARGOCD_APPLICATION" | "OPERATOR_VIEW" | "MODULE_PLUGIN_VIEW" | "RESOURCE_PATCH" | "COMPONENT_PROBER" | "INSPECTION" | "INSPECTION_DETAILS" | "INSPECTION_ITEMS" | "MESSAGE" | "MODULE_HEALTH" | "MODULE_HEALTH_RECORD" | "AUDIT" | "LOG_POLICY" | "FUNCTION_TEST" | "PROJECT_BINDING" | "PROBE" | "REPORT" | "NAMESPACE_RESOURCE_RATIO" | "CUSTOM_RESOURCE_DEFINITION" | "LICENSE" | "RECORD" | "CSI_NODE" | "TSF" | "TDSQL" | "PORTAL" | "NAMESPACE_IMPORT" | "CLUSTER_ADDON_TYPE" | "CLUSTER_CREDENTIAL" | "CODING" | "TI_MATRIX" | "SYSTEM_CONFIG" | "CERTIFICATE" | "SECURITY_RULE" | "REGION" | "TOPOLVM_CLUSTER_V2" | "BUCKET" | "SCHEDULE" | "BACKUP_STORAGE_LOCATION" | "BACKUP_STORAGE_LOCATION_REPO" | "BACKUP" | "DELETE_BACKUP_REQUEST" | "ETCD_BACKUP_RECORD" | "RESTORE" | "RAW_DEVICE" | "APP_RELEASES" | "NOTIFICATION_TEMPLATE" | "NOTIFICATION_GROUP" | "NOTIFICATION" | "TUNNEL_CLUSTER" | "K8S_CLUSTER" | {
792
792
  apiGroup: string;
793
793
  type: string;
794
794
  } | {
@@ -36,4 +36,4 @@ export declare const compareVersion: {
36
36
  gte: (v1: string, v2: string) => boolean;
37
37
  cmp: (v1: string, v2: string, operator: CompareOperator) => boolean;
38
38
  };
39
- export declare const compareMinorVersion: (v1: string, v2: string) => 1 | 0 | -1;
39
+ export declare const compareMinorVersion: (v1: string, v2: string) => 0 | 1 | -1;
@@ -66,6 +66,7 @@ export const yamlReadMinimapOptions = {
66
66
  export const textWriteOptions = {
67
67
  language: 'text',
68
68
  ...commonOptions,
69
+ autoIndent: 'none',
69
70
  };
70
71
  // for logs
71
72
  export const logsReadOptions = {
@@ -73,4 +74,4 @@ export const logsReadOptions = {
73
74
  readOnly: true,
74
75
  renderLineHighlight: 'none',
75
76
  };
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1lZGl0b3ItY29uZmlncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9jb2RlL2NvZGUtZWRpdG9yLWNvbmZpZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBVUgsTUFBTSxhQUFhLEdBQTRCO0lBQzdDLElBQUksRUFBRSxJQUFJO0lBQ1YsSUFBSSxFQUFFLElBQUk7SUFDVixNQUFNLEVBQUUsSUFBSTtDQUNiLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQTRCO0lBQ3BELFFBQVEsRUFBRSxLQUFLO0lBQ2YsS0FBSyxFQUFFLElBQUk7SUFDWCxPQUFPLEVBQUUsS0FBSztJQUNkLE1BQU0sRUFBRSxJQUFJO0lBQ1osR0FBRyxhQUFhO0NBQ2pCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQTRCO0lBQ2xELFFBQVEsRUFBRSxLQUFLO0lBQ2YsS0FBSyxFQUFFLEtBQUs7SUFDWixPQUFPLEVBQUUsS0FBSztJQUNkLE1BQU0sRUFBRSxLQUFLO0lBQ2IsR0FBRyxhQUFhO0NBQ2pCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQTRCO0lBQ3BELFFBQVEsRUFBRSxJQUFJLEVBQUUsaUlBQWlJO0lBQ2pKLEtBQUssRUFBRSxJQUFJO0lBQ1gsT0FBTyxFQUFFLElBQUk7SUFDYixNQUFNLEVBQUUsSUFBSTtJQUNaLEdBQUcsYUFBYTtDQUNqQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUE0QjtJQUNsRCxHQUFHLFdBQVc7SUFDZCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQStCO0lBQ3ZELE9BQU8sRUFBRSxJQUFJO0lBQ2IsUUFBUSxFQUFFLElBQUk7SUFDZCxPQUFPLEVBQUUsQ0FBQztJQUNWLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUU7SUFDM0IsU0FBUyxFQUFFO1FBQ1QsdUJBQXVCLEVBQUUsS0FBSztLQUMvQjtDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQStCO0lBQ3pELEdBQUcsYUFBYTtJQUNoQixRQUFRLEVBQUUsSUFBSTtDQUNmLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQStCO0lBQ3pELFFBQVEsRUFBRSxNQUFNO0lBQ2hCLEdBQUcsZUFBZTtDQUNuQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQStCO0lBQzFELFFBQVEsRUFBRSxNQUFNO0lBQ2hCLEdBQUcsYUFBYTtDQUNqQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQStCO0lBQ2pFLFFBQVEsRUFBRSxNQUFNO0lBQ2hCLEdBQUcsYUFBYTtJQUNoQixPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO0NBQzNCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBK0I7SUFDaEUsUUFBUSxFQUFFLE1BQU07SUFDaEIsR0FBRyxlQUFlO0lBQ2xCLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7Q0FDM0IsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUErQjtJQUMxRCxRQUFRLEVBQUUsTUFBTTtJQUNoQixHQUFHLGFBQWE7Q0FDakIsQ0FBQztBQUVGLFdBQVc7QUFDWCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQStCO0lBQ3pELFFBQVEsRUFBRSxJQUFJO0lBQ2QsUUFBUSxFQUFFLElBQUk7SUFDZCxtQkFBbUIsRUFBRSxNQUFNO0NBQzVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICogQG1vZHVsZSBjb2RlXG4gKi9cblxuaW1wb3J0IHsgQ29kZUVkaXRvckFjdGlvbnNDb25maWcgfSBmcm9tICdAYWxhdWRhL2NvZGUtZWRpdG9yJztcblxuZXhwb3J0IHR5cGUgSUVkaXRvckNvbnN0cnVjdGlvbk9wdGlvbnMgPVxuICBpbXBvcnQoJ21vbmFjby1lZGl0b3IvZXNtL3ZzL2VkaXRvci9lZGl0b3IuYXBpJykuZWRpdG9yLklFZGl0b3JDb25zdHJ1Y3Rpb25PcHRpb25zICYge1xuICAgIGxhbmd1YWdlPzogc3RyaW5nO1xuICAgIHRhYlNpemU/OiBudW1iZXI7XG4gIH07XG5cbmNvbnN0IGNvbW1vbkFjdGlvbnM6IENvZGVFZGl0b3JBY3Rpb25zQ29uZmlnID0ge1xuICBjb3B5OiB0cnVlLFxuICBmaW5kOiB0cnVlLFxuICBleHBvcnQ6IHRydWUsXG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlQWN0aW9uczogQ29kZUVkaXRvckFjdGlvbnNDb25maWcgPSB7XG4gIGRpZmZNb2RlOiBmYWxzZSxcbiAgY2xlYXI6IHRydWUsXG4gIHJlY292ZXI6IGZhbHNlLFxuICBpbXBvcnQ6IHRydWUsXG4gIC4uLmNvbW1vbkFjdGlvbnMsXG59O1xuXG5leHBvcnQgY29uc3Qgdmlld0FjdGlvbnM6IENvZGVFZGl0b3JBY3Rpb25zQ29uZmlnID0ge1xuICBkaWZmTW9kZTogZmFsc2UsXG4gIGNsZWFyOiBmYWxzZSxcbiAgcmVjb3ZlcjogZmFsc2UsXG4gIGltcG9ydDogZmFsc2UsXG4gIC4uLmNvbW1vbkFjdGlvbnMsXG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlQWN0aW9uczogQ29kZUVkaXRvckFjdGlvbnNDb25maWcgPSB7XG4gIGRpZmZNb2RlOiB0cnVlLCAvLyBpZiB0cnVlLCB5b3Ugc2hvdWxkIGFsc28gc2V0ICdvcmlnaW5hbFZhbHVlJyBhdHRyaWJ1dGUsIGVnOiA8YXVpLWNvZGUtZWRpdG9yIFtvcmlnaW5hbFZhbHVlXT1cIm9yaWdpbmFsRmlsZVwiPjwvYXVpLWNvZGUtZWRpdG9yPlxuICBjbGVhcjogdHJ1ZSxcbiAgcmVjb3ZlcjogdHJ1ZSxcbiAgaW1wb3J0OiB0cnVlLFxuICAuLi5jb21tb25BY3Rpb25zLFxufTtcblxuZXhwb3J0IGNvbnN0IGxvZ3NBY3Rpb25zOiBDb2RlRWRpdG9yQWN0aW9uc0NvbmZpZyA9IHtcbiAgLi4udmlld0FjdGlvbnMsXG4gIHRoZW1lOiB0cnVlLFxufTtcblxuZXhwb3J0IGNvbnN0IGNvbW1vbk9wdGlvbnM6IElFZGl0b3JDb25zdHJ1Y3Rpb25PcHRpb25zID0ge1xuICBmb2xkaW5nOiB0cnVlLFxuICB3b3JkV3JhcDogJ29uJyxcbiAgdGFiU2l6ZTogMixcbiAgbWluaW1hcDogeyBlbmFibGVkOiBmYWxzZSB9LFxuICBzY3JvbGxiYXI6IHtcbiAgICBhbHdheXNDb25zdW1lTW91c2VXaGVlbDogZmFsc2UsXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgcmVhZG9ubHlPcHRpb25zOiBJRWRpdG9yQ29uc3RydWN0aW9uT3B0aW9ucyA9IHtcbiAgLi4uY29tbW9uT3B0aW9ucyxcbiAgcmVhZE9ubHk6IHRydWUsXG59O1xuXG5leHBvcnQgY29uc3QgeWFtbFJlYWRPcHRpb25zOiBJRWRpdG9yQ29uc3RydWN0aW9uT3B0aW9ucyA9IHtcbiAgbGFuZ3VhZ2U6ICd5YW1sJyxcbiAgLi4ucmVhZG9ubHlPcHRpb25zLFxufTtcblxuZXhwb3J0IGNvbnN0IHlhbWxXcml0ZU9wdGlvbnM6IElFZGl0b3JDb25zdHJ1Y3Rpb25PcHRpb25zID0ge1xuICBsYW5ndWFnZTogJ3lhbWwnLFxuICAuLi5jb21tb25PcHRpb25zLFxufTtcblxuZXhwb3J0IGNvbnN0IHlhbWxXcml0ZU1pbmltYXBPcHRpb25zOiBJRWRpdG9yQ29uc3RydWN0aW9uT3B0aW9ucyA9IHtcbiAgbGFuZ3VhZ2U6ICd5YW1sJyxcbiAgLi4uY29tbW9uT3B0aW9ucyxcbiAgbWluaW1hcDogeyBlbmFibGVkOiB0cnVlIH0sXG59O1xuXG5leHBvcnQgY29uc3QgeWFtbFJlYWRNaW5pbWFwT3B0aW9uczogSUVkaXRvckNvbnN0cnVjdGlvbk9wdGlvbnMgPSB7XG4gIGxhbmd1YWdlOiAneWFtbCcsXG4gIC4uLnJlYWRvbmx5T3B0aW9ucyxcbiAgbWluaW1hcDogeyBlbmFibGVkOiB0cnVlIH0sXG59O1xuXG5leHBvcnQgY29uc3QgdGV4dFdyaXRlT3B0aW9uczogSUVkaXRvckNvbnN0cnVjdGlvbk9wdGlvbnMgPSB7XG4gIGxhbmd1YWdlOiAndGV4dCcsXG4gIC4uLmNvbW1vbk9wdGlvbnMsXG59O1xuXG4vLyBmb3IgbG9nc1xuZXhwb3J0IGNvbnN0IGxvZ3NSZWFkT3B0aW9uczogSUVkaXRvckNvbnN0cnVjdGlvbk9wdGlvbnMgPSB7XG4gIHdvcmRXcmFwOiAnb24nLFxuICByZWFkT25seTogdHJ1ZSxcbiAgcmVuZGVyTGluZUhpZ2hsaWdodDogJ25vbmUnLFxufTtcbiJdfQ==
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1lZGl0b3ItY29uZmlncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9jb2RlL2NvZGUtZWRpdG9yLWNvbmZpZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBVUgsTUFBTSxhQUFhLEdBQTRCO0lBQzdDLElBQUksRUFBRSxJQUFJO0lBQ1YsSUFBSSxFQUFFLElBQUk7SUFDVixNQUFNLEVBQUUsSUFBSTtDQUNiLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQTRCO0lBQ3BELFFBQVEsRUFBRSxLQUFLO0lBQ2YsS0FBSyxFQUFFLElBQUk7SUFDWCxPQUFPLEVBQUUsS0FBSztJQUNkLE1BQU0sRUFBRSxJQUFJO0lBQ1osR0FBRyxhQUFhO0NBQ2pCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQTRCO0lBQ2xELFFBQVEsRUFBRSxLQUFLO0lBQ2YsS0FBSyxFQUFFLEtBQUs7SUFDWixPQUFPLEVBQUUsS0FBSztJQUNkLE1BQU0sRUFBRSxLQUFLO0lBQ2IsR0FBRyxhQUFhO0NBQ2pCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQTRCO0lBQ3BELFFBQVEsRUFBRSxJQUFJLEVBQUUsaUlBQWlJO0lBQ2pKLEtBQUssRUFBRSxJQUFJO0lBQ1gsT0FBTyxFQUFFLElBQUk7SUFDYixNQUFNLEVBQUUsSUFBSTtJQUNaLEdBQUcsYUFBYTtDQUNqQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUE0QjtJQUNsRCxHQUFHLFdBQVc7SUFDZCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQStCO0lBQ3ZELE9BQU8sRUFBRSxJQUFJO0lBQ2IsUUFBUSxFQUFFLElBQUk7SUFDZCxPQUFPLEVBQUUsQ0FBQztJQUNWLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUU7SUFDM0IsU0FBUyxFQUFFO1FBQ1QsdUJBQXVCLEVBQUUsS0FBSztLQUMvQjtDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQStCO0lBQ3pELEdBQUcsYUFBYTtJQUNoQixRQUFRLEVBQUUsSUFBSTtDQUNmLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQStCO0lBQ3pELFFBQVEsRUFBRSxNQUFNO0lBQ2hCLEdBQUcsZUFBZTtDQUNuQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQStCO0lBQzFELFFBQVEsRUFBRSxNQUFNO0lBQ2hCLEdBQUcsYUFBYTtDQUNqQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQStCO0lBQ2pFLFFBQVEsRUFBRSxNQUFNO0lBQ2hCLEdBQUcsYUFBYTtJQUNoQixPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO0NBQzNCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBK0I7SUFDaEUsUUFBUSxFQUFFLE1BQU07SUFDaEIsR0FBRyxlQUFlO0lBQ2xCLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7Q0FDM0IsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUErQjtJQUMxRCxRQUFRLEVBQUUsTUFBTTtJQUNoQixHQUFHLGFBQWE7SUFDaEIsVUFBVSxFQUFFLE1BQU07Q0FDbkIsQ0FBQztBQUVGLFdBQVc7QUFDWCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQStCO0lBQ3pELFFBQVEsRUFBRSxJQUFJO0lBQ2QsUUFBUSxFQUFFLElBQUk7SUFDZCxtQkFBbUIsRUFBRSxNQUFNO0NBQzVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICogQG1vZHVsZSBjb2RlXG4gKi9cblxuaW1wb3J0IHsgQ29kZUVkaXRvckFjdGlvbnNDb25maWcgfSBmcm9tICdAYWxhdWRhL2NvZGUtZWRpdG9yJztcblxuZXhwb3J0IHR5cGUgSUVkaXRvckNvbnN0cnVjdGlvbk9wdGlvbnMgPVxuICBpbXBvcnQoJ21vbmFjby1lZGl0b3IvZXNtL3ZzL2VkaXRvci9lZGl0b3IuYXBpJykuZWRpdG9yLklFZGl0b3JDb25zdHJ1Y3Rpb25PcHRpb25zICYge1xuICAgIGxhbmd1YWdlPzogc3RyaW5nO1xuICAgIHRhYlNpemU/OiBudW1iZXI7XG4gIH07XG5cbmNvbnN0IGNvbW1vbkFjdGlvbnM6IENvZGVFZGl0b3JBY3Rpb25zQ29uZmlnID0ge1xuICBjb3B5OiB0cnVlLFxuICBmaW5kOiB0cnVlLFxuICBleHBvcnQ6IHRydWUsXG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlQWN0aW9uczogQ29kZUVkaXRvckFjdGlvbnNDb25maWcgPSB7XG4gIGRpZmZNb2RlOiBmYWxzZSxcbiAgY2xlYXI6IHRydWUsXG4gIHJlY292ZXI6IGZhbHNlLFxuICBpbXBvcnQ6IHRydWUsXG4gIC4uLmNvbW1vbkFjdGlvbnMsXG59O1xuXG5leHBvcnQgY29uc3Qgdmlld0FjdGlvbnM6IENvZGVFZGl0b3JBY3Rpb25zQ29uZmlnID0ge1xuICBkaWZmTW9kZTogZmFsc2UsXG4gIGNsZWFyOiBmYWxzZSxcbiAgcmVjb3ZlcjogZmFsc2UsXG4gIGltcG9ydDogZmFsc2UsXG4gIC4uLmNvbW1vbkFjdGlvbnMsXG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlQWN0aW9uczogQ29kZUVkaXRvckFjdGlvbnNDb25maWcgPSB7XG4gIGRpZmZNb2RlOiB0cnVlLCAvLyBpZiB0cnVlLCB5b3Ugc2hvdWxkIGFsc28gc2V0ICdvcmlnaW5hbFZhbHVlJyBhdHRyaWJ1dGUsIGVnOiA8YXVpLWNvZGUtZWRpdG9yIFtvcmlnaW5hbFZhbHVlXT1cIm9yaWdpbmFsRmlsZVwiPjwvYXVpLWNvZGUtZWRpdG9yPlxuICBjbGVhcjogdHJ1ZSxcbiAgcmVjb3ZlcjogdHJ1ZSxcbiAgaW1wb3J0OiB0cnVlLFxuICAuLi5jb21tb25BY3Rpb25zLFxufTtcblxuZXhwb3J0IGNvbnN0IGxvZ3NBY3Rpb25zOiBDb2RlRWRpdG9yQWN0aW9uc0NvbmZpZyA9IHtcbiAgLi4udmlld0FjdGlvbnMsXG4gIHRoZW1lOiB0cnVlLFxufTtcblxuZXhwb3J0IGNvbnN0IGNvbW1vbk9wdGlvbnM6IElFZGl0b3JDb25zdHJ1Y3Rpb25PcHRpb25zID0ge1xuICBmb2xkaW5nOiB0cnVlLFxuICB3b3JkV3JhcDogJ29uJyxcbiAgdGFiU2l6ZTogMixcbiAgbWluaW1hcDogeyBlbmFibGVkOiBmYWxzZSB9LFxuICBzY3JvbGxiYXI6IHtcbiAgICBhbHdheXNDb25zdW1lTW91c2VXaGVlbDogZmFsc2UsXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgcmVhZG9ubHlPcHRpb25zOiBJRWRpdG9yQ29uc3RydWN0aW9uT3B0aW9ucyA9IHtcbiAgLi4uY29tbW9uT3B0aW9ucyxcbiAgcmVhZE9ubHk6IHRydWUsXG59O1xuXG5leHBvcnQgY29uc3QgeWFtbFJlYWRPcHRpb25zOiBJRWRpdG9yQ29uc3RydWN0aW9uT3B0aW9ucyA9IHtcbiAgbGFuZ3VhZ2U6ICd5YW1sJyxcbiAgLi4ucmVhZG9ubHlPcHRpb25zLFxufTtcblxuZXhwb3J0IGNvbnN0IHlhbWxXcml0ZU9wdGlvbnM6IElFZGl0b3JDb25zdHJ1Y3Rpb25PcHRpb25zID0ge1xuICBsYW5ndWFnZTogJ3lhbWwnLFxuICAuLi5jb21tb25PcHRpb25zLFxufTtcblxuZXhwb3J0IGNvbnN0IHlhbWxXcml0ZU1pbmltYXBPcHRpb25zOiBJRWRpdG9yQ29uc3RydWN0aW9uT3B0aW9ucyA9IHtcbiAgbGFuZ3VhZ2U6ICd5YW1sJyxcbiAgLi4uY29tbW9uT3B0aW9ucyxcbiAgbWluaW1hcDogeyBlbmFibGVkOiB0cnVlIH0sXG59O1xuXG5leHBvcnQgY29uc3QgeWFtbFJlYWRNaW5pbWFwT3B0aW9uczogSUVkaXRvckNvbnN0cnVjdGlvbk9wdGlvbnMgPSB7XG4gIGxhbmd1YWdlOiAneWFtbCcsXG4gIC4uLnJlYWRvbmx5T3B0aW9ucyxcbiAgbWluaW1hcDogeyBlbmFibGVkOiB0cnVlIH0sXG59O1xuXG5leHBvcnQgY29uc3QgdGV4dFdyaXRlT3B0aW9uczogSUVkaXRvckNvbnN0cnVjdGlvbk9wdGlvbnMgPSB7XG4gIGxhbmd1YWdlOiAndGV4dCcsXG4gIC4uLmNvbW1vbk9wdGlvbnMsXG4gIGF1dG9JbmRlbnQ6ICdub25lJyxcbn07XG5cbi8vIGZvciBsb2dzXG5leHBvcnQgY29uc3QgbG9nc1JlYWRPcHRpb25zOiBJRWRpdG9yQ29uc3RydWN0aW9uT3B0aW9ucyA9IHtcbiAgd29yZFdyYXA6ICdvbicsXG4gIHJlYWRPbmx5OiB0cnVlLFxuICByZW5kZXJMaW5lSGlnaGxpZ2h0OiAnbm9uZScsXG59O1xuIl19
@@ -3,7 +3,7 @@ import { HttpParams } from '@angular/common/http';
3
3
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, HostListener, Input, Output, TemplateRef, ViewChild, } from '@angular/core';
4
4
  import { encode } from 'ab64';
5
5
  import { debounce } from 'lodash-es';
6
- import { Subject } from 'rxjs';
6
+ import { Subject, take } from 'rxjs';
7
7
  import { Terminal } from 'xterm';
8
8
  import { CanvasAddon } from 'xterm-addon-canvas';
9
9
  import { FitAddon } from 'xterm-addon-fit';
@@ -220,7 +220,10 @@ export class TerminalComponent {
220
220
  };
221
221
  this.initSocketConnection = (fallbackCommand) => {
222
222
  this.updateConnectionStatus(this.xterm ? ConnectionStatus.ReConnecting : ConnectionStatus.Connecting);
223
- this.apiGateway.getApiAddress().subscribe(apiAddress => {
223
+ this.apiGateway
224
+ .getApiAddress()
225
+ .pipe(take(1))
226
+ .subscribe(apiAddress => {
224
227
  const initialCommand = fallbackCommand || this.option.command || BIN_SH;
225
228
  this.initSocket(initialCommand, apiAddress);
226
229
  this.initSocketListeners(initialCommand);
@@ -236,8 +239,15 @@ export class TerminalComponent {
236
239
  }
237
240
  }
238
241
  ngOnDestroy() {
242
+ this.killProcess();
239
243
  this.closeSocket();
240
- this.xterm?.dispose();
244
+ this.resizeObserver?.disconnect();
245
+ try {
246
+ this.xterm?.dispose();
247
+ }
248
+ catch (e) {
249
+ console.warn(e);
250
+ }
241
251
  }
242
252
  focus() {
243
253
  this.xterm?.focus();
@@ -248,7 +258,7 @@ export class TerminalComponent {
248
258
  this.initSocketConnection();
249
259
  }
250
260
  killProcess() {
251
- if (this.socket) {
261
+ if (this.socket?.readyState === WebSocket.OPEN) {
252
262
  this.socket.send('0' + encode('\u0003\r\n'));
253
263
  this.socket.send('0' + encode('exit\r\n'));
254
264
  }
@@ -351,13 +361,13 @@ export class TerminalComponent {
351
361
  }
352
362
  initFitAddon() {
353
363
  const fitAddon = new FitAddon();
354
- const resizeObserver = new ResizeObserver(debounce(([entry]) => {
364
+ this.resizeObserver = new ResizeObserver(debounce(([entry]) => {
355
365
  if (entry.contentRect.width !== 0) {
356
366
  fitAddon.fit();
357
367
  this.resizeRemoteTerminal();
358
368
  }
359
369
  }, 200));
360
- resizeObserver.observe(this.anchorRef.nativeElement);
370
+ this.resizeObserver.observe(this.anchorRef.nativeElement);
361
371
  return fitAddon;
362
372
  }
363
373
  initSearchAddon() {
@@ -550,4 +560,4 @@ function decode(coding, data) {
550
560
  const decoder = new TextDecoder(coding);
551
561
  return decoder.decode(dataView);
552
562
  }
553
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2V4ZWMvdGVybWluYWwvY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2V4ZWMvdGVybWluYWwvdGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFFTixXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDakMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLCtCQUErQixFQUMvQixnQ0FBZ0MsRUFDaEMsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQixpQkFBaUIsR0FDbEIsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7Ozs7OztJQ2pDcEIsQUFKRiw0Q0FHQyxXQUNPO0lBQUEsWUFBeUM7O0lBQUEsaUJBQU87SUFDdEQsa0NBR0M7SUFEQywwTEFBUyxrQkFBVyxLQUFDO0lBRXJCLFlBQ0Y7O0lBQ0YsQUFERSxpQkFBUyxFQUNROztJQVBYLGVBQXlDO0lBQXpDLG1FQUF5QztJQUs3QyxlQUNGO0lBREUsa0VBQ0Y7OztJQUlBLCtDQUk0Qjs7O0lBeUR0Qix3QkFFZ0I7Ozs7SUFjZCxBQUpGLCtCQUdDLHdCQU1FO0lBRkMsaVRBQTJCO0lBQzNCLDRMQUFXLG1DQUE0QixLQUFDO0lBQ3pDLGlCQUFhO0lBQ2Qsa0NBT0M7O0lBREMsOEtBQVMscUJBQWMsS0FBQztJQUV4QiwrQkFHWTtJQUNkLGlCQUFTO0lBQ1Qsa0NBT0M7O0lBREMsOEtBQVMsaUJBQVUsS0FBQztJQUVwQiwrQkFHWTtJQUNkLGlCQUFTO0lBQ1Qsa0NBT0M7O0lBREMsOEtBQVMsdUJBQWdCLEtBQUM7SUFFMUIsZ0NBQWtDO0lBRXRDLEFBREUsaUJBQVMsRUFDTDs7O0lBdkNGLGNBQTJCO0lBQTNCLG9EQUEyQjtJQU0zQixlQUFlO0lBRWYsQUFEQSxBQURBLDZCQUFlLGVBQ0Qsc0VBQzhDO0lBVzVELGVBQWU7SUFFZixBQURBLEFBREEsNkJBQWUsZUFDRCwwREFDa0M7SUFXaEQsZUFBZTtJQUVmLEFBREEsQUFEQSw2QkFBZSxlQUNELHdEQUMrQjs7O0lBVXZELHdCQVNnQjs7OztJQUtiLEFBREYsb0NBQ0Usd0JBR0U7SUFERCw2TUFBa0IsTUFBTSxLQUFDO0lBQ3hCLHNCQUNIO0lBQUEsaUJBQWdCO0lBQ2hCLHlDQUdHO0lBREQsNk1BQWtCLFNBQVMsS0FBQztJQUMzQix5QkFDSDtJQUNGLEFBREUsaUJBQWdCLEVBQ1A7OztJQVRQLGNBQTZCO0lBQTdCLGtEQUE2QjtJQUs3QixlQUFnQztJQUFoQyxxREFBZ0M7Ozs7SUFRcEMsNENBU0M7SUFEQyxrTkFBZSw2QkFBc0IsS0FBQztJQUV0QyxnQ0FBeUI7SUFBQSxrQkFBRTtJQUM3QixBQUQ2QixpQkFBTyxFQUNqQjs7O0lBSmpCLEFBREEsQUFEQSxBQURBLEFBREEsQUFEQSxBQURBLHdCQUFVLGdCQUNLLFdBQ0wsV0FDQSxrQkFDTyx1QkFDSywwQkFDSjs7QURySXRCLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUM7QUFFaEMsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsK0RBQStELENBQUM7QUFDOUcsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcseUVBQXlFLENBQUM7QUFDcEgsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDO0FBRXpDLE1BQU0sVUFBVSxpQkFBaUI7SUFDL0IsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoRCxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUNoQyxPQUFPLElBQUksVUFBVSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUNELE9BQU8sSUFBSSxXQUFXLEVBQUUsQ0FBQztBQUMzQixDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBT0gsTUFBTSxPQUFPLGlCQUFpQjtJQWtDNUIsWUFBWSxDQUFDLEtBQXdCO1FBQ25DLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEtBQUssZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDeEUsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLEtBQUssQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBR0QsTUFBTSxDQUFDLE1BQXlCO1FBQzlCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBMkJELElBQUksVUFBVTtRQUNaLE9BQU8sQ0FDTCx5QkFBeUI7WUFDekIsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLE9BQU87Z0JBQ3JCLENBQUMsQ0FBQywrQkFBK0I7Z0JBQ2pDLENBQUMsQ0FBQyw4QkFBOEIsQ0FBQyxDQUNwQyxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sQ0FDTCxJQUFJLENBQUMsZ0JBQWdCLEtBQUssZ0JBQWdCLENBQUMsVUFBVTtZQUNyRCxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUI7Z0JBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FDM0QsQ0FBQztJQUNKLENBQUM7SUFFRCxZQUNtQixVQUE2QixFQUM3QixZQUFpQyxFQUNqQyxTQUEyQixFQUMzQixHQUFzQjtRQUh0QixlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUM3QixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUEzRnpDLHFCQUFnQixHQUFHLGdCQUFnQixDQUFDO1FBZTNCLDJCQUFzQixHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO1FBRzlELGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBR3RDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQUc1QyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFxQnBELFVBQUssR0FDSCxZQUFZLENBQUMsT0FBTyxDQUFDLGdDQUFnQyxDQUFDLEtBQUssT0FBTztZQUNoRSxDQUFDLENBQUMsT0FBTztZQUNULENBQUMsQ0FBQyxNQUFNLENBQUM7UUFFYixhQUFRLEdBQ04sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLCtCQUErQixDQUFDO1lBQ3RELHFCQUFxQixDQUFDLFFBQVEsQ0FBQztRQUVqQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLFdBQU0sR0FBRyxNQUFNLENBQUM7UUFDaEIscUJBQWdCLEdBQXFCLGdCQUFnQixDQUFDLFVBQVUsQ0FBQztRQUNqRSxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQVF0QixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQWEsQ0FBQztRQUVwQywwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFxT2Isd0JBQW1CLEdBQUcsQ0FBQyxjQUFzQixFQUFFLEVBQUU7WUFDaEUsSUFBSSxTQUFrQixDQUFDO1lBRXZCLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtnQkFDeEMsU0FBUyxHQUFHLElBQUksQ0FBQztnQkFDakIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNoQyxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFO29CQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDeEIsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ1gsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDLEtBQTJCLEVBQUUsRUFBRTtnQkFDdEUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUN4RCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNoQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ25CLENBQUM7Z0JBQ0QsSUFBSSxTQUFTLEVBQUUsQ0FBQztvQkFDZCxTQUFTLEdBQUcsS0FBSyxDQUFDO29CQUVsQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO3dCQUN2QyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNyQixDQUFDO3lCQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxXQUFXLEVBQUUsQ0FBQzt3QkFDekQsbUNBQW1DO3dCQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDcEMsQ0FBQztnQkFDSCxDQUFDO2dCQUVELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ25CLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN2QixJQUNFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyw4QkFBOEIsQ0FBQztvQkFDNUMsSUFBSSxDQUFDLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO29CQUM1QyxDQUFDLElBQUksQ0FBQyxhQUFhO29CQUNuQixjQUFjLEtBQUssTUFBTSxFQUN6QixDQUFDO29CQUNELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUM7Z0JBQ3BDLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFO2dCQUN4QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxzQkFBc0IsQ0FDekIsQ0FBQyxDQUFDLElBQUksS0FBSyxrQkFBa0I7b0JBQzNCLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZO29CQUMvQixDQUFDLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUNsQyxDQUFDO2dCQUNGLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7b0JBQy9CLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDekIsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBRWUseUJBQW9CLEdBQUcsQ0FBQyxlQUF3QixFQUFFLEVBQUU7WUFDbkUsSUFBSSxDQUFDLHNCQUFzQixDQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FDekUsQ0FBQztZQUVGLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUNyRCxNQUFNLGNBQWMsR0FBRyxlQUFlLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDO2dCQUN4RSxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzNDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO0lBOVFDLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELFdBQVcsQ0FBQyxFQUFFLE1BQU0sRUFBaUI7UUFDbkMsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ3ZELFlBQVksQ0FBQyxPQUFPLENBQUMsZ0NBQWdDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUs7WUFDdEIsSUFBSSxDQUFDLEtBQUssS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQztRQUNoRSxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBWTtRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ25DLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFcEIsWUFBWSxDQUFDLE9BQU8sQ0FBQywrQkFBK0IsRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixxQkFBcUIsQ0FBQyxHQUFHLEVBQUU7WUFDekIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFvQjtRQUNqQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUM5RCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVELG9CQUFvQixDQUFDLEtBQW9CO1FBQ3ZDLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMxQixDQUFDO2FBQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQ2xDLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNuQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixDQUFDO1lBQ0QsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDO1FBQzVFLE9BQU87WUFDTCxXQUFXLEVBQUU7Z0JBQ1gsZUFBZSxFQUFFLEtBQUssQ0FBQywyQkFBMkI7Z0JBQ2xELGtCQUFrQixFQUFFLEtBQUssQ0FBQywyQkFBMkI7Z0JBQ3JELHFCQUFxQixFQUFFLEtBQUssQ0FBQyxtQkFBbUI7Z0JBQ2hELDZCQUE2QixFQUFFLEtBQUssQ0FBQyxtQkFBbUI7YUFDekQ7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVPLFNBQVM7UUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksUUFBUSxDQUFDO1lBQ3hCLEdBQUcscUJBQXFCO1lBQ3hCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLGdCQUFnQjtZQUNwRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsZ0JBQWdCLEVBQUUsSUFBSTtTQUN2QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztRQUUxQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzlDLHFCQUFxQixDQUFDLEdBQUcsRUFBRTtZQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFZLEVBQUUsRUFBRTtZQUNqQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDekQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDckMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0IsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuRCxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNkLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzNDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxZQUFZO1FBQ2xCLE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7UUFFaEMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQ3ZDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUNuQixJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNsQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDOUIsQ0FBQztRQUNILENBQUMsRUFBRSxHQUFHLENBQUMsQ0FDUixDQUFDO1FBRUYsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXJELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFTyxlQUFlO1FBQ3JCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNyQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVPLFVBQVUsQ0FBQyxjQUFzQixFQUFFLFVBQWtCO1FBQzNELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEIsQ0FBQztRQUVELE1BQU0sRUFDSixPQUFPLEVBQ1AsU0FBUyxFQUNULEdBQUcsRUFDSCxTQUFTLEVBQ1QsSUFBSSxHQUFHLE1BQU0sRUFDYixHQUFHLEVBQ0gsVUFBVSxHQUNYLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUVoQixNQUFNLE9BQU8sR0FBRyxHQUFHO1lBQ2pCLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO1lBQ25CLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTTtnQkFDZixDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7Z0JBQzNCLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxJQUFJLFFBQVEsY0FBYyxHQUFHLENBQUMsQ0FBQztRQUUzRCxNQUFNLEdBQUcsR0FBRyxVQUFVO1lBQ3BCLENBQUMsQ0FBQyxvQkFBb0I7WUFDdEIsQ0FBQyxDQUFDLGVBQWUsT0FBTyxzQkFBc0IsU0FBUyxTQUFTLEdBQUcsT0FBTyxDQUFDO1FBRTdFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxTQUFTLENBQ3pCLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQztZQUMvQixHQUFHLEdBQUcsSUFBSSxJQUFJLFVBQVUsQ0FBQztnQkFDdkIsVUFBVSxFQUFFO29CQUNWLEtBQUssRUFBRSxJQUFJO29CQUNYLE1BQU0sRUFBRSxJQUFJO29CQUNaLE1BQU0sRUFBRSxJQUFJO29CQUNaLEdBQUcsRUFBRSxJQUFJO29CQUNULFNBQVM7b0JBQ1QsT0FBTztpQkFDUjthQUNGLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUNqQixDQUFDLHVCQUF1QixDQUFDLENBQzFCLENBQUM7SUFDSixDQUFDO0lBcUVPLGVBQWU7UUFDckIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztRQUNuQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxDQUFDLENBQ3ZELENBQUM7SUFDSixDQUFDO0lBRU8sV0FBVztRQUNqQixJQUNFLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FDbkUsSUFBSSxDQUFDLGdCQUFnQixDQUN0QixFQUNELENBQUM7WUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDM0QsQ0FBQztRQUVELGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELCtIQUErSDtJQUN2SCxvQkFBb0I7UUFDMUIsSUFBSSxDQUFDO1lBQ0gsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQ2YsSUFBSSxNQUFNLENBQ1IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUNwRSxFQUFFLENBQ0osQ0FBQztRQUNKLENBQUM7UUFBQyxNQUFNLENBQUMsQ0FBQSxDQUFDO0lBQ1osQ0FBQztJQUVPLHNCQUFzQixDQUFDLE1BQXdCO1FBQ3JELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLENBQUM7UUFDL0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3hFLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNwQyxVQUFVLENBQUMsR0FBRyxFQUFFO29CQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDdkMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ1YsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsQ0FBQztJQUNILENBQUM7a0ZBL1pVLGlCQUFpQjtvRUFBakIsaUJBQWlCOzs7Ozs7OztZQUFqQiwwR0FBQSx3QkFBb0IsK0JBQUgsaUZBQWpCLGtCQUFjLCtCQUFHOzs7WUN0RTlCLDRGQUdDO1lBVUQsOEJBQW1DO1lBQ2pDLDRHQUlDO1lBQ0Qsc0NBQTZEO1lBaUJyRCxBQUxGLEFBREYsQUFERixBQVRGLDhCQVFDLGFBQ3FFLGNBQ2hDLGNBSy9CLFdBRUk7WUFBQSxZQU8yQjs7WUFBQSxpQkFDN0I7WUFDRCxnQ0FBdUM7WUFDekMsaUJBQU07WUFDTixnQ0FPQztZQUNDLGdDQUFpQztZQUNqQyw2QkFBTTtZQUFBLGFBQWdDOztZQUN4QyxBQUR3QyxpQkFBTyxFQUN6QztZQUNOLGdDQUdDO1lBREMsa0lBQVMsbUJBQWUsS0FBQztZQUV6QixnQ0FBc0M7WUFDdEMsNkJBQU07WUFBQSxhQUF3Qjs7WUFDaEMsQUFEZ0MsaUJBQU8sRUFDakM7WUFDTixnQ0FHQztZQURDLGtJQUFTLGlCQUFhLEtBQUM7WUFFdkIsZ0NBQWlFO1lBQ2pFLDZCQUFNO1lBQUEsYUFFSjs7WUFDSixBQURJLGlCQUFPLEVBQ0w7WUFDTix1RkFFQztZQUNILGlCQUFNO1lBQ04sZ0NBR0M7WUFEQyw0SUFBVywwQkFBc0IsS0FBQztZQUVsQyw4QkFHTztZQUNQLHVFQUdDO1lBOENQLEFBREUsQUFERSxpQkFBTSxFQUNGLEVBQ0Y7WUFFTix1RkFTQzs7WUFDSCxpQkFBTTtZQWlCTixBQWZBLHFIQUNHLHdHQWN3Qjs7OztZQXBLeEIsaUZBQXdEO1lBZXRELGVBQXdEO1lBQXhELGlGQUF3RDtZQUd6QyxjQUF1QjtZQUF2Qix5Q0FBdUI7WUFPdkMsY0FBNkM7WUFDN0MsQUFEQSwwREFBNkMsOENBQ0U7WUFML0MscUlBR0U7WUFRSSxlQUEwQjtZQUMxQixBQURBLDJDQUEwQixvQ0FDSztZQUc1QixlQU8yQjtZQVAzQiwwS0FPMkI7WUFNOUIsZUFBMkI7WUFJM0IsQUFKQSw0Q0FBMkIsbUNBSUc7WUFHeEIsZUFBZ0M7WUFBaEMsNERBQWdDO1lBT2hDLGVBQXdCO1lBQXhCLG9EQUF3QjtZQU1wQixlQUEyQztZQUEzQyw2REFBMkM7WUFDL0MsZUFFSjtZQUZJLGtHQUVKO1lBR0QsZUFBK0I7WUFBQSxBQUEvQixrREFBK0IsbUVBQXlCO1lBWXhELGVBQWU7WUFBZixvQ0FBZTtZQW1EckIsY0FFUTtZQUFBLEFBRlIsbURBRVEscUhBTWI7OztpRkQ3RWEsaUJBQWlCO2NBTjdCLFNBQVM7MkJBQ0UsY0FBYyxtQkFHUCx1QkFBdUIsQ0FBQyxNQUFNO21KQU0vQyxNQUFNO2tCQURMLEtBQUs7WUFJTixLQUFLO2tCQURKLEtBQUs7WUFJTixXQUFXO2tCQURWLEtBQUs7WUFJTixZQUFZO2tCQURYLEtBQUs7WUFJRyxzQkFBc0I7a0JBRDlCLE1BQU07WUFJRSxRQUFRO2tCQURoQixNQUFNO1lBSUUsV0FBVztrQkFEbkIsTUFBTTtZQUlFLGFBQWE7a0JBRHJCLE1BQU07WUFJUCxTQUFTO2tCQURSLFNBQVM7bUJBQUMsUUFBUTtZQUluQixjQUFjO2tCQURiLFNBQVM7bUJBQUMsYUFBYTtZQUl4QixZQUFZO2tCQURYLFlBQVk7bUJBQUMscUJBQXFCLEVBQUUsQ0FBQyxRQUFRLENBQUM7WUFTL0MsTUFBTTtrQkFETCxZQUFZO21CQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7a0ZBekM5QixpQkFBaUI7QUFrYTlCLFNBQVMsTUFBTSxDQUFDLE1BQWMsRUFBRSxJQUFZO0lBQzFDLE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxDQUMzQixVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQzFELENBQUM7SUFDRixNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDbEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UsIFNlYXJjaENvbXBvbmVudCB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBlbmNvZGUgfSBmcm9tICdhYjY0JztcbmltcG9ydCB7IGRlYm91bmNlIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRlcm1pbmFsIH0gZnJvbSAneHRlcm0nO1xuaW1wb3J0IHsgQ2FudmFzQWRkb24gfSBmcm9tICd4dGVybS1hZGRvbi1jYW52YXMnO1xuaW1wb3J0IHsgRml0QWRkb24gfSBmcm9tICd4dGVybS1hZGRvbi1maXQnO1xuaW1wb3J0IHsgU2VhcmNoQWRkb24gfSBmcm9tICd4dGVybS1hZGRvbi1zZWFyY2gnO1xuaW1wb3J0IHsgV2ViTGlua3NBZGRvbiB9IGZyb20gJ3h0ZXJtLWFkZG9uLXdlYi1saW5rcyc7XG5pbXBvcnQgeyBXZWJnbEFkZG9uIH0gZnJvbSAneHRlcm0tYWRkb24td2ViZ2wnO1xuXG5pbXBvcnQgeyBBcGlHYXRld2F5U2VydmljZSB9IGZyb20gJy4uLy4uL2FwaS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi90cmFuc2xhdGUvcHVibGljLWFwaSc7XG5pbXBvcnQge1xuICBDb25uZWN0aW9uU3RhdHVzLFxuICBURVJNSU5BTF9GT05UX0xPQ0FMX1NUT1JBR0VfS0VZLFxuICBURVJNSU5BTF9USEVNRV9MT0NBTF9TVE9SQUdFX0tFWSxcbiAgWFRFUk1fREFSS19USEVNRSxcbiAgWFRFUk1fREVGQVVMVF9PUFRJT05TLFxuICBYVEVSTV9MSUdIVF9USEVNRSxcbn0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFRlcm1pbmFsT3B0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgQklOX1NIID0gJy9iaW4vc2gnO1xuXG5leHBvcnQgY29uc3QgRVhFQ19GQUlMRURfTUVTU0FHRV9DT05UQUlORVJEID0gYEludGVybmFsIGVycm9yIG9jY3VycmVkOiBlcnJvciBleGVjdXRpbmcgY29tbWFuZCBpbiBjb250YWluZXJgO1xuZXhwb3J0IGNvbnN0IEVYRUNfRkFJTEVEX01FU1NBR0VfRE9DS0VSID0gYE9DSSBydW50aW1lIGV4ZWMgZmFpbGVkOiBleGVjIGZhaWxlZDogdW5hYmxlIHRvIHN0YXJ0IGNvbnRhaW5lciBwcm9jZXNzYDtcbmV4cG9ydCBjb25zdCBOT19QRVJNSVNTSU9OX0NPREUgPSA0MF8wMDE7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0UmVuZGVyZXJBZGRvbigpIHtcbiAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gIGlmIChjYW52YXMuZ2V0Q29udGV4dCgnd2ViZ2wyJykpIHtcbiAgICByZXR1cm4gbmV3IFdlYmdsQWRkb24oKTtcbiAgfVxuICByZXR1cm4gbmV3IENhbnZhc0FkZG9uKCk7XG59XG5cbi8qKlxuICogRm9yIGRpc3BhdGNoaW5nIGtleWJvYXJkIGV2ZW50cyBhdXRvbWF0aWNhbGx5IHRvIHh0ZXJtLFxuICogcGxlYXNlIHZpZXcgaHR0cHM6Ly93d3cucGh5c2ljcy51ZGVsLmVkdS9+d2F0c29uL3NjZW4xMDMvYXNjaWkuaHRtbCBmb3IgcmVmZXJlbmNlLlxuICpcbiAqIEZvciBpbnN0YW5jZSwgaWYgeW91IHdhbnQgdG8gZGlzcGF0Y2ggYEN0cmwrQ2AgdG8geHRlcm0sIHlvdSBzaG91bGQgZGlzcGF0Y2ggYFxceDAzYChha2EgYFxcdTAwMDNgKSB0byB0aGUgc29ja2V0LlxuICpcbiAqIGBgYHRzXG4gKiBzb2NrZXQuc2VuZCgnMCcgKyBlbmNvZGUoJ1xcdTAwMDMnKSlcbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtdGVybWluYWwnLFxuICB0ZW1wbGF0ZVVybDogJ3RlbXBsYXRlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnc3R5bGUuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVGVybWluYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0IHtcbiAgQ29ubmVjdGlvblN0YXR1cyA9IENvbm5lY3Rpb25TdGF0dXM7XG5cbiAgQElucHV0KClcbiAgb3B0aW9uOiBUZXJtaW5hbE9wdGlvbjtcblxuICBASW5wdXQoKVxuICBpbmRleDogbnVtYmVyO1xuXG4gIEBJbnB1dCgpXG4gIGV4dHJhQnV0dG9uOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKVxuICBleHRyYUNvbnRlbnQ6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBjb25uZWN0aW9uU3RhdHVzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDb25uZWN0aW9uU3RhdHVzPigpO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBzZW5kRGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBzb2NrZXRSZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXI8V2ViU29ja2V0PigpO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBmYWxsYmFja1NoZWxsID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQFZpZXdDaGlsZCgnYW5jaG9yJylcbiAgYW5jaG9yUmVmOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCdzZWFyY2hJbnB1dCcpXG4gIHNlYXJjaElucHV0UmVmOiBTZWFyY2hDb21wb25lbnQ7XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmJlZm9yZXVubG9hZCcsIFsnJGV2ZW50J10pXG4gIGJlZm9yZVVubG9hZChldmVudDogQmVmb3JlVW5sb2FkRXZlbnQpIHtcbiAgICBpZiAodGhpcy5zb2NrZXQgJiYgdGhpcy5jb25uZWN0aW9uU3RhdHVzID09PSBDb25uZWN0aW9uU3RhdHVzLkNvbm5lY3RlZCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnJldHVyblZhbHVlID0gJyc7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnVubG9hZCcsIFsnJGV2ZW50J10pXG4gIHVubG9hZChfZXZlbnQ6IEJlZm9yZVVubG9hZEV2ZW50KSB7XG4gICAgdGhpcy5raWxsUHJvY2VzcygpO1xuICB9XG5cbiAgdGhlbWU6ICdsaWdodCcgfCAnZGFyaycgPVxuICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFRFUk1JTkFMX1RIRU1FX0xPQ0FMX1NUT1JBR0VfS0VZKSA9PT0gJ2xpZ2h0J1xuICAgICAgPyAnbGlnaHQnXG4gICAgICA6ICdkYXJrJztcblxuICBmb250U2l6ZTogbnVtYmVyID1cbiAgICArbG9jYWxTdG9yYWdlLmdldEl0ZW0oVEVSTUlOQUxfRk9OVF9MT0NBTF9TVE9SQUdFX0tFWSkgfHxcbiAgICBYVEVSTV9ERUZBVUxUX09QVElPTlMuZm9udFNpemU7XG5cbiAgc2VhcmNoaW5nID0gZmFsc2U7XG4gIHNlYXJjaEtleXdvcmQgPSAnJztcbiAgY29kaW5nID0gJ3V0ZjgnO1xuICBjb25uZWN0aW9uU3RhdHVzOiBDb25uZWN0aW9uU3RhdHVzID0gQ29ubmVjdGlvblN0YXR1cy5Db25uZWN0aW5nO1xuICBjb21tYW5kSGFzUnVuID0gZmFsc2U7XG5cbiAgeHRlcm06IFRlcm1pbmFsO1xuICBwcml2YXRlIHNlYXJjaEFkZG9uOiBTZWFyY2hBZGRvbjtcbiAgcHJpdmF0ZSBmaXRBZGRvbjogRml0QWRkb247XG4gIHByaXZhdGUgc29ja2V0OiBXZWJTb2NrZXQ7XG4gIHByaXZhdGUgcGluZzogbnVtYmVyO1xuXG4gIHNvY2tldCQkID0gbmV3IFN1YmplY3Q8V2ViU29ja2V0PigpO1xuXG4gIHNob3VsZEZhbGxCYWNrT25DbG9zZSA9IGZhbHNlO1xuXG4gIGdldCB0aGVtZUNsYXNzKCkge1xuICAgIHJldHVybiAoXG4gICAgICAnYWNsLXRlcm1pbmFsX19kcm9wZG93biAnICtcbiAgICAgICh0aGlzLnRoZW1lID09PSAnbGlnaHQnXG4gICAgICAgID8gJ2FjbC10ZXJtaW5hbF9fZHJvcGRvd24tLWxpZ2h0J1xuICAgICAgICA6ICdhY2wtdGVybWluYWxfX2Ryb3Bkb3duLS1kYXJrJylcbiAgICApO1xuICB9XG5cbiAgZ2V0IHNob3dMb2FkaW5nKCkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmNvbm5lY3Rpb25TdGF0dXMgPT09IENvbm5lY3Rpb25TdGF0dXMuQ29ubmVjdGluZyB8fFxuICAgICAgKCF0aGlzLm9wdGlvbi5ub3RDbGVhcldoZW5SZWNvbm5lY3QgJiZcbiAgICAgICAgdGhpcy5jb25uZWN0aW9uU3RhdHVzID09PSBDb25uZWN0aW9uU3RhdHVzLlJlQ29ubmVjdGluZylcbiAgICApO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBhcGlHYXRld2F5OiBBcGlHYXRld2F5U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmluaXRTb2NrZXRDb25uZWN0aW9uKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyh7IG9wdGlvbiB9OiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKHRoaXMueHRlcm0gJiYgb3B0aW9uKSB7XG4gICAgICB0aGlzLnJlY29ubmVjdCgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuY2xvc2VTb2NrZXQoKTtcbiAgICB0aGlzLnh0ZXJtPy5kaXNwb3NlKCk7XG4gIH1cblxuICBmb2N1cygpIHtcbiAgICB0aGlzLnh0ZXJtPy5mb2N1cygpO1xuICB9XG5cbiAgcmVjb25uZWN0KCkge1xuICAgIHRoaXMuY29tbWFuZEhhc1J1biA9IGZhbHNlO1xuICAgIHRoaXMuY2xvc2VTb2NrZXQoKTtcbiAgICB0aGlzLmluaXRTb2NrZXRDb25uZWN0aW9uKCk7XG4gIH1cblxuICBraWxsUHJvY2VzcygpIHtcbiAgICBpZiAodGhpcy5zb2NrZXQpIHtcbiAgICAgIHRoaXMuc29ja2V0LnNlbmQoJzAnICsgZW5jb2RlKCdcXHUwMDAzXFxyXFxuJykpO1xuICAgICAgdGhpcy5zb2NrZXQuc2VuZCgnMCcgKyBlbmNvZGUoJ2V4aXRcXHJcXG4nKSk7XG4gICAgfVxuICB9XG5cbiAgc3dpdGNoVGhlbWUoKSB7XG4gICAgdGhpcy50aGVtZSA9IHRoaXMudGhlbWUgPT09ICdsaWdodCcgPyAnZGFyaycgOiAnbGlnaHQnO1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFRFUk1JTkFMX1RIRU1FX0xPQ0FMX1NUT1JBR0VfS0VZLCB0aGlzLnRoZW1lKTtcbiAgICB0aGlzLnh0ZXJtLm9wdGlvbnMudGhlbWUgPVxuICAgICAgdGhpcy50aGVtZSA9PT0gJ2xpZ2h0JyA/IFhURVJNX0xJR0hUX1RIRU1FIDogWFRFUk1fREFSS19USEVNRTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGZvbnRTaXplQ2hhbmdlKHNpemU6IG51bWJlcikge1xuICAgIHRoaXMuZm9udFNpemUgPSBzaXplO1xuICAgIHRoaXMueHRlcm0ub3B0aW9ucy5mb250U2l6ZSA9IHNpemU7XG4gICAgdGhpcy5maXRBZGRvbi5maXQoKTtcblxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFRFUk1JTkFMX0ZPTlRfTE9DQUxfU1RPUkFHRV9LRVksIHNpemUgKyAnJyk7XG4gIH1cblxuICBvcGVuU2VhcmNoaW5nKCkge1xuICAgIHRoaXMuc2VhcmNoaW5nID0gdHJ1ZTtcbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgdGhpcy5zZWFyY2hJbnB1dFJlZi5mb2N1cygpO1xuICAgIH0pO1xuICB9XG5cbiAgY2xvc2VTZWFyY2hpbmcoKSB7XG4gICAgdGhpcy5zZWFyY2hpbmcgPSBmYWxzZTtcbiAgICB0aGlzLnNlYXJjaEtleXdvcmQgPSAnJztcbiAgICB0aGlzLmZpbmROZXh0KCk7XG4gICAgdGhpcy54dGVybT8uZm9jdXMoKTtcbiAgfVxuXG4gIG9uU2hlbGxLZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKChldmVudC5tZXRhS2V5IHx8IGV2ZW50LmN0cmxLZXkpICYmIGV2ZW50LmNvZGUgPT09ICdLZXlGJykge1xuICAgICAgdGhpcy5vcGVuU2VhcmNoaW5nKCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgb25TZWFyY2hJbnB1dEtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQuY29kZSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgIHRoaXMuY2xvc2VTZWFyY2hpbmcoKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmNvZGUgPT09ICdFbnRlcicpIHtcbiAgICAgIGlmIChldmVudC5zaGlmdEtleSkge1xuICAgICAgICB0aGlzLmZpbmRQcmV2aW91cygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5maW5kTmV4dCgpO1xuICAgICAgfVxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2VhcmNoT3B0aW9ucygpIHtcbiAgICBjb25zdCB0aGVtZSA9IHRoaXMudGhlbWUgPT09ICdsaWdodCcgPyBYVEVSTV9MSUdIVF9USEVNRSA6IFhURVJNX0RBUktfVEhFTUU7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRlY29yYXRpb25zOiB7XG4gICAgICAgIG1hdGNoQmFja2dyb3VuZDogdGhlbWUuc2VsZWN0aW9uSW5hY3RpdmVCYWNrZ3JvdW5kLFxuICAgICAgICBtYXRjaE92ZXJ2aWV3UnVsZXI6IHRoZW1lLnNlbGVjdGlvbkluYWN0aXZlQmFja2dyb3VuZCxcbiAgICAgICAgYWN0aXZlTWF0Y2hCYWNrZ3JvdW5kOiB0aGVtZS5zZWxlY3Rpb25CYWNrZ3JvdW5kLFxuICAgICAgICBhY3RpdmVNYXRjaENvbG9yT3ZlcnZpZXdSdWxlcjogdGhlbWUuc2VsZWN0aW9uQmFja2dyb3VuZCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGZpbmROZXh0KCkge1xuICAgIHRoaXMuc2VhcmNoQWRkb24uZmluZE5leHQodGhpcy5zZWFyY2hLZXl3b3JkLCB0aGlzLmdldFNlYXJjaE9wdGlvbnMoKSk7XG4gIH1cblxuICBmaW5kUHJldmlvdXMoKSB7XG4gICAgdGhpcy5zZWFyY2hBZGRvbi5maW5kUHJldmlvdXModGhpcy5zZWFyY2hLZXl3b3JkLCB0aGlzLmdldFNlYXJjaE9wdGlvbnMoKSk7XG4gIH1cblxuICBwcml2YXRlIGluaXRYdGVybSgpIHtcbiAgICB0aGlzLnh0ZXJtID0gbmV3IFRlcm1pbmFsKHtcbiAgICAgIC4uLlhURVJNX0RFRkFVTFRfT1BUSU9OUyxcbiAgICAgIHRoZW1lOiB0aGlzLnRoZW1lID09PSAnbGlnaHQnID8gWFRFUk1fTElHSFRfVEhFTUUgOiBYVEVSTV9EQVJLX1RIRU1FLFxuICAgICAgZm9udFNpemU6IHRoaXMuZm9udFNpemUsXG4gICAgICBhbGxvd1Byb3Bvc2VkQXBpOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgdGhpcy54dGVybS5sb2FkQWRkb24odGhpcy5pbml0U2VhcmNoQWRkb24oKSk7XG4gICAgdGhpcy5maXRBZGRvbiA9IHRoaXMuaW5pdEZpdEFkZG9uKCk7XG4gICAgdGhpcy54dGVybS5sb2FkQWRkb24odGhpcy5maXRBZGRvbik7XG4gICAgdGhpcy54dGVybS5sb2FkQWRkb24obmV3IFdlYkxpbmtzQWRkb24oKSk7XG4gICAgdGhpcy54dGVybS5sb2FkQWRkb24oaW5pdFJlbmRlcmVyQWRkb24oKSk7XG5cbiAgICB0aGlzLnh0ZXJtLm9wZW4odGhpcy5hbmNob3JSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgIHRoaXMuZml0QWRkb24uZml0KCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnh0ZXJtLm9uRGF0YSgoZGF0YTogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAodGhpcy5jb25uZWN0aW9uU3RhdHVzID09PSBDb25uZWN0aW9uU3RhdHVzLkNvbm5lY3RlZCkge1xuICAgICAgICB0aGlzLmNvbW1hbmRIYXNSdW4gPSB0cnVlO1xuICAgICAgICB0aGlzLnNvY2tldC5zZW5kKCcwJyArIGVuY29kZShkYXRhKSk7XG4gICAgICAgIHRoaXMuc2VuZERhdGEuZW1pdChkYXRhKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnh0ZXJtLm9uU2VsZWN0aW9uQ2hhbmdlKCgpID0+IHtcbiAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHRoaXMueHRlcm0uZ2V0U2VsZWN0aW9uKCkudHJpbSgpO1xuICAgICAgaWYgKHNlbGVjdGlvbikge1xuICAgICAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChzZWxlY3Rpb24pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0Rml0QWRkb24oKSB7XG4gICAgY29uc3QgZml0QWRkb24gPSBuZXcgRml0QWRkb24oKTtcblxuICAgIGNvbnN0IHJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKFxuICAgICAgZGVib3VuY2UoKFtlbnRyeV0pID0+IHtcbiAgICAgICAgaWYgKGVudHJ5LmNvbnRlbnRSZWN0LndpZHRoICE9PSAwKSB7XG4gICAgICAgICAgZml0QWRkb24uZml0KCk7XG4gICAgICAgICAgdGhpcy5yZXNpemVSZW1vdGVUZXJtaW5hbCgpO1xuICAgICAgICB9XG4gICAgICB9LCAyMDApLFxuICAgICk7XG5cbiAgICByZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuYW5jaG9yUmVmLm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgcmV0dXJuIGZpdEFkZG9uO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0U2VhcmNoQWRkb24oKSB7XG4gICAgdGhpcy5zZWFyY2hBZGRvbiA9IG5ldyBTZWFyY2hBZGRvbigpO1xuICAgIHJldHVybiB0aGlzLnNlYXJjaEFkZG9uO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0U29ja2V0KGluaXRpYWxDb21tYW5kOiBzdHJpbmcsIGFwaUFkZHJlc3M6IHN0cmluZykge1xuICAgIGlmICh0aGlzLnNvY2tldCkge1xuICAgICAgdGhpcy5zb2NrZXQuY2xvc2UoKTtcbiAgICB9XG5cbiAgICBjb25zdCB7XG4gICAgICBjbHVzdGVyLFxuICAgICAgbmFtZXNwYWNlLFxuICAgICAgcG9kLFxuICAgICAgY29udGFpbmVyLFxuICAgICAgdXNlciA9ICdyb290JyxcbiAgICAgIGNtZCxcbiAgICAgIGFkdmFuY2VBcGksXG4gICAgfSA9IHRoaXMub3B0aW9uO1xuXG4gICAgY29uc3QgY29tbWFuZCA9IGNtZFxuICAgICAgPyBbJ3NoJywgJy1jJywgY21kXVxuICAgICAgOiB1c2VyID09PSAncm9vdCdcbiAgICAgICAgPyBpbml0aWFsQ29tbWFuZC5zcGxpdCgnICcpXG4gICAgICAgIDogWydzaCcsICctYycsIGBzdSAtcCAke3VzZXJ9IC1jIFwiJHtpbml0aWFsQ29tbWFuZH1cImBdO1xuXG4gICAgY29uc3QgYXBpID0gYWR2YW5jZUFwaVxuICAgICAgPyAnL2F1dGgvdjEvcG9kL3NoZWxsJ1xuICAgICAgOiBgL2t1YmVybmV0ZXMvJHtjbHVzdGVyfS9hcGkvdjEvbmFtZXNwYWNlcy8ke25hbWVzcGFjZX0vcG9kcy8ke3BvZH0vZXhlY2A7XG5cbiAgICB0aGlzLnNvY2tldCA9IG5ldyBXZWJTb2NrZXQoXG4gICAgICBhcGlBZGRyZXNzLnJlcGxhY2UoL15odHRwLywgJ3dzJykgK1xuICAgICAgICBgJHthcGl9PyR7bmV3IEh0dHBQYXJhbXMoe1xuICAgICAgICAgIGZyb21PYmplY3Q6IHtcbiAgICAgICAgICAgIHN0ZGluOiB0cnVlLFxuICAgICAgICAgICAgc3Rkb3V0OiB0cnVlLFxuICAgICAgICAgICAgc3RkZXJyOiB0cnVlLFxuICAgICAgICAgICAgdHR5OiB0cnVlLFxuICAgICAgICAgICAgY29udGFpbmVyLFxuICAgICAgICAgICAgY29tbWFuZCxcbiAgICAgICAgICB9LFxuICAgICAgICB9KS50b1N0cmluZygpfWAsXG4gICAgICBbJ2Jhc2U2NC5jaGFubmVsLms4cy5pbyddLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGluaXRTb2NrZXRMaXN0ZW5lcnMgPSAoaW5pdGlhbENvbW1hbmQ6IHN0cmluZykgPT4ge1xuICAgIGxldCBuZWVkQ2xlYXI6IGJvb2xlYW47XG5cbiAgICB0aGlzLnNvY2tldC5hZGRFdmVudExpc3RlbmVyKCdvcGVuJywgKCkgPT4ge1xuICAgICAgbmVlZENsZWFyID0gdHJ1ZTtcbiAgICAgIHRoaXMucmVzaXplUmVtb3RlVGVybWluYWwoKTtcbiAgICAgIHRoaXMuc29ja2V0UmVhZHkuZW1pdCh0aGlzLnNvY2tldCk7XG4gICAgICB0aGlzLnNvY2tldCQkLm5leHQodGhpcy5zb2NrZXQpO1xuICAgICAgdGhpcy5waW5nID0gd2luZG93LnNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgdGhpcy5zb2NrZXQuc2VuZCgnMCcpO1xuICAgICAgfSwgNTAwMCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnNvY2tldC5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgKGV2ZW50OiBNZXNzYWdlRXZlbnQ8c3RyaW5nPikgPT4ge1xuICAgICAgdGhpcy51cGRhdGVDb25uZWN0aW9uU3RhdHVzKENvbm5lY3Rpb25TdGF0dXMuQ29ubmVjdGVkKTtcbiAgICAgIGlmICghdGhpcy54dGVybSkge1xuICAgICAgICB0aGlzLmluaXRYdGVybSgpO1xuICAgICAgfVxuICAgICAgaWYgKG5lZWRDbGVhcikge1xuICAgICAgICBuZWVkQ2xlYXIgPSBmYWxzZTtcblxuICAgICAgICBpZiAoIXRoaXMub3B0aW9uLm5vdENsZWFyV2hlblJlY29ubmVjdCkge1xuICAgICAgICAgIHRoaXMueHRlcm0ucmVzZXQoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnh0ZXJtLmJ1ZmZlci5hY3RpdmUudHlwZSA9PT0gJ2FsdGVybmF0ZScpIHtcbiAgICAgICAgICAvLyBleGl0IGFsdGVybmF0ZSBzY3JlZW4uIEFJVC00NjM5MVxuICAgICAgICAgIHRoaXMueHRlcm0ud3JpdGUoJ1xcdTAwMUJbPzEwNDlsJyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy54dGVybS5mb2N1cygpO1xuICAgICAgY29uc3QgdGV4dCA9IGRlY29kZSh0aGlzLmNvZGluZywgZXZlbnQuZGF0YS5zbGljZSgxKSk7XG4gICAgICB0aGlzLnh0ZXJtLndyaXRlKHRleHQpO1xuICAgICAgaWYgKFxuICAgICAgICAodGV4dC5pbmNsdWRlcyhFWEVDX0ZBSUxFRF9NRVNTQUdFX0NPTlRBSU5FUkQpIHx8XG4gICAgICAgICAgdGV4dC5pbmNsdWRlcyhFWEVDX0ZBSUxFRF9NRVNTQUdFX0RPQ0tFUikpICYmXG4gICAgICAgICF0aGlzLmNvbW1hbmRIYXNSdW4gJiZcbiAgICAgICAgaW5pdGlhbENvbW1hbmQgIT09IEJJTl9TSFxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuc2hvdWxkRmFsbEJhY2tPbkNsb3NlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuc29ja2V0LmFkZEV2ZW50TGlzdGVuZXIoJ2Nsb3NlJywgZSA9PiB7XG4gICAgICB0aGlzLmNsb3NlU29ja2V0KCk7XG4gICAgICB0aGlzLnVwZGF0ZUNvbm5lY3Rpb25TdGF0dXMoXG4gICAgICAgIGUuY29kZSA9PT0gTk9fUEVSTUlTU0lPTl9DT0RFXG4gICAgICAgICAgPyBDb25uZWN0aW9uU3RhdHVzLk5vUGVybWlzc2lvblxuICAgICAgICAgIDogQ29ubmVjdGlvblN0YXR1cy5EaXNjb25uZWN0ZWQsXG4gICAgICApO1xuICAgICAgaWYgKHRoaXMuc2hvdWxkRmFsbEJhY2tPbkNsb3NlKSB7XG4gICAgICAgIHRoaXMuZmFsbEJhY2tPbkNsb3NlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpbml0U29ja2V0Q29ubmVjdGlvbiA9IChmYWxsYmFja0NvbW1hbmQ/OiBzdHJpbmcpID0+IHtcbiAgICB0aGlzLnVwZGF0ZUNvbm5lY3Rpb25TdGF0dXMoXG4gICAgICB0aGlzLnh0ZXJtID8gQ29ubmVjdGlvblN0YXR1cy5SZUNvbm5lY3RpbmcgOiBDb25uZWN0aW9uU3RhdHVzLkNvbm5lY3RpbmcsXG4gICAgKTtcblxuICAgIHRoaXMuYXBpR2F0ZXdheS5nZXRBcGlBZGRyZXNzKCkuc3Vic2NyaWJlKGFwaUFkZHJlc3MgPT4ge1xuICAgICAgY29uc3QgaW5pdGlhbENvbW1hbmQgPSBmYWxsYmFja0NvbW1hbmQgfHwgdGhpcy5vcHRpb24uY29tbWFuZCB8fCBCSU5fU0g7XG4gICAgICB0aGlzLmluaXRTb2NrZXQoaW5pdGlhbENvbW1hbmQsIGFwaUFkZHJlc3MpO1xuICAgICAgdGhpcy5pbml0U29ja2V0TGlzdGVuZXJzKGluaXRpYWxDb21tYW5kKTtcbiAgICB9KTtcbiAgfTtcblxuICBwcml2YXRlIGZhbGxCYWNrT25DbG9zZSgpIHtcbiAgICB0aGlzLnNob3VsZEZhbGxCYWNrT25DbG9zZSA9IGZhbHNlO1xuICAgIHRoaXMuZmFsbGJhY2tTaGVsbC5lbWl0KEJJTl9TSCk7XG4gICAgdGhpcy5pbml0U29ja2V0Q29ubmVjdGlvbihCSU5fU0gpO1xuICAgIHRoaXMubm90aWZpY2F0aW9uLndhcm5pbmcoXG4gICAgICB0aGlzLnRyYW5zbGF0ZS5nZXQoJ3Vuc3VwcG9ydGVkX2V4ZWNfY29tbWFuZF93YXJuaW5nJyksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xvc2VTb2NrZXQoKSB7XG4gICAgaWYgKFxuICAgICAgW0Nvbm5lY3Rpb25TdGF0dXMuQ29ubmVjdGluZywgQ29ubmVjdGlvblN0YXR1cy5SZUNvbm5lY3RpbmddLmluY2x1ZGVzKFxuICAgICAgICB0aGlzLmNvbm5lY3Rpb25TdGF0dXMsXG4gICAgICApXG4gICAgKSB7XG4gICAgICB0aGlzLm9wdGlvbi5ub3RDbGVhcldoZW5SZWNvbm5lY3QgfHwgdGhpcy54dGVybT8ucmVzZXQoKTtcbiAgICB9XG5cbiAgICBjbGVhckludGVydmFsKHRoaXMucGluZyk7XG4gICAgdGhpcy5zb2NrZXQ/LmNsb3NlKCk7XG4gICAgdGhpcy5zb2NrZXQgPSBudWxsO1xuICAgIHRoaXMuc29ja2V0JCQubmV4dCh0aGlzLnNvY2tldCk7XG4gIH1cblxuICAvLyBodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy11aS9jb250YWluZXItdGVybWluYWwvYmxvYi9iYTU2MGQ0ZjcxNWY0MDViZWIwYTY0YmFiOGZiMjlhMjFhYWMyNjcxL2NvbnRhaW5lci10ZXJtaW5hbC5qcyNMMTUyXG4gIHByaXZhdGUgcmVzaXplUmVtb3RlVGVybWluYWwoKSB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuc29ja2V0Py5zZW5kKFxuICAgICAgICBgNCR7ZW5jb2RlKFxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHsgV2lkdGg6IHRoaXMueHRlcm0uY29scywgSGVpZ2h0OiB0aGlzLnh0ZXJtLnJvd3MgfSksXG4gICAgICAgICl9YCxcbiAgICAgICk7XG4gICAgfSBjYXRjaCB7fVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb25uZWN0aW9uU3RhdHVzKHN0YXR1czogQ29ubmVjdGlvblN0YXR1cykge1xuICAgIHRoaXMuY29ubmVjdGlvblN0YXR1cyA9IHN0YXR1cztcbiAgICB0aGlzLmNvbm5lY3Rpb25TdGF0dXNDaGFuZ2UuZW1pdChzdGF0dXMpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgYWN0aXZhdGVUZXJtaW5hbCgpIHtcbiAgICBpZiAodGhpcy5zb2NrZXQgJiYgdGhpcy5jb25uZWN0aW9uU3RhdHVzID09PSBDb25uZWN0aW9uU3RhdHVzLkNvbm5lY3RlZCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc29ja2V0LnNlbmQoJzAnICsgZW5jb2RlKCcgJykpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLnNvY2tldC5zZW5kKCcwJyArIGVuY29kZSgnXFxiJykpO1xuICAgICAgICB9LCAxMDApO1xuICAgICAgfSwgMTAwKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZGVjb2RlKGNvZGluZzogc3RyaW5nLCBkYXRhOiBzdHJpbmcpIHtcbiAgY29uc3QgZGF0YVZpZXcgPSBuZXcgRGF0YVZpZXcoXG4gICAgVWludDhBcnJheS5mcm9tKGF0b2IoZGF0YSksIGMgPT4gYy5jb2RlUG9pbnRBdCgwKSkuYnVmZmVyLFxuICApO1xuICBjb25zdCBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKGNvZGluZyk7XG4gIHJldHVybiBkZWNvZGVyLmRlY29kZShkYXRhVmlldyk7XG59XG4iLCI8YXVpLWlubGluZS1hbGVydFxuICAqbmdJZj1cImNvbm5lY3Rpb25TdGF0dXMgPT09IENvbm5lY3Rpb25TdGF0dXMuRGlzY29ubmVjdGVkXCJcbiAgdHlwZT1cImVycm9yXCJcbj5cbiAgPHNwYW4+e3sgJ2V4ZWNfZGlzY29ubmVjdGVkX3RpcCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gIDxidXR0b25cbiAgICBhdWktYnV0dG9uPVwidGV4dFwiXG4gICAgKGNsaWNrKT1cInJlY29ubmVjdCgpXCJcbiAgPlxuICAgIHt7ICdyZWNvbm5lY3QnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuPC9hdWktaW5saW5lLWFsZXJ0PlxuXG48ZGl2IGNsYXNzPVwiYWNsLXRlcm1pbmFsX193cmFwcGVyXCI+XG4gIDxhY2wtdGVybWluYWwtcGxhY2Vob2xkZXJcbiAgICBjbGFzcz1cInR3LWJnLW4tMTBcIlxuICAgICpuZ0lmPVwiY29ubmVjdGlvblN0YXR1cyA9PT0gQ29ubmVjdGlvblN0YXR1cy5Ob1Blcm1pc3Npb25cIlxuICAgIHR5cGU9XCJwZXJtaXNzaW9uXCJcbiAgPjwvYWNsLXRlcm1pbmFsLXBsYWNlaG9sZGVyPlxuICA8YWNsLWxvYWRpbmctbWFzayBbbG9hZGluZ109XCJzaG93TG9hZGluZ1wiPjwvYWNsLWxvYWRpbmctbWFzaz5cbiAgPGRpdlxuICAgIGNsYXNzPVwiYWNsLXRlcm1pbmFsIHR3LWludmlzaWJsZVwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJyF0dy12aXNpYmxlJzpcbiAgICAgICAgIXNob3dMb2FkaW5nICYmIGNvbm5lY3Rpb25TdGF0dXMgIT09IENvbm5lY3Rpb25TdGF0dXMuTm9QZXJtaXNzaW9uXG4gICAgfVwiXG4gICAgW2NsYXNzLmFjbC10ZXJtaW5hbC0tZGFya109XCJ0aGVtZSA9PT0gJ2RhcmsnXCJcbiAgICBbY2xhc3MuYWNsLXRlcm1pbmFsLS1saWdodF09XCJ0aGVtZSA9PT0gJ2xpZ2h0J1wiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwidHctdy1mdWxsIHR3LWgtMCB0dy1mbGV4LTEgdHctZmxleCB0dy1mbGV4LWNvbCB0dy1wLTEyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWNsLXRlcm1pbmFsX19oZWFkZXJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiYWNsLXRlcm1pbmFsX19idXR0b25cIlxuICAgICAgICAgIFthdWlEcm9wZG93bl09XCJjb2RpbmdNZW51XCJcbiAgICAgICAgICBbYXVpRHJvcGRvd25DbGFzc109XCJ0aGVtZUNsYXNzXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICA+e3tcbiAgICAgICAgICAgICAgY29kaW5nID09PSAndXRmOCdcbiAgICAgICAgICAgICAgICA/ICdVVEYtOCdcbiAgICAgICAgICAgICAgICA6IGNvZGluZyA9PT0gJ2diMTgwMzAnXG4gICAgICAgICAgICAgICAgPyAnR0IgMTgwMzAnXG4gICAgICAgICAgICAgICAgOiBjb2RpbmcudG9VcHBlckNhc2UoKVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHt7ICdkZWNvZGluZycgfCB0cmFuc2xhdGUgfX08L3NwYW5cbiAgICAgICAgICA+XG4gICAgICAgICAgPGF1aS1pY29uIGljb249XCJhbmdsZV9kb3duXCI+PC9hdWktaWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImFjbC10ZXJtaW5hbF9fYnV0dG9uXCJcbiAgICAgICAgICBbYXVpVG9vbHRpcF09XCJmb250VGVtcGxhdGVcIlxuICAgICAgICAgIGF1aVRvb2x0aXBUcmlnZ2VyPVwiY2xpY2tcIlxuICAgICAgICAgIGF1aVRvb2x0aXBUeXBlPVwiaW5mb1wiXG4gICAgICAgICAgYXVpVG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tIGVuZFwiXG4gICAgICAgICAgW2F1aVRvb2x0aXBDbGFzc109XCJ0aGVtZUNsYXNzXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxhdWktaWNvbiBpY29uPVwiZ2VhclwiPjwvYXVpLWljb24+XG4gICAgICAgICAgPHNwYW4+e3sgJ2ZvbnRfc2V0dGluZycgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJhY2wtdGVybWluYWxfX2J1dHRvblwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9wZW5TZWFyY2hpbmcoKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8YXVpLWljb24gaWNvbj1cIm1hZ25pZmllclwiPjwvYXVpLWljb24+XG4gICAgICAgICAgPHNwYW4+e3sgJ2ZpbmQnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiYWNsLXRlcm1pbmFsX19idXR0b25cIlxuICAgICAgICAgIChjbGljayk9XCJzd2l0Y2hUaGVtZSgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxhdWktaWNvbiBbaWNvbl09XCJ0aGVtZSA9PT0gJ2xpZ2h0JyA/ICdzdW4nIDogJ21vb24nXCI+PC9hdWktaWNvbj5cbiAgICAgICAgICA8c3Bhbj57e1xuICAgICAgICAgICAgKHRoZW1lID09PSAnbGlnaHQnID8gJ2xpZ2h0X3RoZW1lJyA6ICdkYXJrX3RoZW1lJykgfCB0cmFuc2xhdGVcbiAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImV4dHJhQnV0dG9uOyBjb250ZXh0OiB7IGluZGV4OiBpbmRleCB9XCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiYWNsLXRlcm1pbmFsX19zaGVsbFwiXG4gICAgICAgIChrZXlkb3duKT1cIm9uU2hlbGxLZXlEb3duKCRldmVudClcIlxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgI2FuY2hvclxuICAgICAgICAgIGNsYXNzPVwiYWNsLXRlcm1pbmFsX19hbmNob3JcIlxuICAgICAgICA+PC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAqbmdJZj1cInNlYXJjaGluZ1wiXG4gICAgICAgICAgY2xhc3M9XCJhY2wtdGVybWluYWxfX2ZpbmRpbmdcIlxuICAgICAgICA+XG4gICAgICAgICAgPGF1aS1zZWFyY2hcbiAgICAgICAgICAgICNzZWFyY2hJbnB1dFxuICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgIFsoa2V5d29yZCldPVwic2VhcmNoS2V5d29yZFwiXG4gICAgICAgICAgICAoa2V5ZG93bik9XCJvblNlYXJjaElucHV0S2V5RG93bigkZXZlbnQpXCJcbiAgICAgICAgICA+PC9hdWktc2VhcmNoPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGF1aS1idXR0b249XCJ0ZXh0XCJcbiAgICAgICAgICAgIHNpemU9XCJtaW5pXCJcbiAgICAgICAgICAgIFtzcXVhcmVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbcGxhaW5dPVwidHJ1ZVwiXG4gICAgICAgICAgICBbdGl0bGVdPVwiKCdmaW5kX3ByZXZpb3VzJyB8IHRyYW5zbGF0ZSkgKyAnIChTaGlmdCArIEVudGVyKSdcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImZpbmRQcmV2aW91cygpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YXVpLWljb25cbiAgICAgICAgICAgICAgaWNvbj1cImFycm93X3JpZ2h0XCJcbiAgICAgICAgICAgICAgc3R5bGU9XCJ0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpXCJcbiAgICAgICAgICAgID48L2F1aS1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGF1aS1idXR0b249XCJ0ZXh0XCJcbiAgICAgICAgICAgIHNpemU9XCJtaW5pXCJcbiAgICAgICAgICAgIFtzcXVhcmVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbcGxhaW5dPVwidHJ1ZVwiXG4gICAgICAgICAgICBbdGl0bGVdPVwiKCdmaW5kX25leHQnIHwgdHJhbnNsYXRlKSArICcgKEVudGVyKSdcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImZpbmROZXh0KClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxhdWktaWNvblxuICAgICAgICAgICAgICBpY29uPVwiYXJyb3dfcmlnaHRcIlxuICAgICAgICAgICAgICBzdHlsZT1cInRyYW5zZm9ybTogcm90YXRlKDkwZGVnKVwiXG4gICAgICAgICAgICA+PC9hdWktaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBhdWktYnV0dG9uPVwidGV4dFwiXG4gICAgICAgICAgICBzaXplPVwibWluaVwiXG4gICAgICAgICAgICBbc3F1YXJlXT1cInRydWVcIlxuICAgICAgICAgICAgW3BsYWluXT1cInRydWVcIlxuICAgICAgICAgICAgW3RpdGxlXT1cIignY2xvc2UnIHwgdHJhbnNsYXRlKSArICcgKEVzY2FwZSknXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbG9zZVNlYXJjaGluZygpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YXVpLWljb24gaWNvbj1cInhtYXJrXCI+PC9hdWktaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICBleHRyYUNvbnRlbnQ7XG4gICAgICBjb250ZXh0OiB7XG4gICAgICAgICRpbXBsaWNpdDogb3B0aW9uLFxuICAgICAgICBzb2NrZXQ6IHNvY2tldCQkIHwgYXN5bmMsXG4gICAgICAgIGluZGV4OiBpbmRleFxuICAgICAgfVxuICAgIFwiXG4gID48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2NvZGluZ01lbnVcbiAgPjxhdWktbWVudSBzaXplPVwic21hbGxcIlxuICAgID48YXVpLW1lbnUtaXRlbVxuICAgICAgW2FjdGl2ZWRdPVwiY29kaW5nID09PSAndXRmOCdcIlxuICAgICAgKGNsaWNrKT1cImNvZGluZyA9ICd1dGY4J1wiXG4gICAgICA+VVRGLThcbiAgICA8L2F1aS1tZW51LWl0ZW0+XG4gICAgPGF1aS1tZW51LWl0ZW1cbiAgICAgIFthY3RpdmVkXT1cImNvZGluZyA9PT0gJ2diMTgwMzAnXCJcbiAgICAgIChjbGljayk9XCJjb2RpbmcgPSAnZ2IxODAzMCdcIlxuICAgICAgPkdCIDE4MDMwXG4gICAgPC9hdWktbWVudS1pdGVtPlxuICA8L2F1aS1tZW51PjwvbmctdGVtcGxhdGVcbj5cblxuPG5nLXRlbXBsYXRlICNmb250VGVtcGxhdGU+XG4gIDxhdWktbnVtYmVyLWlucHV0XG4gICAgW3N0ZXBdPVwiMVwiXG4gICAgW3ByZWNpc2lvbl09XCIxXCJcbiAgICBbbWluXT1cIjEyXCJcbiAgICBbbWF4XT1cIjQwXCJcbiAgICBbY29udHJvbHNdPVwidHJ1ZVwiXG4gICAgW2FuZ2xlQ29udHJvbHNdPVwidHJ1ZVwiXG4gICAgW3ZhbHVlXT1cImZvbnRTaXplXCJcbiAgICAodmFsdWVDaGFuZ2UpPVwiZm9udFNpemVDaGFuZ2UoJGV2ZW50KVwiXG4gID5cbiAgICA8c3BhbiBhdWlJbnB1dEFkZG9uQWZ0ZXI+cHg8L3NwYW4+XG4gIDwvYXVpLW51bWJlci1pbnB1dD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
563
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2V4ZWMvdGVybWluYWwvY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2V4ZWMvdGVybWluYWwvdGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFFTixXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFn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QUFxQixFQUFFLENBQUMsUUFBUSxDQUFDO1lBUy9DLE1BQU07a0JBREwsWUFBWTttQkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7O2tGQXpDOUIsaUJBQWlCO0FBNGE5QixTQUFTLE1BQU0sQ0FBQyxNQUFjLEVBQUUsSUFBWTtJQUMxQyxNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FDM0IsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUMxRCxDQUFDO0lBQ0YsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ2xDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlLCBTZWFyY2hDb21wb25lbnQgfSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZW5jb2RlIH0gZnJvbSAnYWI2NCc7XG5pbXBvcnQgeyBkZWJvdW5jZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUZXJtaW5hbCB9IGZyb20gJ3h0ZXJtJztcbmltcG9ydCB7IENhbnZhc0FkZG9uIH0gZnJvbSAneHRlcm0tYWRkb24tY2FudmFzJztcbmltcG9ydCB7IEZpdEFkZG9uIH0gZnJvbSAneHRlcm0tYWRkb24tZml0JztcbmltcG9ydCB7IFNlYXJjaEFkZG9uIH0gZnJvbSAneHRlcm0tYWRkb24tc2VhcmNoJztcbmltcG9ydCB7IFdlYkxpbmtzQWRkb24gfSBmcm9tICd4dGVybS1hZGRvbi13ZWItbGlua3MnO1xuaW1wb3J0IHsgV2ViZ2xBZGRvbiB9IGZyb20gJ3h0ZXJtLWFkZG9uLXdlYmdsJztcblxuaW1wb3J0IHsgQXBpR2F0ZXdheVNlcnZpY2UgfSBmcm9tICcuLi8uLi9hcGkvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdHJhbnNsYXRlL3B1YmxpYy1hcGknO1xuaW1wb3J0IHtcbiAgQ29ubmVjdGlvblN0YXR1cyxcbiAgVEVSTUlOQUxfRk9OVF9MT0NBTF9TVE9SQUdFX0tFWSxcbiAgVEVSTUlOQUxfVEhFTUVfTE9DQUxfU1RPUkFHRV9LRVksXG4gIFhURVJNX0RBUktfVEhFTUUsXG4gIFhURVJNX0RFRkFVTFRfT1BUSU9OUyxcbiAgWFRFUk1fTElHSFRfVEhFTUUsXG59IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBUZXJtaW5hbE9wdGlvbiB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IEJJTl9TSCA9ICcvYmluL3NoJztcblxuZXhwb3J0IGNvbnN0IEVYRUNfRkFJTEVEX01FU1NBR0VfQ09OVEFJTkVSRCA9IGBJbnRlcm5hbCBlcnJvciBvY2N1cnJlZDogZXJyb3IgZXhlY3V0aW5nIGNvbW1hbmQgaW4gY29udGFpbmVyYDtcbmV4cG9ydCBjb25zdCBFWEVDX0ZBSUxFRF9NRVNTQUdFX0RPQ0tFUiA9IGBPQ0kgcnVudGltZSBleGVjIGZhaWxlZDogZXhlYyBmYWlsZWQ6IHVuYWJsZSB0byBzdGFydCBjb250YWluZXIgcHJvY2Vzc2A7XG5leHBvcnQgY29uc3QgTk9fUEVSTUlTU0lPTl9DT0RFID0gNDBfMDAxO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5pdFJlbmRlcmVyQWRkb24oKSB7XG4gIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICBpZiAoY2FudmFzLmdldENvbnRleHQoJ3dlYmdsMicpKSB7XG4gICAgcmV0dXJuIG5ldyBXZWJnbEFkZG9uKCk7XG4gIH1cbiAgcmV0dXJuIG5ldyBDYW52YXNBZGRvbigpO1xufVxuXG4vKipcbiAqIEZvciBkaXNwYXRjaGluZyBrZXlib2FyZCBldmVudHMgYXV0b21hdGljYWxseSB0byB4dGVybSxcbiAqIHBsZWFzZSB2aWV3IGh0dHBzOi8vd3d3LnBoeXNpY3MudWRlbC5lZHUvfndhdHNvbi9zY2VuMTAzL2FzY2lpLmh0bWwgZm9yIHJlZmVyZW5jZS5cbiAqXG4gKiBGb3IgaW5zdGFuY2UsIGlmIHlvdSB3YW50IHRvIGRpc3BhdGNoIGBDdHJsK0NgIHRvIHh0ZXJtLCB5b3Ugc2hvdWxkIGRpc3BhdGNoIGBcXHgwM2AoYWthIGBcXHUwMDAzYCkgdG8gdGhlIHNvY2tldC5cbiAqXG4gKiBgYGB0c1xuICogc29ja2V0LnNlbmQoJzAnICsgZW5jb2RlKCdcXHUwMDAzJykpXG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLXRlcm1pbmFsJyxcbiAgdGVtcGxhdGVVcmw6ICd0ZW1wbGF0ZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ3N0eWxlLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFRlcm1pbmFsQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCB7XG4gIENvbm5lY3Rpb25TdGF0dXMgPSBDb25uZWN0aW9uU3RhdHVzO1xuXG4gIEBJbnB1dCgpXG4gIG9wdGlvbjogVGVybWluYWxPcHRpb247XG5cbiAgQElucHV0KClcbiAgaW5kZXg6IG51bWJlcjtcblxuICBASW5wdXQoKVxuICBleHRyYUJ1dHRvbjogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KClcbiAgZXh0cmFDb250ZW50OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgY29ubmVjdGlvblN0YXR1c0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q29ubmVjdGlvblN0YXR1cz4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgc2VuZERhdGEgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgc29ja2V0UmVhZHkgPSBuZXcgRXZlbnRFbWl0dGVyPFdlYlNvY2tldD4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgZmFsbGJhY2tTaGVsbCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2FuY2hvcicpXG4gIGFuY2hvclJlZjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZCgnc2VhcmNoSW5wdXQnKVxuICBzZWFyY2hJbnB1dFJlZjogU2VhcmNoQ29tcG9uZW50O1xuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpiZWZvcmV1bmxvYWQnLCBbJyRldmVudCddKVxuICBiZWZvcmVVbmxvYWQoZXZlbnQ6IEJlZm9yZVVubG9hZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuc29ja2V0ICYmIHRoaXMuY29ubmVjdGlvblN0YXR1cyA9PT0gQ29ubmVjdGlvblN0YXR1cy5Db25uZWN0ZWQpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5yZXR1cm5WYWx1ZSA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzp1bmxvYWQnLCBbJyRldmVudCddKVxuICB1bmxvYWQoX2V2ZW50OiBCZWZvcmVVbmxvYWRFdmVudCkge1xuICAgIHRoaXMua2lsbFByb2Nlc3MoKTtcbiAgfVxuXG4gIHRoZW1lOiAnbGlnaHQnIHwgJ2RhcmsnID1cbiAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShURVJNSU5BTF9USEVNRV9MT0NBTF9TVE9SQUdFX0tFWSkgPT09ICdsaWdodCdcbiAgICAgID8gJ2xpZ2h0J1xuICAgICAgOiAnZGFyayc7XG5cbiAgZm9udFNpemU6IG51bWJlciA9XG4gICAgK2xvY2FsU3RvcmFnZS5nZXRJdGVtKFRFUk1JTkFMX0ZPTlRfTE9DQUxfU1RPUkFHRV9LRVkpIHx8XG4gICAgWFRFUk1fREVGQVVMVF9PUFRJT05TLmZvbnRTaXplO1xuXG4gIHNlYXJjaGluZyA9IGZhbHNlO1xuICBzZWFyY2hLZXl3b3JkID0gJyc7XG4gIGNvZGluZyA9ICd1dGY4JztcbiAgY29ubmVjdGlvblN0YXR1czogQ29ubmVjdGlvblN0YXR1cyA9IENvbm5lY3Rpb25TdGF0dXMuQ29ubmVjdGluZztcbiAgY29tbWFuZEhhc1J1biA9IGZhbHNlO1xuXG4gIHh0ZXJtOiBUZXJtaW5hbDtcbiAgcHJpdmF0ZSBzZWFyY2hBZGRvbjogU2VhcmNoQWRkb247XG4gIHByaXZhdGUgZml0QWRkb246IEZpdEFkZG9uO1xuICBwcml2YXRlIHNvY2tldDogV2ViU29ja2V0O1xuICBwcml2YXRlIHBpbmc6IG51bWJlcjtcbiAgcHJpdmF0ZSByZXNpemVPYnNlcnZlcjogUmVzaXplT2JzZXJ2ZXI7XG5cbiAgc29ja2V0JCQgPSBuZXcgU3ViamVjdDxXZWJTb2NrZXQ+KCk7XG5cbiAgc2hvdWxkRmFsbEJhY2tPbkNsb3NlID0gZmFsc2U7XG5cbiAgZ2V0IHRoZW1lQ2xhc3MoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgICdhY2wtdGVybWluYWxfX2Ryb3Bkb3duICcgK1xuICAgICAgKHRoaXMudGhlbWUgPT09ICdsaWdodCdcbiAgICAgICAgPyAnYWNsLXRlcm1pbmFsX19kcm9wZG93bi0tbGlnaHQnXG4gICAgICAgIDogJ2FjbC10ZXJtaW5hbF9fZHJvcGRvd24tLWRhcmsnKVxuICAgICk7XG4gIH1cblxuICBnZXQgc2hvd0xvYWRpbmcoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuY29ubmVjdGlvblN0YXR1cyA9PT0gQ29ubmVjdGlvblN0YXR1cy5Db25uZWN0aW5nIHx8XG4gICAgICAoIXRoaXMub3B0aW9uLm5vdENsZWFyV2hlblJlY29ubmVjdCAmJlxuICAgICAgICB0aGlzLmNvbm5lY3Rpb25TdGF0dXMgPT09IENvbm5lY3Rpb25TdGF0dXMuUmVDb25uZWN0aW5nKVxuICAgICk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwaUdhdGV3YXk6IEFwaUdhdGV3YXlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5pdFNvY2tldENvbm5lY3Rpb24oKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKHsgb3B0aW9uIH06IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAodGhpcy54dGVybSAmJiBvcHRpb24pIHtcbiAgICAgIHRoaXMucmVjb25uZWN0KCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5raWxsUHJvY2VzcygpO1xuICAgIHRoaXMuY2xvc2VTb2NrZXQoKTtcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMueHRlcm0/LmRpc3Bvc2UoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLndhcm4oZSk7XG4gICAgfVxuICB9XG5cbiAgZm9jdXMoKSB7XG4gICAgdGhpcy54dGVybT8uZm9jdXMoKTtcbiAgfVxuXG4gIHJlY29ubmVjdCgpIHtcbiAgICB0aGlzLmNvbW1hbmRIYXNSdW4gPSBmYWxzZTtcbiAgICB0aGlzLmNsb3NlU29ja2V0KCk7XG4gICAgdGhpcy5pbml0U29ja2V0Q29ubmVjdGlvbigpO1xuICB9XG5cbiAga2lsbFByb2Nlc3MoKSB7XG4gICAgaWYgKHRoaXMuc29ja2V0Py5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQuT1BFTikge1xuICAgICAgdGhpcy5zb2NrZXQuc2VuZCgnMCcgKyBlbmNvZGUoJ1xcdTAwMDNcXHJcXG4nKSk7XG4gICAgICB0aGlzLnNvY2tldC5zZW5kKCcwJyArIGVuY29kZSgnZXhpdFxcclxcbicpKTtcbiAgICB9XG4gIH1cblxuICBzd2l0Y2hUaGVtZSgpIHtcbiAgICB0aGlzLnRoZW1lID0gdGhpcy50aGVtZSA9PT0gJ2xpZ2h0JyA/ICdkYXJrJyA6ICdsaWdodCc7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oVEVSTUlOQUxfVEhFTUVfTE9DQUxfU1RPUkFHRV9LRVksIHRoaXMudGhlbWUpO1xuICAgIHRoaXMueHRlcm0ub3B0aW9ucy50aGVtZSA9XG4gICAgICB0aGlzLnRoZW1lID09PSAnbGlnaHQnID8gWFRFUk1fTElHSFRfVEhFTUUgOiBYVEVSTV9EQVJLX1RIRU1FO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgZm9udFNpemVDaGFuZ2Uoc2l6ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5mb250U2l6ZSA9IHNpemU7XG4gICAgdGhpcy54dGVybS5vcHRpb25zLmZvbnRTaXplID0gc2l6ZTtcbiAgICB0aGlzLmZpdEFkZG9uLmZpdCgpO1xuXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oVEVSTUlOQUxfRk9OVF9MT0NBTF9TVE9SQUdFX0tFWSwgc2l6ZSArICcnKTtcbiAgfVxuXG4gIG9wZW5TZWFyY2hpbmcoKSB7XG4gICAgdGhpcy5zZWFyY2hpbmcgPSB0cnVlO1xuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICB0aGlzLnNlYXJjaElucHV0UmVmLmZvY3VzKCk7XG4gICAgfSk7XG4gIH1cblxuICBjbG9zZVNlYXJjaGluZygpIHtcbiAgICB0aGlzLnNlYXJjaGluZyA9IGZhbHNlO1xuICAgIHRoaXMuc2VhcmNoS2V5d29yZCA9ICcnO1xuICAgIHRoaXMuZmluZE5leHQoKTtcbiAgICB0aGlzLnh0ZXJtPy5mb2N1cygpO1xuICB9XG5cbiAgb25TaGVsbEtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoKGV2ZW50Lm1ldGFLZXkgfHwgZXZlbnQuY3RybEtleSkgJiYgZXZlbnQuY29kZSA9PT0gJ0tleUYnKSB7XG4gICAgICB0aGlzLm9wZW5TZWFyY2hpbmcoKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBvblNlYXJjaElucHV0S2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChldmVudC5jb2RlID09PSAnRXNjYXBlJykge1xuICAgICAgdGhpcy5jbG9zZVNlYXJjaGluZygpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuY29kZSA9PT0gJ0VudGVyJykge1xuICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICAgIHRoaXMuZmluZFByZXZpb3VzKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmZpbmROZXh0KCk7XG4gICAgICB9XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRTZWFyY2hPcHRpb25zKCkge1xuICAgIGNvbnN0IHRoZW1lID0gdGhpcy50aGVtZSA9PT0gJ2xpZ2h0JyA/IFhURVJNX0xJR0hUX1RIRU1FIDogWFRFUk1fREFSS19USEVNRTtcbiAgICByZXR1cm4ge1xuICAgICAgZGVjb3JhdGlvbnM6IHtcbiAgICAgICAgbWF0Y2hCYWNrZ3JvdW5kOiB0aGVtZS5zZWxlY3Rpb25JbmFjdGl2ZUJhY2tncm91bmQsXG4gICAgICAgIG1hdGNoT3ZlcnZpZXdSdWxlcjogdGhlbWUuc2VsZWN0aW9uSW5hY3RpdmVCYWNrZ3JvdW5kLFxuICAgICAgICBhY3RpdmVNYXRjaEJhY2tncm91bmQ6IHRoZW1lLnNlbGVjdGlvbkJhY2tncm91bmQsXG4gICAgICAgIGFjdGl2ZU1hdGNoQ29sb3JPdmVydmlld1J1bGVyOiB0aGVtZS5zZWxlY3Rpb25CYWNrZ3JvdW5kLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgZmluZE5leHQoKSB7XG4gICAgdGhpcy5zZWFyY2hBZGRvbi5maW5kTmV4dCh0aGlzLnNlYXJjaEtleXdvcmQsIHRoaXMuZ2V0U2VhcmNoT3B0aW9ucygpKTtcbiAgfVxuXG4gIGZpbmRQcmV2aW91cygpIHtcbiAgICB0aGlzLnNlYXJjaEFkZG9uLmZpbmRQcmV2aW91cyh0aGlzLnNlYXJjaEtleXdvcmQsIHRoaXMuZ2V0U2VhcmNoT3B0aW9ucygpKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFh0ZXJtKCkge1xuICAgIHRoaXMueHRlcm0gPSBuZXcgVGVybWluYWwoe1xuICAgICAgLi4uWFRFUk1fREVGQVVMVF9PUFRJT05TLFxuICAgICAgdGhlbWU6IHRoaXMudGhlbWUgPT09ICdsaWdodCcgPyBYVEVSTV9MSUdIVF9USEVNRSA6IFhURVJNX0RBUktfVEhFTUUsXG4gICAgICBmb250U2l6ZTogdGhpcy5mb250U2l6ZSxcbiAgICAgIGFsbG93UHJvcG9zZWRBcGk6IHRydWUsXG4gICAgfSk7XG5cbiAgICB0aGlzLnh0ZXJtLmxvYWRBZGRvbih0aGlzLmluaXRTZWFyY2hBZGRvbigpKTtcbiAgICB0aGlzLmZpdEFkZG9uID0gdGhpcy5pbml0Rml0QWRkb24oKTtcbiAgICB0aGlzLnh0ZXJtLmxvYWRBZGRvbih0aGlzLmZpdEFkZG9uKTtcbiAgICB0aGlzLnh0ZXJtLmxvYWRBZGRvbihuZXcgV2ViTGlua3NBZGRvbigpKTtcbiAgICB0aGlzLnh0ZXJtLmxvYWRBZGRvbihpbml0UmVuZGVyZXJBZGRvbigpKTtcblxuICAgIHRoaXMueHRlcm0ub3Blbih0aGlzLmFuY2hvclJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgdGhpcy5maXRBZGRvbi5maXQoKTtcbiAgICB9KTtcblxuICAgIHRoaXMueHRlcm0ub25EYXRhKChkYXRhOiBzdHJpbmcpID0+IHtcbiAgICAgIGlmICh0aGlzLmNvbm5lY3Rpb25TdGF0dXMgPT09IENvbm5lY3Rpb25TdGF0dXMuQ29ubmVjdGVkKSB7XG4gICAgICAgIHRoaXMuY29tbWFuZEhhc1J1biA9IHRydWU7XG4gICAgICAgIHRoaXMuc29ja2V0LnNlbmQoJzAnICsgZW5jb2RlKGRhdGEpKTtcbiAgICAgICAgdGhpcy5zZW5kRGF0YS5lbWl0KGRhdGEpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMueHRlcm0ub25TZWxlY3Rpb25DaGFuZ2UoKCkgPT4ge1xuICAgICAgY29uc3Qgc2VsZWN0aW9uID0gdGhpcy54dGVybS5nZXRTZWxlY3Rpb24oKS50cmltKCk7XG4gICAgICBpZiAoc2VsZWN0aW9uKSB7XG4gICAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHNlbGVjdGlvbik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGluaXRGaXRBZGRvbigpIHtcbiAgICBjb25zdCBmaXRBZGRvbiA9IG5ldyBGaXRBZGRvbigpO1xuXG4gICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcihcbiAgICAgIGRlYm91bmNlKChbZW50cnldKSA9PiB7XG4gICAgICAgIGlmIChlbnRyeS5jb250ZW50UmVjdC53aWR0aCAhPT0gMCkge1xuICAgICAgICAgIGZpdEFkZG9uLmZpdCgpO1xuICAgICAgICAgIHRoaXMucmVzaXplUmVtb3RlVGVybWluYWwoKTtcbiAgICAgICAgfVxuICAgICAgfSwgMjAwKSxcbiAgICApO1xuXG4gICAgdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuYW5jaG9yUmVmLm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgcmV0dXJuIGZpdEFkZG9uO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0U2VhcmNoQWRkb24oKSB7XG4gICAgdGhpcy5zZWFyY2hBZGRvbiA9IG5ldyBTZWFyY2hBZGRvbigpO1xuICAgIHJldHVybiB0aGlzLnNlYXJjaEFkZG9uO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0U29ja2V0KGluaXRpYWxDb21tYW5kOiBzdHJpbmcsIGFwaUFkZHJlc3M6IHN0cmluZykge1xuICAgIGlmICh0aGlzLnNvY2tldCkge1xuICAgICAgdGhpcy5zb2NrZXQuY2xvc2UoKTtcbiAgICB9XG5cbiAgICBjb25zdCB7XG4gICAgICBjbHVzdGVyLFxuICAgICAgbmFtZXNwYWNlLFxuICAgICAgcG9kLFxuICAgICAgY29udGFpbmVyLFxuICAgICAgdXNlciA9ICdyb290JyxcbiAgICAgIGNtZCxcbiAgICAgIGFkdmFuY2VBcGksXG4gICAgfSA9IHRoaXMub3B0aW9uO1xuXG4gICAgY29uc3QgY29tbWFuZCA9IGNtZFxuICAgICAgPyBbJ3NoJywgJy1jJywgY21kXVxuICAgICAgOiB1c2VyID09PSAncm9vdCdcbiAgICAgICAgPyBpbml0aWFsQ29tbWFuZC5zcGxpdCgnICcpXG4gICAgICAgIDogWydzaCcsICctYycsIGBzdSAtcCAke3VzZXJ9IC1jIFwiJHtpbml0aWFsQ29tbWFuZH1cImBdO1xuXG4gICAgY29uc3QgYXBpID0gYWR2YW5jZUFwaVxuICAgICAgPyAnL2F1dGgvdjEvcG9kL3NoZWxsJ1xuICAgICAgOiBgL2t1YmVybmV0ZXMvJHtjbHVzdGVyfS9hcGkvdjEvbmFtZXNwYWNlcy8ke25hbWVzcGFjZX0vcG9kcy8ke3BvZH0vZXhlY2A7XG5cbiAgICB0aGlzLnNvY2tldCA9IG5ldyBXZWJTb2NrZXQoXG4gICAgICBhcGlBZGRyZXNzLnJlcGxhY2UoL15odHRwLywgJ3dzJykgK1xuICAgICAgICBgJHthcGl9PyR7bmV3IEh0dHBQYXJhbXMoe1xuICAgICAgICAgIGZyb21PYmplY3Q6IHtcbiAgICAgICAgICAgIHN0ZGluOiB0cnVlLFxuICAgICAgICAgICAgc3Rkb3V0OiB0cnVlLFxuICAgICAgICAgICAgc3RkZXJyOiB0cnVlLFxuICAgICAgICAgICAgdHR5OiB0cnVlLFxuICAgICAgICAgICAgY29udGFpbmVyLFxuICAgICAgICAgICAgY29tbWFuZCxcbiAgICAgICAgICB9LFxuICAgICAgICB9KS50b1N0cmluZygpfWAsXG4gICAgICBbJ2Jhc2U2NC5jaGFubmVsLms4cy5pbyddLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGluaXRTb2NrZXRMaXN0ZW5lcnMgPSAoaW5pdGlhbENvbW1hbmQ6IHN0cmluZykgPT4ge1xuICAgIGxldCBuZWVkQ2xlYXI6IGJvb2xlYW47XG5cbiAgICB0aGlzLnNvY2tldC5hZGRFdmVudExpc3RlbmVyKCdvcGVuJywgKCkgPT4ge1xuICAgICAgbmVlZENsZWFyID0gdHJ1ZTtcbiAgICAgIHRoaXMucmVzaXplUmVtb3RlVGVybWluYWwoKTtcbiAgICAgIHRoaXMuc29ja2V0UmVhZHkuZW1pdCh0aGlzLnNvY2tldCk7XG4gICAgICB0aGlzLnNvY2tldCQkLm5leHQodGhpcy5zb2NrZXQpO1xuICAgICAgdGhpcy5waW5nID0gd2luZG93LnNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgdGhpcy5zb2NrZXQuc2VuZCgnMCcpO1xuICAgICAgfSwgNTAwMCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnNvY2tldC5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgKGV2ZW50OiBNZXNzYWdlRXZlbnQ8c3RyaW5nPikgPT4ge1xuICAgICAgdGhpcy51cGRhdGVDb25uZWN0aW9uU3RhdHVzKENvbm5lY3Rpb25TdGF0dXMuQ29ubmVjdGVkKTtcbiAgICAgIGlmICghdGhpcy54dGVybSkge1xuICAgICAgICB0aGlzLmluaXRYdGVybSgpO1xuICAgICAgfVxuICAgICAgaWYgKG5lZWRDbGVhcikge1xuICAgICAgICBuZWVkQ2xlYXIgPSBmYWxzZTtcblxuICAgICAgICBpZiAoIXRoaXMub3B0aW9uLm5vdENsZWFyV2hlblJlY29ubmVjdCkge1xuICAgICAgICAgIHRoaXMueHRlcm0ucmVzZXQoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnh0ZXJtLmJ1ZmZlci5hY3RpdmUudHlwZSA9PT0gJ2FsdGVybmF0ZScpIHtcbiAgICAgICAgICAvLyBleGl0IGFsdGVybmF0ZSBzY3JlZW4uIEFJVC00NjM5MVxuICAgICAgICAgIHRoaXMueHRlcm0ud3JpdGUoJ1xcdTAwMUJbPzEwNDlsJyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy54dGVybS5mb2N1cygpO1xuICAgICAgY29uc3QgdGV4dCA9IGRlY29kZSh0aGlzLmNvZGluZywgZXZlbnQuZGF0YS5zbGljZSgxKSk7XG4gICAgICB0aGlzLnh0ZXJtLndyaXRlKHRleHQpO1xuICAgICAgaWYgKFxuICAgICAgICAodGV4dC5pbmNsdWRlcyhFWEVDX0ZBSUxFRF9NRVNTQUdFX0NPTlRBSU5FUkQpIHx8XG4gICAgICAgICAgdGV4dC5pbmNsdWRlcyhFWEVDX0ZBSUxFRF9NRVNTQUdFX0RPQ0tFUikpICYmXG4gICAgICAgICF0aGlzLmNvbW1hbmRIYXNSdW4gJiZcbiAgICAgICAgaW5pdGlhbENvbW1hbmQgIT09IEJJTl9TSFxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuc2hvdWxkRmFsbEJhY2tPbkNsb3NlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuc29ja2V0LmFkZEV2ZW50TGlzdGVuZXIoJ2Nsb3NlJywgZSA9PiB7XG4gICAgICB0aGlzLmNsb3NlU29ja2V0KCk7XG4gICAgICB0aGlzLnVwZGF0ZUNvbm5lY3Rpb25TdGF0dXMoXG4gICAgICAgIGUuY29kZSA9PT0gTk9fUEVSTUlTU0lPTl9DT0RFXG4gICAgICAgICAgPyBDb25uZWN0aW9uU3RhdHVzLk5vUGVybWlzc2lvblxuICAgICAgICAgIDogQ29ubmVjdGlvblN0YXR1cy5EaXNjb25uZWN0ZWQsXG4gICAgICApO1xuICAgICAgaWYgKHRoaXMuc2hvdWxkRmFsbEJhY2tPbkNsb3NlKSB7XG4gICAgICAgIHRoaXMuZmFsbEJhY2tPbkNsb3NlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpbml0U29ja2V0Q29ubmVjdGlvbiA9IChmYWxsYmFja0NvbW1hbmQ/OiBzdHJpbmcpID0+IHtcbiAgICB0aGlzLnVwZGF0ZUNvbm5lY3Rpb25TdGF0dXMoXG4gICAgICB0aGlzLnh0ZXJtID8gQ29ubmVjdGlvblN0YXR1cy5SZUNvbm5lY3RpbmcgOiBDb25uZWN0aW9uU3RhdHVzLkNvbm5lY3RpbmcsXG4gICAgKTtcblxuICAgIHRoaXMuYXBpR2F0ZXdheVxuICAgICAgLmdldEFwaUFkZHJlc3MoKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoYXBpQWRkcmVzcyA9PiB7XG4gICAgICAgIGNvbnN0IGluaXRpYWxDb21tYW5kID0gZmFsbGJhY2tDb21tYW5kIHx8IHRoaXMub3B0aW9uLmNvbW1hbmQgfHwgQklOX1NIO1xuICAgICAgICB0aGlzLmluaXRTb2NrZXQoaW5pdGlhbENvbW1hbmQsIGFwaUFkZHJlc3MpO1xuICAgICAgICB0aGlzLmluaXRTb2NrZXRMaXN0ZW5lcnMoaW5pdGlhbENvbW1hbmQpO1xuICAgICAgfSk7XG4gIH07XG5cbiAgcHJpdmF0ZSBmYWxsQmFja09uQ2xvc2UoKSB7XG4gICAgdGhpcy5zaG91bGRGYWxsQmFja09uQ2xvc2UgPSBmYWxzZTtcbiAgICB0aGlzLmZhbGxiYWNrU2hlbGwuZW1pdChCSU5fU0gpO1xuICAgIHRoaXMuaW5pdFNvY2tldENvbm5lY3Rpb24oQklOX1NIKTtcbiAgICB0aGlzLm5vdGlmaWNhdGlvbi53YXJuaW5nKFxuICAgICAgdGhpcy50cmFuc2xhdGUuZ2V0KCd1bnN1cHBvcnRlZF9leGVjX2NvbW1hbmRfd2FybmluZycpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNsb3NlU29ja2V0KCkge1xuICAgIGlmIChcbiAgICAgIFtDb25uZWN0aW9uU3RhdHVzLkNvbm5lY3RpbmcsIENvbm5lY3Rpb25TdGF0dXMuUmVDb25uZWN0aW5nXS5pbmNsdWRlcyhcbiAgICAgICAgdGhpcy5jb25uZWN0aW9uU3RhdHVzLFxuICAgICAgKVxuICAgICkge1xuICAgICAgdGhpcy5vcHRpb24ubm90Q2xlYXJXaGVuUmVjb25uZWN0IHx8IHRoaXMueHRlcm0/LnJlc2V0KCk7XG4gICAgfVxuXG4gICAgY2xlYXJJbnRlcnZhbCh0aGlzLnBpbmcpO1xuICAgIHRoaXMuc29ja2V0Py5jbG9zZSgpO1xuICAgIHRoaXMuc29ja2V0ID0gbnVsbDtcbiAgICB0aGlzLnNvY2tldCQkLm5leHQodGhpcy5zb2NrZXQpO1xuICB9XG5cbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2t1YmVybmV0ZXMtdWkvY29udGFpbmVyLXRlcm1pbmFsL2Jsb2IvYmE1NjBkNGY3MTVmNDA1YmViMGE2NGJhYjhmYjI5YTIxYWFjMjY3MS9jb250YWluZXItdGVybWluYWwuanMjTDE1MlxuICBwcml2YXRlIHJlc2l6ZVJlbW90ZVRlcm1pbmFsKCkge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLnNvY2tldD8uc2VuZChcbiAgICAgICAgYDQke2VuY29kZShcbiAgICAgICAgICBKU09OLnN0cmluZ2lmeSh7IFdpZHRoOiB0aGlzLnh0ZXJtLmNvbHMsIEhlaWdodDogdGhpcy54dGVybS5yb3dzIH0pLFxuICAgICAgICApfWAsXG4gICAgICApO1xuICAgIH0gY2F0Y2gge31cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ29ubmVjdGlvblN0YXR1cyhzdGF0dXM6IENvbm5lY3Rpb25TdGF0dXMpIHtcbiAgICB0aGlzLmNvbm5lY3Rpb25TdGF0dXMgPSBzdGF0dXM7XG4gICAgdGhpcy5jb25uZWN0aW9uU3RhdHVzQ2hhbmdlLmVtaXQoc3RhdHVzKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGFjdGl2YXRlVGVybWluYWwoKSB7XG4gICAgaWYgKHRoaXMuc29ja2V0ICYmIHRoaXMuY29ubmVjdGlvblN0YXR1cyA9PT0gQ29ubmVjdGlvblN0YXR1cy5Db25uZWN0ZWQpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNvY2tldC5zZW5kKCcwJyArIGVuY29kZSgnICcpKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zb2NrZXQuc2VuZCgnMCcgKyBlbmNvZGUoJ1xcYicpKTtcbiAgICAgICAgfSwgMTAwKTtcbiAgICAgIH0sIDEwMCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGRlY29kZShjb2Rpbmc6IHN0cmluZywgZGF0YTogc3RyaW5nKSB7XG4gIGNvbnN0IGRhdGFWaWV3ID0gbmV3IERhdGFWaWV3KFxuICAgIFVpbnQ4QXJyYXkuZnJvbShhdG9iKGRhdGEpLCBjID0+IGMuY29kZVBvaW50QXQoMCkpLmJ1ZmZlcixcbiAgKTtcbiAgY29uc3QgZGVjb2RlciA9IG5ldyBUZXh0RGVjb2Rlcihjb2RpbmcpO1xuICByZXR1cm4gZGVjb2Rlci5kZWNvZGUoZGF0YVZpZXcpO1xufVxuIiwiPGF1aS1pbmxpbmUtYWxlcnRcbiAgKm5nSWY9XCJjb25uZWN0aW9uU3RhdHVzID09PSBDb25uZWN0aW9uU3RhdHVzLkRpc2Nvbm5lY3RlZFwiXG4gIHR5cGU9XCJlcnJvclwiXG4+XG4gIDxzcGFuPnt7ICdleGVjX2Rpc2Nvbm5lY3RlZF90aXAnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICA8YnV0dG9uXG4gICAgYXVpLWJ1dHRvbj1cInRleHRcIlxuICAgIChjbGljayk9XCJyZWNvbm5lY3QoKVwiXG4gID5cbiAgICB7eyAncmVjb25uZWN0JyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cbjwvYXVpLWlubGluZS1hbGVydD5cblxuPGRpdiBjbGFzcz1cImFjbC10ZXJtaW5hbF9fd3JhcHBlclwiPlxuICA8YWNsLXRlcm1pbmFsLXBsYWNlaG9sZGVyXG4gICAgY2xhc3M9XCJ0dy1iZy1uLTEwXCJcbiAgICAqbmdJZj1cImNvbm5lY3Rpb25TdGF0dXMgPT09IENvbm5lY3Rpb25TdGF0dXMuTm9QZXJtaXNzaW9uXCJcbiAgICB0eXBlPVwicGVybWlzc2lvblwiXG4gID48L2FjbC10ZXJtaW5hbC1wbGFjZWhvbGRlcj5cbiAgPGFjbC1sb2FkaW5nLW1hc2sgW2xvYWRpbmddPVwic2hvd0xvYWRpbmdcIj48L2FjbC1sb2FkaW5nLW1hc2s+XG4gIDxkaXZcbiAgICBjbGFzcz1cImFjbC10ZXJtaW5hbCB0dy1pbnZpc2libGVcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICchdHctdmlzaWJsZSc6XG4gICAgICAgICFzaG93TG9hZGluZyAmJiBjb25uZWN0aW9uU3RhdHVzICE9PSBDb25uZWN0aW9uU3RhdHVzLk5vUGVybWlzc2lvblxuICAgIH1cIlxuICAgIFtjbGFzcy5hY2wtdGVybWluYWwtLWRhcmtdPVwidGhlbWUgPT09ICdkYXJrJ1wiXG4gICAgW2NsYXNzLmFjbC10ZXJtaW5hbC0tbGlnaHRdPVwidGhlbWUgPT09ICdsaWdodCdcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cInR3LXctZnVsbCB0dy1oLTAgdHctZmxleC0xIHR3LWZsZXggdHctZmxleC1jb2wgdHctcC0xMlwiPlxuICAgICAgPGRpdiBjbGFzcz1cImFjbC10ZXJtaW5hbF9faGVhZGVyXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImFjbC10ZXJtaW5hbF9fYnV0dG9uXCJcbiAgICAgICAgICBbYXVpRHJvcGRvd25dPVwiY29kaW5nTWVudVwiXG4gICAgICAgICAgW2F1aURyb3Bkb3duQ2xhc3NdPVwidGhlbWVDbGFzc1wiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgPnt7XG4gICAgICAgICAgICAgIGNvZGluZyA9PT0gJ3V0ZjgnXG4gICAgICAgICAgICAgICAgPyAnVVRGLTgnXG4gICAgICAgICAgICAgICAgOiBjb2RpbmcgPT09ICdnYjE4MDMwJ1xuICAgICAgICAgICAgICAgID8gJ0dCIDE4MDMwJ1xuICAgICAgICAgICAgICAgIDogY29kaW5nLnRvVXBwZXJDYXNlKClcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICB7eyAnZGVjb2RpbmcnIHwgdHJhbnNsYXRlIH19PC9zcGFuXG4gICAgICAgICAgPlxuICAgICAgICAgIDxhdWktaWNvbiBpY29uPVwiYW5nbGVfZG93blwiPjwvYXVpLWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJhY2wtdGVybWluYWxfX2J1dHRvblwiXG4gICAgICAgICAgW2F1aVRvb2x0aXBdPVwiZm9udFRlbXBsYXRlXCJcbiAgICAgICAgICBhdWlUb29sdGlwVHJpZ2dlcj1cImNsaWNrXCJcbiAgICAgICAgICBhdWlUb29sdGlwVHlwZT1cImluZm9cIlxuICAgICAgICAgIGF1aVRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbSBlbmRcIlxuICAgICAgICAgIFthdWlUb29sdGlwQ2xhc3NdPVwidGhlbWVDbGFzc1wiXG4gICAgICAgID5cbiAgICAgICAgICA8YXVpLWljb24gaWNvbj1cImdlYXJcIj48L2F1aS1pY29uPlxuICAgICAgICAgIDxzcGFuPnt7ICdmb250X3NldHRpbmcnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiYWNsLXRlcm1pbmFsX19idXR0b25cIlxuICAgICAgICAgIChjbGljayk9XCJvcGVuU2VhcmNoaW5nKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPGF1aS1pY29uIGljb249XCJtYWduaWZpZXJcIj48L2F1aS1pY29uPlxuICAgICAgICAgIDxzcGFuPnt7ICdmaW5kJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImFjbC10ZXJtaW5hbF9fYnV0dG9uXCJcbiAgICAgICAgICAoY2xpY2spPVwic3dpdGNoVGhlbWUoKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8YXVpLWljb24gW2ljb25dPVwidGhlbWUgPT09ICdsaWdodCcgPyAnc3VuJyA6ICdtb29uJ1wiPjwvYXVpLWljb24+XG4gICAgICAgICAgPHNwYW4+e3tcbiAgICAgICAgICAgICh0aGVtZSA9PT0gJ2xpZ2h0JyA/ICdsaWdodF90aGVtZScgOiAnZGFya190aGVtZScpIHwgdHJhbnNsYXRlXG4gICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJleHRyYUJ1dHRvbjsgY29udGV4dDogeyBpbmRleDogaW5kZXggfVwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImFjbC10ZXJtaW5hbF9fc2hlbGxcIlxuICAgICAgICAoa2V5ZG93bik9XCJvblNoZWxsS2V5RG93bigkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICNhbmNob3JcbiAgICAgICAgICBjbGFzcz1cImFjbC10ZXJtaW5hbF9fYW5jaG9yXCJcbiAgICAgICAgPjwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nSWY9XCJzZWFyY2hpbmdcIlxuICAgICAgICAgIGNsYXNzPVwiYWNsLXRlcm1pbmFsX19maW5kaW5nXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxhdWktc2VhcmNoXG4gICAgICAgICAgICAjc2VhcmNoSW5wdXRcbiAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICBbKGtleXdvcmQpXT1cInNlYXJjaEtleXdvcmRcIlxuICAgICAgICAgICAgKGtleWRvd24pPVwib25TZWFyY2hJbnB1dEtleURvd24oJGV2ZW50KVwiXG4gICAgICAgICAgPjwvYXVpLXNlYXJjaD5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBhdWktYnV0dG9uPVwidGV4dFwiXG4gICAgICAgICAgICBzaXplPVwibWluaVwiXG4gICAgICAgICAgICBbc3F1YXJlXT1cInRydWVcIlxuICAgICAgICAgICAgW3BsYWluXT1cInRydWVcIlxuICAgICAgICAgICAgW3RpdGxlXT1cIignZmluZF9wcmV2aW91cycgfCB0cmFuc2xhdGUpICsgJyAoU2hpZnQgKyBFbnRlciknXCJcbiAgICAgICAgICAgIChjbGljayk9XCJmaW5kUHJldmlvdXMoKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGF1aS1pY29uXG4gICAgICAgICAgICAgIGljb249XCJhcnJvd19yaWdodFwiXG4gICAgICAgICAgICAgIHN0eWxlPVwidHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKVwiXG4gICAgICAgICAgICA+PC9hdWktaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBhdWktYnV0dG9uPVwidGV4dFwiXG4gICAgICAgICAgICBzaXplPVwibWluaVwiXG4gICAgICAgICAgICBbc3F1YXJlXT1cInRydWVcIlxuICAgICAgICAgICAgW3BsYWluXT1cInRydWVcIlxuICAgICAgICAgICAgW3RpdGxlXT1cIignZmluZF9uZXh0JyB8IHRyYW5zbGF0ZSkgKyAnIChFbnRlciknXCJcbiAgICAgICAgICAgIChjbGljayk9XCJmaW5kTmV4dCgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YXVpLWljb25cbiAgICAgICAgICAgICAgaWNvbj1cImFycm93X3JpZ2h0XCJcbiAgICAgICAgICAgICAgc3R5bGU9XCJ0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZylcIlxuICAgICAgICAgICAgPjwvYXVpLWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgYXVpLWJ1dHRvbj1cInRleHRcIlxuICAgICAgICAgICAgc2l6ZT1cIm1pbmlcIlxuICAgICAgICAgICAgW3NxdWFyZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtwbGFpbl09XCJ0cnVlXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCIoJ2Nsb3NlJyB8IHRyYW5zbGF0ZSkgKyAnIChFc2NhcGUpJ1wiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VTZWFyY2hpbmcoKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGF1aS1pY29uIGljb249XCJ4bWFya1wiPjwvYXVpLWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgZXh0cmFDb250ZW50O1xuICAgICAgY29udGV4dDoge1xuICAgICAgICAkaW1wbGljaXQ6IG9wdGlvbixcbiAgICAgICAgc29ja2V0OiBzb2NrZXQkJCB8IGFzeW5jLFxuICAgICAgICBpbmRleDogaW5kZXhcbiAgICAgIH1cbiAgICBcIlxuICA+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNjb2RpbmdNZW51XG4gID48YXVpLW1lbnUgc2l6ZT1cInNtYWxsXCJcbiAgICA+PGF1aS1tZW51LWl0ZW1cbiAgICAgIFthY3RpdmVkXT1cImNvZGluZyA9PT0gJ3V0ZjgnXCJcbiAgICAgIChjbGljayk9XCJjb2RpbmcgPSAndXRmOCdcIlxuICAgICAgPlVURi04XG4gICAgPC9hdWktbWVudS1pdGVtPlxuICAgIDxhdWktbWVudS1pdGVtXG4gICAgICBbYWN0aXZlZF09XCJjb2RpbmcgPT09ICdnYjE4MDMwJ1wiXG4gICAgICAoY2xpY2spPVwiY29kaW5nID0gJ2diMTgwMzAnXCJcbiAgICAgID5HQiAxODAzMFxuICAgIDwvYXVpLW1lbnUtaXRlbT5cbiAgPC9hdWktbWVudT48L25nLXRlbXBsYXRlXG4+XG5cbjxuZy10ZW1wbGF0ZSAjZm9udFRlbXBsYXRlPlxuICA8YXVpLW51bWJlci1pbnB1dFxuICAgIFtzdGVwXT1cIjFcIlxuICAgIFtwcmVjaXNpb25dPVwiMVwiXG4gICAgW21pbl09XCIxMlwiXG4gICAgW21heF09XCI0MFwiXG4gICAgW2NvbnRyb2xzXT1cInRydWVcIlxuICAgIFthbmdsZUNvbnRyb2xzXT1cInRydWVcIlxuICAgIFt2YWx1ZV09XCJmb250U2l6ZVwiXG4gICAgKHZhbHVlQ2hhbmdlKT1cImZvbnRTaXplQ2hhbmdlKCRldmVudClcIlxuICA+XG4gICAgPHNwYW4gYXVpSW5wdXRBZGRvbkFmdGVyPnB4PC9zcGFuPlxuICA8L2F1aS1udW1iZXItaW5wdXQ+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -127,7 +127,6 @@ export class TerminalGroupComponent {
127
127
  this.statusMap = new Map();
128
128
  }
129
129
  removeTerminal(index) {
130
- this.terminals.get(index)?.killProcess();
131
130
  this.terminalOptionsChange.emit([
132
131
  ...this.terminalOptions.slice(0, index),
133
132
  ...this.terminalOptions.slice(index + 1),
@@ -206,4 +205,4 @@ __decorate([
206
205
  args: [TerminalComponent]
207
206
  }] }); })();
208
207
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TerminalGroupComponent, { className: "TerminalGroupComponent" }); })();
209
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2V4ZWMvdGVybWluYWwtZ3JvdXAvY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2V4ZWMvdGVybWluYWwtZ3JvdXAvdGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsV0FBVyxFQUNYLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7OztJQ0twRCwrQkFTWTs7O0lBRFYsb0VBQTRDOzs7SUFFOUMsK0JBWVk7Ozs7O0lBRFYsQUFEQSwrQ0FBOEIsdURBQ0k7OztJQUVwQywrQkFNWTs7O0lBRlYscUNBQW9COzs7SUEvQnhCLDhCQUdDO0lBd0JDLEFBYkEsQUFWQSxpSEFTQyxvR0FhQSxxR0FPQTtJQUNELHdDQUdxQjtJQUN2QixpQkFBTTs7OztJQWpDRCxjQUtUO0lBTFMscUtBS1Q7SUFLUyxjQU1UO0lBTlMsdUtBTVQ7SUFPUyxjQUdUO0lBSFMsOEdBR1Q7SUFJUSxjQUFtQztJQUNuQyxBQURBLHVEQUFtQyxpQkFDbkI7Ozs7SUE3Q3RCLGtDQVFDO0lBREMsMk5BQVMsMkJBQWlCLEtBQUM7SUFFM0Isa0dBR0M7SUFvQ0QsdUNBcUJDO0lBTkMsQUFQQSxBQURBLGlSQUEwQixzREFBNEMsS0FBQyxnU0FFNUQsd0JBQ1Ysa0RBSUEsQ0FDUCxLQURPLGtQQUVVLDBC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QyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3BDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ25FLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO1FBQ2hELENBQUM7SUFDSCxDQUFDLENBQUM7OzZEQUVnQjtpRkFiUCxzQkFBc0I7Y0FObEMsU0FBUzsyQkFDRSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTTtnQkFlL0MsYUFBYTtrQkFEWixLQUFLO1lBSU4sZUFBZTtrQkFEZCxLQUFLO1lBSU4sbUJBQW1CO2tCQURsQixZQUFZO21CQUFDLDRCQUE0QjtZQU0xQyxzQkFBc0I7a0JBSHJCLFlBQVk7bUJBQUMsNEJBQTRCLEVBQUU7b0JBQzFDLElBQUksRUFBRSxXQUFXO2lCQUNsQjtZQU1ELHVCQUF1QjtrQkFIdEIsWUFBWTttQkFBQyw2QkFBNkIsRUFBRTtvQkFDM0MsSUFBSSxFQUFFLFdBQVc7aUJBQ2xCO1lBSVEsbUJBQW1CO2tCQUQzQixNQUFNO1lBSUUscUJBQXFCO2tCQUQ3QixNQUFNO1lBSUUsV0FBVztrQkFEbkIsTUFBTTtZQVFFLGFBQWE7a0JBRHJCLE1BQU07WUFPUCxTQUFTO2tCQURSLFlBQVk7bUJBQUMsaUJBQWlCOztrRkFsRHBCLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRGlyZWN0aXZlLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFZhbHVlSG9vayB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBDb25uZWN0aW9uU3RhdHVzIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFRlcm1pbmFsQ29tcG9uZW50IH0gZnJvbSAnLi4vdGVybWluYWwvY29tcG9uZW50JztcbmltcG9ydCB7IFRlcm1pbmFsT3B0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYWNsVGVybWluYWxFeHRyYUJ1dHRvbl0nLFxufSlcbmV4cG9ydCBjbGFzcyBUZXJtaW5hbEV4dHJhQnV0dG9uRGlyZWN0aXZlIHtcbiAgQElucHV0KCdhY2xUZXJtaW5hbEV4dHJhQnV0dG9uJylcbiAgZW5hYmxlOiBib29sZWFuIHwgJycgPSB0cnVlO1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYWNsVGVybWluYWxFeHRyYUNvbnRlbnRdJyxcbn0pXG5leHBvcnQgY2xhc3MgVGVybWluYWxFeHRyYUNvbnRlbnREaXJlY3RpdmUge31cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLXRlcm1pbmFsLWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICd0ZW1wbGF0ZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ3N0eWxlLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFRlcm1pbmFsR3JvdXBDb21wb25lbnQge1xuICBDb25uZWN0aW9uU3RhdHVzID0gQ29ubmVjdGlvblN0YXR1cztcblxuICBwcml2YXRlIGhhc0FjdGl2YXRlZE1hcCA9IG5ldyBNYXA8bnVtYmVyLCBib29sZWFuPigpO1xuXG4gIEBWYWx1ZUhvb2soZnVuY3Rpb24gKHRoaXM6IFRlcm1pbmFsR3JvdXBDb21wb25lbnQsIGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnRlcm1pbmFscz8uZ2V0KGluZGV4KT8uZm9jdXMoKTtcbiAgICBpZiAodGhpcy50ZXJtaW5hbHM/LmdldChpbmRleCkgJiYgIXRoaXMuaGFzQWN0aXZhdGVkTWFwLmdldChpbmRleCkpIHtcbiAgICAgIHRoaXMuaGFzQWN0aXZhdGVkTWFwLnNldChpbmRleCwgdHJ1ZSk7XG4gICAgICB0aGlzLnRlcm1pbmFscy5nZXQoaW5kZXgpPy5hY3RpdmF0ZVRlcm1pbmFsKCk7XG4gICAgfVxuICB9KVxuICBASW5wdXQoKVxuICBzZWxlY3RlZEluZGV4ID0gMDtcblxuICBASW5wdXQoKVxuICB0ZXJtaW5hbE9wdGlvbnM6IFRlcm1pbmFsT3B0aW9uW10gPSBbXTtcblxuICBAQ29udGVudENoaWxkKFRlcm1pbmFsRXh0cmFCdXR0b25EaXJlY3RpdmUpXG4gIHRlcm1pbmFsRXh0cmFCdXR0b246IFRlcm1pbmFsRXh0cmFCdXR0b25EaXJlY3RpdmU7XG5cbiAgQENvbnRlbnRDaGlsZChUZXJtaW5hbEV4dHJhQnV0dG9uRGlyZWN0aXZlLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gIH0pXG4gIHRlcm1pbmFsRXh0cmFCdXR0b25SZWY6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBDb250ZW50Q2hpbGQoVGVybWluYWxFeHRyYUNvbnRlbnREaXJlY3RpdmUsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcbiAgfSlcbiAgdGVybWluYWxFeHRyYUNvbnRlbnRSZWY6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBzZWxlY3RlZEluZGV4Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IHRlcm1pbmFsT3B0aW9uc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VGVybWluYWxPcHRpb25bXT4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgc29ja2V0UmVhZHkgPSBuZXcgRXZlbnRFbWl0dGVyPHtcbiAgICBvcHRpb246IFRlcm1pbmFsT3B0aW9uO1xuICAgIHNvY2tldDogV2ViU29ja2V0O1xuICAgIGluZGV4OiBudW1iZXI7XG4gIH0+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IGZhbGxiYWNrU2hlbGwgPSBuZXcgRXZlbnRFbWl0dGVyPHtcbiAgICBvcHRpb246IFRlcm1pbmFsT3B0aW9uO1xuICAgIHNoZWxsOiBzdHJpbmc7XG4gIH0+KCk7XG5cbiAgQFZpZXdDaGlsZHJlbihUZXJtaW5hbENvbXBvbmVudClcbiAgdGVybWluYWxzOiBRdWVyeUxpc3Q8VGVybWluYWxDb21wb25lbnQ+O1xuXG4gIHN0YXR1c01hcCA9IG5ldyBNYXA8VGVybWluYWxPcHRpb24sIENvbm5lY3Rpb25TdGF0dXM+KCk7XG5cbiAgcmVtb3ZlVGVybWluYWwoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMudGVybWluYWxzLmdldChpbmRleCk/LmtpbGxQcm9jZXNzKCk7XG4gICAgdGhpcy50ZXJtaW5hbE9wdGlvbnNDaGFuZ2UuZW1pdChbXG4gICAgICAuLi50aGlzLnRlcm1pbmFsT3B0aW9ucy5zbGljZSgwLCBpbmRleCksXG4gICAgICAuLi50aGlzLnRlcm1pbmFsT3B0aW9ucy5zbGljZShpbmRleCArIDEpLFxuICAgIF0pO1xuICB9XG5cbiAgdHJhY2tCeU9wdGlvbihfOiBudW1iZXIsIG9wdGlvbjogVGVybWluYWxPcHRpb24pIHtcbiAgICByZXR1cm4gb3B0aW9uO1xuICB9XG5cbiAgaGFuZGxlQ29ubmVjdGlvblN0YXR1c0NoYW5nZShcbiAgICBvcHRpb246IFRlcm1pbmFsT3B0aW9uLFxuICAgIHN0YXR1czogQ29ubmVjdGlvblN0YXR1cyxcbiAgKSB7XG4gICAgdGhpcy5zdGF0dXNNYXAuc2V0KG9wdGlvbiwgc3RhdHVzKTtcbiAgfVxuXG4gIHJlY29ubmVjdChpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy50ZXJtaW5hbHMuZ2V0KGluZGV4KS5yZWNvbm5lY3QoKTtcbiAgfVxufVxuIiwiPGF1aS10YWItZ3JvdXBcbiAgKm5nSWY9XCJ0ZXJtaW5hbE9wdGlvbnM/Lmxlbmd0aFwiXG4gIHR5cGU9XCJjYXJkXCJcbiAgW2xhenldPVwidHJ1ZVwiXG4gIFtzZWxlY3RlZEluZGV4XT1cInNlbGVjdGVkSW5kZXhcIlxuICAoc2VsZWN0ZWRJbmRleENoYW5nZSk9XCJzZWxlY3RlZEluZGV4Q2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4+XG4gIDxhdWktdGFiXG4gICAgKm5nRm9yPVwiXG4gICAgICBsZXQgb3B0aW9uIG9mIHRlcm1pbmFsT3B0aW9ucztcbiAgICAgIGxldCBpID0gaW5kZXg7XG4gICAgICB0cmFja0J5OiB0cmFja0J5T3B0aW9uXG4gICAgXCJcbiAgICBbY2xvc2VhYmxlXT1cInRydWVcIlxuICAgIChjbG9zZSk9XCJyZW1vdmVUZXJtaW5hbChpKVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICAqYXVpVGFiTGFiZWxcbiAgICAgIGNsYXNzPVwidHctZmxleFwiXG4gICAgPlxuICAgICAgPGF1aS1pY29uXG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgW0Nvbm5lY3Rpb25TdGF0dXMuQ29ubmVjdGluZywgQ29ubmVjdGlvblN0YXR1cy5SZUNvbm5lY3RpbmddLmluY2x1ZGVzKFxuICAgICAgICAgICAgc3RhdHVzTWFwLmdldChvcHRpb24pXG4gICAgICAgICAgKVxuICAgICAgICBcIlxuICAgICAgICBjbGFzcz1cInR3LW1yLTQgdHctaWNvbi1sIHR3LXRleHQtcHJpbWFyeVwiXG4gICAgICAgIGljb249XCJzcGlubmVyXCJcbiAgICAgICAgW2F1aVRvb2x0aXBdPVwiJ2V4ZWNfY29ubmVjdGluZycgfCB0cmFuc2xhdGVcIlxuICAgICAgPjwvYXVpLWljb24+XG4gICAgICA8YXVpLWljb25cbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICBbXG4gICAgICAgICAgICBDb25uZWN0aW9uU3RhdHVzLkRpc2Nvbm5lY3RlZCxcbiAgICAgICAgICAgIENvbm5lY3Rpb25TdGF0dXMuTm9QZXJtaXNzaW9uLFxuICAgICAgICAgIF0uaW5jbHVkZXMoc3RhdHVzTWFwLmdldChvcHRpb24pKVxuICAgICAgICBcIlxuICAgICAgICBjbGFzcz1cInR3LW1yLTQgdHctaWNvbi1sIHR3LXRleHQtcmVkXCJcbiAgICAgICAgaWNvbj1cImV4Y2xhbWF0aW9uX3RyaWFuZ2xlX3NcIlxuICAgICAgICBiYWNrZ3JvdW5kPVwidHJpYW5nbGVcIlxuICAgICAgICBbYXVpVG9vbHRpcF09XCJkaXNjb25uZWN0ZWRUaXBcIlxuICAgICAgICBbYXVpVG9vbHRpcENvbnRleHRdPVwieyBpbmRleDogaSB9XCJcbiAgICAgID48L2F1aS1pY29uPlxuICAgICAgPGF1aS1pY29uXG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgc3RhdHVzTWFwLmdldChvcHRpb24pID09PSBDb25uZWN0aW9uU3RhdHVzLkNvbm5lY3RlZCAmJiBvcHRpb24uaWNvblxuICAgICAgICBcIlxuICAgICAgICBbaWNvbl09XCJvcHRpb24uaWNvblwiXG4gICAgICAgIGNsYXNzPVwidHctbXItNCB0dy1pY29uLWxcIlxuICAgICAgPjwvYXVpLWljb24+XG4gICAgICA8YWNsLXRleHQtZWxsaXBzaXNcbiAgICAgICAgW3RleHRdPVwib3B0aW9uLmxhYmVsIHx8IG9wdGlvbi5wb2RcIlxuICAgICAgICBbdGFpbExlbmd0aF09XCI2XCJcbiAgICAgID48L2FjbC10ZXh0LWVsbGlwc2lzPlxuICAgIDwvZGl2PlxuICAgIDxhY2wtdGVybWluYWxcbiAgICAgIFtvcHRpb25dPVwib3B0aW9uXCJcbiAgICAgIFtpbmRleF09XCJpXCJcbiAgICAgIFtleHRyYUJ1dHRvbl09XCJcbiAgICAgICAgdGVybWluYWxFeHRyYUJ1dHRvbj8uZW5hYmxlID8gdGVybWluYWxFeHRyYUJ1dHRvblJlZiA6IG51bGxcbiAgICAgIFwiXG4gICAgICBbZXh0cmFDb250ZW50XT1cInRlcm1pbmFsRXh0cmFDb250ZW50UmVmXCJcbiAgICAgIChjb25uZWN0aW9uU3RhdHVzQ2hhbmdlKT1cImhhbmRsZUNvbm5lY3Rpb25TdGF0dXNDaGFuZ2Uob3B0aW9uLCAkZXZlbnQpXCJcbiAgICAgIChzb2NrZXRSZWFkeSk9XCJcbiAgICAgICAgc29ja2V0UmVhZHkuZW1pdCh7XG4gICAgICAgICAgb3B0aW9uLFxuICAgICAgICAgIHNvY2tldDogJGV2ZW50LFxuICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICB9KVxuICAgICAgXCJcbiAgICAgIChmYWxsYmFja1NoZWxsKT1cIlxuICAgICAgICBmYWxsYmFja1NoZWxsLmVtaXQoe1xuICAgICAgICAgIG9wdGlvbixcbiAgICAgICAgICBzaGVsbDogJGV2ZW50LFxuICAgICAgICB9KVxuICAgICAgXCJcbiAgICA+PC9hY2wtdGVybWluYWw+XG4gIDwvYXVpLXRhYj5cbjwvYXVpLXRhYi1ncm91cD5cblxuPG5nLXRlbXBsYXRlXG4gICNkaXNjb25uZWN0ZWRUaXBcbiAgbGV0LWk9XCJpbmRleFwiXG4+XG4gIDxzcGFuPnt7ICdleGVjX2Rpc2Nvbm5lY3RlZF90aXAnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICA8YnV0dG9uXG4gICAgYXVpLWJ1dHRvbj1cInRleHRcIlxuICAgIHNpemU9XCJtaW5pXCJcbiAgICAoY2xpY2spPVwicmVjb25uZWN0KGkpXCJcbiAgPlxuICAgIHt7ICdyZWNvbm5lY3QnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
208
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2V4ZWMvdGVybWluYWwtZ3JvdXAvY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2V4ZWMvdGVybWluYWwtZ3JvdXAvdGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsV0FBVyxFQUNYLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7OztJQ0twRCwrQkFTWTs7O0lBRFYsb0VBQTRDOzs7SUFFOUMsK0JBWVk7Ozs7O0lBRFYsQUFEQSwrQ0FBOEIsdURBQ0k7OztJQUVwQywrQkFNWTs7O0lBRlYscUNBQW9COzs7SUEvQnhCLDhCQUdDO0lBd0JDLEFBYkEsQUFWQSxpSEFTQyxvR0FhQSxxR0FPQTtJQUNELHdDQUdxQjtJQUN2QixpQkFBTTs7OztJQWpDRCxjQUtUO0lBTFMscUtBS1Q7SUFLUyxjQU1UO0lBTlMsdUtBTVQ7SUFPUyxjQUdUO0lBSFMsOEdBR1Q7SUFJUSxjQUFtQztJQUNuQyxBQURBLHVEQUFtQyxpQkFDbkI7Ozs7SUE3Q3RCLGtDQVFDO0lBREMsMk5BQVMsMkJBQWlCLEtBQUM7SUFFM0Isa0dBR0M7SUFvQ0QsdUNBcUJDO0lBTkMsQUFQQSxBQURBLGlSQUEwQixzREFBNEMsS0FBQyxnU0FFNUQsd0JBQ1Ysa0RBSUEsQ0FDUCxLQURPLGtQQUVVLDBC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SyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ25FLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO1FBQ2hELENBQUM7SUFDSCxDQUFDLENBQUM7OzZEQUVnQjtpRkFiUCxzQkFBc0I7Y0FObEMsU0FBUzsyQkFDRSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTTtnQkFlL0MsYUFBYTtrQkFEWixLQUFLO1lBSU4sZUFBZTtrQkFEZCxLQUFLO1lBSU4sbUJBQW1CO2tCQURsQixZQUFZO21CQUFDLDRCQUE0QjtZQU0xQyxzQkFBc0I7a0JBSHJCLFlBQVk7bUJBQUMsNEJBQTRCLEVBQUU7b0JBQzFDLElBQUksRUFBRSxXQUFXO2lCQUNsQjtZQU1ELHVCQUF1QjtrQkFIdEIsWUFBWTttQkFBQyw2QkFBNkIsRUFBRTtvQkFDM0MsSUFBSSxFQUFFLFdBQVc7aUJBQ2xCO1lBSVEsbUJBQW1CO2tCQUQzQixNQUFNO1lBSUUscUJBQXFCO2tCQUQ3QixNQUFNO1lBSUUsV0FBVztrQkFEbkIsTUFBTTtZQVFFLGFBQWE7a0JBRHJCLE1BQU07WUFPUCxTQUFTO2tCQURSLFlBQVk7bUJBQUMsaUJBQWlCOztrRkFsRHBCLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRGlyZWN0aXZlLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFZhbHVlSG9vayB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBDb25uZWN0aW9uU3RhdHVzIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFRlcm1pbmFsQ29tcG9uZW50IH0gZnJvbSAnLi4vdGVybWluYWwvY29tcG9uZW50JztcbmltcG9ydCB7IFRlcm1pbmFsT3B0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYWNsVGVybWluYWxFeHRyYUJ1dHRvbl0nLFxufSlcbmV4cG9ydCBjbGFzcyBUZXJtaW5hbEV4dHJhQnV0dG9uRGlyZWN0aXZlIHtcbiAgQElucHV0KCdhY2xUZXJtaW5hbEV4dHJhQnV0dG9uJylcbiAgZW5hYmxlOiBib29sZWFuIHwgJycgPSB0cnVlO1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYWNsVGVybWluYWxFeHRyYUNvbnRlbnRdJyxcbn0pXG5leHBvcnQgY2xhc3MgVGVybWluYWxFeHRyYUNvbnRlbnREaXJlY3RpdmUge31cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLXRlcm1pbmFsLWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICd0ZW1wbGF0ZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ3N0eWxlLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFRlcm1pbmFsR3JvdXBDb21wb25lbnQge1xuICBDb25uZWN0aW9uU3RhdHVzID0gQ29ubmVjdGlvblN0YXR1cztcblxuICBwcml2YXRlIGhhc0FjdGl2YXRlZE1hcCA9IG5ldyBNYXA8bnVtYmVyLCBib29sZWFuPigpO1xuXG4gIEBWYWx1ZUhvb2soZnVuY3Rpb24gKHRoaXM6IFRlcm1pbmFsR3JvdXBDb21wb25lbnQsIGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnRlcm1pbmFscz8uZ2V0KGluZGV4KT8uZm9jdXMoKTtcbiAgICBpZiAodGhpcy50ZXJtaW5hbHM/LmdldChpbmRleCkgJiYgIXRoaXMuaGFzQWN0aXZhdGVkTWFwLmdldChpbmRleCkpIHtcbiAgICAgIHRoaXMuaGFzQWN0aXZhdGVkTWFwLnNldChpbmRleCwgdHJ1ZSk7XG4gICAgICB0aGlzLnRlcm1pbmFscy5nZXQoaW5kZXgpPy5hY3RpdmF0ZVRlcm1pbmFsKCk7XG4gICAgfVxuICB9KVxuICBASW5wdXQoKVxuICBzZWxlY3RlZEluZGV4ID0gMDtcblxuICBASW5wdXQoKVxuICB0ZXJtaW5hbE9wdGlvbnM6IFRlcm1pbmFsT3B0aW9uW10gPSBbXTtcblxuICBAQ29udGVudENoaWxkKFRlcm1pbmFsRXh0cmFCdXR0b25EaXJlY3RpdmUpXG4gIHRlcm1pbmFsRXh0cmFCdXR0b246IFRlcm1pbmFsRXh0cmFCdXR0b25EaXJlY3RpdmU7XG5cbiAgQENvbnRlbnRDaGlsZChUZXJtaW5hbEV4dHJhQnV0dG9uRGlyZWN0aXZlLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gIH0pXG4gIHRlcm1pbmFsRXh0cmFCdXR0b25SZWY6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBDb250ZW50Q2hpbGQoVGVybWluYWxFeHRyYUNvbnRlbnREaXJlY3RpdmUsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcbiAgfSlcbiAgdGVybWluYWxFeHRyYUNvbnRlbnRSZWY6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBzZWxlY3RlZEluZGV4Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IHRlcm1pbmFsT3B0aW9uc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VGVybWluYWxPcHRpb25bXT4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgc29ja2V0UmVhZHkgPSBuZXcgRXZlbnRFbWl0dGVyPHtcbiAgICBvcHRpb246IFRlcm1pbmFsT3B0aW9uO1xuICAgIHNvY2tldDogV2ViU29ja2V0O1xuICAgIGluZGV4OiBudW1iZXI7XG4gIH0+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IGZhbGxiYWNrU2hlbGwgPSBuZXcgRXZlbnRFbWl0dGVyPHtcbiAgICBvcHRpb246IFRlcm1pbmFsT3B0aW9uO1xuICAgIHNoZWxsOiBzdHJpbmc7XG4gIH0+KCk7XG5cbiAgQFZpZXdDaGlsZHJlbihUZXJtaW5hbENvbXBvbmVudClcbiAgdGVybWluYWxzOiBRdWVyeUxpc3Q8VGVybWluYWxDb21wb25lbnQ+O1xuXG4gIHN0YXR1c01hcCA9IG5ldyBNYXA8VGVybWluYWxPcHRpb24sIENvbm5lY3Rpb25TdGF0dXM+KCk7XG5cbiAgcmVtb3ZlVGVybWluYWwoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMudGVybWluYWxPcHRpb25zQ2hhbmdlLmVtaXQoW1xuICAgICAgLi4udGhpcy50ZXJtaW5hbE9wdGlvbnMuc2xpY2UoMCwgaW5kZXgpLFxuICAgICAgLi4udGhpcy50ZXJtaW5hbE9wdGlvbnMuc2xpY2UoaW5kZXggKyAxKSxcbiAgICBdKTtcbiAgfVxuXG4gIHRyYWNrQnlPcHRpb24oXzogbnVtYmVyLCBvcHRpb246IFRlcm1pbmFsT3B0aW9uKSB7XG4gICAgcmV0dXJuIG9wdGlvbjtcbiAgfVxuXG4gIGhhbmRsZUNvbm5lY3Rpb25TdGF0dXNDaGFuZ2UoXG4gICAgb3B0aW9uOiBUZXJtaW5hbE9wdGlvbixcbiAgICBzdGF0dXM6IENvbm5lY3Rpb25TdGF0dXMsXG4gICkge1xuICAgIHRoaXMuc3RhdHVzTWFwLnNldChvcHRpb24sIHN0YXR1cyk7XG4gIH1cblxuICByZWNvbm5lY3QoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMudGVybWluYWxzLmdldChpbmRleCkucmVjb25uZWN0KCk7XG4gIH1cbn1cbiIsIjxhdWktdGFiLWdyb3VwXG4gICpuZ0lmPVwidGVybWluYWxPcHRpb25zPy5sZW5ndGhcIlxuICB0eXBlPVwiY2FyZFwiXG4gIFtsYXp5XT1cInRydWVcIlxuICBbc2VsZWN0ZWRJbmRleF09XCJzZWxlY3RlZEluZGV4XCJcbiAgKHNlbGVjdGVkSW5kZXhDaGFuZ2UpPVwic2VsZWN0ZWRJbmRleENoYW5nZS5lbWl0KCRldmVudClcIlxuPlxuICA8YXVpLXRhYlxuICAgICpuZ0Zvcj1cIlxuICAgICAgbGV0IG9wdGlvbiBvZiB0ZXJtaW5hbE9wdGlvbnM7XG4gICAgICBsZXQgaSA9IGluZGV4O1xuICAgICAgdHJhY2tCeTogdHJhY2tCeU9wdGlvblxuICAgIFwiXG4gICAgW2Nsb3NlYWJsZV09XCJ0cnVlXCJcbiAgICAoY2xvc2UpPVwicmVtb3ZlVGVybWluYWwoaSlcIlxuICA+XG4gICAgPGRpdlxuICAgICAgKmF1aVRhYkxhYmVsXG4gICAgICBjbGFzcz1cInR3LWZsZXhcIlxuICAgID5cbiAgICAgIDxhdWktaWNvblxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIFtDb25uZWN0aW9uU3RhdHVzLkNvbm5lY3RpbmcsIENvbm5lY3Rpb25TdGF0dXMuUmVDb25uZWN0aW5nXS5pbmNsdWRlcyhcbiAgICAgICAgICAgIHN0YXR1c01hcC5nZXQob3B0aW9uKVxuICAgICAgICAgIClcbiAgICAgICAgXCJcbiAgICAgICAgY2xhc3M9XCJ0dy1tci00IHR3LWljb24tbCB0dy10ZXh0LXByaW1hcnlcIlxuICAgICAgICBpY29uPVwic3Bpbm5lclwiXG4gICAgICAgIFthdWlUb29sdGlwXT1cIidleGVjX2Nvbm5lY3RpbmcnIHwgdHJhbnNsYXRlXCJcbiAgICAgID48L2F1aS1pY29uPlxuICAgICAgPGF1aS1pY29uXG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgW1xuICAgICAgICAgICAgQ29ubmVjdGlvblN0YXR1cy5EaXNjb25uZWN0ZWQsXG4gICAgICAgICAgICBDb25uZWN0aW9uU3RhdHVzLk5vUGVybWlzc2lvbixcbiAgICAgICAgICBdLmluY2x1ZGVzKHN0YXR1c01hcC5nZXQob3B0aW9uKSlcbiAgICAgICAgXCJcbiAgICAgICAgY2xhc3M9XCJ0dy1tci00IHR3LWljb24tbCB0dy10ZXh0LXJlZFwiXG4gICAgICAgIGljb249XCJleGNsYW1hdGlvbl90cmlhbmdsZV9zXCJcbiAgICAgICAgYmFja2dyb3VuZD1cInRyaWFuZ2xlXCJcbiAgICAgICAgW2F1aVRvb2x0aXBdPVwiZGlzY29ubmVjdGVkVGlwXCJcbiAgICAgICAgW2F1aVRvb2x0aXBDb250ZXh0XT1cInsgaW5kZXg6IGkgfVwiXG4gICAgICA+PC9hdWktaWNvbj5cbiAgICAgIDxhdWktaWNvblxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIHN0YXR1c01hcC5nZXQob3B0aW9uKSA9PT0gQ29ubmVjdGlvblN0YXR1cy5Db25uZWN0ZWQgJiYgb3B0aW9uLmljb25cbiAgICAgICAgXCJcbiAgICAgICAgW2ljb25dPVwib3B0aW9uLmljb25cIlxuICAgICAgICBjbGFzcz1cInR3LW1yLTQgdHctaWNvbi1sXCJcbiAgICAgID48L2F1aS1pY29uPlxuICAgICAgPGFjbC10ZXh0LWVsbGlwc2lzXG4gICAgICAgIFt0ZXh0XT1cIm9wdGlvbi5sYWJlbCB8fCBvcHRpb24ucG9kXCJcbiAgICAgICAgW3RhaWxMZW5ndGhdPVwiNlwiXG4gICAgICA+PC9hY2wtdGV4dC1lbGxpcHNpcz5cbiAgICA8L2Rpdj5cbiAgICA8YWNsLXRlcm1pbmFsXG4gICAgICBbb3B0aW9uXT1cIm9wdGlvblwiXG4gICAgICBbaW5kZXhdPVwiaVwiXG4gICAgICBbZXh0cmFCdXR0b25dPVwiXG4gICAgICAgIHRlcm1pbmFsRXh0cmFCdXR0b24/LmVuYWJsZSA/IHRlcm1pbmFsRXh0cmFCdXR0b25SZWYgOiBudWxsXG4gICAgICBcIlxuICAgICAgW2V4dHJhQ29udGVudF09XCJ0ZXJtaW5hbEV4dHJhQ29udGVudFJlZlwiXG4gICAgICAoY29ubmVjdGlvblN0YXR1c0NoYW5nZSk9XCJoYW5kbGVDb25uZWN0aW9uU3RhdHVzQ2hhbmdlKG9wdGlvbiwgJGV2ZW50KVwiXG4gICAgICAoc29ja2V0UmVhZHkpPVwiXG4gICAgICAgIHNvY2tldFJlYWR5LmVtaXQoe1xuICAgICAgICAgIG9wdGlvbixcbiAgICAgICAgICBzb2NrZXQ6ICRldmVudCxcbiAgICAgICAgICBpbmRleDogaSxcbiAgICAgICAgfSlcbiAgICAgIFwiXG4gICAgICAoZmFsbGJhY2tTaGVsbCk9XCJcbiAgICAgICAgZmFsbGJhY2tTaGVsbC5lbWl0KHtcbiAgICAgICAgICBvcHRpb24sXG4gICAgICAgICAgc2hlbGw6ICRldmVudCxcbiAgICAgICAgfSlcbiAgICAgIFwiXG4gICAgPjwvYWNsLXRlcm1pbmFsPlxuICA8L2F1aS10YWI+XG48L2F1aS10YWItZ3JvdXA+XG5cbjxuZy10ZW1wbGF0ZVxuICAjZGlzY29ubmVjdGVkVGlwXG4gIGxldC1pPVwiaW5kZXhcIlxuPlxuICA8c3Bhbj57eyAnZXhlY19kaXNjb25uZWN0ZWRfdGlwJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgPGJ1dHRvblxuICAgIGF1aS1idXR0b249XCJ0ZXh0XCJcbiAgICBzaXplPVwibWluaVwiXG4gICAgKGNsaWNrKT1cInJlY29ubmVjdChpKVwiXG4gID5cbiAgICB7eyAncmVjb25uZWN0JyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -37,25 +37,21 @@ export function matchExpressionsToString(params) {
37
37
  case '==': {
38
38
  return `${param.key}${param.operator}${param.values[0]}`;
39
39
  }
40
- case '!': {
41
- return `!${param.key}`;
42
- }
43
40
  case '!=': {
44
41
  return param.values
45
42
  .map(value => `${param.key}${param.operator}${value}`)
46
43
  .join(',');
47
44
  }
48
- case 'in':
49
- case 'notin': {
50
- return `${param.key} ${param.operator} (${param.values
51
- .filter(Boolean)
52
- .join(',')})`;
45
+ case '!':
46
+ case 'doesnotexist': {
47
+ return `!${param.key}`;
53
48
  }
54
49
  case 'exists': {
55
50
  return `${param.key}`;
56
51
  }
57
- case 'doesnotexist': {
58
- return `!${param.key}`;
52
+ case 'in':
53
+ case 'notin': {
54
+ return `${param.key} ${param.operator} (${param.values.join(',')})`;
59
55
  }
60
56
  default: {
61
57
  return param.key;
@@ -81,4 +77,4 @@ export function normalizeParams(params) {
81
77
  return acc;
82
78
  }, {});
83
79
  }
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvazhzLXJlc291cmNlLWxpc3QvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBR0gsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQWMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBUTdEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxTQUFvQixFQUFFO0lBQ3hELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDdkIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1NBQ3pDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNmLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxHQUFZO0lBQzlDLE1BQU0sTUFBTSxHQUEyQixFQUFFLENBQUM7SUFDMUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNSLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDekMsTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3JDLElBQUksR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNqQixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQ25CLENBQUM7WUFDRCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNiLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FB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c291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqIEBtb2R1bGUgazhzLXJlc291cmNlLWxpc3RcbiAqL1xuXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBlcXVhbHMgfSBmcm9tICdyYW1kYSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIFJlc291cmNlTGlzdFBhcmFtcyxcbiAgU3RyaW5nTWFwLFxuICBMYWJlbFNlbGVjdG9yUmVxdWlyZW1lbnQsXG59IGZyb20gJy4uL2NvcmUvcHVibGljLWFwaSc7XG5cbi8qKlxuICogY29udmVydCBzZWxlY3Rvci5tYXRjaExhYmVscyB0byBzdHJpbmdcbiAqIHJlZmVycyB0bzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvb3ZlcnZpZXcvd29ya2luZy13aXRoLW9iamVjdHMvbGFiZWxzLyNhcGlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hdGNoTGFiZWxzVG9TdHJpbmcocGFyYW1zOiBTdHJpbmdNYXAgPSB7fSkge1xuICByZXR1cm4gT2JqZWN0LmtleXMocGFyYW1zKVxuICAgIC5tYXAoa2V5ID0+IGAke2tleX09JHtwYXJhbXNba2V5XSB8fCAnJ31gKVxuICAgIC5qb2luKCcsJyk7XG59XG5cbi8qKlxuICogY29udmVydCBzdHJpbmcgdG8gc2VsZWN0b3IubWF0Y2hMYWJlbHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ1RvTWF0Y2hMYWJlbHMoc3RyPzogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gIGNvbnN0IGxhYmVsczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICBpZiAoc3RyKSB7XG4gICAgcmV0dXJuIHN0ci5zcGxpdCgnLCcpLnJlZHVjZSgoYWNjLCBpdGVtKSA9PiB7XG4gICAgICBjb25zdCBba2V5LCB2YWx1ZV0gPSBpdGVtLnNwbGl0KCc9Jyk7XG4gICAgICBpZiAoa2V5ICYmIHZhbHVlKSB7XG4gICAgICAgIGFjY1trZXldID0gdmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIGxhYmVscyk7XG4gIH1cbiAgcmV0dXJuIGxhYmVscztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hdGNoRXhwcmVzc2lvbnNUb1N0cmluZyhwYXJhbXM6IExhYmVsU2VsZWN0b3JSZXF1aXJlbWVudFtdKSB7XG4gIHJldHVybiBwYXJhbXNcbiAgICAubWFwKHBhcmFtID0+IHtcbiAgICAgIHN3aXRjaCAocGFyYW0ub3BlcmF0b3IudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICBjYXNlICc9JzpcbiAgICAgICAgY2FzZSAnPT0nOiB7XG4gICAgICAgICAgcmV0dXJuIGAke3BhcmFtLmtleX0ke3BhcmFtLm9wZXJhdG9yfSR7cGFyYW0udmFsdWVzWzBdfWA7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnISc6IHtcbiAgICAgICAgICByZXR1cm4gYCEke3BhcmFtLmtleX1gO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJyE9Jzoge1xuICAgICAgICAgIHJldHVybiBwYXJhbS52YWx1ZXNcbiAgICAgICAgICAgIC5tYXAodmFsdWUgPT4gYCR7cGFyYW0ua2V5fSR7cGFyYW0ub3BlcmF0b3J9JHt2YWx1ZX1gKVxuICAgICAgICAgICAgLmpvaW4oJywnKTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdpbic6XG4gICAgICAgIGNhc2UgJ25vdGluJzoge1xuICAgICAgICAgIHJldHVybiBgJHtwYXJhbS5rZXl9ICR7cGFyYW0ub3BlcmF0b3J9ICgke3BhcmFtLnZhbHVlc1xuICAgICAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgICAgICAgLmpvaW4oJywnKX0pYDtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdleGlzdHMnOiB7XG4gICAgICAgICAgcmV0dXJuIGAke3BhcmFtLmtleX1gO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ2RvZXNub3RleGlzdCc6IHtcbiAgICAgICAgICByZXR1cm4gYCEke3BhcmFtLmtleX1gO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICByZXR1cm4gcGFyYW0ua2V5O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcbiAgICAuam9pbignLCcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdExpc3RQYXJhbXNGcm9tUm91dGUoXG4gIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbik6IE9ic2VydmFibGU8UmVzb3VyY2VMaXN0UGFyYW1zPiB7XG4gIHJldHVybiByb3V0ZS5xdWVyeVBhcmFtTWFwLnBpcGUoXG4gICAgbWFwKHBhcmFtTWFwID0+ICh7XG4gICAgICBsYWJlbFNlbGVjdG9yOiBwYXJhbU1hcC5nZXQoJ2xhYmVsU2VsZWN0b3InKSxcbiAgICAgIGZpZWxkU2VsZWN0b3I6IHBhcmFtTWFwLmdldCgnZmllbGRTZWxlY3RvcicpLFxuICAgICAga2V5d29yZDogcGFyYW1NYXAuZ2V0KCdrZXl3b3JkJyksXG4gICAgICBmaWVsZDogcGFyYW1NYXAuZ2V0KCdmaWVsZCcpLFxuICAgIH0pKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZDxSZXNvdXJjZUxpc3RQYXJhbXM+KGVxdWFscyksXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVQYXJhbXM8UCBleHRlbmRzIG9iamVjdD4ocGFyYW1zOiBQKTogUCB7XG4gIHJldHVybiBPYmplY3QuZW50cmllcyhwYXJhbXMpLnJlZHVjZSgoYWNjLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICB2YWx1ZSA9IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZS50cmltKCkgOiB2YWx1ZTtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGFjY1trZXkgYXMga2V5b2YgUF0gPSB2YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30gYXMgUCk7XG59XG4iXX0=
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvazhzLXJlc291cmNlLWxpc3QvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBR0gsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQWMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBUTdEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxTQUFvQixFQUFFO0lBQ3hELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDdkIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1NBQ3pDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNmLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxHQUFZO0lBQzlDLE1BQU0sTUFBTSxHQUEyQixFQUFFLENBQUM7SUFDMUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNSLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDekMsTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3JDLElBQUksR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNqQixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQ25CLENBQUM7WUFDRCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNiLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUFDLE1BQWtDO0lBQ3pFLE9BQU8sTUFBTTtTQUNWLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNYLFFBQVEsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ3JDLEtBQUssR0FBRyxDQUFDO1lBQ1QsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUNWLE9BQU8sR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzNELENBQUM7WUFDRCxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ1YsT0FBTyxLQUFLLENBQUMsTUFBTTtxQkFDaEIsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxRQUFRLEdBQUcsS0FBSyxFQUFFLENBQUM7cUJBQ3JELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNmLENBQUM7WUFDRCxLQUFLLEdBQUcsQ0FBQztZQUNULEtBQUssY0FBYyxDQUFDLENBQUMsQ0FBQztnQkFDcEIsT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUN6QixDQUFDO1lBQ0QsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO2dCQUNkLE9BQU8sR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDeEIsQ0FBQztZQUNELEtBQUssSUFBSSxDQUFDO1lBQ1YsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUNiLE9BQU8sR0FBRyxLQUFLLENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztZQUN0RSxDQUFDO1lBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDUixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFDbkIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDLENBQUM7U0FDRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDZixDQUFDO0FBRUQsTUFBTSxVQUFVLDBCQUEwQixDQUN4QyxLQUFxQjtJQUVyQixPQUFPLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUM3QixHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2YsYUFBYSxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDO1FBQzVDLGFBQWEsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQztRQUM1QyxPQUFPLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUM7UUFDaEMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO0tBQzdCLENBQUMsQ0FBQyxFQUNILG9CQUFvQixDQUFxQixNQUFNLENBQUMsQ0FDakQsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFtQixNQUFTO0lBQ3pELE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtRQUN6RCxLQUFLLEdBQUcsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUN6RCxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsR0FBRyxDQUFDLEdBQWMsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUM5QixDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLEVBQUUsRUFBTyxDQUFDLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqIEBtb2R1bGUgazhzLXJlc291cmNlLWxpc3RcbiAqL1xuXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBlcXVhbHMgfSBmcm9tICdyYW1kYSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIFJlc291cmNlTGlzdFBhcmFtcyxcbiAgU3RyaW5nTWFwLFxuICBMYWJlbFNlbGVjdG9yUmVxdWlyZW1lbnQsXG59IGZyb20gJy4uL2NvcmUvcHVibGljLWFwaSc7XG5cbi8qKlxuICogY29udmVydCBzZWxlY3Rvci5tYXRjaExhYmVscyB0byBzdHJpbmdcbiAqIHJlZmVycyB0bzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvb3ZlcnZpZXcvd29ya2luZy13aXRoLW9iamVjdHMvbGFiZWxzLyNhcGlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hdGNoTGFiZWxzVG9TdHJpbmcocGFyYW1zOiBTdHJpbmdNYXAgPSB7fSkge1xuICByZXR1cm4gT2JqZWN0LmtleXMocGFyYW1zKVxuICAgIC5tYXAoa2V5ID0+IGAke2tleX09JHtwYXJhbXNba2V5XSB8fCAnJ31gKVxuICAgIC5qb2luKCcsJyk7XG59XG5cbi8qKlxuICogY29udmVydCBzdHJpbmcgdG8gc2VsZWN0b3IubWF0Y2hMYWJlbHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ1RvTWF0Y2hMYWJlbHMoc3RyPzogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gIGNvbnN0IGxhYmVsczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICBpZiAoc3RyKSB7XG4gICAgcmV0dXJuIHN0ci5zcGxpdCgnLCcpLnJlZHVjZSgoYWNjLCBpdGVtKSA9PiB7XG4gICAgICBjb25zdCBba2V5LCB2YWx1ZV0gPSBpdGVtLnNwbGl0KCc9Jyk7XG4gICAgICBpZiAoa2V5ICYmIHZhbHVlKSB7XG4gICAgICAgIGFjY1trZXldID0gdmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIGxhYmVscyk7XG4gIH1cbiAgcmV0dXJuIGxhYmVscztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hdGNoRXhwcmVzc2lvbnNUb1N0cmluZyhwYXJhbXM6IExhYmVsU2VsZWN0b3JSZXF1aXJlbWVudFtdKSB7XG4gIHJldHVybiBwYXJhbXNcbiAgICAubWFwKHBhcmFtID0+IHtcbiAgICAgIHN3aXRjaCAocGFyYW0ub3BlcmF0b3IudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICBjYXNlICc9JzpcbiAgICAgICAgY2FzZSAnPT0nOiB7XG4gICAgICAgICAgcmV0dXJuIGAke3BhcmFtLmtleX0ke3BhcmFtLm9wZXJhdG9yfSR7cGFyYW0udmFsdWVzWzBdfWA7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnIT0nOiB7XG4gICAgICAgICAgcmV0dXJuIHBhcmFtLnZhbHVlc1xuICAgICAgICAgICAgLm1hcCh2YWx1ZSA9PiBgJHtwYXJhbS5rZXl9JHtwYXJhbS5vcGVyYXRvcn0ke3ZhbHVlfWApXG4gICAgICAgICAgICAuam9pbignLCcpO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJyEnOlxuICAgICAgICBjYXNlICdkb2Vzbm90ZXhpc3QnOiB7XG4gICAgICAgICAgcmV0dXJuIGAhJHtwYXJhbS5rZXl9YDtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdleGlzdHMnOiB7XG4gICAgICAgICAgcmV0dXJuIGAke3BhcmFtLmtleX1gO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ2luJzpcbiAgICAgICAgY2FzZSAnbm90aW4nOiB7XG4gICAgICAgICAgcmV0dXJuIGAke3BhcmFtLmtleX0gJHtwYXJhbS5vcGVyYXRvcn0gKCR7cGFyYW0udmFsdWVzLmpvaW4oJywnKX0pYDtcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgcmV0dXJuIHBhcmFtLmtleTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gICAgLmpvaW4oJywnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RMaXN0UGFyYW1zRnJvbVJvdXRlKFxuICByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4pOiBPYnNlcnZhYmxlPFJlc291cmNlTGlzdFBhcmFtcz4ge1xuICByZXR1cm4gcm91dGUucXVlcnlQYXJhbU1hcC5waXBlKFxuICAgIG1hcChwYXJhbU1hcCA9PiAoe1xuICAgICAgbGFiZWxTZWxlY3RvcjogcGFyYW1NYXAuZ2V0KCdsYWJlbFNlbGVjdG9yJyksXG4gICAgICBmaWVsZFNlbGVjdG9yOiBwYXJhbU1hcC5nZXQoJ2ZpZWxkU2VsZWN0b3InKSxcbiAgICAgIGtleXdvcmQ6IHBhcmFtTWFwLmdldCgna2V5d29yZCcpLFxuICAgICAgZmllbGQ6IHBhcmFtTWFwLmdldCgnZmllbGQnKSxcbiAgICB9KSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQ8UmVzb3VyY2VMaXN0UGFyYW1zPihlcXVhbHMpLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplUGFyYW1zPFAgZXh0ZW5kcyBvYmplY3Q+KHBhcmFtczogUCk6IFAge1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocGFyYW1zKS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgdmFsdWUgPSB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gdmFsdWUudHJpbSgpIDogdmFsdWU7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBhY2Nba2V5IGFzIGtleW9mIFBdID0gdmFsdWU7XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9IGFzIFApO1xufVxuIl19
@@ -75,7 +75,12 @@ export class XtermComponent {
75
75
  }
76
76
  ngOnDestroy() {
77
77
  if (this.terminal) {
78
- this.terminal.dispose();
78
+ try {
79
+ this.terminal.dispose();
80
+ }
81
+ catch (e) {
82
+ console.warn(e);
83
+ }
79
84
  }
80
85
  clearWindowsXtermTools();
81
86
  }
@@ -137,4 +142,4 @@ __decorate([
137
142
  type: Output
138
143
  }] }); })();
139
144
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(XtermComponent, { className: "XtermComponent" }); })();
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHRlcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3h0ZXJtL3h0ZXJtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBNEIsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzNELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXRELE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsb0JBQW9CLEdBQ3JCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQzs7O0FBRXJHLE1BQU0sWUFBWSxHQUEwQjtJQUMxQyxJQUFJLEVBQUUsZ0JBQWdC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QztRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEQsQ0FBQzsrRUF4SFUsY0FBYztvRUFBZCxjQUFjOzs7Ozs7WUFOZCw0QkFBc0M7NEJBSXZDLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUI7O0FBT2pFO0lBSkMsU0FBUyxDQUFDLFVBQVUsS0FBWTtRQUMvQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUMsQ0FBQzs7NkNBRVc7QUFLYjtJQURDLGVBQWUsRUFBRTs4QkFDWCxVQUFVOzZDQUFvQjtpRkFWMUIsY0FBYztjQVIxQixTQUFTOzJCQUNFLFdBQVcsWUFDWCx3Q0FBd0MsbUJBRWpDLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGtCQUFrQixFQUFFLHFCQUFxQixDQUFDO2dCQU9sRSxLQUFLO2tCQURKLEtBQUs7WUFNTixLQUFLLE1BR0wsSUFBSTtrQkFESCxLQUFLO1lBSU4sZUFBZTtrQkFEZCxTQUFTO21CQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFJckMsZUFBZTtrQkFEZCxNQUFNO1lBSVAsWUFBWTtrQkFEWCxNQUFNOztrRkFyQkksY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRoZW1lIH0gZnJvbSAnQGFsYXVkYS91aSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkZWJvdW5jZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJVGVybWluYWxPcHRpb25zLCBJVGhlbWUsIFRlcm1pbmFsIH0gZnJvbSAneHRlcm0nO1xuaW1wb3J0IHsgRml0QWRkb24gfSBmcm9tICd4dGVybS1hZGRvbi1maXQnO1xuaW1wb3J0IHsgU2VhcmNoQWRkb24gfSBmcm9tICd4dGVybS1hZGRvbi1zZWFyY2gnO1xuaW1wb3J0IHsgV2ViTGlua3NBZGRvbiB9IGZyb20gJ3h0ZXJtLWFkZG9uLXdlYi1saW5rcyc7XG5cbmltcG9ydCB7XG4gIGNsZWFyV2luZG93c1h0ZXJtVG9vbHMsXG4gIHNldFdpbmRvd3NYdGVybVRvb2xzLFxufSBmcm9tICcuLi9jb3JlL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZUlucHV0LCBWYWx1ZUhvb2sgfSBmcm9tICcuLi9jb3JlL3V0aWxzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgRWZmZWN0RGlyZWN0aXZlTW9kdWxlIH0gZnJvbSAnLi4vZWZmZWN0LWRpcmVjdGl2ZS9tb2R1bGUnO1xuaW1wb3J0IHsgWFRFUk1fREFSS19USEVNRSwgWFRFUk1fTElHSFRfVEhFTUUgfSBmcm9tICcuLi9leGVjL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBpbml0UmVuZGVyZXJBZGRvbiB9IGZyb20gJy4uL2V4ZWMvdGVybWluYWwvY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vbkxheW91dE1vZHVsZSB9IGZyb20gJy4uL3BhZ2Utc2NhZmZvbGQvcGFnZS1oZWFkZXIvY29tbW9uLWxheW91dC9jb21tb24tbGF5b3V0Lm1vZHVsZSc7XG5cbmNvbnN0IFNIRUxMX1RIRU1FUzogUmVjb3JkPFRoZW1lLCBJVGhlbWU+ID0ge1xuICBkYXJrOiBYVEVSTV9EQVJLX1RIRU1FLFxuICBsaWdodDogWFRFUk1fTElHSFRfVEhFTUUsXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wteHRlcm0nLFxuICB0ZW1wbGF0ZTogJzxkaXYgY2xhc3M9XCJsb2dzLXh0ZXJtXCIgI2FuY2hvcj48L2Rpdj4nLFxuICBzdHlsZVVybHM6IFsneHRlcm0uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIENvbW1vbkxheW91dE1vZHVsZSwgRWZmZWN0RGlyZWN0aXZlTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgWHRlcm1Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBAVmFsdWVIb29rKGZ1bmN0aW9uICh0aGVtZTogVGhlbWUpIHtcbiAgICB0aGlzLnNldFRoZW1lKHRoZW1lKTtcbiAgfSlcbiAgQElucHV0KClcbiAgdGhlbWU6IFRoZW1lO1xuXG4gIGZlZWRMaW5lcyA9IDE7XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIGxvZ3MkOiBPYnNlcnZhYmxlPHN0cmluZ1tdIHwgc3RyaW5nPjtcblxuICBASW5wdXQoKVxuICBsb2dzOiBzdHJpbmdbXSB8IHN0cmluZztcblxuICBAVmlld0NoaWxkKCdhbmNob3InLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICB0ZXJtaW5hbFdyYXBwZXI6IEVsZW1lbnRSZWY7XG5cbiAgQE91dHB1dCgpXG4gIHNlYXJjaEFkZG9uSW5pdCA9IG5ldyBFdmVudEVtaXR0ZXI8U2VhcmNoQWRkb24+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHRlcm1pbmFsSW5pdCA9IG5ldyBFdmVudEVtaXR0ZXI8VGVybWluYWw+KCk7XG5cbiAgdGVybWluYWw6IFRlcm1pbmFsO1xuICBzZWFyY2hBZGRvbiA9IG5ldyBTZWFyY2hBZGRvbigpO1xuXG4gIGZpdEFkZG9uOiBGaXRBZGRvbjtcblxuICBiYXNlVGVybWluYWxPcHRpb25zOiBJVGVybWluYWxPcHRpb25zID0ge1xuICAgIGZvbnRTaXplOiAxMixcbiAgICBsaW5lSGVpZ2h0OiAxLjUsXG4gICAgbGV0dGVyU3BhY2luZzogMCxcbiAgICBmb250V2VpZ2h0OiAnbm9ybWFsJyxcbiAgICBmb250RmFtaWx5OiAnTWVubG8sIE1vbmFjbywgXCJDb25zb2xhc1wiLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZScsXG4gICAgY3Vyc29yQmxpbms6IGZhbHNlLFxuICAgIGNvbnZlcnRFb2w6IHRydWUsXG4gICAgc2Nyb2xsYmFjazogTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIsXG4gICAgYWxsb3dQcm9wb3NlZEFwaTogdHJ1ZSxcbiAgfTtcblxuICBwcml2YXRlIGluaXRGaXRBZGRvbigpIHtcbiAgICB0aGlzLmZpdEFkZG9uID0gbmV3IEZpdEFkZG9uKCk7XG5cbiAgICBjb25zdCByZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcihcbiAgICAgIGRlYm91bmNlKChbZW50cnldKSA9PiB7XG4gICAgICAgIGlmIChlbnRyeS5jb250ZW50UmVjdC53aWR0aCAhPT0gMCkge1xuICAgICAgICAgIHRoaXMuZml0QWRkb24uZml0KCk7XG4gICAgICAgIH1cbiAgICAgIH0sIDIwMCksXG4gICAgKTtcblxuICAgIHJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy50ZXJtaW5hbFdyYXBwZXIubmF0aXZlRWxlbWVudCk7XG5cbiAgICByZXR1cm4gdGhpcy5maXRBZGRvbjtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFNlYXJjaEFkZG9uKCkge1xuICAgIHRoaXMuc2VhcmNoQWRkb24gPSBuZXcgU2VhcmNoQWRkb24oKTtcbiAgICB0aGlzLnNlYXJjaEFkZG9uSW5pdC5uZXh0KHRoaXMuc2VhcmNoQWRkb24pO1xuICAgIHJldHVybiB0aGlzLnNlYXJjaEFkZG9uO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0WHRlcm0oKSB7XG4gICAgdGhpcy50ZXJtaW5hbCA9IG5ldyBUZXJtaW5hbCh0aGlzLmJhc2VUZXJtaW5hbE9wdGlvbnMpO1xuICAgIHRoaXMudGVybWluYWwubG9hZEFkZG9uKHRoaXMuaW5pdEZpdEFkZG9uKCkpO1xuICAgIHRoaXMudGVybWluYWwubG9hZEFkZG9uKHRoaXMuaW5pdFNlYXJjaEFkZG9uKCkpO1xuICAgIHRoaXMudGVybWluYWwubG9hZEFkZG9uKG5ldyBXZWJMaW5rc0FkZG9uKCkpO1xuICAgIHRoaXMudGVybWluYWwubG9hZEFkZG9uKGluaXRSZW5kZXJlckFkZG9uKCkpO1xuXG4gICAgdGhpcy50ZXJtaW5hbC5vcGVuKHRoaXMudGVybWluYWxXcmFwcGVyLm5hdGl2ZUVsZW1lbnQpO1xuICAgIHRoaXMuc2V0VGhlbWUoKTtcbiAgICB0aGlzLmJpbmRDb3B5RXZlbnQoKTtcblxuICAgIHNldFdpbmRvd3NYdGVybVRvb2xzKHRoaXMudGVybWluYWwpO1xuICAgIHRoaXMudGVybWluYWxJbml0Lm5leHQodGhpcy50ZXJtaW5hbCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0WHRlcm0oKTtcblxuICAgIHRoaXMubG9ncyQuc3Vic2NyaWJlKGxvZ3MgPT4ge1xuICAgICAgdGhpcy5maXRBZGRvbi5maXQoKTtcbiAgICAgIHRoaXMud3JpdGUobG9ncywgKCkgPT4ge1xuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gdGhpcy50ZXJtaW5hbC5zY3JvbGxUb0JvdHRvbSgpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMudGVybWluYWwpIHtcbiAgICAgIHRoaXMudGVybWluYWwuZGlzcG9zZSgpO1xuICAgIH1cbiAgICBjbGVhcldpbmRvd3NYdGVybVRvb2xzKCk7XG4gIH1cblxuICB3cml0ZShsb2dzOiBzdHJpbmcgfCBzdHJpbmdbXSwgY2FsbGJhY2s/OiAoKSA9PiB2b2lkKSB7XG4gICAgaWYgKHRoaXMudGVybWluYWw/LndyaXRlKSB7XG4gICAgICB0aGlzLnRlcm1pbmFsLmNsZWFyKCk7XG4gICAgICBBcnJheS5pc0FycmF5KGxvZ3MpXG4gICAgICAgID8gbG9ncy5mb3JFYWNoKHYgPT4gdGhpcy50ZXJtaW5hbC53cml0ZSh2LCBjYWxsYmFjaykpXG4gICAgICAgIDogdGhpcy50ZXJtaW5hbC53cml0ZShsb2dzIHx8ICcnLCBjYWxsYmFjayk7XG4gICAgfVxuICB9XG5cbiAgYmluZENvcHlFdmVudCgpIHtcbiAgICB0aGlzLnRlcm1pbmFsLmF0dGFjaEN1c3RvbUtleUV2ZW50SGFuZGxlcigoZTogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgaWYgKGUuY3RybEtleSAmJiBlLmtleT8udG9Mb3dlckNhc2UoKSA9PT0gJ2MnKSB7XG4gICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5Jyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICBzZXRUaGVtZSh0aGVtZTogVGhlbWUgPSB0aGlzLnRoZW1lKSB7XG4gICAgaWYgKCF0aGlzLnRlcm1pbmFsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy50ZXJtaW5hbC5vcHRpb25zLnRoZW1lID0gU0hFTExfVEhFTUVTW3RoZW1lXTtcbiAgfVxufVxuIl19
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHRlcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3h0ZXJtL3h0ZXJtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBNEIsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzNELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXRELE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsb0JBQW9CLEdBQ3JCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQzs7O0FBRXJHLE1BQU0sWUFBWSxHQUEwQjtJQUMxQyxJQUFJLEVBQUUsZ0JBQWdC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Q0wsQ0FBQztJQUVELFFBQVEsQ0FBQyxRQUFlLElBQUksQ0FBQyxLQUFLO1FBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BELENBQUM7K0VBNUhVLGNBQWM7b0VBQWQsY0FBYzs7Ozs7O1lBTmQsNEJBQXNDOzRCQUl2QyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCOztBQU9qRTtJQUpDLFNBQVMsQ0FBQyxVQUFVLEtBQVk7UUFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDLENBQUM7OzZDQUVXO0FBS2I7SUFEQyxlQUFlLEVBQUU7OEJBQ1gsVUFBVTs2Q0FBb0I7aUZBVjFCLGNBQWM7Y0FSMUIsU0FBUzsyQkFDRSxXQUFXLFlBQ1gsd0NBQXdDLG1CQUVqQyx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsQ0FBQztnQkFPbEUsS0FBSztrQkFESixLQUFLO1lBTU4sS0FBSyxNQUdMLElBQUk7a0JBREgsS0FBSztZQUlOLGVBQWU7a0JBRGQsU0FBUzttQkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBSXJDLGVBQWU7a0JBRGQsTUFBTTtZQUlQLFlBQVk7a0JBRFgsTUFBTTs7a0ZBckJJLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaGVtZSB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGVib3VuY2UgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSVRlcm1pbmFsT3B0aW9ucywgSVRoZW1lLCBUZXJtaW5hbCB9IGZyb20gJ3h0ZXJtJztcbmltcG9ydCB7IEZpdEFkZG9uIH0gZnJvbSAneHRlcm0tYWRkb24tZml0JztcbmltcG9ydCB7IFNlYXJjaEFkZG9uIH0gZnJvbSAneHRlcm0tYWRkb24tc2VhcmNoJztcbmltcG9ydCB7IFdlYkxpbmtzQWRkb24gfSBmcm9tICd4dGVybS1hZGRvbi13ZWItbGlua3MnO1xuXG5pbXBvcnQge1xuICBjbGVhcldpbmRvd3NYdGVybVRvb2xzLFxuICBzZXRXaW5kb3dzWHRlcm1Ub29scyxcbn0gZnJvbSAnLi4vY29yZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IE9ic2VydmFibGVJbnB1dCwgVmFsdWVIb29rIH0gZnJvbSAnLi4vY29yZS91dGlscy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEVmZmVjdERpcmVjdGl2ZU1vZHVsZSB9IGZyb20gJy4uL2VmZmVjdC1kaXJlY3RpdmUvbW9kdWxlJztcbmltcG9ydCB7IFhURVJNX0RBUktfVEhFTUUsIFhURVJNX0xJR0hUX1RIRU1FIH0gZnJvbSAnLi4vZXhlYy9jb25zdGFudHMnO1xuaW1wb3J0IHsgaW5pdFJlbmRlcmVyQWRkb24gfSBmcm9tICcuLi9leGVjL3Rlcm1pbmFsL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tb25MYXlvdXRNb2R1bGUgfSBmcm9tICcuLi9wYWdlLXNjYWZmb2xkL3BhZ2UtaGVhZGVyL2NvbW1vbi1sYXlvdXQvY29tbW9uLWxheW91dC5tb2R1bGUnO1xuXG5jb25zdCBTSEVMTF9USEVNRVM6IFJlY29yZDxUaGVtZSwgSVRoZW1lPiA9IHtcbiAgZGFyazogWFRFUk1fREFSS19USEVNRSxcbiAgbGlnaHQ6IFhURVJNX0xJR0hUX1RIRU1FLFxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLXh0ZXJtJyxcbiAgdGVtcGxhdGU6ICc8ZGl2IGNsYXNzPVwibG9ncy14dGVybVwiICNhbmNob3I+PC9kaXY+JyxcbiAgc3R5bGVVcmxzOiBbJ3h0ZXJtLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBDb21tb25MYXlvdXRNb2R1bGUsIEVmZmVjdERpcmVjdGl2ZU1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFh0ZXJtQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQFZhbHVlSG9vayhmdW5jdGlvbiAodGhlbWU6IFRoZW1lKSB7XG4gICAgdGhpcy5zZXRUaGVtZSh0aGVtZSk7XG4gIH0pXG4gIEBJbnB1dCgpXG4gIHRoZW1lOiBUaGVtZTtcblxuICBmZWVkTGluZXMgPSAxO1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBsb2dzJDogT2JzZXJ2YWJsZTxzdHJpbmdbXSB8IHN0cmluZz47XG5cbiAgQElucHV0KClcbiAgbG9nczogc3RyaW5nW10gfCBzdHJpbmc7XG5cbiAgQFZpZXdDaGlsZCgnYW5jaG9yJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgdGVybWluYWxXcmFwcGVyOiBFbGVtZW50UmVmO1xuXG4gIEBPdXRwdXQoKVxuICBzZWFyY2hBZGRvbkluaXQgPSBuZXcgRXZlbnRFbWl0dGVyPFNlYXJjaEFkZG9uPigpO1xuXG4gIEBPdXRwdXQoKVxuICB0ZXJtaW5hbEluaXQgPSBuZXcgRXZlbnRFbWl0dGVyPFRlcm1pbmFsPigpO1xuXG4gIHRlcm1pbmFsOiBUZXJtaW5hbDtcbiAgc2VhcmNoQWRkb24gPSBuZXcgU2VhcmNoQWRkb24oKTtcblxuICBmaXRBZGRvbjogRml0QWRkb247XG5cbiAgYmFzZVRlcm1pbmFsT3B0aW9uczogSVRlcm1pbmFsT3B0aW9ucyA9IHtcbiAgICBmb250U2l6ZTogMTIsXG4gICAgbGluZUhlaWdodDogMS41LFxuICAgIGxldHRlclNwYWNpbmc6IDAsXG4gICAgZm9udFdlaWdodDogJ25vcm1hbCcsXG4gICAgZm9udEZhbWlseTogJ01lbmxvLCBNb25hY28sIFwiQ29uc29sYXNcIiwgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2UnLFxuICAgIGN1cnNvckJsaW5rOiBmYWxzZSxcbiAgICBjb252ZXJ0RW9sOiB0cnVlLFxuICAgIHNjcm9sbGJhY2s6IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSLFxuICAgIGFsbG93UHJvcG9zZWRBcGk6IHRydWUsXG4gIH07XG5cbiAgcHJpdmF0ZSBpbml0Rml0QWRkb24oKSB7XG4gICAgdGhpcy5maXRBZGRvbiA9IG5ldyBGaXRBZGRvbigpO1xuXG4gICAgY29uc3QgcmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoXG4gICAgICBkZWJvdW5jZSgoW2VudHJ5XSkgPT4ge1xuICAgICAgICBpZiAoZW50cnkuY29udGVudFJlY3Qud2lkdGggIT09IDApIHtcbiAgICAgICAgICB0aGlzLmZpdEFkZG9uLmZpdCgpO1xuICAgICAgICB9XG4gICAgICB9LCAyMDApLFxuICAgICk7XG5cbiAgICByZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMudGVybWluYWxXcmFwcGVyLm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgcmV0dXJuIHRoaXMuZml0QWRkb247XG4gIH1cblxuICBwcml2YXRlIGluaXRTZWFyY2hBZGRvbigpIHtcbiAgICB0aGlzLnNlYXJjaEFkZG9uID0gbmV3IFNlYXJjaEFkZG9uKCk7XG4gICAgdGhpcy5zZWFyY2hBZGRvbkluaXQubmV4dCh0aGlzLnNlYXJjaEFkZG9uKTtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hBZGRvbjtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFh0ZXJtKCkge1xuICAgIHRoaXMudGVybWluYWwgPSBuZXcgVGVybWluYWwodGhpcy5iYXNlVGVybWluYWxPcHRpb25zKTtcbiAgICB0aGlzLnRlcm1pbmFsLmxvYWRBZGRvbih0aGlzLmluaXRGaXRBZGRvbigpKTtcbiAgICB0aGlzLnRlcm1pbmFsLmxvYWRBZGRvbih0aGlzLmluaXRTZWFyY2hBZGRvbigpKTtcbiAgICB0aGlzLnRlcm1pbmFsLmxvYWRBZGRvbihuZXcgV2ViTGlua3NBZGRvbigpKTtcbiAgICB0aGlzLnRlcm1pbmFsLmxvYWRBZGRvbihpbml0UmVuZGVyZXJBZGRvbigpKTtcblxuICAgIHRoaXMudGVybWluYWwub3Blbih0aGlzLnRlcm1pbmFsV3JhcHBlci5uYXRpdmVFbGVtZW50KTtcbiAgICB0aGlzLnNldFRoZW1lKCk7XG4gICAgdGhpcy5iaW5kQ29weUV2ZW50KCk7XG5cbiAgICBzZXRXaW5kb3dzWHRlcm1Ub29scyh0aGlzLnRlcm1pbmFsKTtcbiAgICB0aGlzLnRlcm1pbmFsSW5pdC5uZXh0KHRoaXMudGVybWluYWwpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdFh0ZXJtKCk7XG5cbiAgICB0aGlzLmxvZ3MkLnN1YnNjcmliZShsb2dzID0+IHtcbiAgICAgIHRoaXMuZml0QWRkb24uZml0KCk7XG4gICAgICB0aGlzLndyaXRlKGxvZ3MsICgpID0+IHtcbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHRoaXMudGVybWluYWwuc2Nyb2xsVG9Cb3R0b20oKSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLnRlcm1pbmFsKSB7XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLnRlcm1pbmFsLmRpc3Bvc2UoKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGUpO1xuICAgICAgfVxuICAgIH1cbiAgICBjbGVhcldpbmRvd3NYdGVybVRvb2xzKCk7XG4gIH1cblxuICB3cml0ZShsb2dzOiBzdHJpbmcgfCBzdHJpbmdbXSwgY2FsbGJhY2s/OiAoKSA9PiB2b2lkKSB7XG4gICAgaWYgKHRoaXMudGVybWluYWw/LndyaXRlKSB7XG4gICAgICB0aGlzLnRlcm1pbmFsLmNsZWFyKCk7XG4gICAgICBBcnJheS5pc0FycmF5KGxvZ3MpXG4gICAgICAgID8gbG9ncy5mb3JFYWNoKHYgPT4gdGhpcy50ZXJtaW5hbC53cml0ZSh2LCBjYWxsYmFjaykpXG4gICAgICAgIDogdGhpcy50ZXJtaW5hbC53cml0ZShsb2dzIHx8ICcnLCBjYWxsYmFjayk7XG4gICAgfVxuICB9XG5cbiAgYmluZENvcHlFdmVudCgpIHtcbiAgICB0aGlzLnRlcm1pbmFsLmF0dGFjaEN1c3RvbUtleUV2ZW50SGFuZGxlcigoZTogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgaWYgKGUuY3RybEtleSAmJiBlLmtleT8udG9Mb3dlckNhc2UoKSA9PT0gJ2MnKSB7XG4gICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5Jyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICBzZXRUaGVtZSh0aGVtZTogVGhlbWUgPSB0aGlzLnRoZW1lKSB7XG4gICAgaWYgKCF0aGlzLnRlcm1pbmFsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy50ZXJtaW5hbC5vcHRpb25zLnRoZW1lID0gU0hFTExfVEhFTUVTW3RoZW1lXTtcbiAgfVxufVxuIl19
package/exec/module.d.ts CHANGED
@@ -9,7 +9,7 @@ import * as i5 from "../translate/translate.module";
9
9
  import * as i6 from "@alauda/ui";
10
10
  import * as i7 from "../widget/text-ellipsis/component";
11
11
  import * as i8 from "../widget/loading-mask/loading-mask.component";
12
- export declare const EXPORTS: (typeof TerminalExtraContentDirective | typeof TerminalComponent)[];
12
+ export declare const EXPORTS: (typeof TerminalComponent | typeof TerminalExtraContentDirective)[];
13
13
  export declare class EXECModule {
14
14
  static ɵfac: i0.ɵɵFactoryDeclaration<EXECModule, never>;
15
15
  static ɵmod: i0.ɵɵNgModuleDeclaration<EXECModule, [typeof i1.TerminalGroupComponent, typeof i2.TerminalComponent, typeof i3.TerminalPlaceholderComponent, typeof i1.TerminalExtraButtonDirective, typeof i1.TerminalExtraContentDirective], [typeof i4.CommonModule, typeof i5.TranslateModule, typeof i6.ButtonModule, typeof i6.DropdownModule, typeof i6.IconModule, typeof i6.InlineAlertModule, typeof i6.InputModule, typeof i6.TabsModule, typeof i6.TooltipModule, typeof i6.ThemeModule, typeof i7.TextEllipsisComponent, typeof i8.LoadingMaskComponent], [typeof i1.TerminalGroupComponent, typeof i2.TerminalComponent, typeof i3.TerminalPlaceholderComponent, typeof i1.TerminalExtraButtonDirective, typeof i1.TerminalExtraContentDirective]>;
@@ -54,6 +54,7 @@ export declare class TerminalComponent implements OnChanges, OnDestroy, OnInit {
54
54
  private fitAddon;
55
55
  private socket;
56
56
  private ping;
57
+ private resizeObserver;
57
58
  socket$$: Subject<WebSocket>;
58
59
  shouldFallBackOnClose: boolean;
59
60
  get themeClass(): string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alauda-fe/common",
3
- "version": "1.4.32-beta.0",
3
+ "version": "1.4.33-beta.0",
4
4
  "description": "Alauda frontend team common codes.",
5
5
  "author": "Alauda Frontend",
6
6
  "license": "MIT",
@@ -33,6 +33,12 @@
33
33
  "ng-resource-form-util": "^6.1.0",
34
34
  "ramda": "^0.29.0",
35
35
  "rxjs": "^7.8.1",
36
+ "xterm": "^5.2.1",
37
+ "xterm-addon-canvas": "^0.4.0",
38
+ "xterm-addon-fit": "^0.7.0",
39
+ "xterm-addon-search": "^0.12.0",
40
+ "xterm-addon-web-links": "^0.8.0",
41
+ "xterm-addon-webgl": "^0.15.0",
36
42
  "zone.js": "^0.14.8"
37
43
  },
38
44
  "dependencies": {
@@ -44,12 +50,6 @@
44
50
  "marked": "^7.0.5",
45
51
  "ts-md5": "^1.3.1",
46
52
  "tslib": "^2.6.2",
47
- "xterm": "^5.2.1",
48
- "xterm-addon-canvas": "^0.4.0",
49
- "xterm-addon-fit": "^0.7.0",
50
- "xterm-addon-search": "^0.12.0",
51
- "xterm-addon-web-links": "^0.8.0",
52
- "xterm-addon-webgl": "^0.15.0",
53
53
  "yaml": "^2.3.2"
54
54
  },
55
55
  "sideEffects": false,
@@ -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<"name" | "action", string>[]>;
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[]>;
package/table/helper.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  export declare function defaultFilter<T extends string | number>(value: T, filterValue: T, _item: unknown, name: string): boolean;
2
- export declare function defaultSorter<T>(a: T, b: T): 1 | 0 | -1;
2
+ export declare function defaultSorter<T>(a: T, b: T): 0 | 1 | -1;