@sinequa/assistant 3.8.4 → 3.8.5-rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/chat/styles/assistant.scss +102 -102
- package/chat/styles/references.scss +22 -22
- package/chat/websocket-chat.service.d.ts +4 -2
- package/esm2020/chat/charts/chart/chart.component.mjs +3 -3
- package/esm2020/chat/chat-message/chat-message.component.mjs +3 -3
- package/esm2020/chat/chat-reference/chat-reference.component.mjs +3 -3
- package/esm2020/chat/chat-settings-v3/chat-settings-v3.component.mjs +3 -3
- package/esm2020/chat/chat.component.mjs +3 -3
- package/esm2020/chat/chat.service.mjs +1 -1
- package/esm2020/chat/debug-message/debug-message.component.mjs +3 -3
- package/esm2020/chat/documents-upload/document-list/document-list.component.mjs +3 -3
- package/esm2020/chat/documents-upload/document-overview/document-overview.component.mjs +3 -3
- package/esm2020/chat/documents-upload/document-upload/document-upload.component.mjs +3 -3
- package/esm2020/chat/documents-upload/documents-upload.model.mjs +1 -1
- package/esm2020/chat/documents-upload/documents-upload.service.mjs +1 -1
- package/esm2020/chat/format-icon/format-icon.component.mjs +1 -1
- package/esm2020/chat/format-icon/icons.mjs +1 -1
- package/esm2020/chat/initials-avatar/initials-avatar.component.mjs +3 -3
- package/esm2020/chat/instance-manager.service.mjs +1 -1
- package/esm2020/chat/messages/de.mjs +1 -1
- package/esm2020/chat/messages/en.mjs +1 -1
- package/esm2020/chat/messages/fr.mjs +1 -1
- package/esm2020/chat/messages/index.mjs +1 -1
- package/esm2020/chat/prompt.component.mjs +23 -23
- package/esm2020/chat/public-api.mjs +1 -1
- package/esm2020/chat/rest-chat.service.mjs +1 -1
- package/esm2020/chat/saved-chats/saved-chats.component.mjs +3 -3
- package/esm2020/chat/token-progress-bar/token-progress-bar.component.mjs +3 -3
- package/esm2020/chat/types.mjs +1 -1
- package/esm2020/chat/websocket-chat.service.mjs +41 -70
- package/esm2020/public-api.mjs +1 -1
- package/fesm2015/sinequa-assistant-chat.mjs +85 -114
- package/fesm2015/sinequa-assistant-chat.mjs.map +1 -1
- package/fesm2015/sinequa-assistant.mjs.map +1 -1
- package/fesm2020/sinequa-assistant-chat.mjs +85 -114
- package/fesm2020/sinequa-assistant-chat.mjs.map +1 -1
- package/fesm2020/sinequa-assistant.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1,102 +1,102 @@
|
|
|
1
|
-
/****************************************************
|
|
2
|
-
variables
|
|
3
|
-
****************************************************/
|
|
4
|
-
$sm: 576px;
|
|
5
|
-
$md: 768px;
|
|
6
|
-
$lg: 992px;
|
|
7
|
-
$xl: 1200px;
|
|
8
|
-
$xxl: 1400px;
|
|
9
|
-
|
|
10
|
-
$size-0: var(--ast-size-0, 0rem);
|
|
11
|
-
$size-1: var(--ast-size-1, 0.25rem);
|
|
12
|
-
$size-2: var(--ast-size-2, 0.5rem);
|
|
13
|
-
$size-3: var(--ast-size-3, 0.75rem);
|
|
14
|
-
$size-4: var(--ast-size-4, 1rem);
|
|
15
|
-
$size-5: var(--ast-size-5, 1.25rem);
|
|
16
|
-
$size-6: var(--ast-size-6, 1.5rem);
|
|
17
|
-
|
|
18
|
-
$fw-bold: var(--font-weight-bold, 500);
|
|
19
|
-
$container-width: var(--container-width, 800px);
|
|
20
|
-
|
|
21
|
-
/****************************************************
|
|
22
|
-
colors
|
|
23
|
-
****************************************************/
|
|
24
|
-
$ast-primary-bg: var(--ast-primary-bg, #f2f8fe);
|
|
25
|
-
$ast-primary-color: var(--ast-primary-color, #005DA7);
|
|
26
|
-
$ast-secondary-bg: var(--ast-secondary-bg, #FFF8F1);
|
|
27
|
-
$ast-secondary-color: var(--ast-secondary-color, #FF732E);
|
|
28
|
-
$ast-error-bg: var(--ast-error-bg, rgba(249, 58, 55, 0.2));
|
|
29
|
-
$ast-error-color: var(--ast-error-color, rgba(249, 58, 55, 0.7));
|
|
30
|
-
$ast-warning-bg: var(--ast-warning-bg, #fff1b8);
|
|
31
|
-
$ast-warning-color: var(--ast-warning-color, #fed86f);
|
|
32
|
-
$ast-saved-chat-hover-background: var(--ast-saved-chat-hover-background, #FFF8F1);
|
|
33
|
-
$ast-uploaded-doc-hover-background: var(--ast-uploaded-doc-hover-background, #f2f8fe);
|
|
34
|
-
$ast-input-bg: var(--ast-input-bg, #F8F8F8);
|
|
35
|
-
$ast-input-color: var(--ast-input-color, #B0B0B0);
|
|
36
|
-
$ast-muted-color: var(--ast-muted-color, rgba(33, 37, 41, 0.75));
|
|
37
|
-
$ast-action-buttons-color: var(--ast-action-buttons-color, #212529);
|
|
38
|
-
$ast-action-buttons-hover-color: var(--ast-action-buttons-hover-color, var(--ast-primary-color, #005DA7));
|
|
39
|
-
$ast-report-bg: var(--ast-report-bg, white);
|
|
40
|
-
|
|
41
|
-
/****************************************************
|
|
42
|
-
classes
|
|
43
|
-
****************************************************/
|
|
44
|
-
|
|
45
|
-
.ast-primary {
|
|
46
|
-
color: $ast-primary-color;
|
|
47
|
-
background-color: $ast-primary-bg;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
.ast-primary-hover {
|
|
51
|
-
background-color: $ast-primary-bg;
|
|
52
|
-
|
|
53
|
-
&:hover {
|
|
54
|
-
color: $ast-primary-color;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
.ast-secondary {
|
|
59
|
-
color: $ast-secondary-color;
|
|
60
|
-
background-color: $ast-secondary-bg;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
.ast-error {
|
|
64
|
-
background-color: $ast-error-bg;
|
|
65
|
-
color: var(--ast-action-buttons-color, inherit);
|
|
66
|
-
|
|
67
|
-
&:hover {
|
|
68
|
-
color: $ast-error-color;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
.ast-btn {
|
|
73
|
-
border: 0;
|
|
74
|
-
text-align: left;
|
|
75
|
-
padding-top: 0.5rem;
|
|
76
|
-
padding-bottom: 0.5rem;
|
|
77
|
-
display: flex;
|
|
78
|
-
align-items: center;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
.dark {
|
|
82
|
-
--ast-primary-bg: #0d0701;
|
|
83
|
-
--ast-primary-color: #008cd1;
|
|
84
|
-
--ast-secondary-bg: #00070e;
|
|
85
|
-
--ast-secondary-color: #ffa258;
|
|
86
|
-
--ast-input-bg: #070707;
|
|
87
|
-
--ast-input-color: rgba(222, 218, 218, 0.75);
|
|
88
|
-
--ast-muted-color: rgba(222, 218, 218, 0.75);
|
|
89
|
-
--ast-saved-chat-hover-background: #262421;
|
|
90
|
-
--ast-uploaded-doc-hover-background: #262421;
|
|
91
|
-
--ast-message-table-border-color: #333333;
|
|
92
|
-
--ast-message-table-tr-bg: #070707;
|
|
93
|
-
--ast-message-table-tr-border-color: #222222;
|
|
94
|
-
--ast-reference-icon-color: white;
|
|
95
|
-
--ast-reference-icon-active-color: black;
|
|
96
|
-
--ast-reference-passages-color: white;
|
|
97
|
-
--ast-reference-expanded-hover-bg: #262421;
|
|
98
|
-
--ast-message-reference-color: black;
|
|
99
|
-
--ast-action-buttons-color: white;
|
|
100
|
-
--ast-action-buttons-hover-color: #6dbee6;
|
|
101
|
-
--ast-report-bg: #070707;
|
|
102
|
-
}
|
|
1
|
+
/****************************************************
|
|
2
|
+
variables
|
|
3
|
+
****************************************************/
|
|
4
|
+
$sm: 576px;
|
|
5
|
+
$md: 768px;
|
|
6
|
+
$lg: 992px;
|
|
7
|
+
$xl: 1200px;
|
|
8
|
+
$xxl: 1400px;
|
|
9
|
+
|
|
10
|
+
$size-0: var(--ast-size-0, 0rem);
|
|
11
|
+
$size-1: var(--ast-size-1, 0.25rem);
|
|
12
|
+
$size-2: var(--ast-size-2, 0.5rem);
|
|
13
|
+
$size-3: var(--ast-size-3, 0.75rem);
|
|
14
|
+
$size-4: var(--ast-size-4, 1rem);
|
|
15
|
+
$size-5: var(--ast-size-5, 1.25rem);
|
|
16
|
+
$size-6: var(--ast-size-6, 1.5rem);
|
|
17
|
+
|
|
18
|
+
$fw-bold: var(--font-weight-bold, 500);
|
|
19
|
+
$container-width: var(--container-width, 800px);
|
|
20
|
+
|
|
21
|
+
/****************************************************
|
|
22
|
+
colors
|
|
23
|
+
****************************************************/
|
|
24
|
+
$ast-primary-bg: var(--ast-primary-bg, #f2f8fe);
|
|
25
|
+
$ast-primary-color: var(--ast-primary-color, #005DA7);
|
|
26
|
+
$ast-secondary-bg: var(--ast-secondary-bg, #FFF8F1);
|
|
27
|
+
$ast-secondary-color: var(--ast-secondary-color, #FF732E);
|
|
28
|
+
$ast-error-bg: var(--ast-error-bg, rgba(249, 58, 55, 0.2));
|
|
29
|
+
$ast-error-color: var(--ast-error-color, rgba(249, 58, 55, 0.7));
|
|
30
|
+
$ast-warning-bg: var(--ast-warning-bg, #fff1b8);
|
|
31
|
+
$ast-warning-color: var(--ast-warning-color, #fed86f);
|
|
32
|
+
$ast-saved-chat-hover-background: var(--ast-saved-chat-hover-background, #FFF8F1);
|
|
33
|
+
$ast-uploaded-doc-hover-background: var(--ast-uploaded-doc-hover-background, #f2f8fe);
|
|
34
|
+
$ast-input-bg: var(--ast-input-bg, #F8F8F8);
|
|
35
|
+
$ast-input-color: var(--ast-input-color, #B0B0B0);
|
|
36
|
+
$ast-muted-color: var(--ast-muted-color, rgba(33, 37, 41, 0.75));
|
|
37
|
+
$ast-action-buttons-color: var(--ast-action-buttons-color, #212529);
|
|
38
|
+
$ast-action-buttons-hover-color: var(--ast-action-buttons-hover-color, var(--ast-primary-color, #005DA7));
|
|
39
|
+
$ast-report-bg: var(--ast-report-bg, white);
|
|
40
|
+
|
|
41
|
+
/****************************************************
|
|
42
|
+
classes
|
|
43
|
+
****************************************************/
|
|
44
|
+
|
|
45
|
+
.ast-primary {
|
|
46
|
+
color: $ast-primary-color;
|
|
47
|
+
background-color: $ast-primary-bg;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.ast-primary-hover {
|
|
51
|
+
background-color: $ast-primary-bg;
|
|
52
|
+
|
|
53
|
+
&:hover {
|
|
54
|
+
color: $ast-primary-color;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.ast-secondary {
|
|
59
|
+
color: $ast-secondary-color;
|
|
60
|
+
background-color: $ast-secondary-bg;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.ast-error {
|
|
64
|
+
background-color: $ast-error-bg;
|
|
65
|
+
color: var(--ast-action-buttons-color, inherit);
|
|
66
|
+
|
|
67
|
+
&:hover {
|
|
68
|
+
color: $ast-error-color;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.ast-btn {
|
|
73
|
+
border: 0;
|
|
74
|
+
text-align: left;
|
|
75
|
+
padding-top: 0.5rem;
|
|
76
|
+
padding-bottom: 0.5rem;
|
|
77
|
+
display: flex;
|
|
78
|
+
align-items: center;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.dark {
|
|
82
|
+
--ast-primary-bg: #0d0701;
|
|
83
|
+
--ast-primary-color: #008cd1;
|
|
84
|
+
--ast-secondary-bg: #00070e;
|
|
85
|
+
--ast-secondary-color: #ffa258;
|
|
86
|
+
--ast-input-bg: #070707;
|
|
87
|
+
--ast-input-color: rgba(222, 218, 218, 0.75);
|
|
88
|
+
--ast-muted-color: rgba(222, 218, 218, 0.75);
|
|
89
|
+
--ast-saved-chat-hover-background: #262421;
|
|
90
|
+
--ast-uploaded-doc-hover-background: #262421;
|
|
91
|
+
--ast-message-table-border-color: #333333;
|
|
92
|
+
--ast-message-table-tr-bg: #070707;
|
|
93
|
+
--ast-message-table-tr-border-color: #222222;
|
|
94
|
+
--ast-reference-icon-color: white;
|
|
95
|
+
--ast-reference-icon-active-color: black;
|
|
96
|
+
--ast-reference-passages-color: white;
|
|
97
|
+
--ast-reference-expanded-hover-bg: #262421;
|
|
98
|
+
--ast-message-reference-color: black;
|
|
99
|
+
--ast-action-buttons-color: white;
|
|
100
|
+
--ast-action-buttons-hover-color: #6dbee6;
|
|
101
|
+
--ast-report-bg: #070707;
|
|
102
|
+
}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
:host ::ng-deep { // required so it is applied for the tooltip
|
|
2
|
-
.reference,
|
|
3
|
-
.message-content .reference,
|
|
4
|
-
.attachment .reference {
|
|
5
|
-
position: relative;
|
|
6
|
-
bottom: var(--ast-reference-bottom, 0.3em);
|
|
7
|
-
font-weight: var(--ast-reference-font-weight, bold);
|
|
8
|
-
padding: var(--ast-reference-padding, 0 0.2em);
|
|
9
|
-
margin: var(--ast-reference-margin, 0 0.1em);
|
|
10
|
-
border-radius: var(--ast-reference-border-radius, 0.2em);
|
|
11
|
-
background-color: var(--ast-reference-background-color, lightblue);
|
|
12
|
-
color: var(--ast-reference-color, black);
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
.reference,
|
|
16
|
-
.message-content .reference {
|
|
17
|
-
font-size: var(--ast-reference-message-font-size, 0.7em);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
.attachment .reference {
|
|
21
|
-
font-size: var(--ast-reference-attachment-font-size, 13px);
|
|
22
|
-
}
|
|
1
|
+
:host ::ng-deep { // required so it is applied for the tooltip
|
|
2
|
+
.reference,
|
|
3
|
+
.message-content .reference,
|
|
4
|
+
.attachment .reference {
|
|
5
|
+
position: relative;
|
|
6
|
+
bottom: var(--ast-reference-bottom, 0.3em);
|
|
7
|
+
font-weight: var(--ast-reference-font-weight, bold);
|
|
8
|
+
padding: var(--ast-reference-padding, 0 0.2em);
|
|
9
|
+
margin: var(--ast-reference-margin, 0 0.1em);
|
|
10
|
+
border-radius: var(--ast-reference-border-radius, 0.2em);
|
|
11
|
+
background-color: var(--ast-reference-background-color, lightblue);
|
|
12
|
+
color: var(--ast-reference-color, black);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.reference,
|
|
16
|
+
.message-content .reference {
|
|
17
|
+
font-size: var(--ast-reference-message-font-size, 0.7em);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.attachment .reference {
|
|
21
|
+
font-size: var(--ast-reference-attachment-font-size, 13px);
|
|
22
|
+
}
|
|
23
23
|
}
|
|
@@ -2,7 +2,7 @@ import { HubConnection } from "@microsoft/signalr";
|
|
|
2
2
|
import { Observable } from "rxjs";
|
|
3
3
|
import { Query } from "@sinequa/core/app-utils";
|
|
4
4
|
import { AuthenticationService } from "@sinequa/core/login";
|
|
5
|
-
import { ConnectionOptions, SignalRWebService } from "@sinequa/core/web-services";
|
|
5
|
+
import { ConnectionOptions, JsonMethodPluginService, SignalRWebService } from "@sinequa/core/web-services";
|
|
6
6
|
import { ChatService } from "./chat.service";
|
|
7
7
|
import { ChatMessage, ChatResponse, GllmFunction, GllmModelDescription, MessageHandler, SavedChat, SavedChatHistory } from "./types";
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
@@ -17,6 +17,8 @@ export declare class WebSocketChatService extends ChatService {
|
|
|
17
17
|
private _debugMessages;
|
|
18
18
|
signalRService: SignalRWebService;
|
|
19
19
|
authenticationService: AuthenticationService;
|
|
20
|
+
jsonMethodWebService: JsonMethodPluginService;
|
|
21
|
+
private readonly restUrl;
|
|
20
22
|
constructor();
|
|
21
23
|
/**
|
|
22
24
|
* Initialize the assistant process.
|
|
@@ -37,8 +39,8 @@ export declare class WebSocketChatService extends ChatService {
|
|
|
37
39
|
fetch(messages: ChatMessage[], query: Query): Observable<ChatResponse>;
|
|
38
40
|
stopGeneration(): Observable<boolean>;
|
|
39
41
|
listSavedChat(): void;
|
|
40
|
-
getSavedChat(id: string): Observable<SavedChatHistory | undefined>;
|
|
41
42
|
addSavedChat(messages: ChatMessage[]): Observable<SavedChat>;
|
|
43
|
+
getSavedChat(id: string): Observable<SavedChatHistory | undefined>;
|
|
42
44
|
updateSavedChat(id: string, name?: string, messages?: ChatMessage[]): Observable<SavedChat>;
|
|
43
45
|
deleteSavedChat(ids: string[]): Observable<number>;
|
|
44
46
|
/**
|
|
@@ -30,11 +30,11 @@ export class ChartComponent {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
ChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
33
|
-
ChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ChartComponent, isStandalone: true, selector: "sq-assistant-chart", inputs: { rawChartData: "rawChartData" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"chart-container\">\n <canvas id=\"chart-canvas\">{{ chart }}</canvas>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
33
|
+
ChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ChartComponent, isStandalone: true, selector: "sq-assistant-chart", inputs: { rawChartData: "rawChartData" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"chart-container\">\r\n <canvas id=\"chart-canvas\">{{ chart }}</canvas>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
34
34
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ChartComponent, decorators: [{
|
|
35
35
|
type: Component,
|
|
36
|
-
args: [{ selector: 'sq-assistant-chart', standalone: true, imports: [CommonModule], template: "<div class=\"chart-container\">\n <canvas id=\"chart-canvas\">{{ chart }}</canvas>\n</div>\n" }]
|
|
36
|
+
args: [{ selector: 'sq-assistant-chart', standalone: true, imports: [CommonModule], template: "<div class=\"chart-container\">\r\n <canvas id=\"chart-canvas\">{{ chart }}</canvas>\r\n</div>\r\n" }]
|
|
37
37
|
}], ctorParameters: function () { return []; }, propDecorators: { rawChartData: [{
|
|
38
38
|
type: Input
|
|
39
39
|
}] } });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXNzaXN0YW50L2NoYXQvY2hhcnRzL2NoYXJ0L2NoYXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fzc2lzdGFudC9jaGF0L2NoYXJ0cy9jaGFydC9jaGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWEsU0FBUyxFQUFFLEtBQUssRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFBOztBQUUvQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsYUFBYSxDQUFDLENBQUM7QUFTakMsTUFBTSxPQUFPLGNBQWM7SUFNekIsZ0JBQWdCLENBQUM7SUFFakIsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQzNCLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLGFBQWEsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ3BFO0lBQ0gsQ0FBQztJQUVPLGVBQWU7UUFDckIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUUxQyxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRTlELElBQUcsYUFBYSxFQUFDO1lBQ2YsSUFBRztnQkFDRCxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQVcsQ0FBQztnQkFDdEgsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFFekMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxjQUFjLEVBQUUsV0FBVyxDQUFDLENBQUM7YUFFckQ7WUFBQyxPQUFPLEtBQUssRUFBRTtnQkFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLGtFQUFrRSxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQzFGO1NBRUY7YUFDSTtZQUNILE9BQU8sQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztTQUM1QztJQUNILENBQUM7OzJHQW5DVSxjQUFjOytGQUFkLGNBQWMsNklDYjNCLHVHQUdBLHlERE1ZLFlBQVk7MkZBSVgsY0FBYztrQkFQMUIsU0FBUzsrQkFDRSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDOzBFQUtkLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPbkNoYW5nZXMsIENvbXBvbmVudCwgSW5wdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ2hhcnQsIHJlZ2lzdGVyYWJsZXMgfSBmcm9tICdjaGFydC5qcydcclxuXHJcbkNoYXJ0LnJlZ2lzdGVyKC4uLnJlZ2lzdGVyYWJsZXMpO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzcS1hc3Npc3RhbnQtY2hhcnQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYXJ0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jaGFydC5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENoYXJ0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSByYXdDaGFydERhdGE6IHN0cmluZztcclxuXHJcbiAgcHVibGljIGNoYXJ0OiBDaGFydDtcclxuICBwcml2YXRlIGRlYm91bmNlVGltZXI6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ3Jhd0NoYXJ0RGF0YSddKSB7XHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmRlYm91bmNlVGltZXIpO1xyXG4gICAgICB0aGlzLmRlYm91bmNlVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuaW5pdGlhbGl6ZUNoYXJ0KCksIDMwMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRpYWxpemVDaGFydCgpIHtcclxuICAgIENoYXJ0LmdldENoYXJ0KCdjaGFydC1jYW52YXMnKT8uZGVzdHJveSgpO1xyXG5cclxuICAgIGNvbnN0IGNhbnZhc0VsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hhcnQtY2FudmFzJyk7XHJcblxyXG4gICAgaWYoY2FudmFzRWxlbWVudCl7XHJcbiAgICAgIHRyeXtcclxuICAgICAgICBsZXQgY2hhcnRJbnB1dCA9IHRoaXMucmF3Q2hhcnREYXRhLm1hdGNoKC88Y2hhcnRqcz4oe1tcXHNcXFNdKj8pPFxcL2NoYXJ0anM+Lyk/LlsxXT8udHJpbSgpLnJlcGxhY2UoLycvZywgJ1wiJykgYXMgc3RyaW5nO1xyXG4gICAgICAgIGxldCBjaGFydENvbmZpZyA9IEpTT04ucGFyc2UoY2hhcnRJbnB1dCk7ICBcclxuICAgXHJcbiAgICAgICAgdGhpcy5jaGFydCA9IG5ldyBDaGFydCgnY2hhcnQtY2FudmFzJywgY2hhcnRDb25maWcpO1xyXG5cclxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdJbnZhbGlkIGNoYXJ0IGNvbmZpZ3VyYXRpb24sIGNoZWNrIHRoZSBhc3Npc3RhbnQgY29uZmlndXJhdGlvbjogJywgZXJyb3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0NoYXJ0IENhbnZhcyBpcyBub3QgZm91bmQnKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNoYXJ0LWNvbnRhaW5lclwiPlxyXG4gICAgPGNhbnZhcyBpZD1cImNoYXJ0LWNhbnZhc1wiPnt7IGNoYXJ0IH19PC9jYW52YXM+XHJcbjwvZGl2PlxyXG4iXX0=
|