tango-app-ui-store-builder 1.2.4 → 1.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/collection-update-ai/collection-update-ai.component.mjs +3 -2
- package/esm2022/lib/components/collection-update-ai/find-replace-layout/prepare-template/prepare-template.component.mjs +3 -2
- package/esm2022/lib/components/collection-update-ai/find-replace-layout/review-replace/review-replace.component.mjs +3 -2
- package/esm2022/lib/components/create-fixture/create-fixture.component.mjs +41 -4
- package/esm2022/lib/components/custom-select/custom-select.component.mjs +14 -5
- package/esm2022/lib/components/fixture-template/template-assign-stores/preview-modal/preview-modal.component.mjs +3 -2
- package/esm2022/lib/components/fixture-template/template-assign-stores/template-assign-stores.component.mjs +3 -2
- package/esm2022/lib/components/fixture-template-table/find-and-replace/find-and-replace.component.mjs +3 -2
- package/esm2022/lib/components/fixture-template-table/fixture-template-table.component.mjs +2 -3
- package/esm2022/lib/components/fixture-template-tree/fixture-template-tree.component.mjs +3 -2
- package/esm2022/lib/components/manage-plano/verification-table/verification-table.component.mjs +2 -3
- package/esm2022/lib/components/manage-store-plano/manage-store-plano.component.mjs +87 -13
- package/esm2022/lib/components/manage-store-plano/plano-rollout/plano-rollout.component.mjs +4 -3
- package/esm2022/lib/components/manage-store-plano/template-basic-details/template-basic-details.component.mjs +114 -4
- package/esm2022/lib/components/manage-store-plano/zone-verification-feedback/zone-verification-feedback.component.mjs +7 -2
- package/esm2022/lib/components/onboard-store-plano/onboard-fixture/onboard-fixture.component.mjs +3 -3
- package/esm2022/lib/components/onboard-store-plano/onboard-store-plano.component.mjs +255 -25
- package/esm2022/lib/components/plano-configurations/plano-configurations.component.mjs +162 -3
- package/esm2022/lib/components/plano-library/fixture-library/fixture-library.component.mjs +3 -4
- package/esm2022/lib/components/plano-library/vm-library/vm-library.component.mjs +3 -4
- package/esm2022/lib/components/plano-tools/cad-files/cad-files.component.mjs +88 -0
- package/esm2022/lib/components/plano-tools/cad-render/cad-render.component.mjs +4 -5
- package/esm2022/lib/components/plano-tools/move-bucket/move-bucket.component.mjs +239 -0
- package/esm2022/lib/components/plano-tools/plano-data-export/plano-data-export.component.mjs +98 -3
- package/esm2022/lib/components/plano-tools/plano-migrate/plano-migrate.component.mjs +5 -4
- package/esm2022/lib/components/plano-tools/store-exports/store-exports.component.mjs +135 -33
- package/esm2022/lib/components/plano-tools/swap-template/swap-template.component.mjs +325 -0
- package/esm2022/lib/components/plano-tools/tools-parent/tools-parent.component.mjs +3 -3
- package/esm2022/lib/components/planogram/merch-compliance/merch-compliance.component.mjs +3 -2
- package/esm2022/lib/components/planogram/merch-compliance/product-locator/product-locator.component.mjs +3 -2
- package/esm2022/lib/components/planogram/plano-analytics/plano-analytics.component.mjs +3 -2
- package/esm2022/lib/components/planogram/plano-details-parent/plano-details-parent.component.mjs +1 -1
- package/esm2022/lib/components/planogram/plano-overview/plano-comparison/plano-comparison.component.mjs +3 -2
- package/esm2022/lib/components/planogram/plano-overview/plano-overview.component.mjs +3 -2
- package/esm2022/lib/components/planogram/plano-table/plano-table.component.mjs +2 -3
- package/esm2022/lib/components/popups/delete-confirmation/delete-confirmation.component.mjs +10 -3
- package/esm2022/lib/components/store-plano/store-plano-tree-view/store-plano-tree-view.component.mjs +3 -4
- package/esm2022/lib/components/store-plano/store-plano.component.mjs +4 -3
- package/esm2022/lib/data/fixture-template.data.mjs +12 -1
- package/esm2022/lib/functions/plano.function.mjs +13 -1
- package/esm2022/lib/services/store-builder.service.mjs +35 -1
- package/esm2022/lib/tango-store-builder-routing.module.mjs +16 -1
- package/esm2022/lib/tango-store-builder.module.mjs +10 -1
- package/fesm2022/tango-app-ui-store-builder.mjs +1914 -401
- package/fesm2022/tango-app-ui-store-builder.mjs.map +1 -1
- package/lib/components/create-fixture/create-fixture.component.d.ts +3 -0
- package/lib/components/custom-select/custom-select.component.d.ts +5 -2
- package/lib/components/manage-plano/rollout-table/rollout-table.component.d.ts +4 -4
- package/lib/components/manage-plano/verification-table/verification-table.component.d.ts +5 -5
- package/lib/components/manage-store-plano/manage-store-plano.component.d.ts +7 -1
- package/lib/components/manage-store-plano/template-basic-details/template-basic-details.component.d.ts +14 -1
- package/lib/components/onboard-store-plano/onboard-store-plano.component.d.ts +19 -2
- package/lib/components/plano-configurations/plano-configurations.component.d.ts +19 -1
- package/lib/components/plano-tools/cad-files/cad-files.component.d.ts +30 -0
- package/lib/components/plano-tools/move-bucket/move-bucket.component.d.ts +64 -0
- package/lib/components/plano-tools/plano-data-export/plano-data-export.component.d.ts +26 -0
- package/lib/components/plano-tools/store-exports/store-exports.component.d.ts +28 -3
- package/lib/components/plano-tools/swap-template/swap-template.component.d.ts +83 -0
- package/lib/components/popups/delete-confirmation/delete-confirmation.component.d.ts +3 -1
- package/lib/data/fixture-template.data.d.ts +8 -0
- package/lib/functions/plano.function.d.ts +1 -0
- package/lib/services/store-builder.service.d.ts +26 -0
- package/lib/tango-store-builder.module.d.ts +56 -53
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Component } from "@angular/core";
|
|
2
|
-
import { debounceTime, distinctUntilChanged,
|
|
2
|
+
import { debounceTime, distinctUntilChanged, Subject, takeUntil, } from "rxjs";
|
|
3
3
|
import { getQueryParamNumber, getQueryParamString, } from "../../../functions/plano.function";
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "../../../services/store-builder.service";
|
|
@@ -43,7 +43,6 @@ export class PlanoTableComponent {
|
|
|
43
43
|
this.gs.dataRangeValue
|
|
44
44
|
.pipe(takeUntil(this.destroy$), // Subscription will be cancelled on component destroy.
|
|
45
45
|
debounceTime(200), // To avoid immediate frequent calls.
|
|
46
|
-
filter((data) => !!data), // Filtering null/undefined.
|
|
47
46
|
distinctUntilChanged() // Emitting only different values. (Ignores same clientId).
|
|
48
47
|
)
|
|
49
48
|
.subscribe({
|
|
@@ -234,4 +233,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
234
233
|
type: Component,
|
|
235
234
|
args: [{ selector: "lib-plano-table", template: "<div class=\"content-wrapper\">\r\n <div>\r\n <!-- Manage Planogram view header -->\r\n <div class=\"d-flex justify-content-between align-items-center mb-5\">\r\n <div>\r\n <h4>All Planograms</h4>\r\n <span>{{ totalItems }} - Total Records</span>\r\n </div>\r\n\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <div style=\"position: relative\">\r\n <input type=\"text\" [(ngModel)]=\"searchTerm\" (change)=\"onSearch()\"\r\n style=\"padding-left: 3rem; padding-right: 3rem\" class=\"form-control\" name=\"search\" autocomplete=\"off\"\r\n placeholder=\"Search\" />\r\n\r\n <span class=\"search-icon\">\r\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <circle cx=\"8\" cy=\"8\" r=\"6\" stroke=\"currentColor\" stroke-width=\"2\" />\r\n <line x1=\"13\" y1=\"13\" x2=\"16\" y2=\"16\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" />\r\n </svg>\r\n </span>\r\n\r\n <button *ngIf=\"searchTerm\" type=\"button\" aria-label=\"Clear\" (click)=\"searchTerm = ''; onSearch()\"\r\n class=\"clear-search\">\r\n <svg width=\"64px\" height=\"64px\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"SVGRepo_bgCarrier\" stroke-width=\"0\"></g>\r\n <g id=\"SVGRepo_tracerCarrier\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></g>\r\n <g id=\"SVGRepo_iconCarrier\">\r\n <path d=\"M9 9L15 15\" stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n </path>\r\n <path d=\"M15 9L9 15\" stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n </path>\r\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></circle>\r\n </g>\r\n </svg>\r\n </button>\r\n </div>\r\n <!-- Filter -->\r\n <plano-filter [clientId]=\"clientId\" (applyFilters)=\"applyFilters($event)\"\r\n (resetFilters)=\"applyFilters($event)\"></plano-filter>\r\n <button type=\"button\" (click)=\"onExport()\"\r\n class=\"btn-outline btn align-items-end text-nowrap invheader ms-4\"\r\n [disabled]=\"!planogramsList.length\">\r\n <!-- Export Icon -->\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </svg>\r\n <span class=\"ms-2\"></span> Export\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"isPageLoading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\"\r\n *ngIf=\"!isPageLoading && planogramsList.length === 0 && !planoList\">\r\n <img class=\"img-src\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\" />\r\n <div class=\"nodatamaintext mt-3\">No data found</div>\r\n <div class=\"nodatasubtext\">There is no result for planogram table</div>\r\n </div>\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\"\r\n *ngIf=\"!isPageLoading && planogramsList.length === 0 && planoList\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"302\" height=\"160\" viewBox=\"0 0 302 160\" fill=\"none\">\r\n <path d=\"M97.9023 54.0942C83.6389 54.0942 72.0762 65.657 72.0762 79.9204C72.0762 85.8363 68.0722 92.5806 62.1564 92.5806H39.3506C25.0871 92.5806 13.5234 104.143 13.5234 118.407C13.5234 132.67 25.0871 144.233 39.3506 144.233H177.449C194.339 144.233 210.412 131.067 227.302 131.067H293.337C298.091 131.067 301.945 127.213 301.945 122.458C301.945 117.704 298.091 113.849 293.337 113.849H205.717C204.072 113.849 202.68 112.627 202.212 111.051C201.473 108.561 203.174 105.747 205.771 105.747H236.001C250.264 105.747 261.827 94.1838 261.827 79.9204C261.827 65.657 250.264 54.0943 236.001 54.0942H97.9023Z\" fill=\"#EAECF0\"/>\r\n <rect width=\"240.694\" height=\"16.9956\" rx=\"8.4978\" transform=\"matrix(-1 0 0 1 240.694 55.9315)\" fill=\"#EAECF0\"/>\r\n <circle cx=\"5.42147\" cy=\"5.42147\" r=\"5.42147\" transform=\"matrix(-1 0 0 1 50.3906 120.357)\" fill=\"#6BCAFF\"/>\r\n <circle cx=\"3.25288\" cy=\"3.25288\" r=\"3.25288\" transform=\"matrix(-1 0 0 1 239.058 75.9004)\" fill=\"#00A3FF\"/>\r\n <circle cx=\"3.25288\" cy=\"3.25288\" r=\"3.25288\" transform=\"matrix(-1 0 0 1 209.781 20.6014)\" fill=\"#00A3FF\"/>\r\n <circle cx=\"2.16859\" cy=\"2.16859\" r=\"2.16859\" transform=\"matrix(-1 0 0 1 98.0986 145.295)\" fill=\"#00A3FF\"/>\r\n <rect x=\"63.0869\" y=\"51.7187\" width=\"166.015\" height=\"96.9528\" rx=\"14.6093\" fill=\"#6BCAFF\" stroke=\"#00A3FF\" stroke-width=\"3.98436\"/>\r\n <mask id=\"path-8-inside-1_769_29740\" fill=\"white\">\r\n <path d=\"M87.2119 26.0743C88.1571 26.0744 89.083 26.1571 89.9824 26.3165V123.859C89.083 123.699 88.1571 123.616 87.2119 123.616H76.8682C68.1579 123.616 61.0968 130.678 61.0967 139.388V41.8458C61.0967 33.1355 68.1578 26.0743 76.8682 26.0743H87.2119Z\"/>\r\n </mask>\r\n <path d=\"M87.2119 26.0743C88.1571 26.0744 89.083 26.1571 89.9824 26.3165V123.859C89.083 123.699 88.1571 123.616 87.2119 123.616H76.8682C68.1579 123.616 61.0968 130.678 61.0967 139.388V41.8458C61.0967 33.1355 68.1578 26.0743 76.8682 26.0743H87.2119Z\" fill=\"#6BCAFF\"/>\r\n <path d=\"M87.2119 26.0743L87.212 22.09H87.2119V26.0743ZM89.9824 26.3165H93.9668V22.9762L90.6777 22.3933L89.9824 26.3165ZM89.9824 123.859L89.2872 127.782L93.9668 128.611V123.859H89.9824ZM87.2119 123.616L87.212 119.632H87.2119V123.616ZM61.0967 139.388H57.1123L65.081 139.388L61.0967 139.388ZM87.2119 26.0743L87.2119 30.0587C87.9241 30.0587 88.6173 30.121 89.2872 30.2398L89.9824 26.3165L90.6777 22.3933C89.5487 22.1932 88.3902 22.09 87.212 22.09L87.2119 26.0743ZM89.9824 26.3165H85.9981V123.859H89.9824H93.9668V26.3165H89.9824ZM89.9824 123.859L90.6777 119.935C89.5487 119.735 88.3902 119.632 87.212 119.632L87.2119 123.616L87.2119 127.601C87.924 127.601 88.6173 127.663 89.2872 127.782L89.9824 123.859ZM87.2119 123.616V119.632H76.8682V123.616V127.601H87.2119V123.616ZM76.8682 123.616V119.632C65.9574 119.632 57.1125 128.477 57.1123 139.388L61.0967 139.388L65.081 139.388C65.0811 132.878 70.3585 127.601 76.8682 127.601V123.616ZM61.0967 139.388H65.081V41.8458H61.0967H57.1123V139.388H61.0967ZM61.0967 41.8458H65.081C65.081 35.336 70.3583 30.0587 76.8682 30.0587V26.0743V22.09C65.9573 22.09 57.1123 30.935 57.1123 41.8458H61.0967ZM76.8682 26.0743V30.0587H87.2119V26.0743V22.09H76.8682V26.0743Z\" fill=\"#00A3FF\" mask=\"url(#path-8-inside-1_769_29740)\"/>\r\n <line x1=\"71.0547\" y1=\"49.7267\" x2=\"71.0547\" y2=\"91.5625\" stroke=\"#99DAFF\" stroke-width=\"3.98436\" stroke-linecap=\"round\"/>\r\n <rect x=\"116.229\" y=\"104.642\" width=\"63.389\" height=\"32.1538\" rx=\"7.34945\" fill=\"#99DAFF\"/>\r\n <rect x=\"116.229\" y=\"66.9762\" width=\"63.389\" height=\"32.1538\" rx=\"7.34945\" fill=\"#99DAFF\"/>\r\n <circle cx=\"212.299\" cy=\"77.2505\" r=\"3.29663\" fill=\"white\"/>\r\n <circle cx=\"105.88\" cy=\"62.2407\" r=\"2.52637\" fill=\"#99DAFF\"/>\r\n <circle cx=\"93.4783\" cy=\"132.06\" r=\"3.44505\" fill=\"white\"/>\r\n <rect x=\"116.229\" y=\"37.5784\" width=\"63.389\" height=\"24.8044\" rx=\"7.34945\" fill=\"#99DAFF\"/>\r\n </svg> \r\n <div class=\"nodatamaintext mt-3\">Planogram Yet to Publish</div>\r\n <div class=\"nodatasubtext\"><a href=\"manage/planogram/manage-planogram?planoId={{planoList?.[0]?.planoId}}&floorId={{planoList?.[0]?._id}}\">{{planoList?.[0]?.storeName}}</a> is still under verification</div>\r\n </div>\r\n\r\n <!-- Manage Planogram list view -->\r\n <section id=\"list-view\" *ngIf=\"!isPageLoading && planogramsList.length !== 0\">\r\n <div class=\"table-responsive\">\r\n <table class=\"w-100 table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th>\r\n <span (click)=\"onSortTable('storeName')\" class=\"cursor-pointer\">\r\n Planogram name\r\n <i class=\"fa ms-1 mt-1\" [ngStyle]=\"{\r\n color: sortedColumn === 'storeName' ? '#009BF3' : ''\r\n }\" [ngClass]=\"\r\n sortOrder === 1 && sortedColumn === 'storeName'\r\n ? 'fa-arrow-up'\r\n : 'fa-arrow-down'\r\n \" aria-hidden=\"true\"></i>\r\n </span>\r\n </th>\r\n <th>\r\n Country\r\n <!-- <span (click)=\"onSortTable('country')\" class=\"cursor-pointer\">\r\n <i class=\"fa ms-1 mt-1\" [ngStyle]=\"{\r\n color: sortedColumn === 'country' ? '#009BF3' : ''\r\n }\" [ngClass]=\"\r\n sortOrder === 1 && sortedColumn === 'country'\r\n ? 'fa-arrow-up'\r\n : 'fa-arrow-down'\r\n \" aria-hidden=\"true\"></i>\r\n </span> -->\r\n </th>\r\n <th>\r\n Region\r\n <!-- <span (click)=\"onSortTable('city')\" class=\"cursor-pointer\">\r\n <i class=\"fa ms-1 mt-1\" [ngStyle]=\"{\r\n color: sortedColumn === 'city' ? '#009BF3' : ''\r\n }\" [ngClass]=\"\r\n sortOrder === 1 && sortedColumn === 'city'\r\n ? 'fa-arrow-up'\r\n : 'fa-arrow-down'\r\n \" aria-hidden=\"true\"></i>\r\n </span> -->\r\n </th>\r\n <th>\r\n <span (click)=\"onSortTable('updatedAt')\" class=\"cursor-pointer\">\r\n Last update\r\n <i class=\"fa ms-1 mt-1\" [ngStyle]=\"{\r\n color: sortedColumn === 'updatedAt' ? '#009BF3' : ''\r\n }\" [ngClass]=\"\r\n sortOrder === 1 && sortedColumn === 'updatedAt'\r\n ? 'fa-arrow-up'\r\n : 'fa-arrow-down'\r\n \" aria-hidden=\"true\"></i>\r\n </span>\r\n </th>\r\n <th>\r\n <span (click)=\"onSortTable('merchCompliance')\" class=\"cursor-pointer\">\r\n Merch Compliance\r\n <i class=\"fa ms-1 mt-1\" [ngStyle]=\"{\r\n color: sortedColumn === 'merchCompliance' ? '#009BF3' : ''\r\n }\" [ngClass]=\"\r\n sortOrder === 1 && sortedColumn === 'merchCompliance'\r\n ? 'fa-arrow-up'\r\n : 'fa-arrow-down'\r\n \" aria-hidden=\"true\"></i>\r\n </span>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let plano of planogramsList\">\r\n <td>\r\n <a [routerLink]=\"['/manage/planogram/store-planogram']\" [queryParams]=\"{\r\n planoId: plano.planoId,\r\n floorId: plano._id,\r\n storeName:plano.storeName\r\n }\" class=\"text-decoration-underline\">\r\n {{plano.storeName}} <span *ngIf=\"plano.multipleFloor\">({{plano.floorName | titlecase}})</span> - Plano\r\n </a>\r\n </td>\r\n <td>\r\n <span>{{plano?.storeInfo?.country}}</span>\r\n </td>\r\n <td>\r\n <span>{{plano?.storeInfo?.city}}</span>\r\n </td>\r\n <td>\r\n <span>{{plano.updatedAt}}</span>\r\n </td>\r\n <td>\r\n <span>{{plano?.merchCompliance ?? 0}}</span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </section>\r\n\r\n <!-- Manage Planogram grid view -->\r\n <!-- <ng-template #gridView>\r\n <section id=\"grid-view\">\r\n <div class=\"row gx-6 gy-4\">\r\n <div class=\"col-md-4\" *ngFor=\"let fixture of fixtureTemplatesList\">\r\n <div class=\"card\">\r\n <div class=\"card-img\">\r\n <div class=\"card-action dropdown\">\r\n <button class=\"btn btn-light px-4 py-3\" type=\"button\" data-bs-toggle=\"dropdown\">\r\n <i class=\"bi bi-three-dots-vertical\"></i>\r\n </button>\r\n <ul class=\"dropdown-menu\">\r\n <li><a class=\"dropdown-item cursor-pointer\">Edit</a></li>\r\n <li><a class=\"dropdown-item cursor-pointer\">Duplicate</a></li>\r\n <li><a class=\"dropdown-item cursor-pointer text-danger\">Delete</a></li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <h3>{{ fixture.name }}</h3>\r\n <div class=\"badge\" [ngClass]=\"fixture.status\">{{ fixture.status | titlecase }}</div>\r\n </div>\r\n <div class=\"d-flex gap-2\">\r\n <div *ngFor=\"let subBrand of fixture.subBrand; let i = index\">\r\n <span *ngIf=\"i != 0\" class=\"me-2 card-tagline\">•</span>\r\n <div class=\"badge\">{{ subBrand }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </ng-template> -->\r\n\r\n <!-- Pagination -->\r\n <lib-pagination [itemsPerPage]=\"limit\" [currentPage]=\"offset\" [totalItems]=\"totalItems\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"paginationSize()\" (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\" *ngIf=\"!isPageLoading && planogramsList.length !== 0\">\r\n </lib-pagination>\r\n </div>\r\n</div>", styles: [".header{background:#fff;padding:12px;border-radius:12px;display:flex;align-items:center;justify-content:space-between}.btn{padding:.775rem 1.5rem!important;font-size:1.1rem!important}.badge{font-weight:500;font-size:12px;line-height:18px;text-align:center;padding:2px 8px;border-radius:16px}.badge.inactive{background:#f2f4f7!important;color:#344054!important}.builder{height:75vh}.builder .cols{background:#fff;border-radius:12px;padding:24px 24px 12px;max-height:75vh;overflow-y:auto}.shelf-container{border-radius:8px;background:var(--Gray-50, #f9fafb);padding:8px 16px;margin-bottom:12px}.counter-container{display:flex;align-items:center;justify-content:center;border-radius:8px;background-color:#fff;padding:10px;border:.49px solid #d0d5dd}.counter-container span{margin:0 18px;font-weight:500;font-size:14px;text-align:center;vertical-align:middle;width:18px}.disable-counter{color:var(--bs-gray-500)!important;background-color:var(--bs-gray-200)!important;border-color:var(--bs-gray-300)!important;pointer-events:none;opacity:1}.disabled-click{pointer-events:none;opacity:.85}.wall-viewport{display:flex;align-items:center;justify-content:center;flex-direction:column;margin-bottom:30px;max-width:345px;min-width:234px;text-align:center}.wall-viewport .wrapper{width:100%;max-width:345px}.wall-viewport .header-info,.wall-viewport .footer-info,.wall-viewport .body-info{width:100%;border:2px solid #f2f4f7;border-bottom:4px solid #ffffff;background:#f2f4f7;max-width:230px;display:flex;align-items:center;justify-content:center;justify-content:start;padding:12px;gap:4px}.wall-viewport .header-info p,.wall-viewport .footer-info p,.wall-viewport .body-info p{margin:0}.wall-viewport .header-info{margin-top:40px}.wall-viewport .sub-footer{border:1px solid #98a2b3;height:100%}.wall-viewport .header-block,.wall-viewport .footer-block{border:1px solid #98a2b3;height:95px;padding:8px;background-color:#f2f4f7;width:100%;display:flex;justify-content:center;align-items:center}.wall-viewport .header-block p,.wall-viewport .footer-block p{color:var(--Gray-600, #475467);font-size:18px;font-weight:600;white-space:normal;word-wrap:break-word;margin:0;background-color:#f2f4f7}.wall-viewport .body-block{width:100%}.wall-viewport .body-block .shelfContainer .block{border:1px solid #98a2b3;border-top:none}.wall-viewport .body-block .shelfContainer:first-child .block{border-top:1px solid #98a2b3}.wall-viewport .body-block .block{padding:10px;width:100%;max-width:345px;overflow-x:auto;min-height:52px}.wall-viewport .body-block .tray,.wall-viewport .body-block .shelf{display:flex;gap:4px}.wall-viewport .body-block .tray .product,.wall-viewport .body-block .shelf .product{border:1px solid rgba(152,162,179,.2901960784);min-width:50px}.wall-viewport .body-block .tray .product{min-height:20px}.wall-viewport .body-block .shelf .product{min-height:30px}.wall-viewport .body-block .vmonly-placeholder{background-image:repeating-linear-gradient(45deg,rgba(152,162,179,.2901960784) 0,rgba(152,162,179,.2901960784) .7px,transparent .7px,transparent 8px),repeating-linear-gradient(-45deg,rgba(152,162,179,.2901960784) 0,rgba(152,162,179,.2901960784) .7px,transparent .7px,transparent 8px)}.wall-viewport .body-block .hide-product{border-color:transparent!important}.wall-viewport .body-block .hide-scroll{overflow-x:hidden!important}.horizontal-dimension{display:flex;align-items:center;justify-content:center;height:30px;position:relative}.horizontal-dimension .arrow{width:12px;height:12px;background-size:contain;background-repeat:no-repeat;background-position:center}.horizontal-dimension .arrow.left{transform:rotate(180deg);background-image:url(\"data:image/svg+xml,%3Csvg fill='%23EAECF0' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 330 330'%3E%3Cpath d='M250.606,154.389l-150-149.996c-5.857-5.858-15.355-5.858-21.213,0.001c-5.857,5.858-5.857,15.355,0.001,21.213l139.393,139.39L79.393,304.394c-5.857,5.858-5.857,15.355,0.001,21.213C82.322,328.536,86.161,330,90,330s7.678-1.464,10.607-4.394l149.999-150.004c2.814-2.813,4.394-6.628,4.394-10.606C255,161.018,253.42,157.202,250.606,154.389z'/%3E%3C/svg%3E\")}.horizontal-dimension .arrow.right{transform:rotate(0);background-image:url(\"data:image/svg+xml,%3Csvg fill='%23EAECF0' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 330 330'%3E%3Cpath d='M250.606,154.389l-150-149.996c-5.857-5.858-15.355-5.858-21.213,0.001c-5.857,5.858-5.857,15.355,0.001,21.213l139.393,139.39L79.393,304.394c-5.857,5.858-5.857,15.355,0.001,21.213C82.322,328.536,86.161,330,90,330s7.678-1.464,10.607-4.394l149.999-150.004c2.814-2.813,4.394-6.628,4.394-10.606C255,161.018,253.42,157.202,250.606,154.389z'/%3E%3C/svg%3E\")}.horizontal-dimension .line{flex:1;background-color:#eaecf0;position:relative;display:flex;align-items:center;justify-content:center;height:1px}.horizontal-dimension .line span{position:absolute;top:-12px;color:#667085;font-weight:500;font-size:14px;background-color:#fff;padding:0 4px}.vertical-dimension{display:flex;flex-direction:column;align-items:center;width:30px;position:relative}.vertical-dimension .arrow{width:12px;height:12px;background-size:contain;background-repeat:no-repeat;background-position:center}.vertical-dimension .arrow.up{transform:rotate(-90deg);margin-top:20px;background-image:url(\"data:image/svg+xml,%3Csvg fill='%23EAECF0' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 330 330'%3E%3Cpath d='M250.606,154.389l-150-149.996c-5.857-5.858-15.355-5.858-21.213,0.001c-5.857,5.858-5.857,15.355,0.001,21.213l139.393,139.39L79.393,304.394c-5.857,5.858-5.857,15.355,0.001,21.213C82.322,328.536,86.161,330,90,330s7.678-1.464,10.607-4.394l149.999-150.004c2.814-2.813,4.394-6.628,4.394-10.606C255,161.018,253.42,157.202,250.606,154.389z'/%3E%3C/svg%3E\")}.vertical-dimension .arrow.down{transform:rotate(90deg);margin-bottom:26px;background-image:url(\"data:image/svg+xml,%3Csvg fill='%23EAECF0' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 330 330'%3E%3Cpath d='M250.606,154.389l-150-149.996c-5.857-5.858-15.355-5.858-21.213,0.001c-5.857,5.858-5.857,15.355,0.001,21.213l139.393,139.39L79.393,304.394c-5.857,5.858-5.857,15.355,0.001,21.213C82.322,328.536,86.161,330,90,330s7.678-1.464,10.607-4.394l149.999-150.004c2.814-2.813,4.394-6.628,4.394-10.606C255,161.018,253.42,157.202,250.606,154.389z'/%3E%3C/svg%3E\")}.vertical-dimension .line{flex:1;background-color:#eaecf0;position:relative;display:flex;align-items:center;justify-content:center;width:1px}.vertical-dimension .line span{writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg);color:#667085;font-weight:500;font-size:14px;background-color:#fff;padding:2px 4px}.info-card{padding:12px;background:#fff;border:1px solid #d0d5dd;border-radius:8px;box-shadow:0 1px 2px #1018280f,0 1px 3px #1018281a}.info-card h3{font-weight:600;font-size:18px;line-height:28px;vertical-align:middle}.info-card p{font-weight:500;font-size:14px;line-height:20px;color:#667085;margin:0}.checkbox input[type=checkbox]{width:16px!important;height:16px!important;margin:5px;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-600, #d0d5dd)!important;box-shadow:none;font-size:.5em;text-align:center;line-height:1em;background:#fff}.checkbox input[type=checkbox]:checked{outline:1px solid var(--primary-600, #00a3ff)!important;background-color:var(--primary-50, #eaf8ff)}.checkbox input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00a3ff;border-right:2px solid #00a3ff;display:inline-block;width:.5em;padding-left:3px;padding-top:10px;padding-right:0}.nav-pills{display:inline-flex;gap:4px}.nav-pills .nav-item .nav-link{border-radius:0;color:#667085;font-size:14px;font-weight:500;padding:8px 16px;border:none}.nav-pills .nav-item .nav-link:hover{background-color:#00000005}.nav-pills .nav-item .nav-link.active{background-color:#eaf8ff;color:#009bf3;border-bottom:3px solid #009bf3}.content-wrapper{background:#fff;border-radius:12px;min-height:calc(100vh - 400px);height:100%;padding:16px 24px;display:flex;flex-direction:column}.loader .shimmer{height:150px}.filter-tab{border:1px solid rgb(234,236,240);background:#fff;box-shadow:0 1px 2px #1018280d;border-radius:8px;padding:18px;transition:all ease .2s}.filter-tab:hover{cursor:pointer}.filter-tab.selected{background:#f6fcff;border:1px solid rgb(107,202,255);box-shadow:0 1px 2px #1018280d}.filter-tab h3{color:#000;font-size:20px;font-weight:600;line-height:30px;margin:0}.filter-tab p{color:var(--Gray-500, #667085);font-size:14px;font-weight:500;line-height:20px;margin:0}.nodatamaintext{font-family:Inter;font-size:16px;font-weight:600;line-height:24px;text-align:center;color:#101828}.nodatasubtext[_ngcontent-ng-c2141490359]{font-family:Inter;font-size:14px;font-weight:400;line-height:20px;text-align:center;color:#667085}.table-responsive{min-height:calc(100vh - 495px)}.download-link{color:var(--Primary-800, #008edf);font-size:14px;font-weight:500;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:auto;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font;cursor:pointer}h3.card-title{color:#101828;font-size:18px;font-weight:600;line-height:28px}p.card-tagline{color:#101828;font-size:14px;font-weight:500;line-height:20px}p.card-description{color:#344054;font-size:14px;font-weight:400;line-height:20px}#grid-view .card{box-shadow:0 4px 10px #0000000d;border:1px solid rgb(223,225,231);background:#fff;border-radius:12px;padding:12px;height:100%;transition:all .2s ease}#grid-view .card:hover{cursor:pointer;box-shadow:0 10px 10px #0001;transition:all .2s ease}#grid-view .card-img{margin-bottom:12px;background:#d0d5dd;height:200px;border-radius:6px}#grid-view .card-action{position:absolute;top:20px;right:20px}#grid-view .card-tagline{color:#475467;font-weight:500;font-size:14px;line-height:20px}.badge{font-weight:500;font-size:12px;line-height:18px;text-align:center;color:#027a48;background:#ecfdf3}.badge.active{color:#027a48;background:#ecfdf3}.badge.inactive{background:#f2f4f7;color:#344054}.badge.draft{color:#009bf3;background:#eaf8ff}.badge.cluster{background:#f2f4f7;color:#344054}.badge.published{background:#ecfdf3;color:#027a48}.badge.yet-to-publish{background:#f8f9fc;color:#363f72}.indicator{border-radius:16px;padding:2px 8px;display:flex;justify-content:center;align-items:center;white-space:nowrap;width:fit-content;text-align:center;font-size:14px;font-weight:500}.indicator.short{height:14px!important;width:14px!important;border-radius:50%!important;padding:0!important}.indicator.yetToComplete{background:#f2f4f7;color:#667085}.indicator.yetToComplete path{fill:#667085}.indicator.draft{background:#f2f4f7;color:#667085}.indicator.draft path{fill:#667085}.indicator.yetToAssign{background:#eaecf5;color:#344054}.indicator.yetToAssign path{fill:#344054}.indicator.taskAssigned{background:#e0eaff;color:#7a5af8}.indicator.taskAssigned path{fill:#7a5af8}.indicator.reviewPending{background:#fef0c7;color:#f79009}.indicator.reviewPending path{fill:#f79009}.indicator.allocationPending{background:#fef0c7;color:#f79009}.indicator.allocationPending path{fill:#f79009}.indicator.flagged{background:var(--Error-50, #fef3f2);color:var(--Error-700, #b42318)}.indicator.completed{background:#d1fadf;color:#12b76a}.indicator.completed path{fill:#12b76a}.toggle-button{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:8px;background:#fff;border:.89px solid rgb(208,213,221);box-shadow:0 .89px 1.78px #1018280d;transition:all ease .3s}.toggle-button:hover{cursor:pointer}.toggle-button.selected{transition:all ease .3s;background:#eaf8ff;box-shadow:0 0 0 3.56px #d5effe!important;border:.89px solid rgb(234,248,255)}.disabled-click{pointer-events:none;cursor:not-allowed!important;opacity:.6}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);pointer-events:none;color:#888;display:flex;align-items:center;height:1.5rem}.clear-search{position:absolute;right:14px;top:50%;transform:translateY(-50%);background:none;border:none;padding:0;cursor:pointer;display:flex;align-items:center;height:1.5rem;width:1.5rem}.restrict-interaction{-webkit-user-select:none;user-select:none;pointer-events:none}.btn .spinner{height:22px;animation:spin .9s linear infinite}.btn .spinner .path{stroke-width:4px;stroke:#071437;stroke-linecap:round;stroke-dasharray:80;stroke-dashoffset:60}@keyframes spin{to{transform:rotate(360deg)}}#list-view .thumbnail{height:40px;width:40px;background:#f2f4f7;margin-right:12px;border-radius:8px}#list-view td{vertical-align:middle}\n"] }]
|
|
236
235
|
}], ctorParameters: () => [{ type: i1.StoreBuilderService }, { type: i2.ActivatedRoute }, { type: i2.Router }, { type: i3.GlobalStateService }, { type: i3.PageInfoService }] });
|
|
237
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbm8tdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tc3RvcmUtYnVpbGRlci9zcmMvbGliL2NvbXBvbmVudHMvcGxhbm9ncmFtL3BsYW5vLXRhYmxlL3BsYW5vLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXN0b3JlLWJ1aWxkZXIvc3JjL2xpYi9jb21wb25lbnRzL3BsYW5vZ3JhbS9wbGFuby10YWJsZS9wbGFuby10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQ0wsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sT0FBTyxFQUVQLFNBQVMsR0FDVixNQUFNLE1BQU0sQ0FBQztBQUdkLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsbUJBQW1CLEdBQ3BCLE1BQU0sbUNBQW1DLENBQUM7Ozs7Ozs7OztBQVEzQyxNQUFNLE9BQU8sbUJBQW1CO0lBeUJwQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBNUJWLFFBQVEsQ0FBUztJQUVqQixLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQ25CLE1BQU0sR0FBVyxDQUFDLENBQUM7SUFDbkIsVUFBVSxHQUFXLENBQUMsQ0FBQztJQUN2QixlQUFlLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRS9CLFlBQVksR0FBVyxFQUFFLENBQUM7SUFDMUIsU0FBUyxHQUFXLENBQUMsQ0FBQyxDQUFDO0lBRXZCLFVBQVUsR0FBVyxFQUFFLENBQUM7SUFFeEIsY0FBYyxHQUF5QixFQUFFLENBQUM7SUFFMUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztJQUNwQixlQUFlLEdBQVksS0FBSyxDQUFDO0lBQ2pDLGFBQWEs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Q29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFBsYW5vZ3JhbVRhYmxlTGlzdCB9IGZyb20gXCIuLi8uLi8uLi9pbnRlcmZhY2VzL3BsYW5vZ3JhbS5pbnRlcmZhY2VcIjtcclxuaW1wb3J0IHtcclxuICBkZWJvdW5jZVRpbWUsXHJcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXHJcbiAgZmlsdGVyLFxyXG4gIFN1YmplY3QsXHJcbiAgU3Vic2NyaXB0aW9uLFxyXG4gIHRha2VVbnRpbCxcclxufSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBTdG9yZUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL3N0b3JlLWJ1aWxkZXIuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UsIFBhZ2VJbmZvU2VydmljZSB9IGZyb20gXCJ0YW5nby1hcHAtdWktZ2xvYmFsXCI7XHJcbmltcG9ydCB7XHJcbiAgZ2V0UXVlcnlQYXJhbU51bWJlcixcclxuICBnZXRRdWVyeVBhcmFtU3RyaW5nLFxyXG59IGZyb20gXCIuLi8uLi8uLi9mdW5jdGlvbnMvcGxhbm8uZnVuY3Rpb25cIjtcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImxpYi1wbGFuby10YWJsZVwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vcGxhbm8tdGFibGUuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybDogXCIuL3BsYW5vLXRhYmxlLmNvbXBvbmVudC5zY3NzXCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQbGFub1RhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIGNsaWVudElkOiBzdHJpbmc7XHJcblxyXG4gIGxpbWl0OiBudW1iZXIgPSAxMDtcclxuICBvZmZzZXQ6IG51bWJlciA9IDE7XHJcbiAgdG90YWxJdGVtczogbnVtYmVyID0gMDtcclxuICBwYWdpbmF0aW9uU2l6ZXMgPSBbMTAsIDIwLCAzMF07XHJcblxyXG4gIHNvcnRlZENvbHVtbjogc3RyaW5nID0gXCJcIjtcclxuICBzb3J0T3JkZXI6IG51bWJlciA9IC0xO1xyXG5cclxuICBzZWFyY2hUZXJtOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICBwbGFub2dyYW1zTGlzdDogUGxhbm9ncmFtVGFibGVMaXN0W10gPSBbXTtcclxuXHJcbiAgYXBwbGllZEZpbHRlcnMgPSB7fTtcclxuICBpc0ZpbHRlckFwcGxpZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1BhZ2VMb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuICBpc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcGxhbm9MaXN0OmFueTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBwbGFub1N1Yj86IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHN0b3JlQnVpbGRlclNlcnZpY2U6IFN0b3JlQnVpbGRlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHBhZ2VJbmZvOiBQYWdlSW5mb1NlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRQYWdlRGF0YSgpO1xyXG5cclxuICAgIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWVcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLCAvLyBTdWJzY3JpcHRpb24gd2lsbCBiZSBjYW5jZWxsZWQgb24gY29tcG9uZW50IGRlc3Ryb3kuXHJcbiAgICAgICAgZGVib3VuY2VUaW1lKDIwMCksIC8vIFRvIGF2b2lkIGltbWVkaWF0ZSBmcmVxdWVudCBjYWxscy5cclxuICAgICAgICBmaWx0ZXIoKGRhdGEpID0+ICEhZGF0YSksIC8vIEZpbHRlcmluZyBudWxsL3VuZGVmaW5lZC5cclxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpIC8vIEVtaXR0aW5nIG9ubHkgZGlmZmVyZW50IHZhbHVlcy4gKElnbm9yZXMgc2FtZSBjbGllbnRJZCkuXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgICAgdGhpcy5jbGllbnRJZCA9IGRhdGEuY2xpZW50O1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IGRhdGEgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIikgYXMgc3RyaW5nXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRoaXMuY2xpZW50SWQgPSBkYXRhPy5jbGllbnQ7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtTWFwXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgocGFyYW1zKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZWFyY2hUZXJtID0gZ2V0UXVlcnlQYXJhbVN0cmluZyh7XHJcbiAgICAgICAgICAgICAgICBwYXJhbXMsXHJcbiAgICAgICAgICAgICAgICBrZXk6IFwic2VhcmNoXCIsXHJcbiAgICAgICAgICAgICAgICBmYWxsYmFjazogXCJcIixcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB0aGlzLmlzRmlsdGVyQXBwbGllZCA9IHRoaXMuc2VhcmNoVGVybSA/IHRydWUgOiBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5saW1pdCA9IGdldFF1ZXJ5UGFyYW1OdW1iZXIoe1xyXG4gICAgICAgICAgICAgICAgcGFyYW1zLFxyXG4gICAgICAgICAgICAgICAga2V5OiBcImxpbWl0XCIsXHJcbiAgICAgICAgICAgICAgICBmYWxsYmFjazogMTAsXHJcbiAgICAgICAgICAgICAgICBtaW46IDEsXHJcbiAgICAgICAgICAgICAgICBtYXg6IDMwLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICB0aGlzLm9mZnNldCA9IGdldFF1ZXJ5UGFyYW1OdW1iZXIoe1xyXG4gICAgICAgICAgICAgICAgcGFyYW1zLFxyXG4gICAgICAgICAgICAgICAga2V5OiBcIm9mZnNldFwiLFxyXG4gICAgICAgICAgICAgICAgZmFsbGJhY2s6IDEsXHJcbiAgICAgICAgICAgICAgICBtaW46IDEsXHJcbiAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgIHRoaXMuZ2V0UGxhbm9ncmFtVGFibGVMaXN0KCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0UGFnZURhdGEoKSB7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldFRpdGxlKFwiUGxhbm9ncmFtXCIpO1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXRCcmVhZGNydW1icyhbXSk7XHJcbiAgfVxyXG5cclxuICBnZXRQbGFub2dyYW1UYWJsZUxpc3QoKSB7XHJcbiAgICB0aGlzLnBsYW5vU3ViPy51bnN1YnNjcmliZSgpOyAvLyBDYW5jZWwgcHJldmlvdXMgcmVxdWVzdFxyXG5cclxuICAgIHRoaXMuaXNQYWdlTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnBsYW5vTGlzdCA9IG51bGw7XHJcbiAgICB0aGlzLnBsYW5vZ3JhbXNMaXN0ID0gW107XHJcblxyXG4gICAgbGV0IHBheWxvYWQgPSB7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudElkLFxyXG4gICAgICBsaW1pdDogdGhpcy5saW1pdCxcclxuICAgICAgb2Zmc2V0OiB0aGlzLm9mZnNldCxcclxuICAgICAgc29ydENvbHVtbk5hbWU6IHRoaXMuc29ydGVkQ29sdW1uLFxyXG4gICAgICBzb3J0Qnk6IHRoaXMuc29ydE9yZGVyLFxyXG4gICAgICBzZWFyY2hWYWx1ZTogdGhpcy5zZWFyY2hUZXJtLFxyXG4gICAgICBmaWx0ZXI6IHRoaXMuYXBwbGllZEZpbHRlcnMsXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMucGxhbm9TdWIgPSB0aGlzLnN0b3JlQnVpbGRlclNlcnZpY2VcclxuICAgICAgLmdldFBsYW5vZ3JhbUxpc3QocGF5bG9hZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzPy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnBsYW5vTGlzdCA9IHJlcz8uZGF0YT8ucGxhbm9EYXRhO1xyXG4gICAgICAgICAgICB0aGlzLnRvdGFsSXRlbXMgPSByZXM/LmRhdGE/LmNvdW50O1xyXG4gICAgICAgICAgICB0aGlzLnBsYW5vZ3JhbXNMaXN0ID0gcmVzPy5kYXRhPy5kYXRhID8/IFtdO1xyXG4gICAgICAgICAgICBpZiAodGhpcy50b3RhbEl0ZW1zIDwgMTApIHtcclxuICAgICAgICAgICAgICB0aGlzLnBhZ2luYXRpb25TaXplcyA9IFt0aGlzLnRvdGFsSXRlbXNdO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvblNpemVzID0gWzEwLCAyMCwgMzBdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgY29uc3Qgc3RvcmVDb3VudE1hcCA9IHRoaXMucGxhbm9ncmFtc0xpc3QucmVkdWNlKChhY2MsIGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgYWNjW2l0ZW0uc3RvcmVOYW1lXSA9IChhY2NbaXRlbS5zdG9yZU5hbWVdIHx8IDApICsgMTtcclxuICAgICAgICAgICAgcmV0dXJuIGFjYztcclxuICAgICAgICAgIH0sIHt9IGFzIFJlY29yZDxzdHJpbmcsIG51bWJlcj4pO1xyXG5cclxuICAgICAgICAgIHRoaXMucGxhbm9ncmFtc0xpc3QgPSB0aGlzLnBsYW5vZ3JhbXNMaXN0Lm1hcCgoaXRlbSkgPT4gKHtcclxuICAgICAgICAgICAgLi4uaXRlbSxcclxuICAgICAgICAgICAgbXVsdGlwbGVGbG9vcjogc3RvcmVDb3VudE1hcFtpdGVtLnN0b3JlTmFtZV0gPiAxLFxyXG4gICAgICAgICAgfSkpO1xyXG5cclxuICAgICAgICAgIHRoaXMuaXNQYWdlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICAgIHRoaXMuaXNQYWdlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMudG90YWxJdGVtcyA9IHRoaXMucGxhbm9ncmFtc0xpc3QubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgb25TZWFyY2goKSB7XHJcbiAgICB0aGlzLnNvcnRlZENvbHVtbiA9IFwiXCI7XHJcbiAgICB0aGlzLnNvcnRPcmRlciA9IDE7XHJcbiAgICB0aGlzLm9mZnNldCA9IDE7XHJcbiAgICB0aGlzLmxpbWl0ID0gMTA7XHJcblxyXG4gICAgdGhpcy5pc0ZpbHRlckFwcGxpZWQgPSB0aGlzLnNlYXJjaFRlcm0gPyB0cnVlIDogZmFsc2U7XHJcbiAgICB0aGlzLnVwZGF0ZVF1ZXJ5UGFyYW1zKCk7XHJcbiAgfVxyXG5cclxuICBvblNvcnRUYWJsZShjb2x1bW46IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuc29ydGVkQ29sdW1uID09PSBjb2x1bW4pIHtcclxuICAgICAgdGhpcy5zb3J0T3JkZXIgPSB0aGlzLnNvcnRPcmRlciA9PT0gMSA/IC0xIDogMTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc29ydGVkQ29sdW1uID0gY29sdW1uO1xyXG4gICAgICB0aGlzLnNvcnRPcmRlciA9IDE7XHJcbiAgICB9XHJcbiAgICB0aGlzLm9mZnNldCA9IDE7XHJcbiAgICB0aGlzLmxpbWl0ID0gMTA7XHJcbiAgICB0aGlzLmdldFBsYW5vZ3JhbVRhYmxlTGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgYXBwbHlGaWx0ZXJzKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IGNvdW50cnkgPSBldmVudFswXS5zZWxlY3RlZDtcclxuICAgIGNvbnN0IGNpdHkgPSBldmVudFsxXS5zZWxlY3RlZDtcclxuICAgIGNvbnN0IGNvbXBsaWFuY2UgPSBldmVudFsyXS5zZWxlY3RlZDtcclxuICAgIGNvbnN0IHBsYW5vU3RyYXRlZ3kgPSBldmVudFszXS5zZWxlY3RlZDtcclxuXHJcbiAgICBpZiAoY291bnRyeS5sZW5ndGggfHwgY2l0eS5sZW5ndGggfHwgY29tcGxpYW5jZSB8fCBwbGFub1N0cmF0ZWd5KSB7XHJcbiAgICAgIHRoaXMuaXNGaWx0ZXJBcHBsaWVkID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaXNGaWx0ZXJBcHBsaWVkID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hcHBsaWVkRmlsdGVycyA9IHtcclxuICAgICAgY291bnRyeSxcclxuICAgICAgY2l0eSxcclxuICAgICAgLi4uKGNvbXBsaWFuY2UgPyB7IGNvbXBsaWFuY2U6IFtjb21wbGlhbmNlLm1pbiwgY29tcGxpYW5jZS5tYXhdIH0gOiB7fSksXHJcbiAgICAgIC4uLihwbGFub1N0cmF0ZWd5ID8geyBwbGFub1N0cmF0ZWd5IH0gOiB7fSksXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMub2Zmc2V0ID0gMTtcclxuICAgIHRoaXMuZ2V0UGxhbm9ncmFtVGFibGVMaXN0KCk7XHJcbiAgfVxyXG5cclxuICBwYWdpbmF0aW9uU2l6ZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMudG90YWxJdGVtcyA8IDEwID8gdGhpcy50b3RhbEl0ZW1zIDogdGhpcy5saW1pdDtcclxuICB9XHJcblxyXG4gIG9uUGFnZUNoYW5nZShwYWdlT2Zmc2V0OiBudW1iZXIpIHtcclxuICAgIHRoaXMub2Zmc2V0ID0gTnVtYmVyKHBhZ2VPZmZzZXQpO1xyXG4gICAgdGhpcy51cGRhdGVRdWVyeVBhcmFtcygpO1xyXG4gIH1cclxuXHJcbiAgb25QYWdlU2l6ZUNoYW5nZShwYWdlU2l6ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLm9mZnNldCA9IDE7XHJcbiAgICB0aGlzLmxpbWl0ID0gTnVtYmVyKHBhZ2VTaXplKTtcclxuICAgIHRoaXMudXBkYXRlUXVlcnlQYXJhbXMoKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVF1ZXJ5UGFyYW1zKCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW10sIHtcclxuICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSxcclxuICAgICAgcXVlcnlQYXJhbXM6IHtcclxuICAgICAgICBzZWFyY2g6IHRoaXMuc2VhcmNoVGVybSxcclxuICAgICAgICBsaW1pdDogdGhpcy5saW1pdCxcclxuICAgICAgICBvZmZzZXQ6IHRoaXMub2Zmc2V0LFxyXG4gICAgICB9LFxyXG4gICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiBcIm1lcmdlXCIsXHJcbiAgICAgIHJlcGxhY2VVcmw6IHRydWUsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uRXhwb3J0KCkge1xyXG4gICAgbGV0IHBheWxvYWQgPSB7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudElkLFxyXG4gICAgICBsaW1pdDogdGhpcy50b3RhbEl0ZW1zLFxyXG4gICAgICBvZmZzZXQ6IHRoaXMub2Zmc2V0LFxyXG4gICAgICBzb3J0Q29sdW1uTmFtZTogdGhpcy5zb3J0ZWRDb2x1bW4sXHJcbiAgICAgIHNvcnRCeTogdGhpcy5zb3J0T3JkZXIsXHJcbiAgICAgIHNlYXJjaFZhbHVlOiB0aGlzLnNlYXJjaFRlcm0sXHJcbiAgICAgIGZpbHRlcjogdGhpcy5hcHBsaWVkRmlsdGVycyxcclxuICAgICAgZXhwb3J0OiB0cnVlLFxyXG4gICAgICAvLyBlbXB0eURvd25sb2FkOiBmYWxzZVxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLnN0b3JlQnVpbGRlclNlcnZpY2VcclxuICAgICAgLmdldFBsYW5vZ3JhbUxpc3RFeHBvcnQocGF5bG9hZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZUJ1aWxkZXJTZXJ2aWNlLnNhdmVBc0V4Y2VsRmlsZShyZXMsIFwiUGxhbm9ncmFtXCIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGVyciwgXCJlcnJcIik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gICAgdGhpcy5wbGFub1N1Yj8udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbnRlbnQtd3JhcHBlclwiPlxyXG4gIDxkaXY+XHJcbiAgICA8IS0tIE1hbmFnZSBQbGFub2dyYW0gdmlldyBoZWFkZXIgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtYi01XCI+XHJcbiAgICAgIDxkaXY+XHJcbiAgICAgICAgPGg0PkFsbCBQbGFub2dyYW1zPC9oND5cclxuICAgICAgICA8c3Bhbj57eyB0b3RhbEl0ZW1zIH19IC0gVG90YWwgUmVjb3Jkczwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmVcIj5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwic2VhcmNoVGVybVwiIChjaGFuZ2UpPVwib25TZWFyY2goKVwiXHJcbiAgICAgICAgICAgIHN0eWxlPVwicGFkZGluZy1sZWZ0OiAzcmVtOyBwYWRkaW5nLXJpZ2h0OiAzcmVtXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBuYW1lPVwic2VhcmNoXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2hcIiAvPlxyXG5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2VhcmNoLWljb25cIj5cclxuICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMThcIiB2aWV3Qm94PVwiMCAwIDE4IDE4XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiOFwiIGN5PVwiOFwiIHI9XCI2XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIC8+XHJcbiAgICAgICAgICAgICAgPGxpbmUgeDE9XCIxM1wiIHkxPVwiMTNcIiB4Mj1cIjE2XCIgeTI9XCIxNlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcblxyXG4gICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInNlYXJjaFRlcm1cIiB0eXBlPVwiYnV0dG9uXCIgYXJpYS1sYWJlbD1cIkNsZWFyXCIgKGNsaWNrKT1cInNlYXJjaFRlcm0gPSAnJzsgb25TZWFyY2goKVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiY2xlYXItc2VhcmNoXCI+XHJcbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCI2NHB4XCIgaGVpZ2h0PVwiNjRweFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICA8ZyBpZD1cIlNWR1JlcG9fYmdDYXJyaWVyXCIgc3Ryb2tlLXdpZHRoPVwiMFwiPjwvZz5cclxuICAgICAgICAgICAgICA8ZyBpZD1cIlNWR1JlcG9fdHJhY2VyQ2FycmllclwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvZz5cclxuICAgICAgICAgICAgICA8ZyBpZD1cIlNWR1JlcG9faWNvbkNhcnJpZXJcIj5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOSA5TDE1IDE1XCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj5cclxuICAgICAgICAgICAgICAgIDwvcGF0aD5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTUgOUw5IDE1XCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj5cclxuICAgICAgICAgICAgICAgIDwvcGF0aD5cclxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxMlwiIGN5PVwiMTJcIiByPVwiOVwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9jaXJjbGU+XHJcbiAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS0gRmlsdGVyIC0tPlxyXG4gICAgICAgIDxwbGFuby1maWx0ZXIgW2NsaWVudElkXT1cImNsaWVudElkXCIgKGFwcGx5RmlsdGVycyk9XCJhcHBseUZpbHRlcnMoJGV2ZW50KVwiXHJcbiAgICAgICAgICAocmVzZXRGaWx0ZXJzKT1cImFwcGx5RmlsdGVycygkZXZlbnQpXCI+PC9wbGFuby1maWx0ZXI+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uRXhwb3J0KClcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImJ0bi1vdXRsaW5lIGJ0biBhbGlnbi1pdGVtcy1lbmQgdGV4dC1ub3dyYXAgaW52aGVhZGVyIG1zLTRcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXBsYW5vZ3JhbXNMaXN0Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICA8IS0tIEV4cG9ydCBJY29uIC0tPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcclxuICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNMTcuNSAxMi41VjE1LjgzMzNDMTcuNSAxNi4yNzU0IDE3LjMyNDQgMTYuNjk5MyAxNy4wMTE4IDE3LjAxMThDMTYuNjk5MyAxNy4zMjQ0IDE2LjI3NTQgMTcuNSAxNS44MzMzIDE3LjVINC4xNjY2N0MzLjcyNDY0IDE3LjUgMy4zMDA3MiAxNy4zMjQ0IDIuOTg4MTYgMTcuMDExOEMyLjY3NTU5IDE2LjY5OTMgMi41IDE2LjI3NTQgMi41IDE1LjgzMzNWMTIuNU0xNC4xNjY3IDYuNjY2NjdMMTAgMi41TTEwIDIuNUw1LjgzMzMzIDYuNjY2NjdNMTAgMi41VjEyLjVcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTJcIj48L3NwYW4+IEV4cG9ydFxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJpc1BhZ2VMb2FkaW5nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbG9hZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1jb2x1bW5cIlxyXG4gICAgICAqbmdJZj1cIiFpc1BhZ2VMb2FkaW5nICYmIHBsYW5vZ3JhbXNMaXN0Lmxlbmd0aCA9PT0gMCAmJiAhcGxhbm9MaXN0XCI+XHJcbiAgICAgIDxpbWcgY2xhc3M9XCJpbWctc3JjXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvTm9kYXRhMS5zdmdcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhbWFpbnRleHQgbXQtM1wiPk5vIGRhdGEgZm91bmQ8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YXN1YnRleHRcIj5UaGVyZSBpcyBubyByZXN1bHQgZm9yIHBsYW5vZ3JhbSB0YWJsZTwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiXHJcbiAgICAgICpuZ0lmPVwiIWlzUGFnZUxvYWRpbmcgJiYgcGxhbm9ncmFtc0xpc3QubGVuZ3RoID09PSAwICYmIHBsYW5vTGlzdFwiPlxyXG4gICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjMwMlwiIGhlaWdodD1cIjE2MFwiIHZpZXdCb3g9XCIwIDAgMzAyIDE2MFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgPHBhdGggZD1cIk05Ny45MDIzIDU0LjA5NDJDODMuNjM4OSA1NC4wOTQyIDcyLjA3NjIgNjUuNjU3IDcyLjA3NjIgNzkuOTIwNEM3Mi4wNzYyIDg1LjgzNjMgNjguMDcyMiA5Mi41ODA2IDYyLjE1NjQgOTIuNTgwNkgzOS4zNTA2QzI1LjA4NzEgOTIuNTgwNiAxMy41MjM0IDEwNC4xNDMgMTMuNTIzNCAxMTguNDA3QzEzLjUyMzQgMTMyLjY3IDI1LjA4NzEgMTQ0LjIzMyAzOS4zNTA2IDE0NC4yMzNIMTc3LjQ0OUMxOTQuMzM5IDE0NC4yMzMgMjEwLjQxMiAxMzEuMDY3IDIyNy4zMDIgMTMxLjA2N0gyOTMuMzM3QzI5OC4wOTEgMTMxLjA2NyAzMDEuOTQ1IDEyNy4yMTMgMzAxLjk0NSAxMjIuNDU4QzMwMS45NDUgMTE3LjcwNCAyOTguMDkxIDExMy44NDkgMjkzLjMzNyAxMTMuODQ5SDIwNS43MTdDMjA0LjA3MiAxMTMuODQ5IDIwMi42OCAxMTIuNjI3IDIwMi4yMTIgMTExLjA1MUMyMDEuNDczIDEwOC41NjEgMjAzLjE3NCAxMDUuNzQ3IDIwNS43NzEgMTA1Ljc0N0gyMzYuMDAxQzI1MC4yNjQgMTA1Ljc0NyAyNjEuODI3IDk0LjE4MzggMjYxLjgyNyA3OS45MjA0QzI2MS44MjcgNjUuNjU3IDI1MC4yNjQgNTQuMDk0MyAyMzYuMDAxIDU0LjA5NDJIOTcuOTAyM1pcIiBmaWxsPVwiI0VBRUNGMFwiLz5cclxuICAgICAgICA8cmVjdCB3aWR0aD1cIjI0MC42OTRcIiBoZWlnaHQ9XCIxNi45OTU2XCIgcng9XCI4LjQ5NzhcIiB0cmFuc2Zvcm09XCJtYXRyaXgoLTEgMCAwIDEgMjQwLjY5NCA1NS45MzE1KVwiIGZpbGw9XCIjRUFFQ0YwXCIvPlxyXG4gICAgICAgIDxjaXJjbGUgY3g9XCI1LjQyMTQ3XCIgY3k9XCI1LjQyMTQ3XCIgcj1cIjUuNDIxNDdcIiB0cmFuc2Zvcm09XCJtYXRyaXgoLTEgMCAwIDEgNTAuMzkwNiAxMjAuMzU3KVwiIGZpbGw9XCIjNkJDQUZGXCIvPlxyXG4gICAgICAgIDxjaXJjbGUgY3g9XCIzLjI1Mjg4XCIgY3k9XCIzLjI1Mjg4XCIgcj1cIjMuMjUyODhcIiB0cmFuc2Zvcm09XCJtYXRyaXgoLTEgMCAwIDEgMjM5LjA1OCA3NS45MDA0KVwiIGZpbGw9XCIjMDBBM0ZGXCIvPlxyXG4gICAgICAgIDxjaXJjbGUgY3g9XCIzLjI1Mjg4XCIgY3k9XCIzLjI1Mjg4XCIgcj1cIjMuMjUyODhcIiB0cmFuc2Zvcm09XCJtYXRyaXgoLTEgMCAwIDEgMjA5Ljc4MSAyMC42MDE0KVwiIGZpbGw9XCIjMDBBM0ZGXCIvPlxyXG4gICAgICAgIDxjaXJjbGUgY3g9XCIyLjE2ODU5XCIgY3k9XCIyLjE2ODU5XCIgcj1cIjIuMTY4NTlcIiB0cmFuc2Zvcm09XCJtYXRyaXgoLTEgMCAwIDEgOTguMDk4NiAxNDUuMjk1KVwiIGZpbGw9XCIjMDBBM0ZGXCIvPlxyXG4gICAgICAgIDxyZWN0IHg9XCI2My4wODY5XCIgeT1cIjUxLjcxODdcIiB3aWR0aD1cIjE2Ni4wMTVcIiBoZWlnaHQ9XCI5Ni45NTI4XCIgcng9XCIxNC42MDkzXCIgZmlsbD1cIiM2QkNBRkZcIiBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMy45ODQzNlwiLz5cclxuICAgICAgICA8bWFzayBpZD1cInBhdGgtOC1pbnNpZGUtMV83NjlfMjk3NDBcIiBmaWxsPVwid2hpdGVcIj5cclxuICAgICAgICA8cGF0aCBkPVwiTTg3LjIxMTkgMjYuMDc0M0M4OC4xNTcxIDI2LjA3NDQgODkuMDgzIDI2LjE1NzEgODkuOTgyNCAyNi4zMTY1VjEyMy44NTlDODkuMDgzIDEyMy42OTkgODguMTU3MSAxMjMuNjE2IDg3LjIxMTkgMTIzLjYxNkg3Ni44NjgyQzY4LjE1NzkgMTIzLjYxNiA2MS4wOTY4IDEzMC42NzggNjEuMDk2NyAxMzkuMzg4VjQxLjg0NThDNjEuMDk2NyAzMy4xMzU1IDY4LjE1NzggMjYuMDc0MyA3Ni44NjgyIDI2LjA3NDNIODcuMjExOVpcIi8+XHJcbiAgICAgICAgPC9tYXNrPlxyXG4gICAgICAgIDxwYXRoIGQ9XCJNODcuMjExOSAyNi4wNzQzQzg4LjE1NzEgMjYuMDc0NCA4OS4wODMgMjYuMTU3MSA4OS45ODI0IDI2LjMxNjVWMTIzLjg1OUM4OS4wODMgMTIzLjY5OSA4OC4xNTcxIDEyMy42MTYgODcuMjExOSAxMjMuNjE2SDc2Ljg2ODJDNjguMTU3OSAxMjMuNjE2IDYxLjA5NjggMTMwLjY3OCA2MS4wOTY3IDEzOS4zODhWNDEuODQ1OEM2MS4wOTY3IDMzLjEzNTUgNjguMTU3OCAyNi4wNzQzIDc2Ljg2ODIgMjYuMDc0M0g4Ny4yMTE5WlwiIGZpbGw9XCIjNkJDQUZGXCIvPlxyXG4gICAgICAgIDxwYXRoIGQ9XCJNODcuMjExOSAyNi4wNzQzTDg3LjIxMiAyMi4wOUg4Ny4yMTE5VjI2LjA3NDNaTTg5Ljk4MjQgMjYuMzE2NUg5My45NjY4VjIyLjk3NjJMOTAuNjc3NyAyMi4zOTMzTDg5Ljk4MjQgMjYuMzE2NVpNODkuOTgyNCAxMjMuODU5TDg5LjI4NzIgMTI3Ljc4Mkw5My45NjY4IDEyOC42MTFWMTIzLjg1OUg4OS45ODI0Wk04Ny4yMTE5IDEyMy42MTZMODcuMjEyIDExOS42MzJIODcuMjExOVYxMjMuNjE2Wk02MS4wOTY3IDEzOS4zODhINTcuMTEyM0w2NS4wODEgMTM5LjM4OEw2MS4wOTY3IDEzOS4zODhaTTg3LjIxMTkgMjYuMDc0M0w4Ny4yMTE5IDMwLjA1ODdDODcuOTI0MSAzMC4wNTg3IDg4LjYxNzMgMzAuMTIxIDg5LjI4NzIgMzAuMjM5OEw4OS45ODI0IDI2LjMxNjVMOTAuNjc3NyAyMi4zOTMzQzg5LjU0ODcgMjIuMTkzMiA4OC4zOTAyIDIyLjA5IDg3LjIxMiAyMi4wOUw4Ny4yMTE5IDI2LjA3NDNaTTg5Ljk4MjQgMjYuMzE2NUg4NS45OTgxVjEyMy44NTlIODkuOTgyNEg5My45NjY4VjI2LjMxNjVIODkuOTgyNFpNODkuOTgyNCAxMjMuODU5TDkwLjY3NzcgMTE5LjkzNUM4OS41NDg3IDExOS43MzUgODguMzkwMiAxMTkuNjMyIDg3LjIxMiAxMTkuNjMyTDg3LjIxMTkgMTIzLjYxNkw4Ny4yMTE5IDEyNy42MDFDODcuOTI0IDEyNy42MDEgODguNjE3MyAxMjcuNjYzIDg5LjI4NzIgMTI3Ljc4Mkw4OS45ODI0IDEyMy44NTlaTTg3LjIxMTkgMTIzLjYxNlYxMTkuNjMySDc2Ljg2ODJWMTIzLjYxNlYxMjcuNjAxSDg3LjIxMTlWMTIzLjYxNlpNNzYuODY4MiAxMjMuNjE2VjExOS42MzJDNjUuOTU3NCAxMTkuNjMyIDU3LjExMjUgMTI4LjQ3NyA1Ny4xMTIzIDEzOS4zODhMNjEuMDk2NyAxMzkuMzg4TDY1LjA4MSAxMzkuMzg4QzY1LjA4MTEgMTMyLjg3OCA3MC4zNTg1IDEyNy42MDEgNzYuODY4MiAxMjcuNjAxVjEyMy42MTZaTTYxLjA5NjcgMTM5LjM4OEg2NS4wODFWNDEuODQ1OEg2MS4wOTY3SDU3LjExMjNWMTM5LjM4OEg2MS4wOTY3Wk02MS4wOTY3IDQxLjg0NThINjUuMDgxQzY1LjA4MSAzNS4zMzYgNzAuMzU4MyAzMC4wNTg3IDc2Ljg2ODIgMzAuMDU4N1YyNi4wNzQzVjIyLjA5QzY1Ljk1NzMgMjIuMDkgNTcuMTEyMyAzMC45MzUgNTcuMTEyMyA0MS44NDU4SDYxLjA5NjdaTTc2Ljg2ODIgMjYuMDc0M1YzMC4wNTg3SDg3LjIxMTlWMjYuMDc0M1YyMi4wOUg3Ni44NjgyVjI2LjA3NDNaXCIgZmlsbD1cIiMwMEEzRkZcIiBtYXNrPVwidXJsKCNwYXRoLTgtaW5zaWRlLTFfNzY5XzI5NzQwKVwiLz5cclxuICAgICAgICA8bGluZSB4MT1cIjcxLjA1NDdcIiB5MT1cIjQ5LjcyNjdcIiB4Mj1cIjcxLjA1NDdcIiB5Mj1cIjkxLjU2MjVcIiBzdHJva2U9XCIjOTlEQUZGXCIgc3Ryb2tlLXdpZHRoPVwiMy45ODQzNlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIi8+XHJcbiAgICAgICAgPHJlY3QgeD1cIjExNi4yMjlcIiB5PVwiMTA0LjY0MlwiIHdpZHRoPVwiNjMuMzg5XCIgaGVpZ2h0PVwiMzIuMTUzOFwiIHJ4PVwiNy4zNDk0NVwiIGZpbGw9XCIjOTlEQUZGXCIvPlxyXG4gICAgICAgIDxyZWN0IHg9XCIxMTYuMjI5XCIgeT1cIjY2Ljk3NjJcIiB3aWR0aD1cIjYzLjM4OVwiIGhlaWdodD1cIjMyLjE1MzhcIiByeD1cIjcuMzQ5NDVcIiBmaWxsPVwiIzk5REFGRlwiLz5cclxuICAgICAgICA8Y2lyY2xlIGN4PVwiMjEyLjI5OVwiIGN5PVwiNzcuMjUwNVwiIHI9XCIzLjI5NjYzXCIgZmlsbD1cIndoaXRlXCIvPlxyXG4gICAgICAgIDxjaXJjbGUgY3g9XCIxMDUuODhcIiBjeT1cIjYyLjI0MDdcIiByPVwiMi41MjYzN1wiIGZpbGw9XCIjOTlEQUZGXCIvPlxyXG4gICAgICAgIDxjaXJjbGUgY3g9XCI5My40NzgzXCIgY3k9XCIxMzIuMDZcIiByPVwiMy40NDUwNVwiIGZpbGw9XCJ3aGl0ZVwiLz5cclxuICAgICAgICA8cmVjdCB4PVwiMTE2LjIyOVwiIHk9XCIzNy41Nzg0XCIgd2lkdGg9XCI2My4zODlcIiBoZWlnaHQ9XCIyNC44MDQ0XCIgcng9XCI3LjM0OTQ1XCIgZmlsbD1cIiM5OURBRkZcIi8+XHJcbiAgICAgIDwvc3ZnPiAgICAgICAgICAgICAgXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGFtYWludGV4dCBtdC0zXCI+UGxhbm9ncmFtIFlldCB0byBQdWJsaXNoPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGFzdWJ0ZXh0XCI+PGEgaHJlZj1cIm1hbmFnZS9wbGFub2dyYW0vbWFuYWdlLXBsYW5vZ3JhbT9wbGFub0lkPXt7cGxhbm9MaXN0Py5bMF0/LnBsYW5vSWR9fSZmbG9vcklkPXt7cGxhbm9MaXN0Py5bMF0/Ll9pZH19XCI+e3twbGFub0xpc3Q/LlswXT8uc3RvcmVOYW1lfX08L2E+IGlzIHN0aWxsIHVuZGVyIHZlcmlmaWNhdGlvbjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBNYW5hZ2UgUGxhbm9ncmFtIGxpc3QgdmlldyAtLT5cclxuICAgIDxzZWN0aW9uIGlkPVwibGlzdC12aWV3XCIgKm5nSWY9XCIhaXNQYWdlTG9hZGluZyAmJiBwbGFub2dyYW1zTGlzdC5sZW5ndGggIT09IDBcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIj5cclxuICAgICAgICA8dGFibGUgY2xhc3M9XCJ3LTEwMCB0YWJsZSBib3R0b20tYm9yZGVyIHRleHQtbm93cmFwXCI+XHJcbiAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICA8dGg+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAoY2xpY2spPVwib25Tb3J0VGFibGUoJ3N0b3JlTmFtZScpXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICBQbGFub2dyYW0gbmFtZVxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIG1zLTEgbXQtMVwiIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBzb3J0ZWRDb2x1bW4gPT09ICdzdG9yZU5hbWUnID8gJyMwMDlCRjMnIDogJydcclxuICAgICAgICAgICAgICAgICAgICB9XCIgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzb3J0T3JkZXIgPT09IDEgJiYgc29ydGVkQ29sdW1uID09PSAnc3RvcmVOYW1lJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdmYS1hcnJvdy11cCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiAnZmEtYXJyb3ctZG93bidcclxuICAgICAgICAgICAgICAgICAgICBcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICA8dGg+XHJcbiAgICAgICAgICAgICAgICBDb3VudHJ5XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxzcGFuIChjbGljayk9XCJvblNvcnRUYWJsZSgnY291bnRyeScpXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIG1zLTEgbXQtMVwiIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBzb3J0ZWRDb2x1bW4gPT09ICdjb3VudHJ5JyA/ICcjMDA5QkYzJyA6ICcnXHJcbiAgICAgICAgICAgICAgICAgICAgfVwiIFtuZ0NsYXNzXT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc29ydE9yZGVyID09PSAxICYmIHNvcnRlZENvbHVtbiA9PT0gJ2NvdW50cnknXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ2ZhLWFycm93LXVwJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICdmYS1hcnJvdy1kb3duJ1xyXG4gICAgICAgICAgICAgICAgICAgIFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICA8dGg+XHJcbiAgICAgICAgICAgICAgICBSZWdpb25cclxuICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gKGNsaWNrKT1cIm9uU29ydFRhYmxlKCdjaXR5JylcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgbXMtMSBtdC0xXCIgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHNvcnRlZENvbHVtbiA9PT0gJ2NpdHknID8gJyMwMDlCRjMnIDogJydcclxuICAgICAgICAgICAgICAgICAgICB9XCIgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzb3J0T3JkZXIgPT09IDEgJiYgc29ydGVkQ29sdW1uID09PSAnY2l0eSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnZmEtYXJyb3ctdXAnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ2ZhLWFycm93LWRvd24nXHJcbiAgICAgICAgICAgICAgICAgICAgXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgIDx0aD5cclxuICAgICAgICAgICAgICAgIDxzcGFuIChjbGljayk9XCJvblNvcnRUYWJsZSgndXBkYXRlZEF0JylcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIExhc3QgdXBkYXRlXHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgbXMtMSBtdC0xXCIgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHNvcnRlZENvbHVtbiA9PT0gJ3VwZGF0ZWRBdCcgPyAnIzAwOUJGMycgOiAnJ1xyXG4gICAgICAgICAgICAgICAgICAgIH1cIiBbbmdDbGFzc109XCJcclxuICAgICAgICAgICAgICAgICAgICAgIHNvcnRPcmRlciA9PT0gMSAmJiBzb3J0ZWRDb2x1bW4gPT09ICd1cGRhdGVkQXQnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ2ZhLWFycm93LXVwJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICdmYS1hcnJvdy1kb3duJ1xyXG4gICAgICAgICAgICAgICAgICAgIFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgIDx0aD5cclxuICAgICAgICAgICAgICAgIDxzcGFuIChjbGljayk9XCJvblNvcnRUYWJsZSgnbWVyY2hDb21wbGlhbmNlJylcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIE1lcmNoIENvbXBsaWFuY2VcclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBtcy0xIG10LTFcIiBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogc29ydGVkQ29sdW1uID09PSAnbWVyY2hDb21wbGlhbmNlJyA/ICcjMDA5QkYzJyA6ICcnXHJcbiAgICAgICAgICAgICAgICAgICAgfVwiIFtuZ0NsYXNzXT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc29ydE9yZGVyID09PSAxICYmIHNvcnRlZENvbHVtbiA9PT0gJ21lcmNoQ29tcGxpYW5jZSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnZmEtYXJyb3ctdXAnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ2ZhLWFycm93LWRvd24nXHJcbiAgICAgICAgICAgICAgICAgICAgXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IHBsYW5vIG9mIHBsYW5vZ3JhbXNMaXN0XCI+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiWycvbWFuYWdlL3BsYW5vZ3JhbS9zdG9yZS1wbGFub2dyYW0nXVwiIFtxdWVyeVBhcmFtc109XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgcGxhbm9JZDogcGxhbm8ucGxhbm9JZCxcclxuICAgICAgICAgICAgICAgICAgICBmbG9vcklkOiBwbGFuby5faWQsXHJcbiAgICAgICAgICAgICAgICAgICAgc3RvcmVOYW1lOnBsYW5vLnN0b3JlTmFtZVxyXG4gICAgICAgICAgICAgICAgICB9XCIgY2xhc3M9XCJ0ZXh0LWRlY29yYXRpb24tdW5kZXJsaW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7cGxhbm8uc3RvcmVOYW1lfX0gPHNwYW4gKm5nSWY9XCJwbGFuby5tdWx0aXBsZUZsb29yXCI+KHt7cGxhbm8uZmxvb3JOYW1lIHwgdGl0bGVjYXNlfX0pPC9zcGFuPiAtIFBsYW5vXHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj57e3BsYW5vPy5zdG9yZUluZm8/LmNvdW50cnl9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt7cGxhbm8/LnN0b3JlSW5mbz8uY2l0eX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+e3twbGFuby51cGRhdGVkQXR9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt7cGxhbm8/Lm1lcmNoQ29tcGxpYW5jZSA/PyAwfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgPC90YWJsZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcblxyXG4gICAgPCEtLSBNYW5hZ2UgUGxhbm9ncmFtIGdyaWQgdmlldyAtLT5cclxuICAgIDwhLS0gPG5nLXRlbXBsYXRlICNncmlkVmlldz5cclxuICAgICAgPHNlY3Rpb24gaWQ9XCJncmlkLXZpZXdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGd4LTYgZ3ktNFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCIgKm5nRm9yPVwibGV0IGZpeHR1cmUgb2YgZml4dHVyZVRlbXBsYXRlc0xpc3RcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1pbWdcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWFjdGlvbiBkcm9wZG93blwiPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBweC00IHB5LTNcIiB0eXBlPVwiYnV0dG9uXCIgZGF0YS1icy10b2dnbGU9XCJkcm9wZG93blwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktdGhyZWUtZG90cy12ZXJ0aWNhbFwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImRyb3Bkb3duLW1lbnVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGk+PGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtIGN1cnNvci1wb2ludGVyXCI+RWRpdDwvYT48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaT48YSBjbGFzcz1cImRyb3Bkb3duLWl0ZW0gY3Vyc29yLXBvaW50ZXJcIj5EdXBsaWNhdGU8L2E+PC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8bGk+PGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtIGN1cnNvci1wb2ludGVyIHRleHQtZGFuZ2VyXCI+RGVsZXRlPC9hPjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGgzPnt7IGZpeHR1cmUubmFtZSB9fTwvaDM+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFkZ2VcIiBbbmdDbGFzc109XCJmaXh0dXJlLnN0YXR1c1wiPnt7IGZpeHR1cmUuc3RhdHVzIHwgdGl0bGVjYXNlIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgc3ViQnJhbmQgb2YgZml4dHVyZS5zdWJCcmFuZDsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImkgIT0gMFwiIGNsYXNzPVwibWUtMiBjYXJkLXRhZ2xpbmVcIj4mIzgyMjY7PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFkZ2VcIj57eyBzdWJCcmFuZCB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvc2VjdGlvbj5cclxuICAgIDwvbmctdGVtcGxhdGU+IC0tPlxyXG5cclxuICAgIDwhLS0gUGFnaW5hdGlvbiAtLT5cclxuICAgIDxsaWItcGFnaW5hdGlvbiBbaXRlbXNQZXJQYWdlXT1cImxpbWl0XCIgW2N1cnJlbnRQYWdlXT1cIm9mZnNldFwiIFt0b3RhbEl0ZW1zXT1cInRvdGFsSXRlbXNcIlxyXG4gICAgICBbcGFnaW5hdGlvblNpemVzXT1cInBhZ2luYXRpb25TaXplc1wiIFtwYWdlU2l6ZV09XCJwYWdpbmF0aW9uU2l6ZSgpXCIgKHBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAocGFnZVNpemVDaGFuZ2UpPVwib25QYWdlU2l6ZUNoYW5nZSgkZXZlbnQpXCIgKm5nSWY9XCIhaXNQYWdlTG9hZGluZyAmJiBwbGFub2dyYW1zTGlzdC5sZW5ndGggIT09IDBcIj5cclxuICAgIDwvbGliLXBhZ2luYXRpb24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
236
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbm8tdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tc3RvcmUtYnVpbGRlci9zcmMvbGliL2NvbXBvbmVudHMvcGxhbm9ncmFtL3BsYW5vLXRhYmxlL3BsYW5vLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXN0b3JlLWJ1aWxkZXIvc3JjL2xpYi9jb21wb25lbnRzL3BsYW5vZ3JhbS9wbGFuby10YWJsZS9wbGFuby10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQ0wsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixPQUFPLEVBRVAsU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDO0FBR2QsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixtQkFBbUIsR0FDcEIsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7O0FBUTNDLE1BQU0sT0FBTyxtQkFBbUI7SUF5QnBCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUE1QlYsUUFBUSxDQUFTO0lBRWpCLEtBQUssR0FBVyxFQUFFLENBQUM7SUFDbkIsTUFBTSxHQUFXLENBQUMsQ0FBQztJQUNuQixVQUFVLEdBQVcsQ0FBQyxDQUFDO0lBQ3ZCLGVBQWUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFL0IsWUFBWSxHQUFXLEVBQUUsQ0FBQztJQUMxQixTQUFTLEdBQVcsQ0FBQyxDQUFDLENBQUM7SUFFdkIsVUFBVSxHQUFXLEVBQUUsQ0FBQztJQUV4QixjQUFjLEdBQXlCLEVBQUUsQ0FBQztJQUUxQyxjQUFjLEdBQUcsRUFBRSxDQUFDO0lBQ3BCLGVBQWUsR0FBWSxLQUFLLENBQUM7SUFDakMsYUFBYSxHQUFZLElBQUks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RSxJQUFJLENBQUMsTUFBTTtZQUNuQixjQUFjLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDakMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3RCLFdBQVcsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUM1QixNQUFNLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDM0IsTUFBTSxFQUFFLElBQUk7WUFDWix1QkFBdUI7U0FDeEIsQ0FBQztRQUVGLElBQUksQ0FBQyxtQkFBbUI7YUFDckIsc0JBQXNCLENBQUMsT0FBTyxDQUFDO2FBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlCLFNBQVMsQ0FBQztZQUNULElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLEdBQUcsRUFBRTtvQkFDUCxJQUFJLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQztpQkFDNUQ7WUFDSCxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDMUIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDL0IsQ0FBQzt3R0F0UFUsbUJBQW1COzRGQUFuQixtQkFBbUIsdURDdEJoQyxxL2VBNFBNOzs0RkR0T08sbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBQbGFub2dyYW1UYWJsZUxpc3QgfSBmcm9tIFwiLi4vLi4vLi4vaW50ZXJmYWNlcy9wbGFub2dyYW0uaW50ZXJmYWNlXCI7XHJcbmltcG9ydCB7XHJcbiAgZGVib3VuY2VUaW1lLFxyXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxyXG4gIFN1YmplY3QsXHJcbiAgU3Vic2NyaXB0aW9uLFxyXG4gIHRha2VVbnRpbCxcclxufSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBTdG9yZUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL3N0b3JlLWJ1aWxkZXIuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UsIFBhZ2VJbmZvU2VydmljZSB9IGZyb20gXCJ0YW5nby1hcHAtdWktZ2xvYmFsXCI7XHJcbmltcG9ydCB7XHJcbiAgZ2V0UXVlcnlQYXJhbU51bWJlcixcclxuICBnZXRRdWVyeVBhcmFtU3RyaW5nLFxyXG59IGZyb20gXCIuLi8uLi8uLi9mdW5jdGlvbnMvcGxhbm8uZnVuY3Rpb25cIjtcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImxpYi1wbGFuby10YWJsZVwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vcGxhbm8tdGFibGUuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybDogXCIuL3BsYW5vLXRhYmxlLmNvbXBvbmVudC5zY3NzXCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQbGFub1RhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIGNsaWVudElkOiBzdHJpbmc7XHJcblxyXG4gIGxpbWl0OiBudW1iZXIgPSAxMDtcclxuICBvZmZzZXQ6IG51bWJlciA9IDE7XHJcbiAgdG90YWxJdGVtczogbnVtYmVyID0gMDtcclxuICBwYWdpbmF0aW9uU2l6ZXMgPSBbMTAsIDIwLCAzMF07XHJcblxyXG4gIHNvcnRlZENvbHVtbjogc3RyaW5nID0gXCJcIjtcclxuICBzb3J0T3JkZXI6IG51bWJlciA9IC0xO1xyXG5cclxuICBzZWFyY2hUZXJtOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICBwbGFub2dyYW1zTGlzdDogUGxhbm9ncmFtVGFibGVMaXN0W10gPSBbXTtcclxuXHJcbiAgYXBwbGllZEZpbHRlcnMgPSB7fTtcclxuICBpc0ZpbHRlckFwcGxpZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1BhZ2VMb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuICBpc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcGxhbm9MaXN0OmFueTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBwbGFub1N1Yj86IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHN0b3JlQnVpbGRlclNlcnZpY2U6IFN0b3JlQnVpbGRlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHBhZ2VJbmZvOiBQYWdlSW5mb1NlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRQYWdlRGF0YSgpO1xyXG5cclxuICAgIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWVcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLCAvLyBTdWJzY3JpcHRpb24gd2lsbCBiZSBjYW5jZWxsZWQgb24gY29tcG9uZW50IGRlc3Ryb3kuXHJcbiAgICAgICAgZGVib3VuY2VUaW1lKDIwMCksIC8vIFRvIGF2b2lkIGltbWVkaWF0ZSBmcmVxdWVudCBjYWxscy5cclxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpIC8vIEVtaXR0aW5nIG9ubHkgZGlmZmVyZW50IHZhbHVlcy4gKElnbm9yZXMgc2FtZSBjbGllbnRJZCkuXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgICAgdGhpcy5jbGllbnRJZCA9IGRhdGEuY2xpZW50O1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IGRhdGEgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIikgYXMgc3RyaW5nXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRoaXMuY2xpZW50SWQgPSBkYXRhPy5jbGllbnQ7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtTWFwXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgocGFyYW1zKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZWFyY2hUZXJtID0gZ2V0UXVlcnlQYXJhbVN0cmluZyh7XHJcbiAgICAgICAgICAgICAgICBwYXJhbXMsXHJcbiAgICAgICAgICAgICAgICBrZXk6IFwic2VhcmNoXCIsXHJcbiAgICAgICAgICAgICAgICBmYWxsYmFjazogXCJcIixcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB0aGlzLmlzRmlsdGVyQXBwbGllZCA9IHRoaXMuc2VhcmNoVGVybSA/IHRydWUgOiBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5saW1pdCA9IGdldFF1ZXJ5UGFyYW1OdW1iZXIoe1xyXG4gICAgICAgICAgICAgICAgcGFyYW1zLFxyXG4gICAgICAgICAgICAgICAga2V5OiBcImxpbWl0XCIsXHJcbiAgICAgICAgICAgICAgICBmYWxsYmFjazogMTAsXHJcbiAgICAgICAgICAgICAgICBtaW46IDEsXHJcbiAgICAgICAgICAgICAgICBtYXg6IDMwLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICB0aGlzLm9mZnNldCA9IGdldFF1ZXJ5UGFyYW1OdW1iZXIoe1xyXG4gICAgICAgICAgICAgICAgcGFyYW1zLFxyXG4gICAgICAgICAgICAgICAga2V5OiBcIm9mZnNldFwiLFxyXG4gICAgICAgICAgICAgICAgZmFsbGJhY2s6IDEsXHJcbiAgICAgICAgICAgICAgICBtaW46IDEsXHJcbiAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgIHRoaXMuZ2V0UGxhbm9ncmFtVGFibGVMaXN0KCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0UGFnZURhdGEoKSB7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldFRpdGxlKFwiUGxhbm9ncmFtXCIpO1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXRCcmVhZGNydW1icyhbXSk7XHJcbiAgfVxyXG5cclxuICBnZXRQbGFub2dyYW1UYWJsZUxpc3QoKSB7XHJcbiAgICB0aGlzLnBsYW5vU3ViPy51bnN1YnNjcmliZSgpOyAvLyBDYW5jZWwgcHJldmlvdXMgcmVxdWVzdFxyXG5cclxuICAgIHRoaXMuaXNQYWdlTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnBsYW5vTGlzdCA9IG51bGw7XHJcbiAgICB0aGlzLnBsYW5vZ3JhbXNMaXN0ID0gW107XHJcblxyXG4gICAgbGV0IHBheWxvYWQgPSB7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudElkLFxyXG4gICAgICBsaW1pdDogdGhpcy5saW1pdCxcclxuICAgICAgb2Zmc2V0OiB0aGlzLm9mZnNldCxcclxuICAgICAgc29ydENvbHVtbk5hbWU6IHRoaXMuc29ydGVkQ29sdW1uLFxyXG4gICAgICBzb3J0Qnk6IHRoaXMuc29ydE9yZGVyLFxyXG4gICAgICBzZWFyY2hWYWx1ZTogdGhpcy5zZWFyY2hUZXJtLFxyXG4gICAgICBmaWx0ZXI6IHRoaXMuYXBwbGllZEZpbHRlcnMsXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMucGxhbm9TdWIgPSB0aGlzLnN0b3JlQnVpbGRlclNlcnZpY2VcclxuICAgICAgLmdldFBsYW5vZ3JhbUxpc3QocGF5bG9hZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzPy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnBsYW5vTGlzdCA9IHJlcz8uZGF0YT8ucGxhbm9EYXRhO1xyXG4gICAgICAgICAgICB0aGlzLnRvdGFsSXRlbXMgPSByZXM/LmRhdGE/LmNvdW50O1xyXG4gICAgICAgICAgICB0aGlzLnBsYW5vZ3JhbXNMaXN0ID0gcmVzPy5kYXRhPy5kYXRhID8/IFtdO1xyXG4gICAgICAgICAgICBpZiAodGhpcy50b3RhbEl0ZW1zIDwgMTApIHtcclxuICAgICAgICAgICAgICB0aGlzLnBhZ2luYXRpb25TaXplcyA9IFt0aGlzLnRvdGFsSXRlbXNdO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvblNpemVzID0gWzEwLCAyMCwgMzBdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgY29uc3Qgc3RvcmVDb3VudE1hcCA9IHRoaXMucGxhbm9ncmFtc0xpc3QucmVkdWNlKChhY2MsIGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgYWNjW2l0ZW0uc3RvcmVOYW1lXSA9IChhY2NbaXRlbS5zdG9yZU5hbWVdIHx8IDApICsgMTtcclxuICAgICAgICAgICAgcmV0dXJuIGFjYztcclxuICAgICAgICAgIH0sIHt9IGFzIFJlY29yZDxzdHJpbmcsIG51bWJlcj4pO1xyXG5cclxuICAgICAgICAgIHRoaXMucGxhbm9ncmFtc0xpc3QgPSB0aGlzLnBsYW5vZ3JhbXNMaXN0Lm1hcCgoaXRlbSkgPT4gKHtcclxuICAgICAgICAgICAgLi4uaXRlbSxcclxuICAgICAgICAgICAgbXVsdGlwbGVGbG9vcjogc3RvcmVDb3VudE1hcFtpdGVtLnN0b3JlTmFtZV0gPiAxLFxyXG4gICAgICAgICAgfSkpO1xyXG5cclxuICAgICAgICAgIHRoaXMuaXNQYWdlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICAgIHRoaXMuaXNQYWdlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMudG90YWxJdGVtcyA9IHRoaXMucGxhbm9ncmFtc0xpc3QubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgb25TZWFyY2goKSB7XHJcbiAgICB0aGlzLnNvcnRlZENvbHVtbiA9IFwiXCI7XHJcbiAgICB0aGlzLnNvcnRPcmRlciA9IDE7XHJcbiAgICB0aGlzLm9mZnNldCA9IDE7XHJcbiAgICB0aGlzLmxpbWl0ID0gMTA7XHJcblxyXG4gICAgdGhpcy5pc0ZpbHRlckFwcGxpZWQgPSB0aGlzLnNlYXJjaFRlcm0gPyB0cnVlIDogZmFsc2U7XHJcbiAgICB0aGlzLnVwZGF0ZVF1ZXJ5UGFyYW1zKCk7XHJcbiAgfVxyXG5cclxuICBvblNvcnRUYWJsZShjb2x1bW46IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuc29ydGVkQ29sdW1uID09PSBjb2x1bW4pIHtcclxuICAgICAgdGhpcy5zb3J0T3JkZXIgPSB0aGlzLnNvcnRPcmRlciA9PT0gMSA/IC0xIDogMTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc29ydGVkQ29sdW1uID0gY29sdW1uO1xyXG4gICAgICB0aGlzLnNvcnRPcmRlciA9IDE7XHJcbiAgICB9XHJcbiAgICB0aGlzLm9mZnNldCA9IDE7XHJcbiAgICB0aGlzLmxpbWl0ID0gMTA7XHJcbiAgICB0aGlzLmdldFBsYW5vZ3JhbVRhYmxlTGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgYXBwbHlGaWx0ZXJzKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IGNvdW50cnkgPSBldmVudFswXS5zZWxlY3RlZDtcclxuICAgIGNvbnN0IGNpdHkgPSBldmVudFsxXS5zZWxlY3RlZDtcclxuICAgIGNvbnN0IGNvbXBsaWFuY2UgPSBldmVudFsyXS5zZWxlY3RlZDtcclxuICAgIGNvbnN0IHBsYW5vU3RyYXRlZ3kgPSBldmVudFszXS5zZWxlY3RlZDtcclxuXHJcbiAgICBpZiAoY291bnRyeS5sZW5ndGggfHwgY2l0eS5sZW5ndGggfHwgY29tcGxpYW5jZSB8fCBwbGFub1N0cmF0ZWd5KSB7XHJcbiAgICAgIHRoaXMuaXNGaWx0ZXJBcHBsaWVkID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaXNGaWx0ZXJBcHBsaWVkID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hcHBsaWVkRmlsdGVycyA9IHtcclxuICAgICAgY291bnRyeSxcclxuICAgICAgY2l0eSxcclxuICAgICAgLi4uKGNvbXBsaWFuY2UgPyB7IGNvbXBsaWFuY2U6IFtjb21wbGlhbmNlLm1pbiwgY29tcGxpYW5jZS5tYXhdIH0gOiB7fSksXHJcbiAgICAgIC4uLihwbGFub1N0cmF0ZWd5ID8geyBwbGFub1N0cmF0ZWd5IH0gOiB7fSksXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMub2Zmc2V0ID0gMTtcclxuICAgIHRoaXMuZ2V0UGxhbm9ncmFtVGFibGVMaXN0KCk7XHJcbiAgfVxyXG5cclxuICBwYWdpbmF0aW9uU2l6ZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMudG90YWxJdGVtcyA8IDEwID8gdGhpcy50b3RhbEl0ZW1zIDogdGhpcy5saW1pdDtcclxuICB9XHJcblxyXG4gIG9uUGFnZUNoYW5nZShwYWdlT2Zmc2V0OiBudW1iZXIpIHtcclxuICAgIHRoaXMub2Zmc2V0ID0gTnVtYmVyKHBhZ2VPZmZzZXQpO1xyXG4gICAgdGhpcy51cGRhdGVRdWVyeVBhcmFtcygpO1xyXG4gIH1cclxuXHJcbiAgb25QYWdlU2l6ZUNoYW5nZShwYWdlU2l6ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLm9mZnNldCA9IDE7XHJcbiAgICB0aGlzLmxpbWl0ID0gTnVtYmVyKHBhZ2VTaXplKTtcclxuICAgIHRoaXMudXBkYXRlUXVlcnlQYXJhbXMoKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVF1ZXJ5UGFyYW1zKCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW10sIHtcclxuICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSxcclxuICAgICAgcXVlcnlQYXJhbXM6IHtcclxuICAgICAgICBzZWFyY2g6IHRoaXMuc2VhcmNoVGVybSxcclxuICAgICAgICBsaW1pdDogdGhpcy5saW1pdCxcclxuICAgICAgICBvZmZzZXQ6IHRoaXMub2Zmc2V0LFxyXG4gICAgICB9LFxyXG4gICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiBcIm1lcmdlXCIsXHJcbiAgICAgIHJlcGxhY2VVcmw6IHRydWUsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uRXhwb3J0KCkge1xyXG4gICAgbGV0IHBheWxvYWQgPSB7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudElkLFxyXG4gICAgICBsaW1pdDogdGhpcy50b3RhbEl0ZW1zLFxyXG4gICAgICBvZmZzZXQ6IHRoaXMub2Zmc2V0LFxyXG4gICAgICBzb3J0Q29sdW1uTmFtZTogdGhpcy5zb3J0ZWRDb2x1bW4sXHJcbiAgICAgIHNvcnRCeTogdGhpcy5zb3J0T3JkZXIsXHJcbiAgICAgIHNlYXJjaFZhbHVlOiB0aGlzLnNlYXJjaFRlcm0sXHJcbiAgICAgIGZpbHRlcjogdGhpcy5hcHBsaWVkRmlsdGVycyxcclxuICAgICAgZXhwb3J0OiB0cnVlLFxyXG4gICAgICAvLyBlbXB0eURvd25sb2FkOiBmYWxzZVxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLnN0b3JlQnVpbGRlclNlcnZpY2VcclxuICAgICAgLmdldFBsYW5vZ3JhbUxpc3RFeHBvcnQocGF5bG9hZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZUJ1aWxkZXJTZXJ2aWNlLnNhdmVBc0V4Y2VsRmlsZShyZXMsIFwiUGxhbm9ncmFtXCIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGVyciwgXCJlcnJcIik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gICAgdGhpcy5wbGFub1N1Yj8udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbnRlbnQtd3JhcHBlclwiPlxyXG4gIDxkaXY+XHJcbiAgICA8IS0tIE1hbmFnZSBQbGFub2dyYW0gdmlldyBoZWFkZXIgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtYi01XCI+XHJcbiAgICAgIDxkaXY+XHJcbiAgICAgICAgPGg0PkFsbCBQbGFub2dyYW1zPC9oND5cclxuICAgICAgICA8c3Bhbj57eyB0b3RhbEl0ZW1zIH19IC0gVG90YWwgUmVjb3Jkczwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmVcIj5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwic2VhcmNoVGVybVwiIChjaGFuZ2UpPVwib25TZWFyY2goKVwiXHJcbiAgICAgICAgICAgIHN0eWxlPVwicGFkZGluZy1sZWZ0OiAzcmVtOyBwYWRkaW5nLXJpZ2h0OiAzcmVtXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBuYW1lPVwic2VhcmNoXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2hcIiAvPlxyXG5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2VhcmNoLWljb25cIj5cclxuICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMThcIiB2aWV3Qm94PVwiMCAwIDE4IDE4XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiOFwiIGN5PVwiOFwiIHI9XCI2XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIC8+XHJcbiAgICAgICAgICAgICAgPGxpbmUgeDE9XCIxM1wiIHkxPVwiMTNcIiB4Mj1cIjE2XCIgeTI9XCIxNlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcblxyXG4gICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInNlYXJjaFRlcm1cIiB0eXBlPVwiYnV0dG9uXCIgYXJpYS1sYWJlbD1cIkNsZWFyXCIgKGNsaWNrKT1cInNlYXJjaFRlcm0gPSAnJzsgb25TZWFyY2goKVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiY2xlYXItc2VhcmNoXCI+XHJcbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCI2NHB4XCIgaGVpZ2h0PVwiNjRweFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICA8ZyBpZD1cIlNWR1JlcG9fYmdDYXJyaWVyXCIgc3Ryb2tlLXdpZHRoPVwiMFwiPjwvZz5cclxuICAgICAgICAgICAgICA8ZyBpZD1cIlNWR1JlcG9fdHJhY2VyQ2FycmllclwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvZz5cclxuICAgICAgICAgICAgICA8ZyBpZD1cIlNWR1JlcG9faWNvbkNhcnJpZXJcIj5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOSA5TDE1IDE1XCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj5cclxuICAgICAgICAgICAgICAgIDwvcGF0aD5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTUgOUw5IDE1XCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj5cclxuICAgICAgICAgICAgICAgIDwvcGF0aD5cclxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxMlwiIGN5PVwiMTJcIiByPVwiOVwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9jaXJjbGU+XHJcbiAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS0gRmlsdGVyIC0tPlxyXG4gICAgICAgIDxwbGFuby1maWx0ZXIgW2NsaWVudElkXT1cImNsaWVudElkXCIgKGFwcGx5RmlsdGVycyk9XCJhcHBseUZpbHRlcnMoJGV2ZW50KVwiXHJcbiAgICAgICAgICAocmVzZXRGaWx0ZXJzKT1cImFwcGx5RmlsdGVycygkZXZlbnQpXCI+PC9wbGFuby1maWx0ZXI+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uRXhwb3J0KClcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImJ0bi1vdXRsaW5lIGJ0biBhbGlnbi1pdGVtcy1lbmQgdGV4dC1ub3dyYXAgaW52aGVhZGVyIG1zLTRcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXBsYW5vZ3JhbXNMaXN0Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICA8IS0tIEV4cG9ydCBJY29uIC0tPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcclxuICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNMTcuNSAxMi41VjE1LjgzMzNDMTcuNSAxNi4yNzU0IDE3LjMyNDQgMTYuNjk5MyAxNy4wMTE4IDE3LjAxMThDMTYuNjk5MyAxNy4zMjQ0IDE2LjI3NTQgMTcuNSAxNS44MzMzIDE3LjVINC4xNjY2N0MzLjcyNDY0IDE3LjUgMy4zMDA3MiAxNy4zMjQ0IDIuOTg4MTYgMTcuMDExOEMyLjY3NTU5IDE2LjY5OTMgMi41IDE2LjI3NTQgMi41IDE1LjgzMzNWMTIuNU0xNC4xNjY3IDYuNjY2NjdMMTAgMi41TTEwIDIuNUw1LjgzMzMzIDYuNjY2NjdNMTAgMi41VjEyLjVcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTJcIj48L3NwYW4+IEV4cG9ydFxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJpc1BhZ2VMb2FkaW5nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbG9hZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1jb2x1bW5cIlxyXG4gICAgICAqbmdJZj1cIiFpc1BhZ2VMb2FkaW5nICYmIHBsYW5vZ3JhbXNMaXN0Lmxlbmd0aCA9PT0gMCAmJiAhcGxhbm9MaXN0XCI+XHJcbiAgICAgIDxpbWcgY2xhc3M9XCJpbWctc3JjXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvTm9kYXRhMS5zdmdcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhbWFpbnRleHQgbXQtM1wiPk5vIGRhdGEgZm91bmQ8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YXN1YnRleHRcIj5UaGVyZSBpcyBubyByZXN1bHQgZm9yIHBsYW5vZ3JhbSB0YWJsZTwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiXHJcbiAgICAgICpuZ0lmPVwiIWlzUGFnZUxvYWRpbmcgJiYgcGxhbm9ncmFtc0xpc3QubGVuZ3RoID09PSAwICYmIHBsYW5vTGlzdFwiPlxyXG4gICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjMwMlwiIGhlaWdodD1cIjE2MFwiIHZpZXdCb3g9XCIwIDAgMzAyIDE2MFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgPHBhdGggZD1cIk05Ny45MDIzIDU0LjA5NDJDODMuNjM4OSA1NC4wOTQyIDcyLjA3NjIgNjUuNjU3IDcyLjA3NjIgNzkuOTIwNEM3Mi4wNzYyIDg1LjgzNjMgNjguMDcyMiA5Mi41ODA2IDYyLjE1NjQgOTIuNTgwNkgzOS4zNTA2QzI1LjA4NzEgOTIuNTgwNiAxMy41MjM0IDEwNC4xNDMgMTMuNTIzNCAxMTguNDA3QzEzLjUyMzQgMTMyLjY3IDI1LjA4NzEgMTQ0LjIzMyAzOS4zNTA2IDE0NC4yMzNIMTc3LjQ0OUMxOTQuMzM5IDE0NC4yMzMgMjEwLjQxMiAxMzEuMDY3IDIyNy4zMDIgMTMxLjA2N0gyOTMuMzM3QzI5OC4wOTEgMTMxLjA2NyAzMDEuOTQ1IDEyNy4yMTMgMzAxLjk0NSAxMjIuNDU4QzMwMS45NDUgMTE3LjcwNCAyOTguMDkxIDExMy44NDkgMjkzLjMzNyAxMTMuODQ5SDIwNS43MTdDMjA0LjA3MiAxMTMuODQ5IDIwMi42OCAxMTIuNjI3IDIwMi4yMTIgMTExLjA1MUMyMDEuNDczIDEwOC41NjEgMjAzLjE3NCAxMDUuNzQ3IDIwNS43NzEgMTA1Ljc0N0gyMzYuMDAxQzI1MC4yNjQgMTA1Ljc0NyAyNjEuODI3IDk0LjE4MzggMjYxLjgyNyA3OS45MjA0QzI2MS44MjcgNjUuNjU3IDI1MC4yNjQgNTQuMDk0MyAyMzYuMDAxIDU0LjA5NDJIOTcuOTAyM1pcIiBmaWxsPVwiI0VBRUNGMFwiLz5cclxuICAgICAgICA8cmVjdCB3aWR0aD1cIjI0MC42OTRcIiBoZWlnaHQ9XCIxNi45OTU2XCIgcng9XCI4LjQ5NzhcIiB0cmFuc2Zvcm09XCJtYXRyaXgoLTEgMCAwIDEgMjQwLjY5NCA1NS45MzE1KVwiIGZpbGw9XCIjRUFFQ0YwXCIvPlxyXG4gICAgICAgIDxjaXJjbGUgY3g9XCI1LjQyMTQ3XCIgY3k9XCI1LjQyMTQ3XCIgcj1cIjUuNDIxNDdcIiB0cmFuc2Zvcm09XCJtYXRyaXgoLTEgMCAwIDEgNTAuMzkwNiAxMjAuMzU3KVwiIGZpbGw9XCIjNkJDQUZGXCIvPlxyXG4gICAgICAgIDxjaXJjbGUgY3g9XCIzLjI1Mjg4XCIgY3k9XCIzLjI1Mjg4XCIgcj1cIjMuMjUyODhcIiB0cmFuc2Zvcm09XCJtYXRyaXgoLTEgMCAwIDEgMjM5LjA1OCA3NS45MDA0KVwiIGZpbGw9XCIjMDBBM0ZGXCIvPlxyXG4gICAgICAgIDxjaXJjbGUgY3g9XCIzLjI1Mjg4XCIgY3k9XCIzLjI1Mjg4XCIgcj1cIjMuMjUyODhcIiB0cmFuc2Zvcm09XCJtYXRyaXgoLTEgMCAwIDEgMjA5Ljc4MSAyMC42MDE0KVwiIGZpbGw9XCIjMDBBM0ZGXCIvPlxyXG4gICAgICAgIDxjaXJjbGUgY3g9XCIyLjE2ODU5XCIgY3k9XCIyLjE2ODU5XCIgcj1cIjIuMTY4NTlcIiB0cmFuc2Zvcm09XCJtYXRyaXgoLTEgMCAwIDEgOTguMDk4NiAxNDUuMjk1KVwiIGZpbGw9XCIjMDBBM0ZGXCIvPlxyXG4gICAgICAgIDxyZWN0IHg9XCI2My4wODY5XCIgeT1cIjUxLjcxODdcIiB3aWR0aD1cIjE2Ni4wMTVcIiBoZWlnaHQ9XCI5Ni45NTI4XCIgcng9XCIxNC42MDkzXCIgZmlsbD1cIiM2QkNBRkZcIiBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMy45ODQzNlwiLz5cclxuICAgICAgICA8bWFzayBpZD1cInBhdGgtOC1pbnNpZGUtMV83NjlfMjk3NDBcIiBmaWxsPVwid2hpdGVcIj5cclxuICAgICAgICA8cGF0aCBkPVwiTTg3LjIxMTkgMjYuMDc0M0M4OC4xNTcxIDI2LjA3NDQgODkuMDgzIDI2LjE1NzEgODkuOTgyNCAyNi4zMTY1VjEyMy44NTlDODkuMDgzIDEyMy42OTkgODguMTU3MSAxMjMuNjE2IDg3LjIxMTkgMTIzLjYxNkg3Ni44NjgyQzY4LjE1NzkgMTIzLjYxNiA2MS4wOTY4IDEzMC42NzggNjEuMDk2NyAxMzkuMzg4VjQxLjg0NThDNjEuMDk2NyAzMy4xMzU1IDY4LjE1NzggMjYuMDc0MyA3Ni44NjgyIDI2LjA3NDNIODcuMjExOVpcIi8+XHJcbiAgICAgICAgPC9tYXNrPlxyXG4gICAgICAgIDxwYXRoIGQ9XCJNODcuMjExOSAyNi4wNzQzQzg4LjE1NzEgMjYuMDc0NCA4OS4wODMgMjYuMTU3MSA4OS45ODI0IDI2LjMxNjVWMTIzLjg1OUM4OS4wODMgMTIzLjY5OSA4OC4xNTcxIDEyMy42MTYgODcuMjExOSAxMjMuNjE2SDc2Ljg2ODJDNjguMTU3OSAxMjMuNjE2IDYxLjA5NjggMTMwLjY3OCA2MS4wOTY3IDEzOS4zODhWNDEuODQ1OEM2MS4wOTY3IDMzLjEzNTUgNjguMTU3OCAyNi4wNzQzIDc2Ljg2ODIgMjYuMDc0M0g4Ny4yMTE5WlwiIGZpbGw9XCIjNkJDQUZGXCIvPlxyXG4gICAgICAgIDxwYXRoIGQ9XCJNODcuMjExOSAyNi4wNzQzTDg3LjIxMiAyMi4wOUg4Ny4yMTE5VjI2LjA3NDNaTTg5Ljk4MjQgMjYuMzE2NUg5My45NjY4VjIyLjk3NjJMOTAuNjc3NyAyMi4zOTMzTDg5Ljk4MjQgMjYuMzE2NVpNODkuOTgyNCAxMjMuODU5TDg5LjI4NzIgMTI3Ljc4Mkw5My45NjY4IDEyOC42MTFWMTIzLjg1OUg4OS45ODI0Wk04Ny4yMTE5IDEyMy42MTZMODcuMjEyIDExOS42MzJIODcuMjExOVYxMjMuNjE2Wk02MS4wOTY3IDEzOS4zODhINTcuMTEyM0w2NS4wODEgMTM5LjM4OEw2MS4wOTY3IDEzOS4zODhaTTg3LjIxMTkgMjYuMDc0M0w4Ny4yMTE5IDMwLjA1ODdDODcuOTI0MSAzMC4wNTg3IDg4LjYxNzMgMzAuMTIxIDg5LjI4NzIgMzAuMjM5OEw4OS45ODI0IDI2LjMxNjVMOTAuNjc3NyAyMi4zOTMzQzg5LjU0ODcgMjIuMTkzMiA4OC4zOTAyIDIyLjA5IDg3LjIxMiAyMi4wOUw4Ny4yMTE5IDI2LjA3NDNaTTg5Ljk4MjQgMjYuMzE2NUg4NS45OTgxVjEyMy44NTlIODkuOTgyNEg5My45NjY4VjI2LjMxNjVIODkuOTgyNFpNODkuOTgyNCAxMjMuODU5TDkwLjY3NzcgMTE5LjkzNUM4OS41NDg3IDExOS43MzUgODguMzkwMiAxMTkuNjMyIDg3LjIxMiAxMTkuNjMyTDg3LjIxMTkgMTIzLjYxNkw4Ny4yMTE5IDEyNy42MDFDODcuOTI0IDEyNy42MDEgODguNjE3MyAxMjcuNjYzIDg5LjI4NzIgMTI3Ljc4Mkw4OS45ODI0IDEyMy44NTlaTTg3LjIxMTkgMTIzLjYxNlYxMTkuNjMySDc2Ljg2ODJWMTIzLjYxNlYxMjcuNjAxSDg3LjIxMTlWMTIzLjYxNlpNNzYuODY4MiAxMjMuNjE2VjExOS42MzJDNjUuOTU3NCAxMTkuNjMyIDU3LjExMjUgMTI4LjQ3NyA1Ny4xMTIzIDEzOS4zODhMNjEuMDk2NyAxMzkuMzg4TDY1LjA4MSAxMzkuMzg4QzY1LjA4MTEgMTMyLjg3OCA3MC4zNTg1IDEyNy42MDEgNzYuODY4MiAxMjcuNjAxVjEyMy42MTZaTTYxLjA5NjcgMTM5LjM4OEg2NS4wODFWNDEuODQ1OEg2MS4wOTY3SDU3LjExMjNWMTM5LjM4OEg2MS4wOTY3Wk02MS4wOTY3IDQxLjg0NThINjUuMDgxQzY1LjA4MSAzNS4zMzYgNzAuMzU4MyAzMC4wNTg3IDc2Ljg2ODIgMzAuMDU4N1YyNi4wNzQzVjIyLjA5QzY1Ljk1NzMgMjIuMDkgNTcuMTEyMyAzMC45MzUgNTcuMTEyMyA0MS44NDU4SDYxLjA5NjdaTTc2Ljg2ODIgMjYuMDc0M1YzMC4wNTg3SDg3LjIxMTlWMjYuMDc0M1YyMi4wOUg3Ni44NjgyVjI2LjA3NDNaXCIgZmlsbD1cIiMwMEEzRkZcIiBtYXNrPVwidXJsKCNwYXRoLTgtaW5zaWRlLTFfNzY5XzI5NzQwKVwiLz5cclxuICAgICAgICA8bGluZSB4MT1cIjcxLjA1NDdcIiB5MT1cIjQ5LjcyNjdcIiB4Mj1cIjcxLjA1NDdcIiB5Mj1cIjkxLjU2MjVcIiBzdHJva2U9XCIjOTlEQUZGXCIgc3Ryb2tlLXdpZHRoPVwiMy45ODQzNlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIi8+XHJcbiAgICAgICAgPHJlY3QgeD1cIjExNi4yMjlcIiB5PVwiMTA0LjY0MlwiIHdpZHRoPVwiNjMuMzg5XCIgaGVpZ2h0PVwiMzIuMTUzOFwiIHJ4PVwiNy4zNDk0NVwiIGZpbGw9XCIjOTlEQUZGXCIvPlxyXG4gICAgICAgIDxyZWN0IHg9XCIxMTYuMjI5XCIgeT1cIjY2Ljk3NjJcIiB3aWR0aD1cIjYzLjM4OVwiIGhlaWdodD1cIjMyLjE1MzhcIiByeD1cIjcuMzQ5NDVcIiBmaWxsPVwiIzk5REFGRlwiLz5cclxuICAgICAgICA8Y2lyY2xlIGN4PVwiMjEyLjI5OVwiIGN5PVwiNzcuMjUwNVwiIHI9XCIzLjI5NjYzXCIgZmlsbD1cIndoaXRlXCIvPlxyXG4gICAgICAgIDxjaXJjbGUgY3g9XCIxMDUuODhcIiBjeT1cIjYyLjI0MDdcIiByPVwiMi41MjYzN1wiIGZpbGw9XCIjOTlEQUZGXCIvPlxyXG4gICAgICAgIDxjaXJjbGUgY3g9XCI5My40NzgzXCIgY3k9XCIxMzIuMDZcIiByPVwiMy40NDUwNVwiIGZpbGw9XCJ3aGl0ZVwiLz5cclxuICAgICAgICA8cmVjdCB4PVwiMTE2LjIyOVwiIHk9XCIzNy41Nzg0XCIgd2lkdGg9XCI2My4zODlcIiBoZWlnaHQ9XCIyNC44MDQ0XCIgcng9XCI3LjM0OTQ1XCIgZmlsbD1cIiM5OURBRkZcIi8+XHJcbiAgICAgIDwvc3ZnPiAgICAgICAgICAgICAgXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGFtYWludGV4dCBtdC0zXCI+UGxhbm9ncmFtIFlldCB0byBQdWJsaXNoPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGFzdWJ0ZXh0XCI+PGEgaHJlZj1cIm1hbmFnZS9wbGFub2dyYW0vbWFuYWdlLXBsYW5vZ3JhbT9wbGFub0lkPXt7cGxhbm9MaXN0Py5bMF0/LnBsYW5vSWR9fSZmbG9vcklkPXt7cGxhbm9MaXN0Py5bMF0/Ll9pZH19XCI+e3twbGFub0xpc3Q/LlswXT8uc3RvcmVOYW1lfX08L2E+IGlzIHN0aWxsIHVuZGVyIHZlcmlmaWNhdGlvbjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBNYW5hZ2UgUGxhbm9ncmFtIGxpc3QgdmlldyAtLT5cclxuICAgIDxzZWN0aW9uIGlkPVwibGlzdC12aWV3XCIgKm5nSWY9XCIhaXNQYWdlTG9hZGluZyAmJiBwbGFub2dyYW1zTGlzdC5sZW5ndGggIT09IDBcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIj5cclxuICAgICAgICA8dGFibGUgY2xhc3M9XCJ3LTEwMCB0YWJsZSBib3R0b20tYm9yZGVyIHRleHQtbm93cmFwXCI+XHJcbiAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICA8dGg+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAoY2xpY2spPVwib25Tb3J0VGFibGUoJ3N0b3JlTmFtZScpXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICBQbGFub2dyYW0gbmFtZVxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIG1zLTEgbXQtMVwiIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBzb3J0ZWRDb2x1bW4gPT09ICdzdG9yZU5hbWUnID8gJyMwMDlCRjMnIDogJydcclxuICAgICAgICAgICAgICAgICAgICB9XCIgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzb3J0T3JkZXIgPT09IDEgJiYgc29ydGVkQ29sdW1uID09PSAnc3RvcmVOYW1lJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdmYS1hcnJvdy11cCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiAnZmEtYXJyb3ctZG93bidcclxuICAgICAgICAgICAgICAgICAgICBcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICA8dGg+XHJcbiAgICAgICAgICAgICAgICBDb3VudHJ5XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxzcGFuIChjbGljayk9XCJvblNvcnRUYWJsZSgnY291bnRyeScpXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIG1zLTEgbXQtMVwiIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBzb3J0ZWRDb2x1bW4gPT09ICdjb3VudHJ5JyA/ICcjMDA5QkYzJyA6ICcnXHJcbiAgICAgICAgICAgICAgICAgICAgfVwiIFtuZ0NsYXNzXT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc29ydE9yZGVyID09PSAxICYmIHNvcnRlZENvbHVtbiA9PT0gJ2NvdW50cnknXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ2ZhLWFycm93LXVwJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICdmYS1hcnJvdy1kb3duJ1xyXG4gICAgICAgICAgICAgICAgICAgIFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICA8dGg+XHJcbiAgICAgICAgICAgICAgICBSZWdpb25cclxuICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gKGNsaWNrKT1cIm9uU29ydFRhYmxlKCdjaXR5JylcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgbXMtMSBtdC0xXCIgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHNvcnRlZENvbHVtbiA9PT0gJ2NpdHknID8gJyMwMDlCRjMnIDogJydcclxuICAgICAgICAgICAgICAgICAgICB9XCIgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzb3J0T3JkZXIgPT09IDEgJiYgc29ydGVkQ29sdW1uID09PSAnY2l0eSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnZmEtYXJyb3ctdXAnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ2ZhLWFycm93LWRvd24nXHJcbiAgICAgICAgICAgICAgICAgICAgXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgIDx0aD5cclxuICAgICAgICAgICAgICAgIDxzcGFuIChjbGljayk9XCJvblNvcnRUYWJsZSgndXBkYXRlZEF0JylcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIExhc3QgdXBkYXRlXHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgbXMtMSBtdC0xXCIgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHNvcnRlZENvbHVtbiA9PT0gJ3VwZGF0ZWRBdCcgPyAnIzAwOUJGMycgOiAnJ1xyXG4gICAgICAgICAgICAgICAgICAgIH1cIiBbbmdDbGFzc109XCJcclxuICAgICAgICAgICAgICAgICAgICAgIHNvcnRPcmRlciA9PT0gMSAmJiBzb3J0ZWRDb2x1bW4gPT09ICd1cGRhdGVkQXQnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ2ZhLWFycm93LXVwJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICdmYS1hcnJvdy1kb3duJ1xyXG4gICAgICAgICAgICAgICAgICAgIFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgIDx0aD5cclxuICAgICAgICAgICAgICAgIDxzcGFuIChjbGljayk9XCJvblNvcnRUYWJsZSgnbWVyY2hDb21wbGlhbmNlJylcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIE1lcmNoIENvbXBsaWFuY2VcclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBtcy0xIG10LTFcIiBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogc29ydGVkQ29sdW1uID09PSAnbWVyY2hDb21wbGlhbmNlJyA/ICcjMDA5QkYzJyA6ICcnXHJcbiAgICAgICAgICAgICAgICAgICAgfVwiIFtuZ0NsYXNzXT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc29ydE9yZGVyID09PSAxICYmIHNvcnRlZENvbHVtbiA9PT0gJ21lcmNoQ29tcGxpYW5jZSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnZmEtYXJyb3ctdXAnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ2ZhLWFycm93LWRvd24nXHJcbiAgICAgICAgICAgICAgICAgICAgXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IHBsYW5vIG9mIHBsYW5vZ3JhbXNMaXN0XCI+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiWycvbWFuYWdlL3BsYW5vZ3JhbS9zdG9yZS1wbGFub2dyYW0nXVwiIFtxdWVyeVBhcmFtc109XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgcGxhbm9JZDogcGxhbm8ucGxhbm9JZCxcclxuICAgICAgICAgICAgICAgICAgICBmbG9vcklkOiBwbGFuby5faWQsXHJcbiAgICAgICAgICAgICAgICAgICAgc3RvcmVOYW1lOnBsYW5vLnN0b3JlTmFtZVxyXG4gICAgICAgICAgICAgICAgICB9XCIgY2xhc3M9XCJ0ZXh0LWRlY29yYXRpb24tdW5kZXJsaW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7cGxhbm8uc3RvcmVOYW1lfX0gPHNwYW4gKm5nSWY9XCJwbGFuby5tdWx0aXBsZUZsb29yXCI+KHt7cGxhbm8uZmxvb3JOYW1lIHwgdGl0bGVjYXNlfX0pPC9zcGFuPiAtIFBsYW5vXHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj57e3BsYW5vPy5zdG9yZUluZm8/LmNvdW50cnl9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt7cGxhbm8/LnN0b3JlSW5mbz8uY2l0eX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+e3twbGFuby51cGRhdGVkQXR9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt7cGxhbm8/Lm1lcmNoQ29tcGxpYW5jZSA/PyAwfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgPC90YWJsZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcblxyXG4gICAgPCEtLSBNYW5hZ2UgUGxhbm9ncmFtIGdyaWQgdmlldyAtLT5cclxuICAgIDwhLS0gPG5nLXRlbXBsYXRlICNncmlkVmlldz5cclxuICAgICAgPHNlY3Rpb24gaWQ9XCJncmlkLXZpZXdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGd4LTYgZ3ktNFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCIgKm5nRm9yPVwibGV0IGZpeHR1cmUgb2YgZml4dHVyZVRlbXBsYXRlc0xpc3RcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1pbWdcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWFjdGlvbiBkcm9wZG93blwiPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBweC00IHB5LTNcIiB0eXBlPVwiYnV0dG9uXCIgZGF0YS1icy10b2dnbGU9XCJkcm9wZG93blwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktdGhyZWUtZG90cy12ZXJ0aWNhbFwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImRyb3Bkb3duLW1lbnVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGk+PGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtIGN1cnNvci1wb2ludGVyXCI+RWRpdDwvYT48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaT48YSBjbGFzcz1cImRyb3Bkb3duLWl0ZW0gY3Vyc29yLXBvaW50ZXJcIj5EdXBsaWNhdGU8L2E+PC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8bGk+PGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtIGN1cnNvci1wb2ludGVyIHRleHQtZGFuZ2VyXCI+RGVsZXRlPC9hPjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGgzPnt7IGZpeHR1cmUubmFtZSB9fTwvaDM+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFkZ2VcIiBbbmdDbGFzc109XCJmaXh0dXJlLnN0YXR1c1wiPnt7IGZpeHR1cmUuc3RhdHVzIHwgdGl0bGVjYXNlIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgc3ViQnJhbmQgb2YgZml4dHVyZS5zdWJCcmFuZDsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImkgIT0gMFwiIGNsYXNzPVwibWUtMiBjYXJkLXRhZ2xpbmVcIj4mIzgyMjY7PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFkZ2VcIj57eyBzdWJCcmFuZCB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvc2VjdGlvbj5cclxuICAgIDwvbmctdGVtcGxhdGU+IC0tPlxyXG5cclxuICAgIDwhLS0gUGFnaW5hdGlvbiAtLT5cclxuICAgIDxsaWItcGFnaW5hdGlvbiBbaXRlbXNQZXJQYWdlXT1cImxpbWl0XCIgW2N1cnJlbnRQYWdlXT1cIm9mZnNldFwiIFt0b3RhbEl0ZW1zXT1cInRvdGFsSXRlbXNcIlxyXG4gICAgICBbcGFnaW5hdGlvblNpemVzXT1cInBhZ2luYXRpb25TaXplc1wiIFtwYWdlU2l6ZV09XCJwYWdpbmF0aW9uU2l6ZSgpXCIgKHBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAocGFnZVNpemVDaGFuZ2UpPVwib25QYWdlU2l6ZUNoYW5nZSgkZXZlbnQpXCIgKm5nSWY9XCIhaXNQYWdlTG9hZGluZyAmJiBwbGFub2dyYW1zTGlzdC5sZW5ndGggIT09IDBcIj5cclxuICAgIDwvbGliLXBhZ2luYXRpb24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { Component, Input } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "@ng-bootstrap/ng-bootstrap";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
4
5
|
export class DeleteConfirmationComponent {
|
|
5
6
|
activeModal;
|
|
6
7
|
title = 'Delete action';
|
|
7
8
|
description = 'Are you sure you want to delete this item?';
|
|
9
|
+
confirmLabel = 'Delete';
|
|
10
|
+
confirmClass = 'btn-danger';
|
|
8
11
|
constructor(activeModal) {
|
|
9
12
|
this.activeModal = activeModal;
|
|
10
13
|
}
|
|
@@ -15,14 +18,18 @@ export class DeleteConfirmationComponent {
|
|
|
15
18
|
this.activeModal.close('ok');
|
|
16
19
|
}
|
|
17
20
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DeleteConfirmationComponent, deps: [{ token: i1.NgbActiveModal }], target: i0.ɵɵFactoryTarget.Component });
|
|
18
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DeleteConfirmationComponent, selector: "app-delete-confirmation", inputs: { title: "title", description: "description" }, ngImport: i0, template: "<div class=\"modal-wrapper\">\r\n <div class=\"d-flex flex-start mb-5\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEF0C7\" />\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FFFAEB\" stroke-width=\"8\" />\r\n <path\r\n d=\"M27.9998 24.0002V28.0002M27.9998 32.0002H28.0098M26.2898 18.8602L17.8198 33.0002C17.6451 33.3026 17.5527 33.6455 17.5518 33.9947C17.5508 34.3439 17.6413 34.6873 17.8142 34.9907C17.9871 35.2941 18.2365 35.547 18.5375 35.7241C18.8385 35.9012 19.1806 35.9964 19.5298 36.0002H36.4698C36.819 35.9964 37.1611 35.9012 37.4621 35.7241C37.7631 35.547 38.0124 35.2941 38.1854 34.9907C38.3583 34.6873 38.4488 34.3439 38.4478 33.9947C38.4468 33.6455 38.3544 33.3026 38.1798 33.0002L29.7098 18.8602C29.5315 18.5663 29.2805 18.3233 28.981 18.1547C28.6814 17.9861 28.3435 17.8975 27.9998 17.8975C27.656 17.8975 27.3181 17.9861 27.0186 18.1547C26.7191 18.3233 26.468 18.5663 26.2898 18.8602Z\"\r\n stroke=\"#DC6803\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n\r\n <h3 class=\"mb-4\">{{ title }}</h3>\r\n\r\n <p>{{ description }}</p>\r\n\r\n <div class=\"modal-actions mt-5\">\r\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"onCancel()\">Cancel</button>\r\n <button type=\"button\" class=\"btn
|
|
21
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DeleteConfirmationComponent, selector: "app-delete-confirmation", inputs: { title: "title", description: "description", confirmLabel: "confirmLabel", confirmClass: "confirmClass" }, ngImport: i0, template: "<div class=\"modal-wrapper\">\r\n <div class=\"d-flex flex-start mb-5\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEF0C7\" />\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FFFAEB\" stroke-width=\"8\" />\r\n <path\r\n d=\"M27.9998 24.0002V28.0002M27.9998 32.0002H28.0098M26.2898 18.8602L17.8198 33.0002C17.6451 33.3026 17.5527 33.6455 17.5518 33.9947C17.5508 34.3439 17.6413 34.6873 17.8142 34.9907C17.9871 35.2941 18.2365 35.547 18.5375 35.7241C18.8385 35.9012 19.1806 35.9964 19.5298 36.0002H36.4698C36.819 35.9964 37.1611 35.9012 37.4621 35.7241C37.7631 35.547 38.0124 35.2941 38.1854 34.9907C38.3583 34.6873 38.4488 34.3439 38.4478 33.9947C38.4468 33.6455 38.3544 33.3026 38.1798 33.0002L29.7098 18.8602C29.5315 18.5663 29.2805 18.3233 28.981 18.1547C28.6814 17.9861 28.3435 17.8975 27.9998 17.8975C27.656 17.8975 27.3181 17.9861 27.0186 18.1547C26.7191 18.3233 26.468 18.5663 26.2898 18.8602Z\"\r\n stroke=\"#DC6803\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n\r\n <h3 class=\"mb-4\">{{ title }}</h3>\r\n\r\n <p>{{ description }}</p>\r\n\r\n <div class=\"modal-actions mt-5\">\r\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"onCancel()\">Cancel</button>\r\n <button type=\"button\" class=\"btn px-4\" [ngClass]=\"confirmClass\" (click)=\"onDelete()\">{{ confirmLabel }}</button>\r\n </div>\r\n</div>\r\n", styles: [".modal-wrapper{padding:24px}.modal-actions{display:flex;justify-content:end;gap:12px}::ng-deep .modal-content{border-radius:12px!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
19
22
|
}
|
|
20
23
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DeleteConfirmationComponent, decorators: [{
|
|
21
24
|
type: Component,
|
|
22
|
-
args: [{ selector: 'app-delete-confirmation', template: "<div class=\"modal-wrapper\">\r\n <div class=\"d-flex flex-start mb-5\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEF0C7\" />\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FFFAEB\" stroke-width=\"8\" />\r\n <path\r\n d=\"M27.9998 24.0002V28.0002M27.9998 32.0002H28.0098M26.2898 18.8602L17.8198 33.0002C17.6451 33.3026 17.5527 33.6455 17.5518 33.9947C17.5508 34.3439 17.6413 34.6873 17.8142 34.9907C17.9871 35.2941 18.2365 35.547 18.5375 35.7241C18.8385 35.9012 19.1806 35.9964 19.5298 36.0002H36.4698C36.819 35.9964 37.1611 35.9012 37.4621 35.7241C37.7631 35.547 38.0124 35.2941 38.1854 34.9907C38.3583 34.6873 38.4488 34.3439 38.4478 33.9947C38.4468 33.6455 38.3544 33.3026 38.1798 33.0002L29.7098 18.8602C29.5315 18.5663 29.2805 18.3233 28.981 18.1547C28.6814 17.9861 28.3435 17.8975 27.9998 17.8975C27.656 17.8975 27.3181 17.9861 27.0186 18.1547C26.7191 18.3233 26.468 18.5663 26.2898 18.8602Z\"\r\n stroke=\"#DC6803\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n\r\n <h3 class=\"mb-4\">{{ title }}</h3>\r\n\r\n <p>{{ description }}</p>\r\n\r\n <div class=\"modal-actions mt-5\">\r\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"onCancel()\">Cancel</button>\r\n <button type=\"button\" class=\"btn
|
|
25
|
+
args: [{ selector: 'app-delete-confirmation', template: "<div class=\"modal-wrapper\">\r\n <div class=\"d-flex flex-start mb-5\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEF0C7\" />\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FFFAEB\" stroke-width=\"8\" />\r\n <path\r\n d=\"M27.9998 24.0002V28.0002M27.9998 32.0002H28.0098M26.2898 18.8602L17.8198 33.0002C17.6451 33.3026 17.5527 33.6455 17.5518 33.9947C17.5508 34.3439 17.6413 34.6873 17.8142 34.9907C17.9871 35.2941 18.2365 35.547 18.5375 35.7241C18.8385 35.9012 19.1806 35.9964 19.5298 36.0002H36.4698C36.819 35.9964 37.1611 35.9012 37.4621 35.7241C37.7631 35.547 38.0124 35.2941 38.1854 34.9907C38.3583 34.6873 38.4488 34.3439 38.4478 33.9947C38.4468 33.6455 38.3544 33.3026 38.1798 33.0002L29.7098 18.8602C29.5315 18.5663 29.2805 18.3233 28.981 18.1547C28.6814 17.9861 28.3435 17.8975 27.9998 17.8975C27.656 17.8975 27.3181 17.9861 27.0186 18.1547C26.7191 18.3233 26.468 18.5663 26.2898 18.8602Z\"\r\n stroke=\"#DC6803\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n\r\n <h3 class=\"mb-4\">{{ title }}</h3>\r\n\r\n <p>{{ description }}</p>\r\n\r\n <div class=\"modal-actions mt-5\">\r\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"onCancel()\">Cancel</button>\r\n <button type=\"button\" class=\"btn px-4\" [ngClass]=\"confirmClass\" (click)=\"onDelete()\">{{ confirmLabel }}</button>\r\n </div>\r\n</div>\r\n", styles: [".modal-wrapper{padding:24px}.modal-actions{display:flex;justify-content:end;gap:12px}::ng-deep .modal-content{border-radius:12px!important}\n"] }]
|
|
23
26
|
}], ctorParameters: () => [{ type: i1.NgbActiveModal }], propDecorators: { title: [{
|
|
24
27
|
type: Input
|
|
25
28
|
}], description: [{
|
|
26
29
|
type: Input
|
|
30
|
+
}], confirmLabel: [{
|
|
31
|
+
type: Input
|
|
32
|
+
}], confirmClass: [{
|
|
33
|
+
type: Input
|
|
27
34
|
}] } });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLWNvbmZpcm1hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1zdG9yZS1idWlsZGVyL3NyYy9saWIvY29tcG9uZW50cy9wb3B1cHMvZGVsZXRlLWNvbmZpcm1hdGlvbi9kZWxldGUtY29uZmlybWF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXN0b3JlLWJ1aWxkZXIvc3JjL2xpYi9jb21wb25lbnRzL3BvcHVwcy9kZWxldGUtY29uZmlybWF0aW9uL2RlbGV0ZS1jb25maXJtYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFRakQsTUFBTSxPQUFPLDJCQUEyQjtJQU81QjtJQU5ELEtBQUssR0FBVyxlQUFlLENBQUM7SUFDaEMsV0FBVyxHQUFXLDRDQUE0QyxDQUFDO0lBQ25FLFlBQVksR0FBVyxRQUFRLENBQUM7SUFDaEMsWUFBWSxHQUFXLFlBQVksQ0FBQztJQUU3QyxZQUNVLFdBQTJCO1FBQTNCLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtJQUNqQyxDQUFDO0lBRUwsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO3dHQWhCVSwyQkFBMkI7NEZBQTNCLDJCQUEyQixtTENSeEMscW1EQXdCQTs7NEZEaEJhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSx5QkFBeUI7bUZBSzFCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiQWN0aXZlTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1kZWxldGUtY29uZmlybWF0aW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGVsZXRlLWNvbmZpcm1hdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2RlbGV0ZS1jb25maXJtYXRpb24uY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEZWxldGVDb25maXJtYXRpb25Db21wb25lbnQge1xyXG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSAnRGVsZXRlIGFjdGlvbic7XHJcbiAgQElucHV0KCkgZGVzY3JpcHRpb246IHN0cmluZyA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgaXRlbT8nO1xyXG4gIEBJbnB1dCgpIGNvbmZpcm1MYWJlbDogc3RyaW5nID0gJ0RlbGV0ZSc7XHJcbiAgQElucHV0KCkgY29uZmlybUNsYXNzOiBzdHJpbmcgPSAnYnRuLWRhbmdlcic7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhY3RpdmVNb2RhbDogTmdiQWN0aXZlTW9kYWwsXHJcbiAgKSB7IH1cclxuXHJcbiAgb25DYW5jZWwoKSB7XHJcbiAgICB0aGlzLmFjdGl2ZU1vZGFsLmRpc21pc3MoKTtcclxuICB9XHJcblxyXG4gIG9uRGVsZXRlKCkge1xyXG4gICAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSgnb2snKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtb2RhbC13cmFwcGVyXCI+XHJcbiAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXN0YXJ0IG1iLTVcIj5cclxuICAgIDxzdmcgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICA8cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCIgLz5cclxuICAgICAgPHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiIC8+XHJcbiAgICAgIDxwYXRoXHJcbiAgICAgICAgZD1cIk0yNy45OTk4IDI0LjAwMDJWMjguMDAwMk0yNy45OTk4IDMyLjAwMDJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MDJMMTcuODE5OCAzMy4wMDAyQzE3LjY0NTEgMzMuMzAyNiAxNy41NTI3IDMzLjY0NTUgMTcuNTUxOCAzMy45OTQ3QzE3LjU1MDggMzQuMzQzOSAxNy42NDEzIDM0LjY4NzMgMTcuODE0MiAzNC45OTA3QzE3Ljk4NzEgMzUuMjk0MSAxOC4yMzY1IDM1LjU0NyAxOC41Mzc1IDM1LjcyNDFDMTguODM4NSAzNS45MDEyIDE5LjE4MDYgMzUuOTk2NCAxOS41Mjk4IDM2LjAwMDJIMzYuNDY5OEMzNi44MTkgMzUuOTk2NCAzNy4xNjExIDM1LjkwMTIgMzcuNDYyMSAzNS43MjQxQzM3Ljc2MzEgMzUuNTQ3IDM4LjAxMjQgMzUuMjk0MSAzOC4xODU0IDM0Ljk5MDdDMzguMzU4MyAzNC42ODczIDM4LjQ0ODggMzQuMzQzOSAzOC40NDc4IDMzLjk5NDdDMzguNDQ2OCAzMy42NDU1IDM4LjM1NDQgMzMuMzAyNiAzOC4xNzk4IDMzLjAwMDJMMjkuNzA5OCAxOC44NjAyQzI5LjUzMTUgMTguNTY2MyAyOS4yODA1IDE4LjMyMzMgMjguOTgxIDE4LjE1NDdDMjguNjgxNCAxNy45ODYxIDI4LjM0MzUgMTcuODk3NSAyNy45OTk4IDE3Ljg5NzVDMjcuNjU2IDE3Ljg5NzUgMjcuMzE4MSAxNy45ODYxIDI3LjAxODYgMTguMTU0N0MyNi43MTkxIDE4LjMyMzMgMjYuNDY4IDE4LjU2NjMgMjYuMjg5OCAxOC44NjAyWlwiXHJcbiAgICAgICAgc3Ryb2tlPVwiI0RDNjgwM1wiXHJcbiAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAvPlxyXG4gICAgPC9zdmc+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxoMyBjbGFzcz1cIm1iLTRcIj57eyB0aXRsZSB9fTwvaDM+XHJcblxyXG4gIDxwPnt7IGRlc2NyaXB0aW9uIH19PC9wPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYWN0aW9ucyBtdC01XCI+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZVwiIChjbGljayk9XCJvbkNhbmNlbCgpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBweC00XCIgW25nQ2xhc3NdPVwiY29uZmlybUNsYXNzXCIgKGNsaWNrKT1cIm9uRGVsZXRlKClcIj57eyBjb25maXJtTGFiZWwgfX08L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|