@appius-fr/apx 2.3.0 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -0
- package/dist/APX.dev.mjs +55 -4
- package/dist/APX.mjs +1 -1
- package/dist/APX.prod.mjs +1 -1
- package/modules/dialog/README.md +24 -0
- package/modules/dialog/dialog.mjs +54 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -33,6 +33,26 @@ The `dialog` module provides utilities to create and manage modal dialogs.
|
|
|
33
33
|
|
|
34
34
|
Documentation: [`/modules/dialog`](./modules/dialog/dialog.mjs)
|
|
35
35
|
|
|
36
|
+
Since 2.4.0, dialog content can be fetched via GET (default) or POST with optional payload and headers.
|
|
37
|
+
|
|
38
|
+
```javascript
|
|
39
|
+
// Example: POST fetch for dialog content (APX 2.4.0+)
|
|
40
|
+
const myDialog = APX.dialog({
|
|
41
|
+
title: 'Submit and Load',
|
|
42
|
+
contentURI: '/api/dialog/content',
|
|
43
|
+
contentMethod: 'POST',
|
|
44
|
+
contentData: { foo: 'bar' }, // also supports FormData, URLSearchParams, string, Blob
|
|
45
|
+
contentHeaders: { 'X-Request-ID': '123' },
|
|
46
|
+
buttons: [
|
|
47
|
+
{ key: 'ok', label: 'OK', closeOnClick: true },
|
|
48
|
+
{ key: 'cancel', label: 'Cancel', closeOnClick: true }
|
|
49
|
+
],
|
|
50
|
+
size: 'medium'
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
myDialog.open();
|
|
54
|
+
```
|
|
55
|
+
|
|
36
56
|
### Utilities
|
|
37
57
|
|
|
38
58
|
- **`loadCss`**: Dynamically load CSS files into your document.
|
package/dist/APX.dev.mjs
CHANGED
|
@@ -855,10 +855,13 @@ const createDialog = (options) => {
|
|
|
855
855
|
contentURI: '',
|
|
856
856
|
buttons: [],
|
|
857
857
|
size: 'medium',
|
|
858
|
-
showLoadingIndicator: false
|
|
858
|
+
showLoadingIndicator: false,
|
|
859
|
+
contentMethod: 'GET',
|
|
860
|
+
contentData: null,
|
|
861
|
+
contentHeaders: undefined
|
|
859
862
|
};
|
|
860
863
|
|
|
861
|
-
const { title, content, contentURI, buttons, size, showLoadingIndicator } = { ...dialogDefaults, ...options };
|
|
864
|
+
const { title, content, contentURI, buttons, size, showLoadingIndicator, contentMethod, contentData, contentHeaders } = { ...dialogDefaults, ...options };
|
|
862
865
|
|
|
863
866
|
const wrapper = document.createElement('div');
|
|
864
867
|
wrapper.innerHTML = _html_dialog_html_raw__WEBPACK_IMPORTED_MODULE_1__.trim();
|
|
@@ -1070,7 +1073,55 @@ const createDialog = (options) => {
|
|
|
1070
1073
|
};
|
|
1071
1074
|
|
|
1072
1075
|
const fetchContent = async (uri) => {
|
|
1073
|
-
const
|
|
1076
|
+
const method = (contentMethod || 'GET').toUpperCase();
|
|
1077
|
+
|
|
1078
|
+
// Always allow custom headers; we only add Content-Type when we can infer it
|
|
1079
|
+
const headers = { ...(contentHeaders || {}) };
|
|
1080
|
+
const hasContentType = Object.keys(headers).some((k) => k.toLowerCase() === 'content-type');
|
|
1081
|
+
|
|
1082
|
+
/**
|
|
1083
|
+
* Build RequestInit depending on method and contentData type.
|
|
1084
|
+
* We avoid setting Content-Type for FormData and raw string/Blob payloads,
|
|
1085
|
+
* unless the caller explicitly provided it via contentHeaders.
|
|
1086
|
+
*/
|
|
1087
|
+
const init = { method };
|
|
1088
|
+
|
|
1089
|
+
if (method === 'POST') {
|
|
1090
|
+
let body = undefined;
|
|
1091
|
+
|
|
1092
|
+
const isFormData = typeof FormData !== 'undefined' && contentData instanceof FormData;
|
|
1093
|
+
const isURLSearchParams = typeof URLSearchParams !== 'undefined' && contentData instanceof URLSearchParams;
|
|
1094
|
+
const isBlob = typeof Blob !== 'undefined' && contentData instanceof Blob;
|
|
1095
|
+
const isString = typeof contentData === 'string';
|
|
1096
|
+
const isPlainObject = contentData && typeof contentData === 'object' && !isFormData && !isURLSearchParams && !isBlob;
|
|
1097
|
+
|
|
1098
|
+
if (isFormData) {
|
|
1099
|
+
body = contentData;
|
|
1100
|
+
// Do not set Content-Type for FormData; browser will set the boundary
|
|
1101
|
+
} else if (isURLSearchParams) {
|
|
1102
|
+
body = contentData;
|
|
1103
|
+
if (!hasContentType) headers['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';
|
|
1104
|
+
} else if (isPlainObject) {
|
|
1105
|
+
body = JSON.stringify(contentData);
|
|
1106
|
+
if (!hasContentType) headers['Content-Type'] = 'application/json';
|
|
1107
|
+
} else if (isString || isBlob) {
|
|
1108
|
+
body = contentData;
|
|
1109
|
+
// Content-Type left to caller if needed
|
|
1110
|
+
} else if (contentData != null) {
|
|
1111
|
+
// Fallback: try send as-is
|
|
1112
|
+
body = contentData;
|
|
1113
|
+
}
|
|
1114
|
+
|
|
1115
|
+
if (body !== undefined) {
|
|
1116
|
+
init.body = body;
|
|
1117
|
+
}
|
|
1118
|
+
}
|
|
1119
|
+
|
|
1120
|
+
if (Object.keys(headers).length > 0) {
|
|
1121
|
+
init.headers = headers;
|
|
1122
|
+
}
|
|
1123
|
+
|
|
1124
|
+
const response = await fetch(uri, init);
|
|
1074
1125
|
if (!response.ok) throw new Error(`Failed to fetch content: ${response.statusText}`);
|
|
1075
1126
|
return response.text();
|
|
1076
1127
|
};
|
|
@@ -1695,4 +1746,4 @@ APX.is_numeric = (n) => {
|
|
|
1695
1746
|
var __webpack_exports__default = __webpack_exports__["default"];
|
|
1696
1747
|
export { __webpack_exports__default as default };
|
|
1697
1748
|
|
|
1698
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFJLHNFQUFpQjtBQUNyQixJQUFJLDBFQUFtQjtBQUN2QjtBQUNBO0FBQ0E7QUFDQSxjQUFjLHdEQUFPO0FBQ3JCLGFBQWEsa0VBQU07QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpRUFBZSxHQUFHLEUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYXBwaXVzLWZyL2FweC8uL21vZHVsZXMvZGlhbG9nL2Nzcy9kaWFsb2cuY3NzIiwid2VicGFjazovL0BhcHBpdXMtZnIvYXB4Ly4vbW9kdWxlcy90cmlzdGF0ZS9jc3MvdHJpc3RhdGUuY3NzIiwid2VicGFjazovL0BhcHBpdXMtZnIvYXB4Ly4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qcyIsIndlYnBhY2s6Ly9AYXBwaXVzLWZyL2FweC8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9nZXRVcmwuanMiLCJ3ZWJwYWNrOi8vQGFwcGl1cy1mci9hcHgvLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qcyIsIndlYnBhY2s6Ly9AYXBwaXVzLWZyL2FweC8uL21vZHVsZXMvZGlhbG9nL2h0bWwvZGlhbG9nLmh0bWwiLCJ3ZWJwYWNrOi8vQGFwcGl1cy1mci9hcHgvLi9tb2R1bGVzL2RpYWxvZy9jc3MvZGlhbG9nLmNzcz9hNTY3Iiwid2VicGFjazovL0BhcHBpdXMtZnIvYXB4Ly4vbW9kdWxlcy90cmlzdGF0ZS9jc3MvdHJpc3RhdGUuY3NzP2EwOTQiLCJ3ZWJwYWNrOi8vQGFwcGl1cy1mci9hcHgvLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanMiLCJ3ZWJwYWNrOi8vQGFwcGl1cy1mci9hcHgvLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzIiwid2VicGFjazovL0BhcHBpdXMtZnIvYXB4Ly4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzIiwid2VicGFjazovL0BhcHBpdXMtZnIvYXB4Ly4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzIiwid2VicGFjazovL0BhcHBpdXMtZnIvYXB4Ly4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanMiLCJ3ZWJwYWNrOi8vQGFwcGl1cy1mci9hcHgvLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qcyIsIndlYnBhY2s6Ly9AYXBwaXVzLWZyL2FweC8uL21vZHVsZXMvY29tbW9uLm1qcyIsIndlYnBhY2s6Ly9AYXBwaXVzLWZyL2FweC8uL21vZHVsZXMvZGlhbG9nL2RpYWxvZy5tanMiLCJ3ZWJwYWNrOi8vQGFwcGl1cy1mci9hcHgvLi9tb2R1bGVzL2xpc3Rlbi9saXN0ZW4ubWpzIiwid2VicGFjazovL0BhcHBpdXMtZnIvYXB4Ly4vbW9kdWxlcy90cmlzdGF0ZS90cmlzdGF0ZS5tanMiLCJ3ZWJwYWNrOi8vQGFwcGl1cy1mci9hcHgvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vQGFwcGl1cy1mci9hcHgvd2VicGFjay9ydW50aW1lL2NvbXBhdCBnZXQgZGVmYXVsdCBleHBvcnQiLCJ3ZWJwYWNrOi8vQGFwcGl1cy1mci9hcHgvd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL0BhcHBpdXMtZnIvYXB4L3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vQGFwcGl1cy1mci9hcHgvd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2s6Ly9AYXBwaXVzLWZyL2FweC93ZWJwYWNrL3J1bnRpbWUvanNvbnAgY2h1bmsgbG9hZGluZyIsIndlYnBhY2s6Ly9AYXBwaXVzLWZyL2FweC93ZWJwYWNrL3J1bnRpbWUvbm9uY2UiLCJ3ZWJwYWNrOi8vQGFwcGl1cy1mci9hcHgvLi9BUFgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIGAvKiBEaWFsb2cgc3R5bGluZyAqL1xyXG4uQVBYLWRpYWxvZyB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgei1pbmRleDogMTAwMjtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB0b3A6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIG92ZXJmbG93OiBhdXRvO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xyXG4gICAgLyogRGltbWVkIGJhY2tncm91bmQgZm9yIGZvY3VzIG9uIGRpYWxvZyAqL1xyXG59XHJcblxyXG4uQVBYLWRpYWxvZy1jb250ZW50IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XHJcbiAgICBwYWRkaW5nOiA0MHB4O1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgICBtaW4td2lkdGg6IDMwMHB4O1xyXG4gICAgbWF4LXdpZHRoOiA4MCU7XHJcbiAgICBtYXJnaW46IGF1dG87XHJcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgICBib3gtc2hhZG93OiAwcHggNnB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xyXG4gICAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBzYW5zLXNlcmlmO1xyXG59XHJcblxyXG5oMi5BUFgtZGlhbG9nLXRpdGxle1xyXG4gICAgbWFyZ2luLXRvcDowO1xyXG59XHJcblxyXG4uQVBYLWNsb3NlLWRpYWxvZyB7XHJcbiAgICBjb2xvcjogI2FhYTtcclxuICAgIGZsb2F0OiByaWdodDtcclxuICAgIGZvbnQtc2l6ZTogMjRweDtcclxuICAgIG1hcmdpbi10b3A6IC0xMHB4O1xyXG4gICAgLyogQWRqdXN0IHBvc2l0aW9uaW5nICovXHJcbiAgICBtYXJnaW4tcmlnaHQ6IC0xMHB4O1xyXG59XHJcblxyXG4uQVBYLWNsb3NlLWRpYWxvZzpob3ZlcixcclxuLkFQWC1jbG9zZS1kaWFsb2c6Zm9jdXMge1xyXG4gICAgY29sb3I6ICMzMzM7XHJcbiAgICAvKiBEYXJrZXIgY29sb3Igb24gaG92ZXIvZm9jdXMgKi9cclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuLyogSW5wdXQgZmllbGRzIHN0eWxpbmcgKi9cclxuLkFQWC1kaWFsb2ctY29udGVudCBpbnB1dFt0eXBlPVwidGV4dFwiXSxcclxuLkFQWC1kaWFsb2ctY29udGVudCBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxyXG4uQVBYLWRpYWxvZy1jb250ZW50IGlucHV0W3R5cGU9XCJkYXRlXCJdLFxyXG4uQVBYLWRpYWxvZy1jb250ZW50IGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHBhZGRpbmc6IDEwcHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcclxuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAgIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgc2Fucy1zZXJpZjtcclxuICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4zcztcclxufVxyXG5cclxuLkFQWC1kaWFsb2ctY29udGVudCBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyxcclxuLkFQWC1kaWFsb2ctY29udGVudCBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmZvY3VzLFxyXG4uQVBYLWRpYWxvZy1jb250ZW50IGlucHV0W3R5cGU9XCJkYXRlXCJdOmZvY3VzLFxyXG4uQVBYLWRpYWxvZy1jb250ZW50IGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTpmb2N1cyB7XHJcbiAgICBib3JkZXItY29sb3I6ICMyQzNFNTA7XHJcbiAgICAvKiBEZWVwIEJsdWUgQ29sb3IgKi9cclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbn1cclxuXHJcbi8qIEJ1dHRvbiBpbiB0aGUgZGlhbG9nICovXHJcbi5BUFgtZGlhbG9nLWJ1dHRvbi1jb250YWluZXIgYnV0dG9uIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMyQzNFNTA7XHJcbiAgICBjb2xvcjogI0VDRjBGMTtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIHBhZGRpbmc6IDEwcHggMjBweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XHJcbiAgICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xyXG59XHJcblxyXG4uQVBYLWRpYWxvZy1idXR0b24tY29udGFpbmVyIGJ1dHRvbjpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ0OTVFO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xyXG4gICAgYm94LXNoYWRvdzogMCA0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XHJcbn1cclxuXHJcbi5BUFgtZGlhbG9nLWJ1dHRvbi1jb250YWluZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGdhcDogMTBweDtcclxuICAgIG1hcmdpbi10b3A6MWVtO1xyXG4gICAgLyogc3BhY2luZyBiZXR3ZWVuIGJ1dHRvbnMgKi9cclxufVxyXG5cclxuLyogTG9hZGluZyBpbmRpY2F0b3IgKi9cclxuLkFQWC1kaWFsb2ctbG9hZGluZy1pbmRpY2F0b3Ige1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGhlaWdodDogMTAwcHg7XHJcbiAgICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLkFQWC1kaWFsb2ctbG9hZGluZy1pbmRpY2F0b3I6OmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIHdpZHRoOiA0MHB4O1xyXG4gICAgaGVpZ2h0OiA0MHB4O1xyXG4gICAgYm9yZGVyOiA0cHggc29saWQgI2YzZjNmMztcclxuICAgIGJvcmRlci10b3A6IDRweCBzb2xpZCAjMkMzRTUwO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgYW5pbWF0aW9uOiBBUFgtZGlhbG9nLXNwaW4gMXMgbGluZWFyIGluZmluaXRlO1xyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIEFQWC1kaWFsb2ctc3BpbiB7XHJcbiAgICAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XHJcbiAgICAxMDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfVxyXG59XHJcbi5BUFgtZGlhbG9nLWJ1dHRvbi1kaXNhYmxlZCB7XHJcbiAgICBvcGFjaXR5OiAwLjU7XHJcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkICFpbXBvcnRhbnQ7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTVhNWE2ICFpbXBvcnRhbnQ7IC8qIEdyYXllZCBvdXQgY29sb3IgKi9cclxuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XHJcbiAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcclxufVxyXG5cclxuLkFQWC1kaWFsb2ctYnV0dG9uLWRpc2FibGVkOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM5NWE1YTYgIWltcG9ydGFudDsgLyogS2VlcCBncmF5IG9uIGhvdmVyICovXHJcbiAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcclxufVxyXG5cclxuLyogQWRkIGEgc3VidGxlIHN0cmlrZXRocm91Z2ggZWZmZWN0ICovXHJcbi5BUFgtZGlhbG9nLWJ1dHRvbi1kaXNhYmxlZDo6YWZ0ZXIge1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDUwJTtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMXB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpO1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTVkZWcpO1xyXG59YCwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9tb2R1bGVzL2RpYWxvZy9jc3MvZGlhbG9nLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQSxtQkFBbUI7QUFDbkI7SUFDSSxhQUFhO0lBQ2IsZUFBZTtJQUNmLGFBQWE7SUFDYixPQUFPO0lBQ1AsTUFBTTtJQUNOLFdBQVc7SUFDWCxZQUFZO0lBQ1osY0FBYztJQUNkLG9DQUFvQztJQUNwQywwQ0FBMEM7QUFDOUM7O0FBRUE7SUFDSSx5QkFBeUI7SUFDekIsYUFBYTtJQUNiLFlBQVk7SUFDWixXQUFXO0lBQ1gsZ0JBQWdCO0lBQ2hCLGNBQWM7SUFDZCxZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLDJDQUEyQztJQUMzQyxnREFBZ0Q7QUFDcEQ7O0FBRUE7SUFDSSxZQUFZO0FBQ2hCOztBQUVBO0lBQ0ksV0FBVztJQUNYLFlBQVk7SUFDWixlQUFlO0lBQ2YsaUJBQWlCO0lBQ2pCLHVCQUF1QjtJQUN2QixtQkFBbUI7QUFDdkI7O0FBRUE7O0lBRUksV0FBVztJQUNYLGdDQUFnQztJQUNoQyxlQUFlO0FBQ25COztBQUVBLHlCQUF5QjtBQUN6Qjs7OztJQUlJLFdBQVc7SUFDWCxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLHNCQUFzQjtJQUN0QixrQkFBa0I7SUFDbEIsZ0RBQWdEO0lBQ2hELGVBQWU7SUFDZixzQkFBc0I7SUFDdEIsNkJBQTZCO0FBQ2pDOztBQUVBOzs7O0lBSUkscUJBQXFCO0lBQ3JCLG9CQUFvQjtJQUNwQixhQUFhO0FBQ2pCOztBQUVBLHlCQUF5QjtBQUN6QjtJQUNJLGtCQUFrQjtJQUNsQix5QkFBeUI7SUFDekIsY0FBYztJQUNkLFlBQVk7SUFDWixrQkFBa0I7SUFDbEIsa0JBQWtCO0lBQ2xCLGVBQWU7SUFDZixlQUFlO0lBQ2YseUJBQXlCO0lBQ3pCLHdDQUF3QztBQUM1Qzs7QUFFQTtJQUNJLHlCQUF5QjtJQUN6QiwyQkFBMkI7SUFDM0IseUNBQXlDO0FBQzdDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLFNBQVM7SUFDVCxjQUFjO0lBQ2QsNEJBQTRCO0FBQ2hDOztBQUVBLHNCQUFzQjtBQUN0QjtJQUNJLGFBQWE7SUFDYix1QkFBdUI7SUFDdkIsbUJBQW1CO0lBQ25CLGFBQWE7SUFDYixXQUFXO0FBQ2Y7O0FBRUE7SUFDSSxXQUFXO0lBQ1gsV0FBVztJQUNYLFlBQVk7SUFDWix5QkFBeUI7SUFDekIsNkJBQTZCO0lBQzdCLGtCQUFrQjtJQUNsQiw2Q0FBNkM7QUFDakQ7O0FBRUE7SUFDSSxLQUFLLHVCQUF1QixFQUFFO0lBQzlCLE9BQU8seUJBQXlCLEVBQUU7QUFDdEM7QUFDQTtJQUNJLFlBQVk7SUFDWiw4QkFBOEI7SUFDOUIsb0NBQW9DLEVBQUUscUJBQXFCO0lBQzNELDJCQUEyQjtJQUMzQix5QkFBeUI7SUFDekIsMEJBQTBCO0FBQzlCOztBQUVBO0lBQ0ksb0NBQW9DLEVBQUUsdUJBQXVCO0lBQzdELDBCQUEwQjtBQUM5Qjs7QUFFQSxzQ0FBc0M7QUFDdEM7SUFDSSxXQUFXO0lBQ1gsa0JBQWtCO0lBQ2xCLFFBQVE7SUFDUixPQUFPO0lBQ1AsV0FBVztJQUNYLFdBQVc7SUFDWCxvQ0FBb0M7SUFDcEMsd0JBQXdCO0FBQzVCXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIi8qIERpYWxvZyBzdHlsaW5nICovXFxyXFxuLkFQWC1kaWFsb2cge1xcclxcbiAgICBkaXNwbGF5OiBub25lO1xcclxcbiAgICBwb3NpdGlvbjogZml4ZWQ7XFxyXFxuICAgIHotaW5kZXg6IDEwMDI7XFxyXFxuICAgIGxlZnQ6IDA7XFxyXFxuICAgIHRvcDogMDtcXHJcXG4gICAgd2lkdGg6IDEwMCU7XFxyXFxuICAgIGhlaWdodDogMTAwJTtcXHJcXG4gICAgb3ZlcmZsb3c6IGF1dG87XFxyXFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcXHJcXG4gICAgLyogRGltbWVkIGJhY2tncm91bmQgZm9yIGZvY3VzIG9uIGRpYWxvZyAqL1xcclxcbn1cXHJcXG5cXHJcXG4uQVBYLWRpYWxvZy1jb250ZW50IHtcXHJcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcXHJcXG4gICAgcGFkZGluZzogNDBweDtcXHJcXG4gICAgYm9yZGVyOiBub25lO1xcclxcbiAgICB3aWR0aDogYXV0bztcXHJcXG4gICAgbWluLXdpZHRoOiAzMDBweDtcXHJcXG4gICAgbWF4LXdpZHRoOiA4MCU7XFxyXFxuICAgIG1hcmdpbjogYXV0bztcXHJcXG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xcclxcbiAgICBib3gtc2hhZG93OiAwcHggNnB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xcclxcbiAgICBmb250LWZhbWlseTogJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIHNhbnMtc2VyaWY7XFxyXFxufVxcclxcblxcclxcbmgyLkFQWC1kaWFsb2ctdGl0bGV7XFxyXFxuICAgIG1hcmdpbi10b3A6MDtcXHJcXG59XFxyXFxuXFxyXFxuLkFQWC1jbG9zZS1kaWFsb2cge1xcclxcbiAgICBjb2xvcjogI2FhYTtcXHJcXG4gICAgZmxvYXQ6IHJpZ2h0O1xcclxcbiAgICBmb250LXNpemU6IDI0cHg7XFxyXFxuICAgIG1hcmdpbi10b3A6IC0xMHB4O1xcclxcbiAgICAvKiBBZGp1c3QgcG9zaXRpb25pbmcgKi9cXHJcXG4gICAgbWFyZ2luLXJpZ2h0OiAtMTBweDtcXHJcXG59XFxyXFxuXFxyXFxuLkFQWC1jbG9zZS1kaWFsb2c6aG92ZXIsXFxyXFxuLkFQWC1jbG9zZS1kaWFsb2c6Zm9jdXMge1xcclxcbiAgICBjb2xvcjogIzMzMztcXHJcXG4gICAgLyogRGFya2VyIGNvbG9yIG9uIGhvdmVyL2ZvY3VzICovXFxyXFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXHJcXG59XFxyXFxuXFxyXFxuLyogSW5wdXQgZmllbGRzIHN0eWxpbmcgKi9cXHJcXG4uQVBYLWRpYWxvZy1jb250ZW50IGlucHV0W3R5cGU9XFxcInRleHRcXFwiXSxcXHJcXG4uQVBYLWRpYWxvZy1jb250ZW50IGlucHV0W3R5cGU9XFxcIm51bWJlclxcXCJdLFxcclxcbi5BUFgtZGlhbG9nLWNvbnRlbnQgaW5wdXRbdHlwZT1cXFwiZGF0ZVxcXCJdLFxcclxcbi5BUFgtZGlhbG9nLWNvbnRlbnQgaW5wdXRbdHlwZT1cXFwiZGF0ZXRpbWUtbG9jYWxcXFwiXSB7XFxyXFxuICAgIHdpZHRoOiAxMDAlO1xcclxcbiAgICBwYWRkaW5nOiAxMHB4O1xcclxcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xcclxcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xcclxcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XFxyXFxuICAgIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgc2Fucy1zZXJpZjtcXHJcXG4gICAgZm9udC1zaXplOiAxNnB4O1xcclxcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcclxcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4zcztcXHJcXG59XFxyXFxuXFxyXFxuLkFQWC1kaWFsb2ctY29udGVudCBpbnB1dFt0eXBlPVxcXCJ0ZXh0XFxcIl06Zm9jdXMsXFxyXFxuLkFQWC1kaWFsb2ctY29udGVudCBpbnB1dFt0eXBlPVxcXCJudW1iZXJcXFwiXTpmb2N1cyxcXHJcXG4uQVBYLWRpYWxvZy1jb250ZW50IGlucHV0W3R5cGU9XFxcImRhdGVcXFwiXTpmb2N1cyxcXHJcXG4uQVBYLWRpYWxvZy1jb250ZW50IGlucHV0W3R5cGU9XFxcImRhdGV0aW1lLWxvY2FsXFxcIl06Zm9jdXMge1xcclxcbiAgICBib3JkZXItY29sb3I6ICMyQzNFNTA7XFxyXFxuICAgIC8qIERlZXAgQmx1ZSBDb2xvciAqL1xcclxcbiAgICBvdXRsaW5lOiBub25lO1xcclxcbn1cXHJcXG5cXHJcXG4vKiBCdXR0b24gaW4gdGhlIGRpYWxvZyAqL1xcclxcbi5BUFgtZGlhbG9nLWJ1dHRvbi1jb250YWluZXIgYnV0dG9uIHtcXHJcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcclxcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMkMzRTUwO1xcclxcbiAgICBjb2xvcjogI0VDRjBGMTtcXHJcXG4gICAgYm9yZGVyOiBub25lO1xcclxcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XFxyXFxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcXHJcXG4gICAgZm9udC1zaXplOiAxNnB4O1xcclxcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxyXFxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XFxyXFxuICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMSk7XFxyXFxufVxcclxcblxcclxcbi5BUFgtZGlhbG9nLWJ1dHRvbi1jb250YWluZXIgYnV0dG9uOmhvdmVyIHtcXHJcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzM0NDk1RTtcXHJcXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xcclxcbiAgICBib3gtc2hhZG93OiAwIDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcXHJcXG59XFxyXFxuXFxyXFxuLkFQWC1kaWFsb2ctYnV0dG9uLWNvbnRhaW5lciB7XFxyXFxuICAgIGRpc3BsYXk6IGZsZXg7XFxyXFxuICAgIGdhcDogMTBweDtcXHJcXG4gICAgbWFyZ2luLXRvcDoxZW07XFxyXFxuICAgIC8qIHNwYWNpbmcgYmV0d2VlbiBidXR0b25zICovXFxyXFxufVxcclxcblxcclxcbi8qIExvYWRpbmcgaW5kaWNhdG9yICovXFxyXFxuLkFQWC1kaWFsb2ctbG9hZGluZy1pbmRpY2F0b3Ige1xcclxcbiAgICBkaXNwbGF5OiBmbGV4O1xcclxcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXHJcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXHJcXG4gICAgaGVpZ2h0OiAxMDBweDtcXHJcXG4gICAgd2lkdGg6IDEwMCU7XFxyXFxufVxcclxcblxcclxcbi5BUFgtZGlhbG9nLWxvYWRpbmctaW5kaWNhdG9yOjpiZWZvcmUge1xcclxcbiAgICBjb250ZW50OiAnJztcXHJcXG4gICAgd2lkdGg6IDQwcHg7XFxyXFxuICAgIGhlaWdodDogNDBweDtcXHJcXG4gICAgYm9yZGVyOiA0cHggc29saWQgI2YzZjNmMztcXHJcXG4gICAgYm9yZGVyLXRvcDogNHB4IHNvbGlkICMyQzNFNTA7XFxyXFxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcXHJcXG4gICAgYW5pbWF0aW9uOiBBUFgtZGlhbG9nLXNwaW4gMXMgbGluZWFyIGluZmluaXRlO1xcclxcbn1cXHJcXG5cXHJcXG5Aa2V5ZnJhbWVzIEFQWC1kaWFsb2ctc3BpbiB7XFxyXFxuICAgIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cXHJcXG4gICAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH1cXHJcXG59XFxyXFxuLkFQWC1kaWFsb2ctYnV0dG9uLWRpc2FibGVkIHtcXHJcXG4gICAgb3BhY2l0eTogMC41O1xcclxcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkICFpbXBvcnRhbnQ7XFxyXFxuICAgIGJhY2tncm91bmQtY29sb3I6ICM5NWE1YTYgIWltcG9ydGFudDsgLyogR3JheWVkIG91dCBjb2xvciAqL1xcclxcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XFxyXFxuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XFxyXFxuICAgIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xcclxcbn1cXHJcXG5cXHJcXG4uQVBYLWRpYWxvZy1idXR0b24tZGlzYWJsZWQ6aG92ZXIge1xcclxcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTVhNWE2ICFpbXBvcnRhbnQ7IC8qIEtlZXAgZ3JheSBvbiBob3ZlciAqL1xcclxcbiAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcXHJcXG59XFxyXFxuXFxyXFxuLyogQWRkIGEgc3VidGxlIHN0cmlrZXRocm91Z2ggZWZmZWN0ICovXFxyXFxuLkFQWC1kaWFsb2ctYnV0dG9uLWRpc2FibGVkOjphZnRlciB7XFxyXFxuICAgIGNvbnRlbnQ6ICcnO1xcclxcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxyXFxuICAgIHRvcDogNTAlO1xcclxcbiAgICBsZWZ0OiAwO1xcclxcbiAgICB3aWR0aDogMTAwJTtcXHJcXG4gICAgaGVpZ2h0OiAxcHg7XFxyXFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yKTtcXHJcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTVkZWcpO1xcclxcbn1cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9HRVRfVVJMX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2dldFVybC5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8wX19fID0gbmV3IFVSTChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyN2h0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjclMjB3aWR0aCUzRCUyNzMyJTI3JTIwaGVpZ2h0JTNEJTI3MzIlMjclM0UlM0NwYXRoJTIwJTIwZmlsbCUzRCUyMiUyM2NjY2NjYyUyMiUyMGQlM0QlMjJNMjUuMTA3JTIwMzIuMDMwaC0xOC4yMTRjLTMuNDU2JTIwMC02LjI2OC0yLjgxLTYuMjY4LTYuMjY0di0xOS41MjljMC0zLjQ1NiUyMDIuODEyLTYuMjY4JTIwNi4yNjgtNi4yNjhoMTguMjE0YzMuNDU2JTIwMCUyMDYuMjY4JTIwMi44MTIlMjA2LjI2OCUyMDYuMjY4djE5LjUyOWMwJTIwMy40NTItMi44MTIlMjA2LjI2NC02LjI2OCUyMDYuMjY0ek02Ljg5MyUyMDEuODVjLTIuNDE5JTIwMC00LjM4NiUyMDEuOTY3LTQuMzg2JTIwNC4zODZ2MTkuNTI5YzAlMjAyLjQxNyUyMDEuOTY3JTIwNC4zODIlMjA0LjM4NiUyMDQuMzgyaDE4LjIxNGMyLjQxOSUyMDAlMjA0LjM4Ni0xLjk2NSUyMDQuMzg2LTQuMzgydi0xOS41MjljMC0yLjQxOS0xLjk2Ny00LjM4Ni00LjM4Ni00LjM4NmgtMTguMjE0eiUyMiUzRSUzQy9wYXRoJTNFJTNDL3N2ZyUzRVwiLCBpbXBvcnQubWV0YS51cmwpO1xudmFyIF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8xX19fID0gbmV3IFVSTChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyN2h0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjclMjB3aWR0aCUzRCUyNzMyJTI3JTIwaGVpZ2h0JTNEJTI3MzIlMjclM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzA2NTRiYSUyMiUyMGQlM0QlMjJNMC41NDMlMjA1LjY0N2MwLTMuMTE5JTIwMi41MzEtNS42NDclMjA1LjY1LTUuNjQ3aDE5LjMwOWMzLjEyJTIwMCUyMDUuNjUlMjAyLjUxMSUyMDUuNjUlMjA1LjY0N3YyMC43MDVjMCUyMDMuMTE5LTIuNTMxJTIwNS42NDctNS42NSUyMDUuNjQ3aC0xOS4zMDljLTMuMTIlMjAwLTUuNjUtMi41MTEtNS42NS01LjY0N3YtMjAuNzA1ek01LjMxMyUyMDE3LjU4N2w3LjAzOSUyMDYuODM5JTIwMTMuODMxLTEzLjQzOS0yLjYzNi0yLjU2MS0xMC45MjklMjAxMC42Mi00LjQ0Mi00LjMxNy0yLjg2MiUyMDIuODU4eiUyMiUzRSUzQy9wYXRoJTNFJTNDL3N2ZyUzRVwiLCBpbXBvcnQubWV0YS51cmwpO1xudmFyIF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8yX19fID0gbmV3IFVSTChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0MlM0Z4bWwlMjB2ZXJzaW9uJTNEJTIyMS4wJTIyJTIwZW5jb2RpbmclM0QlMjJVVEYtOCUyMiUzRiUzRSUzQ3N2ZyUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDMyJTIwMzIlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUzQ3BhdGglMjBkJTNEJTIybTAuNTQzJTIwNS42NDdjMC0zLjExOSUyMDIuNTMxLTUuNjQ3JTIwNS42NS01LjY0N2gxOS4zMDljMy4xMiUyMDAlMjA1LjY1JTIwMi41MTElMjA1LjY1JTIwNS42NDd2MjAuNzA1YzAlMjAzLjExOS0yLjUzMSUyMDUuNjQ3LTUuNjUlMjA1LjY0N2gtMTkuMzA5Yy0zLjEyJTIwMC01LjY1LTIuNTExLTUuNjUtNS42NDd2LTIwLjcwNXolMjIlMjBmaWxsJTNEJTIyJTIzZjAwJTIyJTJGJTNFJTNDcGF0aCUyMGQlM0QlMjJtOCUyMDglMjAxNiUyMDE2JTIyJTIwc3Ryb2tlJTNEJTIyJTIzZmZmJTIyJTIwc3Ryb2tlLXdpZHRoJTNEJTIyMiUyMiUyRiUzRSUzQ3BhdGglMjBkJTNEJTIyTTI0JTIwOEw4JTIwMjQlMjIlMjBzdHJva2UlM0QlMjIlMjNmZmYlMjIlMjBzdHJva2Utd2lkdGglM0QlMjIyJTIyJTJGJTNFJTNDJTJGc3ZnJTNFXCIsIGltcG9ydC5tZXRhLnVybCk7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG52YXIgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfMF9fXyA9IF9fX0NTU19MT0FERVJfR0VUX1VSTF9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzBfX18pO1xudmFyIF9fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzFfX18gPSBfX19DU1NfTE9BREVSX0dFVF9VUkxfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8xX19fKTtcbnZhciBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8yX19fID0gX19fQ1NTX0xPQURFUl9HRVRfVVJMX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfMl9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgYC5hcHgtdHJpc3RhdGUge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG1pbi13aWR0aDoxM3B4O1xyXG4gICAgbWluLWhlaWdodDoxM3B4O1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICBib3JkZXItcmFkaXVzOjNweDtcclxufVxyXG4uYXB4LXRyaXN0YXRlLnVuY2hlY2tlZCB7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJHtfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8wX19ffSk7XHJcbn1cclxuLmFweC10cmlzdGF0ZS5jaGVja2VkIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgke19fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzFfX199KTtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcbn1cclxuLmFweC10cmlzdGF0ZS5jcm9zc2VkIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgke19fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzJfX199KTtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcbn1gLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL21vZHVsZXMvdHJpc3RhdGUvY3NzL3RyaXN0YXRlLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTtJQUNJLHFCQUFxQjtJQUNyQixzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCLGVBQWU7SUFDZixrQkFBa0I7SUFDbEIsY0FBYztJQUNkLGVBQWU7SUFDZix3QkFBd0I7SUFDeEIsdUJBQXVCO0lBQ3ZCLGlCQUFpQjtBQUNyQjtBQUNBO0lBQ0kseURBQXlsQjtBQUM3bEI7QUFDQTtJQUNJLHlEQUE2ZTtJQUM3ZSw0QkFBNEI7SUFDNUIsMkJBQTJCO0FBQy9CO0FBQ0E7SUFDSSx5REFBc25CO0lBQ3RuQiw0QkFBNEI7SUFDNUIsMkJBQTJCO0FBQy9CXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIi5hcHgtdHJpc3RhdGUge1xcclxcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxyXFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxyXFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXHJcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcclxcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxyXFxuICAgIG1pbi13aWR0aDoxM3B4O1xcclxcbiAgICBtaW4taGVpZ2h0OjEzcHg7XFxyXFxuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcXHJcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XFxyXFxuICAgIGJvcmRlci1yYWRpdXM6M3B4O1xcclxcbn1cXHJcXG4uYXB4LXRyaXN0YXRlLnVuY2hlY2tlZCB7XFxyXFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTI3aHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyNyUyMHdpZHRoJTNEJTI3MzIlMjclMjBoZWlnaHQlM0QlMjczMiUyNyUzRSUzQ3BhdGglMjAlMjBmaWxsJTNEJTIyJTIzY2NjY2NjJTIyJTIwZCUzRCUyMk0yNS4xMDclMjAzMi4wMzBoLTE4LjIxNGMtMy40NTYlMjAwLTYuMjY4LTIuODEtNi4yNjgtNi4yNjR2LTE5LjUyOWMwLTMuNDU2JTIwMi44MTItNi4yNjglMjA2LjI2OC02LjI2OGgxOC4yMTRjMy40NTYlMjAwJTIwNi4yNjglMjAyLjgxMiUyMDYuMjY4JTIwNi4yNjh2MTkuNTI5YzAlMjAzLjQ1Mi0yLjgxMiUyMDYuMjY0LTYuMjY4JTIwNi4yNjR6TTYuODkzJTIwMS44NWMtMi40MTklMjAwLTQuMzg2JTIwMS45NjctNC4zODYlMjA0LjM4NnYxOS41MjljMCUyMDIuNDE3JTIwMS45NjclMjA0LjM4MiUyMDQuMzg2JTIwNC4zODJoMTguMjE0YzIuNDE5JTIwMCUyMDQuMzg2LTEuOTY1JTIwNC4zODYtNC4zODJ2LTE5LjUyOWMwLTIuNDE5LTEuOTY3LTQuMzg2LTQuMzg2LTQuMzg2aC0xOC4yMTR6JTIyJTNFJTNDL3BhdGglM0UlM0Mvc3ZnJTNFJyk7XFxyXFxufVxcclxcbi5hcHgtdHJpc3RhdGUuY2hlY2tlZCB7XFxyXFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTI3aHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyNyUyMHdpZHRoJTNEJTI3MzIlMjclMjBoZWlnaHQlM0QlMjczMiUyNyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzMDY1NGJhJTIyJTIwZCUzRCUyMk0wLjU0MyUyMDUuNjQ3YzAtMy4xMTklMjAyLjUzMS01LjY0NyUyMDUuNjUtNS42NDdoMTkuMzA5YzMuMTIlMjAwJTIwNS42NSUyMDIuNTExJTIwNS42NSUyMDUuNjQ3djIwLjcwNWMwJTIwMy4xMTktMi41MzElMjA1LjY0Ny01LjY1JTIwNS42NDdoLTE5LjMwOWMtMy4xMiUyMDAtNS42NS0yLjUxMS01LjY1LTUuNjQ3di0yMC43MDV6TTUuMzEzJTIwMTcuNTg3bDcuMDM5JTIwNi44MzklMjAxMy44MzEtMTMuNDM5LTIuNjM2LTIuNTYxLTEwLjkyOSUyMDEwLjYyLTQuNDQyLTQuMzE3LTIuODYyJTIwMi44NTh6JTIyJTNFJTNDL3BhdGglM0UlM0Mvc3ZnJTNFJyk7XFxyXFxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XFxyXFxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcXHJcXG59XFxyXFxuLmFweC10cmlzdGF0ZS5jcm9zc2VkIHtcXHJcXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWwsJTNDJTNGeG1sJTIwdmVyc2lvbiUzRCUyMjEuMCUyMiUyMGVuY29kaW5nJTNEJTIyVVRGLTglMjIlM0YlM0UlM0NzdmclMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAzMiUyMDMyJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlM0NwYXRoJTIwZCUzRCUyMm0wLjU0MyUyMDUuNjQ3YzAtMy4xMTklMjAyLjUzMS01LjY0NyUyMDUuNjUtNS42NDdoMTkuMzA5YzMuMTIlMjAwJTIwNS42NSUyMDIuNTExJTIwNS42NSUyMDUuNjQ3djIwLjcwNWMwJTIwMy4xMTktMi41MzElMjA1LjY0Ny01LjY1JTIwNS42NDdoLTE5LjMwOWMtMy4xMiUyMDAtNS42NS0yLjUxMS01LjY1LTUuNjQ3di0yMC43MDV6JTIyJTIwZmlsbCUzRCUyMiUyM2YwMCUyMiUyRiUzRSUzQ3BhdGglMjBkJTNEJTIybTglMjA4JTIwMTYlMjAxNiUyMiUyMHN0cm9rZSUzRCUyMiUyM2ZmZiUyMiUyMHN0cm9rZS13aWR0aCUzRCUyMjIlMjIlMkYlM0UlM0NwYXRoJTIwZCUzRCUyMk0yNCUyMDhMOCUyMDI0JTIyJTIwc3Ryb2tlJTNEJTIyJTIzZmZmJTIyJTIwc3Ryb2tlLXdpZHRoJTNEJTIyMiUyMiUyRiUzRSUzQyUyRnN2ZyUzRScpO1xcclxcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xcclxcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XFxyXFxufVwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCJcInVzZSBzdHJpY3RcIjtcblxuLypcbiAgTUlUIExpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcbiAgQXV0aG9yIFRvYmlhcyBLb3BwZXJzIEBzb2tyYVxuKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcpIHtcbiAgdmFyIGxpc3QgPSBbXTtcblxuICAvLyByZXR1cm4gdGhlIGxpc3Qgb2YgbW9kdWxlcyBhcyBjc3Mgc3RyaW5nXG4gIGxpc3QudG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHZhciBjb250ZW50ID0gXCJcIjtcbiAgICAgIHZhciBuZWVkTGF5ZXIgPSB0eXBlb2YgaXRlbVs1XSAhPT0gXCJ1bmRlZmluZWRcIjtcbiAgICAgIGlmIChpdGVtWzRdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChpdGVtWzRdLCBcIikge1wiKTtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVtWzJdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAbWVkaWEgXCIuY29uY2F0KGl0ZW1bMl0sIFwiIHtcIik7XG4gICAgICB9XG4gICAgICBpZiAobmVlZExheWVyKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAbGF5ZXJcIi5jb25jYXQoaXRlbVs1XS5sZW5ndGggPiAwID8gXCIgXCIuY29uY2F0KGl0ZW1bNV0pIDogXCJcIiwgXCIge1wiKTtcbiAgICAgIH1cbiAgICAgIGNvbnRlbnQgKz0gY3NzV2l0aE1hcHBpbmdUb1N0cmluZyhpdGVtKTtcbiAgICAgIGlmIChuZWVkTGF5ZXIpIHtcbiAgICAgICAgY29udGVudCArPSBcIn1cIjtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVtWzJdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJ9XCI7XG4gICAgICB9XG4gICAgICBpZiAoaXRlbVs0XSkge1xuICAgICAgICBjb250ZW50ICs9IFwifVwiO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgfSkuam9pbihcIlwiKTtcbiAgfTtcblxuICAvLyBpbXBvcnQgYSBsaXN0IG9mIG1vZHVsZXMgaW50byB0aGUgbGlzdFxuICBsaXN0LmkgPSBmdW5jdGlvbiBpKG1vZHVsZXMsIG1lZGlhLCBkZWR1cGUsIHN1cHBvcnRzLCBsYXllcikge1xuICAgIGlmICh0eXBlb2YgbW9kdWxlcyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgbW9kdWxlcyA9IFtbbnVsbCwgbW9kdWxlcywgdW5kZWZpbmVkXV07XG4gICAgfVxuICAgIHZhciBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzID0ge307XG4gICAgaWYgKGRlZHVwZSkge1xuICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCB0aGlzLmxlbmd0aDsgaysrKSB7XG4gICAgICAgIHZhciBpZCA9IHRoaXNba11bMF07XG4gICAgICAgIGlmIChpZCAhPSBudWxsKSB7XG4gICAgICAgICAgYWxyZWFkeUltcG9ydGVkTW9kdWxlc1tpZF0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAodmFyIF9rID0gMDsgX2sgPCBtb2R1bGVzLmxlbmd0aDsgX2srKykge1xuICAgICAgdmFyIGl0ZW0gPSBbXS5jb25jYXQobW9kdWxlc1tfa10pO1xuICAgICAgaWYgKGRlZHVwZSAmJiBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzW2l0ZW1bMF1dKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBsYXllciAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICBpZiAodHlwZW9mIGl0ZW1bNV0gPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICBpdGVtWzVdID0gbGF5ZXI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQGxheWVyXCIuY29uY2F0KGl0ZW1bNV0ubGVuZ3RoID4gMCA/IFwiIFwiLmNvbmNhdChpdGVtWzVdKSA6IFwiXCIsIFwiIHtcIikuY29uY2F0KGl0ZW1bMV0sIFwifVwiKTtcbiAgICAgICAgICBpdGVtWzVdID0gbGF5ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChtZWRpYSkge1xuICAgICAgICBpZiAoIWl0ZW1bMl0pIHtcbiAgICAgICAgICBpdGVtWzJdID0gbWVkaWE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQG1lZGlhIFwiLmNvbmNhdChpdGVtWzJdLCBcIiB7XCIpLmNvbmNhdChpdGVtWzFdLCBcIn1cIik7XG4gICAgICAgICAgaXRlbVsyXSA9IG1lZGlhO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc3VwcG9ydHMpIHtcbiAgICAgICAgaWYgKCFpdGVtWzRdKSB7XG4gICAgICAgICAgaXRlbVs0XSA9IFwiXCIuY29uY2F0KHN1cHBvcnRzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpdGVtWzFdID0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChpdGVtWzRdLCBcIikge1wiKS5jb25jYXQoaXRlbVsxXSwgXCJ9XCIpO1xuICAgICAgICAgIGl0ZW1bNF0gPSBzdXBwb3J0cztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGlzdC5wdXNoKGl0ZW0pO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIGxpc3Q7XG59OyIsIlwidXNlIHN0cmljdFwiO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICh1cmwsIG9wdGlvbnMpIHtcbiAgaWYgKCFvcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIGlmICghdXJsKSB7XG4gICAgcmV0dXJuIHVybDtcbiAgfVxuICB1cmwgPSBTdHJpbmcodXJsLl9fZXNNb2R1bGUgPyB1cmwuZGVmYXVsdCA6IHVybCk7XG5cbiAgLy8gSWYgdXJsIGlzIGFscmVhZHkgd3JhcHBlZCBpbiBxdW90ZXMsIHJlbW92ZSB0aGVtXG4gIGlmICgvXlsnXCJdLipbJ1wiXSQvLnRlc3QodXJsKSkge1xuICAgIHVybCA9IHVybC5zbGljZSgxLCAtMSk7XG4gIH1cbiAgaWYgKG9wdGlvbnMuaGFzaCkge1xuICAgIHVybCArPSBvcHRpb25zLmhhc2g7XG4gIH1cblxuICAvLyBTaG91bGQgdXJsIGJlIHdyYXBwZWQ/XG4gIC8vIFNlZSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLXZhbHVlcy0zLyN1cmxzXG4gIGlmICgvW1wiJygpIFxcdFxcbl18KCUyMCkvLnRlc3QodXJsKSB8fCBvcHRpb25zLm5lZWRRdW90ZXMpIHtcbiAgICByZXR1cm4gXCJcXFwiXCIuY29uY2F0KHVybC5yZXBsYWNlKC9cIi9nLCAnXFxcXFwiJykucmVwbGFjZSgvXFxuL2csIFwiXFxcXG5cIiksIFwiXFxcIlwiKTtcbiAgfVxuICByZXR1cm4gdXJsO1xufTsiLCJcInVzZSBzdHJpY3RcIjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXRlbSkge1xuICB2YXIgY29udGVudCA9IGl0ZW1bMV07XG4gIHZhciBjc3NNYXBwaW5nID0gaXRlbVszXTtcbiAgaWYgKCFjc3NNYXBwaW5nKSB7XG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH1cbiAgaWYgKHR5cGVvZiBidG9hID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICB2YXIgYmFzZTY0ID0gYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoY3NzTWFwcGluZykpKSk7XG4gICAgdmFyIGRhdGEgPSBcInNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LFwiLmNvbmNhdChiYXNlNjQpO1xuICAgIHZhciBzb3VyY2VNYXBwaW5nID0gXCIvKiMgXCIuY29uY2F0KGRhdGEsIFwiICovXCIpO1xuICAgIHJldHVybiBbY29udGVudF0uY29uY2F0KFtzb3VyY2VNYXBwaW5nXSkuam9pbihcIlxcblwiKTtcbiAgfVxuICByZXR1cm4gW2NvbnRlbnRdLmpvaW4oXCJcXG5cIik7XG59OyIsIi8vIE1vZHVsZVxudmFyIGNvZGUgPSBcIjxkaXYgY2xhc3M9XFxcIkFQWC1kaWFsb2dcXFwiPlxcclxcbiAgICA8ZGl2IGNsYXNzPVxcXCJBUFgtZGlhbG9nLWNvbnRlbnRcXFwiPlxcclxcbiAgICAgICAgPHNwYW4gY2xhc3M9XFxcIkFQWC1jbG9zZS1kaWFsb2dcXFwiPiZ0aW1lczs8L3NwYW4+XFxyXFxuICAgICAgICA8aDIgY2xhc3M9XFxcIkFQWC1kaWFsb2ctdGl0bGVcXFwiPjwvaDI+XFxyXFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJBUFgtZGlhbG9nLWR5bmFtaWMtY29udGVudFxcXCI+PC9kaXY+XFxyXFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJBUFgtZGlhbG9nLWJ1dHRvbi1jb250YWluZXJcXFwiPjwvZGl2PlxcclxcbiAgICA8L2Rpdj5cXHJcXG48L2Rpdj5cIjtcbi8vIEV4cG9ydHNcbm1vZHVsZS5leHBvcnRzID0gY29kZTsiLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vZGlhbG9nLmNzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xuXG4gICAgICBvcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xuICAgIFxub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vZGlhbG9nLmNzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi90cmlzdGF0ZS5jc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcblxuICAgICAgb3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbiAgICBcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3RyaXN0YXRlLmNzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgc3R5bGVzSW5ET00gPSBbXTtcbmZ1bmN0aW9uIGdldEluZGV4QnlJZGVudGlmaWVyKGlkZW50aWZpZXIpIHtcbiAgdmFyIHJlc3VsdCA9IC0xO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHN0eWxlc0luRE9NLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHN0eWxlc0luRE9NW2ldLmlkZW50aWZpZXIgPT09IGlkZW50aWZpZXIpIHtcbiAgICAgIHJlc3VsdCA9IGk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbmZ1bmN0aW9uIG1vZHVsZXNUb0RvbShsaXN0LCBvcHRpb25zKSB7XG4gIHZhciBpZENvdW50TWFwID0ge307XG4gIHZhciBpZGVudGlmaWVycyA9IFtdO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaXRlbSA9IGxpc3RbaV07XG4gICAgdmFyIGlkID0gb3B0aW9ucy5iYXNlID8gaXRlbVswXSArIG9wdGlvbnMuYmFzZSA6IGl0ZW1bMF07XG4gICAgdmFyIGNvdW50ID0gaWRDb3VudE1hcFtpZF0gfHwgMDtcbiAgICB2YXIgaWRlbnRpZmllciA9IFwiXCIuY29uY2F0KGlkLCBcIiBcIikuY29uY2F0KGNvdW50KTtcbiAgICBpZENvdW50TWFwW2lkXSA9IGNvdW50ICsgMTtcbiAgICB2YXIgaW5kZXhCeUlkZW50aWZpZXIgPSBnZXRJbmRleEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKTtcbiAgICB2YXIgb2JqID0ge1xuICAgICAgY3NzOiBpdGVtWzFdLFxuICAgICAgbWVkaWE6IGl0ZW1bMl0sXG4gICAgICBzb3VyY2VNYXA6IGl0ZW1bM10sXG4gICAgICBzdXBwb3J0czogaXRlbVs0XSxcbiAgICAgIGxheWVyOiBpdGVtWzVdXG4gICAgfTtcbiAgICBpZiAoaW5kZXhCeUlkZW50aWZpZXIgIT09IC0xKSB7XG4gICAgICBzdHlsZXNJbkRPTVtpbmRleEJ5SWRlbnRpZmllcl0ucmVmZXJlbmNlcysrO1xuICAgICAgc3R5bGVzSW5ET01baW5kZXhCeUlkZW50aWZpZXJdLnVwZGF0ZXIob2JqKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHVwZGF0ZXIgPSBhZGRFbGVtZW50U3R5bGUob2JqLCBvcHRpb25zKTtcbiAgICAgIG9wdGlvbnMuYnlJbmRleCA9IGk7XG4gICAgICBzdHlsZXNJbkRPTS5zcGxpY2UoaSwgMCwge1xuICAgICAgICBpZGVudGlmaWVyOiBpZGVudGlmaWVyLFxuICAgICAgICB1cGRhdGVyOiB1cGRhdGVyLFxuICAgICAgICByZWZlcmVuY2VzOiAxXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWRlbnRpZmllcnMucHVzaChpZGVudGlmaWVyKTtcbiAgfVxuICByZXR1cm4gaWRlbnRpZmllcnM7XG59XG5mdW5jdGlvbiBhZGRFbGVtZW50U3R5bGUob2JqLCBvcHRpb25zKSB7XG4gIHZhciBhcGkgPSBvcHRpb25zLmRvbUFQSShvcHRpb25zKTtcbiAgYXBpLnVwZGF0ZShvYmopO1xuICB2YXIgdXBkYXRlciA9IGZ1bmN0aW9uIHVwZGF0ZXIobmV3T2JqKSB7XG4gICAgaWYgKG5ld09iaikge1xuICAgICAgaWYgKG5ld09iai5jc3MgPT09IG9iai5jc3MgJiYgbmV3T2JqLm1lZGlhID09PSBvYmoubWVkaWEgJiYgbmV3T2JqLnNvdXJjZU1hcCA9PT0gb2JqLnNvdXJjZU1hcCAmJiBuZXdPYmouc3VwcG9ydHMgPT09IG9iai5zdXBwb3J0cyAmJiBuZXdPYmoubGF5ZXIgPT09IG9iai5sYXllcikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBhcGkudXBkYXRlKG9iaiA9IG5ld09iaik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFwaS5yZW1vdmUoKTtcbiAgICB9XG4gIH07XG4gIHJldHVybiB1cGRhdGVyO1xufVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAobGlzdCwgb3B0aW9ucykge1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgbGlzdCA9IGxpc3QgfHwgW107XG4gIHZhciBsYXN0SWRlbnRpZmllcnMgPSBtb2R1bGVzVG9Eb20obGlzdCwgb3B0aW9ucyk7XG4gIHJldHVybiBmdW5jdGlvbiB1cGRhdGUobmV3TGlzdCkge1xuICAgIG5ld0xpc3QgPSBuZXdMaXN0IHx8IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGFzdElkZW50aWZpZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgaWRlbnRpZmllciA9IGxhc3RJZGVudGlmaWVyc1tpXTtcbiAgICAgIHZhciBpbmRleCA9IGdldEluZGV4QnlJZGVudGlmaWVyKGlkZW50aWZpZXIpO1xuICAgICAgc3R5bGVzSW5ET01baW5kZXhdLnJlZmVyZW5jZXMtLTtcbiAgICB9XG4gICAgdmFyIG5ld0xhc3RJZGVudGlmaWVycyA9IG1vZHVsZXNUb0RvbShuZXdMaXN0LCBvcHRpb25zKTtcbiAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgbGFzdElkZW50aWZpZXJzLmxlbmd0aDsgX2krKykge1xuICAgICAgdmFyIF9pZGVudGlmaWVyID0gbGFzdElkZW50aWZpZXJzW19pXTtcbiAgICAgIHZhciBfaW5kZXggPSBnZXRJbmRleEJ5SWRlbnRpZmllcihfaWRlbnRpZmllcik7XG4gICAgICBpZiAoc3R5bGVzSW5ET01bX2luZGV4XS5yZWZlcmVuY2VzID09PSAwKSB7XG4gICAgICAgIHN0eWxlc0luRE9NW19pbmRleF0udXBkYXRlcigpO1xuICAgICAgICBzdHlsZXNJbkRPTS5zcGxpY2UoX2luZGV4LCAxKTtcbiAgICAgIH1cbiAgICB9XG4gICAgbGFzdElkZW50aWZpZXJzID0gbmV3TGFzdElkZW50aWZpZXJzO1xuICB9O1xufTsiLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIG1lbW8gPSB7fTtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBnZXRUYXJnZXQodGFyZ2V0KSB7XG4gIGlmICh0eXBlb2YgbWVtb1t0YXJnZXRdID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgdmFyIHN0eWxlVGFyZ2V0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0YXJnZXQpO1xuXG4gICAgLy8gU3BlY2lhbCBjYXNlIHRvIHJldHVybiBoZWFkIG9mIGlmcmFtZSBpbnN0ZWFkIG9mIGlmcmFtZSBpdHNlbGZcbiAgICBpZiAod2luZG93LkhUTUxJRnJhbWVFbGVtZW50ICYmIHN0eWxlVGFyZ2V0IGluc3RhbmNlb2Ygd2luZG93LkhUTUxJRnJhbWVFbGVtZW50KSB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBUaGlzIHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uIGlmIGFjY2VzcyB0byBpZnJhbWUgaXMgYmxvY2tlZFxuICAgICAgICAvLyBkdWUgdG8gY3Jvc3Mtb3JpZ2luIHJlc3RyaWN0aW9uc1xuICAgICAgICBzdHlsZVRhcmdldCA9IHN0eWxlVGFyZ2V0LmNvbnRlbnREb2N1bWVudC5oZWFkO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICAgICAgICBzdHlsZVRhcmdldCA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIG1lbW9bdGFyZ2V0XSA9IHN0eWxlVGFyZ2V0O1xuICB9XG4gIHJldHVybiBtZW1vW3RhcmdldF07XG59XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gaW5zZXJ0QnlTZWxlY3RvcihpbnNlcnQsIHN0eWxlKSB7XG4gIHZhciB0YXJnZXQgPSBnZXRUYXJnZXQoaW5zZXJ0KTtcbiAgaWYgKCF0YXJnZXQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZG4ndCBmaW5kIGEgc3R5bGUgdGFyZ2V0LiBUaGlzIHByb2JhYmx5IG1lYW5zIHRoYXQgdGhlIHZhbHVlIGZvciB0aGUgJ2luc2VydCcgcGFyYW1ldGVyIGlzIGludmFsaWQuXCIpO1xuICB9XG4gIHRhcmdldC5hcHBlbmRDaGlsZChzdHlsZSk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IGluc2VydEJ5U2VsZWN0b3I7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gaW5zZXJ0U3R5bGVFbGVtZW50KG9wdGlvbnMpIHtcbiAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIik7XG4gIG9wdGlvbnMuc2V0QXR0cmlidXRlcyhlbGVtZW50LCBvcHRpb25zLmF0dHJpYnV0ZXMpO1xuICBvcHRpb25zLmluc2VydChlbGVtZW50LCBvcHRpb25zLm9wdGlvbnMpO1xuICByZXR1cm4gZWxlbWVudDtcbn1cbm1vZHVsZS5leHBvcnRzID0gaW5zZXJ0U3R5bGVFbGVtZW50OyIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIHNldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcyhzdHlsZUVsZW1lbnQpIHtcbiAgdmFyIG5vbmNlID0gdHlwZW9mIF9fd2VicGFja19ub25jZV9fICE9PSBcInVuZGVmaW5lZFwiID8gX193ZWJwYWNrX25vbmNlX18gOiBudWxsO1xuICBpZiAobm9uY2UpIHtcbiAgICBzdHlsZUVsZW1lbnQuc2V0QXR0cmlidXRlKFwibm9uY2VcIiwgbm9uY2UpO1xuICB9XG59XG5tb2R1bGUuZXhwb3J0cyA9IHNldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlczsiLCJcInVzZSBzdHJpY3RcIjtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBhcHBseShzdHlsZUVsZW1lbnQsIG9wdGlvbnMsIG9iaikge1xuICB2YXIgY3NzID0gXCJcIjtcbiAgaWYgKG9iai5zdXBwb3J0cykge1xuICAgIGNzcyArPSBcIkBzdXBwb3J0cyAoXCIuY29uY2F0KG9iai5zdXBwb3J0cywgXCIpIHtcIik7XG4gIH1cbiAgaWYgKG9iai5tZWRpYSkge1xuICAgIGNzcyArPSBcIkBtZWRpYSBcIi5jb25jYXQob2JqLm1lZGlhLCBcIiB7XCIpO1xuICB9XG4gIHZhciBuZWVkTGF5ZXIgPSB0eXBlb2Ygb2JqLmxheWVyICE9PSBcInVuZGVmaW5lZFwiO1xuICBpZiAobmVlZExheWVyKSB7XG4gICAgY3NzICs9IFwiQGxheWVyXCIuY29uY2F0KG9iai5sYXllci5sZW5ndGggPiAwID8gXCIgXCIuY29uY2F0KG9iai5sYXllcikgOiBcIlwiLCBcIiB7XCIpO1xuICB9XG4gIGNzcyArPSBvYmouY3NzO1xuICBpZiAobmVlZExheWVyKSB7XG4gICAgY3NzICs9IFwifVwiO1xuICB9XG4gIGlmIChvYmoubWVkaWEpIHtcbiAgICBjc3MgKz0gXCJ9XCI7XG4gIH1cbiAgaWYgKG9iai5zdXBwb3J0cykge1xuICAgIGNzcyArPSBcIn1cIjtcbiAgfVxuICB2YXIgc291cmNlTWFwID0gb2JqLnNvdXJjZU1hcDtcbiAgaWYgKHNvdXJjZU1hcCAmJiB0eXBlb2YgYnRvYSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgIGNzcyArPSBcIlxcbi8qIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsXCIuY29uY2F0KGJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHNvdXJjZU1hcCkpKSksIFwiICovXCIpO1xuICB9XG5cbiAgLy8gRm9yIG9sZCBJRVxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgICovXG4gIG9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0oY3NzLCBzdHlsZUVsZW1lbnQsIG9wdGlvbnMub3B0aW9ucyk7XG59XG5mdW5jdGlvbiByZW1vdmVTdHlsZUVsZW1lbnQoc3R5bGVFbGVtZW50KSB7XG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBpZlxuICBpZiAoc3R5bGVFbGVtZW50LnBhcmVudE5vZGUgPT09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgc3R5bGVFbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc3R5bGVFbGVtZW50KTtcbn1cblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBkb21BUEkob3B0aW9ucykge1xuICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHVwZGF0ZTogZnVuY3Rpb24gdXBkYXRlKCkge30sXG4gICAgICByZW1vdmU6IGZ1bmN0aW9uIHJlbW92ZSgpIHt9XG4gICAgfTtcbiAgfVxuICB2YXIgc3R5bGVFbGVtZW50ID0gb3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQob3B0aW9ucyk7XG4gIHJldHVybiB7XG4gICAgdXBkYXRlOiBmdW5jdGlvbiB1cGRhdGUob2JqKSB7XG4gICAgICBhcHBseShzdHlsZUVsZW1lbnQsIG9wdGlvbnMsIG9iaik7XG4gICAgfSxcbiAgICByZW1vdmU6IGZ1bmN0aW9uIHJlbW92ZSgpIHtcbiAgICAgIHJlbW92ZVN0eWxlRWxlbWVudChzdHlsZUVsZW1lbnQpO1xuICAgIH1cbiAgfTtcbn1cbm1vZHVsZS5leHBvcnRzID0gZG9tQVBJOyIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIHN0eWxlVGFnVHJhbnNmb3JtKGNzcywgc3R5bGVFbGVtZW50KSB7XG4gIGlmIChzdHlsZUVsZW1lbnQuc3R5bGVTaGVldCkge1xuICAgIHN0eWxlRWxlbWVudC5zdHlsZVNoZWV0LmNzc1RleHQgPSBjc3M7XG4gIH0gZWxzZSB7XG4gICAgd2hpbGUgKHN0eWxlRWxlbWVudC5maXJzdENoaWxkKSB7XG4gICAgICBzdHlsZUVsZW1lbnQucmVtb3ZlQ2hpbGQoc3R5bGVFbGVtZW50LmZpcnN0Q2hpbGQpO1xuICAgIH1cbiAgICBzdHlsZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzKSk7XG4gIH1cbn1cbm1vZHVsZS5leHBvcnRzID0gc3R5bGVUYWdUcmFuc2Zvcm07IiwiLy8gRnVuY3Rpb24gdG8gbG9hZCB0aGUgQ1NTIGZyb20gYSBnaXZlbiBVUkxcclxuZnVuY3Rpb24gbG9hZENzcyh1cmwpIHtcclxuICAgIHJldHVybiBmZXRjaCh1cmwpXHJcbiAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UudGV4dCgpKVxyXG4gICAgICAgIC50aGVuKGNzcyA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHN0eWxlU2hlZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIik7XHJcbiAgICAgICAgICAgIHN0eWxlU2hlZXQudHlwZSA9IFwidGV4dC9jc3NcIjtcclxuICAgICAgICAgICAgc3R5bGVTaGVldC50ZXh0Q29udGVudCA9IGNzczsgIC8vIFVzZSB0ZXh0Q29udGVudCBpbnN0ZWFkIG9mIGlubmVyVGV4dFxyXG4gICAgICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0eWxlU2hlZXQpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIkZhaWxlZCB0byBsb2FkIENTUzpcIiwgZXJyb3IpO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5leHBvcnQge1xyXG4gICAgbG9hZENzc1xyXG59IiwiLy8gSW1wb3J0aW5nIHRoZSBDU1MgYW5kIEhUTUwgdGVtcGxhdGVzXHJcbmltcG9ydCAnLi9jc3MvZGlhbG9nLmNzcyc7XHJcbmltcG9ydCBkaWFsb2dUZW1wbGF0ZSBmcm9tICcuL2h0bWwvZGlhbG9nLmh0bWw/cmF3JztcclxuXHJcbmNvbnN0IGNyZWF0ZURpYWxvZyA9IChvcHRpb25zKSA9PiB7XHJcbiAgICBjb25zdCBkaWFsb2dEZWZhdWx0cyA9IHtcclxuICAgICAgICB0aXRsZTogJycsXHJcbiAgICAgICAgY29udGVudDogJycsXHJcbiAgICAgICAgY29udGVudFVSSTogJycsXHJcbiAgICAgICAgYnV0dG9uczogW10sXHJcbiAgICAgICAgc2l6ZTogJ21lZGl1bScsXHJcbiAgICAgICAgc2hvd0xvYWRpbmdJbmRpY2F0b3I6IGZhbHNlXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IHsgdGl0bGUsIGNvbnRlbnQsIGNvbnRlbnRVUkksIGJ1dHRvbnMsIHNpemUsIHNob3dMb2FkaW5nSW5kaWNhdG9yIH0gPSB7IC4uLmRpYWxvZ0RlZmF1bHRzLCAuLi5vcHRpb25zIH07XHJcblxyXG4gICAgY29uc3Qgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgd3JhcHBlci5pbm5lckhUTUwgPSBkaWFsb2dUZW1wbGF0ZS50cmltKCk7XHJcbiAgICBjb25zdCBkaWFsb2dFbGVtZW50ID0gd3JhcHBlci5maXJzdENoaWxkO1xyXG5cclxuICAgIC8vIExpZmVjeWNsZSBldmVudCBtYW5hZ2VtZW50XHJcbiAgICBjb25zdCBsaWZlY3ljbGVSZXNvbHZlcnMgPSB7fTtcclxuICAgIGNvbnN0IGxpZmVjeWNsZUV2ZW50cyA9IHt9O1xyXG5cclxuICAgIC8vIERlZmluZSBsaWZlY3ljbGUgcHJvbWlzZXMgYXMgcHJvcGVydGllc1xyXG4gICAgWydvcGVuaW5nJywgJ29wZW5lZCcsICdjbG9zaW5nJywgJ2Nsb3NlZCcsICdjb250ZW50TG9hZGluZycsICdjb250ZW50TG9hZGVkJ10uZm9yRWFjaCgoZXZlbnQpID0+IHtcclxuICAgICAgICBsaWZlY3ljbGVFdmVudHNbZXZlbnRdID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcclxuICAgICAgICAgICAgbGlmZWN5Y2xlUmVzb2x2ZXJzW2V2ZW50XSA9IHJlc29sdmU7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zdCB0cmlnZ2VyRXZlbnQgPSAoZXZlbnQpID0+IHtcclxuICAgICAgICBpZiAobGlmZWN5Y2xlUmVzb2x2ZXJzW2V2ZW50XSkge1xyXG4gICAgICAgICAgICBsaWZlY3ljbGVSZXNvbHZlcnNbZXZlbnRdKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc29sZS53YXJuKGBObyByZXNvbHZlciBmb3VuZCBmb3IgbGlmZWN5Y2xlIGV2ZW50OiAke2V2ZW50fWApO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgZGlhbG9nID0ge1xyXG4gICAgICAgIGVsZW1lbnQ6IGRpYWxvZ0VsZW1lbnQsXHJcbiAgICAgICAgYnV0dG9uczoge30sXHJcbiAgICAgICAgaXNDbG9zZWQ6IGZhbHNlLFxyXG4gICAgICAgIGxpZmVjeWNsZTogbGlmZWN5Y2xlRXZlbnRzLCAvLyBMaWZlY3ljbGUgcHJvbWlzZXMgZGlyZWN0bHkgZXhwb3NlZCBoZXJlXHJcbiAgICAgICAgZGlzYWJsZUJ1dHRvbjogKGtleSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBidXR0b24gPSBkaWFsb2dFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYC5BUFgtZGlhbG9nLWJ1dHRvbltkYXRhLWtleT1cIiR7a2V5fVwiXWApO1xyXG4gICAgICAgICAgICBpZiAoYnV0dG9uKSB7XHJcbiAgICAgICAgICAgICAgICBidXR0b24uZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgYnV0dG9uLmNsYXNzTGlzdC5hZGQoJ0FQWC1kaWFsb2ctYnV0dG9uLWRpc2FibGVkJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVuYWJsZUJ1dHRvbjogKGtleSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBidXR0b24gPSBkaWFsb2dFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYC5BUFgtZGlhbG9nLWJ1dHRvbltkYXRhLWtleT1cIiR7a2V5fVwiXWApO1xyXG4gICAgICAgICAgICBpZiAoYnV0dG9uKSB7XHJcbiAgICAgICAgICAgICAgICBidXR0b24uZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCdBUFgtZGlhbG9nLWJ1dHRvbi1kaXNhYmxlZCcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvcGVuOiBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICB0cmlnZ2VyRXZlbnQoJ29wZW5pbmcnKTtcclxuICAgICAgICAgICAgICAgIGF3YWl0IGRpYWxvZy5saWZlY3ljbGUub3BlbmluZztcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBJZiBsb2FkaW5nIGluZGljYXRvciBpcyBlbmFibGVkIGFuZCB3ZSdyZSBmZXRjaGluZyBjb250ZW50LCBzaG93IGRpYWxvZyBmaXJzdFxyXG4gICAgICAgICAgICAgICAgaWYgKHNob3dMb2FkaW5nSW5kaWNhdG9yICYmIGNvbnRlbnRVUkkpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBBcHBlbmQgZGlhbG9nIHRvIHRoZSBET00gYW5kIGRpc3BsYXkgaXQgZmlyc3RcclxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpYWxvZ0VsZW1lbnQpO1xyXG4gICAgICAgICAgICAgICAgICAgIGRpYWxvZ0VsZW1lbnQuc3R5bGUuZGlzcGxheSA9IFwiZmxleFwiO1xyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIFNob3cgbG9hZGluZyBpbmRpY2F0b3JcclxuICAgICAgICAgICAgICAgICAgICBkaWFsb2dFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuQVBYLWRpYWxvZy1keW5hbWljLWNvbnRlbnRcIikuaW5uZXJIVE1MID0gJzxkaXYgY2xhc3M9XCJBUFgtZGlhbG9nLWxvYWRpbmctaW5kaWNhdG9yXCI+PC9kaXY+JztcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAvLyBMb2FkIGNvbnRlbnQgYWZ0ZXIgZGlhbG9nIGlzIHZpc2libGVcclxuICAgICAgICAgICAgICAgICAgICBhd2FpdCBmZXRjaEFuZEluc2VydENvbnRlbnQoKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gRGVmYXVsdCBiZWhhdmlvcjogbG9hZCBjb250ZW50IGZpcnN0LCB0aGVuIHNob3cgZGlhbG9nXHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgZmV0Y2hBbmRJbnNlcnRDb250ZW50KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gQXBwZW5kIGRpYWxvZyB0byB0aGUgRE9NIGFuZCBkaXNwbGF5IGl0XHJcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkaWFsb2dFbGVtZW50KTtcclxuICAgICAgICAgICAgICAgICAgICBkaWFsb2dFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSBcImZsZXhcIjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0cmlnZ2VyRXZlbnQoJ29wZW5lZCcpO1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgZGlhbG9nLmxpZmVjeWNsZS5vcGVuZWQ7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBvcGVuaW5nIGRpYWxvZzonLCBlcnJvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIGRpYWxvZzsgLy8gUmV0dXJuIGZvciBkYWlzeS1jaGFpbmluZ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY2xvc2U6IGFzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIHRyaWdnZXJFdmVudCgnY2xvc2luZycpO1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgZGlhbG9nLmxpZmVjeWNsZS5jbG9zaW5nO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIENsZWFudXAgYW5kIHJlbW92ZSBkaWFsb2dcclxuICAgICAgICAgICAgICAgIGNsb3NlRGlhbG9nQW5kQ2xlYW51cCgpO1xyXG5cclxuICAgICAgICAgICAgICAgIHRyaWdnZXJFdmVudCgnY2xvc2VkJyk7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCBkaWFsb2cubGlmZWN5Y2xlLmNsb3NlZDtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGR1cmluZyBkaWFsb2cgY2xvc2luZzonLCBlcnJvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIGRpYWxvZzsgLy8gUmV0dXJuIGZvciBkYWlzeS1jaGFpbmluZ1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgY2xvc2VEaWFsb2dBbmRDbGVhbnVwID0gKCkgPT4ge1xyXG4gICAgICAgIGlmIChkaWFsb2cuaXNDbG9zZWQpIHJldHVybjtcclxuXHJcbiAgICAgICAgZGlhbG9nLmlzQ2xvc2VkID0gdHJ1ZTtcclxuICAgICAgICBkaWFsb2dFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjtcclxuICAgICAgICBpZiAoZG9jdW1lbnQuYm9keS5jb250YWlucyhkaWFsb2dFbGVtZW50KSkge1xyXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRpYWxvZ0VsZW1lbnQpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgY29uc3Qgc2V0RGlhbG9nU2l6ZSA9ICgpID0+IHtcclxuICAgICAgICBjb25zdCBkaWFsb2dDb250ZW50ID0gZGlhbG9nRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiLkFQWC1kaWFsb2ctY29udGVudFwiKTtcclxuICAgICAgICBjb25zdCBzaXplcyA9IHtcclxuICAgICAgICAgICAgc21hbGw6IHsgd2lkdGg6ICczMDBweCcsIGhlaWdodDogJzIwMHB4JyB9LFxyXG4gICAgICAgICAgICBtZWRpdW06IHsgd2lkdGg6ICc1MDBweCcsIGhlaWdodDogJzQwMHB4JyB9LFxyXG4gICAgICAgICAgICBsYXJnZTogeyB3aWR0aDogJzgwMHB4JywgaGVpZ2h0OiAnNjAwcHgnIH1cclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBpZiAoc2l6ZSA9PT0gJ2F1dG8nKSByZXR1cm47XHJcblxyXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkU2l6ZSA9IHNpemVzW3NpemVdIHx8ICh0eXBlb2Ygc2l6ZSA9PT0gJ29iamVjdCcgJiYgc2l6ZSk7XHJcbiAgICAgICAgaWYgKHNlbGVjdGVkU2l6ZSkge1xyXG4gICAgICAgICAgICBkaWFsb2dDb250ZW50LnN0eWxlLm1pbldpZHRoID0gc2VsZWN0ZWRTaXplLndpZHRoIHx8ICc1MDBweCc7XHJcbiAgICAgICAgICAgIGRpYWxvZ0NvbnRlbnQuc3R5bGUubWluSGVpZ2h0ID0gc2VsZWN0ZWRTaXplLmhlaWdodCB8fCAnNDAwcHgnO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgYWRkQnV0dG9ucyA9ICgpID0+IHtcclxuICAgICAgICBjb25zdCBidXR0b25Db250YWluZXIgPSBkaWFsb2dFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuQVBYLWRpYWxvZy1idXR0b24tY29udGFpbmVyXCIpO1xyXG5cclxuICAgICAgICBidXR0b25zLmZvckVhY2goKHsga2V5LCBsYWJlbCwgb3JkZXIgPSAwLCBhbGlnbiA9ICdmbGV4LWVuZCcsIGNsb3NlT25DbGljayA9IHRydWUgfSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBidXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTtcclxuICAgICAgICAgICAgYnV0dG9uLmNsYXNzTGlzdC5hZGQoJ0FQWC1kaWFsb2ctYnV0dG9uJyk7XHJcbiAgICAgICAgICAgIGJ1dHRvbi50ZXh0Q29udGVudCA9IGxhYmVsO1xyXG4gICAgICAgICAgICBidXR0b24uc3R5bGUub3JkZXIgPSBvcmRlcjtcclxuICAgICAgICAgICAgYnV0dG9uLnNldEF0dHJpYnV0ZSgnZGF0YS1rZXknLCBrZXkpO1xyXG5cclxuICAgICAgICAgICAgLy8gQ3JlYXRlIGJ1dHRvbiBjb250ZXh0IHdpdGggZGlzYWJsZS9lbmFibGUgbWV0aG9kc1xyXG4gICAgICAgICAgICBjb25zdCBidXR0b25Db250ZXh0ID0ge1xyXG4gICAgICAgICAgICAgICAgZGlzYWJsZTogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uLmNsYXNzTGlzdC5hZGQoJ0FQWC1kaWFsb2ctYnV0dG9uLWRpc2FibGVkJyk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZW5hYmxlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uLmRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoJ0FQWC1kaWFsb2ctYnV0dG9uLWRpc2FibGVkJyk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAga2V5LFxyXG4gICAgICAgICAgICAgICAgZWxlbWVudDogYnV0dG9uXHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICBpZiAoY2xvc2VPbkNsaWNrKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBIYW5kbGUgYXMgYSBvbmUtdGltZSBQcm9taXNlXHJcbiAgICAgICAgICAgICAgICBsZXQgZmlyc3RDbGlja1Jlc29sdmVkID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgZmlyc3RDbGlja1Byb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbi5vbmNsaWNrID0gKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWZpcnN0Q2xpY2tSZXNvbHZlZCAmJiAhYnV0dG9uLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdENsaWNrUmVzb2x2ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh7IGRpYWxvZywgYnV0dG9uOiBidXR0b25Db250ZXh0IH0pOyAvLyBQYXNzIGJvdGggZGlhbG9nIGFuZCBidXR0b24gY29udGV4dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlhbG9nLmNsb3NlKCk7IC8vIENsb3NlIHRoZSBkaWFsb2dcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBBc3NpZ24gdGhlIHByb21pc2UgZm9yIGNoYWluaW5nIHdpdGggYC50aGVuYFxyXG4gICAgICAgICAgICAgICAgZGlhbG9nLmJ1dHRvbnNba2V5XSA9IGZpcnN0Q2xpY2tQcm9taXNlO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gSGFuZGxlIGFzIGEgcmVwZWF0ZWQgZXZlbnQgaGFuZGxlclxyXG4gICAgICAgICAgICAgICAgbGV0IGhhbmRsZXJzID0gW107IC8vIFN0b3JlIGhhbmRsZXJzIGZvciBgLnRoZW4oKWBcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBjbGlja1Byb21pc2UgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhlbjogKGNhbGxiYWNrKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZXJzLnB1c2goY2FsbGJhY2spOyAvLyBBZGQgdG8gaGFuZGxlcnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2xpY2tQcm9taXNlOyAvLyBBbGxvdyBjaGFpbmluZ1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgICAgIGJ1dHRvbi5vbmNsaWNrID0gKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghYnV0dG9uLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZXJzLmZvckVhY2goKGhhbmRsZXIpID0+IGhhbmRsZXIoeyBkaWFsb2csIGJ1dHRvbjogYnV0dG9uQ29udGV4dCB9KSk7IC8vIFBhc3MgYm90aCBkaWFsb2cgYW5kIGJ1dHRvbiBjb250ZXh0XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgICAgICBkaWFsb2cuYnV0dG9uc1trZXldID0gY2xpY2tQcm9taXNlOyAvLyBBc3NpZ24gdGhlIFwiZmFrZVwiIHByb21pc2VcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgYnV0dG9uQ29udGFpbmVyLmFwcGVuZENoaWxkKGJ1dHRvbik7XHJcbiAgICAgICAgICAgIGJ1dHRvbkNvbnRhaW5lci5zdHlsZS5qdXN0aWZ5Q29udGVudCA9IGFsaWduO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBmZXRjaEFuZEluc2VydENvbnRlbnQgPSBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxDdXJzb3IgPSBkb2N1bWVudC5ib2R5LnN0eWxlLmN1cnNvcjtcclxuICAgICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmN1cnNvciA9ICd3YWl0JztcclxuICAgICAgICBjb25zdCBkeW5hbWljQ29udGVudCA9IGRpYWxvZ0VsZW1lbnQucXVlcnlTZWxlY3RvcihcIi5BUFgtZGlhbG9nLWR5bmFtaWMtY29udGVudFwiKTtcclxuICAgICAgICBcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICB0cmlnZ2VyRXZlbnQoJ2NvbnRlbnRMb2FkaW5nJyk7XHJcbiAgICAgICAgICAgIGF3YWl0IGRpYWxvZy5saWZlY3ljbGUuY29udGVudExvYWRpbmc7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBjb250ZW50SHRtbCA9IGNvbnRlbnRVUklcclxuICAgICAgICAgICAgICAgID8gYXdhaXQgZmV0Y2hDb250ZW50KGNvbnRlbnRVUkkpXHJcbiAgICAgICAgICAgICAgICA6IGNvbnRlbnQ7XHJcblxyXG4gICAgICAgICAgICBkeW5hbWljQ29udGVudC5pbm5lckhUTUwgPSBjb250ZW50SHRtbDtcclxuXHJcbiAgICAgICAgICAgIHRyaWdnZXJFdmVudCgnY29udGVudExvYWRlZCcpO1xyXG4gICAgICAgICAgICBhd2FpdCBkaWFsb2cubGlmZWN5Y2xlLmNvbnRlbnRMb2FkZWQ7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgbG9hZGluZyBjb250ZW50OicsIGVycm9yKTtcclxuICAgICAgICB9IGZpbmFsbHkge1xyXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmN1cnNvciA9IG9yaWdpbmFsQ3Vyc29yO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgZmV0Y2hDb250ZW50ID0gYXN5bmMgKHVyaSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJpKTtcclxuICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBmZXRjaCBjb250ZW50OiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YCk7XHJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTtcclxuICAgIH07XHJcblxyXG4gICAgLy8gSW5pdGlhbGl6ZSBkaWFsb2dcclxuICAgIHNldERpYWxvZ1NpemUoKTtcclxuICAgIGFkZEJ1dHRvbnMoKTtcclxuXHJcbiAgICAvLyBTZXQgdGl0bGUgYW5kIGNsb3NlIGJ1dHRvbiBoYW5kbGVyXHJcbiAgICBkaWFsb2dFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuQVBYLWRpYWxvZy10aXRsZVwiKS50ZXh0Q29udGVudCA9IHRpdGxlO1xyXG4gICAgZGlhbG9nRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuQVBYLWNsb3NlLWRpYWxvZycpLm9uY2xpY2sgPSBkaWFsb2cuY2xvc2U7XHJcblxyXG4gICAgcmV0dXJuIGRpYWxvZztcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNyZWF0ZURpYWxvZztcclxuIiwibGV0IGNvdW50ZXIgPSAwO1xyXG5jb25zdCBkb0NhbGxiYWNrcyA9IHt9O1xyXG5jb25zdCB0aW1lb3V0cyA9IHt9O1xyXG5cclxuLyoqXHJcbiAqIFRoaXMgZnVuY3Rpb24gYWRkcyBhbiBldmVudCBsaXN0ZW5lciB0byB0aGUgZWxlbWVudHMgYW5kIHJldHVybnMgYW4gb2JqZWN0IHdpdGggYSBkbyBtZXRob2QgdG8gYWRkIGNhbGxiYWNrIGZ1bmN0aW9ucy5cclxuICogQHBhcmFtIHtPYmplY3R9IGFweCAtIFRoZSBhcHggb2JqZWN0IHRvIGF1Z21lbnQgd2l0aCB0aGUgbGlzdGVuIGZ1bmN0aW9uLlxyXG4gKiBAcmV0dXJucyB7T2JqZWN0fSAtIFRoZSBhdWdtZW50ZWQgYXB4IG9iamVjdC5cclxuICovXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIChhcHgpIHtcclxuICAgIGxldCBlbGVtZW50cyA9IGFweC5lbGVtZW50cztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZHMgYW4gZXZlbnQgbGlzdGVuZXIgdG8gdGhlIGVsZW1lbnRzIGFuZCByZXR1cm5zIGFuIG9iamVjdCB3aXRoIGEgZG8gbWV0aG9kIHRvIGFkZCBjYWxsYmFjayBmdW5jdGlvbnMuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZXZlbnRUeXBlIC0gVGhlIHR5cGUgb2YgZXZlbnQgdG8gbGlzdGVuIGZvciAoZS5nLiAnY2xpY2snLCAna2V5ZG93bicsIGV0Yy4pLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzZWxlY3Rvcl0gLSBUaGUgQ1NTIHNlbGVjdG9yIHRvIHVzZSBmb3IgZXZlbnQgZGVsZWdhdGlvbiAob3B0aW9uYWwpLlxyXG4gICAgICogQHJldHVybnMge09iamVjdH0gLSBBbiBvYmplY3Qgd2l0aCBhIGRvIG1ldGhvZCB0byBhZGQgY2FsbGJhY2sgZnVuY3Rpb25zLlxyXG4gICAgICogQGV4YW1wbGVcclxuICAgICAqIGFweC5saXN0ZW4oJ2NsaWNrJywgJy5teS1idXR0b24nKS5kbygoZXZlbnQpID0+IHtcclxuICAgICAqICAgY29uc29sZS5sb2coJ0J1dHRvbiBjbGlja2VkIScsIGV2ZW50LnRhcmdldCk7XHJcbiAgICAgKiB9KTtcclxuICAgICAqL1xyXG4gICAgYXB4Lmxpc3RlbiA9IGZ1bmN0aW9uIChldmVudFR5cGVzLCBzZWNvbmRBcmd1bWVudCwgdGhpcmRBcmd1bWVudCkge1xyXG4gICAgICAgIGxldCBzZWxlY3RvcjtcclxuICAgICAgICBsZXQgb3B0aW9ucyA9IHt9O1xyXG4gICAgICAgIC8vIERldGVybWluZSBpZiB0aGUgc2Vjb25kIGFyZ3VtZW50IGlzIGEgc2VsZWN0b3Igb3Igb3B0aW9uc1xyXG4gICAgICAgIGlmICh0eXBlb2Ygc2Vjb25kQXJndW1lbnQgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIHNlbGVjdG9yID0gc2Vjb25kQXJndW1lbnQ7XHJcbiAgICAgICAgICAgIG9wdGlvbnMgPSB0aGlyZEFyZ3VtZW50IHx8IHt9O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIG9wdGlvbnMgPSBzZWNvbmRBcmd1bWVudCB8fCB7fTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHVuaXF1ZUlkID0gZ2VuZXJhdGVVbmlxdWVJZCgpO1xyXG4gICAgICAgIGNvbnN0IHRpbWVvdXREdXJhdGlvbiA9IG9wdGlvbnMudGltZW91dCB8fCAwO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShldmVudFR5cGVzKSkge1xyXG4gICAgICAgICAgICBldmVudFR5cGVzID0gW2V2ZW50VHlwZXNdOyAvLyBFbnN1cmUgZXZlbnRUeXBlcyBpcyBhbiBhcnJheVxyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICBldmVudFR5cGVzLmZvckVhY2goKGV2ZW50VHlwZSkgPT4ge1xyXG4gICAgICAgICAgICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCAoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBleGVjdXRlQ2FsbGJhY2tzKGV2ZW50LCB1bmlxdWVJZCwgdGltZW91dER1cmF0aW9uLCBzZWxlY3RvciwgZWxlbWVudCk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBBZGRzIGEgY2FsbGJhY2sgZnVuY3Rpb24gdG8gdGhlIGRvQ2FsbGJhY2tzIG9iamVjdCBmb3IgdGhlIGN1cnJlbnQgZXZlbnQgbGlzdGVuZXIuXHJcbiAgICAgICAgICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGRvQ2FsbGJhY2sgLSBUaGUgY2FsbGJhY2sgZnVuY3Rpb24gdG8gZXhlY3V0ZSB3aGVuIHRoZSBldmVudCBpcyB0cmlnZ2VyZWQuXHJcbiAgICAgICAgICAgICAqIEByZXR1cm5zIHtPYmplY3R9IC0gUmV0dXJucyB0aGUgY3VycmVudCBvYmplY3QgdG8gYWxsb3cgZm9yIGNoYWluZWQgY2FsbHMuXHJcbiAgICAgICAgICAgICAqIEBleGFtcGxlXHJcbiAgICAgICAgICAgICAqIGFweC5saXN0ZW4oJ2NsaWNrJywgJy5teS1idXR0b24nKS5kbygoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgICogICBjb25zb2xlLmxvZygnQnV0dG9uIGNsaWNrZWQhJywgZXZlbnQudGFyZ2V0KTtcclxuICAgICAgICAgICAgICogfSkuZG8oKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAqICAgY29uc29sZS5sb2coJ0Fub3RoZXIgY2FsbGJhY2sgZnVuY3Rpb24hJyk7XHJcbiAgICAgICAgICAgICAqIH0pO1xyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgZG86IGZ1bmN0aW9uIChkb0NhbGxiYWNrKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWRvQ2FsbGJhY2tzW3VuaXF1ZUlkXSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGRvQ2FsbGJhY2tzW3VuaXF1ZUlkXSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZG9DYWxsYmFja3NbdW5pcXVlSWRdLnB1c2goZG9DYWxsYmFjayk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpczsgLy8gUmV0dXJuIHRoZSBvYmplY3QgdG8gYWxsb3cgZm9yIGNoYWluZWQgY2FsbHNcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9O1xyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1hbnVhbGx5IHRyaWdnZXJzIHRoZSByZWdpc3RlcmVkIGNhbGxiYWNrcyBmb3IgYSBnaXZlbiBldmVudCB0eXBlIG9uIGFsbCBlbGVtZW50cyBvciBjcmVhdGVzIGEgbmV3IGV2ZW50IGlmIGEgc3RyaW5nIGlzIHByb3ZpZGVkLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd8RXZlbnR9IGV2ZW50IC0gVGhlIGV2ZW50IHRvIHRyaWdnZXIuIFRoaXMgY2FuIGJlIGFuIGV2ZW50IHR5cGUgc3RyaW5nIChsaWtlICdjbGljaycpIG9yIGFuIGFjdHVhbCBFdmVudCBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIGFweC50cmlnZ2VyID0gZnVuY3Rpb24gKGV2ZW50KSB7XHJcbiAgICAgICAgbGV0IGV2ZW50VHlwZTtcclxuICAgICAgICBpZiAodHlwZW9mIGV2ZW50ID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICBldmVudFR5cGUgPSBldmVudDtcclxuICAgICAgICAgICAgZXZlbnQgPSBuZXcgRXZlbnQoZXZlbnQsIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSB9KTtcclxuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgRXZlbnQpIHtcclxuICAgICAgICAgICAgZXZlbnRUeXBlID0gZXZlbnQudHlwZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdJbnZhbGlkIGV2ZW50IHR5cGUgcHJvdmlkZWQgdG8gYXB4LnRyaWdnZXIuIEl0IG11c3QgYmUgZWl0aGVyIGEgc3RyaW5nIG9yIEV2ZW50IG9iamVjdC4nKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYXB4LmVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgICAgICAgZWxlbWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KTsgIC8vIFRoaXMgd2lsbCBhbGxvdyB0aGUgZXZlbnQgdG8gYnViYmxlIHVwIG5hdHVyYWxseS5cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gSGFuZGxlIGV2ZW50IGRlbGVnYXRpb24gbWFudWFsbHkgYnkgZXhlY3V0aW5nIGNhbGxiYWNrcyBpZiB0aGUgdGFyZ2V0IG1hdGNoZXMgdGhlIHNlbGVjdG9yXHJcbiAgICAgICAgT2JqZWN0LmtleXMoZG9DYWxsYmFja3MpLmZvckVhY2goKHVuaXF1ZUlkKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNhbGxiYWNrRGV0YWlscyA9IGRvQ2FsbGJhY2tzW3VuaXF1ZUlkXTtcclxuICAgICAgICAgICAgaWYgKGNhbGxiYWNrRGV0YWlscyAmJiBjYWxsYmFja0RldGFpbHMuZXZlbnRUeXBlID09PSBldmVudFR5cGUpIHtcclxuICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBldmVudCB0YXJnZXQgbWF0Y2hlcyB0aGUgc2VsZWN0b3IgdXNlZCBkdXJpbmcgbGlzdGVuZXIgcmVnaXN0cmF0aW9uXHJcbiAgICAgICAgICAgICAgICBjb25zdCB7IHNlbGVjdG9yIH0gPSBjYWxsYmFja0RldGFpbHM7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXNlbGVjdG9yIHx8IGV2ZW50LnRhcmdldC5tYXRjaGVzKHNlbGVjdG9yKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGV4ZWN1dGVDYWxsYmFja3MoZXZlbnQsIHVuaXF1ZUlkLCAwLCBzZWxlY3RvciwgZXZlbnQudGFyZ2V0KTsgIC8vIEltbWVkaWF0ZSBleGVjdXRpb24sIG5vIHRpbWVvdXRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIFxyXG4gICAgcmV0dXJuIGFweDtcclxufTtcclxuXHJcblxyXG5mdW5jdGlvbiBleGVjdXRlQ2FsbGJhY2tzKGV2ZW50LCB1bmlxdWVJZCwgdGltZW91dER1cmF0aW9uLCBzZWxlY3RvciA9ICcnLCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBtYXRjaGVkRWxlbWVudCA9IHNlbGVjdG9yID8gY2xvc2VzdChldmVudC50YXJnZXQsIHNlbGVjdG9yKSA6IGVsZW1lbnQ7XHJcbiAgICBpZiAoIW1hdGNoZWRFbGVtZW50KSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIENsZWFyIGFueSBwcmV2aW91cyB0aW1lb3V0IGZvciB0aGlzIHVuaXF1ZUlkIHRvIHByZXZlbnQgdW5pbnRlbmRlZCBiZWhhdmlvclxyXG4gICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRzW3VuaXF1ZUlkXSk7XHJcblxyXG4gICAgLy8gRnVuY3Rpb24gdG8gaGFuZGxlIHRoZSBleGVjdXRpb24gb2YgY2FsbGJhY2tzXHJcbiAgICBmdW5jdGlvbiBoYW5kbGVDYWxsYmFja0V4ZWN1dGlvbigpIHtcclxuICAgICAgICBpZiAoZG9DYWxsYmFja3NbdW5pcXVlSWRdKSB7XHJcbiAgICAgICAgICAgIGRvQ2FsbGJhY2tzW3VuaXF1ZUlkXS5yZWR1Y2UoKHByZXZQcm9taXNlLCBkb0NhbGxiYWNrKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJldlByb21pc2UudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGRvQ2FsbGJhY2suYmluZChtYXRjaGVkRWxlbWVudCkoZXZlbnQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQudGhlbihyZXNvbHZlKS5jYXRjaChyZWplY3QpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSwgUHJvbWlzZS5yZXNvbHZlKCkpLmNhdGNoKGVycm9yID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIGNhbGxiYWNrIGNoYWluOicsIGVycm9yKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIENoZWNrIGlmIHRpbWVvdXREdXJhdGlvbiBpcyB6ZXJvIHRvIGRlY2lkZSB3aGV0aGVyIHRvIGRlbGF5IHRoZSBjYWxsYmFjayBleGVjdXRpb24gb3Igbm90XHJcbiAgICBpZiAodGltZW91dER1cmF0aW9uID09PSAwKSB7XHJcbiAgICAgICAgaGFuZGxlQ2FsbGJhY2tFeGVjdXRpb24oKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGltZW91dHNbdW5pcXVlSWRdID0gc2V0VGltZW91dChoYW5kbGVDYWxsYmFja0V4ZWN1dGlvbiwgdGltZW91dER1cmF0aW9uKTtcclxuICAgIH1cclxufVxyXG5cclxuXHJcbmZ1bmN0aW9uIGdlbmVyYXRlVW5pcXVlSWQoKSB7XHJcbiAgICBjb25zdCByYW5kb21QYXJ0ID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDkpOyAvLyBNb3JlIHJhbmRvbW5lc3NcclxuICAgIGNvbnN0IHVuaXF1ZUlkID0gYCR7RGF0ZS5ub3coKX1fJHtyYW5kb21QYXJ0fV8ke2NvdW50ZXJ9YDtcclxuICAgIGNvdW50ZXIgPSAoY291bnRlciArIDEpICUgMTAwMDsgLy8gUmVzZXQgY291bnRlciB0byBhdm9pZCBvdmVyZmxvd1xyXG5cclxuICAgIHJldHVybiB1bmlxdWVJZDtcclxufVxyXG5cclxuZnVuY3Rpb24gY2xvc2VzdChlbGVtZW50LCBzZWxlY3Rvcikge1xyXG4gICAgd2hpbGUgKGVsZW1lbnQgJiYgZWxlbWVudC5ub2RlVHlwZSA9PT0gMSkge1xyXG4gICAgICAgIGlmIChlbGVtZW50Lm1hdGNoZXMoc2VsZWN0b3IpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbGVtZW50ID0gZWxlbWVudC5wYXJlbnROb2RlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbn1cclxuIiwiaW1wb3J0ICcuL2Nzcy90cmlzdGF0ZS5jc3MnO1xyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgYSB0cmktc3RhdGUgY2hlY2tib3ggZm9yIGVhY2ggY2hlY2tib3ggZWxlbWVudCBpbiB0aGUgYXB4LmVsZW1lbnRzIGFycmF5LlxyXG4gKiBAcGFyYW0ge0FycmF5PEhUTUxFbGVtZW50Pn0gYXB4IC0gQW4gYXJyYXkgb2YgSFRNTEVsZW1lbnRzIHdoaWNoIGlzIHJldHVybmVkIGJ5IEFQWCgpXHJcbiAqIEBleGFtcGxlXHJcbiAqIC8vIENhbGwgdGhlIHRyaXN0YXRlIGZ1bmN0aW9uIG9uIGFuIGFycmF5IG9mIGNoZWNrYm94IGVsZW1lbnRzXHJcbiAqIGFweC50cmlzdGF0ZSgpO1xyXG4gKi9cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKGFweCkge1xyXG4gICAgYXB4LnRyaXN0YXRlID0gZnVuY3Rpb24gKG9wdGlvbnMgPSB7fSl7XHJcbiAgICAgICAgYXB4LmVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVsZW1lbnQudHlwZSA9PT0gJ2NoZWNrYm94Jykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgW29yaWdpbmFsQ2hlY2tib3gsIHRyaXN0YXRlRG9tLCBoaWRkZW5JbnB1dF0gPSBjcmVhdGVUcmlTdGF0ZUNoZWNrYm94KGVsZW1lbnQsb3B0aW9ucyk7XHJcbiAgICAgICAgICAgICAgICAvL0lmIHRoZXJlIGlzIGEgXCJvcHRpb25zLmNhbGxiYWNrcy5hZnRlclwiIGNhbGxiYWNrIGluIG9wdGlvbnMgY2FsbCBpdFxyXG4gICAgICAgICAgICAgICAgaWYob3B0aW9ucy5jYWxsYmFja3MgJiYgb3B0aW9ucy5jYWxsYmFja3MuYWZ0ZXIgJiYgdHlwZW9mIG9wdGlvbnMuY2FsbGJhY2tzLmFmdGVyID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5jYWxsYmFja3MuYWZ0ZXIob3JpZ2luYWxDaGVja2JveCwgdHJpc3RhdGVEb20sIGhpZGRlbklucHV0KTtcclxuICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiB0b2dnbGVUcmlTdGF0ZUNoZWNrYm94U3RhdGUoY3VzdG9tQ2hlY2tib3gsIGFjdHVhbENoZWNrYm94LCBoaWRkZW5JbnB1dCkge1xyXG4gICAgaWYgKGN1c3RvbUNoZWNrYm94LmNsYXNzTGlzdC5jb250YWlucygnY2hlY2tlZCcpKSB7XHJcbiAgICAgICAgY3VzdG9tQ2hlY2tib3guY2xhc3NMaXN0LnJlbW92ZSgnY2hlY2tlZCcpO1xyXG4gICAgICAgIGN1c3RvbUNoZWNrYm94LmNsYXNzTGlzdC5hZGQoJ2Nyb3NzZWQnKTtcclxuICAgICAgICBhY3R1YWxDaGVja2JveC5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgaGlkZGVuSW5wdXQudmFsdWUgPSAnZmFsc2UnO1xyXG4gICAgfSBlbHNlIGlmIChjdXN0b21DaGVja2JveC5jbGFzc0xpc3QuY29udGFpbnMoJ2Nyb3NzZWQnKSkge1xyXG4gICAgICAgIGN1c3RvbUNoZWNrYm94LmNsYXNzTGlzdC5yZW1vdmUoJ2Nyb3NzZWQnKTtcclxuICAgICAgICBjdXN0b21DaGVja2JveC5jbGFzc0xpc3QuYWRkKCd1bmNoZWNrZWQnKTtcclxuICAgICAgICBoaWRkZW5JbnB1dC5yZW1vdmVBdHRyaWJ1dGUoJ25hbWUnKTsgLy8gRW5zdXJlIHRoZSBoaWRkZW4gaW5wdXQgZG9lc24ndCBwb3N0IGFueSB2YWx1ZVxyXG4gICAgICAgIGhpZGRlbklucHV0LnJlbW92ZUF0dHJpYnV0ZSgndmFsdWUnKTsgLy8gRW5zdXJlIHRoZSBoaWRkZW4gaW5wdXQgZG9lc24ndCBwb3N0IGFueSB2YWx1ZVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBjdXN0b21DaGVja2JveC5jbGFzc0xpc3QucmVtb3ZlKCd1bmNoZWNrZWQnKTtcclxuICAgICAgICBjdXN0b21DaGVja2JveC5jbGFzc0xpc3QuYWRkKCdjaGVja2VkJyk7XHJcbiAgICAgICAgYWN0dWFsQ2hlY2tib3guY2hlY2tlZCA9IHRydWU7XHJcbiAgICAgICAgaGlkZGVuSW5wdXQudmFsdWUgPSAndHJ1ZSc7XHJcbiAgICAgICAgaGlkZGVuSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgYWN0dWFsQ2hlY2tib3guZGF0YXNldC5uYW1lKTsgLy8gUmVzdG9yZSB0aGUgbmFtZSBmb3IgcG9zdGluZ1xyXG4gICAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBjcmVhdGVUcmlTdGF0ZUNoZWNrYm94KGNoZWNrYm94RWxlbWVudCwgb3B0aW9ucykge1xyXG4gICAgXHJcbiAgICAvL2dldCB0aGUgY2hlY2tib3ggbWFyZ2lucyBpbmNsdWRpbmcgYnJvd3NlciBkZWZhdWx0XHJcbiAgICBjb25zdCBjaGVja2JveFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoY2hlY2tib3hFbGVtZW50KTtcclxuICAgIC8vIEhpZGUgdGhlIG9yaWdpbmFsIGNoZWNrYm94XHJcbiAgICBjaGVja2JveEVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuXHJcbiAgICAvLyBDcmVhdGUgdGhlIGN1c3RvbSBjaGVja2JveCBkaXYgYW5kIHNldCBpdHMgaW5pdGlhbCBzdGF0ZVxyXG4gICAgY29uc3QgdHJpc3RhdGVEb20gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgIHRyaXN0YXRlRG9tLmNsYXNzTGlzdC5hZGQoJ2FweC10cmlzdGF0ZScpO1xyXG4gICAgaWYgKG9wdGlvbnMuc2l6ZSkge1xyXG4gICAgICAgIGlmIChvcHRpb25zLnNpemUud2lkdGgpIHtcclxuICAgICAgICAgICAgdHJpc3RhdGVEb20uc3R5bGUud2lkdGggPSBvcHRpb25zLnNpemUud2lkdGggKyAncHgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAob3B0aW9ucy5zaXplLmhlaWdodCkge1xyXG4gICAgICAgICAgICB0cmlzdGF0ZURvbS5zdHlsZS5oZWlnaHQgPSBvcHRpb25zLnNpemUuaGVpZ2h0ICsgJ3B4JztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBpZihvcHRpb25zLmNsYXNzZXMpIHRyaXN0YXRlRG9tLmNsYXNzTGlzdC5hZGQoLi4uY29tcHV0ZUNsYXNzZXMob3B0aW9ucy5jbGFzc2VzKSk7XHJcblxyXG4gICAgdHJpc3RhdGVEb20uc3R5bGUubWFyZ2luID0gY2hlY2tib3hTdHlsZS5tYXJnaW47XHJcblxyXG4gICAgaWYgKGNoZWNrYm94RWxlbWVudC5jaGVja2VkKSB7XHJcbiAgICAgICAgdHJpc3RhdGVEb20uY2xhc3NMaXN0LmFkZCgnY2hlY2tlZCcpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICB0cmlzdGF0ZURvbS5jbGFzc0xpc3QuYWRkKCd1bmNoZWNrZWQnKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBDcmVhdGUgdGhlIGhpZGRlbiBpbnB1dCBmaWVsZFxyXG4gICAgY29uc3QgaGlkZGVuSW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xyXG4gICAgaGlkZGVuSW5wdXQudHlwZSA9ICdoaWRkZW4nO1xyXG4gICAgaGlkZGVuSW5wdXQubmFtZSA9IGNoZWNrYm94RWxlbWVudC5uYW1lOyAvLyBDb3B5IHRoZSBuYW1lIGZyb20gdGhlIG9yaWdpbmFsIGNoZWNrYm94XHJcbiAgICBjaGVja2JveEVsZW1lbnQuZGF0YXNldC5uYW1lID0gY2hlY2tib3hFbGVtZW50Lm5hbWU7IC8vIFN0b3JlIHRoZSBuYW1lIGluIGEgZGF0YSBhdHRyaWJ1dGUgZm9yIGxhdGVyIHVzZVxyXG4gICAgY2hlY2tib3hFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnbmFtZScpOyAvLyBSZW1vdmUgdGhlIG5hbWUgZnJvbSB0aGUgb3JpZ2luYWwgY2hlY2tib3ggdG8gYXZvaWQgZG91YmxlIHBvc3RpbmdcclxuXHJcbiAgICBpZiAob3B0aW9ucy5kZWZhdWx0U3RhdGUpIHNldERlZmF1bHRTdGF0ZShvcHRpb25zLCB0cmlzdGF0ZURvbSwgaGlkZGVuSW5wdXQpO1xyXG4gICAgZWxzZXtcclxuICAgICAgICAvLyBTZXQgdGhlIGluaXRpYWwgdmFsdWUgZm9yIHRoZSBoaWRkZW4gaW5wdXQgYmFzZWQgb24gdGhlIGNoZWNrYm94J3Mgc3RhdGVcclxuICAgICAgICBpZiAoY2hlY2tib3hFbGVtZW50LmNoZWNrZWQpIHtcclxuICAgICAgICAgICAgaGlkZGVuSW5wdXQudmFsdWUgPSAndHJ1ZSc7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaGlkZGVuSW5wdXQubmFtZSA9ICcnOyAvLyBFbnN1cmUgdGhlIGhpZGRlbiBpbnB1dCBkb2Vzbid0IHBvc3QgYW55IHZhbHVlXHJcbiAgICAgICAgICAgIGhpZGRlbklucHV0LnZhbHVlID0gJyc7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vaGFuZGxlIGFjY2Vzc2liaWxpdHksIHNldCB0aGUgdGFiaW5kZXggdG8gdGhlIHNhbWUgYXMgdGhlIGNoZWNrYm94XHJcbiAgICB0cmlzdGF0ZURvbS50YWJJbmRleCA9IGNoZWNrYm94RWxlbWVudC50YWJJbmRleDtcclxuXHJcbiAgICAvLyBJbnNlcnQgdGhlIGhpZGRlbiBpbnB1dCBpbnNpZGUgdGhlIGN1c3RvbSBjaGVja2JveCBkaXZcclxuICAgIHRyaXN0YXRlRG9tLmFwcGVuZENoaWxkKGhpZGRlbklucHV0KTtcclxuXHJcbiAgICAvLyBJbnNlcnQgaXQgbmV4dCB0byB0aGUgYWN0dWFsIGNoZWNrYm94XHJcbiAgICBjaGVja2JveEVsZW1lbnQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodHJpc3RhdGVEb20sIGNoZWNrYm94RWxlbWVudC5uZXh0U2libGluZyk7XHJcblxyXG4gICAgLy8gQWRkIGV2ZW50IGxpc3RlbmVyXHJcbiAgICB0cmlzdGF0ZURvbS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgdG9nZ2xlVHJpU3RhdGVDaGVja2JveFN0YXRlKHRyaXN0YXRlRG9tLCBjaGVja2JveEVsZW1lbnQsIGhpZGRlbklucHV0KTtcclxuICAgICAgICBidWJibGVFdmVudHNUb09yaWdpbmFsQ2hlY2tib3gob3B0aW9ucywgY2hlY2tib3hFbGVtZW50LCB0cmlzdGF0ZURvbSwgaGlkZGVuSW5wdXQsIGUpO1xyXG4gICAgfSk7XHJcbiAgICB0cmlzdGF0ZURvbS5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIG9ua2V5dXAuYmluZChudWxsLCBjaGVja2JveEVsZW1lbnQpKTtcclxuXHJcbiAgICByZXR1cm4gW2NoZWNrYm94RWxlbWVudCwgdHJpc3RhdGVEb20sIGhpZGRlbklucHV0XTtcclxufVxyXG5cclxuZnVuY3Rpb24gc2V0RGVmYXVsdFN0YXRlKG9wdGlvbnMsIHRyaXN0YXRlRG9tLCBoaWRkZW5JbnB1dCkge1xyXG4gICAgLy9mb3IgYWxsIHZhbHVlcyBwb3NzaWJsZSBmb3IgZGVmYXVsdFN0YXRlLCBzZXQgdGhlIGluaXRpYWwgc3RhdGUgb2YgdGhlIGNoZWNrYm94XHJcbiAgICBpZiAob3B0aW9ucy5kZWZhdWx0U3RhdGUgPT09ICdjaGVja2VkJykge1xyXG4gICAgICAgIHRyaXN0YXRlRG9tLmNsYXNzTGlzdC5yZW1vdmUoJ3VuY2hlY2tlZCcpO1xyXG4gICAgICAgIHRyaXN0YXRlRG9tLmNsYXNzTGlzdC5hZGQoJ2NoZWNrZWQnKTtcclxuICAgICAgICBoaWRkZW5JbnB1dC52YWx1ZSA9ICd0cnVlJztcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKG9wdGlvbnMuZGVmYXVsdFN0YXRlID09PSAndW5jaGVja2VkJykge1xyXG4gICAgICAgIHRyaXN0YXRlRG9tLmNsYXNzTGlzdC5yZW1vdmUoJ2NoZWNrZWQnKTtcclxuICAgICAgICB0cmlzdGF0ZURvbS5jbGFzc0xpc3QuYWRkKCd1bmNoZWNrZWQnKTtcclxuICAgICAgICBoaWRkZW5JbnB1dC5yZW1vdmVBdHRyaWJ1dGUoJ25hbWUnKTsgLy8gRW5zdXJlIHRoZSBoaWRkZW4gaW5wdXQgZG9lc24ndCBwb3N0IGFueSB2YWx1ZVxyXG4gICAgICAgIGhpZGRlbklucHV0LnJlbW92ZUF0dHJpYnV0ZSgndmFsdWUnKTsgLy8gRW5zdXJlIHRoZSBoaWRkZW4gaW5wdXQgZG9lc24ndCBwb3N0IGFueSB2YWx1ZVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAob3B0aW9ucy5kZWZhdWx0U3RhdGUgPT09ICdjcm9zc2VkJykge1xyXG4gICAgICAgIHRyaXN0YXRlRG9tLmNsYXNzTGlzdC5yZW1vdmUoJ2NoZWNrZWQnKTtcclxuICAgICAgICB0cmlzdGF0ZURvbS5jbGFzc0xpc3QuYWRkKCdjcm9zc2VkJyk7XHJcbiAgICAgICAgaGlkZGVuSW5wdXQudmFsdWUgPSAnZmFsc2UnO1xyXG4gICAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBjb21wdXRlQ2xhc3NlcyhjbGFzc2VzKSB7XHJcbiAgICBsZXQgY29tcHV0ZWRDbGFzc2VzID0gW107XHJcbiAgICBpZih0eXBlb2YgY2xhc3NlcyA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAvL3JlcGxhY2UgbXVsdGlwbGUgd2hpdGUgc3BhY2VzIHdpdGggYSBzaW5nbGUgc3BhY2VcclxuICAgICAgICBjbGFzc2VzID0gY2xhc3Nlcy5yZXBsYWNlKC9cXHNcXHMrL2csICcgJyk7XHJcbiAgICAgICAgaWYoY2xhc3Nlcy5pbmRleE9mKCcgJykgPiAtMSlcclxuICAgICAgICAgICAgY29tcHV0ZWRDbGFzc2VzID0gY2xhc3Nlcy5zcGxpdCgnICcpO1xyXG4gICAgICAgIGVsc2UgaWYoY2xhc3Nlcy5pbmRleE9mKCcsJykgPiAtMSlcclxuICAgICAgICAgICAgY29tcHV0ZWRDbGFzc2VzID0gY2xhc3Nlcy5zcGxpdCgnLCcpO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgY29tcHV0ZWRDbGFzc2VzID0gW2NsYXNzZXNdO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZihBcnJheS5pc0FycmF5KGNsYXNzZXMpKSB7XHJcbiAgICAgICAgY29tcHV0ZWRDbGFzc2VzID0gY2xhc3NlcztcclxuICAgIH1cclxuICAgIHJldHVybiBjb21wdXRlZENsYXNzZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGJ1YmJsZUV2ZW50c1RvT3JpZ2luYWxDaGVja2JveChvcHRpb25zLCBjaGVja2JveEVsZW1lbnQsIHRyaXN0YXRlRG9tLCBoaWRkZW5JbnB1dCwgZXZlbnQpIHtcclxuICAgIC8vaWYgb3B0aW9ucy5jYWxsYmFja3MuY2hhbmdlIGlzIHNldCwgY2FsbCBpdFxyXG4gICAgaWYob3B0aW9ucy5jYWxsYmFja3MgJiYgb3B0aW9ucy5jYWxsYmFja3MuY2hhbmdlICYmIHR5cGVvZiBvcHRpb25zLmNhbGxiYWNrcy5jaGFuZ2UgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICBvcHRpb25zLmNhbGxiYWNrcy5jaGFuZ2UoY2hlY2tib3hFbGVtZW50LCB0cmlzdGF0ZURvbSwgaGlkZGVuSW5wdXQpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCFvcHRpb25zLmJ1YmJsZUV2ZW50cykgcmV0dXJuO1xyXG5cclxuICAgIGlmKGV2ZW50LnR5cGUgPT09ICdjbGljaycpIHtcclxuICAgICAgICBjaGVja2JveEVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgTW91c2VFdmVudCgnY2xpY2snLCB7IGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWUgfSkpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZihldmVudC50eXBlID09PSAna2V5dXAnKSB7XHJcbiAgICAgICAgY2hlY2tib3hFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IEtleWJvYXJkRXZlbnQoJ2tleXVwJywgeyBrZXk6ICcgJywgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSB9KSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmKGV2ZW50LnR5cGUgPT09ICdjaGFuZ2UnKSB7XHJcbiAgICAgICAgY2hlY2tib3hFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWUgfSkpO1xyXG4gICAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBvbmtleXVwKGNoZWNrYm94RWxlbWVudCwgZXZlbnQpIHtcclxuICAgIGlmIChldmVudC5rZXlDb2RlID09PSAzMikge1xyXG4gICAgICAgIGJ1YmJsZUV2ZW50c1RvT3JpZ2luYWxDaGVja2JveChjaGVja2JveEVsZW1lbnQsIGV2ZW50KTtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGV2ZW50LnRhcmdldC5jbGljaygpO1xyXG4gICAgfVxyXG59IiwiLy8gVGhlIG1vZHVsZSBjYWNoZVxudmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuXG4vLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcblx0dmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG5cdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0cztcblx0fVxuXHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuXHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHtcblx0XHRpZDogbW9kdWxlSWQsXG5cdFx0Ly8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWRcblx0XHRleHBvcnRzOiB7fVxuXHR9O1xuXG5cdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuXHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXShtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbi8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBfX3dlYnBhY2tfbW9kdWxlc19fO1xuXG4iLCIvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5uID0gKG1vZHVsZSkgPT4ge1xuXHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cblx0XHQoKSA9PiAobW9kdWxlWydkZWZhdWx0J10pIDpcblx0XHQoKSA9PiAobW9kdWxlKTtcblx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgeyBhOiBnZXR0ZXIgfSk7XG5cdHJldHVybiBnZXR0ZXI7XG59OyIsIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IChleHBvcnRzLCBkZWZpbml0aW9uKSA9PiB7XG5cdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG5cdFx0fVxuXHR9XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCIvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4ge1xuXHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcblx0fVxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmIgPSBkb2N1bWVudC5iYXNlVVJJIHx8IHNlbGYubG9jYXRpb24uaHJlZjtcblxuLy8gb2JqZWN0IHRvIHN0b3JlIGxvYWRlZCBhbmQgbG9hZGluZyBjaHVua3Ncbi8vIHVuZGVmaW5lZCA9IGNodW5rIG5vdCBsb2FkZWQsIG51bGwgPSBjaHVuayBwcmVsb2FkZWQvcHJlZmV0Y2hlZFxuLy8gW3Jlc29sdmUsIHJlamVjdCwgUHJvbWlzZV0gPSBjaHVuayBsb2FkaW5nLCAwID0gY2h1bmsgbG9hZGVkXG52YXIgaW5zdGFsbGVkQ2h1bmtzID0ge1xuXHRcIm1haW5cIjogMFxufTtcblxuLy8gbm8gY2h1bmsgb24gZGVtYW5kIGxvYWRpbmdcblxuLy8gbm8gcHJlZmV0Y2hpbmdcblxuLy8gbm8gcHJlbG9hZGVkXG5cbi8vIG5vIEhNUlxuXG4vLyBubyBITVIgbWFuaWZlc3RcblxuLy8gbm8gb24gY2h1bmtzIGxvYWRlZFxuXG4vLyBubyBqc29ucCBmdW5jdGlvbiIsIl9fd2VicGFja19yZXF1aXJlX18ubmMgPSB1bmRlZmluZWQ7IiwiaW1wb3J0IGF1Z21lbnRXaXRoTGlzdGVuIGZyb20gJy4vbW9kdWxlcy9saXN0ZW4vbGlzdGVuLm1qcyc7XHJcbmltcG9ydCBhdWdtZW50V2l0aFRyaXN0YXRlIGZyb20gJy4vbW9kdWxlcy90cmlzdGF0ZS90cmlzdGF0ZS5tanMnO1xyXG5pbXBvcnQgZGlhbG9nIGZyb20gJy4vbW9kdWxlcy9kaWFsb2cvZGlhbG9nLm1qcyc7XHJcbmltcG9ydCB7IGxvYWRDc3MgfSBmcm9tICcuL21vZHVsZXMvY29tbW9uLm1qcyc7XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyBhbiBBUFggb2JqZWN0IHRoYXQgd3JhcHMgb25lIG9yIG1vcmUgSFRNTCBlbGVtZW50cy5cclxuICogQHBhcmFtIHtzdHJpbmd8SFRNTEVsZW1lbnR8Tm9kZUxpc3R8SFRNTENvbGxlY3Rpb258QXJyYXk8SFRNTEVsZW1lbnQ+fGpRdWVyeXxGdW5jdGlvbn0gaW5wdXQgLSBUaGUgaW5wdXQgdG8gY3JlYXRlIHRoZSBBUFggb2JqZWN0IGZyb20uXHJcbiAqIEByZXR1cm5zIHtPYmplY3R9IFRoZSBBUFggb2JqZWN0LlxyXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIGlucHV0IHR5cGUgaXMgaW52YWxpZC5cclxuICogQGV4YW1wbGVcclxuICogLy8gWFBhdGhcclxuICogY29uc3QgYXB4MSA9IEFQWCgnLy9kaXZbQGNsYXNzPVwiZXhhbXBsZVwiXScpO1xyXG4gKlxyXG4gKiAvLyBDU1Mgc2VsZWN0b3JcclxuICogY29uc3QgYXB4MiA9IEFQWCgnLmV4YW1wbGUnKTtcclxuICpcclxuICogLy8gU2luZ2xlIGVsZW1lbnRcclxuICogY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5leGFtcGxlJyk7XHJcbiAqIGNvbnN0IGFweDMgPSBBUFgoZWxlbWVudCk7XHJcbiAqXHJcbiAqIC8vIE5vZGVMaXN0IG9yIEhUTUxDb2xsZWN0aW9uXHJcbiAqIGNvbnN0IG5vZGVMaXN0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmV4YW1wbGUnKTtcclxuICogY29uc3QgYXB4NCA9IEFQWChub2RlTGlzdCk7XHJcbiAqXHJcbiAqIC8vIEFycmF5IG9mIGVsZW1lbnRzXHJcbiAqIGNvbnN0IGVsZW1lbnRzID0gW2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5leGFtcGxlMScpLCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuZXhhbXBsZTInKV07XHJcbiAqIGNvbnN0IGFweDUgPSBBUFgoZWxlbWVudHMpO1xyXG4gKlxyXG4gKiAvLyBqUXVlcnkgb2JqZWN0XHJcbiAqIGNvbnN0ICRleGFtcGxlID0gJCgnLmV4YW1wbGUnKTtcclxuICogY29uc3QgYXB4NiA9IEFQWCgkZXhhbXBsZSk7XHJcbiAqXHJcbiAqIC8vIEZ1bmN0aW9uIHJldHVybmluZyBhbiBBUFggb2JqZWN0XHJcbiAqIGNvbnN0IGFweDcgPSBBUFgoKCkgPT4gQVBYKCcuZXhhbXBsZScpKTtcclxuICovXHJcbmNvbnN0IEFQWCA9IGZ1bmN0aW9uIChpbnB1dCwgY29udGV4dCA9IGRvY3VtZW50KSB7XHJcbiAgICBsZXQgZWxlbWVudHM7XHJcblxyXG4gICAgLy8gVmFsaWRhdGUgY29udGV4dFxyXG4gICAgaWYgKHR5cGVvZiBjb250ZXh0ID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgIGNvbnRleHQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGNvbnRleHQpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoQVBYLmlzQVBYT2JqZWN0KGNvbnRleHQpKSB7XHJcbiAgICAgICAgY29udGV4dCA9IGNvbnRleHQuZmlyc3QoKTtcclxuICAgIH0gZWxzZSBpZiAoIShjb250ZXh0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgfHwgY29udGV4dCBpbnN0YW5jZW9mIERvY3VtZW50KSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjb250ZXh0IGZvciBBUFgnKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJyAmJiBpbnB1dC5zdGFydHNXaXRoKCcvLycpKSB7XHJcbiAgICAgICAgLy8gWFBhdGggd2l0aCBjb250ZXh0XHJcbiAgICAgICAgZWxlbWVudHMgPSBkb2N1bWVudC5ldmFsdWF0ZShpbnB1dCwgY29udGV4dCwgbnVsbCwgWFBhdGhSZXN1bHQuQU5ZX1RZUEUsIG51bGwpO1xyXG4gICAgICAgIGxldCBub2RlcyA9IFtdO1xyXG4gICAgICAgIGxldCBub2RlID0gZWxlbWVudHMuaXRlcmF0ZU5leHQoKTtcclxuICAgICAgICB3aGlsZSAobm9kZSkge1xyXG4gICAgICAgICAgICBub2Rlcy5wdXNoKG5vZGUpO1xyXG4gICAgICAgICAgICBub2RlID0gZWxlbWVudHMuaXRlcmF0ZU5leHQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxlbWVudHMgPSBub2RlcztcclxuICAgIH0gZWxzZSBpZiAodHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgIC8vIENTUyBzZWxlY3RvciB3aXRoIGNvbnRleHRcclxuICAgICAgICBlbGVtZW50cyA9IGNvbnRleHQucXVlcnlTZWxlY3RvckFsbChpbnB1dCk7XHJcbiAgICB9IGVsc2UgaWYgKGlucHV0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcclxuICAgICAgICAvLyBTaW5nbGUgZWxlbWVudCB3aXRoaW4gY29udGV4dFxyXG4gICAgICAgIGVsZW1lbnRzID0gY29udGV4dC5jb250YWlucyhpbnB1dCkgPyBbaW5wdXRdIDogW107XHJcbiAgICB9IGVsc2UgaWYgKGlucHV0IGluc3RhbmNlb2YgTm9kZUxpc3QgfHwgaW5wdXQgaW5zdGFuY2VvZiBIVE1MQ29sbGVjdGlvbikge1xyXG4gICAgICAgIC8vIE5vZGVMaXN0IG9yIEhUTUxDb2xsZWN0aW9uIHdpdGhpbiBjb250ZXh0XHJcbiAgICAgICAgZWxlbWVudHMgPSBBcnJheS5mcm9tKGlucHV0KS5maWx0ZXIoZWwgPT4gY29udGV4dC5jb250YWlucyhlbCkpO1xyXG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGlucHV0KSAmJiBpbnB1dC5ldmVyeShlbCA9PiBlbCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSkge1xyXG4gICAgICAgIC8vIEFycmF5IG9mIGVsZW1lbnRzIHdpdGhpbiBjb250ZXh0XHJcbiAgICAgICAgZWxlbWVudHMgPSBpbnB1dC5maWx0ZXIoZWwgPT4gY29udGV4dC5jb250YWlucyhlbCkpO1xyXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgalF1ZXJ5ICE9ICd1bmRlZmluZWQnICYmIGlucHV0IGluc3RhbmNlb2YgalF1ZXJ5KSB7XHJcbiAgICAgICAgLy8galF1ZXJ5IG9iamVjdCB3aXRoaW4gY29udGV4dFxyXG4gICAgICAgIGVsZW1lbnRzID0gQXJyYXkuZnJvbShpbnB1dC5nZXQoKSkuZmlsdGVyKGVsID0+IGNvbnRleHQuY29udGFpbnMoZWwpKTtcclxuICAgIH0gZWxzZSBpZiAodHlwZW9mIGlucHV0ID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgLy8gRnVuY3Rpb24gcmV0dXJuaW5nIGFuIEFQWCBvYmplY3Qgd2l0aCBjb250ZXh0XHJcbiAgICAgICAgZWxlbWVudHMgPSBBUFgoaW5wdXQoKSwgY29udGV4dCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBpbnB1dCB0eXBlIGZvciBBUFgnKTtcclxuICAgIH1cclxuXHJcbiAgICB2YXIgYXB4ID0ge1xyXG4gICAgICAgIGVsZW1lbnRzOiBlbGVtZW50cyxcclxuICAgICAgICBfaXNBUFhPYmplY3Q6IHRydWVcclxuICAgIH07XHJcbiAgICBhcHgubGVuZ3RoID0gZWxlbWVudHMubGVuZ3RoO1xyXG4gICAgYXB4LmVhY2ggPSBmdW5jdGlvbiAoY2FsbGJhY2spIHtcclxuICAgICAgICBpZiAodGhpcy5lbGVtZW50cyBpbnN0YW5jZW9mIEFycmF5KSB0aGlzLmVsZW1lbnRzLmZvckVhY2goY2FsbGJhY2spO1xyXG4gICAgICAgIGlmICh0aGlzLmVsZW1lbnRzIGluc3RhbmNlb2YgTm9kZUxpc3QpIEFycmF5LmZyb20odGhpcy5lbGVtZW50cykuZm9yRWFjaChjYWxsYmFjayk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9O1xyXG4gICAgYXB4LmdldCA9IGZ1bmN0aW9uIChpbmRleCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRzW2luZGV4XTtcclxuICAgIH07XHJcbiAgICBhcHguYWxsID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmVsZW1lbnRzIGluc3RhbmNlb2YgQXJyYXkpIHJldHVybiB0aGlzLmVsZW1lbnRzO1xyXG4gICAgICAgIGlmICh0aGlzLmVsZW1lbnRzIGluc3RhbmNlb2YgTm9kZUxpc3QpIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZWxlbWVudHMpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfTtcclxuICAgIGFweC5maXJzdCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXQoMCk7XHJcbiAgICB9O1xyXG4gICAgYXVnbWVudFdpdGhMaXN0ZW4oYXB4KTtcclxuICAgIGF1Z21lbnRXaXRoVHJpc3RhdGUoYXB4KTtcclxuICAgIHJldHVybiBhcHg7XHJcbn07XHJcblxyXG5BUFgubG9hZENzcyA9IGxvYWRDc3M7XHJcbkFQWC5kaWFsb2cgPSBkaWFsb2c7XHJcbkFQWC5pc0FQWE9iamVjdCA9IGZ1bmN0aW9uIChvYmopIHtcclxuICAgIHJldHVybiBvYmogJiYgb2JqLl9pc0FQWE9iamVjdCA9PT0gdHJ1ZTtcclxufVxyXG5BUFguaXNfbnVtZXJpYyA9IChuKSA9PiB7XHJcbiAgICByZXR1cm4gIWlzTmFOKG4gLSBwYXJzZUZsb2F0KG4pKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgQVBYOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==
|
|
1749
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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O0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxzRUFBaUI7QUFDckIsSUFBSSwwRUFBbUI7QUFDdkI7QUFDQTtBQUNBO0FBQ0EsY0FBYyx3REFBTztBQUNyQixhQUFhLGtFQUFNO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUVBQWUsR0FBRyxFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFwcGl1cy1mci9hcHgvLi9tb2R1bGVzL2RpYWxvZy9jc3MvZGlhbG9nLmNzcyIsIndlYnBhY2s6Ly9AYXBwaXVzLWZyL2FweC8uL21vZHVsZXMvdHJpc3RhdGUvY3NzL3RyaXN0YXRlLmNzcyIsIndlYnBhY2s6Ly9AYXBwaXVzLWZyL2FweC8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanMiLCJ3ZWJwYWNrOi8vQGFwcGl1cy1mci9hcHgvLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvZ2V0VXJsLmpzIiwid2VicGFjazovL0BhcHBpdXMtZnIvYXB4Ly4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanMiLCJ3ZWJwYWNrOi8vQGFwcGl1cy1mci9hcHgvLi9tb2R1bGVzL2RpYWxvZy9odG1sL2RpYWxvZy5odG1sIiwid2VicGFjazovL0BhcHBpdXMtZnIvYXB4Ly4vbW9kdWxlcy9kaWFsb2cvY3NzL2RpYWxvZy5jc3M/YTU2NyIsIndlYnBhY2s6Ly9AYXBwaXVzLWZyL2FweC8uL21vZHVsZXMvdHJpc3RhdGUvY3NzL3RyaXN0YXRlLmNzcz9hMDk0Iiwid2VicGFjazovL0BhcHBpdXMtZnIvYXB4Ly4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzIiwid2VicGFjazovL0BhcHBpdXMtZnIvYXB4Ly4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qcyIsIndlYnBhY2s6Ly9AYXBwaXVzLWZyL2FweC8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qcyIsIndlYnBhY2s6Ly9AYXBwaXVzLWZyL2FweC8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qcyIsIndlYnBhY2s6Ly9AYXBwaXVzLWZyL2FweC8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzIiwid2VicGFjazovL0BhcHBpdXMtZnIvYXB4Ly4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanMiLCJ3ZWJwYWNrOi8vQGFwcGl1cy1mci9hcHgvLi9tb2R1bGVzL2NvbW1vbi5tanMiLCJ3ZWJwYWNrOi8vQGFwcGl1cy1mci9hcHgvLi9tb2R1bGVzL2RpYWxvZy9kaWFsb2cubWpzIiwid2VicGFjazovL0BhcHBpdXMtZnIvYXB4Ly4vbW9kdWxlcy9saXN0ZW4vbGlzdGVuLm1qcyIsIndlYnBhY2s6Ly9AYXBwaXVzLWZyL2FweC8uL21vZHVsZXMvdHJpc3RhdGUvdHJpc3RhdGUubWpzIiwid2VicGFjazovL0BhcHBpdXMtZnIvYXB4L3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL0BhcHBpdXMtZnIvYXB4L3dlYnBhY2svcnVudGltZS9jb21wYXQgZ2V0IGRlZmF1bHQgZXhwb3J0Iiwid2VicGFjazovL0BhcHBpdXMtZnIvYXB4L3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsIndlYnBhY2s6Ly9AYXBwaXVzLWZyL2FweC93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL0BhcHBpdXMtZnIvYXB4L3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vQGFwcGl1cy1mci9hcHgvd2VicGFjay9ydW50aW1lL2pzb25wIGNodW5rIGxvYWRpbmciLCJ3ZWJwYWNrOi8vQGFwcGl1cy1mci9hcHgvd2VicGFjay9ydW50aW1lL25vbmNlIiwid2VicGFjazovL0BhcHBpdXMtZnIvYXB4Ly4vQVBYLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBgLyogRGlhbG9nIHN0eWxpbmcgKi9cclxuLkFQWC1kaWFsb2cge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHotaW5kZXg6IDEwMDI7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBvdmVyZmxvdzogYXV0bztcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcclxuICAgIC8qIERpbW1lZCBiYWNrZ3JvdW5kIGZvciBmb2N1cyBvbiBkaWFsb2cgKi9cclxufVxyXG5cclxuLkFQWC1kaWFsb2ctY29udGVudCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xyXG4gICAgcGFkZGluZzogNDBweDtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgbWluLXdpZHRoOiAzMDBweDtcclxuICAgIG1heC13aWR0aDogODAlO1xyXG4gICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gICAgYm94LXNoYWRvdzogMHB4IDZweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcclxuICAgIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgc2Fucy1zZXJpZjtcclxufVxyXG5cclxuaDIuQVBYLWRpYWxvZy10aXRsZXtcclxuICAgIG1hcmdpbi10b3A6MDtcclxufVxyXG5cclxuLkFQWC1jbG9zZS1kaWFsb2cge1xyXG4gICAgY29sb3I6ICNhYWE7XHJcbiAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICBmb250LXNpemU6IDI0cHg7XHJcbiAgICBtYXJnaW4tdG9wOiAtMTBweDtcclxuICAgIC8qIEFkanVzdCBwb3NpdGlvbmluZyAqL1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAtMTBweDtcclxufVxyXG5cclxuLkFQWC1jbG9zZS1kaWFsb2c6aG92ZXIsXHJcbi5BUFgtY2xvc2UtZGlhbG9nOmZvY3VzIHtcclxuICAgIGNvbG9yOiAjMzMzO1xyXG4gICAgLyogRGFya2VyIGNvbG9yIG9uIGhvdmVyL2ZvY3VzICovXHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbi8qIElucHV0IGZpZWxkcyBzdHlsaW5nICovXHJcbi5BUFgtZGlhbG9nLWNvbnRlbnQgaW5wdXRbdHlwZT1cInRleHRcIl0sXHJcbi5BUFgtZGlhbG9nLWNvbnRlbnQgaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcclxuLkFQWC1kaWFsb2ctY29udGVudCBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcclxuLkFQWC1kaWFsb2ctY29udGVudCBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0ge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwYWRkaW5nOiAxMHB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XHJcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICBmb250LWZhbWlseTogJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIHNhbnMtc2VyaWY7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuM3M7XHJcbn1cclxuXHJcbi5BUFgtZGlhbG9nLWNvbnRlbnQgaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsXHJcbi5BUFgtZGlhbG9nLWNvbnRlbnQgaW5wdXRbdHlwZT1cIm51bWJlclwiXTpmb2N1cyxcclxuLkFQWC1kaWFsb2ctY29udGVudCBpbnB1dFt0eXBlPVwiZGF0ZVwiXTpmb2N1cyxcclxuLkFQWC1kaWFsb2ctY29udGVudCBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06Zm9jdXMge1xyXG4gICAgYm9yZGVyLWNvbG9yOiAjMkMzRTUwO1xyXG4gICAgLyogRGVlcCBCbHVlIENvbG9yICovXHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG59XHJcblxyXG4vKiBCdXR0b24gaW4gdGhlIGRpYWxvZyAqL1xyXG4uQVBYLWRpYWxvZy1idXR0b24tY29udGFpbmVyIGJ1dHRvbiB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMkMzRTUwO1xyXG4gICAgY29sb3I6ICNFQ0YwRjE7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG4gICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcclxufVxyXG5cclxuLkFQWC1kaWFsb2ctYnV0dG9uLWNvbnRhaW5lciBidXR0b246aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzM0NDk1RTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcclxuICAgIGJveC1zaGFkb3c6IDAgNHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xyXG59XHJcblxyXG4uQVBYLWRpYWxvZy1idXR0b24tY29udGFpbmVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBnYXA6IDEwcHg7XHJcbiAgICBtYXJnaW4tdG9wOjFlbTtcclxuICAgIC8qIHNwYWNpbmcgYmV0d2VlbiBidXR0b25zICovXHJcbn1cclxuXHJcbi8qIExvYWRpbmcgaW5kaWNhdG9yICovXHJcbi5BUFgtZGlhbG9nLWxvYWRpbmctaW5kaWNhdG9yIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBoZWlnaHQ6IDEwMHB4O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5BUFgtZGlhbG9nLWxvYWRpbmctaW5kaWNhdG9yOjpiZWZvcmUge1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICB3aWR0aDogNDBweDtcclxuICAgIGhlaWdodDogNDBweDtcclxuICAgIGJvcmRlcjogNHB4IHNvbGlkICNmM2YzZjM7XHJcbiAgICBib3JkZXItdG9wOiA0cHggc29saWQgIzJDM0U1MDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIGFuaW1hdGlvbjogQVBYLWRpYWxvZy1zcGluIDFzIGxpbmVhciBpbmZpbml0ZTtcclxufVxyXG5cclxuQGtleWZyYW1lcyBBUFgtZGlhbG9nLXNwaW4ge1xyXG4gICAgMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxyXG4gICAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH1cclxufVxyXG4uQVBYLWRpYWxvZy1idXR0b24tZGlzYWJsZWQge1xyXG4gICAgb3BhY2l0eTogMC41O1xyXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZCAhaW1wb3J0YW50O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzk1YTVhNiAhaW1wb3J0YW50OyAvKiBHcmF5ZWQgb3V0IGNvbG9yICovXHJcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xyXG4gICAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5BUFgtZGlhbG9nLWJ1dHRvbi1kaXNhYmxlZDpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTVhNWE2ICFpbXBvcnRhbnQ7IC8qIEtlZXAgZ3JheSBvbiBob3ZlciAqL1xyXG4gICAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi8qIEFkZCBhIHN1YnRsZSBzdHJpa2V0aHJvdWdoIGVmZmVjdCAqL1xyXG4uQVBYLWRpYWxvZy1idXR0b24tZGlzYWJsZWQ6OmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiA1MCU7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDFweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yKTtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKC01ZGVnKTtcclxufWAsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vbW9kdWxlcy9kaWFsb2cvY3NzL2RpYWxvZy5jc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQUEsbUJBQW1CO0FBQ25CO0lBQ0ksYUFBYTtJQUNiLGVBQWU7SUFDZixhQUFhO0lBQ2IsT0FBTztJQUNQLE1BQU07SUFDTixXQUFXO0lBQ1gsWUFBWTtJQUNaLGNBQWM7SUFDZCxvQ0FBb0M7SUFDcEMsMENBQTBDO0FBQzlDOztBQUVBO0lBQ0kseUJBQXlCO0lBQ3pCLGFBQWE7SUFDYixZQUFZO0lBQ1osV0FBVztJQUNYLGdCQUFnQjtJQUNoQixjQUFjO0lBQ2QsWUFBWTtJQUNaLGtCQUFrQjtJQUNsQiwyQ0FBMkM7SUFDM0MsZ0RBQWdEO0FBQ3BEOztBQUVBO0lBQ0ksWUFBWTtBQUNoQjs7QUFFQTtJQUNJLFdBQVc7SUFDWCxZQUFZO0lBQ1osZUFBZTtJQUNmLGlCQUFpQjtJQUNqQix1QkFBdUI7SUFDdkIsbUJBQW1CO0FBQ3ZCOztBQUVBOztJQUVJLFdBQVc7SUFDWCxnQ0FBZ0M7SUFDaEMsZUFBZTtBQUNuQjs7QUFFQSx5QkFBeUI7QUFDekI7Ozs7SUFJSSxXQUFXO0lBQ1gsYUFBYTtJQUNiLG1CQUFtQjtJQUNuQixzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCLGdEQUFnRDtJQUNoRCxlQUFlO0lBQ2Ysc0JBQXNCO0lBQ3RCLDZCQUE2QjtBQUNqQzs7QUFFQTs7OztJQUlJLHFCQUFxQjtJQUNyQixvQkFBb0I7SUFDcEIsYUFBYTtBQUNqQjs7QUFFQSx5QkFBeUI7QUFDekI7SUFDSSxrQkFBa0I7SUFDbEIseUJBQXlCO0lBQ3pCLGNBQWM7SUFDZCxZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLGtCQUFrQjtJQUNsQixlQUFlO0lBQ2YsZUFBZTtJQUNmLHlCQUF5QjtJQUN6Qix3Q0FBd0M7QUFDNUM7O0FBRUE7SUFDSSx5QkFBeUI7SUFDekIsMkJBQTJCO0lBQzNCLHlDQUF5QztBQUM3Qzs7QUFFQTtJQUNJLGFBQWE7SUFDYixTQUFTO0lBQ1QsY0FBYztJQUNkLDRCQUE0QjtBQUNoQzs7QUFFQSxzQkFBc0I7QUFDdEI7SUFDSSxhQUFhO0lBQ2IsdUJBQXVCO0lBQ3ZCLG1CQUFtQjtJQUNuQixhQUFhO0lBQ2IsV0FBVztBQUNmOztBQUVBO0lBQ0ksV0FBVztJQUNYLFdBQVc7SUFDWCxZQUFZO0lBQ1oseUJBQXlCO0lBQ3pCLDZCQUE2QjtJQUM3QixrQkFBa0I7SUFDbEIsNkNBQTZDO0FBQ2pEOztBQUVBO0lBQ0ksS0FBSyx1QkFBdUIsRUFBRTtJQUM5QixPQUFPLHlCQUF5QixFQUFFO0FBQ3RDO0FBQ0E7SUFDSSxZQUFZO0lBQ1osOEJBQThCO0lBQzlCLG9DQUFvQyxFQUFFLHFCQUFxQjtJQUMzRCwyQkFBMkI7SUFDM0IseUJBQXlCO0lBQ3pCLDBCQUEwQjtBQUM5Qjs7QUFFQTtJQUNJLG9DQUFvQyxFQUFFLHVCQUF1QjtJQUM3RCwwQkFBMEI7QUFDOUI7O0FBRUEsc0NBQXNDO0FBQ3RDO0lBQ0ksV0FBVztJQUNYLGtCQUFrQjtJQUNsQixRQUFRO0lBQ1IsT0FBTztJQUNQLFdBQVc7SUFDWCxXQUFXO0lBQ1gsb0NBQW9DO0lBQ3BDLHdCQUF3QjtBQUM1QlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIvKiBEaWFsb2cgc3R5bGluZyAqL1xcclxcbi5BUFgtZGlhbG9nIHtcXHJcXG4gICAgZGlzcGxheTogbm9uZTtcXHJcXG4gICAgcG9zaXRpb246IGZpeGVkO1xcclxcbiAgICB6LWluZGV4OiAxMDAyO1xcclxcbiAgICBsZWZ0OiAwO1xcclxcbiAgICB0b3A6IDA7XFxyXFxuICAgIHdpZHRoOiAxMDAlO1xcclxcbiAgICBoZWlnaHQ6IDEwMCU7XFxyXFxuICAgIG92ZXJmbG93OiBhdXRvO1xcclxcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XFxyXFxuICAgIC8qIERpbW1lZCBiYWNrZ3JvdW5kIGZvciBmb2N1cyBvbiBkaWFsb2cgKi9cXHJcXG59XFxyXFxuXFxyXFxuLkFQWC1kaWFsb2ctY29udGVudCB7XFxyXFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XFxyXFxuICAgIHBhZGRpbmc6IDQwcHg7XFxyXFxuICAgIGJvcmRlcjogbm9uZTtcXHJcXG4gICAgd2lkdGg6IGF1dG87XFxyXFxuICAgIG1pbi13aWR0aDogMzAwcHg7XFxyXFxuICAgIG1heC13aWR0aDogODAlO1xcclxcbiAgICBtYXJnaW46IGF1dG87XFxyXFxuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcXHJcXG4gICAgYm94LXNoYWRvdzogMHB4IDZweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcXHJcXG4gICAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBzYW5zLXNlcmlmO1xcclxcbn1cXHJcXG5cXHJcXG5oMi5BUFgtZGlhbG9nLXRpdGxle1xcclxcbiAgICBtYXJnaW4tdG9wOjA7XFxyXFxufVxcclxcblxcclxcbi5BUFgtY2xvc2UtZGlhbG9nIHtcXHJcXG4gICAgY29sb3I6ICNhYWE7XFxyXFxuICAgIGZsb2F0OiByaWdodDtcXHJcXG4gICAgZm9udC1zaXplOiAyNHB4O1xcclxcbiAgICBtYXJnaW4tdG9wOiAtMTBweDtcXHJcXG4gICAgLyogQWRqdXN0IHBvc2l0aW9uaW5nICovXFxyXFxuICAgIG1hcmdpbi1yaWdodDogLTEwcHg7XFxyXFxufVxcclxcblxcclxcbi5BUFgtY2xvc2UtZGlhbG9nOmhvdmVyLFxcclxcbi5BUFgtY2xvc2UtZGlhbG9nOmZvY3VzIHtcXHJcXG4gICAgY29sb3I6ICMzMzM7XFxyXFxuICAgIC8qIERhcmtlciBjb2xvciBvbiBob3Zlci9mb2N1cyAqL1xcclxcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxyXFxufVxcclxcblxcclxcbi8qIElucHV0IGZpZWxkcyBzdHlsaW5nICovXFxyXFxuLkFQWC1kaWFsb2ctY29udGVudCBpbnB1dFt0eXBlPVxcXCJ0ZXh0XFxcIl0sXFxyXFxuLkFQWC1kaWFsb2ctY29udGVudCBpbnB1dFt0eXBlPVxcXCJudW1iZXJcXFwiXSxcXHJcXG4uQVBYLWRpYWxvZy1jb250ZW50IGlucHV0W3R5cGU9XFxcImRhdGVcXFwiXSxcXHJcXG4uQVBYLWRpYWxvZy1jb250ZW50IGlucHV0W3R5cGU9XFxcImRhdGV0aW1lLWxvY2FsXFxcIl0ge1xcclxcbiAgICB3aWR0aDogMTAwJTtcXHJcXG4gICAgcGFkZGluZzogMTBweDtcXHJcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcXHJcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcXHJcXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xcclxcbiAgICBmb250LWZhbWlseTogJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIHNhbnMtc2VyaWY7XFxyXFxuICAgIGZvbnQtc2l6ZTogMTZweDtcXHJcXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXHJcXG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuM3M7XFxyXFxufVxcclxcblxcclxcbi5BUFgtZGlhbG9nLWNvbnRlbnQgaW5wdXRbdHlwZT1cXFwidGV4dFxcXCJdOmZvY3VzLFxcclxcbi5BUFgtZGlhbG9nLWNvbnRlbnQgaW5wdXRbdHlwZT1cXFwibnVtYmVyXFxcIl06Zm9jdXMsXFxyXFxuLkFQWC1kaWFsb2ctY29udGVudCBpbnB1dFt0eXBlPVxcXCJkYXRlXFxcIl06Zm9jdXMsXFxyXFxuLkFQWC1kaWFsb2ctY29udGVudCBpbnB1dFt0eXBlPVxcXCJkYXRldGltZS1sb2NhbFxcXCJdOmZvY3VzIHtcXHJcXG4gICAgYm9yZGVyLWNvbG9yOiAjMkMzRTUwO1xcclxcbiAgICAvKiBEZWVwIEJsdWUgQ29sb3IgKi9cXHJcXG4gICAgb3V0bGluZTogbm9uZTtcXHJcXG59XFxyXFxuXFxyXFxuLyogQnV0dG9uIGluIHRoZSBkaWFsb2cgKi9cXHJcXG4uQVBYLWRpYWxvZy1idXR0b24tY29udGFpbmVyIGJ1dHRvbiB7XFxyXFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXHJcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzJDM0U1MDtcXHJcXG4gICAgY29sb3I6ICNFQ0YwRjE7XFxyXFxuICAgIGJvcmRlcjogbm9uZTtcXHJcXG4gICAgcGFkZGluZzogMTBweCAyMHB4O1xcclxcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XFxyXFxuICAgIGZvbnQtc2l6ZTogMTZweDtcXHJcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcclxcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xcclxcbiAgICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xcclxcbn1cXHJcXG5cXHJcXG4uQVBYLWRpYWxvZy1idXR0b24tY29udGFpbmVyIGJ1dHRvbjpob3ZlciB7XFxyXFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDQ5NUU7XFxyXFxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcXHJcXG4gICAgYm94LXNoYWRvdzogMCA0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XFxyXFxufVxcclxcblxcclxcbi5BUFgtZGlhbG9nLWJ1dHRvbi1jb250YWluZXIge1xcclxcbiAgICBkaXNwbGF5OiBmbGV4O1xcclxcbiAgICBnYXA6IDEwcHg7XFxyXFxuICAgIG1hcmdpbi10b3A6MWVtO1xcclxcbiAgICAvKiBzcGFjaW5nIGJldHdlZW4gYnV0dG9ucyAqL1xcclxcbn1cXHJcXG5cXHJcXG4vKiBMb2FkaW5nIGluZGljYXRvciAqL1xcclxcbi5BUFgtZGlhbG9nLWxvYWRpbmctaW5kaWNhdG9yIHtcXHJcXG4gICAgZGlzcGxheTogZmxleDtcXHJcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxyXFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxyXFxuICAgIGhlaWdodDogMTAwcHg7XFxyXFxuICAgIHdpZHRoOiAxMDAlO1xcclxcbn1cXHJcXG5cXHJcXG4uQVBYLWRpYWxvZy1sb2FkaW5nLWluZGljYXRvcjo6YmVmb3JlIHtcXHJcXG4gICAgY29udGVudDogJyc7XFxyXFxuICAgIHdpZHRoOiA0MHB4O1xcclxcbiAgICBoZWlnaHQ6IDQwcHg7XFxyXFxuICAgIGJvcmRlcjogNHB4IHNvbGlkICNmM2YzZjM7XFxyXFxuICAgIGJvcmRlci10b3A6IDRweCBzb2xpZCAjMkMzRTUwO1xcclxcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XFxyXFxuICAgIGFuaW1hdGlvbjogQVBYLWRpYWxvZy1zcGluIDFzIGxpbmVhciBpbmZpbml0ZTtcXHJcXG59XFxyXFxuXFxyXFxuQGtleWZyYW1lcyBBUFgtZGlhbG9nLXNwaW4ge1xcclxcbiAgICAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XFxyXFxuICAgIDEwMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9XFxyXFxufVxcclxcbi5BUFgtZGlhbG9nLWJ1dHRvbi1kaXNhYmxlZCB7XFxyXFxuICAgIG9wYWNpdHk6IDAuNTtcXHJcXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZCAhaW1wb3J0YW50O1xcclxcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTVhNWE2ICFpbXBvcnRhbnQ7IC8qIEdyYXllZCBvdXQgY29sb3IgKi9cXHJcXG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xcclxcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xcclxcbiAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcXHJcXG59XFxyXFxuXFxyXFxuLkFQWC1kaWFsb2ctYnV0dG9uLWRpc2FibGVkOmhvdmVyIHtcXHJcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzk1YTVhNiAhaW1wb3J0YW50OyAvKiBLZWVwIGdyYXkgb24gaG92ZXIgKi9cXHJcXG4gICAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XFxyXFxufVxcclxcblxcclxcbi8qIEFkZCBhIHN1YnRsZSBzdHJpa2V0aHJvdWdoIGVmZmVjdCAqL1xcclxcbi5BUFgtZGlhbG9nLWJ1dHRvbi1kaXNhYmxlZDo6YWZ0ZXIge1xcclxcbiAgICBjb250ZW50OiAnJztcXHJcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcclxcbiAgICB0b3A6IDUwJTtcXHJcXG4gICAgbGVmdDogMDtcXHJcXG4gICAgd2lkdGg6IDEwMCU7XFxyXFxuICAgIGhlaWdodDogMXB4O1xcclxcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMik7XFxyXFxuICAgIHRyYW5zZm9ybTogcm90YXRlKC01ZGVnKTtcXHJcXG59XCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfR0VUX1VSTF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9nZXRVcmwuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfMF9fXyA9IG5ldyBVUkwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjdodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTI3JTIwd2lkdGglM0QlMjczMiUyNyUyMGhlaWdodCUzRCUyNzMyJTI3JTNFJTNDcGF0aCUyMCUyMGZpbGwlM0QlMjIlMjNjY2NjY2MlMjIlMjBkJTNEJTIyTTI1LjEwNyUyMDMyLjAzMGgtMTguMjE0Yy0zLjQ1NiUyMDAtNi4yNjgtMi44MS02LjI2OC02LjI2NHYtMTkuNTI5YzAtMy40NTYlMjAyLjgxMi02LjI2OCUyMDYuMjY4LTYuMjY4aDE4LjIxNGMzLjQ1NiUyMDAlMjA2LjI2OCUyMDIuODEyJTIwNi4yNjglMjA2LjI2OHYxOS41MjljMCUyMDMuNDUyLTIuODEyJTIwNi4yNjQtNi4yNjglMjA2LjI2NHpNNi44OTMlMjAxLjg1Yy0yLjQxOSUyMDAtNC4zODYlMjAxLjk2Ny00LjM4NiUyMDQuMzg2djE5LjUyOWMwJTIwMi40MTclMjAxLjk2NyUyMDQuMzgyJTIwNC4zODYlMjA0LjM4MmgxOC4yMTRjMi40MTklMjAwJTIwNC4zODYtMS45NjUlMjA0LjM4Ni00LjM4MnYtMTkuNTI5YzAtMi40MTktMS45NjctNC4zODYtNC4zODYtNC4zODZoLTE4LjIxNHolMjIlM0UlM0MvcGF0aCUzRSUzQy9zdmclM0VcIiwgaW1wb3J0Lm1ldGEudXJsKTtcbnZhciBfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfMV9fXyA9IG5ldyBVUkwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjdodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTI3JTIwd2lkdGglM0QlMjczMiUyNyUyMGhlaWdodCUzRCUyNzMyJTI3JTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMwNjU0YmElMjIlMjBkJTNEJTIyTTAuNTQzJTIwNS42NDdjMC0zLjExOSUyMDIuNTMxLTUuNjQ3JTIwNS42NS01LjY0N2gxOS4zMDljMy4xMiUyMDAlMjA1LjY1JTIwMi41MTElMjA1LjY1JTIwNS42NDd2MjAuNzA1YzAlMjAzLjExOS0yLjUzMSUyMDUuNjQ3LTUuNjUlMjA1LjY0N2gtMTkuMzA5Yy0zLjEyJTIwMC01LjY1LTIuNTExLTUuNjUtNS42NDd2LTIwLjcwNXpNNS4zMTMlMjAxNy41ODdsNy4wMzklMjA2LjgzOSUyMDEzLjgzMS0xMy40MzktMi42MzYtMi41NjEtMTAuOTI5JTIwMTAuNjItNC40NDItNC4zMTctMi44NjIlMjAyLjg1OHolMjIlM0UlM0MvcGF0aCUzRSUzQy9zdmclM0VcIiwgaW1wb3J0Lm1ldGEudXJsKTtcbnZhciBfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfMl9fXyA9IG5ldyBVUkwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDJTNGeG1sJTIwdmVyc2lvbiUzRCUyMjEuMCUyMiUyMGVuY29kaW5nJTNEJTIyVVRGLTglMjIlM0YlM0UlM0NzdmclMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAzMiUyMDMyJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlM0NwYXRoJTIwZCUzRCUyMm0wLjU0MyUyMDUuNjQ3YzAtMy4xMTklMjAyLjUzMS01LjY0NyUyMDUuNjUtNS42NDdoMTkuMzA5YzMuMTIlMjAwJTIwNS42NSUyMDIuNTExJTIwNS42NSUyMDUuNjQ3djIwLjcwNWMwJTIwMy4xMTktMi41MzElMjA1LjY0Ny01LjY1JTIwNS42NDdoLTE5LjMwOWMtMy4xMiUyMDAtNS42NS0yLjUxMS01LjY1LTUuNjQ3di0yMC43MDV6JTIyJTIwZmlsbCUzRCUyMiUyM2YwMCUyMiUyRiUzRSUzQ3BhdGglMjBkJTNEJTIybTglMjA4JTIwMTYlMjAxNiUyMiUyMHN0cm9rZSUzRCUyMiUyM2ZmZiUyMiUyMHN0cm9rZS13aWR0aCUzRCUyMjIlMjIlMkYlM0UlM0NwYXRoJTIwZCUzRCUyMk0yNCUyMDhMOCUyMDI0JTIyJTIwc3Ryb2tlJTNEJTIyJTIzZmZmJTIyJTIwc3Ryb2tlLXdpZHRoJTNEJTIyMiUyMiUyRiUzRSUzQyUyRnN2ZyUzRVwiLCBpbXBvcnQubWV0YS51cmwpO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xudmFyIF9fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzBfX18gPSBfX19DU1NfTE9BREVSX0dFVF9VUkxfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8wX19fKTtcbnZhciBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8xX19fID0gX19fQ1NTX0xPQURFUl9HRVRfVVJMX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfMV9fXyk7XG52YXIgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfMl9fXyA9IF9fX0NTU19MT0FERVJfR0VUX1VSTF9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzJfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIGAuYXB4LXRyaXN0YXRlIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBtaW4td2lkdGg6MTNweDtcclxuICAgIG1pbi1oZWlnaHQ6MTNweDtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgYm9yZGVyLXJhZGl1czozcHg7XHJcbn1cclxuLmFweC10cmlzdGF0ZS51bmNoZWNrZWQge1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCR7X19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfMF9fX30pO1xyXG59XHJcbi5hcHgtdHJpc3RhdGUuY2hlY2tlZCB7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJHtfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8xX19ffSk7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG59XHJcbi5hcHgtdHJpc3RhdGUuY3Jvc3NlZCB7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJHtfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8yX19ffSk7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG59YCwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9tb2R1bGVzL3RyaXN0YXRlL2Nzcy90cmlzdGF0ZS5jc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQUE7SUFDSSxxQkFBcUI7SUFDckIsc0JBQXNCO0lBQ3RCLGtCQUFrQjtJQUNsQixlQUFlO0lBQ2Ysa0JBQWtCO0lBQ2xCLGNBQWM7SUFDZCxlQUFlO0lBQ2Ysd0JBQXdCO0lBQ3hCLHVCQUF1QjtJQUN2QixpQkFBaUI7QUFDckI7QUFDQTtJQUNJLHlEQUF5bEI7QUFDN2xCO0FBQ0E7SUFDSSx5REFBNmU7SUFDN2UsNEJBQTRCO0lBQzVCLDJCQUEyQjtBQUMvQjtBQUNBO0lBQ0kseURBQXNuQjtJQUN0bkIsNEJBQTRCO0lBQzVCLDJCQUEyQjtBQUMvQlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIuYXB4LXRyaXN0YXRlIHtcXHJcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcclxcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcclxcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxyXFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXHJcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcclxcbiAgICBtaW4td2lkdGg6MTNweDtcXHJcXG4gICAgbWluLWhlaWdodDoxM3B4O1xcclxcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XFxyXFxuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xcclxcbiAgICBib3JkZXItcmFkaXVzOjNweDtcXHJcXG59XFxyXFxuLmFweC10cmlzdGF0ZS51bmNoZWNrZWQge1xcclxcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyN2h0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjclMjB3aWR0aCUzRCUyNzMyJTI3JTIwaGVpZ2h0JTNEJTI3MzIlMjclM0UlM0NwYXRoJTIwJTIwZmlsbCUzRCUyMiUyM2NjY2NjYyUyMiUyMGQlM0QlMjJNMjUuMTA3JTIwMzIuMDMwaC0xOC4yMTRjLTMuNDU2JTIwMC02LjI2OC0yLjgxLTYuMjY4LTYuMjY0di0xOS41MjljMC0zLjQ1NiUyMDIuODEyLTYuMjY4JTIwNi4yNjgtNi4yNjhoMTguMjE0YzMuNDU2JTIwMCUyMDYuMjY4JTIwMi44MTIlMjA2LjI2OCUyMDYuMjY4djE5LjUyOWMwJTIwMy40NTItMi44MTIlMjA2LjI2NC02LjI2OCUyMDYuMjY0ek02Ljg5MyUyMDEuODVjLTIuNDE5JTIwMC00LjM4NiUyMDEuOTY3LTQuMzg2JTIwNC4zODZ2MTkuNTI5YzAlMjAyLjQxNyUyMDEuOTY3JTIwNC4zODIlMjA0LjM4NiUyMDQuMzgyaDE4LjIxNGMyLjQxOSUyMDAlMjA0LjM4Ni0xLjk2NSUyMDQuMzg2LTQuMzgydi0xOS41MjljMC0yLjQxOS0xLjk2Ny00LjM4Ni00LjM4Ni00LjM4NmgtMTguMjE0eiUyMiUzRSUzQy9wYXRoJTNFJTNDL3N2ZyUzRScpO1xcclxcbn1cXHJcXG4uYXB4LXRyaXN0YXRlLmNoZWNrZWQge1xcclxcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyN2h0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjclMjB3aWR0aCUzRCUyNzMyJTI3JTIwaGVpZ2h0JTNEJTI3MzIlMjclM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzA2NTRiYSUyMiUyMGQlM0QlMjJNMC41NDMlMjA1LjY0N2MwLTMuMTE5JTIwMi41MzEtNS42NDclMjA1LjY1LTUuNjQ3aDE5LjMwOWMzLjEyJTIwMCUyMDUuNjUlMjAyLjUxMSUyMDUuNjUlMjA1LjY0N3YyMC43MDVjMCUyMDMuMTE5LTIuNTMxJTIwNS42NDctNS42NSUyMDUuNjQ3aC0xOS4zMDljLTMuMTIlMjAwLTUuNjUtMi41MTEtNS42NS01LjY0N3YtMjAuNzA1ek01LjMxMyUyMDE3LjU4N2w3LjAzOSUyMDYuODM5JTIwMTMuODMxLTEzLjQzOS0yLjYzNi0yLjU2MS0xMC45MjklMjAxMC42Mi00LjQ0Mi00LjMxNy0yLjg2MiUyMDIuODU4eiUyMiUzRSUzQy9wYXRoJTNFJTNDL3N2ZyUzRScpO1xcclxcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xcclxcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XFxyXFxufVxcclxcbi5hcHgtdHJpc3RhdGUuY3Jvc3NlZCB7XFxyXFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLCUzQyUzRnhtbCUyMHZlcnNpb24lM0QlMjIxLjAlMjIlMjBlbmNvZGluZyUzRCUyMlVURi04JTIyJTNGJTNFJTNDc3ZnJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMzIlMjAzMiUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJtMC41NDMlMjA1LjY0N2MwLTMuMTE5JTIwMi41MzEtNS42NDclMjA1LjY1LTUuNjQ3aDE5LjMwOWMzLjEyJTIwMCUyMDUuNjUlMjAyLjUxMSUyMDUuNjUlMjA1LjY0N3YyMC43MDVjMCUyMDMuMTE5LTIuNTMxJTIwNS42NDctNS42NSUyMDUuNjQ3aC0xOS4zMDljLTMuMTIlMjAwLTUuNjUtMi41MTEtNS42NS01LjY0N3YtMjAuNzA1eiUyMiUyMGZpbGwlM0QlMjIlMjNmMDAlMjIlMkYlM0UlM0NwYXRoJTIwZCUzRCUyMm04JTIwOCUyMDE2JTIwMTYlMjIlMjBzdHJva2UlM0QlMjIlMjNmZmYlMjIlMjBzdHJva2Utd2lkdGglM0QlMjIyJTIyJTJGJTNFJTNDcGF0aCUyMGQlM0QlMjJNMjQlMjA4TDglMjAyNCUyMiUyMHN0cm9rZSUzRCUyMiUyM2ZmZiUyMiUyMHN0cm9rZS13aWR0aCUzRCUyMjIlMjIlMkYlM0UlM0MlMkZzdmclM0UnKTtcXHJcXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcXHJcXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xcclxcbn1cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qXG4gIE1JVCBMaWNlbnNlIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwXG4gIEF1dGhvciBUb2JpYXMgS29wcGVycyBAc29rcmFcbiovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjc3NXaXRoTWFwcGluZ1RvU3RyaW5nKSB7XG4gIHZhciBsaXN0ID0gW107XG5cbiAgLy8gcmV0dXJuIHRoZSBsaXN0IG9mIG1vZHVsZXMgYXMgY3NzIHN0cmluZ1xuICBsaXN0LnRvU3RyaW5nID0gZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICB2YXIgY29udGVudCA9IFwiXCI7XG4gICAgICB2YXIgbmVlZExheWVyID0gdHlwZW9mIGl0ZW1bNV0gIT09IFwidW5kZWZpbmVkXCI7XG4gICAgICBpZiAoaXRlbVs0XSkge1xuICAgICAgICBjb250ZW50ICs9IFwiQHN1cHBvcnRzIChcIi5jb25jYXQoaXRlbVs0XSwgXCIpIHtcIik7XG4gICAgICB9XG4gICAgICBpZiAoaXRlbVsyXSkge1xuICAgICAgICBjb250ZW50ICs9IFwiQG1lZGlhIFwiLmNvbmNhdChpdGVtWzJdLCBcIiB7XCIpO1xuICAgICAgfVxuICAgICAgaWYgKG5lZWRMYXllcikge1xuICAgICAgICBjb250ZW50ICs9IFwiQGxheWVyXCIuY29uY2F0KGl0ZW1bNV0ubGVuZ3RoID4gMCA/IFwiIFwiLmNvbmNhdChpdGVtWzVdKSA6IFwiXCIsIFwiIHtcIik7XG4gICAgICB9XG4gICAgICBjb250ZW50ICs9IGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcoaXRlbSk7XG4gICAgICBpZiAobmVlZExheWVyKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJ9XCI7XG4gICAgICB9XG4gICAgICBpZiAoaXRlbVsyXSkge1xuICAgICAgICBjb250ZW50ICs9IFwifVwiO1xuICAgICAgfVxuICAgICAgaWYgKGl0ZW1bNF0pIHtcbiAgICAgICAgY29udGVudCArPSBcIn1cIjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjb250ZW50O1xuICAgIH0pLmpvaW4oXCJcIik7XG4gIH07XG5cbiAgLy8gaW1wb3J0IGEgbGlzdCBvZiBtb2R1bGVzIGludG8gdGhlIGxpc3RcbiAgbGlzdC5pID0gZnVuY3Rpb24gaShtb2R1bGVzLCBtZWRpYSwgZGVkdXBlLCBzdXBwb3J0cywgbGF5ZXIpIHtcbiAgICBpZiAodHlwZW9mIG1vZHVsZXMgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIG1vZHVsZXMgPSBbW251bGwsIG1vZHVsZXMsIHVuZGVmaW5lZF1dO1xuICAgIH1cbiAgICB2YXIgYWxyZWFkeUltcG9ydGVkTW9kdWxlcyA9IHt9O1xuICAgIGlmIChkZWR1cGUpIHtcbiAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgdGhpcy5sZW5ndGg7IGsrKykge1xuICAgICAgICB2YXIgaWQgPSB0aGlzW2tdWzBdO1xuICAgICAgICBpZiAoaWQgIT0gbnVsbCkge1xuICAgICAgICAgIGFscmVhZHlJbXBvcnRlZE1vZHVsZXNbaWRdID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKHZhciBfayA9IDA7IF9rIDwgbW9kdWxlcy5sZW5ndGg7IF9rKyspIHtcbiAgICAgIHZhciBpdGVtID0gW10uY29uY2F0KG1vZHVsZXNbX2tdKTtcbiAgICAgIGlmIChkZWR1cGUgJiYgYWxyZWFkeUltcG9ydGVkTW9kdWxlc1tpdGVtWzBdXSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgbGF5ZXIgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBpdGVtWzVdID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgaXRlbVs1XSA9IGxheWVyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW1bMV0gPSBcIkBsYXllclwiLmNvbmNhdChpdGVtWzVdLmxlbmd0aCA+IDAgPyBcIiBcIi5jb25jYXQoaXRlbVs1XSkgOiBcIlwiLCBcIiB7XCIpLmNvbmNhdChpdGVtWzFdLCBcIn1cIik7XG4gICAgICAgICAgaXRlbVs1XSA9IGxheWVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAobWVkaWEpIHtcbiAgICAgICAgaWYgKCFpdGVtWzJdKSB7XG4gICAgICAgICAgaXRlbVsyXSA9IG1lZGlhO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW1bMV0gPSBcIkBtZWRpYSBcIi5jb25jYXQoaXRlbVsyXSwgXCIge1wiKS5jb25jYXQoaXRlbVsxXSwgXCJ9XCIpO1xuICAgICAgICAgIGl0ZW1bMl0gPSBtZWRpYTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHN1cHBvcnRzKSB7XG4gICAgICAgIGlmICghaXRlbVs0XSkge1xuICAgICAgICAgIGl0ZW1bNF0gPSBcIlwiLmNvbmNhdChzdXBwb3J0cyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQHN1cHBvcnRzIChcIi5jb25jYXQoaXRlbVs0XSwgXCIpIHtcIikuY29uY2F0KGl0ZW1bMV0sIFwifVwiKTtcbiAgICAgICAgICBpdGVtWzRdID0gc3VwcG9ydHM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGxpc3QucHVzaChpdGVtKTtcbiAgICB9XG4gIH07XG4gIHJldHVybiBsaXN0O1xufTsiLCJcInVzZSBzdHJpY3RcIjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodXJsLCBvcHRpb25zKSB7XG4gIGlmICghb3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuICBpZiAoIXVybCkge1xuICAgIHJldHVybiB1cmw7XG4gIH1cbiAgdXJsID0gU3RyaW5nKHVybC5fX2VzTW9kdWxlID8gdXJsLmRlZmF1bHQgOiB1cmwpO1xuXG4gIC8vIElmIHVybCBpcyBhbHJlYWR5IHdyYXBwZWQgaW4gcXVvdGVzLCByZW1vdmUgdGhlbVxuICBpZiAoL15bJ1wiXS4qWydcIl0kLy50ZXN0KHVybCkpIHtcbiAgICB1cmwgPSB1cmwuc2xpY2UoMSwgLTEpO1xuICB9XG4gIGlmIChvcHRpb25zLmhhc2gpIHtcbiAgICB1cmwgKz0gb3B0aW9ucy5oYXNoO1xuICB9XG5cbiAgLy8gU2hvdWxkIHVybCBiZSB3cmFwcGVkP1xuICAvLyBTZWUgaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy12YWx1ZXMtMy8jdXJsc1xuICBpZiAoL1tcIicoKSBcXHRcXG5dfCglMjApLy50ZXN0KHVybCkgfHwgb3B0aW9ucy5uZWVkUXVvdGVzKSB7XG4gICAgcmV0dXJuIFwiXFxcIlwiLmNvbmNhdCh1cmwucmVwbGFjZSgvXCIvZywgJ1xcXFxcIicpLnJlcGxhY2UoL1xcbi9nLCBcIlxcXFxuXCIpLCBcIlxcXCJcIik7XG4gIH1cbiAgcmV0dXJuIHVybDtcbn07IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0ZW0pIHtcbiAgdmFyIGNvbnRlbnQgPSBpdGVtWzFdO1xuICB2YXIgY3NzTWFwcGluZyA9IGl0ZW1bM107XG4gIGlmICghY3NzTWFwcGluZykge1xuICAgIHJldHVybiBjb250ZW50O1xuICB9XG4gIGlmICh0eXBlb2YgYnRvYSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgdmFyIGJhc2U2NCA9IGJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KGNzc01hcHBpbmcpKSkpO1xuICAgIHZhciBkYXRhID0gXCJzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxcIi5jb25jYXQoYmFzZTY0KTtcbiAgICB2YXIgc291cmNlTWFwcGluZyA9IFwiLyojIFwiLmNvbmNhdChkYXRhLCBcIiAqL1wiKTtcbiAgICByZXR1cm4gW2NvbnRlbnRdLmNvbmNhdChbc291cmNlTWFwcGluZ10pLmpvaW4oXCJcXG5cIik7XG4gIH1cbiAgcmV0dXJuIFtjb250ZW50XS5qb2luKFwiXFxuXCIpO1xufTsiLCIvLyBNb2R1bGVcbnZhciBjb2RlID0gXCI8ZGl2IGNsYXNzPVxcXCJBUFgtZGlhbG9nXFxcIj5cXHJcXG4gICAgPGRpdiBjbGFzcz1cXFwiQVBYLWRpYWxvZy1jb250ZW50XFxcIj5cXHJcXG4gICAgICAgIDxzcGFuIGNsYXNzPVxcXCJBUFgtY2xvc2UtZGlhbG9nXFxcIj4mdGltZXM7PC9zcGFuPlxcclxcbiAgICAgICAgPGgyIGNsYXNzPVxcXCJBUFgtZGlhbG9nLXRpdGxlXFxcIj48L2gyPlxcclxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwiQVBYLWRpYWxvZy1keW5hbWljLWNvbnRlbnRcXFwiPjwvZGl2PlxcclxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwiQVBYLWRpYWxvZy1idXR0b24tY29udGFpbmVyXFxcIj48L2Rpdj5cXHJcXG4gICAgPC9kaXY+XFxyXFxuPC9kaXY+XCI7XG4vLyBFeHBvcnRzXG5tb2R1bGUuZXhwb3J0cyA9IGNvZGU7IiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2RpYWxvZy5jc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcblxuICAgICAgb3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbiAgICBcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2RpYWxvZy5jc3NcIjtcbiAgICAgICBleHBvcnQgZGVmYXVsdCBjb250ZW50ICYmIGNvbnRlbnQubG9jYWxzID8gY29udGVudC5sb2NhbHMgOiB1bmRlZmluZWQ7XG4iLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vdHJpc3RhdGUuY3NzXCI7XG4gICAgICBcbiAgICAgIFxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtID0gc3R5bGVUYWdUcmFuc2Zvcm1Gbjtcbm9wdGlvbnMuc2V0QXR0cmlidXRlcyA9IHNldEF0dHJpYnV0ZXM7XG5cbiAgICAgIG9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG4gICAgXG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi90cmlzdGF0ZS5jc3NcIjtcbiAgICAgICBleHBvcnQgZGVmYXVsdCBjb250ZW50ICYmIGNvbnRlbnQubG9jYWxzID8gY29udGVudC5sb2NhbHMgOiB1bmRlZmluZWQ7XG4iLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIHN0eWxlc0luRE9NID0gW107XG5mdW5jdGlvbiBnZXRJbmRleEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKSB7XG4gIHZhciByZXN1bHQgPSAtMTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHlsZXNJbkRPTS5sZW5ndGg7IGkrKykge1xuICAgIGlmIChzdHlsZXNJbkRPTVtpXS5pZGVudGlmaWVyID09PSBpZGVudGlmaWVyKSB7XG4gICAgICByZXN1bHQgPSBpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5mdW5jdGlvbiBtb2R1bGVzVG9Eb20obGlzdCwgb3B0aW9ucykge1xuICB2YXIgaWRDb3VudE1hcCA9IHt9O1xuICB2YXIgaWRlbnRpZmllcnMgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGl0ZW0gPSBsaXN0W2ldO1xuICAgIHZhciBpZCA9IG9wdGlvbnMuYmFzZSA/IGl0ZW1bMF0gKyBvcHRpb25zLmJhc2UgOiBpdGVtWzBdO1xuICAgIHZhciBjb3VudCA9IGlkQ291bnRNYXBbaWRdIHx8IDA7XG4gICAgdmFyIGlkZW50aWZpZXIgPSBcIlwiLmNvbmNhdChpZCwgXCIgXCIpLmNvbmNhdChjb3VudCk7XG4gICAgaWRDb3VudE1hcFtpZF0gPSBjb3VudCArIDE7XG4gICAgdmFyIGluZGV4QnlJZGVudGlmaWVyID0gZ2V0SW5kZXhCeUlkZW50aWZpZXIoaWRlbnRpZmllcik7XG4gICAgdmFyIG9iaiA9IHtcbiAgICAgIGNzczogaXRlbVsxXSxcbiAgICAgIG1lZGlhOiBpdGVtWzJdLFxuICAgICAgc291cmNlTWFwOiBpdGVtWzNdLFxuICAgICAgc3VwcG9ydHM6IGl0ZW1bNF0sXG4gICAgICBsYXllcjogaXRlbVs1XVxuICAgIH07XG4gICAgaWYgKGluZGV4QnlJZGVudGlmaWVyICE9PSAtMSkge1xuICAgICAgc3R5bGVzSW5ET01baW5kZXhCeUlkZW50aWZpZXJdLnJlZmVyZW5jZXMrKztcbiAgICAgIHN0eWxlc0luRE9NW2luZGV4QnlJZGVudGlmaWVyXS51cGRhdGVyKG9iaik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciB1cGRhdGVyID0gYWRkRWxlbWVudFN0eWxlKG9iaiwgb3B0aW9ucyk7XG4gICAgICBvcHRpb25zLmJ5SW5kZXggPSBpO1xuICAgICAgc3R5bGVzSW5ET00uc3BsaWNlKGksIDAsIHtcbiAgICAgICAgaWRlbnRpZmllcjogaWRlbnRpZmllcixcbiAgICAgICAgdXBkYXRlcjogdXBkYXRlcixcbiAgICAgICAgcmVmZXJlbmNlczogMVxuICAgICAgfSk7XG4gICAgfVxuICAgIGlkZW50aWZpZXJzLnB1c2goaWRlbnRpZmllcik7XG4gIH1cbiAgcmV0dXJuIGlkZW50aWZpZXJzO1xufVxuZnVuY3Rpb24gYWRkRWxlbWVudFN0eWxlKG9iaiwgb3B0aW9ucykge1xuICB2YXIgYXBpID0gb3B0aW9ucy5kb21BUEkob3B0aW9ucyk7XG4gIGFwaS51cGRhdGUob2JqKTtcbiAgdmFyIHVwZGF0ZXIgPSBmdW5jdGlvbiB1cGRhdGVyKG5ld09iaikge1xuICAgIGlmIChuZXdPYmopIHtcbiAgICAgIGlmIChuZXdPYmouY3NzID09PSBvYmouY3NzICYmIG5ld09iai5tZWRpYSA9PT0gb2JqLm1lZGlhICYmIG5ld09iai5zb3VyY2VNYXAgPT09IG9iai5zb3VyY2VNYXAgJiYgbmV3T2JqLnN1cHBvcnRzID09PSBvYmouc3VwcG9ydHMgJiYgbmV3T2JqLmxheWVyID09PSBvYmoubGF5ZXIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgYXBpLnVwZGF0ZShvYmogPSBuZXdPYmopO1xuICAgIH0gZWxzZSB7XG4gICAgICBhcGkucmVtb3ZlKCk7XG4gICAgfVxuICB9O1xuICByZXR1cm4gdXBkYXRlcjtcbn1cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGxpc3QsIG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIGxpc3QgPSBsaXN0IHx8IFtdO1xuICB2YXIgbGFzdElkZW50aWZpZXJzID0gbW9kdWxlc1RvRG9tKGxpc3QsIG9wdGlvbnMpO1xuICByZXR1cm4gZnVuY3Rpb24gdXBkYXRlKG5ld0xpc3QpIHtcbiAgICBuZXdMaXN0ID0gbmV3TGlzdCB8fCBbXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxhc3RJZGVudGlmaWVycy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGlkZW50aWZpZXIgPSBsYXN0SWRlbnRpZmllcnNbaV07XG4gICAgICB2YXIgaW5kZXggPSBnZXRJbmRleEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKTtcbiAgICAgIHN0eWxlc0luRE9NW2luZGV4XS5yZWZlcmVuY2VzLS07XG4gICAgfVxuICAgIHZhciBuZXdMYXN0SWRlbnRpZmllcnMgPSBtb2R1bGVzVG9Eb20obmV3TGlzdCwgb3B0aW9ucyk7XG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGxhc3RJZGVudGlmaWVycy5sZW5ndGg7IF9pKyspIHtcbiAgICAgIHZhciBfaWRlbnRpZmllciA9IGxhc3RJZGVudGlmaWVyc1tfaV07XG4gICAgICB2YXIgX2luZGV4ID0gZ2V0SW5kZXhCeUlkZW50aWZpZXIoX2lkZW50aWZpZXIpO1xuICAgICAgaWYgKHN0eWxlc0luRE9NW19pbmRleF0ucmVmZXJlbmNlcyA9PT0gMCkge1xuICAgICAgICBzdHlsZXNJbkRPTVtfaW5kZXhdLnVwZGF0ZXIoKTtcbiAgICAgICAgc3R5bGVzSW5ET00uc3BsaWNlKF9pbmRleCwgMSk7XG4gICAgICB9XG4gICAgfVxuICAgIGxhc3RJZGVudGlmaWVycyA9IG5ld0xhc3RJZGVudGlmaWVycztcbiAgfTtcbn07IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBtZW1vID0ge307XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gZ2V0VGFyZ2V0KHRhcmdldCkge1xuICBpZiAodHlwZW9mIG1lbW9bdGFyZ2V0XSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgIHZhciBzdHlsZVRhcmdldCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGFyZ2V0KTtcblxuICAgIC8vIFNwZWNpYWwgY2FzZSB0byByZXR1cm4gaGVhZCBvZiBpZnJhbWUgaW5zdGVhZCBvZiBpZnJhbWUgaXRzZWxmXG4gICAgaWYgKHdpbmRvdy5IVE1MSUZyYW1lRWxlbWVudCAmJiBzdHlsZVRhcmdldCBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MSUZyYW1lRWxlbWVudCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gVGhpcyB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbiBpZiBhY2Nlc3MgdG8gaWZyYW1lIGlzIGJsb2NrZWRcbiAgICAgICAgLy8gZHVlIHRvIGNyb3NzLW9yaWdpbiByZXN0cmljdGlvbnNcbiAgICAgICAgc3R5bGVUYXJnZXQgPSBzdHlsZVRhcmdldC5jb250ZW50RG9jdW1lbnQuaGVhZDtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgICAgICAgc3R5bGVUYXJnZXQgPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgICBtZW1vW3RhcmdldF0gPSBzdHlsZVRhcmdldDtcbiAgfVxuICByZXR1cm4gbWVtb1t0YXJnZXRdO1xufVxuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIGluc2VydEJ5U2VsZWN0b3IoaW5zZXJ0LCBzdHlsZSkge1xuICB2YXIgdGFyZ2V0ID0gZ2V0VGFyZ2V0KGluc2VydCk7XG4gIGlmICghdGFyZ2V0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiQ291bGRuJ3QgZmluZCBhIHN0eWxlIHRhcmdldC4gVGhpcyBwcm9iYWJseSBtZWFucyB0aGF0IHRoZSB2YWx1ZSBmb3IgdGhlICdpbnNlcnQnIHBhcmFtZXRlciBpcyBpbnZhbGlkLlwiKTtcbiAgfVxuICB0YXJnZXQuYXBwZW5kQ2hpbGQoc3R5bGUpO1xufVxubW9kdWxlLmV4cG9ydHMgPSBpbnNlcnRCeVNlbGVjdG9yOyIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIGluc2VydFN0eWxlRWxlbWVudChvcHRpb25zKSB7XG4gIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO1xuICBvcHRpb25zLnNldEF0dHJpYnV0ZXMoZWxlbWVudCwgb3B0aW9ucy5hdHRyaWJ1dGVzKTtcbiAgb3B0aW9ucy5pbnNlcnQoZWxlbWVudCwgb3B0aW9ucy5vcHRpb25zKTtcbiAgcmV0dXJuIGVsZW1lbnQ7XG59XG5tb2R1bGUuZXhwb3J0cyA9IGluc2VydFN0eWxlRWxlbWVudDsiLCJcInVzZSBzdHJpY3RcIjtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBzZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMoc3R5bGVFbGVtZW50KSB7XG4gIHZhciBub25jZSA9IHR5cGVvZiBfX3dlYnBhY2tfbm9uY2VfXyAhPT0gXCJ1bmRlZmluZWRcIiA/IF9fd2VicGFja19ub25jZV9fIDogbnVsbDtcbiAgaWYgKG5vbmNlKSB7XG4gICAgc3R5bGVFbGVtZW50LnNldEF0dHJpYnV0ZShcIm5vbmNlXCIsIG5vbmNlKTtcbiAgfVxufVxubW9kdWxlLmV4cG9ydHMgPSBzZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXM7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gYXBwbHkoc3R5bGVFbGVtZW50LCBvcHRpb25zLCBvYmopIHtcbiAgdmFyIGNzcyA9IFwiXCI7XG4gIGlmIChvYmouc3VwcG9ydHMpIHtcbiAgICBjc3MgKz0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChvYmouc3VwcG9ydHMsIFwiKSB7XCIpO1xuICB9XG4gIGlmIChvYmoubWVkaWEpIHtcbiAgICBjc3MgKz0gXCJAbWVkaWEgXCIuY29uY2F0KG9iai5tZWRpYSwgXCIge1wiKTtcbiAgfVxuICB2YXIgbmVlZExheWVyID0gdHlwZW9mIG9iai5sYXllciAhPT0gXCJ1bmRlZmluZWRcIjtcbiAgaWYgKG5lZWRMYXllcikge1xuICAgIGNzcyArPSBcIkBsYXllclwiLmNvbmNhdChvYmoubGF5ZXIubGVuZ3RoID4gMCA/IFwiIFwiLmNvbmNhdChvYmoubGF5ZXIpIDogXCJcIiwgXCIge1wiKTtcbiAgfVxuICBjc3MgKz0gb2JqLmNzcztcbiAgaWYgKG5lZWRMYXllcikge1xuICAgIGNzcyArPSBcIn1cIjtcbiAgfVxuICBpZiAob2JqLm1lZGlhKSB7XG4gICAgY3NzICs9IFwifVwiO1xuICB9XG4gIGlmIChvYmouc3VwcG9ydHMpIHtcbiAgICBjc3MgKz0gXCJ9XCI7XG4gIH1cbiAgdmFyIHNvdXJjZU1hcCA9IG9iai5zb3VyY2VNYXA7XG4gIGlmIChzb3VyY2VNYXAgJiYgdHlwZW9mIGJ0b2EgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICBjc3MgKz0gXCJcXG4vKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LFwiLmNvbmNhdChidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShzb3VyY2VNYXApKSkpLCBcIiAqL1wiKTtcbiAgfVxuXG4gIC8vIEZvciBvbGQgSUVcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICAqL1xuICBvcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtKGNzcywgc3R5bGVFbGVtZW50LCBvcHRpb25zLm9wdGlvbnMpO1xufVxuZnVuY3Rpb24gcmVtb3ZlU3R5bGVFbGVtZW50KHN0eWxlRWxlbWVudCkge1xuICAvLyBpc3RhbmJ1bCBpZ25vcmUgaWZcbiAgaWYgKHN0eWxlRWxlbWVudC5wYXJlbnROb2RlID09PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHN0eWxlRWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHN0eWxlRWxlbWVudCk7XG59XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gZG9tQVBJKG9wdGlvbnMpIHtcbiAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgIHJldHVybiB7XG4gICAgICB1cGRhdGU6IGZ1bmN0aW9uIHVwZGF0ZSgpIHt9LFxuICAgICAgcmVtb3ZlOiBmdW5jdGlvbiByZW1vdmUoKSB7fVxuICAgIH07XG4gIH1cbiAgdmFyIHN0eWxlRWxlbWVudCA9IG9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50KG9wdGlvbnMpO1xuICByZXR1cm4ge1xuICAgIHVwZGF0ZTogZnVuY3Rpb24gdXBkYXRlKG9iaikge1xuICAgICAgYXBwbHkoc3R5bGVFbGVtZW50LCBvcHRpb25zLCBvYmopO1xuICAgIH0sXG4gICAgcmVtb3ZlOiBmdW5jdGlvbiByZW1vdmUoKSB7XG4gICAgICByZW1vdmVTdHlsZUVsZW1lbnQoc3R5bGVFbGVtZW50KTtcbiAgICB9XG4gIH07XG59XG5tb2R1bGUuZXhwb3J0cyA9IGRvbUFQSTsiLCJcInVzZSBzdHJpY3RcIjtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBzdHlsZVRhZ1RyYW5zZm9ybShjc3MsIHN0eWxlRWxlbWVudCkge1xuICBpZiAoc3R5bGVFbGVtZW50LnN0eWxlU2hlZXQpIHtcbiAgICBzdHlsZUVsZW1lbnQuc3R5bGVTaGVldC5jc3NUZXh0ID0gY3NzO1xuICB9IGVsc2Uge1xuICAgIHdoaWxlIChzdHlsZUVsZW1lbnQuZmlyc3RDaGlsZCkge1xuICAgICAgc3R5bGVFbGVtZW50LnJlbW92ZUNoaWxkKHN0eWxlRWxlbWVudC5maXJzdENoaWxkKTtcbiAgICB9XG4gICAgc3R5bGVFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNzcykpO1xuICB9XG59XG5tb2R1bGUuZXhwb3J0cyA9IHN0eWxlVGFnVHJhbnNmb3JtOyIsIi8vIEZ1bmN0aW9uIHRvIGxvYWQgdGhlIENTUyBmcm9tIGEgZ2l2ZW4gVVJMXHJcbmZ1bmN0aW9uIGxvYWRDc3ModXJsKSB7XHJcbiAgICByZXR1cm4gZmV0Y2godXJsKVxyXG4gICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLnRleHQoKSlcclxuICAgICAgICAudGhlbihjc3MgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBzdHlsZVNoZWV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO1xyXG4gICAgICAgICAgICBzdHlsZVNoZWV0LnR5cGUgPSBcInRleHQvY3NzXCI7XHJcbiAgICAgICAgICAgIHN0eWxlU2hlZXQudGV4dENvbnRlbnQgPSBjc3M7ICAvLyBVc2UgdGV4dENvbnRlbnQgaW5zdGVhZCBvZiBpbm5lclRleHRcclxuICAgICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzdHlsZVNoZWV0KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaChlcnJvciA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJGYWlsZWQgdG8gbG9hZCBDU1M6XCIsIGVycm9yKTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IHtcclxuICAgIGxvYWRDc3NcclxufSIsIi8vIEltcG9ydGluZyB0aGUgQ1NTIGFuZCBIVE1MIHRlbXBsYXRlc1xyXG5pbXBvcnQgJy4vY3NzL2RpYWxvZy5jc3MnO1xyXG5pbXBvcnQgZGlhbG9nVGVtcGxhdGUgZnJvbSAnLi9odG1sL2RpYWxvZy5odG1sP3Jhdyc7XHJcblxyXG5jb25zdCBjcmVhdGVEaWFsb2cgPSAob3B0aW9ucykgPT4ge1xyXG4gICAgY29uc3QgZGlhbG9nRGVmYXVsdHMgPSB7XHJcbiAgICAgICAgdGl0bGU6ICcnLFxyXG4gICAgICAgIGNvbnRlbnQ6ICcnLFxyXG4gICAgICAgIGNvbnRlbnRVUkk6ICcnLFxyXG4gICAgICAgIGJ1dHRvbnM6IFtdLFxyXG4gICAgICAgIHNpemU6ICdtZWRpdW0nLFxyXG4gICAgICAgIHNob3dMb2FkaW5nSW5kaWNhdG9yOiBmYWxzZSxcclxuICAgICAgICBjb250ZW50TWV0aG9kOiAnR0VUJyxcclxuICAgICAgICBjb250ZW50RGF0YTogbnVsbCxcclxuICAgICAgICBjb250ZW50SGVhZGVyczogdW5kZWZpbmVkXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IHsgdGl0bGUsIGNvbnRlbnQsIGNvbnRlbnRVUkksIGJ1dHRvbnMsIHNpemUsIHNob3dMb2FkaW5nSW5kaWNhdG9yLCBjb250ZW50TWV0aG9kLCBjb250ZW50RGF0YSwgY29udGVudEhlYWRlcnMgfSA9IHsgLi4uZGlhbG9nRGVmYXVsdHMsIC4uLm9wdGlvbnMgfTtcclxuXHJcbiAgICBjb25zdCB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICB3cmFwcGVyLmlubmVySFRNTCA9IGRpYWxvZ1RlbXBsYXRlLnRyaW0oKTtcclxuICAgIGNvbnN0IGRpYWxvZ0VsZW1lbnQgPSB3cmFwcGVyLmZpcnN0Q2hpbGQ7XHJcblxyXG4gICAgLy8gTGlmZWN5Y2xlIGV2ZW50IG1hbmFnZW1lbnRcclxuICAgIGNvbnN0IGxpZmVjeWNsZVJlc29sdmVycyA9IHt9O1xyXG4gICAgY29uc3QgbGlmZWN5Y2xlRXZlbnRzID0ge307XHJcblxyXG4gICAgLy8gRGVmaW5lIGxpZmVjeWNsZSBwcm9taXNlcyBhcyBwcm9wZXJ0aWVzXHJcbiAgICBbJ29wZW5pbmcnLCAnb3BlbmVkJywgJ2Nsb3NpbmcnLCAnY2xvc2VkJywgJ2NvbnRlbnRMb2FkaW5nJywgJ2NvbnRlbnRMb2FkZWQnXS5mb3JFYWNoKChldmVudCkgPT4ge1xyXG4gICAgICAgIGxpZmVjeWNsZUV2ZW50c1tldmVudF0gPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xyXG4gICAgICAgICAgICBsaWZlY3ljbGVSZXNvbHZlcnNbZXZlbnRdID0gcmVzb2x2ZTtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IHRyaWdnZXJFdmVudCA9IChldmVudCkgPT4ge1xyXG4gICAgICAgIGlmIChsaWZlY3ljbGVSZXNvbHZlcnNbZXZlbnRdKSB7XHJcbiAgICAgICAgICAgIGxpZmVjeWNsZVJlc29sdmVyc1tldmVudF0oKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYE5vIHJlc29sdmVyIGZvdW5kIGZvciBsaWZlY3ljbGUgZXZlbnQ6ICR7ZXZlbnR9YCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBkaWFsb2cgPSB7XHJcbiAgICAgICAgZWxlbWVudDogZGlhbG9nRWxlbWVudCxcclxuICAgICAgICBidXR0b25zOiB7fSxcclxuICAgICAgICBpc0Nsb3NlZDogZmFsc2UsXHJcbiAgICAgICAgbGlmZWN5Y2xlOiBsaWZlY3ljbGVFdmVudHMsIC8vIExpZmVjeWNsZSBwcm9taXNlcyBkaXJlY3RseSBleHBvc2VkIGhlcmVcclxuICAgICAgICBkaXNhYmxlQnV0dG9uOiAoa2V5KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGJ1dHRvbiA9IGRpYWxvZ0VsZW1lbnQucXVlcnlTZWxlY3RvcihgLkFQWC1kaWFsb2ctYnV0dG9uW2RhdGEta2V5PVwiJHtrZXl9XCJdYCk7XHJcbiAgICAgICAgICAgIGlmIChidXR0b24pIHtcclxuICAgICAgICAgICAgICAgIGJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBidXR0b24uY2xhc3NMaXN0LmFkZCgnQVBYLWRpYWxvZy1idXR0b24tZGlzYWJsZWQnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZW5hYmxlQnV0dG9uOiAoa2V5KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGJ1dHRvbiA9IGRpYWxvZ0VsZW1lbnQucXVlcnlTZWxlY3RvcihgLkFQWC1kaWFsb2ctYnV0dG9uW2RhdGEta2V5PVwiJHtrZXl9XCJdYCk7XHJcbiAgICAgICAgICAgIGlmIChidXR0b24pIHtcclxuICAgICAgICAgICAgICAgIGJ1dHRvbi5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgYnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoJ0FQWC1kaWFsb2ctYnV0dG9uLWRpc2FibGVkJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIG9wZW46IGFzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIHRyaWdnZXJFdmVudCgnb3BlbmluZycpO1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgZGlhbG9nLmxpZmVjeWNsZS5vcGVuaW5nO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIElmIGxvYWRpbmcgaW5kaWNhdG9yIGlzIGVuYWJsZWQgYW5kIHdlJ3JlIGZldGNoaW5nIGNvbnRlbnQsIHNob3cgZGlhbG9nIGZpcnN0XHJcbiAgICAgICAgICAgICAgICBpZiAoc2hvd0xvYWRpbmdJbmRpY2F0b3IgJiYgY29udGVudFVSSSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIEFwcGVuZCBkaWFsb2cgdG8gdGhlIERPTSBhbmQgZGlzcGxheSBpdCBmaXJzdFxyXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGlhbG9nRWxlbWVudCk7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlhbG9nRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gXCJmbGV4XCI7XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gU2hvdyBsb2FkaW5nIGluZGljYXRvclxyXG4gICAgICAgICAgICAgICAgICAgIGRpYWxvZ0VsZW1lbnQucXVlcnlTZWxlY3RvcihcIi5BUFgtZGlhbG9nLWR5bmFtaWMtY29udGVudFwiKS5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz1cIkFQWC1kaWFsb2ctbG9hZGluZy1pbmRpY2F0b3JcIj48L2Rpdj4nO1xyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIExvYWQgY29udGVudCBhZnRlciBkaWFsb2cgaXMgdmlzaWJsZVxyXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IGZldGNoQW5kSW5zZXJ0Q29udGVudCgpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBEZWZhdWx0IGJlaGF2aW9yOiBsb2FkIGNvbnRlbnQgZmlyc3QsIHRoZW4gc2hvdyBkaWFsb2dcclxuICAgICAgICAgICAgICAgICAgICBhd2FpdCBmZXRjaEFuZEluc2VydENvbnRlbnQoKTtcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAvLyBBcHBlbmQgZGlhbG9nIHRvIHRoZSBET00gYW5kIGRpc3BsYXkgaXRcclxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpYWxvZ0VsZW1lbnQpO1xyXG4gICAgICAgICAgICAgICAgICAgIGRpYWxvZ0VsZW1lbnQuc3R5bGUuZGlzcGxheSA9IFwiZmxleFwiO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHRyaWdnZXJFdmVudCgnb3BlbmVkJyk7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCBkaWFsb2cubGlmZWN5Y2xlLm9wZW5lZDtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIG9wZW5pbmcgZGlhbG9nOicsIGVycm9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gZGlhbG9nOyAvLyBSZXR1cm4gZm9yIGRhaXN5LWNoYWluaW5nXHJcbiAgICAgICAgfSxcclxuICAgICAgICBjbG9zZTogYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgdHJpZ2dlckV2ZW50KCdjbG9zaW5nJyk7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCBkaWFsb2cubGlmZWN5Y2xlLmNsb3Npbmc7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gQ2xlYW51cCBhbmQgcmVtb3ZlIGRpYWxvZ1xyXG4gICAgICAgICAgICAgICAgY2xvc2VEaWFsb2dBbmRDbGVhbnVwKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgdHJpZ2dlckV2ZW50KCdjbG9zZWQnKTtcclxuICAgICAgICAgICAgICAgIGF3YWl0IGRpYWxvZy5saWZlY3ljbGUuY2xvc2VkO1xyXG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZHVyaW5nIGRpYWxvZyBjbG9zaW5nOicsIGVycm9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gZGlhbG9nOyAvLyBSZXR1cm4gZm9yIGRhaXN5LWNoYWluaW5nXHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBjbG9zZURpYWxvZ0FuZENsZWFudXAgPSAoKSA9PiB7XHJcbiAgICAgICAgaWYgKGRpYWxvZy5pc0Nsb3NlZCkgcmV0dXJuO1xyXG5cclxuICAgICAgICBkaWFsb2cuaXNDbG9zZWQgPSB0cnVlO1xyXG4gICAgICAgIGRpYWxvZ0VsZW1lbnQuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xyXG4gICAgICAgIGlmIChkb2N1bWVudC5ib2R5LmNvbnRhaW5zKGRpYWxvZ0VsZW1lbnQpKSB7XHJcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZGlhbG9nRWxlbWVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBzZXREaWFsb2dTaXplID0gKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGRpYWxvZ0NvbnRlbnQgPSBkaWFsb2dFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuQVBYLWRpYWxvZy1jb250ZW50XCIpO1xyXG4gICAgICAgIGNvbnN0IHNpemVzID0ge1xyXG4gICAgICAgICAgICBzbWFsbDogeyB3aWR0aDogJzMwMHB4JywgaGVpZ2h0OiAnMjAwcHgnIH0sXHJcbiAgICAgICAgICAgIG1lZGl1bTogeyB3aWR0aDogJzUwMHB4JywgaGVpZ2h0OiAnNDAwcHgnIH0sXHJcbiAgICAgICAgICAgIGxhcmdlOiB7IHdpZHRoOiAnODAwcHgnLCBoZWlnaHQ6ICc2MDBweCcgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGlmIChzaXplID09PSAnYXV0bycpIHJldHVybjtcclxuXHJcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRTaXplID0gc2l6ZXNbc2l6ZV0gfHwgKHR5cGVvZiBzaXplID09PSAnb2JqZWN0JyAmJiBzaXplKTtcclxuICAgICAgICBpZiAoc2VsZWN0ZWRTaXplKSB7XHJcbiAgICAgICAgICAgIGRpYWxvZ0NvbnRlbnQuc3R5bGUubWluV2lkdGggPSBzZWxlY3RlZFNpemUud2lkdGggfHwgJzUwMHB4JztcclxuICAgICAgICAgICAgZGlhbG9nQ29udGVudC5zdHlsZS5taW5IZWlnaHQgPSBzZWxlY3RlZFNpemUuaGVpZ2h0IHx8ICc0MDBweCc7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBhZGRCdXR0b25zID0gKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGJ1dHRvbkNvbnRhaW5lciA9IGRpYWxvZ0VsZW1lbnQucXVlcnlTZWxlY3RvcihcIi5BUFgtZGlhbG9nLWJ1dHRvbi1jb250YWluZXJcIik7XHJcblxyXG4gICAgICAgIGJ1dHRvbnMuZm9yRWFjaCgoeyBrZXksIGxhYmVsLCBvcmRlciA9IDAsIGFsaWduID0gJ2ZsZXgtZW5kJywgY2xvc2VPbkNsaWNrID0gdHJ1ZSB9KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpO1xyXG4gICAgICAgICAgICBidXR0b24uY2xhc3NMaXN0LmFkZCgnQVBYLWRpYWxvZy1idXR0b24nKTtcclxuICAgICAgICAgICAgYnV0dG9uLnRleHRDb250ZW50ID0gbGFiZWw7XHJcbiAgICAgICAgICAgIGJ1dHRvbi5zdHlsZS5vcmRlciA9IG9yZGVyO1xyXG4gICAgICAgICAgICBidXR0b24uc2V0QXR0cmlidXRlKCdkYXRhLWtleScsIGtleSk7XHJcblxyXG4gICAgICAgICAgICAvLyBDcmVhdGUgYnV0dG9uIGNvbnRleHQgd2l0aCBkaXNhYmxlL2VuYWJsZSBtZXRob2RzXHJcbiAgICAgICAgICAgIGNvbnN0IGJ1dHRvbkNvbnRleHQgPSB7XHJcbiAgICAgICAgICAgICAgICBkaXNhYmxlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICBidXR0b24uY2xhc3NMaXN0LmFkZCgnQVBYLWRpYWxvZy1idXR0b24tZGlzYWJsZWQnKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlbmFibGU6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBidXR0b24uZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICBidXR0b24uY2xhc3NMaXN0LnJlbW92ZSgnQVBYLWRpYWxvZy1idXR0b24tZGlzYWJsZWQnKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBrZXksXHJcbiAgICAgICAgICAgICAgICBlbGVtZW50OiBidXR0b25cclxuICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgIGlmIChjbG9zZU9uQ2xpY2spIHtcclxuICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBhcyBhIG9uZS10aW1lIFByb21pc2VcclxuICAgICAgICAgICAgICAgIGxldCBmaXJzdENsaWNrUmVzb2x2ZWQgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBmaXJzdENsaWNrUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uLm9uY2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZmlyc3RDbGlja1Jlc29sdmVkICYmICFidXR0b24uZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0Q2xpY2tSZXNvbHZlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHsgZGlhbG9nLCBidXR0b246IGJ1dHRvbkNvbnRleHQgfSk7IC8vIFBhc3MgYm90aCBkaWFsb2cgYW5kIGJ1dHRvbiBjb250ZXh0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWFsb2cuY2xvc2UoKTsgLy8gQ2xvc2UgdGhlIGRpYWxvZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIEFzc2lnbiB0aGUgcHJvbWlzZSBmb3IgY2hhaW5pbmcgd2l0aCBgLnRoZW5gXHJcbiAgICAgICAgICAgICAgICBkaWFsb2cuYnV0dG9uc1trZXldID0gZmlyc3RDbGlja1Byb21pc2U7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBIYW5kbGUgYXMgYSByZXBlYXRlZCBldmVudCBoYW5kbGVyXHJcbiAgICAgICAgICAgICAgICBsZXQgaGFuZGxlcnMgPSBbXTsgLy8gU3RvcmUgaGFuZGxlcnMgZm9yIGAudGhlbigpYFxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IGNsaWNrUHJvbWlzZSA9IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGVuOiAoY2FsbGJhY2spID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlcnMucHVzaChjYWxsYmFjayk7IC8vIEFkZCB0byBoYW5kbGVyc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjbGlja1Byb21pc2U7IC8vIEFsbG93IGNoYWluaW5nXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgYnV0dG9uLm9uY2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFidXR0b24uZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlcnMuZm9yRWFjaCgoaGFuZGxlcikgPT4gaGFuZGxlcih7IGRpYWxvZywgYnV0dG9uOiBidXR0b25Db250ZXh0IH0pKTsgLy8gUGFzcyBib3RoIGRpYWxvZyBhbmQgYnV0dG9uIGNvbnRleHRcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgICAgIGRpYWxvZy5idXR0b25zW2tleV0gPSBjbGlja1Byb21pc2U7IC8vIEFzc2lnbiB0aGUgXCJmYWtlXCIgcHJvbWlzZVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBidXR0b25Db250YWluZXIuYXBwZW5kQ2hpbGQoYnV0dG9uKTtcclxuICAgICAgICAgICAgYnV0dG9uQ29udGFpbmVyLnN0eWxlLmp1c3RpZnlDb250ZW50ID0gYWxpZ247XHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGZldGNoQW5kSW5zZXJ0Q29udGVudCA9IGFzeW5jICgpID0+IHtcclxuICAgICAgICBjb25zdCBvcmlnaW5hbEN1cnNvciA9IGRvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yO1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yID0gJ3dhaXQnO1xyXG4gICAgICAgIGNvbnN0IGR5bmFtaWNDb250ZW50ID0gZGlhbG9nRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiLkFQWC1kaWFsb2ctZHluYW1pYy1jb250ZW50XCIpO1xyXG4gICAgICAgIFxyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHRyaWdnZXJFdmVudCgnY29udGVudExvYWRpbmcnKTtcclxuICAgICAgICAgICAgYXdhaXQgZGlhbG9nLmxpZmVjeWNsZS5jb250ZW50TG9hZGluZztcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRIdG1sID0gY29udGVudFVSSVxyXG4gICAgICAgICAgICAgICAgPyBhd2FpdCBmZXRjaENvbnRlbnQoY29udGVudFVSSSlcclxuICAgICAgICAgICAgICAgIDogY29udGVudDtcclxuXHJcbiAgICAgICAgICAgIGR5bmFtaWNDb250ZW50LmlubmVySFRNTCA9IGNvbnRlbnRIdG1sO1xyXG5cclxuICAgICAgICAgICAgdHJpZ2dlckV2ZW50KCdjb250ZW50TG9hZGVkJyk7XHJcbiAgICAgICAgICAgIGF3YWl0IGRpYWxvZy5saWZlY3ljbGUuY29udGVudExvYWRlZDtcclxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBsb2FkaW5nIGNvbnRlbnQ6JywgZXJyb3IpO1xyXG4gICAgICAgIH0gZmluYWxseSB7XHJcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yID0gb3JpZ2luYWxDdXJzb3I7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBmZXRjaENvbnRlbnQgPSBhc3luYyAodXJpKSA9PiB7XHJcbiAgICAgICAgY29uc3QgbWV0aG9kID0gKGNvbnRlbnRNZXRob2QgfHwgJ0dFVCcpLnRvVXBwZXJDYXNlKCk7XHJcblxyXG4gICAgICAgIC8vIEFsd2F5cyBhbGxvdyBjdXN0b20gaGVhZGVyczsgd2Ugb25seSBhZGQgQ29udGVudC1UeXBlIHdoZW4gd2UgY2FuIGluZmVyIGl0XHJcbiAgICAgICAgY29uc3QgaGVhZGVycyA9IHsgLi4uKGNvbnRlbnRIZWFkZXJzIHx8IHt9KSB9O1xyXG4gICAgICAgIGNvbnN0IGhhc0NvbnRlbnRUeXBlID0gT2JqZWN0LmtleXMoaGVhZGVycykuc29tZSgoaykgPT4gay50b0xvd2VyQ2FzZSgpID09PSAnY29udGVudC10eXBlJyk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEJ1aWxkIFJlcXVlc3RJbml0IGRlcGVuZGluZyBvbiBtZXRob2QgYW5kIGNvbnRlbnREYXRhIHR5cGUuXHJcbiAgICAgICAgICogV2UgYXZvaWQgc2V0dGluZyBDb250ZW50LVR5cGUgZm9yIEZvcm1EYXRhIGFuZCByYXcgc3RyaW5nL0Jsb2IgcGF5bG9hZHMsXHJcbiAgICAgICAgICogdW5sZXNzIHRoZSBjYWxsZXIgZXhwbGljaXRseSBwcm92aWRlZCBpdCB2aWEgY29udGVudEhlYWRlcnMuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY29uc3QgaW5pdCA9IHsgbWV0aG9kIH07XHJcblxyXG4gICAgICAgIGlmIChtZXRob2QgPT09ICdQT1NUJykge1xyXG4gICAgICAgICAgICBsZXQgYm9keSA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGlzRm9ybURhdGEgPSB0eXBlb2YgRm9ybURhdGEgIT09ICd1bmRlZmluZWQnICYmIGNvbnRlbnREYXRhIGluc3RhbmNlb2YgRm9ybURhdGE7XHJcbiAgICAgICAgICAgIGNvbnN0IGlzVVJMU2VhcmNoUGFyYW1zID0gdHlwZW9mIFVSTFNlYXJjaFBhcmFtcyAhPT0gJ3VuZGVmaW5lZCcgJiYgY29udGVudERhdGEgaW5zdGFuY2VvZiBVUkxTZWFyY2hQYXJhbXM7XHJcbiAgICAgICAgICAgIGNvbnN0IGlzQmxvYiA9IHR5cGVvZiBCbG9iICE9PSAndW5kZWZpbmVkJyAmJiBjb250ZW50RGF0YSBpbnN0YW5jZW9mIEJsb2I7XHJcbiAgICAgICAgICAgIGNvbnN0IGlzU3RyaW5nID0gdHlwZW9mIGNvbnRlbnREYXRhID09PSAnc3RyaW5nJztcclxuICAgICAgICAgICAgY29uc3QgaXNQbGFpbk9iamVjdCA9IGNvbnRlbnREYXRhICYmIHR5cGVvZiBjb250ZW50RGF0YSA9PT0gJ29iamVjdCcgJiYgIWlzRm9ybURhdGEgJiYgIWlzVVJMU2VhcmNoUGFyYW1zICYmICFpc0Jsb2I7XHJcblxyXG4gICAgICAgICAgICBpZiAoaXNGb3JtRGF0YSkge1xyXG4gICAgICAgICAgICAgICAgYm9keSA9IGNvbnRlbnREYXRhO1xyXG4gICAgICAgICAgICAgICAgLy8gRG8gbm90IHNldCBDb250ZW50LVR5cGUgZm9yIEZvcm1EYXRhOyBicm93c2VyIHdpbGwgc2V0IHRoZSBib3VuZGFyeVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzVVJMU2VhcmNoUGFyYW1zKSB7XHJcbiAgICAgICAgICAgICAgICBib2R5ID0gY29udGVudERhdGE7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWhhc0NvbnRlbnRUeXBlKSBoZWFkZXJzWydDb250ZW50LVR5cGUnXSA9ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOCc7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNQbGFpbk9iamVjdCkge1xyXG4gICAgICAgICAgICAgICAgYm9keSA9IEpTT04uc3RyaW5naWZ5KGNvbnRlbnREYXRhKTtcclxuICAgICAgICAgICAgICAgIGlmICghaGFzQ29udGVudFR5cGUpIGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gJ2FwcGxpY2F0aW9uL2pzb24nO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzU3RyaW5nIHx8IGlzQmxvYikge1xyXG4gICAgICAgICAgICAgICAgYm9keSA9IGNvbnRlbnREYXRhO1xyXG4gICAgICAgICAgICAgICAgLy8gQ29udGVudC1UeXBlIGxlZnQgdG8gY2FsbGVyIGlmIG5lZWRlZFxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNvbnRlbnREYXRhICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIC8vIEZhbGxiYWNrOiB0cnkgc2VuZCBhcy1pc1xyXG4gICAgICAgICAgICAgICAgYm9keSA9IGNvbnRlbnREYXRhO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoYm9keSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICBpbml0LmJvZHkgPSBib2R5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoT2JqZWN0LmtleXMoaGVhZGVycykubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBpbml0LmhlYWRlcnMgPSBoZWFkZXJzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmksIGluaXQpO1xyXG4gICAgICAgIGlmICghcmVzcG9uc2Uub2spIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGZldGNoIGNvbnRlbnQ6ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gKTtcclxuICAgICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpO1xyXG4gICAgfTtcclxuXHJcbiAgICAvLyBJbml0aWFsaXplIGRpYWxvZ1xyXG4gICAgc2V0RGlhbG9nU2l6ZSgpO1xyXG4gICAgYWRkQnV0dG9ucygpO1xyXG5cclxuICAgIC8vIFNldCB0aXRsZSBhbmQgY2xvc2UgYnV0dG9uIGhhbmRsZXJcclxuICAgIGRpYWxvZ0VsZW1lbnQucXVlcnlTZWxlY3RvcihcIi5BUFgtZGlhbG9nLXRpdGxlXCIpLnRleHRDb250ZW50ID0gdGl0bGU7XHJcbiAgICBkaWFsb2dFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5BUFgtY2xvc2UtZGlhbG9nJykub25jbGljayA9IGRpYWxvZy5jbG9zZTtcclxuXHJcbiAgICByZXR1cm4gZGlhbG9nO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY3JlYXRlRGlhbG9nO1xyXG4iLCJsZXQgY291bnRlciA9IDA7XHJcbmNvbnN0IGRvQ2FsbGJhY2tzID0ge307XHJcbmNvbnN0IHRpbWVvdXRzID0ge307XHJcblxyXG4vKipcclxuICogVGhpcyBmdW5jdGlvbiBhZGRzIGFuIGV2ZW50IGxpc3RlbmVyIHRvIHRoZSBlbGVtZW50cyBhbmQgcmV0dXJucyBhbiBvYmplY3Qgd2l0aCBhIGRvIG1ldGhvZCB0byBhZGQgY2FsbGJhY2sgZnVuY3Rpb25zLlxyXG4gKiBAcGFyYW0ge09iamVjdH0gYXB4IC0gVGhlIGFweCBvYmplY3QgdG8gYXVnbWVudCB3aXRoIHRoZSBsaXN0ZW4gZnVuY3Rpb24uXHJcbiAqIEByZXR1cm5zIHtPYmplY3R9IC0gVGhlIGF1Z21lbnRlZCBhcHggb2JqZWN0LlxyXG4gKi9cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKGFweCkge1xyXG4gICAgbGV0IGVsZW1lbnRzID0gYXB4LmVsZW1lbnRzO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkcyBhbiBldmVudCBsaXN0ZW5lciB0byB0aGUgZWxlbWVudHMgYW5kIHJldHVybnMgYW4gb2JqZWN0IHdpdGggYSBkbyBtZXRob2QgdG8gYWRkIGNhbGxiYWNrIGZ1bmN0aW9ucy5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBldmVudFR5cGUgLSBUaGUgdHlwZSBvZiBldmVudCB0byBsaXN0ZW4gZm9yIChlLmcuICdjbGljaycsICdrZXlkb3duJywgZXRjLikuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3NlbGVjdG9yXSAtIFRoZSBDU1Mgc2VsZWN0b3IgdG8gdXNlIGZvciBldmVudCBkZWxlZ2F0aW9uIChvcHRpb25hbCkuXHJcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSAtIEFuIG9iamVjdCB3aXRoIGEgZG8gbWV0aG9kIHRvIGFkZCBjYWxsYmFjayBmdW5jdGlvbnMuXHJcbiAgICAgKiBAZXhhbXBsZVxyXG4gICAgICogYXB4Lmxpc3RlbignY2xpY2snLCAnLm15LWJ1dHRvbicpLmRvKChldmVudCkgPT4ge1xyXG4gICAgICogICBjb25zb2xlLmxvZygnQnV0dG9uIGNsaWNrZWQhJywgZXZlbnQudGFyZ2V0KTtcclxuICAgICAqIH0pO1xyXG4gICAgICovXHJcbiAgICBhcHgubGlzdGVuID0gZnVuY3Rpb24gKGV2ZW50VHlwZXMsIHNlY29uZEFyZ3VtZW50LCB0aGlyZEFyZ3VtZW50KSB7XHJcbiAgICAgICAgbGV0IHNlbGVjdG9yO1xyXG4gICAgICAgIGxldCBvcHRpb25zID0ge307XHJcbiAgICAgICAgLy8gRGV0ZXJtaW5lIGlmIHRoZSBzZWNvbmQgYXJndW1lbnQgaXMgYSBzZWxlY3RvciBvciBvcHRpb25zXHJcbiAgICAgICAgaWYgKHR5cGVvZiBzZWNvbmRBcmd1bWVudCA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgc2VsZWN0b3IgPSBzZWNvbmRBcmd1bWVudDtcclxuICAgICAgICAgICAgb3B0aW9ucyA9IHRoaXJkQXJndW1lbnQgfHwge307XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgb3B0aW9ucyA9IHNlY29uZEFyZ3VtZW50IHx8IHt9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgdW5pcXVlSWQgPSBnZW5lcmF0ZVVuaXF1ZUlkKCk7XHJcbiAgICAgICAgY29uc3QgdGltZW91dER1cmF0aW9uID0gb3B0aW9ucy50aW1lb3V0IHx8IDA7XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGV2ZW50VHlwZXMpKSB7XHJcbiAgICAgICAgICAgIGV2ZW50VHlwZXMgPSBbZXZlbnRUeXBlc107IC8vIEVuc3VyZSBldmVudFR5cGVzIGlzIGFuIGFycmF5XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIGV2ZW50VHlwZXMuZm9yRWFjaCgoZXZlbnRUeXBlKSA9PiB7XHJcbiAgICAgICAgICAgIGVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIChldmVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGV4ZWN1dGVDYWxsYmFja3MoZXZlbnQsIHVuaXF1ZUlkLCB0aW1lb3V0RHVyYXRpb24sIHNlbGVjdG9yLCBlbGVtZW50KTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIEFkZHMgYSBjYWxsYmFjayBmdW5jdGlvbiB0byB0aGUgZG9DYWxsYmFja3Mgb2JqZWN0IGZvciB0aGUgY3VycmVudCBldmVudCBsaXN0ZW5lci5cclxuICAgICAgICAgICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZG9DYWxsYmFjayAtIFRoZSBjYWxsYmFjayBmdW5jdGlvbiB0byBleGVjdXRlIHdoZW4gdGhlIGV2ZW50IGlzIHRyaWdnZXJlZC5cclxuICAgICAgICAgICAgICogQHJldHVybnMge09iamVjdH0gLSBSZXR1cm5zIHRoZSBjdXJyZW50IG9iamVjdCB0byBhbGxvdyBmb3IgY2hhaW5lZCBjYWxscy5cclxuICAgICAgICAgICAgICogQGV4YW1wbGVcclxuICAgICAgICAgICAgICogYXB4Lmxpc3RlbignY2xpY2snLCAnLm15LWJ1dHRvbicpLmRvKChldmVudCkgPT4ge1xyXG4gICAgICAgICAgICAgKiAgIGNvbnNvbGUubG9nKCdCdXR0b24gY2xpY2tlZCEnLCBldmVudC50YXJnZXQpO1xyXG4gICAgICAgICAgICAgKiB9KS5kbygoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgICogICBjb25zb2xlLmxvZygnQW5vdGhlciBjYWxsYmFjayBmdW5jdGlvbiEnKTtcclxuICAgICAgICAgICAgICogfSk7XHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBkbzogZnVuY3Rpb24gKGRvQ2FsbGJhY2spIHtcclxuICAgICAgICAgICAgICAgIGlmICghZG9DYWxsYmFja3NbdW5pcXVlSWRdKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZG9DYWxsYmFja3NbdW5pcXVlSWRdID0gW107XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBkb0NhbGxiYWNrc1t1bmlxdWVJZF0ucHVzaChkb0NhbGxiYWNrKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzOyAvLyBSZXR1cm4gdGhlIG9iamVjdCB0byBhbGxvdyBmb3IgY2hhaW5lZCBjYWxsc1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH07XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWFudWFsbHkgdHJpZ2dlcnMgdGhlIHJlZ2lzdGVyZWQgY2FsbGJhY2tzIGZvciBhIGdpdmVuIGV2ZW50IHR5cGUgb24gYWxsIGVsZW1lbnRzIG9yIGNyZWF0ZXMgYSBuZXcgZXZlbnQgaWYgYSBzdHJpbmcgaXMgcHJvdmlkZWQuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ3xFdmVudH0gZXZlbnQgLSBUaGUgZXZlbnQgdG8gdHJpZ2dlci4gVGhpcyBjYW4gYmUgYW4gZXZlbnQgdHlwZSBzdHJpbmcgKGxpa2UgJ2NsaWNrJykgb3IgYW4gYWN0dWFsIEV2ZW50IG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgYXB4LnRyaWdnZXIgPSBmdW5jdGlvbiAoZXZlbnQpIHtcclxuICAgICAgICBsZXQgZXZlbnRUeXBlO1xyXG4gICAgICAgIGlmICh0eXBlb2YgZXZlbnQgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIGV2ZW50VHlwZSA9IGV2ZW50O1xyXG4gICAgICAgICAgICBldmVudCA9IG5ldyBFdmVudChldmVudCwgeyBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlIH0pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBFdmVudCkge1xyXG4gICAgICAgICAgICBldmVudFR5cGUgPSBldmVudC50eXBlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ludmFsaWQgZXZlbnQgdHlwZSBwcm92aWRlZCB0byBhcHgudHJpZ2dlci4gSXQgbXVzdCBiZSBlaXRoZXIgYSBzdHJpbmcgb3IgRXZlbnQgb2JqZWN0LicpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBhcHguZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgICAgICBlbGVtZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpOyAgLy8gVGhpcyB3aWxsIGFsbG93IHRoZSBldmVudCB0byBidWJibGUgdXAgbmF0dXJhbGx5LlxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvLyBIYW5kbGUgZXZlbnQgZGVsZWdhdGlvbiBtYW51YWxseSBieSBleGVjdXRpbmcgY2FsbGJhY2tzIGlmIHRoZSB0YXJnZXQgbWF0Y2hlcyB0aGUgc2VsZWN0b3JcclxuICAgICAgICBPYmplY3Qua2V5cyhkb0NhbGxiYWNrcykuZm9yRWFjaCgodW5pcXVlSWQpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgY2FsbGJhY2tEZXRhaWxzID0gZG9DYWxsYmFja3NbdW5pcXVlSWRdO1xyXG4gICAgICAgICAgICBpZiAoY2FsbGJhY2tEZXRhaWxzICYmIGNhbGxiYWNrRGV0YWlscy5ldmVudFR5cGUgPT09IGV2ZW50VHlwZSkge1xyXG4gICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGV2ZW50IHRhcmdldCBtYXRjaGVzIHRoZSBzZWxlY3RvciB1c2VkIGR1cmluZyBsaXN0ZW5lciByZWdpc3RyYXRpb25cclxuICAgICAgICAgICAgICAgIGNvbnN0IHsgc2VsZWN0b3IgfSA9IGNhbGxiYWNrRGV0YWlscztcclxuICAgICAgICAgICAgICAgIGlmICghc2VsZWN0b3IgfHwgZXZlbnQudGFyZ2V0Lm1hdGNoZXMoc2VsZWN0b3IpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZXhlY3V0ZUNhbGxiYWNrcyhldmVudCwgdW5pcXVlSWQsIDAsIHNlbGVjdG9yLCBldmVudC50YXJnZXQpOyAgLy8gSW1tZWRpYXRlIGV4ZWN1dGlvbiwgbm8gdGltZW91dFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgXHJcbiAgICByZXR1cm4gYXB4O1xyXG59O1xyXG5cclxuXHJcbmZ1bmN0aW9uIGV4ZWN1dGVDYWxsYmFja3MoZXZlbnQsIHVuaXF1ZUlkLCB0aW1lb3V0RHVyYXRpb24sIHNlbGVjdG9yID0gJycsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IG1hdGNoZWRFbGVtZW50ID0gc2VsZWN0b3IgPyBjbG9zZXN0KGV2ZW50LnRhcmdldCwgc2VsZWN0b3IpIDogZWxlbWVudDtcclxuICAgIGlmICghbWF0Y2hlZEVsZW1lbnQpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ2xlYXIgYW55IHByZXZpb3VzIHRpbWVvdXQgZm9yIHRoaXMgdW5pcXVlSWQgdG8gcHJldmVudCB1bmludGVuZGVkIGJlaGF2aW9yXHJcbiAgICBjbGVhclRpbWVvdXQodGltZW91dHNbdW5pcXVlSWRdKTtcclxuXHJcbiAgICAvLyBGdW5jdGlvbiB0byBoYW5kbGUgdGhlIGV4ZWN1dGlvbiBvZiBjYWxsYmFja3NcclxuICAgIGZ1bmN0aW9uIGhhbmRsZUNhbGxiYWNrRXhlY3V0aW9uKCkge1xyXG4gICAgICAgIGlmIChkb0NhbGxiYWNrc1t1bmlxdWVJZF0pIHtcclxuICAgICAgICAgICAgZG9DYWxsYmFja3NbdW5pcXVlSWRdLnJlZHVjZSgocHJldlByb21pc2UsIGRvQ2FsbGJhY2spID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBwcmV2UHJvbWlzZS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gZG9DYWxsYmFjay5iaW5kKG1hdGNoZWRFbGVtZW50KShldmVudCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgUHJvbWlzZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC50aGVuKHJlc29sdmUpLmNhdGNoKHJlamVjdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzdWx0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9LCBQcm9taXNlLnJlc29sdmUoKSkuY2F0Y2goZXJyb3IgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gY2FsbGJhY2sgY2hhaW46JywgZXJyb3IpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ2hlY2sgaWYgdGltZW91dER1cmF0aW9uIGlzIHplcm8gdG8gZGVjaWRlIHdoZXRoZXIgdG8gZGVsYXkgdGhlIGNhbGxiYWNrIGV4ZWN1dGlvbiBvciBub3RcclxuICAgIGlmICh0aW1lb3V0RHVyYXRpb24gPT09IDApIHtcclxuICAgICAgICBoYW5kbGVDYWxsYmFja0V4ZWN1dGlvbigpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICB0aW1lb3V0c1t1bmlxdWVJZF0gPSBzZXRUaW1lb3V0KGhhbmRsZUNhbGxiYWNrRXhlY3V0aW9uLCB0aW1lb3V0RHVyYXRpb24pO1xyXG4gICAgfVxyXG59XHJcblxyXG5cclxuZnVuY3Rpb24gZ2VuZXJhdGVVbmlxdWVJZCgpIHtcclxuICAgIGNvbnN0IHJhbmRvbVBhcnQgPSBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHIoMiwgOSk7IC8vIE1vcmUgcmFuZG9tbmVzc1xyXG4gICAgY29uc3QgdW5pcXVlSWQgPSBgJHtEYXRlLm5vdygpfV8ke3JhbmRvbVBhcnR9XyR7Y291bnRlcn1gO1xyXG4gICAgY291bnRlciA9IChjb3VudGVyICsgMSkgJSAxMDAwOyAvLyBSZXNldCBjb3VudGVyIHRvIGF2b2lkIG92ZXJmbG93XHJcblxyXG4gICAgcmV0dXJuIHVuaXF1ZUlkO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjbG9zZXN0KGVsZW1lbnQsIHNlbGVjdG9yKSB7XHJcbiAgICB3aGlsZSAoZWxlbWVudCAmJiBlbGVtZW50Lm5vZGVUeXBlID09PSAxKSB7XHJcbiAgICAgICAgaWYgKGVsZW1lbnQubWF0Y2hlcyhzZWxlY3RvcikpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudE5vZGU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxufVxyXG4iLCJpbXBvcnQgJy4vY3NzL3RyaXN0YXRlLmNzcyc7XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyBhIHRyaS1zdGF0ZSBjaGVja2JveCBmb3IgZWFjaCBjaGVja2JveCBlbGVtZW50IGluIHRoZSBhcHguZWxlbWVudHMgYXJyYXkuXHJcbiAqIEBwYXJhbSB7QXJyYXk8SFRNTEVsZW1lbnQ+fSBhcHggLSBBbiBhcnJheSBvZiBIVE1MRWxlbWVudHMgd2hpY2ggaXMgcmV0dXJuZWQgYnkgQVBYKClcclxuICogQGV4YW1wbGVcclxuICogLy8gQ2FsbCB0aGUgdHJpc3RhdGUgZnVuY3Rpb24gb24gYW4gYXJyYXkgb2YgY2hlY2tib3ggZWxlbWVudHNcclxuICogYXB4LnRyaXN0YXRlKCk7XHJcbiAqL1xyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAoYXB4KSB7XHJcbiAgICBhcHgudHJpc3RhdGUgPSBmdW5jdGlvbiAob3B0aW9ucyA9IHt9KXtcclxuICAgICAgICBhcHguZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudC50eXBlID09PSAnY2hlY2tib3gnKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBbb3JpZ2luYWxDaGVja2JveCwgdHJpc3RhdGVEb20sIGhpZGRlbklucHV0XSA9IGNyZWF0ZVRyaVN0YXRlQ2hlY2tib3goZWxlbWVudCxvcHRpb25zKTtcclxuICAgICAgICAgICAgICAgIC8vSWYgdGhlcmUgaXMgYSBcIm9wdGlvbnMuY2FsbGJhY2tzLmFmdGVyXCIgY2FsbGJhY2sgaW4gb3B0aW9ucyBjYWxsIGl0XHJcbiAgICAgICAgICAgICAgICBpZihvcHRpb25zLmNhbGxiYWNrcyAmJiBvcHRpb25zLmNhbGxiYWNrcy5hZnRlciAmJiB0eXBlb2Ygb3B0aW9ucy5jYWxsYmFja3MuYWZ0ZXIgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmNhbGxiYWNrcy5hZnRlcihvcmlnaW5hbENoZWNrYm94LCB0cmlzdGF0ZURvbSwgaGlkZGVuSW5wdXQpO1xyXG4gICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHRvZ2dsZVRyaVN0YXRlQ2hlY2tib3hTdGF0ZShjdXN0b21DaGVja2JveCwgYWN0dWFsQ2hlY2tib3gsIGhpZGRlbklucHV0KSB7XHJcbiAgICBpZiAoY3VzdG9tQ2hlY2tib3guY2xhc3NMaXN0LmNvbnRhaW5zKCdjaGVja2VkJykpIHtcclxuICAgICAgICBjdXN0b21DaGVja2JveC5jbGFzc0xpc3QucmVtb3ZlKCdjaGVja2VkJyk7XHJcbiAgICAgICAgY3VzdG9tQ2hlY2tib3guY2xhc3NMaXN0LmFkZCgnY3Jvc3NlZCcpO1xyXG4gICAgICAgIGFjdHVhbENoZWNrYm94LmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgICBoaWRkZW5JbnB1dC52YWx1ZSA9ICdmYWxzZSc7XHJcbiAgICB9IGVsc2UgaWYgKGN1c3RvbUNoZWNrYm94LmNsYXNzTGlzdC5jb250YWlucygnY3Jvc3NlZCcpKSB7XHJcbiAgICAgICAgY3VzdG9tQ2hlY2tib3guY2xhc3NMaXN0LnJlbW92ZSgnY3Jvc3NlZCcpO1xyXG4gICAgICAgIGN1c3RvbUNoZWNrYm94LmNsYXNzTGlzdC5hZGQoJ3VuY2hlY2tlZCcpO1xyXG4gICAgICAgIGhpZGRlbklucHV0LnJlbW92ZUF0dHJpYnV0ZSgnbmFtZScpOyAvLyBFbnN1cmUgdGhlIGhpZGRlbiBpbnB1dCBkb2Vzbid0IHBvc3QgYW55IHZhbHVlXHJcbiAgICAgICAgaGlkZGVuSW5wdXQucmVtb3ZlQXR0cmlidXRlKCd2YWx1ZScpOyAvLyBFbnN1cmUgdGhlIGhpZGRlbiBpbnB1dCBkb2Vzbid0IHBvc3QgYW55IHZhbHVlXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIGN1c3RvbUNoZWNrYm94LmNsYXNzTGlzdC5yZW1vdmUoJ3VuY2hlY2tlZCcpO1xyXG4gICAgICAgIGN1c3RvbUNoZWNrYm94LmNsYXNzTGlzdC5hZGQoJ2NoZWNrZWQnKTtcclxuICAgICAgICBhY3R1YWxDaGVja2JveC5jaGVja2VkID0gdHJ1ZTtcclxuICAgICAgICBoaWRkZW5JbnB1dC52YWx1ZSA9ICd0cnVlJztcclxuICAgICAgICBoaWRkZW5JbnB1dC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCBhY3R1YWxDaGVja2JveC5kYXRhc2V0Lm5hbWUpOyAvLyBSZXN0b3JlIHRoZSBuYW1lIGZvciBwb3N0aW5nXHJcbiAgICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNyZWF0ZVRyaVN0YXRlQ2hlY2tib3goY2hlY2tib3hFbGVtZW50LCBvcHRpb25zKSB7XHJcbiAgICBcclxuICAgIC8vZ2V0IHRoZSBjaGVja2JveCBtYXJnaW5zIGluY2x1ZGluZyBicm93c2VyIGRlZmF1bHRcclxuICAgIGNvbnN0IGNoZWNrYm94U3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjaGVja2JveEVsZW1lbnQpO1xyXG4gICAgLy8gSGlkZSB0aGUgb3JpZ2luYWwgY2hlY2tib3hcclxuICAgIGNoZWNrYm94RWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xyXG5cclxuICAgIC8vIENyZWF0ZSB0aGUgY3VzdG9tIGNoZWNrYm94IGRpdiBhbmQgc2V0IGl0cyBpbml0aWFsIHN0YXRlXHJcbiAgICBjb25zdCB0cmlzdGF0ZURvbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgdHJpc3RhdGVEb20uY2xhc3NMaXN0LmFkZCgnYXB4LXRyaXN0YXRlJyk7XHJcbiAgICBpZiAob3B0aW9ucy5zaXplKSB7XHJcbiAgICAgICAgaWYgKG9wdGlvbnMuc2l6ZS53aWR0aCkge1xyXG4gICAgICAgICAgICB0cmlzdGF0ZURvbS5zdHlsZS53aWR0aCA9IG9wdGlvbnMuc2l6ZS53aWR0aCArICdweCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChvcHRpb25zLnNpemUuaGVpZ2h0KSB7XHJcbiAgICAgICAgICAgIHRyaXN0YXRlRG9tLnN0eWxlLmhlaWdodCA9IG9wdGlvbnMuc2l6ZS5oZWlnaHQgKyAncHgnO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGlmKG9wdGlvbnMuY2xhc3NlcykgdHJpc3RhdGVEb20uY2xhc3NMaXN0LmFkZCguLi5jb21wdXRlQ2xhc3NlcyhvcHRpb25zLmNsYXNzZXMpKTtcclxuXHJcbiAgICB0cmlzdGF0ZURvbS5zdHlsZS5tYXJnaW4gPSBjaGVja2JveFN0eWxlLm1hcmdpbjtcclxuXHJcbiAgICBpZiAoY2hlY2tib3hFbGVtZW50LmNoZWNrZWQpIHtcclxuICAgICAgICB0cmlzdGF0ZURvbS5jbGFzc0xpc3QuYWRkKCdjaGVja2VkJyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRyaXN0YXRlRG9tLmNsYXNzTGlzdC5hZGQoJ3VuY2hlY2tlZCcpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIENyZWF0ZSB0aGUgaGlkZGVuIGlucHV0IGZpZWxkXHJcbiAgICBjb25zdCBoaWRkZW5JbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XHJcbiAgICBoaWRkZW5JbnB1dC50eXBlID0gJ2hpZGRlbic7XHJcbiAgICBoaWRkZW5JbnB1dC5uYW1lID0gY2hlY2tib3hFbGVtZW50Lm5hbWU7IC8vIENvcHkgdGhlIG5hbWUgZnJvbSB0aGUgb3JpZ2luYWwgY2hlY2tib3hcclxuICAgIGNoZWNrYm94RWxlbWVudC5kYXRhc2V0Lm5hbWUgPSBjaGVja2JveEVsZW1lbnQubmFtZTsgLy8gU3RvcmUgdGhlIG5hbWUgaW4gYSBkYXRhIGF0dHJpYnV0ZSBmb3IgbGF0ZXIgdXNlXHJcbiAgICBjaGVja2JveEVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCduYW1lJyk7IC8vIFJlbW92ZSB0aGUgbmFtZSBmcm9tIHRoZSBvcmlnaW5hbCBjaGVja2JveCB0byBhdm9pZCBkb3VibGUgcG9zdGluZ1xyXG5cclxuICAgIGlmIChvcHRpb25zLmRlZmF1bHRTdGF0ZSkgc2V0RGVmYXVsdFN0YXRlKG9wdGlvbnMsIHRyaXN0YXRlRG9tLCBoaWRkZW5JbnB1dCk7XHJcbiAgICBlbHNle1xyXG4gICAgICAgIC8vIFNldCB0aGUgaW5pdGlhbCB2YWx1ZSBmb3IgdGhlIGhpZGRlbiBpbnB1dCBiYXNlZCBvbiB0aGUgY2hlY2tib3gncyBzdGF0ZVxyXG4gICAgICAgIGlmIChjaGVja2JveEVsZW1lbnQuY2hlY2tlZCkge1xyXG4gICAgICAgICAgICBoaWRkZW5JbnB1dC52YWx1ZSA9ICd0cnVlJztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBoaWRkZW5JbnB1dC5uYW1lID0gJyc7IC8vIEVuc3VyZSB0aGUgaGlkZGVuIGlucHV0IGRvZXNuJ3QgcG9zdCBhbnkgdmFsdWVcclxuICAgICAgICAgICAgaGlkZGVuSW5wdXQudmFsdWUgPSAnJztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy9oYW5kbGUgYWNjZXNzaWJpbGl0eSwgc2V0IHRoZSB0YWJpbmRleCB0byB0aGUgc2FtZSBhcyB0aGUgY2hlY2tib3hcclxuICAgIHRyaXN0YXRlRG9tLnRhYkluZGV4ID0gY2hlY2tib3hFbGVtZW50LnRhYkluZGV4O1xyXG5cclxuICAgIC8vIEluc2VydCB0aGUgaGlkZGVuIGlucHV0IGluc2lkZSB0aGUgY3VzdG9tIGNoZWNrYm94IGRpdlxyXG4gICAgdHJpc3RhdGVEb20uYXBwZW5kQ2hpbGQoaGlkZGVuSW5wdXQpO1xyXG5cclxuICAgIC8vIEluc2VydCBpdCBuZXh0IHRvIHRoZSBhY3R1YWwgY2hlY2tib3hcclxuICAgIGNoZWNrYm94RWxlbWVudC5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0cmlzdGF0ZURvbSwgY2hlY2tib3hFbGVtZW50Lm5leHRTaWJsaW5nKTtcclxuXHJcbiAgICAvLyBBZGQgZXZlbnQgbGlzdGVuZXJcclxuICAgIHRyaXN0YXRlRG9tLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICB0b2dnbGVUcmlTdGF0ZUNoZWNrYm94U3RhdGUodHJpc3RhdGVEb20sIGNoZWNrYm94RWxlbWVudCwgaGlkZGVuSW5wdXQpO1xyXG4gICAgICAgIGJ1YmJsZUV2ZW50c1RvT3JpZ2luYWxDaGVja2JveChvcHRpb25zLCBjaGVja2JveEVsZW1lbnQsIHRyaXN0YXRlRG9tLCBoaWRkZW5JbnB1dCwgZSk7XHJcbiAgICB9KTtcclxuICAgIHRyaXN0YXRlRG9tLmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgb25rZXl1cC5iaW5kKG51bGwsIGNoZWNrYm94RWxlbWVudCkpO1xyXG5cclxuICAgIHJldHVybiBbY2hlY2tib3hFbGVtZW50LCB0cmlzdGF0ZURvbSwgaGlkZGVuSW5wdXRdO1xyXG59XHJcblxyXG5mdW5jdGlvbiBzZXREZWZhdWx0U3RhdGUob3B0aW9ucywgdHJpc3RhdGVEb20sIGhpZGRlbklucHV0KSB7XHJcbiAgICAvL2ZvciBhbGwgdmFsdWVzIHBvc3NpYmxlIGZvciBkZWZhdWx0U3RhdGUsIHNldCB0aGUgaW5pdGlhbCBzdGF0ZSBvZiB0aGUgY2hlY2tib3hcclxuICAgIGlmIChvcHRpb25zLmRlZmF1bHRTdGF0ZSA9PT0gJ2NoZWNrZWQnKSB7XHJcbiAgICAgICAgdHJpc3RhdGVEb20uY2xhc3NMaXN0LnJlbW92ZSgndW5jaGVja2VkJyk7XHJcbiAgICAgICAgdHJpc3RhdGVEb20uY2xhc3NMaXN0LmFkZCgnY2hlY2tlZCcpO1xyXG4gICAgICAgIGhpZGRlbklucHV0LnZhbHVlID0gJ3RydWUnO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAob3B0aW9ucy5kZWZhdWx0U3RhdGUgPT09ICd1bmNoZWNrZWQnKSB7XHJcbiAgICAgICAgdHJpc3RhdGVEb20uY2xhc3NMaXN0LnJlbW92ZSgnY2hlY2tlZCcpO1xyXG4gICAgICAgIHRyaXN0YXRlRG9tLmNsYXNzTGlzdC5hZGQoJ3VuY2hlY2tlZCcpO1xyXG4gICAgICAgIGhpZGRlbklucHV0LnJlbW92ZUF0dHJpYnV0ZSgnbmFtZScpOyAvLyBFbnN1cmUgdGhlIGhpZGRlbiBpbnB1dCBkb2Vzbid0IHBvc3QgYW55IHZhbHVlXHJcbiAgICAgICAgaGlkZGVuSW5wdXQucmVtb3ZlQXR0cmlidXRlKCd2YWx1ZScpOyAvLyBFbnN1cmUgdGhlIGhpZGRlbiBpbnB1dCBkb2Vzbid0IHBvc3QgYW55IHZhbHVlXHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChvcHRpb25zLmRlZmF1bHRTdGF0ZSA9PT0gJ2Nyb3NzZWQnKSB7XHJcbiAgICAgICAgdHJpc3RhdGVEb20uY2xhc3NMaXN0LnJlbW92ZSgnY2hlY2tlZCcpO1xyXG4gICAgICAgIHRyaXN0YXRlRG9tLmNsYXNzTGlzdC5hZGQoJ2Nyb3NzZWQnKTtcclxuICAgICAgICBoaWRkZW5JbnB1dC52YWx1ZSA9ICdmYWxzZSc7XHJcbiAgICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNvbXB1dGVDbGFzc2VzKGNsYXNzZXMpIHtcclxuICAgIGxldCBjb21wdXRlZENsYXNzZXMgPSBbXTtcclxuICAgIGlmKHR5cGVvZiBjbGFzc2VzID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgIC8vcmVwbGFjZSBtdWx0aXBsZSB3aGl0ZSBzcGFjZXMgd2l0aCBhIHNpbmdsZSBzcGFjZVxyXG4gICAgICAgIGNsYXNzZXMgPSBjbGFzc2VzLnJlcGxhY2UoL1xcc1xccysvZywgJyAnKTtcclxuICAgICAgICBpZihjbGFzc2VzLmluZGV4T2YoJyAnKSA+IC0xKVxyXG4gICAgICAgICAgICBjb21wdXRlZENsYXNzZXMgPSBjbGFzc2VzLnNwbGl0KCcgJyk7XHJcbiAgICAgICAgZWxzZSBpZihjbGFzc2VzLmluZGV4T2YoJywnKSA+IC0xKVxyXG4gICAgICAgICAgICBjb21wdXRlZENsYXNzZXMgPSBjbGFzc2VzLnNwbGl0KCcsJyk7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICBjb21wdXRlZENsYXNzZXMgPSBbY2xhc3Nlc107XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmKEFycmF5LmlzQXJyYXkoY2xhc3NlcykpIHtcclxuICAgICAgICBjb21wdXRlZENsYXNzZXMgPSBjbGFzc2VzO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNvbXB1dGVkQ2xhc3NlcztcclxufVxyXG5cclxuZnVuY3Rpb24gYnViYmxlRXZlbnRzVG9PcmlnaW5hbENoZWNrYm94KG9wdGlvbnMsIGNoZWNrYm94RWxlbWVudCwgdHJpc3RhdGVEb20sIGhpZGRlbklucHV0LCBldmVudCkge1xyXG4gICAgLy9pZiBvcHRpb25zLmNhbGxiYWNrcy5jaGFuZ2UgaXMgc2V0LCBjYWxsIGl0XHJcbiAgICBpZihvcHRpb25zLmNhbGxiYWNrcyAmJiBvcHRpb25zLmNhbGxiYWNrcy5jaGFuZ2UgJiYgdHlwZW9mIG9wdGlvbnMuY2FsbGJhY2tzLmNoYW5nZSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgIG9wdGlvbnMuY2FsbGJhY2tzLmNoYW5nZShjaGVja2JveEVsZW1lbnQsIHRyaXN0YXRlRG9tLCBoaWRkZW5JbnB1dCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIW9wdGlvbnMuYnViYmxlRXZlbnRzKSByZXR1cm47XHJcblxyXG4gICAgaWYoZXZlbnQudHlwZSA9PT0gJ2NsaWNrJykge1xyXG4gICAgICAgIGNoZWNrYm94RWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBNb3VzZUV2ZW50KCdjbGljaycsIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSB9KSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmKGV2ZW50LnR5cGUgPT09ICdrZXl1cCcpIHtcclxuICAgICAgICBjaGVja2JveEVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgS2V5Ym9hcmRFdmVudCgna2V5dXAnLCB7IGtleTogJyAnLCBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlIH0pKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYoZXZlbnQudHlwZSA9PT0gJ2NoYW5nZScpIHtcclxuICAgICAgICBjaGVja2JveEVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSB9KSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG9ua2V5dXAoY2hlY2tib3hFbGVtZW50LCBldmVudCkge1xyXG4gICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDMyKSB7XHJcbiAgICAgICAgYnViYmxlRXZlbnRzVG9PcmlnaW5hbENoZWNrYm94KGNoZWNrYm94RWxlbWVudCwgZXZlbnQpO1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgZXZlbnQudGFyZ2V0LmNsaWNrKCk7XHJcbiAgICB9XHJcbn0iLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdGlkOiBtb2R1bGVJZCxcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuLy8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbl9fd2VicGFja19yZXF1aXJlX18ubSA9IF9fd2VicGFja19tb2R1bGVzX187XG5cbiIsIi8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSAobW9kdWxlKSA9PiB7XG5cdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuXHRcdCgpID0+IChtb2R1bGVbJ2RlZmF1bHQnXSkgOlxuXHRcdCgpID0+IChtb2R1bGUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCB7IGE6IGdldHRlciB9KTtcblx0cmV0dXJuIGdldHRlcjtcbn07IiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSIsIi8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uciA9IChleHBvcnRzKSA9PiB7XG5cdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuXHR9XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18uYiA9IGRvY3VtZW50LmJhc2VVUkkgfHwgc2VsZi5sb2NhdGlvbi5ocmVmO1xuXG4vLyBvYmplY3QgdG8gc3RvcmUgbG9hZGVkIGFuZCBsb2FkaW5nIGNodW5rc1xuLy8gdW5kZWZpbmVkID0gY2h1bmsgbm90IGxvYWRlZCwgbnVsbCA9IGNodW5rIHByZWxvYWRlZC9wcmVmZXRjaGVkXG4vLyBbcmVzb2x2ZSwgcmVqZWN0LCBQcm9taXNlXSA9IGNodW5rIGxvYWRpbmcsIDAgPSBjaHVuayBsb2FkZWRcbnZhciBpbnN0YWxsZWRDaHVua3MgPSB7XG5cdFwibWFpblwiOiAwXG59O1xuXG4vLyBubyBjaHVuayBvbiBkZW1hbmQgbG9hZGluZ1xuXG4vLyBubyBwcmVmZXRjaGluZ1xuXG4vLyBubyBwcmVsb2FkZWRcblxuLy8gbm8gSE1SXG5cbi8vIG5vIEhNUiBtYW5pZmVzdFxuXG4vLyBubyBvbiBjaHVua3MgbG9hZGVkXG5cbi8vIG5vIGpzb25wIGZ1bmN0aW9uIiwiX193ZWJwYWNrX3JlcXVpcmVfXy5uYyA9IHVuZGVmaW5lZDsiLCJpbXBvcnQgYXVnbWVudFdpdGhMaXN0ZW4gZnJvbSAnLi9tb2R1bGVzL2xpc3Rlbi9saXN0ZW4ubWpzJztcclxuaW1wb3J0IGF1Z21lbnRXaXRoVHJpc3RhdGUgZnJvbSAnLi9tb2R1bGVzL3RyaXN0YXRlL3RyaXN0YXRlLm1qcyc7XHJcbmltcG9ydCBkaWFsb2cgZnJvbSAnLi9tb2R1bGVzL2RpYWxvZy9kaWFsb2cubWpzJztcclxuaW1wb3J0IHsgbG9hZENzcyB9IGZyb20gJy4vbW9kdWxlcy9jb21tb24ubWpzJztcclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGFuIEFQWCBvYmplY3QgdGhhdCB3cmFwcyBvbmUgb3IgbW9yZSBIVE1MIGVsZW1lbnRzLlxyXG4gKiBAcGFyYW0ge3N0cmluZ3xIVE1MRWxlbWVudHxOb2RlTGlzdHxIVE1MQ29sbGVjdGlvbnxBcnJheTxIVE1MRWxlbWVudD58alF1ZXJ5fEZ1bmN0aW9ufSBpbnB1dCAtIFRoZSBpbnB1dCB0byBjcmVhdGUgdGhlIEFQWCBvYmplY3QgZnJvbS5cclxuICogQHJldHVybnMge09iamVjdH0gVGhlIEFQWCBvYmplY3QuXHJcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgaW5wdXQgdHlwZSBpcyBpbnZhbGlkLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiAvLyBYUGF0aFxyXG4gKiBjb25zdCBhcHgxID0gQVBYKCcvL2RpdltAY2xhc3M9XCJleGFtcGxlXCJdJyk7XHJcbiAqXHJcbiAqIC8vIENTUyBzZWxlY3RvclxyXG4gKiBjb25zdCBhcHgyID0gQVBYKCcuZXhhbXBsZScpO1xyXG4gKlxyXG4gKiAvLyBTaW5nbGUgZWxlbWVudFxyXG4gKiBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmV4YW1wbGUnKTtcclxuICogY29uc3QgYXB4MyA9IEFQWChlbGVtZW50KTtcclxuICpcclxuICogLy8gTm9kZUxpc3Qgb3IgSFRNTENvbGxlY3Rpb25cclxuICogY29uc3Qgbm9kZUxpc3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZXhhbXBsZScpO1xyXG4gKiBjb25zdCBhcHg0ID0gQVBYKG5vZGVMaXN0KTtcclxuICpcclxuICogLy8gQXJyYXkgb2YgZWxlbWVudHNcclxuICogY29uc3QgZWxlbWVudHMgPSBbZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmV4YW1wbGUxJyksIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5leGFtcGxlMicpXTtcclxuICogY29uc3QgYXB4NSA9IEFQWChlbGVtZW50cyk7XHJcbiAqXHJcbiAqIC8vIGpRdWVyeSBvYmplY3RcclxuICogY29uc3QgJGV4YW1wbGUgPSAkKCcuZXhhbXBsZScpO1xyXG4gKiBjb25zdCBhcHg2ID0gQVBYKCRleGFtcGxlKTtcclxuICpcclxuICogLy8gRnVuY3Rpb24gcmV0dXJuaW5nIGFuIEFQWCBvYmplY3RcclxuICogY29uc3QgYXB4NyA9IEFQWCgoKSA9PiBBUFgoJy5leGFtcGxlJykpO1xyXG4gKi9cclxuY29uc3QgQVBYID0gZnVuY3Rpb24gKGlucHV0LCBjb250ZXh0ID0gZG9jdW1lbnQpIHtcclxuICAgIGxldCBlbGVtZW50cztcclxuXHJcbiAgICAvLyBWYWxpZGF0ZSBjb250ZXh0XHJcbiAgICBpZiAodHlwZW9mIGNvbnRleHQgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgY29udGV4dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoY29udGV4dCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChBUFguaXNBUFhPYmplY3QoY29udGV4dCkpIHtcclxuICAgICAgICBjb250ZXh0ID0gY29udGV4dC5maXJzdCgpO1xyXG4gICAgfSBlbHNlIGlmICghKGNvbnRleHQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCB8fCBjb250ZXh0IGluc3RhbmNlb2YgRG9jdW1lbnQpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNvbnRleHQgZm9yIEFQWCcpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnICYmIGlucHV0LnN0YXJ0c1dpdGgoJy8vJykpIHtcclxuICAgICAgICAvLyBYUGF0aCB3aXRoIGNvbnRleHRcclxuICAgICAgICBlbGVtZW50cyA9IGRvY3VtZW50LmV2YWx1YXRlKGlucHV0LCBjb250ZXh0LCBudWxsLCBYUGF0aFJlc3VsdC5BTllfVFlQRSwgbnVsbCk7XHJcbiAgICAgICAgbGV0IG5vZGVzID0gW107XHJcbiAgICAgICAgbGV0IG5vZGUgPSBlbGVtZW50cy5pdGVyYXRlTmV4dCgpO1xyXG4gICAgICAgIHdoaWxlIChub2RlKSB7XHJcbiAgICAgICAgICAgIG5vZGVzLnB1c2gobm9kZSk7XHJcbiAgICAgICAgICAgIG5vZGUgPSBlbGVtZW50cy5pdGVyYXRlTmV4dCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbGVtZW50cyA9IG5vZGVzO1xyXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgLy8gQ1NTIHNlbGVjdG9yIHdpdGggY29udGV4dFxyXG4gICAgICAgIGVsZW1lbnRzID0gY29udGV4dC5xdWVyeVNlbGVjdG9yQWxsKGlucHV0KTtcclxuICAgIH0gZWxzZSBpZiAoaW5wdXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xyXG4gICAgICAgIC8vIFNpbmdsZSBlbGVtZW50IHdpdGhpbiBjb250ZXh0XHJcbiAgICAgICAgZWxlbWVudHMgPSBjb250ZXh0LmNvbnRhaW5zKGlucHV0KSA/IFtpbnB1dF0gOiBbXTtcclxuICAgIH0gZWxzZSBpZiAoaW5wdXQgaW5zdGFuY2VvZiBOb2RlTGlzdCB8fCBpbnB1dCBpbnN0YW5jZW9mIEhUTUxDb2xsZWN0aW9uKSB7XHJcbiAgICAgICAgLy8gTm9kZUxpc3Qgb3IgSFRNTENvbGxlY3Rpb24gd2l0aGluIGNvbnRleHRcclxuICAgICAgICBlbGVtZW50cyA9IEFycmF5LmZyb20oaW5wdXQpLmZpbHRlcihlbCA9PiBjb250ZXh0LmNvbnRhaW5zKGVsKSk7XHJcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoaW5wdXQpICYmIGlucHV0LmV2ZXJ5KGVsID0+IGVsIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpKSB7XHJcbiAgICAgICAgLy8gQXJyYXkgb2YgZWxlbWVudHMgd2l0aGluIGNvbnRleHRcclxuICAgICAgICBlbGVtZW50cyA9IGlucHV0LmZpbHRlcihlbCA9PiBjb250ZXh0LmNvbnRhaW5zKGVsKSk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBqUXVlcnkgIT0gJ3VuZGVmaW5lZCcgJiYgaW5wdXQgaW5zdGFuY2VvZiBqUXVlcnkpIHtcclxuICAgICAgICAvLyBqUXVlcnkgb2JqZWN0IHdpdGhpbiBjb250ZXh0XHJcbiAgICAgICAgZWxlbWVudHMgPSBBcnJheS5mcm9tKGlucHV0LmdldCgpKS5maWx0ZXIoZWwgPT4gY29udGV4dC5jb250YWlucyhlbCkpO1xyXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgaW5wdXQgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAvLyBGdW5jdGlvbiByZXR1cm5pbmcgYW4gQVBYIG9iamVjdCB3aXRoIGNvbnRleHRcclxuICAgICAgICBlbGVtZW50cyA9IEFQWChpbnB1dCgpLCBjb250ZXh0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGlucHV0IHR5cGUgZm9yIEFQWCcpO1xyXG4gICAgfVxyXG5cclxuICAgIHZhciBhcHggPSB7XHJcbiAgICAgICAgZWxlbWVudHM6IGVsZW1lbnRzLFxyXG4gICAgICAgIF9pc0FQWE9iamVjdDogdHJ1ZVxyXG4gICAgfTtcclxuICAgIGFweC5sZW5ndGggPSBlbGVtZW50cy5sZW5ndGg7XHJcbiAgICBhcHguZWFjaCA9IGZ1bmN0aW9uIChjYWxsYmFjaykge1xyXG4gICAgICAgIGlmICh0aGlzLmVsZW1lbnRzIGluc3RhbmNlb2YgQXJyYXkpIHRoaXMuZWxlbWVudHMuZm9yRWFjaChjYWxsYmFjayk7XHJcbiAgICAgICAgaWYgKHRoaXMuZWxlbWVudHMgaW5zdGFuY2VvZiBOb2RlTGlzdCkgQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRzKS5mb3JFYWNoKGNhbGxiYWNrKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH07XHJcbiAgICBhcHguZ2V0ID0gZnVuY3Rpb24gKGluZGV4KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudHNbaW5kZXhdO1xyXG4gICAgfTtcclxuICAgIGFweC5hbGwgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZWxlbWVudHMgaW5zdGFuY2VvZiBBcnJheSkgcmV0dXJuIHRoaXMuZWxlbWVudHM7XHJcbiAgICAgICAgaWYgKHRoaXMuZWxlbWVudHMgaW5zdGFuY2VvZiBOb2RlTGlzdCkgcmV0dXJuIEFycmF5LmZyb20odGhpcy5lbGVtZW50cyk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9O1xyXG4gICAgYXB4LmZpcnN0ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldCgwKTtcclxuICAgIH07XHJcbiAgICBhdWdtZW50V2l0aExpc3RlbihhcHgpO1xyXG4gICAgYXVnbWVudFdpdGhUcmlzdGF0ZShhcHgpO1xyXG4gICAgcmV0dXJuIGFweDtcclxufTtcclxuXHJcbkFQWC5sb2FkQ3NzID0gbG9hZENzcztcclxuQVBYLmRpYWxvZyA9IGRpYWxvZztcclxuQVBYLmlzQVBYT2JqZWN0ID0gZnVuY3Rpb24gKG9iaikge1xyXG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX2lzQVBYT2JqZWN0ID09PSB0cnVlO1xyXG59XHJcbkFQWC5pc19udW1lcmljID0gKG4pID0+IHtcclxuICAgIHJldHVybiAhaXNOYU4obiAtIHBhcnNlRmxvYXQobikpO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBBUFg7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9
|
package/dist/APX.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var a0_0x4a5634=a0_0x54a1;function a0_0x54a1(_0xaec520,_0x1e0393){var _0x5b1f1e=a0_0x5b1f();return a0_0x54a1=function(_0x54a1e3,_0x5d630c){_0x54a1e3=_0x54a1e3-0xd6;var _0x20e4df=_0x5b1f1e[_0x54a1e3];return _0x20e4df;},a0_0x54a1(_0xaec520,_0x1e0393);}(function(_0x37a399,_0x55f281){var _0x4894d7=a0_0x54a1,_0x20e773=_0x37a399();while(!![]){try{var _0x1fa2ee=parseInt(_0x4894d7(0x140))/0x1*(-parseInt(_0x4894d7(0xdd))/0x2)+parseInt(_0x4894d7(0xfe))/0x3*(-parseInt(_0x4894d7(0x16e))/0x4)+parseInt(_0x4894d7(0x11d))/0x5+-parseInt(_0x4894d7(0xeb))/0x6*(-parseInt(_0x4894d7(0x144))/0x7)+-parseInt(_0x4894d7(0xf6))/0x8*(-parseInt(_0x4894d7(0x184))/0x9)+parseInt(_0x4894d7(0x17b))/0xa*(parseInt(_0x4894d7(0xf7))/0xb)+-parseInt(_0x4894d7(0x162))/0xc;if(_0x1fa2ee===_0x55f281)break;else _0x20e773['push'](_0x20e773['shift']());}catch(_0x18ff72){_0x20e773['push'](_0x20e773['shift']());}}}(a0_0x5b1f,0x8580a));var e={0x265:(_0x95e0f3,_0x4adeb9,_0x2bdc1d)=>{var _0x49a73e=a0_0x54a1;_0x2bdc1d['d'](_0x4adeb9,{'Z':()=>_0x1da14a});var _0x5bf7eb=_0x2bdc1d(0x51),_0x27e5d3=_0x2bdc1d['n'](_0x5bf7eb),_0x1913e4=_0x2bdc1d(0x285),_0x4b4af4=_0x2bdc1d['n'](_0x1913e4)()(_0x27e5d3());_0x4b4af4[_0x49a73e(0x10e)]([_0x95e0f3['id'],'/*\x20Dialog\x20styling\x20*/\x0a.APX-dialog\x20{\x0a\x20\x20\x20\x20display:\x20none;\x0a\x20\x20\x20\x20position:\x20fixed;\x0a\x20\x20\x20\x20z-index:\x201002;\x0a\x20\x20\x20\x20left:\x200;\x0a\x20\x20\x20\x20top:\x200;\x0a\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20height:\x20100%;\x0a\x20\x20\x20\x20overflow:\x20auto;\x0a\x20\x20\x20\x20background-color:\x20rgba(0,\x200,\x200,\x200.4);\x0a\x20\x20\x20\x20/*\x20Dimmed\x20background\x20for\x20focus\x20on\x20dialog\x20*/\x0a}\x0a\x0a.APX-dialog-content\x20{\x0a\x20\x20\x20\x20background-color:\x20#fefefe;\x0a\x20\x20\x20\x20padding:\x2040px;\x0a\x20\x20\x20\x20border:\x20none;\x0a\x20\x20\x20\x20width:\x20auto;\x0a\x20\x20\x20\x20min-width:\x20300px;\x0a\x20\x20\x20\x20max-width:\x2080%;\x0a\x20\x20\x20\x20margin:\x20auto;\x0a\x20\x20\x20\x20border-radius:\x208px;\x0a\x20\x20\x20\x20box-shadow:\x200px\x206px\x2020px\x20rgba(0,\x200,\x200,\x200.1);\x0a\x20\x20\x20\x20font-family:\x20\x27Helvetica\x20Neue\x27,\x20Arial,\x20sans-serif;\x0a}\x0a\x0ah2.APX-dialog-title{\x0a\x20\x20\x20\x20margin-top:0;\x0a}\x0a\x0a.APX-close-dialog\x20{\x0a\x20\x20\x20\x20color:\x20#aaa;\x0a\x20\x20\x20\x20float:\x20right;\x0a\x20\x20\x20\x20font-size:\x2024px;\x0a\x20\x20\x20\x20margin-top:\x20-10px;\x0a\x20\x20\x20\x20/*\x20Adjust\x20positioning\x20*/\x0a\x20\x20\x20\x20margin-right:\x20-10px;\x0a}\x0a\x0a.APX-close-dialog:hover,\x0a.APX-close-dialog:focus\x20{\x0a\x20\x20\x20\x20color:\x20#333;\x0a\x20\x20\x20\x20/*\x20Darker\x20color\x20on\x20hover/focus\x20*/\x0a\x20\x20\x20\x20cursor:\x20pointer;\x0a}\x0a\x0a/*\x20Input\x20fields\x20styling\x20*/\x0a.APX-dialog-content\x20input[type=\x22text\x22],\x0a.APX-dialog-content\x20input[type=\x22number\x22],\x0a.APX-dialog-content\x20input[type=\x22date\x22],\x0a.APX-dialog-content\x20input[type=\x22datetime-local\x22]\x20{\x0a\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20padding:\x2010px;\x0a\x20\x20\x20\x20margin-bottom:\x2020px;\x0a\x20\x20\x20\x20border:\x201px\x20solid\x20#ccc;\x0a\x20\x20\x20\x20border-radius:\x204px;\x0a\x20\x20\x20\x20font-family:\x20\x27Helvetica\x20Neue\x27,\x20Arial,\x20sans-serif;\x0a\x20\x20\x20\x20font-size:\x2016px;\x0a\x20\x20\x20\x20box-sizing:\x20border-box;\x0a\x20\x20\x20\x20transition:\x20border-color\x200.3s;\x0a}\x0a\x0a.APX-dialog-content\x20input[type=\x22text\x22]:focus,\x0a.APX-dialog-content\x20input[type=\x22number\x22]:focus,\x0a.APX-dialog-content\x20input[type=\x22date\x22]:focus,\x0a.APX-dialog-content\x20input[type=\x22datetime-local\x22]:focus\x20{\x0a\x20\x20\x20\x20border-color:\x20#2C3E50;\x0a\x20\x20\x20\x20/*\x20Deep\x20Blue\x20Color\x20*/\x0a\x20\x20\x20\x20outline:\x20none;\x0a}\x0a\x0a/*\x20Button\x20in\x20the\x20dialog\x20*/\x0a.APX-dialog-button-container\x20button\x20{\x0a\x20\x20\x20\x20position:\x20relative;\x0a\x20\x20\x20\x20background-color:\x20#2C3E50;\x0a\x20\x20\x20\x20color:\x20#ECF0F1;\x0a\x20\x20\x20\x20border:\x20none;\x0a\x20\x20\x20\x20padding:\x2010px\x2020px;\x0a\x20\x20\x20\x20border-radius:\x205px;\x0a\x20\x20\x20\x20font-size:\x2016px;\x0a\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20transition:\x20all\x200.3s\x20ease;\x0a\x20\x20\x20\x20box-shadow:\x200\x202px\x204px\x20rgba(0,\x200,\x200,\x200.1);\x0a}\x0a\x0a.APX-dialog-button-container\x20button:hover\x20{\x0a\x20\x20\x20\x20background-color:\x20#34495E;\x0a\x20\x20\x20\x20transform:\x20translateY(-1px);\x0a\x20\x20\x20\x20box-shadow:\x200\x204px\x208px\x20rgba(0,\x200,\x200,\x200.15);\x0a}\x0a\x0a.APX-dialog-button-container\x20{\x0a\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20gap:\x2010px;\x0a\x20\x20\x20\x20margin-top:1em;\x0a\x20\x20\x20\x20/*\x20spacing\x20between\x20buttons\x20*/\x0a}\x0a\x0a/*\x20Loading\x20indicator\x20*/\x0a.APX-dialog-loading-indicator\x20{\x0a\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20height:\x20100px;\x0a\x20\x20\x20\x20width:\x20100%;\x0a}\x0a\x0a.APX-dialog-loading-indicator::before\x20{\x0a\x20\x20\x20\x20content:\x20\x27\x27;\x0a\x20\x20\x20\x20width:\x2040px;\x0a\x20\x20\x20\x20height:\x2040px;\x0a\x20\x20\x20\x20border:\x204px\x20solid\x20#f3f3f3;\x0a\x20\x20\x20\x20border-top:\x204px\x20solid\x20#2C3E50;\x0a\x20\x20\x20\x20border-radius:\x2050%;\x0a\x20\x20\x20\x20animation:\x20APX-dialog-spin\x201s\x20linear\x20infinite;\x0a}\x0a\x0a@keyframes\x20APX-dialog-spin\x20{\x0a\x20\x20\x20\x200%\x20{\x20transform:\x20rotate(0deg);\x20}\x0a\x20\x20\x20\x20100%\x20{\x20transform:\x20rotate(360deg);\x20}\x0a}\x0a.APX-dialog-button-disabled\x20{\x0a\x20\x20\x20\x20opacity:\x200.5;\x0a\x20\x20\x20\x20cursor:\x20not-allowed\x20!important;\x0a\x20\x20\x20\x20background-color:\x20#95a5a6\x20!important;\x20/*\x20Grayed\x20out\x20color\x20*/\x0a\x20\x20\x20\x20box-shadow:\x20none\x20!important;\x0a\x20\x20\x20\x20transition:\x20all\x200.2s\x20ease;\x0a\x20\x20\x20\x20transform:\x20none\x20!important;\x0a}\x0a\x0a.APX-dialog-button-disabled:hover\x20{\x0a\x20\x20\x20\x20background-color:\x20#95a5a6\x20!important;\x20/*\x20Keep\x20gray\x20on\x20hover\x20*/\x0a\x20\x20\x20\x20transform:\x20none\x20!important;\x0a}\x0a\x0a/*\x20Add\x20a\x20subtle\x20strikethrough\x20effect\x20*/\x0a.APX-dialog-button-disabled::after\x20{\x0a\x20\x20\x20\x20content:\x20\x27\x27;\x0a\x20\x20\x20\x20position:\x20absolute;\x0a\x20\x20\x20\x20top:\x2050%;\x0a\x20\x20\x20\x20left:\x200;\x0a\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20height:\x201px;\x0a\x20\x20\x20\x20background-color:\x20rgba(0,\x200,\x200,\x200.2);\x0a\x20\x20\x20\x20transform:\x20rotate(-5deg);\x0a}','']);const _0x1da14a=_0x4b4af4;},0x23a:(_0x333cc0,_0xe30202,_0x1735ae)=>{var _0x134eac=a0_0x54a1;_0x1735ae['d'](_0xe30202,{'Z':()=>_0x3b2723});var _0x9b222d=_0x1735ae(0x51),_0x5e4186=_0x1735ae['n'](_0x9b222d),_0x3f700b=_0x1735ae(0x285),_0xf55ffc=_0x1735ae['n'](_0x3f700b),_0x34a23a=_0x1735ae(0x29b),_0x587176=_0x1735ae['n'](_0x34a23a),_0x106624=new URL(_0x1735ae(0x1d),_0x1735ae['b']),_0x38038d=new URL(_0x1735ae(0x391),_0x1735ae['b']),_0x54e444=new URL(_0x1735ae(0x104),_0x1735ae['b']),_0x24bc02=_0xf55ffc()(_0x5e4186()),_0x529ccc=_0x587176()(_0x106624),_0x1f8a42=_0x587176()(_0x38038d),_0x3394b7=_0x587176()(_0x54e444);_0x24bc02['push']([_0x333cc0['id'],'.apx-tristate\x20{\x0a\x20\x20\x20\x20display:\x20inline-block;\x0a\x20\x20\x20\x20vertical-align:\x20middle;\x0a\x20\x20\x20\x20text-align:\x20center;\x0a\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20position:\x20relative;\x0a\x20\x20\x20\x20min-width:13px;\x0a\x20\x20\x20\x20min-height:13px;\x0a\x20\x20\x20\x20background-size:\x20contain;\x0a\x20\x20\x20\x20background-color:\x20white;\x0a\x20\x20\x20\x20border-radius:3px;\x0a}\x0a.apx-tristate.unchecked\x20{\x0a\x20\x20\x20\x20background-image:\x20url('+_0x529ccc+_0x134eac(0xe5)+_0x1f8a42+_0x134eac(0x11a)+_0x3394b7+');\x0a\x20\x20\x20\x20background-repeat:\x20no-repeat;\x0a\x20\x20\x20\x20background-position:\x20center;\x0a}','']);const _0x3b2723=_0x24bc02;},0x285:_0x19aead=>{var _0x2c2b26=a0_0x54a1;_0x19aead[_0x2c2b26(0x112)]=function(_0x2aa725){var _0x5df151=_0x2c2b26,_0xe1a8f3=[];return _0xe1a8f3[_0x5df151(0x123)]=function(){return this['map'](function(_0x1941e3){var _0x567e92=a0_0x54a1,_0x1c398='',_0x38a87c=void 0x0!==_0x1941e3[0x5];return _0x1941e3[0x4]&&(_0x1c398+=_0x567e92(0x137)['concat'](_0x1941e3[0x4],_0x567e92(0x148))),_0x1941e3[0x2]&&(_0x1c398+=_0x567e92(0x18c)['concat'](_0x1941e3[0x2],'\x20{')),_0x38a87c&&(_0x1c398+=_0x567e92(0x159)[_0x567e92(0x136)](_0x1941e3[0x5][_0x567e92(0x157)]>0x0?'\x20'[_0x567e92(0x136)](_0x1941e3[0x5]):'','\x20{')),_0x1c398+=_0x2aa725(_0x1941e3),_0x38a87c&&(_0x1c398+='}'),_0x1941e3[0x2]&&(_0x1c398+='}'),_0x1941e3[0x4]&&(_0x1c398+='}'),_0x1c398;})['join']('');},_0xe1a8f3['i']=function(_0x1d97e2,_0x222844,_0xc9f6a0,_0x32b624,_0x11b7d7){var _0x5900e4=_0x5df151;_0x5900e4(0x10c)==typeof _0x1d97e2&&(_0x1d97e2=[[null,_0x1d97e2,void 0x0]]);var _0xf24bbb={};if(_0xc9f6a0)for(var _0x25fc98=0x0;_0x25fc98<this[_0x5900e4(0x157)];_0x25fc98++){var _0xad9c6a=this[_0x25fc98][0x0];null!=_0xad9c6a&&(_0xf24bbb[_0xad9c6a]=!0x0);}for(var _0x3abbc5=0x0;_0x3abbc5<_0x1d97e2[_0x5900e4(0x157)];_0x3abbc5++){var _0x2a79c5=[][_0x5900e4(0x136)](_0x1d97e2[_0x3abbc5]);_0xc9f6a0&&_0xf24bbb[_0x2a79c5[0x0]]||(void 0x0!==_0x11b7d7&&(void 0x0===_0x2a79c5[0x5]||(_0x2a79c5[0x1]=_0x5900e4(0x159)[_0x5900e4(0x136)](_0x2a79c5[0x5]['length']>0x0?'\x20'[_0x5900e4(0x136)](_0x2a79c5[0x5]):'','\x20{')[_0x5900e4(0x136)](_0x2a79c5[0x1],'}')),_0x2a79c5[0x5]=_0x11b7d7),_0x222844&&(_0x2a79c5[0x2]?(_0x2a79c5[0x1]=_0x5900e4(0x18c)[_0x5900e4(0x136)](_0x2a79c5[0x2],'\x20{')['concat'](_0x2a79c5[0x1],'}'),_0x2a79c5[0x2]=_0x222844):_0x2a79c5[0x2]=_0x222844),_0x32b624&&(_0x2a79c5[0x4]?(_0x2a79c5[0x1]=_0x5900e4(0x137)[_0x5900e4(0x136)](_0x2a79c5[0x4],')\x20{')[_0x5900e4(0x136)](_0x2a79c5[0x1],'}'),_0x2a79c5[0x4]=_0x32b624):_0x2a79c5[0x4]=''['concat'](_0x32b624)),_0xe1a8f3[_0x5900e4(0x10e)](_0x2a79c5));}},_0xe1a8f3;};},0x29b:_0x109a85=>{var _0x568924=a0_0x54a1;_0x109a85[_0x568924(0x112)]=function(_0x3d6583,_0x3cf04e){var _0x411aed=_0x568924;return _0x3cf04e||(_0x3cf04e={}),_0x3d6583?(_0x3d6583=String(_0x3d6583[_0x411aed(0x105)]?_0x3d6583[_0x411aed(0x100)]:_0x3d6583),/^['"].*['"]$/[_0x411aed(0x18e)](_0x3d6583)&&(_0x3d6583=_0x3d6583[_0x411aed(0x110)](0x1,-0x1)),_0x3cf04e[_0x411aed(0x182)]&&(_0x3d6583+=_0x3cf04e[_0x411aed(0x182)]),/["'() \t\n]|(%20)/['test'](_0x3d6583)||_0x3cf04e['needQuotes']?'\x22'[_0x411aed(0x136)](_0x3d6583[_0x411aed(0x183)](/"/g,'\x5c\x22')[_0x411aed(0x183)](/\n/g,'\x5cn'),'\x22'):_0x3d6583):_0x3d6583;};},0x51:_0x562a43=>{var _0x41ade7=a0_0x54a1;_0x562a43[_0x41ade7(0x112)]=function(_0x3833a1){return _0x3833a1[0x1];};},0x17b:_0x581092=>{var _0x49f41f=a0_0x54a1,_0x84826a=[];function _0xf25ce4(_0x24c174){var _0x3cbdf0=a0_0x54a1;for(var _0x14c4a9=-0x1,_0x11c7c3=0x0;_0x11c7c3<_0x84826a['length'];_0x11c7c3++)if(_0x84826a[_0x11c7c3][_0x3cbdf0(0x13a)]===_0x24c174){_0x14c4a9=_0x11c7c3;break;}return _0x14c4a9;}function _0x3d329a(_0x5355b3,_0x2bfb02){var _0x31aa18=a0_0x54a1;for(var _0x48af9d={},_0x2ded91=[],_0x5c019d=0x0;_0x5c019d<_0x5355b3[_0x31aa18(0x157)];_0x5c019d++){var _0x3f66dc=_0x5355b3[_0x5c019d],_0x17824e=_0x2bfb02[_0x31aa18(0x153)]?_0x3f66dc[0x0]+_0x2bfb02[_0x31aa18(0x153)]:_0x3f66dc[0x0],_0x1c9871=_0x48af9d[_0x17824e]||0x0,_0xddb100=''['concat'](_0x17824e,'\x20')['concat'](_0x1c9871);_0x48af9d[_0x17824e]=_0x1c9871+0x1;var _0x29363f=_0xf25ce4(_0xddb100),_0x2ba9a7={'css':_0x3f66dc[0x1],'media':_0x3f66dc[0x2],'sourceMap':_0x3f66dc[0x3],'supports':_0x3f66dc[0x4],'layer':_0x3f66dc[0x5]};if(-0x1!==_0x29363f)_0x84826a[_0x29363f]['references']++,_0x84826a[_0x29363f][_0x31aa18(0xd6)](_0x2ba9a7);else{var _0x19c585=_0x3cda58(_0x2ba9a7,_0x2bfb02);_0x2bfb02[_0x31aa18(0xe3)]=_0x5c019d,_0x84826a['splice'](_0x5c019d,0x0,{'identifier':_0xddb100,'updater':_0x19c585,'references':0x1});}_0x2ded91[_0x31aa18(0x10e)](_0xddb100);}return _0x2ded91;}function _0x3cda58(_0x4d42cf,_0x29ea65){var _0xf5090=a0_0x54a1,_0x4631df=_0x29ea65[_0xf5090(0xef)](_0x29ea65);return _0x4631df['update'](_0x4d42cf),function(_0x2e1c2e){var _0xe1343d=_0xf5090;if(_0x2e1c2e){if(_0x2e1c2e[_0xe1343d(0xfc)]===_0x4d42cf[_0xe1343d(0xfc)]&&_0x2e1c2e[_0xe1343d(0x107)]===_0x4d42cf[_0xe1343d(0x107)]&&_0x2e1c2e[_0xe1343d(0x111)]===_0x4d42cf['sourceMap']&&_0x2e1c2e[_0xe1343d(0xea)]===_0x4d42cf[_0xe1343d(0xea)]&&_0x2e1c2e[_0xe1343d(0x172)]===_0x4d42cf['layer'])return;_0x4631df[_0xe1343d(0xdc)](_0x4d42cf=_0x2e1c2e);}else _0x4631df['remove']();};}_0x581092[_0x49f41f(0x112)]=function(_0xaf2cbd,_0x56377e){var _0x5752d2=_0x3d329a(_0xaf2cbd=_0xaf2cbd||[],_0x56377e=_0x56377e||{});return function(_0x51f39a){var _0x2c08fc=a0_0x54a1;_0x51f39a=_0x51f39a||[];for(var _0x28b449=0x0;_0x28b449<_0x5752d2[_0x2c08fc(0x157)];_0x28b449++){var _0x318061=_0xf25ce4(_0x5752d2[_0x28b449]);_0x84826a[_0x318061][_0x2c08fc(0x155)]--;}for(var _0xd006ea=_0x3d329a(_0x51f39a,_0x56377e),_0xda25ee=0x0;_0xda25ee<_0x5752d2[_0x2c08fc(0x157)];_0xda25ee++){var _0x3d653a=_0xf25ce4(_0x5752d2[_0xda25ee]);0x0===_0x84826a[_0x3d653a][_0x2c08fc(0x155)]&&(_0x84826a[_0x3d653a]['updater'](),_0x84826a['splice'](_0x3d653a,0x1));}_0x5752d2=_0xd006ea;};};},0x239:_0x938756=>{var _0x1f3513={};_0x938756['exports']=function(_0x46dc45,_0x36222c){var _0x1cb973=a0_0x54a1,_0x526522=function(_0x5f468a){var _0x37d1f0=a0_0x54a1;if(void 0x0===_0x1f3513[_0x5f468a]){var _0x12b1df=document[_0x37d1f0(0x104)](_0x5f468a);if(window[_0x37d1f0(0x160)]&&_0x12b1df instanceof window[_0x37d1f0(0x160)])try{_0x12b1df=_0x12b1df[_0x37d1f0(0x103)][_0x37d1f0(0x12d)];}catch(_0x437294){_0x12b1df=null;}_0x1f3513[_0x5f468a]=_0x12b1df;}return _0x1f3513[_0x5f468a];}(_0x46dc45);if(!_0x526522)throw new Error('Couldn\x27t\x20find\x20a\x20style\x20target.\x20This\x20probably\x20means\x20that\x20the\x20value\x20for\x20the\x20\x27insert\x27\x20parameter\x20is\x20invalid.');_0x526522[_0x1cb973(0x18b)](_0x36222c);};},0xd8:_0x75b9ce=>{var _0x45ed0a=a0_0x54a1;_0x75b9ce[_0x45ed0a(0x112)]=function(_0x3e2a79){var _0x5e95d8=_0x45ed0a,_0x225c8b=document[_0x5e95d8(0xf2)](_0x5e95d8(0x145));return _0x3e2a79[_0x5e95d8(0x14a)](_0x225c8b,_0x3e2a79['attributes']),_0x3e2a79['insert'](_0x225c8b,_0x3e2a79[_0x5e95d8(0x18f)]),_0x225c8b;};},0x235:(_0x2645dc,_0x5690ab,_0x1f7052)=>{_0x2645dc['exports']=function(_0x2f81e3){var _0x40fb94=a0_0x54a1,_0x31472e=_0x1f7052['nc'];_0x31472e&&_0x2f81e3[_0x40fb94(0x14b)]('nonce',_0x31472e);};},0x31b:_0x57eaf4=>{var _0x5975ab=a0_0x54a1;_0x57eaf4[_0x5975ab(0x112)]=function(_0x25ac46){var _0x5e663a=_0x5975ab;if(_0x5e663a(0x171)==typeof document)return{'update':function(){},'remove':function(){}};var _0x38c4d4=_0x25ac46['insertStyleElement'](_0x25ac46);return{'update':function(_0x7a6106){!function(_0xa218f1,_0x5c70cb,_0x43f55b){var _0x453490=a0_0x54a1,_0x506402='';_0x43f55b[_0x453490(0xea)]&&(_0x506402+=_0x453490(0x137)[_0x453490(0x136)](_0x43f55b[_0x453490(0xea)],_0x453490(0x148))),_0x43f55b[_0x453490(0x107)]&&(_0x506402+=_0x453490(0x18c)[_0x453490(0x136)](_0x43f55b[_0x453490(0x107)],'\x20{'));var _0x4ddd53=void 0x0!==_0x43f55b['layer'];_0x4ddd53&&(_0x506402+=_0x453490(0x159)['concat'](_0x43f55b[_0x453490(0x172)][_0x453490(0x157)]>0x0?'\x20'[_0x453490(0x136)](_0x43f55b['layer']):'','\x20{')),_0x506402+=_0x43f55b[_0x453490(0xfc)],_0x4ddd53&&(_0x506402+='}'),_0x43f55b['media']&&(_0x506402+='}'),_0x43f55b[_0x453490(0xea)]&&(_0x506402+='}');var _0xdfef69=_0x43f55b[_0x453490(0x111)];_0xdfef69&&_0x453490(0x171)!=typeof btoa&&(_0x506402+='\x0a/*#\x20sourceMappingURL=data:application/json;base64,'[_0x453490(0x136)](btoa(unescape(encodeURIComponent(JSON[_0x453490(0x102)](_0xdfef69)))),_0x453490(0x185))),_0x5c70cb[_0x453490(0xf4)](_0x506402,_0xa218f1,_0x5c70cb[_0x453490(0x18f)]);}(_0x38c4d4,_0x25ac46,_0x7a6106);},'remove':function(){!function(_0x264dfe){var _0x1d7e1c=a0_0x54a1;if(null===_0x264dfe[_0x1d7e1c(0xd7)])return!0x1;_0x264dfe[_0x1d7e1c(0xd7)][_0x1d7e1c(0x108)](_0x264dfe);}(_0x38c4d4);}};};},0x24d:_0x487905=>{_0x487905['exports']=function(_0x1814f9,_0x46c4c6){var _0x3556f3=a0_0x54a1;if(_0x46c4c6['styleSheet'])_0x46c4c6[_0x3556f3(0x165)]['cssText']=_0x1814f9;else{for(;_0x46c4c6[_0x3556f3(0x13d)];)_0x46c4c6['removeChild'](_0x46c4c6[_0x3556f3(0x13d)]);_0x46c4c6[_0x3556f3(0x18b)](document[_0x3556f3(0x13f)](_0x1814f9));}};},0x104:_0x3716cf=>{var _0x45ed30=a0_0x54a1;_0x3716cf[_0x45ed30(0x112)]=_0x45ed30(0x176);},0x1d:_0x32322c=>{var _0x1e6f06=a0_0x54a1;_0x32322c['exports']=_0x1e6f06(0x109);},0x391:_0x189b7f=>{var _0x1ff9ac=a0_0x54a1;_0x189b7f['exports']=_0x1ff9ac(0xee);}},t={};function a0_0x5b1f(){var _0x497f72=['from','string','300px','push','keyCode','slice','sourceMap','exports','lifecycle','iterateNext','medium','size','querySelectorAll','defaultState','hasOwnProperty',');\x0a\x20\x20\x20\x20background-repeat:\x20no-repeat;\x0a\x20\x20\x20\x20background-position:\x20center;\x0a}\x0a.apx-tristate.crossed\x20{\x0a\x20\x20\x20\x20background-image:\x20url(','eventType','error','1088110sQZbak','bubbleEvents','change','add','insertStyleElement','buttons','toString','dispatchEvent','removeAttribute','statusText','tristate','No\x20resolver\x20found\x20for\x20lifecycle\x20event:\x20','contains','.APX-dialog-title','.APX-close-dialog','500px','head','catch','flex','evaluate','contentLoading','textContent','APX-dialog-button','order','value','concat','@supports\x20(','dataset','.APX-dialog-button-container','identifier','onclick','first','firstChild','split','createTextNode','2WBHKam','cursor','height','opened','49CNMPlj','style','get','apx-tristate',')\x20{','800px','setAttributes','setAttribute','after','remove','body','startsWith','elements','type','.APX-dialog-content','base','loadCss','references','unchecked','length','trigger','@layer','input','isAPXObject','object','crossed','flex-end','click','HTMLIFrameElement','tabIndex','18895296IknuGE','checkbox','each','styleSheet','true','location','width','classes','bind','Error\x20during\x20dialog\x20closing:','call','opening','4hLkgrp','function','none','undefined','layer','classList','close','.APX-dialog-button[data-key=\x22','data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%3Csvg%20viewBox%3D%220%200%2032%2032%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22m0.543%205.647c0-3.119%202.531-5.647%205.65-5.647h19.309c3.12%200%205.65%202.511%205.65%205.647v20.705c0%203.119-2.531%205.647-5.65%205.647h-19.309c-3.12%200-5.65-2.511-5.65-5.647v-20.705z%22%20fill%3D%22%23f00%22%2F%3E%3Cpath%20d%3D%22m8%208%2016%2016%22%20stroke%3D%22%23fff%22%20stroke-width%3D%222%22%2F%3E%3Cpath%20d%3D%22M24%208L8%2024%22%20stroke%3D%22%23fff%22%20stroke-width%3D%222%22%2F%3E%3C%2Fsvg%3E','then','insert','contentLoaded','APX-dialog-button-disabled','480mSmadP','filter','.APX-dialog-dynamic-content','indexOf','name','wait','checked','hash','replace','63MYuaaB','\x20*/','button','innerHTML','warn','<div\x20class=\x22APX-dialog-loading-indicator\x22></div>','Invalid\x20input\x20type\x20for\x20APX','appendChild','@media\x20','locals','test','options','<div\x20class=\x22APX-dialog\x22>\x20<div\x20class=\x22APX-dialog-content\x22>\x20<span\x20class=\x22APX-close-dialog\x22>×</span>\x20<h2\x20class=\x22APX-dialog-title\x22></h2>\x20<div\x20class=\x22APX-dialog-dynamic-content\x22></div>\x20<div\x20class=\x22APX-dialog-button-container\x22></div>\x20</div>\x20</div>','keyup','forEach','matches','target','Failed\x20to\x20load\x20CSS:','updater','parentNode','400px','hidden','preventDefault','200px','update','20612IEkTRA','callbacks','closing','nodeType','all','display','byIndex','closed',');\x0a}\x0a.apx-tristate.checked\x20{\x0a\x20\x20\x20\x20background-image:\x20url(','Error\x20in\x20callback\x20chain:','href','listen','every','supports','785364esUgjT','text','disabled','data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20width%3D%2732%27%20height%3D%2732%27%3E%3Cpath%20fill%3D%22%230654ba%22%20d%3D%22M0.543%205.647c0-3.119%202.531-5.647%205.65-5.647h19.309c3.12%200%205.65%202.511%205.65%205.647v20.705c0%203.119-2.531%205.647-5.65%205.647h-19.309c-3.12%200-5.65-2.511-5.65-5.647v-20.705zM5.313%2017.587l7.039%206.839%2013.831-13.439-2.636-2.561-10.929%2010.62-4.442-4.317-2.862%202.858z%22%3E%3C/path%3E%3C/svg%3E','domAPI','prototype','addEventListener','createElement','data-key','styleTagTransform','Error\x20loading\x20content:','748680VYhUIc','209407OnFuIW','getComputedStyle','div','isArray','substr','css','defineProperty','1682115Ikybeq','random','default','false','stringify','contentDocument','querySelector','__esModule','resolve','media','removeChild','data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20width%3D%2732%27%20height%3D%2732%27%3E%3Cpath%20%20fill%3D%22%23cccccc%22%20d%3D%22M25.107%2032.030h-18.214c-3.456%200-6.268-2.81-6.268-6.264v-19.529c0-3.456%202.812-6.268%206.268-6.268h18.214c3.456%200%206.268%202.812%206.268%206.268v19.529c0%203.452-2.812%206.264-6.268%206.264zM6.893%201.85c-2.419%200-4.386%201.967-4.386%204.386v19.529c0%202.417%201.967%204.382%204.386%204.382h18.214c2.419%200%204.386-1.965%204.386-4.382v-19.529c0-2.419-1.967-4.386-4.386-4.386h-18.214z%22%3E%3C/path%3E%3C/svg%3E','isClosed'];a0_0x5b1f=function(){return _0x497f72;};return a0_0x5b1f();}function n(_0x393a54){var _0x2a4715=a0_0x54a1,_0x46700e=t[_0x393a54];if(void 0x0!==_0x46700e)return _0x46700e[_0x2a4715(0x112)];var _0x2d8b7b=t[_0x393a54]={'id':_0x393a54,'exports':{}};return e[_0x393a54](_0x2d8b7b,_0x2d8b7b[_0x2a4715(0x112)],n),_0x2d8b7b[_0x2a4715(0x112)];}n['m']=e,n['n']=_0x50ca6d=>{var _0x5107b2=a0_0x54a1,_0x3e1be1=_0x50ca6d&&_0x50ca6d[_0x5107b2(0x105)]?()=>_0x50ca6d[_0x5107b2(0x100)]:()=>_0x50ca6d;return n['d'](_0x3e1be1,{'a':_0x3e1be1}),_0x3e1be1;},n['d']=(_0xaa68d9,_0xb9551c)=>{var _0x3a4251=a0_0x54a1;for(var _0x58bc7e in _0xb9551c)n['o'](_0xb9551c,_0x58bc7e)&&!n['o'](_0xaa68d9,_0x58bc7e)&&Object[_0x3a4251(0xfd)](_0xaa68d9,_0x58bc7e,{'enumerable':!0x0,'get':_0xb9551c[_0x58bc7e]});},n['o']=(_0x38361a,_0x44d2bf)=>Object[a0_0x4a5634(0xf0)][a0_0x4a5634(0x119)][a0_0x4a5634(0x16c)](_0x38361a,_0x44d2bf),n['b']=document['baseURI']||self[a0_0x4a5634(0x167)][a0_0x4a5634(0xe7)],n['nc']=void 0x0;var o={};((()=>{var _0x55ff66=a0_0x4a5634;n['d'](o,{'Z':()=>_0x1d6755});let _0x2ad27e=0x0;const _0x3e14ef={},_0x1d9118={};function _0x3107ae(_0x1d4e66,_0x3d90e4,_0x25e8b2,_0x43d8c5='',_0x2c5531){var _0x31b898=a0_0x54a1;const _0xd8cd9a=_0x43d8c5?function(_0xb191e2,_0x19aa4f){var _0x4f235c=a0_0x54a1;for(;_0xb191e2&&0x1===_0xb191e2[_0x4f235c(0xe0)];){if(_0xb191e2[_0x4f235c(0x193)](_0x19aa4f))return _0xb191e2;_0xb191e2=_0xb191e2[_0x4f235c(0xd7)];}return null;}(_0x1d4e66[_0x31b898(0x194)],_0x43d8c5):_0x2c5531;function _0x80a288(){var _0x292c77=_0x31b898;_0x3e14ef[_0x3d90e4]&&_0x3e14ef[_0x3d90e4]['reduce']((_0xdbdaf9,_0x3676ae)=>_0xdbdaf9[_0x292c77(0x177)](()=>new Promise((_0x379784,_0x37f296)=>{var _0x14559e=_0x292c77;try{const _0x5a3355=_0x3676ae[_0x14559e(0x16a)](_0xd8cd9a)(_0x1d4e66);_0x5a3355 instanceof Promise?_0x5a3355[_0x14559e(0x177)](_0x379784)[_0x14559e(0x12e)](_0x37f296):_0x379784(_0x5a3355);}catch(_0x2b07d0){_0x37f296(_0x2b07d0);}})),Promise[_0x292c77(0x106)]())['catch'](_0x31af2c=>{var _0x571183=_0x292c77;console['error'](_0x571183(0xe6),_0x31af2c);});}_0xd8cd9a&&(clearTimeout(_0x1d9118[_0x3d90e4]),0x0===_0x25e8b2?_0x80a288():_0x1d9118[_0x3d90e4]=setTimeout(_0x80a288,_0x25e8b2));}var _0x21e2d7=n(0x17b),_0x3d1319=n['n'](_0x21e2d7),_0x300c8a=n(0x31b),_0x57e370=n['n'](_0x300c8a),_0x3d3dac=n(0x239),_0x2af62b=n['n'](_0x3d3dac),_0x175aad=n(0x235),_0x96291e=n['n'](_0x175aad),_0x307b6a=n(0xd8),_0x4ddc69=n['n'](_0x307b6a),_0x2e7dd8=n(0x24d),_0x4ed43d=n['n'](_0x2e7dd8),_0x41d3fa=n(0x23a),_0x406acb={};function _0x391239(_0x3d0345){var _0x5a8c63=a0_0x54a1;_0x3d0345[_0x5a8c63(0x127)]=function(_0x15cea3={}){var _0x6beeb4=_0x5a8c63;_0x3d0345[_0x6beeb4(0x150)]['forEach'](_0x3f2b69=>{var _0x52575e=_0x6beeb4;if(_0x52575e(0x163)===_0x3f2b69[_0x52575e(0x151)]){const [_0x53ad91,_0x24156e,_0x49ae26]=function(_0x1a2cc6,_0x206e7b){var _0x290af2=_0x52575e;const _0x13cbca=window[_0x290af2(0xf8)](_0x1a2cc6);_0x1a2cc6['style'][_0x290af2(0xe2)]='none';const _0x1142ac=document[_0x290af2(0xf2)](_0x290af2(0xf9));_0x1142ac[_0x290af2(0x173)][_0x290af2(0x120)](_0x290af2(0x147)),_0x206e7b[_0x290af2(0x116)]&&(_0x206e7b[_0x290af2(0x116)][_0x290af2(0x168)]&&(_0x1142ac['style'][_0x290af2(0x168)]=_0x206e7b['size']['width']+'px'),_0x206e7b[_0x290af2(0x116)]['height']&&(_0x1142ac[_0x290af2(0x145)][_0x290af2(0x142)]=_0x206e7b[_0x290af2(0x116)][_0x290af2(0x142)]+'px')),_0x206e7b[_0x290af2(0x169)]&&_0x1142ac[_0x290af2(0x173)][_0x290af2(0x120)](...function(_0x3590bc){var _0x678d9f=_0x290af2;let _0xb3554=[];return _0x678d9f(0x10c)==typeof _0x3590bc?_0xb3554=(_0x3590bc=_0x3590bc[_0x678d9f(0x183)](/\s\s+/g,'\x20'))[_0x678d9f(0x17e)]('\x20')>-0x1?_0x3590bc['split']('\x20'):_0x3590bc[_0x678d9f(0x17e)](',')>-0x1?_0x3590bc[_0x678d9f(0x13e)](','):[_0x3590bc]:Array[_0x678d9f(0xfa)](_0x3590bc)&&(_0xb3554=_0x3590bc),_0xb3554;}(_0x206e7b[_0x290af2(0x169)])),_0x1142ac['style']['margin']=_0x13cbca['margin'],_0x1a2cc6[_0x290af2(0x181)]?_0x1142ac['classList']['add'](_0x290af2(0x181)):_0x1142ac['classList'][_0x290af2(0x120)](_0x290af2(0x156));const _0x32356d=document[_0x290af2(0xf2)](_0x290af2(0x15a));return _0x32356d[_0x290af2(0x151)]=_0x290af2(0xd9),_0x32356d[_0x290af2(0x17f)]=_0x1a2cc6[_0x290af2(0x17f)],_0x1a2cc6[_0x290af2(0x138)]['name']=_0x1a2cc6[_0x290af2(0x17f)],_0x1a2cc6[_0x290af2(0x125)]('name'),_0x206e7b[_0x290af2(0x118)]?function(_0x1959c8,_0x239866,_0x1058bd){var _0x2143a6=_0x290af2;_0x2143a6(0x181)===_0x1959c8[_0x2143a6(0x118)]?(_0x239866[_0x2143a6(0x173)][_0x2143a6(0x14d)](_0x2143a6(0x156)),_0x239866[_0x2143a6(0x173)][_0x2143a6(0x120)](_0x2143a6(0x181)),_0x1058bd[_0x2143a6(0x135)]='true'):_0x2143a6(0x156)===_0x1959c8['defaultState']?(_0x239866[_0x2143a6(0x173)][_0x2143a6(0x14d)]('checked'),_0x239866[_0x2143a6(0x173)][_0x2143a6(0x120)]('unchecked'),_0x1058bd['removeAttribute'](_0x2143a6(0x17f)),_0x1058bd['removeAttribute']('value')):_0x2143a6(0x15d)===_0x1959c8[_0x2143a6(0x118)]&&(_0x239866[_0x2143a6(0x173)][_0x2143a6(0x14d)](_0x2143a6(0x181)),_0x239866[_0x2143a6(0x173)]['add'](_0x2143a6(0x15d)),_0x1058bd[_0x2143a6(0x135)]='false');}(_0x206e7b,_0x1142ac,_0x32356d):_0x1a2cc6[_0x290af2(0x181)]?_0x32356d[_0x290af2(0x135)]='true':(_0x32356d[_0x290af2(0x17f)]='',_0x32356d[_0x290af2(0x135)]=''),_0x1142ac['tabIndex']=_0x1a2cc6[_0x290af2(0x161)],_0x1142ac['appendChild'](_0x32356d),_0x1a2cc6['parentNode']['insertBefore'](_0x1142ac,_0x1a2cc6['nextSibling']),_0x1142ac['addEventListener']('click',function(_0x540091){!function(_0x55c4ec,_0x4eeb81,_0x3a36b3){var _0x1411fc=a0_0x54a1;_0x55c4ec[_0x1411fc(0x173)][_0x1411fc(0x129)](_0x1411fc(0x181))?(_0x55c4ec[_0x1411fc(0x173)][_0x1411fc(0x14d)](_0x1411fc(0x181)),_0x55c4ec[_0x1411fc(0x173)][_0x1411fc(0x120)](_0x1411fc(0x15d)),_0x4eeb81[_0x1411fc(0x181)]=!0x1,_0x3a36b3[_0x1411fc(0x135)]=_0x1411fc(0x101)):_0x55c4ec[_0x1411fc(0x173)]['contains']('crossed')?(_0x55c4ec[_0x1411fc(0x173)][_0x1411fc(0x14d)](_0x1411fc(0x15d)),_0x55c4ec[_0x1411fc(0x173)]['add'](_0x1411fc(0x156)),_0x3a36b3[_0x1411fc(0x125)](_0x1411fc(0x17f)),_0x3a36b3[_0x1411fc(0x125)](_0x1411fc(0x135))):(_0x55c4ec['classList'][_0x1411fc(0x14d)](_0x1411fc(0x156)),_0x55c4ec[_0x1411fc(0x173)]['add'](_0x1411fc(0x181)),_0x4eeb81[_0x1411fc(0x181)]=!0x0,_0x3a36b3[_0x1411fc(0x135)]=_0x1411fc(0x166),_0x3a36b3[_0x1411fc(0x14b)](_0x1411fc(0x17f),_0x4eeb81['dataset'][_0x1411fc(0x17f)]));}(_0x1142ac,_0x1a2cc6,_0x32356d),_0x1b008a(_0x206e7b,_0x1a2cc6,_0x1142ac,_0x32356d,_0x540091);}),_0x1142ac[_0x290af2(0xf1)](_0x290af2(0x191),_0x1bb99d[_0x290af2(0x16a)](null,_0x1a2cc6)),[_0x1a2cc6,_0x1142ac,_0x32356d];}(_0x3f2b69,_0x15cea3);_0x15cea3[_0x52575e(0xde)]&&_0x15cea3[_0x52575e(0xde)][_0x52575e(0x14c)]&&_0x52575e(0x16f)==typeof _0x15cea3[_0x52575e(0xde)][_0x52575e(0x14c)]&&_0x15cea3[_0x52575e(0xde)][_0x52575e(0x14c)](_0x53ad91,_0x24156e,_0x49ae26);}});};}function _0x1b008a(_0x1bc37d,_0xefe6f2,_0x50d6b9,_0x4d7aa6,_0x40f467){var _0x28fc9c=a0_0x54a1;_0x1bc37d[_0x28fc9c(0xde)]&&_0x1bc37d['callbacks']['change']&&_0x28fc9c(0x16f)==typeof _0x1bc37d[_0x28fc9c(0xde)][_0x28fc9c(0x11f)]&&_0x1bc37d['callbacks']['change'](_0xefe6f2,_0x50d6b9,_0x4d7aa6),_0x1bc37d[_0x28fc9c(0x11e)]&&(_0x28fc9c(0x15f)===_0x40f467[_0x28fc9c(0x151)]?_0xefe6f2['dispatchEvent'](new MouseEvent(_0x28fc9c(0x15f),{'bubbles':!0x0,'cancelable':!0x0})):'keyup'===_0x40f467[_0x28fc9c(0x151)]?_0xefe6f2[_0x28fc9c(0x124)](new KeyboardEvent(_0x28fc9c(0x191),{'key':'\x20','bubbles':!0x0,'cancelable':!0x0})):_0x28fc9c(0x11f)===_0x40f467['type']&&_0xefe6f2[_0x28fc9c(0x124)](new Event(_0x28fc9c(0x11f),{'bubbles':!0x0,'cancelable':!0x0})));}function _0x1bb99d(_0x478ee4,_0x2e5666){var _0x494aeb=a0_0x54a1;0x20===_0x2e5666[_0x494aeb(0x10f)]&&(_0x1b008a(_0x478ee4,_0x2e5666),_0x2e5666[_0x494aeb(0xda)](),_0x2e5666[_0x494aeb(0x194)][_0x494aeb(0x15f)]());}_0x406acb[_0x55ff66(0xf4)]=_0x4ed43d(),_0x406acb[_0x55ff66(0x14a)]=_0x96291e(),_0x406acb[_0x55ff66(0x178)]=_0x2af62b()[_0x55ff66(0x16a)](null,_0x55ff66(0x12d)),_0x406acb[_0x55ff66(0xef)]=_0x57e370(),_0x406acb[_0x55ff66(0x121)]=_0x4ddc69(),_0x3d1319()(_0x41d3fa['Z'],_0x406acb),_0x41d3fa['Z']&&_0x41d3fa['Z'][_0x55ff66(0x18d)]&&_0x41d3fa['Z'][_0x55ff66(0x18d)];var _0x1ab2a2=n(0x265),_0xdcf27a={};_0xdcf27a[_0x55ff66(0xf4)]=_0x4ed43d(),_0xdcf27a[_0x55ff66(0x14a)]=_0x96291e(),_0xdcf27a['insert']=_0x2af62b()[_0x55ff66(0x16a)](null,_0x55ff66(0x12d)),_0xdcf27a['domAPI']=_0x57e370(),_0xdcf27a[_0x55ff66(0x121)]=_0x4ddc69(),_0x3d1319()(_0x1ab2a2['Z'],_0xdcf27a),_0x1ab2a2['Z']&&_0x1ab2a2['Z'][_0x55ff66(0x18d)]&&_0x1ab2a2['Z']['locals'];const _0x530ab4=function(_0x4eed47,_0x220150=document){var _0x534588=_0x55ff66;let _0xabf14f;if(_0x534588(0x10c)==typeof _0x220150)_0x220150=document['querySelector'](_0x220150);else{if(_0x530ab4[_0x534588(0x15b)](_0x220150))_0x220150=_0x220150[_0x534588(0x13c)]();else{if(!(_0x220150 instanceof HTMLElement||_0x220150 instanceof Document))throw new Error('Invalid\x20context\x20for\x20APX');}}if('string'==typeof _0x4eed47&&_0x4eed47[_0x534588(0x14f)]('//')){_0xabf14f=document[_0x534588(0x130)](_0x4eed47,_0x220150,null,XPathResult['ANY_TYPE'],null);let _0x45d37c=[],_0x5b67e1=_0xabf14f[_0x534588(0x114)]();for(;_0x5b67e1;)_0x45d37c[_0x534588(0x10e)](_0x5b67e1),_0x5b67e1=_0xabf14f[_0x534588(0x114)]();_0xabf14f=_0x45d37c;}else{if('string'==typeof _0x4eed47)_0xabf14f=_0x220150[_0x534588(0x117)](_0x4eed47);else{if(_0x4eed47 instanceof HTMLElement)_0xabf14f=_0x220150[_0x534588(0x129)](_0x4eed47)?[_0x4eed47]:[];else{if(_0x4eed47 instanceof NodeList||_0x4eed47 instanceof HTMLCollection)_0xabf14f=Array[_0x534588(0x10b)](_0x4eed47)[_0x534588(0x17c)](_0x32fc4c=>_0x220150[_0x534588(0x129)](_0x32fc4c));else{if(Array[_0x534588(0xfa)](_0x4eed47)&&_0x4eed47[_0x534588(0xe9)](_0x45a3ef=>_0x45a3ef instanceof HTMLElement))_0xabf14f=_0x4eed47['filter'](_0x24b073=>_0x220150[_0x534588(0x129)](_0x24b073));else{if('undefined'!=typeof jQuery&&_0x4eed47 instanceof jQuery)_0xabf14f=Array[_0x534588(0x10b)](_0x4eed47[_0x534588(0x146)]())[_0x534588(0x17c)](_0x407ceb=>_0x220150[_0x534588(0x129)](_0x407ceb));else{if(_0x534588(0x16f)!=typeof _0x4eed47)throw new Error(_0x534588(0x18a));_0xabf14f=_0x530ab4(_0x4eed47(),_0x220150);}}}}}}var _0x588b9d={'elements':_0xabf14f,'_isAPXObject':!0x0};return _0x588b9d[_0x534588(0x157)]=_0xabf14f[_0x534588(0x157)],_0x588b9d[_0x534588(0x164)]=function(_0x588d2c){var _0x485753=_0x534588;return this[_0x485753(0x150)]instanceof Array&&this['elements']['forEach'](_0x588d2c),this[_0x485753(0x150)]instanceof NodeList&&Array['from'](this[_0x485753(0x150)])[_0x485753(0x192)](_0x588d2c),this;},_0x588b9d['get']=function(_0x2904ea){var _0x33a4e4=_0x534588;return this[_0x33a4e4(0x150)][_0x2904ea];},_0x588b9d[_0x534588(0xe1)]=function(){var _0x1b3676=_0x534588;return this[_0x1b3676(0x150)]instanceof Array?this[_0x1b3676(0x150)]:this[_0x1b3676(0x150)]instanceof NodeList?Array['from'](this[_0x1b3676(0x150)]):this;},_0x588b9d[_0x534588(0x13c)]=function(){var _0x26422f=_0x534588;return this[_0x26422f(0x146)](0x0);},function(_0x1543c8){var _0x11b686=_0x534588;let _0x4c050e=_0x1543c8[_0x11b686(0x150)];_0x1543c8[_0x11b686(0xe8)]=function(_0x1cf71c,_0x41cff8,_0x5b3e9a){var _0x2513ed=_0x11b686;let _0x82f04c,_0x13d725={};_0x2513ed(0x10c)==typeof _0x41cff8?(_0x82f04c=_0x41cff8,_0x13d725=_0x5b3e9a||{}):_0x13d725=_0x41cff8||{};const _0x1d5706=(function(){var _0x46afbd=_0x2513ed;const _0x3f3ce8=Math[_0x46afbd(0xff)]()[_0x46afbd(0x123)](0x24)[_0x46afbd(0xfb)](0x2,0x9),_0x2561ab=Date['now']()+'_'+_0x3f3ce8+'_'+_0x2ad27e;return _0x2ad27e=(_0x2ad27e+0x1)%0x3e8,_0x2561ab;}()),_0x1f7647=_0x13d725['timeout']||0x0;return Array[_0x2513ed(0xfa)](_0x1cf71c)||(_0x1cf71c=[_0x1cf71c]),_0x1cf71c[_0x2513ed(0x192)](_0x50d3e7=>{var _0x5e3b71=_0x2513ed;_0x4c050e[_0x5e3b71(0x192)](_0x1bdb6d=>{var _0x315e36=_0x5e3b71;_0x1bdb6d[_0x315e36(0xf1)](_0x50d3e7,_0x4d34d6=>{_0x3107ae(_0x4d34d6,_0x1d5706,_0x1f7647,_0x82f04c,_0x1bdb6d);});});}),{'do':function(_0x29f2a3){var _0xfa3a01=_0x2513ed;return _0x3e14ef[_0x1d5706]||(_0x3e14ef[_0x1d5706]=[]),_0x3e14ef[_0x1d5706][_0xfa3a01(0x10e)](_0x29f2a3),this;}};},_0x1543c8[_0x11b686(0x158)]=function(_0xd3818d){var _0x21295d=_0x11b686;let _0x51de6a;if(_0x21295d(0x10c)==typeof _0xd3818d)_0x51de6a=_0xd3818d,_0xd3818d=new Event(_0xd3818d,{'bubbles':!0x0,'cancelable':!0x0});else{if(!(_0xd3818d instanceof Event))return void console[_0x21295d(0x11c)]('Invalid\x20event\x20type\x20provided\x20to\x20apx.trigger.\x20It\x20must\x20be\x20either\x20a\x20string\x20or\x20Event\x20object.');_0x51de6a=_0xd3818d[_0x21295d(0x151)];}_0x1543c8[_0x21295d(0x150)][_0x21295d(0x192)](_0x37267d=>{var _0x8846d7=_0x21295d;_0x37267d[_0x8846d7(0x124)](_0xd3818d);}),Object['keys'](_0x3e14ef)[_0x21295d(0x192)](_0x4e2774=>{var _0x2375cd=_0x21295d;const _0x3c4bae=_0x3e14ef[_0x4e2774];if(_0x3c4bae&&_0x3c4bae[_0x2375cd(0x11b)]===_0x51de6a){const {selector:_0x2ccb90}=_0x3c4bae;_0x2ccb90&&!_0xd3818d[_0x2375cd(0x194)]['matches'](_0x2ccb90)||_0x3107ae(_0xd3818d,_0x4e2774,0x0,_0x2ccb90,_0xd3818d['target']);}});};}(_0x588b9d),_0x391239(_0x588b9d),_0x588b9d;};_0x530ab4[_0x55ff66(0x154)]=function(_0x2c7a51){var _0x4f92b3=_0x55ff66;return fetch(_0x2c7a51)[_0x4f92b3(0x177)](_0x308857=>_0x308857[_0x4f92b3(0xec)]())['then'](_0x56dd7e=>{var _0x53c7d3=_0x4f92b3;const _0x188b0a=document['createElement']('style');_0x188b0a[_0x53c7d3(0x151)]='text/css',_0x188b0a[_0x53c7d3(0x132)]=_0x56dd7e,document[_0x53c7d3(0x12d)][_0x53c7d3(0x18b)](_0x188b0a);})[_0x4f92b3(0x12e)](_0x32d846=>{var _0x4a75a7=_0x4f92b3;console[_0x4a75a7(0x11c)](_0x4a75a7(0x195),_0x32d846);});},_0x530ab4['dialog']=_0x552c0b=>{var _0x140c09=_0x55ff66;const {title:_0x591a75,content:_0xd0c766,contentURI:_0x415df0,buttons:_0x3d7e05,size:_0x419f01,showLoadingIndicator:_0x38eb0d}={'title':'','content':'','contentURI':'','buttons':[],'size':_0x140c09(0x115),'showLoadingIndicator':!0x1,..._0x552c0b},_0x258daf=document['createElement'](_0x140c09(0xf9));_0x258daf[_0x140c09(0x187)]=_0x140c09(0x190)['trim']();const _0x53c9e1=_0x258daf['firstChild'],_0x469e29={},_0x18bce2={};[_0x140c09(0x16d),_0x140c09(0x143),_0x140c09(0xdf),_0x140c09(0xe4),_0x140c09(0x131),_0x140c09(0x179)][_0x140c09(0x192)](_0x29f956=>{_0x18bce2[_0x29f956]=new Promise(_0x488268=>{_0x469e29[_0x29f956]=_0x488268;});});const _0x4203e7=_0x4dba54=>{var _0x227292=_0x140c09;_0x469e29[_0x4dba54]?_0x469e29[_0x4dba54]():console[_0x227292(0x188)](_0x227292(0x128)+_0x4dba54);},_0x4ce578={'element':_0x53c9e1,'buttons':{},'isClosed':!0x1,'lifecycle':_0x18bce2,'disableButton':_0x8deef6=>{var _0xa3db8b=_0x140c09;const _0x21daff=_0x53c9e1[_0xa3db8b(0x104)](_0xa3db8b(0x175)+_0x8deef6+'\x22]');_0x21daff&&(_0x21daff[_0xa3db8b(0xed)]=!0x0,_0x21daff[_0xa3db8b(0x173)][_0xa3db8b(0x120)](_0xa3db8b(0x17a)));},'enableButton':_0x4c6e28=>{var _0x268144=_0x140c09;const _0x443223=_0x53c9e1[_0x268144(0x104)](_0x268144(0x175)+_0x4c6e28+'\x22]');_0x443223&&(_0x443223[_0x268144(0xed)]=!0x1,_0x443223[_0x268144(0x173)][_0x268144(0x14d)]('APX-dialog-button-disabled'));},'open':async()=>{var _0x2dc611=_0x140c09;try{_0x4203e7('opening'),await _0x4ce578[_0x2dc611(0x113)][_0x2dc611(0x16d)],_0x38eb0d&&_0x415df0?(document['body'][_0x2dc611(0x18b)](_0x53c9e1),_0x53c9e1[_0x2dc611(0x145)][_0x2dc611(0xe2)]=_0x2dc611(0x12f),_0x53c9e1[_0x2dc611(0x104)](_0x2dc611(0x17d))[_0x2dc611(0x187)]=_0x2dc611(0x189),await _0x2f3d59()):(await _0x2f3d59(),document[_0x2dc611(0x14e)]['appendChild'](_0x53c9e1),_0x53c9e1[_0x2dc611(0x145)][_0x2dc611(0xe2)]=_0x2dc611(0x12f)),_0x4203e7(_0x2dc611(0x143)),await _0x4ce578[_0x2dc611(0x113)][_0x2dc611(0x143)];}catch(_0x4c1c28){console[_0x2dc611(0x11c)]('Error\x20opening\x20dialog:',_0x4c1c28);}return _0x4ce578;},'close':async()=>{var _0x5a4dac=_0x140c09;try{_0x4203e7('closing'),await _0x4ce578[_0x5a4dac(0x113)]['closing'],_0x5a864b(),_0x4203e7(_0x5a4dac(0xe4)),await _0x4ce578[_0x5a4dac(0x113)]['closed'];}catch(_0x43f204){console['error'](_0x5a4dac(0x16b),_0x43f204);}return _0x4ce578;}},_0x5a864b=()=>{var _0x46a353=_0x140c09;_0x4ce578[_0x46a353(0x10a)]||(_0x4ce578[_0x46a353(0x10a)]=!0x0,_0x53c9e1['style'][_0x46a353(0xe2)]=_0x46a353(0x170),document[_0x46a353(0x14e)][_0x46a353(0x129)](_0x53c9e1)&&document[_0x46a353(0x14e)][_0x46a353(0x108)](_0x53c9e1));},_0x2f3d59=async()=>{var _0x9f247f=_0x140c09;const _0x5b0ff6=document[_0x9f247f(0x14e)][_0x9f247f(0x145)][_0x9f247f(0x141)];document[_0x9f247f(0x14e)][_0x9f247f(0x145)][_0x9f247f(0x141)]=_0x9f247f(0x180);const _0x5d952c=_0x53c9e1[_0x9f247f(0x104)]('.APX-dialog-dynamic-content');try{_0x4203e7(_0x9f247f(0x131)),await _0x4ce578[_0x9f247f(0x113)]['contentLoading'];const _0x4a2068=_0x415df0?await _0x12f679(_0x415df0):_0xd0c766;_0x5d952c[_0x9f247f(0x187)]=_0x4a2068,_0x4203e7('contentLoaded'),await _0x4ce578[_0x9f247f(0x113)][_0x9f247f(0x179)];}catch(_0x404a20){console['error'](_0x9f247f(0xf5),_0x404a20);}finally{document[_0x9f247f(0x14e)][_0x9f247f(0x145)][_0x9f247f(0x141)]=_0x5b0ff6;}},_0x12f679=async _0x3ce55d=>{var _0x429a3f=_0x140c09;const _0x685323=await fetch(_0x3ce55d);if(!_0x685323['ok'])throw new Error('Failed\x20to\x20fetch\x20content:\x20'+_0x685323[_0x429a3f(0x126)]);return _0x685323[_0x429a3f(0xec)]();};return((()=>{var _0x124016=_0x140c09;const _0x36af72=_0x53c9e1['querySelector'](_0x124016(0x152));if('auto'===_0x419f01)return;const _0x278c40={'small':{'width':_0x124016(0x10d),'height':_0x124016(0xdb)},'medium':{'width':_0x124016(0x12c),'height':_0x124016(0xd8)},'large':{'width':_0x124016(0x149),'height':'600px'}}[_0x419f01]||_0x124016(0x15c)==typeof _0x419f01&&_0x419f01;_0x278c40&&(_0x36af72[_0x124016(0x145)]['minWidth']=_0x278c40['width']||_0x124016(0x12c),_0x36af72[_0x124016(0x145)]['minHeight']=_0x278c40[_0x124016(0x142)]||_0x124016(0xd8));})()),((()=>{var _0x478e7b=_0x140c09;const _0x23acaf=_0x53c9e1[_0x478e7b(0x104)](_0x478e7b(0x139));_0x3d7e05[_0x478e7b(0x192)](({key:_0x3a00c8,label:_0x25c781,order:_0x22f006=0x0,align:_0x1588e6=_0x478e7b(0x15e),closeOnClick:_0x3a40b7=!0x0})=>{var _0x37475b=_0x478e7b;const _0x38a28a=document['createElement'](_0x37475b(0x186));_0x38a28a['classList']['add'](_0x37475b(0x133)),_0x38a28a[_0x37475b(0x132)]=_0x25c781,_0x38a28a['style'][_0x37475b(0x134)]=_0x22f006,_0x38a28a[_0x37475b(0x14b)](_0x37475b(0xf3),_0x3a00c8);const _0x27bffa={'disable':()=>{var _0x2e5a47=_0x37475b;_0x38a28a[_0x2e5a47(0xed)]=!0x0,_0x38a28a['classList']['add'](_0x2e5a47(0x17a));},'enable':()=>{var _0x151d77=_0x37475b;_0x38a28a[_0x151d77(0xed)]=!0x1,_0x38a28a[_0x151d77(0x173)][_0x151d77(0x14d)](_0x151d77(0x17a));},'key':_0x3a00c8,'element':_0x38a28a};if(_0x3a40b7){let _0x2fd30a=!0x1;const _0x42bc81=new Promise(_0x50f192=>{var _0x4946af=_0x37475b;_0x38a28a[_0x4946af(0x13b)]=()=>{var _0x2a4720=_0x4946af;_0x2fd30a||_0x38a28a[_0x2a4720(0xed)]||(_0x2fd30a=!0x0,_0x50f192({'dialog':_0x4ce578,'button':_0x27bffa}),_0x4ce578[_0x2a4720(0x174)]());};});_0x4ce578[_0x37475b(0x122)][_0x3a00c8]=_0x42bc81;}else{let _0x4cadd8=[];const _0x55a12b={'then':_0x3bff06=>(_0x37475b(0x16f)==typeof _0x3bff06&&_0x4cadd8[_0x37475b(0x10e)](_0x3bff06),_0x55a12b)};_0x38a28a[_0x37475b(0x13b)]=()=>{var _0x30bf61=_0x37475b;_0x38a28a[_0x30bf61(0xed)]||_0x4cadd8[_0x30bf61(0x192)](_0x100748=>_0x100748({'dialog':_0x4ce578,'button':_0x27bffa}));},_0x4ce578[_0x37475b(0x122)][_0x3a00c8]=_0x55a12b;}_0x23acaf[_0x37475b(0x18b)](_0x38a28a),_0x23acaf[_0x37475b(0x145)]['justifyContent']=_0x1588e6;});})()),_0x53c9e1[_0x140c09(0x104)](_0x140c09(0x12a))[_0x140c09(0x132)]=_0x591a75,_0x53c9e1[_0x140c09(0x104)](_0x140c09(0x12b))['onclick']=_0x4ce578[_0x140c09(0x174)],_0x4ce578;},_0x530ab4[_0x55ff66(0x15b)]=function(_0x4a6769){return _0x4a6769&&!0x0===_0x4a6769['_isAPXObject'];},_0x530ab4['is_numeric']=_0x4341f8=>!isNaN(_0x4341f8-parseFloat(_0x4341f8));const _0x1d6755=_0x530ab4;})());var a=o['Z'];export{a as default};
|
|
1
|
+
var a0_0xd00f4=a0_0x4b89;(function(_0x2ad27f,_0x31b8d5){var _0x9587f6=a0_0x4b89,_0x83297=_0x2ad27f();while(!![]){try{var _0x1ed884=-parseInt(_0x9587f6(0x211))/0x1+-parseInt(_0x9587f6(0x1a9))/0x2*(parseInt(_0x9587f6(0x229))/0x3)+-parseInt(_0x9587f6(0x1c7))/0x4*(parseInt(_0x9587f6(0x217))/0x5)+-parseInt(_0x9587f6(0x202))/0x6+parseInt(_0x9587f6(0x20e))/0x7*(-parseInt(_0x9587f6(0x21d))/0x8)+parseInt(_0x9587f6(0x1f5))/0x9*(parseInt(_0x9587f6(0x188))/0xa)+-parseInt(_0x9587f6(0x1a8))/0xb*(-parseInt(_0x9587f6(0x16f))/0xc);if(_0x1ed884===_0x31b8d5)break;else _0x83297['push'](_0x83297['shift']());}catch(_0x2f1b60){_0x83297['push'](_0x83297['shift']());}}}(a0_0x1016,0xae690));var e={0x265:(_0x2d3ddc,_0x519d7c,_0x11b137)=>{var _0x3de3de=a0_0x4b89;_0x11b137['d'](_0x519d7c,{'Z':()=>_0x39ebb7});var _0x309e44=_0x11b137(0x51),_0x27afdc=_0x11b137['n'](_0x309e44),_0x3dc79a=_0x11b137(0x285),_0x5ef06b=_0x11b137['n'](_0x3dc79a)()(_0x27afdc());_0x5ef06b[_0x3de3de(0x178)]([_0x2d3ddc['id'],_0x3de3de(0x1e1),'']);const _0x39ebb7=_0x5ef06b;},0x23a:(_0x3f48c4,_0x56b7fe,_0x5a662d)=>{var _0x2b2909=a0_0x4b89;_0x5a662d['d'](_0x56b7fe,{'Z':()=>_0x39db5e});var _0x5e41d0=_0x5a662d(0x51),_0x3ab542=_0x5a662d['n'](_0x5e41d0),_0x37f008=_0x5a662d(0x285),_0x481b1e=_0x5a662d['n'](_0x37f008),_0x40dc68=_0x5a662d(0x29b),_0x2f8d9a=_0x5a662d['n'](_0x40dc68),_0x5c9a1e=new URL(_0x5a662d(0x1d),_0x5a662d['b']),_0x43632b=new URL(_0x5a662d(0x391),_0x5a662d['b']),_0x4cab50=new URL(_0x5a662d(0x104),_0x5a662d['b']),_0xe14cf=_0x481b1e()(_0x3ab542()),_0x308884=_0x2f8d9a()(_0x5c9a1e),_0xf9fa61=_0x2f8d9a()(_0x43632b),_0x490c92=_0x2f8d9a()(_0x4cab50);_0xe14cf[_0x2b2909(0x178)]([_0x3f48c4['id'],_0x2b2909(0x1dc)+_0x308884+');\x0a}\x0a.apx-tristate.checked\x20{\x0a\x20\x20\x20\x20background-image:\x20url('+_0xf9fa61+_0x2b2909(0x1aa)+_0x490c92+_0x2b2909(0x1d2),'']);const _0x39db5e=_0xe14cf;},0x285:_0xede7f5=>{_0xede7f5['exports']=function(_0x47795c){var _0x3e7091=[];return _0x3e7091['toString']=function(){var _0x21c313=a0_0x4b89;return this[_0x21c313(0x16c)](function(_0x183131){var _0x2d128f=_0x21c313,_0x444fcb='',_0x1425b5=void 0x0!==_0x183131[0x5];return _0x183131[0x4]&&(_0x444fcb+='@supports\x20('[_0x2d128f(0x1dd)](_0x183131[0x4],_0x2d128f(0x186))),_0x183131[0x2]&&(_0x444fcb+=_0x2d128f(0x1f7)[_0x2d128f(0x1dd)](_0x183131[0x2],'\x20{')),_0x1425b5&&(_0x444fcb+=_0x2d128f(0x1fb)[_0x2d128f(0x1dd)](_0x183131[0x5]['length']>0x0?'\x20'[_0x2d128f(0x1dd)](_0x183131[0x5]):'','\x20{')),_0x444fcb+=_0x47795c(_0x183131),_0x1425b5&&(_0x444fcb+='}'),_0x183131[0x2]&&(_0x444fcb+='}'),_0x183131[0x4]&&(_0x444fcb+='}'),_0x444fcb;})[_0x21c313(0x201)]('');},_0x3e7091['i']=function(_0x3f1f28,_0x56a01d,_0x13d8eb,_0xa0c7fa,_0x5f549e){var _0x2fc582=a0_0x4b89;'string'==typeof _0x3f1f28&&(_0x3f1f28=[[null,_0x3f1f28,void 0x0]]);var _0x5b67dc={};if(_0x13d8eb)for(var _0x458f9b=0x0;_0x458f9b<this[_0x2fc582(0x1cf)];_0x458f9b++){var _0x4d9d10=this[_0x458f9b][0x0];null!=_0x4d9d10&&(_0x5b67dc[_0x4d9d10]=!0x0);}for(var _0x469617=0x0;_0x469617<_0x3f1f28[_0x2fc582(0x1cf)];_0x469617++){var _0x3f89ec=[][_0x2fc582(0x1dd)](_0x3f1f28[_0x469617]);_0x13d8eb&&_0x5b67dc[_0x3f89ec[0x0]]||(void 0x0!==_0x5f549e&&(void 0x0===_0x3f89ec[0x5]||(_0x3f89ec[0x1]=_0x2fc582(0x1fb)['concat'](_0x3f89ec[0x5][_0x2fc582(0x1cf)]>0x0?'\x20'['concat'](_0x3f89ec[0x5]):'','\x20{')[_0x2fc582(0x1dd)](_0x3f89ec[0x1],'}')),_0x3f89ec[0x5]=_0x5f549e),_0x56a01d&&(_0x3f89ec[0x2]?(_0x3f89ec[0x1]=_0x2fc582(0x1f7)[_0x2fc582(0x1dd)](_0x3f89ec[0x2],'\x20{')['concat'](_0x3f89ec[0x1],'}'),_0x3f89ec[0x2]=_0x56a01d):_0x3f89ec[0x2]=_0x56a01d),_0xa0c7fa&&(_0x3f89ec[0x4]?(_0x3f89ec[0x1]=_0x2fc582(0x1eb)[_0x2fc582(0x1dd)](_0x3f89ec[0x4],_0x2fc582(0x186))[_0x2fc582(0x1dd)](_0x3f89ec[0x1],'}'),_0x3f89ec[0x4]=_0xa0c7fa):_0x3f89ec[0x4]=''[_0x2fc582(0x1dd)](_0xa0c7fa)),_0x3e7091[_0x2fc582(0x178)](_0x3f89ec));}},_0x3e7091;};},0x29b:_0x18cc27=>{var _0x1351d5=a0_0x4b89;_0x18cc27[_0x1351d5(0x179)]=function(_0x41807a,_0x1fe120){var _0x31cf62=_0x1351d5;return _0x1fe120||(_0x1fe120={}),_0x41807a?(_0x41807a=String(_0x41807a['__esModule']?_0x41807a['default']:_0x41807a),/^['"].*['"]$/['test'](_0x41807a)&&(_0x41807a=_0x41807a['slice'](0x1,-0x1)),_0x1fe120[_0x31cf62(0x22b)]&&(_0x41807a+=_0x1fe120['hash']),/["'() \t\n]|(%20)/[_0x31cf62(0x1a3)](_0x41807a)||_0x1fe120[_0x31cf62(0x1e0)]?'\x22'[_0x31cf62(0x1dd)](_0x41807a[_0x31cf62(0x226)](/"/g,'\x5c\x22')[_0x31cf62(0x226)](/\n/g,'\x5cn'),'\x22'):_0x41807a):_0x41807a;};},0x51:_0x3eb53f=>{_0x3eb53f['exports']=function(_0x1b42b7){return _0x1b42b7[0x1];};},0x17b:_0x1ab56c=>{var _0x3abfac=a0_0x4b89,_0x31c14e=[];function _0x29274c(_0x49d3ee){var _0x388791=a0_0x4b89;for(var _0x1279f3=-0x1,_0x77558d=0x0;_0x77558d<_0x31c14e['length'];_0x77558d++)if(_0x31c14e[_0x77558d][_0x388791(0x230)]===_0x49d3ee){_0x1279f3=_0x77558d;break;}return _0x1279f3;}function _0x538559(_0x1777e6,_0x4591ba){var _0x13fcc6=a0_0x4b89;for(var _0x961fdc={},_0x3ed887=[],_0x51bfd3=0x0;_0x51bfd3<_0x1777e6['length'];_0x51bfd3++){var _0x5aad13=_0x1777e6[_0x51bfd3],_0x321582=_0x4591ba[_0x13fcc6(0x213)]?_0x5aad13[0x0]+_0x4591ba[_0x13fcc6(0x213)]:_0x5aad13[0x0],_0x5a4c08=_0x961fdc[_0x321582]||0x0,_0x19fccb=''[_0x13fcc6(0x1dd)](_0x321582,'\x20')['concat'](_0x5a4c08);_0x961fdc[_0x321582]=_0x5a4c08+0x1;var _0x1f9170=_0x29274c(_0x19fccb),_0xcf1107={'css':_0x5aad13[0x1],'media':_0x5aad13[0x2],'sourceMap':_0x5aad13[0x3],'supports':_0x5aad13[0x4],'layer':_0x5aad13[0x5]};if(-0x1!==_0x1f9170)_0x31c14e[_0x1f9170][_0x13fcc6(0x1d8)]++,_0x31c14e[_0x1f9170]['updater'](_0xcf1107);else{var _0x4077fa=_0x479c9b(_0xcf1107,_0x4591ba);_0x4591ba[_0x13fcc6(0x18e)]=_0x51bfd3,_0x31c14e[_0x13fcc6(0x1b5)](_0x51bfd3,0x0,{'identifier':_0x19fccb,'updater':_0x4077fa,'references':0x1});}_0x3ed887[_0x13fcc6(0x178)](_0x19fccb);}return _0x3ed887;}function _0x479c9b(_0x10243d,_0x6ca442){var _0x40a165=a0_0x4b89,_0xe66629=_0x6ca442[_0x40a165(0x1f1)](_0x6ca442);return _0xe66629[_0x40a165(0x223)](_0x10243d),function(_0x591fd1){var _0x16b1ed=_0x40a165;if(_0x591fd1){if(_0x591fd1[_0x16b1ed(0x207)]===_0x10243d[_0x16b1ed(0x207)]&&_0x591fd1[_0x16b1ed(0x1b2)]===_0x10243d[_0x16b1ed(0x1b2)]&&_0x591fd1['sourceMap']===_0x10243d[_0x16b1ed(0x1ba)]&&_0x591fd1['supports']===_0x10243d[_0x16b1ed(0x1d9)]&&_0x591fd1[_0x16b1ed(0x1ef)]===_0x10243d['layer'])return;_0xe66629[_0x16b1ed(0x223)](_0x10243d=_0x591fd1);}else _0xe66629['remove']();};}_0x1ab56c[_0x3abfac(0x179)]=function(_0x5e078c,_0x163bac){var _0xf1d65c=_0x538559(_0x5e078c=_0x5e078c||[],_0x163bac=_0x163bac||{});return function(_0x4f2804){var _0x47a49f=a0_0x4b89;_0x4f2804=_0x4f2804||[];for(var _0x4bbc39=0x0;_0x4bbc39<_0xf1d65c[_0x47a49f(0x1cf)];_0x4bbc39++){var _0xcda8a3=_0x29274c(_0xf1d65c[_0x4bbc39]);_0x31c14e[_0xcda8a3][_0x47a49f(0x1d8)]--;}for(var _0x20bf31=_0x538559(_0x4f2804,_0x163bac),_0x38f537=0x0;_0x38f537<_0xf1d65c[_0x47a49f(0x1cf)];_0x38f537++){var _0x8276be=_0x29274c(_0xf1d65c[_0x38f537]);0x0===_0x31c14e[_0x8276be]['references']&&(_0x31c14e[_0x8276be][_0x47a49f(0x221)](),_0x31c14e[_0x47a49f(0x1b5)](_0x8276be,0x1));}_0xf1d65c=_0x20bf31;};};},0x239:_0x581b51=>{var _0x37053a=a0_0x4b89,_0x1b2151={};_0x581b51[_0x37053a(0x179)]=function(_0x222594,_0x33da1b){var _0xbdec8d=_0x37053a,_0x2c3aa3=function(_0x3b7ef9){var _0x4f7f5c=a0_0x4b89;if(void 0x0===_0x1b2151[_0x3b7ef9]){var _0x4751e2=document[_0x4f7f5c(0x1ed)](_0x3b7ef9);if(window[_0x4f7f5c(0x212)]&&_0x4751e2 instanceof window['HTMLIFrameElement'])try{_0x4751e2=_0x4751e2['contentDocument']['head'];}catch(_0x1687ce){_0x4751e2=null;}_0x1b2151[_0x3b7ef9]=_0x4751e2;}return _0x1b2151[_0x3b7ef9];}(_0x222594);if(!_0x2c3aa3)throw new Error(_0xbdec8d(0x220));_0x2c3aa3[_0xbdec8d(0x1b6)](_0x33da1b);};},0xd8:_0x51b65a=>{var _0x3fc4e2=a0_0x4b89;_0x51b65a[_0x3fc4e2(0x179)]=function(_0x5bcdf3){var _0x5bcb9f=_0x3fc4e2,_0x56c7fa=document[_0x5bcb9f(0x199)](_0x5bcb9f(0x1e5));return _0x5bcdf3['setAttributes'](_0x56c7fa,_0x5bcdf3['attributes']),_0x5bcdf3[_0x5bcb9f(0x19f)](_0x56c7fa,_0x5bcdf3[_0x5bcb9f(0x19d)]),_0x56c7fa;};},0x235:(_0x129c1f,_0xda71d4,_0x55b5d7)=>{var _0x145ec9=a0_0x4b89;_0x129c1f[_0x145ec9(0x179)]=function(_0x43250){var _0x2bb4d1=_0x145ec9,_0x39d0f6=_0x55b5d7['nc'];_0x39d0f6&&_0x43250[_0x2bb4d1(0x22c)](_0x2bb4d1(0x170),_0x39d0f6);};},0x31b:_0x4a3a22=>{var _0x4441ea=a0_0x4b89;_0x4a3a22[_0x4441ea(0x179)]=function(_0x27d045){var _0x3f882d=_0x4441ea;if(_0x3f882d(0x1fa)==typeof document)return{'update':function(){},'remove':function(){}};var _0x287d0c=_0x27d045[_0x3f882d(0x1da)](_0x27d045);return{'update':function(_0x24bf2b){!function(_0x40f87b,_0x4ead9b,_0xfb375a){var _0x2b05ae=a0_0x4b89,_0x2e8095='';_0xfb375a['supports']&&(_0x2e8095+=_0x2b05ae(0x1eb)[_0x2b05ae(0x1dd)](_0xfb375a[_0x2b05ae(0x1d9)],_0x2b05ae(0x186))),_0xfb375a[_0x2b05ae(0x1b2)]&&(_0x2e8095+=_0x2b05ae(0x1f7)[_0x2b05ae(0x1dd)](_0xfb375a[_0x2b05ae(0x1b2)],'\x20{'));var _0x2dbca6=void 0x0!==_0xfb375a[_0x2b05ae(0x1ef)];_0x2dbca6&&(_0x2e8095+=_0x2b05ae(0x1fb)[_0x2b05ae(0x1dd)](_0xfb375a[_0x2b05ae(0x1ef)][_0x2b05ae(0x1cf)]>0x0?'\x20'['concat'](_0xfb375a[_0x2b05ae(0x1ef)]):'','\x20{')),_0x2e8095+=_0xfb375a[_0x2b05ae(0x207)],_0x2dbca6&&(_0x2e8095+='}'),_0xfb375a['media']&&(_0x2e8095+='}'),_0xfb375a[_0x2b05ae(0x1d9)]&&(_0x2e8095+='}');var _0x495121=_0xfb375a['sourceMap'];_0x495121&&_0x2b05ae(0x1fa)!=typeof btoa&&(_0x2e8095+=_0x2b05ae(0x21b)[_0x2b05ae(0x1dd)](btoa(unescape(encodeURIComponent(JSON[_0x2b05ae(0x1a4)](_0x495121)))),_0x2b05ae(0x1b9))),_0x4ead9b[_0x2b05ae(0x191)](_0x2e8095,_0x40f87b,_0x4ead9b['options']);}(_0x287d0c,_0x27d045,_0x24bf2b);},'remove':function(){!function(_0x291613){var _0x130998=a0_0x4b89;if(null===_0x291613['parentNode'])return!0x1;_0x291613[_0x130998(0x1e9)]['removeChild'](_0x291613);}(_0x287d0c);}};};},0x24d:_0x27520a=>{var _0x463f34=a0_0x4b89;_0x27520a[_0x463f34(0x179)]=function(_0x556af7,_0xb4c4f1){var _0x13f374=_0x463f34;if(_0xb4c4f1[_0x13f374(0x22d)])_0xb4c4f1['styleSheet']['cssText']=_0x556af7;else{for(;_0xb4c4f1['firstChild'];)_0xb4c4f1[_0x13f374(0x1d7)](_0xb4c4f1[_0x13f374(0x1d1)]);_0xb4c4f1[_0x13f374(0x1b6)](document[_0x13f374(0x1e4)](_0x556af7));}};},0x104:_0x2b7f89=>{var _0x582846=a0_0x4b89;_0x2b7f89['exports']=_0x582846(0x194);},0x1d:_0x310f6b=>{var _0x1833b8=a0_0x4b89;_0x310f6b[_0x1833b8(0x179)]='data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20width%3D%2732%27%20height%3D%2732%27%3E%3Cpath%20%20fill%3D%22%23cccccc%22%20d%3D%22M25.107%2032.030h-18.214c-3.456%200-6.268-2.81-6.268-6.264v-19.529c0-3.456%202.812-6.268%206.268-6.268h18.214c3.456%200%206.268%202.812%206.268%206.268v19.529c0%203.452-2.812%206.264-6.268%206.264zM6.893%201.85c-2.419%200-4.386%201.967-4.386%204.386v19.529c0%202.417%201.967%204.382%204.386%204.382h18.214c2.419%200%204.386-1.965%204.386-4.382v-19.529c0-2.419-1.967-4.386-4.386-4.386h-18.214z%22%3E%3C/path%3E%3C/svg%3E';},0x391:_0xc9f3ba=>{var _0x24d184=a0_0x4b89;_0xc9f3ba[_0x24d184(0x179)]=_0x24d184(0x1ca);}},t={};function n(_0x132fd2){var _0x38867e=a0_0x4b89,_0x2d66d3=t[_0x132fd2];if(void 0x0!==_0x2d66d3)return _0x2d66d3['exports'];var _0xc469d=t[_0x132fd2]={'id':_0x132fd2,'exports':{}};return e[_0x132fd2](_0xc469d,_0xc469d[_0x38867e(0x179)],n),_0xc469d[_0x38867e(0x179)];}function a0_0x4b89(_0x4dbeb2,_0x2eb21e){var _0x1016a2=a0_0x1016();return a0_0x4b89=function(_0x4b8997,_0x2af237){_0x4b8997=_0x4b8997-0x16c;var _0x46b708=_0x1016a2[_0x4b8997];return _0x46b708;},a0_0x4b89(_0x4dbeb2,_0x2eb21e);}n['m']=e,n['n']=_0x3387a0=>{var _0x35cc0f=a0_0x4b89,_0x556474=_0x3387a0&&_0x3387a0[_0x35cc0f(0x181)]?()=>_0x3387a0[_0x35cc0f(0x1e8)]:()=>_0x3387a0;return n['d'](_0x556474,{'a':_0x556474}),_0x556474;},n['d']=(_0x324c1f,_0x46a7a2)=>{for(var _0x4d66e0 in _0x46a7a2)n['o'](_0x46a7a2,_0x4d66e0)&&!n['o'](_0x324c1f,_0x4d66e0)&&Object['defineProperty'](_0x324c1f,_0x4d66e0,{'enumerable':!0x0,'get':_0x46a7a2[_0x4d66e0]});},n['o']=(_0x5696d1,_0x45b248)=>Object['prototype']['hasOwnProperty'][a0_0xd00f4(0x22a)](_0x5696d1,_0x45b248),n['b']=document[a0_0xd00f4(0x1f6)]||self[a0_0xd00f4(0x1c9)][a0_0xd00f4(0x200)],n['nc']=void 0x0;var o={};((()=>{var _0x1c639a=a0_0xd00f4;n['d'](o,{'Z':()=>_0x5cc49d});let _0x5c62c5=0x0;const _0x564cb8={},_0x39793b={};function _0x19acf2(_0x2f2f2d,_0x393166,_0x32cd43,_0x22e25c='',_0x465d9a){var _0xad198=a0_0x4b89;const _0x1d19e1=_0x22e25c?function(_0x2e6895,_0x15bff1){var _0x49f009=a0_0x4b89;for(;_0x2e6895&&0x1===_0x2e6895[_0x49f009(0x1b8)];){if(_0x2e6895['matches'](_0x15bff1))return _0x2e6895;_0x2e6895=_0x2e6895['parentNode'];}return null;}(_0x2f2f2d[_0xad198(0x192)],_0x22e25c):_0x465d9a;function _0x1c426a(){var _0x247202=_0xad198;_0x564cb8[_0x393166]&&_0x564cb8[_0x393166]['reduce']((_0x28425a,_0x4c5f73)=>_0x28425a['then'](()=>new Promise((_0xc9e555,_0x2319b1)=>{var _0x259e7c=a0_0x4b89;try{const _0x225d6c=_0x4c5f73['bind'](_0x1d19e1)(_0x2f2f2d);_0x225d6c instanceof Promise?_0x225d6c[_0x259e7c(0x1f2)](_0xc9e555)[_0x259e7c(0x171)](_0x2319b1):_0xc9e555(_0x225d6c);}catch(_0xb4441b){_0x2319b1(_0xb4441b);}})),Promise['resolve']())[_0x247202(0x171)](_0x23c809=>{var _0x186d19=_0x247202;console['error'](_0x186d19(0x1ad),_0x23c809);});}_0x1d19e1&&(clearTimeout(_0x39793b[_0x393166]),0x0===_0x32cd43?_0x1c426a():_0x39793b[_0x393166]=setTimeout(_0x1c426a,_0x32cd43));}var _0x43d59b=n(0x17b),_0x15530f=n['n'](_0x43d59b),_0x2e6593=n(0x31b),_0x182487=n['n'](_0x2e6593),_0x5ed0ef=n(0x239),_0xa0a35a=n['n'](_0x5ed0ef),_0x41a44b=n(0x235),_0xa1ceed=n['n'](_0x41a44b),_0x1429ce=n(0xd8),_0x4d2d84=n['n'](_0x1429ce),_0x4562f1=n(0x24d),_0x4a0936=n['n'](_0x4562f1),_0x192775=n(0x23a),_0x3b75c0={};function _0x14e68d(_0xed942e){var _0x593f40=a0_0x4b89;_0xed942e[_0x593f40(0x21c)]=function(_0x1c74d0={}){var _0x25be79=_0x593f40;_0xed942e['elements'][_0x25be79(0x210)](_0x55fb56=>{var _0x2ceb9a=_0x25be79;if(_0x2ceb9a(0x19b)===_0x55fb56[_0x2ceb9a(0x173)]){const [_0xb789cb,_0x22bff6,_0x4e284c]=function(_0x15efc3,_0x35b3f1){var _0x54556e=_0x2ceb9a;const _0xabb7e9=window['getComputedStyle'](_0x15efc3);_0x15efc3[_0x54556e(0x1e5)]['display']=_0x54556e(0x1fd);const _0x403397=document[_0x54556e(0x199)](_0x54556e(0x1d3));_0x403397['classList'][_0x54556e(0x1f0)](_0x54556e(0x182)),_0x35b3f1[_0x54556e(0x187)]&&(_0x35b3f1[_0x54556e(0x187)][_0x54556e(0x1a0)]&&(_0x403397[_0x54556e(0x1e5)][_0x54556e(0x1a0)]=_0x35b3f1[_0x54556e(0x187)][_0x54556e(0x1a0)]+'px'),_0x35b3f1[_0x54556e(0x187)]['height']&&(_0x403397['style'][_0x54556e(0x22e)]=_0x35b3f1['size'][_0x54556e(0x22e)]+'px')),_0x35b3f1['classes']&&_0x403397[_0x54556e(0x215)][_0x54556e(0x1f0)](...function(_0x1a6761){var _0x242d6a=_0x54556e;let _0x1e004e=[];return _0x242d6a(0x1db)==typeof _0x1a6761?_0x1e004e=(_0x1a6761=_0x1a6761[_0x242d6a(0x226)](/\s\s+/g,'\x20'))[_0x242d6a(0x1cb)]('\x20')>-0x1?_0x1a6761[_0x242d6a(0x198)]('\x20'):_0x1a6761[_0x242d6a(0x1cb)](',')>-0x1?_0x1a6761['split'](','):[_0x1a6761]:Array[_0x242d6a(0x1ea)](_0x1a6761)&&(_0x1e004e=_0x1a6761),_0x1e004e;}(_0x35b3f1[_0x54556e(0x224)])),_0x403397[_0x54556e(0x1e5)]['margin']=_0xabb7e9[_0x54556e(0x1bf)],_0x15efc3[_0x54556e(0x1f4)]?_0x403397[_0x54556e(0x215)][_0x54556e(0x1f0)](_0x54556e(0x1f4)):_0x403397['classList'][_0x54556e(0x1f0)](_0x54556e(0x1ab));const _0x12576a=document[_0x54556e(0x199)]('input');return _0x12576a['type']=_0x54556e(0x185),_0x12576a[_0x54556e(0x17e)]=_0x15efc3[_0x54556e(0x17e)],_0x15efc3[_0x54556e(0x1d6)][_0x54556e(0x17e)]=_0x15efc3[_0x54556e(0x17e)],_0x15efc3[_0x54556e(0x20a)](_0x54556e(0x17e)),_0x35b3f1['defaultState']?function(_0x368c13,_0x4a9980,_0x2c6ea0){var _0x25b09f=_0x54556e;_0x25b09f(0x1f4)===_0x368c13['defaultState']?(_0x4a9980[_0x25b09f(0x215)][_0x25b09f(0x176)](_0x25b09f(0x1ab)),_0x4a9980[_0x25b09f(0x215)][_0x25b09f(0x1f0)](_0x25b09f(0x1f4)),_0x2c6ea0['value']=_0x25b09f(0x1b4)):_0x25b09f(0x1ab)===_0x368c13[_0x25b09f(0x21f)]?(_0x4a9980[_0x25b09f(0x215)][_0x25b09f(0x176)](_0x25b09f(0x1f4)),_0x4a9980[_0x25b09f(0x215)][_0x25b09f(0x1f0)](_0x25b09f(0x1ab)),_0x2c6ea0[_0x25b09f(0x20a)](_0x25b09f(0x17e)),_0x2c6ea0[_0x25b09f(0x20a)](_0x25b09f(0x16d))):_0x25b09f(0x197)===_0x368c13[_0x25b09f(0x21f)]&&(_0x4a9980[_0x25b09f(0x215)][_0x25b09f(0x176)](_0x25b09f(0x1f4)),_0x4a9980[_0x25b09f(0x215)][_0x25b09f(0x1f0)](_0x25b09f(0x197)),_0x2c6ea0[_0x25b09f(0x16d)]=_0x25b09f(0x218));}(_0x35b3f1,_0x403397,_0x12576a):_0x15efc3[_0x54556e(0x1f4)]?_0x12576a[_0x54556e(0x16d)]=_0x54556e(0x1b4):(_0x12576a['name']='',_0x12576a[_0x54556e(0x16d)]=''),_0x403397[_0x54556e(0x18f)]=_0x15efc3[_0x54556e(0x18f)],_0x403397[_0x54556e(0x1b6)](_0x12576a),_0x15efc3[_0x54556e(0x1e9)]['insertBefore'](_0x403397,_0x15efc3[_0x54556e(0x1c1)]),_0x403397[_0x54556e(0x1e6)]('click',function(_0x539eb7){!function(_0x2aead6,_0x139110,_0x5c03cc){var _0xdb7a32=a0_0x4b89;_0x2aead6[_0xdb7a32(0x215)][_0xdb7a32(0x193)](_0xdb7a32(0x1f4))?(_0x2aead6[_0xdb7a32(0x215)][_0xdb7a32(0x176)](_0xdb7a32(0x1f4)),_0x2aead6[_0xdb7a32(0x215)][_0xdb7a32(0x1f0)](_0xdb7a32(0x197)),_0x139110[_0xdb7a32(0x1f4)]=!0x1,_0x5c03cc[_0xdb7a32(0x16d)]=_0xdb7a32(0x218)):_0x2aead6[_0xdb7a32(0x215)][_0xdb7a32(0x193)](_0xdb7a32(0x197))?(_0x2aead6[_0xdb7a32(0x215)][_0xdb7a32(0x176)](_0xdb7a32(0x197)),_0x2aead6[_0xdb7a32(0x215)][_0xdb7a32(0x1f0)](_0xdb7a32(0x1ab)),_0x5c03cc[_0xdb7a32(0x20a)](_0xdb7a32(0x17e)),_0x5c03cc[_0xdb7a32(0x20a)](_0xdb7a32(0x16d))):(_0x2aead6[_0xdb7a32(0x215)][_0xdb7a32(0x176)](_0xdb7a32(0x1ab)),_0x2aead6[_0xdb7a32(0x215)][_0xdb7a32(0x1f0)]('checked'),_0x139110['checked']=!0x0,_0x5c03cc['value']=_0xdb7a32(0x1b4),_0x5c03cc[_0xdb7a32(0x22c)](_0xdb7a32(0x17e),_0x139110[_0xdb7a32(0x1d6)][_0xdb7a32(0x17e)]));}(_0x403397,_0x15efc3,_0x12576a),_0x23ee76(_0x35b3f1,_0x15efc3,_0x403397,_0x12576a,_0x539eb7);}),_0x403397[_0x54556e(0x1e6)](_0x54556e(0x1ae),_0x1424f8['bind'](null,_0x15efc3)),[_0x15efc3,_0x403397,_0x12576a];}(_0x55fb56,_0x1c74d0);_0x1c74d0[_0x2ceb9a(0x1a7)]&&_0x1c74d0[_0x2ceb9a(0x1a7)][_0x2ceb9a(0x174)]&&_0x2ceb9a(0x1de)==typeof _0x1c74d0['callbacks'][_0x2ceb9a(0x174)]&&_0x1c74d0[_0x2ceb9a(0x1a7)][_0x2ceb9a(0x174)](_0xb789cb,_0x22bff6,_0x4e284c);}});};}function _0x23ee76(_0x3c2208,_0x2352cc,_0x285440,_0x29b6c5,_0x48f77e){var _0x118144=a0_0x4b89;_0x3c2208[_0x118144(0x1a7)]&&_0x3c2208['callbacks'][_0x118144(0x1bd)]&&'function'==typeof _0x3c2208[_0x118144(0x1a7)][_0x118144(0x1bd)]&&_0x3c2208[_0x118144(0x1a7)][_0x118144(0x1bd)](_0x2352cc,_0x285440,_0x29b6c5),_0x3c2208[_0x118144(0x1d0)]&&(_0x118144(0x1df)===_0x48f77e[_0x118144(0x173)]?_0x2352cc[_0x118144(0x1d5)](new MouseEvent(_0x118144(0x1df),{'bubbles':!0x0,'cancelable':!0x0})):'keyup'===_0x48f77e[_0x118144(0x173)]?_0x2352cc['dispatchEvent'](new KeyboardEvent('keyup',{'key':'\x20','bubbles':!0x0,'cancelable':!0x0})):_0x118144(0x1bd)===_0x48f77e[_0x118144(0x173)]&&_0x2352cc['dispatchEvent'](new Event(_0x118144(0x1bd),{'bubbles':!0x0,'cancelable':!0x0})));}function _0x1424f8(_0x3ea572,_0x17185c){var _0x167d31=a0_0x4b89;0x20===_0x17185c['keyCode']&&(_0x23ee76(_0x3ea572,_0x17185c),_0x17185c[_0x167d31(0x183)](),_0x17185c['target'][_0x167d31(0x1df)]());}_0x3b75c0[_0x1c639a(0x191)]=_0x4a0936(),_0x3b75c0['setAttributes']=_0xa1ceed(),_0x3b75c0[_0x1c639a(0x19f)]=_0xa0a35a()[_0x1c639a(0x17b)](null,_0x1c639a(0x1ff)),_0x3b75c0[_0x1c639a(0x1f1)]=_0x182487(),_0x3b75c0[_0x1c639a(0x1da)]=_0x4d2d84(),_0x15530f()(_0x192775['Z'],_0x3b75c0),_0x192775['Z']&&_0x192775['Z'][_0x1c639a(0x1c3)]&&_0x192775['Z'][_0x1c639a(0x1c3)];var _0x2d9d90=n(0x265),_0x1be1f6={};_0x1be1f6[_0x1c639a(0x191)]=_0x4a0936(),_0x1be1f6['setAttributes']=_0xa1ceed(),_0x1be1f6[_0x1c639a(0x19f)]=_0xa0a35a()['bind'](null,_0x1c639a(0x1ff)),_0x1be1f6[_0x1c639a(0x1f1)]=_0x182487(),_0x1be1f6[_0x1c639a(0x1da)]=_0x4d2d84(),_0x15530f()(_0x2d9d90['Z'],_0x1be1f6),_0x2d9d90['Z']&&_0x2d9d90['Z'][_0x1c639a(0x1c3)]&&_0x2d9d90['Z'][_0x1c639a(0x1c3)];const _0x43f750=function(_0x5e1d3e,_0x388e14=document){var _0x13ba42=_0x1c639a;let _0x1fc936;if(_0x13ba42(0x1db)==typeof _0x388e14)_0x388e14=document[_0x13ba42(0x1ed)](_0x388e14);else{if(_0x43f750[_0x13ba42(0x22f)](_0x388e14))_0x388e14=_0x388e14[_0x13ba42(0x227)]();else{if(!(_0x388e14 instanceof HTMLElement||_0x388e14 instanceof Document))throw new Error(_0x13ba42(0x1c6));}}if('string'==typeof _0x5e1d3e&&_0x5e1d3e[_0x13ba42(0x216)]('//')){_0x1fc936=document[_0x13ba42(0x1c8)](_0x5e1d3e,_0x388e14,null,XPathResult['ANY_TYPE'],null);let _0x2f5c11=[],_0x2c4a93=_0x1fc936['iterateNext']();for(;_0x2c4a93;)_0x2f5c11['push'](_0x2c4a93),_0x2c4a93=_0x1fc936['iterateNext']();_0x1fc936=_0x2f5c11;}else{if(_0x13ba42(0x1db)==typeof _0x5e1d3e)_0x1fc936=_0x388e14[_0x13ba42(0x1b0)](_0x5e1d3e);else{if(_0x5e1d3e instanceof HTMLElement)_0x1fc936=_0x388e14[_0x13ba42(0x193)](_0x5e1d3e)?[_0x5e1d3e]:[];else{if(_0x5e1d3e instanceof NodeList||_0x5e1d3e instanceof HTMLCollection)_0x1fc936=Array[_0x13ba42(0x21a)](_0x5e1d3e)[_0x13ba42(0x1ce)](_0x3f1742=>_0x388e14[_0x13ba42(0x193)](_0x3f1742));else{if(Array[_0x13ba42(0x1ea)](_0x5e1d3e)&&_0x5e1d3e[_0x13ba42(0x16e)](_0x59e36c=>_0x59e36c instanceof HTMLElement))_0x1fc936=_0x5e1d3e[_0x13ba42(0x1ce)](_0x4c5be7=>_0x388e14[_0x13ba42(0x193)](_0x4c5be7));else{if('undefined'!=typeof jQuery&&_0x5e1d3e instanceof jQuery)_0x1fc936=Array[_0x13ba42(0x21a)](_0x5e1d3e[_0x13ba42(0x19a)]())[_0x13ba42(0x1ce)](_0x3cd222=>_0x388e14[_0x13ba42(0x193)](_0x3cd222));else{if(_0x13ba42(0x1de)!=typeof _0x5e1d3e)throw new Error(_0x13ba42(0x1e2));_0x1fc936=_0x43f750(_0x5e1d3e(),_0x388e14);}}}}}}var _0x513202={'elements':_0x1fc936,'_isAPXObject':!0x0};return _0x513202['length']=_0x1fc936[_0x13ba42(0x1cf)],_0x513202[_0x13ba42(0x1e7)]=function(_0x473c1a){var _0x231c13=_0x13ba42;return this[_0x231c13(0x18a)]instanceof Array&&this['elements'][_0x231c13(0x210)](_0x473c1a),this['elements']instanceof NodeList&&Array['from'](this[_0x231c13(0x18a)])[_0x231c13(0x210)](_0x473c1a),this;},_0x513202[_0x13ba42(0x19a)]=function(_0x2a2806){var _0x38bbc1=_0x13ba42;return this[_0x38bbc1(0x18a)][_0x2a2806];},_0x513202[_0x13ba42(0x1bc)]=function(){var _0x2c5adf=_0x13ba42;return this[_0x2c5adf(0x18a)]instanceof Array?this[_0x2c5adf(0x18a)]:this['elements']instanceof NodeList?Array[_0x2c5adf(0x21a)](this[_0x2c5adf(0x18a)]):this;},_0x513202[_0x13ba42(0x227)]=function(){return this['get'](0x0);},function(_0x500d66){var _0x14876a=_0x13ba42;let _0x3ef062=_0x500d66['elements'];_0x500d66[_0x14876a(0x222)]=function(_0x6ab024,_0x2e0805,_0x3b1e5e){var _0x247614=_0x14876a;let _0x18d2bf,_0x59e1a5={};_0x247614(0x1db)==typeof _0x2e0805?(_0x18d2bf=_0x2e0805,_0x59e1a5=_0x3b1e5e||{}):_0x59e1a5=_0x2e0805||{};const _0x4926d0=(function(){var _0x3f42b=_0x247614;const _0x5e1158=Math[_0x3f42b(0x1c0)]()[_0x3f42b(0x1fe)](0x24)[_0x3f42b(0x209)](0x2,0x9),_0x449cce=Date['now']()+'_'+_0x5e1158+'_'+_0x5c62c5;return _0x5c62c5=(_0x5c62c5+0x1)%0x3e8,_0x449cce;}()),_0x2401c4=_0x59e1a5['timeout']||0x0;return Array[_0x247614(0x1ea)](_0x6ab024)||(_0x6ab024=[_0x6ab024]),_0x6ab024[_0x247614(0x210)](_0x14466a=>{var _0x72d3c6=_0x247614;_0x3ef062[_0x72d3c6(0x210)](_0x2f06db=>{_0x2f06db['addEventListener'](_0x14466a,_0x131a92=>{_0x19acf2(_0x131a92,_0x4926d0,_0x2401c4,_0x18d2bf,_0x2f06db);});});}),{'do':function(_0xf13386){return _0x564cb8[_0x4926d0]||(_0x564cb8[_0x4926d0]=[]),_0x564cb8[_0x4926d0]['push'](_0xf13386),this;}};},_0x500d66['trigger']=function(_0x2bc392){var _0x14a3a4=_0x14876a;let _0x1e9caa;if('string'==typeof _0x2bc392)_0x1e9caa=_0x2bc392,_0x2bc392=new Event(_0x2bc392,{'bubbles':!0x0,'cancelable':!0x0});else{if(!(_0x2bc392 instanceof Event))return void console[_0x14a3a4(0x1b3)]('Invalid\x20event\x20type\x20provided\x20to\x20apx.trigger.\x20It\x20must\x20be\x20either\x20a\x20string\x20or\x20Event\x20object.');_0x1e9caa=_0x2bc392[_0x14a3a4(0x173)];}_0x500d66[_0x14a3a4(0x18a)][_0x14a3a4(0x210)](_0x84959f=>{var _0x7c9b6=_0x14a3a4;_0x84959f[_0x7c9b6(0x1d5)](_0x2bc392);}),Object[_0x14a3a4(0x17f)](_0x564cb8)['forEach'](_0x35e5aa=>{var _0x1c8f6d=_0x14a3a4;const _0x141f64=_0x564cb8[_0x35e5aa];if(_0x141f64&&_0x141f64[_0x1c8f6d(0x180)]===_0x1e9caa){const {selector:_0x364a32}=_0x141f64;_0x364a32&&!_0x2bc392[_0x1c8f6d(0x192)][_0x1c8f6d(0x1ec)](_0x364a32)||_0x19acf2(_0x2bc392,_0x35e5aa,0x0,_0x364a32,_0x2bc392['target']);}});};}(_0x513202),_0x14e68d(_0x513202),_0x513202;};_0x43f750['loadCss']=function(_0x4267c9){var _0x195f62=_0x1c639a;return fetch(_0x4267c9)[_0x195f62(0x1f2)](_0x56d9d3=>_0x56d9d3['text']())[_0x195f62(0x1f2)](_0x2236a4=>{var _0x4e37bf=_0x195f62;const _0x24033f=document['createElement'](_0x4e37bf(0x1e5));_0x24033f[_0x4e37bf(0x173)]=_0x4e37bf(0x1a1),_0x24033f[_0x4e37bf(0x1a5)]=_0x2236a4,document[_0x4e37bf(0x1ff)][_0x4e37bf(0x1b6)](_0x24033f);})[_0x195f62(0x171)](_0x170843=>{var _0x5e8940=_0x195f62;console[_0x5e8940(0x1b3)](_0x5e8940(0x1a2),_0x170843);});},_0x43f750[_0x1c639a(0x1ac)]=_0x3d24b0=>{var _0x314db7=_0x1c639a;const {title:_0x37b39a,content:_0x4b4ef7,contentURI:_0xb8b7fa,buttons:_0x4921fc,size:_0xe7f68f,showLoadingIndicator:_0x334ad5,contentMethod:_0x1d8fa8,contentData:_0x121e1c,contentHeaders:_0x1486cd}={'title':'','content':'','contentURI':'','buttons':[],'size':_0x314db7(0x1cd),'showLoadingIndicator':!0x1,'contentMethod':_0x314db7(0x1c2),'contentData':null,'contentHeaders':void 0x0,..._0x3d24b0},_0x5a70ca=document[_0x314db7(0x199)](_0x314db7(0x1d3));_0x5a70ca[_0x314db7(0x19c)]='<div\x20class=\x22APX-dialog\x22>\x20<div\x20class=\x22APX-dialog-content\x22>\x20<span\x20class=\x22APX-close-dialog\x22>×</span>\x20<h2\x20class=\x22APX-dialog-title\x22></h2>\x20<div\x20class=\x22APX-dialog-dynamic-content\x22></div>\x20<div\x20class=\x22APX-dialog-button-container\x22></div>\x20</div>\x20</div>'[_0x314db7(0x19e)]();const _0xae3f8d=_0x5a70ca[_0x314db7(0x1d1)],_0x25d6a0={},_0x57bd89={};['opening',_0x314db7(0x1b7),_0x314db7(0x1f9),_0x314db7(0x1bb),_0x314db7(0x205),_0x314db7(0x1d4)][_0x314db7(0x210)](_0x49682a=>{_0x57bd89[_0x49682a]=new Promise(_0x233724=>{_0x25d6a0[_0x49682a]=_0x233724;});});const _0x40d089=_0x5f3bc4=>{var _0x14a619=_0x314db7;_0x25d6a0[_0x5f3bc4]?_0x25d6a0[_0x5f3bc4]():console['warn'](_0x14a619(0x20f)+_0x5f3bc4);},_0x561e2d={'element':_0xae3f8d,'buttons':{},'isClosed':!0x1,'lifecycle':_0x57bd89,'disableButton':_0x3f8192=>{var _0x439a6a=_0x314db7;const _0x9b25d0=_0xae3f8d[_0x439a6a(0x1ed)](_0x439a6a(0x20c)+_0x3f8192+'\x22]');_0x9b25d0&&(_0x9b25d0[_0x439a6a(0x214)]=!0x0,_0x9b25d0[_0x439a6a(0x215)][_0x439a6a(0x1f0)]('APX-dialog-button-disabled'));},'enableButton':_0x8953cc=>{var _0x31dfa8=_0x314db7;const _0x44e975=_0xae3f8d[_0x31dfa8(0x1ed)]('.APX-dialog-button[data-key=\x22'+_0x8953cc+'\x22]');_0x44e975&&(_0x44e975[_0x31dfa8(0x214)]=!0x1,_0x44e975[_0x31dfa8(0x215)][_0x31dfa8(0x176)](_0x31dfa8(0x21e)));},'open':async()=>{var _0x31ef15=_0x314db7;try{_0x40d089('opening'),await _0x561e2d[_0x31ef15(0x172)]['opening'],_0x334ad5&&_0xb8b7fa?(document['body'][_0x31ef15(0x1b6)](_0xae3f8d),_0xae3f8d['style']['display']=_0x31ef15(0x1f3),_0xae3f8d['querySelector']('.APX-dialog-dynamic-content')[_0x31ef15(0x19c)]='<div\x20class=\x22APX-dialog-loading-indicator\x22></div>',await _0x267e59()):(await _0x267e59(),document[_0x31ef15(0x17d)]['appendChild'](_0xae3f8d),_0xae3f8d['style'][_0x31ef15(0x20d)]=_0x31ef15(0x1f3)),_0x40d089('opened'),await _0x561e2d[_0x31ef15(0x172)][_0x31ef15(0x1b7)];}catch(_0x398375){console[_0x31ef15(0x1b3)]('Error\x20opening\x20dialog:',_0x398375);}return _0x561e2d;},'close':async()=>{var _0x211e27=_0x314db7;try{_0x40d089(_0x211e27(0x1f9)),await _0x561e2d[_0x211e27(0x172)]['closing'],_0x5ac4cf(),_0x40d089(_0x211e27(0x1bb)),await _0x561e2d[_0x211e27(0x172)][_0x211e27(0x1bb)];}catch(_0x238b40){console[_0x211e27(0x1b3)](_0x211e27(0x1fc),_0x238b40);}return _0x561e2d;}},_0x5ac4cf=()=>{var _0x54fad6=_0x314db7;_0x561e2d[_0x54fad6(0x1af)]||(_0x561e2d[_0x54fad6(0x1af)]=!0x0,_0xae3f8d[_0x54fad6(0x1e5)][_0x54fad6(0x20d)]=_0x54fad6(0x1fd),document[_0x54fad6(0x17d)][_0x54fad6(0x193)](_0xae3f8d)&&document['body'][_0x54fad6(0x1d7)](_0xae3f8d));},_0x267e59=async()=>{var _0x3592bf=_0x314db7;const _0x239422=document['body'][_0x3592bf(0x1e5)][_0x3592bf(0x20b)];document[_0x3592bf(0x17d)][_0x3592bf(0x1e5)][_0x3592bf(0x20b)]='wait';const _0x4d0b9c=_0xae3f8d[_0x3592bf(0x1ed)]('.APX-dialog-dynamic-content');try{_0x40d089(_0x3592bf(0x205)),await _0x561e2d[_0x3592bf(0x172)][_0x3592bf(0x205)];const _0x164717=_0xb8b7fa?await _0x20ac89(_0xb8b7fa):_0x4b4ef7;_0x4d0b9c[_0x3592bf(0x19c)]=_0x164717,_0x40d089(_0x3592bf(0x1d4)),await _0x561e2d['lifecycle'][_0x3592bf(0x1d4)];}catch(_0x34560f){console[_0x3592bf(0x1b3)]('Error\x20loading\x20content:',_0x34560f);}finally{document[_0x3592bf(0x17d)][_0x3592bf(0x1e5)]['cursor']=_0x239422;}},_0x20ac89=async _0x27452c=>{var _0x4f5292=_0x314db7;const _0x4e49cc=(_0x1d8fa8||_0x4f5292(0x1c2))[_0x4f5292(0x228)](),_0x14981f={..._0x1486cd||{}},_0x4b06b1=Object[_0x4f5292(0x17f)](_0x14981f)[_0x4f5292(0x184)](_0x3ed5d8=>_0x4f5292(0x17c)===_0x3ed5d8[_0x4f5292(0x1f8)]()),_0x1c6706={'method':_0x4e49cc};if(_0x4f5292(0x18d)===_0x4e49cc){let _0x23ec4b;const _0x4ef90c=_0x4f5292(0x1fa)!=typeof FormData&&_0x121e1c instanceof FormData,_0xd6e5a2=_0x4f5292(0x1fa)!=typeof URLSearchParams&&_0x121e1c instanceof URLSearchParams,_0x17b9c0=_0x4f5292(0x1fa)!=typeof Blob&&_0x121e1c instanceof Blob,_0x143a24=_0x4f5292(0x1db)==typeof _0x121e1c,_0x32fc49=_0x121e1c&&_0x4f5292(0x1cc)==typeof _0x121e1c&&!_0x4ef90c&&!_0xd6e5a2&&!_0x17b9c0;_0x4ef90c?_0x23ec4b=_0x121e1c:_0xd6e5a2?(_0x23ec4b=_0x121e1c,_0x4b06b1||(_0x14981f[_0x4f5292(0x225)]='application/x-www-form-urlencoded;charset=UTF-8')):_0x32fc49?(_0x23ec4b=JSON['stringify'](_0x121e1c),_0x4b06b1||(_0x14981f[_0x4f5292(0x225)]=_0x4f5292(0x195))):(_0x143a24||_0x17b9c0||null!=_0x121e1c)&&(_0x23ec4b=_0x121e1c),void 0x0!==_0x23ec4b&&(_0x1c6706['body']=_0x23ec4b);}Object[_0x4f5292(0x17f)](_0x14981f)[_0x4f5292(0x1cf)]>0x0&&(_0x1c6706[_0x4f5292(0x17a)]=_0x14981f);const _0x336cb0=await fetch(_0x27452c,_0x1c6706);if(!_0x336cb0['ok'])throw new Error('Failed\x20to\x20fetch\x20content:\x20'+_0x336cb0[_0x4f5292(0x206)]);return _0x336cb0[_0x4f5292(0x208)]();};return((()=>{var _0x2b3176=_0x314db7;const _0x1ce6f1=_0xae3f8d[_0x2b3176(0x1ed)](_0x2b3176(0x1c4));if(_0x2b3176(0x1ee)===_0xe7f68f)return;const _0x275b73={'small':{'width':_0x2b3176(0x204),'height':_0x2b3176(0x1c5)},'medium':{'width':_0x2b3176(0x18c),'height':'400px'},'large':{'width':'800px','height':_0x2b3176(0x1e3)}}[_0xe7f68f]||_0x2b3176(0x1cc)==typeof _0xe7f68f&&_0xe7f68f;_0x275b73&&(_0x1ce6f1[_0x2b3176(0x1e5)]['minWidth']=_0x275b73[_0x2b3176(0x1a0)]||_0x2b3176(0x18c),_0x1ce6f1[_0x2b3176(0x1e5)][_0x2b3176(0x175)]=_0x275b73[_0x2b3176(0x22e)]||_0x2b3176(0x203));})()),((()=>{var _0x338611=_0x314db7;const _0x3ebe95=_0xae3f8d['querySelector'](_0x338611(0x1b1));_0x4921fc['forEach'](({key:_0x39baef,label:_0x45b3a6,order:_0x27aec5=0x0,align:_0x3e94e8=_0x338611(0x189),closeOnClick:_0x32bcbf=!0x0})=>{var _0x373145=_0x338611;const _0x4a5016=document['createElement'](_0x373145(0x1be));_0x4a5016[_0x373145(0x215)][_0x373145(0x1f0)]('APX-dialog-button'),_0x4a5016[_0x373145(0x1a5)]=_0x45b3a6,_0x4a5016[_0x373145(0x1e5)][_0x373145(0x219)]=_0x27aec5,_0x4a5016[_0x373145(0x22c)](_0x373145(0x18b),_0x39baef);const _0x43815b={'disable':()=>{var _0x44622c=_0x373145;_0x4a5016[_0x44622c(0x214)]=!0x0,_0x4a5016[_0x44622c(0x215)][_0x44622c(0x1f0)](_0x44622c(0x21e));},'enable':()=>{var _0x4eb91e=_0x373145;_0x4a5016[_0x4eb91e(0x214)]=!0x1,_0x4a5016[_0x4eb91e(0x215)][_0x4eb91e(0x176)](_0x4eb91e(0x21e));},'key':_0x39baef,'element':_0x4a5016};if(_0x32bcbf){let _0x105fda=!0x1;const _0x287984=new Promise(_0x27d88a=>{var _0x3861fc=_0x373145;_0x4a5016[_0x3861fc(0x177)]=()=>{var _0x3da929=_0x3861fc;_0x105fda||_0x4a5016[_0x3da929(0x214)]||(_0x105fda=!0x0,_0x27d88a({'dialog':_0x561e2d,'button':_0x43815b}),_0x561e2d[_0x3da929(0x190)]());};});_0x561e2d['buttons'][_0x39baef]=_0x287984;}else{let _0x1742e1=[];const _0x2f697d={'then':_0x5c89b2=>(_0x373145(0x1de)==typeof _0x5c89b2&&_0x1742e1[_0x373145(0x178)](_0x5c89b2),_0x2f697d)};_0x4a5016['onclick']=()=>{var _0x1e6950=_0x373145;_0x4a5016[_0x1e6950(0x214)]||_0x1742e1[_0x1e6950(0x210)](_0x3201fc=>_0x3201fc({'dialog':_0x561e2d,'button':_0x43815b}));},_0x561e2d[_0x373145(0x196)][_0x39baef]=_0x2f697d;}_0x3ebe95[_0x373145(0x1b6)](_0x4a5016),_0x3ebe95['style']['justifyContent']=_0x3e94e8;});})()),_0xae3f8d['querySelector']('.APX-dialog-title')[_0x314db7(0x1a5)]=_0x37b39a,_0xae3f8d[_0x314db7(0x1ed)]('.APX-close-dialog')[_0x314db7(0x177)]=_0x561e2d[_0x314db7(0x190)],_0x561e2d;},_0x43f750['isAPXObject']=function(_0x4279cb){var _0x7b725=_0x1c639a;return _0x4279cb&&!0x0===_0x4279cb[_0x7b725(0x1a6)];},_0x43f750['is_numeric']=_0x1044dd=>!isNaN(_0x1044dd-parseFloat(_0x1044dd));const _0x5cc49d=_0x43f750;})());var a=o['Z'];export{a as default};function a0_0x1016(){var _0x24adeb=['Error\x20during\x20dialog\x20closing:','none','toString','head','href','join','8208588mHnLBF','400px','300px','contentLoading','statusText','css','text','substr','removeAttribute','cursor','.APX-dialog-button[data-key=\x22','display','1526goNbii','No\x20resolver\x20found\x20for\x20lifecycle\x20event:\x20','forEach','1236162aqrZFE','HTMLIFrameElement','base','disabled','classList','startsWith','155hReLuI','false','order','from','\x0a/*#\x20sourceMappingURL=data:application/json;base64,','tristate','21992XMTLlO','APX-dialog-button-disabled','defaultState','Couldn\x27t\x20find\x20a\x20style\x20target.\x20This\x20probably\x20means\x20that\x20the\x20value\x20for\x20the\x20\x27insert\x27\x20parameter\x20is\x20invalid.','updater','listen','update','classes','Content-Type','replace','first','toUpperCase','3IJWbWF','call','hash','setAttribute','styleSheet','height','isAPXObject','identifier','map','value','every','16077060THmOGF','nonce','catch','lifecycle','type','after','minHeight','remove','onclick','push','exports','headers','bind','content-type','body','name','keys','eventType','__esModule','apx-tristate','preventDefault','some','hidden',')\x20{','size','30eoonyM','flex-end','elements','data-key','500px','POST','byIndex','tabIndex','close','styleTagTransform','target','contains','data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%3Csvg%20viewBox%3D%220%200%2032%2032%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22m0.543%205.647c0-3.119%202.531-5.647%205.65-5.647h19.309c3.12%200%205.65%202.511%205.65%205.647v20.705c0%203.119-2.531%205.647-5.65%205.647h-19.309c-3.12%200-5.65-2.511-5.65-5.647v-20.705z%22%20fill%3D%22%23f00%22%2F%3E%3Cpath%20d%3D%22m8%208%2016%2016%22%20stroke%3D%22%23fff%22%20stroke-width%3D%222%22%2F%3E%3Cpath%20d%3D%22M24%208L8%2024%22%20stroke%3D%22%23fff%22%20stroke-width%3D%222%22%2F%3E%3C%2Fsvg%3E','application/json','buttons','crossed','split','createElement','get','checkbox','innerHTML','options','trim','insert','width','text/css','Failed\x20to\x20load\x20CSS:','test','stringify','textContent','_isAPXObject','callbacks','33XqKYPk','224810zCbYUP',');\x0a\x20\x20\x20\x20background-repeat:\x20no-repeat;\x0a\x20\x20\x20\x20background-position:\x20center;\x0a}\x0a.apx-tristate.crossed\x20{\x0a\x20\x20\x20\x20background-image:\x20url(','unchecked','dialog','Error\x20in\x20callback\x20chain:','keyup','isClosed','querySelectorAll','.APX-dialog-button-container','media','error','true','splice','appendChild','opened','nodeType','\x20*/','sourceMap','closed','all','change','button','margin','random','nextSibling','GET','locals','.APX-dialog-content','200px','Invalid\x20context\x20for\x20APX','150508HnrMCe','evaluate','location','data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20width%3D%2732%27%20height%3D%2732%27%3E%3Cpath%20fill%3D%22%230654ba%22%20d%3D%22M0.543%205.647c0-3.119%202.531-5.647%205.65-5.647h19.309c3.12%200%205.65%202.511%205.65%205.647v20.705c0%203.119-2.531%205.647-5.65%205.647h-19.309c-3.12%200-5.65-2.511-5.65-5.647v-20.705zM5.313%2017.587l7.039%206.839%2013.831-13.439-2.636-2.561-10.929%2010.62-4.442-4.317-2.862%202.858z%22%3E%3C/path%3E%3C/svg%3E','indexOf','object','medium','filter','length','bubbleEvents','firstChild',');\x0a\x20\x20\x20\x20background-repeat:\x20no-repeat;\x0a\x20\x20\x20\x20background-position:\x20center;\x0a}','div','contentLoaded','dispatchEvent','dataset','removeChild','references','supports','insertStyleElement','string','.apx-tristate\x20{\x0a\x20\x20\x20\x20display:\x20inline-block;\x0a\x20\x20\x20\x20vertical-align:\x20middle;\x0a\x20\x20\x20\x20text-align:\x20center;\x0a\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20position:\x20relative;\x0a\x20\x20\x20\x20min-width:13px;\x0a\x20\x20\x20\x20min-height:13px;\x0a\x20\x20\x20\x20background-size:\x20contain;\x0a\x20\x20\x20\x20background-color:\x20white;\x0a\x20\x20\x20\x20border-radius:3px;\x0a}\x0a.apx-tristate.unchecked\x20{\x0a\x20\x20\x20\x20background-image:\x20url(','concat','function','click','needQuotes','/*\x20Dialog\x20styling\x20*/\x0a.APX-dialog\x20{\x0a\x20\x20\x20\x20display:\x20none;\x0a\x20\x20\x20\x20position:\x20fixed;\x0a\x20\x20\x20\x20z-index:\x201002;\x0a\x20\x20\x20\x20left:\x200;\x0a\x20\x20\x20\x20top:\x200;\x0a\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20height:\x20100%;\x0a\x20\x20\x20\x20overflow:\x20auto;\x0a\x20\x20\x20\x20background-color:\x20rgba(0,\x200,\x200,\x200.4);\x0a\x20\x20\x20\x20/*\x20Dimmed\x20background\x20for\x20focus\x20on\x20dialog\x20*/\x0a}\x0a\x0a.APX-dialog-content\x20{\x0a\x20\x20\x20\x20background-color:\x20#fefefe;\x0a\x20\x20\x20\x20padding:\x2040px;\x0a\x20\x20\x20\x20border:\x20none;\x0a\x20\x20\x20\x20width:\x20auto;\x0a\x20\x20\x20\x20min-width:\x20300px;\x0a\x20\x20\x20\x20max-width:\x2080%;\x0a\x20\x20\x20\x20margin:\x20auto;\x0a\x20\x20\x20\x20border-radius:\x208px;\x0a\x20\x20\x20\x20box-shadow:\x200px\x206px\x2020px\x20rgba(0,\x200,\x200,\x200.1);\x0a\x20\x20\x20\x20font-family:\x20\x27Helvetica\x20Neue\x27,\x20Arial,\x20sans-serif;\x0a}\x0a\x0ah2.APX-dialog-title{\x0a\x20\x20\x20\x20margin-top:0;\x0a}\x0a\x0a.APX-close-dialog\x20{\x0a\x20\x20\x20\x20color:\x20#aaa;\x0a\x20\x20\x20\x20float:\x20right;\x0a\x20\x20\x20\x20font-size:\x2024px;\x0a\x20\x20\x20\x20margin-top:\x20-10px;\x0a\x20\x20\x20\x20/*\x20Adjust\x20positioning\x20*/\x0a\x20\x20\x20\x20margin-right:\x20-10px;\x0a}\x0a\x0a.APX-close-dialog:hover,\x0a.APX-close-dialog:focus\x20{\x0a\x20\x20\x20\x20color:\x20#333;\x0a\x20\x20\x20\x20/*\x20Darker\x20color\x20on\x20hover/focus\x20*/\x0a\x20\x20\x20\x20cursor:\x20pointer;\x0a}\x0a\x0a/*\x20Input\x20fields\x20styling\x20*/\x0a.APX-dialog-content\x20input[type=\x22text\x22],\x0a.APX-dialog-content\x20input[type=\x22number\x22],\x0a.APX-dialog-content\x20input[type=\x22date\x22],\x0a.APX-dialog-content\x20input[type=\x22datetime-local\x22]\x20{\x0a\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20padding:\x2010px;\x0a\x20\x20\x20\x20margin-bottom:\x2020px;\x0a\x20\x20\x20\x20border:\x201px\x20solid\x20#ccc;\x0a\x20\x20\x20\x20border-radius:\x204px;\x0a\x20\x20\x20\x20font-family:\x20\x27Helvetica\x20Neue\x27,\x20Arial,\x20sans-serif;\x0a\x20\x20\x20\x20font-size:\x2016px;\x0a\x20\x20\x20\x20box-sizing:\x20border-box;\x0a\x20\x20\x20\x20transition:\x20border-color\x200.3s;\x0a}\x0a\x0a.APX-dialog-content\x20input[type=\x22text\x22]:focus,\x0a.APX-dialog-content\x20input[type=\x22number\x22]:focus,\x0a.APX-dialog-content\x20input[type=\x22date\x22]:focus,\x0a.APX-dialog-content\x20input[type=\x22datetime-local\x22]:focus\x20{\x0a\x20\x20\x20\x20border-color:\x20#2C3E50;\x0a\x20\x20\x20\x20/*\x20Deep\x20Blue\x20Color\x20*/\x0a\x20\x20\x20\x20outline:\x20none;\x0a}\x0a\x0a/*\x20Button\x20in\x20the\x20dialog\x20*/\x0a.APX-dialog-button-container\x20button\x20{\x0a\x20\x20\x20\x20position:\x20relative;\x0a\x20\x20\x20\x20background-color:\x20#2C3E50;\x0a\x20\x20\x20\x20color:\x20#ECF0F1;\x0a\x20\x20\x20\x20border:\x20none;\x0a\x20\x20\x20\x20padding:\x2010px\x2020px;\x0a\x20\x20\x20\x20border-radius:\x205px;\x0a\x20\x20\x20\x20font-size:\x2016px;\x0a\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20transition:\x20all\x200.3s\x20ease;\x0a\x20\x20\x20\x20box-shadow:\x200\x202px\x204px\x20rgba(0,\x200,\x200,\x200.1);\x0a}\x0a\x0a.APX-dialog-button-container\x20button:hover\x20{\x0a\x20\x20\x20\x20background-color:\x20#34495E;\x0a\x20\x20\x20\x20transform:\x20translateY(-1px);\x0a\x20\x20\x20\x20box-shadow:\x200\x204px\x208px\x20rgba(0,\x200,\x200,\x200.15);\x0a}\x0a\x0a.APX-dialog-button-container\x20{\x0a\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20gap:\x2010px;\x0a\x20\x20\x20\x20margin-top:1em;\x0a\x20\x20\x20\x20/*\x20spacing\x20between\x20buttons\x20*/\x0a}\x0a\x0a/*\x20Loading\x20indicator\x20*/\x0a.APX-dialog-loading-indicator\x20{\x0a\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20height:\x20100px;\x0a\x20\x20\x20\x20width:\x20100%;\x0a}\x0a\x0a.APX-dialog-loading-indicator::before\x20{\x0a\x20\x20\x20\x20content:\x20\x27\x27;\x0a\x20\x20\x20\x20width:\x2040px;\x0a\x20\x20\x20\x20height:\x2040px;\x0a\x20\x20\x20\x20border:\x204px\x20solid\x20#f3f3f3;\x0a\x20\x20\x20\x20border-top:\x204px\x20solid\x20#2C3E50;\x0a\x20\x20\x20\x20border-radius:\x2050%;\x0a\x20\x20\x20\x20animation:\x20APX-dialog-spin\x201s\x20linear\x20infinite;\x0a}\x0a\x0a@keyframes\x20APX-dialog-spin\x20{\x0a\x20\x20\x20\x200%\x20{\x20transform:\x20rotate(0deg);\x20}\x0a\x20\x20\x20\x20100%\x20{\x20transform:\x20rotate(360deg);\x20}\x0a}\x0a.APX-dialog-button-disabled\x20{\x0a\x20\x20\x20\x20opacity:\x200.5;\x0a\x20\x20\x20\x20cursor:\x20not-allowed\x20!important;\x0a\x20\x20\x20\x20background-color:\x20#95a5a6\x20!important;\x20/*\x20Grayed\x20out\x20color\x20*/\x0a\x20\x20\x20\x20box-shadow:\x20none\x20!important;\x0a\x20\x20\x20\x20transition:\x20all\x200.2s\x20ease;\x0a\x20\x20\x20\x20transform:\x20none\x20!important;\x0a}\x0a\x0a.APX-dialog-button-disabled:hover\x20{\x0a\x20\x20\x20\x20background-color:\x20#95a5a6\x20!important;\x20/*\x20Keep\x20gray\x20on\x20hover\x20*/\x0a\x20\x20\x20\x20transform:\x20none\x20!important;\x0a}\x0a\x0a/*\x20Add\x20a\x20subtle\x20strikethrough\x20effect\x20*/\x0a.APX-dialog-button-disabled::after\x20{\x0a\x20\x20\x20\x20content:\x20\x27\x27;\x0a\x20\x20\x20\x20position:\x20absolute;\x0a\x20\x20\x20\x20top:\x2050%;\x0a\x20\x20\x20\x20left:\x200;\x0a\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20height:\x201px;\x0a\x20\x20\x20\x20background-color:\x20rgba(0,\x200,\x200,\x200.2);\x0a\x20\x20\x20\x20transform:\x20rotate(-5deg);\x0a}','Invalid\x20input\x20type\x20for\x20APX','600px','createTextNode','style','addEventListener','each','default','parentNode','isArray','@supports\x20(','matches','querySelector','auto','layer','add','domAPI','then','flex','checked','3532509IhqeQO','baseURI','@media\x20','toLowerCase','closing','undefined','@layer'];a0_0x1016=function(){return _0x24adeb;};return a0_0x1016();}
|
package/dist/APX.prod.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={613:(e,t,n)=>{n.d(t,{Z:()=>s});var o=n(81),a=n.n(o),i=n(645),r=n.n(i)()(a());r.push([e.id,'/* Dialog styling */\n.APX-dialog {\n display: none;\n position: fixed;\n z-index: 1002;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n overflow: auto;\n background-color: rgba(0, 0, 0, 0.4);\n /* Dimmed background for focus on dialog */\n}\n\n.APX-dialog-content {\n background-color: #fefefe;\n padding: 40px;\n border: none;\n width: auto;\n min-width: 300px;\n max-width: 80%;\n margin: auto;\n border-radius: 8px;\n box-shadow: 0px 6px 20px rgba(0, 0, 0, 0.1);\n font-family: \'Helvetica Neue\', Arial, sans-serif;\n}\n\nh2.APX-dialog-title{\n margin-top:0;\n}\n\n.APX-close-dialog {\n color: #aaa;\n float: right;\n font-size: 24px;\n margin-top: -10px;\n /* Adjust positioning */\n margin-right: -10px;\n}\n\n.APX-close-dialog:hover,\n.APX-close-dialog:focus {\n color: #333;\n /* Darker color on hover/focus */\n cursor: pointer;\n}\n\n/* Input fields styling */\n.APX-dialog-content input[type="text"],\n.APX-dialog-content input[type="number"],\n.APX-dialog-content input[type="date"],\n.APX-dialog-content input[type="datetime-local"] {\n width: 100%;\n padding: 10px;\n margin-bottom: 20px;\n border: 1px solid #ccc;\n border-radius: 4px;\n font-family: \'Helvetica Neue\', Arial, sans-serif;\n font-size: 16px;\n box-sizing: border-box;\n transition: border-color 0.3s;\n}\n\n.APX-dialog-content input[type="text"]:focus,\n.APX-dialog-content input[type="number"]:focus,\n.APX-dialog-content input[type="date"]:focus,\n.APX-dialog-content input[type="datetime-local"]:focus {\n border-color: #2C3E50;\n /* Deep Blue Color */\n outline: none;\n}\n\n/* Button in the dialog */\n.APX-dialog-button-container button {\n position: relative;\n background-color: #2C3E50;\n color: #ECF0F1;\n border: none;\n padding: 10px 20px;\n border-radius: 5px;\n font-size: 16px;\n cursor: pointer;\n transition: all 0.3s ease;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n.APX-dialog-button-container button:hover {\n background-color: #34495E;\n transform: translateY(-1px);\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);\n}\n\n.APX-dialog-button-container {\n display: flex;\n gap: 10px;\n margin-top:1em;\n /* spacing between buttons */\n}\n\n/* Loading indicator */\n.APX-dialog-loading-indicator {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100px;\n width: 100%;\n}\n\n.APX-dialog-loading-indicator::before {\n content: \'\';\n width: 40px;\n height: 40px;\n border: 4px solid #f3f3f3;\n border-top: 4px solid #2C3E50;\n border-radius: 50%;\n animation: APX-dialog-spin 1s linear infinite;\n}\n\n@keyframes APX-dialog-spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n.APX-dialog-button-disabled {\n opacity: 0.5;\n cursor: not-allowed !important;\n background-color: #95a5a6 !important; /* Grayed out color */\n box-shadow: none !important;\n transition: all 0.2s ease;\n transform: none !important;\n}\n\n.APX-dialog-button-disabled:hover {\n background-color: #95a5a6 !important; /* Keep gray on hover */\n transform: none !important;\n}\n\n/* Add a subtle strikethrough effect */\n.APX-dialog-button-disabled::after {\n content: \'\';\n position: absolute;\n top: 50%;\n left: 0;\n width: 100%;\n height: 1px;\n background-color: rgba(0, 0, 0, 0.2);\n transform: rotate(-5deg);\n}',""]);const s=r},570:(e,t,n)=>{n.d(t,{Z:()=>m});var o=n(81),a=n.n(o),i=n(645),r=n.n(i),s=n(667),c=n.n(s),l=new URL(n(29),n.b),d=new URL(n(913),n.b),u=new URL(n(260),n.b),p=r()(a()),f=c()(l),h=c()(d),g=c()(u);p.push([e.id,`.apx-tristate {\n display: inline-block;\n vertical-align: middle;\n text-align: center;\n cursor: pointer;\n position: relative;\n min-width:13px;\n min-height:13px;\n background-size: contain;\n background-color: white;\n border-radius:3px;\n}\n.apx-tristate.unchecked {\n background-image: url(${f});\n}\n.apx-tristate.checked {\n background-image: url(${h});\n background-repeat: no-repeat;\n background-position: center;\n}\n.apx-tristate.crossed {\n background-image: url(${g});\n background-repeat: no-repeat;\n background-position: center;\n}`,""]);const m=p},645:e=>{e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",o=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),o&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),o&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,o,a,i){"string"==typeof e&&(e=[[null,e,void 0]]);var r={};if(o)for(var s=0;s<this.length;s++){var c=this[s][0];null!=c&&(r[c]=!0)}for(var l=0;l<e.length;l++){var d=[].concat(e[l]);o&&r[d[0]]||(void 0!==i&&(void 0===d[5]||(d[1]="@layer".concat(d[5].length>0?" ".concat(d[5]):""," {").concat(d[1],"}")),d[5]=i),n&&(d[2]?(d[1]="@media ".concat(d[2]," {").concat(d[1],"}"),d[2]=n):d[2]=n),a&&(d[4]?(d[1]="@supports (".concat(d[4],") {").concat(d[1],"}"),d[4]=a):d[4]="".concat(a)),t.push(d))}},t}},667:e=>{e.exports=function(e,t){return t||(t={}),e?(e=String(e.__esModule?e.default:e),/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),t.hash&&(e+=t.hash),/["'() \t\n]|(%20)/.test(e)||t.needQuotes?'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):e):e}},81:e=>{e.exports=function(e){return e[1]}},379:e=>{var t=[];function n(e){for(var n=-1,o=0;o<t.length;o++)if(t[o].identifier===e){n=o;break}return n}function o(e,o){for(var i={},r=[],s=0;s<e.length;s++){var c=e[s],l=o.base?c[0]+o.base:c[0],d=i[l]||0,u="".concat(l," ").concat(d);i[l]=d+1;var p=n(u),f={css:c[1],media:c[2],sourceMap:c[3],supports:c[4],layer:c[5]};if(-1!==p)t[p].references++,t[p].updater(f);else{var h=a(f,o);o.byIndex=s,t.splice(s,0,{identifier:u,updater:h,references:1})}r.push(u)}return r}function a(e,t){var n=t.domAPI(t);return n.update(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;n.update(e=t)}else n.remove()}}e.exports=function(e,a){var i=o(e=e||[],a=a||{});return function(e){e=e||[];for(var r=0;r<i.length;r++){var s=n(i[r]);t[s].references--}for(var c=o(e,a),l=0;l<i.length;l++){var d=n(i[l]);0===t[d].references&&(t[d].updater(),t.splice(d,1))}i=c}}},569:e=>{var t={};e.exports=function(e,n){var o=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!o)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");o.appendChild(n)}},216:e=>{e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},565:(e,t,n)=>{e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},795:e=>{e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var o="";n.supports&&(o+="@supports (".concat(n.supports,") {")),n.media&&(o+="@media ".concat(n.media," {"));var a=void 0!==n.layer;a&&(o+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),o+=n.css,a&&(o+="}"),n.media&&(o+="}"),n.supports&&(o+="}");var i=n.sourceMap;i&&"undefined"!=typeof btoa&&(o+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),t.styleTagTransform(o,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},589:e=>{e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},260:e=>{e.exports="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%3Csvg%20viewBox%3D%220%200%2032%2032%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22m0.543%205.647c0-3.119%202.531-5.647%205.65-5.647h19.309c3.12%200%205.65%202.511%205.65%205.647v20.705c0%203.119-2.531%205.647-5.65%205.647h-19.309c-3.12%200-5.65-2.511-5.65-5.647v-20.705z%22%20fill%3D%22%23f00%22%2F%3E%3Cpath%20d%3D%22m8%208%2016%2016%22%20stroke%3D%22%23fff%22%20stroke-width%3D%222%22%2F%3E%3Cpath%20d%3D%22M24%208L8%2024%22%20stroke%3D%22%23fff%22%20stroke-width%3D%222%22%2F%3E%3C%2Fsvg%3E"},29:e=>{e.exports="data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20width%3D%2732%27%20height%3D%2732%27%3E%3Cpath%20%20fill%3D%22%23cccccc%22%20d%3D%22M25.107%2032.030h-18.214c-3.456%200-6.268-2.81-6.268-6.264v-19.529c0-3.456%202.812-6.268%206.268-6.268h18.214c3.456%200%206.268%202.812%206.268%206.268v19.529c0%203.452-2.812%206.264-6.268%206.264zM6.893%201.85c-2.419%200-4.386%201.967-4.386%204.386v19.529c0%202.417%201.967%204.382%204.386%204.382h18.214c2.419%200%204.386-1.965%204.386-4.382v-19.529c0-2.419-1.967-4.386-4.386-4.386h-18.214z%22%3E%3C/path%3E%3C/svg%3E"},913:e=>{e.exports="data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20width%3D%2732%27%20height%3D%2732%27%3E%3Cpath%20fill%3D%22%230654ba%22%20d%3D%22M0.543%205.647c0-3.119%202.531-5.647%205.65-5.647h19.309c3.12%200%205.65%202.511%205.65%205.647v20.705c0%203.119-2.531%205.647-5.65%205.647h-19.309c-3.12%200-5.65-2.511-5.65-5.647v-20.705zM5.313%2017.587l7.039%206.839%2013.831-13.439-2.636-2.561-10.929%2010.62-4.442-4.317-2.862%202.858z%22%3E%3C/path%3E%3C/svg%3E"}},t={};function n(o){var a=t[o];if(void 0!==a)return a.exports;var i=t[o]={id:o,exports:{}};return e[o](i,i.exports,n),i.exports}n.m=e,n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.b=document.baseURI||self.location.href,n.nc=void 0;var o={};(()=>{n.d(o,{Z:()=>L});let e=0;const t={},a={};function i(e,n,o,i="",r){const s=i?function(e,t){for(;e&&1===e.nodeType;){if(e.matches(t))return e;e=e.parentNode}return null}(e.target,i):r;function c(){t[n]&&t[n].reduce(((t,n)=>t.then((()=>new Promise(((t,o)=>{try{const a=n.bind(s)(e);a instanceof Promise?a.then(t).catch(o):t(a)}catch(e){o(e)}}))))),Promise.resolve()).catch((e=>{console.error("Error in callback chain:",e)}))}s&&(clearTimeout(a[n]),0===o?c():a[n]=setTimeout(c,o))}var r=n(379),s=n.n(r),c=n(795),l=n.n(c),d=n(569),u=n.n(d),p=n(565),f=n.n(p),h=n(216),g=n.n(h),m=n(589),b=n.n(m),y=n(570),v={};function x(e){e.tristate=function(t={}){e.elements.forEach((e=>{if("checkbox"===e.type){const[n,o,a]=function(e,t){const n=window.getComputedStyle(e);e.style.display="none";const o=document.createElement("div");o.classList.add("apx-tristate"),t.size&&(t.size.width&&(o.style.width=t.size.width+"px"),t.size.height&&(o.style.height=t.size.height+"px")),t.classes&&o.classList.add(...function(e){let t=[];return"string"==typeof e?t=(e=e.replace(/\s\s+/g," ")).indexOf(" ")>-1?e.split(" "):e.indexOf(",")>-1?e.split(","):[e]:Array.isArray(e)&&(t=e),t}(t.classes)),o.style.margin=n.margin,e.checked?o.classList.add("checked"):o.classList.add("unchecked");const a=document.createElement("input");return a.type="hidden",a.name=e.name,e.dataset.name=e.name,e.removeAttribute("name"),t.defaultState?function(e,t,n){"checked"===e.defaultState?(t.classList.remove("unchecked"),t.classList.add("checked"),n.value="true"):"unchecked"===e.defaultState?(t.classList.remove("checked"),t.classList.add("unchecked"),n.removeAttribute("name"),n.removeAttribute("value")):"crossed"===e.defaultState&&(t.classList.remove("checked"),t.classList.add("crossed"),n.value="false")}(t,o,a):e.checked?a.value="true":(a.name="",a.value=""),o.tabIndex=e.tabIndex,o.appendChild(a),e.parentNode.insertBefore(o,e.nextSibling),o.addEventListener("click",(function(n){!function(e,t,n){e.classList.contains("checked")?(e.classList.remove("checked"),e.classList.add("crossed"),t.checked=!1,n.value="false"):e.classList.contains("crossed")?(e.classList.remove("crossed"),e.classList.add("unchecked"),n.removeAttribute("name"),n.removeAttribute("value")):(e.classList.remove("unchecked"),e.classList.add("checked"),t.checked=!0,n.value="true",n.setAttribute("name",t.dataset.name))}(o,e,a),A(t,e,o,a,n)})),o.addEventListener("keyup",w.bind(null,e)),[e,o,a]}(e,t);t.callbacks&&t.callbacks.after&&"function"==typeof t.callbacks.after&&t.callbacks.after(n,o,a)}}))}}function A(e,t,n,o,a){e.callbacks&&e.callbacks.change&&"function"==typeof e.callbacks.change&&e.callbacks.change(t,n,o),e.bubbleEvents&&("click"===a.type?t.dispatchEvent(new MouseEvent("click",{bubbles:!0,cancelable:!0})):"keyup"===a.type?t.dispatchEvent(new KeyboardEvent("keyup",{key:" ",bubbles:!0,cancelable:!0})):"change"===a.type&&t.dispatchEvent(new Event("change",{bubbles:!0,cancelable:!0})))}function w(e,t){32===t.keyCode&&(A(e,t),t.preventDefault(),t.target.click())}v.styleTagTransform=b(),v.setAttributes=f(),v.insert=u().bind(null,"head"),v.domAPI=l(),v.insertStyleElement=g(),s()(y.Z,v),y.Z&&y.Z.locals&&y.Z.locals;var k=n(613),E={};E.styleTagTransform=b(),E.setAttributes=f(),E.insert=u().bind(null,"head"),E.domAPI=l(),E.insertStyleElement=g(),s()(k.Z,E),k.Z&&k.Z.locals&&k.Z.locals;const P=function(n,o=document){let a;if("string"==typeof o)o=document.querySelector(o);else if(P.isAPXObject(o))o=o.first();else if(!(o instanceof HTMLElement||o instanceof Document))throw new Error("Invalid context for APX");if("string"==typeof n&&n.startsWith("//")){a=document.evaluate(n,o,null,XPathResult.ANY_TYPE,null);let e=[],t=a.iterateNext();for(;t;)e.push(t),t=a.iterateNext();a=e}else if("string"==typeof n)a=o.querySelectorAll(n);else if(n instanceof HTMLElement)a=o.contains(n)?[n]:[];else if(n instanceof NodeList||n instanceof HTMLCollection)a=Array.from(n).filter((e=>o.contains(e)));else if(Array.isArray(n)&&n.every((e=>e instanceof HTMLElement)))a=n.filter((e=>o.contains(e)));else if("undefined"!=typeof jQuery&&n instanceof jQuery)a=Array.from(n.get()).filter((e=>o.contains(e)));else{if("function"!=typeof n)throw new Error("Invalid input type for APX");a=P(n(),o)}var r={elements:a,_isAPXObject:!0};return r.length=a.length,r.each=function(e){return this.elements instanceof Array&&this.elements.forEach(e),this.elements instanceof NodeList&&Array.from(this.elements).forEach(e),this},r.get=function(e){return this.elements[e]},r.all=function(){return this.elements instanceof Array?this.elements:this.elements instanceof NodeList?Array.from(this.elements):this},r.first=function(){return this.get(0)},function(n){let o=n.elements;n.listen=function(n,a,r){let s,c={};"string"==typeof a?(s=a,c=r||{}):c=a||{};const l=function(){const t=Math.random().toString(36).substr(2,9),n=`${Date.now()}_${t}_${e}`;return e=(e+1)%1e3,n}(),d=c.timeout||0;return Array.isArray(n)||(n=[n]),n.forEach((e=>{o.forEach((t=>{t.addEventListener(e,(e=>{i(e,l,d,s,t)}))}))})),{do:function(e){return t[l]||(t[l]=[]),t[l].push(e),this}}},n.trigger=function(e){let o;if("string"==typeof e)o=e,e=new Event(e,{bubbles:!0,cancelable:!0});else{if(!(e instanceof Event))return void console.error("Invalid event type provided to apx.trigger. It must be either a string or Event object.");o=e.type}n.elements.forEach((t=>{t.dispatchEvent(e)})),Object.keys(t).forEach((n=>{const a=t[n];if(a&&a.eventType===o){const{selector:t}=a;t&&!e.target.matches(t)||i(e,n,0,t,e.target)}}))}}(r),x(r),r};P.loadCss=function(e){return fetch(e).then((e=>e.text())).then((e=>{const t=document.createElement("style");t.type="text/css",t.textContent=e,document.head.appendChild(t)})).catch((e=>{console.error("Failed to load CSS:",e)}))},P.dialog=e=>{const{title:t,content:n,contentURI:o,buttons:a,size:i,showLoadingIndicator:r}={title:"",content:"",contentURI:"",buttons:[],size:"medium",showLoadingIndicator:!1,...e},s=document.createElement("div");s.innerHTML='<div class="APX-dialog"> <div class="APX-dialog-content"> <span class="APX-close-dialog">×</span> <h2 class="APX-dialog-title"></h2> <div class="APX-dialog-dynamic-content"></div> <div class="APX-dialog-button-container"></div> </div> </div>'.trim();const c=s.firstChild,l={},d={};["opening","opened","closing","closed","contentLoading","contentLoaded"].forEach((e=>{d[e]=new Promise((t=>{l[e]=t}))}));const u=e=>{l[e]?l[e]():console.warn(`No resolver found for lifecycle event: ${e}`)},p={element:c,buttons:{},isClosed:!1,lifecycle:d,disableButton:e=>{const t=c.querySelector(`.APX-dialog-button[data-key="${e}"]`);t&&(t.disabled=!0,t.classList.add("APX-dialog-button-disabled"))},enableButton:e=>{const t=c.querySelector(`.APX-dialog-button[data-key="${e}"]`);t&&(t.disabled=!1,t.classList.remove("APX-dialog-button-disabled"))},open:async()=>{try{u("opening"),await p.lifecycle.opening,r&&o?(document.body.appendChild(c),c.style.display="flex",c.querySelector(".APX-dialog-dynamic-content").innerHTML='<div class="APX-dialog-loading-indicator"></div>',await h()):(await h(),document.body.appendChild(c),c.style.display="flex"),u("opened"),await p.lifecycle.opened}catch(e){console.error("Error opening dialog:",e)}return p},close:async()=>{try{u("closing"),await p.lifecycle.closing,f(),u("closed"),await p.lifecycle.closed}catch(e){console.error("Error during dialog closing:",e)}return p}},f=()=>{p.isClosed||(p.isClosed=!0,c.style.display="none",document.body.contains(c)&&document.body.removeChild(c))},h=async()=>{const e=document.body.style.cursor;document.body.style.cursor="wait";const t=c.querySelector(".APX-dialog-dynamic-content");try{u("contentLoading"),await p.lifecycle.contentLoading;const e=o?await g(o):n;t.innerHTML=e,u("contentLoaded"),await p.lifecycle.contentLoaded}catch(e){console.error("Error loading content:",e)}finally{document.body.style.cursor=e}},g=async e=>{const t=await fetch(e);if(!t.ok)throw new Error(`Failed to fetch content: ${t.statusText}`);return t.text()};return(()=>{const e=c.querySelector(".APX-dialog-content");if("auto"===i)return;const t={small:{width:"300px",height:"200px"},medium:{width:"500px",height:"400px"},large:{width:"800px",height:"600px"}}[i]||"object"==typeof i&&i;t&&(e.style.minWidth=t.width||"500px",e.style.minHeight=t.height||"400px")})(),(()=>{const e=c.querySelector(".APX-dialog-button-container");a.forEach((({key:t,label:n,order:o=0,align:a="flex-end",closeOnClick:i=!0})=>{const r=document.createElement("button");r.classList.add("APX-dialog-button"),r.textContent=n,r.style.order=o,r.setAttribute("data-key",t);const s={disable:()=>{r.disabled=!0,r.classList.add("APX-dialog-button-disabled")},enable:()=>{r.disabled=!1,r.classList.remove("APX-dialog-button-disabled")},key:t,element:r};if(i){let e=!1;const n=new Promise((t=>{r.onclick=()=>{e||r.disabled||(e=!0,t({dialog:p,button:s}),p.close())}}));p.buttons[t]=n}else{let e=[];const n={then:t=>("function"==typeof t&&e.push(t),n)};r.onclick=()=>{r.disabled||e.forEach((e=>e({dialog:p,button:s})))},p.buttons[t]=n}e.appendChild(r),e.style.justifyContent=a}))})(),c.querySelector(".APX-dialog-title").textContent=t,c.querySelector(".APX-close-dialog").onclick=p.close,p},P.isAPXObject=function(e){return e&&!0===e._isAPXObject},P.is_numeric=e=>!isNaN(e-parseFloat(e));const L=P})();var a=o.Z;export{a as default};
|
|
1
|
+
var e={613:(e,t,n)=>{n.d(t,{Z:()=>s});var o=n(81),a=n.n(o),i=n(645),r=n.n(i)()(a());r.push([e.id,'/* Dialog styling */\n.APX-dialog {\n display: none;\n position: fixed;\n z-index: 1002;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n overflow: auto;\n background-color: rgba(0, 0, 0, 0.4);\n /* Dimmed background for focus on dialog */\n}\n\n.APX-dialog-content {\n background-color: #fefefe;\n padding: 40px;\n border: none;\n width: auto;\n min-width: 300px;\n max-width: 80%;\n margin: auto;\n border-radius: 8px;\n box-shadow: 0px 6px 20px rgba(0, 0, 0, 0.1);\n font-family: \'Helvetica Neue\', Arial, sans-serif;\n}\n\nh2.APX-dialog-title{\n margin-top:0;\n}\n\n.APX-close-dialog {\n color: #aaa;\n float: right;\n font-size: 24px;\n margin-top: -10px;\n /* Adjust positioning */\n margin-right: -10px;\n}\n\n.APX-close-dialog:hover,\n.APX-close-dialog:focus {\n color: #333;\n /* Darker color on hover/focus */\n cursor: pointer;\n}\n\n/* Input fields styling */\n.APX-dialog-content input[type="text"],\n.APX-dialog-content input[type="number"],\n.APX-dialog-content input[type="date"],\n.APX-dialog-content input[type="datetime-local"] {\n width: 100%;\n padding: 10px;\n margin-bottom: 20px;\n border: 1px solid #ccc;\n border-radius: 4px;\n font-family: \'Helvetica Neue\', Arial, sans-serif;\n font-size: 16px;\n box-sizing: border-box;\n transition: border-color 0.3s;\n}\n\n.APX-dialog-content input[type="text"]:focus,\n.APX-dialog-content input[type="number"]:focus,\n.APX-dialog-content input[type="date"]:focus,\n.APX-dialog-content input[type="datetime-local"]:focus {\n border-color: #2C3E50;\n /* Deep Blue Color */\n outline: none;\n}\n\n/* Button in the dialog */\n.APX-dialog-button-container button {\n position: relative;\n background-color: #2C3E50;\n color: #ECF0F1;\n border: none;\n padding: 10px 20px;\n border-radius: 5px;\n font-size: 16px;\n cursor: pointer;\n transition: all 0.3s ease;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n.APX-dialog-button-container button:hover {\n background-color: #34495E;\n transform: translateY(-1px);\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);\n}\n\n.APX-dialog-button-container {\n display: flex;\n gap: 10px;\n margin-top:1em;\n /* spacing between buttons */\n}\n\n/* Loading indicator */\n.APX-dialog-loading-indicator {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100px;\n width: 100%;\n}\n\n.APX-dialog-loading-indicator::before {\n content: \'\';\n width: 40px;\n height: 40px;\n border: 4px solid #f3f3f3;\n border-top: 4px solid #2C3E50;\n border-radius: 50%;\n animation: APX-dialog-spin 1s linear infinite;\n}\n\n@keyframes APX-dialog-spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n.APX-dialog-button-disabled {\n opacity: 0.5;\n cursor: not-allowed !important;\n background-color: #95a5a6 !important; /* Grayed out color */\n box-shadow: none !important;\n transition: all 0.2s ease;\n transform: none !important;\n}\n\n.APX-dialog-button-disabled:hover {\n background-color: #95a5a6 !important; /* Keep gray on hover */\n transform: none !important;\n}\n\n/* Add a subtle strikethrough effect */\n.APX-dialog-button-disabled::after {\n content: \'\';\n position: absolute;\n top: 50%;\n left: 0;\n width: 100%;\n height: 1px;\n background-color: rgba(0, 0, 0, 0.2);\n transform: rotate(-5deg);\n}',""]);const s=r},570:(e,t,n)=>{n.d(t,{Z:()=>m});var o=n(81),a=n.n(o),i=n(645),r=n.n(i),s=n(667),c=n.n(s),l=new URL(n(29),n.b),d=new URL(n(913),n.b),u=new URL(n(260),n.b),p=r()(a()),f=c()(l),h=c()(d),g=c()(u);p.push([e.id,`.apx-tristate {\n display: inline-block;\n vertical-align: middle;\n text-align: center;\n cursor: pointer;\n position: relative;\n min-width:13px;\n min-height:13px;\n background-size: contain;\n background-color: white;\n border-radius:3px;\n}\n.apx-tristate.unchecked {\n background-image: url(${f});\n}\n.apx-tristate.checked {\n background-image: url(${h});\n background-repeat: no-repeat;\n background-position: center;\n}\n.apx-tristate.crossed {\n background-image: url(${g});\n background-repeat: no-repeat;\n background-position: center;\n}`,""]);const m=p},645:e=>{e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",o=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),o&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),o&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,o,a,i){"string"==typeof e&&(e=[[null,e,void 0]]);var r={};if(o)for(var s=0;s<this.length;s++){var c=this[s][0];null!=c&&(r[c]=!0)}for(var l=0;l<e.length;l++){var d=[].concat(e[l]);o&&r[d[0]]||(void 0!==i&&(void 0===d[5]||(d[1]="@layer".concat(d[5].length>0?" ".concat(d[5]):""," {").concat(d[1],"}")),d[5]=i),n&&(d[2]?(d[1]="@media ".concat(d[2]," {").concat(d[1],"}"),d[2]=n):d[2]=n),a&&(d[4]?(d[1]="@supports (".concat(d[4],") {").concat(d[1],"}"),d[4]=a):d[4]="".concat(a)),t.push(d))}},t}},667:e=>{e.exports=function(e,t){return t||(t={}),e?(e=String(e.__esModule?e.default:e),/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),t.hash&&(e+=t.hash),/["'() \t\n]|(%20)/.test(e)||t.needQuotes?'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):e):e}},81:e=>{e.exports=function(e){return e[1]}},379:e=>{var t=[];function n(e){for(var n=-1,o=0;o<t.length;o++)if(t[o].identifier===e){n=o;break}return n}function o(e,o){for(var i={},r=[],s=0;s<e.length;s++){var c=e[s],l=o.base?c[0]+o.base:c[0],d=i[l]||0,u="".concat(l," ").concat(d);i[l]=d+1;var p=n(u),f={css:c[1],media:c[2],sourceMap:c[3],supports:c[4],layer:c[5]};if(-1!==p)t[p].references++,t[p].updater(f);else{var h=a(f,o);o.byIndex=s,t.splice(s,0,{identifier:u,updater:h,references:1})}r.push(u)}return r}function a(e,t){var n=t.domAPI(t);return n.update(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;n.update(e=t)}else n.remove()}}e.exports=function(e,a){var i=o(e=e||[],a=a||{});return function(e){e=e||[];for(var r=0;r<i.length;r++){var s=n(i[r]);t[s].references--}for(var c=o(e,a),l=0;l<i.length;l++){var d=n(i[l]);0===t[d].references&&(t[d].updater(),t.splice(d,1))}i=c}}},569:e=>{var t={};e.exports=function(e,n){var o=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!o)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");o.appendChild(n)}},216:e=>{e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},565:(e,t,n)=>{e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},795:e=>{e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var o="";n.supports&&(o+="@supports (".concat(n.supports,") {")),n.media&&(o+="@media ".concat(n.media," {"));var a=void 0!==n.layer;a&&(o+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),o+=n.css,a&&(o+="}"),n.media&&(o+="}"),n.supports&&(o+="}");var i=n.sourceMap;i&&"undefined"!=typeof btoa&&(o+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),t.styleTagTransform(o,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},589:e=>{e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},260:e=>{e.exports="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%3Csvg%20viewBox%3D%220%200%2032%2032%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22m0.543%205.647c0-3.119%202.531-5.647%205.65-5.647h19.309c3.12%200%205.65%202.511%205.65%205.647v20.705c0%203.119-2.531%205.647-5.65%205.647h-19.309c-3.12%200-5.65-2.511-5.65-5.647v-20.705z%22%20fill%3D%22%23f00%22%2F%3E%3Cpath%20d%3D%22m8%208%2016%2016%22%20stroke%3D%22%23fff%22%20stroke-width%3D%222%22%2F%3E%3Cpath%20d%3D%22M24%208L8%2024%22%20stroke%3D%22%23fff%22%20stroke-width%3D%222%22%2F%3E%3C%2Fsvg%3E"},29:e=>{e.exports="data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20width%3D%2732%27%20height%3D%2732%27%3E%3Cpath%20%20fill%3D%22%23cccccc%22%20d%3D%22M25.107%2032.030h-18.214c-3.456%200-6.268-2.81-6.268-6.264v-19.529c0-3.456%202.812-6.268%206.268-6.268h18.214c3.456%200%206.268%202.812%206.268%206.268v19.529c0%203.452-2.812%206.264-6.268%206.264zM6.893%201.85c-2.419%200-4.386%201.967-4.386%204.386v19.529c0%202.417%201.967%204.382%204.386%204.382h18.214c2.419%200%204.386-1.965%204.386-4.382v-19.529c0-2.419-1.967-4.386-4.386-4.386h-18.214z%22%3E%3C/path%3E%3C/svg%3E"},913:e=>{e.exports="data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20width%3D%2732%27%20height%3D%2732%27%3E%3Cpath%20fill%3D%22%230654ba%22%20d%3D%22M0.543%205.647c0-3.119%202.531-5.647%205.65-5.647h19.309c3.12%200%205.65%202.511%205.65%205.647v20.705c0%203.119-2.531%205.647-5.65%205.647h-19.309c-3.12%200-5.65-2.511-5.65-5.647v-20.705zM5.313%2017.587l7.039%206.839%2013.831-13.439-2.636-2.561-10.929%2010.62-4.442-4.317-2.862%202.858z%22%3E%3C/path%3E%3C/svg%3E"}},t={};function n(o){var a=t[o];if(void 0!==a)return a.exports;var i=t[o]={id:o,exports:{}};return e[o](i,i.exports,n),i.exports}n.m=e,n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.b=document.baseURI||self.location.href,n.nc=void 0;var o={};(()=>{n.d(o,{Z:()=>L});let e=0;const t={},a={};function i(e,n,o,i="",r){const s=i?function(e,t){for(;e&&1===e.nodeType;){if(e.matches(t))return e;e=e.parentNode}return null}(e.target,i):r;function c(){t[n]&&t[n].reduce(((t,n)=>t.then((()=>new Promise(((t,o)=>{try{const a=n.bind(s)(e);a instanceof Promise?a.then(t).catch(o):t(a)}catch(e){o(e)}}))))),Promise.resolve()).catch((e=>{console.error("Error in callback chain:",e)}))}s&&(clearTimeout(a[n]),0===o?c():a[n]=setTimeout(c,o))}var r=n(379),s=n.n(r),c=n(795),l=n.n(c),d=n(569),u=n.n(d),p=n(565),f=n.n(p),h=n(216),g=n.n(h),m=n(589),b=n.n(m),y=n(570),v={};function x(e){e.tristate=function(t={}){e.elements.forEach((e=>{if("checkbox"===e.type){const[n,o,a]=function(e,t){const n=window.getComputedStyle(e);e.style.display="none";const o=document.createElement("div");o.classList.add("apx-tristate"),t.size&&(t.size.width&&(o.style.width=t.size.width+"px"),t.size.height&&(o.style.height=t.size.height+"px")),t.classes&&o.classList.add(...function(e){let t=[];return"string"==typeof e?t=(e=e.replace(/\s\s+/g," ")).indexOf(" ")>-1?e.split(" "):e.indexOf(",")>-1?e.split(","):[e]:Array.isArray(e)&&(t=e),t}(t.classes)),o.style.margin=n.margin,e.checked?o.classList.add("checked"):o.classList.add("unchecked");const a=document.createElement("input");return a.type="hidden",a.name=e.name,e.dataset.name=e.name,e.removeAttribute("name"),t.defaultState?function(e,t,n){"checked"===e.defaultState?(t.classList.remove("unchecked"),t.classList.add("checked"),n.value="true"):"unchecked"===e.defaultState?(t.classList.remove("checked"),t.classList.add("unchecked"),n.removeAttribute("name"),n.removeAttribute("value")):"crossed"===e.defaultState&&(t.classList.remove("checked"),t.classList.add("crossed"),n.value="false")}(t,o,a):e.checked?a.value="true":(a.name="",a.value=""),o.tabIndex=e.tabIndex,o.appendChild(a),e.parentNode.insertBefore(o,e.nextSibling),o.addEventListener("click",(function(n){!function(e,t,n){e.classList.contains("checked")?(e.classList.remove("checked"),e.classList.add("crossed"),t.checked=!1,n.value="false"):e.classList.contains("crossed")?(e.classList.remove("crossed"),e.classList.add("unchecked"),n.removeAttribute("name"),n.removeAttribute("value")):(e.classList.remove("unchecked"),e.classList.add("checked"),t.checked=!0,n.value="true",n.setAttribute("name",t.dataset.name))}(o,e,a),w(t,e,o,a,n)})),o.addEventListener("keyup",A.bind(null,e)),[e,o,a]}(e,t);t.callbacks&&t.callbacks.after&&"function"==typeof t.callbacks.after&&t.callbacks.after(n,o,a)}}))}}function w(e,t,n,o,a){e.callbacks&&e.callbacks.change&&"function"==typeof e.callbacks.change&&e.callbacks.change(t,n,o),e.bubbleEvents&&("click"===a.type?t.dispatchEvent(new MouseEvent("click",{bubbles:!0,cancelable:!0})):"keyup"===a.type?t.dispatchEvent(new KeyboardEvent("keyup",{key:" ",bubbles:!0,cancelable:!0})):"change"===a.type&&t.dispatchEvent(new Event("change",{bubbles:!0,cancelable:!0})))}function A(e,t){32===t.keyCode&&(w(e,t),t.preventDefault(),t.target.click())}v.styleTagTransform=b(),v.setAttributes=f(),v.insert=u().bind(null,"head"),v.domAPI=l(),v.insertStyleElement=g(),s()(y.Z,v),y.Z&&y.Z.locals&&y.Z.locals;var k=n(613),E={};E.styleTagTransform=b(),E.setAttributes=f(),E.insert=u().bind(null,"head"),E.domAPI=l(),E.insertStyleElement=g(),s()(k.Z,E),k.Z&&k.Z.locals&&k.Z.locals;const P=function(n,o=document){let a;if("string"==typeof o)o=document.querySelector(o);else if(P.isAPXObject(o))o=o.first();else if(!(o instanceof HTMLElement||o instanceof Document))throw new Error("Invalid context for APX");if("string"==typeof n&&n.startsWith("//")){a=document.evaluate(n,o,null,XPathResult.ANY_TYPE,null);let e=[],t=a.iterateNext();for(;t;)e.push(t),t=a.iterateNext();a=e}else if("string"==typeof n)a=o.querySelectorAll(n);else if(n instanceof HTMLElement)a=o.contains(n)?[n]:[];else if(n instanceof NodeList||n instanceof HTMLCollection)a=Array.from(n).filter((e=>o.contains(e)));else if(Array.isArray(n)&&n.every((e=>e instanceof HTMLElement)))a=n.filter((e=>o.contains(e)));else if("undefined"!=typeof jQuery&&n instanceof jQuery)a=Array.from(n.get()).filter((e=>o.contains(e)));else{if("function"!=typeof n)throw new Error("Invalid input type for APX");a=P(n(),o)}var r={elements:a,_isAPXObject:!0};return r.length=a.length,r.each=function(e){return this.elements instanceof Array&&this.elements.forEach(e),this.elements instanceof NodeList&&Array.from(this.elements).forEach(e),this},r.get=function(e){return this.elements[e]},r.all=function(){return this.elements instanceof Array?this.elements:this.elements instanceof NodeList?Array.from(this.elements):this},r.first=function(){return this.get(0)},function(n){let o=n.elements;n.listen=function(n,a,r){let s,c={};"string"==typeof a?(s=a,c=r||{}):c=a||{};const l=function(){const t=Math.random().toString(36).substr(2,9),n=`${Date.now()}_${t}_${e}`;return e=(e+1)%1e3,n}(),d=c.timeout||0;return Array.isArray(n)||(n=[n]),n.forEach((e=>{o.forEach((t=>{t.addEventListener(e,(e=>{i(e,l,d,s,t)}))}))})),{do:function(e){return t[l]||(t[l]=[]),t[l].push(e),this}}},n.trigger=function(e){let o;if("string"==typeof e)o=e,e=new Event(e,{bubbles:!0,cancelable:!0});else{if(!(e instanceof Event))return void console.error("Invalid event type provided to apx.trigger. It must be either a string or Event object.");o=e.type}n.elements.forEach((t=>{t.dispatchEvent(e)})),Object.keys(t).forEach((n=>{const a=t[n];if(a&&a.eventType===o){const{selector:t}=a;t&&!e.target.matches(t)||i(e,n,0,t,e.target)}}))}}(r),x(r),r};P.loadCss=function(e){return fetch(e).then((e=>e.text())).then((e=>{const t=document.createElement("style");t.type="text/css",t.textContent=e,document.head.appendChild(t)})).catch((e=>{console.error("Failed to load CSS:",e)}))},P.dialog=e=>{const{title:t,content:n,contentURI:o,buttons:a,size:i,showLoadingIndicator:r,contentMethod:s,contentData:c,contentHeaders:l}={title:"",content:"",contentURI:"",buttons:[],size:"medium",showLoadingIndicator:!1,contentMethod:"GET",contentData:null,contentHeaders:void 0,...e},d=document.createElement("div");d.innerHTML='<div class="APX-dialog"> <div class="APX-dialog-content"> <span class="APX-close-dialog">×</span> <h2 class="APX-dialog-title"></h2> <div class="APX-dialog-dynamic-content"></div> <div class="APX-dialog-button-container"></div> </div> </div>'.trim();const u=d.firstChild,p={},f={};["opening","opened","closing","closed","contentLoading","contentLoaded"].forEach((e=>{f[e]=new Promise((t=>{p[e]=t}))}));const h=e=>{p[e]?p[e]():console.warn(`No resolver found for lifecycle event: ${e}`)},g={element:u,buttons:{},isClosed:!1,lifecycle:f,disableButton:e=>{const t=u.querySelector(`.APX-dialog-button[data-key="${e}"]`);t&&(t.disabled=!0,t.classList.add("APX-dialog-button-disabled"))},enableButton:e=>{const t=u.querySelector(`.APX-dialog-button[data-key="${e}"]`);t&&(t.disabled=!1,t.classList.remove("APX-dialog-button-disabled"))},open:async()=>{try{h("opening"),await g.lifecycle.opening,r&&o?(document.body.appendChild(u),u.style.display="flex",u.querySelector(".APX-dialog-dynamic-content").innerHTML='<div class="APX-dialog-loading-indicator"></div>',await b()):(await b(),document.body.appendChild(u),u.style.display="flex"),h("opened"),await g.lifecycle.opened}catch(e){console.error("Error opening dialog:",e)}return g},close:async()=>{try{h("closing"),await g.lifecycle.closing,m(),h("closed"),await g.lifecycle.closed}catch(e){console.error("Error during dialog closing:",e)}return g}},m=()=>{g.isClosed||(g.isClosed=!0,u.style.display="none",document.body.contains(u)&&document.body.removeChild(u))},b=async()=>{const e=document.body.style.cursor;document.body.style.cursor="wait";const t=u.querySelector(".APX-dialog-dynamic-content");try{h("contentLoading"),await g.lifecycle.contentLoading;const e=o?await y(o):n;t.innerHTML=e,h("contentLoaded"),await g.lifecycle.contentLoaded}catch(e){console.error("Error loading content:",e)}finally{document.body.style.cursor=e}},y=async e=>{const t=(s||"GET").toUpperCase(),n={...l||{}},o=Object.keys(n).some((e=>"content-type"===e.toLowerCase())),a={method:t};if("POST"===t){let e;const t="undefined"!=typeof FormData&&c instanceof FormData,i="undefined"!=typeof URLSearchParams&&c instanceof URLSearchParams,r="undefined"!=typeof Blob&&c instanceof Blob,s="string"==typeof c,l=c&&"object"==typeof c&&!t&&!i&&!r;t?e=c:i?(e=c,o||(n["Content-Type"]="application/x-www-form-urlencoded;charset=UTF-8")):l?(e=JSON.stringify(c),o||(n["Content-Type"]="application/json")):(s||r||null!=c)&&(e=c),void 0!==e&&(a.body=e)}Object.keys(n).length>0&&(a.headers=n);const i=await fetch(e,a);if(!i.ok)throw new Error(`Failed to fetch content: ${i.statusText}`);return i.text()};return(()=>{const e=u.querySelector(".APX-dialog-content");if("auto"===i)return;const t={small:{width:"300px",height:"200px"},medium:{width:"500px",height:"400px"},large:{width:"800px",height:"600px"}}[i]||"object"==typeof i&&i;t&&(e.style.minWidth=t.width||"500px",e.style.minHeight=t.height||"400px")})(),(()=>{const e=u.querySelector(".APX-dialog-button-container");a.forEach((({key:t,label:n,order:o=0,align:a="flex-end",closeOnClick:i=!0})=>{const r=document.createElement("button");r.classList.add("APX-dialog-button"),r.textContent=n,r.style.order=o,r.setAttribute("data-key",t);const s={disable:()=>{r.disabled=!0,r.classList.add("APX-dialog-button-disabled")},enable:()=>{r.disabled=!1,r.classList.remove("APX-dialog-button-disabled")},key:t,element:r};if(i){let e=!1;const n=new Promise((t=>{r.onclick=()=>{e||r.disabled||(e=!0,t({dialog:g,button:s}),g.close())}}));g.buttons[t]=n}else{let e=[];const n={then:t=>("function"==typeof t&&e.push(t),n)};r.onclick=()=>{r.disabled||e.forEach((e=>e({dialog:g,button:s})))},g.buttons[t]=n}e.appendChild(r),e.style.justifyContent=a}))})(),u.querySelector(".APX-dialog-title").textContent=t,u.querySelector(".APX-close-dialog").onclick=g.close,g},P.isAPXObject=function(e){return e&&!0===e._isAPXObject},P.is_numeric=e=>!isNaN(e-parseFloat(e));const L=P})();var a=o.Z;export{a as default};
|
package/modules/dialog/README.md
CHANGED
|
@@ -36,6 +36,27 @@ myDialog.buttons.cancel.then(() => {
|
|
|
36
36
|
myDialog.open();
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
+
### POST Content Fetch (since 2.4.0)
|
|
40
|
+
|
|
41
|
+
You can fetch dialog content via POST with optional payload and headers:
|
|
42
|
+
|
|
43
|
+
```javascript
|
|
44
|
+
const postDialog = APX.dialog({
|
|
45
|
+
title: 'Submit and Load',
|
|
46
|
+
contentURI: '/api/dialog/content',
|
|
47
|
+
contentMethod: 'POST',
|
|
48
|
+
contentData: { foo: 'bar' }, // also supports FormData, URLSearchParams, string, Blob
|
|
49
|
+
contentHeaders: { 'X-Request-ID': '123' },
|
|
50
|
+
buttons: [
|
|
51
|
+
{ key: 'ok', label: 'OK', closeOnClick: true },
|
|
52
|
+
{ key: 'cancel', label: 'Cancel', closeOnClick: true }
|
|
53
|
+
],
|
|
54
|
+
size: 'medium'
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
postDialog.open();
|
|
58
|
+
```
|
|
59
|
+
|
|
39
60
|
### Daisy-Chaining
|
|
40
61
|
|
|
41
62
|
While you can daisy-chain the `open()` method directly after creating the dialog, it is generally more intuitive to define button actions before opening the dialog. Here's an example of daisy-chaining:
|
|
@@ -82,6 +103,9 @@ myDialog.open();
|
|
|
82
103
|
|
|
83
104
|
- **`title`** (String): The title displayed at the top of the dialog.
|
|
84
105
|
- **`contentURI`** (String): A URL to load content into the dialog dynamically.
|
|
106
|
+
- **`contentMethod`** (String, Optional, since 2.4.0): HTTP method for fetching `contentURI`. Defaults to `'GET'`. Supports `'POST'` and other methods (string is passed through).
|
|
107
|
+
- **`contentData`** (Any, Optional, since 2.4.0): Payload sent when `contentMethod` is `'POST'` (or other methods with a body). Supports `FormData`, `URLSearchParams`, plain objects (auto-JSON), `string`, and `Blob`.
|
|
108
|
+
- **`contentHeaders`** (Object, Optional, since 2.4.0): Additional headers for the fetch. If you provide `Content-Type`, it will override the auto-detected one.
|
|
85
109
|
- **`content`** (String): Inline HTML content to render directly inside the dialog (overrides `contentURI` if both are provided).
|
|
86
110
|
- **`buttons`** (Array): An array of button configurations.
|
|
87
111
|
- **`key`** (String): A unique key to identify the button.
|
|
@@ -9,10 +9,13 @@ const createDialog = (options) => {
|
|
|
9
9
|
contentURI: '',
|
|
10
10
|
buttons: [],
|
|
11
11
|
size: 'medium',
|
|
12
|
-
showLoadingIndicator: false
|
|
12
|
+
showLoadingIndicator: false,
|
|
13
|
+
contentMethod: 'GET',
|
|
14
|
+
contentData: null,
|
|
15
|
+
contentHeaders: undefined
|
|
13
16
|
};
|
|
14
17
|
|
|
15
|
-
const { title, content, contentURI, buttons, size, showLoadingIndicator } = { ...dialogDefaults, ...options };
|
|
18
|
+
const { title, content, contentURI, buttons, size, showLoadingIndicator, contentMethod, contentData, contentHeaders } = { ...dialogDefaults, ...options };
|
|
16
19
|
|
|
17
20
|
const wrapper = document.createElement('div');
|
|
18
21
|
wrapper.innerHTML = dialogTemplate.trim();
|
|
@@ -224,7 +227,55 @@ const createDialog = (options) => {
|
|
|
224
227
|
};
|
|
225
228
|
|
|
226
229
|
const fetchContent = async (uri) => {
|
|
227
|
-
const
|
|
230
|
+
const method = (contentMethod || 'GET').toUpperCase();
|
|
231
|
+
|
|
232
|
+
// Always allow custom headers; we only add Content-Type when we can infer it
|
|
233
|
+
const headers = { ...(contentHeaders || {}) };
|
|
234
|
+
const hasContentType = Object.keys(headers).some((k) => k.toLowerCase() === 'content-type');
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* Build RequestInit depending on method and contentData type.
|
|
238
|
+
* We avoid setting Content-Type for FormData and raw string/Blob payloads,
|
|
239
|
+
* unless the caller explicitly provided it via contentHeaders.
|
|
240
|
+
*/
|
|
241
|
+
const init = { method };
|
|
242
|
+
|
|
243
|
+
if (method === 'POST') {
|
|
244
|
+
let body = undefined;
|
|
245
|
+
|
|
246
|
+
const isFormData = typeof FormData !== 'undefined' && contentData instanceof FormData;
|
|
247
|
+
const isURLSearchParams = typeof URLSearchParams !== 'undefined' && contentData instanceof URLSearchParams;
|
|
248
|
+
const isBlob = typeof Blob !== 'undefined' && contentData instanceof Blob;
|
|
249
|
+
const isString = typeof contentData === 'string';
|
|
250
|
+
const isPlainObject = contentData && typeof contentData === 'object' && !isFormData && !isURLSearchParams && !isBlob;
|
|
251
|
+
|
|
252
|
+
if (isFormData) {
|
|
253
|
+
body = contentData;
|
|
254
|
+
// Do not set Content-Type for FormData; browser will set the boundary
|
|
255
|
+
} else if (isURLSearchParams) {
|
|
256
|
+
body = contentData;
|
|
257
|
+
if (!hasContentType) headers['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';
|
|
258
|
+
} else if (isPlainObject) {
|
|
259
|
+
body = JSON.stringify(contentData);
|
|
260
|
+
if (!hasContentType) headers['Content-Type'] = 'application/json';
|
|
261
|
+
} else if (isString || isBlob) {
|
|
262
|
+
body = contentData;
|
|
263
|
+
// Content-Type left to caller if needed
|
|
264
|
+
} else if (contentData != null) {
|
|
265
|
+
// Fallback: try send as-is
|
|
266
|
+
body = contentData;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
if (body !== undefined) {
|
|
270
|
+
init.body = body;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
if (Object.keys(headers).length > 0) {
|
|
275
|
+
init.headers = headers;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
const response = await fetch(uri, init);
|
|
228
279
|
if (!response.ok) throw new Error(`Failed to fetch content: ${response.statusText}`);
|
|
229
280
|
return response.text();
|
|
230
281
|
};
|