@versatiledatakit/data-pipelines
Version:
Data Pipelines help Data Engineers develop, deploy, run, and manage data processing workloads (called 'Data Job')
139 lines • 19.7 kB
JavaScript
/*
* Copyright 2023-2025 Broadcom
* SPDX-License-Identifier: Apache-2.0
*/
import { Component, EventEmitter, Input, Output } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "@clr/angular";
import * as i2 from "@angular/common";
function DataJobDeploymentDetailsModalComponent_clr_signpost_content_40_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "clr-signpost-content")(1, "p");
i0.ɵɵtext(2, " Learn more about resources requests and limits ");
i0.ɵɵelementStart(3, "a", 8);
i0.ɵɵelement(4, "clr-icon", 9);
i0.ɵɵelementEnd()();
i0.ɵɵelementStart(5, "p");
i0.ɵɵtext(6, " Learn more about each resource ");
i0.ɵɵelementStart(7, "a", 10);
i0.ɵɵelement(8, "clr-icon", 9);
i0.ɵɵelementEnd()()();
} }
export class DataJobDeploymentDetailsModalComponent {
constructor() {
this.openModalChange = new EventEmitter();
}
set openModal(value) {
this.openModalValue = value;
this.openModalChange.emit(this.openModalValue);
}
get openModal() {
return this.openModalValue;
}
}
DataJobDeploymentDetailsModalComponent.ɵfac = function DataJobDeploymentDetailsModalComponent_Factory(t) { return new (t || DataJobDeploymentDetailsModalComponent)(); };
DataJobDeploymentDetailsModalComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DataJobDeploymentDetailsModalComponent, selectors: [["lib-data-job-deployment-details-modal"]], inputs: { dataJobDeployment: "dataJobDeployment", openModal: "openModal" }, outputs: { openModalChange: "openModalChange" }, decls: 63, vars: 15, consts: [["clrModalSize", "lg", 3, "clrModalOpen", "clrModalOpenChange"], [1, "modal-title"], [1, "modal-body"], [1, "clr-row"], [1, "clr-col-5"], [1, "clr-col-3"], [1, "clr-col-4"], [4, "clrIfOpen"], ["href", "https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits", "target", "_blank", "rel", "noopener"], ["shape", "pop-out"], ["href", "https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#resource-units-in-kubernetes", "target", "_blank", "rel", "noopener"]], template: function DataJobDeploymentDetailsModalComponent_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "clr-modal", 0);
i0.ɵɵlistener("clrModalOpenChange", function DataJobDeploymentDetailsModalComponent_Template_clr_modal_clrModalOpenChange_0_listener($event) { return ctx.openModal = $event; });
i0.ɵɵelementStart(1, "h3", 1);
i0.ɵɵtext(2, "Deployment Details");
i0.ɵɵelementEnd();
i0.ɵɵelementStart(3, "div", 2)(4, "div", 3)(5, "div", 4)(6, "h6");
i0.ɵɵtext(7, "Version");
i0.ɵɵelementEnd();
i0.ɵɵelementStart(8, "p");
i0.ɵɵtext(9);
i0.ɵɵelementEnd()();
i0.ɵɵelementStart(10, "div", 5)(11, "h6");
i0.ɵɵtext(12, "Deployed by");
i0.ɵɵelementEnd();
i0.ɵɵelementStart(13, "p");
i0.ɵɵtext(14);
i0.ɵɵelementEnd()();
i0.ɵɵelementStart(15, "div", 6)(16, "h6");
i0.ɵɵtext(17, "Deployed at (UTC)");
i0.ɵɵelementEnd();
i0.ɵɵelementStart(18, "p");
i0.ɵɵtext(19);
i0.ɵɵpipe(20, "date");
i0.ɵɵelementEnd()()();
i0.ɵɵelementStart(21, "div", 3)(22, "div", 4)(23, "h6");
i0.ɵɵtext(24, "Schedule cron (UTC)");
i0.ɵɵelementEnd();
i0.ɵɵelementStart(25, "p");
i0.ɵɵtext(26);
i0.ɵɵelementEnd()();
i0.ɵɵelementStart(27, "div", 5)(28, "h6");
i0.ɵɵtext(29, "VDK version");
i0.ɵɵelementEnd();
i0.ɵɵelementStart(30, "p");
i0.ɵɵtext(31);
i0.ɵɵelementEnd()();
i0.ɵɵelementStart(32, "div", 6)(33, "h6");
i0.ɵɵtext(34, "Python Version");
i0.ɵɵelementEnd();
i0.ɵɵelementStart(35, "p");
i0.ɵɵtext(36);
i0.ɵɵelementEnd()()();
i0.ɵɵelementStart(37, "h4");
i0.ɵɵtext(38, " Resources ");
i0.ɵɵelementStart(39, "clr-signpost");
i0.ɵɵtemplate(40, DataJobDeploymentDetailsModalComponent_clr_signpost_content_40_Template, 9, 0, "clr-signpost-content", 7);
i0.ɵɵelementEnd()();
i0.ɵɵelementStart(41, "div", 3)(42, "div", 4)(43, "h6");
i0.ɵɵtext(44, "CPU Limit");
i0.ɵɵelementEnd();
i0.ɵɵelementStart(45, "p");
i0.ɵɵtext(46);
i0.ɵɵelementEnd()();
i0.ɵɵelementStart(47, "div", 4)(48, "h6");
i0.ɵɵtext(49, "CPU Request");
i0.ɵɵelementEnd();
i0.ɵɵelementStart(50, "p");
i0.ɵɵtext(51);
i0.ɵɵelementEnd()()();
i0.ɵɵelementStart(52, "div", 3)(53, "div", 4)(54, "h6");
i0.ɵɵtext(55, "Memory Limit");
i0.ɵɵelementEnd();
i0.ɵɵelementStart(56, "p");
i0.ɵɵtext(57);
i0.ɵɵelementEnd()();
i0.ɵɵelementStart(58, "div", 4)(59, "h6");
i0.ɵɵtext(60, "Memory Request");
i0.ɵɵelementEnd();
i0.ɵɵelementStart(61, "p");
i0.ɵɵtext(62);
i0.ɵɵelementEnd()()()()();
} if (rf & 2) {
i0.ɵɵproperty("clrModalOpen", ctx.openModal);
i0.ɵɵadvance(9);
i0.ɵɵtextInterpolate(ctx.dataJobDeployment.jobVersion);
i0.ɵɵadvance(5);
i0.ɵɵtextInterpolate(ctx.dataJobDeployment.deployedBy);
i0.ɵɵadvance(5);
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind3(20, 11, ctx.dataJobDeployment.deployedDate, "MMM d, y, hh:mm a", "UTC"), " ");
i0.ɵɵadvance(7);
i0.ɵɵtextInterpolate(ctx.dataJobDeployment.schedule.scheduleCron);
i0.ɵɵadvance(5);
i0.ɵɵtextInterpolate(ctx.dataJobDeployment.vdkVersion);
i0.ɵɵadvance(5);
i0.ɵɵtextInterpolate(ctx.dataJobDeployment.jobPythonVersion);
i0.ɵɵadvance(10);
i0.ɵɵtextInterpolate(ctx.dataJobDeployment.resources.cpuLimit);
i0.ɵɵadvance(5);
i0.ɵɵtextInterpolate(ctx.dataJobDeployment.resources.cpuRequest);
i0.ɵɵadvance(6);
i0.ɵɵtextInterpolate(ctx.dataJobDeployment.resources.memoryLimit);
i0.ɵɵadvance(5);
i0.ɵɵtextInterpolate(ctx.dataJobDeployment.resources.memoryRequest);
} }, directives: [i1.ClrModal, i1.ClrModalBody, i1.ClrSignpost, i1.ClrIfOpen, i1.ClrSignpostContent, i1.ClrIconCustomTag], pipes: [i2.DatePipe], styles: ["div.clr-row[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{display:flex;flex-direction:column}div.clr-row[_ngcontent-%COMP%] div[_ngcontent-%COMP%] p[_ngcontent-%COMP%], div.clr-row[_ngcontent-%COMP%] div[_ngcontent-%COMP%] h6[_ngcontent-%COMP%]{margin-top:12px}"] });
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DataJobDeploymentDetailsModalComponent, [{
type: Component,
args: [{ selector: 'lib-data-job-deployment-details-modal', template: "<!--\n ~ Copyright 2023-2025 Broadcom\n ~ SPDX-License-Identifier: Apache-2.0\n -->\n\n<clr-modal [(clrModalOpen)]=\"openModal\" clrModalSize=\"lg\">\n <h3 class=\"modal-title\">Deployment Details</h3>\n <div class=\"modal-body\">\n <div class=\"clr-row\">\n <div class=\"clr-col-5\">\n <h6>Version</h6>\n <p>{{ dataJobDeployment.jobVersion }}</p>\n </div>\n <div class=\"clr-col-3\">\n <h6>Deployed by</h6>\n <p>{{ dataJobDeployment.deployedBy }}</p>\n </div>\n <div class=\"clr-col-4\">\n <h6>Deployed at (UTC)</h6>\n <p>\n {{ dataJobDeployment.deployedDate | date : \"MMM d, y, hh:mm\n a\" : \"UTC\" }}\n </p>\n </div>\n </div>\n\n <div class=\"clr-row\">\n <div class=\"clr-col-5\">\n <h6>Schedule cron (UTC)</h6>\n <p>{{ dataJobDeployment.schedule.scheduleCron }}</p>\n </div>\n <div class=\"clr-col-3\">\n <h6>VDK version</h6>\n <p>{{ dataJobDeployment.vdkVersion }}</p>\n </div>\n <div class=\"clr-col-4\">\n <h6>Python Version</h6>\n <p>{{ dataJobDeployment.jobPythonVersion }}</p>\n </div>\n </div>\n\n <h4>\n Resources\n <clr-signpost>\n <clr-signpost-content *clrIfOpen>\n <p>\n Learn more about resources requests and limits\n <a\n href=\"https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits\"\n target=\"_blank\"\n rel=\"noopener\"\n >\n <clr-icon shape=\"pop-out\"></clr-icon>\n </a>\n </p>\n <p>\n Learn more about each resource\n <a\n href=\"https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#resource-units-in-kubernetes\"\n target=\"_blank\"\n rel=\"noopener\"\n >\n <clr-icon shape=\"pop-out\"></clr-icon>\n </a>\n </p>\n </clr-signpost-content>\n </clr-signpost>\n </h4>\n\n <div class=\"clr-row\">\n <div class=\"clr-col-5\">\n <h6>CPU Limit</h6>\n <p>{{ dataJobDeployment.resources.cpuLimit }}</p>\n </div>\n <div class=\"clr-col-5\">\n <h6>CPU Request</h6>\n <p>{{ dataJobDeployment.resources.cpuRequest }}</p>\n </div>\n </div>\n <div class=\"clr-row\">\n <div class=\"clr-col-5\">\n <h6>Memory Limit</h6>\n <p>{{ dataJobDeployment.resources.memoryLimit }}</p>\n </div>\n <div class=\"clr-col-5\">\n <h6>Memory Request</h6>\n <p>{{ dataJobDeployment.resources.memoryRequest }}</p>\n </div>\n </div>\n </div>\n</clr-modal>\n", styles: ["/*!\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */div.clr-row div{display:flex;flex-direction:column}div.clr-row div p,div.clr-row div h6{margin-top:12px}\n"] }]
}], null, { openModalChange: [{
type: Output
}], dataJobDeployment: [{
type: Input
}], openModal: [{
type: Input
}] }); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1qb2ItZGVwbG95bWVudC1kZXRhaWxzLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtcGlwZWxpbmVzL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLWpvYi9wYWdlcy9leGVjdXRpb25zL2RhdGEtam9iLWRlcGxveW1lbnQtZGV0YWlscy1tb2RhbC9kYXRhLWpvYi1kZXBsb3ltZW50LWRldGFpbHMtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS1waXBlbGluZXMvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtam9iL3BhZ2VzL2V4ZWN1dGlvbnMvZGF0YS1qb2ItZGVwbG95bWVudC1kZXRhaWxzLW1vZGFsL2RhdGEtam9iLWRlcGxveW1lbnQtZGV0YWlscy1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztJQ3VDdkQsNENBQWlDLFFBQUE7SUFFekIsZ0VBQ0E7SUFBQSw0QkFJQztJQUNHLDhCQUFxQztJQUN6QyxpQkFBSSxFQUFBO0lBRVIseUJBQUc7SUFDQyxnREFDQTtJQUFBLDZCQUlDO0lBQ0csOEJBQXFDO0lBQ3pDLGlCQUFJLEVBQUEsRUFBQTs7QURsRDVCLE1BQU0sT0FBTyxzQ0FBc0M7SUFMbkQ7UUFNYyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7S0FjM0Q7SUFURyxJQUNJLFNBQVMsQ0FBQyxLQUFLO1FBQ2YsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDL0IsQ0FBQzs7NEhBZFEsc0NBQXNDO3lGQUF0QyxzQ0FBc0M7UUNSbkQsb0NBQTBEO1FBQS9DLGdMQUE0QjtRQUNuQyw2QkFBd0I7UUFBQSxrQ0FBa0I7UUFBQSxpQkFBSztRQUMvQyw4QkFBd0IsYUFBQSxhQUFBLFNBQUE7UUFHUix1QkFBTztRQUFBLGlCQUFLO1FBQ2hCLHlCQUFHO1FBQUEsWUFBa0M7UUFBQSxpQkFBSSxFQUFBO1FBRTdDLCtCQUF1QixVQUFBO1FBQ2YsNEJBQVc7UUFBQSxpQkFBSztRQUNwQiwwQkFBRztRQUFBLGFBQWtDO1FBQUEsaUJBQUksRUFBQTtRQUU3QywrQkFBdUIsVUFBQTtRQUNmLGtDQUFpQjtRQUFBLGlCQUFLO1FBQzFCLDBCQUFHO1FBQ0MsYUFFSjs7UUFBQSxpQkFBSSxFQUFBLEVBQUE7UUFJWiwrQkFBcUIsY0FBQSxVQUFBO1FBRVQsb0NBQW1CO1FBQUEsaUJBQUs7UUFDNUIsMEJBQUc7UUFBQSxhQUE2QztRQUFBLGlCQUFJLEVBQUE7UUFFeEQsK0JBQXVCLFVBQUE7UUFDZiw0QkFBVztRQUFBLGlCQUFLO1FBQ3BCLDBCQUFHO1FBQUEsYUFBa0M7UUFBQSxpQkFBSSxFQUFBO1FBRTdDLCtCQUF1QixVQUFBO1FBQ2YsK0JBQWM7UUFBQSxpQkFBSztRQUN2QiwwQkFBRztRQUFBLGFBQXdDO1FBQUEsaUJBQUksRUFBQSxFQUFBO1FBSXZELDJCQUFJO1FBQ0EsNEJBQ0E7UUFBQSxxQ0FBYztRQUNWLDJIQXFCdUI7UUFDM0IsaUJBQWUsRUFBQTtRQUduQiwrQkFBcUIsY0FBQSxVQUFBO1FBRVQsMEJBQVM7UUFBQSxpQkFBSztRQUNsQiwwQkFBRztRQUFBLGFBQTBDO1FBQUEsaUJBQUksRUFBQTtRQUVyRCwrQkFBdUIsVUFBQTtRQUNmLDRCQUFXO1FBQUEsaUJBQUs7UUFDcEIsMEJBQUc7UUFBQSxhQUE0QztRQUFBLGlCQUFJLEVBQUEsRUFBQTtRQUczRCwrQkFBcUIsY0FBQSxVQUFBO1FBRVQsNkJBQVk7UUFBQSxpQkFBSztRQUNyQiwwQkFBRztRQUFBLGFBQTZDO1FBQUEsaUJBQUksRUFBQTtRQUV4RCwrQkFBdUIsVUFBQTtRQUNmLCtCQUFjO1FBQUEsaUJBQUs7UUFDdkIsMEJBQUc7UUFBQSxhQUErQztRQUFBLGlCQUFJLEVBQUEsRUFBQSxFQUFBLEVBQUE7O1FBakYzRCw0Q0FBNEI7UUFNcEIsZUFBa0M7UUFBbEMsc0RBQWtDO1FBSWxDLGVBQWtDO1FBQWxDLHNEQUFrQztRQUtqQyxlQUVKO1FBRkksdUhBRUo7UUFPRyxlQUE2QztRQUE3QyxpRUFBNkM7UUFJN0MsZUFBa0M7UUFBbEMsc0RBQWtDO1FBSWxDLGVBQXdDO1FBQXhDLDREQUF3QztRQW1DeEMsZ0JBQTBDO1FBQTFDLDhEQUEwQztRQUkxQyxlQUE0QztRQUE1QyxnRUFBNEM7UUFNNUMsZUFBNkM7UUFBN0MsaUVBQTZDO1FBSTdDLGVBQStDO1FBQS9DLG1FQUErQzs7dUZEekVyRCxzQ0FBc0M7Y0FMbEQsU0FBUzsyQkFDSSx1Q0FBdUM7Z0JBS3ZDLGVBQWU7a0JBQXhCLE1BQU07WUFDRSxpQkFBaUI7a0JBQXpCLEtBQUs7WUFLRixTQUFTO2tCQURaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMjMtMjAyNSBCcm9hZGNvbVxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0YUpvYkRlcGxveW1lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLWRhdGEtam9iLWRlcGxveW1lbnQtZGV0YWlscy1tb2RhbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGEtam9iLWRlcGxveW1lbnQtZGV0YWlscy1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZGF0YS1qb2ItZGVwbG95bWVudC1kZXRhaWxzLW1vZGFsLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRGF0YUpvYkRlcGxveW1lbnREZXRhaWxzTW9kYWxDb21wb25lbnQge1xuICAgIEBPdXRwdXQoKSBvcGVuTW9kYWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgQElucHV0KCkgZGF0YUpvYkRlcGxveW1lbnQ6IERhdGFKb2JEZXBsb3ltZW50O1xuXG4gICAgcHJpdmF0ZSBvcGVuTW9kYWxWYWx1ZTogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IG9wZW5Nb2RhbCh2YWx1ZSkge1xuICAgICAgICB0aGlzLm9wZW5Nb2RhbFZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMub3Blbk1vZGFsQ2hhbmdlLmVtaXQodGhpcy5vcGVuTW9kYWxWYWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IG9wZW5Nb2RhbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3Blbk1vZGFsVmFsdWU7XG4gICAgfVxufVxuIiwiPCEtLVxuICAgfiBDb3B5cmlnaHQgMjAyMy0yMDI1IEJyb2FkY29tXG4gICB+IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4gIC0tPlxuXG48Y2xyLW1vZGFsIFsoY2xyTW9kYWxPcGVuKV09XCJvcGVuTW9kYWxcIiBjbHJNb2RhbFNpemU9XCJsZ1wiPlxuICAgIDxoMyBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+RGVwbG95bWVudCBEZXRhaWxzPC9oMz5cbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2xyLXJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNsci1jb2wtNVwiPlxuICAgICAgICAgICAgICAgIDxoNj5WZXJzaW9uPC9oNj5cbiAgICAgICAgICAgICAgICA8cD57eyBkYXRhSm9iRGVwbG95bWVudC5qb2JWZXJzaW9uIH19PC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xyLWNvbC0zXCI+XG4gICAgICAgICAgICAgICAgPGg2PkRlcGxveWVkIGJ5PC9oNj5cbiAgICAgICAgICAgICAgICA8cD57eyBkYXRhSm9iRGVwbG95bWVudC5kZXBsb3llZEJ5IH19PC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xyLWNvbC00XCI+XG4gICAgICAgICAgICAgICAgPGg2PkRlcGxveWVkIGF0IChVVEMpPC9oNj5cbiAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAge3sgZGF0YUpvYkRlcGxveW1lbnQuZGVwbG95ZWREYXRlIHwgZGF0ZSA6IFwiTU1NIGQsIHksIGhoOm1tXG4gICAgICAgICAgICAgICAgICAgIGFcIiA6IFwiVVRDXCIgfX1cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNsci1yb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbHItY29sLTVcIj5cbiAgICAgICAgICAgICAgICA8aDY+U2NoZWR1bGUgY3JvbiAoVVRDKTwvaDY+XG4gICAgICAgICAgICAgICAgPHA+e3sgZGF0YUpvYkRlcGxveW1lbnQuc2NoZWR1bGUuc2NoZWR1bGVDcm9uIH19PC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xyLWNvbC0zXCI+XG4gICAgICAgICAgICAgICAgPGg2PlZESyB2ZXJzaW9uPC9oNj5cbiAgICAgICAgICAgICAgICA8cD57eyBkYXRhSm9iRGVwbG95bWVudC52ZGtWZXJzaW9uIH19PC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xyLWNvbC00XCI+XG4gICAgICAgICAgICAgICAgPGg2PlB5dGhvbiBWZXJzaW9uPC9oNj5cbiAgICAgICAgICAgICAgICA8cD57eyBkYXRhSm9iRGVwbG95bWVudC5qb2JQeXRob25WZXJzaW9uIH19PC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxoND5cbiAgICAgICAgICAgIFJlc291cmNlc1xuICAgICAgICAgICAgPGNsci1zaWducG9zdD5cbiAgICAgICAgICAgICAgICA8Y2xyLXNpZ25wb3N0LWNvbnRlbnQgKmNscklmT3Blbj5cbiAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICBMZWFybiBtb3JlIGFib3V0IHJlc291cmNlcyByZXF1ZXN0cyBhbmQgbGltaXRzXG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8jcmVxdWVzdHMtYW5kLWxpbWl0c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwicG9wLW91dFwiPjwvY2xyLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICBMZWFybiBtb3JlIGFib3V0IGVhY2ggcmVzb3VyY2VcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLXJlc291cmNlcy1jb250YWluZXJzLyNyZXNvdXJjZS11bml0cy1pbi1rdWJlcm5ldGVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJwb3Atb3V0XCI+PC9jbHItaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgIDwvY2xyLXNpZ25wb3N0LWNvbnRlbnQ+XG4gICAgICAgICAgICA8L2Nsci1zaWducG9zdD5cbiAgICAgICAgPC9oND5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2xyLXJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNsci1jb2wtNVwiPlxuICAgICAgICAgICAgICAgIDxoNj5DUFUgTGltaXQ8L2g2PlxuICAgICAgICAgICAgICAgIDxwPnt7IGRhdGFKb2JEZXBsb3ltZW50LnJlc291cmNlcy5jcHVMaW1pdCB9fTwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNsci1jb2wtNVwiPlxuICAgICAgICAgICAgICAgIDxoNj5DUFUgUmVxdWVzdDwvaDY+XG4gICAgICAgICAgICAgICAgPHA+e3sgZGF0YUpvYkRlcGxveW1lbnQucmVzb3VyY2VzLmNwdVJlcXVlc3QgfX08L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjbHItcm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xyLWNvbC01XCI+XG4gICAgICAgICAgICAgICAgPGg2Pk1lbW9yeSBMaW1pdDwvaDY+XG4gICAgICAgICAgICAgICAgPHA+e3sgZGF0YUpvYkRlcGxveW1lbnQucmVzb3VyY2VzLm1lbW9yeUxpbWl0IH19PC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xyLWNvbC01XCI+XG4gICAgICAgICAgICAgICAgPGg2Pk1lbW9yeSBSZXF1ZXN0PC9oNj5cbiAgICAgICAgICAgICAgICA8cD57eyBkYXRhSm9iRGVwbG95bWVudC5yZXNvdXJjZXMubWVtb3J5UmVxdWVzdCB9fTwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvY2xyLW1vZGFsPlxuIl19