@carbon/icons-angular
Version:
Angular components for icons in digital and software products using the Carbon Design System
169 lines • 29 kB
JavaScript
import { __decorate, __metadata } from "tslib";
import { NgModule, Component, Directive, ElementRef, Input, AfterViewInit } from "@angular/core";
import { getAttributes } from "@carbon/icon-helpers";
var MisuseComponent = /** @class */ (function () {
function MisuseComponent() {
this.focusable = false;
}
__decorate([
Input(),
__metadata("design:type", String)
], MisuseComponent.prototype, "ariaLabel", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], MisuseComponent.prototype, "ariaLabelledby", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], MisuseComponent.prototype, "ariaHidden", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], MisuseComponent.prototype, "title", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], MisuseComponent.prototype, "focusable", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], MisuseComponent.prototype, "innerClass", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], MisuseComponent.prototype, "size", void 0);
MisuseComponent = __decorate([
Component({
selector: "ibm-icon-misuse",
template: "\n <svg\n ibmIconMisuse\n [size]=\"size\"\n [ariaLabel]=\"ariaLabel\"\n [ariaLabelledby]=\"ariaLabelledby\"\n [ariaHidden]=\"ariaHidden\"\n [title]=\"title\"\n [isFocusable]=\"focusable\"\n [attr.class]=\"innerClass\">\n </svg>\n "
})
], MisuseComponent);
return MisuseComponent;
}());
export { MisuseComponent };
var MisuseDirective = /** @class */ (function () {
function MisuseDirective(elementRef) {
this.elementRef = elementRef;
this.isFocusable = false;
this.icons = {
"32": {
metadata: { "moduleName": "Misuse32", "filepath": "misuse/32.js", "descriptor": { "elem": "svg", "attrs": { "xmlns": "http://www.w3.org/2000/svg", "viewBox": "0 0 32 32", "fill": "currentColor", "width": 32, "height": 32 }, "content": [{ "elem": "path", "attrs": { "d": "M16,2C8.3,2,2,8.3,2,16s6.3,14,14,14s14-6.3,14-14S23.7,2,16,2z M21.4,23L16,17.6L10.6,23L9,21.4l5.4-5.4L9,10.6L10.6,9\tl5.4,5.4L21.4,9l1.6,1.6L17.6,16l5.4,5.4L21.4,23z" } }, { "elem": "path", "attrs": { "fill": "none", "d": "M21.4,23L16,17.6L10.6,23L9,21.4l5.4-5.4L9,10.6L10.6,9l5.4,5.4L21.4,9l1.6,1.6L17.6,16\tl5.4,5.4L21.4,23z", "data-icon-path": "inner-path", "opacity": "0" } }], "name": "misuse", "size": 32 }, "size": 32 },
svg: "<svg focusable=\"false\" preserveAspectRatio=\"xMidYMid meet\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentColor\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><path d=\"M16,2C8.3,2,2,8.3,2,16s6.3,14,14,14s14-6.3,14-14S23.7,2,16,2z M21.4,23L16,17.6L10.6,23L9,21.4l5.4-5.4L9,10.6L10.6,9\tl5.4,5.4L21.4,9l1.6,1.6L17.6,16l5.4,5.4L21.4,23z\"></path><path fill=\"none\" d=\"M21.4,23L16,17.6L10.6,23L9,21.4l5.4-5.4L9,10.6L10.6,9l5.4,5.4L21.4,9l1.6,1.6L17.6,16\tl5.4,5.4L21.4,23z\" data-icon-path=\"inner-path\" opacity=\"0\"></path></svg>"
},
"24": {
metadata: { "moduleName": "Misuse24", "filepath": "misuse/24.js", "descriptor": { "elem": "svg", "attrs": { "xmlns": "http://www.w3.org/2000/svg", "viewBox": "0 0 24 24", "fill": "currentColor", "width": 24, "height": 24 }, "content": [{ "elem": "path", "attrs": { "d": "M12,1C6,1,1,6,1,12s5,11,11,11s11-4.9,11-11S18.1,1,12,1z M16.2,17.5L12,13.3l-4.2,4.2l-1.3-1.3l4.2-4.2L6.5,7.8l1.3-1.3\tl4.2,4.2l4.2-4.2l1.3,1.3L13.3,12l4.2,4.2L16.2,17.5z" } }, { "elem": "path", "attrs": { "fill": "none", "d": "M16.2,17.5L12,13.3l-4.2,4.2l-1.3-1.3l4.2-4.2L6.5,7.8l1.3-1.3l4.2,4.2l4.2-4.2l1.3,1.3\tL13.3,12l4.2,4.2L16.2,17.5z", "data-icon-path": "inner-path", "opacity": "0" } }], "name": "misuse", "size": 24 }, "size": 24 },
svg: "<svg focusable=\"false\" preserveAspectRatio=\"xMidYMid meet\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentColor\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M12,1C6,1,1,6,1,12s5,11,11,11s11-4.9,11-11S18.1,1,12,1z M16.2,17.5L12,13.3l-4.2,4.2l-1.3-1.3l4.2-4.2L6.5,7.8l1.3-1.3\tl4.2,4.2l4.2-4.2l1.3,1.3L13.3,12l4.2,4.2L16.2,17.5z\"></path><path fill=\"none\" d=\"M16.2,17.5L12,13.3l-4.2,4.2l-1.3-1.3l4.2-4.2L6.5,7.8l1.3-1.3l4.2,4.2l4.2-4.2l1.3,1.3\tL13.3,12l4.2,4.2L16.2,17.5z\" data-icon-path=\"inner-path\" opacity=\"0\"></path></svg>"
},
"20": {
metadata: { "moduleName": "Misuse20", "filepath": "misuse/20.js", "descriptor": { "elem": "svg", "attrs": { "xmlns": "http://www.w3.org/2000/svg", "viewBox": "0 0 20 20", "fill": "currentColor", "width": 20, "height": 20 }, "content": [{ "elem": "path", "attrs": { "d": "M10,1c-4.9,0-9,4.1-9,9s4.1,9,9,9s9-4,9-9S15,1,10,1z M13.5,14.5L10,11l-3.5,3.5l-1-1L9,10L5.5,6.5l1-1L10,9l3.5-3.5l1,1\tL11,10l3.5,3.5L13.5,14.5z" } }, { "elem": "path", "attrs": { "fill": "none", "d": "M13.5,14.5L10,11l-3.5,3.5l-1-1L9,10L5.5,6.5l1-1L10,9l3.5-3.5l1,1L11,10l3.5,3.5L13.5,14.5z", "data-icon-path": "inner-path", "opacity": "0" } }], "name": "misuse", "size": 20 }, "size": 20 },
svg: "<svg focusable=\"false\" preserveAspectRatio=\"xMidYMid meet\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentColor\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M10,1c-4.9,0-9,4.1-9,9s4.1,9,9,9s9-4,9-9S15,1,10,1z M13.5,14.5L10,11l-3.5,3.5l-1-1L9,10L5.5,6.5l1-1L10,9l3.5-3.5l1,1\tL11,10l3.5,3.5L13.5,14.5z\"></path><path fill=\"none\" d=\"M13.5,14.5L10,11l-3.5,3.5l-1-1L9,10L5.5,6.5l1-1L10,9l3.5-3.5l1,1L11,10l3.5,3.5L13.5,14.5z\" data-icon-path=\"inner-path\" opacity=\"0\"></path></svg>"
},
"16": {
metadata: { "moduleName": "Misuse16", "filepath": "misuse/16.js", "descriptor": { "elem": "svg", "attrs": { "xmlns": "http://www.w3.org/2000/svg", "viewBox": "0 0 16 16", "fill": "currentColor", "width": 16, "height": 16 }, "content": [{ "elem": "path", "attrs": { "d": "M8,1C4.1,1,1,4.1,1,8s3.1,7,7,7s7-3.1,7-7S11.9,1,8,1z M10.7,11.5L8,8.8l-2.7,2.7l-0.8-0.8L7.2,8L4.5,5.3l0.8-0.8L8,7.2\tl2.7-2.7l0.8,0.8L8.8,8l2.7,2.7L10.7,11.5z" } }, { "elem": "path", "attrs": { "d": "M10.7,11.5L8,8.8l-2.7,2.7l-0.8-0.8L7.2,8L4.5,5.3l0.8-0.8L8,7.2l2.7-2.7l0.8,0.8L8.8,8\tl2.7,2.7L10.7,11.5z", "data-icon-path": "inner-path", "opacity": "0" } }], "name": "misuse", "size": 16 }, "size": 16 },
svg: "<svg focusable=\"false\" preserveAspectRatio=\"xMidYMid meet\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentColor\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" aria-hidden=\"true\"><path d=\"M8,1C4.1,1,1,4.1,1,8s3.1,7,7,7s7-3.1,7-7S11.9,1,8,1z M10.7,11.5L8,8.8l-2.7,2.7l-0.8-0.8L7.2,8L4.5,5.3l0.8-0.8L8,7.2\tl2.7-2.7l0.8,0.8L8.8,8l2.7,2.7L10.7,11.5z\"></path><path d=\"M10.7,11.5L8,8.8l-2.7,2.7l-0.8-0.8L7.2,8L4.5,5.3l0.8-0.8L8,7.2l2.7-2.7l0.8,0.8L8.8,8\tl2.7,2.7L10.7,11.5z\" data-icon-path=\"inner-path\" opacity=\"0\"></path></svg>"
},
};
}
MisuseDirective_1 = MisuseDirective;
MisuseDirective.prototype.ngAfterViewInit = function () {
var svg = this.elementRef.nativeElement;
svg.setAttribute("xmlns", "http://www.w3.org/2000/svg");
var icon = this.icons[this.size];
var domParser = new DOMParser();
var rawSVG = icon.svg;
var svgElement = domParser.parseFromString(rawSVG, "image/svg+xml").documentElement;
var node = svgElement.firstChild;
while (node) {
// importNode makes a clone of the node
// this ensures we keep looping over the nodes in the parsed document
svg.appendChild(svg.ownerDocument.importNode(node, true));
node = node.nextSibling;
}
var attributes = getAttributes({
width: icon.metadata.descriptor.attrs.height,
height: icon.metadata.descriptor.attrs.height,
viewBox: icon.metadata.descriptor.attrs.viewBox,
title: this.title,
"aria-label": this.ariaLabel,
"aria-labelledby": this.ariaLabelledby,
"aria-hidden": this.ariaHidden,
focusable: this.isFocusable.toString()
});
var attrKeys = Object.keys(attributes);
for (var i = 0; i < attrKeys.length; i++) {
var key = attrKeys[i];
var value = attributes[key];
if (key === "title") {
continue;
}
if (value) {
svg.setAttribute(key, value);
}
}
if (attributes.title) {
var title = document.createElement("title");
title.textContent = attributes.title;
MisuseDirective_1.titleIdCounter++;
title.setAttribute("id", "misuse-" + MisuseDirective_1.titleIdCounter);
svg.appendChild(title);
svg.setAttribute("aria-labelledby", "misuse-" + MisuseDirective_1.titleIdCounter);
}
};
var MisuseDirective_1;
MisuseDirective.titleIdCounter = 0;
MisuseDirective.ctorParameters = function () { return [
{ type: ElementRef }
]; };
__decorate([
Input(),
__metadata("design:type", String)
], MisuseDirective.prototype, "ariaLabel", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], MisuseDirective.prototype, "ariaLabelledby", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], MisuseDirective.prototype, "ariaHidden", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], MisuseDirective.prototype, "title", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], MisuseDirective.prototype, "isFocusable", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], MisuseDirective.prototype, "size", void 0);
MisuseDirective = MisuseDirective_1 = __decorate([
Directive({
selector: "[ibmIconMisuse]"
}),
__metadata("design:paramtypes", [ElementRef])
], MisuseDirective);
return MisuseDirective;
}());
export { MisuseDirective };
var MisuseModule = /** @class */ (function () {
function MisuseModule() {
}
MisuseModule = __decorate([
NgModule({
declarations: [
MisuseComponent,
MisuseDirective,
],
exports: [
MisuseComponent,
MisuseDirective,
]
})
], MisuseModule);
return MisuseModule;
}());
export { MisuseModule };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzL21pc3VzZS9pY29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQ0wsUUFBUSxFQUNSLFNBQVMsRUFDVCxTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFDTCxhQUFhLEVBQ2QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBa0JyRDtJQUFBO1FBS1csY0FBUyxHQUFZLEtBQUssQ0FBQztJQUd0QyxDQUFDO0lBUFU7UUFBUixLQUFLLEVBQUU7O3NEQUFtQjtJQUNsQjtRQUFSLEtBQUssRUFBRTs7MkRBQXdCO0lBQ3ZCO1FBQVIsS0FBSyxFQUFFOzt1REFBcUI7SUFDcEI7UUFBUixLQUFLLEVBQUU7O2tEQUFlO0lBQ2Q7UUFBUixLQUFLLEVBQUU7O3NEQUE0QjtJQUMzQjtRQUFSLEtBQUssRUFBRTs7dURBQW9CO0lBQ25CO1FBQVIsS0FBSyxFQUFFOztpREFBYztJQVBYLGVBQWU7UUFmM0IsU0FBUyxDQUFDO1lBQ1YsUUFBUSxFQUFFLGlCQUFpQjtZQUMxQixRQUFRLEVBQUUsdVJBV1Q7U0FDRixDQUFDO09BQ1csZUFBZSxDQVEzQjtJQUFELHNCQUFDO0NBQUEsQUFSRCxJQVFDO1NBUlksZUFBZTtBQWU1QjtJQWtDRSx5QkFBc0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQTNCbkMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFHNUIsVUFBSyxHQUFHO1lBRWxCLElBQUksRUFBRTtnQkFDSixRQUFRLEVBQUUsRUFBQyxZQUFZLEVBQUMsVUFBVSxFQUFDLFVBQVUsRUFBQyxjQUFjLEVBQUMsWUFBWSxFQUFDLEVBQUMsTUFBTSxFQUFDLEtBQUssRUFBQyxPQUFPLEVBQUMsRUFBQyxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsU0FBUyxFQUFDLFdBQVcsRUFBQyxNQUFNLEVBQUMsY0FB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QWdCLENBQUMsQ0FBQztZQUNyRSxHQUFHLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZCLEdBQUcsQ0FBQyxZQUFZLENBQUMsaUJBQWlCLEVBQUUsWUFBVSxpQkFBZSxDQUFDLGNBQWdCLENBQUMsQ0FBQztTQUNqRjtJQUNKLENBQUM7O0lBcEZPLDhCQUFjLEdBQUcsQ0FBQyxDQUFDOztnQkFpQ1EsVUFBVTs7SUEvQm5DO1FBQVIsS0FBSyxFQUFFOztzREFBbUI7SUFDbEI7UUFBUixLQUFLLEVBQUU7OzJEQUF3QjtJQUN2QjtRQUFSLEtBQUssRUFBRTs7dURBQXFCO0lBQ3BCO1FBQVIsS0FBSyxFQUFFOztrREFBZTtJQUNkO1FBQVIsS0FBSyxFQUFFOzt3REFBOEI7SUFDN0I7UUFBUixLQUFLLEVBQUU7O2lEQUFjO0lBUlgsZUFBZTtRQUgzQixTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsaUJBQWlCO1NBQzVCLENBQUM7eUNBbUNrQyxVQUFVO09BbENqQyxlQUFlLENBc0YzQjtJQUFELHNCQUFDO0NBQUEsQUF0RkQsSUFzRkM7U0F0RlksZUFBZTtBQXVHNUI7SUFBQTtJQUEyQixDQUFDO0lBQWYsWUFBWTtRQWR4QixRQUFRLENBQUM7WUFDUixZQUFZLEVBQUU7Z0JBRWQsZUFBZTtnQkFDZixlQUFlO2FBRWQ7WUFDRCxPQUFPLEVBQUU7Z0JBRVQsZUFBZTtnQkFDZixlQUFlO2FBRWQ7U0FDRixDQUFDO09BQ1csWUFBWSxDQUFHO0lBQUQsbUJBQUM7Q0FBQSxBQUE1QixJQUE0QjtTQUFmLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7XG4gIE5nTW9kdWxlLFxuICBDb21wb25lbnQsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIEFmdGVyVmlld0luaXRcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IGdldEF0dHJpYnV0ZXMgfSBmcm9tIFwiQGNhcmJvbi9pY29uLWhlbHBlcnNcIjtcblxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6IFwiaWJtLWljb24tbWlzdXNlXCIsXG4gIHRlbXBsYXRlOiBgXG4gICAgPHN2Z1xuICAgICAgaWJtSWNvbk1pc3VzZVxuICAgICAgW3NpemVdPVwic2l6ZVwiXG4gICAgICBbYXJpYUxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgICBbYXJpYUxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkYnlcIlxuICAgICAgW2FyaWFIaWRkZW5dPVwiYXJpYUhpZGRlblwiXG4gICAgICBbdGl0bGVdPVwidGl0bGVcIlxuICAgICAgW2lzRm9jdXNhYmxlXT1cImZvY3VzYWJsZVwiXG4gICAgICBbYXR0ci5jbGFzc109XCJpbm5lckNsYXNzXCI+XG4gICAgPC9zdmc+XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgTWlzdXNlQ29tcG9uZW50IHtcbiAgQElucHV0KCkgYXJpYUxhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGFyaWFMYWJlbGxlZGJ5OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGFyaWFIaWRkZW46IGJvb2xlYW47XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGZvY3VzYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBpbm5lckNsYXNzOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNpemU6IHN0cmluZztcbn1cblxuXG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogXCJbaWJtSWNvbk1pc3VzZV1cIlxufSlcbmV4cG9ydCBjbGFzcyBNaXN1c2VEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgc3RhdGljIHRpdGxlSWRDb3VudGVyID0gMDtcblxuICBASW5wdXQoKSBhcmlhTGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgYXJpYUxhYmVsbGVkYnk6IHN0cmluZztcbiAgQElucHV0KCkgYXJpYUhpZGRlbjogYm9vbGVhbjtcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgaXNGb2N1c2FibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2l6ZTogc3RyaW5nO1xuXG4gIHByb3RlY3RlZCBpY29ucyA9IHtcbiAgICBcbiAgXCIzMlwiOiB7XG4gICAgbWV0YWRhdGE6IHtcIm1vZHVsZU5hbWVcIjpcIk1pc3VzZTMyXCIsXCJmaWxlcGF0aFwiOlwibWlzdXNlLzMyLmpzXCIsXCJkZXNjcmlwdG9yXCI6e1wiZWxlbVwiOlwic3ZnXCIsXCJhdHRyc1wiOntcInhtbG5zXCI6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLFwidmlld0JveFwiOlwiMCAwIDMyIDMyXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcIndpZHRoXCI6MzIsXCJoZWlnaHRcIjozMn0sXCJjb250ZW50XCI6W3tcImVsZW1cIjpcInBhdGhcIixcImF0dHJzXCI6e1wiZFwiOlwiTTE2LDJDOC4zLDIsMiw4LjMsMiwxNnM2LjMsMTQsMTQsMTRzMTQtNi4zLDE0LTE0UzIzLjcsMiwxNiwyeiBNMjEuNCwyM0wxNiwxNy42TDEwLjYsMjNMOSwyMS40bDUuNC01LjRMOSwxMC42TDEwLjYsOVxcdGw1LjQsNS40TDIxLjQsOWwxLjYsMS42TDE3LjYsMTZsNS40LDUuNEwyMS40LDIzelwifX0se1wiZWxlbVwiOlwicGF0aFwiLFwiYXR0cnNcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMjEuNCwyM0wxNiwxNy42TDEwLjYsMjNMOSwyMS40bDUuNC01LjRMOSwxMC42TDEwLjYsOWw1LjQsNS40TDIxLjQsOWwxLjYsMS42TDE3LjYsMTZcXHRsNS40LDUuNEwyMS40LDIzelwiLFwiZGF0YS1pY29uLXBhdGhcIjpcImlubmVyLXBhdGhcIixcIm9wYWNpdHlcIjpcIjBcIn19XSxcIm5hbWVcIjpcIm1pc3VzZVwiLFwic2l6ZVwiOjMyfSxcInNpemVcIjozMn0sXG4gICAgc3ZnOiBgPHN2ZyBmb2N1c2FibGU9XCJmYWxzZVwiIHByZXNlcnZlQXNwZWN0UmF0aW89XCJ4TWlkWU1pZCBtZWV0XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMzJcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PHBhdGggZD1cIk0xNiwyQzguMywyLDIsOC4zLDIsMTZzNi4zLDE0LDE0LDE0czE0LTYuMywxNC0xNFMyMy43LDIsMTYsMnogTTIxLjQsMjNMMTYsMTcuNkwxMC42LDIzTDksMjEuNGw1LjQtNS40TDksMTAuNkwxMC42LDlcdGw1LjQsNS40TDIxLjQsOWwxLjYsMS42TDE3LjYsMTZsNS40LDUuNEwyMS40LDIzelwiPjwvcGF0aD48cGF0aCBmaWxsPVwibm9uZVwiIGQ9XCJNMjEuNCwyM0wxNiwxNy42TDEwLjYsMjNMOSwyMS40bDUuNC01LjRMOSwxMC42TDEwLjYsOWw1LjQsNS40TDIxLjQsOWwxLjYsMS42TDE3LjYsMTZcdGw1LjQsNS40TDIxLjQsMjN6XCIgZGF0YS1pY29uLXBhdGg9XCJpbm5lci1wYXRoXCIgb3BhY2l0eT1cIjBcIj48L3BhdGg+PC9zdmc+YFxuICB9LFxuXG4gIFwiMjRcIjoge1xuICAgIG1ldGFkYXRhOiB7XCJtb2R1bGVOYW1lXCI6XCJNaXN1c2UyNFwiLFwiZmlsZXBhdGhcIjpcIm1pc3VzZS8yNC5qc1wiLFwiZGVzY3JpcHRvclwiOntcImVsZW1cIjpcInN2Z1wiLFwiYXR0cnNcIjp7XCJ4bWxuc1wiOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ3aWR0aFwiOjI0LFwiaGVpZ2h0XCI6MjR9LFwiY29udGVudFwiOlt7XCJlbGVtXCI6XCJwYXRoXCIsXCJhdHRyc1wiOntcImRcIjpcIk0xMiwxQzYsMSwxLDYsMSwxMnM1LDExLDExLDExczExLTQuOSwxMS0xMVMxOC4xLDEsMTIsMXogTTE2LjIsMTcuNUwxMiwxMy4zbC00LjIsNC4ybC0xLjMtMS4zbDQuMi00LjJMNi41LDcuOGwxLjMtMS4zXFx0bDQuMiw0LjJsNC4yLTQuMmwxLjMsMS4zTDEzLjMsMTJsNC4yLDQuMkwxNi4yLDE3LjV6XCJ9fSx7XCJlbGVtXCI6XCJwYXRoXCIsXCJhdHRyc1wiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0xNi4yLDE3LjVMMTIsMTMuM2wtNC4yLDQuMmwtMS4zLTEuM2w0LjItNC4yTDYuNSw3LjhsMS4zLTEuM2w0LjIsNC4ybDQuMi00LjJsMS4zLDEuM1xcdEwxMy4zLDEybDQuMiw0LjJMMTYuMiwxNy41elwiLFwiZGF0YS1pY29uLXBhdGhcIjpcImlubmVyLXBhdGhcIixcIm9wYWNpdHlcIjpcIjBcIn19XSxcIm5hbWVcIjpcIm1pc3VzZVwiLFwic2l6ZVwiOjI0fSxcInNpemVcIjoyNH0sXG4gICAgc3ZnOiBgPHN2ZyBmb2N1c2FibGU9XCJmYWxzZVwiIHByZXNlcnZlQXNwZWN0UmF0aW89XCJ4TWlkWU1pZCBtZWV0XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PHBhdGggZD1cIk0xMiwxQzYsMSwxLDYsMSwxMnM1LDExLDExLDExczExLTQuOSwxMS0xMVMxOC4xLDEsMTIsMXogTTE2LjIsMTcuNUwxMiwxMy4zbC00LjIsNC4ybC0xLjMtMS4zbDQuMi00LjJMNi41LDcuOGwxLjMtMS4zXHRsNC4yLDQuMmw0LjItNC4ybDEuMywxLjNMMTMuMywxMmw0LjIsNC4yTDE2LjIsMTcuNXpcIj48L3BhdGg+PHBhdGggZmlsbD1cIm5vbmVcIiBkPVwiTTE2LjIsMTcuNUwxMiwxMy4zbC00LjIsNC4ybC0xLjMtMS4zbDQuMi00LjJMNi41LDcuOGwxLjMtMS4zbDQuMiw0LjJsNC4yLTQuMmwxLjMsMS4zXHRMMTMuMywxMmw0LjIsNC4yTDE2LjIsMTcuNXpcIiBkYXRhLWljb24tcGF0aD1cImlubmVyLXBhdGhcIiBvcGFjaXR5PVwiMFwiPjwvcGF0aD48L3N2Zz5gXG4gIH0sXG5cbiAgXCIyMFwiOiB7XG4gICAgbWV0YWRhdGE6IHtcIm1vZHVsZU5hbWVcIjpcIk1pc3VzZTIwXCIsXCJmaWxlcGF0aFwiOlwibWlzdXNlLzIwLmpzXCIsXCJkZXNjcmlwdG9yXCI6e1wiZWxlbVwiOlwic3ZnXCIsXCJhdHRyc1wiOntcInhtbG5zXCI6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLFwidmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcIndpZHRoXCI6MjAsXCJoZWlnaHRcIjoyMH0sXCJjb250ZW50XCI6W3tcImVsZW1cIjpcInBhdGhcIixcImF0dHJzXCI6e1wiZFwiOlwiTTEwLDFjLTQuOSwwLTksNC4xLTksOXM0LjEsOSw5LDlzOS00LDktOVMxNSwxLDEwLDF6IE0xMy41LDE0LjVMMTAsMTFsLTMuNSwzLjVsLTEtMUw5LDEwTDUuNSw2LjVsMS0xTDEwLDlsMy41LTMuNWwxLDFcXHRMMTEsMTBsMy41LDMuNUwxMy41LDE0LjV6XCJ9fSx7XCJlbGVtXCI6XCJwYXRoXCIsXCJhdHRyc1wiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0xMy41LDE0LjVMMTAsMTFsLTMuNSwzLjVsLTEtMUw5LDEwTDUuNSw2LjVsMS0xTDEwLDlsMy41LTMuNWwxLDFMMTEsMTBsMy41LDMuNUwxMy41LDE0LjV6XCIsXCJkYXRhLWljb24tcGF0aFwiOlwiaW5uZXItcGF0aFwiLFwib3BhY2l0eVwiOlwiMFwifX1dLFwibmFtZVwiOlwibWlzdXNlXCIsXCJzaXplXCI6MjB9LFwic2l6ZVwiOjIwfSxcbiAgICBzdmc6IGA8c3ZnIGZvY3VzYWJsZT1cImZhbHNlXCIgcHJlc2VydmVBc3BlY3RSYXRpbz1cInhNaWRZTWlkIG1lZXRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48cGF0aCBkPVwiTTEwLDFjLTQuOSwwLTksNC4xLTksOXM0LjEsOSw5LDlzOS00LDktOVMxNSwxLDEwLDF6IE0xMy41LDE0LjVMMTAsMTFsLTMuNSwzLjVsLTEtMUw5LDEwTDUuNSw2LjVsMS0xTDEwLDlsMy41LTMuNWwxLDFcdEwxMSwxMGwzLjUsMy41TDEzLjUsMTQuNXpcIj48L3BhdGg+PHBhdGggZmlsbD1cIm5vbmVcIiBkPVwiTTEzLjUsMTQuNUwxMCwxMWwtMy41LDMuNWwtMS0xTDksMTBMNS41LDYuNWwxLTFMMTAsOWwzLjUtMy41bDEsMUwxMSwxMGwzLjUsMy41TDEzLjUsMTQuNXpcIiBkYXRhLWljb24tcGF0aD1cImlubmVyLXBhdGhcIiBvcGFjaXR5PVwiMFwiPjwvcGF0aD48L3N2Zz5gXG4gIH0sXG5cbiAgXCIxNlwiOiB7XG4gICAgbWV0YWRhdGE6IHtcIm1vZHVsZU5hbWVcIjpcIk1pc3VzZTE2XCIsXCJmaWxlcGF0aFwiOlwibWlzdXNlLzE2LmpzXCIsXCJkZXNjcmlwdG9yXCI6e1wiZWxlbVwiOlwic3ZnXCIsXCJhdHRyc1wiOntcInhtbG5zXCI6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcIndpZHRoXCI6MTYsXCJoZWlnaHRcIjoxNn0sXCJjb250ZW50XCI6W3tcImVsZW1cIjpcInBhdGhcIixcImF0dHJzXCI6e1wiZFwiOlwiTTgsMUM0LjEsMSwxLDQuMSwxLDhzMy4xLDcsNyw3czctMy4xLDctN1MxMS45LDEsOCwxeiBNMTAuNywxMS41TDgsOC44bC0yLjcsMi43bC0wLjgtMC44TDcuMiw4TDQuNSw1LjNsMC44LTAuOEw4LDcuMlxcdGwyLjctMi43bDAuOCwwLjhMOC44LDhsMi43LDIuN0wxMC43LDExLjV6XCJ9fSx7XCJlbGVtXCI6XCJwYXRoXCIsXCJhdHRyc1wiOntcImRcIjpcIk0xMC43LDExLjVMOCw4LjhsLTIuNywyLjdsLTAuOC0wLjhMNy4yLDhMNC41LDUuM2wwLjgtMC44TDgsNy4ybDIuNy0yLjdsMC44LDAuOEw4LjgsOFxcdGwyLjcsMi43TDEwLjcsMTEuNXpcIixcImRhdGEtaWNvbi1wYXRoXCI6XCJpbm5lci1wYXRoXCIsXCJvcGFjaXR5XCI6XCIwXCJ9fV0sXCJuYW1lXCI6XCJtaXN1c2VcIixcInNpemVcIjoxNn0sXCJzaXplXCI6MTZ9LFxuICAgIHN2ZzogYDxzdmcgZm9jdXNhYmxlPVwiZmFsc2VcIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pZFlNaWQgbWVldFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwiY3VycmVudENvbG9yXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjxwYXRoIGQ9XCJNOCwxQzQuMSwxLDEsNC4xLDEsOHMzLjEsNyw3LDdzNy0zLjEsNy03UzExLjksMSw4LDF6IE0xMC43LDExLjVMOCw4LjhsLTIuNywyLjdsLTAuOC0wLjhMNy4yLDhMNC41LDUuM2wwLjgtMC44TDgsNy4yXHRsMi43LTIuN2wwLjgsMC44TDguOCw4bDIuNywyLjdMMTAuNywxMS41elwiPjwvcGF0aD48cGF0aCBkPVwiTTEwLjcsMTEuNUw4LDguOGwtMi43LDIuN2wtMC44LTAuOEw3LjIsOEw0LjUsNS4zbDAuOC0wLjhMOCw3LjJsMi43LTIuN2wwLjgsMC44TDguOCw4XHRsMi43LDIuN0wxMC43LDExLjV6XCIgZGF0YS1pY29uLXBhdGg9XCJpbm5lci1wYXRoXCIgb3BhY2l0eT1cIjBcIj48L3BhdGg+PC9zdmc+YFxuICB9LFxuXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cblx0bmdBZnRlclZpZXdJbml0KCkge1xuICAgIGNvbnN0IHN2ZyA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIHN2Zy5zZXRBdHRyaWJ1dGUoXCJ4bWxuc1wiLCBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIpO1xuXG4gICAgY29uc3QgaWNvbiA9IHRoaXMuaWNvbnNbdGhpcy5zaXplXVxuXG4gICAgY29uc3QgZG9tUGFyc2VyID0gbmV3IERPTVBhcnNlcigpO1xuICAgIGNvbnN0IHJhd1NWRyA9IGljb24uc3ZnO1xuICAgIGNvbnN0IHN2Z0VsZW1lbnQgPSBkb21QYXJzZXIucGFyc2VGcm9tU3RyaW5nKHJhd1NWRywgXCJpbWFnZS9zdmcreG1sXCIpLmRvY3VtZW50RWxlbWVudDtcblxuICAgIGxldCBub2RlID0gc3ZnRWxlbWVudC5maXJzdENoaWxkO1xuICAgIHdoaWxlIChub2RlKSB7XG4gICAgICAvLyBpbXBvcnROb2RlIG1ha2VzIGEgY2xvbmUgb2YgdGhlIG5vZGVcbiAgICAgIC8vIHRoaXMgZW5zdXJlcyB3ZSBrZWVwIGxvb3Bpbmcgb3ZlciB0aGUgbm9kZXMgaW4gdGhlIHBhcnNlZCBkb2N1bWVudFxuICAgICAgc3ZnLmFwcGVuZENoaWxkKHN2Zy5vd25lckRvY3VtZW50LmltcG9ydE5vZGUobm9kZSwgdHJ1ZSkpO1xuICAgICAgbm9kZSA9IG5vZGUubmV4dFNpYmxpbmc7XG4gICAgfVxuXG4gICAgY29uc3QgYXR0cmlidXRlcyA9IGdldEF0dHJpYnV0ZXMoe1xuICAgICAgd2lkdGg6IGljb24ubWV0YWRhdGEuZGVzY3JpcHRvci5hdHRycy5oZWlnaHQsXG4gICAgICBoZWlnaHQ6IGljb24ubWV0YWRhdGEuZGVzY3JpcHRvci5hdHRycy5oZWlnaHQsXG4gICAgICB2aWV3Qm94OiBpY29uLm1ldGFkYXRhLmRlc2NyaXB0b3IuYXR0cnMudmlld0JveCxcbiAgICAgIHRpdGxlOiB0aGlzLnRpdGxlLFxuICAgICAgXCJhcmlhLWxhYmVsXCI6IHRoaXMuYXJpYUxhYmVsLFxuICAgICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGhpcy5hcmlhTGFiZWxsZWRieSxcbiAgICAgIFwiYXJpYS1oaWRkZW5cIjogdGhpcy5hcmlhSGlkZGVuLFxuICAgICAgZm9jdXNhYmxlOiB0aGlzLmlzRm9jdXNhYmxlLnRvU3RyaW5nKClcbiAgICB9KTtcblxuICAgIGNvbnN0IGF0dHJLZXlzID0gT2JqZWN0LmtleXMoYXR0cmlidXRlcyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhdHRyS2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3Qga2V5ID0gYXR0cktleXNbaV07XG4gICAgICBjb25zdCB2YWx1ZSA9IGF0dHJpYnV0ZXNba2V5XTtcbiAgICAgIGlmIChrZXkgPT09IFwidGl0bGVcIikge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICBzdmcuc2V0QXR0cmlidXRlKGtleSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChhdHRyaWJ1dGVzLnRpdGxlKSB7XG4gICAgICBjb25zdCB0aXRsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiKTtcbiAgICAgIHRpdGxlLnRleHRDb250ZW50ID0gYXR0cmlidXRlcy50aXRsZTtcbiAgICAgIE1pc3VzZURpcmVjdGl2ZS50aXRsZUlkQ291bnRlcisrO1xuICAgICAgdGl0bGUuc2V0QXR0cmlidXRlKFwiaWRcIiwgYG1pc3VzZS0ke01pc3VzZURpcmVjdGl2ZS50aXRsZUlkQ291bnRlcn1gKTtcbiAgICAgIHN2Zy5hcHBlbmRDaGlsZCh0aXRsZSk7XG4gICAgICBzdmcuc2V0QXR0cmlidXRlKFwiYXJpYS1sYWJlbGxlZGJ5XCIsIGBtaXN1c2UtJHtNaXN1c2VEaXJlY3RpdmUudGl0bGVJZENvdW50ZXJ9YCk7XG4gICAgfVxuXHR9XG59XG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgXG4gIE1pc3VzZUNvbXBvbmVudCxcbiAgTWlzdXNlRGlyZWN0aXZlLFxuXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBcbiAgTWlzdXNlQ29tcG9uZW50LFxuICBNaXN1c2VEaXJlY3RpdmUsXG5cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBNaXN1c2VNb2R1bGUge31cbiJdfQ==