@gipisistemas/ng-core 1.1.4 → 1.1.5
Sign up to get free protection for your applications and to get access to all the features.
- package/bundles/gipisistemas-ng-core.umd.js +297 -7
- package/bundles/gipisistemas-ng-core.umd.js.map +1 -1
- package/bundles/gipisistemas-ng-core.umd.min.js +7 -7
- package/bundles/gipisistemas-ng-core.umd.min.js.map +1 -1
- package/core/utils/string.util.d.ts +4 -0
- package/esm2015/core/utils/string.util.js +27 -1
- package/esm2015/gipi-components.js +2 -1
- package/esm2015/shared/components/select-entity-paged/shared/select-search/select-search.component.js +2 -2
- package/esm2015/shared/gipi-components/button/button.component.js +18 -2
- package/esm2015/shared/gipi-components/input-select-paged/input-search/input-search.component.js +2 -2
- package/esm2015/shared/gipi-components/popover/shared/popover-trigger.js +4 -4
- package/esm2015/shared/gipi-components/split-button/split-button.component.js +243 -0
- package/esm2015/shared/shared.module.js +3 -1
- package/esm5/core/utils/string.util.js +27 -1
- package/esm5/gipi-components.js +2 -1
- package/esm5/shared/components/select-entity-paged/shared/select-search/select-search.component.js +2 -2
- package/esm5/shared/gipi-components/button/button.component.js +22 -2
- package/esm5/shared/gipi-components/input-select-paged/input-search/input-search.component.js +2 -2
- package/esm5/shared/gipi-components/popover/shared/popover-trigger.js +4 -4
- package/esm5/shared/gipi-components/split-button/split-button.component.js +249 -0
- package/esm5/shared/shared.module.js +3 -1
- package/fesm2015/gipisistemas-ng-core.js +288 -9
- package/fesm2015/gipisistemas-ng-core.js.map +1 -1
- package/fesm5/gipisistemas-ng-core.js +297 -8
- package/fesm5/gipisistemas-ng-core.js.map +1 -1
- package/gipi-components.d.ts +1 -0
- package/gipisistemas-ng-core.metadata.json +1 -1
- package/package.json +1 -1
- package/shared/gipi-components/button/button.component.d.ts +14 -0
- package/shared/gipi-components/split-button/split-button.component.d.ts +60 -0
@@ -6,4 +6,8 @@ export declare class StringUtil {
|
|
6
6
|
static isEmpty(value: string): boolean;
|
7
7
|
static format(value: string, mask: string): string;
|
8
8
|
static truncateWithEllipses(text: string, max: number): '' | '...';
|
9
|
+
/** Codifica a string em Base64 */
|
10
|
+
static encodeBase64(input: string): string;
|
11
|
+
/** Decodifica a string Base64 */
|
12
|
+
static decodeBase64(input: string): string;
|
9
13
|
}
|
@@ -35,6 +35,32 @@ export class StringUtil {
|
|
35
35
|
static truncateWithEllipses(text, max) {
|
36
36
|
return text.trim().substring(0, max - 1) + (text.trim().length > max) ? '...' : '';
|
37
37
|
}
|
38
|
+
/** Codifica a string em Base64 */
|
39
|
+
static encodeBase64(input) {
|
40
|
+
if (this.isEmpty(input)) {
|
41
|
+
return '';
|
42
|
+
}
|
43
|
+
const utf8Encoder = new TextEncoder();
|
44
|
+
const utf8Bytes = utf8Encoder.encode(input);
|
45
|
+
let binary = '';
|
46
|
+
utf8Bytes.forEach((byte) => {
|
47
|
+
binary += String.fromCharCode(byte);
|
48
|
+
});
|
49
|
+
return btoa(binary);
|
50
|
+
}
|
51
|
+
/** Decodifica a string Base64 */
|
52
|
+
static decodeBase64(input) {
|
53
|
+
if (this.isEmpty(input)) {
|
54
|
+
return '';
|
55
|
+
}
|
56
|
+
const binary = atob(input);
|
57
|
+
const utf8Decoder = new TextDecoder();
|
58
|
+
const utf8Bytes = new Uint8Array(binary.length);
|
59
|
+
for (let i = 0; i < binary.length; i++) {
|
60
|
+
utf8Bytes[i] = binary.charCodeAt(i);
|
61
|
+
}
|
62
|
+
return utf8Decoder.decode(utf8Bytes);
|
63
|
+
}
|
38
64
|
}
|
39
65
|
StringUtil.EMPTY = '';
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLnV0aWwuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ2lwaXNpc3RlbWFzL25nLWNvcmUvIiwic291cmNlcyI6WyJjb3JlL3V0aWxzL3N0cmluZy51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsZUFBZTtBQUNmLE1BQU0sT0FBTyxVQUFVO0lBSVosTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFhO1FBQ3RDLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVNLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBYTtRQUNyQyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQWE7UUFDL0IsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFTSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQWEsRUFBRSxJQUFZO1FBQzVDLElBQUksU0FBUyxHQUFXLEtBQUssQ0FBQztRQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN0QixTQUFTLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDeEM7UUFFRCxNQUFNLEdBQUcsR0FBVyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sU0FBUyxHQUFXLFNBQVMsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVoRixJQUFJLFlBQVksR0FBVyxDQUFDLENBQUM7UUFDN0IsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNmLEtBQUssSUFBSSxDQUFDLEdBQVcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDakMsU0FBUyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDL0I7aUJBQU07Z0JBQ0gsU0FBUyxJQUFJLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO2FBQzFDO1NBQ0o7UUFFRCxJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDN0IsU0FBUyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUM5RDtRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFTSxNQUFNLENBQUMsb0JBQW9CLENBQUMsSUFBWSxFQUFFLEdBQVc7UUFDeEQsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN2RixDQUFDO0lBRUQsa0NBQWtDO0lBQzNCLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBYTtRQUNwQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDckIsT0FBTyxFQUFFLENBQUM7U0FDYjtRQUVELE1BQU0sV0FBVyxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ25ELE1BQU0sU0FBUyxHQUFlLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFeEQsSUFBSSxNQUFNLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN2QixNQUFNLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxpQ0FBaUM7SUFDMUIsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFhO1FBQ3BDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNyQixPQUFPLEVBQUUsQ0FBQztTQUNiO1FBRUQsTUFBTSxNQUFNLEdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLE1BQU0sV0FBVyxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ25ELE1BQU0sU0FBUyxHQUFlLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNwQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN2QztRQUVELE9BQU8sV0FBVyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN6QyxDQUFDOztBQTNFYSxnQkFBSyxHQUFXLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9iamVjdFV0aWwgfSBmcm9tICcuL29iamVjdC51dGlsJztcblxuLyoqIEBkeW5hbWljICovXG5leHBvcnQgY2xhc3MgU3RyaW5nVXRpbCB7XG5cbiAgICBwdWJsaWMgc3RhdGljIEVNUFRZOiBzdHJpbmcgPSAnJztcblxuICAgIHB1YmxpYyBzdGF0aWMgcmVwbGFjZUFjY2VudHModmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB2YWx1ZS5ub3JtYWxpemUoJ05GRCcpLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csICcnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHJlbW92ZUFjY2VudHModmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKC9bXlxcd1xcc10vZ2ksICcnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGlzRW1wdHkodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gT2JqZWN0VXRpbC5pc051bGwodmFsdWUpIHx8IHZhbHVlLmxlbmd0aCA9PT0gMDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZvcm1hdCh2YWx1ZTogc3RyaW5nLCBtYXNrOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBsZXQgZm9ybWF0dGVkOiBzdHJpbmcgPSB2YWx1ZTtcbiAgICAgICAgaWYgKCF2YWx1ZS5pbmNsdWRlcygnKicpKSB7XG4gICAgICAgICAgICBmb3JtYXR0ZWQgPSB2YWx1ZS5yZXBsYWNlKC9cXEQvZywgJycpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFkOiBzdHJpbmcgPSBtYXNrLnJlcGxhY2UoL1xcRC9nLCAnJykucmVwbGFjZSgvOS9nLCAnXycpO1xuICAgICAgICBjb25zdCB2YWx1ZU1hc2s6IHN0cmluZyA9IGZvcm1hdHRlZCArIHBhZC5zdWJzdHJpbmcoMCwgcGFkLmxlbmd0aCAtIHBhZC5sZW5ndGgpO1xuXG4gICAgICAgIGxldCB2YWxvck1hc2tQb3M6IG51bWJlciA9IDA7XG4gICAgICAgIGZvcm1hdHRlZCA9ICcnO1xuICAgICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgbWFzay5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGlzTmFOKHBhcnNlSW50KG1hc2suY2hhckF0KGkpKSkpIHtcbiAgICAgICAgICAgICAgICBmb3JtYXR0ZWQgKz0gbWFzay5jaGFyQXQoaSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGZvcm1hdHRlZCArPSB2YWx1ZU1hc2tbdmFsb3JNYXNrUG9zKytdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZvcm1hdHRlZC5pbmRleE9mKCdfJykgPiAtMSkge1xuICAgICAgICAgICAgZm9ybWF0dGVkID0gZm9ybWF0dGVkLnN1YnN0cmluZygwLCBmb3JtYXR0ZWQuaW5kZXhPZignXycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmb3JtYXR0ZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyB0cnVuY2F0ZVdpdGhFbGxpcHNlcyh0ZXh0OiBzdHJpbmcsIG1heDogbnVtYmVyKTogJycgfCAnLi4uJyB7XG4gICAgICAgIHJldHVybiB0ZXh0LnRyaW0oKS5zdWJzdHJpbmcoMCwgbWF4IC0gMSkgKyAodGV4dC50cmltKCkubGVuZ3RoID4gbWF4KSA/ICcuLi4nIDogJyc7XG4gICAgfVxuXG4gICAgLyoqIENvZGlmaWNhIGEgc3RyaW5nIGVtIEJhc2U2NCAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZW5jb2RlQmFzZTY0KGlucHV0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy5pc0VtcHR5KGlucHV0KSkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdXRmOEVuY29kZXI6IFRleHRFbmNvZGVyID0gbmV3IFRleHRFbmNvZGVyKCk7XG4gICAgICAgIGNvbnN0IHV0ZjhCeXRlczogVWludDhBcnJheSA9IHV0ZjhFbmNvZGVyLmVuY29kZShpbnB1dCk7XG5cbiAgICAgICAgbGV0IGJpbmFyeTogc3RyaW5nID0gJyc7XG4gICAgICAgIHV0ZjhCeXRlcy5mb3JFYWNoKChieXRlKSA9PiB7XG4gICAgICAgICAgICBiaW5hcnkgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShieXRlKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGJ0b2EoYmluYXJ5KTtcbiAgICB9XG5cbiAgICAvKiogRGVjb2RpZmljYSBhIHN0cmluZyBCYXNlNjQgKi9cbiAgICBwdWJsaWMgc3RhdGljIGRlY29kZUJhc2U2NChpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuaXNFbXB0eShpbnB1dCkpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGJpbmFyeTogc3RyaW5nID0gYXRvYihpbnB1dCk7XG4gICAgICAgIGNvbnN0IHV0ZjhEZWNvZGVyOiBUZXh0RGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcigpO1xuICAgICAgICBjb25zdCB1dGY4Qnl0ZXM6IFVpbnQ4QXJyYXkgPSBuZXcgVWludDhBcnJheShiaW5hcnkubGVuZ3RoKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBiaW5hcnkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHV0ZjhCeXRlc1tpXSA9IGJpbmFyeS5jaGFyQ29kZUF0KGkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHV0ZjhEZWNvZGVyLmRlY29kZSh1dGY4Qnl0ZXMpO1xuICAgIH1cblxufVxuIl19
|
@@ -46,6 +46,7 @@ export * from './shared/gipi-components/select/select.component';
|
|
46
46
|
export * from './shared/gipi-components/sidebar/container/container.component';
|
47
47
|
export * from './shared/gipi-components/sidebar/sidenav/sidenav.component';
|
48
48
|
export * from './shared/gipi-components/slide-toggle/slide-toggle.component';
|
49
|
+
export * from './shared/gipi-components/split-button/split-button.component';
|
49
50
|
export * from './shared/gipi-components/stepper/stepper.component';
|
50
51
|
export * from './shared/gipi-components/template/template.directive';
|
51
52
|
export * from './shared/gipi-components/textarea/textarea.component';
|
@@ -111,4 +112,4 @@ export * from './shared/gipi-components/datepicker/date-range-picker/shared/pres
|
|
111
112
|
export * from './shared/gipi-components/month-year-picker/calendar-month-year/calendar-month-year.component';
|
112
113
|
export * from './shared/gipi-components/month-year-picker/mont-year-picker.module';
|
113
114
|
export * from './shared/gipi-components/month-year-picker/month-year-picker.component';
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lwaS1jb21wb25lbnRzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdpcGlzaXN0ZW1hcy9uZy1jb3JlLyIsInNvdXJjZXMiOlsiZ2lwaS1jb21wb25lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDRFQUE0RSxDQUFDO0FBQzNGLGNBQWMsK0RBQStELENBQUM7QUFDOUUsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyxvRUFBb0UsQ0FBQztBQUNuRixjQUFjLDBFQUEwRSxDQUFDO0FBQ3pGLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyxrRUFBa0UsQ0FBQztBQUNqRixjQUFjLGtFQUFrRSxDQUFDO0FBQ2pGLGNBQWMsd0VBQXdFLENBQUM7QUFDdkYsY0FBYyx3RUFBd0UsQ0FBQztBQUN2RixjQUFjLDhFQUE4RSxDQUFDO0FBQzdGLGNBQWMsaUZBQWlGLENBQUM7QUFDaEcsY0FBYywwRUFBMEUsQ0FBQztBQUN6RixjQUFjLDBFQUEwRSxDQUFDO0FBQ3pGLGNBQWMsOERBQThELENBQUM7QUFDN0UsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsa0VBQWtFLENBQUM7QUFDakYsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLHlEQUF5RCxDQUFDO0FB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R0FBbUc7QUFDbkcsMEdBQTBHO0FBQzFHLDBHQUEwRztBQUMxRyw0RkFBNEY7QUFFNUYsY0FBYyxtRkFBbUYsQ0FBQztBQUNsRyxjQUFjLHFHQUFxRyxDQUFDO0FBQ3BILGNBQWMsNEZBQTRGLENBQUM7QUFDM0csY0FBYyxrR0FBa0csQ0FBQztBQUVqSCxjQUFjLDhGQUE4RixDQUFDO0FBQzdHLGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyx3RUFBd0UsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9hYnN0cmFjdC1mb3JtL2Fic3RyYWN0LWZvcm0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9hY3Rpb24tcm93L2FjdGlvbi1yb3cuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9iYWRnZS9iYWRnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9jYXJkL2NhcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9kb20vY29ubmVjdGVkLW92ZXJsYXktc2Nyb2xsLWhhbmRsZXInO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2RvbS9kb20taGFuZGxlcic7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvZHJvcGRvd24tbWVudS9kcm9wZG93bi1tZW51LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9leHBhbnNpb24tcGFuZWwvZXhwYW5zaW9uLXBhbmVsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvZmlsZS1kcmFnLWFuZC1kcm9wL2ZpbGUtZHJhZy1hbmQtZHJvcC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9oZWxwZnVsLXRpcC9oZWxwZnVsLXRpcC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2luZmluaXRlLXNjcm9sbC9pbmZpbml0ZS1zY3JvbGwuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9pbnB1dC1jaGVja2JveC9pbnB1dC1jaGVja2JveC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2lucHV0LWN1cnJlbmN5L2lucHV0LWN1cnJlbmN5LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvaW5wdXQtbW9udGhwaWNrZXIvaW5wdXQtbW9udGhwaWNrZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9pbnB1dC1zZWxlY3QtZW51bS9pbnB1dC1zZWxlY3QtZW51bS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2lucHV0LXNlbGVjdC1saXN0Ym94L2lucHV0LXNlbGVjdC1saXN0Ym94LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvaW5wdXQtc2VsZWN0LXBhZ2VkL2lucHV0LXNlYXJjaC9pbnB1dC1zZWFyY2guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9pbnB1dC1zZWxlY3QtcGFnZWQvaW5wdXQtc2VsZWN0LXBhZ2VkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvaW5wdXQtc2VsZWN0LXJhZGlvL2lucHV0LXNlbGVjdC1yYWRpby5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2lucHV0LXNlbGVjdC9pbnB1dC1zZWxlY3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9sYXlvdXQtZ3JpZC9jb2wuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9sYXlvdXQtZ3JpZC9yb3cuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9sYXlvdXQtZ3JpZC9zZXJ2aWNlcy9icmVha3BvaW50LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2xheW91dC1ncmlkL3NlcnZpY2VzL3Jlc2l6ZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvbm92ZWx0aWVzL25vdmVsdGllcy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL292ZXJsYXkvb3ZlcmxheS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL292ZXJsYXkvc2hhcmVkL292ZXJsYXktc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvb3ZlcmxheS9zaGFyZWQvb3ZlcmxheV9vcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9wYXNzd29yZC1yZXF1ZXJpbWVudHMvcGFzc3dvcmQtcmVxdWVyaW1lbnRzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvcG9wb3Zlci9zaGFyZWQvcG9wb3Zlci1hbmltYXRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9wb3BvdmVyL3NoYXJlZC9wb3BvdmVyLWludGVyZmFjZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL3BvcG92ZXIvc2hhcmVkL3BvcG92ZXItdGFyZ2V0JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9wb3BvdmVyL3NoYXJlZC9wb3BvdmVyLXRyaWdnZXInO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL3JhZGlvLWdyb3VwL3JhZGlvLWdyb3VwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvcmFuZ2UtcGFnZS9yYW5nZS1wYWdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvcmFuZ2Utc2xpZGVyL3JhbmdlLXNsaWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL3NlbGVjdC1idXR0b24vc2VsZWN0LWJ1dHRvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9zaWRlYmFyL2NvbnRhaW5lci9jb250YWluZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9zaWRlYmFyL3NpZGVuYXYvc2lkZW5hdi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL3NsaWRlLXRvZ2dsZS9zbGlkZS10b2dnbGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9zdGVwcGVyL3N0ZXBwZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy90ZW1wbGF0ZS90ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL3RleHRhcmVhL3RleHRhcmVhLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvdG9vbGJhci90b29sYmFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvdG9wLW5hdi90b3AtbmF2LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvdXNlci1wcm9maWxlL3VzZXItcHJvZmlsZS5jb21wb25lbnQnO1xuXG4vLyBUYWJzXG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvdGFicy9zaGFyZWQvZHluYW1pYy10YWIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy90YWJzL3NoYXJlZC90YWIubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL3RhYnMvdGFiLWdyb3VwL3RhYi1ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL3RhYnMvdGFiL3RhYi5jb21wb25lbnQnO1xuXG4vLyBUYWJsZVxuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtYm9keS90YWJsZS1ib2R5LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvdGFibGUvY29tcG9uZW50cy90YWJsZS1mb290ZXIvdGFibGUtZm9vdGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvdGFibGUvY29tcG9uZW50cy90YWJsZS1oZWFkZXIvdGFibGUtaGVhZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvdGFibGUvY29tcG9uZW50cy90YWJsZS1wYWdpbmF0aW9uL3NoYXJlZC9wYWdpbmF0ZS5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy90YWJsZS9jb21wb25lbnRzL3RhYmxlLXBhZ2luYXRpb24vc2hhcmVkL3BhZ2luYXRpb24tY29udHJvbHMuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy90YWJsZS9jb21wb25lbnRzL3RhYmxlLXBhZ2luYXRpb24vc2hhcmVkL3BhZ2luYXRpb24taW5zdGFuY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtcGFnaW5hdGlvbi9zaGFyZWQvcGFnaW5hdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy90YWJsZS9jb21wb25lbnRzL3RhYmxlLXBhZ2luYXRpb24vdGFibGUtcGFnaW5hdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtcHJvZ3Jlc3MtYmFyL3RhYmxlLXByb2dyZXNzLWJhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL3RhYmxlL21vZGVscy9waXBlLXRyYW5zZm9ybS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvdGFibGUvbW9kZWxzL3NvcnQubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL3RhYmxlL21vZGVscy9zb3J0ZWQtY29sdW1uLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy90YWJsZS9tb2RlbHMvdGFibGUtY29sdW1uLWJ1aWxkZXIubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL3RhYmxlL21vZGVscy90YWJsZS1jb2x1bW4ubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvdGFibGUvdHlwZXMvc29ydC1kaXJlY3Rpb24udHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvdGFibGUvdHlwZXMvc29ydC50eXBlJztcblxuLy8gRGF0ZXBpY2tlclxuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2RhdGVwaWNrZXIvbWF0LWRhdGVwaWNrZXIvc2hhcmVkL2FkYXB0ZXIvZGF0ZS1hZGFwdGVyJztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9kYXRlcGlja2VyL21hdC1kYXRlcGlja2VyL3NoYXJlZC9hZGFwdGVyL2RhdGUtZm9ybWF0cyc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9tYXQtZGF0ZXBpY2tlci9zaGFyZWQvYWRhcHRlci9uYXRpdmUtZGF0ZS1hZGFwdGVyJztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9kYXRlcGlja2VyL21hdC1kYXRlcGlja2VyL3NoYXJlZC9hZGFwdGVyL25hdGl2ZS1kYXRlLWZvcm1hdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2RhdGVwaWNrZXIvbWF0LWRhdGVwaWNrZXIvc2hhcmVkL2FkYXB0ZXIvcGxhdGZvcm0nO1xuXG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9kYXRlcGlja2VyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9tYXQtZGF0ZXBpY2tlci9jYWxlbmRhcic7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9tYXQtZGF0ZXBpY2tlci9jYWxlbmRhci1ib2R5JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9kYXRlcGlja2VyL21hdC1kYXRlcGlja2VyL2RhdGUtcmFuZ2UtaW5wdXQnO1xuZXhwb3J0IHsgTWF0RW5kRGF0ZSwgTWF0U3RhcnREYXRlIH0gZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2RhdGVwaWNrZXIvbWF0LWRhdGVwaWNrZXIvZGF0ZS1yYW5nZS1pbnB1dC1wYXJ0cyc7XG5leHBvcnQgeyBNYXREYXRlUmFuZ2VQaWNrZXIgfSBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9tYXQtZGF0ZXBpY2tlci9kYXRlLXJhbmdlLXBpY2tlcic7XG5leHBvcnQgeyBEZWZhdWx0TWF0Q2FsZW5kYXJSYW5nZVN0cmF0ZWd5LCBNQVRfREFURV9SQU5HRV9TRUxFQ1RJT05fU1RSQVRFR1ksIE1hdERhdGVSYW5nZVNlbGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2RhdGVwaWNrZXIvbWF0LWRhdGVwaWNrZXIvZGF0ZS1yYW5nZS1zZWxlY3Rpb24tc3RyYXRlZ3knO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2RhdGVwaWNrZXIvbWF0LWRhdGVwaWNrZXIvZGF0ZS1zZWxlY3Rpb24tbW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2RhdGVwaWNrZXIvbWF0LWRhdGVwaWNrZXIvZGF0ZXBpY2tlcic7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9tYXQtZGF0ZXBpY2tlci9kYXRlcGlja2VyLWFuaW1hdGlvbnMnO1xuZXhwb3J0IHsgRGF0ZXBpY2tlckRyb3Bkb3duUG9zaXRpb25YLCBEYXRlcGlja2VyRHJvcGRvd25Qb3NpdGlvblksIE1BVF9EQVRFUElDS0VSX1NDUk9MTF9TVFJBVEVHWSwgTUFUX0RBVEVQSUNLRVJfU0NST0xMX1NUUkFURUdZX0ZBQ1RPUlksIE1BVF9EQVRFUElDS0VSX1NDUk9MTF9TVFJBVEVHWV9GQUNUT1JZX1BST1ZJREVSLCBNYXREYXRlcGlja2VyQ29udGVudCB9IGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9kYXRlcGlja2VyL21hdC1kYXRlcGlja2VyL2RhdGVwaWNrZXItYmFzZSc7XG5leHBvcnQgeyBNQVRfREFURVBJQ0tFUl9WQUxJREFUT1JTLCBNQVRfREFURVBJQ0tFUl9WQUxVRV9BQ0NFU1NPUiwgTWF0RGF0ZXBpY2tlcklucHV0IH0gZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2RhdGVwaWNrZXIvbWF0LWRhdGVwaWNrZXIvZGF0ZXBpY2tlci1pbnB1dCc7XG5leHBvcnQgeyBEYXRlRmlsdGVyRm4sIE1hdERhdGVwaWNrZXJJbnB1dEV2ZW50IH0gZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2RhdGVwaWNrZXIvbWF0LWRhdGVwaWNrZXIvZGF0ZXBpY2tlci1pbnB1dC1iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9kYXRlcGlja2VyL21hdC1kYXRlcGlja2VyL2RhdGVwaWNrZXItaW50bCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9tYXQtZGF0ZXBpY2tlci9kYXRlcGlja2VyLXRvZ2dsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9tYXQtZGF0ZXBpY2tlci9tb250aC12aWV3JztcbmV4cG9ydCB7IE1hdE11bHRpWWVhclZpZXcsIHllYXJzUGVyUGFnZSwgeWVhcnNQZXJSb3cgfSBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9tYXQtZGF0ZXBpY2tlci9tdWx0aS15ZWFyLXZpZXcnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2RhdGVwaWNrZXIvbWF0LWRhdGVwaWNrZXIveWVhci12aWV3JztcblxuLy8gZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2RhdGVwaWNrZXIvbWF0LWRhdGVwaWNrZXIvc2hhcmVkL2RhdGV0aW1lL2RhdGUtYWRhcHRlcic7XG4vLyBleHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9tYXQtZGF0ZXBpY2tlci9zaGFyZWQvZGF0ZXRpbWUvZGF0ZS1mb3JtYXRzJztcbi8vIGV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9kYXRlcGlja2VyL21hdC1kYXRlcGlja2VyL3NoYXJlZC9kYXRldGltZS9uYXRpdmUtZGF0ZS1hZGFwdGVyJztcbi8vIGV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9kYXRlcGlja2VyL21hdC1kYXRlcGlja2VyL3NoYXJlZC9kYXRldGltZS9uYXRpdmUtZGF0ZS1mb3JtYXRzJztcbi8vIGV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9kYXRlcGlja2VyL21hdC1kYXRlcGlja2VyL3NoYXJlZC9kYXRldGltZS9pbmRleCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9kYXRlcGlja2VyL2RhdGUtcmFuZ2UtcGlja2VyL2RhdGUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9kYXRlLXJhbmdlLXBpY2tlci9zaGFyZWQvbWF4LXJhbmdlL21heC1yYW5nZS1zZWxlY3Rpb24tc3RhcnRlZ3knO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2RhdGVwaWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIvc2hhcmVkL21heC1yYW5nZS9tYXgtcmFuZ2UuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9kYXRlcGlja2VyL2RhdGUtcmFuZ2UtcGlja2VyL3NoYXJlZC9wcmVzZXQtcmFuZ2UvcHJlc2V0LXJhbmdlLmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9tb250aC15ZWFyLXBpY2tlci9jYWxlbmRhci1tb250aC15ZWFyL2NhbGVuZGFyLW1vbnRoLXllYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9tb250aC15ZWFyLXBpY2tlci9tb250LXllYXItcGlja2VyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvbW9udGgteWVhci1waWNrZXIvbW9udGgteWVhci1waWNrZXIuY29tcG9uZW50JztcblxuIl19
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lwaS1jb21wb25lbnRzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdpcGlzaXN0ZW1hcy9uZy1jb3JlLyIsInNvdXJjZXMiOlsiZ2lwaS1jb21wb25lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDRFQUE0RSxDQUFDO0FBQzNGLGNBQWMsK0RBQStELENBQUM7QUFDOUUsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyxvRUFBb0UsQ0FBQztBQUNuRixjQUFjLDBFQUEwRSxDQUFDO0FBQ3pGLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyxrRUFBa0UsQ0FBQztBQUNqRixjQUFjLGtFQUFrRSxDQUFDO0FBQ2pGLGNBQWMsd0VBQXdFLENBQUM7QUFDdkYsY0FBYyx3RUFBd0UsQ0FBQztBQUN2RixjQUFjLDhFQUE4RSxDQUFDO0FBQzdGLGNBQWMsaUZBQWlGLENBQUM7QUFDaEcsY0FBYywwRUFBMEUsQ0FBQztBQUN6RixjQUFjLDBFQUEwRSxDQUFDO0FBQ3pGLGNBQWMsOERBQThELENBQUM7QUFDN0UsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsa0VBQWtFLENBQUM7QUFDakYsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLHlEQUF5RCxDQUFDO0FB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QUM7QUFFN0UsbUdBQW1HO0FBQ25HLG1HQUFtRztBQUNuRywwR0FBMEc7QUFDMUcsMEdBQTBHO0FBQzFHLDRGQUE0RjtBQUU1RixjQUFjLG1GQUFtRixDQUFDO0FBQ2xHLGNBQWMscUdBQXFHLENBQUM7QUFDcEgsY0FBYyw0RkFBNEYsQ0FBQztBQUMzRyxjQUFjLGtHQUFrRyxDQUFDO0FBRWpILGNBQWMsOEZBQThGLENBQUM7QUFDN0csY0FBYyxvRUFBb0UsQ0FBQztBQUNuRixjQUFjLHdFQUF3RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2Fic3RyYWN0LWZvcm0vYWJzdHJhY3QtZm9ybS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2FjdGlvbi1yb3cvYWN0aW9uLXJvdy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2JhZGdlL2JhZGdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2NhcmQvY2FyZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2NvbmZpcm1hdGlvbi1kaWFsb2cvY29uZmlybWF0aW9uLWRpYWxvZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2RvbS9jb25uZWN0ZWQtb3ZlcmxheS1zY3JvbGwtaGFuZGxlcic7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvZG9tL2RvbS1oYW5kbGVyJztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9kcm9wZG93bi1tZW51L2Ryb3Bkb3duLW1lbnUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2V4cGFuc2lvbi1wYW5lbC9leHBhbnNpb24tcGFuZWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9maWxlLWRyYWctYW5kLWRyb3AvZmlsZS1kcmFnLWFuZC1kcm9wLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvZm9vdGVyL2Zvb3Rlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2hlbHBmdWwtdGlwL2hlbHBmdWwtdGlwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvaW5maW5pdGUtc2Nyb2xsL2luZmluaXRlLXNjcm9sbC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2lucHV0LWNoZWNrYm94L2lucHV0LWNoZWNrYm94LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvaW5wdXQtY3VycmVuY3kvaW5wdXQtY3VycmVuY3kuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9pbnB1dC1tb250aHBpY2tlci9pbnB1dC1tb250aHBpY2tlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2lucHV0LXNlbGVjdC1lbnVtL2lucHV0LXNlbGVjdC1lbnVtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvaW5wdXQtc2VsZWN0LWxpc3Rib3gvaW5wdXQtc2VsZWN0LWxpc3Rib3guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9pbnB1dC1zZWxlY3QtcGFnZWQvaW5wdXQtc2VhcmNoL2lucHV0LXNlYXJjaC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2lucHV0LXNlbGVjdC1wYWdlZC9pbnB1dC1zZWxlY3QtcGFnZWQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9pbnB1dC1zZWxlY3QtcmFkaW8vaW5wdXQtc2VsZWN0LXJhZGlvLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvaW5wdXQtc2VsZWN0L2lucHV0LXNlbGVjdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2xheW91dC1ncmlkL2NvbC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2xheW91dC1ncmlkL3Jvdy5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2xheW91dC1ncmlkL3NlcnZpY2VzL2JyZWFrcG9pbnQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvbGF5b3V0LWdyaWQvc2VydmljZXMvcmVzaXplLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9ub3ZlbHRpZXMvbm92ZWx0aWVzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvb3ZlcmxheS9vdmVybGF5LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvb3ZlcmxheS9zaGFyZWQvb3ZlcmxheS1zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9vdmVybGF5L3NoYXJlZC9vdmVybGF5X29wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL3Bhc3N3b3JkLXJlcXVlcmltZW50cy9wYXNzd29yZC1yZXF1ZXJpbWVudHMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9wb3BvdmVyL3BvcG92ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9wb3BvdmVyL3NoYXJlZC9wb3BvdmVyLWFuaW1hdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL3BvcG92ZXIvc2hhcmVkL3BvcG92ZXItaW50ZXJmYWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvcG9wb3Zlci9zaGFyZWQvcG9wb3Zlci10YXJnZXQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL3BvcG92ZXIvc2hhcmVkL3BvcG92ZXItdHJpZ2dlcic7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvcmFkaW8tZ3JvdXAvcmFkaW8tZ3JvdXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9yYW5nZS1wYWdlL3JhbmdlLXBhZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9yYW5nZS1zbGlkZXIvcmFuZ2Utc2xpZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvc2VsZWN0LWJ1dHRvbi9zZWxlY3QtYnV0dG9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL3NpZGViYXIvY29udGFpbmVyL2NvbnRhaW5lci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL3NpZGViYXIvc2lkZW5hdi9zaWRlbmF2LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvc2xpZGUtdG9nZ2xlL3NsaWRlLXRvZ2dsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL3NwbGl0LWJ1dHRvbi9zcGxpdC1idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9zdGVwcGVyL3N0ZXBwZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy90ZW1wbGF0ZS90ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL3RleHRhcmVhL3RleHRhcmVhLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvdG9vbGJhci90b29sYmFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvdG9wLW5hdi90b3AtbmF2LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvdXNlci1wcm9maWxlL3VzZXItcHJvZmlsZS5jb21wb25lbnQnO1xuXG4vLyBUYWJzXG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvdGFicy9zaGFyZWQvZHluYW1pYy10YWIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy90YWJzL3NoYXJlZC90YWIubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL3RhYnMvdGFiLWdyb3VwL3RhYi1ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL3RhYnMvdGFiL3RhYi5jb21wb25lbnQnO1xuXG4vLyBUYWJsZVxuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtYm9keS90YWJsZS1ib2R5LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvdGFibGUvY29tcG9uZW50cy90YWJsZS1mb290ZXIvdGFibGUtZm9vdGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvdGFibGUvY29tcG9uZW50cy90YWJsZS1oZWFkZXIvdGFibGUtaGVhZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvdGFibGUvY29tcG9uZW50cy90YWJsZS1wYWdpbmF0aW9uL3NoYXJlZC9wYWdpbmF0ZS5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy90YWJsZS9jb21wb25lbnRzL3RhYmxlLXBhZ2luYXRpb24vc2hhcmVkL3BhZ2luYXRpb24tY29udHJvbHMuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy90YWJsZS9jb21wb25lbnRzL3RhYmxlLXBhZ2luYXRpb24vc2hhcmVkL3BhZ2luYXRpb24taW5zdGFuY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtcGFnaW5hdGlvbi9zaGFyZWQvcGFnaW5hdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy90YWJsZS9jb21wb25lbnRzL3RhYmxlLXBhZ2luYXRpb24vdGFibGUtcGFnaW5hdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtcHJvZ3Jlc3MtYmFyL3RhYmxlLXByb2dyZXNzLWJhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL3RhYmxlL21vZGVscy9waXBlLXRyYW5zZm9ybS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvdGFibGUvbW9kZWxzL3NvcnQubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL3RhYmxlL21vZGVscy9zb3J0ZWQtY29sdW1uLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy90YWJsZS9tb2RlbHMvdGFibGUtY29sdW1uLWJ1aWxkZXIubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL3RhYmxlL21vZGVscy90YWJsZS1jb2x1bW4ubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvdGFibGUvdHlwZXMvc29ydC1kaXJlY3Rpb24udHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvdGFibGUvdHlwZXMvc29ydC50eXBlJztcblxuLy8gRGF0ZXBpY2tlclxuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2RhdGVwaWNrZXIvbWF0LWRhdGVwaWNrZXIvc2hhcmVkL2FkYXB0ZXIvZGF0ZS1hZGFwdGVyJztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9kYXRlcGlja2VyL21hdC1kYXRlcGlja2VyL3NoYXJlZC9hZGFwdGVyL2RhdGUtZm9ybWF0cyc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9tYXQtZGF0ZXBpY2tlci9zaGFyZWQvYWRhcHRlci9uYXRpdmUtZGF0ZS1hZGFwdGVyJztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9kYXRlcGlja2VyL21hdC1kYXRlcGlja2VyL3NoYXJlZC9hZGFwdGVyL25hdGl2ZS1kYXRlLWZvcm1hdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2RhdGVwaWNrZXIvbWF0LWRhdGVwaWNrZXIvc2hhcmVkL2FkYXB0ZXIvcGxhdGZvcm0nO1xuXG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9kYXRlcGlja2VyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9tYXQtZGF0ZXBpY2tlci9jYWxlbmRhcic7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9tYXQtZGF0ZXBpY2tlci9jYWxlbmRhci1ib2R5JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9kYXRlcGlja2VyL21hdC1kYXRlcGlja2VyL2RhdGUtcmFuZ2UtaW5wdXQnO1xuZXhwb3J0IHsgTWF0RW5kRGF0ZSwgTWF0U3RhcnREYXRlIH0gZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2RhdGVwaWNrZXIvbWF0LWRhdGVwaWNrZXIvZGF0ZS1yYW5nZS1pbnB1dC1wYXJ0cyc7XG5leHBvcnQgeyBNYXREYXRlUmFuZ2VQaWNrZXIgfSBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9tYXQtZGF0ZXBpY2tlci9kYXRlLXJhbmdlLXBpY2tlcic7XG5leHBvcnQgeyBEZWZhdWx0TWF0Q2FsZW5kYXJSYW5nZVN0cmF0ZWd5LCBNQVRfREFURV9SQU5HRV9TRUxFQ1RJT05fU1RSQVRFR1ksIE1hdERhdGVSYW5nZVNlbGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2RhdGVwaWNrZXIvbWF0LWRhdGVwaWNrZXIvZGF0ZS1yYW5nZS1zZWxlY3Rpb24tc3RyYXRlZ3knO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2RhdGVwaWNrZXIvbWF0LWRhdGVwaWNrZXIvZGF0ZS1zZWxlY3Rpb24tbW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2RhdGVwaWNrZXIvbWF0LWRhdGVwaWNrZXIvZGF0ZXBpY2tlcic7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9tYXQtZGF0ZXBpY2tlci9kYXRlcGlja2VyLWFuaW1hdGlvbnMnO1xuZXhwb3J0IHsgRGF0ZXBpY2tlckRyb3Bkb3duUG9zaXRpb25YLCBEYXRlcGlja2VyRHJvcGRvd25Qb3NpdGlvblksIE1BVF9EQVRFUElDS0VSX1NDUk9MTF9TVFJBVEVHWSwgTUFUX0RBVEVQSUNLRVJfU0NST0xMX1NUUkFURUdZX0ZBQ1RPUlksIE1BVF9EQVRFUElDS0VSX1NDUk9MTF9TVFJBVEVHWV9GQUNUT1JZX1BST1ZJREVSLCBNYXREYXRlcGlja2VyQ29udGVudCB9IGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9kYXRlcGlja2VyL21hdC1kYXRlcGlja2VyL2RhdGVwaWNrZXItYmFzZSc7XG5leHBvcnQgeyBNQVRfREFURVBJQ0tFUl9WQUxJREFUT1JTLCBNQVRfREFURVBJQ0tFUl9WQUxVRV9BQ0NFU1NPUiwgTWF0RGF0ZXBpY2tlcklucHV0IH0gZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2RhdGVwaWNrZXIvbWF0LWRhdGVwaWNrZXIvZGF0ZXBpY2tlci1pbnB1dCc7XG5leHBvcnQgeyBEYXRlRmlsdGVyRm4sIE1hdERhdGVwaWNrZXJJbnB1dEV2ZW50IH0gZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2RhdGVwaWNrZXIvbWF0LWRhdGVwaWNrZXIvZGF0ZXBpY2tlci1pbnB1dC1iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9kYXRlcGlja2VyL21hdC1kYXRlcGlja2VyL2RhdGVwaWNrZXItaW50bCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9tYXQtZGF0ZXBpY2tlci9kYXRlcGlja2VyLXRvZ2dsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9tYXQtZGF0ZXBpY2tlci9tb250aC12aWV3JztcbmV4cG9ydCB7IE1hdE11bHRpWWVhclZpZXcsIHllYXJzUGVyUGFnZSwgeWVhcnNQZXJSb3cgfSBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9tYXQtZGF0ZXBpY2tlci9tdWx0aS15ZWFyLXZpZXcnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2RhdGVwaWNrZXIvbWF0LWRhdGVwaWNrZXIveWVhci12aWV3JztcblxuLy8gZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2RhdGVwaWNrZXIvbWF0LWRhdGVwaWNrZXIvc2hhcmVkL2RhdGV0aW1lL2RhdGUtYWRhcHRlcic7XG4vLyBleHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9tYXQtZGF0ZXBpY2tlci9zaGFyZWQvZGF0ZXRpbWUvZGF0ZS1mb3JtYXRzJztcbi8vIGV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9kYXRlcGlja2VyL21hdC1kYXRlcGlja2VyL3NoYXJlZC9kYXRldGltZS9uYXRpdmUtZGF0ZS1hZGFwdGVyJztcbi8vIGV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9kYXRlcGlja2VyL21hdC1kYXRlcGlja2VyL3NoYXJlZC9kYXRldGltZS9uYXRpdmUtZGF0ZS1mb3JtYXRzJztcbi8vIGV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9kYXRlcGlja2VyL21hdC1kYXRlcGlja2VyL3NoYXJlZC9kYXRldGltZS9pbmRleCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9kYXRlcGlja2VyL2RhdGUtcmFuZ2UtcGlja2VyL2RhdGUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9kYXRlLXJhbmdlLXBpY2tlci9zaGFyZWQvbWF4LXJhbmdlL21heC1yYW5nZS1zZWxlY3Rpb24tc3RhcnRlZ3knO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZ2lwaS1jb21wb25lbnRzL2RhdGVwaWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIvc2hhcmVkL21heC1yYW5nZS9tYXgtcmFuZ2UuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9kYXRlcGlja2VyL2RhdGUtcmFuZ2UtcGlja2VyL3NoYXJlZC9wcmVzZXQtcmFuZ2UvcHJlc2V0LXJhbmdlLmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9tb250aC15ZWFyLXBpY2tlci9jYWxlbmRhci1tb250aC15ZWFyL2NhbGVuZGFyLW1vbnRoLXllYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2dpcGktY29tcG9uZW50cy9tb250aC15ZWFyLXBpY2tlci9tb250LXllYXItcGlja2VyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9naXBpLWNvbXBvbmVudHMvbW9udGgteWVhci1waWNrZXIvbW9udGgteWVhci1waWNrZXIuY29tcG9uZW50JztcblxuIl19
|
@@ -522,7 +522,7 @@ __decorate([
|
|
522
522
|
SelectSearchComponent = SelectSearchComponent_1 = __decorate([
|
523
523
|
Component({
|
524
524
|
selector: 'itss-input-search',
|
525
|
-
template: "<!-- Espa\u00E7o reservado para ajustar o deslocamento vertical dos elementos mat-option -->\n<input matInput\n class=\"mat-select-search-input mat-select-search-hidden\" />\n\n<!-- Note: o mat-datepicker-content mat-tab-header \u00E9 necess\u00E1rio para herdar as cores do tema do material, consulte PR n\u00BA 22 -->\n<div #innerSelectSearch\n class=\"mat-select-search-inner mat-typography mat-datepicker-content mat-tab-header\"\n [ngClass]=\"{'mat-select-search-inner-multiple': matSelect.multiple, 'mat-select-search-inner-toggle-all': _isToggleAllCheckboxVisible() }\">\n\n <mat-checkbox *ngIf=\"_isToggleAllCheckboxVisible()\"\n class=\"mat-select-search-toggle-all-checkbox\"\n color=\"primary\"\n [color]=\"matFormField?.color\"\n [disabled]=\"searching\"\n [matTooltip]=\"toggleAllCheckboxTooltipMessage\"\n matTooltipClass=\"ngx-mat-select-search-toggle-all-tooltip\"\n [matTooltipPosition]=\"toggleAllCheckboxTooltipPosition\"\n [(ngModel)]=\"toggleAllCheckboxChecked\"\n [(indeterminate)]=\"toggleAllCheckboxIndeterminate\">\n </mat-checkbox>\n\n <input class=\"mat-select-search-input mat-input-element\"\n autocomplete=\"off\"\n [type]=\"type\"\n [formControl]=\"_formControl\"\n #searchSelectInput\n (keydown)=\"_handleKeydown($event)\"\n (keyup)=\"_handleKeyup($event)\"\n (blur)=\"onBlur()\"\n [placeholder]=\"placeholderLabel\"\n [attr.aria-label]=\"ariaLabel\">\n\n <mat-spinner *ngIf=\"searching\"\n class=\"mat-select-search-spinner\"\n diameter=\"16\">\n </mat-spinner>\n\n <button *ngIf=\"!hideClearSearchButton && value && !searching\"\n mat-icon-button\n aria-label=\"Clear\"\n (click)=\"_reset(true)\"\n class=\"mat-select-search-clear\">\n <ng-content *ngIf=\"clearIcon; else defaultIcon\"\n select=\"[itssSelectSearchClear]\">\n </ng-content>\n\n <ng-template #defaultIcon>\n <mat-icon [svgIcon]=\"closeSvgIcon\">\n {{ !closeSvgIcon ? closeIcon : null }}\n </mat-icon>\n </ng-template>\n </button>\n\n <ng-content select=\".mat-select-search-custom-header-content\"> </ng-content>\n\n <mat-divider> </mat-divider>\n</div>\n\n<div *ngIf=\"(_showNoEntriesFound$ | async) && !searching\"\n class=\"mat-select-search-no-entries-found\">\n <ng-content *ngIf=\"noEntriesFound; else defaultNoEntriesFound\"\n select=\"[itssSelectNoEntriesFound]\">\n </ng-content>\n\n <ng-template #defaultNoEntriesFound>\n {{ noEntriesFoundLabel }}\n </ng-template>\n</div
|
525
|
+
template: "<!-- Espa\u00E7o reservado para ajustar o deslocamento vertical dos elementos mat-option -->\n<input matInput\n class=\"mat-select-search-input mat-select-search-hidden\" />\n\n<!-- Note: o mat-datepicker-content mat-tab-header \u00E9 necess\u00E1rio para herdar as cores do tema do material, consulte PR n\u00BA 22 -->\n<div #innerSelectSearch\n class=\"mat-select-search-inner mat-typography mat-datepicker-content mat-tab-header\"\n [ngClass]=\"{'mat-select-search-inner-multiple': matSelect.multiple, 'mat-select-search-inner-toggle-all': _isToggleAllCheckboxVisible() }\">\n\n <mat-checkbox *ngIf=\"_isToggleAllCheckboxVisible()\"\n class=\"mat-select-search-toggle-all-checkbox\"\n color=\"primary\"\n [color]=\"matFormField?.color\"\n [disabled]=\"searching\"\n [matTooltip]=\"toggleAllCheckboxTooltipMessage\"\n matTooltipClass=\"ngx-mat-select-search-toggle-all-tooltip\"\n [matTooltipPosition]=\"toggleAllCheckboxTooltipPosition\"\n [(ngModel)]=\"toggleAllCheckboxChecked\"\n [(indeterminate)]=\"toggleAllCheckboxIndeterminate\">\n </mat-checkbox>\n\n <input class=\"mat-select-search-input mat-input-element\"\n autocomplete=\"off\"\n [type]=\"type\"\n [formControl]=\"_formControl\"\n #searchSelectInput\n (keydown)=\"_handleKeydown($event)\"\n (keyup)=\"_handleKeyup($event)\"\n (blur)=\"onBlur()\"\n [placeholder]=\"placeholderLabel\"\n [attr.aria-label]=\"ariaLabel\"\n aria-hidden=\"false\">\n\n <mat-spinner *ngIf=\"searching\"\n class=\"mat-select-search-spinner\"\n diameter=\"16\">\n </mat-spinner>\n\n <button *ngIf=\"!hideClearSearchButton && value && !searching\"\n mat-icon-button\n aria-label=\"Clear\"\n (click)=\"_reset(true)\"\n class=\"mat-select-search-clear\">\n <ng-content *ngIf=\"clearIcon; else defaultIcon\"\n select=\"[itssSelectSearchClear]\">\n </ng-content>\n\n <ng-template #defaultIcon>\n <mat-icon [svgIcon]=\"closeSvgIcon\">\n {{ !closeSvgIcon ? closeIcon : null }}\n </mat-icon>\n </ng-template>\n </button>\n\n <ng-content select=\".mat-select-search-custom-header-content\"> </ng-content>\n\n <mat-divider> </mat-divider>\n</div>\n\n<div *ngIf=\"(_showNoEntriesFound$ | async) && !searching\"\n class=\"mat-select-search-no-entries-found\">\n <ng-content *ngIf=\"noEntriesFound; else defaultNoEntriesFound\"\n select=\"[itssSelectNoEntriesFound]\">\n </ng-content>\n\n <ng-template #defaultNoEntriesFound>\n {{ noEntriesFoundLabel }}\n </ng-template>\n</div>",
|
526
526
|
providers: [
|
527
527
|
{
|
528
528
|
provide: NG_VALUE_ACCESSOR,
|
@@ -544,4 +544,4 @@ SelectSearchComponent = SelectSearchComponent_1 = __decorate([
|
|
544
544
|
MatFormField, Object])
|
545
545
|
], SelectSearchComponent);
|
546
546
|
export { SelectSearchComponent };
|
547
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXNlYXJjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ2lwaXNpc3RlbWFzL25nLWNvcmUvIiwic291cmNlcyI6WyJzaGFyZWQvY29tcG9uZW50cy9zZWxlY3QtZW50aXR5LXBhZ2VkL3NoYXJlZC9zZWxlY3Qtc2VhcmNoL3NlbGVjdC1zZWFyY2guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsT0FBTyxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzUCxPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0UsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVB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QUNJLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBaUMsRUFBRSxDQUFDLHVCQUFxQixDQUFDO2dCQUNsRixLQUFLLEVBQUUsSUFBSTthQUNkO1NBQ0o7UUFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7S0FDbEQsQ0FBQztJQXdCTyxXQUFBLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUdqQixXQUFBLFFBQVEsRUFBRSxDQUFBLEVBQUUsV0FBQSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDN0IsV0FBQSxRQUFRLEVBQUUsQ0FBQSxFQUFFLFdBQUEsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFBO0lBQ2hDLFdBQUEsUUFBUSxFQUFFLENBQUEsRUFBRSxXQUFBLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFBO3FDQUxsQixTQUFTO1FBQ3BCLGlCQUFpQjtRQUNuQixhQUFhO1FBQ1ksU0FBUztRQUNILFlBQVk7R0EzQjlELHFCQUFxQixDQThmakM7U0E5ZlkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBBLCBET1dOX0FSUk9XLCBFTkQsIEVOVEVSLCBFU0NBUEUsIEhPTUUsIE5JTkUsIFNQQUNFLCBVUF9BUlJPVywgWiwgWkVSTyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBWaWV3cG9ydFJ1bGVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCwgT3V0cHV0LCBRdWVyeUxpc3QsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZCwgTWF0T3B0aW9uLCBNYXRTZWxlY3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWxheSwgZmlsdGVyLCBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgSVRTU19TRUxFQ1RfU0VBUkNIX0RFRkFVTFRfT1BUSU9OUywgSXRzc1NlbGVjdFNlYXJjaE9wdGlvbnMsIGNvbmZpZ3VyYWJsZURlZmF1bHRPcHRpb25zIH0gZnJvbSAnLi4vZGVmYXVsdC1vcHRpb25zJztcbmltcG9ydCB7IFNlbGVjdE5vRW50cmllc0ZvdW5kRGlyZWN0aXZlIH0gZnJvbSAnLi4vc2VsZWN0LW5vLWVudHJpZXMtZm91bmQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNlbGVjdFNlYXJjaENsZWFyRGlyZWN0aXZlIH0gZnJvbSAnLi4vc2VsZWN0LXNlYXJjaC1jbGVhci5kaXJlY3RpdmUnO1xuXG4vKipcbiAqIEVzdGUgY29tcG9uZW50ZSBmb2kgcmVlc2NyaXRvIHV0aWxpemFuZG8gc2UgZG8gcHJvamV0byBhIHNlZ3VpclxuICogaHR0cHM6Ly9naXRodWIuY29tL2JpdGhvc3QtZ21iaC9uZ3gtbWF0LXNlbGVjdC1zZWFyY2hcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpdHNzLWlucHV0LXNlYXJjaCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC1zZWFyY2guY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlbGVjdC1zZWFyY2guY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKTogdHlwZW9mIFNlbGVjdFNlYXJjaENvbXBvbmVudCA9PiBTZWxlY3RTZWFyY2hDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0U2VhcmNoQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcywgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gICAgLy8gVmFsb3IgZGUgcGVzcXVpc2EgYXR1YWxcbiAgICBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1Db250cm9sLnZhbHVlO1xuICAgIH1cblxuICAgIC8vIFJlZmVyw6puY2lhIMOgcyBvcMOnw7VlcyBNYXRTZWxlY3RcbiAgICBwdWJsaWMgc2V0IF9vcHRpb25zKF9vcHRpb25zOiBRdWVyeUxpc3Q8TWF0T3B0aW9uPikge1xuICAgICAgICB0aGlzLl9vcHRpb25zJC5uZXh0KF9vcHRpb25zKTtcbiAgICB9XG4gICAgcHVibGljIGdldCBfb3B0aW9ucygpOiBRdWVyeUxpc3Q8TWF0T3B0aW9uPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vcHRpb25zJC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIC8vIEFkaWNpb25hIGEgY2xhc3NlIG1hdC1zZWxlY3Qtc2VhcmNoLWluc2lkZS1tYXQtb3B0aW9uIHNlIG8gaXRzcy1zZWxlY3Qtc2VhcmNoIGVzdGl2ZXJcbiAgICAvLyBkZW50cm8gZG8gbWF0LW9wdGlvblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MubWF0LXNlbGVjdC1zZWFyY2gtaW5zaWRlLW1hdC1vcHRpb24nKVxuICAgIGdldCBpc0luc2lkZU1hdE9wdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5tYXRPcHRpb247XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoTWF0U2VsZWN0KSBwdWJsaWMgbWF0U2VsZWN0OiBNYXRTZWxlY3QsXG4gICAgICAgIHB1YmxpYyBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgX3ZpZXdwb3J0UnVsZXI6IFZpZXdwb3J0UnVsZXIsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTWF0T3B0aW9uKSBwdWJsaWMgbWF0T3B0aW9uOiBNYXRPcHRpb24gPSBudWxsLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1hdEZvcm1GaWVsZCkgcHVibGljIG1hdEZvcm1GaWVsZDogTWF0Rm9ybUZpZWxkID0gbnVsbCxcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChJVFNTX1NFTEVDVF9TRUFSQ0hfREVGQVVMVF9PUFRJT05TKSBkZWZhdWx0T3B0aW9ucz86IEl0c3NTZWxlY3RTZWFyY2hPcHRpb25zXG4gICAgKSB7XG4gICAgICAgIHRoaXMuYXBwbHlEZWZhdWx0T3B0aW9ucyhkZWZhdWx0T3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLy8gUsOzdHVsbyBkbyBtYXJjYWRvciBkZSBwb3Npw6fDo28gZGUgcGVzcXVpc2FcbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlckxhYmVsOiBzdHJpbmcgPSAnUGVzcXVpc2FyLi4uJztcblxuICAgIC8vIFRpcG8gZG8gY2FtcG8gZGUgZW50cmFkYSBkZSBwZXNxdWlzYVxuICAgIEBJbnB1dCgpIHR5cGU6IHN0cmluZyA9ICd0ZXh0JztcblxuICAgIC8vIMONY29uZSBiYXNlYWRvIGVtIGZvbnRlIHVzYWRvIHBhcmEgZXhpYmlyIENsb3NlLUljb25cbiAgICBASW5wdXQoKSBjbG9zZUljb246IHN0cmluZyA9ICdjbG9zZSc7XG5cbiAgICAvLyDDjWNvbmUgYmFzZWFkbyBlbSBTdmcgdXNhZG8gcGFyYSBleGliaXIgQ2xvc2UtSWNvbi4gU2UgZGVmaW5pZG8sIENsb3NlLUljb24gw6kgc3Vic3RpdHXDrWRvXG4gICAgQElucHV0KCkgY2xvc2VTdmdJY29uPzogc3RyaW5nO1xuXG4gICAgLy8gUsOzdHVsbyBhIHNlciBtb3N0cmFkbyBxdWFuZG8gbmVuaHVtYSBlbnRyYWRhIGZvciBlbmNvbnRyYWRhLiBEZWZpbmEgY29tbyBudWxvIHNlIG5lbmh1bWEgbWVuc2FnZW0gZGV2ZSBzZXIgbW9zdHJhZGFcbiAgICBASW5wdXQoKSBub0VudHJpZXNGb3VuZExhYmVsOiBzdHJpbmcgPSAnTmVuaHVtIHJlc3VsdGFkbyBlbmNvbnRyYWRvJztcblxuICAgIC8qKlxuICAgICAqIFNlIG8gY2FtcG8gZGUgcGVzcXVpc2EgZGV2ZSBvdSBuw6NvIHNlciBsaW1wbyBhcMOzcyBvIG1lbnUgc3VzcGVuc28gc2VyIGZlY2hhZG8uXG4gICAgICogw5p0aWwgcGFyYSBmaWx0cmFnZW0gZG8gbGFkbyBkbyBzZXJ2aWRvci4gVmVqYSBbIzNdKGh0dHBzOi8vZ2l0aHViLmNvbS9iaXRob3N0LWdtYmgvbmd4LW1hdC1zZWxlY3Qtc2VhcmNoL2lzc3Vlcy8zKVxuICAgICAqL1xuICAgIEBJbnB1dCgpIGNsZWFyU2VhcmNoSW5wdXQ6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLy8gU2UgZGV2ZSBtb3N0cmFyIG8gaW5kaWNhZG9yIGRlIHBlc3F1aXNhIGVtIGFuZGFtZW50b1xuICAgIEBJbnB1dCgpIHNlYXJjaGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLy8gRGVzYXRpdmEgbyBmb2NvIGluaWNpYWwgZG8gY2FtcG8gZGUgZW50cmFkYVxuICAgIEBJbnB1dCgpIGRpc2FibGVJbml0aWFsRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8vIEF0aXZhciBsaW1wYXIgaW5wdXQgYW8gcHJlc3Npb25hciBlc2NhcGVcbiAgICBASW5wdXQoKSBlbmFibGVDbGVhck9uRXNjYXBlUHJlc3NlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogSW1wZWRlIHF1ZSBhIGNoYXZlIGhvbWUvZW5kIHNlamEgcHJvcGFnYWRhIHBhcmEgbWF0LXNlbGVjdCxcbiAgICAgKiBwZXJtaXRpbmRvIG1vdmVyIG8gY3Vyc29yIGRlbnRybyBkYSBlbnRyYWRhIGRlIHBlc3F1aXNhIGVtIHZleiBkZSBuYXZlZ2FyIHBlbGFzIG9ww6fDtWVzXG4gICAgICovXG4gICAgQElucHV0KCkgcHJldmVudEhvbWVFbmRLZXlQcm9wYWdhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLy8gRGVzYXRpdmEgYSByb2xhZ2VtIHBhcmEgYXMgb3DDp8O1ZXMgYXRpdmFzIHF1YW5kbyBhIGxpc3RhIGRlIG9ww6fDtWVzIMOpIGFsdGVyYWRhLiDDmnRpbCBwYXJhIHBlc3F1aXNhIGRvIGxhZG8gZG8gc2Vydmlkb3JcbiAgICBASW5wdXQoKSBkaXNhYmxlU2Nyb2xsVG9BY3RpdmVPbk9wdGlvbnNDaGFuZ2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvLyBBZGljaW9uYSBzdXBvcnRlIGEgbGVpdG9yIGRlIHRlbGEgNTA4IHBhcmEgY2FpeGEgZGUgcGVzcXVpc2FcbiAgICBASW5wdXQoKSBhcmlhTGFiZWw6IHN0cmluZyA9ICdQZXNxdWlzYSBzdXNwZW5zYSc7XG5cbiAgICAvLyBTZSBkZXZlIG1vc3RyYXIgYSBjYWl4YSBkZSBzZWxlw6fDo28gU2VsZWNpb25hciB0dWRvIChwYXJhIG1hdC1zZWxlY3RbbXVsdGk9dHJ1ZV0pXG4gICAgQElucHV0KCkgc2hvd1RvZ2dsZUFsbENoZWNrYm94OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvLyBTZWxlY2lvbmUgdHVkbyBjYWl4YSBkZSBzZWxlw6fDo28gbWFyY2FkYSBlc3RhZG9cbiAgICBwcml2YXRlIF90b2dnbGVBbGxDaGVja2JveENoZWNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBzZXQgdG9nZ2xlQWxsQ2hlY2tib3hDaGVja2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3RvZ2dsZUFsbENoZWNrYm94Q2hlY2tlZCA9IHZhbHVlO1xuICAgICAgICB0aGlzLnRvZ2dsZUFsbC5lbWl0KHZhbHVlKTtcbiAgICB9XG4gICAgZ2V0IHRvZ2dsZUFsbENoZWNrYm94Q2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RvZ2dsZUFsbENoZWNrYm94Q2hlY2tlZDtcbiAgICB9XG5cbiAgICAvLyBNYXJxdWUgdG9kYXMgYXMgY2FpeGFzIGRlIHNlbGXDp8OjbyBlc3RhZG8gaW5kZXRlcm1pbmFkb1xuICAgIHByaXZhdGUgX3RvZ2dsZUFsbENoZWNrYm94SW5kZXRlcm1pbmF0ZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHNldCB0b2dnbGVBbGxDaGVja2JveEluZGV0ZXJtaW5hdGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fdG9nZ2xlQWxsQ2hlY2tib3hJbmRldGVybWluYXRlID0gdmFsdWU7XG4gICAgICAgIHRoaXMudG9nZ2xlQWxsSW5kZXRlcm1pbmF0ZS5lbWl0KHZhbHVlKTtcbiAgICB9XG4gICAgZ2V0IHRvZ2dsZUFsbENoZWNrYm94SW5kZXRlcm1pbmF0ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RvZ2dsZUFsbENoZWNrYm94SW5kZXRlcm1pbmF0ZTtcbiAgICB9XG5cbiAgICAvLyBFeGliaXIgdW1hIG1lbnNhZ2VtIGVtIHVtYSBkaWNhIGRlIGZlcnJhbWVudGEgbmEgY2FpeGEgZGUgc2VsZcOnw6NvIGRlIGFsdGVybmFyIHR1ZG9cbiAgICBASW5wdXQoKSB0b2dnbGVBbGxDaGVja2JveFRvb2x0aXBNZXNzYWdlOiBzdHJpbmcgPSAnJztcblxuICAgIC8vIERlZmluYSBhIHBvc2nDp8OjbyBkYSBkaWNhIGRlIGZlcnJhbWVudGEgbmEgY2FpeGEgZGUgc2VsZcOnw6NvIGRlIGFsdGVybmFyIHR1ZG8uXG4gICAgQElucHV0KCkgdG9nZ2xlQWxsQ2hlY2tib3hUb29sdGlwUG9zaXRpb246ICdsZWZ0JyB8ICdyaWdodCcgfCAnYWJvdmUnIHwgJ2JlbG93JyB8ICdiZWZvcmUnIHwgJ2FmdGVyJyA9ICdiZWxvdyc7XG5cbiAgICAvLyBNb3N0cmFyL29jdWx0YXIgbyBib3TDo28gbGltcGFyIHBlc3F1aXNhIGRhIGVudHJhZGEgZGUgcGVzcXVpc2FcbiAgICBASW5wdXQoKSBoaWRlQ2xlYXJTZWFyY2hCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFNlbXByZSByZXN0YXVyZSBhcyBvcMOnw7VlcyBzZWxlY2lvbmFkYXMgbmEgc2VsZcOnw6NvIEFsdGVyZSBwYXJhIG8gbW9kbyBtdWx0aSAocG9yIGV4ZW1wbG8sIHBhcmEgY2FycmVnYW1lbnRvIGxlbnRvL3JvbGFnZW0gaW5maW5pdGEpLlxuICAgICAqIE8gcGFkcsOjbyDDqSBmYWxzbywgcG9ydGFudG8sIGFzIG9ww6fDtWVzIHNlbGVjaW9uYWRhcyBzw6NvIHJlc3RhdXJhZGFzIGFwZW5hcyBlbnF1YW50byBhIGZpbHRyYWdlbSBlc3TDoSBhdGl2YS5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBhbHdheXNSZXN0b3JlU2VsZWN0ZWRPcHRpb25zTXVsdGk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8vIEVtaXNzb3IgZGUgc2HDrWRhIHBhcmEgZW52aWFyIGFvIGNvbXBvbmVudGUgcGFpIGNvbSBhIGFsdGVybsOibmNpYSBkZSB0b2RvcyBvcyBib29sZWFub3NcbiAgICBAT3V0cHV0KCkgdG9nZ2xlQWxsOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgQE91dHB1dCgpIHRvZ2dsZUFsbEluZGV0ZXJtaW5hdGU6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8vIFJlZmVyw6puY2lhIGFvIGNhbXBvIGRlIGVudHJhZGEgZGUgcGVzcXVpc2FcbiAgICBAVmlld0NoaWxkKCdzZWFyY2hTZWxlY3RJbnB1dCcsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pIHNlYXJjaFNlbGVjdElucHV0OiBFbGVtZW50UmVmO1xuXG4gICAgLy8gUmVmZXLDqm5jaWEgYW8gY2FtcG8gZGUgZW50cmFkYSBkZSBwZXNxdWlzYVxuICAgIEBWaWV3Q2hpbGQoJ2lubmVyU2VsZWN0U2VhcmNoJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWUgfSkgaW5uZXJTZWxlY3RTZWFyY2g6IEVsZW1lbnRSZWY7XG5cbiAgICAvLyBSZWZlcsOqbmNpYSBhbyDDrWNvbmUgY2xhcm8gZGUgZW50cmFkYSBkZSBwZXNxdWlzYSBwZXJzb25hbGl6YWRhXG4gICAgQENvbnRlbnRDaGlsZChTZWxlY3RTZWFyY2hDbGVhckRpcmVjdGl2ZSwgeyBzdGF0aWM6IGZhbHNlIH0pIGNsZWFySWNvbjogU2VsZWN0U2VhcmNoQ2xlYXJEaXJlY3RpdmU7XG5cbiAgICAvLyBSZWZlcsOqbmNpYSBhbyBlbGVtZW50byBwZXJzb25hbGl6YWRvIHNlbSBlbnRyYWRhcyBlbmNvbnRyYWRhc1xuICAgIEBDb250ZW50Q2hpbGQoU2VsZWN0Tm9FbnRyaWVzRm91bmREaXJlY3RpdmUsIHsgc3RhdGljOiBmYWxzZSB9KSBub0VudHJpZXNGb3VuZDogU2VsZWN0Tm9FbnRyaWVzRm91bmREaXJlY3RpdmU7XG4gICAgcHJpdmF0ZSBfbGFzdEV4dGVybmFsSW5wdXRWYWx1ZTogc3RyaW5nO1xuICAgIHB1YmxpYyBfb3B0aW9ucyQ6IEJlaGF2aW9yU3ViamVjdDxRdWVyeUxpc3Q8TWF0T3B0aW9uPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFF1ZXJ5TGlzdDxNYXRPcHRpb24+PihudWxsKTtcblxuICAgIHByaXZhdGUgb3B0aW9uc0xpc3QkOiBPYnNlcnZhYmxlPE1hdE9wdGlvbltdPiA9IHRoaXMuX29wdGlvbnMkLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoX29wdGlvbnM6IFF1ZXJ5TGlzdDxNYXRPcHRpb24+KTogT2JzZXJ2YWJsZTxhbnk+ID0+IF9vcHRpb25zXG4gICAgICAgICAgICA/IF9vcHRpb25zLmNoYW5nZXMucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKG9wdGlvbnM6IGFueSk6IGFueSA9PiBvcHRpb25zLnRvQXJyYXkoKSksXG4gICAgICAgICAgICAgICAgc3RhcnRXaXRoPE1hdE9wdGlvbltdPihfb3B0aW9ucy50b0FycmF5KCkpLClcbiAgICAgICAgICAgIDogb2YobnVsbClcbiAgICAgICAgKVxuICAgICk7XG5cbiAgICBwcml2YXRlIG9wdGlvbnNMZW5ndGgkOiBPYnNlcnZhYmxlPG51bWJlcj4gPSB0aGlzLm9wdGlvbnNMaXN0JC5waXBlKFxuICAgICAgICBtYXAoKG9wdGlvbnM6IE1hdE9wdGlvbltdKTogbnVtYmVyID0+IG9wdGlvbnMgPyBvcHRpb25zLmxlbmd0aCA6IDApXG4gICAgKTtcblxuICAgIC8vIFZhbG9yZXMgcHJldmlhbWVudGUgc2VsZWNpb25hZG9zIGFvIHVzYXIgPG1hdC1zZWxlY3QgW211bHRpcGxlXT1cInRydWVcIj5cbiAgICBwcml2YXRlIHByZXZpb3VzU2VsZWN0ZWRWYWx1ZXM6IGFueVtdO1xuXG4gICAgcHVibGljIF9mb3JtQ29udHJvbDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycpO1xuXG4gICAgLy8gU2UgZGV2ZSBtb3N0cmFyIGEgbWVuc2FnZW0gc2VtIGVudHJhZGFzIGVuY29udHJhZGFzXG4gICAgcHVibGljIF9zaG93Tm9FbnRyaWVzRm91bmQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgIHRoaXMuX2Zvcm1Db250cm9sLnZhbHVlQ2hhbmdlcyxcbiAgICAgICAgdGhpcy5vcHRpb25zTGVuZ3RoJFxuICAgIF0pLnBpcGUoXG4gICAgICAgIG1hcCgoW3ZhbHVlLCBvcHRpb25zTGVuZ3RoXTogW2FueSwgbnVtYmVyXSk6IGJvb2xlYW4gPT4gdGhpcy5ub0VudHJpZXNGb3VuZExhYmVsICYmIHZhbHVlXG4gICAgICAgICAgICAmJiBvcHRpb25zTGVuZ3RoID09PSB0aGlzLmdldE9wdGlvbnNMZW5ndGhPZmZzZXQoKSlcbiAgICApO1xuXG4gICAgLy8gU3ViamVjdCBlbWl0aWRvIHF1YW5kbyBvIGNvbXBvbmVudGUgZm9pIGRlc3RydcOtZG9cbiAgICBwcml2YXRlIF9vbkRlc3Ryb3k6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLy8gUmVmZXLDqm5jaWEgYW8gZGVzY2VuZGVudGUgYXRpdm8gcGFyYSBzdXBvcnRlIEFSSUEuXG4gICAgcHJpdmF0ZSBhY3RpdmVEZXNjZW5kYW50OiBIVE1MRWxlbWVudDtcblxuICAgIHByaXZhdGUgYXBwbHlEZWZhdWx0T3B0aW9ucyhkZWZhdWx0T3B0aW9uczogSXRzc1NlbGVjdFNlYXJjaE9wdGlvbnMpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFkZWZhdWx0T3B0aW9ucykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgY29uZmlndXJhYmxlRGVmYXVsdE9wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChkZWZhdWx0T3B0aW9ucy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgKHRoaXNba2V5XSBhcyBhbnkpID0gZGVmYXVsdE9wdGlvbnNba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBEZWZpbmlyIGNsYXNzZSBkZSBvcMOnw6NvIG1hdCBwZXJzb25hbGl6YWRhIHNlIG8gY29tcG9uZW50ZSBmb2kgY29sb2NhZG8gZGVudHJvIGRlIHVtYSBvcMOnw6NvIG1hdFxuICAgICAgICBpZiAodGhpcy5tYXRPcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMubWF0T3B0aW9uLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMubWF0T3B0aW9uLl9nZXRIb3N0RWxlbWVudCgpLmNsYXNzTGlzdC5hZGQoJ2NvbnRhaW5zLW1hdC1zZWxlY3Qtc2VhcmNoJyk7XG4gICAgICAgICAgICB0aGlzLm1hdE9wdGlvbi5fZ2V0SG9zdEVsZW1lbnQoKS5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgJ3RydWUnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJzxpdHNzLWlucHV0LXNlYXJjaD4gZGV2ZSBzZXIgY29sb2NhZG8gZGVudHJvIGRlIHVtIGVsZW1lbnRvIDxtYXQtb3B0aW9uPicpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUXVhbmRvIG8gcGFpbmVsIHN1c3BlbnNvIGRlIHNlbGXDp8OjbyDDqSBhYmVydG8gb3UgZmVjaGFkb1xuICAgICAgICB0aGlzLm1hdFNlbGVjdC5vcGVuZWRDaGFuZ2VcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGRlbGF5KDEpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChvcGVuZWQ6IGJvb2xlYW4pOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICBpZiAob3BlbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlSW5wdXRXaWR0aCgpO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIEZvY2FyIG8gY2FtcG8gZGUgcGVzcXVpc2EgYW8gYWJyaXJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVJbml0aWFsRm9jdXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2ZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBMaW1ww6EtbG8gYW8gZmVjaGFyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmNsZWFyU2VhcmNoSW5wdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3Jlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAvLyBEZWZpbmlyIG8gcHJpbWVpcm8gaXRlbSBhdGl2byBhcMOzcyBhcyBvcMOnw7VlcyBhbHRlcmFkYXNcbiAgICAgICAgdGhpcy5tYXRTZWxlY3Qub3BlbmVkQ2hhbmdlXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3B0aW9ucyA9IHRoaXMubWF0U2VsZWN0Lm9wdGlvbnM7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gVmFyacOhdmVsIGRlIGZlY2hhbWVudG8gcGFyYSByYXN0cmVhciBhIHByaW1laXJhIG9ww6fDo28gbWFpcyByZWNlbnRlLlxuICAgICAgICAgICAgICAgICAgICAvLyBQYXJhIGV2aXRhciBxdWUgYSBsaXN0YSByb2xlIHBhcmEgbyB0b3BvIHF1YW5kbyBhcyBvcMOnw7VlcyBzw6NvIGFkaWNpb25hZGFzIGFvIGZpbmFsIGRhIGxpc3RhXG4gICAgICAgICAgICAgICAgICAgIC8vIChwb3IgZXhlbXBsbzogcm9sYWdlbSBpbmZpbml0YSksIGNvbXBhcmFtb3MgYXBlbmFzIGFzIGFsdGVyYcOnw7VlcyBuYXMgcHJpbWVpcmFzIG9ww6fDtWVzIHBhcmFcbiAgICAgICAgICAgICAgICAgICAgLy8gZGV0ZXJtaW5hciBzZSBkZXZlbW9zIGRlZmluaXIgbyBwcmltZWlybyBpdGVtIGNvbW8gYXRpdm8uIElzc28gZXZpdGEgYSByb2xhZ2VtIGRlc25lY2Vzc8OhcmlhXG4gICAgICAgICAgICAgICAgICAgIC8vIHBhcmEgbyB0b3BvIGRhIGxpc3RhIHF1YW5kbyBhcyBvcMOnw7VlcyBzw6NvIGFuZXhhZGFzLCBtYXMgcGVybWl0ZSBxdWUgbyBwcmltZWlybyBpdGVtIGRhIGxpc3RhXG4gICAgICAgICAgICAgICAgICAgIC8vIHNlamEgZGVmaW5pZG8gY29tbyBhdGl2byBwb3IgcGFkcsOjbyBxdWFuZG8gbsOjbyBow6Egc2VsZcOnw6NvIGF0aXZhLlxuICAgICAgICAgICAgICAgICAgICBsZXQgcHJldmlvdXNGaXJzdE9wdGlvbjogTWF0T3B0aW9uID0gdGhpcy5fb3B0aW9ucy50b0FycmF5KClbdGhpcy5nZXRPcHRpb25zTGVuZ3RoT2Zmc2V0KCldO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9vcHRpb25zLmNoYW5nZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcCgoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEV2aXRhciBvIGVycm8gXCJleHByZXNzaW9uIGhhcyBiZWVuIGNoYW5nZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENvbnZlcnRlciBhIFF1ZXJ5TGlzdCBlbSB1bWEgbWF0cml6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zOiBNYXRPcHRpb25bXSA9IHRoaXMuX29wdGlvbnMudG9BcnJheSgpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBPIHZlcmRhZGVpcm8gcHJpbWVpcm8gaXRlbSDDqSBjb21wZW5zYWRvIHBvciAxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50Rmlyc3RPcHRpb246IE1hdE9wdGlvbiA9IG9wdGlvbnNbdGhpcy5nZXRPcHRpb25zTGVuZ3RoT2Zmc2V0KCldO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXlNYW5hZ2VyOiBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcjxNYXRPcHRpb24+ID0gdGhpcy5tYXRTZWxlY3QuX2tleU1hbmFnZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5TWFuYWdlciAmJiB0aGlzLm1hdFNlbGVjdC5wYW5lbE9wZW4pIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIERlZmluaXIgcHJpbWVpcm8gaXRlbSBhdGl2byBlIGxhcmd1cmEgZGUgZW50cmFkYVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVmVyaWZpcXVlIHNlIGEgcHJpbWVpcmEgb3DDp8OjbyBuZXNzYXMgYWx0ZXJhw6fDtWVzIMOpIGRpZmVyZW50ZSBkYSBhbnRlcmlvci5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaXJzdE9wdGlvbklzQ2hhbmdlZDogYm9vbGVhbiA9ICF0aGlzLm1hdFNlbGVjdC5jb21wYXJlV2l0aChwcmV2aW91c0ZpcnN0T3B0aW9uLCBjdXJyZW50Rmlyc3RPcHRpb24pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ0FTTzogQSBwcmltZWlyYSBvcMOnw6NvIMOpIGRpZmVyZW50ZSBhZ29yYS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJbmRpY2EgcXVlIGRldmVtb3MgZGVmaW5pLWxvIGNvbW8gYXRpdm8gZSByb2xhciBwYXJhIG8gdG9wby5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmlyc3RPcHRpb25Jc0NoYW5nZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgIWtleU1hbmFnZXIuYWN0aXZlSXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAhb3B0aW9ucy5maW5kKChvcHRpb246IE1hdE9wdGlvbik6IGJvb2xlYW4gPT4gdGhpcy5tYXRTZWxlY3QuY29tcGFyZVdpdGgob3B0aW9uLCBrZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0pKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlNYW5hZ2VyLnNldEZpcnN0SXRlbUFjdGl2ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFndWFyZGUgYXMgYWx0ZXJhw6fDtWVzIG5hIGxhcmd1cmEgZG8gcGFpbmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlSW5wdXRXaWR0aCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBdHVhbGl6ZSBub3NzYSByZWZlcsOqbmNpYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNGaXJzdE9wdGlvbiA9IGN1cnJlbnRGaXJzdE9wdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgICAgIC8vIEFkaWNpb25lIG91IHJlbW92YSBhIGNsYXNzZSBjc3MgZGVwZW5kZW5kbyBzZSBkZXNlamEgbW9zdHJhciBhIG1lbnNhZ2VtIHNlbSBlbnRyYWRhcyBlbmNvbnRyYWRhc1xuICAgICAgICAvLyBvYnM6IGlzc28gw6kgaGFja3lcbiAgICAgICAgdGhpcy5fc2hvd05vRW50cmllc0ZvdW5kJC5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSlcbiAgICAgICAgKS5zdWJzY3JpYmUoKHNob3dOb0VudHJpZXNGb3VuZDogYm9vbGVhbik6IHZvaWQgPT4ge1xuICAgICAgICAgICAgLy8gRGVmaW5pciBuZW5odW1hIGNsYXNzZSBkZSBlbnRyYWRhIGVuY29udHJhZGEgbmEgbWF0LW9wdGlvblxuICAgICAgICAgICAgaWYgKHRoaXMubWF0T3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNob3dOb0VudHJpZXNGb3VuZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hdE9wdGlvbi5fZ2V0SG9zdEVsZW1lbnQoKS5jbGFzc0xpc3QuYWRkKCdtYXQtc2VsZWN0LXNlYXJjaC1uby1lbnRyaWVzLWZvdW5kJyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXRPcHRpb24uX2dldEhvc3RFbGVtZW50KCkuY2xhc3NMaXN0LnJlbW92ZSgnbWF0LXNlbGVjdC1zZWFyY2gtbm8tZW50cmllcy1mb3VuZCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gUmVkaW1lbnNpb25lIGEgbGFyZ3VyYSBkZSBlbnRyYWRhIHF1YW5kbyBhIHZpZXdwb3J0IGZvciByZWRpbWVuc2lvbmFkYSxcbiAgICAgICAgLy8gb3Ugc2VqYSwgYSBsYXJndXJhIGRvIGFjaW9uYWRvciBwb2RlIHNlciByZWRpbWVuc2lvbmFkYS5cbiAgICAgICAgdGhpcy5fdmlld3BvcnRSdWxlci5jaGFuZ2UoKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXRTZWxlY3QucGFuZWxPcGVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlSW5wdXRXaWR0aCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuaW5pdE11bHRpcGxlSGFuZGxpbmcoKTtcblxuICAgICAgICB0aGlzLm9wdGlvbnNMaXN0JC5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSlcbiAgICAgICAgKS5zdWJzY3JpYmUoKCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgLy8gQXR1YWxpemFyIHZpc3VhbGl6YcOnw6NvIHF1YW5kbyBhcyBvcMOnw7VlcyBkaXNwb27DrXZlaXMgbXVkYXJlbVxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zZWFyY2hpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuX2Zvcm1Db250cm9sLmRpc2FibGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2Zvcm1Db250cm9sLmVuYWJsZSgpO1xuICAgICAgICAgICAgdGhpcy5fZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kubmV4dCgpO1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBvblRvdWNoZWQ6IEZ1bmN0aW9uID0gKF86IGFueSk6IHZvaWQgPT4geyB9O1xuXG4gICAgX2lzVG9nZ2xlQWxsQ2hlY2tib3hWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tYXRTZWxlY3QubXVsdGlwbGUgJiYgdGhpcy5zaG93VG9nZ2xlQWxsQ2hlY2tib3g7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWFuaXB1bGEgbyBldmVudG8gZGUgdGVjbGEgcHJlc3Npb25hZGEgY29tIE1hdFNlbGVjdC5cbiAgICAgKiBQZXJtaXRlLCBwb3IgZXguIHNlbGVjaW9uYW5kbyBjb20gYSB0ZWNsYSBlbnRlciwgbmF2ZWdhbmRvIGNvbSBhcyB0ZWNsYXMgZGUgc2V0YSwgZXRjLlxuICAgICAqIEBwYXJhbSBldmVudFxuICAgICAqL1xuICAgIF9oYW5kbGVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIC8vIEV2aXRlIGEgcHJvcGFnYcOnw6NvIGRlIHRvZG9zIG9zIGNhcmFjdGVyZXMgYWxmYW51bcOpcmljb3MgcGFyYSBldml0YXIgcHJvYmxlbWFzIGRlIHNlbGXDp8Ojb1xuICAgICAgICBpZiAoKGV2ZW50LmtleSAmJiBldmVudC5rZXkubGVuZ3RoID09PSAxKSB8fFxuICAgICAgICAgICAgKGV2ZW50LmtleUNvZGUgPj0gQSAmJiBldmVudC5rZXlDb2RlIDw9IFopIHx8XG4gICAgICAgICAgICAoZXZlbnQua2V5Q29kZSA+PSBaRVJPICYmIGV2ZW50LmtleUNvZGUgPD0gTklORSkgfHxcbiAgICAgICAgICAgIChldmVudC5rZXlDb2RlID09PSBTUEFDRSlcbiAgICAgICAgICAgIHx8ICh0aGlzLnByZXZlbnRIb21lRW5kS2V5UHJvcGFnYXRpb24gJiYgKGV2ZW50LmtleUNvZGUgPT09IEhPTUUgfHwgZXZlbnQua2V5Q29kZSA9PT0gRU5EKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1hdFNlbGVjdC5tdWx0aXBsZSAmJiBldmVudC5rZXkgJiYgZXZlbnQua2V5Q29kZSA9PT0gRU5URVIpIHtcbiAgICAgICAgICAgIC8vIFJlY3VwZXJlIG8gZm9jbyBhcMOzcyBhIHNlbGXDp8OjbyBtw7psdGlwbGEsIHBhcmEgcXVlIHBvc3NhbW9zIGRpZ2l0YXIgYWluZGEgbWFpc1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKTogdm9pZCA9PiB0aGlzLl9mb2N1cygpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENhc28gZXNwZWNpYWwsIHNlIGNsaWNhciBlbSBFc2NhcGUsIHNlIGEgZW50cmFkYSBlc3RpdmVyIHZhemlhLCBmZWNoZSBvIG1lbnUgc3VzcGVuc28sIGNhc28gY29udHLDoXJpbywgZXN2YXppZSBvIGNhbXBvIGRlIHBlc3F1aXNhXG4gICAgICAgIGlmICh0aGlzLmVuYWJsZUNsZWFyT25Fc2NhcGVQcmVzc2VkID09PSB0cnVlICYmIGV2ZW50LmtleUNvZGUgPT09IEVTQ0FQRSAmJiB0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl9yZXNldCh0cnVlKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWFuaXB1bGEgbyBldmVudG8gZGUgYXRpdmHDp8OjbyBkZSBjaGF2ZSBjb20gTWF0U2VsZWN0LlxuICAgICAqIFBlcm1pdGUsIHBvciBleC4gbyBhbsO6bmNpbyBkbyBEZXNjZW5kZW50ZSBhdHVhbG1lbnRlIGF0aXZvIHBvciBsZWl0b3JlcyBkZSB0ZWxhLlxuICAgICAqL1xuICAgIF9oYW5kbGVLZXl1cChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gVVBfQVJST1cgfHwgZXZlbnQua2V5Q29kZSA9PT0gRE9XTl9BUlJPVykge1xuICAgICAgICAgICAgY29uc3QgYXJpYUFjdGl2ZURlc2NlbmRhbnRJZDogc3RyaW5nID0gdGhpcy5tYXRTZWxlY3QuX2dldEFyaWFBY3RpdmVEZXNjZW5kYW50KCk7XG4gICAgICAgICAgICBjb25zdCBpbmRleDogbnVtYmVyID0gdGhpcy5fb3B0aW9ucy50b0FycmF5KCkuZmluZEluZGV4KChpdGVtOiBNYXRPcHRpb24pOiBib29sZWFuID0+IGl0ZW0uaWQgPT09IGFyaWFBY3RpdmVEZXNjZW5kYW50SWQpO1xuICAgICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIHRoaXMudW5zZWxlY3RBY3RpdmVEZXNjZW5kYW50KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50ID0gdGhpcy5fb3B0aW9ucy50b0FycmF5KClbaW5kZXhdLl9nZXRIb3N0RWxlbWVudCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlRGVzY2VuZGFudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtc2VsZWN0ZWQnLCAndHJ1ZScpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoU2VsZWN0SW5wdXQubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCcsIGFyaWFBY3RpdmVEZXNjZW5kYW50SWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2xhc3RFeHRlcm5hbElucHV0VmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIG9uQmx1cigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51bnNlbGVjdEFjdGl2ZURlc2NlbmRhbnQoKTtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgIGZpbHRlcigodmFsdWU6IGFueSk6IGJvb2xlYW4gPT4gdmFsdWUgIT09IHRoaXMuX2xhc3RFeHRlcm5hbElucHV0VmFsdWUpLFxuICAgICAgICAgICAgdGFwKCgpOiBhbnkgPT4gdGhpcy5fbGFzdEV4dGVybmFsSW5wdXRWYWx1ZSA9IHVuZGVmaW5lZCksXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95KVxuICAgICAgICApLnN1YnNjcmliZShmbik7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IEZ1bmN0aW9uKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRm9jYWxpemEgbyBjYW1wbyBkZSBlbnRyYWRhIGRlIHBlc3F1aXNhXG4gICAgICovXG4gICAgcHVibGljIF9mb2N1cygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnNlYXJjaFNlbGVjdElucHV0IHx8ICF0aGlzLm1hdFNlbGVjdC5wYW5lbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIHNhbHZlIGUgcmVzdGF1cmUgbyBzY3JvbGxUb3AgZG8gcGFpbmVsLCBwb2lzIHNlcsOhIHJlZGVmaW5pZG8gcG9yIGZvY3VzICgpXG4gICAgICAgIC8vIG9iczogaXNzbyDDqSBoYWNreVxuICAgICAgICBjb25zdCBwYW5lbDogYW55ID0gdGhpcy5tYXRTZWxlY3QucGFuZWwubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3Qgc2Nyb2xsVG9wOiBhbnkgPSBwYW5lbC5zY3JvbGxUb3A7XG5cbiAgICAgICAgLy8gU2V0YSBvIGZvY29cbiAgICAgICAgdGhpcy5zZWFyY2hTZWxlY3RJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG5cbiAgICAgICAgcGFuZWwuc2Nyb2xsVG9wID0gc2Nyb2xsVG9wO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZGVmaW5lIG8gdmFsb3IgZGUgcGVzcXVpc2EgYXR1YWxcbiAgICAgKiBAcGFyYW0gZm9jdXMgc2UgZGV2ZSBmb2NhciBhcMOzcyBhIHJlZGVmaW5pw6fDo29cbiAgICAgKi9cbiAgICBwdWJsaWMgX3Jlc2V0KGZvY3VzPzogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9mb3JtQ29udHJvbC5zZXRWYWx1ZSgnJyk7XG4gICAgICAgIGlmIChmb2N1cykge1xuICAgICAgICAgICAgdGhpcy5fZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluaWNpYWxpemEgYSBtYW5pcHVsYcOnw6NvIDxtYXQtc2VsZWN0IFttdWx0aXBsZV09XCJ0cnVlXCI+XG4gICAgICogTm90YTogcGFyYSBtZWxob3JhciBlc3RlIGPDs2RpZ28sIG1hdC1zZWxlY3QgZGV2ZSBzZXIgZXN0ZW5kaWRvIHBhcmEgcGVybWl0aXIgZGVzYWJpbGl0YXIgYSByZWRlZmluacOnw6NvIGRhIHNlbGXDp8OjbyBkdXJhbnRlIGEgZmlsdHJhZ2VtLlxuICAgICAqL1xuICAgIHByaXZhdGUgaW5pdE11bHRpcGxlSGFuZGxpbmcoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5tYXRTZWxlY3QubmdDb250cm9sKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5tYXRTZWxlY3QubXVsdGlwbGUpIHtcbiAgICAgICAgICAgICAgICAvLyBub3RhOiBvIGFjZXNzbyBhIG1hdFNlbGVjdC5uZ0NvbnRyb2wgKGVtIHZleiBkZSBtYXRTZWxlY3QudmFsdWUgLyBtYXRTZWxlY3QudmFsdWVDaGFuZ2VzKVxuICAgICAgICAgICAgICAgIC8vIMOpIG5lY2Vzc8OhcmlvIHBhcmEgZnVuY2lvbmFyIGNvcnJldGFtZW50ZSBubyBtb2RvIGRlIHNlbGXDp8OjbyBtw7psdGlwbGEuXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignbyBtYXQtc2VsZWN0IGNvbnRlbmRvIGl0c3MtaW5wdXQtc2VhcmNoIGRldmUgdGVyIHVtYSBkaXJldGl2YSBuZ01vZGVsIG91IGZvcm1Db250cm9sIHF1YW5kbyBtdWx0aXBsZT10cnVlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gU2UgPG1hdC1zZWxlY3QgW211bHRpcGxlXT1cInRydWVcIj5cbiAgICAgICAgLy8gYXJtYXplbmFyIHZhbG9yZXMgcHJldmlhbWVudGUgc2VsZWNpb25hZG9zIGUgcmVzdGF1csOhLWxvcyBxdWFuZG8gZm9yZW0gZGVzbWFyY2Fkb3NcbiAgICAgICAgLy8gcG9ycXVlIGEgb3DDp8OjbyBuw6NvIGVzdMOhIGRpc3BvbsOtdmVsIGVucXVhbnRvIGVzdGFtb3MgZmlsdHJhbmRvXG4gICAgICAgIHRoaXMucHJldmlvdXNTZWxlY3RlZFZhbHVlcyA9IHRoaXMubWF0U2VsZWN0Lm5nQ29udHJvbC52YWx1ZTtcblxuICAgICAgICB0aGlzLm1hdFNlbGVjdC5uZ0NvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95KSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlczogYW55KTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHJlc3RvcmVTZWxlY3RlZFZhbHVlczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWF0U2VsZWN0Lm11bHRpcGxlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgodGhpcy5hbHdheXNSZXN0b3JlU2VsZWN0ZWRPcHRpb25zTXVsdGkgfHwgKHRoaXMuX2Zvcm1Db250cm9sLnZhbHVlICYmIHRoaXMuX2Zvcm1Db250cm9sLnZhbHVlLmxlbmd0aCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiB0aGlzLnByZXZpb3VzU2VsZWN0ZWRWYWx1ZXMgJiYgQXJyYXkuaXNBcnJheSh0aGlzLnByZXZpb3VzU2VsZWN0ZWRWYWx1ZXMpKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdmFsdWVzIHx8ICFBcnJheS5pc0FycmF5KHZhbHVlcykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXMgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uVmFsdWVzOiBhbnlbXSA9IHRoaXMubWF0U2VsZWN0Lm9wdGlvbnMubWFwKChvcHRpb246IE1hdE9wdGlvbik6IGFueSA9PiBvcHRpb24udmFsdWUpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByZXZpb3VzU2VsZWN0ZWRWYWx1ZXMuZm9yRWFjaCgocHJldmlvdXNWYWx1ZTogYW55KTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZXMuc29tZSgodjogYW55KTogYm9vbGVhbiA9PiB0aGlzLm1hdFNlbGVjdC5jb21wYXJlV2l0aCh2LCBwcmV2aW91c1ZhbHVlKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgIW9wdGlvblZhbHVlcy5zb21lKCh2OiBhbnkpOiBib29sZWFuID0+IHRoaXMubWF0U2VsZWN0LmNvbXBhcmVXaXRoKHYsIHByZXZpb3VzVmFsdWUpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTZSB1bSB2YWxvciBxdWUgZm9pIHNlbGVjaW9uYWRvIGFudGVzIGZvciBkZXNtYXJjYWRvIGUgbsOjbyBlbmNvbnRyYWRvIG5hcyBvcMOnw7VlcywgZWxlIGZvaSBkZXNtYXJjYWRvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRldmlkbyDDoCBmaWx0cmFnZW0sIGVudMOjbyByZXN0YXVyYW1vcy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2gocHJldmlvdXNWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3RvcmVTZWxlY3RlZFZhbHVlcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5wcmV2aW91c1NlbGVjdGVkVmFsdWVzID0gdmFsdWVzO1xuXG4gICAgICAgICAgICAgICAgaWYgKHJlc3RvcmVTZWxlY3RlZFZhbHVlcykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hdFNlbGVjdC5fb25DaGFuZ2UodmFsdWVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAgRGVmaW5hIGEgbGFyZ3VyYSBkbyBpbm5lclNlbGVjdFNlYXJjaCBwYXJhIGFqdXN0YXIgYXTDqSBtZXNtbyBhcyBiYXJyYXMgZGUgcm9sYWdlbSBwZXJzb25hbGl6YWRhc1xuICAgICAqICBFIGFwb2lhciB0b2RvcyBvcyBzaXN0ZW1hcyBkZSBvcGVyYcOnw6NvXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZUlucHV0V2lkdGgoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pbm5lclNlbGVjdFNlYXJjaCB8fCAhdGhpcy5pbm5lclNlbGVjdFNlYXJjaC5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gdGhpcy5pbm5lclNlbGVjdFNlYXJjaC5uYXRpdmVFbGVtZW50O1xuICAgICAgICBsZXQgcGFuZWxFbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgICAgICAgd2hpbGUgKGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGlmIChlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnbWF0LXNlbGVjdC1wYW5lbCcpKSB7XG4gICAgICAgICAgICAgICAgcGFuZWxFbGVtZW50ID0gZWxlbWVudDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAocGFuZWxFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmlubmVyU2VsZWN0U2VhcmNoLm5hdGl2ZUVsZW1lbnQuc3R5bGUud2lkdGggPSBwYW5lbEVsZW1lbnQuY2xpZW50V2lkdGggKyAncHgnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lIG8gZGVzbG9jYW1lbnRvIHBhcmEgbyBjb21wcmltZW50byBxdWUgcG9kZSBzZXIgY2F1c2FkbyBwZWxvIG1hdE9wdGlvbiBvcGNpb25hbCB1c2FkbyBjb21vIHVtYSBlbnRyYWRhIGRlIHBlc3F1aXNhLlxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0T3B0aW9uc0xlbmd0aE9mZnNldCgpOiBudW1iZXIge1xuICAgICAgICBpZiAodGhpcy5tYXRPcHRpb24pIHtcbiAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVuc2VsZWN0QWN0aXZlRGVzY2VuZGFudCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlRGVzY2VuZGFudCkge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50LnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1zZWxlY3RlZCcpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VhcmNoU2VsZWN0SW5wdXQubmF0aXZlRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCcpO1xuICAgIH1cblxuXG59XG4iXX0=
|
547
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXNlYXJjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ2lwaXNpc3RlbWFzL25nLWNvcmUvIiwic291cmNlcyI6WyJzaGFyZWQvY29tcG9uZW50cy9zZWxlY3QtZW50aXR5LXBhZ2VkL3NoYXJlZC9zZWxlY3Qtc2VhcmNoL3NlbGVjdC1zZWFyY2guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsT0FBTyxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzUCxPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0UsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVB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QUNJLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBaUMsRUFBRSxDQUFDLHVCQUFxQixDQUFDO2dCQUNsRixLQUFLLEVBQUUsSUFBSTthQUNkO1NBQ0o7UUFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7S0FDbEQsQ0FBQztJQXdCTyxXQUFBLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUdqQixXQUFBLFFBQVEsRUFBRSxDQUFBLEVBQUUsV0FBQSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDN0IsV0FBQSxRQUFRLEVBQUUsQ0FBQSxFQUFFLFdBQUEsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFBO0lBQ2hDLFdBQUEsUUFBUSxFQUFFLENBQUEsRUFBRSxXQUFBLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFBO3FDQUxsQixTQUFTO1FBQ3BCLGlCQUFpQjtRQUNuQixhQUFhO1FBQ1ksU0FBUztRQUNILFlBQVk7R0EzQjlELHFCQUFxQixDQThmakM7U0E5ZlkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBBLCBET1dOX0FSUk9XLCBFTkQsIEVOVEVSLCBFU0NBUEUsIEhPTUUsIE5JTkUsIFNQQUNFLCBVUF9BUlJPVywgWiwgWkVSTyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBWaWV3cG9ydFJ1bGVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCwgT3V0cHV0LCBRdWVyeUxpc3QsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZCwgTWF0T3B0aW9uLCBNYXRTZWxlY3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWxheSwgZmlsdGVyLCBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgSVRTU19TRUxFQ1RfU0VBUkNIX0RFRkFVTFRfT1BUSU9OUywgSXRzc1NlbGVjdFNlYXJjaE9wdGlvbnMsIGNvbmZpZ3VyYWJsZURlZmF1bHRPcHRpb25zIH0gZnJvbSAnLi4vZGVmYXVsdC1vcHRpb25zJztcbmltcG9ydCB7IFNlbGVjdE5vRW50cmllc0ZvdW5kRGlyZWN0aXZlIH0gZnJvbSAnLi4vc2VsZWN0LW5vLWVudHJpZXMtZm91bmQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNlbGVjdFNlYXJjaENsZWFyRGlyZWN0aXZlIH0gZnJvbSAnLi4vc2VsZWN0LXNlYXJjaC1jbGVhci5kaXJlY3RpdmUnO1xuXG4vKipcbiAqIEVzdGUgY29tcG9uZW50ZSBmb2kgcmVlc2NyaXRvIHV0aWxpemFuZG8gc2UgZG8gcHJvamV0byBhIHNlZ3VpclxuICogaHR0cHM6Ly9naXRodWIuY29tL2JpdGhvc3QtZ21iaC9uZ3gtbWF0LXNlbGVjdC1zZWFyY2hcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpdHNzLWlucHV0LXNlYXJjaCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC1zZWFyY2guY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlbGVjdC1zZWFyY2guY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKTogdHlwZW9mIFNlbGVjdFNlYXJjaENvbXBvbmVudCA9PiBTZWxlY3RTZWFyY2hDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0U2VhcmNoQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcywgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gICAgLy8gVmFsb3IgZGUgcGVzcXVpc2EgYXR1YWxcbiAgICBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1Db250cm9sLnZhbHVlO1xuICAgIH1cblxuICAgIC8vIFJlZmVyw6puY2lhIMOgcyBvcMOnw7VlcyBNYXRTZWxlY3RcbiAgICBwdWJsaWMgc2V0IF9vcHRpb25zKF9vcHRpb25zOiBRdWVyeUxpc3Q8TWF0T3B0aW9uPikge1xuICAgICAgICB0aGlzLl9vcHRpb25zJC5uZXh0KF9vcHRpb25zKTtcbiAgICB9XG4gICAgcHVibGljIGdldCBfb3B0aW9ucygpOiBRdWVyeUxpc3Q8TWF0T3B0aW9uPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vcHRpb25zJC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIC8vIEFkaWNpb25hIGEgY2xhc3NlIG1hdC1zZWxlY3Qtc2VhcmNoLWluc2lkZS1tYXQtb3B0aW9uIHNlIG8gaXRzcy1zZWxlY3Qtc2VhcmNoIGVzdGl2ZXJcbiAgICAvLyBkZW50cm8gZG8gbWF0LW9wdGlvblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MubWF0LXNlbGVjdC1zZWFyY2gtaW5zaWRlLW1hdC1vcHRpb24nKVxuICAgIGdldCBpc0luc2lkZU1hdE9wdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5tYXRPcHRpb247XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoTWF0U2VsZWN0KSBwdWJsaWMgbWF0U2VsZWN0OiBNYXRTZWxlY3QsXG4gICAgICAgIHB1YmxpYyBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgX3ZpZXdwb3J0UnVsZXI6IFZpZXdwb3J0UnVsZXIsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTWF0T3B0aW9uKSBwdWJsaWMgbWF0T3B0aW9uOiBNYXRPcHRpb24gPSBudWxsLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1hdEZvcm1GaWVsZCkgcHVibGljIG1hdEZvcm1GaWVsZDogTWF0Rm9ybUZpZWxkID0gbnVsbCxcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChJVFNTX1NFTEVDVF9TRUFSQ0hfREVGQVVMVF9PUFRJT05TKSBkZWZhdWx0T3B0aW9ucz86IEl0c3NTZWxlY3RTZWFyY2hPcHRpb25zXG4gICAgKSB7XG4gICAgICAgIHRoaXMuYXBwbHlEZWZhdWx0T3B0aW9ucyhkZWZhdWx0T3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLy8gUsOzdHVsbyBkbyBtYXJjYWRvciBkZSBwb3Npw6fDo28gZGUgcGVzcXVpc2FcbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlckxhYmVsOiBzdHJpbmcgPSAnUGVzcXVpc2FyLi4uJztcblxuICAgIC8vIFRpcG8gZG8gY2FtcG8gZGUgZW50cmFkYSBkZSBwZXNxdWlzYVxuICAgIEBJbnB1dCgpIHR5cGU6IHN0cmluZyA9ICd0ZXh0JztcblxuICAgIC8vIMONY29uZSBiYXNlYWRvIGVtIGZvbnRlIHVzYWRvIHBhcmEgZXhpYmlyIENsb3NlLUljb25cbiAgICBASW5wdXQoKSBjbG9zZUljb246IHN0cmluZyA9ICdjbG9zZSc7XG5cbiAgICAvLyDDjWNvbmUgYmFzZWFkbyBlbSBTdmcgdXNhZG8gcGFyYSBleGliaXIgQ2xvc2UtSWNvbi4gU2UgZGVmaW5pZG8sIENsb3NlLUljb24gw6kgc3Vic3RpdHXDrWRvXG4gICAgQElucHV0KCkgY2xvc2VTdmdJY29uPzogc3RyaW5nO1xuXG4gICAgLy8gUsOzdHVsbyBhIHNlciBtb3N0cmFkbyBxdWFuZG8gbmVuaHVtYSBlbnRyYWRhIGZvciBlbmNvbnRyYWRhLiBEZWZpbmEgY29tbyBudWxvIHNlIG5lbmh1bWEgbWVuc2FnZW0gZGV2ZSBzZXIgbW9zdHJhZGFcbiAgICBASW5wdXQoKSBub0VudHJpZXNGb3VuZExhYmVsOiBzdHJpbmcgPSAnTmVuaHVtIHJlc3VsdGFkbyBlbmNvbnRyYWRvJztcblxuICAgIC8qKlxuICAgICAqIFNlIG8gY2FtcG8gZGUgcGVzcXVpc2EgZGV2ZSBvdSBuw6NvIHNlciBsaW1wbyBhcMOzcyBvIG1lbnUgc3VzcGVuc28gc2VyIGZlY2hhZG8uXG4gICAgICogw5p0aWwgcGFyYSBmaWx0cmFnZW0gZG8gbGFkbyBkbyBzZXJ2aWRvci4gVmVqYSBbIzNdKGh0dHBzOi8vZ2l0aHViLmNvbS9iaXRob3N0LWdtYmgvbmd4LW1hdC1zZWxlY3Qtc2VhcmNoL2lzc3Vlcy8zKVxuICAgICAqL1xuICAgIEBJbnB1dCgpIGNsZWFyU2VhcmNoSW5wdXQ6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLy8gU2UgZGV2ZSBtb3N0cmFyIG8gaW5kaWNhZG9yIGRlIHBlc3F1aXNhIGVtIGFuZGFtZW50b1xuICAgIEBJbnB1dCgpIHNlYXJjaGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLy8gRGVzYXRpdmEgbyBmb2NvIGluaWNpYWwgZG8gY2FtcG8gZGUgZW50cmFkYVxuICAgIEBJbnB1dCgpIGRpc2FibGVJbml0aWFsRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8vIEF0aXZhciBsaW1wYXIgaW5wdXQgYW8gcHJlc3Npb25hciBlc2NhcGVcbiAgICBASW5wdXQoKSBlbmFibGVDbGVhck9uRXNjYXBlUHJlc3NlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogSW1wZWRlIHF1ZSBhIGNoYXZlIGhvbWUvZW5kIHNlamEgcHJvcGFnYWRhIHBhcmEgbWF0LXNlbGVjdCxcbiAgICAgKiBwZXJtaXRpbmRvIG1vdmVyIG8gY3Vyc29yIGRlbnRybyBkYSBlbnRyYWRhIGRlIHBlc3F1aXNhIGVtIHZleiBkZSBuYXZlZ2FyIHBlbGFzIG9ww6fDtWVzXG4gICAgICovXG4gICAgQElucHV0KCkgcHJldmVudEhvbWVFbmRLZXlQcm9wYWdhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLy8gRGVzYXRpdmEgYSByb2xhZ2VtIHBhcmEgYXMgb3DDp8O1ZXMgYXRpdmFzIHF1YW5kbyBhIGxpc3RhIGRlIG9ww6fDtWVzIMOpIGFsdGVyYWRhLiDDmnRpbCBwYXJhIHBlc3F1aXNhIGRvIGxhZG8gZG8gc2Vydmlkb3JcbiAgICBASW5wdXQoKSBkaXNhYmxlU2Nyb2xsVG9BY3RpdmVPbk9wdGlvbnNDaGFuZ2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvLyBBZGljaW9uYSBzdXBvcnRlIGEgbGVpdG9yIGRlIHRlbGEgNTA4IHBhcmEgY2FpeGEgZGUgcGVzcXVpc2FcbiAgICBASW5wdXQoKSBhcmlhTGFiZWw6IHN0cmluZyA9ICdQZXNxdWlzYSBzdXNwZW5zYSc7XG5cbiAgICAvLyBTZSBkZXZlIG1vc3RyYXIgYSBjYWl4YSBkZSBzZWxlw6fDo28gU2VsZWNpb25hciB0dWRvIChwYXJhIG1hdC1zZWxlY3RbbXVsdGk9dHJ1ZV0pXG4gICAgQElucHV0KCkgc2hvd1RvZ2dsZUFsbENoZWNrYm94OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvLyBTZWxlY2lvbmUgdHVkbyBjYWl4YSBkZSBzZWxlw6fDo28gbWFyY2FkYSBlc3RhZG9cbiAgICBwcml2YXRlIF90b2dnbGVBbGxDaGVja2JveENoZWNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBzZXQgdG9nZ2xlQWxsQ2hlY2tib3hDaGVja2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3RvZ2dsZUFsbENoZWNrYm94Q2hlY2tlZCA9IHZhbHVlO1xuICAgICAgICB0aGlzLnRvZ2dsZUFsbC5lbWl0KHZhbHVlKTtcbiAgICB9XG4gICAgZ2V0IHRvZ2dsZUFsbENoZWNrYm94Q2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RvZ2dsZUFsbENoZWNrYm94Q2hlY2tlZDtcbiAgICB9XG5cbiAgICAvLyBNYXJxdWUgdG9kYXMgYXMgY2FpeGFzIGRlIHNlbGXDp8OjbyBlc3RhZG8gaW5kZXRlcm1pbmFkb1xuICAgIHByaXZhdGUgX3RvZ2dsZUFsbENoZWNrYm94SW5kZXRlcm1pbmF0ZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHNldCB0b2dnbGVBbGxDaGVja2JveEluZGV0ZXJtaW5hdGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fdG9nZ2xlQWxsQ2hlY2tib3hJbmRldGVybWluYXRlID0gdmFsdWU7XG4gICAgICAgIHRoaXMudG9nZ2xlQWxsSW5kZXRlcm1pbmF0ZS5lbWl0KHZhbHVlKTtcbiAgICB9XG4gICAgZ2V0IHRvZ2dsZUFsbENoZWNrYm94SW5kZXRlcm1pbmF0ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RvZ2dsZUFsbENoZWNrYm94SW5kZXRlcm1pbmF0ZTtcbiAgICB9XG5cbiAgICAvLyBFeGliaXIgdW1hIG1lbnNhZ2VtIGVtIHVtYSBkaWNhIGRlIGZlcnJhbWVudGEgbmEgY2FpeGEgZGUgc2VsZcOnw6NvIGRlIGFsdGVybmFyIHR1ZG9cbiAgICBASW5wdXQoKSB0b2dnbGVBbGxDaGVja2JveFRvb2x0aXBNZXNzYWdlOiBzdHJpbmcgPSAnJztcblxuICAgIC8vIERlZmluYSBhIHBvc2nDp8OjbyBkYSBkaWNhIGRlIGZlcnJhbWVudGEgbmEgY2FpeGEgZGUgc2VsZcOnw6NvIGRlIGFsdGVybmFyIHR1ZG8uXG4gICAgQElucHV0KCkgdG9nZ2xlQWxsQ2hlY2tib3hUb29sdGlwUG9zaXRpb246ICdsZWZ0JyB8ICdyaWdodCcgfCAnYWJvdmUnIHwgJ2JlbG93JyB8ICdiZWZvcmUnIHwgJ2FmdGVyJyA9ICdiZWxvdyc7XG5cbiAgICAvLyBNb3N0cmFyL29jdWx0YXIgbyBib3TDo28gbGltcGFyIHBlc3F1aXNhIGRhIGVudHJhZGEgZGUgcGVzcXVpc2FcbiAgICBASW5wdXQoKSBoaWRlQ2xlYXJTZWFyY2hCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFNlbXByZSByZXN0YXVyZSBhcyBvcMOnw7VlcyBzZWxlY2lvbmFkYXMgbmEgc2VsZcOnw6NvIEFsdGVyZSBwYXJhIG8gbW9kbyBtdWx0aSAocG9yIGV4ZW1wbG8sIHBhcmEgY2FycmVnYW1lbnRvIGxlbnRvL3JvbGFnZW0gaW5maW5pdGEpLlxuICAgICAqIE8gcGFkcsOjbyDDqSBmYWxzbywgcG9ydGFudG8sIGFzIG9ww6fDtWVzIHNlbGVjaW9uYWRhcyBzw6NvIHJlc3RhdXJhZGFzIGFwZW5hcyBlbnF1YW50byBhIGZpbHRyYWdlbSBlc3TDoSBhdGl2YS5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBhbHdheXNSZXN0b3JlU2VsZWN0ZWRPcHRpb25zTXVsdGk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8vIEVtaXNzb3IgZGUgc2HDrWRhIHBhcmEgZW52aWFyIGFvIGNvbXBvbmVudGUgcGFpIGNvbSBhIGFsdGVybsOibmNpYSBkZSB0b2RvcyBvcyBib29sZWFub3NcbiAgICBAT3V0cHV0KCkgdG9nZ2xlQWxsOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgQE91dHB1dCgpIHRvZ2dsZUFsbEluZGV0ZXJtaW5hdGU6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8vIFJlZmVyw6puY2lhIGFvIGNhbXBvIGRlIGVudHJhZGEgZGUgcGVzcXVpc2FcbiAgICBAVmlld0NoaWxkKCdzZWFyY2hTZWxlY3RJbnB1dCcsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pIHNlYXJjaFNlbGVjdElucHV0OiBFbGVtZW50UmVmO1xuXG4gICAgLy8gUmVmZXLDqm5jaWEgYW8gY2FtcG8gZGUgZW50cmFkYSBkZSBwZXNxdWlzYVxuICAgIEBWaWV3Q2hpbGQoJ2lubmVyU2VsZWN0U2VhcmNoJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWUgfSkgaW5uZXJTZWxlY3RTZWFyY2g6IEVsZW1lbnRSZWY7XG5cbiAgICAvLyBSZWZlcsOqbmNpYSBhbyDDrWNvbmUgY2xhcm8gZGUgZW50cmFkYSBkZSBwZXNxdWlzYSBwZXJzb25hbGl6YWRhXG4gICAgQENvbnRlbnRDaGlsZChTZWxlY3RTZWFyY2hDbGVhckRpcmVjdGl2ZSwgeyBzdGF0aWM6IGZhbHNlIH0pIGNsZWFySWNvbjogU2VsZWN0U2VhcmNoQ2xlYXJEaXJlY3RpdmU7XG5cbiAgICAvLyBSZWZlcsOqbmNpYSBhbyBlbGVtZW50byBwZXJzb25hbGl6YWRvIHNlbSBlbnRyYWRhcyBlbmNvbnRyYWRhc1xuICAgIEBDb250ZW50Q2hpbGQoU2VsZWN0Tm9FbnRyaWVzRm91bmREaXJlY3RpdmUsIHsgc3RhdGljOiBmYWxzZSB9KSBub0VudHJpZXNGb3VuZDogU2VsZWN0Tm9FbnRyaWVzRm91bmREaXJlY3RpdmU7XG4gICAgcHJpdmF0ZSBfbGFzdEV4dGVybmFsSW5wdXRWYWx1ZTogc3RyaW5nO1xuICAgIHB1YmxpYyBfb3B0aW9ucyQ6IEJlaGF2aW9yU3ViamVjdDxRdWVyeUxpc3Q8TWF0T3B0aW9uPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFF1ZXJ5TGlzdDxNYXRPcHRpb24+PihudWxsKTtcblxuICAgIHByaXZhdGUgb3B0aW9uc0xpc3QkOiBPYnNlcnZhYmxlPE1hdE9wdGlvbltdPiA9IHRoaXMuX29wdGlvbnMkLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoX29wdGlvbnM6IFF1ZXJ5TGlzdDxNYXRPcHRpb24+KTogT2JzZXJ2YWJsZTxhbnk+ID0+IF9vcHRpb25zXG4gICAgICAgICAgICA/IF9vcHRpb25zLmNoYW5nZXMucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKG9wdGlvbnM6IGFueSk6IGFueSA9PiBvcHRpb25zLnRvQXJyYXkoKSksXG4gICAgICAgICAgICAgICAgc3RhcnRXaXRoPE1hdE9wdGlvbltdPihfb3B0aW9ucy50b0FycmF5KCkpLClcbiAgICAgICAgICAgIDogb2YobnVsbClcbiAgICAgICAgKVxuICAgICk7XG5cbiAgICBwcml2YXRlIG9wdGlvbnNMZW5ndGgkOiBPYnNlcnZhYmxlPG51bWJlcj4gPSB0aGlzLm9wdGlvbnNMaXN0JC5waXBlKFxuICAgICAgICBtYXAoKG9wdGlvbnM6IE1hdE9wdGlvbltdKTogbnVtYmVyID0+IG9wdGlvbnMgPyBvcHRpb25zLmxlbmd0aCA6IDApXG4gICAgKTtcblxuICAgIC8vIFZhbG9yZXMgcHJldmlhbWVudGUgc2VsZWNpb25hZG9zIGFvIHVzYXIgPG1hdC1zZWxlY3QgW211bHRpcGxlXT1cInRydWVcIj5cbiAgICBwcml2YXRlIHByZXZpb3VzU2VsZWN0ZWRWYWx1ZXM6IGFueVtdO1xuXG4gICAgcHVibGljIF9mb3JtQ29udHJvbDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycpO1xuXG4gICAgLy8gU2UgZGV2ZSBtb3N0cmFyIGEgbWVuc2FnZW0gc2VtIGVudHJhZGFzIGVuY29udHJhZGFzXG4gICAgcHVibGljIF9zaG93Tm9FbnRyaWVzRm91bmQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgIHRoaXMuX2Zvcm1Db250cm9sLnZhbHVlQ2hhbmdlcyxcbiAgICAgICAgdGhpcy5vcHRpb25zTGVuZ3RoJFxuICAgIF0pLnBpcGUoXG4gICAgICAgIG1hcCgoW3ZhbHVlLCBvcHRpb25zTGVuZ3RoXTogW2FueSwgbnVtYmVyXSk6IGJvb2xlYW4gPT4gdGhpcy5ub0VudHJpZXNGb3VuZExhYmVsICYmIHZhbHVlXG4gICAgICAgICAgICAmJiBvcHRpb25zTGVuZ3RoID09PSB0aGlzLmdldE9wdGlvbnNMZW5ndGhPZmZzZXQoKSlcbiAgICApO1xuXG4gICAgLy8gU3ViamVjdCBlbWl0aWRvIHF1YW5kbyBvIGNvbXBvbmVudGUgZm9pIGRlc3RydcOtZG9cbiAgICBwcml2YXRlIF9vbkRlc3Ryb3k6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLy8gUmVmZXLDqm5jaWEgYW8gZGVzY2VuZGVudGUgYXRpdm8gcGFyYSBzdXBvcnRlIEFSSUEuXG4gICAgcHJpdmF0ZSBhY3RpdmVEZXNjZW5kYW50OiBIVE1MRWxlbWVudDtcblxuICAgIHByaXZhdGUgYXBwbHlEZWZhdWx0T3B0aW9ucyhkZWZhdWx0T3B0aW9uczogSXRzc1NlbGVjdFNlYXJjaE9wdGlvbnMpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFkZWZhdWx0T3B0aW9ucykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgY29uZmlndXJhYmxlRGVmYXVsdE9wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChkZWZhdWx0T3B0aW9ucy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgKHRoaXNba2V5XSBhcyBhbnkpID0gZGVmYXVsdE9wdGlvbnNba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBEZWZpbmlyIGNsYXNzZSBkZSBvcMOnw6NvIG1hdCBwZXJzb25hbGl6YWRhIHNlIG8gY29tcG9uZW50ZSBmb2kgY29sb2NhZG8gZGVudHJvIGRlIHVtYSBvcMOnw6NvIG1hdFxuICAgICAgICBpZiAodGhpcy5tYXRPcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMubWF0T3B0aW9uLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMubWF0T3B0aW9uLl9nZXRIb3N0RWxlbWVudCgpLmNsYXNzTGlzdC5hZGQoJ2NvbnRhaW5zLW1hdC1zZWxlY3Qtc2VhcmNoJyk7XG4gICAgICAgICAgICB0aGlzLm1hdE9wdGlvbi5fZ2V0SG9zdEVsZW1lbnQoKS5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgJ3RydWUnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJzxpdHNzLWlucHV0LXNlYXJjaD4gZGV2ZSBzZXIgY29sb2NhZG8gZGVudHJvIGRlIHVtIGVsZW1lbnRvIDxtYXQtb3B0aW9uPicpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUXVhbmRvIG8gcGFpbmVsIHN1c3BlbnNvIGRlIHNlbGXDp8OjbyDDqSBhYmVydG8gb3UgZmVjaGFkb1xuICAgICAgICB0aGlzLm1hdFNlbGVjdC5vcGVuZWRDaGFuZ2VcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGRlbGF5KDEpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChvcGVuZWQ6IGJvb2xlYW4pOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICBpZiAob3BlbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlSW5wdXRXaWR0aCgpO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIEZvY2FyIG8gY2FtcG8gZGUgcGVzcXVpc2EgYW8gYWJyaXJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVJbml0aWFsRm9jdXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2ZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBMaW1ww6EtbG8gYW8gZmVjaGFyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmNsZWFyU2VhcmNoSW5wdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3Jlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAvLyBEZWZpbmlyIG8gcHJpbWVpcm8gaXRlbSBhdGl2byBhcMOzcyBhcyBvcMOnw7VlcyBhbHRlcmFkYXNcbiAgICAgICAgdGhpcy5tYXRTZWxlY3Qub3BlbmVkQ2hhbmdlXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3B0aW9ucyA9IHRoaXMubWF0U2VsZWN0Lm9wdGlvbnM7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gVmFyacOhdmVsIGRlIGZlY2hhbWVudG8gcGFyYSByYXN0cmVhciBhIHByaW1laXJhIG9ww6fDo28gbWFpcyByZWNlbnRlLlxuICAgICAgICAgICAgICAgICAgICAvLyBQYXJhIGV2aXRhciBxdWUgYSBsaXN0YSByb2xlIHBhcmEgbyB0b3BvIHF1YW5kbyBhcyBvcMOnw7VlcyBzw6NvIGFkaWNpb25hZGFzIGFvIGZpbmFsIGRhIGxpc3RhXG4gICAgICAgICAgICAgICAgICAgIC8vIChwb3IgZXhlbXBsbzogcm9sYWdlbSBpbmZpbml0YSksIGNvbXBhcmFtb3MgYXBlbmFzIGFzIGFsdGVyYcOnw7VlcyBuYXMgcHJpbWVpcmFzIG9ww6fDtWVzIHBhcmFcbiAgICAgICAgICAgICAgICAgICAgLy8gZGV0ZXJtaW5hciBzZSBkZXZlbW9zIGRlZmluaXIgbyBwcmltZWlybyBpdGVtIGNvbW8gYXRpdm8uIElzc28gZXZpdGEgYSByb2xhZ2VtIGRlc25lY2Vzc8OhcmlhXG4gICAgICAgICAgICAgICAgICAgIC8vIHBhcmEgbyB0b3BvIGRhIGxpc3RhIHF1YW5kbyBhcyBvcMOnw7VlcyBzw6NvIGFuZXhhZGFzLCBtYXMgcGVybWl0ZSBxdWUgbyBwcmltZWlybyBpdGVtIGRhIGxpc3RhXG4gICAgICAgICAgICAgICAgICAgIC8vIHNlamEgZGVmaW5pZG8gY29tbyBhdGl2byBwb3IgcGFkcsOjbyBxdWFuZG8gbsOjbyBow6Egc2VsZcOnw6NvIGF0aXZhLlxuICAgICAgICAgICAgICAgICAgICBsZXQgcHJldmlvdXNGaXJzdE9wdGlvbjogTWF0T3B0aW9uID0gdGhpcy5fb3B0aW9ucy50b0FycmF5KClbdGhpcy5nZXRPcHRpb25zTGVuZ3RoT2Zmc2V0KCldO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9vcHRpb25zLmNoYW5nZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcCgoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEV2aXRhciBvIGVycm8gXCJleHByZXNzaW9uIGhhcyBiZWVuIGNoYW5nZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENvbnZlcnRlciBhIFF1ZXJ5TGlzdCBlbSB1bWEgbWF0cml6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zOiBNYXRPcHRpb25bXSA9IHRoaXMuX29wdGlvbnMudG9BcnJheSgpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBPIHZlcmRhZGVpcm8gcHJpbWVpcm8gaXRlbSDDqSBjb21wZW5zYWRvIHBvciAxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50Rmlyc3RPcHRpb246IE1hdE9wdGlvbiA9IG9wdGlvbnNbdGhpcy5nZXRPcHRpb25zTGVuZ3RoT2Zmc2V0KCldO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXlNYW5hZ2VyOiBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcjxNYXRPcHRpb24+ID0gdGhpcy5tYXRTZWxlY3QuX2tleU1hbmFnZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5TWFuYWdlciAmJiB0aGlzLm1hdFNlbGVjdC5wYW5lbE9wZW4pIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIERlZmluaXIgcHJpbWVpcm8gaXRlbSBhdGl2byBlIGxhcmd1cmEgZGUgZW50cmFkYVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVmVyaWZpcXVlIHNlIGEgcHJpbWVpcmEgb3DDp8OjbyBuZXNzYXMgYWx0ZXJhw6fDtWVzIMOpIGRpZmVyZW50ZSBkYSBhbnRlcmlvci5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaXJzdE9wdGlvbklzQ2hhbmdlZDogYm9vbGVhbiA9ICF0aGlzLm1hdFNlbGVjdC5jb21wYXJlV2l0aChwcmV2aW91c0ZpcnN0T3B0aW9uLCBjdXJyZW50Rmlyc3RPcHRpb24pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ0FTTzogQSBwcmltZWlyYSBvcMOnw6NvIMOpIGRpZmVyZW50ZSBhZ29yYS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJbmRpY2EgcXVlIGRldmVtb3MgZGVmaW5pLWxvIGNvbW8gYXRpdm8gZSByb2xhciBwYXJhIG8gdG9wby5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmlyc3RPcHRpb25Jc0NoYW5nZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgIWtleU1hbmFnZXIuYWN0aXZlSXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAhb3B0aW9ucy5maW5kKChvcHRpb246IE1hdE9wdGlvbik6IGJvb2xlYW4gPT4gdGhpcy5tYXRTZWxlY3QuY29tcGFyZVdpdGgob3B0aW9uLCBrZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0pKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlNYW5hZ2VyLnNldEZpcnN0SXRlbUFjdGl2ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFndWFyZGUgYXMgYWx0ZXJhw6fDtWVzIG5hIGxhcmd1cmEgZG8gcGFpbmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlSW5wdXRXaWR0aCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBdHVhbGl6ZSBub3NzYSByZWZlcsOqbmNpYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNGaXJzdE9wdGlvbiA9IGN1cnJlbnRGaXJzdE9wdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgICAgIC8vIEFkaWNpb25lIG91IHJlbW92YSBhIGNsYXNzZSBjc3MgZGVwZW5kZW5kbyBzZSBkZXNlamEgbW9zdHJhciBhIG1lbnNhZ2VtIHNlbSBlbnRyYWRhcyBlbmNvbnRyYWRhc1xuICAgICAgICAvLyBvYnM6IGlzc28gw6kgaGFja3lcbiAgICAgICAgdGhpcy5fc2hvd05vRW50cmllc0ZvdW5kJC5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSlcbiAgICAgICAgKS5zdWJzY3JpYmUoKHNob3dOb0VudHJpZXNGb3VuZDogYm9vbGVhbik6IHZvaWQgPT4ge1xuICAgICAgICAgICAgLy8gRGVmaW5pciBuZW5odW1hIGNsYXNzZSBkZSBlbnRyYWRhIGVuY29udHJhZGEgbmEgbWF0LW9wdGlvblxuICAgICAgICAgICAgaWYgKHRoaXMubWF0T3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNob3dOb0VudHJpZXNGb3VuZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hdE9wdGlvbi5fZ2V0SG9zdEVsZW1lbnQoKS5jbGFzc0xpc3QuYWRkKCdtYXQtc2VsZWN0LXNlYXJjaC1uby1lbnRyaWVzLWZvdW5kJyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXRPcHRpb24uX2dldEhvc3RFbGVtZW50KCkuY2xhc3NMaXN0LnJlbW92ZSgnbWF0LXNlbGVjdC1zZWFyY2gtbm8tZW50cmllcy1mb3VuZCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gUmVkaW1lbnNpb25lIGEgbGFyZ3VyYSBkZSBlbnRyYWRhIHF1YW5kbyBhIHZpZXdwb3J0IGZvciByZWRpbWVuc2lvbmFkYSxcbiAgICAgICAgLy8gb3Ugc2VqYSwgYSBsYXJndXJhIGRvIGFjaW9uYWRvciBwb2RlIHNlciByZWRpbWVuc2lvbmFkYS5cbiAgICAgICAgdGhpcy5fdmlld3BvcnRSdWxlci5jaGFuZ2UoKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXRTZWxlY3QucGFuZWxPcGVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlSW5wdXRXaWR0aCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuaW5pdE11bHRpcGxlSGFuZGxpbmcoKTtcblxuICAgICAgICB0aGlzLm9wdGlvbnNMaXN0JC5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSlcbiAgICAgICAgKS5zdWJzY3JpYmUoKCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgLy8gQXR1YWxpemFyIHZpc3VhbGl6YcOnw6NvIHF1YW5kbyBhcyBvcMOnw7VlcyBkaXNwb27DrXZlaXMgbXVkYXJlbVxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zZWFyY2hpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuX2Zvcm1Db250cm9sLmRpc2FibGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2Zvcm1Db250cm9sLmVuYWJsZSgpO1xuICAgICAgICAgICAgdGhpcy5fZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kubmV4dCgpO1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBvblRvdWNoZWQ6IEZ1bmN0aW9uID0gKF86IGFueSk6IHZvaWQgPT4geyB9O1xuXG4gICAgX2lzVG9nZ2xlQWxsQ2hlY2tib3hWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tYXRTZWxlY3QubXVsdGlwbGUgJiYgdGhpcy5zaG93VG9nZ2xlQWxsQ2hlY2tib3g7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWFuaXB1bGEgbyBldmVudG8gZGUgdGVjbGEgcHJlc3Npb25hZGEgY29tIE1hdFNlbGVjdC5cbiAgICAgKiBQZXJtaXRlLCBwb3IgZXguIHNlbGVjaW9uYW5kbyBjb20gYSB0ZWNsYSBlbnRlciwgbmF2ZWdhbmRvIGNvbSBhcyB0ZWNsYXMgZGUgc2V0YSwgZXRjLlxuICAgICAqIEBwYXJhbSBldmVudFxuICAgICAqL1xuICAgIF9oYW5kbGVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIC8vIEV2aXRlIGEgcHJvcGFnYcOnw6NvIGRlIHRvZG9zIG9zIGNhcmFjdGVyZXMgYWxmYW51bcOpcmljb3MgcGFyYSBldml0YXIgcHJvYmxlbWFzIGRlIHNlbGXDp8Ojb1xuICAgICAgICBpZiAoKGV2ZW50LmtleSAmJiBldmVudC5rZXkubGVuZ3RoID09PSAxKSB8fFxuICAgICAgICAgICAgKGV2ZW50LmtleUNvZGUgPj0gQSAmJiBldmVudC5rZXlDb2RlIDw9IFopIHx8XG4gICAgICAgICAgICAoZXZlbnQua2V5Q29kZSA+PSBaRVJPICYmIGV2ZW50LmtleUNvZGUgPD0gTklORSkgfHxcbiAgICAgICAgICAgIChldmVudC5rZXlDb2RlID09PSBTUEFDRSlcbiAgICAgICAgICAgIHx8ICh0aGlzLnByZXZlbnRIb21lRW5kS2V5UHJvcGFnYXRpb24gJiYgKGV2ZW50LmtleUNvZGUgPT09IEhPTUUgfHwgZXZlbnQua2V5Q29kZSA9PT0gRU5EKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1hdFNlbGVjdC5tdWx0aXBsZSAmJiBldmVudC5rZXkgJiYgZXZlbnQua2V5Q29kZSA9PT0gRU5URVIpIHtcbiAgICAgICAgICAgIC8vIFJlY3VwZXJlIG8gZm9jbyBhcMOzcyBhIHNlbGXDp8OjbyBtw7psdGlwbGEsIHBhcmEgcXVlIHBvc3NhbW9zIGRpZ2l0YXIgYWluZGEgbWFpc1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKTogdm9pZCA9PiB0aGlzLl9mb2N1cygpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENhc28gZXNwZWNpYWwsIHNlIGNsaWNhciBlbSBFc2NhcGUsIHNlIGEgZW50cmFkYSBlc3RpdmVyIHZhemlhLCBmZWNoZSBvIG1lbnUgc3VzcGVuc28sIGNhc28gY29udHLDoXJpbywgZXN2YXppZSBvIGNhbXBvIGRlIHBlc3F1aXNhXG4gICAgICAgIGlmICh0aGlzLmVuYWJsZUNsZWFyT25Fc2NhcGVQcmVzc2VkID09PSB0cnVlICYmIGV2ZW50LmtleUNvZGUgPT09IEVTQ0FQRSAmJiB0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl9yZXNldCh0cnVlKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWFuaXB1bGEgbyBldmVudG8gZGUgYXRpdmHDp8OjbyBkZSBjaGF2ZSBjb20gTWF0U2VsZWN0LlxuICAgICAqIFBlcm1pdGUsIHBvciBleC4gbyBhbsO6bmNpbyBkbyBEZXNjZW5kZW50ZSBhdHVhbG1lbnRlIGF0aXZvIHBvciBsZWl0b3JlcyBkZSB0ZWxhLlxuICAgICAqL1xuICAgIF9oYW5kbGVLZXl1cChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gVVBfQVJST1cgfHwgZXZlbnQua2V5Q29kZSA9PT0gRE9XTl9BUlJPVykge1xuICAgICAgICAgICAgY29uc3QgYXJpYUFjdGl2ZURlc2NlbmRhbnRJZDogc3RyaW5nID0gdGhpcy5tYXRTZWxlY3QuX2dldEFyaWFBY3RpdmVEZXNjZW5kYW50KCk7XG4gICAgICAgICAgICBjb25zdCBpbmRleDogbnVtYmVyID0gdGhpcy5fb3B0aW9ucy50b0FycmF5KCkuZmluZEluZGV4KChpdGVtOiBNYXRPcHRpb24pOiBib29sZWFuID0+IGl0ZW0uaWQgPT09IGFyaWFBY3RpdmVEZXNjZW5kYW50SWQpO1xuICAgICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIHRoaXMudW5zZWxlY3RBY3RpdmVEZXNjZW5kYW50KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50ID0gdGhpcy5fb3B0aW9ucy50b0FycmF5KClbaW5kZXhdLl9nZXRIb3N0RWxlbWVudCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlRGVzY2VuZGFudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtc2VsZWN0ZWQnLCAndHJ1ZScpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoU2VsZWN0SW5wdXQubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCcsIGFyaWFBY3RpdmVEZXNjZW5kYW50SWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2xhc3RFeHRlcm5hbElucHV0VmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIG9uQmx1cigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51bnNlbGVjdEFjdGl2ZURlc2NlbmRhbnQoKTtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgIGZpbHRlcigodmFsdWU6IGFueSk6IGJvb2xlYW4gPT4gdmFsdWUgIT09IHRoaXMuX2xhc3RFeHRlcm5hbElucHV0VmFsdWUpLFxuICAgICAgICAgICAgdGFwKCgpOiBhbnkgPT4gdGhpcy5fbGFzdEV4dGVybmFsSW5wdXRWYWx1ZSA9IHVuZGVmaW5lZCksXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95KVxuICAgICAgICApLnN1YnNjcmliZShmbik7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IEZ1bmN0aW9uKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRm9jYWxpemEgbyBjYW1wbyBkZSBlbnRyYWRhIGRlIHBlc3F1aXNhXG4gICAgICovXG4gICAgcHVibGljIF9mb2N1cygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnNlYXJjaFNlbGVjdElucHV0IHx8ICF0aGlzLm1hdFNlbGVjdC5wYW5lbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIHNhbHZlIGUgcmVzdGF1cmUgbyBzY3JvbGxUb3AgZG8gcGFpbmVsLCBwb2lzIHNlcsOhIHJlZGVmaW5pZG8gcG9yIGZvY3VzICgpXG4gICAgICAgIC8vIG9iczogaXNzbyDDqSBoYWNreVxuICAgICAgICBjb25zdCBwYW5lbDogYW55ID0gdGhpcy5tYXRTZWxlY3QucGFuZWwubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3Qgc2Nyb2xsVG9wOiBhbnkgPSBwYW5lbC5zY3JvbGxUb3A7XG5cbiAgICAgICAgLy8gU2V0YSBvIGZvY29cbiAgICAgICAgdGhpcy5zZWFyY2hTZWxlY3RJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG5cbiAgICAgICAgcGFuZWwuc2Nyb2xsVG9wID0gc2Nyb2xsVG9wO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZGVmaW5lIG8gdmFsb3IgZGUgcGVzcXVpc2EgYXR1YWxcbiAgICAgKiBAcGFyYW0gZm9jdXMgc2UgZGV2ZSBmb2NhciBhcMOzcyBhIHJlZGVmaW5pw6fDo29cbiAgICAgKi9cbiAgICBwdWJsaWMgX3Jlc2V0KGZvY3VzPzogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9mb3JtQ29udHJvbC5zZXRWYWx1ZSgnJyk7XG4gICAgICAgIGlmIChmb2N1cykge1xuICAgICAgICAgICAgdGhpcy5fZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluaWNpYWxpemEgYSBtYW5pcHVsYcOnw6NvIDxtYXQtc2VsZWN0IFttdWx0aXBsZV09XCJ0cnVlXCI+XG4gICAgICogTm90YTogcGFyYSBtZWxob3JhciBlc3RlIGPDs2RpZ28sIG1hdC1zZWxlY3QgZGV2ZSBzZXIgZXN0ZW5kaWRvIHBhcmEgcGVybWl0aXIgZGVzYWJpbGl0YXIgYSByZWRlZmluacOnw6NvIGRhIHNlbGXDp8OjbyBkdXJhbnRlIGEgZmlsdHJhZ2VtLlxuICAgICAqL1xuICAgIHByaXZhdGUgaW5pdE11bHRpcGxlSGFuZGxpbmcoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5tYXRTZWxlY3QubmdDb250cm9sKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5tYXRTZWxlY3QubXVsdGlwbGUpIHtcbiAgICAgICAgICAgICAgICAvLyBub3RhOiBvIGFjZXNzbyBhIG1hdFNlbGVjdC5uZ0NvbnRyb2wgKGVtIHZleiBkZSBtYXRTZWxlY3QudmFsdWUgLyBtYXRTZWxlY3QudmFsdWVDaGFuZ2VzKVxuICAgICAgICAgICAgICAgIC8vIMOpIG5lY2Vzc8OhcmlvIHBhcmEgZnVuY2lvbmFyIGNvcnJldGFtZW50ZSBubyBtb2RvIGRlIHNlbGXDp8OjbyBtw7psdGlwbGEuXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignbyBtYXQtc2VsZWN0IGNvbnRlbmRvIGl0c3MtaW5wdXQtc2VhcmNoIGRldmUgdGVyIHVtYSBkaXJldGl2YSBuZ01vZGVsIG91IGZvcm1Db250cm9sIHF1YW5kbyBtdWx0aXBsZT10cnVlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gU2UgPG1hdC1zZWxlY3QgW211bHRpcGxlXT1cInRydWVcIj5cbiAgICAgICAgLy8gYXJtYXplbmFyIHZhbG9yZXMgcHJldmlhbWVudGUgc2VsZWNpb25hZG9zIGUgcmVzdGF1csOhLWxvcyBxdWFuZG8gZm9yZW0gZGVzbWFyY2Fkb3NcbiAgICAgICAgLy8gcG9ycXVlIGEgb3DDp8OjbyBuw6NvIGVzdMOhIGRpc3BvbsOtdmVsIGVucXVhbnRvIGVzdGFtb3MgZmlsdHJhbmRvXG4gICAgICAgIHRoaXMucHJldmlvdXNTZWxlY3RlZFZhbHVlcyA9IHRoaXMubWF0U2VsZWN0Lm5nQ29udHJvbC52YWx1ZTtcblxuICAgICAgICB0aGlzLm1hdFNlbGVjdC5uZ0NvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95KSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlczogYW55KTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHJlc3RvcmVTZWxlY3RlZFZhbHVlczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWF0U2VsZWN0Lm11bHRpcGxlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgodGhpcy5hbHdheXNSZXN0b3JlU2VsZWN0ZWRPcHRpb25zTXVsdGkgfHwgKHRoaXMuX2Zvcm1Db250cm9sLnZhbHVlICYmIHRoaXMuX2Zvcm1Db250cm9sLnZhbHVlLmxlbmd0aCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiB0aGlzLnByZXZpb3VzU2VsZWN0ZWRWYWx1ZXMgJiYgQXJyYXkuaXNBcnJheSh0aGlzLnByZXZpb3VzU2VsZWN0ZWRWYWx1ZXMpKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdmFsdWVzIHx8ICFBcnJheS5pc0FycmF5KHZhbHVlcykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXMgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uVmFsdWVzOiBhbnlbXSA9IHRoaXMubWF0U2VsZWN0Lm9wdGlvbnMubWFwKChvcHRpb246IE1hdE9wdGlvbik6IGFueSA9PiBvcHRpb24udmFsdWUpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByZXZpb3VzU2VsZWN0ZWRWYWx1ZXMuZm9yRWFjaCgocHJldmlvdXNWYWx1ZTogYW55KTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZXMuc29tZSgodjogYW55KTogYm9vbGVhbiA9PiB0aGlzLm1hdFNlbGVjdC5jb21wYXJlV2l0aCh2LCBwcmV2aW91c1ZhbHVlKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgIW9wdGlvblZhbHVlcy5zb21lKCh2OiBhbnkpOiBib29sZWFuID0+IHRoaXMubWF0U2VsZWN0LmNvbXBhcmVXaXRoKHYsIHByZXZpb3VzVmFsdWUpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTZSB1bSB2YWxvciBxdWUgZm9pIHNlbGVjaW9uYWRvIGFudGVzIGZvciBkZXNtYXJjYWRvIGUgbsOjbyBlbmNvbnRyYWRvIG5hcyBvcMOnw7VlcywgZWxlIGZvaSBkZXNtYXJjYWRvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRldmlkbyDDoCBmaWx0cmFnZW0sIGVudMOjbyByZXN0YXVyYW1vcy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2gocHJldmlvdXNWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3RvcmVTZWxlY3RlZFZhbHVlcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5wcmV2aW91c1NlbGVjdGVkVmFsdWVzID0gdmFsdWVzO1xuXG4gICAgICAgICAgICAgICAgaWYgKHJlc3RvcmVTZWxlY3RlZFZhbHVlcykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hdFNlbGVjdC5fb25DaGFuZ2UodmFsdWVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAgRGVmaW5hIGEgbGFyZ3VyYSBkbyBpbm5lclNlbGVjdFNlYXJjaCBwYXJhIGFqdXN0YXIgYXTDqSBtZXNtbyBhcyBiYXJyYXMgZGUgcm9sYWdlbSBwZXJzb25hbGl6YWRhc1xuICAgICAqICBFIGFwb2lhciB0b2RvcyBvcyBzaXN0ZW1hcyBkZSBvcGVyYcOnw6NvXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZUlucHV0V2lkdGgoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pbm5lclNlbGVjdFNlYXJjaCB8fCAhdGhpcy5pbm5lclNlbGVjdFNlYXJjaC5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gdGhpcy5pbm5lclNlbGVjdFNlYXJjaC5uYXRpdmVFbGVtZW50O1xuICAgICAgICBsZXQgcGFuZWxFbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgICAgICAgd2hpbGUgKGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGlmIChlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnbWF0LXNlbGVjdC1wYW5lbCcpKSB7XG4gICAgICAgICAgICAgICAgcGFuZWxFbGVtZW50ID0gZWxlbWVudDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAocGFuZWxFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmlubmVyU2VsZWN0U2VhcmNoLm5hdGl2ZUVsZW1lbnQuc3R5bGUud2lkdGggPSBwYW5lbEVsZW1lbnQuY2xpZW50V2lkdGggKyAncHgnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lIG8gZGVzbG9jYW1lbnRvIHBhcmEgbyBjb21wcmltZW50byBxdWUgcG9kZSBzZXIgY2F1c2FkbyBwZWxvIG1hdE9wdGlvbiBvcGNpb25hbCB1c2FkbyBjb21vIHVtYSBlbnRyYWRhIGRlIHBlc3F1aXNhLlxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0T3B0aW9uc0xlbmd0aE9mZnNldCgpOiBudW1iZXIge1xuICAgICAgICBpZiAodGhpcy5tYXRPcHRpb24pIHtcbiAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVuc2VsZWN0QWN0aXZlRGVzY2VuZGFudCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlRGVzY2VuZGFudCkge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50LnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1zZWxlY3RlZCcpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VhcmNoU2VsZWN0SW5wdXQubmF0aXZlRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCcpO1xuICAgIH1cblxuXG59XG4iXX0=
|
@@ -37,6 +37,22 @@ let GIPIButtonComponent = GIPIButtonComponent_1 = class GIPIButtonComponent {
|
|
37
37
|
this.onFocus = new EventEmitter(true);
|
38
38
|
this.onBlur = new EventEmitter(true);
|
39
39
|
}
|
40
|
+
get internalButtonClass() {
|
41
|
+
return {
|
42
|
+
'button-base': true,
|
43
|
+
'button-primary': (this.isButtonPrimary || this.isButtonPrimaryIcon),
|
44
|
+
'button-primary-icon': this.isButtonPrimaryIcon,
|
45
|
+
'button-secondary': (this.isButtonSecondary || this.isButtonSecondaryIcon),
|
46
|
+
'button-secondary-icon': this.isButtonSecondaryIcon,
|
47
|
+
'button-tertiary': (this.isButtonTertiary || this.isButtonTertiaryIcon),
|
48
|
+
'button-tertiary-icon': this.isButtonTertiaryIcon,
|
49
|
+
'button-link': this.isButtonLink,
|
50
|
+
'button-only-icon': this.isButtonIcon,
|
51
|
+
'button-for-input': this.isForInput,
|
52
|
+
'button-notification': this.notification,
|
53
|
+
'button-action': this.isButtonAction
|
54
|
+
};
|
55
|
+
}
|
40
56
|
ngOnInit() { }
|
41
57
|
ngOnDestroy() {
|
42
58
|
if (this.popoverTrigger) {
|
@@ -232,7 +248,7 @@ GIPIButtonComponent = GIPIButtonComponent_1 = __decorate([
|
|
232
248
|
selector: `gipi-button[gipi-primary], gipi-button[gipi-primary-icon], gipi-button[gipi-secondary], gipi-button[gipi-secondary-icon],
|
233
249
|
gipi-button[gipi-tertiary], gipi-button[gipi-link], gipi-button[gipi-icon], gipi-button[gipi-action]`,
|
234
250
|
exportAs: 'gipiButton',
|
235
|
-
template: "<button [attr.id]=\"id\"\n [attr.name]=\"name\"\n [attr.type]=\"type\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : label\"\n [attr.title]=\"title ? title : label\"\n [disabled]=\"disabled || loading\"\n [matTooltip]=\"tooltip\"\n role=\"button\"\n [class]=\"buttonClass\"\n [ngClass]=\"
|
251
|
+
template: "<button [attr.id]=\"id\"\n [attr.name]=\"name\"\n [attr.type]=\"type\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : label\"\n [attr.title]=\"title ? title : label\"\n [disabled]=\"disabled || loading\"\n [matTooltip]=\"tooltip\"\n role=\"button\"\n [class]=\"buttonClass\"\n [ngClass]=\"internalButtonClass\"\n [style.padding.px]=\"buttonPadding\"\n #popoverTrigger=\"popoverTrigger\"\n [popoverTriggerFor]=\"btnPopover\"\n [popoverTriggerOn]=\"popover ? 'click' : 'none'\"\n [popoverBackdropCloseOnClick]=\"true\"\n (opened)=\"onOpenPopover.emit()\"\n (closed)=\"onClosePopover.emit()\"\n (click)=\"handleClick($event)\"\n (focus)=\"handleFocus($event)\"\n (blur)=\"handleBlur($event)\">\n <span [ngClass]=\"{'button-content': true,\n 'button-disabled': disabled,\n 'button-icon-left': ((iconPos === 'left') && label),\n 'button-icon-right': ((iconPos === 'right') && label),\n 'button-icon-top': ((iconPos === 'top') && label),\n 'button-icon-bottom': ((iconPos === 'bottom') && label),\n 'button-icon-center': (iconPos === 'center')}\">\n <mat-icon *ngIf=\"svgIcon || icon\"\n [svgIcon]=\"svgIcon\"\n [style.width.px]=\"iconWidth\"\n [style.height.px]=\"iconHeight\"\n [style.font-size.px]=\"iconWidth || iconHeight\">\n {{ (!svgIcon && icon) ? icon : '' }}\n </mat-icon>\n\n <span class=\"button-label\"\n [attr.aria-hidden]=\"(icon || svgIcon) && !label\"\n *ngIf=\"!isButtonIcon && label\">\n {{ label }}\n </span>\n </span>\n</button>\n\n<gipi-overlay *ngIf=\"overlay && !popover\"\n [(visible)]=\"_overlayVisible\"\n [appendTo]=\"'body'\"\n (onShow)=\"onShowOverlay.emit()\">\n <ng-content> </ng-content>\n</gipi-overlay>\n\n<gipi-popover #btnPopover=\"gipiPopover\"\n [popoverOverlapTrigger]=\"false\"\n [popoverCloseOnClick]=\"false\"\n [popoverArrowWidth]=\"0\"\n [popoverOffsetY]=\"3\"\n [fxHide]=\"!popover\">\n <div class=\"btn-popover-content\">\n <ng-content> </ng-content>\n </div>\n</gipi-popover>",
|
236
252
|
providers: [
|
237
253
|
{
|
238
254
|
provide: NG_VALUE_ACCESSOR,
|
@@ -248,4 +264,4 @@ GIPIButtonComponent = GIPIButtonComponent_1 = __decorate([
|
|
248
264
|
__metadata("design:paramtypes", [ElementRef])
|
249
265
|
], GIPIButtonComponent);
|
250
266
|
export { GIPIButtonComponent };
|
251
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BnaXBpc2lzdGVtYXMvbmctY29yZS8iLCJzb3VyY2VzIjpbInNoYXJlZC9naXBpLWNvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNJLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBcUJ2RSxJQUFhLG1CQUFtQiwyQkFBaEMsTUFBYSxtQkFBbUI7SUE4RDVCLFlBQW9CLFdBQXVCO1FBQXZCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBNURsQyxvQkFBZSxHQUFZLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNuRSx3QkFBbUIsR0FBWSxJQUFJLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUM1RSxzQkFBaUIsR0FBWSxJQUFJLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN2RSwwQkFBcUIsR0FBWSxJQUFJLENBQUMsa0JBQWtCLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNoRixxQkFBZ0IsR0FBWSxJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDckUseUJBQW9CLEdBQVksSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDOUUsaUJBQVksR0FBWSxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0QsaUJBQVksR0FBWSxJQUFJLENBQUMsa0JB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QTlJWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgR0lQSVBvcG92ZXJUcmlnZ2VyIH0gZnJvbSAnLi4vcG9wb3Zlci9zaGFyZWQvcG9wb3Zlci10cmlnZ2VyJztcblxudHlwZSBCdXR0b25JY29uUG9zaXRpb24gPSAnbGVmdCcgfCAncmlnaHQnIHwgJ3RvcCcgfCAnYm90dG9tJyB8ICdjZW50ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogYGdpcGktYnV0dG9uW2dpcGktcHJpbWFyeV0sIGdpcGktYnV0dG9uW2dpcGktcHJpbWFyeS1pY29uXSwgZ2lwaS1idXR0b25bZ2lwaS1zZWNvbmRhcnldLCBnaXBpLWJ1dHRvbltnaXBpLXNlY29uZGFyeS1pY29uXSxcbiAgICAgICAgICAgICAgIGdpcGktYnV0dG9uW2dpcGktdGVydGlhcnldLCBnaXBpLWJ1dHRvbltnaXBpLWxpbmtdLCBnaXBpLWJ1dHRvbltnaXBpLWljb25dLCBnaXBpLWJ1dHRvbltnaXBpLWFjdGlvbl1gLFxuICAgIGV4cG9ydEFzOiAnZ2lwaUJ1dHRvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2J1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYnV0dG9uLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCk6IHR5cGVvZiBHSVBJQnV0dG9uQ29tcG9uZW50ID0+IEdJUElCdXR0b25Db21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICAnY2xhc3MnOiAnZ2lwaS1idXR0b24nLFxuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgR0lQSUJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAgIHJlYWRvbmx5IGlzQnV0dG9uUHJpbWFyeTogYm9vbGVhbiA9IHRoaXMuX2hhc0hvc3RBdHRyaWJ1dGVzKCdnaXBpLXByaW1hcnknKTtcbiAgICByZWFkb25seSBpc0J1dHRvblByaW1hcnlJY29uOiBib29sZWFuID0gdGhpcy5faGFzSG9zdEF0dHJpYnV0ZXMoJ2dpcGktcHJpbWFyeS1pY29uJyk7XG4gICAgcmVhZG9ubHkgaXNCdXR0b25TZWNvbmRhcnk6IGJvb2xlYW4gPSB0aGlzLl9oYXNIb3N0QXR0cmlidXRlcygnZ2lwaS1zZWNvbmRhcnknKTtcbiAgICByZWFkb25seSBpc0J1dHRvblNlY29uZGFyeUljb246IGJvb2xlYW4gPSB0aGlzLl9oYXNIb3N0QXR0cmlidXRlcygnZ2lwaS1zZWNvbmRhcnktaWNvbicpO1xuICAgIHJlYWRvbmx5IGlzQnV0dG9uVGVydGlhcnk6IGJvb2xlYW4gPSB0aGlzLl9oYXNIb3N0QXR0cmlidXRlcygnZ2lwaS10ZXJ0aWFyeScpO1xuICAgIHJlYWRvbmx5IGlzQnV0dG9uVGVydGlhcnlJY29uOiBib29sZWFuID0gdGhpcy5faGFzSG9zdEF0dHJpYnV0ZXMoJ2dpcGktdGVydGlhcnktaWNvbicpO1xuICAgIHJlYWRvbmx5IGlzQnV0dG9uTGluazogYm9vbGVhbiA9IHRoaXMuX2hhc0hvc3RBdHRyaWJ1dGVzKCdnaXBpLWxpbmsnKTtcbiAgICByZWFkb25seSBpc0J1dHRvbkljb246IGJvb2xlYW4gPSB0aGlzLl9oYXNIb3N0QXR0cmlidXRlcygnZ2lwaS1pY29uJyk7XG4gICAgcmVhZG9ubHkgaXNCdXR0b25BY3Rpb246IGJvb2xlYW4gPSB0aGlzLl9oYXNIb3N0QXR0cmlidXRlcygnZ2lwaS1hY3Rpb24nKTtcblxuICAgIF9vdmVybGF5VmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQFZpZXdDaGlsZChHSVBJUG9wb3ZlclRyaWdnZXIsIHsgc3RhdGljOiBmYWxzZSB9KSBwb3BvdmVyVHJpZ2dlcjogR0lQSVBvcG92ZXJUcmlnZ2VyO1xuXG4gICAgQElucHV0KCkgaWQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIHR5cGU6ICdidXR0b24nIHwgJ3N1Ym1pdCcgfCAncmVzZXQnID0gJ2J1dHRvbic7XG5cbiAgICBASW5wdXQoKSBhcmlhTGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gICAgQElucHV0KCkgdGl0bGU6IHN0cmluZyA9ICcnO1xuXG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gICAgQElucHV0KCkgYnV0dG9uQ2xhc3M6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGJ1dHRvblBhZGRpbmc6IG51bWJlciB8IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGljb25XaWR0aDogbnVtYmVyIHwgc3RyaW5nO1xuICAgIEBJbnB1dCgpIGljb25IZWlnaHQ6IG51bWJlciB8IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGljb246IHN0cmluZyA9IG51bGw7XG5cbiAgICBASW5wdXQoKSBzdmdJY29uOiBzdHJpbmcgPSBudWxsO1xuXG4gICAgQElucHV0KCkgaWNvblBvczogQnV0dG9uSWNvblBvc2l0aW9uID0gJ2xlZnQnO1xuXG4gICAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIG5vdGlmaWNhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgdG9vbHRpcDogc3RyaW5nID0gJyc7XG5cbiAgICBASW5wdXQoKSBwb3BvdmVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBvdmVybGF5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoJ2ZvcklucHV0JykgaXNGb3JJbnB1dDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpIG9uU2hvd092ZXJsYXk6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICBAT3V0cHV0KCkgb25PcGVuUG9wb3ZlcjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoKSBvbkNsb3NlUG9wb3ZlcjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoJ2NsaWNrJykgb25DbGljazogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50Pih0cnVlKTtcbiAgICBAT3V0cHV0KCdmb2N1cycpIG9uRm9jdXM6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4odHJ1ZSk7XG4gICAgQE91dHB1dCgnYmx1cicpIG9uQmx1cjogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50Pih0cnVlKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHsgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7IH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wb3BvdmVyVHJpZ2dlcikge1xuICAgICAgICAgICAgdGhpcy5wb3BvdmVyVHJpZ2dlci5kZXN0cm95UG9wb3ZlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0SG9zdEVsZW1lbnQoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9oYXNIb3N0QXR0cmlidXRlcyguLi5hdHRyaWJ1dGVzOiBzdHJpbmdbXSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gYXR0cmlidXRlcy5zb21lKGF0dHJpYnV0ZSA9PiB0aGlzLmdldEhvc3RFbGVtZW50KCkuaGFzQXR0cmlidXRlKGF0dHJpYnV0ZSkpO1xuICAgIH1cblxuICAgIHRvZ2dsZU92ZXJsYXkoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMubG9hZGluZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fb3ZlcmxheVZpc2libGUgPSAhdGhpcy5fb3ZlcmxheVZpc2libGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzaG93UG9wb3ZlcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5sb2FkaW5nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBvcG92ZXJUcmlnZ2VyLm9wZW5Qb3BvdmVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbG9zZVBvcG92ZXIoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMubG9hZGluZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wb3BvdmVyVHJpZ2dlci5jbG9zZVBvcG92ZXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMubG9hZGluZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMub3ZlcmxheSkge1xuICAgICAgICAgICAgICAgIHRoaXMudG9nZ2xlT3ZlcmxheSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5vbkNsaWNrLmVtaXQoZXZlbnQpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVGb2N1cyhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLmxvYWRpbmcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub25Gb2N1cy5lbWl0KGV2ZW50KTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlQmx1cihldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLmxvYWRpbmcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub25CbHVyLmVtaXQoZXZlbnQpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgICBvblJlc2l6ZShldmVudDogVUlFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wb3BvdmVyVHJpZ2dlcikge1xuICAgICAgICAgICAgdGhpcy5wb3BvdmVyVHJpZ2dlci5jbG9zZVBvcG92ZXIoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iXX0=
|
267
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BnaXBpc2lzdGVtYXMvbmctY29yZS8iLCJzb3VyY2VzIjpbInNoYXJlZC9naXBpLWNvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNJLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBcUJ2RSxJQUFhLG1CQUFtQiwyQkFBaEMsTUFBYSxtQkFBbUI7SUErRTVCLFlBQW9CLFdBQXVCO1FBQXZCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBN0VsQyxvQkFBZSxHQUFZLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNuRSx3QkFBbUIsR0FBWSxJQUFJLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUM1RSxzQkFBaUIsR0FBWSxJQUFJLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN2RSwwQkFBcUIsR0FBWSxJQUFJLENBQUMsa0JBQWtCLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNoRixxQkFBZ0IsR0FBWSxJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDckUseUJBQW9CLEdBQVksSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDOUUsaUJBQVksR0FBWSxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0QsaUJBQVksR0FBWSxJQUFJLENBQUMsa0JB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WTsyREFBa0M7QUFDdkQ7SUFBaEIsTUFBTSxDQUFDLE9BQU8sQ0FBQzs4QkFBVSxZQUFZO29EQUFrRDtBQUN2RTtJQUFoQixNQUFNLENBQUMsT0FBTyxDQUFDOzhCQUFVLFlBQVk7b0RBQWtEO0FBQ3hFO0lBQWYsTUFBTSxDQUFDLE1BQU0sQ0FBQzs4QkFBUyxZQUFZO21EQUFrRDtBQTRGdEY7SUFEQyxZQUFZLENBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7O3FDQUMxQixPQUFPOzttREFLdEI7QUE3SlEsbUJBQW1CO0lBakIvQixTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUU7b0hBQ3NHO1FBQ2hILFFBQVEsRUFBRSxZQUFZO1FBQ3RCLHk1RUFBc0M7UUFFdEMsU0FBUyxFQUFFO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUErQixFQUFFLENBQUMscUJBQW1CLENBQUM7Z0JBQzlFLEtBQUssRUFBRSxJQUFJO2FBQ2Q7U0FDSjtRQUNELElBQUksRUFBRTtZQUNGLE9BQU8sRUFBRSxhQUFhO1NBQ3pCOztLQUNKLENBQUM7cUNBZ0ZtQyxVQUFVO0dBL0VsQyxtQkFBbUIsQ0ErSi9CO1NBL0pZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBHSVBJUG9wb3ZlclRyaWdnZXIgfSBmcm9tICcuLi9wb3BvdmVyL3NoYXJlZC9wb3BvdmVyLXRyaWdnZXInO1xuXG50eXBlIEJ1dHRvbkljb25Qb3NpdGlvbiA9ICdsZWZ0JyB8ICdyaWdodCcgfCAndG9wJyB8ICdib3R0b20nIHwgJ2NlbnRlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBgZ2lwaS1idXR0b25bZ2lwaS1wcmltYXJ5XSwgZ2lwaS1idXR0b25bZ2lwaS1wcmltYXJ5LWljb25dLCBnaXBpLWJ1dHRvbltnaXBpLXNlY29uZGFyeV0sIGdpcGktYnV0dG9uW2dpcGktc2Vjb25kYXJ5LWljb25dLFxuICAgICAgICAgICAgICAgZ2lwaS1idXR0b25bZ2lwaS10ZXJ0aWFyeV0sIGdpcGktYnV0dG9uW2dpcGktbGlua10sIGdpcGktYnV0dG9uW2dpcGktaWNvbl0sIGdpcGktYnV0dG9uW2dpcGktYWN0aW9uXWAsXG4gICAgZXhwb3J0QXM6ICdnaXBpQnV0dG9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKTogdHlwZW9mIEdJUElCdXR0b25Db21wb25lbnQgPT4gR0lQSUJ1dHRvbkNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdjbGFzcyc6ICdnaXBpLWJ1dHRvbicsXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBHSVBJQnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgcmVhZG9ubHkgaXNCdXR0b25QcmltYXJ5OiBib29sZWFuID0gdGhpcy5faGFzSG9zdEF0dHJpYnV0ZXMoJ2dpcGktcHJpbWFyeScpO1xuICAgIHJlYWRvbmx5IGlzQnV0dG9uUHJpbWFyeUljb246IGJvb2xlYW4gPSB0aGlzLl9oYXNIb3N0QXR0cmlidXRlcygnZ2lwaS1wcmltYXJ5LWljb24nKTtcbiAgICByZWFkb25seSBpc0J1dHRvblNlY29uZGFyeTogYm9vbGVhbiA9IHRoaXMuX2hhc0hvc3RBdHRyaWJ1dGVzKCdnaXBpLXNlY29uZGFyeScpO1xuICAgIHJlYWRvbmx5IGlzQnV0dG9uU2Vjb25kYXJ5SWNvbjogYm9vbGVhbiA9IHRoaXMuX2hhc0hvc3RBdHRyaWJ1dGVzKCdnaXBpLXNlY29uZGFyeS1pY29uJyk7XG4gICAgcmVhZG9ubHkgaXNCdXR0b25UZXJ0aWFyeTogYm9vbGVhbiA9IHRoaXMuX2hhc0hvc3RBdHRyaWJ1dGVzKCdnaXBpLXRlcnRpYXJ5Jyk7XG4gICAgcmVhZG9ubHkgaXNCdXR0b25UZXJ0aWFyeUljb246IGJvb2xlYW4gPSB0aGlzLl9oYXNIb3N0QXR0cmlidXRlcygnZ2lwaS10ZXJ0aWFyeS1pY29uJyk7XG4gICAgcmVhZG9ubHkgaXNCdXR0b25MaW5rOiBib29sZWFuID0gdGhpcy5faGFzSG9zdEF0dHJpYnV0ZXMoJ2dpcGktbGluaycpO1xuICAgIHJlYWRvbmx5IGlzQnV0dG9uSWNvbjogYm9vbGVhbiA9IHRoaXMuX2hhc0hvc3RBdHRyaWJ1dGVzKCdnaXBpLWljb24nKTtcbiAgICByZWFkb25seSBpc0J1dHRvbkFjdGlvbjogYm9vbGVhbiA9IHRoaXMuX2hhc0hvc3RBdHRyaWJ1dGVzKCdnaXBpLWFjdGlvbicpO1xuXG4gICAgX292ZXJsYXlWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBAVmlld0NoaWxkKEdJUElQb3BvdmVyVHJpZ2dlciwgeyBzdGF0aWM6IGZhbHNlIH0pIHBvcG92ZXJUcmlnZ2VyOiBHSVBJUG9wb3ZlclRyaWdnZXI7XG5cbiAgICBASW5wdXQoKSBpZDogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgbmFtZTogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgdHlwZTogJ2J1dHRvbicgfCAnc3VibWl0JyB8ICdyZXNldCcgPSAnYnV0dG9uJztcblxuICAgIEBJbnB1dCgpIGFyaWFMYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgICBASW5wdXQoKSB0aXRsZTogc3RyaW5nID0gJyc7XG5cbiAgICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgICBASW5wdXQoKSBidXR0b25DbGFzczogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgYnV0dG9uUGFkZGluZzogbnVtYmVyIHwgc3RyaW5nO1xuXG4gICAgQElucHV0KCkgaWNvbldpZHRoOiBudW1iZXIgfCBzdHJpbmc7XG4gICAgQElucHV0KCkgaWNvbkhlaWdodDogbnVtYmVyIHwgc3RyaW5nO1xuXG4gICAgQElucHV0KCkgaWNvbjogc3RyaW5nID0gbnVsbDtcblxuICAgIEBJbnB1dCgpIHN2Z0ljb246IHN0cmluZyA9IG51bGw7XG5cbiAgICBASW5wdXQoKSBpY29uUG9zOiBCdXR0b25JY29uUG9zaXRpb24gPSAnbGVmdCc7XG5cbiAgICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgbm90aWZpY2F0aW9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSB0b29sdGlwOiBzdHJpbmcgPSAnJztcblxuICAgIEBJbnB1dCgpIHBvcG92ZXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIG92ZXJsYXk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgnZm9ySW5wdXQnKSBpc0ZvcklucHV0OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KCkgb25TaG93T3ZlcmxheTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoKSBvbk9wZW5Qb3BvdmVyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgQE91dHB1dCgpIG9uQ2xvc2VQb3BvdmVyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgQE91dHB1dCgnY2xpY2snKSBvbkNsaWNrOiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KHRydWUpO1xuICAgIEBPdXRwdXQoJ2ZvY3VzJykgb25Gb2N1czogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50Pih0cnVlKTtcbiAgICBAT3V0cHV0KCdibHVyJykgb25CbHVyOiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KHRydWUpO1xuXG4gICAgcHVibGljIGdldCBpbnRlcm5hbEJ1dHRvbkNsYXNzKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJ2J1dHRvbi1iYXNlJzogdHJ1ZSxcbiAgICAgICAgICAgICdidXR0b24tcHJpbWFyeSc6ICh0aGlzLmlzQnV0dG9uUHJpbWFyeSB8fCB0aGlzLmlzQnV0dG9uUHJpbWFyeUljb24pLFxuICAgICAgICAgICAgJ2J1dHRvbi1wcmltYXJ5LWljb24nOiB0aGlzLmlzQnV0dG9uUHJpbWFyeUljb24sXG4gICAgICAgICAgICAnYnV0dG9uLXNlY29uZGFyeSc6ICh0aGlzLmlzQnV0dG9uU2Vjb25kYXJ5IHx8IHRoaXMuaXNCdXR0b25TZWNvbmRhcnlJY29uKSxcbiAgICAgICAgICAgICdidXR0b24tc2Vjb25kYXJ5LWljb24nOiB0aGlzLmlzQnV0dG9uU2Vjb25kYXJ5SWNvbixcbiAgICAgICAgICAgICdidXR0b24tdGVydGlhcnknOiAodGhpcy5pc0J1dHRvblRlcnRpYXJ5IHx8IHRoaXMuaXNCdXR0b25UZXJ0aWFyeUljb24pLFxuICAgICAgICAgICAgJ2J1dHRvbi10ZXJ0aWFyeS1pY29uJzogdGhpcy5pc0J1dHRvblRlcnRpYXJ5SWNvbixcbiAgICAgICAgICAgICdidXR0b24tbGluayc6IHRoaXMuaXNCdXR0b25MaW5rLFxuICAgICAgICAgICAgJ2J1dHRvbi1vbmx5LWljb24nOiB0aGlzLmlzQnV0dG9uSWNvbixcbiAgICAgICAgICAgICdidXR0b24tZm9yLWlucHV0JzogdGhpcy5pc0ZvcklucHV0LFxuICAgICAgICAgICAgJ2J1dHRvbi1ub3RpZmljYXRpb24nOiB0aGlzLm5vdGlmaWNhdGlvbixcbiAgICAgICAgICAgICdidXR0b24tYWN0aW9uJzogdGhpcy5pc0J1dHRvbkFjdGlvblxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHsgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7IH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wb3BvdmVyVHJpZ2dlcikge1xuICAgICAgICAgICAgdGhpcy5wb3BvdmVyVHJpZ2dlci5kZXN0cm95UG9wb3ZlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0SG9zdEVsZW1lbnQoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9oYXNIb3N0QXR0cmlidXRlcyguLi5hdHRyaWJ1dGVzOiBzdHJpbmdbXSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gYXR0cmlidXRlcy5zb21lKGF0dHJpYnV0ZSA9PiB0aGlzLmdldEhvc3RFbGVtZW50KCkuaGFzQXR0cmlidXRlKGF0dHJpYnV0ZSkpO1xuICAgIH1cblxuICAgIHRvZ2dsZU92ZXJsYXkoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMubG9hZGluZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fb3ZlcmxheVZpc2libGUgPSAhdGhpcy5fb3ZlcmxheVZpc2libGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzaG93UG9wb3ZlcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5sb2FkaW5nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBvcG92ZXJUcmlnZ2VyLm9wZW5Qb3BvdmVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbG9zZVBvcG92ZXIoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMubG9hZGluZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wb3BvdmVyVHJpZ2dlci5jbG9zZVBvcG92ZXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMubG9hZGluZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMub3ZlcmxheSkge1xuICAgICAgICAgICAgICAgIHRoaXMudG9nZ2xlT3ZlcmxheSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5vbkNsaWNrLmVtaXQoZXZlbnQpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVGb2N1cyhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLmxvYWRpbmcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub25Gb2N1cy5lbWl0KGV2ZW50KTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlQmx1cihldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLmxvYWRpbmcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub25CbHVyLmVtaXQoZXZlbnQpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgICBvblJlc2l6ZShldmVudDogVUlFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wb3BvdmVyVHJpZ2dlcikge1xuICAgICAgICAgICAgdGhpcy5wb3BvdmVyVHJpZ2dlci5jbG9zZVBvcG92ZXIoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iXX0=
|