tango-app-ui-ticket-user 3.0.32-dev → 3.0.34-dev
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/contact-details/contact-details.component.mjs +4 -4
- package/esm2022/lib/components/edge-cameraview/edge-cameraview.component.mjs +4 -4
- package/esm2022/lib/components/edgeapp-log/edgeapp-log.component.mjs +4 -4
- package/esm2022/lib/components/edit-details/edit-details.component.mjs +4 -4
- package/esm2022/lib/components/infratickets/infratickets.component.mjs +162 -83
- package/esm2022/lib/components/installation/installation.component.mjs +4 -4
- package/esm2022/lib/components/store-activity/store-activity.component.mjs +4 -4
- package/esm2022/lib/components/store-info/store-info.component.mjs +4 -4
- package/esm2022/lib/components/takeremote/takeremote.component.mjs +4 -4
- package/esm2022/lib/components/tango-ticket-users/tango-ticket-users.component.mjs +4 -4
- package/esm2022/lib/components/tickets/tickets.component.mjs +4 -4
- package/esm2022/lib/route-wrappers/edge-wrapper.module.mjs +5 -5
- package/esm2022/lib/services/data.service.mjs +4 -4
- package/esm2022/lib/services/excel.service.mjs +4 -4
- package/esm2022/lib/services/ticket-infra.service.mjs +4 -4
- package/esm2022/lib/tango-ticket-users-routing.module.mjs +5 -5
- package/esm2022/lib/tango-ticket-users.module.mjs +5 -5
- package/fesm2022/{tango-app-ui-ticket-user-edge-wrapper.module-DM8Er_Bd.mjs → tango-app-ui-ticket-user-edge-wrapper.module-CiSUiLpi.mjs} +5 -5
- package/fesm2022/{tango-app-ui-ticket-user-edge-wrapper.module-DM8Er_Bd.mjs.map → tango-app-ui-ticket-user-edge-wrapper.module-CiSUiLpi.mjs.map} +1 -1
- package/fesm2022/tango-app-ui-ticket-user.mjs +209 -130
- package/fesm2022/tango-app-ui-ticket-user.mjs.map +1 -1
- package/lib/components/infratickets/infratickets.component.d.ts +11 -8
- package/package.json +1 -1
|
@@ -518,10 +518,10 @@ export class TicketsComponent {
|
|
|
518
518
|
this.tooltipContent.open();
|
|
519
519
|
}
|
|
520
520
|
}
|
|
521
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
522
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: TicketsComponent, selector: "lib-tickets", host: { listeners: { "document:click": "onClick($event)" } }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }, { propertyName: "tooltipContent", first: true, predicate: ["tooltipContent"], descendants: true }], ngImport: i0, template: "<div class=\"mb-5 d-flex justify-content-between align-items-center\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"maincard-content bg-white px-3 py-2 me-3 cursor-pointer\" style=\"width: fit-content;\" (click)=\"PrevRoute()\"> <svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\">\r\n <path d=\"M12.8327 6.99935H1.16602M1.16602 6.99935L6.99935 12.8327M1.16602 6.99935L6.99935 1.16602\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></div>\r\n <span class=\"fw-bold store-label\"> {{storeId}}</span> <span *ngIf=\"storeAddress?.address\"\r\n class=\"fw-bold store-label\"> |\r\n {{storeAddress?.address}} </span>\r\n </div>\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <span class=\"badge badge-light-primary\"> {{activeTicketDetails?.count}} {{storeAddress?.status}}</span>\r\n <div class=\"position-relative ps-3\">\r\n <button type=\"button\" (click)=\"storeChange($event)\"\r\n class=\"btn btn-default w-100 btn-outline btn-outline-default rounded-3 text-nowrap border-val d-flex justify-content-between bg-white\">\r\n {{storeId ? storeId : storeAddress?.storeId}}\r\n <span class=\"ms-3\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </button>\r\n <div *ngIf=\"storeDropDown\" class=\"card py-1 z-1 w-200px position-absolute top-50px end-0 h-300px overflow-auto\">\r\n <ul *ngFor=\"let details of activeTicketDetails?.data\" class=\"list-unstyled\">\r\n <li [ngClass]=\"storeAddress?.storeId === details?.storeId ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-2\" (click)=\"getstoreAddress(details)\">\r\n {{details?.storeId}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"card mb-5 py-3 px-5\">\r\n <ul class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item\" (click)=\"SelectedTabs('ticket')\"><a [ngClass]=\"SelectedTab ==='ticket' ? 'active' :''\"\r\n class=\"nav-link fs-4 cursor-pointer no-border me-6 \">Ticket</a>\r\n </li>\r\n <li class=\"nav-item\" (click)=\"SelectedTabs('storeinfo')\">\r\n <a [ngClass]=\"SelectedTab ==='storeinfo' ? 'active' :''\" class=\"nav-link fs-4 cursor-pointer me-6\">Store\r\n Info</a>\r\n </li>\r\n </ul>\r\n</div>\r\n\r\n<div *ngIf=\"SelectedTab ==='ticket'\" class=\"card\">\r\n <div class=\"card-header border-0 pt-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <div class=\"d-flex\">\r\n <span class=\"card-label mb-2 ms-3 fw-semibold\">{{ticketId}}</span>\r\n <span *ngIf=\"InfraIssue\" class=\"badge badge-light-warning\">{{InfraIssue}}</span>\r\n </div>\r\n <span class=\"text-sub fw-bold mb-2 badge badge-light-default\"><svg class=\"me-3\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3877_96552)\">\r\n <path\r\n d=\"M8 1V3M4 1V3M1.5 5H10.5M2.5 2H9.5C10.0523 2 10.5 2.44772 10.5 3V10C10.5 10.5523 10.0523 11 9.5 11H2.5C1.94772 11 1.5 10.5523 1.5 10V3C1.5 2.44772 1.94772 2 2.5 2Z\"\r\n stroke=\"#667085\" stroke-width=\"1.1\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3877_96552\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg> Created Date:{{ ticketInfo?.createdAt|customDateFormat}}</span>\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <button *ngIf=\"(gs.userAccess | async)?.manage_tickets_isView\" type=\"button\" (click)=\"openContact()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3877_102203)\">\r\n <path\r\n d=\"M12.5415 4.16659C13.3555 4.32539 14.1035 4.72347 14.6899 5.30986C15.2763 5.89626 15.6744 6.64431 15.8332 7.45825M12.5415 0.833252C14.2326 1.02112 15.8095 1.7784 17.0134 2.98076C18.2173 4.18312 18.9765 5.75909 19.1665 7.44992M18.3332 14.0999V16.5999C18.3341 16.832 18.2866 17.0617 18.1936 17.2744C18.1006 17.487 17.9643 17.6779 17.7933 17.8348C17.6222 17.9917 17.4203 18.1112 17.2005 18.1855C16.9806 18.2599 16.7477 18.2875 16.5165 18.2666C13.9522 17.988 11.489 17.1117 9.32486 15.7083C7.31139 14.4288 5.60431 12.7217 4.32486 10.7083C2.91651 8.53426 2.04007 6.05908 1.76653 3.48325C1.7457 3.25281 1.77309 3.02055 1.84695 2.80127C1.9208 2.58199 2.03951 2.38049 2.1955 2.2096C2.3515 2.03871 2.54137 1.90218 2.75302 1.80869C2.96468 1.7152 3.19348 1.6668 3.42486 1.66659H5.92486C6.32928 1.6626 6.72136 1.80582 7.028 2.06953C7.33464 2.33324 7.53493 2.69946 7.59153 3.09992C7.69705 3.89997 7.89274 4.68552 8.17486 5.44159C8.28698 5.73986 8.31125 6.06401 8.24478 6.37565C8.17832 6.68729 8.02392 6.97334 7.79986 7.19992L6.74153 8.25825C7.92783 10.3445 9.65524 12.072 11.7415 13.2583L12.7999 12.1999C13.0264 11.9759 13.3125 11.8215 13.6241 11.755C13.9358 11.6885 14.2599 11.7128 14.5582 11.8249C15.3143 12.107 16.0998 12.3027 16.8999 12.4083C17.3047 12.4654 17.6744 12.6693 17.9386 12.9812C18.2029 13.2931 18.3433 13.6912 18.3332 14.0999Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3877_102203\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"ms-2\">Contact Details</span> </button>\r\n <button *ngIf=\"(gs.userAccess | async)?.manage_tickets_isView\" type=\"button\" (click)=\"openRemote()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><span>\r\n <img src=\"./assets/tango/Images/desktop.svg\">\r\n Connect Remotely</span> </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"card-body\">\r\n <div class=\"row\">\r\n <div class=\"col-sm-8\">\r\n <div\r\n *ngIf=\"ticketInfo?.ticketDetails.issueStatus ==='notidentified'&&(gs.userAccess | async)?.manage_tickets_isEdit&&ticketInfo?.status!=='closed'||ticketInfo?.ticketDetails.ticketType==='refreshticket'&&(gs.userAccess | async)?.manage_tickets_isEdit&&ticketInfo?.ticketDetails?.refreshTicketStatus==='notidentified'&&userType ==='client'\">\r\n <div class=\"openedissue d-flex justify-content-between align-items-center\" >\r\n <span class=\"profile-label fw-semibold\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\r\n fill=\"none\">\r\n <path\r\n d=\"M21 12C21 7.0293 16.9707 3 12 3C7.0293 3 3 7.0293 3 12C3 16.9707 7.0293 21 12 21\"\r\n fill=\"white\" />\r\n <path\r\n d=\"M12.9 3.04504C12.9 3.04504 15.6 6.60004 15.6 12L12.9 3.04504ZM11.1 20.955C11.1 20.955 8.4 17.4 8.4 12C8.4 6.60004 11.1 3.04504 11.1 3.04504M3.567 15.15H12H3.567ZM3.567 8.85004H20.433H3.567Z\"\r\n fill=\"white\" />\r\n <path\r\n d=\"M20.8911 17.3252C21.3357 17.5988 21.3078 18.2639 20.8506 18.3161L18.5403 18.578L17.5044 20.6588C17.2992 21.0719 16.6647 20.8694 16.5594 20.3582L15.4299 14.8538C15.3408 14.4218 15.7296 14.15 16.1049 14.3813L20.8911 17.3252Z\"\r\n fill=\"white\" />\r\n <path\r\n d=\"M20.25 12C20.25 12.4142 20.5858 12.75 21 12.75C21.4142 12.75 21.75 12.4142 21.75 12H20.25ZM12 21.75C12.4142 21.75 12.75 21.4142 12.75 21C12.75 20.5858 12.4142 20.25 12 20.25V21.75ZM13.4973 2.59142C13.2467 2.26156 12.7762 2.19725 12.4464 2.44778C12.1165 2.6983 12.0522 3.1688 12.3027 3.49866L13.4973 2.59142ZM14.85 12C14.85 12.4143 15.1858 12.75 15.6 12.75C16.0142 12.75 16.35 12.4143 16.35 12H14.85ZM10.5027 21.4087C10.7533 21.7385 11.2238 21.8028 11.5536 21.5523C11.8835 21.3018 11.9478 20.8313 11.6973 20.5014L10.5027 21.4087ZM11.6973 3.49866C11.9478 3.1688 11.8835 2.6983 11.5536 2.44778C11.2238 2.19725 10.7533 2.26156 10.5027 2.59142L11.6973 3.49866ZM3.567 14.4C3.15279 14.4 2.817 14.7358 2.817 15.15C2.817 15.5643 3.15279 15.9 3.567 15.9V14.4ZM12 15.9C12.4142 15.9 12.75 15.5643 12.75 15.15C12.75 14.7358 12.4142 14.4 12 14.4V15.9ZM3.567 8.10004C3.15279 8.10004 2.817 8.43583 2.817 8.85004C2.817 9.26426 3.15279 9.60004 3.567 9.60004V8.10004ZM20.433 9.60004C20.8472 9.60004 21.183 9.26426 21.183 8.85004C21.183 8.43583 20.8472 8.10004 20.433 8.10004V9.60004ZM20.8911 17.3252L21.2842 16.6865L21.284 16.6864L20.8911 17.3252ZM20.8506 18.3161L20.9351 19.0613L20.9357 19.0613L20.8506 18.3161ZM18.5403 18.578L18.4558 17.8328L18.0506 17.8787L17.8689 18.2438L18.5403 18.578ZM17.5044 20.6588L16.833 20.3246L16.8327 20.3252L17.5044 20.6588ZM16.5594 20.3582L15.8247 20.509L15.8248 20.5095L16.5594 20.3582ZM15.4299 14.8538L16.1646 14.703L16.1644 14.7023L15.4299 14.8538ZM16.1049 14.3813L15.7114 15.0198L15.712 15.0201L16.1049 14.3813ZM21.75 12C21.75 6.61509 17.3849 2.25 12 2.25V3.75C16.5565 3.75 20.25 7.44351 20.25 12H21.75ZM12 2.25C6.61509 2.25 2.25 6.61509 2.25 12H3.75C3.75 7.44351 7.44351 3.75 12 3.75V2.25ZM2.25 12C2.25 17.3849 6.61509 21.75 12 21.75V20.25C7.44351 20.25 3.75 16.5565 3.75 12H2.25ZM12.9 3.04504C12.3027 3.49866 12.3026 3.49846 12.3024 3.49828C12.3024 3.49823 12.3023 3.49806 12.3022 3.49797C12.3021 3.49779 12.302 3.49767 12.3019 3.4976C12.3018 3.49746 12.3019 3.49753 12.3021 3.49781C12.3025 3.49838 12.3036 3.4998 12.3053 3.50206C12.3086 3.50658 12.3144 3.51447 12.3225 3.52567C12.3387 3.54809 12.3641 3.58375 12.3973 3.63226C12.4638 3.72929 12.5616 3.87752 12.6805 4.07361C12.9183 4.46606 13.2393 5.04863 13.5614 5.79478C14.2061 7.28837 14.85 9.42526 14.85 12H16.35C16.35 9.17483 15.6439 6.83422 14.9386 5.20031C14.5857 4.38271 14.2317 3.73902 13.9633 3.29616C13.829 3.0746 13.7159 2.90291 13.6347 2.78443C13.5941 2.72518 13.5615 2.6792 13.5381 2.6469C13.5265 2.63075 13.5171 2.61802 13.5102 2.60876C13.5068 2.60413 13.504 2.60036 13.5018 2.59747C13.5007 2.59602 13.4998 2.5948 13.4991 2.59379C13.4987 2.59329 13.4983 2.59284 13.498 2.59244C13.4979 2.59224 13.4977 2.59199 13.4976 2.59189C13.4974 2.59165 13.4973 2.59142 12.9 3.04504ZM11.1 20.955C11.6973 20.5014 11.6974 20.5016 11.6976 20.5018C11.6976 20.5019 11.6977 20.502 11.6978 20.5021C11.6979 20.5023 11.698 20.5024 11.6981 20.5025C11.6982 20.5026 11.6981 20.5026 11.6979 20.5023C11.6975 20.5017 11.6964 20.5003 11.6948 20.498C11.6914 20.4935 11.6856 20.4856 11.6775 20.4744C11.6613 20.452 11.6359 20.4163 11.6027 20.3678C11.5362 20.2708 11.4384 20.1226 11.3195 19.9265C11.0817 19.534 10.7607 18.9515 10.4386 18.2053C9.79388 16.7117 9.15 14.5748 9.15 12H7.65C7.65 14.8253 8.35613 17.1659 9.06142 18.7998C9.41434 19.6174 9.76833 20.2611 10.0367 20.7039C10.171 20.9255 10.2841 21.0972 10.3653 21.2157C10.4059 21.2749 10.4385 21.3209 10.4619 21.3532C10.4735 21.3693 10.4829 21.3821 10.4898 21.3913C10.4932 21.396 10.496 21.3997 10.4982 21.4026C10.4993 21.4041 10.5002 21.4053 10.5009 21.4063C10.5013 21.4068 10.5017 21.4073 10.502 21.4076C10.5021 21.4078 10.5023 21.4081 10.5024 21.4082C10.5026 21.4084 10.5027 21.4087 11.1 20.955ZM9.15 12C9.15 9.42526 9.79388 7.28837 10.4386 5.79478C10.7607 5.04863 11.0817 4.46606 11.3195 4.07361C11.4384 3.87752 11.5362 3.72929 11.6027 3.63226C11.6359 3.58375 11.6613 3.54809 11.6775 3.52567C11.6856 3.51447 11.6914 3.50658 11.6948 3.50206C11.6964 3.4998 11.6975 3.49838 11.6979 3.49781C11.6981 3.49753 11.6982 3.49746 11.6981 3.4976C11.698 3.49767 11.6979 3.49779 11.6978 3.49797C11.6977 3.49806 11.6976 3.49823 11.6976 3.49828C11.6974 3.49846 11.6973 3.49866 11.1 3.04504C10.5027 2.59142 10.5026 2.59165 10.5024 2.59189C10.5023 2.59199 10.5021 2.59224 10.502 2.59244C10.5017 2.59284 10.5013 2.59329 10.5009 2.59379C10.5002 2.5948 10.4993 2.59602 10.4982 2.59747C10.496 2.60036 10.4932 2.60413 10.4898 2.60876C10.4829 2.61802 10.4735 2.63075 10.4619 2.6469C10.4385 2.6792 10.4059 2.72518 10.3653 2.78443C10.2841 2.90291 10.171 3.0746 10.0367 3.29616C9.76833 3.73902 9.41434 4.38271 9.06142 5.20031C8.35613 6.83422 7.65 9.17483 7.65 12H9.15ZM3.567 15.9H12V14.4H3.567V15.9ZM3.567 9.60004H20.433V8.10004H3.567V9.60004ZM20.498 17.9639C20.4792 17.9524 20.4575 17.9252 20.4597 17.8727C20.4609 17.8434 20.4715 17.7772 20.5297 17.7054C20.5961 17.6235 20.6889 17.5797 20.7655 17.5709L20.9357 19.0613C21.6167 18.9835 21.9384 18.4179 21.9584 17.9346C21.9776 17.4682 21.7476 16.9717 21.2842 16.6865L20.498 17.9639ZM20.7661 17.5709L18.4558 17.8328L18.6248 19.3232L20.9351 19.0613L20.7661 17.5709ZM17.8689 18.2438L16.833 20.3246L18.1758 20.9931L19.2117 18.9123L17.8689 18.2438ZM16.8327 20.3252C16.8668 20.2565 16.9395 20.1839 17.0398 20.1492C17.1277 20.1188 17.194 20.1316 17.2221 20.1405C17.272 20.1564 17.2896 20.1857 17.294 20.2069L15.8248 20.5095C15.9345 21.0419 16.322 21.4281 16.7668 21.5697C17.2286 21.7168 17.8707 21.6073 18.1761 20.9925L16.8327 20.3252ZM17.2941 20.2074L16.1646 14.703L14.6952 15.0046L15.8247 20.509L17.2941 20.2074ZM16.1644 14.7023C16.1723 14.7406 16.1666 14.883 16.0232 14.9833C15.88 15.0835 15.7446 15.0402 15.7114 15.0198L16.4984 13.7428C16.0899 13.4911 15.5724 13.468 15.1633 13.7543C14.754 14.0407 14.5984 14.535 14.6954 15.0053L16.1644 14.7023ZM15.712 15.0201L20.4982 17.964L21.284 16.6864L16.4978 13.7425L15.712 15.0201Z\"\r\n fill=\"#475467\" />\r\n </svg> {{selectedIssue}}\r\n </span>\r\n <!-- (click)=\"chooseanissue('')\" -->\r\n <div class=\"position-relative\">\r\n <div (click)=\"openDropdown($event)\"\r\n class=\"maincard-content cursor-pointer bg-white px-3 py-2\"> <svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#344054\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg> </div>\r\n <div *ngIf=\"dropDown\" class=\"card py-1 w-200px position-absolute top-50px end-0\">\r\n <ul *ngFor=\"let item of dropdownItems\" class=\"list-unstyled\">\r\n <li [ngClass]=\"this.selectedIssue === item ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-3\"\r\n (click)=\"selectItem(item)\">\r\n {{item}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div\r\n *ngIf=\"selectedIssue === 'Internet Issues'||selectedIssue === 'Camera Issues'&&showcamIssue||selectedIssue === 'System Issues' \">\r\n <div class=\"maincard-content w-100 mt-2 px-4 py-2 pb-4 mb-5\">\r\n <div class=\"maincard-label fw-semibold py-2\" *ngIf=\"secondaryIssues?.length>0\"> Please\r\n select the\r\n relevant problem facing from the following </div>\r\n <div *ngFor=\"let issue of secondaryIssues; let index = index\"\r\n class=\"maincard-content d-flex justify-content-between align-items-center w-100 mt-2 px-4 py-4 cursor-pointer \"\r\n (click)=\"toggleCheckbox(index)\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <span><img class=\"pe-3\" src='./assets/tango/Images/Featured icon.png'></span>\r\n <span class=\"headingtext\">{{issue?.name}}</span>\r\n <span class=\"w-300px\" [ngbTooltip]=\"tooltipContent\" triggers=\"mouseenter:mouseleave\"\r\n placement=\"left\">\r\n <svg class=\"ms-3\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1826_44871)\">\r\n <path\r\n d=\"M8.00065 10.6673V8.00065M8.00065 5.33398H8.00732M14.6673 8.00065C14.6673 11.6826 11.6826 14.6673 8.00065 14.6673C4.31875 14.6673 1.33398 11.6826 1.33398 8.00065C1.33398 4.31875 4.31875 1.33398 8.00065 1.33398C11.6826 1.33398 14.6673 4.31875 14.6673 8.00065Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1826_44871\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n\r\n <!-- Define tooltip content -->\r\n <ng-template #tooltipContent>\r\n <div class=\"custom-tooltip-content tooltip-content w-100\">\r\n <ul>\r\n <li class=\"w-100\" *ngFor=\"let tooltipItem of issue?.toolTips\">{{\r\n tooltipItem?.name }}</li>\r\n </ul>\r\n </div>\r\n </ng-template>\r\n\r\n <div class=\"roundedcheck d-flex align-items-center\">\r\n <input type=\"checkbox\" [checked]=\"issue.checked\" class=\"p-0\">\r\n </div>\r\n </div>\r\n <div class=\"form-group pt-6\" *ngIf=\"(gs.userAccess | async)?.manage_tickets_isEdit\">\r\n <label for=\"hiberntion\" class=\" maincard-label fw-semibold mb-2\">Hibernation (in days)\r\n *</label>\r\n <div class=\" w-250px position-relative\">\r\n <div class=\"position-absolute translate-middle-y top-50 me-5 ps-3 ticketDays\">\r\n <span class=\"svg-icon toggle-off svg-icon-1\" [ngClass]=\"count === 0 ? 'pe-none' : ''\" (click)=\"decreseCount()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M4.66602 10H16.3327\" stroke=\"#344054\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <input type=\"text\" class=\"form-control\" id=\"hiberntion\" [(ngModel)]=\"Hibernation\"\r\n style=\"text-align: center;\" value=\"{{count}}\" placeholder=\"0\" readOnly />\r\n <div class=\"position-absolute translate-middle-y top-50 end-0 me-3\">\r\n <span class=\"svg-icon toggle-on svg-icon-1 ticketDays\"\r\n (click)=\"increaseCount()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M10.4993 4.1665V15.8332M4.66602 9.99984H16.3327\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"selectedIssue === 'Others'\">\r\n <div class=\"maincard-content w-100 mt-2 px-4 py-2 pb-4 mb-5\">\r\n <div class=\"maincard-label fw-semibold py-2\">Please select the relevant problem facing from\r\n the\r\n following</div>\r\n <div *ngFor=\"let others of othersIssue; let i = index\"\r\n class=\"maincard-content d-flex justify-content-between align-items-center w-100 mt-2 px-4 py-4 cursor-pointer\"\r\n (click)=\"toggleRadiobox(others)\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <span><img class=\"pe-3\" src='./assets/tango/Images/Featured icon.png'></span>\r\n <span class=\"headingtext\">{{others.name}}</span>\r\n <span><svg class=\"ms-3\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1826_44871)\">\r\n <path\r\n d=\"M8.00065 10.6673V8.00065M8.00065 5.33398H8.00732M14.6673 8.00065C14.6673 11.6826 11.6826 14.6673 8.00065 14.6673C4.31875 14.6673 1.33398 11.6826 1.33398 8.00065C1.33398 4.31875 4.31875 1.33398 8.00065 1.33398C11.6826 1.33398 14.6673 4.31875 14.6673 8.00065Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1826_44871\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </div>\r\n <div class=\"roundedcheck d-flex align-items-center\">\r\n <input type=\"radio\" name=\"radioGroup{{i}}\" [value]=\"others.name\"\r\n [(ngModel)]=\"selectedOption\" class=\"p-0\">\r\n </div>\r\n </div>\r\n <div class=\"form-group pt-6\">\r\n <label for=\"hiberntion\" class=\" maincard-label fw-semibold mb-2\">Hibernation (in days)\r\n *</label>\r\n <div class=\" w-250px position-relative\">\r\n <div class=\"position-absolute translate-middle-y top-50 me-5 ps-3 ticketDays\">\r\n <span class=\"svg-icon toggle-off svg-icon-1\" [ngClass]=\"count === 0 ? 'pe-none' : ''\" (click)=\"decreseCount()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M4.66602 10H16.3327\" stroke=\"#344054\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <input type=\"text\" class=\"form-control\" id=\"hiberntion\" [(ngModel)]=\"Hibernation\"\r\n style=\"text-align: center;\" value=\"{{count}}\" placeholder=\"0\" readOnly />\r\n <div class=\"position-absolute translate-middle-y top-50 end-0 me-3\">\r\n <span class=\"svg-icon toggle-on svg-icon-1 ticketDays\"\r\n (click)=\"increaseCount()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M10.4993 4.1665V15.8332M4.66602 9.99984H16.3327\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div>\r\n <div class=\"maincard-content w-100 mt-2 px-4 py-2 pb-4\" *ngIf=\"selectedIssue === 'Camera Issues'&&!showcamIssue&&cameraListImages.length>0\">\r\n <div class=\"maincard-label fw-semibold py-2 mb-5\">\r\n Please make sure all of your surveillance cameras are functioning and verify the footage you have. </div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-6\" *ngFor=\"let item of cameraListImages;let i = index\">\r\n <span class=\"camera fw-bold\">{{item?.cameraName ? item?.cameraName:\"--\"}}</span><span class=\"camera fw-bold\"> Camera 1</span>\r\n <div\r\n class=\"rounded-2 w-100 mh-350px overflow-hidden mt-2\">\r\n <img class=\"w-100\" *ngIf=\"item?.thumbnailImage !== null && item?.thumbnailImage !== ''\" [src]=\"item?.thumbnailImage\">\r\n <!-- <img class=\"w-100\" src='https://images.unsplash.com/photo-1441986300917-64674bd600d8?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxzZWFyY2h8Mnx8c3RvcmV8ZW58MHx8MHx8fDA%3D'> -->\r\n <div *ngIf=\"item?.thumbnailImage === null || item?.thumbnailImage === ''\" class=\"w-100 h-300px rounded-2 overflow-hidden Nopreview align-content-center\">\r\n <div class=\"previewTitle text-center mb-5\">\r\n Preview not available {{item?.thumbnailImage}}\r\n </div>\r\n <div class=\"previewsubTitle fw-semibold\">\r\n The selected camera is not available at the moment.\r\n </div>\r\n </div> \r\n </div>\r\n <div class=\"d-flex justify-content-between mt-5 mb-5\">\r\n <button (click)=\"cameraSelection(i,'working')\" type=\"button\"\r\n class=\"btn btn-default btn-outline w-50 me-2\"\r\n [ngClass]=\"item.cameraNumber==='working'?'text-primary bg-light-primary':''\">\r\n Working\r\n </button>\r\n <button (click)=\"cameraSelection(i,'notworking')\" type=\"button\"\r\n class=\"btn btn-default btn-outline w-50 ms-2\"\r\n [ngClass]=\"item.cameraNumber==='notworking'?'text-danger bg-light-danger':''\">\r\n Not Working\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <button *ngIf=\"!showcamIssue\" class=\"btn btn-primary w-100 mt-6\"\r\n (click)=\"updateCamStatus()\">Proceed</button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"ticketInfo?.ticketDetails?.issueStatus ==='identified'||ticketInfo?.status === 'closed'||ticketInfo?.ticketDetails.ticketType === 'refreshticket'\">\r\n <div *ngFor=\"let obj of viewTicketData;let i=index\">\r\n\r\n <!-- Horizontal line with day -->\r\n\r\n <!-- <div class=\"d-flex align-items-center justify-content-between\">\r\n <div class=\"border border-1 border-gray p-0 w-100 me-3\"></div>\r\n <span class=\"text-day fw-bold-400\">Today</span>\r\n <div class=\"border border-1 border-gray p-0 w-100 ms-3\"></div>\r\n </div> -->\r\n\r\n <!-- User code start -->\r\n <div *ngIf=\"obj.actionBy === 'User'\" class=\"d-flex ms-5 mb-5\">\r\n <div *ngIf=\"obj.actionType !=='statusChange'\"\r\n class=\"d-flex flex-column justify-content-center align-items-center pe-3\">\r\n <div class=\"d-flex align-items-centre justify-content-centre\">\r\n <img class=\"msgprofile\"\r\n src=\"./assets/tango/Images/userProfile.svg\">\r\n </div>\r\n <div class=\"p-0 h-100 mt-3 border border-1 border-gray\" style=\"width:0px\"></div>\r\n </div>\r\n\r\n <div class=\"mt-2\" *ngIf=\"obj.actionType === 'statusChange'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400\">Updated the status</span><span\r\n class=\"timingtext fw-semibold text-primary\">Open -> Inprogress</span>\r\n </div>\r\n <div class=\"py-3 w-100 pt-0\">\r\n <div *ngIf=\"obj.actionType !=='statusChange'\">\r\n <div class=\"d-flex\">\r\n <span class=\"headingtext fw-semibold text-uppercase\">{{obj?.IdentifiedBy?obj?.IdentifiedBy:\"Tango\"}}</span>\r\n <span class=\"timingtext px-3 pt-1 fw-bold-400\">{{obj?.timeStamp}}</span>\r\n </div>\r\n <span class=\"profile-label font-bold-400\">User has replied</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType === 'statusCheckReply'\">\r\n <div class=\"textupdates fw-bold-400 mt-3\">Issue has been <b><span\r\n *ngIf=\"obj.statusCheckReply==='No'\">not</span> resolved.</b>\r\n\r\n </div>\r\n <div class=\"textupdates fw-bold-400\" *ngIf=\"obj.statusCheckReply==='No'\"> It takes\r\n {{obj?.hibernationDays}} more days to resolve.</div>\r\n </div>\r\n <div class=\"mt-2\" *ngIf=\"obj.actionType === 'comment'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400 text-wrap\">{{obj?.comment}}</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType ==='issueUpdate'\">\r\n \r\n <div *ngFor=\"let res of obj?.reasons\">\r\n \r\n <div class=\"textupdates fw-bold-400 mt-3\">\r\n We're currently encountering an <span\r\n class=\"fw-bold-700\">{{res.primaryIssue}}</span>\r\n </div>\r\n <div *ngIf=\"res.primaryIssue ==='Camera Issues'\">\r\n <div *ngIf=\"notworkingCamaralist && notworkingCamaralist?.length\" class=\"row\">\r\n <div *ngFor=\"let item of notworkingCamaralist\" class=\"col-sm-3 my-5\">\r\n <div class=\"rounded-3 overflow-hidden mt-2\">\r\n <span class=\"camera fw-bold\">{{item.cameraName}}</span>\r\n <img [src]=\"item?.thumbnailImage\" style=\"height:180px\">\r\n </div>\r\n </div>\r\n <div class=\"textupdates fw-bold-400 mt-3 me-2\">The above camera streaming are not working due\r\n <span class=\"textupdates fw-bold-700 mt-3\" *ngFor=\"let issue of res?.secondaryIssue; let last = last\">{{issue?.name}} <ng-container *ngIf=\"!last\"> ,</ng-container></span> to the Camera</div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"res?.secondaryIssue && res?.secondaryIssue?.length\" class=\"mt-3\">\r\n <div class=\"investigation fw-bold-400 mb-3\">The following are the relevant\r\n problem\r\n facing</div>\r\n <div class=\"mb-5\"> \r\n <ul class=\"timingtext fw-bold-400 mb-0\"\r\n *ngFor=\"let secIssues of res?.secondaryIssue\">\r\n <li>{{secIssues.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400\">{{obj?.comment}}</span>\r\n </div>\r\n\r\n <div *ngIf=\"selectedIssue === ''\" class=\"profile-label fw-semibold mt-2\">\r\n Kindly choose the option below that corresponds to the issue you are experiencing in\r\n the\r\n store.\r\n </div>\r\n </div>\r\n </div>\r\n <!-- User code end -->\r\n <!-- Tango code start -->\r\n <div *ngIf=\"obj.actionBy === 'Tango' || obj.actionBy === 'automated'\" class=\"d-flex mb-5 ms-5\">\r\n <div class=\"d-flex flex-column justify-content-center align-items-center pe-3\">\r\n <div class=\"d-flex align-items-centre justify-content-centre\">\r\n <div class=\"symbol symbol-48px symbol-circle\" *ngIf=\"obj?.IdentifiedBy&&obj?.IdentifiedBy!==''&&obj?.IdentifiedBy!=='Tango'\">\r\n <span class=\"symbol-label badge-light-primary text-symbol\">\r\n <span class=\"text-primary fs-4 badge badge-light-primary fw-normal\">\r\n {{obj?.IdentifiedBy?.slice(0,2) | uppercase }}\r\n </span>\r\n </span>\r\n </div>\r\n <img *ngIf=\"!obj?.IdentifiedBy||obj?.IdentifiedBy===''||obj?.IdentifiedBy==='Tango'\" class=\"msgprofile\" src=\"./assets/tango/Images/tangoprofile.png\">\r\n </div>\r\n <div class=\"p-0 h-100 mt-3 border border-1 border-gray verticalLine\"></div>\r\n </div>\r\n <div class=\"py-3 pt-0\">\r\n <div class=\"d-flex\">\r\n <span class=\"headingtext fw-semibold text-capitalize\">{{obj?.IdentifiedBy?obj?.IdentifiedBy:\"Tango\"}}</span>\r\n <span class=\"timingtext fw-bold-400 px-3 pt-1\">{{obj?.timeStamp}}</span>\r\n </div>\r\n <div class=\"mb-3\">\r\n <span class=\"profile-label fw-bold-400\">tango has replied to the\r\n issue</span>\r\n <div class=\"mt-2\" *ngIf=\"obj.actionType === 'statusChange'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400\">Updated the status</span><span\r\n class=\"timingtext fw-semibold text-primary\">Open -> Inprogress</span>\r\n </div>\r\n <div class=\"mt-2\" *ngIf=\"obj.actionType === 'comment'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400 text-wrap\">{{obj?.comment}}</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType === 'dataRecived'\">\r\n <div class=\"textupdates fw-bold-400 mt-3\">Thank you for your assistance. We have\r\n received the data from your Store.\r\n </div>\r\n </div>\r\n <div *ngIf=\"obj.actionType === 'statusCheckMonitor'\">\r\n <div class=\"textupdates fw-bold-400 mt-3\">Thank you for the update. We\u2019ll get\r\n back after the buffer time you provided.\r\n </div>\r\n </div>\r\n <div *ngIf=\"obj.actionType ==='stepsToResolve'\" class=\"mt-3\">\r\n <span class=\"textupdates fw-bold-400\">Please follow the below steps to resolve\r\n the above issue</span>\r\n <div *ngFor=\"let res of obj?.reasons\">\r\n <div class=\"mt-5 mb-5\">\r\n <div class=\"headingtext fw-semibold mb-1\">{{res.primaryIssue}}</div>\r\n <ul class=\"timingtext fw-bold-400 mb-0\"\r\n *ngFor=\"let secIssues of res?.secondaryIssue\">\r\n <li>{{secIssues.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"obj.actionType ==='issueUpdate'\">\r\n <div *ngFor=\"let res of obj?.reasons\">\r\n <div class=\"textupdates fw-bold-400 mt-3\">\r\n We're currently encountering an <span\r\n class=\"fw-bold-700\">{{res.primaryIssue}}</span>\r\n </div>\r\n <div *ngIf=\"res.primaryIssue ==='Camera Issues'\">\r\n <div class=\"row my-5\">\r\n <div *ngFor=\"let item of notworkingCamaralist\" class=\"col-sm-3\">\r\n <div class=\"rounded-3 overflow-hidden mt-2\">\r\n <span class=\"camera fw-bold\">{{item.cameraName}}</span>\r\n <img [src]=\"item?.thumbnailImage\" style=\"height:180px\">\r\n </div>\r\n </div>\r\n </div>\r\n <span class=\"textupdates fw-bold-400 mt-3 me-2\">The above camera streaming are not working due</span>\r\n <span class=\"textupdates fw-bold-700 mt-3\" *ngFor=\"let issue of res?.secondaryIssue; let last = last\">{{issue?.name}} <ng-container *ngIf=\"!last\"> ,</ng-container></span> <span class=\"textupdates fw-bold-400 mt-3\">to the Camera</span>\r\n \r\n </div>\r\n <div class=\"mt-3\">\r\n <div class=\"investigation fw-bold-400 mb-3\">The following are the relevant\r\n problem\r\n facing</div>\r\n <div class=\"mb-5\"> \r\n <ul class=\"timingtext fw-bold-400 mb-0\"\r\n *ngFor=\"let secIssues of res?.secondaryIssue\">\r\n <li>{{secIssues.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400 text-wrap\">{{obj?.comment}}</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType === 'statusCheckReply'\">\r\n <div class=\"textupdates fw-bold-400 mt-3\">Issue has been <b><span\r\n *ngIf=\"obj.statusCheckReply==='No'\">not</span> resolved.</b>\r\n\r\n </div>\r\n <div class=\"textupdates fw-bold-400\" *ngIf=\"obj.statusCheckReply==='No'\"> It\r\n takes {{obj?.hibernationDays}} more days to resolve.</div>\r\n </div>\r\n </div>\r\n <!-- defaultInfra start -->\r\n <div *ngIf=\"obj.actionType ==='defaultInfra'\" class=\"contenttext fw-bold-400\">We have\r\n not\r\n received data from your store. We are currently investigating the issue</div>\r\n <!-- defaultInfra end -->\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n <!-- Tango code end -->\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"loading\">\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 \r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src\" width=\"200px\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div> \r\n </div>\r\n </div>\r\n </ng-container>\r\n <div *ngIf=\"showSubmit && (gs.userAccess | async)?.manage_tickets_isEdit\" class=\"d-flex justify-content-between align-items-center mt-10\">\r\n <input class=\"form-control\" [(ngModel)]=\"comments\" (click)=\"addComment()\" type=\"text\"\r\n placeholder=\"Add your comments..\">\r\n\r\n <input type=\"file\" #fileInput style=\"display: none;\" accept=\"image/*\" multiple (change)=\"onFileSelected($event)\">\r\n <button [disabled]=\"ticketInfo?.status === 'closed'\" (click)=\"openFileInput()\" class=\"cursor-pointer btn btn-default btn-outline ms-3\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.8666 9.20835L10.2082 16.8667C9.27005 17.8049 7.99757 18.332 6.67075 18.332C5.34393 18.332 4.07145 17.8049 3.13325 16.8667C2.19505 15.9285 1.66797 14.656 1.66797 13.3292C1.66797 12.0024 2.19505 10.7299 3.13325 9.79168L10.7916 2.13335C11.4171 1.50788 12.2654 1.15649 13.1499 1.15649C14.0345 1.15649 14.8828 1.50788 15.5082 2.13335C16.1337 2.75882 16.4851 3.60713 16.4851 4.49168C16.4851 5.37623 16.1337 6.22455 15.5082 6.85002L7.84158 14.5083C7.52885 14.8211 7.10469 14.9968 6.66242 14.9968C6.22014 14.9968 5.79598 14.8211 5.48325 14.5083C5.17051 14.1956 4.99482 13.7715 4.99482 13.3292C4.99482 12.8869 5.17051 12.4627 5.48325 12.15L12.5582 5.08335\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></button>\r\n\r\n <button [disabled]=\"ticketInfo?.status === 'closed'\" class=\"btn btn-primary ms-3\" (click)=\"updateTicket()\"> Submit </button>\r\n\r\n <!-- <button class=\"btn btn-default btn-outline ms-3 text-nowrap\"><span>\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 <g clip-path=\"url(#clip0_3917_54621)\">\r\n <path\r\n d=\"M7.57435 7.50008C7.77027 6.94314 8.15698 6.4735 8.66598 6.17436C9.17498 5.87521 9.77343 5.76586 10.3553 5.86567C10.9372 5.96549 11.465 6.26802 11.8452 6.71969C12.2255 7.17136 12.4336 7.74302 12.4327 8.33342C12.4327 10.0001 9.93268 10.8334 9.93268 10.8334M9.99935 14.1667H10.0077M18.3327 10.0001C18.3327 14.6025 14.6017 18.3334 9.99935 18.3334C5.39698 18.3334 1.66602 14.6025 1.66602 10.0001C1.66602 5.39771 5.39698 1.66675 9.99935 1.66675C14.6017 1.66675 18.3327 5.39771 18.3327 10.0001Z\"\r\n stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3917_54621\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg> Can\u2019t able to reach the store?\r\n </span>\r\n </button> -->\r\n </div>\r\n <div class=\"text-danger\" *ngIf=\"errorMessage\">{{ errorMessage }}</div>\r\n\r\n </div>\r\n <div class=\"col-sm-4\">\r\n <div class=\"border border-1 border-gray rounded-3 p-5 h-100\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"camera fw-semibold\">Attachments</div>\r\n </div>\r\n <div *ngIf=\"ticketInfo?.attachments.length ===0\"\r\n class=\"w-100 mt-10 mb-10 mh-60vh d-grid text-center mx-auto\">\r\n <img class=\"mx-auto\" src=\"./assets/tango/Images/taketicket.svg\">\r\n <span class=\"taketicket mt-2 fw-bold\">No Attachments </span>\r\n </div>\r\n <div *ngIf=\"ticketInfo?.attachments.length > 0\" class=\"row mt-10\">\r\n <div class=\"col-sm-6 position-relative mb-10\" *ngFor=\"let file of ticketInfo?.attachments\">\r\n <div class=\"Attachment border border-1 border-gray w-100 rounded-2 overflow-hidden\" >\r\n <img class=\"h-150px\" (click)=\"downloadimage(file?.signedUrl,'add')\" [src]=\"file?.signedUrl\" alt=\"Selected Image\">\r\n <div class=\"d-grid border border-top-1 px-5 py-2\">\r\n <span class=\"imagename fw-bold\">{{file.fileName}}</span>\r\n <!-- <span class=\"fw-bold-400 updateddate\">{{file.lastModifiedDateString}}</span> -->\r\n </div>\r\n <div (click)=\"removeFile(file?.signedUrl)\" class=\"me-3 p-1 position-absolute width-20px height-20px rounded-3 end-0 top-0 border border-1 border-primary bg-light-primary cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M15 5L5 15M5 5L15 15\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n\r\n </div>\r\n\r\n</div>\r\n\r\n<div *ngIf=\"SelectedTab === 'storeinfo'\">\r\n <lib-store-info [storeId]=\"ticketInfo?.basicDetails?.storeId\"></lib-store-info>\r\n</div>", styles: [".nav-item .nav-link{font-size:16px!important;line-height:24px}.nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-700, #009BF3);padding:8px 12px}.nav-item .nav-link:hover{border:none}.rowbody{background:var(--Gray-50, #F9FAFB)}.contenttext{color:var(--Gray-500, #667085);font-size:14px;line-height:20px}.camera{color:var(--Gray-500, #344054);font-size:14px;line-height:20px}.textupdates{color:var(--Gray-500, #344054);font-size:16px;line-height:24px}.store-label{color:var(--Primary-700, #009BF3)!important;font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-decoration-line:underline;text-transform:capitalize}.card-label{font-size:18px!important}.text-sub{color:var(--Gray-700, #344054)!important;font-size:12px!important;line-height:18px!important;font-weight:500!important}.text-day{color:var(--Gray-500, #667085);font-size:14px;line-height:20px}.maincard-content{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD)}.maincard-label{color:var(--Gray-900, #101828);font-size:16px;line-height:24px}.openedissue{border-radius:6px;background:var(--Gray-50, #F9FAFB);padding:8px 12px}.imagename{color:var(--Gray-900, #101828);font-size:12px;line-height:18px}.updateddate{color:var(--Gray-500, #667085);font-size:12px;line-height:18px}.w-45{width:49%}input,textarea{padding:10px 14px;border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d}.msgprofile{width:48px!important;height:48px!important;border-radius:200px;overflow:hidden}.timingtext{color:var(--Gray-500, #667085);font-size:14px;line-height:20px}.profile-label{font-size:12px;color:var(--Gray-500, #667085);line-height:18px}.investigation{color:var(--Gray-500, #667085);font-size:16px;line-height:24px}.fw-bold-400{font-weight:400!important}.fw-bold-700{font-weight:700!important}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.card-label{color:#000!important;font-size:16px!important;line-height:24px}.roundedcheck input[type=checkbox]{width:16px!important;height:16px!important;border-radius:10px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-300, #D0D5DD);box-shadow:none;font-size:.8em;text-align:center;line-height:1em;background:#fff}.roundedcheck input[type=checkbox]:checked{outline:none;background-color:var(--primary-50, #00A3FF)}.roundedcheck input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid white;border-right:2px solid white;display:inline-block;width:4px;padding:5px 0 2px 3px;margin-top:2px}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.text-primary{color:var(--Primary-700, #009BF3)!important}.verticalLine{width:0px;min-height:15px}.symbol .symbol-label{width:48px!important;height:48px!important}.custom-tooltip-content{max-width:500px!important;text-align:left!important}.Nopreview{border:1px solid var(--Gray-500, #667085);background:var(--Gray-100, #F2F4F7);color:var(--Gray-500, #667085)}.Nopreview .previewTitle{font-size:20px;font-weight:700;line-height:20px}.Nopreview .previewsubTitle{text-align:center;font-size:12px;line-height:18px}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "component", type: i8.StoreInfoComponent, selector: "lib-store-info", inputs: ["storeId"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i4.CustomDateFormatPipe, name: "customDateFormat" }] });
|
|
521
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: TicketsComponent, deps: [{ token: i1.NgbModal }, { token: i2.Router }, { token: i3.TicketsService }, { token: i0.ChangeDetectorRef }, { token: i2.ActivatedRoute }, { token: i4.ToastService }, { token: i5.GlobalStateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
522
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: TicketsComponent, selector: "lib-tickets", host: { listeners: { "document:click": "onClick($event)" } }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }, { propertyName: "tooltipContent", first: true, predicate: ["tooltipContent"], descendants: true }], ngImport: i0, template: "<div class=\"mb-5 d-flex justify-content-between align-items-center\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"maincard-content bg-white px-3 py-2 me-3 cursor-pointer\" style=\"width: fit-content;\" (click)=\"PrevRoute()\"> <svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\">\r\n <path d=\"M12.8327 6.99935H1.16602M1.16602 6.99935L6.99935 12.8327M1.16602 6.99935L6.99935 1.16602\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></div>\r\n <span class=\"fw-bold store-label\"> {{storeId}}</span> <span *ngIf=\"storeAddress?.address\"\r\n class=\"fw-bold store-label\"> |\r\n {{storeAddress?.address}} </span>\r\n </div>\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <span class=\"badge badge-light-primary\"> {{activeTicketDetails?.count}} {{storeAddress?.status}}</span>\r\n <div class=\"position-relative ps-3\">\r\n <button type=\"button\" (click)=\"storeChange($event)\"\r\n class=\"btn btn-default w-100 btn-outline btn-outline-default rounded-3 text-nowrap border-val d-flex justify-content-between bg-white\">\r\n {{storeId ? storeId : storeAddress?.storeId}}\r\n <span class=\"ms-3\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </button>\r\n <div *ngIf=\"storeDropDown\" class=\"card py-1 z-1 w-200px position-absolute top-50px end-0 h-300px overflow-auto\">\r\n <ul *ngFor=\"let details of activeTicketDetails?.data\" class=\"list-unstyled\">\r\n <li [ngClass]=\"storeAddress?.storeId === details?.storeId ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-2\" (click)=\"getstoreAddress(details)\">\r\n {{details?.storeId}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"card mb-5 py-3 px-5\">\r\n <ul class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item\" (click)=\"SelectedTabs('ticket')\"><a [ngClass]=\"SelectedTab ==='ticket' ? 'active' :''\"\r\n class=\"nav-link fs-4 cursor-pointer no-border me-6 \">Ticket</a>\r\n </li>\r\n <li class=\"nav-item\" (click)=\"SelectedTabs('storeinfo')\">\r\n <a [ngClass]=\"SelectedTab ==='storeinfo' ? 'active' :''\" class=\"nav-link fs-4 cursor-pointer me-6\">Store\r\n Info</a>\r\n </li>\r\n </ul>\r\n</div>\r\n\r\n<div *ngIf=\"SelectedTab ==='ticket'\" class=\"card\">\r\n <div class=\"card-header border-0 pt-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <div class=\"d-flex\">\r\n <span class=\"card-label mb-2 ms-3 fw-semibold\">{{ticketId}}</span>\r\n <span *ngIf=\"InfraIssue\" class=\"badge badge-light-warning\">{{InfraIssue}}</span>\r\n </div>\r\n <span class=\"text-sub fw-bold mb-2 badge badge-light-default\"><svg class=\"me-3\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3877_96552)\">\r\n <path\r\n d=\"M8 1V3M4 1V3M1.5 5H10.5M2.5 2H9.5C10.0523 2 10.5 2.44772 10.5 3V10C10.5 10.5523 10.0523 11 9.5 11H2.5C1.94772 11 1.5 10.5523 1.5 10V3C1.5 2.44772 1.94772 2 2.5 2Z\"\r\n stroke=\"#667085\" stroke-width=\"1.1\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3877_96552\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg> Created Date:{{ ticketInfo?.createdAt|customDateFormat}}</span>\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <button *ngIf=\"(gs.userAccess | async)?.manage_tickets_isView\" type=\"button\" (click)=\"openContact()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3877_102203)\">\r\n <path\r\n d=\"M12.5415 4.16659C13.3555 4.32539 14.1035 4.72347 14.6899 5.30986C15.2763 5.89626 15.6744 6.64431 15.8332 7.45825M12.5415 0.833252C14.2326 1.02112 15.8095 1.7784 17.0134 2.98076C18.2173 4.18312 18.9765 5.75909 19.1665 7.44992M18.3332 14.0999V16.5999C18.3341 16.832 18.2866 17.0617 18.1936 17.2744C18.1006 17.487 17.9643 17.6779 17.7933 17.8348C17.6222 17.9917 17.4203 18.1112 17.2005 18.1855C16.9806 18.2599 16.7477 18.2875 16.5165 18.2666C13.9522 17.988 11.489 17.1117 9.32486 15.7083C7.31139 14.4288 5.60431 12.7217 4.32486 10.7083C2.91651 8.53426 2.04007 6.05908 1.76653 3.48325C1.7457 3.25281 1.77309 3.02055 1.84695 2.80127C1.9208 2.58199 2.03951 2.38049 2.1955 2.2096C2.3515 2.03871 2.54137 1.90218 2.75302 1.80869C2.96468 1.7152 3.19348 1.6668 3.42486 1.66659H5.92486C6.32928 1.6626 6.72136 1.80582 7.028 2.06953C7.33464 2.33324 7.53493 2.69946 7.59153 3.09992C7.69705 3.89997 7.89274 4.68552 8.17486 5.44159C8.28698 5.73986 8.31125 6.06401 8.24478 6.37565C8.17832 6.68729 8.02392 6.97334 7.79986 7.19992L6.74153 8.25825C7.92783 10.3445 9.65524 12.072 11.7415 13.2583L12.7999 12.1999C13.0264 11.9759 13.3125 11.8215 13.6241 11.755C13.9358 11.6885 14.2599 11.7128 14.5582 11.8249C15.3143 12.107 16.0998 12.3027 16.8999 12.4083C17.3047 12.4654 17.6744 12.6693 17.9386 12.9812C18.2029 13.2931 18.3433 13.6912 18.3332 14.0999Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3877_102203\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"ms-2\">Contact Details</span> </button>\r\n <button *ngIf=\"(gs.userAccess | async)?.manage_tickets_isView\" type=\"button\" (click)=\"openRemote()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><span>\r\n <img src=\"./assets/tango/Images/desktop.svg\">\r\n Connect Remotely</span> </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"card-body\">\r\n <div class=\"row\">\r\n <div class=\"col-sm-8\">\r\n <div\r\n *ngIf=\"ticketInfo?.ticketDetails.issueStatus ==='notidentified'&&(gs.userAccess | async)?.manage_tickets_isEdit&&ticketInfo?.status!=='closed'||ticketInfo?.ticketDetails.ticketType==='refreshticket'&&(gs.userAccess | async)?.manage_tickets_isEdit&&ticketInfo?.ticketDetails?.refreshTicketStatus==='notidentified'&&userType ==='client'\">\r\n <div class=\"openedissue d-flex justify-content-between align-items-center\" >\r\n <span class=\"profile-label fw-semibold\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\r\n fill=\"none\">\r\n <path\r\n d=\"M21 12C21 7.0293 16.9707 3 12 3C7.0293 3 3 7.0293 3 12C3 16.9707 7.0293 21 12 21\"\r\n fill=\"white\" />\r\n <path\r\n d=\"M12.9 3.04504C12.9 3.04504 15.6 6.60004 15.6 12L12.9 3.04504ZM11.1 20.955C11.1 20.955 8.4 17.4 8.4 12C8.4 6.60004 11.1 3.04504 11.1 3.04504M3.567 15.15H12H3.567ZM3.567 8.85004H20.433H3.567Z\"\r\n fill=\"white\" />\r\n <path\r\n d=\"M20.8911 17.3252C21.3357 17.5988 21.3078 18.2639 20.8506 18.3161L18.5403 18.578L17.5044 20.6588C17.2992 21.0719 16.6647 20.8694 16.5594 20.3582L15.4299 14.8538C15.3408 14.4218 15.7296 14.15 16.1049 14.3813L20.8911 17.3252Z\"\r\n fill=\"white\" />\r\n <path\r\n d=\"M20.25 12C20.25 12.4142 20.5858 12.75 21 12.75C21.4142 12.75 21.75 12.4142 21.75 12H20.25ZM12 21.75C12.4142 21.75 12.75 21.4142 12.75 21C12.75 20.5858 12.4142 20.25 12 20.25V21.75ZM13.4973 2.59142C13.2467 2.26156 12.7762 2.19725 12.4464 2.44778C12.1165 2.6983 12.0522 3.1688 12.3027 3.49866L13.4973 2.59142ZM14.85 12C14.85 12.4143 15.1858 12.75 15.6 12.75C16.0142 12.75 16.35 12.4143 16.35 12H14.85ZM10.5027 21.4087C10.7533 21.7385 11.2238 21.8028 11.5536 21.5523C11.8835 21.3018 11.9478 20.8313 11.6973 20.5014L10.5027 21.4087ZM11.6973 3.49866C11.9478 3.1688 11.8835 2.6983 11.5536 2.44778C11.2238 2.19725 10.7533 2.26156 10.5027 2.59142L11.6973 3.49866ZM3.567 14.4C3.15279 14.4 2.817 14.7358 2.817 15.15C2.817 15.5643 3.15279 15.9 3.567 15.9V14.4ZM12 15.9C12.4142 15.9 12.75 15.5643 12.75 15.15C12.75 14.7358 12.4142 14.4 12 14.4V15.9ZM3.567 8.10004C3.15279 8.10004 2.817 8.43583 2.817 8.85004C2.817 9.26426 3.15279 9.60004 3.567 9.60004V8.10004ZM20.433 9.60004C20.8472 9.60004 21.183 9.26426 21.183 8.85004C21.183 8.43583 20.8472 8.10004 20.433 8.10004V9.60004ZM20.8911 17.3252L21.2842 16.6865L21.284 16.6864L20.8911 17.3252ZM20.8506 18.3161L20.9351 19.0613L20.9357 19.0613L20.8506 18.3161ZM18.5403 18.578L18.4558 17.8328L18.0506 17.8787L17.8689 18.2438L18.5403 18.578ZM17.5044 20.6588L16.833 20.3246L16.8327 20.3252L17.5044 20.6588ZM16.5594 20.3582L15.8247 20.509L15.8248 20.5095L16.5594 20.3582ZM15.4299 14.8538L16.1646 14.703L16.1644 14.7023L15.4299 14.8538ZM16.1049 14.3813L15.7114 15.0198L15.712 15.0201L16.1049 14.3813ZM21.75 12C21.75 6.61509 17.3849 2.25 12 2.25V3.75C16.5565 3.75 20.25 7.44351 20.25 12H21.75ZM12 2.25C6.61509 2.25 2.25 6.61509 2.25 12H3.75C3.75 7.44351 7.44351 3.75 12 3.75V2.25ZM2.25 12C2.25 17.3849 6.61509 21.75 12 21.75V20.25C7.44351 20.25 3.75 16.5565 3.75 12H2.25ZM12.9 3.04504C12.3027 3.49866 12.3026 3.49846 12.3024 3.49828C12.3024 3.49823 12.3023 3.49806 12.3022 3.49797C12.3021 3.49779 12.302 3.49767 12.3019 3.4976C12.3018 3.49746 12.3019 3.49753 12.3021 3.49781C12.3025 3.49838 12.3036 3.4998 12.3053 3.50206C12.3086 3.50658 12.3144 3.51447 12.3225 3.52567C12.3387 3.54809 12.3641 3.58375 12.3973 3.63226C12.4638 3.72929 12.5616 3.87752 12.6805 4.07361C12.9183 4.46606 13.2393 5.04863 13.5614 5.79478C14.2061 7.28837 14.85 9.42526 14.85 12H16.35C16.35 9.17483 15.6439 6.83422 14.9386 5.20031C14.5857 4.38271 14.2317 3.73902 13.9633 3.29616C13.829 3.0746 13.7159 2.90291 13.6347 2.78443C13.5941 2.72518 13.5615 2.6792 13.5381 2.6469C13.5265 2.63075 13.5171 2.61802 13.5102 2.60876C13.5068 2.60413 13.504 2.60036 13.5018 2.59747C13.5007 2.59602 13.4998 2.5948 13.4991 2.59379C13.4987 2.59329 13.4983 2.59284 13.498 2.59244C13.4979 2.59224 13.4977 2.59199 13.4976 2.59189C13.4974 2.59165 13.4973 2.59142 12.9 3.04504ZM11.1 20.955C11.6973 20.5014 11.6974 20.5016 11.6976 20.5018C11.6976 20.5019 11.6977 20.502 11.6978 20.5021C11.6979 20.5023 11.698 20.5024 11.6981 20.5025C11.6982 20.5026 11.6981 20.5026 11.6979 20.5023C11.6975 20.5017 11.6964 20.5003 11.6948 20.498C11.6914 20.4935 11.6856 20.4856 11.6775 20.4744C11.6613 20.452 11.6359 20.4163 11.6027 20.3678C11.5362 20.2708 11.4384 20.1226 11.3195 19.9265C11.0817 19.534 10.7607 18.9515 10.4386 18.2053C9.79388 16.7117 9.15 14.5748 9.15 12H7.65C7.65 14.8253 8.35613 17.1659 9.06142 18.7998C9.41434 19.6174 9.76833 20.2611 10.0367 20.7039C10.171 20.9255 10.2841 21.0972 10.3653 21.2157C10.4059 21.2749 10.4385 21.3209 10.4619 21.3532C10.4735 21.3693 10.4829 21.3821 10.4898 21.3913C10.4932 21.396 10.496 21.3997 10.4982 21.4026C10.4993 21.4041 10.5002 21.4053 10.5009 21.4063C10.5013 21.4068 10.5017 21.4073 10.502 21.4076C10.5021 21.4078 10.5023 21.4081 10.5024 21.4082C10.5026 21.4084 10.5027 21.4087 11.1 20.955ZM9.15 12C9.15 9.42526 9.79388 7.28837 10.4386 5.79478C10.7607 5.04863 11.0817 4.46606 11.3195 4.07361C11.4384 3.87752 11.5362 3.72929 11.6027 3.63226C11.6359 3.58375 11.6613 3.54809 11.6775 3.52567C11.6856 3.51447 11.6914 3.50658 11.6948 3.50206C11.6964 3.4998 11.6975 3.49838 11.6979 3.49781C11.6981 3.49753 11.6982 3.49746 11.6981 3.4976C11.698 3.49767 11.6979 3.49779 11.6978 3.49797C11.6977 3.49806 11.6976 3.49823 11.6976 3.49828C11.6974 3.49846 11.6973 3.49866 11.1 3.04504C10.5027 2.59142 10.5026 2.59165 10.5024 2.59189C10.5023 2.59199 10.5021 2.59224 10.502 2.59244C10.5017 2.59284 10.5013 2.59329 10.5009 2.59379C10.5002 2.5948 10.4993 2.59602 10.4982 2.59747C10.496 2.60036 10.4932 2.60413 10.4898 2.60876C10.4829 2.61802 10.4735 2.63075 10.4619 2.6469C10.4385 2.6792 10.4059 2.72518 10.3653 2.78443C10.2841 2.90291 10.171 3.0746 10.0367 3.29616C9.76833 3.73902 9.41434 4.38271 9.06142 5.20031C8.35613 6.83422 7.65 9.17483 7.65 12H9.15ZM3.567 15.9H12V14.4H3.567V15.9ZM3.567 9.60004H20.433V8.10004H3.567V9.60004ZM20.498 17.9639C20.4792 17.9524 20.4575 17.9252 20.4597 17.8727C20.4609 17.8434 20.4715 17.7772 20.5297 17.7054C20.5961 17.6235 20.6889 17.5797 20.7655 17.5709L20.9357 19.0613C21.6167 18.9835 21.9384 18.4179 21.9584 17.9346C21.9776 17.4682 21.7476 16.9717 21.2842 16.6865L20.498 17.9639ZM20.7661 17.5709L18.4558 17.8328L18.6248 19.3232L20.9351 19.0613L20.7661 17.5709ZM17.8689 18.2438L16.833 20.3246L18.1758 20.9931L19.2117 18.9123L17.8689 18.2438ZM16.8327 20.3252C16.8668 20.2565 16.9395 20.1839 17.0398 20.1492C17.1277 20.1188 17.194 20.1316 17.2221 20.1405C17.272 20.1564 17.2896 20.1857 17.294 20.2069L15.8248 20.5095C15.9345 21.0419 16.322 21.4281 16.7668 21.5697C17.2286 21.7168 17.8707 21.6073 18.1761 20.9925L16.8327 20.3252ZM17.2941 20.2074L16.1646 14.703L14.6952 15.0046L15.8247 20.509L17.2941 20.2074ZM16.1644 14.7023C16.1723 14.7406 16.1666 14.883 16.0232 14.9833C15.88 15.0835 15.7446 15.0402 15.7114 15.0198L16.4984 13.7428C16.0899 13.4911 15.5724 13.468 15.1633 13.7543C14.754 14.0407 14.5984 14.535 14.6954 15.0053L16.1644 14.7023ZM15.712 15.0201L20.4982 17.964L21.284 16.6864L16.4978 13.7425L15.712 15.0201Z\"\r\n fill=\"#475467\" />\r\n </svg> {{selectedIssue}}\r\n </span>\r\n <!-- (click)=\"chooseanissue('')\" -->\r\n <div class=\"position-relative\">\r\n <div (click)=\"openDropdown($event)\"\r\n class=\"maincard-content cursor-pointer bg-white px-3 py-2\"> <svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#344054\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg> </div>\r\n <div *ngIf=\"dropDown\" class=\"card py-1 w-200px position-absolute top-50px end-0\">\r\n <ul *ngFor=\"let item of dropdownItems\" class=\"list-unstyled\">\r\n <li [ngClass]=\"this.selectedIssue === item ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-3\"\r\n (click)=\"selectItem(item)\">\r\n {{item}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div\r\n *ngIf=\"selectedIssue === 'Internet Issues'||selectedIssue === 'Camera Issues'&&showcamIssue||selectedIssue === 'System Issues' \">\r\n <div class=\"maincard-content w-100 mt-2 px-4 py-2 pb-4 mb-5\">\r\n <div class=\"maincard-label fw-semibold py-2\" *ngIf=\"secondaryIssues?.length>0\"> Please\r\n select the\r\n relevant problem facing from the following </div>\r\n <div *ngFor=\"let issue of secondaryIssues; let index = index\"\r\n class=\"maincard-content d-flex justify-content-between align-items-center w-100 mt-2 px-4 py-4 cursor-pointer \"\r\n (click)=\"toggleCheckbox(index)\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <span><img class=\"pe-3\" src='./assets/tango/Images/Featured icon.png'></span>\r\n <span class=\"headingtext\">{{issue?.name}}</span>\r\n <span class=\"w-300px\" [ngbTooltip]=\"tooltipContent\" triggers=\"mouseenter:mouseleave\"\r\n placement=\"left\">\r\n <svg class=\"ms-3\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1826_44871)\">\r\n <path\r\n d=\"M8.00065 10.6673V8.00065M8.00065 5.33398H8.00732M14.6673 8.00065C14.6673 11.6826 11.6826 14.6673 8.00065 14.6673C4.31875 14.6673 1.33398 11.6826 1.33398 8.00065C1.33398 4.31875 4.31875 1.33398 8.00065 1.33398C11.6826 1.33398 14.6673 4.31875 14.6673 8.00065Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1826_44871\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n\r\n <!-- Define tooltip content -->\r\n <ng-template #tooltipContent>\r\n <div class=\"custom-tooltip-content tooltip-content w-100\">\r\n <ul>\r\n <li class=\"w-100\" *ngFor=\"let tooltipItem of issue?.toolTips\">{{\r\n tooltipItem?.name }}</li>\r\n </ul>\r\n </div>\r\n </ng-template>\r\n\r\n <div class=\"roundedcheck d-flex align-items-center\">\r\n <input type=\"checkbox\" [checked]=\"issue.checked\" class=\"p-0\">\r\n </div>\r\n </div>\r\n <div class=\"form-group pt-6\" *ngIf=\"(gs.userAccess | async)?.manage_tickets_isEdit\">\r\n <label for=\"hiberntion\" class=\" maincard-label fw-semibold mb-2\">Hibernation (in days)\r\n *</label>\r\n <div class=\" w-250px position-relative\">\r\n <div class=\"position-absolute translate-middle-y top-50 me-5 ps-3 ticketDays\">\r\n <span class=\"svg-icon toggle-off svg-icon-1\" [ngClass]=\"count === 0 ? 'pe-none' : ''\" (click)=\"decreseCount()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M4.66602 10H16.3327\" stroke=\"#344054\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <input type=\"text\" class=\"form-control\" id=\"hiberntion\" [(ngModel)]=\"Hibernation\"\r\n style=\"text-align: center;\" value=\"{{count}}\" placeholder=\"0\" readOnly />\r\n <div class=\"position-absolute translate-middle-y top-50 end-0 me-3\">\r\n <span class=\"svg-icon toggle-on svg-icon-1 ticketDays\"\r\n (click)=\"increaseCount()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M10.4993 4.1665V15.8332M4.66602 9.99984H16.3327\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"selectedIssue === 'Others'\">\r\n <div class=\"maincard-content w-100 mt-2 px-4 py-2 pb-4 mb-5\">\r\n <div class=\"maincard-label fw-semibold py-2\">Please select the relevant problem facing from\r\n the\r\n following</div>\r\n <div *ngFor=\"let others of othersIssue; let i = index\"\r\n class=\"maincard-content d-flex justify-content-between align-items-center w-100 mt-2 px-4 py-4 cursor-pointer\"\r\n (click)=\"toggleRadiobox(others)\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <span><img class=\"pe-3\" src='./assets/tango/Images/Featured icon.png'></span>\r\n <span class=\"headingtext\">{{others.name}}</span>\r\n <span><svg class=\"ms-3\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1826_44871)\">\r\n <path\r\n d=\"M8.00065 10.6673V8.00065M8.00065 5.33398H8.00732M14.6673 8.00065C14.6673 11.6826 11.6826 14.6673 8.00065 14.6673C4.31875 14.6673 1.33398 11.6826 1.33398 8.00065C1.33398 4.31875 4.31875 1.33398 8.00065 1.33398C11.6826 1.33398 14.6673 4.31875 14.6673 8.00065Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1826_44871\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </div>\r\n <div class=\"roundedcheck d-flex align-items-center\">\r\n <input type=\"radio\" name=\"radioGroup{{i}}\" [value]=\"others.name\"\r\n [(ngModel)]=\"selectedOption\" class=\"p-0\">\r\n </div>\r\n </div>\r\n <div class=\"form-group pt-6\">\r\n <label for=\"hiberntion\" class=\" maincard-label fw-semibold mb-2\">Hibernation (in days)\r\n *</label>\r\n <div class=\" w-250px position-relative\">\r\n <div class=\"position-absolute translate-middle-y top-50 me-5 ps-3 ticketDays\">\r\n <span class=\"svg-icon toggle-off svg-icon-1\" [ngClass]=\"count === 0 ? 'pe-none' : ''\" (click)=\"decreseCount()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M4.66602 10H16.3327\" stroke=\"#344054\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <input type=\"text\" class=\"form-control\" id=\"hiberntion\" [(ngModel)]=\"Hibernation\"\r\n style=\"text-align: center;\" value=\"{{count}}\" placeholder=\"0\" readOnly />\r\n <div class=\"position-absolute translate-middle-y top-50 end-0 me-3\">\r\n <span class=\"svg-icon toggle-on svg-icon-1 ticketDays\"\r\n (click)=\"increaseCount()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M10.4993 4.1665V15.8332M4.66602 9.99984H16.3327\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div>\r\n <div class=\"maincard-content w-100 mt-2 px-4 py-2 pb-4\" *ngIf=\"selectedIssue === 'Camera Issues'&&!showcamIssue&&cameraListImages.length>0\">\r\n <div class=\"maincard-label fw-semibold py-2 mb-5\">\r\n Please make sure all of your surveillance cameras are functioning and verify the footage you have. </div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-6\" *ngFor=\"let item of cameraListImages;let i = index\">\r\n <span class=\"camera fw-bold\">{{item?.cameraName ? item?.cameraName:\"--\"}}</span><span class=\"camera fw-bold\"> Camera 1</span>\r\n <div\r\n class=\"rounded-2 w-100 mh-350px overflow-hidden mt-2\">\r\n <img class=\"w-100\" *ngIf=\"item?.thumbnailImage !== null && item?.thumbnailImage !== ''\" [src]=\"item?.thumbnailImage\">\r\n <!-- <img class=\"w-100\" src='https://images.unsplash.com/photo-1441986300917-64674bd600d8?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxzZWFyY2h8Mnx8c3RvcmV8ZW58MHx8MHx8fDA%3D'> -->\r\n <div *ngIf=\"item?.thumbnailImage === null || item?.thumbnailImage === ''\" class=\"w-100 h-300px rounded-2 overflow-hidden Nopreview align-content-center\">\r\n <div class=\"previewTitle text-center mb-5\">\r\n Preview not available {{item?.thumbnailImage}}\r\n </div>\r\n <div class=\"previewsubTitle fw-semibold\">\r\n The selected camera is not available at the moment.\r\n </div>\r\n </div> \r\n </div>\r\n <div class=\"d-flex justify-content-between mt-5 mb-5\">\r\n <button (click)=\"cameraSelection(i,'working')\" type=\"button\"\r\n class=\"btn btn-default btn-outline w-50 me-2\"\r\n [ngClass]=\"item.cameraNumber==='working'?'text-primary bg-light-primary':''\">\r\n Working\r\n </button>\r\n <button (click)=\"cameraSelection(i,'notworking')\" type=\"button\"\r\n class=\"btn btn-default btn-outline w-50 ms-2\"\r\n [ngClass]=\"item.cameraNumber==='notworking'?'text-danger bg-light-danger':''\">\r\n Not Working\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <button *ngIf=\"!showcamIssue\" class=\"btn btn-primary w-100 mt-6\"\r\n (click)=\"updateCamStatus()\">Proceed</button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"ticketInfo?.ticketDetails?.issueStatus ==='identified'||ticketInfo?.status === 'closed'||ticketInfo?.ticketDetails.ticketType === 'refreshticket'\">\r\n <div *ngFor=\"let obj of viewTicketData;let i=index\">\r\n\r\n <!-- Horizontal line with day -->\r\n\r\n <!-- <div class=\"d-flex align-items-center justify-content-between\">\r\n <div class=\"border border-1 border-gray p-0 w-100 me-3\"></div>\r\n <span class=\"text-day fw-bold-400\">Today</span>\r\n <div class=\"border border-1 border-gray p-0 w-100 ms-3\"></div>\r\n </div> -->\r\n\r\n <!-- User code start -->\r\n <div *ngIf=\"obj.actionBy === 'User'\" class=\"d-flex ms-5 mb-5\">\r\n <div *ngIf=\"obj.actionType !=='statusChange'\"\r\n class=\"d-flex flex-column justify-content-center align-items-center pe-3\">\r\n <div class=\"d-flex align-items-centre justify-content-centre\">\r\n <img class=\"msgprofile\"\r\n src=\"./assets/tango/Images/userProfile.svg\">\r\n </div>\r\n <div class=\"p-0 h-100 mt-3 border border-1 border-gray\" style=\"width:0px\"></div>\r\n </div>\r\n\r\n <div class=\"mt-2\" *ngIf=\"obj.actionType === 'statusChange'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400\">Updated the status</span><span\r\n class=\"timingtext fw-semibold text-primary\">Open -> Inprogress</span>\r\n </div>\r\n <div class=\"py-3 w-100 pt-0\">\r\n <div *ngIf=\"obj.actionType !=='statusChange'\">\r\n <div class=\"d-flex\">\r\n <span class=\"headingtext fw-semibold text-uppercase\">{{obj?.IdentifiedBy?obj?.IdentifiedBy:\"Tango\"}}</span>\r\n <span class=\"timingtext px-3 pt-1 fw-bold-400\">{{obj?.timeStamp}}</span>\r\n </div>\r\n <span class=\"profile-label font-bold-400\">User has replied</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType === 'statusCheckReply'\">\r\n <div class=\"textupdates fw-bold-400 mt-3\">Issue has been <b><span\r\n *ngIf=\"obj.statusCheckReply==='No'\">not</span> resolved.</b>\r\n\r\n </div>\r\n <div class=\"textupdates fw-bold-400\" *ngIf=\"obj.statusCheckReply==='No'\"> It takes\r\n {{obj?.hibernationDays}} more days to resolve.</div>\r\n </div>\r\n <div class=\"mt-2\" *ngIf=\"obj.actionType === 'comment'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400 text-wrap\">{{obj?.comment}}</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType ==='issueUpdate'\">\r\n \r\n <div *ngFor=\"let res of obj?.reasons\">\r\n \r\n <div class=\"textupdates fw-bold-400 mt-3\">\r\n We're currently encountering an <span\r\n class=\"fw-bold-700\">{{res.primaryIssue}}</span>\r\n </div>\r\n <div *ngIf=\"res.primaryIssue ==='Camera Issues'\">\r\n <div *ngIf=\"notworkingCamaralist && notworkingCamaralist?.length\" class=\"row\">\r\n <div *ngFor=\"let item of notworkingCamaralist\" class=\"col-sm-3 my-5\">\r\n <div class=\"rounded-3 overflow-hidden mt-2\">\r\n <span class=\"camera fw-bold\">{{item.cameraName}}</span>\r\n <img [src]=\"item?.thumbnailImage\" style=\"height:180px\">\r\n </div>\r\n </div>\r\n <div class=\"textupdates fw-bold-400 mt-3 me-2\">The above camera streaming are not working due\r\n <span class=\"textupdates fw-bold-700 mt-3\" *ngFor=\"let issue of res?.secondaryIssue; let last = last\">{{issue?.name}} <ng-container *ngIf=\"!last\"> ,</ng-container></span> to the Camera</div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"res?.secondaryIssue && res?.secondaryIssue?.length\" class=\"mt-3\">\r\n <div class=\"investigation fw-bold-400 mb-3\">The following are the relevant\r\n problem\r\n facing</div>\r\n <div class=\"mb-5\"> \r\n <ul class=\"timingtext fw-bold-400 mb-0\"\r\n *ngFor=\"let secIssues of res?.secondaryIssue\">\r\n <li>{{secIssues.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400\">{{obj?.comment}}</span>\r\n </div>\r\n\r\n <div *ngIf=\"selectedIssue === ''\" class=\"profile-label fw-semibold mt-2\">\r\n Kindly choose the option below that corresponds to the issue you are experiencing in\r\n the\r\n store.\r\n </div>\r\n </div>\r\n </div>\r\n <!-- User code end -->\r\n <!-- Tango code start -->\r\n <div *ngIf=\"obj.actionBy === 'Tango' || obj.actionBy === 'automated'\" class=\"d-flex mb-5 ms-5\">\r\n <div class=\"d-flex flex-column justify-content-center align-items-center pe-3\">\r\n <div class=\"d-flex align-items-centre justify-content-centre\">\r\n <div class=\"symbol symbol-48px symbol-circle\" *ngIf=\"obj?.IdentifiedBy&&obj?.IdentifiedBy!==''&&obj?.IdentifiedBy!=='Tango'\">\r\n <span class=\"symbol-label badge-light-primary text-symbol\">\r\n <span class=\"text-primary fs-4 badge badge-light-primary fw-normal\">\r\n {{obj?.IdentifiedBy?.slice(0,2) | uppercase }}\r\n </span>\r\n </span>\r\n </div>\r\n <img *ngIf=\"!obj?.IdentifiedBy||obj?.IdentifiedBy===''||obj?.IdentifiedBy==='Tango'\" class=\"msgprofile\" src=\"./assets/tango/Images/tangoprofile.png\">\r\n </div>\r\n <div class=\"p-0 h-100 mt-3 border border-1 border-gray verticalLine\"></div>\r\n </div>\r\n <div class=\"py-3 pt-0\">\r\n <div class=\"d-flex\">\r\n <span class=\"headingtext fw-semibold text-capitalize\">{{obj?.IdentifiedBy?obj?.IdentifiedBy:\"Tango\"}}</span>\r\n <span class=\"timingtext fw-bold-400 px-3 pt-1\">{{obj?.timeStamp}}</span>\r\n </div>\r\n <div class=\"mb-3\">\r\n <span class=\"profile-label fw-bold-400\">tango has replied to the\r\n issue</span>\r\n <div class=\"mt-2\" *ngIf=\"obj.actionType === 'statusChange'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400\">Updated the status</span><span\r\n class=\"timingtext fw-semibold text-primary\">Open -> Inprogress</span>\r\n </div>\r\n <div class=\"mt-2\" *ngIf=\"obj.actionType === 'comment'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400 text-wrap\">{{obj?.comment}}</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType === 'dataRecived'\">\r\n <div class=\"textupdates fw-bold-400 mt-3\">Thank you for your assistance. We have\r\n received the data from your Store.\r\n </div>\r\n </div>\r\n <div *ngIf=\"obj.actionType === 'statusCheckMonitor'\">\r\n <div class=\"textupdates fw-bold-400 mt-3\">Thank you for the update. We\u2019ll get\r\n back after the buffer time you provided.\r\n </div>\r\n </div>\r\n <div *ngIf=\"obj.actionType ==='stepsToResolve'\" class=\"mt-3\">\r\n <span class=\"textupdates fw-bold-400\">Please follow the below steps to resolve\r\n the above issue</span>\r\n <div *ngFor=\"let res of obj?.reasons\">\r\n <div class=\"mt-5 mb-5\">\r\n <div class=\"headingtext fw-semibold mb-1\">{{res.primaryIssue}}</div>\r\n <ul class=\"timingtext fw-bold-400 mb-0\"\r\n *ngFor=\"let secIssues of res?.secondaryIssue\">\r\n <li>{{secIssues.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"obj.actionType ==='issueUpdate'\">\r\n <div *ngFor=\"let res of obj?.reasons\">\r\n <div class=\"textupdates fw-bold-400 mt-3\">\r\n We're currently encountering an <span\r\n class=\"fw-bold-700\">{{res.primaryIssue}}</span>\r\n </div>\r\n <div *ngIf=\"res.primaryIssue ==='Camera Issues'\">\r\n <div class=\"row my-5\">\r\n <div *ngFor=\"let item of notworkingCamaralist\" class=\"col-sm-3\">\r\n <div class=\"rounded-3 overflow-hidden mt-2\">\r\n <span class=\"camera fw-bold\">{{item.cameraName}}</span>\r\n <img [src]=\"item?.thumbnailImage\" style=\"height:180px\">\r\n </div>\r\n </div>\r\n </div>\r\n <span class=\"textupdates fw-bold-400 mt-3 me-2\">The above camera streaming are not working due</span>\r\n <span class=\"textupdates fw-bold-700 mt-3\" *ngFor=\"let issue of res?.secondaryIssue; let last = last\">{{issue?.name}} <ng-container *ngIf=\"!last\"> ,</ng-container></span> <span class=\"textupdates fw-bold-400 mt-3\">to the Camera</span>\r\n \r\n </div>\r\n <div class=\"mt-3\">\r\n <div class=\"investigation fw-bold-400 mb-3\">The following are the relevant\r\n problem\r\n facing</div>\r\n <div class=\"mb-5\"> \r\n <ul class=\"timingtext fw-bold-400 mb-0\"\r\n *ngFor=\"let secIssues of res?.secondaryIssue\">\r\n <li>{{secIssues.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400 text-wrap\">{{obj?.comment}}</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType === 'statusCheckReply'\">\r\n <div class=\"textupdates fw-bold-400 mt-3\">Issue has been <b><span\r\n *ngIf=\"obj.statusCheckReply==='No'\">not</span> resolved.</b>\r\n\r\n </div>\r\n <div class=\"textupdates fw-bold-400\" *ngIf=\"obj.statusCheckReply==='No'\"> It\r\n takes {{obj?.hibernationDays}} more days to resolve.</div>\r\n </div>\r\n </div>\r\n <!-- defaultInfra start -->\r\n <div *ngIf=\"obj.actionType ==='defaultInfra'\" class=\"contenttext fw-bold-400\">We have\r\n not\r\n received data from your store. We are currently investigating the issue</div>\r\n <!-- defaultInfra end -->\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n <!-- Tango code end -->\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"loading\">\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 \r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src\" width=\"200px\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div> \r\n </div>\r\n </div>\r\n </ng-container>\r\n <div *ngIf=\"showSubmit && (gs.userAccess | async)?.manage_tickets_isEdit\" class=\"d-flex justify-content-between align-items-center mt-10\">\r\n <input class=\"form-control\" [(ngModel)]=\"comments\" (click)=\"addComment()\" type=\"text\"\r\n placeholder=\"Add your comments..\">\r\n\r\n <input type=\"file\" #fileInput style=\"display: none;\" accept=\"image/*\" multiple (change)=\"onFileSelected($event)\">\r\n <button [disabled]=\"ticketInfo?.status === 'closed'\" (click)=\"openFileInput()\" class=\"cursor-pointer btn btn-default btn-outline ms-3\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.8666 9.20835L10.2082 16.8667C9.27005 17.8049 7.99757 18.332 6.67075 18.332C5.34393 18.332 4.07145 17.8049 3.13325 16.8667C2.19505 15.9285 1.66797 14.656 1.66797 13.3292C1.66797 12.0024 2.19505 10.7299 3.13325 9.79168L10.7916 2.13335C11.4171 1.50788 12.2654 1.15649 13.1499 1.15649C14.0345 1.15649 14.8828 1.50788 15.5082 2.13335C16.1337 2.75882 16.4851 3.60713 16.4851 4.49168C16.4851 5.37623 16.1337 6.22455 15.5082 6.85002L7.84158 14.5083C7.52885 14.8211 7.10469 14.9968 6.66242 14.9968C6.22014 14.9968 5.79598 14.8211 5.48325 14.5083C5.17051 14.1956 4.99482 13.7715 4.99482 13.3292C4.99482 12.8869 5.17051 12.4627 5.48325 12.15L12.5582 5.08335\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></button>\r\n\r\n <button [disabled]=\"ticketInfo?.status === 'closed'\" class=\"btn btn-primary ms-3\" (click)=\"updateTicket()\"> Submit </button>\r\n\r\n <!-- <button class=\"btn btn-default btn-outline ms-3 text-nowrap\"><span>\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 <g clip-path=\"url(#clip0_3917_54621)\">\r\n <path\r\n d=\"M7.57435 7.50008C7.77027 6.94314 8.15698 6.4735 8.66598 6.17436C9.17498 5.87521 9.77343 5.76586 10.3553 5.86567C10.9372 5.96549 11.465 6.26802 11.8452 6.71969C12.2255 7.17136 12.4336 7.74302 12.4327 8.33342C12.4327 10.0001 9.93268 10.8334 9.93268 10.8334M9.99935 14.1667H10.0077M18.3327 10.0001C18.3327 14.6025 14.6017 18.3334 9.99935 18.3334C5.39698 18.3334 1.66602 14.6025 1.66602 10.0001C1.66602 5.39771 5.39698 1.66675 9.99935 1.66675C14.6017 1.66675 18.3327 5.39771 18.3327 10.0001Z\"\r\n stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3917_54621\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg> Can\u2019t able to reach the store?\r\n </span>\r\n </button> -->\r\n </div>\r\n <div class=\"text-danger\" *ngIf=\"errorMessage\">{{ errorMessage }}</div>\r\n\r\n </div>\r\n <div class=\"col-sm-4\">\r\n <div class=\"border border-1 border-gray rounded-3 p-5 h-100\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"camera fw-semibold\">Attachments</div>\r\n </div>\r\n <div *ngIf=\"ticketInfo?.attachments.length ===0\"\r\n class=\"w-100 mt-10 mb-10 mh-60vh d-grid text-center mx-auto\">\r\n <img class=\"mx-auto\" src=\"./assets/tango/Images/taketicket.svg\">\r\n <span class=\"taketicket mt-2 fw-bold\">No Attachments </span>\r\n </div>\r\n <div *ngIf=\"ticketInfo?.attachments.length > 0\" class=\"row mt-10\">\r\n <div class=\"col-sm-6 position-relative mb-10\" *ngFor=\"let file of ticketInfo?.attachments\">\r\n <div class=\"Attachment border border-1 border-gray w-100 rounded-2 overflow-hidden\" >\r\n <img class=\"h-150px\" (click)=\"downloadimage(file?.signedUrl,'add')\" [src]=\"file?.signedUrl\" alt=\"Selected Image\">\r\n <div class=\"d-grid border border-top-1 px-5 py-2\">\r\n <span class=\"imagename fw-bold\">{{file.fileName}}</span>\r\n <!-- <span class=\"fw-bold-400 updateddate\">{{file.lastModifiedDateString}}</span> -->\r\n </div>\r\n <div (click)=\"removeFile(file?.signedUrl)\" class=\"me-3 p-1 position-absolute width-20px height-20px rounded-3 end-0 top-0 border border-1 border-primary bg-light-primary cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M15 5L5 15M5 5L15 15\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n\r\n </div>\r\n\r\n</div>\r\n\r\n<div *ngIf=\"SelectedTab === 'storeinfo'\">\r\n <lib-store-info [storeId]=\"ticketInfo?.basicDetails?.storeId\"></lib-store-info>\r\n</div>", styles: [".nav-item .nav-link{font-size:16px!important;line-height:24px}.nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-700, #009BF3);padding:8px 12px}.nav-item .nav-link:hover{border:none}.rowbody{background:var(--Gray-50, #F9FAFB)}.contenttext{color:var(--Gray-500, #667085);font-size:14px;line-height:20px}.camera{color:var(--Gray-500, #344054);font-size:14px;line-height:20px}.textupdates{color:var(--Gray-500, #344054);font-size:16px;line-height:24px}.store-label{color:var(--Primary-700, #009BF3)!important;font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-decoration-line:underline;text-transform:capitalize}.card-label{font-size:18px!important}.text-sub{color:var(--Gray-700, #344054)!important;font-size:12px!important;line-height:18px!important;font-weight:500!important}.text-day{color:var(--Gray-500, #667085);font-size:14px;line-height:20px}.maincard-content{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD)}.maincard-label{color:var(--Gray-900, #101828);font-size:16px;line-height:24px}.openedissue{border-radius:6px;background:var(--Gray-50, #F9FAFB);padding:8px 12px}.imagename{color:var(--Gray-900, #101828);font-size:12px;line-height:18px}.updateddate{color:var(--Gray-500, #667085);font-size:12px;line-height:18px}.w-45{width:49%}input,textarea{padding:10px 14px;border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d}.msgprofile{width:48px!important;height:48px!important;border-radius:200px;overflow:hidden}.timingtext{color:var(--Gray-500, #667085);font-size:14px;line-height:20px}.profile-label{font-size:12px;color:var(--Gray-500, #667085);line-height:18px}.investigation{color:var(--Gray-500, #667085);font-size:16px;line-height:24px}.fw-bold-400{font-weight:400!important}.fw-bold-700{font-weight:700!important}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.card-label{color:#000!important;font-size:16px!important;line-height:24px}.roundedcheck input[type=checkbox]{width:16px!important;height:16px!important;border-radius:10px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-300, #D0D5DD);box-shadow:none;font-size:.8em;text-align:center;line-height:1em;background:#fff}.roundedcheck input[type=checkbox]:checked{outline:none;background-color:var(--primary-50, #00A3FF)}.roundedcheck input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid white;border-right:2px solid white;display:inline-block;width:4px;padding:5px 0 2px 3px;margin-top:2px}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.text-primary{color:var(--Primary-700, #009BF3)!important}.verticalLine{width:0px;min-height:15px}.symbol .symbol-label{width:48px!important;height:48px!important}.custom-tooltip-content{max-width:500px!important;text-align:left!important}.Nopreview{border:1px solid var(--Gray-500, #667085);background:var(--Gray-100, #F2F4F7);color:var(--Gray-500, #667085)}.Nopreview .previewTitle{font-size:20px;font-weight:700;line-height:20px}.Nopreview .previewsubTitle{text-align:center;font-size:12px;line-height:18px}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "component", type: i8.StoreInfoComponent, selector: "lib-store-info", inputs: ["storeId"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i4.CustomDateFormatPipe, name: "customDateFormat" }] });
|
|
523
523
|
}
|
|
524
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
524
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: TicketsComponent, decorators: [{
|
|
525
525
|
type: Component,
|
|
526
526
|
args: [{ selector: 'lib-tickets', template: "<div class=\"mb-5 d-flex justify-content-between align-items-center\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"maincard-content bg-white px-3 py-2 me-3 cursor-pointer\" style=\"width: fit-content;\" (click)=\"PrevRoute()\"> <svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\">\r\n <path d=\"M12.8327 6.99935H1.16602M1.16602 6.99935L6.99935 12.8327M1.16602 6.99935L6.99935 1.16602\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></div>\r\n <span class=\"fw-bold store-label\"> {{storeId}}</span> <span *ngIf=\"storeAddress?.address\"\r\n class=\"fw-bold store-label\"> |\r\n {{storeAddress?.address}} </span>\r\n </div>\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <span class=\"badge badge-light-primary\"> {{activeTicketDetails?.count}} {{storeAddress?.status}}</span>\r\n <div class=\"position-relative ps-3\">\r\n <button type=\"button\" (click)=\"storeChange($event)\"\r\n class=\"btn btn-default w-100 btn-outline btn-outline-default rounded-3 text-nowrap border-val d-flex justify-content-between bg-white\">\r\n {{storeId ? storeId : storeAddress?.storeId}}\r\n <span class=\"ms-3\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </button>\r\n <div *ngIf=\"storeDropDown\" class=\"card py-1 z-1 w-200px position-absolute top-50px end-0 h-300px overflow-auto\">\r\n <ul *ngFor=\"let details of activeTicketDetails?.data\" class=\"list-unstyled\">\r\n <li [ngClass]=\"storeAddress?.storeId === details?.storeId ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-2\" (click)=\"getstoreAddress(details)\">\r\n {{details?.storeId}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"card mb-5 py-3 px-5\">\r\n <ul class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item\" (click)=\"SelectedTabs('ticket')\"><a [ngClass]=\"SelectedTab ==='ticket' ? 'active' :''\"\r\n class=\"nav-link fs-4 cursor-pointer no-border me-6 \">Ticket</a>\r\n </li>\r\n <li class=\"nav-item\" (click)=\"SelectedTabs('storeinfo')\">\r\n <a [ngClass]=\"SelectedTab ==='storeinfo' ? 'active' :''\" class=\"nav-link fs-4 cursor-pointer me-6\">Store\r\n Info</a>\r\n </li>\r\n </ul>\r\n</div>\r\n\r\n<div *ngIf=\"SelectedTab ==='ticket'\" class=\"card\">\r\n <div class=\"card-header border-0 pt-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <div class=\"d-flex\">\r\n <span class=\"card-label mb-2 ms-3 fw-semibold\">{{ticketId}}</span>\r\n <span *ngIf=\"InfraIssue\" class=\"badge badge-light-warning\">{{InfraIssue}}</span>\r\n </div>\r\n <span class=\"text-sub fw-bold mb-2 badge badge-light-default\"><svg class=\"me-3\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3877_96552)\">\r\n <path\r\n d=\"M8 1V3M4 1V3M1.5 5H10.5M2.5 2H9.5C10.0523 2 10.5 2.44772 10.5 3V10C10.5 10.5523 10.0523 11 9.5 11H2.5C1.94772 11 1.5 10.5523 1.5 10V3C1.5 2.44772 1.94772 2 2.5 2Z\"\r\n stroke=\"#667085\" stroke-width=\"1.1\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3877_96552\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg> Created Date:{{ ticketInfo?.createdAt|customDateFormat}}</span>\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <button *ngIf=\"(gs.userAccess | async)?.manage_tickets_isView\" type=\"button\" (click)=\"openContact()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3877_102203)\">\r\n <path\r\n d=\"M12.5415 4.16659C13.3555 4.32539 14.1035 4.72347 14.6899 5.30986C15.2763 5.89626 15.6744 6.64431 15.8332 7.45825M12.5415 0.833252C14.2326 1.02112 15.8095 1.7784 17.0134 2.98076C18.2173 4.18312 18.9765 5.75909 19.1665 7.44992M18.3332 14.0999V16.5999C18.3341 16.832 18.2866 17.0617 18.1936 17.2744C18.1006 17.487 17.9643 17.6779 17.7933 17.8348C17.6222 17.9917 17.4203 18.1112 17.2005 18.1855C16.9806 18.2599 16.7477 18.2875 16.5165 18.2666C13.9522 17.988 11.489 17.1117 9.32486 15.7083C7.31139 14.4288 5.60431 12.7217 4.32486 10.7083C2.91651 8.53426 2.04007 6.05908 1.76653 3.48325C1.7457 3.25281 1.77309 3.02055 1.84695 2.80127C1.9208 2.58199 2.03951 2.38049 2.1955 2.2096C2.3515 2.03871 2.54137 1.90218 2.75302 1.80869C2.96468 1.7152 3.19348 1.6668 3.42486 1.66659H5.92486C6.32928 1.6626 6.72136 1.80582 7.028 2.06953C7.33464 2.33324 7.53493 2.69946 7.59153 3.09992C7.69705 3.89997 7.89274 4.68552 8.17486 5.44159C8.28698 5.73986 8.31125 6.06401 8.24478 6.37565C8.17832 6.68729 8.02392 6.97334 7.79986 7.19992L6.74153 8.25825C7.92783 10.3445 9.65524 12.072 11.7415 13.2583L12.7999 12.1999C13.0264 11.9759 13.3125 11.8215 13.6241 11.755C13.9358 11.6885 14.2599 11.7128 14.5582 11.8249C15.3143 12.107 16.0998 12.3027 16.8999 12.4083C17.3047 12.4654 17.6744 12.6693 17.9386 12.9812C18.2029 13.2931 18.3433 13.6912 18.3332 14.0999Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3877_102203\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"ms-2\">Contact Details</span> </button>\r\n <button *ngIf=\"(gs.userAccess | async)?.manage_tickets_isView\" type=\"button\" (click)=\"openRemote()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><span>\r\n <img src=\"./assets/tango/Images/desktop.svg\">\r\n Connect Remotely</span> </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"card-body\">\r\n <div class=\"row\">\r\n <div class=\"col-sm-8\">\r\n <div\r\n *ngIf=\"ticketInfo?.ticketDetails.issueStatus ==='notidentified'&&(gs.userAccess | async)?.manage_tickets_isEdit&&ticketInfo?.status!=='closed'||ticketInfo?.ticketDetails.ticketType==='refreshticket'&&(gs.userAccess | async)?.manage_tickets_isEdit&&ticketInfo?.ticketDetails?.refreshTicketStatus==='notidentified'&&userType ==='client'\">\r\n <div class=\"openedissue d-flex justify-content-between align-items-center\" >\r\n <span class=\"profile-label fw-semibold\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\r\n fill=\"none\">\r\n <path\r\n d=\"M21 12C21 7.0293 16.9707 3 12 3C7.0293 3 3 7.0293 3 12C3 16.9707 7.0293 21 12 21\"\r\n fill=\"white\" />\r\n <path\r\n d=\"M12.9 3.04504C12.9 3.04504 15.6 6.60004 15.6 12L12.9 3.04504ZM11.1 20.955C11.1 20.955 8.4 17.4 8.4 12C8.4 6.60004 11.1 3.04504 11.1 3.04504M3.567 15.15H12H3.567ZM3.567 8.85004H20.433H3.567Z\"\r\n fill=\"white\" />\r\n <path\r\n d=\"M20.8911 17.3252C21.3357 17.5988 21.3078 18.2639 20.8506 18.3161L18.5403 18.578L17.5044 20.6588C17.2992 21.0719 16.6647 20.8694 16.5594 20.3582L15.4299 14.8538C15.3408 14.4218 15.7296 14.15 16.1049 14.3813L20.8911 17.3252Z\"\r\n fill=\"white\" />\r\n <path\r\n d=\"M20.25 12C20.25 12.4142 20.5858 12.75 21 12.75C21.4142 12.75 21.75 12.4142 21.75 12H20.25ZM12 21.75C12.4142 21.75 12.75 21.4142 12.75 21C12.75 20.5858 12.4142 20.25 12 20.25V21.75ZM13.4973 2.59142C13.2467 2.26156 12.7762 2.19725 12.4464 2.44778C12.1165 2.6983 12.0522 3.1688 12.3027 3.49866L13.4973 2.59142ZM14.85 12C14.85 12.4143 15.1858 12.75 15.6 12.75C16.0142 12.75 16.35 12.4143 16.35 12H14.85ZM10.5027 21.4087C10.7533 21.7385 11.2238 21.8028 11.5536 21.5523C11.8835 21.3018 11.9478 20.8313 11.6973 20.5014L10.5027 21.4087ZM11.6973 3.49866C11.9478 3.1688 11.8835 2.6983 11.5536 2.44778C11.2238 2.19725 10.7533 2.26156 10.5027 2.59142L11.6973 3.49866ZM3.567 14.4C3.15279 14.4 2.817 14.7358 2.817 15.15C2.817 15.5643 3.15279 15.9 3.567 15.9V14.4ZM12 15.9C12.4142 15.9 12.75 15.5643 12.75 15.15C12.75 14.7358 12.4142 14.4 12 14.4V15.9ZM3.567 8.10004C3.15279 8.10004 2.817 8.43583 2.817 8.85004C2.817 9.26426 3.15279 9.60004 3.567 9.60004V8.10004ZM20.433 9.60004C20.8472 9.60004 21.183 9.26426 21.183 8.85004C21.183 8.43583 20.8472 8.10004 20.433 8.10004V9.60004ZM20.8911 17.3252L21.2842 16.6865L21.284 16.6864L20.8911 17.3252ZM20.8506 18.3161L20.9351 19.0613L20.9357 19.0613L20.8506 18.3161ZM18.5403 18.578L18.4558 17.8328L18.0506 17.8787L17.8689 18.2438L18.5403 18.578ZM17.5044 20.6588L16.833 20.3246L16.8327 20.3252L17.5044 20.6588ZM16.5594 20.3582L15.8247 20.509L15.8248 20.5095L16.5594 20.3582ZM15.4299 14.8538L16.1646 14.703L16.1644 14.7023L15.4299 14.8538ZM16.1049 14.3813L15.7114 15.0198L15.712 15.0201L16.1049 14.3813ZM21.75 12C21.75 6.61509 17.3849 2.25 12 2.25V3.75C16.5565 3.75 20.25 7.44351 20.25 12H21.75ZM12 2.25C6.61509 2.25 2.25 6.61509 2.25 12H3.75C3.75 7.44351 7.44351 3.75 12 3.75V2.25ZM2.25 12C2.25 17.3849 6.61509 21.75 12 21.75V20.25C7.44351 20.25 3.75 16.5565 3.75 12H2.25ZM12.9 3.04504C12.3027 3.49866 12.3026 3.49846 12.3024 3.49828C12.3024 3.49823 12.3023 3.49806 12.3022 3.49797C12.3021 3.49779 12.302 3.49767 12.3019 3.4976C12.3018 3.49746 12.3019 3.49753 12.3021 3.49781C12.3025 3.49838 12.3036 3.4998 12.3053 3.50206C12.3086 3.50658 12.3144 3.51447 12.3225 3.52567C12.3387 3.54809 12.3641 3.58375 12.3973 3.63226C12.4638 3.72929 12.5616 3.87752 12.6805 4.07361C12.9183 4.46606 13.2393 5.04863 13.5614 5.79478C14.2061 7.28837 14.85 9.42526 14.85 12H16.35C16.35 9.17483 15.6439 6.83422 14.9386 5.20031C14.5857 4.38271 14.2317 3.73902 13.9633 3.29616C13.829 3.0746 13.7159 2.90291 13.6347 2.78443C13.5941 2.72518 13.5615 2.6792 13.5381 2.6469C13.5265 2.63075 13.5171 2.61802 13.5102 2.60876C13.5068 2.60413 13.504 2.60036 13.5018 2.59747C13.5007 2.59602 13.4998 2.5948 13.4991 2.59379C13.4987 2.59329 13.4983 2.59284 13.498 2.59244C13.4979 2.59224 13.4977 2.59199 13.4976 2.59189C13.4974 2.59165 13.4973 2.59142 12.9 3.04504ZM11.1 20.955C11.6973 20.5014 11.6974 20.5016 11.6976 20.5018C11.6976 20.5019 11.6977 20.502 11.6978 20.5021C11.6979 20.5023 11.698 20.5024 11.6981 20.5025C11.6982 20.5026 11.6981 20.5026 11.6979 20.5023C11.6975 20.5017 11.6964 20.5003 11.6948 20.498C11.6914 20.4935 11.6856 20.4856 11.6775 20.4744C11.6613 20.452 11.6359 20.4163 11.6027 20.3678C11.5362 20.2708 11.4384 20.1226 11.3195 19.9265C11.0817 19.534 10.7607 18.9515 10.4386 18.2053C9.79388 16.7117 9.15 14.5748 9.15 12H7.65C7.65 14.8253 8.35613 17.1659 9.06142 18.7998C9.41434 19.6174 9.76833 20.2611 10.0367 20.7039C10.171 20.9255 10.2841 21.0972 10.3653 21.2157C10.4059 21.2749 10.4385 21.3209 10.4619 21.3532C10.4735 21.3693 10.4829 21.3821 10.4898 21.3913C10.4932 21.396 10.496 21.3997 10.4982 21.4026C10.4993 21.4041 10.5002 21.4053 10.5009 21.4063C10.5013 21.4068 10.5017 21.4073 10.502 21.4076C10.5021 21.4078 10.5023 21.4081 10.5024 21.4082C10.5026 21.4084 10.5027 21.4087 11.1 20.955ZM9.15 12C9.15 9.42526 9.79388 7.28837 10.4386 5.79478C10.7607 5.04863 11.0817 4.46606 11.3195 4.07361C11.4384 3.87752 11.5362 3.72929 11.6027 3.63226C11.6359 3.58375 11.6613 3.54809 11.6775 3.52567C11.6856 3.51447 11.6914 3.50658 11.6948 3.50206C11.6964 3.4998 11.6975 3.49838 11.6979 3.49781C11.6981 3.49753 11.6982 3.49746 11.6981 3.4976C11.698 3.49767 11.6979 3.49779 11.6978 3.49797C11.6977 3.49806 11.6976 3.49823 11.6976 3.49828C11.6974 3.49846 11.6973 3.49866 11.1 3.04504C10.5027 2.59142 10.5026 2.59165 10.5024 2.59189C10.5023 2.59199 10.5021 2.59224 10.502 2.59244C10.5017 2.59284 10.5013 2.59329 10.5009 2.59379C10.5002 2.5948 10.4993 2.59602 10.4982 2.59747C10.496 2.60036 10.4932 2.60413 10.4898 2.60876C10.4829 2.61802 10.4735 2.63075 10.4619 2.6469C10.4385 2.6792 10.4059 2.72518 10.3653 2.78443C10.2841 2.90291 10.171 3.0746 10.0367 3.29616C9.76833 3.73902 9.41434 4.38271 9.06142 5.20031C8.35613 6.83422 7.65 9.17483 7.65 12H9.15ZM3.567 15.9H12V14.4H3.567V15.9ZM3.567 9.60004H20.433V8.10004H3.567V9.60004ZM20.498 17.9639C20.4792 17.9524 20.4575 17.9252 20.4597 17.8727C20.4609 17.8434 20.4715 17.7772 20.5297 17.7054C20.5961 17.6235 20.6889 17.5797 20.7655 17.5709L20.9357 19.0613C21.6167 18.9835 21.9384 18.4179 21.9584 17.9346C21.9776 17.4682 21.7476 16.9717 21.2842 16.6865L20.498 17.9639ZM20.7661 17.5709L18.4558 17.8328L18.6248 19.3232L20.9351 19.0613L20.7661 17.5709ZM17.8689 18.2438L16.833 20.3246L18.1758 20.9931L19.2117 18.9123L17.8689 18.2438ZM16.8327 20.3252C16.8668 20.2565 16.9395 20.1839 17.0398 20.1492C17.1277 20.1188 17.194 20.1316 17.2221 20.1405C17.272 20.1564 17.2896 20.1857 17.294 20.2069L15.8248 20.5095C15.9345 21.0419 16.322 21.4281 16.7668 21.5697C17.2286 21.7168 17.8707 21.6073 18.1761 20.9925L16.8327 20.3252ZM17.2941 20.2074L16.1646 14.703L14.6952 15.0046L15.8247 20.509L17.2941 20.2074ZM16.1644 14.7023C16.1723 14.7406 16.1666 14.883 16.0232 14.9833C15.88 15.0835 15.7446 15.0402 15.7114 15.0198L16.4984 13.7428C16.0899 13.4911 15.5724 13.468 15.1633 13.7543C14.754 14.0407 14.5984 14.535 14.6954 15.0053L16.1644 14.7023ZM15.712 15.0201L20.4982 17.964L21.284 16.6864L16.4978 13.7425L15.712 15.0201Z\"\r\n fill=\"#475467\" />\r\n </svg> {{selectedIssue}}\r\n </span>\r\n <!-- (click)=\"chooseanissue('')\" -->\r\n <div class=\"position-relative\">\r\n <div (click)=\"openDropdown($event)\"\r\n class=\"maincard-content cursor-pointer bg-white px-3 py-2\"> <svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#344054\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg> </div>\r\n <div *ngIf=\"dropDown\" class=\"card py-1 w-200px position-absolute top-50px end-0\">\r\n <ul *ngFor=\"let item of dropdownItems\" class=\"list-unstyled\">\r\n <li [ngClass]=\"this.selectedIssue === item ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-3\"\r\n (click)=\"selectItem(item)\">\r\n {{item}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div\r\n *ngIf=\"selectedIssue === 'Internet Issues'||selectedIssue === 'Camera Issues'&&showcamIssue||selectedIssue === 'System Issues' \">\r\n <div class=\"maincard-content w-100 mt-2 px-4 py-2 pb-4 mb-5\">\r\n <div class=\"maincard-label fw-semibold py-2\" *ngIf=\"secondaryIssues?.length>0\"> Please\r\n select the\r\n relevant problem facing from the following </div>\r\n <div *ngFor=\"let issue of secondaryIssues; let index = index\"\r\n class=\"maincard-content d-flex justify-content-between align-items-center w-100 mt-2 px-4 py-4 cursor-pointer \"\r\n (click)=\"toggleCheckbox(index)\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <span><img class=\"pe-3\" src='./assets/tango/Images/Featured icon.png'></span>\r\n <span class=\"headingtext\">{{issue?.name}}</span>\r\n <span class=\"w-300px\" [ngbTooltip]=\"tooltipContent\" triggers=\"mouseenter:mouseleave\"\r\n placement=\"left\">\r\n <svg class=\"ms-3\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1826_44871)\">\r\n <path\r\n d=\"M8.00065 10.6673V8.00065M8.00065 5.33398H8.00732M14.6673 8.00065C14.6673 11.6826 11.6826 14.6673 8.00065 14.6673C4.31875 14.6673 1.33398 11.6826 1.33398 8.00065C1.33398 4.31875 4.31875 1.33398 8.00065 1.33398C11.6826 1.33398 14.6673 4.31875 14.6673 8.00065Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1826_44871\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n\r\n <!-- Define tooltip content -->\r\n <ng-template #tooltipContent>\r\n <div class=\"custom-tooltip-content tooltip-content w-100\">\r\n <ul>\r\n <li class=\"w-100\" *ngFor=\"let tooltipItem of issue?.toolTips\">{{\r\n tooltipItem?.name }}</li>\r\n </ul>\r\n </div>\r\n </ng-template>\r\n\r\n <div class=\"roundedcheck d-flex align-items-center\">\r\n <input type=\"checkbox\" [checked]=\"issue.checked\" class=\"p-0\">\r\n </div>\r\n </div>\r\n <div class=\"form-group pt-6\" *ngIf=\"(gs.userAccess | async)?.manage_tickets_isEdit\">\r\n <label for=\"hiberntion\" class=\" maincard-label fw-semibold mb-2\">Hibernation (in days)\r\n *</label>\r\n <div class=\" w-250px position-relative\">\r\n <div class=\"position-absolute translate-middle-y top-50 me-5 ps-3 ticketDays\">\r\n <span class=\"svg-icon toggle-off svg-icon-1\" [ngClass]=\"count === 0 ? 'pe-none' : ''\" (click)=\"decreseCount()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M4.66602 10H16.3327\" stroke=\"#344054\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <input type=\"text\" class=\"form-control\" id=\"hiberntion\" [(ngModel)]=\"Hibernation\"\r\n style=\"text-align: center;\" value=\"{{count}}\" placeholder=\"0\" readOnly />\r\n <div class=\"position-absolute translate-middle-y top-50 end-0 me-3\">\r\n <span class=\"svg-icon toggle-on svg-icon-1 ticketDays\"\r\n (click)=\"increaseCount()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M10.4993 4.1665V15.8332M4.66602 9.99984H16.3327\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"selectedIssue === 'Others'\">\r\n <div class=\"maincard-content w-100 mt-2 px-4 py-2 pb-4 mb-5\">\r\n <div class=\"maincard-label fw-semibold py-2\">Please select the relevant problem facing from\r\n the\r\n following</div>\r\n <div *ngFor=\"let others of othersIssue; let i = index\"\r\n class=\"maincard-content d-flex justify-content-between align-items-center w-100 mt-2 px-4 py-4 cursor-pointer\"\r\n (click)=\"toggleRadiobox(others)\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <span><img class=\"pe-3\" src='./assets/tango/Images/Featured icon.png'></span>\r\n <span class=\"headingtext\">{{others.name}}</span>\r\n <span><svg class=\"ms-3\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1826_44871)\">\r\n <path\r\n d=\"M8.00065 10.6673V8.00065M8.00065 5.33398H8.00732M14.6673 8.00065C14.6673 11.6826 11.6826 14.6673 8.00065 14.6673C4.31875 14.6673 1.33398 11.6826 1.33398 8.00065C1.33398 4.31875 4.31875 1.33398 8.00065 1.33398C11.6826 1.33398 14.6673 4.31875 14.6673 8.00065Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1826_44871\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </div>\r\n <div class=\"roundedcheck d-flex align-items-center\">\r\n <input type=\"radio\" name=\"radioGroup{{i}}\" [value]=\"others.name\"\r\n [(ngModel)]=\"selectedOption\" class=\"p-0\">\r\n </div>\r\n </div>\r\n <div class=\"form-group pt-6\">\r\n <label for=\"hiberntion\" class=\" maincard-label fw-semibold mb-2\">Hibernation (in days)\r\n *</label>\r\n <div class=\" w-250px position-relative\">\r\n <div class=\"position-absolute translate-middle-y top-50 me-5 ps-3 ticketDays\">\r\n <span class=\"svg-icon toggle-off svg-icon-1\" [ngClass]=\"count === 0 ? 'pe-none' : ''\" (click)=\"decreseCount()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M4.66602 10H16.3327\" stroke=\"#344054\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <input type=\"text\" class=\"form-control\" id=\"hiberntion\" [(ngModel)]=\"Hibernation\"\r\n style=\"text-align: center;\" value=\"{{count}}\" placeholder=\"0\" readOnly />\r\n <div class=\"position-absolute translate-middle-y top-50 end-0 me-3\">\r\n <span class=\"svg-icon toggle-on svg-icon-1 ticketDays\"\r\n (click)=\"increaseCount()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M10.4993 4.1665V15.8332M4.66602 9.99984H16.3327\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div>\r\n <div class=\"maincard-content w-100 mt-2 px-4 py-2 pb-4\" *ngIf=\"selectedIssue === 'Camera Issues'&&!showcamIssue&&cameraListImages.length>0\">\r\n <div class=\"maincard-label fw-semibold py-2 mb-5\">\r\n Please make sure all of your surveillance cameras are functioning and verify the footage you have. </div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-6\" *ngFor=\"let item of cameraListImages;let i = index\">\r\n <span class=\"camera fw-bold\">{{item?.cameraName ? item?.cameraName:\"--\"}}</span><span class=\"camera fw-bold\"> Camera 1</span>\r\n <div\r\n class=\"rounded-2 w-100 mh-350px overflow-hidden mt-2\">\r\n <img class=\"w-100\" *ngIf=\"item?.thumbnailImage !== null && item?.thumbnailImage !== ''\" [src]=\"item?.thumbnailImage\">\r\n <!-- <img class=\"w-100\" src='https://images.unsplash.com/photo-1441986300917-64674bd600d8?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxzZWFyY2h8Mnx8c3RvcmV8ZW58MHx8MHx8fDA%3D'> -->\r\n <div *ngIf=\"item?.thumbnailImage === null || item?.thumbnailImage === ''\" class=\"w-100 h-300px rounded-2 overflow-hidden Nopreview align-content-center\">\r\n <div class=\"previewTitle text-center mb-5\">\r\n Preview not available {{item?.thumbnailImage}}\r\n </div>\r\n <div class=\"previewsubTitle fw-semibold\">\r\n The selected camera is not available at the moment.\r\n </div>\r\n </div> \r\n </div>\r\n <div class=\"d-flex justify-content-between mt-5 mb-5\">\r\n <button (click)=\"cameraSelection(i,'working')\" type=\"button\"\r\n class=\"btn btn-default btn-outline w-50 me-2\"\r\n [ngClass]=\"item.cameraNumber==='working'?'text-primary bg-light-primary':''\">\r\n Working\r\n </button>\r\n <button (click)=\"cameraSelection(i,'notworking')\" type=\"button\"\r\n class=\"btn btn-default btn-outline w-50 ms-2\"\r\n [ngClass]=\"item.cameraNumber==='notworking'?'text-danger bg-light-danger':''\">\r\n Not Working\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <button *ngIf=\"!showcamIssue\" class=\"btn btn-primary w-100 mt-6\"\r\n (click)=\"updateCamStatus()\">Proceed</button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"ticketInfo?.ticketDetails?.issueStatus ==='identified'||ticketInfo?.status === 'closed'||ticketInfo?.ticketDetails.ticketType === 'refreshticket'\">\r\n <div *ngFor=\"let obj of viewTicketData;let i=index\">\r\n\r\n <!-- Horizontal line with day -->\r\n\r\n <!-- <div class=\"d-flex align-items-center justify-content-between\">\r\n <div class=\"border border-1 border-gray p-0 w-100 me-3\"></div>\r\n <span class=\"text-day fw-bold-400\">Today</span>\r\n <div class=\"border border-1 border-gray p-0 w-100 ms-3\"></div>\r\n </div> -->\r\n\r\n <!-- User code start -->\r\n <div *ngIf=\"obj.actionBy === 'User'\" class=\"d-flex ms-5 mb-5\">\r\n <div *ngIf=\"obj.actionType !=='statusChange'\"\r\n class=\"d-flex flex-column justify-content-center align-items-center pe-3\">\r\n <div class=\"d-flex align-items-centre justify-content-centre\">\r\n <img class=\"msgprofile\"\r\n src=\"./assets/tango/Images/userProfile.svg\">\r\n </div>\r\n <div class=\"p-0 h-100 mt-3 border border-1 border-gray\" style=\"width:0px\"></div>\r\n </div>\r\n\r\n <div class=\"mt-2\" *ngIf=\"obj.actionType === 'statusChange'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400\">Updated the status</span><span\r\n class=\"timingtext fw-semibold text-primary\">Open -> Inprogress</span>\r\n </div>\r\n <div class=\"py-3 w-100 pt-0\">\r\n <div *ngIf=\"obj.actionType !=='statusChange'\">\r\n <div class=\"d-flex\">\r\n <span class=\"headingtext fw-semibold text-uppercase\">{{obj?.IdentifiedBy?obj?.IdentifiedBy:\"Tango\"}}</span>\r\n <span class=\"timingtext px-3 pt-1 fw-bold-400\">{{obj?.timeStamp}}</span>\r\n </div>\r\n <span class=\"profile-label font-bold-400\">User has replied</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType === 'statusCheckReply'\">\r\n <div class=\"textupdates fw-bold-400 mt-3\">Issue has been <b><span\r\n *ngIf=\"obj.statusCheckReply==='No'\">not</span> resolved.</b>\r\n\r\n </div>\r\n <div class=\"textupdates fw-bold-400\" *ngIf=\"obj.statusCheckReply==='No'\"> It takes\r\n {{obj?.hibernationDays}} more days to resolve.</div>\r\n </div>\r\n <div class=\"mt-2\" *ngIf=\"obj.actionType === 'comment'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400 text-wrap\">{{obj?.comment}}</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType ==='issueUpdate'\">\r\n \r\n <div *ngFor=\"let res of obj?.reasons\">\r\n \r\n <div class=\"textupdates fw-bold-400 mt-3\">\r\n We're currently encountering an <span\r\n class=\"fw-bold-700\">{{res.primaryIssue}}</span>\r\n </div>\r\n <div *ngIf=\"res.primaryIssue ==='Camera Issues'\">\r\n <div *ngIf=\"notworkingCamaralist && notworkingCamaralist?.length\" class=\"row\">\r\n <div *ngFor=\"let item of notworkingCamaralist\" class=\"col-sm-3 my-5\">\r\n <div class=\"rounded-3 overflow-hidden mt-2\">\r\n <span class=\"camera fw-bold\">{{item.cameraName}}</span>\r\n <img [src]=\"item?.thumbnailImage\" style=\"height:180px\">\r\n </div>\r\n </div>\r\n <div class=\"textupdates fw-bold-400 mt-3 me-2\">The above camera streaming are not working due\r\n <span class=\"textupdates fw-bold-700 mt-3\" *ngFor=\"let issue of res?.secondaryIssue; let last = last\">{{issue?.name}} <ng-container *ngIf=\"!last\"> ,</ng-container></span> to the Camera</div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"res?.secondaryIssue && res?.secondaryIssue?.length\" class=\"mt-3\">\r\n <div class=\"investigation fw-bold-400 mb-3\">The following are the relevant\r\n problem\r\n facing</div>\r\n <div class=\"mb-5\"> \r\n <ul class=\"timingtext fw-bold-400 mb-0\"\r\n *ngFor=\"let secIssues of res?.secondaryIssue\">\r\n <li>{{secIssues.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400\">{{obj?.comment}}</span>\r\n </div>\r\n\r\n <div *ngIf=\"selectedIssue === ''\" class=\"profile-label fw-semibold mt-2\">\r\n Kindly choose the option below that corresponds to the issue you are experiencing in\r\n the\r\n store.\r\n </div>\r\n </div>\r\n </div>\r\n <!-- User code end -->\r\n <!-- Tango code start -->\r\n <div *ngIf=\"obj.actionBy === 'Tango' || obj.actionBy === 'automated'\" class=\"d-flex mb-5 ms-5\">\r\n <div class=\"d-flex flex-column justify-content-center align-items-center pe-3\">\r\n <div class=\"d-flex align-items-centre justify-content-centre\">\r\n <div class=\"symbol symbol-48px symbol-circle\" *ngIf=\"obj?.IdentifiedBy&&obj?.IdentifiedBy!==''&&obj?.IdentifiedBy!=='Tango'\">\r\n <span class=\"symbol-label badge-light-primary text-symbol\">\r\n <span class=\"text-primary fs-4 badge badge-light-primary fw-normal\">\r\n {{obj?.IdentifiedBy?.slice(0,2) | uppercase }}\r\n </span>\r\n </span>\r\n </div>\r\n <img *ngIf=\"!obj?.IdentifiedBy||obj?.IdentifiedBy===''||obj?.IdentifiedBy==='Tango'\" class=\"msgprofile\" src=\"./assets/tango/Images/tangoprofile.png\">\r\n </div>\r\n <div class=\"p-0 h-100 mt-3 border border-1 border-gray verticalLine\"></div>\r\n </div>\r\n <div class=\"py-3 pt-0\">\r\n <div class=\"d-flex\">\r\n <span class=\"headingtext fw-semibold text-capitalize\">{{obj?.IdentifiedBy?obj?.IdentifiedBy:\"Tango\"}}</span>\r\n <span class=\"timingtext fw-bold-400 px-3 pt-1\">{{obj?.timeStamp}}</span>\r\n </div>\r\n <div class=\"mb-3\">\r\n <span class=\"profile-label fw-bold-400\">tango has replied to the\r\n issue</span>\r\n <div class=\"mt-2\" *ngIf=\"obj.actionType === 'statusChange'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400\">Updated the status</span><span\r\n class=\"timingtext fw-semibold text-primary\">Open -> Inprogress</span>\r\n </div>\r\n <div class=\"mt-2\" *ngIf=\"obj.actionType === 'comment'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400 text-wrap\">{{obj?.comment}}</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType === 'dataRecived'\">\r\n <div class=\"textupdates fw-bold-400 mt-3\">Thank you for your assistance. We have\r\n received the data from your Store.\r\n </div>\r\n </div>\r\n <div *ngIf=\"obj.actionType === 'statusCheckMonitor'\">\r\n <div class=\"textupdates fw-bold-400 mt-3\">Thank you for the update. We\u2019ll get\r\n back after the buffer time you provided.\r\n </div>\r\n </div>\r\n <div *ngIf=\"obj.actionType ==='stepsToResolve'\" class=\"mt-3\">\r\n <span class=\"textupdates fw-bold-400\">Please follow the below steps to resolve\r\n the above issue</span>\r\n <div *ngFor=\"let res of obj?.reasons\">\r\n <div class=\"mt-5 mb-5\">\r\n <div class=\"headingtext fw-semibold mb-1\">{{res.primaryIssue}}</div>\r\n <ul class=\"timingtext fw-bold-400 mb-0\"\r\n *ngFor=\"let secIssues of res?.secondaryIssue\">\r\n <li>{{secIssues.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"obj.actionType ==='issueUpdate'\">\r\n <div *ngFor=\"let res of obj?.reasons\">\r\n <div class=\"textupdates fw-bold-400 mt-3\">\r\n We're currently encountering an <span\r\n class=\"fw-bold-700\">{{res.primaryIssue}}</span>\r\n </div>\r\n <div *ngIf=\"res.primaryIssue ==='Camera Issues'\">\r\n <div class=\"row my-5\">\r\n <div *ngFor=\"let item of notworkingCamaralist\" class=\"col-sm-3\">\r\n <div class=\"rounded-3 overflow-hidden mt-2\">\r\n <span class=\"camera fw-bold\">{{item.cameraName}}</span>\r\n <img [src]=\"item?.thumbnailImage\" style=\"height:180px\">\r\n </div>\r\n </div>\r\n </div>\r\n <span class=\"textupdates fw-bold-400 mt-3 me-2\">The above camera streaming are not working due</span>\r\n <span class=\"textupdates fw-bold-700 mt-3\" *ngFor=\"let issue of res?.secondaryIssue; let last = last\">{{issue?.name}} <ng-container *ngIf=\"!last\"> ,</ng-container></span> <span class=\"textupdates fw-bold-400 mt-3\">to the Camera</span>\r\n \r\n </div>\r\n <div class=\"mt-3\">\r\n <div class=\"investigation fw-bold-400 mb-3\">The following are the relevant\r\n problem\r\n facing</div>\r\n <div class=\"mb-5\"> \r\n <ul class=\"timingtext fw-bold-400 mb-0\"\r\n *ngFor=\"let secIssues of res?.secondaryIssue\">\r\n <li>{{secIssues.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400 text-wrap\">{{obj?.comment}}</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType === 'statusCheckReply'\">\r\n <div class=\"textupdates fw-bold-400 mt-3\">Issue has been <b><span\r\n *ngIf=\"obj.statusCheckReply==='No'\">not</span> resolved.</b>\r\n\r\n </div>\r\n <div class=\"textupdates fw-bold-400\" *ngIf=\"obj.statusCheckReply==='No'\"> It\r\n takes {{obj?.hibernationDays}} more days to resolve.</div>\r\n </div>\r\n </div>\r\n <!-- defaultInfra start -->\r\n <div *ngIf=\"obj.actionType ==='defaultInfra'\" class=\"contenttext fw-bold-400\">We have\r\n not\r\n received data from your store. We are currently investigating the issue</div>\r\n <!-- defaultInfra end -->\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n <!-- Tango code end -->\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"loading\">\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 \r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src\" width=\"200px\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div> \r\n </div>\r\n </div>\r\n </ng-container>\r\n <div *ngIf=\"showSubmit && (gs.userAccess | async)?.manage_tickets_isEdit\" class=\"d-flex justify-content-between align-items-center mt-10\">\r\n <input class=\"form-control\" [(ngModel)]=\"comments\" (click)=\"addComment()\" type=\"text\"\r\n placeholder=\"Add your comments..\">\r\n\r\n <input type=\"file\" #fileInput style=\"display: none;\" accept=\"image/*\" multiple (change)=\"onFileSelected($event)\">\r\n <button [disabled]=\"ticketInfo?.status === 'closed'\" (click)=\"openFileInput()\" class=\"cursor-pointer btn btn-default btn-outline ms-3\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.8666 9.20835L10.2082 16.8667C9.27005 17.8049 7.99757 18.332 6.67075 18.332C5.34393 18.332 4.07145 17.8049 3.13325 16.8667C2.19505 15.9285 1.66797 14.656 1.66797 13.3292C1.66797 12.0024 2.19505 10.7299 3.13325 9.79168L10.7916 2.13335C11.4171 1.50788 12.2654 1.15649 13.1499 1.15649C14.0345 1.15649 14.8828 1.50788 15.5082 2.13335C16.1337 2.75882 16.4851 3.60713 16.4851 4.49168C16.4851 5.37623 16.1337 6.22455 15.5082 6.85002L7.84158 14.5083C7.52885 14.8211 7.10469 14.9968 6.66242 14.9968C6.22014 14.9968 5.79598 14.8211 5.48325 14.5083C5.17051 14.1956 4.99482 13.7715 4.99482 13.3292C4.99482 12.8869 5.17051 12.4627 5.48325 12.15L12.5582 5.08335\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></button>\r\n\r\n <button [disabled]=\"ticketInfo?.status === 'closed'\" class=\"btn btn-primary ms-3\" (click)=\"updateTicket()\"> Submit </button>\r\n\r\n <!-- <button class=\"btn btn-default btn-outline ms-3 text-nowrap\"><span>\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 <g clip-path=\"url(#clip0_3917_54621)\">\r\n <path\r\n d=\"M7.57435 7.50008C7.77027 6.94314 8.15698 6.4735 8.66598 6.17436C9.17498 5.87521 9.77343 5.76586 10.3553 5.86567C10.9372 5.96549 11.465 6.26802 11.8452 6.71969C12.2255 7.17136 12.4336 7.74302 12.4327 8.33342C12.4327 10.0001 9.93268 10.8334 9.93268 10.8334M9.99935 14.1667H10.0077M18.3327 10.0001C18.3327 14.6025 14.6017 18.3334 9.99935 18.3334C5.39698 18.3334 1.66602 14.6025 1.66602 10.0001C1.66602 5.39771 5.39698 1.66675 9.99935 1.66675C14.6017 1.66675 18.3327 5.39771 18.3327 10.0001Z\"\r\n stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3917_54621\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg> Can\u2019t able to reach the store?\r\n </span>\r\n </button> -->\r\n </div>\r\n <div class=\"text-danger\" *ngIf=\"errorMessage\">{{ errorMessage }}</div>\r\n\r\n </div>\r\n <div class=\"col-sm-4\">\r\n <div class=\"border border-1 border-gray rounded-3 p-5 h-100\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"camera fw-semibold\">Attachments</div>\r\n </div>\r\n <div *ngIf=\"ticketInfo?.attachments.length ===0\"\r\n class=\"w-100 mt-10 mb-10 mh-60vh d-grid text-center mx-auto\">\r\n <img class=\"mx-auto\" src=\"./assets/tango/Images/taketicket.svg\">\r\n <span class=\"taketicket mt-2 fw-bold\">No Attachments </span>\r\n </div>\r\n <div *ngIf=\"ticketInfo?.attachments.length > 0\" class=\"row mt-10\">\r\n <div class=\"col-sm-6 position-relative mb-10\" *ngFor=\"let file of ticketInfo?.attachments\">\r\n <div class=\"Attachment border border-1 border-gray w-100 rounded-2 overflow-hidden\" >\r\n <img class=\"h-150px\" (click)=\"downloadimage(file?.signedUrl,'add')\" [src]=\"file?.signedUrl\" alt=\"Selected Image\">\r\n <div class=\"d-grid border border-top-1 px-5 py-2\">\r\n <span class=\"imagename fw-bold\">{{file.fileName}}</span>\r\n <!-- <span class=\"fw-bold-400 updateddate\">{{file.lastModifiedDateString}}</span> -->\r\n </div>\r\n <div (click)=\"removeFile(file?.signedUrl)\" class=\"me-3 p-1 position-absolute width-20px height-20px rounded-3 end-0 top-0 border border-1 border-primary bg-light-primary cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M15 5L5 15M5 5L15 15\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n\r\n </div>\r\n\r\n</div>\r\n\r\n<div *ngIf=\"SelectedTab === 'storeinfo'\">\r\n <lib-store-info [storeId]=\"ticketInfo?.basicDetails?.storeId\"></lib-store-info>\r\n</div>", styles: [".nav-item .nav-link{font-size:16px!important;line-height:24px}.nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-700, #009BF3);padding:8px 12px}.nav-item .nav-link:hover{border:none}.rowbody{background:var(--Gray-50, #F9FAFB)}.contenttext{color:var(--Gray-500, #667085);font-size:14px;line-height:20px}.camera{color:var(--Gray-500, #344054);font-size:14px;line-height:20px}.textupdates{color:var(--Gray-500, #344054);font-size:16px;line-height:24px}.store-label{color:var(--Primary-700, #009BF3)!important;font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-decoration-line:underline;text-transform:capitalize}.card-label{font-size:18px!important}.text-sub{color:var(--Gray-700, #344054)!important;font-size:12px!important;line-height:18px!important;font-weight:500!important}.text-day{color:var(--Gray-500, #667085);font-size:14px;line-height:20px}.maincard-content{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD)}.maincard-label{color:var(--Gray-900, #101828);font-size:16px;line-height:24px}.openedissue{border-radius:6px;background:var(--Gray-50, #F9FAFB);padding:8px 12px}.imagename{color:var(--Gray-900, #101828);font-size:12px;line-height:18px}.updateddate{color:var(--Gray-500, #667085);font-size:12px;line-height:18px}.w-45{width:49%}input,textarea{padding:10px 14px;border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d}.msgprofile{width:48px!important;height:48px!important;border-radius:200px;overflow:hidden}.timingtext{color:var(--Gray-500, #667085);font-size:14px;line-height:20px}.profile-label{font-size:12px;color:var(--Gray-500, #667085);line-height:18px}.investigation{color:var(--Gray-500, #667085);font-size:16px;line-height:24px}.fw-bold-400{font-weight:400!important}.fw-bold-700{font-weight:700!important}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.card-label{color:#000!important;font-size:16px!important;line-height:24px}.roundedcheck input[type=checkbox]{width:16px!important;height:16px!important;border-radius:10px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-300, #D0D5DD);box-shadow:none;font-size:.8em;text-align:center;line-height:1em;background:#fff}.roundedcheck input[type=checkbox]:checked{outline:none;background-color:var(--primary-50, #00A3FF)}.roundedcheck input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid white;border-right:2px solid white;display:inline-block;width:4px;padding:5px 0 2px 3px;margin-top:2px}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.text-primary{color:var(--Primary-700, #009BF3)!important}.verticalLine{width:0px;min-height:15px}.symbol .symbol-label{width:48px!important;height:48px!important}.custom-tooltip-content{max-width:500px!important;text-align:left!important}.Nopreview{border:1px solid var(--Gray-500, #667085);background:var(--Gray-100, #F2F4F7);color:var(--Gray-500, #667085)}.Nopreview .previewTitle{font-size:20px;font-weight:700;line-height:20px}.Nopreview .previewsubTitle{text-align:center;font-size:12px;line-height:18px}\n"] }]
|
|
527
527
|
}], ctorParameters: () => [{ type: i1.NgbModal }, { type: i2.Router }, { type: i3.TicketsService }, { type: i0.ChangeDetectorRef }, { type: i2.ActivatedRoute }, { type: i4.ToastService }, { type: i5.GlobalStateService }], propDecorators: { fileInput: [{
|
|
@@ -534,4 +534,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
|
534
534
|
type: HostListener,
|
|
535
535
|
args: ['document:click', ['$event']]
|
|
536
536
|
}] } });
|
|
537
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby10aWNrZXQtdXNlci9zcmMvbGliL2NvbXBvbmVudHMvdGlja2V0cy90aWNrZXRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy90aWNrZXRzL3RpY2tldHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUF3QyxNQUFNLGVBQWUsQ0FBQztBQUV6RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQU96RSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7OztBQU8xQyxNQUFNLE9BQU8sZ0JBQWdCO0lBc0RQO0lBQWdDO0lBQzFDO0lBQ0E7SUFDQTtJQUNBO0lBQ0Q7SUExRFQsV0FBVyxHQUFRLFFBQVEsQ0FBQztJQUM1QixhQUFhLEdBQVEsaUJBQWlCLENBQUM7SUFDdkMsZUFBZSxDQUFNO0lBQ3JCLFdBQVcsQ0FBTTtJQUNqQixRQUFRLEdBQVEsRUFBRSxDQUFDO0lBQ25CLGFBQWEsQ0FBTTtJQUNuQixhQUFhLEdBQVUsQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZGLFdBQVcsR0FBVSxDQUFDLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsMEJBQTBCLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRSxDQUFDLENBQUE7SUFDdkgsV0FBVyxHQUFZLEtBQUssQ0FB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Q0FBQTtZQUM1QyxDQUFDO1lBQ0QsUUFBUTtZQUVSLENBQUM7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUM1QjtJQUNILENBQUM7dUdBOWhCVSxnQkFBZ0I7MkZBQWhCLGdCQUFnQiw0VENqQjdCLHd4c0RBcW1CTTs7MkZEcGxCTyxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsYUFBYTt3UEFzQ0MsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQUNPLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQStCM0IsT0FBTztzQkFETixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIFZpZXdDaGlsZCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYk1vZGFsLCBOZ2JNb2RhbFJlZiwgTmdiQWN0aXZlTW9kYWwsIE5nYlRvb2x0aXAgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IENvbnRhY3REZXRhaWxzQ29tcG9uZW50IH0gZnJvbSAnLi4vY29udGFjdC1kZXRhaWxzL2NvbnRhY3QtZGV0YWlscy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWtlcmVtb3RlQ29tcG9uZW50IH0gZnJvbSAnLi4vdGFrZXJlbW90ZS90YWtlcmVtb3RlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGlja2V0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90aWNrZXQtaW5mcmEuc2VydmljZSc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXRpY2tldHMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90aWNrZXRzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdGlja2V0cy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFRpY2tldHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgU2VsZWN0ZWRUYWI6IGFueSA9ICd0aWNrZXQnO1xyXG4gIHNlbGVjdGVkSXNzdWU6IGFueSA9ICdJbnRlcm5ldCBJc3N1ZXMnO1xyXG4gIHNlY29uZGFyeUlzc3VlczogYW55O1xyXG4gIGlzc3VlU3RhdHVzOiBhbnk7XHJcbiAgY29tbWVudHM6IGFueSA9ICcnO1xyXG4gIHByaW1hcnlJc3N1ZXM6IGFueTtcclxuICBkcm9wZG93bkl0ZW1zOiBhbnlbXSA9IFsnSW50ZXJuZXQgSXNzdWVzJywgJ0NhbWVyYSBJc3N1ZXMnLCAnU3lzdGVtIElzc3VlcycsICdPdGhlcnMnXTtcclxuICBvdGhlcnNJc3N1ZTogYW55W10gPSBbeyBuYW1lOiAnUG93ZXIgU2h1dGRvd24nIH0sIHsgbmFtZTogJ1N0b3JlIFRlbXBvcmFyaWx5IENsb3NlZCcgfSwgeyBuYW1lOiAnQXBwbGljYXRpb24gSXNzdWVzJyB9XVxyXG4gIGNhbWVyYUlzc3VlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgY2FtZXJhU2VsZWN0V29yazogYm9vbGVhbiA9IHRydWU7XHJcbiAgc2hvd1N1Ym1pdDogYm9vbGVhbiA9IHRydWU7XHJcbiAgY2FtZXJhU2VsZWN0OiBhbnk7XHJcbiAgc3RhdGU6IGFueTtcclxuICBsb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuICBub0RhdGE6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpbnB1dEhpYmVybmF0aW9uOiBhbnkgPSAnMDAnO1xyXG4gIGNvdW50OiBhbnkgPSAwO1xyXG4gIGlzQ2hlY2tlZDogYm9vbGVhbltdID0gW107XHJcbiAgcmVzb2x2ZWRJc3N1ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRyb3BEb3duOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdGlja2V0SWQ6IHN0cmluZyB8IG51bGw7XHJcbiAgdGlja2V0SW5mbzogYW55O1xyXG4gIGFjdGl2ZVRpY2tldERldGFpbHM6IGFueTtcclxuICBzdG9yZUFkZHJlc3M6IGFueTtcclxuICByZXBseU9wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICByZXBsaWVkSXNzdWU6IGFueTtcclxuICB2aWV3VGlja2V0RGF0YTogYW55O1xyXG4gIGN1cnJlbnRUaW1lOiBEYXRlID0gbmV3IERhdGUoKTtcclxuICB0YXJnZXRUaW1lOiBEYXRlXHJcbiAgc2VsZWN0ZWRGaWxlczogYW55ID0gW107XHJcbiAgYnJhbmRMb2dvOiBzdHJpbmcgfCBBcnJheUJ1ZmZlciB8IG51bGwgPSBudWxsO1xyXG4gIGxhc3RNb2RpZmllZERhdGVTdHJpbmc6IHN0cmluZztcclxuXHJcbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JykgZmlsZUlucHV0OiBhbnk7XHJcbiAgQFZpZXdDaGlsZCgndG9vbHRpcENvbnRlbnQnKSB0b29sdGlwQ29udGVudCE6IE5nYlRvb2x0aXA7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgLy8gaGVhZGVyRmlsdGVyOiBhbnk7XHJcbiAgdXNlcjogYW55O1xyXG4gIHVwZGF0ZWREYXRlOiBEYXRlO1xyXG4gIGlzR3JlYXRlclRoYW41XzMwSG91cnM6IGJvb2xlYW47XHJcbiAgc3RvcmVJZDogc3RyaW5nIHwgbnVsbDtcclxuICBzdG9yZURyb3BEb3duOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWRPcHRpb246IGFueTtcclxuICBIaWJlcm5hdGlvbjogYW55O1xyXG4gIGNsaWVudElkOiBhbnk7XHJcbiAgc2hvd2NhbUlzc3VlOiBib29sZWFuID0gZmFsc2VcclxuICBjYW1lcmFMaXN0SW1hZ2VzOiBhbnkgPSBbXTtcclxuICBmaW5hbENhbUxpc3Q6IGFueSA9IFtdO1xyXG4gIHN0b3JlTmFtZTogYW55O1xyXG4gIG5vdHdvcmtpbmdDYW1hcmFsaXN0OiBhbnkgPSBbXTtcclxuICB1c2VyVHlwZTogc3RyaW5nO1xyXG4gIGVycm9yTWVzc2FnZTogc3RyaW5nO1xyXG4gIEluZnJhSXNzdWU6IGFueTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1vZGFsU2VydmljZTogTmdiTW9kYWwsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IFRpY2tldHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgZ3M6IEdsb2JhbFN0YXRlU2VydmljZSkge1xyXG4gICAgdGhpcy50aWNrZXRJZCA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1NYXAuZ2V0KCd0aWNrZXRJZCcpO1xyXG4gICAgdGhpcy5zdG9yZUlkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ3N0b3JlSWQnKTtcclxuICAgIHRoaXMudmlld1RpY2tldChmYWxzZSlcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBjb25zdFxyXG4gICAgICB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBpZiAoIXRhcmdldC5jbG9zZXN0KCcuZHJvcERvd24nKSkge1xyXG4gICAgICB0aGlzLmRyb3BEb3duID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRhcmdldC5jbG9zZXN0KCcuc3RvcmVEcm9wRG93bicpKSB7XHJcbiAgICAgIHRoaXMuc3RvcmVEcm9wRG93biA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnVzZXIgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd1c2VyLWluZm8nKSB8fCBcIlwiKVxyXG4gICAgdGhpcy51c2VyVHlwZSA9IHRoaXMudXNlci51c2VyVHlwZVxyXG4gICAgdGhpcy5hY3RpdmVUaWNrZXQoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgdmlld1RpY2tldCh0eXBlOiBib29sZWFuKSB7XHJcbiAgICBsZXQgcGFyYW1zID0ge1xyXG4gICAgICB0aWNrZXRJZDogdGhpcy50aWNrZXRJZFxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2VydmljZS52aWV3VGlja2V0KHBhcmFtcykucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIGlmICh0eXBlKSB7XHJcbiAgICAgICAgICAgIHRoaXMudGlja2V0SW5mbyA9IHJlcz8uZGF0YVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy50aWNrZXRJbmZvID0gcmVzPy5kYXRhXHJcbiAgICAgICAgICAgIHRoaXMuSW5mcmFJc3N1ZSA9IHRoaXMudGlja2V0SW5mbz8udGlja2V0QWN0aXZpdHkuZmlsdGVyKChlbDogYW55KSA9PiBlbD8uYWN0aW9uVHlwZSA9PSAnaXNzdWVVcGRhdGUnKVswXT8ucmVhc29uc1swXT8ucHJpbWFyeUlzc3VlO1xyXG4gICAgICAgICAgICBpZiAodGhpcy50aWNrZXRJbmZvPy50aWNrZXREZXRhaWxzPy5pc3N1ZVN0YXR1cyA9PSAnbm90aWRlbnRpZmllZCcgJiYgdGhpcy50aWNrZXRJbmZvLnN0YXR1cyAhPT0gJ2Nsb3NlZCcgfHwgdGhpcy50aWNrZXRJbmZvPy50aWNrZXREZXRhaWxzLnRpY2tldFR5cGUgPT0gJ3JlZnJlc2h0aWNrZXQnICYmIHRoaXMudGlja2V0SW5mby5zdGF0dXMgIT09ICdjbG9zZWQnKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5wcmltYXJ5UmVhc29uKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZWNvbmRhcnlSZWFzb24odGhpcy5zZWxlY3RlZElzc3VlKTtcclxuICAgICAgICAgICAgICBpZiAodGhpcy50aWNrZXRJbmZvPy50aWNrZXREZXRhaWxzLnRpY2tldFR5cGUgPT0gJ3JlZnJlc2h0aWNrZXQnKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZpZXdUaWNrZXREYXRhID0gcmVzLmRhdGEudGlja2V0QWN0aXZpdHkuc2xpY2UoKS5yZXZlcnNlKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50aWNrZXRJbmZvPy5jYW1lcmFMaXN0Py5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIGxldCBub3R3b3JraW5nQ2FtZXJhID0gdGhpcy50aWNrZXRJbmZvLmNhbWVyYUxpc3QuZmlsdGVyKChlOiBhbnkpID0+IGUuc3RhdHVzICE9IFwid29ya2luZ1wiKTtcclxuICAgICAgICAgICAgICAgICAgaWYgKG5vdHdvcmtpbmdDYW1lcmEubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q2FtZXJhTGlzdChub3R3b3JraW5nQ2FtZXJhKVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZpZXdUaWNrZXREYXRhLmZvckVhY2goKGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBlLnRpbWVTdGFtcCA9IHRoaXMuZ2V0UmVsYXRpdmVUaW1lKGUudGltZVN0YW1wKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy52aWV3VGlja2V0RGF0YSA9IHRoaXMudmlld1RpY2tldERhdGEuZmlsdGVyKChlOiBhbnkpID0+IGUuYWN0aW9uVHlwZSAhPSBcInN0YXR1c0NoZWNrXCIpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnZpZXdUaWNrZXREYXRhID0gcmVzLmRhdGEudGlja2V0QWN0aXZpdHkuc2xpY2UoKS5yZXZlcnNlKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy52aWV3VGlja2V0RGF0YS5mb3JFYWNoKChlOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGUudGltZVN0YW1wID0gdGhpcy5nZXRSZWxhdGl2ZVRpbWUoZS50aW1lU3RhbXApO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIHRoaXMudmlld1RpY2tldERhdGEgPSB0aGlzLnZpZXdUaWNrZXREYXRhLmZpbHRlcigoZTogYW55KSA9PiBlLmFjdGlvblR5cGUgIT0gXCJzdGF0dXNDaGVja1wiKTtcclxuICAgICAgICAgICAgICBpZiAodGhpcy50aWNrZXRJbmZvPy5jYW1lcmFMaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIGxldCBub3R3b3JraW5nQ2FtZXJhID0gdGhpcy50aWNrZXRJbmZvLmNhbWVyYUxpc3QuZmlsdGVyKChlOiBhbnkpID0+IGUuc3RhdHVzICE9IFwid29ya2luZ1wiKTtcclxuICAgICAgICAgICAgICAgIGlmIChub3R3b3JraW5nQ2FtZXJhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5nZXRDYW1lcmFMaXN0KG5vdHdvcmtpbmdDYW1lcmEpXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChyZXM/LmRhdGE/LnN0YXR1cyA9PSAnb3BlbicpIHtcclxuICAgICAgICAgICAgICB0aGlzLnN0YXR1c1VwZGF0ZSgpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcclxuXHJcblxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICAgICAgfSxcclxuICAgICAgY29tcGxldGUoKSB7XHJcblxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0Q2FtZXJhTGlzdChub3R3b3JraW5nQ2FtZXJhOiBhbnkpIHtcclxuICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgIGNhbWVyYTogbm90d29ya2luZ0NhbWVyYVxyXG4gICAgfVxyXG4gICAgdGhpcy5zZXJ2aWNlLmdldENhbWVyYUxpc3QocGFyYW1zKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMubm90d29ya2luZ0NhbWFyYWxpc3QgPSByZXMuZGF0YVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgY2FtZXJhU2VsZWN0aW9uKGluZGV4OiBhbnksIHR5cGU6IGFueSkge1xyXG4gICAgdGhpcy5jYW1lcmFMaXN0SW1hZ2VzLm1hcCgodmFsdWU6IGFueSwgaW5kOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGluZCA9PT0gaW5kZXgpIHtcclxuICAgICAgICB2YWx1ZS5jYW1lcmFOdW1iZXIgPSB0eXBlXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIHVwZGF0ZUNhbVN0YXR1cygpIHtcclxuICAgIHRoaXMuc2hvd2NhbUlzc3VlID0gdHJ1ZVxyXG4gICAgdGhpcy5maW5hbENhbUxpc3QgPSBbXVxyXG4gICAgdGhpcy5jYW1lcmFMaXN0SW1hZ2VzLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLmZpbmFsQ2FtTGlzdC5wdXNoKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIENhbWlkOiBlbGVtZW50Ll9pZCxcclxuICAgICAgICAgIENhbU5hbWU6IGVsZW1lbnQuY2FtZXJhTmFtZSxcclxuICAgICAgICAgIHN0YXR1czogZWxlbWVudC5jYW1lcmFOdW1iZXIsXHJcbiAgICAgICAgICB0aHVtbmFpbEltYWdlOiBcIlwiXHJcbiAgICAgICAgfVxyXG4gICAgICApXHJcblxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxyXG4gIH1cclxuICBnZXRSZWxhdGl2ZVRpbWUodGltZXN0YW1wOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRpbWVzdGFtcCk7XHJcbiAgICBjb25zdCBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICBjb25zdCBkaWZmZXJlbmNlID0gY3VycmVudERhdGUuZ2V0VGltZSgpIC0gZGF0ZS5nZXRUaW1lKCk7XHJcbiAgICBjb25zdCBzZWNvbmRzID0gTWF0aC5mbG9vcihkaWZmZXJlbmNlIC8gMTAwMCk7XHJcbiAgICBjb25zdCBtaW51dGVzID0gTWF0aC5mbG9vcihzZWNvbmRzIC8gNjApO1xyXG4gICAgY29uc3QgaG91cnMgPSBNYXRoLmZsb29yKG1pbnV0ZXMgLyA2MCk7XHJcbiAgICBjb25zdCBkYXlzID0gTWF0aC5mbG9vcihob3VycyAvIDI0KTtcclxuXHJcbiAgICBpZiAoZGF5cyA+IDApIHtcclxuICAgICAgcmV0dXJuIGRheXMgPT09IDEgPyAnMSBkYXkgYWdvJyA6IGAke2RheXN9IGRheXMgYWdvYDtcclxuICAgIH0gZWxzZSBpZiAoaG91cnMgPiAwKSB7XHJcbiAgICAgIHJldHVybiBob3VycyA9PT0gMSA/ICcxIGhvdXIgYWdvJyA6IGAke2hvdXJzfSBob3VycyBhZ29gO1xyXG4gICAgfSBlbHNlIGlmIChtaW51dGVzID4gMCkge1xyXG4gICAgICByZXR1cm4gbWludXRlcyA9PT0gMSA/ICcxIG1pbnV0ZSBhZ28nIDogYCR7bWludXRlc30gbWludXRlcyBhZ29gO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuICdKdXN0IG5vdyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhY3RpdmVUaWNrZXQoKSB7XHJcbiAgICBsZXQgZGF0YSA9IHtcclxuICAgICAgdXNlcklkOiB0aGlzLnVzZXIuX2lkLFxyXG4gICAgICBpc3N1ZVR5cGU6IFwiaW5mcmFcIixcclxuICAgICAgLy8gZnJvbURhdGU6IHRoaXMuaGVhZGVyRmlsdGVyPy5kYXRlPy5zdGFydERhdGUsXHJcbiAgICAgIC8vIHRvRGF0ZTogdGhpcy5oZWFkZXJGaWx0ZXI/LmRhdGU/LmVuZERhdGUsXHJcbiAgICB9XHJcbiAgICB0aGlzLnNlcnZpY2UuYWN0aXZlVGlja2V0KGRhdGEpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmFjdGl2ZVRpY2tldERldGFpbHMgPSByZXM/LmRhdGE7XHJcbiAgICAgICAgdGhpcy5zdG9yZUFkZHJlc3MgPSB0aGlzLmFjdGl2ZVRpY2tldERldGFpbHM/LmRhdGE/LmZpbHRlcigoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS5zdG9yZUlkID09PSB0aGlzLnN0b3JlSWQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5zdG9yZUFkZHJlc3MgPSB0aGlzLnN0b3JlQWRkcmVzc1swXTtcclxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSxcclxuXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0c3RvcmVBZGRyZXNzKGRldGFpbHM6IGFueSkge1xyXG4gICAgdGhpcy5zdG9yZUFkZHJlc3MgPSBkZXRhaWxzXHJcbiAgICB0aGlzLnN0b3JlTmFtZSA9IHRoaXMuc3RvcmVBZGRyZXNzLnN0b3JlTmFtZTtcclxuICAgIHRoaXMuc3RvcmVJZCA9IHRoaXMuc3RvcmVBZGRyZXNzLnN0b3JlSWRcclxuICAgIHRoaXMuY2xpZW50SWQgPSB0aGlzLnN0b3JlQWRkcmVzcy5jbGllbnRJZFxyXG4gICAgdGhpcy5zdG9yZURyb3BEb3duID0gZmFsc2U7XHJcbiAgICB0aGlzLnRpY2tldElkID0gZGV0YWlscy50aWNrZXRJZFxyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChgdGlja2V0cy91c2Vycy90aWNrZXRpbmZvLyR7ZGV0YWlscy50aWNrZXRJZH0vJHtkZXRhaWxzLnN0b3JlSWR9YClcclxuICAgIC8vIHRoaXMuYWN0aXZlVGlja2V0KCk7XHJcbiAgICB0aGlzLnZpZXdUaWNrZXQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgUHJldlJvdXRlKCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL3RpY2tldHMvdXNlcnM/dHlwZT1pbmZyYScpXHJcbiAgfVxyXG5cclxuICBwcmltYXJ5UmVhc29uKCkge1xyXG4gICAgbGV0IHBhcmFtcyA9IHtcclxuICAgICAgXCJuYW1lXCI6IHRoaXMuc2VsZWN0ZWRJc3N1ZSxcclxuICAgICAgXCJvcmRlclwiOiAyXHJcbiAgICB9XHJcbiAgICB0aGlzLnNlcnZpY2UucHJpbWFyeVJlYXNvbihwYXJhbXMpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5wcmltYXJ5SXNzdWVzID0gcmVzO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICAgICAgfSxcclxuICAgICAgY29tcGxldGUoKSB7XHJcblxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgc2Vjb25kYXJ5UmVhc29uKHZhbHVlOiBhbnkpIHtcclxuICAgIGlmKHZhbHVlKXtcclxuICAgICAgbGV0IHBhcmFtcyA9IHsgXCJwcmltYXJ5SXNzdWVcIjogdmFsdWUgfVxyXG4gICAgICB0aGlzLnNlcnZpY2Uuc2Vjb25kYXJ5UmVhc29uKHBhcmFtcykucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnNlY29uZGFyeUlzc3VlcyA9IHJlcy5kYXRhLnJlc3VsdDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3IoZXJyKSB7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgIFxyXG4gIH1cclxuXHJcbiAgdXBkYXRlVGlja2V0KCkge1xyXG4gICAgbGV0IGRhdGEgPSBbXVxyXG4gICAgaWYgKHRoaXMuc2Vjb25kYXJ5SXNzdWVzICYmIHRoaXMuc2Vjb25kYXJ5SXNzdWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJc3N1ZSA9PSAnT3RoZXJzJykge1xyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkT3B0aW9uID09PSAnQXBwbGljYXRpb24gSXNzdWVzJykge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZElzc3VlID0gJ0FwcGxpY2F0aW9uIElzc3Vlcyc7XHJcbiAgICAgICAgICBkYXRhID0gW107XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJc3N1ZSA9ICdTdG9yZSBPcGVyYXRpb24gSXNzdWVzJztcclxuICAgICAgICAgIGRhdGEgPSBbdGhpcy5zZWxlY3RlZE9wdGlvbl1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gZGF0YSA9IHRoaXMub3RoZXJzSXNzdWUuZmlsdGVyKChpdGVtOiBhbnkpID0+IGl0ZW0uY2hlY2tlZCkubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0ubmFtZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZGF0YSA9IHRoaXMuc2Vjb25kYXJ5SXNzdWVzLmZpbHRlcigoaXRlbTogYW55KSA9PiBpdGVtLmNoZWNrZWQpLm1hcCgoaXRlbTogYW55KSA9PiBpdGVtLm5hbWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZE9wdGlvbiAhPSAnQXBwbGljYXRpb24gSXNzdWVzJykge1xyXG4gICAgaWYgKHRoaXMudGlja2V0SW5mbz8udGlja2V0RGV0YWlscy5pc3N1ZVN0YXR1cyA9PT0gJ25vdGlkZW50aWZpZWQnICYmIGRhdGEubGVuZ3RoID09IDAgfHwgdGhpcy50aWNrZXRJbmZvPy50aWNrZXREZXRhaWxzLnRpY2tldFR5cGU9PSdyZWZyZXNodGlja2V0JyYmdGhpcy50aWNrZXRJbmZvPy50aWNrZXREZXRhaWxzPy5yZWZyZXNoVGlja2V0U3RhdHVzID09PSAnbm90aWRlbnRpZmllZCcgJiYgZGF0YS5sZW5ndGggPT0gMCkge1xyXG4gICAgICByZXR1cm4gdGhpcy50b2FzdFNlcnZpY2UuZ2V0RXJyb3JUb2FzdChcIlBsZWFzZSBTZWxlY3QgSXNzdWVzXCIpXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudGlja2V0SW5mbz8udGlja2V0RGV0YWlscy5pc3N1ZVN0YXR1cyA9PT0gJ2lkZW50aWZpZWQnICYmIHRoaXMuY29tbWVudHMgPT0gJycgfHwgdGhpcy50aWNrZXRJbmZvPy50aWNrZXREZXRhaWxzLnRpY2tldFR5cGU9PSdyZWZyZXNodGlja2V0JyYmdGhpcy50aWNrZXRJbmZvPy50aWNrZXREZXRhaWxzPy5yZWZyZXNoVGlja2V0U3RhdHVzID09PSAnaWRlbnRpZmllZCcgJiYgdGhpcy5jb21tZW50cyA9PSBcIlwiKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRvYXN0U2VydmljZS5nZXRFcnJvclRvYXN0KFwiUGxlYXNlIEVudGVyIENvbW1lbnRzXCIpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAgIGxldCB0aWNrZXREZXRhaWxzID0ge1xyXG4gICAgICBcInRpY2tldElkXCI6IHRoaXMudGlja2V0SWQsXHJcbiAgICAgIFwicHJpbWFyeVwiOiB0aGlzLnNlbGVjdGVkSXNzdWUsXHJcbiAgICAgIFwic2Vjb25kYXJ5XCI6IGRhdGEsXHJcbiAgICAgIFwiY29tbWVudFwiOiB0aGlzLmNvbW1lbnRzLFxyXG4gICAgICAnaGliZXJuYXRpb25EYXlzJzp0aGlzLmNvdW50LFxyXG4gICAgICAnY2FtZXJhTGlzdCc6IHRoaXMuZmluYWxDYW1MaXN0Lmxlbmd0aCA+IDAgPyB0aGlzLmZpbmFsQ2FtTGlzdCA6IFtdXHJcbiAgICB9XHJcbiBcclxuICAgIHRoaXMuc2VydmljZS51cGRhdGVUaWNrZXQodGlja2V0RGV0YWlscykucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLmNvbW1lbnRzID0gJydcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJc3N1ZSA9ICcnXHJcbiAgICAgICAgICB0aGlzLnNlY29uZGFyeUlzc3Vlcz1bXVxyXG4gICAgICAgICAgLy8gdGhpcy5zdGF0ZS5pc3N1ZVN0YXR1cyA9IHRoaXMuc2VsZWN0ZWRJc3N1ZTtcclxuICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldFN1Y2Nlc3NUb2FzdChyZXMubWVzc2FnZSlcclxuICAgICAgICAgIHRoaXMudmlld1RpY2tldChmYWxzZSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0RXJyb3JUb2FzdChyZXMubWVzc2FnZSlcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0RXJyb3JUb2FzdChlcnIuRXJyb3IpXHJcbiAgICAgIH0sXHJcbiAgICAgIGNvbXBsZXRlKCkge1xyXG5cclxuICAgICAgfSxcclxuICAgIH0pXHJcblxyXG4gIH1cclxuXHJcbiAgc3RhdHVzVXBkYXRlKCkge1xyXG4gICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgIFwidGlja2V0SWRcIjogdGhpcy50aWNrZXRJZCxcclxuICAgICAgXCJzdGF0dXNcIjogXCJpbnByb2dyZXNzXCJcclxuICAgIH1cclxuICAgIHRoaXMuc2VydmljZS5zdGF0dXNVcGRhdGUoZGF0YSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHJlcylcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGFkZENvbW1lbnQoKSB7XHJcbiAgICB0aGlzLmNvbW1lbnRzID0gdGhpcy5jb21tZW50c1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0SXRlbSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLnNob3dTdWJtaXQgPSB0cnVlXHJcbiAgICB0aGlzLnNlbGVjdGVkSXNzdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuc2Vjb25kYXJ5UmVhc29uKHRoaXMuc2VsZWN0ZWRJc3N1ZSlcclxuXHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZElzc3VlID09ICdDYW1lcmEgSXNzdWVzJykge1xyXG4gICAgICB0aGlzLmNhbWVyYUxpc3QodGhpcy5zdG9yZUlkKVxyXG4gICAgfVxyXG4gICAgdGhpcy5kcm9wRG93biA9IGZhbHNlO1xyXG4gIH1cclxuICBjYW1lcmFMaXN0KHN0b3JlSWQ6IGFueSkge1xyXG4gICAgLy8gc3RvcmVJZCA9IFwiMjAxLTEyOVwiXHJcbiAgICB0aGlzLnNlcnZpY2UuY2FtZXJhTGlzdChzdG9yZUlkKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuY2FtZXJhTGlzdEltYWdlcyA9IHJlcz8uZGF0YVxyXG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcclxuICAgICAgICAgIGlmICh0aGlzLmNhbWVyYUxpc3RJbWFnZXMgPT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLnNob3djYW1Jc3N1ZSA9IHRydWVcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zaG93Y2FtSXNzdWUgPSB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldEVycm9yVG9hc3QoZXJyLkVycm9yKVxyXG4gICAgICB9LFxyXG4gICAgICBjb21wbGV0ZSgpIHtcclxuXHJcbiAgICAgIH0sXHJcbiAgICB9KVxyXG4gIH1cclxuICBvcGVuUmVtb3RlKCkge1xyXG4gICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKFRha2VyZW1vdGVDb21wb25lbnQsIHsgY2VudGVyZWQ6IHRydWUsIHNjcm9sbGFibGU6IHRydWUsIH0pO1xyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2Uuc3RvcmVEZXRhaWxzID0ge1xyXG4gICAgICBzdG9yZU5hbWU6IHRoaXMuc3RvcmVBZGRyZXNzPy5zdG9yZU5hbWUsXHJcbiAgICAgIGNsaWVudElkOiB0aGlzLnN0b3JlQWRkcmVzcy5jbGllbnRJZCxcclxuICAgICAgc3RvcmVJZDogdGhpcy5zdG9yZUFkZHJlc3M/LnN0b3JlSWRcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNhbWVyYVNlbGVjdGVkKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuY2FtZXJhU2VsZWN0ID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwcm9jZWRkSW1hZ2UodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5zaG93U3VibWl0ID0gdHJ1ZTtcclxuICAgIHRoaXMuY2FtZXJhSXNzdWUgPSB0cnVlO1xyXG4gICAgdGhpcy5jYW1lcmFTZWxlY3RXb3JrID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBTZWxlY3RlZFRhYnModmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5TZWxlY3RlZFRhYiA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlQ2hlY2tib3goaW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5zZWNvbmRhcnlJc3N1ZXNbaW5kZXhdLmNoZWNrZWQgPSAhdGhpcy5zZWNvbmRhcnlJc3N1ZXNbaW5kZXhdLmNoZWNrZWQ7XHJcbiAgfVxyXG4gIHRvZ2dsZVJhZGlvYm94KG90aGVyczogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uID0gb3RoZXJzLm5hbWU7XHJcbiAgfVxyXG4gIGRlY3Jlc2VDb3VudCgpOiBhbnkge1xyXG4gICAgdGhpcy5jb3VudCAtPSAxO1xyXG4gIH1cclxuXHJcbiAgaW5jcmVhc2VDb3VudCgpOiBhbnkge1xyXG4gICAgdGhpcy5jb3VudCArPSAxO1xyXG4gIH1cclxuXHJcbiAgb3BlbkNvbnRhY3QoKSB7XHJcbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oQ29udGFjdERldGFpbHNDb21wb25lbnQsXHJcbiAgICAgIHtcclxuICAgICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgICBzY3JvbGxhYmxlOiB0cnVlLFxyXG4gICAgICB9KTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnZhbHVlID0ge1xyXG4gICAgICBzdG9yZU5hbWU6IHRoaXMuc3RvcmVBZGRyZXNzLnN0b3JlTmFtZSxcclxuICAgICAgc3RvcmVJZDogdGhpcy5zdG9yZUFkZHJlc3Muc3RvcmVJZCxcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuc3RvcmVBZGRyZXNzLmNsaWVudElkXHJcbiAgICB9LFxyXG5cclxuICAgICAgbW9kYWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdCkgPT4ge1xyXG5cclxuICAgICAgfSlcclxuXHJcblxyXG4gIH1cclxuXHJcbiAgb3BlbkRyb3Bkb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuZHJvcERvd24gPSAhdGhpcy5kcm9wRG93bjtcclxuICB9XHJcbiAgc3RvcmVDaGFuZ2UoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5zdG9yZURyb3BEb3duID0gIXRoaXMuc3RvcmVEcm9wRG93bjtcclxuXHJcbiAgfVxyXG4gIG9wZW5GaWxlSW5wdXQoKSB7XHJcbiAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XHJcbiAgfVxyXG4gIGRvd25sb2FkaW1hZ2UodXJsOiBhbnksa2V5OmFueSkge1xyXG4gICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICAgIGEuaHJlZiA9IHVybDtcclxuICAgIGEuZG93bmxvYWQgPSB1cmw7XHJcbiAgICBpZiAoa2V5ID09PSAnYWRkJykge1xyXG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xyXG4gICAgICBhLmNsaWNrKCk7XHJcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ3JlbW92ZScpIHtcclxuICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChhKTtcclxuICAgIH1cclxuICB9XHJcbiAgb25GaWxlU2VsZWN0ZWQoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKGV2ZW50LnRhcmdldC5maWxlcyAmJiBldmVudC50YXJnZXQuZmlsZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBldmVudC50YXJnZXQuZmlsZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgZmlsZTogRmlsZSA9IGV2ZW50LnRhcmdldC5maWxlc1tpXTtcclxuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ2ltZycsIGZpbGUpO1xyXG4gICAgICAgIGlmICghZmlsZS50eXBlLnN0YXJ0c1dpdGgoJ2ltYWdlLycpKSB7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdPbmx5IGltYWdlIGZpbGVzIGFyZSBhbGxvd2VkISc7XHJcbiAgICAgICAgICByZXR1cm47IC8vIFN0b3AgZnVydGhlciBwcm9jZXNzaW5nXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICAgIHJlYWRlci5vbmxvYWQgPSAoZTogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsZXMucHVzaCh7XHJcbiAgICAgICAgICAgIG5hbWU6IGZpbGUubmFtZSxcclxuICAgICAgICAgICAgdXJsOiBlLnRhcmdldC5yZXN1bHQsXHJcbiAgICAgICAgICAgIGxhc3RNb2RpZmllZERhdGVTdHJpbmc6IG5ldyBEYXRlKGZpbGUubGFzdE1vZGlmaWVkKS50b0xvY2FsZVN0cmluZygpXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnNvbGUubG9nKCdmb3JtRGF0YScsZm9ybURhdGEpXHJcbiAgICAgIHRoaXMuc2VydmljZS51cGxvYWRBdHRhY2htZW50cyh0aGlzLnRpY2tldElkLCBmb3JtRGF0YSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRTdWNjZXNzVG9hc3QocmVzLm1lc3NhZ2UpXHJcbiAgICAgICAgICAgIHRoaXMudmlld1RpY2tldCh0cnVlKVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0RXJyb3JUb2FzdChyZXMubWVzc2FnZSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRFcnJvclRvYXN0KGVyci5FcnJvcilcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbXBsZXRlKCkge1xyXG5cclxuICAgICAgICB9LFxyXG4gICAgICB9KVxyXG5cclxuXHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlRmlsZSh1cmw6YW55KXtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMudGlja2V0SW5mby5hdHRhY2htZW50cywndGhpcy50aWNrZXRJbmZvJylcclxuICAgIHRoaXMudGlja2V0SW5mby5hdHRhY2htZW50cyA9IHRoaXMudGlja2V0SW5mby5hdHRhY2htZW50cy5maWx0ZXIoKGZpbGU6YW55KSA9PiBmaWxlLnNpZ25lZFVybCAhPT0gdXJsKTtcclxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5zZXJ2aWNlLnVwbG9hZEF0dGFjaG1lbnRzKHRoaXMudGlja2V0SWQsIHRoaXMudGlja2V0SW5mby5hdHRhY2htZW50cykucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRTdWNjZXNzVG9hc3QocmVzLm1lc3NhZ2UpXHJcbiAgICAgICAgICB0aGlzLnZpZXdUaWNrZXQodHJ1ZSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0RXJyb3JUb2FzdChyZXMubWVzc2FnZSlcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0RXJyb3JUb2FzdChlcnIuRXJyb3IpXHJcbiAgICAgIH0sXHJcbiAgICAgIGNvbXBsZXRlKCkge1xyXG5cclxuICAgICAgfSxcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBjbG9zZVRvb2x0aXAoKSB7XHJcbiAgICBpZiAodGhpcy50b29sdGlwQ29udGVudCkge1xyXG4gICAgICB0aGlzLnRvb2x0aXBDb250ZW50LmNsb3NlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzaG93VG9vbHRpcCgpIHtcclxuICAgIGlmICh0aGlzLnRvb2x0aXBDb250ZW50KSB7XHJcbiAgICAgIHRoaXMudG9vbHRpcENvbnRlbnQub3BlbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm1iLTUgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbmNhcmQtY29udGVudCBiZy13aGl0ZSBweC0zIHB5LTIgbWUtMyBjdXJzb3ItcG9pbnRlclwiIHN0eWxlPVwid2lkdGg6IGZpdC1jb250ZW50O1wiIChjbGljayk9XCJQcmV2Um91dGUoKVwiPiA8c3ZnXHJcbiAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAxNCAxNFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEyLjgzMjcgNi45OTkzNUgxLjE2NjAyTTEuMTY2MDIgNi45OTkzNUw2Ljk5OTM1IDEyLjgzMjdNMS4xNjYwMiA2Ljk5OTM1TDYuOTk5MzUgMS4xNjYwMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz48L2Rpdj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LWJvbGQgc3RvcmUtbGFiZWxcIj4ge3tzdG9yZUlkfX08L3NwYW4+IDxzcGFuICpuZ0lmPVwic3RvcmVBZGRyZXNzPy5hZGRyZXNzXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmdy1ib2xkIHN0b3JlLWxhYmVsXCI+IHxcclxuICAgICAgICAgICAge3tzdG9yZUFkZHJlc3M/LmFkZHJlc3N9fSA8L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5XCI+IHt7YWN0aXZlVGlja2V0RGV0YWlscz8uY291bnR9fSB7e3N0b3JlQWRkcmVzcz8uc3RhdHVzfX08L3NwYW4+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlIHBzLTNcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInN0b3JlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgdy0xMDAgYnRuLW91dGxpbmUgYnRuLW91dGxpbmUtZGVmYXVsdCByb3VuZGVkLTMgdGV4dC1ub3dyYXAgYm9yZGVyLXZhbCBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYmctd2hpdGVcIj5cclxuICAgICAgICAgICAgICAgIHt7c3RvcmVJZCA/IHN0b3JlSWQgOiBzdG9yZUFkZHJlc3M/LnN0b3JlSWR9fVxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0zXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNSA3LjVMMTAgMTIuNUwxNSA3LjVcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdG9yZURyb3BEb3duXCIgY2xhc3M9XCJjYXJkIHB5LTEgei0xIHctMjAwcHggcG9zaXRpb24tYWJzb2x1dGUgdG9wLTUwcHggZW5kLTAgaC0zMDBweCBvdmVyZmxvdy1hdXRvXCI+XHJcbiAgICAgICAgICAgICAgICA8dWwgKm5nRm9yPVwibGV0IGRldGFpbHMgb2YgYWN0aXZlVGlja2V0RGV0YWlscz8uZGF0YVwiIGNsYXNzPVwibGlzdC11bnN0eWxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaSBbbmdDbGFzc109XCJzdG9yZUFkZHJlc3M/LnN0b3JlSWQgPT09IGRldGFpbHM/LnN0b3JlSWQgPyAnYWN0aXZlJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYW1lcmEgcHgtNSBpdGVtcyBmdy1zZW1pYm9sZCBjdXJzb3ItcG9pbnRlciBweS0yXCIgKGNsaWNrKT1cImdldHN0b3JlQWRkcmVzcyhkZXRhaWxzKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e2RldGFpbHM/LnN0b3JlSWR9fTwvbGk+XHJcbiAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJjYXJkIG1iLTUgcHktMyBweC01XCI+XHJcbiAgICA8dWwgY2xhc3M9XCJuYXYgbmF2LXN0cmV0Y2ggbmF2LWxpbmUtdGFiczEgbmF2LWxpbmUtdGFicyBib3JkZXItdHJhbnNwYXJlbnQgZmxleC1ub3dyYXBcIj5cclxuICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiIChjbGljayk9XCJTZWxlY3RlZFRhYnMoJ3RpY2tldCcpXCI+PGEgW25nQ2xhc3NdPVwiU2VsZWN0ZWRUYWIgPT09J3RpY2tldCcgPyAnYWN0aXZlJyA6JydcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYtbGluayBmcy00IGN1cnNvci1wb2ludGVyIG5vLWJvcmRlciBtZS02IFwiPlRpY2tldDwvYT5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCIgKGNsaWNrKT1cIlNlbGVjdGVkVGFicygnc3RvcmVpbmZvJylcIj5cclxuICAgICAgICAgICAgPGEgW25nQ2xhc3NdPVwiU2VsZWN0ZWRUYWIgPT09J3N0b3JlaW5mbycgPyAnYWN0aXZlJyA6JydcIiBjbGFzcz1cIm5hdi1saW5rIGZzLTQgY3Vyc29yLXBvaW50ZXIgbWUtNlwiPlN0b3JlXHJcbiAgICAgICAgICAgICAgICBJbmZvPC9hPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICA8L3VsPlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJTZWxlY3RlZFRhYiA9PT0ndGlja2V0J1wiIGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wIHB0LTNcIj5cclxuICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZC1sYWJlbCBtYi0yIG1zLTMgZnctc2VtaWJvbGRcIj57e3RpY2tldElkfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIkluZnJhSXNzdWVcIiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LXdhcm5pbmdcIj57e0luZnJhSXNzdWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zdWIgZnctYm9sZCBtYi0yIGJhZGdlIGJhZGdlLWxpZ2h0LWRlZmF1bHRcIj48c3ZnIGNsYXNzPVwibWUtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMzg3N185NjU1MilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOCAxVjNNNCAxVjNNMS41IDVIMTAuNU0yLjUgMkg5LjVDMTAuMDUyMyAyIDEwLjUgMi40NDc3MiAxMC41IDNWMTBDMTAuNSAxMC41NTIzIDEwLjA1MjMgMTEgOS41IDExSDIuNUMxLjk0NzcyIDExIDEuNSAxMC41NTIzIDEuNSAxMFYzQzEuNSAyLjQ0NzcyIDEuOTQ3NzIgMiAyLjUgMlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuMVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8zODc3Xzk2NTUyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPiBDcmVhdGVkIERhdGU6e3sgdGlja2V0SW5mbz8uY3JlYXRlZEF0fGN1c3RvbURhdGVGb3JtYXR9fTwvc3Bhbj5cclxuICAgICAgICA8L2gzPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgbXktMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/Lm1hbmFnZV90aWNrZXRzX2lzVmlld1wiICB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9wZW5Db250YWN0KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBteC0yIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWxcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzM4NzdfMTAyMjAzKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTIuNTQxNSA0LjE2NjU5QzEzLjM1NTUgNC4zMjUzOSAxNC4xMDM1IDQuNzIzNDcgMTQuNjg5OSA1LjMwOTg2QzE1LjI3NjMgNS44OTYyNiAxNS42NzQ0IDYuNjQ0MzEgMTUuODMzMiA3LjQ1ODI1TTEyLjU0MTUgMC44MzMyNTJDMTQuMjMyNiAxLjAyMTEyIDE1LjgwOTUgMS43Nzg0IDE3LjAxMzQgMi45ODA3NkMxOC4yMTczIDQuMTgzMTIgMTguOTc2NSA1Ljc1OTA5IDE5LjE2NjUgNy40NDk5Mk0xOC4zMzMyIDE0LjA5OTlWMTYuNTk5OUMxOC4zMzQxIDE2LjgzMiAxOC4yODY2IDE3LjA2MTcgMTguMTkzNiAxNy4yNzQ0QzE4LjEwMDYgMTcuNDg3IDE3Ljk2NDMgMTcuNjc3OSAxNy43OTMzIDE3LjgzNDhDMTcuNjIyMiAxNy45OTE3IDE3LjQyMDMgMTguMTExMiAxNy4yMDA1IDE4LjE4NTVDMTYuOTgwNiAxOC4yNTk5IDE2Ljc0NzcgMTguMjg3NSAxNi41MTY1IDE4LjI2NjZDMTMuOTUyMiAxNy45ODggMTEuNDg5IDE3LjExMTcgOS4zMjQ4NiAxNS43MDgzQzcuMzExMzkgMTQuNDI4OCA1LjYwNDMxIDEyLjcyMTcgNC4zMjQ4NiAxMC43MDgzQzIuOTE2NTEgOC41MzQyNiAyLjA0MDA3IDYuMDU5MDggMS43NjY1MyAzLjQ4MzI1QzEuNzQ1NyAzLjI1MjgxIDEuNzczMDkgMy4wMjA1NSAxLjg0Njk1IDIuODAxMjdDMS45MjA4IDIuNTgxOTkgMi4wMzk1MSAyLjM4MDQ5IDIuMTk1NSAyLjIwOTZDMi4zNTE1IDIuMDM4NzEgMi41NDEzNyAxLjkwMjE4IDIuNzUzMDIgMS44MDg2OUMyLjk2NDY4IDEuNzE1MiAzLjE5MzQ4IDEuNjY2OCAzLjQyNDg2IDEuNjY2NTlINS45MjQ4NkM2LjMyOTI4IDEuNjYyNiA2LjcyMTM2IDEuODA1ODIgNy4wMjggMi4wNjk1M0M3LjMzNDY0IDIuMzMzMjQgNy41MzQ5MyAyLjY5OTQ2IDcuNTkxNTMgMy4wOTk5MkM3LjY5NzA1IDMuODk5OTcgNy44OTI3NCA0LjY4NTUyIDguMTc0ODYgNS40NDE1OUM4LjI4Njk4IDUuNzM5ODYgOC4zMTEyNSA2LjA2NDAxIDguMjQ0NzggNi4zNzU2NUM4LjE3ODMyIDYuNjg3MjkgOC4wMjM5MiA2Ljk3MzM0IDcuNzk5ODYgNy4xOTk5Mkw2Ljc0MTUzIDguMjU4MjVDNy45Mjc4MyAxMC4zNDQ1IDkuNjU1MjQgMTIuMDcyIDExLjc0MTUgMTMuMjU4M0wxMi43OTk5IDEyLjE5OTlDMTMuMDI2NCAxMS45NzU5IDEzLjMxMjUgMTEuODIxNSAxMy42MjQxIDExLjc1NUMxMy45MzU4IDExLjY4ODUgMTQuMjU5OSAxMS43MTI4IDE0LjU1ODIgMTEuODI0OUMxNS4zMTQzIDEyLjEwNyAxNi4wOTk4IDEyLjMwMjcgMTYuODk5OSAxMi40MDgzQzE3LjMwNDcgMTIuNDY1NCAxNy42NzQ0IDEyLjY2OTMgMTcuOTM4NiAxMi45ODEyQzE4LjIwMjkgMTMuMjkzMSAxOC4zNDMzIDEzLjY5MTIgMTguMzMzMiAxNC4wOTk5WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzM4NzdfMTAyMjAzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMlwiPkNvbnRhY3QgRGV0YWlsczwvc3Bhbj4gPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5tYW5hZ2VfdGlja2V0c19pc1ZpZXdcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9wZW5SZW1vdGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IG14LTIgYnRuLW91dGxpbmUgYnRuLW91dGxpbmUtZGVmYXVsdCByb3VuZGVkLTMgdGV4dC1ub3dyYXAgYm9yZGVyLXZhbFwiPjxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy90YW5nby9JbWFnZXMvZGVza3RvcC5zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbm5lY3QgUmVtb3RlbHk8L3NwYW4+IDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS04XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0aWNrZXRJbmZvPy50aWNrZXREZXRhaWxzLmlzc3VlU3RhdHVzID09PSdub3RpZGVudGlmaWVkJyYmKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/Lm1hbmFnZV90aWNrZXRzX2lzRWRpdCYmdGlja2V0SW5mbz8uc3RhdHVzIT09J2Nsb3NlZCd8fHRpY2tldEluZm8/LnRpY2tldERldGFpbHMudGlja2V0VHlwZT09PSdyZWZyZXNodGlja2V0JyYmKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/Lm1hbmFnZV90aWNrZXRzX2lzRWRpdCYmdGlja2V0SW5mbz8udGlja2V0RGV0YWlscz8ucmVmcmVzaFRpY2tldFN0YXR1cz09PSdub3RpZGVudGlmaWVkJyYmdXNlclR5cGUgPT09J2NsaWVudCdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3BlbmVkaXNzdWUgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwcm9maWxlLWxhYmVsIGZ3LXNlbWlib2xkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMjEgMTJDMjEgNy4wMjkzIDE2Ljk3MDcgMyAxMiAzQzcuMDI5MyAzIDMgNy4wMjkzIDMgMTJDMyAxNi45NzA3IDcuMDI5MyAyMSAxMiAyMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMi45IDMuMDQ1MDRDMTIuOSAzLjA0NTA0IDE1LjYgNi42MDAwNCAxNS42IDEyTDEyLjkgMy4wNDUwNFpNMTEuMSAyMC45NTVDMTEuMSAyMC45NTUgOC40IDE3LjQgOC40IDEyQzguNCA2LjYwMDA0IDExLjEgMy4wNDUwNCAxMS4xIDMuMDQ1MDRNMy41NjcgMTUuMTVIMTJIMy41NjdaTTMuNTY3IDguODUwMDRIMjAuNDMzSDMuNTY3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0yMC44OTExIDE3LjMyNTJDMjEuMzM1NyAxNy41OTg4IDIxLjMwNzggMTguMjYzOSAyMC44NTA2IDE4LjMxNjFMMTguNTQwMyAxOC41NzhMMTcuNTA0NCAyMC42NTg4QzE3LjI5OTIgMjEuMDcxOSAxNi42NjQ3IDIwLjg2OTQgMTYuNTU5NCAyMC4zNTgyTDE1LjQyOTkgMTQuODUzOEMxNS4zNDA4IDE0LjQyMTggMTUuNzI5NiAxNC4xNSAxNi4xMDQ5IDE0LjM4MTNMMjAuODkxMSAxNy4zMjUyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0yMC4yNSAxMkMyMC4yNSAxMi40MTQyIDIwLjU4NTggMTIuNzUgMjEgMTIuNzVDMjEuNDE0MiAxMi43NSAyMS43NSAxMi40MTQyIDIxLjc1IDEySDIwLjI1Wk0xMiAyMS43NUMxMi40MTQyIDIxLjc1IDEyLjc1IDIxLjQxNDIgMTIuNzUgMjFDMTIuNzUgMjAuNTg1OCAxMi40MTQyIDIwLjI1IDEyIDIwLjI1VjIxLjc1Wk0xMy40OTczIDIuNTkxNDJDMTMuMjQ2NyAyLjI2MTU2IDEyLjc3NjIgMi4xOTcyNSAxMi40NDY0IDIuNDQ3NzhDMTIuMTE2NSAyLjY5ODMgMTIuMDUyMiAzLjE2ODggMTIuMzAyNyAzLjQ5ODY2TDEzLjQ5NzMgMi41OTE0MlpNMTQuODUgMTJDMTQuODUgMTIuNDE0MyAxNS4xODU4IDEyLjc1IDE1LjYgMTIuNzVDMTYuMDE0MiAxMi43NSAxNi4zNSAxMi40MTQzIDE2LjM1IDEySDE0Ljg1Wk0xMC41MDI3IDIxLjQwODdDMTAuNzUzMyAyMS43Mzg1IDExLjIyMzggMjEuODAyOCAxMS41NTM2IDIxLjU1MjNDMTEuODgzNSAyMS4zMDE4IDExLjk0NzggMjAuODMxMyAxMS42OTczIDIwLjUwMTRMMTAuNTAyNyAyMS40MDg3Wk0xMS42OTczIDMuNDk4NjZDMTEuOTQ3OCAzLjE2ODggMTEuODgzNSAyLjY5ODMgMTEuNTUzNiAyLjQ0Nzc4QzExLjIyMzggMi4xOTcyNSAxMC43NTMzIDIuMjYxNTYgMTAuNTAyNyAyLjU5MTQyTDExLjY5NzMgMy40OTg2NlpNMy41NjcgMTQuNEMzLjE1Mjc5IDE0LjQgMi44MTcgMTQuNzM1OCAyLjgxNyAxNS4xNUMyLjgxNyAxNS41NjQzIDMuMTUyNzkgMTUuOSAzLjU2NyAxNS45VjE0LjRaTTEyIDE1LjlDMTIuNDE0MiAxNS45IDEyLjc1IDE1LjU2NDMgMTIuNzUgMTUuMTVDMTIuNzUgMTQuNzM1OCAxMi40MTQyIDE0LjQgMTIgMTQuNFYxNS45Wk0zLjU2NyA4LjEwMDA0QzMuMTUyNzkgOC4xMDAwNCAyLjgxNyA4LjQzNTgzIDIuODE3IDguODUwMDRDMi44MTcgOS4yNjQyNiAzLjE1Mjc5IDkuNjAwMDQgMy41NjcgOS42MDAwNFY4LjEwMDA0Wk0yMC40MzMgOS42MDAwNEMyMC44NDcyIDkuNjAwMDQgMjEuMTgzIDkuMjY0MjYgMjEuMTgzIDguODUwMDRDMjEuMTgzIDguNDM1ODMgMjAuODQ3MiA4LjEwMDA0IDIwLjQzMyA4LjEwMDA0VjkuNjAwMDRaTTIwLjg5MTEgMTcuMzI1MkwyMS4yODQyIDE2LjY4NjVMMjEuMjg0IDE2LjY4NjRMMjAuODkxMSAxNy4zMjUyWk0yMC44NTA2IDE4LjMxNjFMMjAuOTM1MSAxOS4wNjEzTDIwLjkzNTcgMTkuMDYxM0wyMC44NTA2IDE4LjMxNjFaTTE4LjU0MDMgMTguNTc4TDE4LjQ1NTggMTcuODMyOEwxOC4wNTA2IDE3Ljg3ODdMMTcuODY4OSAxOC4yNDM4TDE4LjU0MDMgMTguNTc4Wk0xNy41MDQ0IDIwLjY1ODhMMTYuODMzIDIwLjMyNDZMMTYuODMyNyAyMC4zMjUyTDE3LjUwNDQgMjAuNjU4OFpNMTYuNTU5NCAyMC4zNTgyTDE1LjgyNDcgMjAuNTA5TDE1LjgyNDggMjAuNTA5NUwxNi41NTk0IDIwLjM1ODJaTTE1LjQyOTkgMTQuODUzOEwxNi4xNjQ2IDE0LjcwM0wxNi4xNjQ0IDE0LjcwMjNMMTUuNDI5OSAxNC44NTM4Wk0xNi4xMDQ5IDE0LjM4MTNMMTUuNzExNCAxNS4wMTk4TDE1LjcxMiAxNS4wMjAxTDE2LjEwNDkgMTQuMzgxM1pNMjEuNzUgMTJDMjEuNzUgNi42MTUwOSAxNy4zODQ5IDIuMjUgMTIgMi4yNVYzLjc1QzE2LjU1NjUgMy43NSAyMC4yNSA3LjQ0MzUxIDIwLjI1IDEySDIxLjc1Wk0xMiAyLjI1QzYuNjE1MDkgMi4yNSAyLjI1IDYuNjE1MDkgMi4yNSAxMkgzLjc1QzMuNzUgNy40NDM1MSA3LjQ0MzUxIDMuNzUgMTIgMy43NVYyLjI1Wk0yLjI1IDEyQzIuMjUgMTcuMzg0OSA2LjYxNTA5IDIxLjc1IDEyIDIxLjc1VjIwLjI1QzcuNDQzNTEgMjAuMjUgMy43NSAxNi41NTY1IDMuNzUgMTJIMi4yNVpNMTIuOSAzLjA0NTA0QzEyLjMwMjcgMy40OTg2NiAxMi4zMDI2IDMuNDk4NDYgMTIuMzAyNCAzLjQ5ODI4QzEyLjMwMjQgMy40OTgyMyAxMi4zMDIzIDMuNDk4MDYgMTIuMzAyMiAzLjQ5Nzk3QzEyLjMwMjEgMy40OTc3OSAxMi4zMDIgMy40OTc2NyAxMi4zMDE5IDMuNDk3NkMxMi4zMDE4IDMuNDk3NDYgMTIuMzAxOSAzLjQ5NzUzIDEyLjMwMjEgMy40OTc4MUMxMi4zMDI1IDMuNDk4MzggMTIuMzAzNiAzLjQ5OTggMTIuMzA1MyAzLjUwMjA2QzEyLjMwODYgMy41MDY1OCAxMi4zMTQ0IDMuNTE0NDcgMTIuMzIyNSAzLjUyNTY3QzEyLjMzODcgMy41NDgwOSAxMi4zNjQxIDMuNTgzNzUgMTIuMzk3MyAzLjYzMjI2QzEyLjQ2MzggMy43MjkyOSAxMi41NjE2IDMuODc3NTIgMTIuNjgwNSA0LjA3MzYxQzEyLjkxODMgNC40NjYwNiAxMy4yMzkzIDUuMDQ4NjMgMTMuNTYxNCA1Ljc5NDc4QzE0LjIwNjEgNy4yODgzNyAxNC44NSA5LjQyNTI2IDE0Ljg1IDEySDE2LjM1QzE2LjM1IDkuMTc0ODMgMTUuNjQzOSA2LjgzNDIyIDE0LjkzODYgNS4yMDAzMUMxNC41ODU3IDQuMzgyNzEgMTQuMjMxNyAzLjczOTAyIDEzLjk2MzMgMy4yOTYxNkMxMy44MjkgMy4wNzQ2IDEzLjcxNTkgMi45MDI5MSAxMy42MzQ3IDIuNzg0NDNDMTMuNTk0MSAyLjcyNTE4IDEzLjU2MTUgMi42NzkyIDEzLjUzODEgMi42NDY5QzEzLjUyNjUgMi42MzA3NSAxMy41MTcxIDIuNjE4MDIgMTMuNTEwMiAyLjYwODc2QzEzLjUwNjggMi42MDQxMyAxMy41MDQgMi42MDAzNiAxMy41MDE4IDIuNTk3NDdDMTMuNTAwNyAyLjU5NjAyIDEzLjQ5OTggMi41OTQ4IDEzLjQ5OTEgMi41OTM3OUMxMy40OTg3IDIuNTkzMjkgMTMuNDk4MyAyLjU5Mjg0IDEzLjQ5OCAyLjU5MjQ0QzEzLjQ5NzkgMi41OTIyNCAxMy40OTc3IDIuNTkxOTkgMTMuNDk3NiAyLjU5MTg5QzEzLjQ5NzQgMi41OTE2NSAxMy40OTczIDIuNTkxNDIgMTIuOSAzLjA0NTA0Wk0xMS4xIDIwLjk1NUMxMS42OTczIDIwLjUwMTQgMTEuNjk3NCAyMC41MDE2IDExLjY5NzYgMjAuNTAxOEMxMS42OTc2IDIwLjUwMTkgMTEuNjk3NyAyMC41MDIgMTEuNjk3OCAyMC41MDIxQzExLjY5NzkgMjAuNTAyMyAxMS42OTggMjAuNTAyNCAxMS42OTgxIDIwLjUwMjVDMTEuNjk4MiAyMC41MDI2IDExLjY5ODEgMjAuNTAyNiAxMS42OTc5IDIwLjUwMjNDMTEuNjk3NSAyMC41MDE3IDExLjY5NjQgMjAuNTAwMyAxMS42OTQ4IDIwLjQ5OEMxMS42OTE0IDIwLjQ5MzUgMTEuNjg1NiAyMC40ODU2IDExLjY3NzUgMjAuNDc0NEMxMS42NjEzIDIwLjQ1MiAxMS42MzU5IDIwLjQxNjMgMTEuNjAyNyAyMC4zNjc4QzExLjUzNjIgMjAuMjcwOCAxMS40Mzg0IDIwLjEyMjYgMTEuMzE5NSAxOS45MjY1QzExLjA4MTcgMTkuNTM0IDEwLjc2MDcgMTguOTUxNSAxMC40Mzg2IDE4LjIwNTNDOS43OTM4OCAxNi43MTE3IDkuMTUgMTQuNTc0OCA5LjE1IDEySDcuNjVDNy42NSAxNC44MjUzIDguMzU2MTMgMTcuMTY1OSA5LjA2MTQyIDE4Ljc5OThDOS40MTQzNCAxOS42MTc0IDkuNzY4MzMgMjAuMjYxMSAxMC4wMzY3IDIwLjcwMzlDMTAuMTcxIDIwLjkyNTUgMTAuMjg0MSAyMS4wOTcyIDEwLjM2NTMgMjEuMjE1N0MxMC40MDU5IDIxLjI3NDkgMTAuNDM4NSAyMS4zMjA5IDEwLjQ2MTkgMjEuMzUzMkMxMC40NzM1IDIxLjM2OTMgMTAuNDgyOSAyMS4zODIxIDEwLjQ4OTggMjEuMzkxM0MxMC40OTMyIDIxLjM5NiAxMC40OTYgMjEuMzk5NyAxMC40OTgyIDIxLjQwMjZDMTAuNDk5MyAyMS40MDQxIDEwLjUwMDIgMjEuNDA1MyAxMC41MDA5IDIxLjQwNjNDMTAuNTAxMyAyMS40MDY4IDEwLjUwMTcgMjEuNDA3MyAxMC41MDIgMjEuNDA3NkMxMC41MDIxIDIxLjQwNzggMTAuNTAyMyAyMS40MDgxIDEwLjUwMjQgMjEuNDA4MkMxMC41MDI2IDIxLjQwODQgMTAuNTAyNyAyMS40MDg3IDExLjEgMjAuOTU1Wk05LjE1IDEyQzkuMTUgOS40MjUyNiA5Ljc5Mzg4IDcuMjg4MzcgMTAuNDM4NiA1Ljc5NDc4QzEwLjc2MDcgNS4wNDg2MyAxMS4wODE3IDQuNDY2MDYgMTEuMzE5NSA0LjA3MzYxQzExLjQzODQgMy44Nzc1MiAxMS41MzYyIDMuNzI5MjkgMTEuNjAyNyAzLjYzMjI2QzExLjYzNTkgMy41ODM3NSAxMS42NjEzIDMuNTQ4MDkgMTEuNjc3NSAzLjUyNTY3QzExLjY4NTYgMy41MTQ0NyAxMS42OTE0IDMuNTA2NTggMTEuNjk0OCAzLjUwMjA2QzExLjY5NjQgMy40OTk4IDExLjY5NzUgMy40OTgzOCAxMS42OTc5IDMuNDk3ODFDMTEuNjk4MSAzLjQ5NzUzIDExLjY5ODIgMy40OTc0NiAxMS42OTgxIDMuNDk3NkMxMS42OTggMy40OTc2NyAxMS42OTc5IDMuNDk3NzkgMTEuNjk3OCAzLjQ5Nzk3QzExLjY5NzcgMy40OTgwNiAxMS42OTc2IDMuNDk4MjMgMTEuNjk3NiAzLjQ5ODI4QzExLjY5NzQgMy40OTg0NiAxMS42OTczIDMuNDk4NjYgMTEuMSAzLjA0NTA0QzEwLjUwMjcgMi41OTE0MiAxMC41MDI2IDIuNTkxNjUgMTAuNTAyNCAyLjU5MTg5QzEwLjUwMjMgMi41OTE5OSAxMC41MDIxIDIuNTkyMjQgMTAuNTAyIDIuNTkyNDRDMTAuNTAxNyAyLjU5Mjg0IDEwLjUwMTMgMi41OTMyOSAxMC41MDA5IDIuNTkzNzlDMTAuNTAwMiAyLjU5NDggMTAuNDk5MyAyLjU5NjAyIDEwLjQ5ODIgMi41OTc0N0MxMC40OTYgMi42MDAzNiAxMC40OTMyIDIuNjA0MTMgMTAuNDg5OCAyLjYwODc2QzEwLjQ4MjkgMi42MTgwMiAxMC40NzM1IDIuNjMwNzUgMTAuNDYxOSAyLjY0NjlDMTAuNDM4NSAyLjY3OTIgMTAuNDA1OSAyLjcyNTE4IDEwLjM2NTMgMi43ODQ0M0MxMC4yODQxIDIuOTAyOTEgMTAuMTcxIDMuMDc0NiAxMC4wMzY3IDMuMjk2MTZDOS43NjgzMyAzLjczOTAyIDkuNDE0MzQgNC4zODI3MSA5LjA2MTQyIDUuMjAwMzFDOC4zNTYxMyA2LjgzNDIyIDcuNjUgOS4xNzQ4MyA3LjY1IDEySDkuMTVaTTMuNTY3IDE1LjlIMTJWMTQuNEgzLjU2N1YxNS45Wk0zLjU2NyA5LjYwMDA0SDIwLjQzM1Y4LjEwMDA0SDMuNTY3VjkuNjAwMDRaTTIwLjQ5OCAxNy45NjM5QzIwLjQ3OTIgMTcuOTUyNCAyMC40NTc1IDE3LjkyNTIgMjAuNDU5NyAxNy44NzI3QzIwLjQ2MDkgMTcuODQzNCAyMC40NzE1IDE3Ljc3NzIgMjAuNTI5NyAxNy43MDU0QzIwLjU5NjEgMTcuNjIzNSAyMC42ODg5IDE3LjU3OTcgMjAuNzY1NSAxNy41NzA5TDIwLjkzNTcgMTkuMDYxM0MyMS42MTY3IDE4Ljk4MzUgMjEuOTM4NCAxOC40MTc5IDIxLjk1ODQgMTcuOTM0NkMyMS45Nzc2IDE3LjQ2ODIgMjEuNzQ3NiAxNi45NzE3IDIxLjI4NDIgMTYuNjg2NUwyMC40OTggMTcuOTYzOVpNMjAuNzY2MSAxNy41NzA5TDE4LjQ1NTggMTcuODMyOEwxOC42MjQ4IDE5LjMyMzJMMjAuOTM1MSAxOS4wNjEzTDIwLjc2NjEgMTcuNTcwOVpNMTcuODY4OSAxOC4yNDM4TDE2LjgzMyAyMC4zMjQ2TDE4LjE3NTggMjAuOTkzMUwxOS4yMTE3IDE4LjkxMjNMMTcuODY4OSAxOC4yNDM4Wk0xNi44MzI3IDIwLjMyNTJDMTYuODY2OCAyMC4yNTY1IDE2LjkzOTUgMjAuMTgzOSAxNy4wMzk4IDIwLjE0OTJDMTcuMTI3NyAyMC4xMTg4IDE3LjE5NCAyMC4xMzE2IDE3LjIyMjEgMjAuMTQwNUMxNy4yNzIgMjAuMTU2NCAxNy4yODk2IDIwLjE4NTcgMTcuMjk0IDIwLjIwNjlMMTUuODI0OCAyMC41MDk1QzE1LjkzNDUgMjEuMDQxOSAxNi4zMjIgMjEuNDI4MSAxNi43NjY4IDIxLjU2OTdDMTcuMjI4NiAyMS43MTY4IDE3Ljg3MDcgMjEuNjA3MyAxOC4xNzYxIDIwLjk5MjVMMTYuODMyNyAyMC4zMjUyWk0xNy4yOTQxIDIwLjIwNzRMMTYuMTY0NiAxNC43MDNMMTQuNjk1MiAxNS4wMDQ2TDE1LjgyNDcgMjAuNTA5TDE3LjI5NDEgMjAuMjA3NFpNMTYuMTY0NCAxNC43MDIzQzE2LjE3MjMgMTQuNzQwNiAxNi4xNjY2IDE0Ljg4MyAxNi4wMjMyIDE0Ljk4MzNDMTUuODggMTUuMDgzNSAxNS43NDQ2IDE1LjA0MDIgMTUuNzExNCAxNS4wMTk4TDE2LjQ5ODQgMTMuNzQyOEMxNi4wODk5IDEzLjQ5MTEgMTUuNTcyNCAxMy40NjggMTUuMTYzMyAxMy43NTQzQzE0Ljc1NCAxNC4wNDA3IDE0LjU5ODQgMTQuNTM1IDE0LjY5NTQgMTUuMDA1M0wxNi4xNjQ0IDE0LjcwMjNaTTE1LjcxMiAxNS4wMjAxTDIwLjQ5ODIgMTcuOTY0TDIxLjI4NCAxNi42ODY0TDE2LjQ5NzggMTMuNzQyNUwxNS43MTIgMTUuMDIwMVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzQ3NTQ2N1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4ge3tzZWxlY3RlZElzc3VlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIChjbGljayk9XCJjaG9vc2Vhbmlzc3VlKCcnKVwiIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cIm9wZW5Ecm9wZG93bigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1haW5jYXJkLWNvbnRlbnQgY3Vyc29yLXBvaW50ZXIgYmctd2hpdGUgcHgtMyBweS0yXCI+IDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTUgNy41TDEwIDEyLjVMMTUgNy41XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4gPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZHJvcERvd25cIiBjbGFzcz1cImNhcmQgcHktMSB3LTIwMHB4IHBvc2l0aW9uLWFic29sdXRlIHRvcC01MHB4IGVuZC0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRyb3Bkb3duSXRlbXNcIiBjbGFzcz1cImxpc3QtdW5zdHlsZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cInRoaXMuc2VsZWN0ZWRJc3N1ZSA9PT0gaXRlbSA/ICdhY3RpdmUnIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYW1lcmEgcHgtNSBpdGVtcyBmdy1zZW1pYm9sZCBjdXJzb3ItcG9pbnRlciBweS0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RJdGVtKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2l0ZW19fTwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkSXNzdWUgPT09ICdJbnRlcm5ldCBJc3N1ZXMnfHxzZWxlY3RlZElzc3VlID09PSAnQ2FtZXJhIElzc3VlcycmJnNob3djYW1Jc3N1ZXx8c2VsZWN0ZWRJc3N1ZSA9PT0gJ1N5c3RlbSBJc3N1ZXMnIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbmNhcmQtY29udGVudCB3LTEwMCBtdC0yIHB4LTQgcHktMiBwYi00IG1iLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYWluY2FyZC1sYWJlbCBmdy1zZW1pYm9sZCBweS0yXCIgKm5nSWY9XCJzZWNvbmRhcnlJc3N1ZXM/Lmxlbmd0aD4wXCI+IFBsZWFzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdCB0aGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxldmFudCBwcm9ibGVtIGZhY2luZyBmcm9tIHRoZSBmb2xsb3dpbmcgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpc3N1ZSBvZiBzZWNvbmRhcnlJc3N1ZXM7IGxldCBpbmRleCA9IGluZGV4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1haW5jYXJkLWNvbnRlbnQgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciB3LTEwMCBtdC0yIHB4LTQgcHktNCBjdXJzb3ItcG9pbnRlciBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVDaGVja2JveChpbmRleClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48aW1nIGNsYXNzPVwicGUtM1wiIHNyYz0nLi9hc3NldHMvdGFuZ28vSW1hZ2VzL0ZlYXR1cmVkIGljb24ucG5nJz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGluZ3RleHRcIj57e2lzc3VlPy5uYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy0zMDBweFwiIFtuZ2JUb29sdGlwXT1cInRvb2x0aXBDb250ZW50XCIgdHJpZ2dlcnM9XCJtb3VzZWVudGVyOm1vdXNlbGVhdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwibGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cIm1zLTNcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzE4MjZfNDQ4NzEpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguMDAwNjUgMTAuNjY3M1Y4LjAwMDY1TTguMDAwNjUgNS4zMzM5OEg4LjAwNzMyTTE0LjY2NzMgOC4wMDA2NUMxNC42NjczIDExLjY4MjYgMTEuNjgyNiAxNC42NjczIDguMDAwNjUgMTQuNjY3M0M0LjMxODc1IDE0LjY2NzMgMS4zMzM5OCAxMS42ODI2IDEuMzMzOTggOC4wMDA2NUMxLjMzMzk4IDQuMzE4NzUgNC4zMTg3NSAxLjMzMzk4IDguMDAwNjUgMS4zMzM5OEMxMS42ODI2IDEuMzMzOTggMTQuNjY3MyA0LjMxODc1IDE0LjY2NzMgOC4wMDA2NVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzk4QTJCM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE4MjZfNDQ4NzFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBEZWZpbmUgdG9vbHRpcCBjb250ZW50IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdG9vbHRpcENvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20tdG9vbHRpcC1jb250ZW50IHRvb2x0aXAtY29udGVudCB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cInctMTAwXCIgKm5nRm9yPVwibGV0IHRvb2x0aXBJdGVtIG9mIGlzc3VlPy50b29sVGlwc1wiPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBJdGVtPy5uYW1lIH19PC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3VuZGVkY2hlY2sgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgW2NoZWNrZWRdPVwiaXNzdWUuY2hlY2tlZFwiIGNsYXNzPVwicC0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHB0LTZcIiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5tYW5hZ2VfdGlja2V0c19pc0VkaXRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiaGliZXJudGlvblwiIGNsYXNzPVwiIG1haW5jYXJkLWxhYmVsIGZ3LXNlbWlib2xkIG1iLTJcIj5IaWJlcm5hdGlvbiAoaW4gZGF5cylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiB3LTI1MHB4IHBvc2l0aW9uLXJlbGF0aXZlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZSB0cmFuc2xhdGUtbWlkZGxlLXkgdG9wLTUwIG1lLTUgcHMtMyB0aWNrZXREYXlzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHRvZ2dsZS1vZmYgc3ZnLWljb24tMVwiIFtuZ0NsYXNzXT1cImNvdW50ID09PSAwID8gJ3BlLW5vbmUnIDogJydcIiAoY2xpY2spPVwiZGVjcmVzZUNvdW50KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIxXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIxIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk00LjY2NjAyIDEwSDE2LjMzMjdcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBpZD1cImhpYmVybnRpb25cIiBbKG5nTW9kZWwpXT1cIkhpYmVybmF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiIHZhbHVlPVwie3tjb3VudH19XCIgcGxhY2Vob2xkZXI9XCIwXCIgcmVhZE9ubHkgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLWFic29sdXRlIHRyYW5zbGF0ZS1taWRkbGUteSB0b3AtNTAgZW5kLTAgbWUtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiB0b2dnbGUtb24gc3ZnLWljb24tMSB0aWNrZXREYXlzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaW5jcmVhc2VDb3VudCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMVwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMSAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAuNDk5MyA0LjE2NjVWMTUuODMzMk00LjY2NjAyIDkuOTk5ODRIMTYuMzMyN1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRJc3N1ZSA9PT0gJ090aGVycydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5jYXJkLWNvbnRlbnQgdy0xMDAgbXQtMiBweC00IHB5LTIgcGItNCBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbmNhcmQtbGFiZWwgZnctc2VtaWJvbGQgcHktMlwiPlBsZWFzZSBzZWxlY3QgdGhlIHJlbGV2YW50IHByb2JsZW0gZmFjaW5nIGZyb21cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3dpbmc8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG90aGVycyBvZiBvdGhlcnNJc3N1ZTsgbGV0IGkgPSBpbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYWluY2FyZC1jb250ZW50IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgdy0xMDAgbXQtMiBweC00IHB5LTQgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVSYWRpb2JveChvdGhlcnMpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGltZyBjbGFzcz1cInBlLTNcIiBzcmM9Jy4vYXNzZXRzL3RhbmdvL0ltYWdlcy9GZWF0dXJlZCBpY29uLnBuZyc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRpbmd0ZXh0XCI+e3tvdGhlcnMubmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48c3ZnIGNsYXNzPVwibXMtM1wiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTgyNl80NDg3MSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC4wMDA2NSAxMC42NjczVjguMDAwNjVNOC4wMDA2NSA1LjMzMzk4SDguMDA3MzJNMTQuNjY3MyA4LjAwMDY1QzE0LjY2NzMgMTEuNjgyNiAxMS42ODI2IDE0LjY2NzMgOC4wMDA2NSAxNC42NjczQzQuMzE4NzUgMTQuNjY3MyAxLjMzMzk4IDExLjY4MjYgMS4zMzM5OCA4LjAwMDY1QzEuMzMzOTggNC4zMTg3NSA0LjMxODc1IDEuMzMzOTggOC4wMDA2NSAxLjMzMzk4QzExLjY4MjYgMS4zMzM5OCAxNC42NjczIDQuMzE4NzUgMTQuNjY3MyA4LjAwMDY1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjOThBMkIzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTgyNl80NDg3MVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdW5kZWRjaGVjayBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBuYW1lPVwicmFkaW9Hcm91cHt7aX19XCIgW3ZhbHVlXT1cIm90aGVycy5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRPcHRpb25cIiBjbGFzcz1cInAtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBwdC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImhpYmVybnRpb25cIiBjbGFzcz1cIiBtYWluY2FyZC1sYWJlbCBmdy1zZW1pYm9sZCBtYi0yXCI+SGliZXJuYXRpb24gKGluIGRheXMpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICo8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgdy0yNTBweCBwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgdHJhbnNsYXRlLW1pZGRsZS15IHRvcC01MCBtZS01IHBzLTMgdGlja2V0RGF5c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiB0b2dnbGUtb2ZmIHN2Zy1pY29uLTFcIiBbbmdDbGFzc109XCJjb3VudCA9PT0gMCA/ICdwZS1ub25lJyA6ICcnXCIgKGNsaWNrKT1cImRlY3Jlc2VDb3VudCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMVwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMSAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNC42NjYwMiAxMEgxNi4zMzI3XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJoaWJlcm50aW9uXCIgWyhuZ01vZGVsKV09XCJIaWJlcm5hdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIiB2YWx1ZT1cInt7Y291bnR9fVwiIHBsYWNlaG9sZGVyPVwiMFwiIHJlYWRPbmx5IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZSB0cmFuc2xhdGUtbWlkZGxlLXkgdG9wLTUwIGVuZC0wIG1lLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gdG9nZ2xlLW9uIHN2Zy1pY29uLTEgdGlja2V0RGF5c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImluY3JlYXNlQ291bnQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjFcIiBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjEgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEwLjQ5OTMgNC4xNjY1VjE1LjgzMzJNNC42NjYwMiA5Ljk5OTg0SDE2LjMzMjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5jYXJkLWNvbnRlbnQgdy0xMDAgbXQtMiBweC00IHB5LTIgcGItNFwiICpuZ0lmPVwic2VsZWN0ZWRJc3N1ZSA9PT0gJ0NhbWVyYSBJc3N1ZXMnJiYhc2hvd2NhbUlzc3VlJiZjYW1lcmFMaXN0SW1hZ2VzLmxlbmd0aD4wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbmNhcmQtbGFiZWwgZnctc2VtaWJvbGQgcHktMiBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGxlYXNlIG1ha2Ugc3VyZSBhbGwgb2YgeW91ciBzdXJ2ZWlsbGFuY2UgY2FtZXJhcyBhcmUgZnVuY3Rpb25pbmcgYW5kIHZlcmlmeSB0aGUgZm9vdGFnZSB5b3UgaGF2ZS4gPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS02XCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY2FtZXJhTGlzdEltYWdlcztsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FtZXJhIGZ3LWJvbGRcIj57e2l0ZW0/LmNhbWVyYU5hbWUgPyBpdGVtPy5jYW1lcmFOYW1lOlwiLS1cIn19PC9zcGFuPjxzcGFuIGNsYXNzPVwiY2FtZXJhIGZ3LWJvbGRcIj4gQ2FtZXJhIDE8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicm91bmRlZC0yIHctMTAwIG1oLTM1MHB4IG92ZXJmbG93LWhpZGRlbiBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwidy0xMDBcIiAqbmdJZj1cIml0ZW0/LnRodW1ibmFpbEltYWdlICE9PSBudWxsICYmIGl0ZW0/LnRodW1ibmFpbEltYWdlICE9PSAnJ1wiIFtzcmNdPVwiaXRlbT8udGh1bWJuYWlsSW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGltZyBjbGFzcz1cInctMTAwXCIgIHNyYz0naHR0cHM6Ly9pbWFnZXMudW5zcGxhc2guY29tL3Bob3RvLTE0NDE5ODYzMDA5MTctNjQ2NzRiZDYwMGQ4P3c9NTAwJmF1dG89Zm9ybWF0JmZpdD1jcm9wJnE9NjAmaXhsaWI9cmItNC4wLjMmaXhpZD1NM3d4TWpBM2ZEQjhNSHh6WldGeVkyaDhNbng4YzNSdmNtVjhaVzU4TUh4OE1IeDhmREElM0QnPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtPy50aHVtYm5haWxJbWFnZSA9PT0gbnVsbCB8fCBpdGVtPy50aHVtYm5haWxJbWFnZSA9PT0gJydcIiBjbGFzcz1cInctMTAwICBoLTMwMHB4IHJvdW5kZWQtMiBvdmVyZmxvdy1oaWRkZW4gTm9wcmV2aWV3IGFsaWduLWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByZXZpZXdUaXRsZSB0ZXh0LWNlbnRlciBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmV2aWV3IG5vdCBhdmFpbGFibGUge3tpdGVtPy50aHVtYm5haWxJbWFnZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByZXZpZXdzdWJUaXRsZSBmdy1zZW1pYm9sZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIHNlbGVjdGVkIGNhbWVyYSBpcyBub3QgYXZhaWxhYmxlIGF0IHRoZSBtb21lbnQuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC01IG1iLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImNhbWVyYVNlbGVjdGlvbihpLCd3b3JraW5nJylcIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBidG4tb3V0bGluZSB3LTUwIG1lLTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0uY2FtZXJhTnVtYmVyPT09J3dvcmtpbmcnPyd0ZXh0LXByaW1hcnkgYmctbGlnaHQtcHJpbWFyeSc6JydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXb3JraW5nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImNhbWVyYVNlbGVjdGlvbihpLCdub3R3b3JraW5nJylcIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBidG4tb3V0bGluZSB3LTUwIG1zLTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0uY2FtZXJhTnVtYmVyPT09J25vdHdvcmtpbmcnPyd0ZXh0LWRhbmdlciBiZy1saWdodC1kYW5nZXInOicnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90IFdvcmtpbmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFzaG93Y2FtSXNzdWVcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB3LTEwMCBtdC02XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidXBkYXRlQ2FtU3RhdHVzKClcIj5Qcm9jZWVkPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidGlja2V0SW5mbz8udGlja2V0RGV0YWlscz8uaXNzdWVTdGF0dXMgPT09J2lkZW50aWZpZWQnfHx0aWNrZXRJbmZvPy5zdGF0dXMgPT09ICdjbG9zZWQnfHx0aWNrZXRJbmZvPy50aWNrZXREZXRhaWxzLnRpY2tldFR5cGUgPT09ICdyZWZyZXNodGlja2V0J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG9iaiBvZiB2aWV3VGlja2V0RGF0YTtsZXQgaT1pbmRleFwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBIb3Jpem9udGFsIGxpbmUgd2l0aCBkYXkgLS0+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci0xIGJvcmRlci1ncmF5IHAtMCB3LTEwMCBtZS0zXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZGF5IGZ3LWJvbGQtNDAwXCI+VG9kYXk8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci0xIGJvcmRlci1ncmF5IHAtMCB3LTEwMCBtcy0zXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gVXNlciBjb2RlIHN0YXJ0ICAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm9iai5hY3Rpb25CeSA9PT0gJ1VzZXInXCIgY2xhc3M9XCJkLWZsZXggbXMtNSBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib2JqLmFjdGlvblR5cGUgIT09J3N0YXR1c0NoYW5nZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIHBlLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRyZSBqdXN0aWZ5LWNvbnRlbnQtY2VudHJlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJtc2dwcm9maWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ltYWdlcy91c2VyUHJvZmlsZS5zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC0wIGgtMTAwIG10LTMgYm9yZGVyIGJvcmRlci0xIGJvcmRlci1ncmF5XCIgc3R5bGU9XCJ3aWR0aDowcHhcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yXCIgKm5nSWY9XCJvYmouYWN0aW9uVHlwZSA9PT0gJ3N0YXR1c0NoYW5nZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpbWluZ3RleHQgcGUtMyBwdC0xIGZ3LWJvbGQtNDAwXCI+VXBkYXRlZCB0aGUgc3RhdHVzPC9zcGFuPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGltaW5ndGV4dCBmdy1zZW1pYm9sZCB0ZXh0LXByaW1hcnlcIj5PcGVuIC0+IElucHJvZ3Jlc3M8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0zIHctMTAwIHB0LTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib2JqLmFjdGlvblR5cGUgIT09J3N0YXR1c0NoYW5nZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkaW5ndGV4dCBmdy1zZW1pYm9sZCB0ZXh0LXVwcGVyY2FzZVwiPnt7b2JqPy5JZGVudGlmaWVkQnk/b2JqPy5JZGVudGlmaWVkQnk6XCJUYW5nb1wifX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpbWluZ3RleHQgcHgtMyBwdC0xIGZ3LWJvbGQtNDAwXCI+e3tvYmo/LnRpbWVTdGFtcH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwcm9maWxlLWxhYmVsIGZvbnQtYm9sZC00MDBcIj5Vc2VyIGhhcyByZXBsaWVkPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvYmouYWN0aW9uVHlwZSA9PT0gJ3N0YXR1c0NoZWNrUmVwbHknXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0dXBkYXRlcyBmdy1ib2xkLTQwMCBtdC0zXCI+SXNzdWUgaGFzIGJlZW4gPGI+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJvYmouc3RhdHVzQ2hlY2tSZXBseT09PSdObydcIj5ub3Q8L3NwYW4+IHJlc29sdmVkLjwvYj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dHVwZGF0ZXMgZnctYm9sZC00MDBcIiAqbmdJZj1cIm9iai5zdGF0dXNDaGVja1JlcGx5PT09J05vJ1wiPiBJdCB0YWtlc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tvYmo/LmhpYmVybmF0aW9uRGF5c319IG1vcmUgZGF5cyB0byByZXNvbHZlLjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yXCIgKm5nSWY9XCJvYmouYWN0aW9uVHlwZSA9PT0gJ2NvbW1lbnQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGltaW5ndGV4dCBwZS0zIHB0LTEgZnctYm9sZC00MDAgdGV4dC13cmFwXCI+e3tvYmo/LmNvbW1lbnR9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib2JqLmFjdGlvblR5cGUgPT09J2lzc3VlVXBkYXRlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHJlcyBvZiBvYmo/LnJlYXNvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHR1cGRhdGVzIGZ3LWJvbGQtNDAwIG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZSdyZSBjdXJyZW50bHkgZW5jb3VudGVyaW5nIGFuIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnctYm9sZC03MDBcIj57e3Jlcy5wcmltYXJ5SXNzdWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInJlcy5wcmltYXJ5SXNzdWUgPT09J0NhbWVyYSBJc3N1ZXMnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm5vdHdvcmtpbmdDYW1hcmFsaXN0ICYmIG5vdHdvcmtpbmdDYW1hcmFsaXN0Py5sZW5ndGhcIiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIG5vdHdvcmtpbmdDYW1hcmFsaXN0XCIgY2xhc3M9XCJjb2wtc20tMyBteS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm91bmRlZC0zIG92ZXJmbG93LWhpZGRlbiBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhbWVyYSBmdy1ib2xkXCI+e3tpdGVtLmNhbWVyYU5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiaXRlbT8udGh1bWJuYWlsSW1hZ2VcIiBzdHlsZT1cImhlaWdodDoxODBweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dHVwZGF0ZXMgZnctYm9sZC00MDAgbXQtMyBtZS0yXCI+VGhlIGFib3ZlIGNhbWVyYSBzdHJlYW1pbmcgYXJlIG5vdCB3b3JraW5nIGR1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHR1cGRhdGVzIGZ3LWJvbGQtNzAwIG10LTNcIiAqbmdGb3I9XCJsZXQgaXNzdWUgb2YgcmVzPy5zZWNvbmRhcnlJc3N1ZTsgbGV0IGxhc3QgPSBsYXN0XCI+e3tpc3N1ZT8ubmFtZX19IDxuZy1jb250YWluZXIgKm5nSWY9XCIhbGFzdFwiPiAsPC9uZy1jb250YWluZXI+PC9zcGFuPiB0byB0aGUgQ2FtZXJhPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZXM/LnNlY29uZGFyeUlzc3VlICYmIHJlcz8uc2Vjb25kYXJ5SXNzdWU/Lmxlbmd0aFwiIGNsYXNzPVwibXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnZlc3RpZ2F0aW9uIGZ3LWJvbGQtNDAwIG1iLTNcIj5UaGUgZm9sbG93aW5nIGFyZSB0aGUgcmVsZXZhbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvYmxlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWNpbmc8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTVcIj4gICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cInRpbWluZ3RleHQgZnctYm9sZC00MDAgbWItMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHNlY0lzc3VlcyBvZiByZXM/LnNlY29uZGFyeUlzc3VlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPnt7c2VjSXNzdWVzLm5hbWV9fTwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aW1pbmd0ZXh0IHBlLTMgcHQtMSBmdy1ib2xkLTQwMFwiPnt7b2JqPy5jb21tZW50fX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3RlZElzc3VlID09PSAnJ1wiIGNsYXNzPVwicHJvZmlsZS1sYWJlbCBmdy1zZW1pYm9sZCBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtpbmRseSBjaG9vc2UgdGhlIG9wdGlvbiBiZWxvdyB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBpc3N1ZSB5b3UgYXJlIGV4cGVyaWVuY2luZyBpblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmUuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gVXNlciBjb2RlIGVuZCAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBUYW5nbyBjb2RlIHN0YXJ0IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib2JqLmFjdGlvbkJ5ID09PSAnVGFuZ28nIHx8IG9iai5hY3Rpb25CeSA9PT0gJ2F1dG9tYXRlZCdcIiBjbGFzcz1cImQtZmxleCBtYi01IG1zLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgcGUtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudHJlIGp1c3RpZnktY29udGVudC1jZW50cmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN5bWJvbCBzeW1ib2wtNDhweCBzeW1ib2wtY2lyY2xlXCIgKm5nSWY9XCJvYmo/LklkZW50aWZpZWRCeSYmb2JqPy5JZGVudGlmaWVkQnkhPT0nJyYmb2JqPy5JZGVudGlmaWVkQnkhPT0nVGFuZ28nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN5bWJvbC1sYWJlbCBiYWRnZS1saWdodC1wcmltYXJ5IHRleHQtc3ltYm9sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXByaW1hcnkgZnMtNCBiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5IGZ3LW5vcm1hbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e29iaj8uSWRlbnRpZmllZEJ5Py5zbGljZSgwLDIpIHwgdXBwZXJjYXNlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyAqbmdJZj1cIiFvYmo/LklkZW50aWZpZWRCeXx8b2JqPy5JZGVudGlmaWVkQnk9PT0nJ3x8b2JqPy5JZGVudGlmaWVkQnk9PT0nVGFuZ28nXCIgY2xhc3M9XCJtc2dwcm9maWxlXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSW1hZ2VzL3RhbmdvcHJvZmlsZS5wbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC0wIGgtMTAwIG10LTMgYm9yZGVyIGJvcmRlci0xIGJvcmRlci1ncmF5IHZlcnRpY2FsTGluZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHktMyBwdC0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRpbmd0ZXh0IGZ3LXNlbWlib2xkIHRleHQtY2FwaXRhbGl6ZVwiPnt7b2JqPy5JZGVudGlmaWVkQnk/b2JqPy5JZGVudGlmaWVkQnk6XCJUYW5nb1wifX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGltaW5ndGV4dCBmdy1ib2xkLTQwMCBweC0zIHB0LTFcIj57e29iaj8udGltZVN0YW1wfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwcm9maWxlLWxhYmVsIGZ3LWJvbGQtNDAwXCI+dGFuZ28gaGFzIHJlcGxpZWQgdG8gdGhlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc3N1ZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yXCIgKm5nSWY9XCJvYmouYWN0aW9uVHlwZSA9PT0gJ3N0YXR1c0NoYW5nZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpbWluZ3RleHQgcGUtMyBwdC0xIGZ3LWJvbGQtNDAwXCI+VXBkYXRlZCB0aGUgc3RhdHVzPC9zcGFuPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGltaW5ndGV4dCBmdy1zZW1pYm9sZCB0ZXh0LXByaW1hcnlcIj5PcGVuIC0+IElucHJvZ3Jlc3M8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yXCIgKm5nSWY9XCJvYmouYWN0aW9uVHlwZSA9PT0gJ2NvbW1lbnQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aW1pbmd0ZXh0IHBlLTMgcHQtMSBmdy1ib2xkLTQwMCB0ZXh0LXdyYXBcIj57e29iaj8uY29tbWVudH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvYmouYWN0aW9uVHlwZSA9PT0gJ2RhdGFSZWNpdmVkJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHR1cGRhdGVzIGZ3LWJvbGQtNDAwIG10LTNcIj5UaGFuayB5b3UgZm9yIHlvdXIgYXNzaXN0YW5jZS4gV2UgaGF2ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY2VpdmVkIHRoZSBkYXRhIGZyb20geW91ciBTdG9yZS5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm9iai5hY3Rpb25UeXBlID09PSAnc3RhdHVzQ2hlY2tNb25pdG9yJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHR1cGRhdGVzIGZ3LWJvbGQtNDAwIG10LTNcIj5UaGFuayB5b3UgZm9yIHRoZSB1cGRhdGUuIFdl4oCZbGwgZ2V0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFjayBhZnRlciB0aGUgYnVmZmVyIHRpbWUgeW91IHByb3ZpZGVkLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib2JqLmFjdGlvblR5cGUgPT09J3N0ZXBzVG9SZXNvbHZlJ1wiIGNsYXNzPVwibXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0dXBkYXRlcyBmdy1ib2xkLTQwMFwiPlBsZWFzZSBmb2xsb3cgdGhlIGJlbG93IHN0ZXBzIHRvIHJlc29sdmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgYWJvdmUgaXNzdWU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCByZXMgb2Ygb2JqPy5yZWFzb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTUgbWItNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZ3RleHQgZnctc2VtaWJvbGQgbWItMVwiPnt7cmVzLnByaW1hcnlJc3N1ZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cInRpbWluZ3RleHQgZnctYm9sZC00MDAgbWItMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgc2VjSXNzdWVzIG9mIHJlcz8uc2Vjb25kYXJ5SXNzdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT57e3NlY0lzc3Vlcy5uYW1lfX08L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib2JqLmFjdGlvblR5cGUgPT09J2lzc3VlVXBkYXRlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgcmVzIG9mIG9iaj8ucmVhc29uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0dXBkYXRlcyBmdy1ib2xkLTQwMCBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlJ3JlIGN1cnJlbnRseSBlbmNvdW50ZXJpbmcgYW4gPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnctYm9sZC03MDBcIj57e3Jlcy5wcmltYXJ5SXNzdWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicmVzLnByaW1hcnlJc3N1ZSA9PT0nQ2FtZXJhIElzc3VlcydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBteS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIG5vdHdvcmtpbmdDYW1hcmFsaXN0XCIgY2xhc3M9XCJjb2wtc20tM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3VuZGVkLTMgb3ZlcmZsb3ctaGlkZGVuIG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhbWVyYSBmdy1ib2xkXCI+e3tpdGVtLmNhbWVyYU5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cIml0ZW0/LnRodW1ibmFpbEltYWdlXCIgc3R5bGU9XCJoZWlnaHQ6MTgwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0dXBkYXRlcyBmdy1ib2xkLTQwMCBtdC0zIG1lLTJcIj5UaGUgYWJvdmUgY2FtZXJhIHN0cmVhbWluZyBhcmUgbm90IHdvcmtpbmcgZHVlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHR1cGRhdGVzIGZ3LWJvbGQtNzAwIG10LTNcIiAqbmdGb3I9XCJsZXQgaXNzdWUgb2YgcmVzPy5zZWNvbmRhcnlJc3N1ZTsgbGV0IGxhc3QgPSBsYXN0XCI+e3tpc3N1ZT8ubmFtZX19IDxuZy1jb250YWluZXIgKm5nSWY9XCIhbGFzdFwiPiAsPC9uZy1jb250YWluZXI+PC9zcGFuPiA8c3BhbiBjbGFzcz1cInRleHR1cGRhdGVzIGZ3LWJvbGQtNDAwIG10LTNcIj50byB0aGUgQ2FtZXJhPC9zcGFuPlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImludmVzdGlnYXRpb24gZnctYm9sZC00MDAgbWItM1wiPlRoZSBmb2xsb3dpbmcgYXJlIHRoZSByZWxldmFudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvYmxlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFjaW5nPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNVwiPiAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cInRpbWluZ3RleHQgZnctYm9sZC00MDAgbWItMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzZWNJc3N1ZXMgb2YgcmVzPy5zZWNvbmRhcnlJc3N1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+e3tzZWNJc3N1ZXMubmFtZX19PC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGltaW5ndGV4dCBwZS0zIHB0LTEgZnctYm9sZC00MDAgdGV4dC13cmFwXCI+e3tvYmo/LmNvbW1lbnR9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvYmouYWN0aW9uVHlwZSA9PT0gJ3N0YXR1c0NoZWNrUmVwbHknXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dHVwZGF0ZXMgZnctYm9sZC00MDAgbXQtM1wiPklzc3VlIGhhcyBiZWVuIDxiPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIm9iai5zdGF0dXNDaGVja1JlcGx5PT09J05vJ1wiPm5vdDwvc3Bhbj4gcmVzb2x2ZWQuPC9iPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHR1cGRhdGVzIGZ3LWJvbGQtNDAwXCIgKm5nSWY9XCJvYmouc3RhdHVzQ2hlY2tSZXBseT09PSdObydcIj4gSXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlcyB7e29iaj8uaGliZXJuYXRpb25EYXlzfX0gbW9yZSBkYXlzIHRvIHJlc29sdmUuPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gZGVmYXVsdEluZnJhIHN0YXJ0IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvYmouYWN0aW9uVHlwZSA9PT0nZGVmYXVsdEluZnJhJ1wiIGNsYXNzPVwiY29udGVudHRleHQgZnctYm9sZC00MDBcIj5XZSBoYXZlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWNlaXZlZCBkYXRhIGZyb20geW91ciBzdG9yZS4gV2UgYXJlIGN1cnJlbnRseSBpbnZlc3RpZ2F0aW5nIHRoZSBpc3N1ZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gZGVmYXVsdEluZnJhIGVuZCAtLT5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFRhbmdvIGNvZGUgZW5kIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbG9hZGVyICBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vRGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctc3JjXCIgd2lkdGg9XCIyMDBweFwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93U3VibWl0ICYmIChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5tYW5hZ2VfdGlja2V0c19pc0VkaXRcIiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgbXQtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cImNvbW1lbnRzXCIgKGNsaWNrKT1cImFkZENvbW1lbnQoKVwiIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJBZGQgeW91ciBjb21tZW50cy4uXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiICNmaWxlSW5wdXQgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiIGFjY2VwdD1cImltYWdlLypcIiBtdWx0aXBsZSAoY2hhbmdlKT1cIm9uRmlsZVNlbGVjdGVkKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJ0aWNrZXRJbmZvPy5zdGF0dXMgPT09ICdjbG9zZWQnXCIgKGNsaWNrKT1cIm9wZW5GaWxlSW5wdXQoKVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgYnRuIGJ0bi1kZWZhdWx0IGJ0bi1vdXRsaW5lIG1zLTNcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTcuODY2NiA5LjIwODM1TDEwLjIwODIgMTYuODY2N0M5LjI3MDA1IDE3LjgwNDkgNy45OTc1NyAxOC4zMzIgNi42NzA3NSAxOC4zMzJDNS4zNDM5MyAxOC4zMzIgNC4wNzE0NSAxNy44MDQ5IDMuMTMzMjUgMTYuODY2N0MyLjE5NTA1IDE1LjkyODUgMS42Njc5NyAxNC42NTYgMS42Njc5NyAxMy4zMjkyQzEuNjY3OTcgMTIuMDAyNCAyLjE5NTA1IDEwLjcyOTkgMy4xMzMyNSA5Ljc5MTY4TDEwLjc5MTYgMi4xMzMzNUMxMS40MTcxIDEuNTA3ODggMTIuMjY1NCAxLjE1NjQ5IDEzLjE0OTkgMS4xNTY0OUMxNC4wMzQ1IDEuMTU2NDkgMTQuODgyOCAxLjUwNzg4IDE1LjUwODIgMi4xMzMzNUMxNi4xMzM3IDIuNzU4ODIgMTYuNDg1MSAzLjYwNzEzIDE2LjQ4NTEgNC40OTE2OEMxNi40ODUxIDUuMzc2MjMgMTYuMTMzNyA2LjIyNDU1IDE1LjUwODIgNi44NTAwMkw3Ljg0MTU4IDE0LjUwODNDNy41Mjg4NSAxNC44MjExIDcuMTA0NjkgMTQuOTk2OCA2LjY2MjQyIDE0Ljk5NjhDNi4yMjAxNCAxNC45OTY4IDUuNzk1OTggMTQuODIxMSA1LjQ4MzI1IDE0LjUwODNDNS4xNzA1MSAxNC4xOTU2IDQuOTk0ODIgMTMuNzcxNSA0Ljk5NDgyIDEzLjMyOTJDNC45OTQ4MiAxMi44ODY5IDUuMTcwNTEgMTIuNDYyNyA1LjQ4MzI1IDEyLjE1TDEyLjU1ODIgNS4wODMzNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwidGlja2V0SW5mbz8uc3RhdHVzID09PSAnY2xvc2VkJ1wiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG1zLTNcIiAoY2xpY2spPVwidXBkYXRlVGlja2V0KClcIj4gU3VibWl0IDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxidXR0b24gIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IGJ0bi1vdXRsaW5lIG1zLTMgdGV4dC1ub3dyYXBcIj48c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8zOTE3XzU0NjIxKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk03LjU3NDM1IDcuNTAwMDhDNy43NzAyNyA2Ljk0MzE0IDguMTU2OTggNi40NzM1IDguNjY1OTggNi4xNzQzNkM5LjE3NDk4IDUuODc1MjEgOS43NzM0MyA1Ljc2NTg2IDEwLjM1NTMgNS44NjU2N0MxMC45MzcyIDUuOTY1NDkgMTEuNDY1IDYuMjY4MDIgMTEuODQ1MiA2LjcxOTY5QzEyLjIyNTUgNy4xNzEzNiAxMi40MzM2IDcuNzQzMDIgMTIuNDMyNyA4LjMzMzQyQzEyLjQzMjcgMTAuMDAwMSA5LjkzMjY4IDEwLjgzMzQgOS45MzI2OCAxMC44MzM0TTkuOTk5MzUgMTQuMTY2N0gxMC4wMDc3TTE4LjMzMjcgMTAuMDAwMUMxOC4zMzI3IDE0LjYwMjUgMTQuNjAxNyAxOC4zMzM0IDkuOTk5MzUgMTguMzMzNEM1LjM5Njk4IDE4LjMzMzQgMS42NjYwMiAxNC42MDI1IDEuNjY2MDIgMTAuMDAwMUMxLjY2NjAyIDUuMzk3NzEgNS4zOTY5OCAxLjY2Njc1IDkuOTk5MzUgMS42NjY3NUMxNC42MDE3IDEuNjY2NzUgMTguMzMyNyA1LjM5NzcxIDE4LjMzMjcgMTAuMDAwMVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzEwMTgyOFwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzM5MTdfNTQ2MjFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+IENhbuKAmXQgYWJsZSB0byByZWFjaCB0aGUgc3RvcmU/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiICpuZ0lmPVwiZXJyb3JNZXNzYWdlXCI+e3sgZXJyb3JNZXNzYWdlIH19PC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS00XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci0xIGJvcmRlci1ncmF5IHJvdW5kZWQtMyBwLTUgaC0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FtZXJhIGZ3LXNlbWlib2xkXCI+QXR0YWNobWVudHM8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGlja2V0SW5mbz8uYXR0YWNobWVudHMubGVuZ3RoID09PTBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctMTAwIG10LTEwIG1iLTEwIG1oLTYwdmggZC1ncmlkIHRleHQtY2VudGVyIG14LWF1dG9cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cIm14LWF1dG9cIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JbWFnZXMvdGFrZXRpY2tldC5zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0YWtldGlja2V0IG10LTIgZnctYm9sZFwiPk5vIEF0dGFjaG1lbnRzIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGlja2V0SW5mbz8uYXR0YWNobWVudHMubGVuZ3RoID4gMFwiIGNsYXNzPVwicm93IG10LTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNiBwb3NpdGlvbi1yZWxhdGl2ZSBtYi0xMFwiICpuZ0Zvcj1cImxldCBmaWxlIG9mIHRpY2tldEluZm8/LmF0dGFjaG1lbnRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiQXR0YWNobWVudCBib3JkZXIgYm9yZGVyLTEgYm9yZGVyLWdyYXkgdy0xMDAgcm91bmRlZC0yIG92ZXJmbG93LWhpZGRlblwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaC0xNTBweFwiIChjbGljayk9XCJkb3dubG9hZGltYWdlKGZpbGU/LnNpZ25lZFVybCwnYWRkJylcIiBbc3JjXT1cImZpbGU/LnNpZ25lZFVybFwiIGFsdD1cIlNlbGVjdGVkIEltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZ3JpZCBib3JkZXIgYm9yZGVyLXRvcC0xIHB4LTUgcHktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImltYWdlbmFtZSBmdy1ib2xkXCI+e3tmaWxlLmZpbGVOYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJmdy1ib2xkLTQwMCB1cGRhdGVkZGF0ZVwiPnt7ZmlsZS5sYXN0TW9kaWZpZWREYXRlU3RyaW5nfX08L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cInJlbW92ZUZpbGUoZmlsZT8uc2lnbmVkVXJsKVwiIGNsYXNzPVwibWUtMyBwLTEgcG9zaXRpb24tYWJzb2x1dGUgd2lkdGgtMjBweCBoZWlnaHQtMjBweCByb3VuZGVkLTMgZW5kLTAgdG9wLTAgYm9yZGVyIGJvcmRlci0xIGJvcmRlci1wcmltYXJ5IGJnLWxpZ2h0LXByaW1hcnkgY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE1IDVMNSAxNU01IDVMMTUgMTVcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgXHJcblxyXG4gICAgPC9kaXY+XHJcblxyXG48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJTZWxlY3RlZFRhYiA9PT0gJ3N0b3JlaW5mbydcIj5cclxuICAgIDxsaWItc3RvcmUtaW5mbyBbc3RvcmVJZF09XCJ0aWNrZXRJbmZvPy5iYXNpY0RldGFpbHM/LnN0b3JlSWRcIj48L2xpYi1zdG9yZS1pbmZvPlxyXG48L2Rpdj4iXX0=
|
|
537
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby10aWNrZXQtdXNlci9zcmMvbGliL2NvbXBvbmVudHMvdGlja2V0cy90aWNrZXRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy90aWNrZXRzL3RpY2tldHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUF3QyxNQUFNLGVBQWUsQ0FBQztBQUV6RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQU96RSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7OztBQU8xQyxNQUFNLE9BQU8sZ0JBQWdCO0lBc0RQO0lBQWdDO0lBQzFDO0lBQ0E7SUFDQTtJQUNBO0lBQ0Q7SUExRFQsV0FBVyxHQUFRLFFBQVEsQ0FBQztJQUM1QixhQUFhLEdBQVEsaUJBQWlCLENBQUM7SUFDdkMsZUFBZSxDQUFNO0lBQ3JCLFdBQVcsQ0FBTTtJQUNqQixRQUFRLEdBQVEsRUFBRSxDQUFDO0lBQ25CLGFBQWEsQ0FBTTtJQUNuQixhQUFhLEdBQVUsQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZGLFdBQVcsR0FBVSxDQUFDLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsMEJBQTBCLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRSxDQUFDLENBQUE7SUFDdkgsV0FBVyxHQUFZLEtBQUssQ0FB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Q0FBQTtZQUM1QyxDQUFDO1lBQ0QsUUFBUTtZQUVSLENBQUM7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUM1QjtJQUNILENBQUM7d0dBOWhCVSxnQkFBZ0I7NEZBQWhCLGdCQUFnQiw0VENqQjdCLHd4c0RBcW1CTTs7NEZEcGxCTyxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsYUFBYTt3UEFzQ0MsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQUNPLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQStCM0IsT0FBTztzQkFETixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIFZpZXdDaGlsZCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYk1vZGFsLCBOZ2JNb2RhbFJlZiwgTmdiQWN0aXZlTW9kYWwsIE5nYlRvb2x0aXAgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IENvbnRhY3REZXRhaWxzQ29tcG9uZW50IH0gZnJvbSAnLi4vY29udGFjdC1kZXRhaWxzL2NvbnRhY3QtZGV0YWlscy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWtlcmVtb3RlQ29tcG9uZW50IH0gZnJvbSAnLi4vdGFrZXJlbW90ZS90YWtlcmVtb3RlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGlja2V0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90aWNrZXQtaW5mcmEuc2VydmljZSc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXRpY2tldHMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90aWNrZXRzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdGlja2V0cy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFRpY2tldHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgU2VsZWN0ZWRUYWI6IGFueSA9ICd0aWNrZXQnO1xyXG4gIHNlbGVjdGVkSXNzdWU6IGFueSA9ICdJbnRlcm5ldCBJc3N1ZXMnO1xyXG4gIHNlY29uZGFyeUlzc3VlczogYW55O1xyXG4gIGlzc3VlU3RhdHVzOiBhbnk7XHJcbiAgY29tbWVudHM6IGFueSA9ICcnO1xyXG4gIHByaW1hcnlJc3N1ZXM6IGFueTtcclxuICBkcm9wZG93bkl0ZW1zOiBhbnlbXSA9IFsnSW50ZXJuZXQgSXNzdWVzJywgJ0NhbWVyYSBJc3N1ZXMnLCAnU3lzdGVtIElzc3VlcycsICdPdGhlcnMnXTtcclxuICBvdGhlcnNJc3N1ZTogYW55W10gPSBbeyBuYW1lOiAnUG93ZXIgU2h1dGRvd24nIH0sIHsgbmFtZTogJ1N0b3JlIFRlbXBvcmFyaWx5IENsb3NlZCcgfSwgeyBuYW1lOiAnQXBwbGljYXRpb24gSXNzdWVzJyB9XVxyXG4gIGNhbWVyYUlzc3VlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgY2FtZXJhU2VsZWN0V29yazogYm9vbGVhbiA9IHRydWU7XHJcbiAgc2hvd1N1Ym1pdDogYm9vbGVhbiA9IHRydWU7XHJcbiAgY2FtZXJhU2VsZWN0OiBhbnk7XHJcbiAgc3RhdGU6IGFueTtcclxuICBsb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuICBub0RhdGE6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpbnB1dEhpYmVybmF0aW9uOiBhbnkgPSAnMDAnO1xyXG4gIGNvdW50OiBhbnkgPSAwO1xyXG4gIGlzQ2hlY2tlZDogYm9vbGVhbltdID0gW107XHJcbiAgcmVzb2x2ZWRJc3N1ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRyb3BEb3duOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdGlja2V0SWQ6IHN0cmluZyB8IG51bGw7XHJcbiAgdGlja2V0SW5mbzogYW55O1xyXG4gIGFjdGl2ZVRpY2tldERldGFpbHM6IGFueTtcclxuICBzdG9yZUFkZHJlc3M6IGFueTtcclxuICByZXBseU9wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICByZXBsaWVkSXNzdWU6IGFueTtcclxuICB2aWV3VGlja2V0RGF0YTogYW55O1xyXG4gIGN1cnJlbnRUaW1lOiBEYXRlID0gbmV3IERhdGUoKTtcclxuICB0YXJnZXRUaW1lOiBEYXRlXHJcbiAgc2VsZWN0ZWRGaWxlczogYW55ID0gW107XHJcbiAgYnJhbmRMb2dvOiBzdHJpbmcgfCBBcnJheUJ1ZmZlciB8IG51bGwgPSBudWxsO1xyXG4gIGxhc3RNb2RpZmllZERhdGVTdHJpbmc6IHN0cmluZztcclxuXHJcbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JykgZmlsZUlucHV0OiBhbnk7XHJcbiAgQFZpZXdDaGlsZCgndG9vbHRpcENvbnRlbnQnKSB0b29sdGlwQ29udGVudCE6IE5nYlRvb2x0aXA7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgLy8gaGVhZGVyRmlsdGVyOiBhbnk7XHJcbiAgdXNlcjogYW55O1xyXG4gIHVwZGF0ZWREYXRlOiBEYXRlO1xyXG4gIGlzR3JlYXRlclRoYW41XzMwSG91cnM6IGJvb2xlYW47XHJcbiAgc3RvcmVJZDogc3RyaW5nIHwgbnVsbDtcclxuICBzdG9yZURyb3BEb3duOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWRPcHRpb246IGFueTtcclxuICBIaWJlcm5hdGlvbjogYW55O1xyXG4gIGNsaWVudElkOiBhbnk7XHJcbiAgc2hvd2NhbUlzc3VlOiBib29sZWFuID0gZmFsc2VcclxuICBjYW1lcmFMaXN0SW1hZ2VzOiBhbnkgPSBbXTtcclxuICBmaW5hbENhbUxpc3Q6IGFueSA9IFtdO1xyXG4gIHN0b3JlTmFtZTogYW55O1xyXG4gIG5vdHdvcmtpbmdDYW1hcmFsaXN0OiBhbnkgPSBbXTtcclxuICB1c2VyVHlwZTogc3RyaW5nO1xyXG4gIGVycm9yTWVzc2FnZTogc3RyaW5nO1xyXG4gIEluZnJhSXNzdWU6IGFueTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1vZGFsU2VydmljZTogTmdiTW9kYWwsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IFRpY2tldHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgZ3M6IEdsb2JhbFN0YXRlU2VydmljZSkge1xyXG4gICAgdGhpcy50aWNrZXRJZCA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1NYXAuZ2V0KCd0aWNrZXRJZCcpO1xyXG4gICAgdGhpcy5zdG9yZUlkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ3N0b3JlSWQnKTtcclxuICAgIHRoaXMudmlld1RpY2tldChmYWxzZSlcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBjb25zdFxyXG4gICAgICB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBpZiAoIXRhcmdldC5jbG9zZXN0KCcuZHJvcERvd24nKSkge1xyXG4gICAgICB0aGlzLmRyb3BEb3duID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRhcmdldC5jbG9zZXN0KCcuc3RvcmVEcm9wRG93bicpKSB7XHJcbiAgICAgIHRoaXMuc3RvcmVEcm9wRG93biA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnVzZXIgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd1c2VyLWluZm8nKSB8fCBcIlwiKVxyXG4gICAgdGhpcy51c2VyVHlwZSA9IHRoaXMudXNlci51c2VyVHlwZVxyXG4gICAgdGhpcy5hY3RpdmVUaWNrZXQoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgdmlld1RpY2tldCh0eXBlOiBib29sZWFuKSB7XHJcbiAgICBsZXQgcGFyYW1zID0ge1xyXG4gICAgICB0aWNrZXRJZDogdGhpcy50aWNrZXRJZFxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2VydmljZS52aWV3VGlja2V0KHBhcmFtcykucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIGlmICh0eXBlKSB7XHJcbiAgICAgICAgICAgIHRoaXMudGlja2V0SW5mbyA9IHJlcz8uZGF0YVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy50aWNrZXRJbmZvID0gcmVzPy5kYXRhXHJcbiAgICAgICAgICAgIHRoaXMuSW5mcmFJc3N1ZSA9IHRoaXMudGlja2V0SW5mbz8udGlja2V0QWN0aXZpdHkuZmlsdGVyKChlbDogYW55KSA9PiBlbD8uYWN0aW9uVHlwZSA9PSAnaXNzdWVVcGRhdGUnKVswXT8ucmVhc29uc1swXT8ucHJpbWFyeUlzc3VlO1xyXG4gICAgICAgICAgICBpZiAodGhpcy50aWNrZXRJbmZvPy50aWNrZXREZXRhaWxzPy5pc3N1ZVN0YXR1cyA9PSAnbm90aWRlbnRpZmllZCcgJiYgdGhpcy50aWNrZXRJbmZvLnN0YXR1cyAhPT0gJ2Nsb3NlZCcgfHwgdGhpcy50aWNrZXRJbmZvPy50aWNrZXREZXRhaWxzLnRpY2tldFR5cGUgPT0gJ3JlZnJlc2h0aWNrZXQnICYmIHRoaXMudGlja2V0SW5mby5zdGF0dXMgIT09ICdjbG9zZWQnKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5wcmltYXJ5UmVhc29uKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZWNvbmRhcnlSZWFzb24odGhpcy5zZWxlY3RlZElzc3VlKTtcclxuICAgICAgICAgICAgICBpZiAodGhpcy50aWNrZXRJbmZvPy50aWNrZXREZXRhaWxzLnRpY2tldFR5cGUgPT0gJ3JlZnJlc2h0aWNrZXQnKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZpZXdUaWNrZXREYXRhID0gcmVzLmRhdGEudGlja2V0QWN0aXZpdHkuc2xpY2UoKS5yZXZlcnNlKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50aWNrZXRJbmZvPy5jYW1lcmFMaXN0Py5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIGxldCBub3R3b3JraW5nQ2FtZXJhID0gdGhpcy50aWNrZXRJbmZvLmNhbWVyYUxpc3QuZmlsdGVyKChlOiBhbnkpID0+IGUuc3RhdHVzICE9IFwid29ya2luZ1wiKTtcclxuICAgICAgICAgICAgICAgICAgaWYgKG5vdHdvcmtpbmdDYW1lcmEubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q2FtZXJhTGlzdChub3R3b3JraW5nQ2FtZXJhKVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZpZXdUaWNrZXREYXRhLmZvckVhY2goKGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBlLnRpbWVTdGFtcCA9IHRoaXMuZ2V0UmVsYXRpdmVUaW1lKGUudGltZVN0YW1wKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy52aWV3VGlja2V0RGF0YSA9IHRoaXMudmlld1RpY2tldERhdGEuZmlsdGVyKChlOiBhbnkpID0+IGUuYWN0aW9uVHlwZSAhPSBcInN0YXR1c0NoZWNrXCIpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnZpZXdUaWNrZXREYXRhID0gcmVzLmRhdGEudGlja2V0QWN0aXZpdHkuc2xpY2UoKS5yZXZlcnNlKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy52aWV3VGlja2V0RGF0YS5mb3JFYWNoKChlOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGUudGltZVN0YW1wID0gdGhpcy5nZXRSZWxhdGl2ZVRpbWUoZS50aW1lU3RhbXApO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIHRoaXMudmlld1RpY2tldERhdGEgPSB0aGlzLnZpZXdUaWNrZXREYXRhLmZpbHRlcigoZTogYW55KSA9PiBlLmFjdGlvblR5cGUgIT0gXCJzdGF0dXNDaGVja1wiKTtcclxuICAgICAgICAgICAgICBpZiAodGhpcy50aWNrZXRJbmZvPy5jYW1lcmFMaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIGxldCBub3R3b3JraW5nQ2FtZXJhID0gdGhpcy50aWNrZXRJbmZvLmNhbWVyYUxpc3QuZmlsdGVyKChlOiBhbnkpID0+IGUuc3RhdHVzICE9IFwid29ya2luZ1wiKTtcclxuICAgICAgICAgICAgICAgIGlmIChub3R3b3JraW5nQ2FtZXJhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5nZXRDYW1lcmFMaXN0KG5vdHdvcmtpbmdDYW1lcmEpXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChyZXM/LmRhdGE/LnN0YXR1cyA9PSAnb3BlbicpIHtcclxuICAgICAgICAgICAgICB0aGlzLnN0YXR1c1VwZGF0ZSgpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcclxuXHJcblxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICAgICAgfSxcclxuICAgICAgY29tcGxldGUoKSB7XHJcblxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0Q2FtZXJhTGlzdChub3R3b3JraW5nQ2FtZXJhOiBhbnkpIHtcclxuICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgIGNhbWVyYTogbm90d29ya2luZ0NhbWVyYVxyXG4gICAgfVxyXG4gICAgdGhpcy5zZXJ2aWNlLmdldENhbWVyYUxpc3QocGFyYW1zKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMubm90d29ya2luZ0NhbWFyYWxpc3QgPSByZXMuZGF0YVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgY2FtZXJhU2VsZWN0aW9uKGluZGV4OiBhbnksIHR5cGU6IGFueSkge1xyXG4gICAgdGhpcy5jYW1lcmFMaXN0SW1hZ2VzLm1hcCgodmFsdWU6IGFueSwgaW5kOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGluZCA9PT0gaW5kZXgpIHtcclxuICAgICAgICB2YWx1ZS5jYW1lcmFOdW1iZXIgPSB0eXBlXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIHVwZGF0ZUNhbVN0YXR1cygpIHtcclxuICAgIHRoaXMuc2hvd2NhbUlzc3VlID0gdHJ1ZVxyXG4gICAgdGhpcy5maW5hbENhbUxpc3QgPSBbXVxyXG4gICAgdGhpcy5jYW1lcmFMaXN0SW1hZ2VzLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLmZpbmFsQ2FtTGlzdC5wdXNoKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIENhbWlkOiBlbGVtZW50Ll9pZCxcclxuICAgICAgICAgIENhbU5hbWU6IGVsZW1lbnQuY2FtZXJhTmFtZSxcclxuICAgICAgICAgIHN0YXR1czogZWxlbWVudC5jYW1lcmFOdW1iZXIsXHJcbiAgICAgICAgICB0aHVtbmFpbEltYWdlOiBcIlwiXHJcbiAgICAgICAgfVxyXG4gICAgICApXHJcblxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxyXG4gIH1cclxuICBnZXRSZWxhdGl2ZVRpbWUodGltZXN0YW1wOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRpbWVzdGFtcCk7XHJcbiAgICBjb25zdCBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICBjb25zdCBkaWZmZXJlbmNlID0gY3VycmVudERhdGUuZ2V0VGltZSgpIC0gZGF0ZS5nZXRUaW1lKCk7XHJcbiAgICBjb25zdCBzZWNvbmRzID0gTWF0aC5mbG9vcihkaWZmZXJlbmNlIC8gMTAwMCk7XHJcbiAgICBjb25zdCBtaW51dGVzID0gTWF0aC5mbG9vcihzZWNvbmRzIC8gNjApO1xyXG4gICAgY29uc3QgaG91cnMgPSBNYXRoLmZsb29yKG1pbnV0ZXMgLyA2MCk7XHJcbiAgICBjb25zdCBkYXlzID0gTWF0aC5mbG9vcihob3VycyAvIDI0KTtcclxuXHJcbiAgICBpZiAoZGF5cyA+IDApIHtcclxuICAgICAgcmV0dXJuIGRheXMgPT09IDEgPyAnMSBkYXkgYWdvJyA6IGAke2RheXN9IGRheXMgYWdvYDtcclxuICAgIH0gZWxzZSBpZiAoaG91cnMgPiAwKSB7XHJcbiAgICAgIHJldHVybiBob3VycyA9PT0gMSA/ICcxIGhvdXIgYWdvJyA6IGAke2hvdXJzfSBob3VycyBhZ29gO1xyXG4gICAgfSBlbHNlIGlmIChtaW51dGVzID4gMCkge1xyXG4gICAgICByZXR1cm4gbWludXRlcyA9PT0gMSA/ICcxIG1pbnV0ZSBhZ28nIDogYCR7bWludXRlc30gbWludXRlcyBhZ29gO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuICdKdXN0IG5vdyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhY3RpdmVUaWNrZXQoKSB7XHJcbiAgICBsZXQgZGF0YSA9IHtcclxuICAgICAgdXNlcklkOiB0aGlzLnVzZXIuX2lkLFxyXG4gICAgICBpc3N1ZVR5cGU6IFwiaW5mcmFcIixcclxuICAgICAgLy8gZnJvbURhdGU6IHRoaXMuaGVhZGVyRmlsdGVyPy5kYXRlPy5zdGFydERhdGUsXHJcbiAgICAgIC8vIHRvRGF0ZTogdGhpcy5oZWFkZXJGaWx0ZXI/LmRhdGU/LmVuZERhdGUsXHJcbiAgICB9XHJcbiAgICB0aGlzLnNlcnZpY2UuYWN0aXZlVGlja2V0KGRhdGEpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmFjdGl2ZVRpY2tldERldGFpbHMgPSByZXM/LmRhdGE7XHJcbiAgICAgICAgdGhpcy5zdG9yZUFkZHJlc3MgPSB0aGlzLmFjdGl2ZVRpY2tldERldGFpbHM/LmRhdGE/LmZpbHRlcigoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS5zdG9yZUlkID09PSB0aGlzLnN0b3JlSWQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5zdG9yZUFkZHJlc3MgPSB0aGlzLnN0b3JlQWRkcmVzc1swXTtcclxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSxcclxuXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0c3RvcmVBZGRyZXNzKGRldGFpbHM6IGFueSkge1xyXG4gICAgdGhpcy5zdG9yZUFkZHJlc3MgPSBkZXRhaWxzXHJcbiAgICB0aGlzLnN0b3JlTmFtZSA9IHRoaXMuc3RvcmVBZGRyZXNzLnN0b3JlTmFtZTtcclxuICAgIHRoaXMuc3RvcmVJZCA9IHRoaXMuc3RvcmVBZGRyZXNzLnN0b3JlSWRcclxuICAgIHRoaXMuY2xpZW50SWQgPSB0aGlzLnN0b3JlQWRkcmVzcy5jbGllbnRJZFxyXG4gICAgdGhpcy5zdG9yZURyb3BEb3duID0gZmFsc2U7XHJcbiAgICB0aGlzLnRpY2tldElkID0gZGV0YWlscy50aWNrZXRJZFxyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChgdGlja2V0cy91c2Vycy90aWNrZXRpbmZvLyR7ZGV0YWlscy50aWNrZXRJZH0vJHtkZXRhaWxzLnN0b3JlSWR9YClcclxuICAgIC8vIHRoaXMuYWN0aXZlVGlja2V0KCk7XHJcbiAgICB0aGlzLnZpZXdUaWNrZXQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgUHJldlJvdXRlKCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL3RpY2tldHMvdXNlcnM/dHlwZT1pbmZyYScpXHJcbiAgfVxyXG5cclxuICBwcmltYXJ5UmVhc29uKCkge1xyXG4gICAgbGV0IHBhcmFtcyA9IHtcclxuICAgICAgXCJuYW1lXCI6IHRoaXMuc2VsZWN0ZWRJc3N1ZSxcclxuICAgICAgXCJvcmRlclwiOiAyXHJcbiAgICB9XHJcbiAgICB0aGlzLnNlcnZpY2UucHJpbWFyeVJlYXNvbihwYXJhbXMpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5wcmltYXJ5SXNzdWVzID0gcmVzO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICAgICAgfSxcclxuICAgICAgY29tcGxldGUoKSB7XHJcblxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgc2Vjb25kYXJ5UmVhc29uKHZhbHVlOiBhbnkpIHtcclxuICAgIGlmKHZhbHVlKXtcclxuICAgICAgbGV0IHBhcmFtcyA9IHsgXCJwcmltYXJ5SXNzdWVcIjogdmFsdWUgfVxyXG4gICAgICB0aGlzLnNlcnZpY2Uuc2Vjb25kYXJ5UmVhc29uKHBhcmFtcykucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnNlY29uZGFyeUlzc3VlcyA9IHJlcy5kYXRhLnJlc3VsdDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3IoZXJyKSB7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgIFxyXG4gIH1cclxuXHJcbiAgdXBkYXRlVGlja2V0KCkge1xyXG4gICAgbGV0IGRhdGEgPSBbXVxyXG4gICAgaWYgKHRoaXMuc2Vjb25kYXJ5SXNzdWVzICYmIHRoaXMuc2Vjb25kYXJ5SXNzdWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJc3N1ZSA9PSAnT3RoZXJzJykge1xyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkT3B0aW9uID09PSAnQXBwbGljYXRpb24gSXNzdWVzJykge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZElzc3VlID0gJ0FwcGxpY2F0aW9uIElzc3Vlcyc7XHJcbiAgICAgICAgICBkYXRhID0gW107XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJc3N1ZSA9ICdTdG9yZSBPcGVyYXRpb24gSXNzdWVzJztcclxuICAgICAgICAgIGRhdGEgPSBbdGhpcy5zZWxlY3RlZE9wdGlvbl1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gZGF0YSA9IHRoaXMub3RoZXJzSXNzdWUuZmlsdGVyKChpdGVtOiBhbnkpID0+IGl0ZW0uY2hlY2tlZCkubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0ubmFtZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZGF0YSA9IHRoaXMuc2Vjb25kYXJ5SXNzdWVzLmZpbHRlcigoaXRlbTogYW55KSA9PiBpdGVtLmNoZWNrZWQpLm1hcCgoaXRlbTogYW55KSA9PiBpdGVtLm5hbWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZE9wdGlvbiAhPSAnQXBwbGljYXRpb24gSXNzdWVzJykge1xyXG4gICAgaWYgKHRoaXMudGlja2V0SW5mbz8udGlja2V0RGV0YWlscy5pc3N1ZVN0YXR1cyA9PT0gJ25vdGlkZW50aWZpZWQnICYmIGRhdGEubGVuZ3RoID09IDAgfHwgdGhpcy50aWNrZXRJbmZvPy50aWNrZXREZXRhaWxzLnRpY2tldFR5cGU9PSdyZWZyZXNodGlja2V0JyYmdGhpcy50aWNrZXRJbmZvPy50aWNrZXREZXRhaWxzPy5yZWZyZXNoVGlja2V0U3RhdHVzID09PSAnbm90aWRlbnRpZmllZCcgJiYgZGF0YS5sZW5ndGggPT0gMCkge1xyXG4gICAgICByZXR1cm4gdGhpcy50b2FzdFNlcnZpY2UuZ2V0RXJyb3JUb2FzdChcIlBsZWFzZSBTZWxlY3QgSXNzdWVzXCIpXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudGlja2V0SW5mbz8udGlja2V0RGV0YWlscy5pc3N1ZVN0YXR1cyA9PT0gJ2lkZW50aWZpZWQnICYmIHRoaXMuY29tbWVudHMgPT0gJycgfHwgdGhpcy50aWNrZXRJbmZvPy50aWNrZXREZXRhaWxzLnRpY2tldFR5cGU9PSdyZWZyZXNodGlja2V0JyYmdGhpcy50aWNrZXRJbmZvPy50aWNrZXREZXRhaWxzPy5yZWZyZXNoVGlja2V0U3RhdHVzID09PSAnaWRlbnRpZmllZCcgJiYgdGhpcy5jb21tZW50cyA9PSBcIlwiKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRvYXN0U2VydmljZS5nZXRFcnJvclRvYXN0KFwiUGxlYXNlIEVudGVyIENvbW1lbnRzXCIpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAgIGxldCB0aWNrZXREZXRhaWxzID0ge1xyXG4gICAgICBcInRpY2tldElkXCI6IHRoaXMudGlja2V0SWQsXHJcbiAgICAgIFwicHJpbWFyeVwiOiB0aGlzLnNlbGVjdGVkSXNzdWUsXHJcbiAgICAgIFwic2Vjb25kYXJ5XCI6IGRhdGEsXHJcbiAgICAgIFwiY29tbWVudFwiOiB0aGlzLmNvbW1lbnRzLFxyXG4gICAgICAnaGliZXJuYXRpb25EYXlzJzp0aGlzLmNvdW50LFxyXG4gICAgICAnY2FtZXJhTGlzdCc6IHRoaXMuZmluYWxDYW1MaXN0Lmxlbmd0aCA+IDAgPyB0aGlzLmZpbmFsQ2FtTGlzdCA6IFtdXHJcbiAgICB9XHJcbiBcclxuICAgIHRoaXMuc2VydmljZS51cGRhdGVUaWNrZXQodGlja2V0RGV0YWlscykucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLmNvbW1lbnRzID0gJydcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJc3N1ZSA9ICcnXHJcbiAgICAgICAgICB0aGlzLnNlY29uZGFyeUlzc3Vlcz1bXVxyXG4gICAgICAgICAgLy8gdGhpcy5zdGF0ZS5pc3N1ZVN0YXR1cyA9IHRoaXMuc2VsZWN0ZWRJc3N1ZTtcclxuICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldFN1Y2Nlc3NUb2FzdChyZXMubWVzc2FnZSlcclxuICAgICAgICAgIHRoaXMudmlld1RpY2tldChmYWxzZSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0RXJyb3JUb2FzdChyZXMubWVzc2FnZSlcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0RXJyb3JUb2FzdChlcnIuRXJyb3IpXHJcbiAgICAgIH0sXHJcbiAgICAgIGNvbXBsZXRlKCkge1xyXG5cclxuICAgICAgfSxcclxuICAgIH0pXHJcblxyXG4gIH1cclxuXHJcbiAgc3RhdHVzVXBkYXRlKCkge1xyXG4gICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgIFwidGlja2V0SWRcIjogdGhpcy50aWNrZXRJZCxcclxuICAgICAgXCJzdGF0dXNcIjogXCJpbnByb2dyZXNzXCJcclxuICAgIH1cclxuICAgIHRoaXMuc2VydmljZS5zdGF0dXNVcGRhdGUoZGF0YSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHJlcylcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGFkZENvbW1lbnQoKSB7XHJcbiAgICB0aGlzLmNvbW1lbnRzID0gdGhpcy5jb21tZW50c1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0SXRlbSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLnNob3dTdWJtaXQgPSB0cnVlXHJcbiAgICB0aGlzLnNlbGVjdGVkSXNzdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuc2Vjb25kYXJ5UmVhc29uKHRoaXMuc2VsZWN0ZWRJc3N1ZSlcclxuXHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZElzc3VlID09ICdDYW1lcmEgSXNzdWVzJykge1xyXG4gICAgICB0aGlzLmNhbWVyYUxpc3QodGhpcy5zdG9yZUlkKVxyXG4gICAgfVxyXG4gICAgdGhpcy5kcm9wRG93biA9IGZhbHNlO1xyXG4gIH1cclxuICBjYW1lcmFMaXN0KHN0b3JlSWQ6IGFueSkge1xyXG4gICAgLy8gc3RvcmVJZCA9IFwiMjAxLTEyOVwiXHJcbiAgICB0aGlzLnNlcnZpY2UuY2FtZXJhTGlzdChzdG9yZUlkKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuY2FtZXJhTGlzdEltYWdlcyA9IHJlcz8uZGF0YVxyXG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcclxuICAgICAgICAgIGlmICh0aGlzLmNhbWVyYUxpc3RJbWFnZXMgPT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLnNob3djYW1Jc3N1ZSA9IHRydWVcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zaG93Y2FtSXNzdWUgPSB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldEVycm9yVG9hc3QoZXJyLkVycm9yKVxyXG4gICAgICB9LFxyXG4gICAgICBjb21wbGV0ZSgpIHtcclxuXHJcbiAgICAgIH0sXHJcbiAgICB9KVxyXG4gIH1cclxuICBvcGVuUmVtb3RlKCkge1xyXG4gICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKFRha2VyZW1vdGVDb21wb25lbnQsIHsgY2VudGVyZWQ6IHRydWUsIHNjcm9sbGFibGU6IHRydWUsIH0pO1xyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2Uuc3RvcmVEZXRhaWxzID0ge1xyXG4gICAgICBzdG9yZU5hbWU6IHRoaXMuc3RvcmVBZGRyZXNzPy5zdG9yZU5hbWUsXHJcbiAgICAgIGNsaWVudElkOiB0aGlzLnN0b3JlQWRkcmVzcy5jbGllbnRJZCxcclxuICAgICAgc3RvcmVJZDogdGhpcy5zdG9yZUFkZHJlc3M/LnN0b3JlSWRcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNhbWVyYVNlbGVjdGVkKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuY2FtZXJhU2VsZWN0ID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwcm9jZWRkSW1hZ2UodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5zaG93U3VibWl0ID0gdHJ1ZTtcclxuICAgIHRoaXMuY2FtZXJhSXNzdWUgPSB0cnVlO1xyXG4gICAgdGhpcy5jYW1lcmFTZWxlY3RXb3JrID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBTZWxlY3RlZFRhYnModmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5TZWxlY3RlZFRhYiA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlQ2hlY2tib3goaW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5zZWNvbmRhcnlJc3N1ZXNbaW5kZXhdLmNoZWNrZWQgPSAhdGhpcy5zZWNvbmRhcnlJc3N1ZXNbaW5kZXhdLmNoZWNrZWQ7XHJcbiAgfVxyXG4gIHRvZ2dsZVJhZGlvYm94KG90aGVyczogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uID0gb3RoZXJzLm5hbWU7XHJcbiAgfVxyXG4gIGRlY3Jlc2VDb3VudCgpOiBhbnkge1xyXG4gICAgdGhpcy5jb3VudCAtPSAxO1xyXG4gIH1cclxuXHJcbiAgaW5jcmVhc2VDb3VudCgpOiBhbnkge1xyXG4gICAgdGhpcy5jb3VudCArPSAxO1xyXG4gIH1cclxuXHJcbiAgb3BlbkNvbnRhY3QoKSB7XHJcbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oQ29udGFjdERldGFpbHNDb21wb25lbnQsXHJcbiAgICAgIHtcclxuICAgICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgICBzY3JvbGxhYmxlOiB0cnVlLFxyXG4gICAgICB9KTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnZhbHVlID0ge1xyXG4gICAgICBzdG9yZU5hbWU6IHRoaXMuc3RvcmVBZGRyZXNzLnN0b3JlTmFtZSxcclxuICAgICAgc3RvcmVJZDogdGhpcy5zdG9yZUFkZHJlc3Muc3RvcmVJZCxcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuc3RvcmVBZGRyZXNzLmNsaWVudElkXHJcbiAgICB9LFxyXG5cclxuICAgICAgbW9kYWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdCkgPT4ge1xyXG5cclxuICAgICAgfSlcclxuXHJcblxyXG4gIH1cclxuXHJcbiAgb3BlbkRyb3Bkb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuZHJvcERvd24gPSAhdGhpcy5kcm9wRG93bjtcclxuICB9XHJcbiAgc3RvcmVDaGFuZ2UoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5zdG9yZURyb3BEb3duID0gIXRoaXMuc3RvcmVEcm9wRG93bjtcclxuXHJcbiAgfVxyXG4gIG9wZW5GaWxlSW5wdXQoKSB7XHJcbiAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XHJcbiAgfVxyXG4gIGRvd25sb2FkaW1hZ2UodXJsOiBhbnksa2V5OmFueSkge1xyXG4gICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICAgIGEuaHJlZiA9IHVybDtcclxuICAgIGEuZG93bmxvYWQgPSB1cmw7XHJcbiAgICBpZiAoa2V5ID09PSAnYWRkJykge1xyXG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xyXG4gICAgICBhLmNsaWNrKCk7XHJcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ3JlbW92ZScpIHtcclxuICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChhKTtcclxuICAgIH1cclxuICB9XHJcbiAgb25GaWxlU2VsZWN0ZWQoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKGV2ZW50LnRhcmdldC5maWxlcyAmJiBldmVudC50YXJnZXQuZmlsZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBldmVudC50YXJnZXQuZmlsZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgZmlsZTogRmlsZSA9IGV2ZW50LnRhcmdldC5maWxlc1tpXTtcclxuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ2ltZycsIGZpbGUpO1xyXG4gICAgICAgIGlmICghZmlsZS50eXBlLnN0YXJ0c1dpdGgoJ2ltYWdlLycpKSB7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdPbmx5IGltYWdlIGZpbGVzIGFyZSBhbGxvd2VkISc7XHJcbiAgICAgICAgICByZXR1cm47IC8vIFN0b3AgZnVydGhlciBwcm9jZXNzaW5nXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICAgIHJlYWRlci5vbmxvYWQgPSAoZTogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsZXMucHVzaCh7XHJcbiAgICAgICAgICAgIG5hbWU6IGZpbGUubmFtZSxcclxuICAgICAgICAgICAgdXJsOiBlLnRhcmdldC5yZXN1bHQsXHJcbiAgICAgICAgICAgIGxhc3RNb2RpZmllZERhdGVTdHJpbmc6IG5ldyBEYXRlKGZpbGUubGFzdE1vZGlmaWVkKS50b0xvY2FsZVN0cmluZygpXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnNvbGUubG9nKCdmb3JtRGF0YScsZm9ybURhdGEpXHJcbiAgICAgIHRoaXMuc2VydmljZS51cGxvYWRBdHRhY2htZW50cyh0aGlzLnRpY2tldElkLCBmb3JtRGF0YSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRTdWNjZXNzVG9hc3QocmVzLm1lc3NhZ2UpXHJcbiAgICAgICAgICAgIHRoaXMudmlld1RpY2tldCh0cnVlKVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0RXJyb3JUb2FzdChyZXMubWVzc2FnZSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRFcnJvclRvYXN0KGVyci5FcnJvcilcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbXBsZXRlKCkge1xyXG5cclxuICAgICAgICB9LFxyXG4gICAgICB9KVxyXG5cclxuXHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlRmlsZSh1cmw6YW55KXtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMudGlja2V0SW5mby5hdHRhY2htZW50cywndGhpcy50aWNrZXRJbmZvJylcclxuICAgIHRoaXMudGlja2V0SW5mby5hdHRhY2htZW50cyA9IHRoaXMudGlja2V0SW5mby5hdHRhY2htZW50cy5maWx0ZXIoKGZpbGU6YW55KSA9PiBmaWxlLnNpZ25lZFVybCAhPT0gdXJsKTtcclxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5zZXJ2aWNlLnVwbG9hZEF0dGFjaG1lbnRzKHRoaXMudGlja2V0SWQsIHRoaXMudGlja2V0SW5mby5hdHRhY2htZW50cykucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRTdWNjZXNzVG9hc3QocmVzLm1lc3NhZ2UpXHJcbiAgICAgICAgICB0aGlzLnZpZXdUaWNrZXQodHJ1ZSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0RXJyb3JUb2FzdChyZXMubWVzc2FnZSlcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0RXJyb3JUb2FzdChlcnIuRXJyb3IpXHJcbiAgICAgIH0sXHJcbiAgICAgIGNvbXBsZXRlKCkge1xyXG5cclxuICAgICAgfSxcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBjbG9zZVRvb2x0aXAoKSB7XHJcbiAgICBpZiAodGhpcy50b29sdGlwQ29udGVudCkge1xyXG4gICAgICB0aGlzLnRvb2x0aXBDb250ZW50LmNsb3NlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzaG93VG9vbHRpcCgpIHtcclxuICAgIGlmICh0aGlzLnRvb2x0aXBDb250ZW50KSB7XHJcbiAgICAgIHRoaXMudG9vbHRpcENvbnRlbnQub3BlbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm1iLTUgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbmNhcmQtY29udGVudCBiZy13aGl0ZSBweC0zIHB5LTIgbWUtMyBjdXJzb3ItcG9pbnRlclwiIHN0eWxlPVwid2lkdGg6IGZpdC1jb250ZW50O1wiIChjbGljayk9XCJQcmV2Um91dGUoKVwiPiA8c3ZnXHJcbiAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAxNCAxNFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEyLjgzMjcgNi45OTkzNUgxLjE2NjAyTTEuMTY2MDIgNi45OTkzNUw2Ljk5OTM1IDEyLjgzMjdNMS4xNjYwMiA2Ljk5OTM1TDYuOTk5MzUgMS4xNjYwMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz48L2Rpdj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LWJvbGQgc3RvcmUtbGFiZWxcIj4ge3tzdG9yZUlkfX08L3NwYW4+IDxzcGFuICpuZ0lmPVwic3RvcmVBZGRyZXNzPy5hZGRyZXNzXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmdy1ib2xkIHN0b3JlLWxhYmVsXCI+IHxcclxuICAgICAgICAgICAge3tzdG9yZUFkZHJlc3M/LmFkZHJlc3N9fSA8L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5XCI+IHt7YWN0aXZlVGlja2V0RGV0YWlscz8uY291bnR9fSB7e3N0b3JlQWRkcmVzcz8uc3RhdHVzfX08L3NwYW4+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlIHBzLTNcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInN0b3JlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgdy0xMDAgYnRuLW91dGxpbmUgYnRuLW91dGxpbmUtZGVmYXVsdCByb3VuZGVkLTMgdGV4dC1ub3dyYXAgYm9yZGVyLXZhbCBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYmctd2hpdGVcIj5cclxuICAgICAgICAgICAgICAgIHt7c3RvcmVJZCA/IHN0b3JlSWQgOiBzdG9yZUFkZHJlc3M/LnN0b3JlSWR9fVxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0zXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNSA3LjVMMTAgMTIuNUwxNSA3LjVcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdG9yZURyb3BEb3duXCIgY2xhc3M9XCJjYXJkIHB5LTEgei0xIHctMjAwcHggcG9zaXRpb24tYWJzb2x1dGUgdG9wLTUwcHggZW5kLTAgaC0zMDBweCBvdmVyZmxvdy1hdXRvXCI+XHJcbiAgICAgICAgICAgICAgICA8dWwgKm5nRm9yPVwibGV0IGRldGFpbHMgb2YgYWN0aXZlVGlja2V0RGV0YWlscz8uZGF0YVwiIGNsYXNzPVwibGlzdC11bnN0eWxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaSBbbmdDbGFzc109XCJzdG9yZUFkZHJlc3M/LnN0b3JlSWQgPT09IGRldGFpbHM/LnN0b3JlSWQgPyAnYWN0aXZlJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYW1lcmEgcHgtNSBpdGVtcyBmdy1zZW1pYm9sZCBjdXJzb3ItcG9pbnRlciBweS0yXCIgKGNsaWNrKT1cImdldHN0b3JlQWRkcmVzcyhkZXRhaWxzKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e2RldGFpbHM/LnN0b3JlSWR9fTwvbGk+XHJcbiAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJjYXJkIG1iLTUgcHktMyBweC01XCI+XHJcbiAgICA8dWwgY2xhc3M9XCJuYXYgbmF2LXN0cmV0Y2ggbmF2LWxpbmUtdGFiczEgbmF2LWxpbmUtdGFicyBib3JkZXItdHJhbnNwYXJlbnQgZmxleC1ub3dyYXBcIj5cclxuICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiIChjbGljayk9XCJTZWxlY3RlZFRhYnMoJ3RpY2tldCcpXCI+PGEgW25nQ2xhc3NdPVwiU2VsZWN0ZWRUYWIgPT09J3RpY2tldCcgPyAnYWN0aXZlJyA6JydcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYtbGluayBmcy00IGN1cnNvci1wb2ludGVyIG5vLWJvcmRlciBtZS02IFwiPlRpY2tldDwvYT5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCIgKGNsaWNrKT1cIlNlbGVjdGVkVGFicygnc3RvcmVpbmZvJylcIj5cclxuICAgICAgICAgICAgPGEgW25nQ2xhc3NdPVwiU2VsZWN0ZWRUYWIgPT09J3N0b3JlaW5mbycgPyAnYWN0aXZlJyA6JydcIiBjbGFzcz1cIm5hdi1saW5rIGZzLTQgY3Vyc29yLXBvaW50ZXIgbWUtNlwiPlN0b3JlXHJcbiAgICAgICAgICAgICAgICBJbmZvPC9hPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICA8L3VsPlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJTZWxlY3RlZFRhYiA9PT0ndGlja2V0J1wiIGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wIHB0LTNcIj5cclxuICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZC1sYWJlbCBtYi0yIG1zLTMgZnctc2VtaWJvbGRcIj57e3RpY2tldElkfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIkluZnJhSXNzdWVcIiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LXdhcm5pbmdcIj57e0luZnJhSXNzdWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zdWIgZnctYm9sZCBtYi0yIGJhZGdlIGJhZGdlLWxpZ2h0LWRlZmF1bHRcIj48c3ZnIGNsYXNzPVwibWUtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMzg3N185NjU1MilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOCAxVjNNNCAxVjNNMS41IDVIMTAuNU0yLjUgMkg5LjVDMTAuMDUyMyAyIDEwLjUgMi40NDc3MiAxMC41IDNWMTBDMTAuNSAxMC41NTIzIDEwLjA1MjMgMTEgOS41IDExSDIuNUMxLjk0NzcyIDExIDEuNSAxMC41NTIzIDEuNSAxMFYzQzEuNSAyLjQ0NzcyIDEuOTQ3NzIgMiAyLjUgMlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuMVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8zODc3Xzk2NTUyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPiBDcmVhdGVkIERhdGU6e3sgdGlja2V0SW5mbz8uY3JlYXRlZEF0fGN1c3RvbURhdGVGb3JtYXR9fTwvc3Bhbj5cclxuICAgICAgICA8L2gzPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgbXktMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/Lm1hbmFnZV90aWNrZXRzX2lzVmlld1wiICB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9wZW5Db250YWN0KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBteC0yIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWxcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzM4NzdfMTAyMjAzKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTIuNTQxNSA0LjE2NjU5QzEzLjM1NTUgNC4zMjUzOSAxNC4xMDM1IDQuNzIzNDcgMTQuNjg5OSA1LjMwOTg2QzE1LjI3NjMgNS44OTYyNiAxNS42NzQ0IDYuNjQ0MzEgMTUuODMzMiA3LjQ1ODI1TTEyLjU0MTUgMC44MzMyNTJDMTQuMjMyNiAxLjAyMTEyIDE1LjgwOTUgMS43Nzg0IDE3LjAxMzQgMi45ODA3NkMxOC4yMTczIDQuMTgzMTIgMTguOTc2NSA1Ljc1OTA5IDE5LjE2NjUgNy40NDk5Mk0xOC4zMzMyIDE0LjA5OTlWMTYuNTk5OUMxOC4zMzQxIDE2LjgzMiAxOC4yODY2IDE3LjA2MTcgMTguMTkzNiAxNy4yNzQ0QzE4LjEwMDYgMTcuNDg3IDE3Ljk2NDMgMTcuNjc3OSAxNy43OTMzIDE3LjgzNDhDMTcuNjIyMiAxNy45OTE3IDE3LjQyMDMgMTguMTExMiAxNy4yMDA1IDE4LjE4NTVDMTYuOTgwNiAxOC4yNTk5IDE2Ljc0NzcgMTguMjg3NSAxNi41MTY1IDE4LjI2NjZDMTMuOTUyMiAxNy45ODggMTEuNDg5IDE3LjExMTcgOS4zMjQ4NiAxNS43MDgzQzcuMzExMzkgMTQuNDI4OCA1LjYwNDMxIDEyLjcyMTcgNC4zMjQ4NiAxMC43MDgzQzIuOTE2NTEgOC41MzQyNiAyLjA0MDA3IDYuMDU5MDggMS43NjY1MyAzLjQ4MzI1QzEuNzQ1NyAzLjI1MjgxIDEuNzczMDkgMy4wMjA1NSAxLjg0Njk1IDIuODAxMjdDMS45MjA4IDIuNTgxOTkgMi4wMzk1MSAyLjM4MDQ5IDIuMTk1NSAyLjIwOTZDMi4zNTE1IDIuMDM4NzEgMi41NDEzNyAxLjkwMjE4IDIuNzUzMDIgMS44MDg2OUMyLjk2NDY4IDEuNzE1MiAzLjE5MzQ4IDEuNjY2OCAzLjQyNDg2IDEuNjY2NTlINS45MjQ4NkM2LjMyOTI4IDEuNjYyNiA2LjcyMTM2IDEuODA1ODIgNy4wMjggMi4wNjk1M0M3LjMzNDY0IDIuMzMzMjQgNy41MzQ5MyAyLjY5OTQ2IDcuNTkxNTMgMy4wOTk5MkM3LjY5NzA1IDMuODk5OTcgNy44OTI3NCA0LjY4NTUyIDguMTc0ODYgNS40NDE1OUM4LjI4Njk4IDUuNzM5ODYgOC4zMTEyNSA2LjA2NDAxIDguMjQ0NzggNi4zNzU2NUM4LjE3ODMyIDYuNjg3MjkgOC4wMjM5MiA2Ljk3MzM0IDcuNzk5ODYgNy4xOTk5Mkw2Ljc0MTUzIDguMjU4MjVDNy45Mjc4MyAxMC4zNDQ1IDkuNjU1MjQgMTIuMDcyIDExLjc0MTUgMTMuMjU4M0wxMi43OTk5IDEyLjE5OTlDMTMuMDI2NCAxMS45NzU5IDEzLjMxMjUgMTEuODIxNSAxMy42MjQxIDExLjc1NUMxMy45MzU4IDExLjY4ODUgMTQuMjU5OSAxMS43MTI4IDE0LjU1ODIgMTEuODI0OUMxNS4zMTQzIDEyLjEwNyAxNi4wOTk4IDEyLjMwMjcgMTYuODk5OSAxMi40MDgzQzE3LjMwNDcgMTIuNDY1NCAxNy42NzQ0IDEyLjY2OTMgMTcuOTM4NiAxMi45ODEyQzE4LjIwMjkgMTMuMjkzMSAxOC4zNDMzIDEzLjY5MTIgMTguMzMzMiAxNC4wOTk5WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzM4NzdfMTAyMjAzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMlwiPkNvbnRhY3QgRGV0YWlsczwvc3Bhbj4gPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5tYW5hZ2VfdGlja2V0c19pc1ZpZXdcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9wZW5SZW1vdGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IG14LTIgYnRuLW91dGxpbmUgYnRuLW91dGxpbmUtZGVmYXVsdCByb3VuZGVkLTMgdGV4dC1ub3dyYXAgYm9yZGVyLXZhbFwiPjxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy90YW5nby9JbWFnZXMvZGVza3RvcC5zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbm5lY3QgUmVtb3RlbHk8L3NwYW4+IDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS04XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0aWNrZXRJbmZvPy50aWNrZXREZXRhaWxzLmlzc3VlU3RhdHVzID09PSdub3RpZGVudGlmaWVkJyYmKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/Lm1hbmFnZV90aWNrZXRzX2lzRWRpdCYmdGlja2V0SW5mbz8uc3RhdHVzIT09J2Nsb3NlZCd8fHRpY2tldEluZm8/LnRpY2tldERldGFpbHMudGlja2V0VHlwZT09PSdyZWZyZXNodGlja2V0JyYmKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/Lm1hbmFnZV90aWNrZXRzX2lzRWRpdCYmdGlja2V0SW5mbz8udGlja2V0RGV0YWlscz8ucmVmcmVzaFRpY2tldFN0YXR1cz09PSdub3RpZGVudGlmaWVkJyYmdXNlclR5cGUgPT09J2NsaWVudCdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3BlbmVkaXNzdWUgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwcm9maWxlLWxhYmVsIGZ3LXNlbWlib2xkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMjEgMTJDMjEgNy4wMjkzIDE2Ljk3MDcgMyAxMiAzQzcuMDI5MyAzIDMgNy4wMjkzIDMgMTJDMyAxNi45NzA3IDcuMDI5MyAyMSAxMiAyMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMi45IDMuMDQ1MDRDMTIuOSAzLjA0NTA0IDE1LjYgNi42MDAwNCAxNS42IDEyTDEyLjkgMy4wNDUwNFpNMTEuMSAyMC45NTVDMTEuMSAyMC45NTUgOC40IDE3LjQgOC40IDEyQzguNCA2LjYwMDA0IDExLjEgMy4wNDUwNCAxMS4xIDMuMDQ1MDRNMy41NjcgMTUuMTVIMTJIMy41NjdaTTMuNTY3IDguODUwMDRIMjAuNDMzSDMuNTY3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0yMC44OTExIDE3LjMyNTJDMjEuMzM1NyAxNy41OTg4IDIxLjMwNzggMTguMjYzOSAyMC44NTA2IDE4LjMxNjFMMTguNTQwMyAxOC41NzhMMTcuNTA0NCAyMC42NTg4QzE3LjI5OTIgMjEuMDcxOSAxNi42NjQ3IDIwLjg2OTQgMTYuNTU5NCAyMC4zNTgyTDE1LjQyOTkgMTQuODUzOEMxNS4zNDA4IDE0LjQyMTggMTUuNzI5NiAxNC4xNSAxNi4xMDQ5IDE0LjM4MTNMMjAuODkxMSAxNy4zMjUyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0yMC4yNSAxMkMyMC4yNSAxMi40MTQyIDIwLjU4NTggMTIuNzUgMjEgMTIuNzVDMjEuNDE0MiAxMi43NSAyMS43NSAxMi40MTQyIDIxLjc1IDEySDIwLjI1Wk0xMiAyMS43NUMxMi40MTQyIDIxLjc1IDEyLjc1IDIxLjQxNDIgMTIuNzUgMjFDMTIuNzUgMjAuNTg1OCAxMi40MTQyIDIwLjI1IDEyIDIwLjI1VjIxLjc1Wk0xMy40OTczIDIuNTkxNDJDMTMuMjQ2NyAyLjI2MTU2IDEyLjc3NjIgMi4xOTcyNSAxMi40NDY0IDIuNDQ3NzhDMTIuMTE2NSAyLjY5ODMgMTIuMDUyMiAzLjE2ODggMTIuMzAyNyAzLjQ5ODY2TDEzLjQ5NzMgMi41OTE0MlpNMTQuODUgMTJDMTQuODUgMTIuNDE0MyAxNS4xODU4IDEyLjc1IDE1LjYgMTIuNzVDMTYuMDE0MiAxMi43NSAxNi4zNSAxMi40MTQzIDE2LjM1IDEySDE0Ljg1Wk0xMC41MDI3IDIxLjQwODdDMTAuNzUzMyAyMS43Mzg1IDExLjIyMzggMjEuODAyOCAxMS41NTM2IDIxLjU1MjNDMTEuODgzNSAyMS4zMDE4IDExLjk0NzggMjAuODMxMyAxMS42OTczIDIwLjUwMTRMMTAuNTAyNyAyMS40MDg3Wk0xMS42OTczIDMuNDk4NjZDMTEuOTQ3OCAzLjE2ODggMTEuODgzNSAyLjY5ODMgMTEuNTUzNiAyLjQ0Nzc4QzExLjIyMzggMi4xOTcyNSAxMC43NTMzIDIuMjYxNTYgMTAuNTAyNyAyLjU5MTQyTDExLjY5NzMgMy40OTg2NlpNMy41NjcgMTQuNEMzLjE1Mjc5IDE0LjQgMi44MTcgMTQuNzM1OCAyLjgxNyAxNS4xNUMyLjgxNyAxNS41NjQzIDMuMTUyNzkgMTUuOSAzLjU2NyAxNS45VjE0LjRaTTEyIDE1LjlDMTIuNDE0MiAxNS45IDEyLjc1IDE1LjU2NDMgMTIuNzUgMTUuMTVDMTIuNzUgMTQuNzM1OCAxMi40MTQyIDE0LjQgMTIgMTQuNFYxNS45Wk0zLjU2NyA4LjEwMDA0QzMuMTUyNzkgOC4xMDAwNCAyLjgxNyA4LjQzNTgzIDIuODE3IDguODUwMDRDMi44MTcgOS4yNjQyNiAzLjE1Mjc5IDkuNjAwMDQgMy41NjcgOS42MDAwNFY4LjEwMDA0Wk0yMC40MzMgOS42MDAwNEMyMC44NDcyIDkuNjAwMDQgMjEuMTgzIDkuMjY0MjYgMjEuMTgzIDguODUwMDRDMjEuMTgzIDguNDM1ODMgMjAuODQ3MiA4LjEwMDA0IDIwLjQzMyA4LjEwMDA0VjkuNjAwMDRaTTIwLjg5MTEgMTcuMzI1MkwyMS4yODQyIDE2LjY4NjVMMjEuMjg0IDE2LjY4NjRMMjAuODkxMSAxNy4zMjUyWk0yMC44NTA2IDE4LjMxNjFMMjAuOTM1MSAxOS4wNjEzTDIwLjkzNTcgMTkuMDYxM0wyMC44NTA2IDE4LjMxNjFaTTE4LjU0MDMgMTguNTc4TDE4LjQ1NTggMTcuODMyOEwxOC4wNTA2IDE3Ljg3ODdMMTcuODY4OSAxOC4yNDM4TDE4LjU0MDMgMTguNTc4Wk0xNy41MDQ0IDIwLjY1ODhMMTYuODMzIDIwLjMyNDZMMTYuODMyNyAyMC4zMjUyTDE3LjUwNDQgMjAuNjU4OFpNMTYuNTU5NCAyMC4zNTgyTDE1LjgyNDcgMjAuNTA5TDE1LjgyNDggMjAuNTA5NUwxNi41NTk0IDIwLjM1ODJaTTE1LjQyOTkgMTQuODUzOEwxNi4xNjQ2IDE0LjcwM0wxNi4xNjQ0IDE0LjcwMjNMMTUuNDI5OSAxNC44NTM4Wk0xNi4xMDQ5IDE0LjM4MTNMMTUuNzExNCAxNS4wMTk4TDE1LjcxMiAxNS4wMjAxTDE2LjEwNDkgMTQuMzgxM1pNMjEuNzUgMTJDMjEuNzUgNi42MTUwOSAxNy4zODQ5IDIuMjUgMTIgMi4yNVYzLjc1QzE2LjU1NjUgMy43NSAyMC4yNSA3LjQ0MzUxIDIwLjI1IDEySDIxLjc1Wk0xMiAyLjI1QzYuNjE1MDkgMi4yNSAyLjI1IDYuNjE1MDkgMi4yNSAxMkgzLjc1QzMuNzUgNy40NDM1MSA3LjQ0MzUxIDMuNzUgMTIgMy43NVYyLjI1Wk0yLjI1IDEyQzIuMjUgMTcuMzg0OSA2LjYxNTA5IDIxLjc1IDEyIDIxLjc1VjIwLjI1QzcuNDQzNTEgMjAuMjUgMy43NSAxNi41NTY1IDMuNzUgMTJIMi4yNVpNMTIuOSAzLjA0NTA0QzEyLjMwMjcgMy40OTg2NiAxMi4zMDI2IDMuNDk4NDYgMTIuMzAyNCAzLjQ5ODI4QzEyLjMwMjQgMy40OTgyMyAxMi4zMDIzIDMuNDk4MDYgMTIuMzAyMiAzLjQ5Nzk3QzEyLjMwMjEgMy40OTc3OSAxMi4zMDIgMy40OTc2NyAxMi4zMDE5IDMuNDk3NkMxMi4zMDE4IDMuNDk3NDYgMTIuMzAxOSAzLjQ5NzUzIDEyLjMwMjEgMy40OTc4MUMxMi4zMDI1IDMuNDk4MzggMTIuMzAzNiAzLjQ5OTggMTIuMzA1MyAzLjUwMjA2QzEyLjMwODYgMy41MDY1OCAxMi4zMTQ0IDMuNTE0NDcgMTIuMzIyNSAzLjUyNTY3QzEyLjMzODcgMy41NDgwOSAxMi4zNjQxIDMuNTgzNzUgMTIuMzk3MyAzLjYzMjI2QzEyLjQ2MzggMy43MjkyOSAxMi41NjE2IDMuODc3NTIgMTIuNjgwNSA0LjA3MzYxQzEyLjkxODMgNC40NjYwNiAxMy4yMzkzIDUuMDQ4NjMgMTMuNTYxNCA1Ljc5NDc4QzE0LjIwNjEgNy4yODgzNyAxNC44NSA5LjQyNTI2IDE0Ljg1IDEySDE2LjM1QzE2LjM1IDkuMTc0ODMgMTUuNjQzOSA2LjgzNDIyIDE0LjkzODYgNS4yMDAzMUMxNC41ODU3IDQuMzgyNzEgMTQuMjMxNyAzLjczOTAyIDEzLjk2MzMgMy4yOTYxNkMxMy44MjkgMy4wNzQ2IDEzLjcxNTkgMi45MDI5MSAxMy42MzQ3IDIuNzg0NDNDMTMuNTk0MSAyLjcyNTE4IDEzLjU2MTUgMi42NzkyIDEzLjUzODEgMi42NDY5QzEzLjUyNjUgMi42MzA3NSAxMy41MTcxIDIuNjE4MDIgMTMuNTEwMiAyLjYwODc2QzEzLjUwNjggMi42MDQxMyAxMy41MDQgMi42MDAzNiAxMy41MDE4IDIuNTk3NDdDMTMuNTAwNyAyLjU5NjAyIDEzLjQ5OTggMi41OTQ4IDEzLjQ5OTEgMi41OTM3OUMxMy40OTg3IDIuNTkzMjkgMTMuNDk4MyAyLjU5Mjg0IDEzLjQ5OCAyLjU5MjQ0QzEzLjQ5NzkgMi41OTIyNCAxMy40OTc3IDIuNTkxOTkgMTMuNDk3NiAyLjU5MTg5QzEzLjQ5NzQgMi41OTE2NSAxMy40OTczIDIuNTkxNDIgMTIuOSAzLjA0NTA0Wk0xMS4xIDIwLjk1NUMxMS42OTczIDIwLjUwMTQgMTEuNjk3NCAyMC41MDE2IDExLjY5NzYgMjAuNTAxOEMxMS42OTc2IDIwLjUwMTkgMTEuNjk3NyAyMC41MDIgMTEuNjk3OCAyMC41MDIxQzExLjY5NzkgMjAuNTAyMyAxMS42OTggMjAuNTAyNCAxMS42OTgxIDIwLjUwMjVDMTEuNjk4MiAyMC41MDI2IDExLjY5ODEgMjAuNTAyNiAxMS42OTc5IDIwLjUwMjNDMTEuNjk3NSAyMC41MDE3IDExLjY5NjQgMjAuNTAwMyAxMS42OTQ4IDIwLjQ5OEMxMS42OTE0IDIwLjQ5MzUgMTEuNjg1NiAyMC40ODU2IDExLjY3NzUgMjAuNDc0NEMxMS42NjEzIDIwLjQ1MiAxMS42MzU5IDIwLjQxNjMgMTEuNjAyNyAyMC4zNjc4QzExLjUzNjIgMjAuMjcwOCAxMS40Mzg0IDIwLjEyMjYgMTEuMzE5NSAxOS45MjY1QzExLjA4MTcgMTkuNTM0IDEwLjc2MDcgMTguOTUxNSAxMC40Mzg2IDE4LjIwNTNDOS43OTM4OCAxNi43MTE3IDkuMTUgMTQuNTc0OCA5LjE1IDEySDcuNjVDNy42NSAxNC44MjUzIDguMzU2MTMgMTcuMTY1OSA5LjA2MTQyIDE4Ljc5OThDOS40MTQzNCAxOS42MTc0IDkuNzY4MzMgMjAuMjYxMSAxMC4wMzY3IDIwLjcwMzlDMTAuMTcxIDIwLjkyNTUgMTAuMjg0MSAyMS4wOTcyIDEwLjM2NTMgMjEuMjE1N0MxMC40MDU5IDIxLjI3NDkgMTAuNDM4NSAyMS4zMjA5IDEwLjQ2MTkgMjEuMzUzMkMxMC40NzM1IDIxLjM2OTMgMTAuNDgyOSAyMS4zODIxIDEwLjQ4OTggMjEuMzkxM0MxMC40OTMyIDIxLjM5NiAxMC40OTYgMjEuMzk5NyAxMC40OTgyIDIxLjQwMjZDMTAuNDk5MyAyMS40MDQxIDEwLjUwMDIgMjEuNDA1MyAxMC41MDA5IDIxLjQwNjNDMTAuNTAxMyAyMS40MDY4IDEwLjUwMTcgMjEuNDA3MyAxMC41MDIgMjEuNDA3NkMxMC41MDIxIDIxLjQwNzggMTAuNTAyMyAyMS40MDgxIDEwLjUwMjQgMjEuNDA4MkMxMC41MDI2IDIxLjQwODQgMTAuNTAyNyAyMS40MDg3IDExLjEgMjAuOTU1Wk05LjE1IDEyQzkuMTUgOS40MjUyNiA5Ljc5Mzg4IDcuMjg4MzcgMTAuNDM4NiA1Ljc5NDc4QzEwLjc2MDcgNS4wNDg2MyAxMS4wODE3IDQuNDY2MDYgMTEuMzE5NSA0LjA3MzYxQzExLjQzODQgMy44Nzc1MiAxMS41MzYyIDMuNzI5MjkgMTEuNjAyNyAzLjYzMjI2QzExLjYzNTkgMy41ODM3NSAxMS42NjEzIDMuNTQ4MDkgMTEuNjc3NSAzLjUyNTY3QzExLjY4NTYgMy41MTQ0NyAxMS42OTE0IDMuNTA2NTggMTEuNjk0OCAzLjUwMjA2QzExLjY5NjQgMy40OTk4IDExLjY5NzUgMy40OTgzOCAxMS42OTc5IDMuNDk3ODFDMTEuNjk4MSAzLjQ5NzUzIDExLjY5ODIgMy40OTc0NiAxMS42OTgxIDMuNDk3NkMxMS42OTggMy40OTc2NyAxMS42OTc5IDMuNDk3NzkgMTEuNjk3OCAzLjQ5Nzk3QzExLjY5NzcgMy40OTgwNiAxMS42OTc2IDMuNDk4MjMgMTEuNjk3NiAzLjQ5ODI4QzExLjY5NzQgMy40OTg0NiAxMS42OTczIDMuNDk4NjYgMTEuMSAzLjA0NTA0QzEwLjUwMjcgMi41OTE0MiAxMC41MDI2IDIuNTkxNjUgMTAuNTAyNCAyLjU5MTg5QzEwLjUwMjMgMi41OTE5OSAxMC41MDIxIDIuNTkyMjQgMTAuNTAyIDIuNTkyNDRDMTAuNTAxNyAyLjU5Mjg0IDEwLjUwMTMgMi41OTMyOSAxMC41MDA5IDIuNTkzNzlDMTAuNTAwMiAyLjU5NDggMTAuNDk5MyAyLjU5NjAyIDEwLjQ5ODIgMi41OTc0N0MxMC40OTYgMi42MDAzNiAxMC40OTMyIDIuNjA0MTMgMTAuNDg5OCAyLjYwODc2QzEwLjQ4MjkgMi42MTgwMiAxMC40NzM1IDIuNjMwNzUgMTAuNDYxOSAyLjY0NjlDMTAuNDM4NSAyLjY3OTIgMTAuNDA1OSAyLjcyNTE4IDEwLjM2NTMgMi43ODQ0M0MxMC4yODQxIDIuOTAyOTEgMTAuMTcxIDMuMDc0NiAxMC4wMzY3IDMuMjk2MTZDOS43NjgzMyAzLjczOTAyIDkuNDE0MzQgNC4zODI3MSA5LjA2MTQyIDUuMjAwMzFDOC4zNTYxMyA2LjgzNDIyIDcuNjUgOS4xNzQ4MyA3LjY1IDEySDkuMTVaTTMuNTY3IDE1LjlIMTJWMTQuNEgzLjU2N1YxNS45Wk0zLjU2NyA5LjYwMDA0SDIwLjQzM1Y4LjEwMDA0SDMuNTY3VjkuNjAwMDRaTTIwLjQ5OCAxNy45NjM5QzIwLjQ3OTIgMTcuOTUyNCAyMC40NTc1IDE3LjkyNTIgMjAuNDU5NyAxNy44NzI3QzIwLjQ2MDkgMTcuODQzNCAyMC40NzE1IDE3Ljc3NzIgMjAuNTI5NyAxNy43MDU0QzIwLjU5NjEgMTcuNjIzNSAyMC42ODg5IDE3LjU3OTcgMjAuNzY1NSAxNy41NzA5TDIwLjkzNTcgMTkuMDYxM0MyMS42MTY3IDE4Ljk4MzUgMjEuOTM4NCAxOC40MTc5IDIxLjk1ODQgMTcuOTM0NkMyMS45Nzc2IDE3LjQ2ODIgMjEuNzQ3NiAxNi45NzE3IDIxLjI4NDIgMTYuNjg2NUwyMC40OTggMTcuOTYzOVpNMjAuNzY2MSAxNy41NzA5TDE4LjQ1NTggMTcuODMyOEwxOC42MjQ4IDE5LjMyMzJMMjAuOTM1MSAxOS4wNjEzTDIwLjc2NjEgMTcuNTcwOVpNMTcuODY4OSAxOC4yNDM4TDE2LjgzMyAyMC4zMjQ2TDE4LjE3NTggMjAuOTkzMUwxOS4yMTE3IDE4LjkxMjNMMTcuODY4OSAxOC4yNDM4Wk0xNi44MzI3IDIwLjMyNTJDMTYuODY2OCAyMC4yNTY1IDE2LjkzOTUgMjAuMTgzOSAxNy4wMzk4IDIwLjE0OTJDMTcuMTI3NyAyMC4xMTg4IDE3LjE5NCAyMC4xMzE2IDE3LjIyMjEgMjAuMTQwNUMxNy4yNzIgMjAuMTU2NCAxNy4yODk2IDIwLjE4NTcgMTcuMjk0IDIwLjIwNjlMMTUuODI0OCAyMC41MDk1QzE1LjkzNDUgMjEuMDQxOSAxNi4zMjIgMjEuNDI4MSAxNi43NjY4IDIxLjU2OTdDMTcuMjI4NiAyMS43MTY4IDE3Ljg3MDcgMjEuNjA3MyAxOC4xNzYxIDIwLjk5MjVMMTYuODMyNyAyMC4zMjUyWk0xNy4yOTQxIDIwLjIwNzRMMTYuMTY0NiAxNC43MDNMMTQuNjk1MiAxNS4wMDQ2TDE1LjgyNDcgMjAuNTA5TDE3LjI5NDEgMjAuMjA3NFpNMTYuMTY0NCAxNC43MDIzQzE2LjE3MjMgMTQuNzQwNiAxNi4xNjY2IDE0Ljg4MyAxNi4wMjMyIDE0Ljk4MzNDMTUuODggMTUuMDgzNSAxNS43NDQ2IDE1LjA0MDIgMTUuNzExNCAxNS4wMTk4TDE2LjQ5ODQgMTMuNzQyOEMxNi4wODk5IDEzLjQ5MTEgMTUuNTcyNCAxMy40NjggMTUuMTYzMyAxMy43NTQzQzE0Ljc1NCAxNC4wNDA3IDE0LjU5ODQgMTQuNTM1IDE0LjY5NTQgMTUuMDA1M0wxNi4xNjQ0IDE0LjcwMjNaTTE1LjcxMiAxNS4wMjAxTDIwLjQ5ODIgMTcuOTY0TDIxLjI4NCAxNi42ODY0TDE2LjQ5NzggMTMuNzQyNUwxNS43MTIgMTUuMDIwMVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzQ3NTQ2N1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4ge3tzZWxlY3RlZElzc3VlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIChjbGljayk9XCJjaG9vc2Vhbmlzc3VlKCcnKVwiIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cIm9wZW5Ecm9wZG93bigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1haW5jYXJkLWNvbnRlbnQgY3Vyc29yLXBvaW50ZXIgYmctd2hpdGUgcHgtMyBweS0yXCI+IDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTUgNy41TDEwIDEyLjVMMTUgNy41XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4gPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZHJvcERvd25cIiBjbGFzcz1cImNhcmQgcHktMSB3LTIwMHB4IHBvc2l0aW9uLWFic29sdXRlIHRvcC01MHB4IGVuZC0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRyb3Bkb3duSXRlbXNcIiBjbGFzcz1cImxpc3QtdW5zdHlsZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cInRoaXMuc2VsZWN0ZWRJc3N1ZSA9PT0gaXRlbSA/ICdhY3RpdmUnIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYW1lcmEgcHgtNSBpdGVtcyBmdy1zZW1pYm9sZCBjdXJzb3ItcG9pbnRlciBweS0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RJdGVtKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2l0ZW19fTwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkSXNzdWUgPT09ICdJbnRlcm5ldCBJc3N1ZXMnfHxzZWxlY3RlZElzc3VlID09PSAnQ2FtZXJhIElzc3VlcycmJnNob3djYW1Jc3N1ZXx8c2VsZWN0ZWRJc3N1ZSA9PT0gJ1N5c3RlbSBJc3N1ZXMnIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbmNhcmQtY29udGVudCB3LTEwMCBtdC0yIHB4LTQgcHktMiBwYi00IG1iLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYWluY2FyZC1sYWJlbCBmdy1zZW1pYm9sZCBweS0yXCIgKm5nSWY9XCJzZWNvbmRhcnlJc3N1ZXM/Lmxlbmd0aD4wXCI+IFBsZWFzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdCB0aGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxldmFudCBwcm9ibGVtIGZhY2luZyBmcm9tIHRoZSBmb2xsb3dpbmcgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpc3N1ZSBvZiBzZWNvbmRhcnlJc3N1ZXM7IGxldCBpbmRleCA9IGluZGV4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1haW5jYXJkLWNvbnRlbnQgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciB3LTEwMCBtdC0yIHB4LTQgcHktNCBjdXJzb3ItcG9pbnRlciBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVDaGVja2JveChpbmRleClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48aW1nIGNsYXNzPVwicGUtM1wiIHNyYz0nLi9hc3NldHMvdGFuZ28vSW1hZ2VzL0ZlYXR1cmVkIGljb24ucG5nJz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGluZ3RleHRcIj57e2lzc3VlPy5uYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy0zMDBweFwiIFtuZ2JUb29sdGlwXT1cInRvb2x0aXBDb250ZW50XCIgdHJpZ2dlcnM9XCJtb3VzZWVudGVyOm1vdXNlbGVhdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwibGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cIm1zLTNcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzE4MjZfNDQ4NzEpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguMDAwNjUgMTAuNjY3M1Y4LjAwMDY1TTguMDAwNjUgNS4zMzM5OEg4LjAwNzMyTTE0LjY2NzMgOC4wMDA2NUMxNC42NjczIDExLjY4MjYgMTEuNjgyNiAxNC42NjczIDguMDAwNjUgMTQuNjY3M0M0LjMxODc1IDE0LjY2NzMgMS4zMzM5OCAxMS42ODI2IDEuMzMzOTggOC4wMDA2NUMxLjMzMzk4IDQuMzE4NzUgNC4zMTg3NSAxLjMzMzk4IDguMDAwNjUgMS4zMzM5OEMxMS42ODI2IDEuMzMzOTggMTQuNjY3MyA0LjMxODc1IDE0LjY2NzMgOC4wMDA2NVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzk4QTJCM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE4MjZfNDQ4NzFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBEZWZpbmUgdG9vbHRpcCBjb250ZW50IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdG9vbHRpcENvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20tdG9vbHRpcC1jb250ZW50IHRvb2x0aXAtY29udGVudCB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cInctMTAwXCIgKm5nRm9yPVwibGV0IHRvb2x0aXBJdGVtIG9mIGlzc3VlPy50b29sVGlwc1wiPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBJdGVtPy5uYW1lIH19PC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3VuZGVkY2hlY2sgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgW2NoZWNrZWRdPVwiaXNzdWUuY2hlY2tlZFwiIGNsYXNzPVwicC0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHB0LTZcIiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5tYW5hZ2VfdGlja2V0c19pc0VkaXRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiaGliZXJudGlvblwiIGNsYXNzPVwiIG1haW5jYXJkLWxhYmVsIGZ3LXNlbWlib2xkIG1iLTJcIj5IaWJlcm5hdGlvbiAoaW4gZGF5cylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiB3LTI1MHB4IHBvc2l0aW9uLXJlbGF0aXZlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZSB0cmFuc2xhdGUtbWlkZGxlLXkgdG9wLTUwIG1lLTUgcHMtMyB0aWNrZXREYXlzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHRvZ2dsZS1vZmYgc3ZnLWljb24tMVwiIFtuZ0NsYXNzXT1cImNvdW50ID09PSAwID8gJ3BlLW5vbmUnIDogJydcIiAoY2xpY2spPVwiZGVjcmVzZUNvdW50KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIxXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIxIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk00LjY2NjAyIDEwSDE2LjMzMjdcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBpZD1cImhpYmVybnRpb25cIiBbKG5nTW9kZWwpXT1cIkhpYmVybmF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiIHZhbHVlPVwie3tjb3VudH19XCIgcGxhY2Vob2xkZXI9XCIwXCIgcmVhZE9ubHkgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLWFic29sdXRlIHRyYW5zbGF0ZS1taWRkbGUteSB0b3AtNTAgZW5kLTAgbWUtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiB0b2dnbGUtb24gc3ZnLWljb24tMSB0aWNrZXREYXlzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaW5jcmVhc2VDb3VudCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMVwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMSAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAuNDk5MyA0LjE2NjVWMTUuODMzMk00LjY2NjAyIDkuOTk5ODRIMTYuMzMyN1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRJc3N1ZSA9PT0gJ090aGVycydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5jYXJkLWNvbnRlbnQgdy0xMDAgbXQtMiBweC00IHB5LTIgcGItNCBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbmNhcmQtbGFiZWwgZnctc2VtaWJvbGQgcHktMlwiPlBsZWFzZSBzZWxlY3QgdGhlIHJlbGV2YW50IHByb2JsZW0gZmFjaW5nIGZyb21cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3dpbmc8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG90aGVycyBvZiBvdGhlcnNJc3N1ZTsgbGV0IGkgPSBpbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYWluY2FyZC1jb250ZW50IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgdy0xMDAgbXQtMiBweC00IHB5LTQgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVSYWRpb2JveChvdGhlcnMpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGltZyBjbGFzcz1cInBlLTNcIiBzcmM9Jy4vYXNzZXRzL3RhbmdvL0ltYWdlcy9GZWF0dXJlZCBpY29uLnBuZyc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRpbmd0ZXh0XCI+e3tvdGhlcnMubmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48c3ZnIGNsYXNzPVwibXMtM1wiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTgyNl80NDg3MSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC4wMDA2NSAxMC42NjczVjguMDAwNjVNOC4wMDA2NSA1LjMzMzk4SDguMDA3MzJNMTQuNjY3MyA4LjAwMDY1QzE0LjY2NzMgMTEuNjgyNiAxMS42ODI2IDE0LjY2NzMgOC4wMDA2NSAxNC42NjczQzQuMzE4NzUgMTQuNjY3MyAxLjMzMzk4IDExLjY4MjYgMS4zMzM5OCA4LjAwMDY1QzEuMzMzOTggNC4zMTg3NSA0LjMxODc1IDEuMzMzOTggOC4wMDA2NSAxLjMzMzk4QzExLjY4MjYgMS4zMzM5OCAxNC42NjczIDQuMzE4NzUgMTQuNjY3MyA4LjAwMDY1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjOThBMkIzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTgyNl80NDg3MVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdW5kZWRjaGVjayBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBuYW1lPVwicmFkaW9Hcm91cHt7aX19XCIgW3ZhbHVlXT1cIm90aGVycy5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRPcHRpb25cIiBjbGFzcz1cInAtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBwdC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImhpYmVybnRpb25cIiBjbGFzcz1cIiBtYWluY2FyZC1sYWJlbCBmdy1zZW1pYm9sZCBtYi0yXCI+SGliZXJuYXRpb24gKGluIGRheXMpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICo8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgdy0yNTBweCBwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgdHJhbnNsYXRlLW1pZGRsZS15IHRvcC01MCBtZS01IHBzLTMgdGlja2V0RGF5c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiB0b2dnbGUtb2ZmIHN2Zy1pY29uLTFcIiBbbmdDbGFzc109XCJjb3VudCA9PT0gMCA/ICdwZS1ub25lJyA6ICcnXCIgKGNsaWNrKT1cImRlY3Jlc2VDb3VudCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMVwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMSAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNC42NjYwMiAxMEgxNi4zMzI3XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJoaWJlcm50aW9uXCIgWyhuZ01vZGVsKV09XCJIaWJlcm5hdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIiB2YWx1ZT1cInt7Y291bnR9fVwiIHBsYWNlaG9sZGVyPVwiMFwiIHJlYWRPbmx5IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZSB0cmFuc2xhdGUtbWlkZGxlLXkgdG9wLTUwIGVuZC0wIG1lLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gdG9nZ2xlLW9uIHN2Zy1pY29uLTEgdGlja2V0RGF5c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImluY3JlYXNlQ291bnQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjFcIiBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjEgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEwLjQ5OTMgNC4xNjY1VjE1LjgzMzJNNC42NjYwMiA5Ljk5OTg0SDE2LjMzMjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5jYXJkLWNvbnRlbnQgdy0xMDAgbXQtMiBweC00IHB5LTIgcGItNFwiICpuZ0lmPVwic2VsZWN0ZWRJc3N1ZSA9PT0gJ0NhbWVyYSBJc3N1ZXMnJiYhc2hvd2NhbUlzc3VlJiZjYW1lcmFMaXN0SW1hZ2VzLmxlbmd0aD4wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbmNhcmQtbGFiZWwgZnctc2VtaWJvbGQgcHktMiBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGxlYXNlIG1ha2Ugc3VyZSBhbGwgb2YgeW91ciBzdXJ2ZWlsbGFuY2UgY2FtZXJhcyBhcmUgZnVuY3Rpb25pbmcgYW5kIHZlcmlmeSB0aGUgZm9vdGFnZSB5b3UgaGF2ZS4gPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS02XCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY2FtZXJhTGlzdEltYWdlcztsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FtZXJhIGZ3LWJvbGRcIj57e2l0ZW0/LmNhbWVyYU5hbWUgPyBpdGVtPy5jYW1lcmFOYW1lOlwiLS1cIn19PC9zcGFuPjxzcGFuIGNsYXNzPVwiY2FtZXJhIGZ3LWJvbGRcIj4gQ2FtZXJhIDE8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicm91bmRlZC0yIHctMTAwIG1oLTM1MHB4IG92ZXJmbG93LWhpZGRlbiBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwidy0xMDBcIiAqbmdJZj1cIml0ZW0/LnRodW1ibmFpbEltYWdlICE9PSBudWxsICYmIGl0ZW0/LnRodW1ibmFpbEltYWdlICE9PSAnJ1wiIFtzcmNdPVwiaXRlbT8udGh1bWJuYWlsSW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGltZyBjbGFzcz1cInctMTAwXCIgIHNyYz0naHR0cHM6Ly9pbWFnZXMudW5zcGxhc2guY29tL3Bob3RvLTE0NDE5ODYzMDA5MTctNjQ2NzRiZDYwMGQ4P3c9NTAwJmF1dG89Zm9ybWF0JmZpdD1jcm9wJnE9NjAmaXhsaWI9cmItNC4wLjMmaXhpZD1NM3d4TWpBM2ZEQjhNSHh6WldGeVkyaDhNbng4YzNSdmNtVjhaVzU4TUh4OE1IeDhmREElM0QnPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtPy50aHVtYm5haWxJbWFnZSA9PT0gbnVsbCB8fCBpdGVtPy50aHVtYm5haWxJbWFnZSA9PT0gJydcIiBjbGFzcz1cInctMTAwICBoLTMwMHB4IHJvdW5kZWQtMiBvdmVyZmxvdy1oaWRkZW4gTm9wcmV2aWV3IGFsaWduLWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByZXZpZXdUaXRsZSB0ZXh0LWNlbnRlciBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmV2aWV3IG5vdCBhdmFpbGFibGUge3tpdGVtPy50aHVtYm5haWxJbWFnZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByZXZpZXdzdWJUaXRsZSBmdy1zZW1pYm9sZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIHNlbGVjdGVkIGNhbWVyYSBpcyBub3QgYXZhaWxhYmxlIGF0IHRoZSBtb21lbnQuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC01IG1iLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImNhbWVyYVNlbGVjdGlvbihpLCd3b3JraW5nJylcIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBidG4tb3V0bGluZSB3LTUwIG1lLTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0uY2FtZXJhTnVtYmVyPT09J3dvcmtpbmcnPyd0ZXh0LXByaW1hcnkgYmctbGlnaHQtcHJpbWFyeSc6JydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXb3JraW5nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImNhbWVyYVNlbGVjdGlvbihpLCdub3R3b3JraW5nJylcIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBidG4tb3V0bGluZSB3LTUwIG1zLTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0uY2FtZXJhTnVtYmVyPT09J25vdHdvcmtpbmcnPyd0ZXh0LWRhbmdlciBiZy1saWdodC1kYW5nZXInOicnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90IFdvcmtpbmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFzaG93Y2FtSXNzdWVcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB3LTEwMCBtdC02XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidXBkYXRlQ2FtU3RhdHVzKClcIj5Qcm9jZWVkPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidGlja2V0SW5mbz8udGlja2V0RGV0YWlscz8uaXNzdWVTdGF0dXMgPT09J2lkZW50aWZpZWQnfHx0aWNrZXRJbmZvPy5zdGF0dXMgPT09ICdjbG9zZWQnfHx0aWNrZXRJbmZvPy50aWNrZXREZXRhaWxzLnRpY2tldFR5cGUgPT09ICdyZWZyZXNodGlja2V0J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG9iaiBvZiB2aWV3VGlja2V0RGF0YTtsZXQgaT1pbmRleFwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBIb3Jpem9udGFsIGxpbmUgd2l0aCBkYXkgLS0+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci0xIGJvcmRlci1ncmF5IHAtMCB3LTEwMCBtZS0zXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZGF5IGZ3LWJvbGQtNDAwXCI+VG9kYXk8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci0xIGJvcmRlci1ncmF5IHAtMCB3LTEwMCBtcy0zXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gVXNlciBjb2RlIHN0YXJ0ICAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm9iai5hY3Rpb25CeSA9PT0gJ1VzZXInXCIgY2xhc3M9XCJkLWZsZXggbXMtNSBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib2JqLmFjdGlvblR5cGUgIT09J3N0YXR1c0NoYW5nZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIHBlLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRyZSBqdXN0aWZ5LWNvbnRlbnQtY2VudHJlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJtc2dwcm9maWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ltYWdlcy91c2VyUHJvZmlsZS5zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC0wIGgtMTAwIG10LTMgYm9yZGVyIGJvcmRlci0xIGJvcmRlci1ncmF5XCIgc3R5bGU9XCJ3aWR0aDowcHhcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yXCIgKm5nSWY9XCJvYmouYWN0aW9uVHlwZSA9PT0gJ3N0YXR1c0NoYW5nZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpbWluZ3RleHQgcGUtMyBwdC0xIGZ3LWJvbGQtNDAwXCI+VXBkYXRlZCB0aGUgc3RhdHVzPC9zcGFuPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGltaW5ndGV4dCBmdy1zZW1pYm9sZCB0ZXh0LXByaW1hcnlcIj5PcGVuIC0+IElucHJvZ3Jlc3M8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0zIHctMTAwIHB0LTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib2JqLmFjdGlvblR5cGUgIT09J3N0YXR1c0NoYW5nZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkaW5ndGV4dCBmdy1zZW1pYm9sZCB0ZXh0LXVwcGVyY2FzZVwiPnt7b2JqPy5JZGVudGlmaWVkQnk/b2JqPy5JZGVudGlmaWVkQnk6XCJUYW5nb1wifX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpbWluZ3RleHQgcHgtMyBwdC0xIGZ3LWJvbGQtNDAwXCI+e3tvYmo/LnRpbWVTdGFtcH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwcm9maWxlLWxhYmVsIGZvbnQtYm9sZC00MDBcIj5Vc2VyIGhhcyByZXBsaWVkPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvYmouYWN0aW9uVHlwZSA9PT0gJ3N0YXR1c0NoZWNrUmVwbHknXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0dXBkYXRlcyBmdy1ib2xkLTQwMCBtdC0zXCI+SXNzdWUgaGFzIGJlZW4gPGI+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJvYmouc3RhdHVzQ2hlY2tSZXBseT09PSdObydcIj5ub3Q8L3NwYW4+IHJlc29sdmVkLjwvYj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dHVwZGF0ZXMgZnctYm9sZC00MDBcIiAqbmdJZj1cIm9iai5zdGF0dXNDaGVja1JlcGx5PT09J05vJ1wiPiBJdCB0YWtlc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tvYmo/LmhpYmVybmF0aW9uRGF5c319IG1vcmUgZGF5cyB0byByZXNvbHZlLjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yXCIgKm5nSWY9XCJvYmouYWN0aW9uVHlwZSA9PT0gJ2NvbW1lbnQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGltaW5ndGV4dCBwZS0zIHB0LTEgZnctYm9sZC00MDAgdGV4dC13cmFwXCI+e3tvYmo/LmNvbW1lbnR9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib2JqLmFjdGlvblR5cGUgPT09J2lzc3VlVXBkYXRlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHJlcyBvZiBvYmo/LnJlYXNvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHR1cGRhdGVzIGZ3LWJvbGQtNDAwIG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZSdyZSBjdXJyZW50bHkgZW5jb3VudGVyaW5nIGFuIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnctYm9sZC03MDBcIj57e3Jlcy5wcmltYXJ5SXNzdWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInJlcy5wcmltYXJ5SXNzdWUgPT09J0NhbWVyYSBJc3N1ZXMnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm5vdHdvcmtpbmdDYW1hcmFsaXN0ICYmIG5vdHdvcmtpbmdDYW1hcmFsaXN0Py5sZW5ndGhcIiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIG5vdHdvcmtpbmdDYW1hcmFsaXN0XCIgY2xhc3M9XCJjb2wtc20tMyBteS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm91bmRlZC0zIG92ZXJmbG93LWhpZGRlbiBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhbWVyYSBmdy1ib2xkXCI+e3tpdGVtLmNhbWVyYU5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiaXRlbT8udGh1bWJuYWlsSW1hZ2VcIiBzdHlsZT1cImhlaWdodDoxODBweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dHVwZGF0ZXMgZnctYm9sZC00MDAgbXQtMyBtZS0yXCI+VGhlIGFib3ZlIGNhbWVyYSBzdHJlYW1pbmcgYXJlIG5vdCB3b3JraW5nIGR1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHR1cGRhdGVzIGZ3LWJvbGQtNzAwIG10LTNcIiAqbmdGb3I9XCJsZXQgaXNzdWUgb2YgcmVzPy5zZWNvbmRhcnlJc3N1ZTsgbGV0IGxhc3QgPSBsYXN0XCI+e3tpc3N1ZT8ubmFtZX19IDxuZy1jb250YWluZXIgKm5nSWY9XCIhbGFzdFwiPiAsPC9uZy1jb250YWluZXI+PC9zcGFuPiB0byB0aGUgQ2FtZXJhPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZXM/LnNlY29uZGFyeUlzc3VlICYmIHJlcz8uc2Vjb25kYXJ5SXNzdWU/Lmxlbmd0aFwiIGNsYXNzPVwibXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnZlc3RpZ2F0aW9uIGZ3LWJvbGQtNDAwIG1iLTNcIj5UaGUgZm9sbG93aW5nIGFyZSB0aGUgcmVsZXZhbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvYmxlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWNpbmc8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTVcIj4gICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cInRpbWluZ3RleHQgZnctYm9sZC00MDAgbWItMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHNlY0lzc3VlcyBvZiByZXM/LnNlY29uZGFyeUlzc3VlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPnt7c2VjSXNzdWVzLm5hbWV9fTwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aW1pbmd0ZXh0IHBlLTMgcHQtMSBmdy1ib2xkLTQwMFwiPnt7b2JqPy5jb21tZW50fX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3RlZElzc3VlID09PSAnJ1wiIGNsYXNzPVwicHJvZmlsZS1sYWJlbCBmdy1zZW1pYm9sZCBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtpbmRseSBjaG9vc2UgdGhlIG9wdGlvbiBiZWxvdyB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBpc3N1ZSB5b3UgYXJlIGV4cGVyaWVuY2luZyBpblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmUuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gVXNlciBjb2RlIGVuZCAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBUYW5nbyBjb2RlIHN0YXJ0IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib2JqLmFjdGlvbkJ5ID09PSAnVGFuZ28nIHx8IG9iai5hY3Rpb25CeSA9PT0gJ2F1dG9tYXRlZCdcIiBjbGFzcz1cImQtZmxleCBtYi01IG1zLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgcGUtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudHJlIGp1c3RpZnktY29udGVudC1jZW50cmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN5bWJvbCBzeW1ib2wtNDhweCBzeW1ib2wtY2lyY2xlXCIgKm5nSWY9XCJvYmo/LklkZW50aWZpZWRCeSYmb2JqPy5JZGVudGlmaWVkQnkhPT0nJyYmb2JqPy5JZGVudGlmaWVkQnkhPT0nVGFuZ28nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN5bWJvbC1sYWJlbCBiYWRnZS1saWdodC1wcmltYXJ5IHRleHQtc3ltYm9sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXByaW1hcnkgZnMtNCBiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5IGZ3LW5vcm1hbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e29iaj8uSWRlbnRpZmllZEJ5Py5zbGljZSgwLDIpIHwgdXBwZXJjYXNlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyAqbmdJZj1cIiFvYmo/LklkZW50aWZpZWRCeXx8b2JqPy5JZGVudGlmaWVkQnk9PT0nJ3x8b2JqPy5JZGVudGlmaWVkQnk9PT0nVGFuZ28nXCIgY2xhc3M9XCJtc2dwcm9maWxlXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSW1hZ2VzL3RhbmdvcHJvZmlsZS5wbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC0wIGgtMTAwIG10LTMgYm9yZGVyIGJvcmRlci0xIGJvcmRlci1ncmF5IHZlcnRpY2FsTGluZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHktMyBwdC0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRpbmd0ZXh0IGZ3LXNlbWlib2xkIHRleHQtY2FwaXRhbGl6ZVwiPnt7b2JqPy5JZGVudGlmaWVkQnk/b2JqPy5JZGVudGlmaWVkQnk6XCJUYW5nb1wifX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGltaW5ndGV4dCBmdy1ib2xkLTQwMCBweC0zIHB0LTFcIj57e29iaj8udGltZVN0YW1wfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwcm9maWxlLWxhYmVsIGZ3LWJvbGQtNDAwXCI+dGFuZ28gaGFzIHJlcGxpZWQgdG8gdGhlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc3N1ZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yXCIgKm5nSWY9XCJvYmouYWN0aW9uVHlwZSA9PT0gJ3N0YXR1c0NoYW5nZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpbWluZ3RleHQgcGUtMyBwdC0xIGZ3LWJvbGQtNDAwXCI+VXBkYXRlZCB0aGUgc3RhdHVzPC9zcGFuPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGltaW5ndGV4dCBmdy1zZW1pYm9sZCB0ZXh0LXByaW1hcnlcIj5PcGVuIC0+IElucHJvZ3Jlc3M8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yXCIgKm5nSWY9XCJvYmouYWN0aW9uVHlwZSA9PT0gJ2NvbW1lbnQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aW1pbmd0ZXh0IHBlLTMgcHQtMSBmdy1ib2xkLTQwMCB0ZXh0LXdyYXBcIj57e29iaj8uY29tbWVudH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvYmouYWN0aW9uVHlwZSA9PT0gJ2RhdGFSZWNpdmVkJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHR1cGRhdGVzIGZ3LWJvbGQtNDAwIG10LTNcIj5UaGFuayB5b3UgZm9yIHlvdXIgYXNzaXN0YW5jZS4gV2UgaGF2ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY2VpdmVkIHRoZSBkYXRhIGZyb20geW91ciBTdG9yZS5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm9iai5hY3Rpb25UeXBlID09PSAnc3RhdHVzQ2hlY2tNb25pdG9yJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHR1cGRhdGVzIGZ3LWJvbGQtNDAwIG10LTNcIj5UaGFuayB5b3UgZm9yIHRoZSB1cGRhdGUuIFdl4oCZbGwgZ2V0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFjayBhZnRlciB0aGUgYnVmZmVyIHRpbWUgeW91IHByb3ZpZGVkLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib2JqLmFjdGlvblR5cGUgPT09J3N0ZXBzVG9SZXNvbHZlJ1wiIGNsYXNzPVwibXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0dXBkYXRlcyBmdy1ib2xkLTQwMFwiPlBsZWFzZSBmb2xsb3cgdGhlIGJlbG93IHN0ZXBzIHRvIHJlc29sdmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgYWJvdmUgaXNzdWU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCByZXMgb2Ygb2JqPy5yZWFzb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTUgbWItNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZ3RleHQgZnctc2VtaWJvbGQgbWItMVwiPnt7cmVzLnByaW1hcnlJc3N1ZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cInRpbWluZ3RleHQgZnctYm9sZC00MDAgbWItMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgc2VjSXNzdWVzIG9mIHJlcz8uc2Vjb25kYXJ5SXNzdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT57e3NlY0lzc3Vlcy5uYW1lfX08L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib2JqLmFjdGlvblR5cGUgPT09J2lzc3VlVXBkYXRlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgcmVzIG9mIG9iaj8ucmVhc29uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0dXBkYXRlcyBmdy1ib2xkLTQwMCBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlJ3JlIGN1cnJlbnRseSBlbmNvdW50ZXJpbmcgYW4gPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnctYm9sZC03MDBcIj57e3Jlcy5wcmltYXJ5SXNzdWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicmVzLnByaW1hcnlJc3N1ZSA9PT0nQ2FtZXJhIElzc3VlcydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBteS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIG5vdHdvcmtpbmdDYW1hcmFsaXN0XCIgY2xhc3M9XCJjb2wtc20tM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3VuZGVkLTMgb3ZlcmZsb3ctaGlkZGVuIG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhbWVyYSBmdy1ib2xkXCI+e3tpdGVtLmNhbWVyYU5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cIml0ZW0/LnRodW1ibmFpbEltYWdlXCIgc3R5bGU9XCJoZWlnaHQ6MTgwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0dXBkYXRlcyBmdy1ib2xkLTQwMCBtdC0zIG1lLTJcIj5UaGUgYWJvdmUgY2FtZXJhIHN0cmVhbWluZyBhcmUgbm90IHdvcmtpbmcgZHVlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHR1cGRhdGVzIGZ3LWJvbGQtNzAwIG10LTNcIiAqbmdGb3I9XCJsZXQgaXNzdWUgb2YgcmVzPy5zZWNvbmRhcnlJc3N1ZTsgbGV0IGxhc3QgPSBsYXN0XCI+e3tpc3N1ZT8ubmFtZX19IDxuZy1jb250YWluZXIgKm5nSWY9XCIhbGFzdFwiPiAsPC9uZy1jb250YWluZXI+PC9zcGFuPiA8c3BhbiBjbGFzcz1cInRleHR1cGRhdGVzIGZ3LWJvbGQtNDAwIG10LTNcIj50byB0aGUgQ2FtZXJhPC9zcGFuPlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImludmVzdGlnYXRpb24gZnctYm9sZC00MDAgbWItM1wiPlRoZSBmb2xsb3dpbmcgYXJlIHRoZSByZWxldmFudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvYmxlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFjaW5nPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNVwiPiAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cInRpbWluZ3RleHQgZnctYm9sZC00MDAgbWItMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzZWNJc3N1ZXMgb2YgcmVzPy5zZWNvbmRhcnlJc3N1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+e3tzZWNJc3N1ZXMubmFtZX19PC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGltaW5ndGV4dCBwZS0zIHB0LTEgZnctYm9sZC00MDAgdGV4dC13cmFwXCI+e3tvYmo/LmNvbW1lbnR9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvYmouYWN0aW9uVHlwZSA9PT0gJ3N0YXR1c0NoZWNrUmVwbHknXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dHVwZGF0ZXMgZnctYm9sZC00MDAgbXQtM1wiPklzc3VlIGhhcyBiZWVuIDxiPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIm9iai5zdGF0dXNDaGVja1JlcGx5PT09J05vJ1wiPm5vdDwvc3Bhbj4gcmVzb2x2ZWQuPC9iPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHR1cGRhdGVzIGZ3LWJvbGQtNDAwXCIgKm5nSWY9XCJvYmouc3RhdHVzQ2hlY2tSZXBseT09PSdObydcIj4gSXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlcyB7e29iaj8uaGliZXJuYXRpb25EYXlzfX0gbW9yZSBkYXlzIHRvIHJlc29sdmUuPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gZGVmYXVsdEluZnJhIHN0YXJ0IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvYmouYWN0aW9uVHlwZSA9PT0nZGVmYXVsdEluZnJhJ1wiIGNsYXNzPVwiY29udGVudHRleHQgZnctYm9sZC00MDBcIj5XZSBoYXZlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWNlaXZlZCBkYXRhIGZyb20geW91ciBzdG9yZS4gV2UgYXJlIGN1cnJlbnRseSBpbnZlc3RpZ2F0aW5nIHRoZSBpc3N1ZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gZGVmYXVsdEluZnJhIGVuZCAtLT5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFRhbmdvIGNvZGUgZW5kIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbG9hZGVyICBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vRGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctc3JjXCIgd2lkdGg9XCIyMDBweFwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93U3VibWl0ICYmIChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5tYW5hZ2VfdGlja2V0c19pc0VkaXRcIiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgbXQtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cImNvbW1lbnRzXCIgKGNsaWNrKT1cImFkZENvbW1lbnQoKVwiIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJBZGQgeW91ciBjb21tZW50cy4uXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiICNmaWxlSW5wdXQgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiIGFjY2VwdD1cImltYWdlLypcIiBtdWx0aXBsZSAoY2hhbmdlKT1cIm9uRmlsZVNlbGVjdGVkKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJ0aWNrZXRJbmZvPy5zdGF0dXMgPT09ICdjbG9zZWQnXCIgKGNsaWNrKT1cIm9wZW5GaWxlSW5wdXQoKVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgYnRuIGJ0bi1kZWZhdWx0IGJ0bi1vdXRsaW5lIG1zLTNcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTcuODY2NiA5LjIwODM1TDEwLjIwODIgMTYuODY2N0M5LjI3MDA1IDE3LjgwNDkgNy45OTc1NyAxOC4zMzIgNi42NzA3NSAxOC4zMzJDNS4zNDM5MyAxOC4zMzIgNC4wNzE0NSAxNy44MDQ5IDMuMTMzMjUgMTYuODY2N0MyLjE5NTA1IDE1LjkyODUgMS42Njc5NyAxNC42NTYgMS42Njc5NyAxMy4zMjkyQzEuNjY3OTcgMTIuMDAyNCAyLjE5NTA1IDEwLjcyOTkgMy4xMzMyNSA5Ljc5MTY4TDEwLjc5MTYgMi4xMzMzNUMxMS40MTcxIDEuNTA3ODggMTIuMjY1NCAxLjE1NjQ5IDEzLjE0OTkgMS4xNTY0OUMxNC4wMzQ1IDEuMTU2NDkgMTQuODgyOCAxLjUwNzg4IDE1LjUwODIgMi4xMzMzNUMxNi4xMzM3IDIuNzU4ODIgMTYuNDg1MSAzLjYwNzEzIDE2LjQ4NTEgNC40OTE2OEMxNi40ODUxIDUuMzc2MjMgMTYuMTMzNyA2LjIyNDU1IDE1LjUwODIgNi44NTAwMkw3Ljg0MTU4IDE0LjUwODNDNy41Mjg4NSAxNC44MjExIDcuMTA0NjkgMTQuOTk2OCA2LjY2MjQyIDE0Ljk5NjhDNi4yMjAxNCAxNC45OTY4IDUuNzk1OTggMTQuODIxMSA1LjQ4MzI1IDE0LjUwODNDNS4xNzA1MSAxNC4xOTU2IDQuOTk0ODIgMTMuNzcxNSA0Ljk5NDgyIDEzLjMyOTJDNC45OTQ4MiAxMi44ODY5IDUuMTcwNTEgMTIuNDYyNyA1LjQ4MzI1IDEyLjE1TDEyLjU1ODIgNS4wODMzNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwidGlja2V0SW5mbz8uc3RhdHVzID09PSAnY2xvc2VkJ1wiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG1zLTNcIiAoY2xpY2spPVwidXBkYXRlVGlja2V0KClcIj4gU3VibWl0IDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxidXR0b24gIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IGJ0bi1vdXRsaW5lIG1zLTMgdGV4dC1ub3dyYXBcIj48c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8zOTE3XzU0NjIxKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk03LjU3NDM1IDcuNTAwMDhDNy43NzAyNyA2Ljk0MzE0IDguMTU2OTggNi40NzM1IDguNjY1OTggNi4xNzQzNkM5LjE3NDk4IDUuODc1MjEgOS43NzM0MyA1Ljc2NTg2IDEwLjM1NTMgNS44NjU2N0MxMC45MzcyIDUuOTY1NDkgMTEuNDY1IDYuMjY4MDIgMTEuODQ1MiA2LjcxOTY5QzEyLjIyNTUgNy4xNzEzNiAxMi40MzM2IDcuNzQzMDIgMTIuNDMyNyA4LjMzMzQyQzEyLjQzMjcgMTAuMDAwMSA5LjkzMjY4IDEwLjgzMzQgOS45MzI2OCAxMC44MzM0TTkuOTk5MzUgMTQuMTY2N0gxMC4wMDc3TTE4LjMzMjcgMTAuMDAwMUMxOC4zMzI3IDE0LjYwMjUgMTQuNjAxNyAxOC4zMzM0IDkuOTk5MzUgMTguMzMzNEM1LjM5Njk4IDE4LjMzMzQgMS42NjYwMiAxNC42MDI1IDEuNjY2MDIgMTAuMDAwMUMxLjY2NjAyIDUuMzk3NzEgNS4zOTY5OCAxLjY2Njc1IDkuOTk5MzUgMS42NjY3NUMxNC42MDE3IDEuNjY2NzUgMTguMzMyNyA1LjM5NzcxIDE4LjMzMjcgMTAuMDAwMVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzEwMTgyOFwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzM5MTdfNTQ2MjFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+IENhbuKAmXQgYWJsZSB0byByZWFjaCB0aGUgc3RvcmU/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiICpuZ0lmPVwiZXJyb3JNZXNzYWdlXCI+e3sgZXJyb3JNZXNzYWdlIH19PC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS00XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci0xIGJvcmRlci1ncmF5IHJvdW5kZWQtMyBwLTUgaC0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FtZXJhIGZ3LXNlbWlib2xkXCI+QXR0YWNobWVudHM8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGlja2V0SW5mbz8uYXR0YWNobWVudHMubGVuZ3RoID09PTBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctMTAwIG10LTEwIG1iLTEwIG1oLTYwdmggZC1ncmlkIHRleHQtY2VudGVyIG14LWF1dG9cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cIm14LWF1dG9cIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JbWFnZXMvdGFrZXRpY2tldC5zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0YWtldGlja2V0IG10LTIgZnctYm9sZFwiPk5vIEF0dGFjaG1lbnRzIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGlja2V0SW5mbz8uYXR0YWNobWVudHMubGVuZ3RoID4gMFwiIGNsYXNzPVwicm93IG10LTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNiBwb3NpdGlvbi1yZWxhdGl2ZSBtYi0xMFwiICpuZ0Zvcj1cImxldCBmaWxlIG9mIHRpY2tldEluZm8/LmF0dGFjaG1lbnRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiQXR0YWNobWVudCBib3JkZXIgYm9yZGVyLTEgYm9yZGVyLWdyYXkgdy0xMDAgcm91bmRlZC0yIG92ZXJmbG93LWhpZGRlblwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaC0xNTBweFwiIChjbGljayk9XCJkb3dubG9hZGltYWdlKGZpbGU/LnNpZ25lZFVybCwnYWRkJylcIiBbc3JjXT1cImZpbGU/LnNpZ25lZFVybFwiIGFsdD1cIlNlbGVjdGVkIEltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZ3JpZCBib3JkZXIgYm9yZGVyLXRvcC0xIHB4LTUgcHktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImltYWdlbmFtZSBmdy1ib2xkXCI+e3tmaWxlLmZpbGVOYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJmdy1ib2xkLTQwMCB1cGRhdGVkZGF0ZVwiPnt7ZmlsZS5sYXN0TW9kaWZpZWREYXRlU3RyaW5nfX08L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cInJlbW92ZUZpbGUoZmlsZT8uc2lnbmVkVXJsKVwiIGNsYXNzPVwibWUtMyBwLTEgcG9zaXRpb24tYWJzb2x1dGUgd2lkdGgtMjBweCBoZWlnaHQtMjBweCByb3VuZGVkLTMgZW5kLTAgdG9wLTAgYm9yZGVyIGJvcmRlci0xIGJvcmRlci1wcmltYXJ5IGJnLWxpZ2h0LXByaW1hcnkgY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE1IDVMNSAxNU01IDVMMTUgMTVcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgXHJcblxyXG4gICAgPC9kaXY+XHJcblxyXG48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJTZWxlY3RlZFRhYiA9PT0gJ3N0b3JlaW5mbydcIj5cclxuICAgIDxsaWItc3RvcmUtaW5mbyBbc3RvcmVJZF09XCJ0aWNrZXRJbmZvPy5iYXNpY0RldGFpbHM/LnN0b3JlSWRcIj48L2xpYi1zdG9yZS1pbmZvPlxyXG48L2Rpdj4iXX0=
|